{"_id":"@asemin/nestjs-security","_rev":"42-708e0a620e6e6896a852f9349946f117","name":"@asemin/nestjs-security","dist-tags":{"undefined":"1.0.11","latest":"2.0.6","latest\\":"2.0.1"},"versions":{"1.0.0":{"name":"@asemin/nestjs-security","version":"1.0.0","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.5","@jira-killer/constants":"^1.0.7","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","_id":"@asemin/nestjs-security@1.0.0","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-/XOuHB6dax8aDIzriKFjmghO2O25KjFTpDaV14vbrIO5IDHOlzkaV/KT41pITK0/TCpnXP3NuhQ0zWkIj7WhkQ==","shasum":"1e71b7b788e0e285ff23b17b6393c46e98530bba","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.0.tgz","fileCount":679,"unpackedSize":697966,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCRbfD42e2rwiVrJea7mQmq2CuO4O9Ur9F1LhCZ1kOoqwIhAI/O69h1Dg4Cbk3Gm+aW5XwBrixheuOQQ+g8QP+dGiJx"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJicoIJACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpZnA/+K9yHhrUt1qaUJ5ZCtcAnW7s7HE+OoeC3WwBWGZVkMbsP39uA\r\nGQYZ12sj2Gx8H7YdO7YH132deEQlrm8NQSxRmV0Yp/FVnbc9sd/OIGIegE2B\r\np1nd2sniQQeJdHiPEkr9yXVv9saBlpxkcZtCcKL5OmLEYYXA5HD061QFNLqv\r\nachNSsr1S7bvgdzttisGwHMA0xJO23iL/ywBeIUVqKNR+o9zPnUw4Uq2sf37\r\nLqhOl13CvMGNsA0U5kNTPJwMaCLpkjJ2tPn0XGCYZMQirAH/BYGAVXWxyAPp\r\nn6a9kGArti/V7mHJvrxQAKSy93o3g7/WUt5j1+xQVSt6jNpNVQTTnlafwpc2\r\nndIawwD+JF2JpY2tMZnYaaGbrz7wKsCmAxbw/+oV/rRR/9wsxC2U9alFySyB\r\ne248peeudssuQ5qG8+CeDWE2m5SrTMhq4WgfTi6g6ldUAY3/Ti+3cC7aDmbk\r\nzl/OMu5rop33RR2EY05a1DcZBUSxZl177waHzxDTtdbp267K3w8swZyYMQ3h\r\nsjDrkx1e8ISSKbFU7V2juxHFw5UmoYLMfX4Fa8GivqAKAk2MVJ06c6ND51X5\r\nrul53BYH5pp0wJGmerrUG2W5mwxJo8Uen+IyYuJOS+3QH/yqqEEa4eerQmEB\r\nwPOQBo79+LimLGV6nr539fj9Gllk0u5X2Tg=\r\n=1NBC\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.0_1651671560721_0.8091756667489765"},"_hasShrinkwrap":false},"1.0.1":{"name":"@asemin/nestjs-security","version":"1.0.1","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.5","@jira-killer/constants":"^1.0.7","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","readme":"<p align=\"center\">\r\n  <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r\n</p>\r\n\r\n[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456\r\n[circleci-url]: https://circleci.com/gh/nestjs/nest\r\n\r\n  <p align=\"center\">A progressive <a href=\"http://nodejs.org\" target=\"_blank\">Node.js</a> framework for building efficient and scalable server-side applications.</p>\r\n    <p align=\"center\">\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/v/@nestjs/core.svg\" alt=\"NPM Version\" /></a>\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/l/@nestjs/core.svg\" alt=\"Package License\" /></a>\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/dm/@nestjs/common.svg\" alt=\"NPM Downloads\" /></a>\r\n<a href=\"https://circleci.com/gh/nestjs/nest\" target=\"_blank\"><img src=\"https://img.shields.io/circleci/build/github/nestjs/nest/master\" alt=\"CircleCI\" /></a>\r\n<a href=\"https://coveralls.io/github/nestjs/nest?branch=master\" target=\"_blank\"><img src=\"https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9\" alt=\"Coverage\" /></a>\r\n<a href=\"https://discord.gg/G7Qnnhy\" target=\"_blank\"><img src=\"https://img.shields.io/badge/discord-online-brightgreen.svg\" alt=\"Discord\"/></a>\r\n<a href=\"https://opencollective.com/nest#backer\" target=\"_blank\"><img src=\"https://opencollective.com/nest/backers/badge.svg\" alt=\"Backers on Open Collective\" /></a>\r\n<a href=\"https://opencollective.com/nest#sponsor\" target=\"_blank\"><img src=\"https://opencollective.com/nest/sponsors/badge.svg\" alt=\"Sponsors on Open Collective\" /></a>\r\n  <a href=\"https://paypal.me/kamilmysliwiec\" target=\"_blank\"><img src=\"https://img.shields.io/badge/Donate-PayPal-ff3f59.svg\"/></a>\r\n    <a href=\"https://opencollective.com/nest#sponsor\"  target=\"_blank\"><img src=\"https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg\" alt=\"Support us\"></a>\r\n  <a href=\"https://twitter.com/nestframework\" target=\"_blank\"><img src=\"https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow\"></a>\r\n</p>\r\n  <!--[![Backers on Open Collective](https://opencollective.com/nest/backers/badge.svg)](https://opencollective.com/nest#backer)\r\n  [![Sponsors on Open Collective](https://opencollective.com/nest/sponsors/badge.svg)](https://opencollective.com/nest#sponsor)-->\r\n\r\n## Description\r\n\r\nNestjs Exception handling implementation.\r\nIncludes: \r\n    * Handler's chain mechanism\r\n    * Custom exception to inherit from\r\n    * Implemented Nest JS Validation Exception handler\r\n\r\nException structure: \r\n```\r\n    {\r\n        code: \"ERROR:<ENTITY>-<CODE_MESSAGE>\"\r\n        status: 500,\r\n        title: \"Error!\",\r\n        message: 'This was screwed',\r\n        body: { any info you like }\r\n    }\r\n```\r\n\r\n[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.\r\n\r\n## Use\r\n\r\n# installation\r\n```bash\r\n$ npm install @asemin/nestjs-exception-handling\r\n```\r\n\r\n# Handler creation example\r\nClass must extend ExceptionHandler and implement `handle` method. Method must return HandlerExceptionDto filled.\r\n```\r\nexport class MongoExceptionHandler extends ExceptionHandler{\r\n    handle(exception: any): HandledExceptionDto {\r\n        if ( !(exception instanceof MongoError) )\r\n            return this.next?.handle(exception);\r\n\r\n        switch (exception.code) {\r\n            case 11000:\r\n                return new HandledExceptionDto(getException(API_ERROR_CODES.DATABASE.DUPLICATE));\r\n        }\r\n\r\n        return null;\r\n    }\r\n}\r\n```\r\n\r\n# handlers chain creation\r\nEach member must extend ExceptionHandler\r\n```\r\nexport const handlersChain = [\r\n    new MongoExceptionHandler(),\r\n    new ValidationExceptionHandler(),\r\n    new CustomExceptionHandler(),\r\n    new HttpExceptionHandler()\r\n];\r\n```\r\n\r\n# Nestjs exception filter configuration. main.ts:\r\n```bash\r\n    const exceptionFilter = new ExceptionFilter(\r\n        <ExceptionHandler>createExceptionHandlersChain(handlersChain)\r\n    );\r\n\r\n    app.useGlobalFilters(exceptionFilter);\r\n```\r\n\r\n## Custom exception use\r\n\r\n# throwException\r\nUse one of the codes. Fill free to put any information to body (second param)\r\nIf there are no code suitable - throw any exception type manually.\r\n```\r\nthrowException(API_ERROR_CODES.COMMON.EMPTY_PARAM, {method: 'getByPermissionAndPermissionSets', fields: {permissionId, permissionSetIds}})\r\n```\r\n\r\n# getException info\r\n```\r\nconst {code, status, message} = getException(API_ERROR_CODES.COMMON.UNKNOWN);\r\n```","readmeFilename":"README.md","_id":"@asemin/nestjs-security@1.0.1","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-X4m7zLRl/SOU8cyDOZraXJL7bfVIBHt5B+00jMh3m+RQ/xUsYRZjzW0slgtrc8c2XOT0+PjmnmlTzg3t3StqVQ==","shasum":"964eee44aaf261a7ae6d7ecbb2db0535aeaa5855","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.1.tgz","fileCount":680,"unpackedSize":703803,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDLBh3gxlmnRORHVqt03nh9sIZuRAfM0iJGYqTbLJhIvwIhAJyzDEHaIoYQUNOS2chV26OwnIVqKSsclgJU1iIeAzVv"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJicrMVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq4Gg//af/MCqI675v/22uuTY0mG/t0RGU7EfBBOSUWEycnYowxE3Fi\r\nLC9nYVsG7CusJ07u06B+HYM5uN1UTPfoNzQSb6o5d4bZJOYWva5zzRJYzBmF\r\nt6H+UnkufqaMzG7M9y5DVYrcUYkNNd5qjhqEpQ3p8/G7CFhmS0GaEw+/MD+W\r\nZz9dsDTkV2E91T9vonMVLSGefyI8zNhqJgyV4utG23N6+mgk/uB1ALM9IrgP\r\nbu9qUKI4sICK4lhkYyktTeKdYXQWnN+6znnFvbma2qvGma4F7wSOwQBhA+/Z\r\nuQcnvgNbni4xUGiGCT+njX6xM6H1VMI36m5Tm8OGuJ0Qa2J1rdLxxv1SDmz8\r\nPoxdVeJ2w86jv+4ELIvAcGmMu78XiTza/iRxwGeRIG43AEOe1Q7y2WZDQd3w\r\nbCH9+r5worDV1hFOb85mdDwwqvW9o+48xHKUYIVKNF5B7oL2/dgqEzHezdhV\r\nNQwm20XDywafSsWQllBfNudXN4BckvARRKs0asdBirdSDcFadKgLQyW+BIVa\r\nziF7wHOe1A6VBrFfbA4WP1w+WDrqxiWdxzEK8rAW6j7/FXdP5BZpvdSirbq6\r\nq/Af7ZKQvEhncQD/DY/CO9GK7oY9IPcQ/cWsFWfWsesKoljZ+Ym4feDQM0gU\r\n9a9k/GqPOCw3tRJk4c6a5H2C74xjkdz75PU=\r\n=oCrS\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.1_1651684117340_0.4034857035624615"},"_hasShrinkwrap":false},"1.0.2":{"name":"@asemin/nestjs-security","version":"1.0.2","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.5","@jira-killer/constants":"^1.0.7","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","readme":"<p align=\"center\">\r\n  <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r\n</p>\r\n\r\n[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456\r\n[circleci-url]: https://circleci.com/gh/nestjs/nest\r\n\r\n  <p align=\"center\">A progressive <a href=\"http://nodejs.org\" target=\"_blank\">Node.js</a> framework for building efficient and scalable server-side applications.</p>\r\n    <p align=\"center\">\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/v/@nestjs/core.svg\" alt=\"NPM Version\" /></a>\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/l/@nestjs/core.svg\" alt=\"Package License\" /></a>\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/dm/@nestjs/common.svg\" alt=\"NPM Downloads\" /></a>\r\n<a href=\"https://circleci.com/gh/nestjs/nest\" target=\"_blank\"><img src=\"https://img.shields.io/circleci/build/github/nestjs/nest/master\" alt=\"CircleCI\" /></a>\r\n<a href=\"https://coveralls.io/github/nestjs/nest?branch=master\" target=\"_blank\"><img src=\"https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9\" alt=\"Coverage\" /></a>\r\n<a href=\"https://discord.gg/G7Qnnhy\" target=\"_blank\"><img src=\"https://img.shields.io/badge/discord-online-brightgreen.svg\" alt=\"Discord\"/></a>\r\n<a href=\"https://opencollective.com/nest#backer\" target=\"_blank\"><img src=\"https://opencollective.com/nest/backers/badge.svg\" alt=\"Backers on Open Collective\" /></a>\r\n<a href=\"https://opencollective.com/nest#sponsor\" target=\"_blank\"><img src=\"https://opencollective.com/nest/sponsors/badge.svg\" alt=\"Sponsors on Open Collective\" /></a>\r\n  <a href=\"https://paypal.me/kamilmysliwiec\" target=\"_blank\"><img src=\"https://img.shields.io/badge/Donate-PayPal-ff3f59.svg\"/></a>\r\n    <a href=\"https://opencollective.com/nest#sponsor\"  target=\"_blank\"><img src=\"https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg\" alt=\"Support us\"></a>\r\n  <a href=\"https://twitter.com/nestframework\" target=\"_blank\"><img src=\"https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow\"></a>\r\n</p>\r\n  <!--[![Backers on Open Collective](https://opencollective.com/nest/backers/badge.svg)](https://opencollective.com/nest#backer)\r\n  [![Sponsors on Open Collective](https://opencollective.com/nest/sponsors/badge.svg)](https://opencollective.com/nest#sponsor)-->\r\n\r\n## Description\r\n\r\nNestjs Exception handling implementation.\r\nIncludes: \r\n    * Handler's chain mechanism\r\n    * Custom exception to inherit from\r\n    * Implemented Nest JS Validation Exception handler\r\n\r\nException structure: \r\n```\r\n    {\r\n        code: \"ERROR:<ENTITY>-<CODE_MESSAGE>\"\r\n        status: 500,\r\n        title: \"Error!\",\r\n        message: 'This was screwed',\r\n        body: { any info you like }\r\n    }\r\n```\r\n\r\n[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.\r\n\r\n## Use\r\n\r\n# installation\r\n```bash\r\n$ npm install @asemin/nestjs-exception-handling\r\n```\r\n\r\n# Handler creation example\r\nClass must extend ExceptionHandler and implement `handle` method. Method must return HandlerExceptionDto filled.\r\n```\r\nexport class MongoExceptionHandler extends ExceptionHandler{\r\n    handle(exception: any): HandledExceptionDto {\r\n        if ( !(exception instanceof MongoError) )\r\n            return this.next?.handle(exception);\r\n\r\n        switch (exception.code) {\r\n            case 11000:\r\n                return new HandledExceptionDto(getException(API_ERROR_CODES.DATABASE.DUPLICATE));\r\n        }\r\n\r\n        return null;\r\n    }\r\n}\r\n```\r\n\r\n# handlers chain creation\r\nEach member must extend ExceptionHandler\r\n```\r\nexport const handlersChain = [\r\n    new MongoExceptionHandler(),\r\n    new ValidationExceptionHandler(),\r\n    new CustomExceptionHandler(),\r\n    new HttpExceptionHandler()\r\n];\r\n```\r\n\r\n# Nestjs exception filter configuration. main.ts:\r\n```bash\r\n    const exceptionFilter = new ExceptionFilter(\r\n        <ExceptionHandler>createExceptionHandlersChain(handlersChain)\r\n    );\r\n\r\n    app.useGlobalFilters(exceptionFilter);\r\n```\r\n\r\n## Custom exception use\r\n\r\n# throwException\r\nUse one of the codes. Fill free to put any information to body (second param)\r\nIf there are no code suitable - throw any exception type manually.\r\n```\r\nthrowException(API_ERROR_CODES.COMMON.EMPTY_PARAM, {method: 'getByPermissionAndPermissionSets', fields: {permissionId, permissionSetIds}})\r\n```\r\n\r\n# getException info\r\n```\r\nconst {code, status, message} = getException(API_ERROR_CODES.COMMON.UNKNOWN);\r\n```","readmeFilename":"README.md","_id":"@asemin/nestjs-security@1.0.2","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-4Qq0ZeJslEzkSPv9+anTanE6KEA8ugY74NABnXNHtc5rOA2IJw8NsNsb4CInznsbD1kUFwIBRr7A1AKSNN3IXw==","shasum":"f9f7ee7d7db1cafb2709481e1e7aa9fb9be95839","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.2.tgz","fileCount":680,"unpackedSize":703857,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCBppbtTyFbZl4UHTPXC0l3UApx+wyAX9xFOyQ9cRtuSgIgFF6s+cQqH3upXtu2VuxP9IR9JBuXrTAfwCIS4tITBuE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJicrQjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr3fQ//YfcTlX2duSemgqvNnW5jt/iFVFOLYtuFnPb0VDCCkvt0awo5\r\nhh2LiJwo0qeEsIitHWyaRu4pagIshIyfwQ8JHyrLBMMlgYVS1pUSsD3Dt4EL\r\nTFboW1YZmuctLCDp89Twv+aNgnOba39FSULm3rPcKsE5fGtQaKZi8IxtiEqz\r\nDxkRY/9mlYS0Bw8R1RJDJfnLWsBTLmwlO/hbYIKwCKGBcdgEhByoqATjRm+S\r\nBGA1MQB52x6e3FpvThQwcer5besK9XCbZlv//7Oh4o4a48DPBx1V+oxiPGrC\r\njc+r4s6B6Ou7vfuIslyfzO+kxyes/qJHA99VSemdh2RnQJvHo7HMKCIYDqdZ\r\nUzdFalS/b2vL95mVAcjSHEynClbrGQsapJh1dNFB5S9UQ8mDr/tFymtBdavg\r\nyNYif7seVvIJGDIhj5RpPwVDTEWCLTCJx7PR+DeZoTRQhaFTjCUm9DKiO92B\r\nqcUf58hxF3/XJsPCsYVR1T+hgkXEMgC0KfP+Ejq8QuMr9s5SpMv0J8C50osz\r\nUqSg09TDa9Xl1FARiXmnItuEW93TTicA+4oF9+A0bfmcNqKMLBff5nDU4Kcp\r\ndad0U1EG9uw8WxvVEREWOJbcRVcOSckLGixwWivqSg0VsFQY92ssS4RL0Hjs\r\ncjkDjERi4ml88GbJHF9D8JtA+rJxu8Ob6Kk=\r\n=R9Xc\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.2_1651684386718_0.708708440917271"},"_hasShrinkwrap":false},"1.0.3":{"name":"@asemin/nestjs-security","version":"1.0.3","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.5","@jira-killer/constants":"^1.0.7","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","readme":"<p align=\"center\">\r\n  <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r\n</p>\r\n\r\n[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456\r\n[circleci-url]: https://circleci.com/gh/nestjs/nest\r\n\r\n  <p align=\"center\">A progressive <a href=\"http://nodejs.org\" target=\"_blank\">Node.js</a> framework for building efficient and scalable server-side applications.</p>\r\n    <p align=\"center\">\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/v/@nestjs/core.svg\" alt=\"NPM Version\" /></a>\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/l/@nestjs/core.svg\" alt=\"Package License\" /></a>\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/dm/@nestjs/common.svg\" alt=\"NPM Downloads\" /></a>\r\n<a href=\"https://circleci.com/gh/nestjs/nest\" target=\"_blank\"><img src=\"https://img.shields.io/circleci/build/github/nestjs/nest/master\" alt=\"CircleCI\" /></a>\r\n<a href=\"https://coveralls.io/github/nestjs/nest?branch=master\" target=\"_blank\"><img src=\"https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9\" alt=\"Coverage\" /></a>\r\n<a href=\"https://discord.gg/G7Qnnhy\" target=\"_blank\"><img src=\"https://img.shields.io/badge/discord-online-brightgreen.svg\" alt=\"Discord\"/></a>\r\n<a href=\"https://opencollective.com/nest#backer\" target=\"_blank\"><img src=\"https://opencollective.com/nest/backers/badge.svg\" alt=\"Backers on Open Collective\" /></a>\r\n<a href=\"https://opencollective.com/nest#sponsor\" target=\"_blank\"><img src=\"https://opencollective.com/nest/sponsors/badge.svg\" alt=\"Sponsors on Open Collective\" /></a>\r\n  <a href=\"https://paypal.me/kamilmysliwiec\" target=\"_blank\"><img src=\"https://img.shields.io/badge/Donate-PayPal-ff3f59.svg\"/></a>\r\n    <a href=\"https://opencollective.com/nest#sponsor\"  target=\"_blank\"><img src=\"https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg\" alt=\"Support us\"></a>\r\n  <a href=\"https://twitter.com/nestframework\" target=\"_blank\"><img src=\"https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow\"></a>\r\n</p>\r\n  <!--[![Backers on Open Collective](https://opencollective.com/nest/backers/badge.svg)](https://opencollective.com/nest#backer)\r\n  [![Sponsors on Open Collective](https://opencollective.com/nest/sponsors/badge.svg)](https://opencollective.com/nest#sponsor)-->\r\n\r\n## Description\r\n\r\nNestjs Exception handling implementation.\r\nIncludes: \r\n    * Handler's chain mechanism\r\n    * Custom exception to inherit from\r\n    * Implemented Nest JS Validation Exception handler\r\n\r\nException structure: \r\n```\r\n    {\r\n        code: \"ERROR:<ENTITY>-<CODE_MESSAGE>\"\r\n        status: 500,\r\n        title: \"Error!\",\r\n        message: 'This was screwed',\r\n        body: { any info you like }\r\n    }\r\n```\r\n\r\n[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.\r\n\r\n## Use\r\n\r\n# installation\r\n```bash\r\n$ npm install @asemin/nestjs-exception-handling\r\n```\r\n\r\n# Handler creation example\r\nClass must extend ExceptionHandler and implement `handle` method. Method must return HandlerExceptionDto filled.\r\n```\r\nexport class MongoExceptionHandler extends ExceptionHandler{\r\n    handle(exception: any): HandledExceptionDto {\r\n        if ( !(exception instanceof MongoError) )\r\n            return this.next?.handle(exception);\r\n\r\n        switch (exception.code) {\r\n            case 11000:\r\n                return new HandledExceptionDto(getException(API_ERROR_CODES.DATABASE.DUPLICATE));\r\n        }\r\n\r\n        return null;\r\n    }\r\n}\r\n```\r\n\r\n# handlers chain creation\r\nEach member must extend ExceptionHandler\r\n```\r\nexport const handlersChain = [\r\n    new MongoExceptionHandler(),\r\n    new ValidationExceptionHandler(),\r\n    new CustomExceptionHandler(),\r\n    new HttpExceptionHandler()\r\n];\r\n```\r\n\r\n# Nestjs exception filter configuration. main.ts:\r\n```bash\r\n    const exceptionFilter = new ExceptionFilter(\r\n        <ExceptionHandler>createExceptionHandlersChain(handlersChain)\r\n    );\r\n\r\n    app.useGlobalFilters(exceptionFilter);\r\n```\r\n\r\n## Custom exception use\r\n\r\n# throwException\r\nUse one of the codes. Fill free to put any information to body (second param)\r\nIf there are no code suitable - throw any exception type manually.\r\n```\r\nthrowException(API_ERROR_CODES.COMMON.EMPTY_PARAM, {method: 'getByPermissionAndPermissionSets', fields: {permissionId, permissionSetIds}})\r\n```\r\n\r\n# getException info\r\n```\r\nconst {code, status, message} = getException(API_ERROR_CODES.COMMON.UNKNOWN);\r\n```","readmeFilename":"README.md","_id":"@asemin/nestjs-security@1.0.3","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-39TysjFf073TKUvrxps/Kyt5VIzzDYHW9+b9XE43mEo/6P/p2myhhQ0yIo3cfqSJ7XXCG8ePej4TVp2Xzx3M/w==","shasum":"a3154e72e91fd14103604ef9c8a277a0aae06100","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.3.tgz","fileCount":680,"unpackedSize":704357,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDBw8MroHvfKRJKZxaGroGPwFZ+W0+5jzNijDaFEyDuTAiADqDN39Y3K2RLppaCmkhpBtpdtC9mxLd1ISVFB3dlJIg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJicrWxACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrRTg/7BW3MvGOh+sQCZ8LETy2iXxA2AULrw/kMpzhveqOCbE5QKOQj\r\nVNtv/IR+yxDdFfs/2B9aSdK5jT7Me8NZdwuOGPH8FdFLsiWmxicY5VhUWr9W\r\nwJjScuVDebO3UpHRu8KVO4HwQMKNNi9fkdrol6xSQA/xru5EjySXDJHe6YxG\r\nKpj+fxbGDhw4Kwe9zbGR5jHEHiqp+hXzwI56i5GZK8zTZmh/wU0jbZCeHacr\r\nojkzKNru58fin131ruk0dkLSvaMKQU44j5MeXfSmDoO0O1Jp4iJOhUx00d76\r\n7bn56ChrCHzY7604PCwjwoGQohJVgYaB1rij1JSNWkvYpwq047sYbgt/pfU+\r\n+er4EM967t4JYOXsrYqpfusOkkRGJlZWhhVmyz2SUilevGFBTeA3eyOWB+8K\r\n25H/gSXU87BkCpvxlYdJrU0R1ZRmL5AjHnOLxYOyVqJeRgtRYgc1XIDr+bG9\r\nhls9P8BLuL0NsJIkdqnE2v4Kfs8qLwQ96KR687a5Ln0Ps9QFkY2gcbHiTA+F\r\naxJikNEIlkbwf2rbNRg4XSoNbmoZKpkKcI2uY/OYDO8xSy105dPP0nBPBnZB\r\nth1zIHEcspJmgp/fNwdEGj81K4i2Ru+sgRNwQYy9TUIzoQg/MzWkuEsON/DO\r\nCbNNeipuNN9VStZY/UuUFZwav1Hs6lxosck=\r\n=q0nR\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.3_1651684785148_0.03504538312818628"},"_hasShrinkwrap":false},"1.0.4":{"name":"@asemin/nestjs-security","version":"1.0.4","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.5","@jira-killer/constants":"^1.0.7","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","readme":"<p align=\"center\">\r\n  <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r\n</p>\r\n\r\n[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456\r\n[circleci-url]: https://circleci.com/gh/nestjs/nest\r\n\r\n  <p align=\"center\">A progressive <a href=\"http://nodejs.org\" target=\"_blank\">Node.js</a> framework for building efficient and scalable server-side applications.</p>\r\n    <p align=\"center\">\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/v/@nestjs/core.svg\" alt=\"NPM Version\" /></a>\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/l/@nestjs/core.svg\" alt=\"Package License\" /></a>\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/dm/@nestjs/common.svg\" alt=\"NPM Downloads\" /></a>\r\n<a href=\"https://circleci.com/gh/nestjs/nest\" target=\"_blank\"><img src=\"https://img.shields.io/circleci/build/github/nestjs/nest/master\" alt=\"CircleCI\" /></a>\r\n<a href=\"https://coveralls.io/github/nestjs/nest?branch=master\" target=\"_blank\"><img src=\"https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9\" alt=\"Coverage\" /></a>\r\n<a href=\"https://discord.gg/G7Qnnhy\" target=\"_blank\"><img src=\"https://img.shields.io/badge/discord-online-brightgreen.svg\" alt=\"Discord\"/></a>\r\n<a href=\"https://opencollective.com/nest#backer\" target=\"_blank\"><img src=\"https://opencollective.com/nest/backers/badge.svg\" alt=\"Backers on Open Collective\" /></a>\r\n<a href=\"https://opencollective.com/nest#sponsor\" target=\"_blank\"><img src=\"https://opencollective.com/nest/sponsors/badge.svg\" alt=\"Sponsors on Open Collective\" /></a>\r\n  <a href=\"https://paypal.me/kamilmysliwiec\" target=\"_blank\"><img src=\"https://img.shields.io/badge/Donate-PayPal-ff3f59.svg\"/></a>\r\n    <a href=\"https://opencollective.com/nest#sponsor\"  target=\"_blank\"><img src=\"https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg\" alt=\"Support us\"></a>\r\n  <a href=\"https://twitter.com/nestframework\" target=\"_blank\"><img src=\"https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow\"></a>\r\n</p>\r\n  <!--[![Backers on Open Collective](https://opencollective.com/nest/backers/badge.svg)](https://opencollective.com/nest#backer)\r\n  [![Sponsors on Open Collective](https://opencollective.com/nest/sponsors/badge.svg)](https://opencollective.com/nest#sponsor)-->\r\n\r\n## Description\r\n\r\nNestjs Exception handling implementation.\r\nIncludes: \r\n    * Handler's chain mechanism\r\n    * Custom exception to inherit from\r\n    * Implemented Nest JS Validation Exception handler\r\n\r\nException structure: \r\n```\r\n    {\r\n        code: \"ERROR:<ENTITY>-<CODE_MESSAGE>\"\r\n        status: 500,\r\n        title: \"Error!\",\r\n        message: 'This was screwed',\r\n        body: { any info you like }\r\n    }\r\n```\r\n\r\n[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.\r\n\r\n## Use\r\n\r\n# installation\r\n```bash\r\n$ npm install @asemin/nestjs-exception-handling\r\n```\r\n\r\n# Handler creation example\r\nClass must extend ExceptionHandler and implement `handle` method. Method must return HandlerExceptionDto filled.\r\n```\r\nexport class MongoExceptionHandler extends ExceptionHandler{\r\n    handle(exception: any): HandledExceptionDto {\r\n        if ( !(exception instanceof MongoError) )\r\n            return this.next?.handle(exception);\r\n\r\n        switch (exception.code) {\r\n            case 11000:\r\n                return new HandledExceptionDto(getException(API_ERROR_CODES.DATABASE.DUPLICATE));\r\n        }\r\n\r\n        return null;\r\n    }\r\n}\r\n```\r\n\r\n# handlers chain creation\r\nEach member must extend ExceptionHandler\r\n```\r\nexport const handlersChain = [\r\n    new MongoExceptionHandler(),\r\n    new ValidationExceptionHandler(),\r\n    new CustomExceptionHandler(),\r\n    new HttpExceptionHandler()\r\n];\r\n```\r\n\r\n# Nestjs exception filter configuration. main.ts:\r\n```bash\r\n    const exceptionFilter = new ExceptionFilter(\r\n        <ExceptionHandler>createExceptionHandlersChain(handlersChain)\r\n    );\r\n\r\n    app.useGlobalFilters(exceptionFilter);\r\n```\r\n\r\n## Custom exception use\r\n\r\n# throwException\r\nUse one of the codes. Fill free to put any information to body (second param)\r\nIf there are no code suitable - throw any exception type manually.\r\n```\r\nthrowException(API_ERROR_CODES.COMMON.EMPTY_PARAM, {method: 'getByPermissionAndPermissionSets', fields: {permissionId, permissionSetIds}})\r\n```\r\n\r\n# getException info\r\n```\r\nconst {code, status, message} = getException(API_ERROR_CODES.COMMON.UNKNOWN);\r\n```","readmeFilename":"README.md","_id":"@asemin/nestjs-security@1.0.4","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-Ys8CvRH3uxahWfMVByWa8jrFA2nZgne9OvHfLIKKcg2eRxNXvoM02laWO94LJVu0mEozuMYnuPBo48lQ10jrWA==","shasum":"b3809b74a0d512fbbeaa551010be5474187b99ca","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.4.tgz","fileCount":680,"unpackedSize":704593,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3uFTURZwWhBfCoDFnzVbFErItorkxxGvgSeawQ6/RuwIhAO98K0Lsrw52akls/y5xdFZEPamJD13hR2WkrzNdDFtT"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJicrkrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr+WA/+Ja72r6iZAdpC4ZB3NQ3VWTQLbb9/ZW5KS4rKLQfbanGh0qzB\r\nkdvSZrSPLmHBG78WOr5TU4U12N6tgFOH5OwPRDC4TXPopLM4JuW+HtYAchrz\r\nRHxscg43RYOGOQ5gJBeNS/Ut5C9Wdo6GAAC75hWjt1ScLfCSAJhqzrQtNLMV\r\nqNiiP+obJli1aRet1Wjta9MOpeorI0hw4ri+TjQNv+Iym8ciw+ltOA5Wqd/5\r\nikaKm51hhIvq+AMkmM3s3BRO0e2UbB70z7NwaR0yUtt1MGz+2wjkHgELuKrJ\r\nIWlEReHQl3Fq4D0BFIwOHENWXpTLm1Th5EZIGSsnu90wDGrLJ89pEM7VAYqu\r\nIcVwzILwE2ST43MWSf/GXWRXj/xpDJDbXUSt2Vg/7MPksJEJZoVjD3CYpz7e\r\ndQ6JRbTsUtRwTr65DsCXS5uUgjU/aeEILD8YPFEDBk9rGkNh53CAbvs51svJ\r\nYSoQfO2Bqc4PzE4p/KCUMhvtRTvA1/pj4xFstZ2qnnWsk4tn1ZMKfmF0nxwb\r\n28hC8T5/Yo+y/dzoLFX53iFiX6oGk1Gyct8IqbuPcFwvVQPjEiaOeBX84w1x\r\nUecCiYNBVPQKQ51cNFrz8YaFXt9J9P9Cnf1ONvOLEPAekrwcA/fDtr6m7pdK\r\nJEMEp1vfoG9CKG4TKLnqoeCo8O8mEKOzR0I=\r\n=RQ8G\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.4_1651685675639_0.7126933721970579"},"_hasShrinkwrap":false},"1.0.5":{"name":"@asemin/nestjs-security","version":"1.0.5","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.5","@jira-killer/constants":"^1.0.7","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","readme":"<p align=\"center\">\r\n  <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r\n</p>\r\n\r\n[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456\r\n[circleci-url]: https://circleci.com/gh/nestjs/nest\r\n\r\n  <p align=\"center\">A progressive <a href=\"http://nodejs.org\" target=\"_blank\">Node.js</a> framework for building efficient and scalable server-side applications.</p>\r\n    <p align=\"center\">\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/v/@nestjs/core.svg\" alt=\"NPM Version\" /></a>\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/l/@nestjs/core.svg\" alt=\"Package License\" /></a>\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/dm/@nestjs/common.svg\" alt=\"NPM Downloads\" /></a>\r\n<a href=\"https://circleci.com/gh/nestjs/nest\" target=\"_blank\"><img src=\"https://img.shields.io/circleci/build/github/nestjs/nest/master\" alt=\"CircleCI\" /></a>\r\n<a href=\"https://coveralls.io/github/nestjs/nest?branch=master\" target=\"_blank\"><img src=\"https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9\" alt=\"Coverage\" /></a>\r\n<a href=\"https://discord.gg/G7Qnnhy\" target=\"_blank\"><img src=\"https://img.shields.io/badge/discord-online-brightgreen.svg\" alt=\"Discord\"/></a>\r\n<a href=\"https://opencollective.com/nest#backer\" target=\"_blank\"><img src=\"https://opencollective.com/nest/backers/badge.svg\" alt=\"Backers on Open Collective\" /></a>\r\n<a href=\"https://opencollective.com/nest#sponsor\" target=\"_blank\"><img src=\"https://opencollective.com/nest/sponsors/badge.svg\" alt=\"Sponsors on Open Collective\" /></a>\r\n  <a href=\"https://paypal.me/kamilmysliwiec\" target=\"_blank\"><img src=\"https://img.shields.io/badge/Donate-PayPal-ff3f59.svg\"/></a>\r\n    <a href=\"https://opencollective.com/nest#sponsor\"  target=\"_blank\"><img src=\"https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg\" alt=\"Support us\"></a>\r\n  <a href=\"https://twitter.com/nestframework\" target=\"_blank\"><img src=\"https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow\"></a>\r\n</p>\r\n  <!--[![Backers on Open Collective](https://opencollective.com/nest/backers/badge.svg)](https://opencollective.com/nest#backer)\r\n  [![Sponsors on Open Collective](https://opencollective.com/nest/sponsors/badge.svg)](https://opencollective.com/nest#sponsor)-->\r\n\r\n## Description\r\n\r\nNestjs Exception handling implementation.\r\nIncludes: \r\n    * Handler's chain mechanism\r\n    * Custom exception to inherit from\r\n    * Implemented Nest JS Validation Exception handler\r\n\r\nException structure: \r\n```\r\n    {\r\n        code: \"ERROR:<ENTITY>-<CODE_MESSAGE>\"\r\n        status: 500,\r\n        title: \"Error!\",\r\n        message: 'This was screwed',\r\n        body: { any info you like }\r\n    }\r\n```\r\n\r\n[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.\r\n\r\n## Use\r\n\r\n# installation\r\n```bash\r\n$ npm install @asemin/nestjs-exception-handling\r\n```\r\n\r\n# Handler creation example\r\nClass must extend ExceptionHandler and implement `handle` method. Method must return HandlerExceptionDto filled.\r\n```\r\nexport class MongoExceptionHandler extends ExceptionHandler{\r\n    handle(exception: any): HandledExceptionDto {\r\n        if ( !(exception instanceof MongoError) )\r\n            return this.next?.handle(exception);\r\n\r\n        switch (exception.code) {\r\n            case 11000:\r\n                return new HandledExceptionDto(getException(API_ERROR_CODES.DATABASE.DUPLICATE));\r\n        }\r\n\r\n        return null;\r\n    }\r\n}\r\n```\r\n\r\n# handlers chain creation\r\nEach member must extend ExceptionHandler\r\n```\r\nexport const handlersChain = [\r\n    new MongoExceptionHandler(),\r\n    new ValidationExceptionHandler(),\r\n    new CustomExceptionHandler(),\r\n    new HttpExceptionHandler()\r\n];\r\n```\r\n\r\n# Nestjs exception filter configuration. main.ts:\r\n```bash\r\n    const exceptionFilter = new ExceptionFilter(\r\n        <ExceptionHandler>createExceptionHandlersChain(handlersChain)\r\n    );\r\n\r\n    app.useGlobalFilters(exceptionFilter);\r\n```\r\n\r\n## Custom exception use\r\n\r\n# throwException\r\nUse one of the codes. Fill free to put any information to body (second param)\r\nIf there are no code suitable - throw any exception type manually.\r\n```\r\nthrowException(API_ERROR_CODES.COMMON.EMPTY_PARAM, {method: 'getByPermissionAndPermissionSets', fields: {permissionId, permissionSetIds}})\r\n```\r\n\r\n# getException info\r\n```\r\nconst {code, status, message} = getException(API_ERROR_CODES.COMMON.UNKNOWN);\r\n```","readmeFilename":"README.md","_id":"@asemin/nestjs-security@1.0.5","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-rv3hBd1lzOINHAHHAfn2C0S/ftxIm6k7LNXTuJsBVCjBZIdQZ74CpREhABCE//x47LrgskKE3cTDAE+Yk8Cw0w==","shasum":"6b785ad43aec715aecfea0e29845df7f6eaecb05","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.5.tgz","fileCount":680,"unpackedSize":704943,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDVMobx/0uTEdLpGTt0HdGkzuLP1Mn+pp1QdFZvjImfgwIgEk4cTjXVmbbMoBc8DfjuMdb0bUafmDIwng8fmh7gX2o="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJicrrdACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrNRQ//bZQF//9hxAhofZECKNWS7jN4dVy2fw67/v7QezMYzRuwvi7f\r\nZF+yr0GjIEWe39EAUIFYN5p+1Z4pL7JC6tB12DutBX8/d11qXc1OblxFSxwz\r\nOLHNM+CvnJD6fVJ9gB8OQ41C2RQcMmFHjyw/i87Gio7Mch7q9QIDxstQiMqV\r\nh0wznofoozIUwGU1Bhqi5BxmN1VXKoyMkMUgDgkToYclH0cqD0anY/v8X8zI\r\nBZ4QkpBmnetbalSUeo3IEkpt2+oow9Lk2RURhDW4K/hCjoqnF6Qxo/oRan8x\r\n7pX9K1NTD/RpMo49uRZJ5sJ28hk0TDmJboqTQW2po/wTfZK8Rbmg91aWkmV0\r\nnG6jBj9jJ1DFisG/IvzwNCYGEfyYm4kE7zE3SuBzT+ZH18ZAo21+u4YAQqHX\r\ngz9QXTkqAVb7F76GLRsZcuAy1RTxNpX+JTygKl29Y0ZMcemSQYHlna6TBPe4\r\n7w42kys6HoSzkGpOKLomduGUH2xXV8dZXSeHQahocJvQnj6m4GTv2RDFI3hd\r\nAOkCfrLbsCGIMC4eN0hDLe1uFJ0gkUTjosMncFeyVMIoQgqjIQCL2vsKabkS\r\nH95Fp4u3wvBNDsSvtKp0jsrLByU1LINgiksaApNjF+Oe1m+m4NwMkX0XPmCv\r\nyhq6G06UgTIQPft+fNk/E2AexUvC8OyXthQ=\r\n=BB1Y\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.5_1651686108978_0.7159172433347283"},"_hasShrinkwrap":false},"1.0.6":{"name":"@asemin/nestjs-security","version":"1.0.6","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.5","@jira-killer/constants":"^1.0.7","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","readme":"<p align=\"center\">\r\n  <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r\n</p>\r\n\r\n[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456\r\n[circleci-url]: https://circleci.com/gh/nestjs/nest\r\n\r\n  <p align=\"center\">A progressive <a href=\"http://nodejs.org\" target=\"_blank\">Node.js</a> framework for building efficient and scalable server-side applications.</p>\r\n    <p align=\"center\">\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/v/@nestjs/core.svg\" alt=\"NPM Version\" /></a>\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/l/@nestjs/core.svg\" alt=\"Package License\" /></a>\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/dm/@nestjs/common.svg\" alt=\"NPM Downloads\" /></a>\r\n<a href=\"https://circleci.com/gh/nestjs/nest\" target=\"_blank\"><img src=\"https://img.shields.io/circleci/build/github/nestjs/nest/master\" alt=\"CircleCI\" /></a>\r\n<a href=\"https://coveralls.io/github/nestjs/nest?branch=master\" target=\"_blank\"><img src=\"https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9\" alt=\"Coverage\" /></a>\r\n<a href=\"https://discord.gg/G7Qnnhy\" target=\"_blank\"><img src=\"https://img.shields.io/badge/discord-online-brightgreen.svg\" alt=\"Discord\"/></a>\r\n<a href=\"https://opencollective.com/nest#backer\" target=\"_blank\"><img src=\"https://opencollective.com/nest/backers/badge.svg\" alt=\"Backers on Open Collective\" /></a>\r\n<a href=\"https://opencollective.com/nest#sponsor\" target=\"_blank\"><img src=\"https://opencollective.com/nest/sponsors/badge.svg\" alt=\"Sponsors on Open Collective\" /></a>\r\n  <a href=\"https://paypal.me/kamilmysliwiec\" target=\"_blank\"><img src=\"https://img.shields.io/badge/Donate-PayPal-ff3f59.svg\"/></a>\r\n    <a href=\"https://opencollective.com/nest#sponsor\"  target=\"_blank\"><img src=\"https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg\" alt=\"Support us\"></a>\r\n  <a href=\"https://twitter.com/nestframework\" target=\"_blank\"><img src=\"https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow\"></a>\r\n</p>\r\n  <!--[![Backers on Open Collective](https://opencollective.com/nest/backers/badge.svg)](https://opencollective.com/nest#backer)\r\n  [![Sponsors on Open Collective](https://opencollective.com/nest/sponsors/badge.svg)](https://opencollective.com/nest#sponsor)-->\r\n\r\n## Description\r\n\r\nNestjs Exception handling implementation.\r\nIncludes: \r\n    * Handler's chain mechanism\r\n    * Custom exception to inherit from\r\n    * Implemented Nest JS Validation Exception handler\r\n\r\nException structure: \r\n```\r\n    {\r\n        code: \"ERROR:<ENTITY>-<CODE_MESSAGE>\"\r\n        status: 500,\r\n        title: \"Error!\",\r\n        message: 'This was screwed',\r\n        body: { any info you like }\r\n    }\r\n```\r\n\r\n[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.\r\n\r\n## Use\r\n\r\n# installation\r\n```bash\r\n$ npm install @asemin/nestjs-exception-handling\r\n```\r\n\r\n# Handler creation example\r\nClass must extend ExceptionHandler and implement `handle` method. Method must return HandlerExceptionDto filled.\r\n```\r\nexport class MongoExceptionHandler extends ExceptionHandler{\r\n    handle(exception: any): HandledExceptionDto {\r\n        if ( !(exception instanceof MongoError) )\r\n            return this.next?.handle(exception);\r\n\r\n        switch (exception.code) {\r\n            case 11000:\r\n                return new HandledExceptionDto(getException(API_ERROR_CODES.DATABASE.DUPLICATE));\r\n        }\r\n\r\n        return null;\r\n    }\r\n}\r\n```\r\n\r\n# handlers chain creation\r\nEach member must extend ExceptionHandler\r\n```\r\nexport const handlersChain = [\r\n    new MongoExceptionHandler(),\r\n    new ValidationExceptionHandler(),\r\n    new CustomExceptionHandler(),\r\n    new HttpExceptionHandler()\r\n];\r\n```\r\n\r\n# Nestjs exception filter configuration. main.ts:\r\n```bash\r\n    const exceptionFilter = new ExceptionFilter(\r\n        <ExceptionHandler>createExceptionHandlersChain(handlersChain)\r\n    );\r\n\r\n    app.useGlobalFilters(exceptionFilter);\r\n```\r\n\r\n## Custom exception use\r\n\r\n# throwException\r\nUse one of the codes. Fill free to put any information to body (second param)\r\nIf there are no code suitable - throw any exception type manually.\r\n```\r\nthrowException(API_ERROR_CODES.COMMON.EMPTY_PARAM, {method: 'getByPermissionAndPermissionSets', fields: {permissionId, permissionSetIds}})\r\n```\r\n\r\n# getException info\r\n```\r\nconst {code, status, message} = getException(API_ERROR_CODES.COMMON.UNKNOWN);\r\n```","readmeFilename":"README.md","_id":"@asemin/nestjs-security@1.0.6","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-zEOZD7UWzkLDMARtjsW2lrcFGdxaQj8qhLvrZ8Lwp0SFbxe86VCZEDfrM1fdO3doOXTHDWpa4YFEl9Pz88oQ5Q==","shasum":"21dbfa275f223f551ee5ed500921c7f6bfe5806c","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.6.tgz","fileCount":681,"unpackedSize":705714,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC85QfnLbpmzmDYJsuUQkr8SAsGjjbr9dNl6HjCf/gr4QIgeLIYIY5pS7cKgTHAKf+7bSoGIe1MshhZeWMlxvYsKZE="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJic351ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp0WA/5AFwoOQ/nCImi4wNAy81vRyGPR370xzn1p4r4j5l+b9l7Pem3\r\nGJ5C9R3RJTQBfcWGMwUAG0Ba3kM53x1a+n6u/DPcePys/zAisEj9ShRuomMR\r\nJxtEPVcjLkttUEz19aDcwkOU6SBMjw3hBuSbu7v0++LZRL5oQ9Wb27/dKVXa\r\nK3uYUb2NQ39qaaHD5uXoK/8GpHVc2evIIYzRXqzrVjiLUN0YAD9iZfTpDPJl\r\neswyiViPe7DTF+CnE0wWATG2egt0+2TDL6Rj4oxb2IFBOepoQLAOPApIVSRg\r\nEkWjpd/9RnXkavK79VNkjR43u3C4ahyQXJ7zAwBtgE3lPYgiZKwVL2545fch\r\nBzVlPvjZvbhoqNOwpti1bgSgV6h9GEViz3XNAhyFFEWzQnIbA0BbEq25mPQj\r\nUrke210Kh02bLwdycBLM6SMgLdKoYIsyqHjCpatreKWUNtf6r/IbUeezli05\r\nwAObfESj2JG21+IX3UlJqylPQbKPXGWwugD46pB+SXzu16yyuKLR6G1nnV/J\r\nPe84nAhhecBGEZ6H+a95e/L+faLMI2bgSThIptul+2PUgR0Unj08kZbnIB0S\r\nwbER41UE7AVCIx65c+vDl1MUNDh8Syew1B8x1B92/6gmLudaW3lRC8AacAVs\r\ncCsyRkK3Y7q5OlE0V9qzPuV3MQjrvjXwe3Q=\r\n=NW1V\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.6_1651736181336_0.5688705691420495"},"_hasShrinkwrap":false},"1.0.7":{"name":"@asemin/nestjs-security","version":"1.0.7","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.5","@jira-killer/constants":"^1.0.7","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","readme":"<p align=\"center\">\r\n  <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r\n</p>\r\n\r\n[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456\r\n[circleci-url]: https://circleci.com/gh/nestjs/nest\r\n\r\n  <p align=\"center\">A progressive <a href=\"http://nodejs.org\" target=\"_blank\">Node.js</a> framework for building efficient and scalable server-side applications.</p>\r\n    <p align=\"center\">\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/v/@nestjs/core.svg\" alt=\"NPM Version\" /></a>\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/l/@nestjs/core.svg\" alt=\"Package License\" /></a>\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/dm/@nestjs/common.svg\" alt=\"NPM Downloads\" /></a>\r\n<a href=\"https://circleci.com/gh/nestjs/nest\" target=\"_blank\"><img src=\"https://img.shields.io/circleci/build/github/nestjs/nest/master\" alt=\"CircleCI\" /></a>\r\n<a href=\"https://coveralls.io/github/nestjs/nest?branch=master\" target=\"_blank\"><img src=\"https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9\" alt=\"Coverage\" /></a>\r\n<a href=\"https://discord.gg/G7Qnnhy\" target=\"_blank\"><img src=\"https://img.shields.io/badge/discord-online-brightgreen.svg\" alt=\"Discord\"/></a>\r\n<a href=\"https://opencollective.com/nest#backer\" target=\"_blank\"><img src=\"https://opencollective.com/nest/backers/badge.svg\" alt=\"Backers on Open Collective\" /></a>\r\n<a href=\"https://opencollective.com/nest#sponsor\" target=\"_blank\"><img src=\"https://opencollective.com/nest/sponsors/badge.svg\" alt=\"Sponsors on Open Collective\" /></a>\r\n  <a href=\"https://paypal.me/kamilmysliwiec\" target=\"_blank\"><img src=\"https://img.shields.io/badge/Donate-PayPal-ff3f59.svg\"/></a>\r\n    <a href=\"https://opencollective.com/nest#sponsor\"  target=\"_blank\"><img src=\"https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg\" alt=\"Support us\"></a>\r\n  <a href=\"https://twitter.com/nestframework\" target=\"_blank\"><img src=\"https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow\"></a>\r\n</p>\r\n  <!--[![Backers on Open Collective](https://opencollective.com/nest/backers/badge.svg)](https://opencollective.com/nest#backer)\r\n  [![Sponsors on Open Collective](https://opencollective.com/nest/sponsors/badge.svg)](https://opencollective.com/nest#sponsor)-->\r\n\r\n## Description\r\n\r\nNestjs Exception handling implementation.\r\nIncludes: \r\n    * Handler's chain mechanism\r\n    * Custom exception to inherit from\r\n    * Implemented Nest JS Validation Exception handler\r\n\r\nException structure: \r\n```\r\n    {\r\n        code: \"ERROR:<ENTITY>-<CODE_MESSAGE>\"\r\n        status: 500,\r\n        title: \"Error!\",\r\n        message: 'This was screwed',\r\n        body: { any info you like }\r\n    }\r\n```\r\n\r\n[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.\r\n\r\n## Use\r\n\r\n# installation\r\n```bash\r\n$ npm install @asemin/nestjs-exception-handling\r\n```\r\n\r\n# Handler creation example\r\nClass must extend ExceptionHandler and implement `handle` method. Method must return HandlerExceptionDto filled.\r\n```\r\nexport class MongoExceptionHandler extends ExceptionHandler{\r\n    handle(exception: any): HandledExceptionDto {\r\n        if ( !(exception instanceof MongoError) )\r\n            return this.next?.handle(exception);\r\n\r\n        switch (exception.code) {\r\n            case 11000:\r\n                return new HandledExceptionDto(getException(API_ERROR_CODES.DATABASE.DUPLICATE));\r\n        }\r\n\r\n        return null;\r\n    }\r\n}\r\n```\r\n\r\n# handlers chain creation\r\nEach member must extend ExceptionHandler\r\n```\r\nexport const handlersChain = [\r\n    new MongoExceptionHandler(),\r\n    new ValidationExceptionHandler(),\r\n    new CustomExceptionHandler(),\r\n    new HttpExceptionHandler()\r\n];\r\n```\r\n\r\n# Nestjs exception filter configuration. main.ts:\r\n```bash\r\n    const exceptionFilter = new ExceptionFilter(\r\n        <ExceptionHandler>createExceptionHandlersChain(handlersChain)\r\n    );\r\n\r\n    app.useGlobalFilters(exceptionFilter);\r\n```\r\n\r\n## Custom exception use\r\n\r\n# throwException\r\nUse one of the codes. Fill free to put any information to body (second param)\r\nIf there are no code suitable - throw any exception type manually.\r\n```\r\nthrowException(API_ERROR_CODES.COMMON.EMPTY_PARAM, {method: 'getByPermissionAndPermissionSets', fields: {permissionId, permissionSetIds}})\r\n```\r\n\r\n# getException info\r\n```\r\nconst {code, status, message} = getException(API_ERROR_CODES.COMMON.UNKNOWN);\r\n```","readmeFilename":"README.md","gitHead":"84707cfede91e8d5aa5fc10e1a0bfbfdee9d6280","_id":"@asemin/nestjs-security@1.0.7","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-+HudG305rPiP93lPtAHmTZXi0jSO38KLsrACbRTsLLHj3XT9WGJzAQAtSAftyPqhLvhrXDks5xzSwiDmBe8KQA==","shasum":"f1627bbf646501516f0a835e80608dfa4bc0bfee","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.7.tgz","fileCount":681,"unpackedSize":706062,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC1I2wsqgofOfKS/yuTpUesgOfFZiIfuCjcUV++jh3qegIhALPSZCxXH4xBfjud+wP5t90Iysfcw5Wcv1JonRnpv6TD"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJic39AACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrEog//ZWQyIfKkHT9fxxVYJS65TDX+lgecDfGbiAEOpusf/ZHFd9ld\r\nZfiV0fCS5LgJfP3S+NXElRhxRckZMDfVFJ65spnRNTdCsaFayBqNvuuonbjK\r\nRQesNuYJqT2wVEPrTBt+a70LsYlpcypy2e3CpcVknciCrVhrYTibJbLThTaQ\r\n0Ey8++Yy/ac4LIIVoiO/hosYheQo4gKQ0C9A5xpHNv5uCWYWZR+FLJJyNMHD\r\nnnVQBvs8U5dzeciCwP1ANTh6vH/nOz5JBsw8hl/EL13sa8YtE3EKNl4hQbR6\r\nYPFkdiOpQB5BXY+Cow2aFkj0rO39T5oBaD3AshcpkzreRMNIgJ714S25+tc2\r\nVxTTRZT1cW5OgIMOlLDfJmRTOgK0tmd50gIu2iJA8+wAAMtj+UnAW00mlbkv\r\nUHM6e5/xEyWlHADkThsQhh3omqPZldM8Qb+Z2azZi+ujqnfEq770vh5AULOx\r\nbU4rAoAggEgbAoIM0L53Q2gRK32KPGEPqecMy1kBev8VOr8wHaHMtvAZiMAL\r\nDMw6KHs/i0zIUWp1NydZYtna3shtG58COOuTM09EA/gMwnOppqWOuKSVRHRm\r\nF+VcGvy+eAfxFYl8UYkRSPuDJUcJ9tUZt27o7t7ULoYYCZ9A6zZJpCcsJflv\r\nkYSmKbwEiUwpTd7ifOuDnkKSQOsmKS/Tt+8=\r\n=gtuT\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.7_1651736384169_0.6152699336275549"},"_hasShrinkwrap":false},"1.0.8":{"name":"@asemin/nestjs-security","version":"1.0.8","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.5","@jira-killer/constants":"^1.0.7","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","readme":"<p align=\"center\">\r\n  <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r\n</p>\r\n\r\n[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456\r\n[circleci-url]: https://circleci.com/gh/nestjs/nest\r\n\r\n  <p align=\"center\">A progressive <a href=\"http://nodejs.org\" target=\"_blank\">Node.js</a> framework for building efficient and scalable server-side applications.</p>\r\n    <p align=\"center\">\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/v/@nestjs/core.svg\" alt=\"NPM Version\" /></a>\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/l/@nestjs/core.svg\" alt=\"Package License\" /></a>\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/dm/@nestjs/common.svg\" alt=\"NPM Downloads\" /></a>\r\n<a href=\"https://circleci.com/gh/nestjs/nest\" target=\"_blank\"><img src=\"https://img.shields.io/circleci/build/github/nestjs/nest/master\" alt=\"CircleCI\" /></a>\r\n<a href=\"https://coveralls.io/github/nestjs/nest?branch=master\" target=\"_blank\"><img src=\"https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9\" alt=\"Coverage\" /></a>\r\n<a href=\"https://discord.gg/G7Qnnhy\" target=\"_blank\"><img src=\"https://img.shields.io/badge/discord-online-brightgreen.svg\" alt=\"Discord\"/></a>\r\n<a href=\"https://opencollective.com/nest#backer\" target=\"_blank\"><img src=\"https://opencollective.com/nest/backers/badge.svg\" alt=\"Backers on Open Collective\" /></a>\r\n<a href=\"https://opencollective.com/nest#sponsor\" target=\"_blank\"><img src=\"https://opencollective.com/nest/sponsors/badge.svg\" alt=\"Sponsors on Open Collective\" /></a>\r\n  <a href=\"https://paypal.me/kamilmysliwiec\" target=\"_blank\"><img src=\"https://img.shields.io/badge/Donate-PayPal-ff3f59.svg\"/></a>\r\n    <a href=\"https://opencollective.com/nest#sponsor\"  target=\"_blank\"><img src=\"https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg\" alt=\"Support us\"></a>\r\n  <a href=\"https://twitter.com/nestframework\" target=\"_blank\"><img src=\"https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow\"></a>\r\n</p>\r\n  <!--[![Backers on Open Collective](https://opencollective.com/nest/backers/badge.svg)](https://opencollective.com/nest#backer)\r\n  [![Sponsors on Open Collective](https://opencollective.com/nest/sponsors/badge.svg)](https://opencollective.com/nest#sponsor)-->\r\n\r\n## Description\r\n\r\nNestjs Exception handling implementation.\r\nIncludes: \r\n    * Handler's chain mechanism\r\n    * Custom exception to inherit from\r\n    * Implemented Nest JS Validation Exception handler\r\n\r\nException structure: \r\n```\r\n    {\r\n        code: \"ERROR:<ENTITY>-<CODE_MESSAGE>\"\r\n        status: 500,\r\n        title: \"Error!\",\r\n        message: 'This was screwed',\r\n        body: { any info you like }\r\n    }\r\n```\r\n\r\n[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.\r\n\r\n## Use\r\n\r\n# installation\r\n```bash\r\n$ npm install @asemin/nestjs-exception-handling\r\n```\r\n\r\n# Handler creation example\r\nClass must extend ExceptionHandler and implement `handle` method. Method must return HandlerExceptionDto filled.\r\n```\r\nexport class MongoExceptionHandler extends ExceptionHandler{\r\n    handle(exception: any): HandledExceptionDto {\r\n        if ( !(exception instanceof MongoError) )\r\n            return this.next?.handle(exception);\r\n\r\n        switch (exception.code) {\r\n            case 11000:\r\n                return new HandledExceptionDto(getException(API_ERROR_CODES.DATABASE.DUPLICATE));\r\n        }\r\n\r\n        return null;\r\n    }\r\n}\r\n```\r\n\r\n# handlers chain creation\r\nEach member must extend ExceptionHandler\r\n```\r\nexport const handlersChain = [\r\n    new MongoExceptionHandler(),\r\n    new ValidationExceptionHandler(),\r\n    new CustomExceptionHandler(),\r\n    new HttpExceptionHandler()\r\n];\r\n```\r\n\r\n# Nestjs exception filter configuration. main.ts:\r\n```bash\r\n    const exceptionFilter = new ExceptionFilter(\r\n        <ExceptionHandler>createExceptionHandlersChain(handlersChain)\r\n    );\r\n\r\n    app.useGlobalFilters(exceptionFilter);\r\n```\r\n\r\n## Custom exception use\r\n\r\n# throwException\r\nUse one of the codes. Fill free to put any information to body (second param)\r\nIf there are no code suitable - throw any exception type manually.\r\n```\r\nthrowException(API_ERROR_CODES.COMMON.EMPTY_PARAM, {method: 'getByPermissionAndPermissionSets', fields: {permissionId, permissionSetIds}})\r\n```\r\n\r\n# getException info\r\n```\r\nconst {code, status, message} = getException(API_ERROR_CODES.COMMON.UNKNOWN);\r\n```","readmeFilename":"README.md","gitHead":"d217a79eedc614271972f0e43bf7a8d3b4719788","_id":"@asemin/nestjs-security@1.0.8","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-FrtycghL6XxynkJqSv3DKzhU284oyjV/JYubC7Yn7xfS8borl1gq4ADcYtV/dibrlDpETumcdPWWVm5sz/UZxQ==","shasum":"a0f9c9990cb259ad6e09389581271639d0a39ede","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.8.tgz","fileCount":685,"unpackedSize":709962,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEjfgbO3sa12nd83Swa+GMxoBEj0C+V3l0K3DBT3yfDtAiAN89DBLOfVXSB+o4G9HquGfC85U9bUEl7nGPCPlvUyjw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJieUu4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmor+A//eDYhGdQfXuJnOD2oj5t8bwPTslWOM7glmz9JsTJtPTaAs+KY\r\nNQYSy9lJsfzy0FU9DXZ0bHxKSe5rB5m2jK1cEW179ZsVLwRDt7knriKbDAXx\r\n00GulpVwHPt7nK+lOs3H8Ktvz1O3F+XwVnAZZFOls2Pv6m1LQ5/iA7opIz6d\r\nrFF1Nq43yt9CEnyuk91VJB4Jnh6NH0D00LFuDkB9Y6xcQ4jkA1gUP/y3t7IH\r\nQFJzra6H47bGR+2hFBmpWwuxah2Ndj7iiaVDQf1KX3eZUgTPpNwS6ZWWshjg\r\n7fhog8XbMoINOJUfdoFBaENTf7Eiyb+0AAJKDuioMJudvon24v6/Ray2wCD0\r\n5I5CrQToHXDAW0OXET/2mP1KDRw4L+rIDHOU+q5MOR54Z/RDmgiXoC35X9cY\r\nbkGTQp+wGVkptr4F7zz7/h3AXN7b6gLhn38VlYq9HgoozH9RsB4zrCotN9Hn\r\njneFhS84uflU/EJyz9xp41qWg1AuUksPILVbMGIZzGnsqaLVzknbi8PDJ8ju\r\nd1FtBVFy383wpUMhTDX5MgFllBw8AQRRFoZh1k9eBHHbBrmBNIDj0h11WbQh\r\nfrP0zVcftaPGK7x1MB+F8WXh6XjN9dwO2dwoSbPjoqC2i6Kf5OUn+Oug8/wt\r\nCRJffjPauz37BrX2xWuiuN8z4HORdF5NyHU=\r\n=AFwj\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.8_1652116407974_0.7624878208584878"},"_hasShrinkwrap":false},"1.0.9":{"name":"@asemin/nestjs-security","version":"1.0.9","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.5","@jira-killer/constants":"^1.0.7","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","readme":"<p align=\"center\">\r\n  <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r\n</p>\r\n\r\n[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456\r\n[circleci-url]: https://circleci.com/gh/nestjs/nest\r\n\r\n  <p align=\"center\">A progressive <a href=\"http://nodejs.org\" target=\"_blank\">Node.js</a> framework for building efficient and scalable server-side applications.</p>\r\n    <p align=\"center\">\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/v/@nestjs/core.svg\" alt=\"NPM Version\" /></a>\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/l/@nestjs/core.svg\" alt=\"Package License\" /></a>\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/dm/@nestjs/common.svg\" alt=\"NPM Downloads\" /></a>\r\n<a href=\"https://circleci.com/gh/nestjs/nest\" target=\"_blank\"><img src=\"https://img.shields.io/circleci/build/github/nestjs/nest/master\" alt=\"CircleCI\" /></a>\r\n<a href=\"https://coveralls.io/github/nestjs/nest?branch=master\" target=\"_blank\"><img src=\"https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9\" alt=\"Coverage\" /></a>\r\n<a href=\"https://discord.gg/G7Qnnhy\" target=\"_blank\"><img src=\"https://img.shields.io/badge/discord-online-brightgreen.svg\" alt=\"Discord\"/></a>\r\n<a href=\"https://opencollective.com/nest#backer\" target=\"_blank\"><img src=\"https://opencollective.com/nest/backers/badge.svg\" alt=\"Backers on Open Collective\" /></a>\r\n<a href=\"https://opencollective.com/nest#sponsor\" target=\"_blank\"><img src=\"https://opencollective.com/nest/sponsors/badge.svg\" alt=\"Sponsors on Open Collective\" /></a>\r\n  <a href=\"https://paypal.me/kamilmysliwiec\" target=\"_blank\"><img src=\"https://img.shields.io/badge/Donate-PayPal-ff3f59.svg\"/></a>\r\n    <a href=\"https://opencollective.com/nest#sponsor\"  target=\"_blank\"><img src=\"https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg\" alt=\"Support us\"></a>\r\n  <a href=\"https://twitter.com/nestframework\" target=\"_blank\"><img src=\"https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow\"></a>\r\n</p>\r\n  <!--[![Backers on Open Collective](https://opencollective.com/nest/backers/badge.svg)](https://opencollective.com/nest#backer)\r\n  [![Sponsors on Open Collective](https://opencollective.com/nest/sponsors/badge.svg)](https://opencollective.com/nest#sponsor)-->\r\n\r\n## Description\r\n\r\nNestjs Exception handling implementation.\r\nIncludes: \r\n    * Handler's chain mechanism\r\n    * Custom exception to inherit from\r\n    * Implemented Nest JS Validation Exception handler\r\n\r\nException structure: \r\n```\r\n    {\r\n        code: \"ERROR:<ENTITY>-<CODE_MESSAGE>\"\r\n        status: 500,\r\n        title: \"Error!\",\r\n        message: 'This was screwed',\r\n        body: { any info you like }\r\n    }\r\n```\r\n\r\n[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.\r\n\r\n## Use\r\n\r\n# installation\r\n```bash\r\n$ npm install @asemin/nestjs-exception-handling\r\n```\r\n\r\n# Handler creation example\r\nClass must extend ExceptionHandler and implement `handle` method. Method must return HandlerExceptionDto filled.\r\n```\r\nexport class MongoExceptionHandler extends ExceptionHandler{\r\n    handle(exception: any): HandledExceptionDto {\r\n        if ( !(exception instanceof MongoError) )\r\n            return this.next?.handle(exception);\r\n\r\n        switch (exception.code) {\r\n            case 11000:\r\n                return new HandledExceptionDto(getException(API_ERROR_CODES.DATABASE.DUPLICATE));\r\n        }\r\n\r\n        return null;\r\n    }\r\n}\r\n```\r\n\r\n# handlers chain creation\r\nEach member must extend ExceptionHandler\r\n```\r\nexport const handlersChain = [\r\n    new MongoExceptionHandler(),\r\n    new ValidationExceptionHandler(),\r\n    new CustomExceptionHandler(),\r\n    new HttpExceptionHandler()\r\n];\r\n```\r\n\r\n# Nestjs exception filter configuration. main.ts:\r\n```bash\r\n    const exceptionFilter = new ExceptionFilter(\r\n        <ExceptionHandler>createExceptionHandlersChain(handlersChain)\r\n    );\r\n\r\n    app.useGlobalFilters(exceptionFilter);\r\n```\r\n\r\n## Custom exception use\r\n\r\n# throwException\r\nUse one of the codes. Fill free to put any information to body (second param)\r\nIf there are no code suitable - throw any exception type manually.\r\n```\r\nthrowException(API_ERROR_CODES.COMMON.EMPTY_PARAM, {method: 'getByPermissionAndPermissionSets', fields: {permissionId, permissionSetIds}})\r\n```\r\n\r\n# getException info\r\n```\r\nconst {code, status, message} = getException(API_ERROR_CODES.COMMON.UNKNOWN);\r\n```","readmeFilename":"README.md","gitHead":"3aff7c7be8269bcb0726895889d368bc26c1680b","_id":"@asemin/nestjs-security@1.0.9","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-dssEYiqVv5zjiPPqsgND2qRixxwPQlXcKn9l5T4TEiHF/7jN6zHKMhv593+99Vz+p+w/f7hZPda7EW/JE9IBjQ==","shasum":"88b526ed6054ea72fd2cc7ab46aea18c4d641704","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.9.tgz","fileCount":685,"unpackedSize":710162,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDx7SL+6Kst4HT73UPzIomVqLXsqaue1KoafcGVp+/F/wIhAPPr8WeO0VhPJjFjjwkNO0gqtXVvgNzYeBKTWqJ95LKR"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJieWe6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqskw/+JbsDwJ8NxZmnGHu+Pa4iZWDLKYlYBxmzmtwa+zV66F3W4kXy\r\nyq2HOL6za75OY6UQyoUUxZhqfNVJ4f7W/S5AgopVdg7K1auiow8tC2ol0y4J\r\nHeplMWOlgWh78tGS7YsrymssvlDXajwdfhzxiJxSnKalJyPRrBCOiJI8cWPe\r\ng/CjM43CXfWI/Ivr55RJfcEcKmhlDnWovbqKLwmWeYewbbybCEJZTOqBuTYQ\r\nSyD1SpKzzT8b7smf+mDbkGq9acwZwllKXe4B1GyUbDoACU8gK6q5cecXADPO\r\nmY5KSmESirAmx1pPmOzmr3ahXyMXsDAnitAfzRGGb7gT70kMEv/RmY/Txzug\r\nHrCFyZvqWbXEcu6RuWhXpap9yR5DuVB6E0U8josyNE3F7aAHDnPhzcf1+u9X\r\nfMOPT9BT3xZ5tdFZmjQDxBH1nbRHacKhcsAPLqnQNwas2d35IoMuGgdpZioV\r\n2uHf9e8j+Tr31Ji0GKvaObD/iR2In31ifad38LTmof+WVdEoM2+moNxmNAA0\r\n25N/1Lp9bOjHp7Lnt0pysYLAV7lu5uSTfrTprfDiFCoo6x9RYL770fGiBg+G\r\nIvvGBArDt12ujuNyb8ZmkjKu5MJaz6PQc6HrWTpITdhlYzRAcatNf1VIbtuZ\r\nM5n1zVPju0USr+u5LFUKXNLzfK9gU3egs/M=\r\n=0td1\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.9_1652123578607_0.31431560538156944"},"_hasShrinkwrap":false},"1.0.10":{"name":"@asemin/nestjs-security","version":"1.0.10","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.5","@jira-killer/constants":"^1.0.7","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","readme":"<p align=\"center\">\r\n  <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r\n</p>\r\n\r\n[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456\r\n[circleci-url]: https://circleci.com/gh/nestjs/nest\r\n\r\n  <p align=\"center\">A progressive <a href=\"http://nodejs.org\" target=\"_blank\">Node.js</a> framework for building efficient and scalable server-side applications.</p>\r\n    <p align=\"center\">\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/v/@nestjs/core.svg\" alt=\"NPM Version\" /></a>\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/l/@nestjs/core.svg\" alt=\"Package License\" /></a>\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/dm/@nestjs/common.svg\" alt=\"NPM Downloads\" /></a>\r\n<a href=\"https://circleci.com/gh/nestjs/nest\" target=\"_blank\"><img src=\"https://img.shields.io/circleci/build/github/nestjs/nest/master\" alt=\"CircleCI\" /></a>\r\n<a href=\"https://coveralls.io/github/nestjs/nest?branch=master\" target=\"_blank\"><img src=\"https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9\" alt=\"Coverage\" /></a>\r\n<a href=\"https://discord.gg/G7Qnnhy\" target=\"_blank\"><img src=\"https://img.shields.io/badge/discord-online-brightgreen.svg\" alt=\"Discord\"/></a>\r\n<a href=\"https://opencollective.com/nest#backer\" target=\"_blank\"><img src=\"https://opencollective.com/nest/backers/badge.svg\" alt=\"Backers on Open Collective\" /></a>\r\n<a href=\"https://opencollective.com/nest#sponsor\" target=\"_blank\"><img src=\"https://opencollective.com/nest/sponsors/badge.svg\" alt=\"Sponsors on Open Collective\" /></a>\r\n  <a href=\"https://paypal.me/kamilmysliwiec\" target=\"_blank\"><img src=\"https://img.shields.io/badge/Donate-PayPal-ff3f59.svg\"/></a>\r\n    <a href=\"https://opencollective.com/nest#sponsor\"  target=\"_blank\"><img src=\"https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg\" alt=\"Support us\"></a>\r\n  <a href=\"https://twitter.com/nestframework\" target=\"_blank\"><img src=\"https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow\"></a>\r\n</p>\r\n  <!--[![Backers on Open Collective](https://opencollective.com/nest/backers/badge.svg)](https://opencollective.com/nest#backer)\r\n  [![Sponsors on Open Collective](https://opencollective.com/nest/sponsors/badge.svg)](https://opencollective.com/nest#sponsor)-->\r\n\r\n## Description\r\n\r\nNestjs Exception handling implementation.\r\nIncludes: \r\n    * Handler's chain mechanism\r\n    * Custom exception to inherit from\r\n    * Implemented Nest JS Validation Exception handler\r\n\r\nException structure: \r\n```\r\n    {\r\n        code: \"ERROR:<ENTITY>-<CODE_MESSAGE>\"\r\n        status: 500,\r\n        title: \"Error!\",\r\n        message: 'This was screwed',\r\n        body: { any info you like }\r\n    }\r\n```\r\n\r\n[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.\r\n\r\n## Use\r\n\r\n# installation\r\n```bash\r\n$ npm install @asemin/nestjs-exception-handling\r\n```\r\n\r\n# Handler creation example\r\nClass must extend ExceptionHandler and implement `handle` method. Method must return HandlerExceptionDto filled.\r\n```\r\nexport class MongoExceptionHandler extends ExceptionHandler{\r\n    handle(exception: any): HandledExceptionDto {\r\n        if ( !(exception instanceof MongoError) )\r\n            return this.next?.handle(exception);\r\n\r\n        switch (exception.code) {\r\n            case 11000:\r\n                return new HandledExceptionDto(getException(API_ERROR_CODES.DATABASE.DUPLICATE));\r\n        }\r\n\r\n        return null;\r\n    }\r\n}\r\n```\r\n\r\n# handlers chain creation\r\nEach member must extend ExceptionHandler\r\n```\r\nexport const handlersChain = [\r\n    new MongoExceptionHandler(),\r\n    new ValidationExceptionHandler(),\r\n    new CustomExceptionHandler(),\r\n    new HttpExceptionHandler()\r\n];\r\n```\r\n\r\n# Nestjs exception filter configuration. main.ts:\r\n```bash\r\n    const exceptionFilter = new ExceptionFilter(\r\n        <ExceptionHandler>createExceptionHandlersChain(handlersChain)\r\n    );\r\n\r\n    app.useGlobalFilters(exceptionFilter);\r\n```\r\n\r\n## Custom exception use\r\n\r\n# throwException\r\nUse one of the codes. Fill free to put any information to body (second param)\r\nIf there are no code suitable - throw any exception type manually.\r\n```\r\nthrowException(API_ERROR_CODES.COMMON.EMPTY_PARAM, {method: 'getByPermissionAndPermissionSets', fields: {permissionId, permissionSetIds}})\r\n```\r\n\r\n# getException info\r\n```\r\nconst {code, status, message} = getException(API_ERROR_CODES.COMMON.UNKNOWN);\r\n```","readmeFilename":"README.md","gitHead":"380324b2d4782125a8f029d6aeb7038423330e8a","_id":"@asemin/nestjs-security@1.0.10","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-LjC/k7Bmm11RPirghnL3K2whUwY/GaUgB+8pVMEH+Q8XFU5BQzaZqs2QYhtH90NCTzPPJjLKpdJEdEHYqiFO6Q==","shasum":"7fd9894504a7ec6e4330881bf981c9c88e18d399","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.10.tgz","fileCount":700,"unpackedSize":740315,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDIe1F75pCiXqdpuYjVyHFma78fJ3DwDjn13z+LJu2QrAiEArampXWRIVMbqrX7bf+XHpwRXMD1LyTsMuaLnIAHZJgk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJieiWOACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmouqg/+K15icZTPUASPXsE0ZdWNdWLtI6YdiyG2Xtesg9k5+KJL5Xsp\r\nbNeHuXFmK6WvhIgTqJVjcu2ARiuZe4T7Cg3TQMrwQdmPUsTJnvPJD+GnqCcb\r\nMjZSRZBLvoRjKKMV7skyaVwo3w5o3yJ9CSASnBdNjTd0Ub0Qv2THUXULkA6z\r\nfs0uEjY7kqsL6NiD+Zrdfq2bz49y5B2ImJ4YiD3SioAH5BIpy0VbOMjeDHq3\r\nfQI/HyoYpA3WWaK9Xy3d0SDiu6HfTxGREzTVpyqz1x1k9EJKVWV/YJQOiyPr\r\n7kDDOr6em/bKJn6VEda9AdQVO9N4oWAzy5cpmJSUcUrOUzzAa4agF6jzH1HI\r\nhqQiDtq5BGPcnZgwebRboozVdZs06qc5DkT62koZJmkoVi2ad1qlU5NRZRII\r\nnDwEcrEhgsQPeUYV7jCYBz3X/WbwWhrlF7y7fNZIgXEbsabfdqbPjDwhLwMC\r\nu+qAGmOQhvlIiwo7YbC5VniEwDjTOCrScbJRyEjRSHpCjywRjKCrATNQooZq\r\nS9YJ2ZdRYlluRzIpgwHkiIqI0u6Fw7gtuH/ZAPtgJ1hMHNc+s4U/LR0YlyeU\r\nqqWwE807HE4QYD65ngYylmjc4VFz4A9AUOySegyLNwIXhaiJAVzjHNME5t4J\r\nuTagplgxEj8Vh8AoQ56fWWt/o1638ubHisQ=\r\n=6DLA\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.10_1652172174627_0.5046390407985915"},"_hasShrinkwrap":false},"1.0.11":{"name":"@asemin/nestjs-security","version":"1.0.11","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.5","@jira-killer/constants":"^1.0.7","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","readme":"<p align=\"center\">\r\n  <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r\n</p>\r\n\r\n[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456\r\n[circleci-url]: https://circleci.com/gh/nestjs/nest\r\n\r\n  <p align=\"center\">A progressive <a href=\"http://nodejs.org\" target=\"_blank\">Node.js</a> framework for building efficient and scalable server-side applications.</p>\r\n    <p align=\"center\">\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/v/@nestjs/core.svg\" alt=\"NPM Version\" /></a>\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/l/@nestjs/core.svg\" alt=\"Package License\" /></a>\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/dm/@nestjs/common.svg\" alt=\"NPM Downloads\" /></a>\r\n<a href=\"https://circleci.com/gh/nestjs/nest\" target=\"_blank\"><img src=\"https://img.shields.io/circleci/build/github/nestjs/nest/master\" alt=\"CircleCI\" /></a>\r\n<a href=\"https://coveralls.io/github/nestjs/nest?branch=master\" target=\"_blank\"><img src=\"https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9\" alt=\"Coverage\" /></a>\r\n<a href=\"https://discord.gg/G7Qnnhy\" target=\"_blank\"><img src=\"https://img.shields.io/badge/discord-online-brightgreen.svg\" alt=\"Discord\"/></a>\r\n<a href=\"https://opencollective.com/nest#backer\" target=\"_blank\"><img src=\"https://opencollective.com/nest/backers/badge.svg\" alt=\"Backers on Open Collective\" /></a>\r\n<a href=\"https://opencollective.com/nest#sponsor\" target=\"_blank\"><img src=\"https://opencollective.com/nest/sponsors/badge.svg\" alt=\"Sponsors on Open Collective\" /></a>\r\n  <a href=\"https://paypal.me/kamilmysliwiec\" target=\"_blank\"><img src=\"https://img.shields.io/badge/Donate-PayPal-ff3f59.svg\"/></a>\r\n    <a href=\"https://opencollective.com/nest#sponsor\"  target=\"_blank\"><img src=\"https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg\" alt=\"Support us\"></a>\r\n  <a href=\"https://twitter.com/nestframework\" target=\"_blank\"><img src=\"https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow\"></a>\r\n</p>\r\n  <!--[![Backers on Open Collective](https://opencollective.com/nest/backers/badge.svg)](https://opencollective.com/nest#backer)\r\n  [![Sponsors on Open Collective](https://opencollective.com/nest/sponsors/badge.svg)](https://opencollective.com/nest#sponsor)-->\r\n\r\n## Description\r\n\r\nNestjs Exception handling implementation.\r\nIncludes: \r\n    * Handler's chain mechanism\r\n    * Custom exception to inherit from\r\n    * Implemented Nest JS Validation Exception handler\r\n\r\nException structure: \r\n```\r\n    {\r\n        code: \"ERROR:<ENTITY>-<CODE_MESSAGE>\"\r\n        status: 500,\r\n        title: \"Error!\",\r\n        message: 'This was screwed',\r\n        body: { any info you like }\r\n    }\r\n```\r\n\r\n[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.\r\n\r\n## Use\r\n\r\n# installation\r\n```bash\r\n$ npm install @asemin/nestjs-exception-handling\r\n```\r\n\r\n# Handler creation example\r\nClass must extend ExceptionHandler and implement `handle` method. Method must return HandlerExceptionDto filled.\r\n```\r\nexport class MongoExceptionHandler extends ExceptionHandler{\r\n    handle(exception: any): HandledExceptionDto {\r\n        if ( !(exception instanceof MongoError) )\r\n            return this.next?.handle(exception);\r\n\r\n        switch (exception.code) {\r\n            case 11000:\r\n                return new HandledExceptionDto(getException(API_ERROR_CODES.DATABASE.DUPLICATE));\r\n        }\r\n\r\n        return null;\r\n    }\r\n}\r\n```\r\n\r\n# handlers chain creation\r\nEach member must extend ExceptionHandler\r\n```\r\nexport const handlersChain = [\r\n    new MongoExceptionHandler(),\r\n    new ValidationExceptionHandler(),\r\n    new CustomExceptionHandler(),\r\n    new HttpExceptionHandler()\r\n];\r\n```\r\n\r\n# Nestjs exception filter configuration. main.ts:\r\n```bash\r\n    const exceptionFilter = new ExceptionFilter(\r\n        <ExceptionHandler>createExceptionHandlersChain(handlersChain)\r\n    );\r\n\r\n    app.useGlobalFilters(exceptionFilter);\r\n```\r\n\r\n## Custom exception use\r\n\r\n# throwException\r\nUse one of the codes. Fill free to put any information to body (second param)\r\nIf there are no code suitable - throw any exception type manually.\r\n```\r\nthrowException(API_ERROR_CODES.COMMON.EMPTY_PARAM, {method: 'getByPermissionAndPermissionSets', fields: {permissionId, permissionSetIds}})\r\n```\r\n\r\n# getException info\r\n```\r\nconst {code, status, message} = getException(API_ERROR_CODES.COMMON.UNKNOWN);\r\n```","readmeFilename":"README.md","gitHead":"35c767ae91c3cb30918af4a676e4f05c866c043e","_id":"@asemin/nestjs-security@1.0.11","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-Dbz9ejaL8wPb1fPgr96pif56+HNDKpZ+lAEWVn7El55aZgbHu5EgsB6hTDgHlybRve7e1tebj9DgvgF/N3hffQ==","shasum":"b99a1b187e31994a3f3350f2c3e185eedad90644","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.11.tgz","fileCount":704,"unpackedSize":742338,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBuqZLbBRJFZNzrZ8Y5AiJiMfvCDh53R8FcacGtxVNQYAiEA13U1G7peFhcriQ9ZmMbasJ/rAG5dmeUbb6wpq7Tx5aY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJieia3ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoq8hAAoV6pngsQzMKGDtZKm59BHzI4r1iK9NKxIjO6bw1jPfifKJeT\r\nLMDk1gUE+rIDK4RM9hmC7ORbYJtRMd6xDtPwTbrjvjyCnC096l8+7Ygb86WL\r\nC86gf2yXcpxIOpVmoDkMPbH3jsW+jldrfpVdMIumxmowvconjHNsdhhUrmtn\r\nw8Bs7iZ4qQrc5IixmCEuV4tilALmA8DZgmn9GX89AEq/R4Ui5GnSqC6t05LL\r\n/c/hp6Bzo00QMXnaZUHgfjoH0dyTZzUTtdpMNmqaRNTa47qujDd2Ge1Mceu8\r\nak83bnjauua0hsNrYYyCYZOcG/Kk642MZIw2SYpb0GSfNa8No7ufFVPOcY5f\r\nUFUgW9tUrj40Xj5rOswjQ98cbBmAL8Az0GdiqUJHtXBjCMBdjJ59Imbj4CFK\r\nmxzL/RoQNp0kAtSy/FjomiZx/70qd2Iutvuuscu1yIaO7pDkOT+jhdB1rHC7\r\nftIdD1dsrt5LFv9Vt7A/GtWjShN/J5KczBcbBmdDiwHMVd6fvECCmMaKg1bv\r\n5bEuc4Ym+jRcx29vCpNJYfEhhZ6sIuo/yLPV0mrZ1eNn+nYvSV7wFwoTSrIK\r\nEHyGM3p+f8oP0lo/LQxM2/TRi2EJn/Ug6LzbwrbnF7GrqenB1dx/gutTcDIR\r\nS3GKiJdb0ufEUe4rg26xUCB6MRlZvCZNgvQ=\r\n=HorJ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.11_1652172471639_0.46967216126627953"},"_hasShrinkwrap":false},"1.0.12":{"name":"@asemin/nestjs-security","version":"1.0.12","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.5","@jira-killer/constants":"^1.0.7","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","gitHead":"600499828db6910f67b7bc53947c9a0e04448d79","_id":"@asemin/nestjs-security@1.0.12","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-AGNsTr61N4OpJC2qYXZ691/A9TBPjwOx2HAG7VaYM6z/pnGvIcwqWwf/CUsmYl2O5klKlqPW3eZfueBzsxtXmw==","shasum":"84376b1c0af0f964ec5b67081ea52745fe65d4ba","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.12.tgz","fileCount":712,"unpackedSize":745801,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBx9onNa4lXRnAdMUL2kGkBco6XdS4bd1TiZ9InwUMN9AiAMUDmpubnkFZWEg4N/DQN3SsGj1wFYymVNLTdUmzL3cA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJieiiAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqKOw//RmrhVt72a/R8AYqoHoEkz5r9hycEgem5cEXzK8yRj3dfQnt6\r\n7mFWYp8Ki9axRd7bxC7ITkrK9+iSytJDN+JWq5/5TZyEMGLoNNUnbwfuWOZY\r\nw77EVzB3kCVxh/7yvyF8w3nD2TbkT7ZyVUADv6Tg9Y50+VCSTsMIJPyDM53o\r\n1XmsqBv7ypkKobyYVt6mwMzEnfJTgtgVE+Bs/2BRcWDYDWXEP0dRUHy8jFFj\r\nhA/FY4ZJud/BYaS4iAuDyGxvXeAVs58UwMRAFKK1buqnDfn6TjkhKDRooyBy\r\nGi2RY0MoadwJCh6n03MGtFwhCOvwFs311Csz/R2A+FD0eBOa8DxzajPCsTwO\r\niPU5GsX0kHjwbot3ZxC0yQxF9s7LdEMhgKx0p7Vrni7eeZf69TJ6DwQE1JQI\r\nCYCz3j+GpGg4CjsqypcBRAoZDGEtCBW8qNHX4tgskzFYxGZD7TvvAwis/U2v\r\naTqjT8PCsE3D2ict15WpK5k47JVUDbFE/Je+0Iv6necMgGHvEVvWxNCcv1ps\r\naIrFwGKCe1fdblV58+lP/X9ATGpDrVipOx6iP0hBhiQh96m5iuwvILfREczP\r\ntRtu2cVl1wVBoVgEb7yx+ZPyDcZRYrz35Wba01e/4zUtmLAa1DCSibufU/ZB\r\nvUzSoTmbN73ny1G+2wv6hemwWRPLp3zV4BM=\r\n=+O0M\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.12_1652172927489_0.163318847931456"},"_hasShrinkwrap":false},"1.0.13":{"name":"@asemin/nestjs-security","version":"1.0.13","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.5","@jira-killer/constants":"^1.0.7","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","gitHead":"1869fb630a3fb4b8e45f717c69b41a381dd42c9a","_id":"@asemin/nestjs-security@1.0.13","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-Nm6fU44y6F79fdaTvmUB9M9pf0iyE/rRiPkAL/yoRoVbIFjdH8EM8Mvlsd0lrM12q+v5/O7GSh0C88NqSxkdIw==","shasum":"5f321568bd98c38946b3e4e8b124d4fd02a8cc7a","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.13.tgz","fileCount":712,"unpackedSize":744952,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD1aBOsiwM5PuwLYaAZT8UZsvOCxB3zwtSZqBQVBAlpOwIgY2qC23bsgfvdLlEfmwCYxiag/5Pn/OhhTqkwa4unFB4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiekZLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr7Sg//RuuZAsUB12Nd5UUwfFKDjZ/QP6s1UnnY6Lo8UEgbhrlQL36p\r\nmzmjxkSWDAXUFMZQ25FlufM3LZ5nUyTPmlawIXm74YCtfAQwbQUugGGVWz4U\r\nWA26RWj2BywpVQPhEIwR2dTYfKFxkHt4DG6Sw6PML46JuXHhsEz9ZOpdTFUh\r\ncs/a3g3+ZPWlGl5fggtZuhrJFfuw86jysYNgkToDi3bFItRVy9dwawfihea0\r\ngFolclXA39DrHWLRXVJq6ELwhwSMCdI79K99BaeokVTD/KO8XE2YQxyVn3oK\r\na6vu57RLBgUrIW7jwMTJhQh6AB6FEDHMjSNxY4FkjVBOdtWpusD9e54TmbJt\r\n8NhsJs7PgiuBdijZJN4S9qULbYip47cPkN9SxmjS558FWWngcwsUitWXdffZ\r\nVIqmU2hCPFdanI+SXDIZIEepUYEM1ErWaw4X096NFu4UJakUSW/RPV/ICMNI\r\nD4ozDyC5rhZSuj6Z6tnFVNL8waacnug9QM8jy6yNGQNuYTeMBkfJp5n223r3\r\nra57L+7XBG3Ys3hGD7L+EFQzf11pkbeQNoOOYFErz/EUPkYbvo29f2O3g2FJ\r\nuqZbs9rxjcedDG0A+BAPOEdOPi1M/xXRkKTZqedNdnXMZOivD+H5iwNAcdlo\r\nYzvhSANS5TpE01ZucHUCzqP+FWSuPh/pTL4=\r\n=H+Sn\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.13_1652180555051_0.7732907641683235"},"_hasShrinkwrap":false},"1.0.14":{"name":"@asemin/nestjs-security","version":"1.0.14","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.5","@jira-killer/constants":"^1.0.7","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","gitHead":"c44368c47850d43b3f6f17a713d46c253384b5e9","_id":"@asemin/nestjs-security@1.0.14","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-D9p7ruVJwbc5dSXsmBxyBQrReyJewn7tlbR9fcuQQjvwl/7kFh7wOGrM6otOHguNM3xcS0eUH92+UfUoWCvhdg==","shasum":"7f48366a3b47ce93791ea2c2edac689bc5b12c8b","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.14.tgz","fileCount":756,"unpackedSize":781507,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDbZJbhiIkxCZo0dCpbAghBbgew83tEgkxGuHaOrbgLfgIgKRswUkG0Ow81+vH1A1Er2obZC0efBojLXon+UGDmU0M="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiel1iACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmovfQ/+MOY5boGiJXYlxsGo4nbG3SGrV5gxp3INIypRpQzLSpxRfXfx\r\nqg3MYbtnI0tvSwPdCiQjYIzck1/bWLhewWa1eltWEfsvh+l+GFmXEYarEzgF\r\n4MVITI95YsgyPl2LJ9K31L4R3t3Bp2ZsOxbkVA+PUHZCcCZ12KGCN+Qb8tur\r\nP0WHU6SaS6TDLUielwynT+rS3KzkuWYtSpConeFP7t58PiiV7b9aIwIBqstV\r\nlw/GcYOhiEr16Px6YzcB8YEPdImghWe2fqG+R+W2lE1HyT2hi3C9mVZNSGep\r\n/WplpD7h1rIswEJbiRaRWSebsuMwhXWmN0HuUksTvCxaC8Ipqctn15gHazqa\r\nGmOYHdsSlmFcsivBIemTTt2uMq3B1GZLlmGlctUvBxQeSKo/9UDD9ztgysLN\r\npP2IczOdnpbDodC5XFNfcmTPzrNGwqmHma5hzYE/rFysSLN+t7lFOUloQbry\r\n4mjgBkBpRwRdr/xwZnjBVRYxs7YeYpEEAiEIacVnumkpFkDSCN7fpupt9NIC\r\nGNhlMCQgquNUTI5IK118S17hjIBVaScn5BMbrDDiQzei3LmSSB1zzijaTNY0\r\njbba/ffDKvhl2CMI5f/zQ1fSLHTGocF4GaNuJusMTYl1nmgzv2q2I06pykqU\r\nh3BD27HEo/wfc5VPTc3PN9ZF9YIPLWTpS+I=\r\n=5iwD\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.14_1652186465850_0.728385811663242"},"_hasShrinkwrap":false},"1.0.15":{"name":"@asemin/nestjs-security","version":"1.0.15","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.5","@jira-killer/constants":"^1.0.7","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","gitHead":"ddbc42b3a3c7d1d675f6fa995248c9c395d2e2b1","_id":"@asemin/nestjs-security@1.0.15","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-jSaKlBML0WpODe6G3QvkY2dl/naSf/CJRIGTWQUQOkT8ACZ7g0uHeE2IyrtqV7STHo3Oo94SH61epJeyk99jvw==","shasum":"42ba0ca8ce550975f63073981b5fd1a822e0395f","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.15.tgz","fileCount":756,"unpackedSize":782967,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAOApWp8Qt76wVrw+6q7coo8lfZD2H30RvFOn8vXTKzcAiAvLhxdQm8OEVNOVk5IPJIpRmn2FmU3Pb/f4vTMAqxeZw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiem1oACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpEPw//R35Bxd25PgrAaGB216yzDyURvYXVer8sGUyCznpLrVnuhLHr\r\nhh55lxFObJyrxErwuPXPjPuahsngn1mGE+dfjthlyoEnDAnno5ji6770eb85\r\nIN4OsmgA0PljmXx/4tJhUI2/IgCoCTUn3KpH48Jgo7iSegPLutQFwROATCaV\r\n2e9i+YKR64SO+AZitckfU4EhoRuzXkaRq+rfNMEbRmk4EOWksgolX0XYCdNW\r\nOKZVYIpjJx+NUeHP8WYyxU9OQWriq/uPer1BqbXEwCDauSb3LuM/JViR2Bw0\r\n8N219kYuRGvIsfEmTajAyvo9d4+sjlphei6sFkMDkhV9K9w2OqtkD79XTVD9\r\n84WnTrB5KWcgeq2W9NQTc3j4tYDxvsYP8FdG4EIwo65OuuZMsZiWXWrLLpAx\r\nVm4a7/kMfg3GKwriXpHU+CklKfVHwiWjr+lZ1CKbBrkJuBqijQgQ5ZMux1U9\r\nCmELxItu5Hdr34Zc7wd3WKh0FHu7oNk2utADqL+geY0QHYXDPaRdYg37GET5\r\nAYMxlbn1CWQAvlwEm33m+DZ8ebBsuIQEdnu+bSTTPU81XffkYPE3jxyJOgOb\r\na0c5UA3xIynKEFy8YbjWgmSl4mii51czK72K0eabOF+kEl+sdSMGla+KGL1J\r\nezYhRC8uaZuQoD6cbTrpKx8gGXWbeRwE07g=\r\n=YMR3\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.15_1652190568356_0.7764995511642727"},"_hasShrinkwrap":false},"1.0.16":{"name":"@asemin/nestjs-security","version":"1.0.16","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.5","@jira-killer/constants":"^1.0.7","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","gitHead":"26cf728f27fe77877e06c445d72b26e7ff26dc69","_id":"@asemin/nestjs-security@1.0.16","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-h6mq5udk1gkAchmGVCUHwDlZ0qj9u3H1VaD0U5+fP0uMjf54y9uRRnKfI9dd3OTfyM5FySvL1EWVDg/n2ZAmcA==","shasum":"5b8258792e256254d541eb7aafe6e14d3c638d60","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.16.tgz","fileCount":756,"unpackedSize":783331,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBz5B4KLDbloZKEUe3zD6fapLXoa3uNDTPK4Ks+q28lRAiB3wd8FUq40bdJLCVIsrr6a0QUhJpaVBooESCc7d6E9DQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJieoCuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo5dg/+MgtwXebpMkehwFXtym6vncfSZUCdOKT0hRoa3iFnjGAj3d1Y\r\nrBB6mqLYEQMmgjgADJru/2xENxdmpQ+NL8cHajd2dPRMMfwFAq/adUEPHYMH\r\nI4Pe4SRnrvULDMu3Eh3savVA+bfT5zrDW2gbyClsTeJl9v0kl1X+43GZhp0c\r\nV/HNoKNgjoKIGIQ7cH3Yk+yiFHO4ME2PEZvq5G/vmVpCRHaon3jLJ+wQOCFp\r\ncbZH0Hp4/N3wlxs/9/tDm1l8/AZgBm/D1OeEiEexAP9yNBWh2EwGUu/wcqby\r\n1TUEz9cu8eK/pJrCB8t8X3CTm7lPCP14FHxHuB1g2Xs93/Isz1dHZoGDzifr\r\n85LyOZqAQ2u9YwHidfQxnI/kzbXyFiyaRjZtJg0lugv7AZW7ZhYqZWWvkjSK\r\nS+WylogF0Y8ghJjvOgggb2WTjUmJarRVsrmNtk8zlsln1d5bEFJ4jHxYWbaw\r\nlChjEmjHlJap8L5SQ0Ns2qWpwNURiE3KwfeaPWBjnH3VyhS/PSgwuB63DzpK\r\nBRjX2QMUJSABS2KBKB6pEpG59u/2Rypz2QPTAMNKPdf/Qe7raMtHeNZVCgyv\r\nyDQzBtiUU0erBfUYvO0g2GRfbrVbmn1uHF7KU4/m3LbyS3708bTARCHADZYZ\r\n4XX22/T86KWeBzuRSuTlle0o2KFUJLNTey8=\r\n=5UEJ\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.16_1652195502531_0.6039527424451478"},"_hasShrinkwrap":false},"1.0.17":{"name":"@asemin/nestjs-security","version":"1.0.17","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.5","@jira-killer/constants":"^1.0.7","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","gitHead":"d4e17135c71248025fc9524fb1ad7c742e6cc99a","_id":"@asemin/nestjs-security@1.0.17","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-oY/XiY1/AK/urglw5po25fX0EKB2ng/n5+2e8gn+ooIVCYQkpOPSH8rdkiQUpEJrv/iThU3C602zwwTs4ozp/A==","shasum":"f1e27da93b0dc4445922f7180a8994cdddfbf245","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.17.tgz","fileCount":756,"unpackedSize":783721,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFtdrfG4+5KHMdZXD5jKx1PcfnUpIlC/P/XyFjXnt28HAiEAxYnNriAubi74Bhh4FaF3Rj4s4ALMajnw4ExVWM+zbpg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJieonAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpI7w/9Ha9haNa+cogABzY1yacat6PJB4T59Zqyu8XPBAit1xSn3P6i\r\nBHuaeUaCPZTD5o/9LJk58B1r1R8UdA2vAxIwjfSCLqS2yn5hQSQTjHBoVjE0\r\nOu7Dac9vBLHeYSEt64Mqt+Mg6VDFpK4ZCDEu13D8LQzzfmFTFNm+FZfKMkRp\r\nPFTXKUJcyIyFz3eRRxmy+UB9OJlniR9WEy/d6bcDYFWEo8MTVnGQ8QA6P6Pv\r\nGvsuUTj6Lr82sUhaq/AaewYCPYX97SW1SRNAU1+xe5YiSztzVXHwmTLxfuJs\r\nlhL4KvbuuZBefSrwBsfP9zXMmHyLVjRlROC7bd3wKlYimlgJd+naBidqYh9l\r\n36dbxCkA7TJvCV8YiilTah6kqgs4wyu61N6QYOswThUXUOGnLFkEmhwF3HVw\r\nxWeytDwOcJcZ4EwKgFnLPPRc30JDyxHt+cB2V4TSH7qmBBO/g8Tjuv9fBt+F\r\nO8AEm2rwChgfEkdbQzp1XiZRYLtaa4Liqw8O9pkfiaXnHM3PGEo8A0bskAea\r\nlLAdZvqKXavuS5I839GQulqLi3xMqNeJb4VAC/mkUHopp6OAEhGyK0vdDJDO\r\nZOrbGFeag3mQajrbA2RsNtvPfQ36l2KhhZuWAPTJQy/3P1+vMdL0deOqpc1h\r\nRk2H9RjhzE0jx1e1KutLfjE+2C2sHkdQyQs=\r\n=5wjI\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.17_1652197823926_0.11227579879548966"},"_hasShrinkwrap":false},"1.0.18":{"name":"@asemin/nestjs-security","version":"1.0.18","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.5","@jira-killer/constants":"^1.0.7","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","gitHead":"d03f4e25497ae74681592d786651ca6b81624346","_id":"@asemin/nestjs-security@1.0.18","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-0VBCy2X6NxxXOAowvulHU8PGOLE6IPc0PTlpqms18y2ww2zWjASaT8BncFUg+zHLGgcq8mLiep5tQ0v7zYnyyA==","shasum":"0143bf722f109f2292122e2229523943717a19d1","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.18.tgz","fileCount":800,"unpackedSize":803817,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCN0pBU3hpCIkUye4sFlbOUMpomCsoAPK+bvEfaKGpdcQIhAN3H3J1Lev5/DgOJc+8arEv7mklI51/ahvGQf6tEyLHc"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJierhlACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp3Cg//UkQFggTZdK6J669G6Vxdh6Fj6deeJxiKs1Fxbxy/jZEgsApH\r\nBDXGbVZfJQW8Hiy206xfzQje18r8gz2fVTxHm/yRunNfX9jycQkO+EkxQvdh\r\nGxN0coeI1EL76n8gveWZCbAKZ7uiHrxOpnu3dpew7Z2Qwzn+n4EwkrFF4J7P\r\nY66oCoc8ejXgUvLKRiniOeTy51Mc/Kap5MaUzLPNlJ3tILERuxGTnqcuHfOn\r\nYDDtt8iMiE1QoCUKeuVMB/5dgj11y0EVzgbn7OMnX5LSOD5DvL7CfnnzPQee\r\nWljixoPkY2nclL5YWxTEq02W4EReqgr5edbkxuSYFSi+apzMcp2IXr6NbYT4\r\nxXjWW9oLjk0JxwDPbRgVUZP07lm8x1Y1WxHrX3ImouDNenyr5AzTwbod6IPS\r\npyMdu10TEEzQE1p5XJulc9bvwfcM8Ni9hxEGhXXwnS412LTdXiW8Kf5MVGr6\r\nVa9fpjxmlHCBrMIAAdOkg5YKU5pzG9lABNYBRWM1k9Nqz7dywUci9c4PMNuZ\r\nneY8n9dbhVTurULeffWyLgq3l8R7cwK95HCDkwAFJQDvCDwshFAgnhN4NsSB\r\nxppB2NNidxgWhn1WvOjzyvBH9RXUFIAnVjODbYhLC71J2Xrgrxrv82E8yVUx\r\nuXr2YCswrMTDujR6Zj8W1t8Nl2/8T3kk4vk=\r\n=Zwec\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.18_1652209764993_0.8997272684765567"},"_hasShrinkwrap":false},"1.0.19":{"name":"@asemin/nestjs-security","version":"1.0.19","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.5","@jira-killer/constants":"^1.0.8","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","gitHead":"90bed4c97daab4b774846c86962d7624bc297144","_id":"@asemin/nestjs-security@1.0.19","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-jvD4bZGDx7Y8GGLX8vkg0yogb8DAN7te1r2MZy4pru9867jsVdcab/RvSANfOsDR6Nu3AVqxF7XOzr6Ygcwcww==","shasum":"975764186f7940af816d9ebfa1d0c3dd863049bd","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.19.tgz","fileCount":800,"unpackedSize":804304,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDWy3IY5is8/d9/nP4138S+7dDT2cPb/kmcwyqeMY1x6gIhALs1FMlF7f/EqIbMYjs6YPG7QP1swj7WWT4ZjwoogFKB"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiernFACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrVZxAAh/M9mClKHGRLZoR00Q41XFiqKJg6clQ2Vq5tj9hBdv7UwnuP\r\nhNHAQnAxZ5Hj1qQNfmIhD8123pLrRv48gW2GGEAgLr3d7tUY4T2/xcNYwhn1\r\nzu28lr/n+WiNfKCXLn78nrGiIVfZV5WIu06Q1Y3cJ2owTdTnkAmcnsyRwyoz\r\nYev2Rh2e2sQ+58qy2mt1+8VQTtgicpLJhi+6q1yjUxgFtXCoy/mNZWaA3A2W\r\nCmblLYzduDQlVImmDeHw3NLHSBbLbWBwQPx6rSU/tskbLlzAQny37FLZKosX\r\nAVa8Yzg2ZmoDFnFXfYND7PP/QXi3KYNTxEA8Uuj7yyUiZdsJKnq/01fUjk/p\r\nlaqH1K3vHxH12NYzwtcng+W6VOxDUgHcnJ5o8v7oYQFOY1Id3WH0tXncBSmY\r\nJpXiWKk9DZqIIYMZijrALC5Io20euGizjiu2L2+NW0A6xHGuB2qMvP6ak0kF\r\no1VJ/Ma5+kSKsHGUBKPQ5gwyECCzOQvsfM+rKyiTQTqncPLZaYMBKs+/1myg\r\nep5Whs4PeoJ63qJmsm/wluyQMvCo2EVuL+LKIx0oT1gnQaL+LUpYWxqLTDSc\r\nFGdQFSUD7fLqHzJPrp4SJtwUJdBUNLw2UKdxMpQ8huSgSQVH2fve1g5pMu49\r\n7k9UfZDJ7zzoDmmFNUZoJbU8HEswet4ykE4=\r\n=2uEu\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.19_1652210117714_0.41125062893455966"},"_hasShrinkwrap":false},"1.0.20":{"name":"@asemin/nestjs-security","version":"1.0.20","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.5","@jira-killer/constants":"^1.0.8","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","gitHead":"c4f0cfcd58fa1ceed72cf3557d9cee7f62088ecb","_id":"@asemin/nestjs-security@1.0.20","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-ePtFMsOCa4+0iU+T4RO5IkBI/BwI7K6p1sW3LOuW5SidCC5bnnSimTprhLGw1Pm2UZo25fEtiLgejLedN3Wxjg==","shasum":"169b596c8ee4074f016dc0d234d9a2a0b513c62e","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.20.tgz","fileCount":800,"unpackedSize":805083,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDp1754ad4oGvUQK2XC/GZ5A6vgWGI8Fe96G8ub8gdg2AiAisI5DMI2FSJpbL8vZBv4acIQTDHlu31e0TB6aXr3OQA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJie+wmACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrtMQ//WUoRK1yAgZ0VKt3Yc1pfALH2ddsdkOiRJyHzA15M+46M6585\r\nqIjpXPgB7fAYoPup2vLv2pbfpY7KzPVIi8K/1OijlJyust4wn3CpVVmK0Akx\r\na6lDRFUp6WgUX4la+eTeSLeWKWT9MYPWkWMYMqGb+FlDZoUIYsgLucHMUTKz\r\nDcaTYjjGKEdjM8g3TMFUjJpsCEDsU/JLWAVTAn4VVaHkr8MVHGsY+j2QxFaT\r\nf2jU8ukP2HCY4FWynCRgczHovWUFl/2PsZmX0ivM6a5lOulmBufBFlEGPNc9\r\niZG6O8N0qNV0R18A8kWeqOQMkn8rdxVMcNjRSoUXvO2flku3xEhRcRoaqrHe\r\nGPfT8jZlc/MBKUgLpy7PqARkn8wyWPqsS31JulP0RV07DLRXZeyenRvWc/V0\r\nixI5SNX4GXYGas4bq2IV+A86+wNU2J9waPMVzu9DWv07Jex24I9GRGi4lnXB\r\n6/TrckicdLEuDYR9wFPutyPkAb4Qe4u3Teh0vLemhkFTjIDGHlVOxH0tMnJZ\r\nDSOBOoJ3M7kJaOcvCjhkQJ/wvBKiqJimOLotRVr3IW7gsQVigLlMxWd+OvUx\r\niHfaM7YM7gmZbSA2w1u3Kf8WFb/73vEgbJxkjVFkRz01qKN6dXc031u6S0u/\r\nIRU5DogHBewaVrmBbHslh9jjpUixpk//FfU=\r\n=s2V4\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.20_1652288550507_0.9667103152544314"},"_hasShrinkwrap":false},"1.0.21":{"name":"@asemin/nestjs-security","version":"1.0.21","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.5","@jira-killer/constants":"^1.0.11","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","gitHead":"5bdf239ef839b1a6b554e1136a68074aaa4758ba","_id":"@asemin/nestjs-security@1.0.21","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-6X8BwhqWg3KEHJ+ocRZxz56fRqD9roxbsDihxe2Qx5s2ex0BG+eliwtM52gxGocHPym6VzN9kHOFvRusWJywDA==","shasum":"0c0c5ee771dd7003388f02a0a5b0604d80eb0416","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.21.tgz","fileCount":804,"unpackedSize":808025,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFBwFJHH2/v8UY72jzbY4Um+AokS+bhfpRstD+wy7WxXAiEA5SE9ETD5FsMqnzpf2JKM6qygETuJ1KdiBuqLDGGmqb0="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJie/R4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq+vA/+McnDWVd0furKrzNexHxmumVCDwpaCgEG5EcOZBilANAAKjRh\r\nfDyPD+/mT2ByHO8q0yjV5DldIfL8aNWntOWeXLrOIxUPTnd34FrsL/7SR6yi\r\ntggIVIJnccxCQ0RU0czzA21ft6Y+iPagbxyFBtFuojdoh0xk4WBnSMdweaBm\r\nQeJyxCAhkN1jmPjDLwDB1EGcUChTxsICgRpdTcJksW0JDdt6B3cc+lkHJ144\r\njuVYKj9F+Xirx9mVbwhNacUEsi4dlvt73qJkP8iLOJYAz5aUoOCSwj0nang2\r\n39PkFB09sokIulvcI3tXT1zfUaRa5yQ6R1LHNdxVmlz19qdaUjumE9KqVswx\r\nHgjPjFTNZ32zKTVzFdfh27bTXGvk/img/qjtN+A/3Y65sGFCbxRIBbW3W7EV\r\nSSPlruzqDup/HPv97BEZaXHBZlo3yGCm+GPUWnGF9FPf8hwaI+338VN5Tx3u\r\nu4eWES8Qca3ERKrL9wbg34HHULyI6XsaWpw9s1vrNhHX1Md+dFeqJ+eKOScG\r\nzCf+IDLbX5LZAhemCwt+jjME40EihZJkE8Te/hnr95HlcobrVIYb/KHytDKo\r\nDskthu8Kbc5j+Xlly4pZbgTlLEAYMkv8eB7HAB7y+yoMTplXj7laSEf09Soq\r\nPKF+VV+o6ueI1al4/YIfcPUy+xay62tAIKM=\r\n=gXQi\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.21_1652290679854_0.4872197116673662"},"_hasShrinkwrap":false},"1.0.22":{"name":"@asemin/nestjs-security","version":"1.0.22","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.5","@jira-killer/constants":"^1.0.11","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","gitHead":"a0ff3ff8edd34bd4eb36ae87d6bf03d6d2d7ac31","_id":"@asemin/nestjs-security@1.0.22","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-91JYryvMOD+DPBQpap2debgLC2ODJZSJyx6/OKKQFkitfe4xaqisz7C+npSf+8qkbTOlosoCR+65K1EazyHRjw==","shasum":"bb29366ccd38a32614da51676c6498c2ce6ea84c","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.22.tgz","fileCount":804,"unpackedSize":808373,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFSaCoR2FMX7tQqTpzbhuQ+W/W/TkJMfTLwBjj2ZSSymAiEA/3iQiAdTGVBQ3RMwS0sPytBEGJ17a02TLRbbcK7BfZY="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJie/d6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoDnQ/9Hg3FTd0loSeAOgpSyUuYc0rlGClFHSZ8ORzXOD7TWT4MMAgO\r\noLvWacJGN4+0PG4X7tvr22i55leFKQPkjevaSIc1gv7OAtaWulXbN1qDp/KS\r\n9v/R45iut2RX5lKyS34UJrBPutVvkyPAoRHCoctPiBl3uJI7Pe3RT+dF4qpf\r\nIGqPQnisfpNa+7qF+km7cNUQdg5IdpEuGB6scUhgTkRcjXm1OtDAyvsVW28H\r\n93CrmfaNQwmnJY1diosx7UhgHXtUzEi6RBFmY8vRc4B+Nj4dndEJJuXubKes\r\nNfyknP26iV2O/WGN7aVDHWx5Ypy5ehT14yTaGXAvPIck8HxD7LzMRBD4YNEr\r\n/3YW1w7yhWGzUF6AqWt5I+lSuOmisqn8lPoFO63UxE205jenqRnkMkIzktI2\r\nAZLYb0kgifO7cAfSCDhLDwAachwzOaDagz7l7J3MLqB1ChXGb6PKOfOK467C\r\nhZUmJALAHqyA5GS01xqdMyFAL8MYQ3/by4ClLgIDZqOVHrY6gSNvKYl6PNKD\r\nlOdA8nmfueWBGjkJfifWNfQndwGQqOEgMuUU1VJyseiaki2glQXw3EjJpbhu\r\nO9DAZeQUiLt6UW8cmqpR5OKZOU6EZaJGj03LYgIkg6F/9R+MdD68MBEdn4By\r\nC5/M1v61aKlY7YO513yJacv0FijmyVMkuo8=\r\n=AMuW\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.22_1652291450314_0.8595548177498082"},"_hasShrinkwrap":false},"1.0.23":{"name":"@asemin/nestjs-security","version":"1.0.23","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.5","@jira-killer/constants":"^1.0.14","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","gitHead":"6312737675219e09a397bad4c76c6328268202fb","_id":"@asemin/nestjs-security@1.0.23","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-9Je7doM79ZgYKQXLni3jd5g4uTB0cpgDSP+Jxf5/hKK5N6+nkver/QjSGXnUI7TmQtOOq8J0bDRIoKeiXRAXVg==","shasum":"3b9d41a86c8a45b18fc9ae4eea2c45663d9beeff","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.23.tgz","fileCount":804,"unpackedSize":809290,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH1llR/hSEkCZQf8QXQsP38R63ChdhjuLGe1axsgFZHVAiEA1UN0hXVBJKjJDeFdfTBy79sXhBOEnFfSgkKoMtAwRL4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJie/2mACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqA0Q//fyTV7TAjEhHDBJOMhpY992OhMuxXqmxk8gwZRyHLX/uA6Qmn\r\ngAg+5gC5cLZUlRXJUF+pwPBC1L550V6B+z7Ez+jsO/NBPbhwB4ciaxjNw0fd\r\njBe/M4RbEHvmb3yYmRsA4LhlJT4Id7fgYdCaj7wvr0GBGWVb6316siU3hyAj\r\nRzwQc0Wit9ak+rSql3WycHvrsXGi3oN6rly/mChTX0fAzu7E0Y3oOHtHOhR4\r\nRr3JOr876SD2sUArgVCWmosyodggkc4Z3lQFcjYTV2yoeKunE9sHwn52vRZI\r\n/7g+JodoqxlBDPfSdzKkZkpJWtlHLXuhX7Ti4NFlsqNgBmOCb4LHSCi14H2X\r\nBKaX51qex9m4gNTznGYjjiLTXq7FyurgdDOvI8tvR6wWej5kM9jNETEH98Dt\r\n0RQIoyoyP+8z5y3BIxN4UekSc1wt0FOUSEY2iarEntkD6GRw4SBT5ZxV8yhm\r\nGHFbNpVKrSeN4zaUPXchlMTirz/8tOL9o6kjqPLILAV/loa1Tz5BebqulOK/\r\np7ntD8PsiP3Wp9Ax3fw/8p6imnodEkraZzB6X7WygCsvBSiJE660n6wQUjhj\r\nfy8LlZxZVFCYezRCK6m4vLTfbXSEtlQJ+U08KwXoCTMPYg0RTddTHTDylug6\r\nkB578t9bCKdhLUGzWnaM4Pj/F/5JW6JfmFc=\r\n=1Y4v\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.23_1652293030015_0.4222147033764425"},"_hasShrinkwrap":false},"1.0.24":{"name":"@asemin/nestjs-security","version":"1.0.24","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.5","@jira-killer/constants":"^1.0.14","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","gitHead":"398fc23129423a806c1318233bb95ce42fbd5c80","_id":"@asemin/nestjs-security@1.0.24","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-JKMFYaEyIqnUoVZ+lOaPNdaBAwfWu8m973cbsZymARg8gC5jg8RyMV/sqRU3BVlDVXG+6cN4EOvyW0uOvGDqHw==","shasum":"e6051d0bd699e8c1a7bfd7a555087e28486e90d9","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.24.tgz","fileCount":179,"unpackedSize":175039,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD8QyzfuJ5mjDEOyuEn8oaRujNW5TFppq4V3O5fvHc28QIgdwkCSdvJIVG53szvQMa4mDjwHmyPsk/p6JgIDiWy8UU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJifOE/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrD3xAAlrAspZIfrEO9UcQxUQtRhRtvwkSfzTGNPbE/57Qeq9cMpxAw\r\nd6ELOy6rY2c3KxnCLi0u3C2Uu6bQi8nFKCXp13O8uRx9qhh5ZccAKqnyiYle\r\nzj/Zs/WoQaVLgAbAM+Wiggu5zqaxV2bQunOc+1GxpPKqgHsPlGI/tHEVJKRO\r\n5U7XpFIMU4wZLforx602KIsY2c13K0CjhQcv+vxX1Y4m7N1zWlA6w+tWxySq\r\nExo4qvg4xTAubKysFHBL8QMyAd3t0BCsmegi1TSsvQ9yCayE1KG2NCRGmjil\r\nvQcxitlXbJ/JqBcMg1o4WYv0BG+ysk49gFVZjxBm0taIfu+kxXuvIjS0wUrj\r\nWvI76JD/KY/+WKMh1enduHGpKqbdYg21/SOiDx0zmRVotc1isWVI8V9zyOGA\r\nt9F/MADbuCgrcVlWc/2F3spnrKj/aWdtwZnpyGj3AxO3+rX60aRv3kvrLcFu\r\n7WD3SGo/MW2I4boc6+xPb+EdIwLDEmVsQILjt/SBsnYAVdfWu2OQEB/VHOcF\r\na8x+xHMg96T0eoXftJ4C0gxsLUrimD0I/PiRFyIaRRGbPmqFHXS0JB69oemV\r\nszPFizX/47kkmrW6TY9AMQ4OmObm7udrldQwUEis6gQpf5dDM7B9Z0+u8imS\r\nf7oo6Gzx6/z2cUDE2Hb/jEAwgJm+t2W6100=\r\n=gf1l\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.24_1652351295138_0.9030541334032458"},"_hasShrinkwrap":false},"1.0.25":{"name":"@asemin/nestjs-security","version":"1.0.25","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.5","@jira-killer/constants":"^1.0.14","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","gitHead":"38667e2ad40c51fd507fbec89abc3aa151f7fb60","_id":"@asemin/nestjs-security@1.0.25","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-8Ya5DG6tIYjvEbO+kxRMPdnXn2Mi+ZYWLe+3C+U5k5kl94ZWY/Bss6AjceZabpKdWMSxIirFI2S/+AO1J7H+Sw==","shasum":"766d483f33556a9b0dd854151e3e065f27537d9b","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.25.tgz","fileCount":656,"unpackedSize":612014,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICDSB+kq+VaJxuGfm8rGDMjDfuDmrdhzuOr2kdhRpOcMAiAYGO2QpaJsOytpMA2CP1irn7228w9zVkoXeiUn9k9xvw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJifOKuACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmogcA/8CYWdK1vlDgNru4vgAHH/irSuAbGEnxlvTbJkgSf9RM0oxfHp\r\nj7e97fYSB355V/Zv6zcjCD46GgWseDFmZtqpL0V2AWR9KszkjLzseDClqlwx\r\nOFfFpSeQrrQfdx84yaXcmAJC0TCFS0ED0Nd1K0pM3izwdSsVzwEHitlO7dG/\r\nCde8re57U6mmCD2bxahzHNPTzmKhWMkxmwwkEfWSps/FhIOj+CojdC8S7nuj\r\nhroXhuyfLWEK2e93P+X7I+LopkIlBFrvhQkXXpAh3z0fJmMbDCIM3Su0/Snt\r\nTRnI8uKu38JextZqMNGvnWQWbzkyzRFBn7BzcGN/rgpO6mxzZp3HLc+8wXjd\r\nmMrK4GZS84H1Nc2c8Q6gWr+4pmYkWScvYXkyOAWtgqOvl+6OH+4vZbGyZpjm\r\nsPsKyFR2pXKg3tjqGAsqPPjQPNGr1gLYYC+UDj2i2lozq9RTgWclCfaE4P/0\r\n/Sf78sHtms6/R/S0X8MCxhmAHZHqzW7V4RKo2usu8myrVtyCbTnrcTebtIKi\r\nIqB6uibiMX3bSrVk0YnhDrb7wiGylagsXblIts+COqmq5ITJOreApogCNwy1\r\nkyl3LgbIACHl/bXJefkk8esNlijBHS+ra4GeKGUHhjJ1BbY8g+r5Urq8bmBt\r\ntUPRP0gNv4xW/8qe8xsy7da1JEc5enm4EiE=\r\n=hNHx\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.25_1652351662171_0.7247176914026188"},"_hasShrinkwrap":false},"1.0.26":{"name":"@asemin/nestjs-security","version":"1.0.26","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.5","@jira-killer/constants":"^1.0.14","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","gitHead":"a5fe93d52790377ca902807df905fec4f3bf3468","_id":"@asemin/nestjs-security@1.0.26","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-QQ5c31ARaPgrEdbqivFsCEZ0awFWmqmVENWViqtaL8HWmZ24oserNii+st2LOZ6v6RfE6LurRQ+VXGMN9pVlKg==","shasum":"7ebf40eba245a5748a2cf158e50e2c7d36aaf5e4","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.26.tgz","fileCount":656,"unpackedSize":616375,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBtOpfOP8mXjIWPmZ08dwclZyFnF9w1qQVSSCf5BJY4yAiEA94JZTgMSt962tPzDmA4pYlBuX0v1aLKcR9HeGeDYPTI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJifRCaACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoh2A//Yvs/UCQsjuppJbSqJPCfnNzYNh8FiyedVCzZTQX9OLt7bwjw\r\nZ2VfChXlafLitu6qA6lWLEfl1SP1BzpMiG3n3ljtDnCYz9IsCh23o2IeI2B/\r\nu5/Z+AS8lDitussmuhuTA5Cyse+nK4p516Y4kDV1hphvXH+jBew605DoN2EB\r\nZSCBQ/uqsuDoZnxFYITn1IxvI18cvqilLcxPIJlclqGM7L59cHzG5VFi8+Bd\r\nmcMDnwAnOc85pI8n6Fd4VJzNG73xytYdCfNxlfyhRBEDuoPhrtCGclus1jfE\r\nzrIy0+2n8oDFezz0PKkS2MDNRUzzNvTIktksLm5hfMmQsQA2btYN6nkHYAA2\r\nLJDusnznGKUMOpuNURJh5VodpAAGnwLJdpHXsxUnWkZMiWq0Yj2RjvtQsZx2\r\ni+oKRSnE0rSL2ohFWAtBnNvHeoZMBI2QqGEzUsfawr/IPiMlrpMLu6iNwoO9\r\nQSNTuoCl6StwFE6/EEpJ1wO5YArC2mggPxDMZfaHgf6jlqw5xwrbgL4PAomE\r\npU/w++KbfHVY0sIQGPNDRVpCK9fPc/7K2gsbn1JQvmy2rfs474x4pBTdYutz\r\nE+ldiJ7nkQ4PzZSCWkMx6UUEpOeUyaFFfB7wSDiLPTxkULRChTgLa4dmydJu\r\nVKFgjJsiUjwYPiFT7d9BHp4+SN8Z7fniijk=\r\n=dWh0\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.26_1652363418663_0.14501894784058833"},"_hasShrinkwrap":false},"1.0.27":{"name":"@asemin/nestjs-security","version":"1.0.27","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.5","@jira-killer/constants":"^1.0.14","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","gitHead":"5c32c36d3c64d767ed488d7b312fca55db42873d","_id":"@asemin/nestjs-security@1.0.27","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-6rw8KxZVZ5p4ZxTrzNhVFCQvDEEfVucYWiqkztDojD906JXUPY85IiDZK0RTLKRR/ltFiLGh5BRo4W98OkaS9Q==","shasum":"05c78b85faa12dceea4fecffbcf889dc1844aeaa","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.27.tgz","fileCount":656,"unpackedSize":616983,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA7Oz2/bhtC1ZOThs/tvYtrmwvbABZ0kVzRycFUs+IiMAiAQiWnBA1M2x7hUU8/SIAmuQXstTjItDhr6ynUuUis1IA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJifUcTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoDug/+OL4NywrscSy+H2iaXhTjZeUIAHkLxHq2yp5JYVLCSIoVVDYy\r\ne0zv/P21o+1bALTKuFQDCklFra0+Lvx1IHw0e2Dm3JXcKVISH4YvWgGqV6h0\r\n8fKwgyrv+4q0Q7NyvG3UUe0ztnL1qJi0vY1/HNVRHATrPNMqoTBLzMTKIDLE\r\ncfamNHukgrvdFxgR1AvD3M7TVJcRkfAxMGCPO5qrZisUXms956PGGgshgfbm\r\nuoG3YOJ6NnFeMyULA1qySayiFu0mvJpyjiLZc83jrf8WXElj6uupXDVX+ioa\r\nRiusXwfXdNGixk5fSrAz1AkABPYn5KL/9s3Ohd62Ii0ouQhi0L0qeFNOEjcJ\r\n6+iha7tf70v1+vqjM5vFd7b0T3U+spaMpWTqlAB2kiQUW8l6lFDtsvgaQBee\r\nxzp1xzkXojQhgfna8I4HvHuDI6xfvYTPV067rV62685kEHiv9Qz1Tv6cHDk2\r\nSXwJeDD7910/PxjrT8Kqa4Rp6ro9OWI+3CZO1jpISJ/oQC5XyjSkyuKIh9/W\r\nIYp5IdyzfbLzPqn1gGyBWGTnkOhVG3RFUb2AF5/N7J0LRJ9FNSpzrGvn9QyS\r\n93KniVaYISTTcED4sk9wR3tP8kAVYZq88DplK0rUvEO2iwrDwYw69WC2nxI/\r\nq+eKRdVwub+wiwrh/u2AA82CcY5greMpa5Y=\r\n=cklH\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.27_1652377363787_0.2307260078119706"},"_hasShrinkwrap":false},"1.0.28":{"name":"@asemin/nestjs-security","version":"1.0.28","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.13","@jira-killer/constants":"^1.0.19","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/core":"^8.4.4","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","gitHead":"7a2eac99b148c7d788d1ff1e4b64c793b4cc2dc8","_id":"@asemin/nestjs-security@1.0.28","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-PflM5mFT0CbY5Mqfremxl/ylz7Jch1+hrS4Yi7NBN134B/qtQSR3Jm317c4JKkTicxDwnybhCuOdBe4hA8pYWg==","shasum":"ec2bbeeb0f287deb3e912f97a662ca62902738f8","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.28.tgz","fileCount":660,"unpackedSize":617027,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBUKSceMCnxbfyS95fsMxaloRBn8JNecHdAsamAPM+37AiEAhK5zCnBoDQeBg9ZfqlMsLIYFW97/jx2i/2yGqgPAByM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJifl0ZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrn8g/+I2pePYs+nTxqqi/7OT+f74JBbTPfqY/3v1h/ZMZDqWQmS9FT\r\nGXc+PMkC9ihXRiL/ciMnXi6h/AURMWg3oZnW2QPXoyCFvd3WKzuV3P/o1qcF\r\n8zmBrsRCCuPqSSqnW1+vs+qQhneqpbfbOZMi6L2hboGJSsh8v8d9k8kcCK8a\r\n/CCdP+xVLkLv0fYuNMERai1EFmSfwz4G8ACIzmHfKmsoaX8oURdaBzH62wuI\r\n5e/LioJ4wnXdGc9Bk+apZkUFzSOqLpOEQXItGYk5vwIiOeWhncXuiJ8DouuJ\r\nN+ljNL9oYN45Bz1FBeF7l0mivhOXC1ZqgYVGxzDS97OTtZbRHJIArW91IwIR\r\n8IB8WM31ksBZSQlVP7/N6rHmQsQN+zFjyah8BY+6QBuPuKQ+U/525uFvPjAf\r\nH6MkU6/tragP1p2sH/R4QRtOxZ0q1tX/tJiP23vU6dgyxQVCnw9nuK963BVF\r\n9Sxxv12sYvwMKGN0O1Eb33drBb97NXAtfOp2YpyypCCsP3rbjDf9R9K162a4\r\n4XSAl3rhNc2xuq/c2Fk/QiX3TDkPQqgVOZVYc/cYzU87SUNXOATQjubbi+Zm\r\nljhFiUkXhhUWJdJUiuHLNDI3V8t0UZf+5bgvOQtUGm+0jzLKYlpQicdJROvu\r\np9SKikLDjKqAFhG89utQp4eTeUbtNHyhz5I=\r\n=SI9r\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.28_1652448537235_0.9841498011514933"},"_hasShrinkwrap":false},"1.0.29":{"name":"@asemin/nestjs-security","version":"1.0.29","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.13","@jira-killer/constants":"^1.0.19","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/core":"^8.4.4","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","gitHead":"cc6b801e3748768af7708c04135a38a08c708ea6","_id":"@asemin/nestjs-security@1.0.29","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-ZPGjzI/G+cQHOwUZToG5vhZbEBty2l40551P5S/6ox1xjHFAJcaogcuhHsFfiIWWW3dBf5MTNQlARIWqYlFdaQ==","shasum":"b53e21fed2a7f78083ebfb6445c1be9d7a911864","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.29.tgz","fileCount":664,"unpackedSize":621375,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH2qg+CpAOM0frliq7OY6CZlq38/4lM+GIzG9wjVLpWiAiAino1qGTBrO0mf3rkxj2em5MDxE6Rpk+9DE6tKEUpwlw=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJifppNACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoWhg//dbK1B/t1nuYVY4gwiKJwwGcpyXuGVqhW1wkwu4tdqD7zkdsM\r\nxgG6BZiIaN9DyYlKeH/MFQHeooIBGxmcG/oOVNOecPq4Rs4XqEUg5zeG0mgG\r\nq06XtR9WefjV0hdh0GFUQuimP4QPcwlyXhDmUXftaj9LfOAymPdEdKr8ZuDw\r\nwJBnowQKyr6xInIW/2jSKn+1cRf+3823zpL5EauaIYYjeU/UThHmhcXOsBeI\r\nQjSUcH0MazxQaL2DSrmf+TdSeJG4TAcV3gzgfonzBZxSnqIdL8rwTeG2wGhI\r\nOqhvDMDT+rVaTtN+a2v5B+YJse9Wip9fTttZfPyWbDbXeYkyHXAomyrN9kHi\r\nX9n/eg0qYpluAXBm0F/ANsb+Xtevb0NCqr2k5qtVtRCSd1KGZTmqZ2Q0PWWA\r\nAc+5ySge8t4+MkD+506/hGC8fQoLoQQ3REsEAySf1LJEt083mZwlWBFsvlKj\r\nqdE5Ie4MDyap2rsoJEcx28QzEhqY+9vp0/XwQ5ySvmr6SQBM8kaQ35IPzW8t\r\ngG4UfBSpWCC9YpGCAkpx/KBdWEUTZP7yt0+iFCe9B6GblBgNZks6ZdW0amoA\r\n8vlnyR0AlQwx5qIq3a7fbNa1TgvrJr/uIomwHPFe886UWylrNImThIj5v5Nn\r\nmONAXdeefNMVemO4Po7BZADIlkTMJF/97QM=\r\n=GIPG\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.29_1652464204920_0.7130779968541585"},"_hasShrinkwrap":false},"1.0.30":{"name":"@asemin/nestjs-security","version":"1.0.30","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.13","@jira-killer/constants":"^1.0.19","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/core":"^8.4.4","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","gitHead":"cc6b801e3748768af7708c04135a38a08c708ea6","_id":"@asemin/nestjs-security@1.0.30","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-5rnJNHuAJfEfvpf0UI18YTxcuc4mOcztAd4h21zmCc4CXUoI0GWjrTBN2LZgZKYFbhV8Bd9Lm84AVNsUGG6KNg==","shasum":"750141ae6e867991ec69136ad8494c1834f59055","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.30.tgz","fileCount":664,"unpackedSize":621754,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDjaCHUKJNXYhtFMawC/XShNRdMeCIpwUj1CV8VIykthQIgG2tuo6B/+ZKjCByZJzu0Ufp4ZYM6p7l/Zxm2Ta5Yx9I="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJifp2mACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoSXhAAhlziz2B7/c63f2iOkmRHLwD++XjW91RuAqiG0B3Ok6Mtf/bk\r\nU+XLgp4orYBb+LQkeeHKZxul5YsQ63H9/t2GXeGDt1HPM59lA3w+fH/P+8Ty\r\nue5vEEjV4g1G65hRSQ6NKmVJUMuxrMDzMFEWFBvi9tFvzL1261Muli/36gN9\r\n8CwE+Nt8TSRVMv7g2w/lkUt0VT+0esNM6d6DQ3wShyTv9St4JFJ5wfN30Gew\r\nHJZ1lM6gNqy5HahC80sbw4trNEOa3f9csTxylgEGGvYguZTx+1+Z75LnrZI0\r\ni/toK9g7rBVS83t840v+c2QaPia6fIwMzYuh3/+DvRV41YcKHsukf6Ew1wxn\r\nhjSIx78UPlj+pRU0CXdNW6o8yH+dkV/Kfn3goK0fv8/j3Lma/uUC2nwCKC6P\r\nYLc4Fubt55MSFc1EHM2GLio2ncz+7fgSwIi5SIQ5SdA4iW/Fzk7HcvM/RBAW\r\n8AgK8q45EUnb8PrKmGK65HxNF0rL0d0AfR+OoAgwG3S7/n9nnp8VKGPqlLXu\r\nqLghAj0MwNPbF00K4Fkskq1kd+Se/E6y5APnvFB3voCKQlm5i7L1bObU72AZ\r\nfulCUS2lFwXAln+hZbaxhwCJzKcxxbcTBZSEQ1quab+jJg1/rKGZOrZwuCyc\r\naZOtkIY8UPvG+nWAzHM7gfxB0jN5LAEOiGQ=\r\n=wljD\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.30_1652465062251_0.07072288952038042"},"_hasShrinkwrap":false},"1.0.31":{"name":"@asemin/nestjs-security","version":"1.0.31","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.23","@jira-killer/constants":"^1.0.19","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/core":"^8.4.4","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","gitHead":"5476ee9d5e59f0a3d2021b9446d2d545cb15c640","_id":"@asemin/nestjs-security@1.0.31","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-oe8xnKRTVp3rl9Teo+VNxH2EMNy6uMzE532zKolCogBb4DHux6NAFpRq/fZL+y0ZtKp9iaNEuXb+n7qKVrxcSg==","shasum":"ba1249d9275d7fbc8a09cd922e369e2862b63604","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.31.tgz","fileCount":662,"unpackedSize":619104,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDwwrjNv/j44yc/4GeOCNnBulioZzq0i9W0TlAZxzMRVAIgZW373ryt/LndxnjsaDSdbfDfv6dKqIcp3JFtj488lOA="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJif4xXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmolJQ/+JxziILDkkzS6w9C5JuMOvZOIDHm8aMkwcJgwTndAXNAiNK6w\r\n10HCTD4JMq1V7JGA1GLt9XDhOSmYbYynQZeL9HWrHdTsRi9sPPBG+bP14Vif\r\nG08wbntFgLhtAVxks17jaBB9j+Q5S5NgQZRJb5StXCa/AaesOXrunZZmmE6A\r\nu7ZTObZXWvJNUVlsLu4CV7ukuZHpG7CDeEl6mBfEfjQ1R3yBqYYnGsuGRogi\r\npuWV8RhwSs2rJc6zGf4LEv+xFUvDIeG5RQgzUMXqJk883TdOahcYS89iZvZg\r\nCE0RDhjB/BfPSiWUlW0IAHqFnt87tRaAqwqAJhpeBUY5+oFkJkemJ2pBDZ7Q\r\nBnY9lEL7OdehtHB0XtCNp9aefGo1ZZ/YXzONL8ofTDjpiJytiE8YXw7r1efv\r\nHJcs7DLwUUCpEprcQxDtjSb1A0oU0QP17He9uppCMtDViXj1MZFguEKJ8uCd\r\nBuXZ1JOs92qtZcfs8NpChrs6CMqskqpIlfzvGODXTisU6qqM2Zc2KX8gEcc9\r\n4SESNp2oKC7kM3ktF+4nSQlgvz5FgpggSw2GOiBqL/SrVeLAFEzYmQafDWEh\r\nKFcr1uqKJJoUKNoTscNt3GpimOgkzUFURLOM5yiKX1ihIQPpYaRXZA5fssbe\r\n2iSChk/G4MttLFgZ2u7WOVcbdQKWXuo/g5s=\r\n=mHth\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.31_1652526167538_0.9560175302910758"},"_hasShrinkwrap":false},"1.0.32":{"name":"@asemin/nestjs-security","version":"1.0.32","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.23","@jira-killer/constants":"^1.0.19","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/core":"^8.4.4","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","gitHead":"bbb7f5f79a3a6e0408508c49cd72a7f5726311a4","_id":"@asemin/nestjs-security@1.0.32","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-hlmaSClzEllMOJ6VTzaBrgKRI3Ld2yEIQFiPm2SUfXNZJjmrXEB4uADtK55ttrLITTMiT8Gl5JBMzmQdvKn/kA==","shasum":"b859a603a410ec976173d1e0de57bb9056fb15b8","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.32.tgz","fileCount":662,"unpackedSize":619110,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCYTCvrfwQ6XpSvSGJMvnRBPEY1PDZAuTqIo8jjbdzozwIgUFCYf64jnJOn3tXeZXa6M5554xdON63ERsL6bnXQtcI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJif42iACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp2Fw/5AAVb6/JHog6vryScimy5EsicYJEWtPJylKYLT6yTSY0Mo7BK\r\nBO2jEA2CNsUVsq/Nopy1bUvSjJL+okCUhIaS85X+QB3PCErjewrtDY5BzMNk\r\n2rD5R6ZmY6rNbWWfDsVIBy8t9DcpAHgLQSVAW030ZGEh/eimUcJINLFC+8/P\r\nB5Pq5uq6TwTxtVwwShPU+ZvXAabxgNjBV/VSpBK9zYRpv/IfrSCfnwY9ZTAo\r\nByXkCaNXaRLwmKhwCkVhZOt1bdYUP9U6fiWhoP95qcpOUUTplQJH0f4LwCIJ\r\n4N+4guzTdiLcFBw+ktHgx5Vc3ZtfIupNkkYreAm4b+ab5Pz2XhVsdFcA0Wu1\r\nnJQilpQbh6IneaE1A3eYt1rEOVUe3sayOAlZyUhgGeKSX5YgQ/stCoyZYowU\r\nGlGaR7DLJHBkd5aE1VrqQJpdvtN4GCIvWBLhN4mO9awq6d5u6EW3jYGYreK8\r\n94woMDh1MXJh/1leveX/wfBTxNFd2DuWDMGBebk1e58maPvrvZzyemfabRHQ\r\n+y1xKONT2B3ZVijK0Cnv6761qdGfBynR2x1sT5vfkPCbr9USdOhwyr49DHyO\r\ntfygP3abMqJ2KhtRT1Lj2cJhYl2C1fQSzuTBxvSMTiajcj82twPwHDXMP4Nq\r\n89lJDlDNhARhhKJAjV6BFaNqrrx1b8C7oRs=\r\n=8kPT\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.32_1652526498564_0.5827467744282486"},"_hasShrinkwrap":false},"1.0.33":{"name":"@asemin/nestjs-security","version":"1.0.33","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.23","@jira-killer/constants":"^1.0.19","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/core":"^8.4.4","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","gitHead":"bbb7f5f79a3a6e0408508c49cd72a7f5726311a4","_id":"@asemin/nestjs-security@1.0.33","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-g6qGs1Vsn/xqjBk1z2ctu/KoHAa+nPX4qfFCE/+NCbRBCATpOMXY5NqOrQI0qwH+OxmAKirVCrSRNjxvoY9Fvw==","shasum":"b7f6181d9e365febc6d978b0e1237ddf8ff10852","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.33.tgz","fileCount":662,"unpackedSize":619127,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHA/zIT8FDOHCARKLb+BWPRX4b1SYyngu3QAdUvAm7U6AiBTN05FdjcpL1d1bnlcMT27LSv028nzAGI8aaKBf1hkmA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJif+HHACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpCnw//eejKS+6IUTyqjGb8Tm4u9eg0nqWpmcJPsn83Ay5p+CamVbcw\r\nr/5P/Yl2yB5Cy202nlQE4fi7NoHLw864cKujozVk4P/dhgWNfwtBMX0/xXn7\r\nSlpL6lDXmKlj83R3ClUyORc0rxGQXhB6ir6Qxfe4UZy4qHzl/hhW1HgUw6io\r\nRTFFFXcZRyLwzysY9EM6e/Yns72rfw/tOzUHBB7duDAa7+DhXbXktca3IL5/\r\nkicyfxb3wLx3zkOO2iDweLLaxr0joCDJZYGSkqBFnZOK7TBPlUdjuNyxxHG1\r\napELEEMaV+K5cVshK2Ca+6Sf8NLuU+MZ2oODvQMNUdH6Pg9F8lgJfq6NRU1a\r\n+AiNX9ldPSe26DqhSxyl5mpe2ekDNhGawTgU4xTM6H+GWGIX2PoeSOUkrXTr\r\n14RGTvYKHbikcq4x8S1NXxVa+1EQXTfc8hm6VimlD96eKuOK/FSinVzcs8cV\r\n5T2PyIO3dX/5XzIyvCG7Q51narkly98RVL23spRIUGX9gp9UjdJ3sRwro1WL\r\nyo0+swk6CqgSJSgpEu8I41EpRK9TC+7j1+oPj/G75Cwmtu1mFyfMNFW8eShF\r\ngELq5y/mpfljf5nMJrNWFVngCv95j6lpwmoTapDV47ygRBI3dpEx791BjqCe\r\n6yx1QIGtHUfuGfvMrKfKXbSsobq7OZ3csj4=\r\n=aDsY\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.33_1652548039239_0.6761324806474438"},"_hasShrinkwrap":false},"1.0.34":{"name":"@asemin/nestjs-security","version":"1.0.34","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.23","@jira-killer/constants":"^1.0.20","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/core":"^8.4.4","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","gitHead":"dbd2648d6f2d2f016c84529cc6c75660c4e394e7","_id":"@asemin/nestjs-security@1.0.34","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-YZcWsiwPYJir9XtwKyxwEwBD5JUBt11xJ8JQTCje5H0XA4DDLRg4eu96ah79XQQznDMOLY7+5pYWECY0y69HkQ==","shasum":"c0c4a45bca2547e6391c0d5f6cf9658f98badb3f","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.34.tgz","fileCount":666,"unpackedSize":631920,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD2CBIq9nzUmmjr7CBRDyJOfPk/a8yXKlVJCJtGfYbkEAIhAJRs+DXwbyvhmQxz1taWoo67qLELS3uQmm8eqEvbmC6C"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJigjVLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpvPw//fqcFuqeKkIcS9pSZFMHDAcUegJfeCuHqSyLvIBKEwG+HD3eO\r\ninbr0bc6PxMEsk6YRtl7h/DEWrnHFHOOZ6zyRHAZll2uS5MCkUjyOgZw6UkW\r\nXCtR2KZs6wWWQVreY+0OTOam8UT3UosrU8oUWpTFgX2mKmdgMvZQg1A2IyiE\r\nItUaj0r1CYlqtHnWMP06R2AgUmUgYS7L9ybniWjHRekFrW5cUxFWXDOjTZPH\r\nAu8I9XJXaDnmrxcfX34VXPq6mOpG1tFDX7fu168WN439S/+xfWCEf8pYQXlo\r\n0PLtMLbqaNCix6VIq/F+Tb5G4BZ3wFUtOkp6yAAcHLWZKg2Zd+wGUhzwa+dI\r\nqsPg5ZTEmOtbyIHpLwBxNj5/TJXbaJQHd+lYinAS4Sq9u614dSx0ephdqi9a\r\nLzbdfyVoGKwL7yKKAEzC0rwIAIbrVnJUQF5GgKr7KmRZJtcoD40KNFH0ygEF\r\njwZPsMAUJ6qsQyWHGAyAOTbaOfQPqwlpxWhsQsU3SumV0gwbNsTxDdEO59+5\r\ndldtAE9MrvWEIQMT1diHay1+UWiKk4DQp8uLn1ZlV52jo9WXfTiPUYQO+MSk\r\n91RltgjoSISxod+f0YpKfiZyESUM2VjcBGoGvBz+KNJD1zhLO94mxslpByia\r\nffCjCukkOmxGqf80Xdgoi5sifG+CRKRtG50=\r\n=KjbM\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.34_1652700490834_0.6763063917565393"},"_hasShrinkwrap":false},"1.0.35":{"name":"@asemin/nestjs-security","version":"1.0.35","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.23","@jira-killer/constants":"^1.0.20","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/core":"^8.4.4","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","readme":"<p align=\"center\">\r\n  <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r\n</p>\r\n\r\n[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456\r\n[circleci-url]: https://circleci.com/gh/nestjs/nest\r\n\r\n  <p align=\"center\">A progressive <a href=\"http://nodejs.org\" target=\"_blank\">Node.js</a> framework for building efficient and scalable server-side applications.</p>\r\n    <p align=\"center\">\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/v/@nestjs/core.svg\" alt=\"NPM Version\" /></a>\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/l/@nestjs/core.svg\" alt=\"Package License\" /></a>\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/dm/@nestjs/common.svg\" alt=\"NPM Downloads\" /></a>\r\n<a href=\"https://circleci.com/gh/nestjs/nest\" target=\"_blank\"><img src=\"https://img.shields.io/circleci/build/github/nestjs/nest/master\" alt=\"CircleCI\" /></a>\r\n<a href=\"https://coveralls.io/github/nestjs/nest?branch=master\" target=\"_blank\"><img src=\"https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9\" alt=\"Coverage\" /></a>\r\n<a href=\"https://discord.gg/G7Qnnhy\" target=\"_blank\"><img src=\"https://img.shields.io/badge/discord-online-brightgreen.svg\" alt=\"Discord\"/></a>\r\n<a href=\"https://opencollective.com/nest#backer\" target=\"_blank\"><img src=\"https://opencollective.com/nest/backers/badge.svg\" alt=\"Backers on Open Collective\" /></a>\r\n<a href=\"https://opencollective.com/nest#sponsor\" target=\"_blank\"><img src=\"https://opencollective.com/nest/sponsors/badge.svg\" alt=\"Sponsors on Open Collective\" /></a>\r\n  <a href=\"https://paypal.me/kamilmysliwiec\" target=\"_blank\"><img src=\"https://img.shields.io/badge/Donate-PayPal-ff3f59.svg\"/></a>\r\n    <a href=\"https://opencollective.com/nest#sponsor\"  target=\"_blank\"><img src=\"https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg\" alt=\"Support us\"></a>\r\n  <a href=\"https://twitter.com/nestframework\" target=\"_blank\"><img src=\"https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow\"></a>\r\n</p>\r\n  <!--[![Backers on Open Collective](https://opencollective.com/nest/backers/badge.svg)](https://opencollective.com/nest#backer)\r\n  [![Sponsors on Open Collective](https://opencollective.com/nest/sponsors/badge.svg)](https://opencollective.com/nest#sponsor)-->\r\n\r\n## Description\r\n\r\nNestjs Exception handling implementation.\r\nIncludes: \r\n    * Handler's chain mechanism\r\n    * Custom exception to inherit from\r\n    * Implemented Nest JS Validation Exception handler\r\n\r\nException structure: \r\n```\r\n    {\r\n        code: \"ERROR:<ENTITY>-<CODE_MESSAGE>\"\r\n        status: 500,\r\n        title: \"Error!\",\r\n        message: 'This was screwed',\r\n        body: { any info you like }\r\n    }\r\n```\r\n\r\n[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.\r\n\r\n## Use\r\n\r\n# installation\r\n```bash\r\n$ npm install @asemin/nestjs-exception-handling\r\n```\r\n\r\n# Handler creation example\r\nClass must extend ExceptionHandler and implement `handle` method. Method must return HandlerExceptionDto filled.\r\n```\r\nexport class MongoExceptionHandler extends ExceptionHandler{\r\n    handle(exception: any): HandledExceptionDto {\r\n        if ( !(exception instanceof MongoError) )\r\n            return this.next?.handle(exception);\r\n\r\n        switch (exception.code) {\r\n            case 11000:\r\n                return new HandledExceptionDto(getException(API_ERROR_CODES.DATABASE.DUPLICATE));\r\n        }\r\n\r\n        return null;\r\n    }\r\n}\r\n```\r\n\r\n# handlers chain creation\r\nEach member must extend ExceptionHandler\r\n```\r\nexport const handlersChain = [\r\n    new MongoExceptionHandler(),\r\n    new ValidationExceptionHandler(),\r\n    new CustomExceptionHandler(),\r\n    new HttpExceptionHandler()\r\n];\r\n```\r\n\r\n# Nestjs exception filter configuration. main.ts:\r\n```bash\r\n    const exceptionFilter = new ExceptionFilter(\r\n        <ExceptionHandler>createExceptionHandlersChain(handlersChain)\r\n    );\r\n\r\n    app.useGlobalFilters(exceptionFilter);\r\n```\r\n\r\n## Custom exception use\r\n\r\n# throwException\r\nUse one of the codes. Fill free to put any information to body (second param)\r\nIf there are no code suitable - throw any exception type manually.\r\n```\r\nthrowException(API_ERROR_CODES.COMMON.EMPTY_PARAM, {method: 'getByPermissionAndPermissionSets', fields: {permissionId, permissionSetIds}})\r\n```\r\n\r\n# getException info\r\n```\r\nconst {code, status, message} = getException(API_ERROR_CODES.COMMON.UNKNOWN);\r\n```","readmeFilename":"README.md","gitHead":"b4db660c80eaa114e9b6438858f2e4b6dd42b9d3","_id":"@asemin/nestjs-security@1.0.35","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-cSpghBeyOCwLEURpmudg4iHJpRU7WCuhvS61XBlyosehXSUzXURmONGtGgz/sVNZWjwSezr17Ql00lr+PbIamg==","shasum":"7b5e3c6b879b6037d0388406690fec99989f4da0","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-1.0.35.tgz","fileCount":670,"unpackedSize":649263,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDh4dHVmxm7SLqRXFkeSXA2CEZL/VC7kydP8MQVDnD3QwIhAI/nkOHeKSPtMkxVI1K9bSDHmeBXSWBOJjXJWV43W1sz"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJigq5yACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqxyQ//d9mMQMif6HLbTUlIpst504E5CNTN5Og0EWAkiJ24P37ha+ae\r\nkNQicJWbG+syk1A5saTzqU/5+WvCPShapGvRLYhT6mD7MCaLKSIUDJwM4gDu\r\njKGPljrhiAoxOg1ElgeCXmOSwK2/cIXr52U9dvCX0o1dw36Aw90IaOzvrZqG\r\ncuRwfjWO57e7LRi2tZpVoaJUwFSAms0kYydpGtWFvJsKhFklkASFQ5oRo7j5\r\nARW9MXvw9uQStJWGR8IgOWe/o5hTmAbGzP+OpM5gg4VIXvopYDhsT3F9qj2l\r\nvhfGLvZ1XEErTLsA33e1Yo0TUowLTVc0h3ZKw+M6UhknlmUUaBOZK7tNGWkE\r\n2WVjAkesCcIeqaJYe+tdWkQ2JeW/UhN2Qakhwwjh+YWohmUT7L72ngmlsJWo\r\naI39BAaa1miLyagdZyQV9XXp5uo+4lA94dvL7mkiwb+3F+gMV2UK0t1/nFwh\r\nEhy6NvORe7K/Hnr56CDe0DLccVUIUtvssb3DRumPYyE3lbi4oyCwy9Q3UWWZ\r\nEPZneYFXoFHEFdKLFUjm8yECQEzW97YNVE4q7HLKq+7IzCp1L3wCYHXvH+nP\r\nY3C0mxqgAskH/Ks1Mm9SpcdVvXWLf4Aq1E5EzUbBh9jAbsxXoIkdgaiel96E\r\neC+YqIsZDNwTlH4VQEHsDsojjSHoV9pdy4I=\r\n=IC/y\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_1.0.35_1652731506497_0.8749045047210775"},"_hasShrinkwrap":false},"2.0.0":{"name":"@asemin/nestjs-security","version":"2.0.0","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.23","@jira-killer/constants":"^1.0.20","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/core":"^8.4.4","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","readme":"<p align=\"center\">\r\n  <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r\n</p>\r\n\r\n[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456\r\n[circleci-url]: https://circleci.com/gh/nestjs/nest\r\n\r\n  <p align=\"center\">A progressive <a href=\"http://nodejs.org\" target=\"_blank\">Node.js</a> framework for building efficient and scalable server-side applications.</p>\r\n    <p align=\"center\">\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/v/@nestjs/core.svg\" alt=\"NPM Version\" /></a>\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/l/@nestjs/core.svg\" alt=\"Package License\" /></a>\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/dm/@nestjs/common.svg\" alt=\"NPM Downloads\" /></a>\r\n<a href=\"https://circleci.com/gh/nestjs/nest\" target=\"_blank\"><img src=\"https://img.shields.io/circleci/build/github/nestjs/nest/master\" alt=\"CircleCI\" /></a>\r\n<a href=\"https://coveralls.io/github/nestjs/nest?branch=master\" target=\"_blank\"><img src=\"https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9\" alt=\"Coverage\" /></a>\r\n<a href=\"https://discord.gg/G7Qnnhy\" target=\"_blank\"><img src=\"https://img.shields.io/badge/discord-online-brightgreen.svg\" alt=\"Discord\"/></a>\r\n<a href=\"https://opencollective.com/nest#backer\" target=\"_blank\"><img src=\"https://opencollective.com/nest/backers/badge.svg\" alt=\"Backers on Open Collective\" /></a>\r\n<a href=\"https://opencollective.com/nest#sponsor\" target=\"_blank\"><img src=\"https://opencollective.com/nest/sponsors/badge.svg\" alt=\"Sponsors on Open Collective\" /></a>\r\n  <a href=\"https://paypal.me/kamilmysliwiec\" target=\"_blank\"><img src=\"https://img.shields.io/badge/Donate-PayPal-ff3f59.svg\"/></a>\r\n    <a href=\"https://opencollective.com/nest#sponsor\"  target=\"_blank\"><img src=\"https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg\" alt=\"Support us\"></a>\r\n  <a href=\"https://twitter.com/nestframework\" target=\"_blank\"><img src=\"https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow\"></a>\r\n</p>\r\n  <!--[![Backers on Open Collective](https://opencollective.com/nest/backers/badge.svg)](https://opencollective.com/nest#backer)\r\n  [![Sponsors on Open Collective](https://opencollective.com/nest/sponsors/badge.svg)](https://opencollective.com/nest#sponsor)-->\r\n\r\n## Description\r\n\r\nNestjs Exception handling implementation.\r\nIncludes: \r\n    * Handler's chain mechanism\r\n    * Custom exception to inherit from\r\n    * Implemented Nest JS Validation Exception handler\r\n\r\nException structure: \r\n```\r\n    {\r\n        code: \"ERROR:<ENTITY>-<CODE_MESSAGE>\"\r\n        status: 500,\r\n        title: \"Error!\",\r\n        message: 'This was screwed',\r\n        body: { any info you like }\r\n    }\r\n```\r\n\r\n[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.\r\n\r\n## Use\r\n\r\n# installation\r\n```bash\r\n$ npm install @asemin/nestjs-exception-handling\r\n```\r\n\r\n# Handler creation example\r\nClass must extend ExceptionHandler and implement `handle` method. Method must return HandlerExceptionDto filled.\r\n```\r\nexport class MongoExceptionHandler extends ExceptionHandler{\r\n    handle(exception: any): HandledExceptionDto {\r\n        if ( !(exception instanceof MongoError) )\r\n            return this.next?.handle(exception);\r\n\r\n        switch (exception.code) {\r\n            case 11000:\r\n                return new HandledExceptionDto(getException(API_ERROR_CODES.DATABASE.DUPLICATE));\r\n        }\r\n\r\n        return null;\r\n    }\r\n}\r\n```\r\n\r\n# handlers chain creation\r\nEach member must extend ExceptionHandler\r\n```\r\nexport const handlersChain = [\r\n    new MongoExceptionHandler(),\r\n    new ValidationExceptionHandler(),\r\n    new CustomExceptionHandler(),\r\n    new HttpExceptionHandler()\r\n];\r\n```\r\n\r\n# Nestjs exception filter configuration. main.ts:\r\n```bash\r\n    const exceptionFilter = new ExceptionFilter(\r\n        <ExceptionHandler>createExceptionHandlersChain(handlersChain)\r\n    );\r\n\r\n    app.useGlobalFilters(exceptionFilter);\r\n```\r\n\r\n## Custom exception use\r\n\r\n# throwException\r\nUse one of the codes. Fill free to put any information to body (second param)\r\nIf there are no code suitable - throw any exception type manually.\r\n```\r\nthrowException(API_ERROR_CODES.COMMON.EMPTY_PARAM, {method: 'getByPermissionAndPermissionSets', fields: {permissionId, permissionSetIds}})\r\n```\r\n\r\n# getException info\r\n```\r\nconst {code, status, message} = getException(API_ERROR_CODES.COMMON.UNKNOWN);\r\n```","readmeFilename":"README.md","gitHead":"ad432dfff6f10e57ab8e7dc2f58a54c5dd75a814","_id":"@asemin/nestjs-security@2.0.0","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-32AHxasRskAIBZejR+3xbh4Pn5ullb+XHUudfm5TtfxcrtNKNVOk0VCcAgJvEg4eUnjrs1weKPin/jE+j/upjA==","shasum":"b52feeeb37e0293d894758217b2c5b8c60e7db7a","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-2.0.0.tgz","fileCount":669,"unpackedSize":642734,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCtK54MChu+l48q4gBatUZp4pLAuftZFSj7qe3OQGeiswIhAI2KmGbLUAw2WmVfI+718gGxwN8qLpPPoIl879xSfCZw"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiiLKWACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqPixAAhmeA+BnuckDN0y9gqbR21FVMlyHYYRYYCCxBm0qo82ELpGRW\r\nTbAc1A8A2LPEt+eAlm8/3X9Z/XXuVWewQsFACa+05cD8MLzVz+xSrHZRtdh3\r\nLz/dePfHd1qU440ohJweY2w7qkKkdyOPcjnrQeyLi5WXXs8d2XdEdSbgRf/i\r\nxFbhyb05z7ztz4Pqp4xdjeYLeCNeIzpC1DL9Mg2kKqFJWbT4NcX52DecQiwI\r\n4OTZMxjHsBZFD6s3jmaygGzGDTXbO6V0HkG/cXxGjcs1q7VP41lzZq45ZDzc\r\nl0S7/dat1Kh3iIajicalZTE+vbIBu1yi+vyCV0WFmhAOchD8svtvjaCpr76S\r\n2SAWK2Ukrmz1LF1nWxtiBl/RcM62twu8HZhYT+paSnKQvUk9fWccBC69amuK\r\nGAxcmTi9lCydaEX/4TbIgaPC4OaqWDL8eDCA6BelEQys5Qv8QSUCLYJxYkIz\r\n/KqR19+X9pO5+FLPNXDCqUrlM4SsrXDPH+4Pp+SWFEcGZcn1oLFpPwq/r36a\r\ngPSaTbnMIGH5CIF9FnRurmIFMi71A4hcPY4hcrK3GtRKXc9JC7BGekbkVQH0\r\ncNy5qECvveTzb+GoWBkkcurneHpv3mZ+yePeq7O8Zcj40yQkbpi6G5TAfF89\r\nIu0Xfpuao4woQ3zfcOgXhzOB7rCw+QA+h9M=\r\n=EDkR\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_2.0.0_1653125781791_0.8458371354191616"},"_hasShrinkwrap":false},"2.0.1":{"name":"@asemin/nestjs-security","version":"2.0.1","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.23","@jira-killer/constants":"^1.0.20","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/core":"^8.4.4","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","readme":"<p align=\"center\">\r\n  <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r\n</p>\r\n\r\n[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456\r\n[circleci-url]: https://circleci.com/gh/nestjs/nest\r\n\r\n  <p align=\"center\">A progressive <a href=\"http://nodejs.org\" target=\"_blank\">Node.js</a> framework for building efficient and scalable server-side applications.</p>\r\n    <p align=\"center\">\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/v/@nestjs/core.svg\" alt=\"NPM Version\" /></a>\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/l/@nestjs/core.svg\" alt=\"Package License\" /></a>\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/dm/@nestjs/common.svg\" alt=\"NPM Downloads\" /></a>\r\n<a href=\"https://circleci.com/gh/nestjs/nest\" target=\"_blank\"><img src=\"https://img.shields.io/circleci/build/github/nestjs/nest/master\" alt=\"CircleCI\" /></a>\r\n<a href=\"https://coveralls.io/github/nestjs/nest?branch=master\" target=\"_blank\"><img src=\"https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9\" alt=\"Coverage\" /></a>\r\n<a href=\"https://discord.gg/G7Qnnhy\" target=\"_blank\"><img src=\"https://img.shields.io/badge/discord-online-brightgreen.svg\" alt=\"Discord\"/></a>\r\n<a href=\"https://opencollective.com/nest#backer\" target=\"_blank\"><img src=\"https://opencollective.com/nest/backers/badge.svg\" alt=\"Backers on Open Collective\" /></a>\r\n<a href=\"https://opencollective.com/nest#sponsor\" target=\"_blank\"><img src=\"https://opencollective.com/nest/sponsors/badge.svg\" alt=\"Sponsors on Open Collective\" /></a>\r\n  <a href=\"https://paypal.me/kamilmysliwiec\" target=\"_blank\"><img src=\"https://img.shields.io/badge/Donate-PayPal-ff3f59.svg\"/></a>\r\n    <a href=\"https://opencollective.com/nest#sponsor\"  target=\"_blank\"><img src=\"https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg\" alt=\"Support us\"></a>\r\n  <a href=\"https://twitter.com/nestframework\" target=\"_blank\"><img src=\"https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow\"></a>\r\n</p>\r\n  <!--[![Backers on Open Collective](https://opencollective.com/nest/backers/badge.svg)](https://opencollective.com/nest#backer)\r\n  [![Sponsors on Open Collective](https://opencollective.com/nest/sponsors/badge.svg)](https://opencollective.com/nest#sponsor)-->\r\n\r\n## Description\r\n\r\nNestjs Exception handling implementation.\r\nIncludes: \r\n    * Handler's chain mechanism\r\n    * Custom exception to inherit from\r\n    * Implemented Nest JS Validation Exception handler\r\n\r\nException structure: \r\n```\r\n    {\r\n        code: \"ERROR:<ENTITY>-<CODE_MESSAGE>\"\r\n        status: 500,\r\n        title: \"Error!\",\r\n        message: 'This was screwed',\r\n        body: { any info you like }\r\n    }\r\n```\r\n\r\n[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.\r\n\r\n## Use\r\n\r\n# installation\r\n```bash\r\n$ npm install @asemin/nestjs-exception-handling\r\n```\r\n\r\n# Handler creation example\r\nClass must extend ExceptionHandler and implement `handle` method. Method must return HandlerExceptionDto filled.\r\n```\r\nexport class MongoExceptionHandler extends ExceptionHandler{\r\n    handle(exception: any): HandledExceptionDto {\r\n        if ( !(exception instanceof MongoError) )\r\n            return this.next?.handle(exception);\r\n\r\n        switch (exception.code) {\r\n            case 11000:\r\n                return new HandledExceptionDto(getException(API_ERROR_CODES.DATABASE.DUPLICATE));\r\n        }\r\n\r\n        return null;\r\n    }\r\n}\r\n```\r\n\r\n# handlers chain creation\r\nEach member must extend ExceptionHandler\r\n```\r\nexport const handlersChain = [\r\n    new MongoExceptionHandler(),\r\n    new ValidationExceptionHandler(),\r\n    new CustomExceptionHandler(),\r\n    new HttpExceptionHandler()\r\n];\r\n```\r\n\r\n# Nestjs exception filter configuration. main.ts:\r\n```bash\r\n    const exceptionFilter = new ExceptionFilter(\r\n        <ExceptionHandler>createExceptionHandlersChain(handlersChain)\r\n    );\r\n\r\n    app.useGlobalFilters(exceptionFilter);\r\n```\r\n\r\n## Custom exception use\r\n\r\n# throwException\r\nUse one of the codes. Fill free to put any information to body (second param)\r\nIf there are no code suitable - throw any exception type manually.\r\n```\r\nthrowException(API_ERROR_CODES.COMMON.EMPTY_PARAM, {method: 'getByPermissionAndPermissionSets', fields: {permissionId, permissionSetIds}})\r\n```\r\n\r\n# getException info\r\n```\r\nconst {code, status, message} = getException(API_ERROR_CODES.COMMON.UNKNOWN);\r\n```","readmeFilename":"README.md","gitHead":"27e56d67c5a14c629cbbf2e2c6f161b079693d1d","_id":"@asemin/nestjs-security@2.0.1","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-mtFVNmcakJerR0Xp7jdSwx8ux3B/vBKbjSE5J/xWWmfwsCxP1LstKoh3aFS8GLDmg6sb01AVrYK6InJkuAMUbg==","shasum":"0eb8288faf614a4ccfa0efeb3b56ac0cb79c2c43","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-2.0.1.tgz","fileCount":669,"unpackedSize":642881,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDhZ+XdKxqs2zrDYRDzvTXMDn3jzrmH9T4TqL2QwlFVJgIhAJwzkK8IKbeSldGLwIBbHsrznRPYU+7MvdyGM1XRoR/J"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiiLL+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpgjRAAnB4D4cAjKjZFe40HeegN5ajKD9kf4EGX4ve0bZZLT3bfpols\r\nlJOslSiHBjKReFZKe5YgobNPnye1WGr7uhSOpt69jxXkFeg6dazhG68c/rgN\r\ntJPBWqfh1VYSr4tND8ZSIZbKbSkDB0wY0pO+gqbnW7zXc9+JEvBWgRxDVveB\r\nIzqFLo9GzQb9HElSfSScw2sdDarvZjpjZINjptv/yXHQnKDOMrMXuRiiSOGo\r\nf05VkHw/O5iu+8cuyZKj+w3/Eh5QoJ3dzLkpEvJbT5AvG06OjscLWFL2Gz/P\r\nmQNLUZOZiSpSescGVymQ27J0+p9rtYL9SDLrwkj9PXie/AWrkb94mxppwVXS\r\nGp+kixHNmM9bD0n0P3oGKgxN2mtZCMDHrd3Ofs9zyg/X2vFO62cwYxI5olbz\r\n79Wyv+mNYg7stiyZB74rpq5GBt1fTvr7g5xsVGOAsOK07Njs4ZlRVEUVt8NZ\r\nGg1X8l/RMW4NhsqvXPKNV4tlAUZtEdYr8IDW0xgoi73hwuZ1pYKksfGVosuL\r\nNKMokTvDBCqdOsrzyy/8dLoHyk9dN4tlhzfr/Ui2Xp2raO98LJSFBuweQkUN\r\n8GvCxKaL1WMrPOmn72ZIzeE3ISgobCLF6l0We7Tw9ED9mE4AmkoPTYYTt2l6\r\nDjDtr+kZcr2B+YazxtWbgRylq5fSTcrkBCc=\r\n=7fuc\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_2.0.1_1653125886345_0.8436855405743269"},"_hasShrinkwrap":false},"2.0.2":{"name":"@asemin/nestjs-security","version":"2.0.2","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.23","@jira-killer/constants":"^1.0.20","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/core":"^8.4.4","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","gitHead":"27e56d67c5a14c629cbbf2e2c6f161b079693d1d","_id":"@asemin/nestjs-security@2.0.2","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-QaFsE3y0GqOmYuaS+Ydtbt2uzbPSaoDSVZvMpRYI3a5c1HeIT4pVhBL6e/8mCCftKGMmOhyBL1zaopKNzMtJsg==","shasum":"ddf357723612d05a00fb525a50a437a05eb80c8e","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-2.0.2.tgz","fileCount":669,"unpackedSize":643156,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDPWa07yuVZKgMAwWf1MpzCkGnKPKc2m1bW+NyBm4PBgQIgZUMTcPGrGnN3ykkvJvbdxTGxvNRCbVr1QWxFXuSQL7Y="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiiLV5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoRJBAAl+QEYGIRtSEhWMwI2mPasHxGaxdxddXBubhNByr/D+0owUAP\r\n+fYNrOiuJ2c/HgRqMLazPWcSJFoapVtBTJjwsct7wWYgUVI2Ng6WiJegWbhl\r\nh1Tw7vgAciHmDPxwOEg8R/kjxuvR/ywiGiqAmz/0Ij5pOJpsSdSXBFr/ibZe\r\nAJ33i3IiBqGV+j+NhcWo2XGuLBHVGgrNHP4tMFNA/AxiL/WrOMSpFOQ6V8zC\r\nzuwyElIekZcg3Nj9b2xslyN8tLp+ug0IX9V1r/z+FA19quLMLGlt/cogrxz0\r\nIFaA80fqF6qUvw/74/w4cW85CjiU1lBOqKv2jrit+fiZmeiOFg4qJwwbVgKX\r\nQjl3IU3JJ79m4o2LStyyk9tDvguINT2mczXiD/olJYnfKNb6XNC6NGNm72Z7\r\nL4wYpjOabfar2zWh+qUeEJm+h2ooYBmYpcSFJGDDOoEIm4BGSQzOSOan/6Lq\r\netc10AcyrCjWQV9V3wed/WxxUyRmeamC1Rj+s5340sac0ht6ZMW0L/zis2oA\r\nkWgqUNsy6HyL743F0j7UrCadC/NZkz/w/kBDMuaxkqBmz8UYxNNlWFEIiaPY\r\nqX6UqPqshHP1eXw6oa6oaAcx561yWjzk34pnLQIxAcVxej1j7O5iBew/3PD6\r\n6m1RlpFG3nFWKm87sT1YHPW2U7RiTalA+HY=\r\n=O4Fy\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_2.0.2_1653126521121_0.12189854211204665"},"_hasShrinkwrap":false},"2.0.3":{"name":"@asemin/nestjs-security","version":"2.0.3","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.23","@jira-killer/constants":"^1.0.20","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/core":"^8.4.4","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","gitHead":"1efc0d5ef2420d293fbb4bfaa62c589d44f310fc","_id":"@asemin/nestjs-security@2.0.3","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-d60sTibPJLjUXcgmt2dg57VnbH+VFxivcaqTxHR8Yk7sJElKUKXUKpy2+3ATkEFpfljaCcwotKyk4pL3Jy/9Xw==","shasum":"771475b3c8cf2e0936fba81f600ce9572b192390","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-2.0.3.tgz","fileCount":669,"unpackedSize":643150,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDZPwD4lVkuDleZYi/rOLJwb7dV7jryDPh2ibv/abHoWAIgCdBSh5faabBxeoVdoWsvhzcqfxDJm/5d6OscmV7zy5c="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiiMR7ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmr/SxAAlQrUkRp6hJBshByBMW9iH8z1WY/MLCdRUlkO04gAYbLhr27y\r\nIHnpStgd6GSVvORavmE9MyW/Zr/46dafcpDrwmqbwPJyyrGMIqAU6HkVH8La\r\nywCwCg9jHqTYacMKYrlR9xAf3raGMrZT1gB71k+Vvq4qzlKA51ou3NSlZrpt\r\nq1kLBn/iKpw/aMRGjlTT4GHG63LUtVQF7LK+2hwSXcE6mF+TkjW3ZUEOeMc2\r\ny4A+RzVsOMldh6DS2bJJbQX9XDB/yDSu/dgGsvIsgPTV4WCh5Gt+jOW6rf1S\r\nd3jadWepfaoQdn1k5ukeAl6M7eAYqQGKzzp5bOOo+FVoEVMfD1NKclGUPRWO\r\n1DEzxYYfgwvva1fXhjPiAMcGMiutXZFoC2y0VHVyNLKzQvEDAICi2Yry+uqc\r\nErS3ndKRoodagDCMiZxtmVbwWW/AdrY7mfuJKMTvcN57dyOB9RkXb0T1GT9R\r\n29YnjAoODSUH+jnBhr73gRtrnCnZHt2obqtwc8cIObiM6UJxFdsbzZDBC9Hv\r\nFylWLoze6FOo8psZPUUKi4vR1RviwbyXWbI86fWNlqnp8cxdEzZHcv8O3I2U\r\nhbeUa00VfDO13z6XQSi/vezH5xEWlGQnuzYJIXYQVIgn0gw9PoU/lNb3QmsL\r\ngANxBXO3V6iOWU/JN2RFnCCnV6x/DX5Y5ss=\r\n=ySv9\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_2.0.3_1653130363610_0.2013261994230573"},"_hasShrinkwrap":false},"2.0.4":{"name":"@asemin/nestjs-security","version":"2.0.4","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.23","@jira-killer/constants":"^1.0.20","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/core":"^8.4.4","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","gitHead":"1efc0d5ef2420d293fbb4bfaa62c589d44f310fc","_id":"@asemin/nestjs-security@2.0.4","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-1iUNxba7Et1zOkbgLBkFc0HQoznAjZubfzU/fryjPOpcZelawTWzyKfoVuXkXAMSlB2OS16bf+oiI8QOwmghfw==","shasum":"3ea832c3653f7ca2cf82b46e627b2be6331cd1a9","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-2.0.4.tgz","fileCount":669,"unpackedSize":643148,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC6Wc1wTldJEpn770ByNIdSs1v0kB4dA55QnmsP57hWwgIgIo8sHePF16z+KkAR2WgTB29epWlgFNiOPekCI1WuwXo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiiMVTACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq5FQ//XMkMtZFCMDpWnTWoUcOOy6uPHIqoLI10nhctstvWNxqeHC+L\r\nFt+nMwNLv7gXHF7kRwqoMw+/B8uIkGnEUibyGWxVH2hJUK3Tq26RLBEtXQp5\r\n4fue8G4si3hhPbyh9vd4QX2DBez0R0sHOwlgMJHlYGctNP/l61Mo5/JNddiL\r\njNZVNeYIVk0sfat/sX33jykpOAOoMoLa7nkpiD8/Fd4v0GsxXMePiIr3Fxu2\r\n9J9PrVQzCdOKOADoNv5eVE4+eADBYsNag1fFdg7oAHs6VWv+kXJocSui7bQ+\r\n9q68mqdU9x4gprtbuVi6herBqddKTxFGGWEqptq1DJ6A+CgIUE27xHEjFzIq\r\nFvF9Hr5mSvCkGekfMUV+MEdAzVUwmpEdv/yDq7HeLeg3mLXD2tWfMELP7rSQ\r\nwrG/5/lzKa6Oh64sVx9tqXRUciGxyIzc4O1X2fgIW2V6Aa4HKzuv4eU2bOLw\r\n6M/MuARfKqa36YSVvCtDqHecaFJLXyKJuk5krIdnQiAuwH00/69kvMU5v6WY\r\nJPXb1TtjhZh15vc8FAA0uQhC2FnG+iepfP10LK2SKKN+ztTJL7sC45cZEuuB\r\nbCctzEsuS44L4JQlvuZstZ90ypooLdzxfS8eOyYnhmtRXtfj3IPZTObhpCy6\r\nM+I6CLTAhR2EmEaMcS+wbYu9DEEJAz6gCdU=\r\n=bM8z\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_2.0.4_1653130579558_0.0070451064920968864"},"_hasShrinkwrap":false},"2.0.5":{"name":"@asemin/nestjs-security","version":"2.0.5","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.23","@jira-killer/constants":"^1.0.20","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/core":"^8.4.4","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","gitHead":"1efc0d5ef2420d293fbb4bfaa62c589d44f310fc","_id":"@asemin/nestjs-security@2.0.5","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-YO2rnXdL47pL9Cn/GkDOhdFQq1U82bJQRPDtUOZouqvhgNryELVbvETyufZAUmFvnUYmzWM0RTk5jeEijXVapA==","shasum":"953823c96e0f5c9042d04dac4bfb461ab4c7e363","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-2.0.5.tgz","fileCount":673,"unpackedSize":655445,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBU6CBoD5uB4UUmWzUD0/n4ZDuGeXhuCxZ8l24t8gwpFAiAE9/EuGdzj942QKGAVyCHFYkcANiow2Knf2pe87ebOIA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJik4N6ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqxUQ/5ANOLwv/wl6mrZyc3QwuMNRG/FaZw4JW+fxtXTR/wG59UqVps\r\nAoZnzhgaOn+vE0qAr4LunpfEMz0Rq9ADvLPJ7vovUo3kp452v084aNpfCKs2\r\nYjNpvanZbpI0n8l7fAl3RVUNBw5cwMZTIZWaxi8JL/pVqB6+6TSrZRaVEJa0\r\nu/IGBJU8Z5IjrROos3kJqTvp8R9qoUqu0gKHAuP+3KYE7s+ifI1maY3/rRXT\r\nRJ1XPXb2JbdHWnAVQY8i5vdHVroBP3LkUukf3N7LrPZR3NOrXx36PoWXAjfG\r\njifDWPVOTgh4suOliiYM8t8K3btISJgh3dDy1WHK0knS7Id+dasx2XQh7kfH\r\nzOFMZO9yPRYr8DNci+FL/KUbnRwNVNtb48xxO1i53o1YgE9n0DUNO92SUbcV\r\ni6Z4yj/cF5ncLlevZlx9DZ44IfK9vOsl7U6emkKlKvoQLldO+eBaDyGu7Lyi\r\n8wiggr3jj4fGaJF6adIfdFqWyj3kmeJIFDkmdKlJzVeF6Z1nWNJah+LjSCiZ\r\nKsSQNbLBe7BbpTKpb+oDcivHFnBZod5p9fG5JV8XsfSzOtsdmzro7RhCSHez\r\nqS5sv7BeWFRMH72TRB8LQS+3crHs/rcHjdZpKdt8pO7xNz/yJH80R4duC8KP\r\n3tQfnM85Fn+XPCrmPS9ZMtQMsktQ2lwO+KM=\r\n=6ayf\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_2.0.5_1653834618041_0.7004572200820398"},"_hasShrinkwrap":false},"2.0.6":{"name":"@asemin/nestjs-security","version":"2.0.6","description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"private":false,"license":"UNLICENSED","main":"dist/main.js","scripts":{"prepublishOnly":"npm run build","build":"tsc -p tsconfig.build.json"},"publishConfig":{"cache":"cache/.npm","access":"public"},"repository":{"type":"git","url":"https://github.com"},"bugs":{"url":"https://github.com/"},"dependencies":{"@asemin/nestjs-utils":"^3.0.23","@jira-killer/constants":"^1.0.20","@nestjs/common":"^8.0.0","@nestjs/config":"^2.0.0","@nestjs/core":"^8.4.4","@nestjs/mongoose":"^9.0.3","@nestjs/platform-fastify":"^8.2.6","@nestjs/swagger":"^5.2.1","class-validator":"^0.13.2","fastify":"^3.27.0","mongoose":"^6.3.1"},"devDependencies":{"@nestjs/cli":"^8.0.0","@nestjs/schematics":"^8.0.0","@types/express":"^4.17.13","@types/node":"^16.0.0","prettier":"^2.3.2","source-map-support":"^0.5.20","ts-loader":"^9.2.3","ts-node":"^10.0.0","tsconfig-paths":"^3.10.1","typescript":"^4.6.3"},"rootDir":"src","gitHead":"4354f52c1d3ce23467afb2d2d311d2876f929d71","_id":"@asemin/nestjs-security@2.0.6","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-UAH3Pn35Djf0mdpzXSUO7BtAjmMfBHbJWjC1XohjjJUJYTLp4WhYKxg0+q+60gk+x5VOqrmU1ZX09u2acH5kLQ==","shasum":"6cf080b27c07d57272d5c57ad629d6584e311721","tarball":"https://registry.npmjs.org/@asemin/nestjs-security/-/nestjs-security-2.0.6.tgz","fileCount":664,"unpackedSize":647475,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDGJJdQmF+AXrsBpC8/UwNkFjQCeaeMbjm9ezRdM+SXbAIhANSJSHeTWzbVIj0eEAzeI1IAxiyk0NHnI3Thc8s4+cwQ"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJir6rxACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqqmw//dNkAaIjyHWDfecip00JOxtL8YB+4bbP1RhTzMeHK+ynaWNcu\r\nmjJ+OpMwFN/kxtQzVx9SFNyyX02dCSCqW8wdcYpgRWpDikVV1czHpA5eKaEG\r\nMBhA/af2RYXfvzKmPi2/Li43ChG7LRWcmn+VmmcgqNL3u0ExDroaR6xtFp9g\r\nQVozvnS/LkXpHhDyEiujlyLy1nuL99JK9wbLSKVhaEFsq5lRs2QqIke7sJiB\r\nL7UN2cw+usU2Q8h9EVtYp+QTfKY5+x/2wsA0vDm5HXY7Q1jU+phiKjgAF1bx\r\nmqFjYWqZvY9I/AHDykLdabgf5r+NIHok4y+NOo8BKTBZ4iS1r1EVPIQIF/lI\r\nZu99cOop32M6DGz8/dOEKnseIH0JMMgKGBRd3HlE1adgoII3jrHvfC2FP072\r\nHE2O9AUmHJYzVU871re359okT/zQig4EQvW2mwrpLPvJXkCiJmnhwdxbyQS4\r\nfVYqWnAym6kxD/Iwq3dmpoyVI2EGFF9L3FM1/32iOo1k8wMfYdNH0zPdj9Bd\r\nG/AUTWHMbI16F+/VA3oM/l3vytq/sOqssZTvL0+sm79LUrcoyTBFAf0gsW+G\r\nHAhyGKXneGca5viezlRTCzAY6skwsPt6n71TZisRydhn3oyWYHsQGPcPDOtZ\r\nx+ZxSwZLvRmMcJ6Sd2USGLd0vcY1Ld8adsU=\r\n=w5V0\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"anton.semin","email":"semin240@gmail.com"},"directories":{},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/nestjs-security_2.0.6_1655679729579_0.7925182578622174"},"_hasShrinkwrap":false}},"time":{"created":"2022-05-04T13:39:20.435Z","1.0.0":"2022-05-04T13:39:21.145Z","modified":"2022-06-19T23:02:09.873Z","1.0.1":"2022-05-04T17:08:37.634Z","1.0.2":"2022-05-04T17:13:06.889Z","1.0.3":"2022-05-04T17:19:45.322Z","1.0.4":"2022-05-04T17:34:35.807Z","1.0.5":"2022-05-04T17:41:49.200Z","1.0.6":"2022-05-05T07:36:21.552Z","1.0.7":"2022-05-05T07:39:44.340Z","1.0.8":"2022-05-09T17:13:28.227Z","1.0.9":"2022-05-09T19:12:58.825Z","1.0.10":"2022-05-10T08:42:54.849Z","1.0.11":"2022-05-10T08:47:51.802Z","1.0.12":"2022-05-10T08:55:27.660Z","1.0.13":"2022-05-10T11:02:35.286Z","1.0.14":"2022-05-10T12:41:06.092Z","1.0.15":"2022-05-10T13:49:28.496Z","1.0.16":"2022-05-10T15:11:42.730Z","1.0.17":"2022-05-10T15:50:24.138Z","1.0.18":"2022-05-10T19:09:25.201Z","1.0.19":"2022-05-10T19:15:17.937Z","1.0.20":"2022-05-11T17:02:30.737Z","1.0.21":"2022-05-11T17:38:00.171Z","1.0.22":"2022-05-11T17:50:50.600Z","1.0.23":"2022-05-11T18:17:10.218Z","1.0.24":"2022-05-12T10:28:15.370Z","1.0.25":"2022-05-12T10:34:22.420Z","1.0.26":"2022-05-12T13:50:18.873Z","1.0.27":"2022-05-12T17:42:43.943Z","1.0.28":"2022-05-13T13:28:57.514Z","1.0.29":"2022-05-13T17:50:05.139Z","1.0.30":"2022-05-13T18:04:22.480Z","1.0.31":"2022-05-14T11:02:47.705Z","1.0.32":"2022-05-14T11:08:18.778Z","1.0.33":"2022-05-14T17:07:19.488Z","1.0.34":"2022-05-16T11:28:11.007Z","1.0.35":"2022-05-16T20:05:06.708Z","2.0.0":"2022-05-21T09:36:21.985Z","2.0.1":"2022-05-21T09:38:06.550Z","2.0.2":"2022-05-21T09:48:41.354Z","2.0.3":"2022-05-21T10:52:43.847Z","2.0.4":"2022-05-21T10:56:19.964Z","2.0.5":"2022-05-29T14:30:18.235Z","2.0.6":"2022-06-19T23:02:09.758Z"},"maintainers":[{"name":"anton.semin","email":"semin240@gmail.com"}],"description":"<p align=\"center\">\r   <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r </p>","repository":{"type":"git","url":"https://github.com"},"author":{"name":"Anton Semin","email":"anton.siaminski@gmail.com"},"bugs":{"url":"https://github.com/"},"license":"UNLICENSED","readme":"<p align=\"center\">\r\n  <a href=\"http://nestjs.com/\" target=\"blank\"><img src=\"https://nestjs.com/img/logo_text.svg\" width=\"320\" alt=\"Nest Logo\" /></a>\r\n</p>\r\n\r\n[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456\r\n[circleci-url]: https://circleci.com/gh/nestjs/nest\r\n\r\n  <p align=\"center\">A progressive <a href=\"http://nodejs.org\" target=\"_blank\">Node.js</a> framework for building efficient and scalable server-side applications.</p>\r\n    <p align=\"center\">\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/v/@nestjs/core.svg\" alt=\"NPM Version\" /></a>\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/l/@nestjs/core.svg\" alt=\"Package License\" /></a>\r\n<a href=\"https://www.npmjs.com/~nestjscore\" target=\"_blank\"><img src=\"https://img.shields.io/npm/dm/@nestjs/common.svg\" alt=\"NPM Downloads\" /></a>\r\n<a href=\"https://circleci.com/gh/nestjs/nest\" target=\"_blank\"><img src=\"https://img.shields.io/circleci/build/github/nestjs/nest/master\" alt=\"CircleCI\" /></a>\r\n<a href=\"https://coveralls.io/github/nestjs/nest?branch=master\" target=\"_blank\"><img src=\"https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9\" alt=\"Coverage\" /></a>\r\n<a href=\"https://discord.gg/G7Qnnhy\" target=\"_blank\"><img src=\"https://img.shields.io/badge/discord-online-brightgreen.svg\" alt=\"Discord\"/></a>\r\n<a href=\"https://opencollective.com/nest#backer\" target=\"_blank\"><img src=\"https://opencollective.com/nest/backers/badge.svg\" alt=\"Backers on Open Collective\" /></a>\r\n<a href=\"https://opencollective.com/nest#sponsor\" target=\"_blank\"><img src=\"https://opencollective.com/nest/sponsors/badge.svg\" alt=\"Sponsors on Open Collective\" /></a>\r\n  <a href=\"https://paypal.me/kamilmysliwiec\" target=\"_blank\"><img src=\"https://img.shields.io/badge/Donate-PayPal-ff3f59.svg\"/></a>\r\n    <a href=\"https://opencollective.com/nest#sponsor\"  target=\"_blank\"><img src=\"https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg\" alt=\"Support us\"></a>\r\n  <a href=\"https://twitter.com/nestframework\" target=\"_blank\"><img src=\"https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow\"></a>\r\n</p>\r\n  <!--[![Backers on Open Collective](https://opencollective.com/nest/backers/badge.svg)](https://opencollective.com/nest#backer)\r\n  [![Sponsors on Open Collective](https://opencollective.com/nest/sponsors/badge.svg)](https://opencollective.com/nest#sponsor)-->\r\n\r\n## Description\r\n\r\nNestjs Exception handling implementation.\r\nIncludes: \r\n    * Handler's chain mechanism\r\n    * Custom exception to inherit from\r\n    * Implemented Nest JS Validation Exception handler\r\n\r\nException structure: \r\n```\r\n    {\r\n        code: \"ERROR:<ENTITY>-<CODE_MESSAGE>\"\r\n        status: 500,\r\n        title: \"Error!\",\r\n        message: 'This was screwed',\r\n        body: { any info you like }\r\n    }\r\n```\r\n\r\n[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.\r\n\r\n## Use\r\n\r\n# installation\r\n```bash\r\n$ npm install @asemin/nestjs-exception-handling\r\n```\r\n\r\n# Handler creation example\r\nClass must extend ExceptionHandler and implement `handle` method. Method must return HandlerExceptionDto filled.\r\n```\r\nexport class MongoExceptionHandler extends ExceptionHandler{\r\n    handle(exception: any): HandledExceptionDto {\r\n        if ( !(exception instanceof MongoError) )\r\n            return this.next?.handle(exception);\r\n\r\n        switch (exception.code) {\r\n            case 11000:\r\n                return new HandledExceptionDto(getException(API_ERROR_CODES.DATABASE.DUPLICATE));\r\n        }\r\n\r\n        return null;\r\n    }\r\n}\r\n```\r\n\r\n# handlers chain creation\r\nEach member must extend ExceptionHandler\r\n```\r\nexport const handlersChain = [\r\n    new MongoExceptionHandler(),\r\n    new ValidationExceptionHandler(),\r\n    new CustomExceptionHandler(),\r\n    new HttpExceptionHandler()\r\n];\r\n```\r\n\r\n# Nestjs exception filter configuration. main.ts:\r\n```bash\r\n    const exceptionFilter = new ExceptionFilter(\r\n        <ExceptionHandler>createExceptionHandlersChain(handlersChain)\r\n    );\r\n\r\n    app.useGlobalFilters(exceptionFilter);\r\n```\r\n\r\n## Custom exception use\r\n\r\n# throwException\r\nUse one of the codes. Fill free to put any information to body (second param)\r\nIf there are no code suitable - throw any exception type manually.\r\n```\r\nthrowException(API_ERROR_CODES.COMMON.EMPTY_PARAM, {method: 'getByPermissionAndPermissionSets', fields: {permissionId, permissionSetIds}})\r\n```\r\n\r\n# getException info\r\n```\r\nconst {code, status, message} = getException(API_ERROR_CODES.COMMON.UNKNOWN);\r\n```","readmeFilename":"README.md"}