{"_id":"ut-error","_rev":"31-4f0346e9179a45a074beb458be9d6c4d","name":"ut-error","description":"UT error module","dist-tags":{"latest":"5.7.2","ci":"5.5.0-rc-acapulco.0","rc-cubalibre":"5.5.0-rc-cubalibre.1","rc-godfather":"5.7.0-rc-godfather.3"},"versions":{"5.3.14":{"name":"ut-error","version":"5.3.14","dependencies":{},"devDependencies":{"ut-tools":"^5.6.0"},"description":"UT error module","scripts":{"lint":"ut-lint .","release":"ut-release","changelog":"ut-changelog","check":"ut-check","cover":"ut-cover","lint-js":"ut-lint-js .","postpublish":"ut-postpublish","postversion":"ut-postversion","precommit":"ut-precommit","prepublish":"ut-prepublish","prepush":"ut-prepush","pretest":"ut-pretest","preversion":"ut-preversion","test":"ut-test","version":"ut-version","jenkins":"ut-jenkins","gitlab":"ut-gitlab"},"repository":{"type":"git","url":"git+ssh://git@github.com/softwaregroup-bg/ut-error.git"},"license":"Apache-2.0","gitHead":"c343899a61883d82a703c637e8fca92a7f470dec","bugs":{"url":"https://github.com/softwaregroup-bg/ut-error/issues"},"homepage":"https://github.com/softwaregroup-bg/ut-error#readme","_id":"ut-error@5.3.14","_shasum":"26fa49944d988c206f64e9b04edcbb38947ce18f","_from":".","_npmVersion":"3.8.1","_nodeVersion":"4.4.1","_npmUser":{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"},"dist":{"shasum":"26fa49944d988c206f64e9b04edcbb38947ce18f","tarball":"https://registry.npmjs.org/ut-error/-/ut-error-5.3.14.tgz","integrity":"sha512-3wuJC5+ZBkL78zagK8Or82Drbr+ageMIhQy7Yn7Ki1YNNkydSP1ySiZrJp36f+9flDM0we4vuKpD2WBppfLZxw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGcajXahbqDgCwrPFbUwKcW6OZTuLhus13NZlF9cSPJ3AiEA7SuXLoAOd6rUhum0iJSTalezXKVPU/SD/8+HtqMa31E="}]},"maintainers":[{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/ut-error-5.3.14.tgz_1471026226543_0.4688939698971808"},"directories":{}},"5.3.15":{"name":"ut-error","version":"5.3.15","dependencies":{},"devDependencies":{"ut-tools":"^5.6.0"},"description":"UT error module","scripts":{"lint":"ut-lint .","release":"ut-release","changelog":"ut-changelog","check":"ut-check","cover":"ut-cover","lint-js":"ut-lint-js .","postpublish":"ut-postpublish","postversion":"ut-postversion","precommit":"ut-precommit","prepublish":"ut-prepublish","prepush":"ut-prepush","pretest":"ut-pretest","preversion":"ut-preversion","test":"ut-test","version":"ut-version","jenkins":"ut-jenkins","gitlab":"ut-gitlab"},"repository":{"type":"git","url":"git+ssh://git@github.com/softwaregroup-bg/ut-error.git"},"license":"Apache-2.0","gitHead":"91f2421339ddea154bbe87989477602536b96b5e","bugs":{"url":"https://github.com/softwaregroup-bg/ut-error/issues"},"homepage":"https://github.com/softwaregroup-bg/ut-error#readme","_id":"ut-error@5.3.15","_shasum":"fa589fd88b2ac859e4b39490a872bf1cb0bce56d","_from":".","_npmVersion":"3.10.7","_nodeVersion":"4.4.1","_npmUser":{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"},"dist":{"shasum":"fa589fd88b2ac859e4b39490a872bf1cb0bce56d","tarball":"https://registry.npmjs.org/ut-error/-/ut-error-5.3.15.tgz","integrity":"sha512-BX4kZpO222Y4YjQmu5FB5zK3viTnzAZHf2eLHBa9WedwlZLGIa+o2lTRu2XPY5fHObUH+wa266iSbIgp9xkNxw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCRZjG5NLj+++5378DEURJ2HIQB1Na0GDX/YnKvh0j+8wIgYfN6bCGlr4ajP1gKWAAfl2r7ZRc3T3Pv4Wt3mxXPh3Y="}]},"maintainers":[{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/ut-error-5.3.15.tgz_1474363104241_0.2314489607233554"},"directories":{}},"5.3.16":{"name":"ut-error","version":"5.3.16","dependencies":{},"devDependencies":{"ut-tools":"^5.6.0"},"description":"UT error module","scripts":{"lint":"ut-lint .","release":"ut-release","changelog":"ut-changelog","check":"ut-check","cover":"ut-cover","lint-js":"ut-lint-js .","postpublish":"ut-postpublish","postversion":"ut-postversion","precommit":"ut-precommit","prepublish":"ut-prepublish","prepush":"ut-prepush","pretest":"ut-pretest","preversion":"ut-preversion","test":"ut-test","version":"ut-version","jenkins":"ut-jenkins","gitlab":"ut-gitlab"},"repository":{"type":"git","url":"git+ssh://git@github.com/softwaregroup-bg/ut-error.git"},"license":"Apache-2.0","gitHead":"d90352d4de292beba0c72e84fb6213522bff71fb","bugs":{"url":"https://github.com/softwaregroup-bg/ut-error/issues"},"homepage":"https://github.com/softwaregroup-bg/ut-error#readme","_id":"ut-error@5.3.16","_shasum":"9a17b1415c5a106021b39aafb92b1912be817424","_from":".","_npmVersion":"3.10.9","_nodeVersion":"4.6.1","_npmUser":{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"},"dist":{"shasum":"9a17b1415c5a106021b39aafb92b1912be817424","tarball":"https://registry.npmjs.org/ut-error/-/ut-error-5.3.16.tgz","integrity":"sha512-r7CPJbx563mLV+SnXK3UraxUkXjfv4S7Xg/aSfCWO0kVgaF2/+rGRAvLzU/L5t/NARFd4XIr0bfNCR2hoEiChQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDEDopa42Cnldam997FH69B28HPXSc5Ez1tQLWZHCCp7AiEApTFAnCJRYzyIeME4aGwVk0ca+7CSlTPxtG9XmtAIud4="}]},"maintainers":[{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/ut-error-5.3.16.tgz_1477309724711_0.3908557293470949"},"directories":{}},"5.4.0":{"name":"ut-error","version":"5.4.0","dependencies":{},"devDependencies":{"ut-tools":"^5.6.0"},"description":"UT error module","scripts":{"lint":"ut-lint .","release":"ut-release","changelog":"ut-changelog","check":"ut-check","cover":"ut-cover","lint-js":"ut-lint-js .","postpublish":"ut-postpublish","postversion":"ut-postversion","precommit":"ut-precommit","prepublish":"ut-prepublish","prepush":"ut-prepush","pretest":"ut-pretest","preversion":"ut-preversion","test":"ut-test","version":"ut-version","jenkins":"ut-jenkins","gitlab":"ut-gitlab"},"repository":{"type":"git","url":"git+ssh://git@github.com/softwaregroup-bg/ut-error.git"},"license":"Apache-2.0","gitHead":"a9dcd8f79e63b1af4e1ec88a23ee9d1279a0fa71","bugs":{"url":"https://github.com/softwaregroup-bg/ut-error/issues"},"homepage":"https://github.com/softwaregroup-bg/ut-error#readme","_id":"ut-error@5.4.0","_shasum":"4b779fdaed9c28cd3d62ce3b38237835d55e5b90","_from":".","_npmVersion":"3.10.9","_nodeVersion":"4.6.1","_npmUser":{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"},"dist":{"shasum":"4b779fdaed9c28cd3d62ce3b38237835d55e5b90","tarball":"https://registry.npmjs.org/ut-error/-/ut-error-5.4.0.tgz","integrity":"sha512-6RHmPOXJziYA1FLE6/8W4DomjPzvTFUYLSScmH+xnq35hyhTgWUp9ywuzzlXt1C3BxeKB231xf2o0xtw4EE8pw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICnGLPklGX5C/ZuiW+3+oxOOGXCceINAcfIjuCB2us6JAiEAyZbY09bq3mMOEpgor94aKsgKgerJblp7pAag9D+oauY="}]},"maintainers":[{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/ut-error-5.4.0.tgz_1484816539223_0.35744486399926245"},"directories":{}},"5.4.1":{"name":"ut-error","version":"5.4.1","dependencies":{},"devDependencies":{"ut-tools":"^5.6.0"},"description":"UT error module","scripts":{"lint":"ut-lint .","release":"ut-release","changelog":"ut-changelog","check":"ut-check","cover":"ut-cover","lint-js":"ut-lint-js .","postpublish":"ut-postpublish","postversion":"ut-postversion","precommit":"ut-precommit","prepublish":"ut-prepublish","prepush":"ut-prepush","pretest":"ut-pretest","preversion":"ut-preversion","test":"ut-test","version":"ut-version","jenkins":"ut-jenkins","gitlab":"ut-gitlab"},"repository":{"type":"git","url":"git+ssh://git@github.com/softwaregroup-bg/ut-error.git"},"license":"Apache-2.0","gitHead":"f827f196f8a89d6fb0cee80f7f8930d407c17c21","bugs":{"url":"https://github.com/softwaregroup-bg/ut-error/issues"},"homepage":"https://github.com/softwaregroup-bg/ut-error#readme","_id":"ut-error@5.4.1","_shasum":"d4c0eca08177b87481877e68142376746d239eba","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.5","_npmUser":{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"},"dist":{"shasum":"d4c0eca08177b87481877e68142376746d239eba","tarball":"https://registry.npmjs.org/ut-error/-/ut-error-5.4.1.tgz","integrity":"sha512-AT39MF+aHPz6x7f0yl3UuAWm6WjM+4yheRTsNOxd7DeP8s3EXT9O/69LxmvTfOmFHLnFAvobT4C6Wr87Su3cZg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHe4vud50SM2wW1/LjJcW0iwVv2KtTKRvw1FOJr5CxN5AiEAoqyV/87UEiJu2KZAWz0sINsCO5UunuX1Rp3zxTEu6xE="}]},"maintainers":[{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/ut-error-5.4.1.tgz_1491482955405_0.9427170280832797"},"directories":{}},"5.4.2":{"name":"ut-error","version":"5.4.2","dependencies":{},"devDependencies":{"ut-tools":"^5.6.0"},"description":"UT error module","scripts":{"lint":"ut-lint .","release":"ut-release","changelog":"ut-changelog","check":"ut-check","cover":"ut-cover","lint-js":"ut-lint-js .","postpublish":"ut-postpublish","postversion":"ut-postversion","precommit":"ut-precommit","prepublish":"ut-prepublish","prepush":"ut-prepush","pretest":"ut-pretest","preversion":"ut-preversion","test":"ut-test","version":"ut-version","jenkins":"ut-jenkins","gitlab":"ut-gitlab"},"repository":{"type":"git","url":"git+ssh://git@github.com/softwaregroup-bg/ut-error.git"},"license":"Apache-2.0","gitHead":"5fc47238daf002e151e372a7886a8531759b1d32","bugs":{"url":"https://github.com/softwaregroup-bg/ut-error/issues"},"homepage":"https://github.com/softwaregroup-bg/ut-error#readme","_id":"ut-error@5.4.2","_shasum":"780db18e206852a9e6d4ef2d3c1959fcf39f8e6f","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.5","_npmUser":{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"},"dist":{"shasum":"780db18e206852a9e6d4ef2d3c1959fcf39f8e6f","tarball":"https://registry.npmjs.org/ut-error/-/ut-error-5.4.2.tgz","integrity":"sha512-zJ4VhotwS/4eCQST5F3i6Wtpc+rbe4Izq4A3J8oOL3miZmB9uA6+mz+BVhpMCXk4zSMwhABQrZvLQ69gACxxHA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGKJn3UV1ZFbnOHzuhmblDkRxDDYBdR8jh9XaOUXOujDAiAVoP3PTg9tlnOme/+80EhV5tT6SC8wT1SPuYMMAfpNXQ=="}]},"maintainers":[{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/ut-error-5.4.2.tgz_1491562748802_0.4264138003345579"},"directories":{}},"5.4.3":{"name":"ut-error","version":"5.4.3","dependencies":{},"devDependencies":{"ut-tools":"^5.6.0"},"description":"UT error module","scripts":{"lint":"ut-lint .","release":"ut-release","changelog":"ut-changelog","check":"ut-check","cover":"ut-cover","lint-js":"ut-lint-js .","postpublish":"ut-postpublish","postversion":"ut-postversion","precommit":"ut-precommit","prepublish":"ut-prepublish","prepush":"ut-prepush","pretest":"ut-pretest","preversion":"ut-preversion","test":"ut-test","version":"ut-version","jenkins":"ut-jenkins","gitlab":"ut-gitlab"},"repository":{"type":"git","url":"git+ssh://git@github.com/softwaregroup-bg/ut-error.git"},"license":"Apache-2.0","gitHead":"6224805d929222ee39542007d9d0eb2c710ea434","bugs":{"url":"https://github.com/softwaregroup-bg/ut-error/issues"},"homepage":"https://github.com/softwaregroup-bg/ut-error#readme","_id":"ut-error@5.4.3","_shasum":"bb1fea19c439e2c13452940ac6d642827945a60c","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.5","_npmUser":{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"},"dist":{"shasum":"bb1fea19c439e2c13452940ac6d642827945a60c","tarball":"https://registry.npmjs.org/ut-error/-/ut-error-5.4.3.tgz","integrity":"sha512-FihHdTeHTVwh3s8m9IkhaGrRToW9gUQDDVxON6lSbxerZd3lyZcLOjrb339EeykFEavPos1Y8+1zW7NyCGE3EA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGWEVcb4bytbyrG5eO+CjWp3Hc6Lavss4NsOoXos0oh6AiEAvx313eRIqtegMrahDno88GlYDjHgUjyubsS3ph+ofUE="}]},"maintainers":[{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/ut-error-5.4.3.tgz_1493026377029_0.24470549169927835"},"directories":{}},"5.3.17":{"name":"ut-error","version":"5.3.17","dependencies":{},"devDependencies":{"ut-tools":"^5.6.0"},"description":"UT error module","scripts":{"lint":"ut-lint .","release":"ut-release","changelog":"ut-changelog","check":"ut-check","cover":"ut-cover","lint-js":"ut-lint-js .","postpublish":"ut-postpublish","postversion":"ut-postversion","precommit":"ut-precommit","prepublish":"ut-prepublish","prepush":"ut-prepush","pretest":"ut-pretest","preversion":"ut-preversion","test":"ut-test","version":"ut-version","jenkins":"ut-jenkins","gitlab":"ut-gitlab"},"repository":{"type":"git","url":"git+ssh://git@github.com/softwaregroup-bg/ut-error.git"},"license":"Apache-2.0","gitHead":"8c3ac597504773d87d53d376d52a04fd1b65f15e","bugs":{"url":"https://github.com/softwaregroup-bg/ut-error/issues"},"homepage":"https://github.com/softwaregroup-bg/ut-error#readme","_id":"ut-error@5.3.17","_shasum":"76e1a609a3177569b713ab099cd5c90302216f65","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.5","_npmUser":{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"},"dist":{"shasum":"76e1a609a3177569b713ab099cd5c90302216f65","tarball":"https://registry.npmjs.org/ut-error/-/ut-error-5.3.17.tgz","integrity":"sha512-psOXO3fGKUbmRBeqlEg5Xjrw5vtiu6KIIBdNDEIGNMSdUN/xevA+lfWe0YgKjAi/Sikz+QNxfYCuQJFpyDK8uQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCb3JLST/Tzs8aNcqmxCAQwIf7saw2LlJda2Is0nH6TJwIgGkD5ikV7TnpXj8tq38BaDMn9fi5AoMd3ARTautcmOwI="}]},"maintainers":[{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/ut-error-5.3.17.tgz_1494845193069_0.212711151689291"},"directories":{}},"5.4.4":{"name":"ut-error","version":"5.4.4","dependencies":{},"devDependencies":{"ut-tools":"^5.6.0"},"description":"UT error module","scripts":{"lint":"ut-lint .","release":"ut-release","changelog":"ut-changelog","check":"ut-check","cover":"ut-cover","lint-js":"ut-lint-js .","postpublish":"ut-postpublish","postversion":"ut-postversion","precommit":"ut-precommit","prepublish":"ut-prepublish","prepush":"ut-prepush","pretest":"ut-pretest","preversion":"ut-preversion","test":"ut-test","version":"ut-version","jenkins":"ut-jenkins","gitlab":"ut-gitlab"},"repository":{"type":"git","url":"git+ssh://git@github.com/softwaregroup-bg/ut-error.git"},"license":"Apache-2.0","gitHead":"ce35ad5759b79b3ef555a8018860ea74974a4032","bugs":{"url":"https://github.com/softwaregroup-bg/ut-error/issues"},"homepage":"https://github.com/softwaregroup-bg/ut-error#readme","_id":"ut-error@5.4.4","_shasum":"1350f589860187c891788d48b267e8473953c38e","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.5","_npmUser":{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"},"dist":{"shasum":"1350f589860187c891788d48b267e8473953c38e","tarball":"https://registry.npmjs.org/ut-error/-/ut-error-5.4.4.tgz","integrity":"sha512-3TmlJ+qbLlGYP6GLx9Z0o52xohihOpOvK/O85wO3CIJgVsR//aY/GqRI/ThvRfCNvcNq0CcxODpiBNgANNkajw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGQKBg6c/DvuCytxdaO0WoGyTvep+VnileAisDyVYtyUAiBiOL3dlLyQEKobn7x4KS/Y13zFmiBxbdnrDTq2erEqbQ=="}]},"maintainers":[{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ut-error-5.4.4.tgz_1495199354890_0.5833398746326566"},"directories":{}},"5.4.5":{"name":"ut-error","version":"5.4.5","dependencies":{},"devDependencies":{"ut-tools":"^5.6.0"},"description":"UT error module","scripts":{"lint":"ut-lint .","release":"ut-release","changelog":"ut-changelog","check":"ut-check","cover":"ut-cover","lint-js":"ut-lint-js .","postpublish":"ut-postpublish","postversion":"ut-postversion","precommit":"ut-precommit","prepublish":"ut-prepublish","prepush":"ut-prepush","pretest":"ut-pretest","preversion":"ut-preversion","test":"ut-test","version":"ut-version","jenkins":"ut-jenkins","gitlab":"ut-gitlab"},"repository":{"type":"git","url":"git+ssh://git@github.com/softwaregroup-bg/ut-error.git"},"license":"Apache-2.0","gitHead":"7564c9b570d8beb874d6523cf2b13e4a6bc16891","bugs":{"url":"https://github.com/softwaregroup-bg/ut-error/issues"},"homepage":"https://github.com/softwaregroup-bg/ut-error#readme","_id":"ut-error@5.4.5","_shasum":"3ae9e4efaa60f3f328fabfe251ffc8909bc7949e","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.5","_npmUser":{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"},"dist":{"shasum":"3ae9e4efaa60f3f328fabfe251ffc8909bc7949e","tarball":"https://registry.npmjs.org/ut-error/-/ut-error-5.4.5.tgz","integrity":"sha512-8gtLTxRPuK0N6Gyvggqg0CPHaWNdD2qGsD77ZarVAKCnkYSAU66AA3w11O3KDFKOMD7T13FjxAzihijDxUea0Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDxpRju8VkKRBNj51QRQYwiqY+YujWn3OlBWsWJAh6GTAIgI+rM7eZ4rGNHPOdi1dojpzMyQTZLP837QkhHfbn/U20="}]},"maintainers":[{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ut-error-5.4.5.tgz_1495456149458_0.538433954352513"},"directories":{}},"5.4.6":{"name":"ut-error","version":"5.4.6","dependencies":{},"devDependencies":{"ut-tools":"^5.6.0"},"description":"UT error module","scripts":{"lint":"ut-lint .","release":"ut-release","changelog":"ut-changelog","check":"ut-check","cover":"ut-cover","lint-js":"ut-lint-js .","postpublish":"ut-postpublish","postversion":"ut-postversion","precommit":"ut-precommit","prepublish":"ut-prepublish","prepush":"ut-prepush","pretest":"ut-pretest","preversion":"ut-preversion","test":"ut-test","version":"ut-version","jenkins":"ut-jenkins","gitlab":"ut-gitlab"},"repository":{"type":"git","url":"git+ssh://git@github.com/softwaregroup-bg/ut-error.git"},"license":"Apache-2.0","gitHead":"b2214c9208eac87edb9137fdafb417c079f9b084","bugs":{"url":"https://github.com/softwaregroup-bg/ut-error/issues"},"homepage":"https://github.com/softwaregroup-bg/ut-error#readme","_id":"ut-error@5.4.6","_shasum":"f19bd7123791695e550636c297f3ff464533affa","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.5","_npmUser":{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"},"dist":{"shasum":"f19bd7123791695e550636c297f3ff464533affa","tarball":"https://registry.npmjs.org/ut-error/-/ut-error-5.4.6.tgz","integrity":"sha512-+emmtqgIEo1q4bSeVPWN0eJoP/ZevAMM+KlLBRBZ7dSJDI/if5d+ueS6OZy21XgzHnyDeJnK05YW+/GclEEykg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEpCuFT0gslzqt+XGJG3KZiB4uOd4+B5kCG7yaVjHXVeAiEA9VUkh2GZ2YehVT0nJNNWSyuQebf2HxDXcyd6g7oDbfw="}]},"maintainers":[{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ut-error-5.4.6.tgz_1495457114833_0.3724729639943689"},"directories":{}},"5.4.7":{"name":"ut-error","version":"5.4.7","dependencies":{},"devDependencies":{"ut-tools":"^5.6.0"},"description":"UT error module","scripts":{"lint":"ut-lint .","release":"ut-release","changelog":"ut-changelog","check":"ut-check","cover":"ut-cover","lint-js":"ut-lint-js .","postpublish":"ut-postpublish","postversion":"ut-postversion","precommit":"ut-precommit","prepublish":"ut-prepublish","prepush":"ut-prepush","pretest":"ut-pretest","preversion":"ut-preversion","test":"ut-test","version":"ut-version","jenkins":"ut-jenkins","gitlab":"ut-gitlab"},"repository":{"type":"git","url":"git+ssh://git@github.com/softwaregroup-bg/ut-error.git"},"license":"Apache-2.0","gitHead":"e3ed6945def6c105c127def9e7dc208d0dfa99f8","bugs":{"url":"https://github.com/softwaregroup-bg/ut-error/issues"},"homepage":"https://github.com/softwaregroup-bg/ut-error#readme","_id":"ut-error@5.4.7","_shasum":"e33a6dc748e44d251f395202f1bce3c14991049c","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.5","_npmUser":{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"},"dist":{"shasum":"e33a6dc748e44d251f395202f1bce3c14991049c","tarball":"https://registry.npmjs.org/ut-error/-/ut-error-5.4.7.tgz","integrity":"sha512-xTYFkMG4IYy8OwAgEXZOW5XijFxnOUXoq56GEhvp72lCvzdxqUIjhdSVZKbvY3+jWo62B3o1DjWiEnvPSo5ulA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDIq5vejkdo5IdDDFoVxE3vSnpra4/hNoEi3X+vFS5EHAiBrUk1mkJkW8/gfdyspmslL4rGIu43jaF/rr/vhYJMGWg=="}]},"maintainers":[{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ut-error-5.4.7.tgz_1495458132218_0.3282714178785682"},"directories":{}},"5.4.8":{"name":"ut-error","version":"5.4.8","dependencies":{},"devDependencies":{"ut-tools":"^5.6.0"},"description":"UT error module","scripts":{"lint":"ut-lint .","release":"ut-release","changelog":"ut-changelog","check":"ut-check","cover":"ut-cover","lint-js":"ut-lint-js .","postpublish":"ut-postpublish","postversion":"ut-postversion","precommit":"ut-precommit","prepublish":"ut-prepublish","prepush":"ut-prepush","pretest":"ut-pretest","preversion":"ut-preversion","test":"ut-test","version":"ut-version","jenkins":"ut-jenkins","gitlab":"ut-gitlab"},"repository":{"type":"git","url":"git+ssh://git@github.com/softwaregroup-bg/ut-error.git"},"license":"Apache-2.0","gitHead":"8feecf3635645584db1144c33fa6b18c477c42df","bugs":{"url":"https://github.com/softwaregroup-bg/ut-error/issues"},"homepage":"https://github.com/softwaregroup-bg/ut-error#readme","_id":"ut-error@5.4.8","_shasum":"97349eeefee2e30ab5f8be7f23c2333efe5272a1","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.5","_npmUser":{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"},"dist":{"shasum":"97349eeefee2e30ab5f8be7f23c2333efe5272a1","tarball":"https://registry.npmjs.org/ut-error/-/ut-error-5.4.8.tgz","integrity":"sha512-qj346mzOCWNezW1Xg5PLeQg6/0h9rabkeiNKzg/x/cF3i6coNyYApkQyPmSg/wO489XDErmrHlCKw/qXAsKG5A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCyYN6MOZpx9Qt/1M/1lviG9UAXiLyErAsPM7AwZcU59AIhAOKDi3f8X3dDrnZ/ofeVmuUvajD1WtJCwvuxJkn7XnNS"}]},"maintainers":[{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ut-error-5.4.8.tgz_1495458817817_0.5481344694271684"},"directories":{}},"5.4.9":{"name":"ut-error","version":"5.4.9","dependencies":{},"devDependencies":{"ut-tools":"^5.6.0"},"description":"UT error module","scripts":{"lint":"ut-lint .","release":"ut-release","changelog":"ut-changelog","check":"ut-check","cover":"ut-cover","lint-js":"ut-lint-js .","postpublish":"ut-postpublish","postversion":"ut-postversion","precommit":"ut-precommit","prepublish":"ut-prepublish","prepush":"ut-prepush","pretest":"ut-pretest","preversion":"ut-preversion","test":"ut-test","version":"ut-version","jenkins":"ut-jenkins","gitlab":"ut-gitlab"},"repository":{"type":"git","url":"git+ssh://git@github.com/softwaregroup-bg/ut-error.git"},"license":"Apache-2.0","gitHead":"d376f243163bd725faa87fc21a17ce0d48a7ae73","bugs":{"url":"https://github.com/softwaregroup-bg/ut-error/issues"},"homepage":"https://github.com/softwaregroup-bg/ut-error#readme","_id":"ut-error@5.4.9","_shasum":"b3d0e7f5ed9233e301373687ddac62e57133cf6c","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.5","_npmUser":{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"},"dist":{"shasum":"b3d0e7f5ed9233e301373687ddac62e57133cf6c","tarball":"https://registry.npmjs.org/ut-error/-/ut-error-5.4.9.tgz","integrity":"sha512-bSQgffxaHNg/gkw4Y6vYiVaxL7Voz+Jrk7vZI5ygcDLUHxRcHrD0RhiAGDuF2qj/wFQ4/SGULuYx5UAU5qQ3Nw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDaatBSj3vw5fg7W8Kdn79NKBYAMQ/+ktU9h8c0G/iBkwIhAOL44Ro9uEG8fpvg1nXIihJDV0LTQVU58rMIhue1m2iY"}]},"maintainers":[{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ut-error-5.4.9.tgz_1495459758633_0.11759051168337464"},"directories":{}},"5.5.0-rc-acapulco.0":{"name":"ut-error","version":"5.5.0-rc-acapulco.0","dependencies":{},"devDependencies":{"ut-tools":"^5.6.0"},"description":"UT error module","scripts":{"lint":"ut-lint .","release":"ut-release","changelog":"ut-changelog","check":"ut-check","cover":"ut-cover","lint-js":"ut-lint-js .","postpublish":"ut-postpublish","postversion":"ut-postversion","precommit":"ut-precommit","prepublish":"ut-prepublish","prepush":"ut-prepush","pretest":"ut-pretest","preversion":"ut-preversion","test":"ut-test","version":"ut-version","jenkins":"ut-jenkins","gitlab":"ut-gitlab"},"repository":{"type":"git","url":"git+ssh://git@github.com/softwaregroup-bg/ut-error.git"},"license":"Apache-2.0","gitHead":"74daa02793211b8e5654222cee8fc50d58840ebf","bugs":{"url":"https://github.com/softwaregroup-bg/ut-error/issues"},"homepage":"https://github.com/softwaregroup-bg/ut-error#readme","_id":"ut-error@5.5.0-rc-acapulco.0","_shasum":"b8c22f945f1d3726532b3ad5087917fb175f435e","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"},"dist":{"shasum":"b8c22f945f1d3726532b3ad5087917fb175f435e","tarball":"https://registry.npmjs.org/ut-error/-/ut-error-5.5.0-rc-acapulco.0.tgz","integrity":"sha512-sjzFpV/lwYOgFyw/wGtnt9LT7DhlvJvtlgGRNy9E0pQjULeLJgErmwJlgYTz1pCH1rg0p8DDkVM2r1EuettPnQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCnUbiZ/M2cYkkorGqu+E3CMPRQwBk2dJXJZPPwPS30vgIgJWImO2vEwjfN7xkFOobHADgDpb0LKrVEN/H2IPV3VGE="}]},"maintainers":[{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ut-error-5.5.0-rc-acapulco.0.tgz_1509461614388_0.9095263320486993"},"directories":{}},"5.5.0-rc-cubalibre.0":{"name":"ut-error","version":"5.5.0-rc-cubalibre.0","dependencies":{},"devDependencies":{"ut-tools":"^5.6.0"},"description":"UT error module","scripts":{"lint":"ut-lint .","release":"ut-release","changelog":"ut-changelog","check":"ut-check","cover":"ut-cover","lint-js":"ut-lint-js .","postpublish":"ut-postpublish","postversion":"ut-postversion","precommit":"ut-precommit","prepublish":"ut-prepublish","prepush":"ut-prepush","pretest":"ut-pretest","preversion":"ut-preversion","precover":"ut-precover","test":"ut-test","version":"ut-version","jenkins":"ut-jenkins","gitlab":"ut-gitlab"},"repository":{"type":"git","url":"git+ssh://git@github.com/softwaregroup-bg/ut-error.git"},"license":"Apache-2.0","readme":"# UT Error\r\n\r\nut-error is a module that should be used for generating errors everywhere within the ut-bus framework and all implementations based upon it. This is a module that offers functionalities for better error handling in the background and gives possibilities for dynamic error classes declaration and hierarchical chaining.\r\n\r\nut-error should be used mainly through its 'define' method. For example:\r\n\r\n```js\r\nvar utError = require('ut-error');\r\n\r\nvar ErrorType1 = utError.define('ErrorType1');\r\n\r\nvar ErrorType2 = utError.define('ErrorType2', errorType1);\r\n\r\nvar ErrorType3 = utError.define('ErrorType3', errorType2);\r\n\r\n```\r\n\r\nThe define method will create a new error type or will just return it if it was previously defined. It will also build the hierarchy between the error classes automatically.\r\nAfter defining the error types, the errors themselves can be instantiated as follows:\r\n\r\n```js\r\nvar e1 = ErrorType1('e1 message');\r\n// same as:\r\n//var e1 = new ErrorType1('e1 message');\r\nvar e2 = ErrorType1('e2 message');\r\nvar e3 = ErrorType1('e3 message');\r\n```\r\n\r\nThe errors are actually real 'Error' objects but additionally the following inheritance is achieved:\r\n\r\n```js\r\nconsole.log(e1 instnaceof Error) // -> true\r\nconsole.log(e1 instnaceof ErrorType1) // -> true\r\n\r\nconsole.log(e2 instnaceof Error) // -> true\r\nconsole.log(e2 instnaceof ErrorType1) // -> true\r\nconsole.log(e2 instnaceof ErrorType2) // -> true\r\n\r\nconsole.log(e3 instnaceof Error) // -> true\r\nconsole.log(e3 instnaceof ErrorType1) // -> true\r\nconsole.log(e3 instnaceof ErrorType2) // -> true\r\nconsole.log(e3 instnaceof ErrorType3) // -> true\r\n```\r\n\r\nAnd the 'type' properties of the error instances themselves are as follows.\r\n\r\n```js\r\nconsole.log(e1.type) // -> 'ErrorType1'\r\nconsole.log(e2.type) // -> 'ErrorType1.ErrorType2'\r\nconsole.log(e3.type) // -> 'ErrorType1.ErrorType2.ErrorType3'\r\n```\r\n\r\nThe 'define' method accepts 2 arguments: `name` and `superType`, where:\r\n\r\n- `name` (required) is a string, specifying the name of the error class ()\r\n- `superType` (optional - if inheritance is desired) is a function (i.e an already defined errorType class) or a string, representing the type of an already defined errorType class.\r\n\r\nsuperType can accept either a function or a string, which means that:\r\n\r\n```js\r\nvar utError = require('ut-error');\r\n\r\nvar ErrorType1 = utError.define('ErrorType1');\r\n\r\nvar ErrorType2 = utError.define('ErrorType2', errorType1);\r\n/* is the same as:\r\nvar ErrorType2 = utError.define('ErrorType2', 'ErrorType1');\r\n*/\r\n\r\nvar ErrorType3 = utError.define('ErrorType3', errorType2);\r\n/* is the same as:\r\nvar ErrorType3 = utError.define('ErrorType3', 'ErrorType1.ErrorType2');\r\n*/\r\n```\r\n\r\nThe error constructors that get generated accept only 1 argument but that argument is actually very flexible: it can be undefined, string, object or even a real javascript exception.\r\n\r\nSo errors can be generated either way:\r\n\r\n```js\r\nvar generateError = require('ut-error').define('ErrorType');\r\n\r\nvar e1 = generateError();\r\nvar e2 = generateError('error message');\r\nvar e3 - generateError({code: 1, message: 'error message'});\r\nvar e4 - generateError(new Error('error message'));\r\n/* i.e.\r\ntry {\r\n somethingWrong();\r\n} catch (e) {\r\n  throw generateError(e);\r\n}\r\n*/\r\n```\r\n\r\n## Recommended pattern for defining errors\r\n\r\nCreate a file errors.js in your module, having contents following this pattern:\r\n\r\n```js\r\n'use strict';\r\nconst create = require('ut-error').define;\r\nconst Category1 = create('category1');\r\nconst Category2 = create('category2');\r\n\r\nmodule.exports = {\r\n    category1: Category1,\r\n    errorA: create('errorA', Category1, 'Default error message 1'),\r\n    errorB: create('errorB', Category1, 'Default error message 2'),\r\n    errorC: create('errorC', Category1, 'Default error message 3'),\r\n    category2: Category2,\r\n    errorD: create('errorD', Category2, 'Default error message 4'),\r\n    errorE: create('errorE', Category2, 'Default error message 5'),\r\n    errorF: create('errorF', Category2, 'Error in {parameterName}')\r\n};\r\n```\r\n\r\nUse the errors, following these patterns:\r\n\r\n```js\r\nvar errors = require('./errors');\r\n\r\nfunction f1(){\r\n    throw errors.errorA();\r\n}\r\n\r\nfunction f2(){\r\n    throw errors.errorF({params: {parameterName: 'f2'}});\r\n}\r\n\r\nfunction f3(){\r\n    throw errors.errorF({params: {parameterName: 'f3'}});\r\n}\r\n\r\nfunction f4(){\r\n    try {\r\n        doSomething();\r\n    } catch (e) {\r\n        throw errors.errorB(e);\r\n    }\r\n}\r\n\r\nfunction f5(){\r\n    throw errors.errorB('Custom error message');\r\n}\r\n\r\nfunction f6(){\r\n    return Promise.reject(errors.errorC());\r\n}\r\n\r\n```\r\n","readmeFilename":"README.md","gitHead":"d465fb71d26313a1a84dbaa362b9ab23e60ddafa","bugs":{"url":"https://github.com/softwaregroup-bg/ut-error/issues"},"homepage":"https://github.com/softwaregroup-bg/ut-error#readme","_id":"ut-error@5.5.0-rc-cubalibre.0","_shasum":"4d177d13da7d001f52b064b45c1f20b35c5f5f72","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.12.3","_npmUser":{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"},"dist":{"shasum":"4d177d13da7d001f52b064b45c1f20b35c5f5f72","tarball":"https://registry.npmjs.org/ut-error/-/ut-error-5.5.0-rc-cubalibre.0.tgz","fileCount":24,"unpackedSize":53888,"integrity":"sha512-tiYXpqLRjqwl9G0tjog2BphWRO8NoGGno4MHmy94M0u6acx2mTYiD93IcMlsQK9aiAmX9ATy6waoyI3/awqczA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCzNFeSDcqR9sScxofCFqTTknr/UDl0MVNAHPYZxQjAzQIhAMIoq0QZnPNP4CCfqtKIFYaFo06Wlj8YLBmW7tHgJam1"}]},"maintainers":[{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ut-error_5.5.0-rc-cubalibre.0_1522245862216_0.5792488897693291"},"_hasShrinkwrap":false},"5.5.0-rc-cubalibre.1":{"name":"ut-error","version":"5.5.0-rc-cubalibre.1","dependencies":{},"devDependencies":{"ut-tools":"^5.6.0"},"description":"UT error module","scripts":{"lint":"ut-lint .","release":"ut-release","changelog":"ut-changelog","check":"ut-check","cover":"ut-cover","lint-js":"ut-lint-js .","postpublish":"ut-postpublish","postversion":"ut-postversion","precommit":"ut-precommit","prepublish":"ut-prepublish","prepush":"ut-prepush","pretest":"ut-pretest","preversion":"ut-preversion","precover":"ut-precover","test":"ut-test","version":"ut-version","jenkins":"ut-jenkins","gitlab":"ut-gitlab"},"repository":{"type":"git","url":"git+ssh://git@github.com/softwaregroup-bg/ut-error.git"},"license":"Apache-2.0","readme":"# UT Error\r\n\r\nut-error is a module that should be used for generating errors everywhere within the ut-bus framework and all implementations based upon it. This is a module that offers functionalities for better error handling in the background and gives possibilities for dynamic error classes declaration and hierarchical chaining.\r\n\r\nut-error should be used mainly through its 'define' method. For example:\r\n\r\n```js\r\nvar utError = require('ut-error');\r\n\r\nvar ErrorType1 = utError.define('ErrorType1');\r\n\r\nvar ErrorType2 = utError.define('ErrorType2', errorType1);\r\n\r\nvar ErrorType3 = utError.define('ErrorType3', errorType2);\r\n\r\n```\r\n\r\nThe define method will create a new error type or will just return it if it was previously defined. It will also build the hierarchy between the error classes automatically.\r\nAfter defining the error types, the errors themselves can be instantiated as follows:\r\n\r\n```js\r\nvar e1 = ErrorType1('e1 message');\r\n// same as:\r\n//var e1 = new ErrorType1('e1 message');\r\nvar e2 = ErrorType1('e2 message');\r\nvar e3 = ErrorType1('e3 message');\r\n```\r\n\r\nThe errors are actually real 'Error' objects but additionally the following inheritance is achieved:\r\n\r\n```js\r\nconsole.log(e1 instnaceof Error) // -> true\r\nconsole.log(e1 instnaceof ErrorType1) // -> true\r\n\r\nconsole.log(e2 instnaceof Error) // -> true\r\nconsole.log(e2 instnaceof ErrorType1) // -> true\r\nconsole.log(e2 instnaceof ErrorType2) // -> true\r\n\r\nconsole.log(e3 instnaceof Error) // -> true\r\nconsole.log(e3 instnaceof ErrorType1) // -> true\r\nconsole.log(e3 instnaceof ErrorType2) // -> true\r\nconsole.log(e3 instnaceof ErrorType3) // -> true\r\n```\r\n\r\nAnd the 'type' properties of the error instances themselves are as follows.\r\n\r\n```js\r\nconsole.log(e1.type) // -> 'ErrorType1'\r\nconsole.log(e2.type) // -> 'ErrorType1.ErrorType2'\r\nconsole.log(e3.type) // -> 'ErrorType1.ErrorType2.ErrorType3'\r\n```\r\n\r\nThe 'define' method accepts 2 arguments: `name` and `superType`, where:\r\n\r\n- `name` (required) is a string, specifying the name of the error class ()\r\n- `superType` (optional - if inheritance is desired) is a function (i.e an already defined errorType class) or a string, representing the type of an already defined errorType class.\r\n\r\nsuperType can accept either a function or a string, which means that:\r\n\r\n```js\r\nvar utError = require('ut-error');\r\n\r\nvar ErrorType1 = utError.define('ErrorType1');\r\n\r\nvar ErrorType2 = utError.define('ErrorType2', errorType1);\r\n/* is the same as:\r\nvar ErrorType2 = utError.define('ErrorType2', 'ErrorType1');\r\n*/\r\n\r\nvar ErrorType3 = utError.define('ErrorType3', errorType2);\r\n/* is the same as:\r\nvar ErrorType3 = utError.define('ErrorType3', 'ErrorType1.ErrorType2');\r\n*/\r\n```\r\n\r\nThe error constructors that get generated accept only 1 argument but that argument is actually very flexible: it can be undefined, string, object or even a real javascript exception.\r\n\r\nSo errors can be generated either way:\r\n\r\n```js\r\nvar generateError = require('ut-error').define('ErrorType');\r\n\r\nvar e1 = generateError();\r\nvar e2 = generateError('error message');\r\nvar e3 - generateError({code: 1, message: 'error message'});\r\nvar e4 - generateError(new Error('error message'));\r\n/* i.e.\r\ntry {\r\n somethingWrong();\r\n} catch (e) {\r\n  throw generateError(e);\r\n}\r\n*/\r\n```\r\n\r\n## Recommended pattern for defining errors\r\n\r\nCreate a file errors.js in your module, having contents following this pattern:\r\n\r\n```js\r\n'use strict';\r\nconst create = require('ut-error').define;\r\nconst Category1 = create('category1');\r\nconst Category2 = create('category2');\r\n\r\nmodule.exports = {\r\n    category1: Category1,\r\n    errorA: create('errorA', Category1, 'Default error message 1'),\r\n    errorB: create('errorB', Category1, 'Default error message 2'),\r\n    errorC: create('errorC', Category1, 'Default error message 3'),\r\n    category2: Category2,\r\n    errorD: create('errorD', Category2, 'Default error message 4'),\r\n    errorE: create('errorE', Category2, 'Default error message 5'),\r\n    errorF: create('errorF', Category2, 'Error in {parameterName}')\r\n};\r\n```\r\n\r\nUse the errors, following these patterns:\r\n\r\n```js\r\nvar errors = require('./errors');\r\n\r\nfunction f1(){\r\n    throw errors.errorA();\r\n}\r\n\r\nfunction f2(){\r\n    throw errors.errorF({params: {parameterName: 'f2'}});\r\n}\r\n\r\nfunction f3(){\r\n    throw errors.errorF({params: {parameterName: 'f3'}});\r\n}\r\n\r\nfunction f4(){\r\n    try {\r\n        doSomething();\r\n    } catch (e) {\r\n        throw errors.errorB(e);\r\n    }\r\n}\r\n\r\nfunction f5(){\r\n    throw errors.errorB('Custom error message');\r\n}\r\n\r\nfunction f6(){\r\n    return Promise.reject(errors.errorC());\r\n}\r\n\r\n```\r\n","readmeFilename":"README.md","gitHead":"113a68a5a8577026000818ebb442480bcc9e3304","bugs":{"url":"https://github.com/softwaregroup-bg/ut-error/issues"},"homepage":"https://github.com/softwaregroup-bg/ut-error#readme","_id":"ut-error@5.5.0-rc-cubalibre.1","_shasum":"f2654061458e2ac6d4c1cead2ba3412aac155a77","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.12.3","_npmUser":{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"},"dist":{"shasum":"f2654061458e2ac6d4c1cead2ba3412aac155a77","tarball":"https://registry.npmjs.org/ut-error/-/ut-error-5.5.0-rc-cubalibre.1.tgz","fileCount":24,"unpackedSize":53897,"integrity":"sha512-02R7/+r6KrDyjoOnO1uRj7sTwNEdXIPSjYdSjIaN8IB62tyw7Zf7BkFvqMnyBqJ3GSKq260MFt0hs/qGKOsy6Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID2/alc7VNUo+0ax9ZKl/2apAJZRlJBvjjnpAAQTvpnrAiBm5XTb16R1RB6DXerXPApKleGM2nnD5QTBZyTqq9wNfA=="}]},"maintainers":[{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ut-error_5.5.0-rc-cubalibre.1_1522394033572_0.5004502347723747"},"_hasShrinkwrap":false},"5.5.0":{"name":"ut-error","version":"5.5.0","dependencies":{},"devDependencies":{"ut-tools":"^5.6.0"},"description":"UT error module","scripts":{"lint":"ut-lint .","release":"ut-release","changelog":"ut-changelog","check":"ut-check","cover":"ut-cover","lint-js":"ut-lint-js .","postpublish":"ut-postpublish","postversion":"ut-postversion","precommit":"ut-precommit","prepublish":"ut-prepublish","prepush":"ut-prepush","pretest":"ut-pretest","preversion":"ut-preversion","precover":"ut-precover","test":"ut-test","version":"ut-version","jenkins":"ut-jenkins","gitlab":"ut-gitlab"},"repository":{"type":"git","url":"git+ssh://git@github.com/softwaregroup-bg/ut-error.git"},"license":"Apache-2.0","gitHead":"f37b8698059e54018b8be834910311f27811b015","bugs":{"url":"https://github.com/softwaregroup-bg/ut-error/issues"},"homepage":"https://github.com/softwaregroup-bg/ut-error#readme","_id":"ut-error@5.5.0","_shasum":"af59629e0ff0db317f808ebdadbd21c1ddfa30b5","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.12.3","_npmUser":{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"},"dist":{"shasum":"af59629e0ff0db317f808ebdadbd21c1ddfa30b5","tarball":"https://registry.npmjs.org/ut-error/-/ut-error-5.5.0.tgz","fileCount":24,"unpackedSize":54080,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa1dFHCRA9TVsSAnZWagAAGSAP/Rg7y+OtlvQsoz3p0Hau\nOBY6Q/0n59tTZbevqCmttmkDNBbMGcL1WG9ud6iwSgUrTAUZs8Y7zbQU76SH\n/qcVsqlUE8n4MmGE0h4h6NX2W+kvBKAPYWL9tILeuXx+bfTtLp6h4Ub3JWaL\nz+hFdWokuRo2j5Lg8AWZrDKEJ1pnZrbvxeQgSLxuVK4L9u2DuhOUJD4VBMAZ\nghgaRki5KT5gFnV7HjQTV7F7Tp4PvWdnFKcwMz9e1LQhemNwQSE/GNuSTiAA\nDylHxHJqC6SnL/+qiJ4kllDvL4KQLkgugfIbqvvyF4krS5s43b3qEMjF5wiq\nryd0s9er+ZEEEJGZDuxM8zPZKhEgoSbk/2kcl60+AzTlYc3fy3T6KJs14bxX\nkCU8e4F3zVZ9faMTS4Mo6/5fyLnS/yuNsE2qKXEA66YQbd0/DWh5me747hD1\n4ibmC+2VVnwDW0tHMWIhPb8iOB5Agu8Rm2X0id9qfaV2hkKW1xor5LVQKRwv\n2OmDEDGledMWFzWNOINQ3Kpqoy4Uiv7k5DAc+1F+QAv9XxjoqJXALMHUp/Qf\nD1kzM0ntQQumeskVXbWuH7JMk42flV45UA+QXxEKK0pj0GYswEDmVufrqq1t\n0CWUYkpIkAxJ/+4X8D4VlayA4Dt2bt1dGrmzBGrLKMANTCPDRXzcJe9JGv3A\nw0MT\r\n=Nj8T\r\n-----END PGP SIGNATURE-----\r\n","integrity":"sha512-K39UWT6EQg0+JaBcuyKzpjwxL7jdOiHEnKIXi4bX0LB2pSgZVOhTJmA07VkM0gyGLeK+fAb6tqQMc2bXaWCdag==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD8TXFqwmt8HhBapix9jpOQDkvai3Xii0Qx1ddL3Z/X6gIhAJszQrwe03arqMlUF03JynQ19k+8vikSdCLyRecFLRGe"}]},"maintainers":[{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ut-error_5.5.0_1523962183121_0.8081942776370656"},"_hasShrinkwrap":false},"5.6.0":{"name":"ut-error","version":"5.6.0","dependencies":{},"devDependencies":{"ut-tools":"^5.32.10"},"description":"UT error module","scripts":{"lint":"ut-lint .","release":"ut-release","changelog":"ut-changelog","check":"ut-check","cover":"ut-cover","lint-js":"ut-lint-js .","postpublish":"ut-postpublish","postversion":"ut-postversion","precommit":"ut-precommit","prepublish":"ut-prepublish","prepush":"ut-prepush","pretest":"ut-pretest","preversion":"ut-preversion","precover":"ut-precover","test":"ut-test","version":"ut-version","jenkins":"ut-jenkins","gitlab":"ut-gitlab"},"repository":{"type":"git","url":"git+ssh://git@github.com/softwaregroup-bg/ut-error.git"},"license":"Apache-2.0","gitHead":"28adbc373f21e09c51053f75d271d214c2ff7e84","bugs":{"url":"https://github.com/softwaregroup-bg/ut-error/issues"},"homepage":"https://github.com/softwaregroup-bg/ut-error#readme","_id":"ut-error@5.6.0","_shasum":"a5b1633aa776014f794a77e4c165fb7516c211fc","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.12.3","_npmUser":{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"},"dist":{"shasum":"a5b1633aa776014f794a77e4c165fb7516c211fc","tarball":"https://registry.npmjs.org/ut-error/-/ut-error-5.6.0.tgz","fileCount":24,"unpackedSize":55661,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa4rxZCRA9TVsSAnZWagAA0yQP/2SI+Hd9c7ubhGPunL39\n+0a/dE/kxkCm4/9wC8Hr8GosIW4r2dlqv134K4Bjib3+pUrLM3UfQZyNLeT/\n8FKJY7sPK7xfk7RXGb4PzEwS0UPEXQeB9/zzfr7Z3LjsIbfJaNltFm8oUv1T\nxKcfLY5lCyOsBNYXdIXLjTXNqaVx6pBfI0u99A3nbw30zQq6GGHya8sU7pQ0\nwkEmBZOHKNlFVM6s4YezgLFDnl6/kLpvZvLuSkrJuQjIIiSMbWjJc9B8I+kQ\nfxb5MBZt/fL8Bhm4AHePd4rbGJSuGn1RvIK/kocX8WFSdlqYQxEJRtBMBcmo\ntI0/mFPRJUwUnp0/c016nDA+FfPJ1SdrzZdsLln/chuC/F7QQS1o822GVlk+\nvvsF+6I1RbA0ycJXRi4m0BGm9whiYQep1uwFv0MJMMvHR/RV8xWe4jg1Y3U3\nW1QYGATVUApR4rsspxLG1BohWH5ZiCTW3+32UJ3gGNXpTKHLnGQ5xSI51n1M\nqnxw4PSm5PTXkb1xiSRL0GqCvMoY1JDMEqVTMPY5GiDw1jJjHch34fzrJH77\nJUHs+lCmMo1/B5a2Mnqq9LpGOWxeXGqRY/fzZs7qVXo0olOrkEg+TfKF2wE5\nEDcxgAwRrT7Bcb1yVWVSHIr/x1HJ/UL1DGRm4b1dhIWWSyI2cu5ZyQzNB+ti\nskp9\r\n=tzNs\r\n-----END PGP SIGNATURE-----\r\n","integrity":"sha512-avfLUqmcodk2btYGXt/RLb7ayVBbQKIIcPD70OrACgjfZlvwwolxG+MO+lAsoUEwRh3s8WuPLpYvDNvoRCbzaw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCOFRLFO/2aQJWwwkKAdtji5NaX2Vbe9ogWGCjZ/JF6BAIhAPoiFBIYaLZxMRIgVquykOhCs5LEPjyFfbQ1Bt+Sm1P7"}]},"maintainers":[{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ut-error_5.6.0_1524808792890_0.39178455109766763"},"_hasShrinkwrap":false},"5.6.1":{"name":"ut-error","version":"5.6.1","dependencies":{},"devDependencies":{"ut-tools":"^5.32.10"},"description":"UT error module","scripts":{"lint":"ut-lint .","release":"ut-release","changelog":"ut-changelog","check":"ut-check","cover":"ut-cover","lint-js":"ut-lint-js .","postpublish":"ut-postpublish","postversion":"ut-postversion","precommit":"ut-precommit","prepublish":"ut-prepublish","prepush":"ut-prepush","pretest":"ut-pretest","preversion":"ut-preversion","precover":"ut-precover","test":"ut-test","version":"ut-version","jenkins":"ut-jenkins","gitlab":"ut-gitlab"},"repository":{"type":"git","url":"git+ssh://git@github.com/softwaregroup-bg/ut-error.git"},"license":"Apache-2.0","gitHead":"58175acf942c291a0779c4c050f07b6f9880201b","bugs":{"url":"https://github.com/softwaregroup-bg/ut-error/issues"},"homepage":"https://github.com/softwaregroup-bg/ut-error#readme","_id":"ut-error@5.6.1","_shasum":"5cfdf9682ce3d8ca6e0276f9eadc7302ef6afaaf","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.12.3","_npmUser":{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"},"dist":{"shasum":"5cfdf9682ce3d8ca6e0276f9eadc7302ef6afaaf","tarball":"https://registry.npmjs.org/ut-error/-/ut-error-5.6.1.tgz","fileCount":24,"unpackedSize":55946,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa4uanCRA9TVsSAnZWagAAK6gQAIfxSicTBM1lfs6ZyLjC\nyo5TGUH5ZO7FUYXh6ApFe513QRy2fKie+jtJxrzRLHhTa3Bjk5dkSijf4pGO\nZyfB0mzDlBm+bR/Ret2M7gfc4fSc/xZgNTywq4hah1QbP9IXEdREsHJDi5ff\n8VNEC34YB1qjkunC4CsgrB+bvxwn6rH9U8IYfxZljWhUdgBMmrAcL1EFeK4L\nz9OE5l8lyiKc6h+jNJOvZW2zoacv18Rd8V+b+DTAc/5562bu6t9SHVtWwr1n\ngC0wt4MeElEerYGzfBNnNJm8onsYpCn547BZIe4DECIaQTC/M9j/XfnxkyUC\nM8yKY5i1x09etUw0BnSUnpzXTqZgoqpA496Oq9fKGDVFc/ObirjakVSrYK1k\nLs+PdFFuETdOdzFQRm+RNGdcJTUXH09zuTLQEV9lJYm1iJBB6DSgBee33C2A\nvHWGzgo3X5thRfwaGjyyaf9vyDk9QQitNWUBu9u78mJoRQIcXh8Nl01mwtA9\nkhTFsL8I8Iv7n/upBs5HR2/BQPaxYex1sQfEdLQU1iaVTLtARUKva5pPAZ1+\ntZd8Uzx8ZBdVo97mLQ20Lag1IR3jp9X4xwHGRaUGplWp8KbLaC1o7tRcix0/\nK0NIhI8S3owoSS/uHRhH8vv8K4LaQwsAm6QIpzI3JZh7bMdhEJmtQj4wTlqD\nT5d7\r\n=pymG\r\n-----END PGP SIGNATURE-----\r\n","integrity":"sha512-t0zbSNQra38OLUNbim475so0Gaw1ooiOHOM+WcEghwYZBY0xmzQ+4NOrke7eRMkuItS6glAXi8YIU63j41E7cQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAoUBdUNH5tSOWGKjrwBS/lM1kTwS+VaNieenvTa6jRJAiEAqEtHg5O53zOAMwN9EmuOWTmPgqrhIsBGWokHShrwBrA="}]},"maintainers":[{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ut-error_5.6.1_1524819622381_0.4999854992651198"},"_hasShrinkwrap":false},"5.6.2":{"name":"ut-error","version":"5.6.2","dependencies":{},"devDependencies":{"ut-tools":"^5.32.10"},"description":"UT error module","scripts":{"lint":"ut-lint .","release":"ut-release","changelog":"ut-changelog","check":"ut-check","cover":"ut-cover","lint-js":"ut-lint-js .","postpublish":"ut-postpublish","postversion":"ut-postversion","precommit":"ut-precommit","prepublish":"ut-prepublish","prepush":"ut-prepush","pretest":"ut-pretest","preversion":"ut-preversion","precover":"ut-precover","test":"ut-test","version":"ut-version","jenkins":"ut-jenkins","gitlab":"ut-gitlab"},"repository":{"type":"git","url":"git+ssh://git@github.com/softwaregroup-bg/ut-error.git"},"license":"Apache-2.0","gitHead":"f0ddf0b6f392fd87de5ad589ce6b4e878abe3716","bugs":{"url":"https://github.com/softwaregroup-bg/ut-error/issues"},"homepage":"https://github.com/softwaregroup-bg/ut-error#readme","_id":"ut-error@5.6.2","_shasum":"9294e92cd56c4eb4c100a3c6b71ff848d8cfa02a","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.12.3","_npmUser":{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"},"dist":{"shasum":"9294e92cd56c4eb4c100a3c6b71ff848d8cfa02a","tarball":"https://registry.npmjs.org/ut-error/-/ut-error-5.6.2.tgz","integrity":"sha512-dThkmQXMIRMUTCi0+tnWH1wZUqDFBuXze78e1D1Q+N41ZmCmui+3mvft+d+LsHDUmIcZu33XFHrNwwhmnEu3XQ==","fileCount":24,"unpackedSize":57363,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbcZzeCRA9TVsSAnZWagAA0d8P/RcEAg3gezFPwNqbfxek\nUyvmmIjDORrWdXkwTX2Fm5/onIbPfWE6eLCkqZxfbis2KKW+F9ICFzyEI8kC\nbXH7PlujbhtertUhCrgMiQLdmHjc5b2x2FGTzJrZ+l53tQ8dIR9ZRxj8krJw\nErb+IfV6ryUMI0QJGJzGw4cDgtLuHnvSKO/eFam52kTxxfJxZIMuzAYQmUcz\nsEjZMmUxqohzYJRItT396SOHMAZ2o0VSRVr2cxZQEy6uyORy/nUMOd5EQzu5\nA6LCdJC5YfIGMKGx1fyhx0qgdZb5T1X01KkppwNIukab4+Ot6si7RDWxGN9H\nRx1K9XMcxwjRYhI7/9FsXRamKqhS0eZa9dJAloSeW0UCde2M7RJdZ4WSfTdY\nsbdqDY4bLCXpItk01Y74VF6MYk0lOfrxjOjAtOfraudEzAUkPpv1KOLOWc0u\niCzARrIoAfnSrWh1iPMK6Ss2QEoNUzkPtYx6nZqJ4hR1pnjlVgf1WpTXxIkh\nQeAi60etluKVjAFoXiRg1vxtrDT+LzBS7OeGMzNvVK9uG0O6r6lPh5SW1Kck\nt8VlPMM2PHDOZo0IeCfMLYe3Oks9Cd9Z4q6RjJmScrGqAHM2aIetNgEueSly\ngZXgBNdy8EXY+cyNPoVPNau6UopqCD0KuvgE2iQ3JuEb1OXdeffbJA8lUFzA\nCM0L\r\n=BHu/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDi48tZW49m+30afavhRphVimWm0q96JY93xVX2HvmiTQIgOqFXeRTWbLG9ccyV6M+DgZq46oSxVrdNmSYj7gJ29PM="}]},"maintainers":[{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ut-error_5.6.2_1534172382441_0.22877569506412265"},"_hasShrinkwrap":false},"5.7.0-rc-godfather.0":{"name":"ut-error","version":"5.7.0-rc-godfather.0","dependencies":{},"devDependencies":{"ut-tools":"^5.32.10"},"description":"UT error module","scripts":{"lint":"ut-lint .","release":"ut-release","changelog":"ut-changelog","check":"ut-check","cover":"ut-cover","lint-js":"ut-lint-js .","postpublish":"ut-postpublish","postversion":"ut-postversion","precommit":"ut-precommit","prepublish":"ut-prepublish","prepush":"ut-prepush","pretest":"ut-pretest","preversion":"ut-preversion","precover":"ut-precover","test":"ut-test","version":"ut-version","jenkins":"ut-jenkins","gitlab":"ut-gitlab"},"repository":{"type":"git","url":"git+ssh://git@github.com/softwaregroup-bg/ut-error.git"},"license":"Apache-2.0","readme":"# UT Error\r\n\r\nut-error is a module that should be used for generating errors everywhere within the ut-bus framework and all implementations based upon it. This is a module that offers functionalities for better error handling in the background and gives possibilities for dynamic error classes declaration and hierarchical chaining.\r\n\r\nut-error should be used mainly through its 'define' method. For example:\r\n\r\n```js\r\nvar utError = require('ut-error');\r\n\r\nvar ErrorType1 = utError.define('ErrorType1');\r\n\r\nvar ErrorType2 = utError.define('ErrorType2', errorType1);\r\n\r\nvar ErrorType3 = utError.define('ErrorType3', errorType2);\r\n\r\n```\r\n\r\nThe define method will create a new error type or will just return it if it was previously defined. It will also build the hierarchy between the error classes automatically.\r\nAfter defining the error types, the errors themselves can be instantiated as follows:\r\n\r\n```js\r\nvar e1 = ErrorType1('e1 message');\r\n// same as:\r\n//var e1 = new ErrorType1('e1 message');\r\nvar e2 = ErrorType1('e2 message');\r\nvar e3 = ErrorType1('e3 message');\r\n```\r\n\r\nThe errors are actually real 'Error' objects but additionally the following inheritance is achieved:\r\n\r\n```js\r\nconsole.log(e1 instnaceof Error) // -> true\r\nconsole.log(e1 instnaceof ErrorType1) // -> true\r\n\r\nconsole.log(e2 instnaceof Error) // -> true\r\nconsole.log(e2 instnaceof ErrorType1) // -> true\r\nconsole.log(e2 instnaceof ErrorType2) // -> true\r\n\r\nconsole.log(e3 instnaceof Error) // -> true\r\nconsole.log(e3 instnaceof ErrorType1) // -> true\r\nconsole.log(e3 instnaceof ErrorType2) // -> true\r\nconsole.log(e3 instnaceof ErrorType3) // -> true\r\n```\r\n\r\nAnd the 'type' properties of the error instances themselves are as follows.\r\n\r\n```js\r\nconsole.log(e1.type) // -> 'ErrorType1'\r\nconsole.log(e2.type) // -> 'ErrorType1.ErrorType2'\r\nconsole.log(e3.type) // -> 'ErrorType1.ErrorType2.ErrorType3'\r\n```\r\n\r\nThe 'define' method accepts 2 arguments: `name` and `superType`, where:\r\n\r\n- `name` (required) is a string, specifying the name of the error class ()\r\n- `superType` (optional - if inheritance is desired) is a function (i.e an already defined errorType class) or a string, representing the type of an already defined errorType class.\r\n\r\nsuperType can accept either a function or a string, which means that:\r\n\r\n```js\r\nvar utError = require('ut-error');\r\n\r\nvar ErrorType1 = utError.define('ErrorType1');\r\n\r\nvar ErrorType2 = utError.define('ErrorType2', errorType1);\r\n/* is the same as:\r\nvar ErrorType2 = utError.define('ErrorType2', 'ErrorType1');\r\n*/\r\n\r\nvar ErrorType3 = utError.define('ErrorType3', errorType2);\r\n/* is the same as:\r\nvar ErrorType3 = utError.define('ErrorType3', 'ErrorType1.ErrorType2');\r\n*/\r\n```\r\n\r\nThe error constructors that get generated accept only 1 argument but that argument is actually very flexible: it can be undefined, string, object or even a real javascript exception.\r\n\r\nSo errors can be generated either way:\r\n\r\n```js\r\nvar generateError = require('ut-error').define('ErrorType');\r\n\r\nvar e1 = generateError();\r\nvar e2 = generateError('error message');\r\nvar e3 - generateError({code: 1, message: 'error message'});\r\nvar e4 - generateError(new Error('error message'));\r\n/* i.e.\r\ntry {\r\n somethingWrong();\r\n} catch (e) {\r\n  throw generateError(e);\r\n}\r\n*/\r\n```\r\n\r\n## Recommended pattern for defining errors\r\n\r\nCreate a file errors.js in your module, having contents following this pattern:\r\n\r\n```js\r\n'use strict';\r\nconst create = require('ut-error').define;\r\nconst Category1 = create('category1');\r\nconst Category2 = create('category2');\r\n\r\nmodule.exports = {\r\n    category1: Category1,\r\n    errorA: create('errorA', Category1, 'Default error message 1'),\r\n    errorB: create('errorB', Category1, 'Default error message 2'),\r\n    errorC: create('errorC', Category1, 'Default error message 3'),\r\n    category2: Category2,\r\n    errorD: create('errorD', Category2, 'Default error message 4'),\r\n    errorE: create('errorE', Category2, 'Default error message 5'),\r\n    errorF: create('errorF', Category2, 'Error in {parameterName}')\r\n};\r\n```\r\n\r\nUse the errors, following these patterns:\r\n\r\n```js\r\nvar errors = require('./errors');\r\n\r\nfunction f1(){\r\n    throw errors.errorA();\r\n}\r\n\r\nfunction f2(){\r\n    throw errors.errorF({params: {parameterName: 'f2'}});\r\n}\r\n\r\nfunction f3(){\r\n    throw errors.errorF({params: {parameterName: 'f3'}});\r\n}\r\n\r\nfunction f4(){\r\n    try {\r\n        doSomething();\r\n    } catch (e) {\r\n        throw errors.errorB(e);\r\n    }\r\n}\r\n\r\nfunction f5(){\r\n    throw errors.errorB('Custom error message');\r\n}\r\n\r\nfunction f6(){\r\n    return Promise.reject(errors.errorC());\r\n}\r\n\r\n```\r\n## Error fields\r\n\r\nA serialized error is represented by the following JSON\r\n\r\n```\r\n{\r\n    \"cause\": {\r\n        \"message\": \"No connection\",\r\n        \"type\": \"port.notConnected\",\r\n        \"level\": \"error\"\r\n    },\r\n    \"message\": \"Crypto health error\",\r\n    \"type\": \"crypto.health\",\r\n    \"level\": \"error\",\r\n    \"method\": \"crypto.health.check\"\r\n}\r\n```\r\n\r\n| Property | Type  | Required  | Description |\r\n| :-----:  | :----: | :--: | :-: |\r\n| cause    | String | no   | In case another error caused this error. This allows for error chaining as the inner error can also have a cause and so on. |\r\n| message  | String | yes  | Human readable error message |\r\n| type     | String | yes  | The error's unique identifier. Each error has an unique type. The type can also illustrates the error class hierarchy - in case there is an error which is an instance of class B with type 'b' inheriting class A with type 'a' then the error would have type: 'a.b'  |\r\n| level    | String | no   | The error serverity level - could be error, fatal, etc. for additional classification |\r\n| method   | String | no   | in the context of what method had the error been raised  |\r\n\r\n","readmeFilename":"README.md","gitHead":"369347c0e3a71fc226ebadb087013b22be1d8907","bugs":{"url":"https://github.com/softwaregroup-bg/ut-error/issues"},"homepage":"https://github.com/softwaregroup-bg/ut-error#readme","_id":"ut-error@5.7.0-rc-godfather.0","_shasum":"e251e5c10ad757c287bda329c0c9cfeab11a78f0","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.12.3","_npmUser":{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"},"dist":{"shasum":"e251e5c10ad757c287bda329c0c9cfeab11a78f0","tarball":"https://registry.npmjs.org/ut-error/-/ut-error-5.7.0-rc-godfather.0.tgz","integrity":"sha512-dcAlx7ObTkD129IM28IJ7GYJ4Fos7YbCgwAnya7glWsr9YZ2ajIoqAzXYL1CJwa1McSQ9EzTJijMLk0HD9B94w==","fileCount":23,"unpackedSize":55445,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJboyySCRA9TVsSAnZWagAAkFcP/RhUCIj8ZNxaGd0WdbMi\n1QIt4k57tJvz69YEiKqop7OSHqdyxiMGHdYv5ZFrwaKBz4BIB3oC8pasUkth\njFxO84HtHnCyb+w0o541ZaMlJ7YwDesVrgZgzHXH110qbIYeIZlp/Xglr9C/\n5R4mrIJqi3kdBLb5BoMVO0XJ8wIlFYo151m8/o0ah+zd85ANgaxxyB5Cb/kN\ni7+1hm8ExrcYrRSSmjek/UKDK2iYZ0ru43VyBqyuPHkp6tNw7eupYkoXmqam\nQuL4DebVKEouFKZr9E4BVjXm6Lc0XzWTKqmzqxIJDxzhczBqz5u5rhFNLCFZ\nk7aHZGd3z4JXj+9KZq3Z6sz65Uwf9eN1TvZNVFLoRAa5JFmUJiJZCXkqB11r\nS5z7abvx7ZBvocpqIL86I3a3UUC90CyXTXX67ZM2l3e6pLmY28cOluu7cIie\neM0yoNG5eskokaSzpOG9fFNPg7lLj2iZN/jMoAFpKph+o6BmRkctsNAbh6R5\nAb0AUx4RRJHI192cX0S6FKeenSrWUa0LATuuXHGjUI4C8ZLE7jod+fy4W65q\nbaoCBqK7fR3uubFUVE1y1ZnZztqeEzZIEJu9X/zI3U1QF1jjtkVAZkpelPvB\n2Bo8ocBdeKLi786C0TpMVf25MM+zVughw77Voa4OFq8NtMA+ar/cuC99Q2HN\nQXds\r\n=NZSL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC7ZiPYp38bWrdEchLdHkpJN8TCTSRFvqjJZCj8Tz0bHAIhAPRk89/JosL8TIRYTnkh5P+f76ZAWb4xMLZ4BnOkVZCI"}]},"maintainers":[{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ut-error_5.7.0-rc-godfather.0_1537420434275_0.6986643401037653"},"_hasShrinkwrap":false},"5.7.0-rc-godfather.1":{"name":"ut-error","version":"5.7.0-rc-godfather.1","dependencies":{},"devDependencies":{"ut-tools":"^5.32.10"},"description":"UT error module","scripts":{"lint":"ut-lint .","release":"ut-release","changelog":"ut-changelog","check":"ut-check","cover":"ut-cover","lint-js":"ut-lint-js .","postpublish":"ut-postpublish","postversion":"ut-postversion","precommit":"ut-precommit","prepublish":"ut-prepublish","prepush":"ut-prepush","pretest":"ut-pretest","preversion":"ut-preversion","precover":"ut-precover","test":"ut-test","version":"ut-version","jenkins":"ut-jenkins","gitlab":"ut-gitlab"},"repository":{"type":"git","url":"git+ssh://git@github.com/softwaregroup-bg/ut-error.git"},"license":"Apache-2.0","readme":"# UT Error\r\n\r\nut-error is a module that should be used for generating errors everywhere within the ut-bus framework and all implementations based upon it. This is a module that offers functionalities for better error handling in the background and gives possibilities for dynamic error classes declaration and hierarchical chaining.\r\n\r\nut-error should be used mainly through its 'define' method. For example:\r\n\r\n```js\r\nvar utError = require('ut-error');\r\n\r\nvar ErrorType1 = utError.define('ErrorType1');\r\n\r\nvar ErrorType2 = utError.define('ErrorType2', errorType1);\r\n\r\nvar ErrorType3 = utError.define('ErrorType3', errorType2);\r\n\r\n```\r\n\r\nThe define method will create a new error type or will just return it if it was previously defined. It will also build the hierarchy between the error classes automatically.\r\nAfter defining the error types, the errors themselves can be instantiated as follows:\r\n\r\n```js\r\nvar e1 = ErrorType1('e1 message');\r\n// same as:\r\n//var e1 = new ErrorType1('e1 message');\r\nvar e2 = ErrorType1('e2 message');\r\nvar e3 = ErrorType1('e3 message');\r\n```\r\n\r\nThe errors are actually real 'Error' objects but additionally the following inheritance is achieved:\r\n\r\n```js\r\nconsole.log(e1 instnaceof Error) // -> true\r\nconsole.log(e1 instnaceof ErrorType1) // -> true\r\n\r\nconsole.log(e2 instnaceof Error) // -> true\r\nconsole.log(e2 instnaceof ErrorType1) // -> true\r\nconsole.log(e2 instnaceof ErrorType2) // -> true\r\n\r\nconsole.log(e3 instnaceof Error) // -> true\r\nconsole.log(e3 instnaceof ErrorType1) // -> true\r\nconsole.log(e3 instnaceof ErrorType2) // -> true\r\nconsole.log(e3 instnaceof ErrorType3) // -> true\r\n```\r\n\r\nAnd the 'type' properties of the error instances themselves are as follows.\r\n\r\n```js\r\nconsole.log(e1.type) // -> 'ErrorType1'\r\nconsole.log(e2.type) // -> 'ErrorType1.ErrorType2'\r\nconsole.log(e3.type) // -> 'ErrorType1.ErrorType2.ErrorType3'\r\n```\r\n\r\nThe 'define' method accepts 2 arguments: `name` and `superType`, where:\r\n\r\n- `name` (required) is a string, specifying the name of the error class ()\r\n- `superType` (optional - if inheritance is desired) is a function (i.e an already defined errorType class) or a string, representing the type of an already defined errorType class.\r\n\r\nsuperType can accept either a function or a string, which means that:\r\n\r\n```js\r\nvar utError = require('ut-error');\r\n\r\nvar ErrorType1 = utError.define('ErrorType1');\r\n\r\nvar ErrorType2 = utError.define('ErrorType2', errorType1);\r\n/* is the same as:\r\nvar ErrorType2 = utError.define('ErrorType2', 'ErrorType1');\r\n*/\r\n\r\nvar ErrorType3 = utError.define('ErrorType3', errorType2);\r\n/* is the same as:\r\nvar ErrorType3 = utError.define('ErrorType3', 'ErrorType1.ErrorType2');\r\n*/\r\n```\r\n\r\nThe error constructors that get generated accept only 1 argument but that argument is actually very flexible: it can be undefined, string, object or even a real javascript exception.\r\n\r\nSo errors can be generated either way:\r\n\r\n```js\r\nvar generateError = require('ut-error').define('ErrorType');\r\n\r\nvar e1 = generateError();\r\nvar e2 = generateError('error message');\r\nvar e3 - generateError({code: 1, message: 'error message'});\r\nvar e4 - generateError(new Error('error message'));\r\n/* i.e.\r\ntry {\r\n somethingWrong();\r\n} catch (e) {\r\n  throw generateError(e);\r\n}\r\n*/\r\n```\r\n\r\n## Recommended pattern for defining errors\r\n\r\nCreate a file errors.js in your module, having contents following this pattern:\r\n\r\n```js\r\n'use strict';\r\nconst create = require('ut-error').define;\r\nconst Category1 = create('category1');\r\nconst Category2 = create('category2');\r\n\r\nmodule.exports = {\r\n    category1: Category1,\r\n    errorA: create('errorA', Category1, 'Default error message 1'),\r\n    errorB: create('errorB', Category1, 'Default error message 2'),\r\n    errorC: create('errorC', Category1, 'Default error message 3'),\r\n    category2: Category2,\r\n    errorD: create('errorD', Category2, 'Default error message 4'),\r\n    errorE: create('errorE', Category2, 'Default error message 5'),\r\n    errorF: create('errorF', Category2, 'Error in {parameterName}')\r\n};\r\n```\r\n\r\nUse the errors, following these patterns:\r\n\r\n```js\r\nvar errors = require('./errors');\r\n\r\nfunction f1(){\r\n    throw errors.errorA();\r\n}\r\n\r\nfunction f2(){\r\n    throw errors.errorF({params: {parameterName: 'f2'}});\r\n}\r\n\r\nfunction f3(){\r\n    throw errors.errorF({params: {parameterName: 'f3'}});\r\n}\r\n\r\nfunction f4(){\r\n    try {\r\n        doSomething();\r\n    } catch (e) {\r\n        throw errors.errorB(e);\r\n    }\r\n}\r\n\r\nfunction f5(){\r\n    throw errors.errorB('Custom error message');\r\n}\r\n\r\nfunction f6(){\r\n    return Promise.reject(errors.errorC());\r\n}\r\n\r\n```\r\n## Error fields\r\n\r\nA serialized error is represented by the following JSON\r\n\r\n```\r\n{\r\n    \"cause\": {\r\n        \"message\": \"No connection\",\r\n        \"type\": \"port.notConnected\",\r\n        \"level\": \"error\"\r\n    },\r\n    \"message\": \"Crypto health error\",\r\n    \"type\": \"crypto.health\",\r\n    \"level\": \"error\",\r\n    \"method\": \"crypto.health.check\"\r\n}\r\n```\r\n\r\n| Property | Type  | Required  | Description |\r\n| :-----:  | :----: | :--: | :-: |\r\n| cause    | String | no   | In case another error caused this error. This allows for error chaining as the inner error can also have a cause and so on. |\r\n| message  | String | yes  | Human readable error message |\r\n| type     | String | yes  | The error's unique identifier. Each error has an unique type. The type can also illustrates the error class hierarchy - in case there is an error which is an instance of class B with type 'b' inheriting class A with type 'a' then the error would have type: 'a.b'  |\r\n| level    | String | no   | The error serverity level - could be error, fatal, etc. for additional classification |\r\n| method   | String | no   | in the context of what method had the error been raised  |\r\n\r\n","readmeFilename":"README.md","gitHead":"15083e34776447c968e1430f79978d250ce656d1","bugs":{"url":"https://github.com/softwaregroup-bg/ut-error/issues"},"homepage":"https://github.com/softwaregroup-bg/ut-error#readme","_id":"ut-error@5.7.0-rc-godfather.1","_shasum":"233f7d5b1e1326d0ce0822900afde35ccdac6361","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.12.3","_npmUser":{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"},"dist":{"shasum":"233f7d5b1e1326d0ce0822900afde35ccdac6361","tarball":"https://registry.npmjs.org/ut-error/-/ut-error-5.7.0-rc-godfather.1.tgz","integrity":"sha512-V9RVDf7+OeQVmx2szEny2aNXluvFlbPmHzZOM72+L1XNWWuwxcfAU4DhiORXFsLMZWZ/A+pFvQDC5RVhIh9m6w==","fileCount":23,"unpackedSize":55459,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbqcZdCRA9TVsSAnZWagAACW0P/iaC9B4LHCc9CcrR/EDn\nbC8ZsTEwCPgdcxjub2I9a2ja5sist73RKC/EqSbe9JjGnmpZBxditna9Y3a1\n5dKWB7yG18Ipkq9iOhsco6A4eU6odBJHxMMyTgN3qi8pPBpUJvJTyg9jbl7d\n9VflqD2U6mYQvXK8sOb8boAZuzqDiQO0Dc6PxZx8IvrH7KdSgBoo70kvhVuS\nPPdpqwNLgNfttQChS43v0KULWiIvmcx14HrjwwI8bJIK/diJCDqVcXOsgNrW\nY5AY5L9/a7NGGBNaM6DEg/ls8Slaf+z4WTYqRRPEKDqPNLrHtxB/X+qZcMn6\n85/1czh3SxaxAJx5d6+pnamuCH95W7mNvGcHnHQreDCxU5QaEKFMNGhCsL9Z\nlVBHZnXOmNs+IObGL1MZ9oW/p4wZSRfyRfE10ScnObjzaueiBz7af0C3D+ot\njdHbucAG5jtxzAwPeU9cXDLGiedDSVinwGkWPpxtK8g5K4Kxx9ZoR89XNfYR\ntxMdZ4KuKGf5g7xpeZAYWGc0njQal6nTSY/E7DEEGPb5IaxqLJdMOqL7m2gk\n2lCPAMg39+9HAHoCGT22NJqV45+BKlhK8VLfmRFEMFjcYosmU/sgEv2cgvCn\nEe7S+/xnMGTnX6uSuD+OG24lIkSKrWqSu2m+YLp6LeXPcUCHbyx7cYQYXfTh\nasBd\r\n=V2t6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGTPTgVmm6ktcl3/iOfNUmIMspxwX3zhmHKA3vetTFxeAiEAiEKpTCyIMJi9nhiSHF3jGxEGml0CKf37c5JcMi97CxY="}]},"maintainers":[{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ut-error_5.7.0-rc-godfather.1_1537853020892_0.2646062679216217"},"_hasShrinkwrap":false},"5.7.0-rc-godfather.2":{"name":"ut-error","version":"5.7.0-rc-godfather.2","dependencies":{},"devDependencies":{"ut-tools":"^5.32.10"},"description":"UT error module","scripts":{"lint":"ut-lint .","release":"ut-release","changelog":"ut-changelog","check":"ut-check","cover":"ut-cover","lint-js":"ut-lint-js .","postpublish":"ut-postpublish","postversion":"ut-postversion","precommit":"ut-precommit","prepublish":"ut-prepublish","prepush":"ut-prepush","pretest":"ut-pretest","preversion":"ut-preversion","precover":"ut-precover","test":"ut-test","version":"ut-version","jenkins":"ut-jenkins","gitlab":"ut-gitlab"},"repository":{"type":"git","url":"git+ssh://git@github.com/softwaregroup-bg/ut-error.git"},"license":"Apache-2.0","readme":"# UT Error\r\n\r\nut-error is a module that should be used for generating errors everywhere within the ut-bus framework and all implementations based upon it. This is a module that offers functionalities for better error handling in the background and gives possibilities for dynamic error classes declaration and hierarchical chaining.\r\n\r\nut-error should be used mainly through its 'define' method. For example:\r\n\r\n```js\r\nvar utError = require('ut-error');\r\n\r\nvar ErrorType1 = utError.define('ErrorType1');\r\n\r\nvar ErrorType2 = utError.define('ErrorType2', errorType1);\r\n\r\nvar ErrorType3 = utError.define('ErrorType3', errorType2);\r\n\r\n```\r\n\r\nThe define method will create a new error type or will just return it if it was previously defined. It will also build the hierarchy between the error classes automatically.\r\nAfter defining the error types, the errors themselves can be instantiated as follows:\r\n\r\n```js\r\nvar e1 = ErrorType1('e1 message');\r\n// same as:\r\n//var e1 = new ErrorType1('e1 message');\r\nvar e2 = ErrorType1('e2 message');\r\nvar e3 = ErrorType1('e3 message');\r\n```\r\n\r\nThe errors are actually real 'Error' objects but additionally the following inheritance is achieved:\r\n\r\n```js\r\nconsole.log(e1 instnaceof Error) // -> true\r\nconsole.log(e1 instnaceof ErrorType1) // -> true\r\n\r\nconsole.log(e2 instnaceof Error) // -> true\r\nconsole.log(e2 instnaceof ErrorType1) // -> true\r\nconsole.log(e2 instnaceof ErrorType2) // -> true\r\n\r\nconsole.log(e3 instnaceof Error) // -> true\r\nconsole.log(e3 instnaceof ErrorType1) // -> true\r\nconsole.log(e3 instnaceof ErrorType2) // -> true\r\nconsole.log(e3 instnaceof ErrorType3) // -> true\r\n```\r\n\r\nAnd the 'type' properties of the error instances themselves are as follows.\r\n\r\n```js\r\nconsole.log(e1.type) // -> 'ErrorType1'\r\nconsole.log(e2.type) // -> 'ErrorType1.ErrorType2'\r\nconsole.log(e3.type) // -> 'ErrorType1.ErrorType2.ErrorType3'\r\n```\r\n\r\nThe 'define' method accepts 2 arguments: `name` and `superType`, where:\r\n\r\n- `name` (required) is a string, specifying the name of the error class ()\r\n- `superType` (optional - if inheritance is desired) is a function (i.e an already defined errorType class) or a string, representing the type of an already defined errorType class.\r\n\r\nsuperType can accept either a function or a string, which means that:\r\n\r\n```js\r\nvar utError = require('ut-error');\r\n\r\nvar ErrorType1 = utError.define('ErrorType1');\r\n\r\nvar ErrorType2 = utError.define('ErrorType2', errorType1);\r\n/* is the same as:\r\nvar ErrorType2 = utError.define('ErrorType2', 'ErrorType1');\r\n*/\r\n\r\nvar ErrorType3 = utError.define('ErrorType3', errorType2);\r\n/* is the same as:\r\nvar ErrorType3 = utError.define('ErrorType3', 'ErrorType1.ErrorType2');\r\n*/\r\n```\r\n\r\nThe error constructors that get generated accept only 1 argument but that argument is actually very flexible: it can be undefined, string, object or even a real javascript exception.\r\n\r\nSo errors can be generated either way:\r\n\r\n```js\r\nvar generateError = require('ut-error').define('ErrorType');\r\n\r\nvar e1 = generateError();\r\nvar e2 = generateError('error message');\r\nvar e3 - generateError({code: 1, message: 'error message'});\r\nvar e4 - generateError(new Error('error message'));\r\n/* i.e.\r\ntry {\r\n somethingWrong();\r\n} catch (e) {\r\n  throw generateError(e);\r\n}\r\n*/\r\n```\r\n\r\n## Recommended pattern for defining errors\r\n\r\nCreate a file errors.js in your module, having contents following this pattern:\r\n\r\n```js\r\n'use strict';\r\nconst create = require('ut-error').define;\r\nconst Category1 = create('category1');\r\nconst Category2 = create('category2');\r\n\r\nmodule.exports = {\r\n    category1: Category1,\r\n    errorA: create('errorA', Category1, 'Default error message 1'),\r\n    errorB: create('errorB', Category1, 'Default error message 2'),\r\n    errorC: create('errorC', Category1, 'Default error message 3'),\r\n    category2: Category2,\r\n    errorD: create('errorD', Category2, 'Default error message 4'),\r\n    errorE: create('errorE', Category2, 'Default error message 5'),\r\n    errorF: create('errorF', Category2, 'Error in {parameterName}')\r\n};\r\n```\r\n\r\nUse the errors, following these patterns:\r\n\r\n```js\r\nvar errors = require('./errors');\r\n\r\nfunction f1(){\r\n    throw errors.errorA();\r\n}\r\n\r\nfunction f2(){\r\n    throw errors.errorF({params: {parameterName: 'f2'}});\r\n}\r\n\r\nfunction f3(){\r\n    throw errors.errorF({params: {parameterName: 'f3'}});\r\n}\r\n\r\nfunction f4(){\r\n    try {\r\n        doSomething();\r\n    } catch (e) {\r\n        throw errors.errorB(e);\r\n    }\r\n}\r\n\r\nfunction f5(){\r\n    throw errors.errorB('Custom error message');\r\n}\r\n\r\nfunction f6(){\r\n    return Promise.reject(errors.errorC());\r\n}\r\n\r\n```\r\n## Error fields\r\n\r\nA serialized error is represented by the following JSON\r\n\r\n```\r\n{\r\n    \"cause\": {\r\n        \"message\": \"No connection\",\r\n        \"type\": \"port.notConnected\",\r\n        \"level\": \"error\"\r\n    },\r\n    \"message\": \"Crypto health error\",\r\n    \"type\": \"crypto.health\",\r\n    \"level\": \"error\",\r\n    \"method\": \"crypto.health.check\"\r\n}\r\n```\r\n\r\n| Property | Type  | Required  | Description |\r\n| :-----:  | :----: | :--: | :-: |\r\n| cause    | String | no   | In case another error caused this error. This allows for error chaining as the inner error can also have a cause and so on. |\r\n| message  | String | yes  | Human readable error message |\r\n| type     | String | yes  | The error's unique identifier. Each error has an unique type. The type can also illustrates the error class hierarchy - in case there is an error which is an instance of class B with type 'b' inheriting class A with type 'a' then the error would have type: 'a.b'  |\r\n| level    | String | no   | The error serverity level - could be error, fatal, etc. for additional classification |\r\n| method   | String | no   | in the context of what method had the error been raised  |\r\n\r\n","readmeFilename":"README.md","gitHead":"b62304149b84451afa8b5ce35354ac11d6b77be9","bugs":{"url":"https://github.com/softwaregroup-bg/ut-error/issues"},"homepage":"https://github.com/softwaregroup-bg/ut-error#readme","_id":"ut-error@5.7.0-rc-godfather.2","_shasum":"cb4737e9543f2f3f23eb30eec457c498eab4cfa0","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.12.3","_npmUser":{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"},"dist":{"shasum":"cb4737e9543f2f3f23eb30eec457c498eab4cfa0","tarball":"https://registry.npmjs.org/ut-error/-/ut-error-5.7.0-rc-godfather.2.tgz","integrity":"sha512-PmETNzBF17tm2CNotY4Ac53PUmhSqW3+MoHe2zOu3ogQPWDtWHGVrqrGHPaL3Rgc6s2m44WPQt/9RLk2NuuAXQ==","fileCount":23,"unpackedSize":55459,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbrHUbCRA9TVsSAnZWagAAb4UP/2MDo8ECPPP3rtseCgtM\ntE5IiipWipOB+AQ4OhVZE72U8hJk5i1gp8nWWv+oGdgLqE9TmO6y1MY8lnEq\nHJfeGqwGODEG9QZje5MJUSvw90+ZGJYB7YIQShgqAMKXSJCzwHK/TjsggcbS\n4ChOsCBYSb6MagMf/1A09Fn5FOM5LOzdGE0KW/SDbo/u0/fAvxRSXh9LFgxD\noaNrFFRTQmhXqu2122Mwljjb81cCczT91fh0V78LIyEBEOyN2PItvFlJqKHs\n9CvETsXd055Ue69ArUhXGyN9HSsO29q6P/kxhI3YWM/0m/SFWTX2ibhwYJZo\nNXsP8SDNrR7WMRx9QwevNXUAQPbMCLtUO8qV4JTneK+rnT+G4DRnhnNFlrwZ\ngY0fyGo2zr7mJgO/N3q8ElVlm51B3X20UB7wqmtCNuddpAZYVvbrScQaQL7e\niaKcLZBOyrG9bf5jQnrNG7WJMuXMeCl8gEYioCyGycyLU2wbRkZiyahU0xYn\n70njvrQHA+tSNCZohhpktfsTA56D8UjzezxNJ7lA1d91no0490RPIfjqZQTr\n1MkwN8tnAGRv1PaoFKGNjGYlPwbdHCf/oHGYyHGkQaNjUyQpE2q8xCLj6+Ok\nkKBDlS3VjQlOhDNvPjjHHeJfLjgTjHT25r+0yMttemSGDur3liUB1PAeXhay\nlOJs\r\n=M2sA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD2LcxQY9gr4KGky0WObL8rhzm0ctYAXgR04D8oKCrUCAIgP4sMc3ysgOnSInFjYeHyCm4lUQNFJIWy55Rwr0oXdyU="}]},"maintainers":[{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ut-error_5.7.0-rc-godfather.2_1538028826541_0.9527110353265575"},"_hasShrinkwrap":false},"5.7.0-rc-godfather.3":{"name":"ut-error","version":"5.7.0-rc-godfather.3","dependencies":{},"devDependencies":{"ut-tools":"^6.3.3"},"description":"UT error module","scripts":{"lint":"ut-lint .","release":"ut-release","changelog":"ut-changelog","check":"ut-check","cover":"ut-cover","lint-js":"ut-lint-js .","postpublish":"ut-postpublish","postversion":"ut-postversion","precommit":"ut-precommit","prepublish":"ut-prepublish","prepush":"ut-prepush","pretest":"ut-pretest","preversion":"ut-preversion","precover":"ut-precover","test":"ut-test","version":"ut-version","jenkins":"ut-jenkins","gitlab":"ut-gitlab"},"repository":{"type":"git","url":"git+ssh://git@github.com/softwaregroup-bg/ut-error.git"},"license":"Apache-2.0","readme":"# UT Error\r\n\r\nut-error is a module that should be used for generating errors everywhere within\r\nthe ut-bus framework and all implementations based upon it. This is a module\r\nthat offers functionalities for better error handling in the background and\r\ngives possibilities for dynamic error classes declaration and hierarchical chaining.\r\n\r\nut-error should be used mainly through its 'define' method. For example:\r\n\r\n```js\r\nvar utError = require('ut-error');\r\n\r\nvar ErrorType1 = utError.define('ErrorType1');\r\n\r\nvar ErrorType2 = utError.define('ErrorType2', errorType1);\r\n\r\nvar ErrorType3 = utError.define('ErrorType3', errorType2);\r\n\r\n```\r\n\r\nThe define method will create a new error type or will just return it if it was\r\npreviously defined. It will also build the hierarchy between the error classes automatically.\r\nAfter defining the error types, the errors themselves can be instantiated as follows:\r\n\r\n```js\r\nvar e1 = ErrorType1('e1 message');\r\n// same as:\r\n//var e1 = new ErrorType1('e1 message');\r\nvar e2 = ErrorType1('e2 message');\r\nvar e3 = ErrorType1('e3 message');\r\n```\r\n\r\nThe errors are actually real 'Error' objects but additionally the following\r\ninheritance is achieved:\r\n\r\n```js\r\nconsole.log(e1 instnaceof Error) // -> true\r\nconsole.log(e1 instnaceof ErrorType1) // -> true\r\n\r\nconsole.log(e2 instnaceof Error) // -> true\r\nconsole.log(e2 instnaceof ErrorType1) // -> true\r\nconsole.log(e2 instnaceof ErrorType2) // -> true\r\n\r\nconsole.log(e3 instnaceof Error) // -> true\r\nconsole.log(e3 instnaceof ErrorType1) // -> true\r\nconsole.log(e3 instnaceof ErrorType2) // -> true\r\nconsole.log(e3 instnaceof ErrorType3) // -> true\r\n```\r\n\r\nAnd the 'type' properties of the error instances themselves are as follows.\r\n\r\n```js\r\nconsole.log(e1.type) // -> 'ErrorType1'\r\nconsole.log(e2.type) // -> 'ErrorType1.ErrorType2'\r\nconsole.log(e3.type) // -> 'ErrorType1.ErrorType2.ErrorType3'\r\n```\r\n\r\nThe 'define' method accepts 2 arguments: `name` and `superType`, where:\r\n\r\n- `name` (required) is a string, specifying the name of the error class ()\r\n- `superType` (optional - if inheritance is desired) is a function\r\n  (i.e an already defined errorType class) or a string, representing the type\r\n  of an already defined errorType class.\r\n\r\nsuperType can accept either a function or a string, which means that:\r\n\r\n```js\r\nvar utError = require('ut-error');\r\n\r\nvar ErrorType1 = utError.define('ErrorType1');\r\n\r\nvar ErrorType2 = utError.define('ErrorType2', errorType1);\r\n/* is the same as:\r\nvar ErrorType2 = utError.define('ErrorType2', 'ErrorType1');\r\n*/\r\n\r\nvar ErrorType3 = utError.define('ErrorType3', errorType2);\r\n/* is the same as:\r\nvar ErrorType3 = utError.define('ErrorType3', 'ErrorType1.ErrorType2');\r\n*/\r\n```\r\n\r\nThe error constructors that get generated accept only 1 argument but that\r\nargument is actually very flexible: it can be undefined, string, object or even\r\na real javascript exception.\r\n\r\nSo errors can be generated either way:\r\n\r\n```js\r\nvar generateError = require('ut-error').define('ErrorType');\r\n\r\nvar e1 = generateError();\r\nvar e2 = generateError('error message');\r\nvar e3 - generateError({code: 1, message: 'error message'});\r\nvar e4 - generateError(new Error('error message'));\r\n/* i.e.\r\ntry {\r\n somethingWrong();\r\n} catch (e) {\r\n  throw generateError(e);\r\n}\r\n*/\r\n```\r\n\r\n## Recommended pattern for defining errors\r\n\r\nCreate a file errors.js in your module, having contents following this pattern:\r\n\r\n```js\r\n'use strict';\r\nconst create = require('ut-error').define;\r\nconst Category1 = create('category1');\r\nconst Category2 = create('category2');\r\n\r\nmodule.exports = {\r\n    category1: Category1,\r\n    errorA: create('errorA', Category1, 'Default error message 1'),\r\n    errorB: create('errorB', Category1, 'Default error message 2'),\r\n    errorC: create('errorC', Category1, 'Default error message 3'),\r\n    category2: Category2,\r\n    errorD: create('errorD', Category2, 'Default error message 4'),\r\n    errorE: create('errorE', Category2, 'Default error message 5'),\r\n    errorF: create('errorF', Category2, 'Error in {parameterName}')\r\n};\r\n```\r\n\r\nUse the errors, following these patterns:\r\n\r\n```js\r\nvar errors = require('./errors');\r\n\r\nfunction f1(){\r\n    throw errors.errorA();\r\n}\r\n\r\nfunction f2(){\r\n    throw errors.errorF({params: {parameterName: 'f2'}});\r\n}\r\n\r\nfunction f3(){\r\n    throw errors.errorF({params: {parameterName: 'f3'}});\r\n}\r\n\r\nfunction f4(){\r\n    try {\r\n        doSomething();\r\n    } catch (e) {\r\n        throw errors.errorB(e);\r\n    }\r\n}\r\n\r\nfunction f5(){\r\n    throw errors.errorB('Custom error message');\r\n}\r\n\r\nfunction f6(){\r\n    return Promise.reject(errors.errorC());\r\n}\r\n```\r\n\r\n## Error fields\r\n\r\nA serialized error is represented by the following JSON\r\n\r\n```json\r\n{\r\n    \"cause\": {\r\n        \"message\": \"No connection\",\r\n        \"type\": \"port.notConnected\",\r\n        \"level\": \"error\"\r\n    },\r\n    \"message\": \"Crypto health error\",\r\n    \"type\": \"crypto.health\",\r\n    \"level\": \"error\",\r\n    \"method\": \"crypto.health.check\"\r\n}\r\n```\r\n\r\n| Property | Type  | Required  | Description |\r\n| :-----:  | :----: | :--: | :-: |\r\n| cause    | String | no   | In case another error caused this error. This allows for error chaining as the inner error can also have a cause and so on. |\r\n| message  | String | yes  | Human readable error message |\r\n| type     | String | yes  | The error's unique identifier. Each error has an unique type. The type can also illustrates the error class hierarchy - in case there is an error which is an instance of class B with type 'b' inheriting class A with type 'a' then the error would have type: 'a.b'  |\r\n| level    | String | no   | The error serverity level - could be error, fatal, etc. for additional classification |\r\n| method   | String | no   | in the context of what method had the error been raised  |\r\n","readmeFilename":"README.md","gitHead":"daee624f07368020090bcda542d602d72fbec517","bugs":{"url":"https://github.com/softwaregroup-bg/ut-error/issues"},"homepage":"https://github.com/softwaregroup-bg/ut-error#readme","_id":"ut-error@5.7.0-rc-godfather.3","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"},"dist":{"integrity":"sha512-lwCjnh/MPKibGp3sTcbN4SJDVJdRRA+Exe8S0hI6SEwo51LhjvJYNfTHZvaYoBVnCy80YHZCmku4hazwDSt8LQ==","shasum":"8abf74655bdd99facdee110a1d336c0a526e1755","tarball":"https://registry.npmjs.org/ut-error/-/ut-error-5.7.0-rc-godfather.3.tgz","fileCount":25,"unpackedSize":57823,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb0XjCCRA9TVsSAnZWagAAuq4P+wRGytvYnBgVcMiFxd/t\nZsTHgEWuOFbALHSK3bjw4P9NKx8ZlP3azimff+EA+HihKKWLDq+0gY4SDU6d\nn4Ob2otAjHkFcHNiX5ZQdrovIupHGJqcMHr3X8Ri/yofmVkD1QhFZ8R+BMcd\n5BYI/f8tEo46JVRCLn1jjK68G5r0evBKmVi7YZuweJs5wP9MTNK6CtEUX9vd\nN4lgmYG8yxiKyRW+X81wf6XKTII7KOTW6icAguNbZXH1MxpcxVsatVDxca0j\nAaO1KdBzCUg3bs+PrvQNSrcRGaNZK0ZvrELuVyOo/rszRbil/VaMYsHJsdPI\nFi1S60kng1NswbGD1h7QEhkA+JL9/Dh6yBfkKjMJMiz9AJtncxhzBzWBvloo\nKVCv5ZT/fYo5qpiB0kkcO8RRaBwxZevD3yF+L/Xm+f1PXw6Hg6S3Dumtjn3F\nBrTXT9HHB27XeuNZ6Roc2c3c8iRmt9Qi87JUGjPEiVkfSmrxIiGs0wfElAQy\n3wZ7c1REeGQjNASf44CThzu/FXiMlbXkjlXmItej/kjLtkY+bkflBgztMXIS\nT/VhvacwQsJ9BRnAesgo187uN3TNUoUUClpCcU3AImKerG+Zj/QSRCpaAcp0\nDeik/xfT6/rT26ZoWngixg2d3g4DjJU9DUYKyQYsnlhkRI8EImYalGo4bJIZ\nzWAp\r\n=+on/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHFAlSZl7/hZap59oTWslEEqi+Lj1tCvxCUG+vcDY/i9AiAkBlte1ykuM4eNgl26HKB0Br0XflnjTG6V7FehQ8/htA=="}]},"maintainers":[{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ut-error_5.7.0-rc-godfather.3_1540454593630_0.7146579444438665"},"_hasShrinkwrap":false},"5.7.0":{"name":"ut-error","version":"5.7.0","dependencies":{},"devDependencies":{"ut-tools":"^6.8.10"},"description":"UT error module","scripts":{"lint":"ut-lint .","release":"ut-release","changelog":"ut-changelog","check":"ut-check","cover":"ut-cover","lint-js":"ut-lint-js .","postpublish":"ut-postpublish","postversion":"ut-postversion","precommit":"ut-precommit","prepublish":"ut-prepublish","prepush":"ut-prepush","pretest":"ut-pretest","preversion":"ut-preversion","precover":"ut-precover","test":"ut-test","version":"ut-version","jenkins":"ut-jenkins","gitlab":"ut-gitlab"},"repository":{"type":"git","url":"git+ssh://git@github.com/softwaregroup-bg/ut-error.git"},"license":"Apache-2.0","gitHead":"685f3d57f683fbb6c53915c369efda1cbe7b53fb","bugs":{"url":"https://github.com/softwaregroup-bg/ut-error/issues"},"homepage":"https://github.com/softwaregroup-bg/ut-error#readme","_id":"ut-error@5.7.0","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"},"dist":{"integrity":"sha512-Yuc0YSOupaB1b9Z34oVyG001Sof9ld/884oxwRO8WqEcdhoxQekGfB7VuAApjzV+v3p3lW5YS9oKbR2PM59KlQ==","shasum":"2b79f13b73925132843e54534a8b29ee18e8181c","tarball":"https://registry.npmjs.org/ut-error/-/ut-error-5.7.0.tgz","fileCount":25,"unpackedSize":59837,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcVYh8CRA9TVsSAnZWagAARSoQAJGf3bbIhhXJdquzHuNx\nserIqufvEq5J9kptU7yYt+ltAapZoMm29882D2sgBAyo2/tpXbWlpru9K6AV\nPnU7Q37lUs20ZhoWYbLSdTfhBAED0NCAf1imLa18CNnP3LW1AQU5yAcGOM0G\ntrSzNra7nXLGIIa6l6iJWBdftGwIrTNf2B6sxsoH2unMvSzTEfIJDDU6NQ0P\nR6AlO4y3S8mbpWlcfLXcwmzBn20NWdBBnPsIqUI1e1iWXidsEs/TwBBYJV6U\nQn9Xrk/mibs5PqATvdu6SI7omdwGg/CzD/tnRQTta1sAvU7wELYCTlMTm1yY\nkmQYmDmu9JkiIURD8xQc9VnDEr8rq6KX8c0q6hdGMfjK8By9B7uvVwiTGwgu\nflY/FMJ2f3BCoeuiRsnPpE4b/HmLjQn77MuAxs0NM5uPtvcJBehmGpy9IuAq\neYUD85shufzd78l3dJa9dAfJ+M1ufBclBRR52PMrtZdFiwPdbIrDnRgdBN7f\n44AY/or/y+n2gNJeetY0hIRGWGX2viin1iDvxIECubYU2UCNh+zdfWgJbPOi\nt9FW3djXCAd2lwALfQXYKvwJaLTZYxHqf1ckUyLQDPtOb/v07weLKOFgD6vV\nD2qcX50lbC31hVucdAm0yX8fyCP9F1457mV8l8jOk+LL/AcaiCzYc3wbapEN\nsoaW\r\n=DVWH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDudzq720WkAfgWNusAtTTwaR5TU66Gqv03Qusc2yxcygIgC48kZN+lWwF6FEBAOyfdr5VXKqms3aNC88IAzKjqGLw="}]},"maintainers":[{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ut-error_5.7.0_1549109371380_0.3848817654018104"},"_hasShrinkwrap":false},"5.7.1":{"name":"ut-error","version":"5.7.1","dependencies":{},"devDependencies":{"tap":"^12.6.0","ut-tools":"^6.8.10"},"description":"UT error module","scripts":{"lint":"ut-lint .","release":"ut-release","changelog":"ut-changelog","check":"ut-check","cover":"ut-cover","lint-js":"ut-lint-js .","postpublish":"ut-postpublish","postversion":"ut-postversion","precommit":"ut-precommit","prepublish":"ut-prepublish","prepush":"ut-prepush","pretest":"ut-pretest","preversion":"ut-preversion","precover":"ut-precover","test":"ut-test","version":"ut-version","jenkins":"ut-jenkins","gitlab":"ut-gitlab"},"repository":{"type":"git","url":"git+ssh://git@github.com/softwaregroup-bg/ut-error.git"},"license":"Apache-2.0","gitHead":"76cb1da0b72e71b8a09c3c1b363e71febcecc1d4","bugs":{"url":"https://github.com/softwaregroup-bg/ut-error/issues"},"homepage":"https://github.com/softwaregroup-bg/ut-error#readme","_id":"ut-error@5.7.1","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"},"dist":{"integrity":"sha512-ktFV5QFjDSyt6wtOKaA5qq8T2T/+YaamZ3KUE0QR8aZmttcoGtXJRCMzqL6mPUURbme5n3/U/3bQ6WPlxlWMXA==","shasum":"1bcd2b54044f7ff84c6e6e3228585fb037414af7","tarball":"https://registry.npmjs.org/ut-error/-/ut-error-5.7.1.tgz","fileCount":25,"unpackedSize":59808,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJclJN9CRA9TVsSAnZWagAAfVcP/iNzJiNli5Mx0NxRZExF\nde0xlzF4GUmzIjxRaTs6BQehzy1NP09OTBrxV7wAOS8PrTps2lJiBCbZCRTz\nWNV+eBxP/68E3y/L+Ss6t6kB6/HIaljF3kDP1KQhlr/EaS8v/QIBRyVyScOa\nqVVC4YrrZez3hVIbuAR+BtmaSjegpiKkYHdBwUkO6pnpCAO8eatdaI4qauLf\n1N4QFwE9WLPSBXoymn++5vExLKiH1gu5D06Ztn3oLLv8hTnUyTXRdfxwO/X/\nQ7LJSTVRzYLHSydRmsTR9t2ug9rjYbHo+ICvJex51+PBTcS2k+16/MM8DVd4\nJ+UdU07oCfAJP9QJHkTmVQy25/FmxFSbrhsA+jU/ITor8Lex5NnxLUGCEVdN\nt3+VvjlvRorCytM/Yuua8LNc7vaoVqO1QuXk+ZtNRyMgb5WBvER9rl/F+Wt1\nRm56k2lIN8jHRairM7L1L+oAzBJODnfqDMntwOJfcLWjU5JZsXO+zfVMLJV0\n8EwCteNB7OoosLSZwMTmLpOyxOjKnCzRp6dsWx2lnM6k/p5kPDxdYEH0Ued6\nPKiiKZD1phg3igvKdlkY/eVXgWg/buhj3K+SmDoyTBKniU+5S5zAjuJiLGzB\n8mLEvWJjENvm/2Th0RDL1Iv+vCBXfOcnQx65UkZwvtF3YcC2IUenb3WM56Xv\nwSBq\r\n=4V4V\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCFbaCTB5iNJPMrF6grVXrqsLjA0r0piHeSMKILLwyqcgIhALUbAqfd7EJqznhqnXUd3TIm8vucEKUXcXONp4tRG7Ab"}]},"maintainers":[{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ut-error_5.7.1_1553240956303_0.7182885011821274"},"_hasShrinkwrap":false},"5.7.2":{"name":"ut-error","version":"5.7.2","dependencies":{},"devDependencies":{"tap":"^12.7.0","ut-tools":"^6.8.10"},"description":"UT error module","scripts":{"lint":"ut-lint .","release":"ut-release","changelog":"ut-changelog","check":"ut-check","cover":"ut-cover","lint-js":"ut-lint-js .","postpublish":"ut-postpublish","postversion":"ut-postversion","precommit":"ut-precommit","prepublish":"ut-prepublish","prepush":"ut-prepush","pretest":"ut-pretest","preversion":"ut-preversion","precover":"ut-precover","test":"ut-test","version":"ut-version","jenkins":"ut-jenkins","gitlab":"ut-gitlab"},"repository":{"type":"git","url":"git+ssh://git@github.com/softwaregroup-bg/ut-error.git"},"license":"Apache-2.0","gitHead":"078bc5c71d9dead27254d035c553f755234eaf56","bugs":{"url":"https://github.com/softwaregroup-bg/ut-error/issues"},"homepage":"https://github.com/softwaregroup-bg/ut-error#readme","_id":"ut-error@5.7.2","_nodeVersion":"10.16.3","_npmVersion":"6.9.0","_npmUser":{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"},"dist":{"integrity":"sha512-ONtMXfvflmKLn8VV1DtatbmiXgS7KmkoH24aD8EfRA7dDDpxVqINFwEQEsjDypDs8AeUo7cY3E8Xw8VjqjjQJw==","shasum":"37200f61d59b22251c70b6746f6f6d90d4c220fa","tarball":"https://registry.npmjs.org/ut-error/-/ut-error-5.7.2.tgz","fileCount":22,"unpackedSize":75849,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeIWJZCRA9TVsSAnZWagAAsDIP/0coSwEj2x5LOhDMQ1aF\nhfuM9x1scvjgDESIJEhleAOw5ZWF85/IRiTnOznq7dchROH+L9wV+BpPvk8X\nIL/1u2Tg0KXOmdIKZgcjmOCW0ILPxqi1v6+VFbzTtrIf/yiORctsgsJM6VAV\n55VzOkAHiCmH5gREJN0p4aslir3NpS2HwwFAmMjhBGjd7L33rHuGkfkPnh5/\nNRxQxTb/ZjxxkrNsuWe1iOokAF9b+67WnMYzBa/vua44APE9aqwcRKLpiLZ8\nf3SMZWgLxUayEBQxhAaQyO/XyMhvA7w4kNC+6wjGSc3ojif3FPIgwkv3LSiK\nYzIrkjPQh91xiFg18SEEpvooCwujvpwUsapmv8UIL2o3CwgKhkL+1/SbWcgk\n1Kxl5jgg70jlEJ/QFkeTJ93EY65RfCHvpJwgIQD54mgHRVDb6Ge0EEYZQQSF\nZ/dmrShe0cVk69jb2lvBb/KR2X+KMNS8obtDT6KJUZSMWoUsUAX61VvjARSF\n4wxPz5e68osnihrWfcn1Q92Th0c7v3JMGRwVPHJbf53d8LPCmd/ujIiwaX+s\nmbHwmAOcgpZreS8Bq2Sej3hV+VSZovv4Ej42bLoe4o9ewhP+7TPkfKGzSu/0\n5/AxmHS8lq5W9vYT/KEOKQ/WuCkmFcO1JD4xRMRDxVa5et3ov6SwQwqwcBKk\ngJ7M\r\n=jB+E\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDdkb3kzXx4QB1UdyND5LT/DNSzYe3SQWCPac2Y5QNX9AiBJCuq2al2MDduhwCc1qT2aG1wD5gJeG0iDVRMvWIXydg=="}]},"maintainers":[{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ut-error_5.7.2_1579246169327_0.9337232358432719"},"_hasShrinkwrap":false}},"readme":"# UT Error\r\n\r\nut-error is a module that should be used for generating errors everywhere within\r\nthe ut-bus framework and all implementations based upon it. This is a module\r\nthat offers functionalities for better error handling in the background and\r\ngives possibilities for dynamic error classes declaration and hierarchical chaining.\r\n\r\nut-error should be used mainly through its 'define' method. For example:\r\n\r\n```js\r\nvar utError = require('ut-error');\r\n\r\nvar ErrorType1 = utError.define('ErrorType1');\r\n\r\nvar ErrorType2 = utError.define('ErrorType2', errorType1);\r\n\r\nvar ErrorType3 = utError.define('ErrorType3', errorType2);\r\n\r\n```\r\n\r\nThe define method will create a new error type or will just return it if it was\r\npreviously defined. It will also build the hierarchy between the error classes automatically.\r\nAfter defining the error types, the errors themselves can be instantiated as follows:\r\n\r\n```js\r\nvar e1 = ErrorType1('e1 message');\r\n// same as:\r\n//var e1 = new ErrorType1('e1 message');\r\nvar e2 = ErrorType1('e2 message');\r\nvar e3 = ErrorType1('e3 message');\r\n```\r\n\r\nThe errors are actually real 'Error' objects but additionally the following\r\ninheritance is achieved:\r\n\r\n```js\r\nconsole.log(e1 instnaceof Error) // -> true\r\nconsole.log(e1 instnaceof ErrorType1) // -> true\r\n\r\nconsole.log(e2 instnaceof Error) // -> true\r\nconsole.log(e2 instnaceof ErrorType1) // -> true\r\nconsole.log(e2 instnaceof ErrorType2) // -> true\r\n\r\nconsole.log(e3 instnaceof Error) // -> true\r\nconsole.log(e3 instnaceof ErrorType1) // -> true\r\nconsole.log(e3 instnaceof ErrorType2) // -> true\r\nconsole.log(e3 instnaceof ErrorType3) // -> true\r\n```\r\n\r\nAnd the 'type' properties of the error instances themselves are as follows.\r\n\r\n```js\r\nconsole.log(e1.type) // -> 'ErrorType1'\r\nconsole.log(e2.type) // -> 'ErrorType1.ErrorType2'\r\nconsole.log(e3.type) // -> 'ErrorType1.ErrorType2.ErrorType3'\r\n```\r\n\r\nThe 'define' method accepts 2 arguments: `name` and `superType`, where:\r\n\r\n- `name` (required) is a string, specifying the name of the error class ()\r\n- `superType` (optional - if inheritance is desired) is a function\r\n  (i.e an already defined errorType class) or a string, representing the type\r\n  of an already defined errorType class.\r\n\r\nsuperType can accept either a function or a string, which means that:\r\n\r\n```js\r\nvar utError = require('ut-error');\r\n\r\nvar ErrorType1 = utError.define('ErrorType1');\r\n\r\nvar ErrorType2 = utError.define('ErrorType2', errorType1);\r\n/* is the same as:\r\nvar ErrorType2 = utError.define('ErrorType2', 'ErrorType1');\r\n*/\r\n\r\nvar ErrorType3 = utError.define('ErrorType3', errorType2);\r\n/* is the same as:\r\nvar ErrorType3 = utError.define('ErrorType3', 'ErrorType1.ErrorType2');\r\n*/\r\n```\r\n\r\nThe error constructors that get generated accept only 1 argument but that\r\nargument is actually very flexible: it can be undefined, string, object or even\r\na real javascript exception.\r\n\r\nSo errors can be generated either way:\r\n\r\n```js\r\nvar generateError = require('ut-error').define('ErrorType');\r\n\r\nvar e1 = generateError();\r\nvar e2 = generateError('error message');\r\nvar e3 - generateError({code: 1, message: 'error message'});\r\nvar e4 - generateError(new Error('error message'));\r\n/* i.e.\r\ntry {\r\n somethingWrong();\r\n} catch (e) {\r\n  throw generateError(e);\r\n}\r\n*/\r\n```\r\n\r\n## Recommended pattern for defining errors\r\n\r\nCreate a file errors.js in your module, having contents following this pattern:\r\n\r\n```js\r\n'use strict';\r\nconst create = require('ut-error').define;\r\nconst Category1 = create('category1');\r\nconst Category2 = create('category2');\r\n\r\nmodule.exports = {\r\n    category1: Category1,\r\n    errorA: create('errorA', Category1, 'Default error message 1'),\r\n    errorB: create('errorB', Category1, 'Default error message 2'),\r\n    errorC: create('errorC', Category1, 'Default error message 3'),\r\n    category2: Category2,\r\n    errorD: create('errorD', Category2, 'Default error message 4'),\r\n    errorE: create('errorE', Category2, 'Default error message 5'),\r\n    errorF: create('errorF', Category2, 'Error in {parameterName}')\r\n};\r\n```\r\n\r\nUse the errors, following these patterns:\r\n\r\n```js\r\nvar errors = require('./errors');\r\n\r\nfunction f1(){\r\n    throw errors.errorA();\r\n}\r\n\r\nfunction f2(){\r\n    throw errors.errorF({params: {parameterName: 'f2'}});\r\n}\r\n\r\nfunction f3(){\r\n    throw errors.errorF({params: {parameterName: 'f3'}});\r\n}\r\n\r\nfunction f4(){\r\n    try {\r\n        doSomething();\r\n    } catch (e) {\r\n        throw errors.errorB(e);\r\n    }\r\n}\r\n\r\nfunction f5(){\r\n    throw errors.errorB('Custom error message');\r\n}\r\n\r\nfunction f6(){\r\n    return Promise.reject(errors.errorC());\r\n}\r\n```\r\n\r\n## Error fields\r\n\r\nA serialized error is represented by the following JSON\r\n\r\n```json\r\n{\r\n    \"cause\": {\r\n        \"message\": \"No connection\",\r\n        \"type\": \"port.notConnected\",\r\n        \"level\": \"error\"\r\n    },\r\n    \"message\": \"Crypto health error\",\r\n    \"type\": \"crypto.health\",\r\n    \"level\": \"error\",\r\n    \"method\": \"crypto.health.check\"\r\n}\r\n```\r\n\r\n| Property | Type  | Required  | Description |\r\n| :-----:  | :----: | :--: | :-: |\r\n| cause    | String | no   | In case another error caused this error. This allows for error chaining as the inner error can also have a cause and so on. |\r\n| message  | String | yes  | Human readable error message |\r\n| type     | String | yes  | The error's unique identifier. Each error has an unique type. The type can also illustrates the error class hierarchy - in case there is an error which is an instance of class B with type 'b' inheriting class A with type 'a' then the error would have type: 'a.b'  |\r\n| level    | String | no   | The error serverity level - could be error, fatal, etc. for additional classification |\r\n| method   | String | no   | in the context of what method had the error been raised  |\r\n","maintainers":[{"name":"kalin.krustev","email":"kalin.krustev@gmail.com"}],"time":{"modified":"2022-06-28T07:04:02.761Z","created":"2016-08-12T18:23:48.259Z","5.3.14":"2016-08-12T18:23:48.259Z","5.3.15":"2016-09-20T09:18:26.244Z","5.3.16":"2016-10-24T11:48:46.274Z","5.4.0":"2017-01-19T09:02:19.899Z","5.4.1":"2017-04-06T12:49:17.881Z","5.4.2":"2017-04-07T10:59:09.403Z","5.4.3":"2017-04-24T09:32:57.577Z","5.3.17":"2017-05-15T10:46:34.852Z","5.4.4":"2017-05-19T13:09:16.458Z","5.4.5":"2017-05-22T12:29:10.540Z","5.4.6":"2017-05-22T12:45:15.874Z","5.4.7":"2017-05-22T13:02:13.253Z","5.4.8":"2017-05-22T13:13:38.716Z","5.4.9":"2017-05-22T13:29:19.729Z","5.5.0-rc-acapulco.0":"2017-10-31T14:53:35.413Z","5.5.0-rc-cubalibre.0":"2018-03-28T14:04:22.801Z","5.5.0-rc-cubalibre.1":"2018-03-30T07:13:53.726Z","5.5.0":"2018-04-17T10:49:43.228Z","5.6.0":"2018-04-27T05:59:52.954Z","5.6.1":"2018-04-27T09:00:22.707Z","5.6.2":"2018-08-13T14:59:42.528Z","5.7.0-rc-godfather.0":"2018-09-20T05:13:54.466Z","5.7.0-rc-godfather.1":"2018-09-25T05:23:41.077Z","5.7.0-rc-godfather.2":"2018-09-27T06:13:46.710Z","5.7.0-rc-godfather.3":"2018-10-25T08:03:13.802Z","5.7.0":"2019-02-02T12:09:31.494Z","5.7.1":"2019-03-22T07:49:16.593Z","5.7.2":"2020-01-17T07:29:29.430Z"},"homepage":"https://github.com/softwaregroup-bg/ut-error#readme","repository":{"type":"git","url":"git+ssh://git@github.com/softwaregroup-bg/ut-error.git"},"bugs":{"url":"https://github.com/softwaregroup-bg/ut-error/issues"},"license":"Apache-2.0","readmeFilename":"README.md"}