{"_id":"permissions-contractx","_rev":"36-1e1ea2e3071febe0f6ac1a8887cb41a1","name":"permissions-contractx","dist-tags":{"latest":"2.21.0"},"versions":{"1.0.0":{"name":"permissions-contractx","version":"1.0.0","keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"author":{"name":"ContractX Development Team"},"license":"MIT","_id":"permissions-contractx@1.0.0","maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"}],"homepage":"https://github.com/your-org/permissions-contractx#readme","bugs":{"url":"https://github.com/your-org/permissions-contractx/issues"},"dist":{"shasum":"0dd454f39a45674f9ea75f17c5567ed3a04cdbe9","tarball":"https://registry.npmjs.org/permissions-contractx/-/permissions-contractx-1.0.0.tgz","fileCount":75,"integrity":"sha512-gxF2qwt/OV4QKR9peoPFblsxTJGrBj7VTnd6PYRgRZPbywW6EEiD0VvpOMhd4p4SejIKOjp3n8oN3WtNz4HZ4Q==","signatures":[{"sig":"MEUCIQC/XI07B+sDiS/4zXUQyBXAQPhBmRiglP20Wvcp1z7tiQIgAQMK/22Y4uHJ5Plw+M8nLI2wKUvDorURPf3ixY5de4M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":303260},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"scripts":{"lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:watch":"tsc -w","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wdlopez","email":"wdlopez@gmail.com"},"repository":{"url":"git+https://github.com/your-org/permissions-contractx.git","type":"git"},"_npmVersion":"10.8.2","description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","directories":{"test":"test","example":"examples"},"_nodeVersion":"20.19.4","dependencies":{"co":"^4.6.0","ms":"^2.1.3","qs":"^6.14.0","yn":"^3.1.1","ajv":"^6.12.6","arg":"^4.1.3","jwa":"^1.4.2","jws":"^3.2.2","uid":"^2.0.2","asap":"^2.0.6","bser":"^2.1.1","diff":"^4.0.2","exit":"^0.1.2","glob":"^7.2.3","gopd":"^1.2.0","keyv":"^4.5.4","levn":"^0.4.1","mime":"^2.6.0","once":"^1.4.0","rxjs":"^7.8.2","tmpl":"^1.0.5","y18n":"^5.0.8","acorn":"^8.15.0","chalk":"^4.1.2","cliui":"^8.0.1","debug":"^4.4.1","execa":"^5.1.1","fastq":"^1.19.1","isexe":"^2.0.0","jsesc":"^3.1.0","json5":"^2.2.3","kleur":"^3.0.3","leven":"^3.1.0","p-try":"^2.2.0","slash":"^3.0.0","tslib":"^2.8.1","which":"^2.0.2","yargs":"^17.7.2","braces":"^3.0.3","dedent":"^1.6.0","dotenv":"^16.4.7","espree":"^9.6.1","expect":"^29.7.0","fflate":"^0.8.2","globby":"^11.1.0","hasown":"^2.0.2","ignore":"^5.3.2","lodash":"^4.17.21","merge2":"^1.4.1","semver":"^7.7.2","uri-js":"^4.4.1","walker":"^1.0.8","wrappy":"^1.0.2","ci-info":"^3.9.0","consola":"^3.4.2","deep-is":"^0.1.4","dezalgo":"^1.0.4","esprima":"^4.0.1","esquery":"^1.6.0","esutils":"^2.0.3","find-up":"^5.0.0","flatted":"^3.3.3","gensync":"^1.0.0-beta.2","globals":"^13.24.0","ieee754":"^1.2.1","is-glob":"^4.0.3","iterare":"^1.2.1","js-yaml":"^4.1.0","methods":"^1.1.2","mime-db":"^1.52.0","onetime":"^5.1.2","p-limit":"^3.1.0","pirates":"^4.0.7","pkg-dir":"^4.2.0","prompts":"^2.4.2","resolve":"^1.22.10","reusify":"^1.1.0","strtok3":"^10.3.4","yallist":"^3.1.1","anymatch":"^3.1.3","argparse":"^2.0.1","asynckit":"^0.4.0","dir-glob":"^3.0.1","doctrine":"^3.0.0","emittery":"^0.13.1","error-ex":"^1.3.2","escalade":"^3.2.0","has-flag":"^4.0.0","inflight":"^1.0.6","inherits":"^2.0.4","jest-cli":"^29.7.0","load-esm":"^1.0.2","make-dir":"^4.0.0","mimic-fn":"^2.1.0","minimist":"^1.2.8","minipass":"^7.1.2","p-locate":"^5.0.0","path-key":"^3.1.1","punycode":"^2.3.1","react-is":"^18.3.1","wordwrap":"^1.0.0","acorn-jsx":"^5.3.2","bs-logger":"^0.2.6","callsites":"^3.1.0","camelcase":"^5.3.1","cookiejar":"^2.1.4","deepmerge":"^4.3.1","es-errors":"^1.3.0","esrecurse":"^4.3.0","fast-glob":"^3.3.3","file-type":"^21.0.0","form-data":"^4.0.4","get-proto":"^1.0.1","graphemer":"^1.4.0","is-number":"^7.0.0","is-stream":"^2.0.1","jackspeak":"^3.4.3","jest-diff":"^29.7.0","jest-each":"^29.7.0","jest-mock":"^29.7.0","jest-util":"^29.7.0","js-tokens":"^4.0.0","lru-cache":"^5.1.1","makeerror":"^1.0.12","minimatch":"^9.0.3","neo-async":"^2.6.2","path-type":"^4.0.0","picomatch":"^2.3.1","pure-rand":"^6.1.0","strip-bom":"^4.0.0","type-fest":"^0.20.2","uglify-js":"^3.19.3","word-wrap":"^1.2.5","wrap-ansi":"^7.0.0","acorn-walk":"^8.3.4","ansi-regex":"^5.0.1","babel-jest":"^29.7.0","call-bound":"^1.0.4","char-regex":"^1.0.2","color-name":"^1.1.4","concat-map":"^0.0.1","estraverse":"^5.3.0","fill-range":"^7.1.1","flat-cache":"^3.2.0","formidable":"^2.1.5","get-stream":"^6.0.1","handlebars":"^4.7.8","is-extglob":"^2.1.1","make-error":"^1.3.6","micromatch":"^4.0.8","mime-types":"^2.1.35","node-int64":"^0.4.0","optionator":"^0.9.4","parse-json":"^5.2.0","path-parse":"^1.0.7","picocolors":"^1.1.1","prelude-ls":"^1.2.1","sisteransi":"^1.0.5","source-map":"^0.6.1","sprintf-js":"^1.0.3","strip-ansi":"^6.0.1","superagent":"^8.1.2","text-table":"^0.2.0","type-check":"^0.4.0","ansi-styles":"^4.3.0","array-union":"^2.1.0","buffer-from":"^1.1.2","create-jest":"^29.7.0","cross-spawn":"^7.0.6","emoji-regex":"^8.0.0","fb-watchman":"^2.0.2","fs.realpath":"^1.0.0","glob-parent":"^6.0.2","graceful-fs":"^4.2.11","has-symbols":"^1.1.0","imurmurhash":"^0.1.4","is-arrayish":"^0.2.1","jest-circus":"^29.7.0","jest-config":"^29.7.0","jest-runner":"^29.7.0","jest-worker":"^29.7.0","json-buffer":"^3.0.1","locate-path":"^6.0.0","lodash.once":"^4.1.1","path-exists":"^4.0.0","path-scurry":"^1.11.1","resolve-cwd":"^3.0.0","safe-buffer":"^5.2.1","signal-exit":"^3.0.7","stack-utils":"^2.0.6","token-types":"^6.0.4","type-detect":"^4.0.8","yocto-queue":"^0.1.0","ansi-escapes":"^4.3.2","browserslist":"^4.25.2","caniuse-lite":"^1.0.30001733","dunder-proto":"^1.0.1","eslint-scope":"^7.2.2","html-escaper":"^2.0.2","import-fresh":"^3.3.1","import-local":"^3.2.0","jest-resolve":"^29.7.0","jest-runtime":"^29.7.0","jest-watcher":"^29.7.0","jsonwebtoken":"^9.0.2","lodash.merge":"^4.6.2","merge-stream":"^2.0.0","npm-run-path":"^4.0.1","resolve-from":"^4.0.0","run-parallel":"^1.2.0","side-channel":"^1.1.0","string-width":"^4.2.3","test-exclude":"^6.0.0","ts-api-utils":"^1.4.3","undici-types":"^6.21.0","yargs-parser":"^21.1.1","color-convert":"^2.0.1","dotenv-expand":"^12.0.1","function-bind":"^1.1.2","get-intrinsic":"^1.3.0","human-signals":"^2.1.0","jest-docblock":"^29.7.0","jest-get-type":"^29.6.3","jest-snapshot":"^29.7.0","jest-validate":"^29.7.0","node-releases":"^2.0.19","parent-module":"^1.0.1","pretty-format":"^29.7.0","shebang-regex":"^3.0.0","string-length":"^4.0.2","wrap-ansi-cjs":"^7.0.0","balanced-match":"^1.0.2","create-require":"^1.1.1","delayed-stream":"^1.0.0","detect-newline":"^3.1.0","diff-sequences":"^29.6.3","eastasianwidth":"^0.2.0","is-core-module":"^2.16.1","is-path-inside":"^3.0.3","jest-haste-map":"^29.7.0","lodash.memoize":"^4.1.2","normalize-path":"^3.0.0","object-inspect":"^1.13.4","path-to-regexp":"^8.2.0","strip-ansi-cjs":"^6.0.1","supports-color":"^7.2.0","to-regex-range":"^5.0.1","v8-to-istanbul":"^9.3.0","brace-expansion":"^2.0.2","combined-stream":"^1.0.8","es-object-atoms":"^1.1.1","fast-deep-equal":"^3.1.3","get-caller-file":"^2.0.5","has-tostringtag":"^1.0.2","is-generator-fn":"^2.1.0","jest-regex-util":"^29.6.3","lodash.includes":"^4.3.0","lodash.isnumber":"^3.0.3","lodash.isstring":"^4.0.1","math-intrinsics":"^1.1.0","natural-compare":"^1.4.0","queue-microtask":"^1.2.3","resolve.exports":"^2.0.3","shebang-command":"^2.0.0","cjs-module-lexer":"^1.4.3","fast-levenshtein":"^2.0.6","file-entry-cache":"^6.0.1","foreground-child":"^3.3.1","get-package-type":"^0.1.0","istanbul-reports":"^3.1.7","lodash.isboolean":"^3.0.3","lodash.isinteger":"^4.0.4","path-is-absolute":"^1.0.1","reflect-metadata":"^0.1.14","side-channel-map":"^1.0.1","string-width-cjs":"^4.2.3","babel-preset-jest":"^29.6.3","component-emitter":"^1.3.1","jest-message-util":"^29.7.0","jest-pnp-resolver":"^1.2.3","lines-and-columns":"^1.2.4","require-directory":"^2.1.1","side-channel-list":"^1.0.0","uint8array-extras":"^1.4.0","write-file-atomic":"^4.0.2","convert-source-map":"^2.0.0","es-define-property":"^1.0.1","es-set-tostringtag":"^2.1.0","jest-changed-files":"^29.7.0","jest-leak-detector":"^29.7.0","jest-matcher-utils":"^29.7.0","source-map-support":"^0.5.13","collect-v8-coverage":"^1.0.2","ecdsa-sig-formatter":"^1.0.11","eslint-visitor-keys":"^3.4.3","fast-safe-stringify":"^2.1.1","istanbul-lib-report":"^3.0.1","strip-final-newline":"^2.0.0","strip-json-comments":"^3.1.1","electron-to-chromium":"^1.5.199","escape-string-regexp":"^4.0.0","json-schema-traverse":"^0.4.1","lodash.isplainobject":"^4.0.6","side-channel-weakmap":"^1.0.2","v8-compile-cache-lib":"^3.0.1","babel-plugin-istanbul":"^6.1.1","istanbul-lib-coverage":"^3.2.2","jest-environment-node":"^29.7.0","package-json-from-dist":"^1.0.1","update-browserslist-db":"^1.1.3","babel-plugin-jest-hoist":"^29.6.3","call-bind-apply-helpers":"^1.0.2","is-fullwidth-code-point":"^3.0.0","istanbul-lib-instrument":"^6.0.3","istanbul-lib-source-maps":"^4.0.1","jest-resolve-dependencies":"^29.7.0","buffer-equal-constant-time":"^1.0.1","fast-json-stable-stringify":"^2.1.0","json-parse-even-better-errors":"^2.3.1","supports-preserve-symlinks-flag":"^1.0.0","babel-preset-current-node-syntax":"^1.2.0","json-stable-stringify-without-jsonify":"^1.0.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.40.0","rimraf":"^5.0.0","ts-jest":"^29.1.0","ts-node":"^10.9.0","supertest":"^6.3.0","typescript":"^5.0.0","@types/jest":"^29.5.0","@types/node":"^20.0.0","@types/express":"^5.0.3","@nestjs/testing":"^11.1.6","@types/supertest":"^2.0.12","@types/jsonwebtoken":"^9.0.0","@typescript-eslint/parser":"^6.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"peerDependencies":{"rxjs":"^7.0.0","@nestjs/jwt":"^11.0.0","@nestjs/core":"^11.1.6","jsonwebtoken":"^9.0.0","@nestjs/common":"^11.1.6","@nestjs/config":"^4.0.2","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/permissions-contractx_1.0.0_1756739255576_0.011997793472064977","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"permissions-contractx","version":"1.0.1","keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"author":{"name":"ContractX Development Team"},"license":"MIT","_id":"permissions-contractx@1.0.1","maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"}],"homepage":"https://github.com/your-org/permissions-contractx#readme","bugs":{"url":"https://github.com/your-org/permissions-contractx/issues"},"dist":{"shasum":"fae9c232e4ba3c8b73ed90273911778f05af2da8","tarball":"https://registry.npmjs.org/permissions-contractx/-/permissions-contractx-1.0.1.tgz","fileCount":75,"integrity":"sha512-jJBr4kFTGCXWCMiW50/C+OI90qYMkI8jgZ4pgjIjJ1ipzBVKT2xEmTLHJmmERS8RPFwHDwr4+k1AW1I7qIVj0w==","signatures":[{"sig":"MEYCIQD7ZhlbJt77xobpmcmqdZSwnXgJ0rMp4+5C66zbJjjecgIhALb6GQIaatch1NlgtygVj8e7FLSpBVBLaJs9FFRJYGDh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":295825},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"scripts":{"lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:watch":"tsc -w","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wdlopez","email":"wdlopez@gmail.com"},"repository":{"url":"git+https://github.com/your-org/permissions-contractx.git","type":"git"},"_npmVersion":"11.6.0","description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","directories":{"test":"test","example":"examples"},"_nodeVersion":"20.19.4","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.1.3","eslint":"^9.35.0","rimraf":"^5.0.0","ts-jest":"^28.0.5","ts-node":"^10.9.0","supertest":"^6.3.0","typescript":"^5.0.0","@types/jest":"^25.1.0","@types/node":"^20.0.0","@types/express":"^5.0.3","@nestjs/testing":"^11.1.6","@types/supertest":"^2.0.12","@types/jsonwebtoken":"^9.0.0","@nestjs/platform-express":"^11.1.6","@typescript-eslint/parser":"^8.43.0","@typescript-eslint/eslint-plugin":"^8.43.0"},"peerDependencies":{"rxjs":"^7.0.0","@nestjs/jwt":"^11.0.0","@nestjs/core":"^11.1.6","jsonwebtoken":"^9.0.0","@nestjs/common":"^11.1.6","@nestjs/config":"^4.0.2","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/permissions-contractx_1.0.1_1757357314879_0.2664375356023805","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"permissions-contractx","version":"1.0.2","keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"author":{"name":"ContractX Development Team"},"license":"MIT","_id":"permissions-contractx@1.0.2","maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"}],"homepage":"https://github.com/your-org/permissions-contractx#readme","bugs":{"url":"https://github.com/your-org/permissions-contractx/issues"},"dist":{"shasum":"49e1d5d32b393193c240f12e43dc94e28bbcb0df","tarball":"https://registry.npmjs.org/permissions-contractx/-/permissions-contractx-1.0.2.tgz","fileCount":75,"integrity":"sha512-oH+uVgGBD1vsil9+vwK2Ri6vbyHtDy6+5uuv6N5TxUJrs5pi9dFh+IrpTt3ENWafuQCrK9lNwY8TSbjKMH7sNA==","signatures":[{"sig":"MEUCIQD3FyiUrSjN8cAa0b2/mgJYY9oAMKOxvVnn4+1HfhKa/AIgeN+1rslze3N2jgwD0ihPN49DSSFriuB+fNkxctPhKgQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":301929},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"scripts":{"lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:watch":"tsc -w","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wdlopez","email":"wdlopez@gmail.com"},"repository":{"url":"git+https://github.com/your-org/permissions-contractx.git","type":"git"},"_npmVersion":"11.6.0","description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","directories":{"test":"test","example":"examples"},"_nodeVersion":"20.19.4","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.1.3","eslint":"^9.35.0","rimraf":"^5.0.0","ts-jest":"^28.0.5","ts-node":"^10.9.0","supertest":"^6.3.0","typescript":"^5.0.0","@types/jest":"^25.1.0","@types/node":"^20.0.0","@types/express":"^5.0.3","@nestjs/testing":"^11.1.6","@types/supertest":"^2.0.12","@types/jsonwebtoken":"^9.0.0","@nestjs/platform-express":"^11.1.6","@typescript-eslint/parser":"^8.43.0","@typescript-eslint/eslint-plugin":"^8.43.0"},"peerDependencies":{"rxjs":"^7.0.0","@nestjs/jwt":"^11.0.0","@nestjs/core":"^11.1.6","jsonwebtoken":"^9.0.0","@nestjs/common":"^11.1.6","@nestjs/config":"^4.0.2","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/permissions-contractx_1.0.2_1757394550647_0.4268266609924829","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"permissions-contractx","version":"1.1.0","keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"author":{"name":"ContractX Development Team"},"license":"MIT","_id":"permissions-contractx@1.1.0","maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"},{"name":"chechorjuela","email":"saor89@hotmail.com"}],"dist":{"shasum":"727450346f43698a4492c8f4e1be1d35e3f9afc5","tarball":"https://registry.npmjs.org/permissions-contractx/-/permissions-contractx-1.1.0.tgz","fileCount":81,"integrity":"sha512-JIOB+De6BSaQp1wRP7e7gmY0sjZR+8zUHfY6w0lkHducdop2o7G9mRAdTZ8dyoRlMOcBQraTQR4BgKiTki4qzg==","signatures":[{"sig":"MEQCIBL1xdTrK5KMr8Ql+8NpNA6v/dOel9UnTNoJDohFBc2sAiBQszLG2tvFUpIj7MU+lCFRgo5xZiGo9uItxD45TYpxmw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":270709},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"gitHead":"0efbc24ff4cbf333b55dc5f7b8f7cf261aefcd08","scripts":{"lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:watch":"tsc -w","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wdlopez","email":"wdlopez@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","rimraf":"^5.0.0","ts-jest":"^29.4.11","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0","@types/express":"^5.0.3","@nestjs/platform-express":"^11.1.6"},"peerDependencies":{"rxjs":"^7.0.0","express":"^5.0.0","@nestjs/jwt":"^11.0.0","@nestjs/core":"^11.1.6","jsonwebtoken":"^9.0.0","@nestjs/common":"^11.1.6","@nestjs/config":"^4.0.2","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/permissions-contractx_1.1.0_1780516001927_0.34559766445093265","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"permissions-contractx","version":"1.2.0","keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"author":{"name":"ContractX Development Team"},"license":"MIT","_id":"permissions-contractx@1.2.0","maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"},{"name":"chechorjuela","email":"saor89@hotmail.com"}],"dist":{"shasum":"2ff9c1ca02e9ac8bd324dcc3e56af41c11bc0ea3","tarball":"https://registry.npmjs.org/permissions-contractx/-/permissions-contractx-1.2.0.tgz","fileCount":81,"integrity":"sha512-lX/rGeI84EVX6zTUzW9wtnM0HlirabztyWWhBH0asolVrrlaZptiwj7dSRE3GRkf1INX6HNjDJPJ5ZAgfN8ODg==","signatures":[{"sig":"MEYCIQCpnP2bI8a5KtY7OsHY45Io2c2kOFiI50yT245dc7lulgIhAKfa3KYhzIvIYqA6kGTCgOmnChdvZEwHeMzsihGOmFeI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":288555},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"gitHead":"c103a73525e2b668eb59c3f62ece7c8956872180","scripts":{"lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:watch":"tsc -w","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wdlopez","email":"wdlopez@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","rimraf":"^5.0.0","ts-jest":"^29.4.11","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0","@types/express":"^5.0.3","@nestjs/platform-express":"^11.1.6"},"peerDependencies":{"rxjs":"^7.0.0","express":"^5.0.0","@nestjs/jwt":"^11.0.0","@nestjs/core":"^11.1.6","jsonwebtoken":"^9.0.0","@nestjs/common":"^11.1.6","@nestjs/config":"^4.0.2","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/permissions-contractx_1.2.0_1780694718594_0.9418791367299102","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"permissions-contractx","version":"1.2.1","keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"author":{"name":"ContractX Development Team"},"license":"MIT","_id":"permissions-contractx@1.2.1","maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"},{"name":"chechorjuela","email":"saor89@hotmail.com"}],"dist":{"shasum":"2073ca8129e60fa0721dcf65701e7265fb9f070c","tarball":"https://registry.npmjs.org/permissions-contractx/-/permissions-contractx-1.2.1.tgz","fileCount":81,"integrity":"sha512-nzEPsqBVNDzH1acSsQp2yQmB7dy206DWrCvH/6uFvRtrCjU683lIweK0We4xWE1NHsY26ZJG6bChwEHC9iU3DQ==","signatures":[{"sig":"MEUCIEji+kXnY8gUidp7iD9sbuHWoJK7R3kUvL85N1ZrmYG2AiEAwtqbUokdLs6LDuOGuMpXxGAWPG401GcPJNVA2TZ+r88=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":289419},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"gitHead":"93cbf1c8370b50ad3ab166ee609f4e3e1d8af7cd","scripts":{"lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:watch":"tsc -w","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wdlopez","email":"wdlopez@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","rimraf":"^5.0.0","ts-jest":"^29.4.11","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0","@types/express":"^5.0.3","@nestjs/platform-express":"^11.1.6"},"peerDependencies":{"rxjs":"^7.0.0","express":"^5.0.0","@nestjs/jwt":"^11.0.0","@nestjs/core":"^11.1.6","jsonwebtoken":"^9.0.0","@nestjs/common":"^11.1.6","@nestjs/config":"^4.0.2","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/permissions-contractx_1.2.1_1781028765270_0.369938467901366","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"permissions-contractx","version":"1.3.0","keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"author":{"name":"ContractX Development Team"},"license":"MIT","_id":"permissions-contractx@1.3.0","maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"},{"name":"chechorjuela","email":"saor89@hotmail.com"}],"dist":{"shasum":"005dfe786f5e57547dd03ee5c5666a38c369cd55","tarball":"https://registry.npmjs.org/permissions-contractx/-/permissions-contractx-1.3.0.tgz","fileCount":81,"integrity":"sha512-xWMdLgK5VPeQn1r8acTHkm8CMTjVXPN9UTO9Ii3i52w1mZkrwdb8FqpHveTtHqr8M+XrMcbdVt6ETymF2eZAyg==","signatures":[{"sig":"MEUCIQCh+30BWdwlItggLCYSA9pjWCUbyxZRgNnsdT7Kb+CWCAIgcShRFLQJnSfMlSVTbPtR03zldGXjEqGsP56zF4B5frI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":292257},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"gitHead":"a816f62e68e73b313ef3054e8ef044d735f4a014","scripts":{"lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:watch":"tsc -w","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wdlopez","email":"wdlopez@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","rimraf":"^5.0.0","ts-jest":"^29.4.11","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0","@types/express":"^5.0.3","@nestjs/platform-express":"^11.1.6"},"peerDependencies":{"rxjs":"^7.0.0","express":"^5.0.0","@nestjs/jwt":"^11.0.0","@nestjs/core":"^11.1.6","jsonwebtoken":"^9.0.0","@nestjs/common":"^11.1.6","@nestjs/config":"^4.0.2","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/permissions-contractx_1.3.0_1781034624759_0.36170759462377555","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"permissions-contractx","version":"1.4.0","keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"author":{"name":"ContractX Development Team"},"license":"MIT","_id":"permissions-contractx@1.4.0","maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"},{"name":"chechorjuela","email":"saor89@hotmail.com"},{"name":"santiagogv2","email":"santigarciavel33@gmail.com"}],"dist":{"shasum":"b7bae0c581b6aa945bce952a8be4b4a42442e36e","tarball":"https://registry.npmjs.org/permissions-contractx/-/permissions-contractx-1.4.0.tgz","fileCount":81,"integrity":"sha512-Kkp+1NJ8uoSVMdPmqXhZZem6dqjVE7p4R1oMCMVM9wWheo25xAjFz6GDxjO+Gnjsa2yVEpIU/jDs77zas4yvrQ==","signatures":[{"sig":"MEYCIQCW1SiPBGK0HNB3fYUzrZVZBuL5SYOJraqgXXw3y4krlwIhAKY+NXTlSGrXu47yefWcTZuiX9GLVfkA2f22Ni9fc85D","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":296374},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"gitHead":"67a5cdd59f97616791b4ce8f9060d1003b580cca","scripts":{"lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:watch":"tsc -w","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wdlopez","email":"wdlopez@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","rimraf":"^5.0.0","ts-jest":"^29.4.11","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0","@types/express":"^5.0.3","@nestjs/platform-express":"^11.1.6"},"peerDependencies":{"rxjs":"^7.0.0","express":"^5.0.0","@nestjs/jwt":"^11.0.0","@nestjs/core":"^11.1.6","jsonwebtoken":"^9.0.0","@nestjs/common":"^11.1.6","@nestjs/config":"^4.0.2","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/permissions-contractx_1.4.0_1781102784606_0.3972902069801776","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"permissions-contractx","version":"1.4.1","keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"author":{"name":"ContractX Development Team"},"license":"MIT","_id":"permissions-contractx@1.4.1","maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"},{"name":"chechorjuela","email":"saor89@hotmail.com"},{"name":"santiagogv2","email":"santigarciavel33@gmail.com"}],"dist":{"shasum":"df1080c66b50bad6ba6850063f31339b00e20701","tarball":"https://registry.npmjs.org/permissions-contractx/-/permissions-contractx-1.4.1.tgz","fileCount":81,"integrity":"sha512-bRTW2WF24H52UAaqNtO8oRgrRr+zujd+3qspqHXUVOT5Vdx5cneFL0m3vU3za3O3K/+BnFBGHqYdQM+epvbRUA==","signatures":[{"sig":"MEYCIQDVchpIgMul0v3AbeEicoUfXMlEgOXBbkGoDLnvkUPCdgIhAIIdwWc2B4vg8NO60u8woBsX3N9Hyg2HYMJ/9QbVyBP4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":296644},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"gitHead":"67844c9414473841ee7f6d5e7c059a7a5d9669df","scripts":{"lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:watch":"tsc -w","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wdlopez","email":"wdlopez@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","rimraf":"^5.0.0","ts-jest":"^29.4.11","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0","@types/express":"^5.0.3","@nestjs/platform-express":"^11.1.6"},"peerDependencies":{"rxjs":"^7.0.0","express":"^5.0.0","@nestjs/jwt":"^11.0.0","@nestjs/core":"^11.1.6","jsonwebtoken":"^9.0.0","@nestjs/common":"^11.1.6","@nestjs/config":"^4.0.2","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/permissions-contractx_1.4.1_1781120031926_0.566579549710504","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"permissions-contractx","version":"1.5.0","keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"author":{"name":"ContractX Development Team"},"license":"MIT","_id":"permissions-contractx@1.5.0","maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"},{"name":"chechorjuela","email":"saor89@hotmail.com"},{"name":"santiagogv2","email":"santigarciavel33@gmail.com"}],"dist":{"shasum":"d22d140489813703304a605e9aafd751080bc30d","tarball":"https://registry.npmjs.org/permissions-contractx/-/permissions-contractx-1.5.0.tgz","fileCount":81,"integrity":"sha512-MuBp35gNGQd31mKDbSPduZRb36SSycqY+P84Mjm/Eka3nTHiDAYZ1ZdH7KPrj0/fRMmQBaavXD1xJp8+24yOXw==","signatures":[{"sig":"MEYCIQDYilo1EFdv/7PF7IwXSCUirwBNr7XRMjV6/jgkOSw9dgIhAJ5KqGDZYWCvOj7JLC/PCUT2fb/i0bc2n8muJ5K+cwua","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":304249},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"gitHead":"a74e704e61ba931a2de7ca89126dc5322a18b5e7","scripts":{"lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:watch":"tsc -w","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wdlopez","email":"wdlopez@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","rimraf":"^5.0.0","ts-jest":"^29.4.11","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0","@types/express":"^5.0.3","@nestjs/platform-express":"^11.1.6"},"peerDependencies":{"rxjs":"^7.0.0","express":"^5.0.0","@nestjs/jwt":"^11.0.0","@nestjs/core":"^11.1.6","jsonwebtoken":"^9.0.0","@nestjs/common":"^11.1.6","@nestjs/config":"^4.0.2","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/permissions-contractx_1.5.0_1781301072571_0.4298023721366315","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"permissions-contractx","version":"1.5.1","keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"author":{"name":"ContractX Development Team"},"license":"MIT","_id":"permissions-contractx@1.5.1","maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"},{"name":"chechorjuela","email":"saor89@hotmail.com"},{"name":"santiagogv2","email":"santigarciavel33@gmail.com"}],"dist":{"shasum":"959e4de422c45d88eae3ffbfcdee36d69a0152f2","tarball":"https://registry.npmjs.org/permissions-contractx/-/permissions-contractx-1.5.1.tgz","fileCount":81,"integrity":"sha512-mKqpgX6aRHXw3NN0a7njn2zh/dE4wySowB3sMpHkKifm1VIA3IiIyOaBPTl0Ex/Dp+C5tcOPG46oqZN7NwTVzw==","signatures":[{"sig":"MEYCIQC5KR+ilelInspQSlYnaeVqT6exMKQeHQXq7Gt3n5bNowIhAMxlus/Wzfv1q7VdkDPe4GBYIlJzejZWGUPQEOmbFMM5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":304411},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"gitHead":"b3e1b9e00fb3587ad478d2b3997d283d85f37fc3","scripts":{"lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:watch":"tsc -w","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wdlopez","email":"wdlopez@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","rimraf":"^5.0.0","ts-jest":"^29.4.11","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0","@types/express":"^5.0.3","@nestjs/platform-express":"^11.1.6"},"peerDependencies":{"rxjs":"^7.0.0","express":"^5.0.0","@nestjs/jwt":"^11.0.0","@nestjs/core":"^11.1.6","jsonwebtoken":"^9.0.0","@nestjs/common":"^11.1.6","@nestjs/config":"^4.0.2","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/permissions-contractx_1.5.1_1781792500932_0.330605704305464","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"permissions-contractx","version":"1.6.0","keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"author":{"name":"ContractX Development Team"},"license":"MIT","_id":"permissions-contractx@1.6.0","maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"},{"name":"chechorjuela","email":"saor89@hotmail.com"},{"name":"santiagogv2","email":"santigarciavel33@gmail.com"}],"dist":{"shasum":"542052dc20adcbef1828baa366e7789e7836b0ec","tarball":"https://registry.npmjs.org/permissions-contractx/-/permissions-contractx-1.6.0.tgz","fileCount":81,"integrity":"sha512-H19H/seDtAKBTtXPR9Tc4Nme1XolSU8r0N5E5A0BE4YwXOlSiTW+T+1SLmXkzloCB+nFXFyXz9c5ry8V/W/NNQ==","signatures":[{"sig":"MEUCIQDvFuzjvms+wv7ojfzBaHxLh94kE7+H180Qdb+KlpF/7AIgTdUP7fy8vkLWU1kjqDaNUj29GJL6LNi8ABD/qR2t9bE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":304822},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"gitHead":"b8b3aecbe4c41ecee361517f0a9cd7109e639451","scripts":{"lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:watch":"tsc -w","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wdlopez","email":"wdlopez@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","rimraf":"^5.0.0","ts-jest":"^29.4.11","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0","@types/express":"^5.0.3","@nestjs/platform-express":"^11.1.6"},"peerDependencies":{"rxjs":"^7.0.0","express":"^5.0.0","@nestjs/jwt":"^11.0.0","@nestjs/core":"^11.1.6","jsonwebtoken":"^9.0.0","@nestjs/common":"^11.1.6","@nestjs/config":"^4.0.2","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/permissions-contractx_1.6.0_1781828663234_0.861180949281181","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"permissions-contractx","version":"2.0.0","keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"author":{"name":"ContractX Development Team"},"license":"MIT","_id":"permissions-contractx@2.0.0","maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"},{"name":"chechorjuela","email":"saor89@hotmail.com"},{"name":"santiagogv2","email":"santigarciavel33@gmail.com"}],"dist":{"shasum":"3c20ac2cc3f7ed878e6dde0943df27e79a78b3dc","tarball":"https://registry.npmjs.org/permissions-contractx/-/permissions-contractx-2.0.0.tgz","fileCount":84,"integrity":"sha512-IhUdNzhQen7PKZc0v5yADAA1VtcqG41D6bzjS+1kjwS01jazjkzUznZKBoxhoMfCyrNWdEHhktJRSi7APR4dcA==","signatures":[{"sig":"MEUCIQD1oVHZlyluyK0V7Yle935WyYTSy/tAFSZGBulpsUWFJgIgSNkAKEgMtrZZWdkSDXE9jBtky9eehO1cE5q97XgSMno=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":314334},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"gitHead":"d05f88e5eeb1e9dbaf3962b401fe1218f2c3ddf7","scripts":{"lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:watch":"tsc -w","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wdlopez","email":"wdlopez@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","rimraf":"^5.0.0","ts-jest":"^29.4.11","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0","@types/express":"^5.0.3","@nestjs/platform-express":"^11.1.6"},"peerDependencies":{"rxjs":"^7.0.0","express":"^5.0.0","@nestjs/jwt":"^11.0.0","@nestjs/core":"^11.1.6","jsonwebtoken":"^9.0.0","@nestjs/common":"^11.1.6","@nestjs/config":"^4.0.2","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/permissions-contractx_2.0.0_1781875457288_0.08207104403517596","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"permissions-contractx","version":"2.1.0","keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"author":{"name":"ContractX Development Team"},"license":"MIT","_id":"permissions-contractx@2.1.0","maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"},{"name":"chechorjuela","email":"saor89@hotmail.com"},{"name":"santiagogv2","email":"santigarciavel33@gmail.com"}],"dist":{"shasum":"eb932189916578c3c1f85402c4ac1cf456dedbe2","tarball":"https://registry.npmjs.org/permissions-contractx/-/permissions-contractx-2.1.0.tgz","fileCount":84,"integrity":"sha512-KcVJPiiClzLpRLsA9YPneQV/5RF7WfQ8I2pIkcfMQNm9VK16E2ORuLsp5+FIrTWMCOrlTOboGbs9EQviZFcN6w==","signatures":[{"sig":"MEYCIQDgR3h6qMKzh3IIdO6wBiv9Hi6b4RrT6IJlD947FgxUuwIhANORU305IYiWwbtRM2XVcNq0hZEHgfcdJrWhZmD7rpkH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":316673},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"gitHead":"d05f88e5eeb1e9dbaf3962b401fe1218f2c3ddf7","scripts":{"lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:watch":"tsc -w","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wdlopez","email":"wdlopez@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","rimraf":"^5.0.0","ts-jest":"^29.4.11","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0","@types/express":"^5.0.3","@nestjs/platform-express":"^11.1.6"},"peerDependencies":{"rxjs":"^7.0.0","express":"^5.0.0","@nestjs/jwt":"^11.0.0","@nestjs/core":"^11.1.6","jsonwebtoken":"^9.0.0","@nestjs/common":"^11.1.6","@nestjs/config":"^4.0.2","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/permissions-contractx_2.1.0_1781899825045_0.18003895546561255","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"permissions-contractx","version":"2.2.0","keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"author":{"name":"ContractX Development Team"},"license":"MIT","_id":"permissions-contractx@2.2.0","maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"},{"name":"chechorjuela","email":"saor89@hotmail.com"},{"name":"santiagogv2","email":"santigarciavel33@gmail.com"}],"dist":{"shasum":"bbc70d2968d1d6623ef5613f6ac5c08fc49d66fb","tarball":"https://registry.npmjs.org/permissions-contractx/-/permissions-contractx-2.2.0.tgz","fileCount":84,"integrity":"sha512-hrdp+fSVtnuLybj8Zn8ewlywp4bs/m8KuMqB3i+O4qhUP3Z23e9j+xOD3dGKWbMeWxuENOSAbyR4+q32/PkEiw==","signatures":[{"sig":"MEYCIQD6iXlFq2KsyhqEk8/FQ7CpgleoCwP+V5Bt5Mv/TORP5gIhAP45MHjuXQIQwFWmnhdcXfILP/cql71020JAzMZ179pX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":318366},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"gitHead":"0eae09cea683050d542bea201b7cc231b5d15c3c","scripts":{"lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:watch":"tsc -w","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wdlopez","email":"wdlopez@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","rimraf":"^5.0.0","ts-jest":"^29.4.11","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0","@types/express":"^5.0.3","@nestjs/platform-express":"^11.1.6"},"peerDependencies":{"rxjs":"^7.0.0","express":"^5.0.0","@nestjs/jwt":"^11.0.0","@nestjs/core":"^11.1.6","jsonwebtoken":"^9.0.0","@nestjs/common":"^11.1.6","@nestjs/config":"^4.0.2","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/permissions-contractx_2.2.0_1782339441063_0.9025193262289741","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"permissions-contractx","version":"2.3.0","keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"author":{"name":"ContractX Development Team"},"license":"MIT","_id":"permissions-contractx@2.3.0","maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"},{"name":"chechorjuela","email":"saor89@hotmail.com"},{"name":"santiagogv2","email":"santigarciavel33@gmail.com"}],"dist":{"shasum":"d42f70e2fb6e1a2165f77833835f388de1327eac","tarball":"https://registry.npmjs.org/permissions-contractx/-/permissions-contractx-2.3.0.tgz","fileCount":108,"integrity":"sha512-e9C2Xxbm0+21t6B103qEbQzGMj6s+hvrp/fBbWzOPhlkqpi7wHV1z9SbhYfuwrkBKG0P0jjkdw1unKKvJsmgUw==","signatures":[{"sig":"MEYCIQDBTPATrsCtkdKl2vcFYuXPwYo9CYp9l4qwq/Xcr+PIDwIhANA14MlesEDJgyEXoW3N1drMOXGi/RhM42xTNwSwA8Ef","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":360630},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"gitHead":"40d09a58602d1d611245370f3cde14a9d1a4c955","scripts":{"lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:watch":"tsc -w","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wdlopez","email":"wdlopez@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","rimraf":"^5.0.0","ts-jest":"^29.4.11","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0","@types/express":"^5.0.3","@nestjs/platform-express":"^11.1.6"},"peerDependencies":{"rxjs":"^7.0.0","express":"^5.0.0","@nestjs/jwt":"^11.0.0","@nestjs/core":"^11.1.6","jsonwebtoken":"^9.0.0","@nestjs/common":"^11.1.6","@nestjs/config":"^4.0.2","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/permissions-contractx_2.3.0_1782411519486_0.4219408205574988","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"permissions-contractx","version":"2.4.0","keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"author":{"name":"ContractX Development Team"},"license":"MIT","_id":"permissions-contractx@2.4.0","maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"},{"name":"chechorjuela","email":"saor89@hotmail.com"},{"name":"santiagogv2","email":"santigarciavel33@gmail.com"}],"dist":{"shasum":"249181d8d900ad0176fb46c280c6b3085bfab5e2","tarball":"https://registry.npmjs.org/permissions-contractx/-/permissions-contractx-2.4.0.tgz","fileCount":108,"integrity":"sha512-vS+ZdhZfaIb3cC49wwCKeLPGJuHs3Fb+7Kcz3jHnGhPvjG1LFcsV9tCwMxfw3w5Eaw1zmE1IzmXKBDf69S+Ebg==","signatures":[{"sig":"MEUCIBPz2PqTz2Q0Ikl19pvLiVvX3xZhbLaaXOsX0sak22jYAiEA5EvQwdOUKSroNHq/O78Kl01ZBnZyQXIYWnZMDu4oM30=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":366772},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"gitHead":"7152b16b98456089643812e06279ef7106d5ff71","scripts":{"lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:watch":"tsc -w","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wdlopez","email":"wdlopez@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","rimraf":"^5.0.0","ts-jest":"^29.4.11","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0","@types/express":"^5.0.3","@nestjs/platform-express":"^11.1.6"},"peerDependencies":{"rxjs":"^7.0.0","express":"^5.0.0","@nestjs/jwt":"^11.0.0","@nestjs/core":"^11.1.6","jsonwebtoken":"^9.0.0","@nestjs/common":"^11.1.6","@nestjs/config":"^4.0.2","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/permissions-contractx_2.4.0_1783475329675_0.2700143714579675","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"permissions-contractx","version":"2.5.0","keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"author":{"name":"ContractX Development Team"},"license":"MIT","_id":"permissions-contractx@2.5.0","maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"},{"name":"chechorjuela","email":"saor89@hotmail.com"},{"name":"santiagogv2","email":"santigarciavel33@gmail.com"}],"dist":{"shasum":"680523ea6ff345c8344be106671fd52081f147ec","tarball":"https://registry.npmjs.org/permissions-contractx/-/permissions-contractx-2.5.0.tgz","fileCount":108,"integrity":"sha512-2Up5jbkuTnW/hq3eenFEi0HKjJg2h23Bb71d/aRkuoyk2aOK6y/sTeckdyNYgQ7jneECYEsb6q9kFup1saTKMw==","signatures":[{"sig":"MEUCIQC30fcORwlP5+SxdWXphS1zITp8Wjj6uQyAX19ardMtKAIgAcSx0T5xhHOU7WHQXqh3glCl95AGX98dNdUEXhNAZDw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":369168},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"gitHead":"69238f18cb9a94137697834f5d177e22bb715551","scripts":{"lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:watch":"tsc -w","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wdlopez","email":"wdlopez@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","rimraf":"^5.0.0","ts-jest":"^29.4.11","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0","@types/express":"^5.0.3","@nestjs/platform-express":"^11.1.6"},"peerDependencies":{"rxjs":"^7.0.0","express":"^5.0.0","@nestjs/jwt":"^11.0.0","@nestjs/core":"^11.1.6","jsonwebtoken":"^9.0.0","@nestjs/common":"^11.1.6","@nestjs/config":"^4.0.2","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/permissions-contractx_2.5.0_1783717225648_0.9456970256172799","host":"s3://npm-registry-packages-npm-production"}},"2.5.1":{"name":"permissions-contractx","version":"2.5.1","keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"author":{"name":"ContractX Development Team"},"license":"MIT","_id":"permissions-contractx@2.5.1","maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"},{"name":"chechorjuela","email":"saor89@hotmail.com"},{"name":"santiagogv2","email":"santigarciavel33@gmail.com"}],"dist":{"shasum":"b7c69b975a7f884e5bf564014c79dc70ed31fa83","tarball":"https://registry.npmjs.org/permissions-contractx/-/permissions-contractx-2.5.1.tgz","fileCount":108,"integrity":"sha512-6q/6vykT1LA+BlV9z1vHFPyN51Am+UKD+d7RuXdrSI9Jf0YNJbVMNRsWndYUbrBD7qGLO8Oz+hDw0pNKrPPNwA==","signatures":[{"sig":"MEYCIQCpiEkbRlpiMLDjx0MbIiLLmb9UG5B0nFmxb6I29dCJiQIhAOHDbgcyhOwVzhjwN552CtTQbwNZA9v7u45Rm7c/E+SF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":369168},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"gitHead":"69238f18cb9a94137697834f5d177e22bb715551","scripts":{"lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:watch":"tsc -w","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wdlopez","email":"wdlopez@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","rimraf":"^5.0.0","ts-jest":"^29.4.11","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0","@types/express":"^5.0.3","@nestjs/platform-express":"^11.1.6"},"peerDependencies":{"rxjs":"^7.0.0","express":"^5.0.0","@nestjs/jwt":"^11.0.0","@nestjs/core":"^11.1.6","jsonwebtoken":"^9.0.0","@nestjs/common":"^11.1.6","@nestjs/config":"^4.0.2","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/permissions-contractx_2.5.1_1783737981966_0.5839087170581725","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"permissions-contractx","version":"2.6.0","keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"author":{"name":"ContractX Development Team"},"license":"MIT","_id":"permissions-contractx@2.6.0","maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"},{"name":"chechorjuela","email":"saor89@hotmail.com"},{"name":"santiagogv2","email":"santigarciavel33@gmail.com"}],"dist":{"shasum":"9fd39c1fb5f4b32923aea614025d5094bb810075","tarball":"https://registry.npmjs.org/permissions-contractx/-/permissions-contractx-2.6.0.tgz","fileCount":108,"integrity":"sha512-kWHm37q8Ed1q23j7ZyqVorALVUjfQEaOlzYZdYM3ZgvboXRNVhDEP3pZlm/BaNJtPteRTv3XcJo41jGGf9ej3g==","signatures":[{"sig":"MEYCIQCjl5OgPWjO/HUAyOHb9+220zAPKksMqdNcGg3vg2X8bgIhAMrWJxxMK19OKF1wv2iqU45b90YVJ2RvGqoeM1tl3vBB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":377041},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"gitHead":"3fd733e93dcb21b00c23c6c6df529747df8617dd","scripts":{"lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:watch":"tsc -w","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wdlopez","email":"wdlopez@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","rimraf":"^5.0.0","ts-jest":"^29.4.11","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0","@types/express":"^5.0.3","@nestjs/platform-express":"^11.1.6"},"peerDependencies":{"rxjs":"^7.0.0","express":"^5.0.0","@nestjs/jwt":"^11.0.0","@nestjs/core":"^11.1.6","jsonwebtoken":"^9.0.0","@nestjs/common":"^11.1.6","@nestjs/config":"^4.0.2","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/permissions-contractx_2.6.0_1784052980772_0.8914555743090824","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"permissions-contractx","version":"2.7.0","keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"author":{"name":"ContractX Development Team"},"license":"MIT","_id":"permissions-contractx@2.7.0","maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"},{"name":"chechorjuela","email":"saor89@hotmail.com"},{"name":"santiagogv2","email":"santigarciavel33@gmail.com"}],"dist":{"shasum":"e88ea2389612845ab89b8a40fed8e8772b1b18ce","tarball":"https://registry.npmjs.org/permissions-contractx/-/permissions-contractx-2.7.0.tgz","fileCount":108,"integrity":"sha512-NtkoJOA4MklAx4AxLQvBO/HnEpbC9ThJPCjFLKRiUfVXtLsq+7tamy27O41mYJiLSwWMiewTt14WKDPWE9QOkA==","signatures":[{"sig":"MEUCIQDdpWA/EtePXgnCPbfMym/qBLtLvE6hgE4dnVH8epAFXQIgG1qzDaroxwnrCFp2+E85Xw/Y6/cOxGwDZnFmfcXHHgw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":378254},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"gitHead":"32299d01f33250f44d82fa04125e157813bc2c38","scripts":{"lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:watch":"tsc -w","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wdlopez","email":"wdlopez@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","rimraf":"^5.0.0","ts-jest":"^29.4.11","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0","@types/express":"^5.0.3","@nestjs/platform-express":"^11.1.6"},"peerDependencies":{"rxjs":"^7.0.0","express":"^5.0.0","@nestjs/jwt":"^11.0.0","@nestjs/core":"^11.1.6","jsonwebtoken":"^9.0.0","@nestjs/common":"^11.1.6","@nestjs/config":"^4.0.2","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/permissions-contractx_2.7.0_1784240093406_0.805894550941151","host":"s3://npm-registry-packages-npm-production"}},"2.8.0":{"name":"permissions-contractx","version":"2.8.0","keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"author":{"name":"ContractX Development Team"},"license":"MIT","_id":"permissions-contractx@2.8.0","maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"},{"name":"chechorjuela","email":"saor89@hotmail.com"},{"name":"santiagogv2","email":"santigarciavel33@gmail.com"}],"dist":{"shasum":"345ce1143b4fca1119dab77801833e133d85fe18","tarball":"https://registry.npmjs.org/permissions-contractx/-/permissions-contractx-2.8.0.tgz","fileCount":108,"integrity":"sha512-vlFis6W/HRvetxdkMGEyF20pC+WWhGqDFosA58f3OCLW0ClnceyQ/B6DcRVq2CMrK072FKyYf4DlYa7zd8OgnA==","signatures":[{"sig":"MEQCIFKju/XYv/u3cfO7SMyJ5ISJTP+csq/J2vxzuo9zfriaAiBCjcY0KaMgKJ6CVjmSaT9oicD4F7mEqS+HhFGsZ+z5WQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":378755},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"gitHead":"deee3b9176a0753f2cd99a68dcc3a5856527cd75","scripts":{"lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:watch":"tsc -w","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wdlopez","email":"wdlopez@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","rimraf":"^5.0.0","ts-jest":"^29.4.11","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0","@types/express":"^5.0.3","@nestjs/platform-express":"^11.1.6"},"peerDependencies":{"rxjs":"^7.0.0","express":"^5.0.0","@nestjs/jwt":"^11.0.0","@nestjs/core":"^11.1.6","jsonwebtoken":"^9.0.0","@nestjs/common":"^11.1.6","@nestjs/config":"^4.0.2","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/permissions-contractx_2.8.0_1784299048096_0.019889019355434412","host":"s3://npm-registry-packages-npm-production"}},"2.9.0":{"name":"permissions-contractx","version":"2.9.0","keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"author":{"name":"ContractX Development Team"},"license":"MIT","_id":"permissions-contractx@2.9.0","maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"},{"name":"chechorjuela","email":"saor89@hotmail.com"},{"name":"santiagogv2","email":"santigarciavel33@gmail.com"}],"dist":{"shasum":"77801f50af03ea731c9378cd3e87e9f84ae404ea","tarball":"https://registry.npmjs.org/permissions-contractx/-/permissions-contractx-2.9.0.tgz","fileCount":126,"integrity":"sha512-8qwZ1la8rijyaDmvPZybPzIlC36H2aKyK8mr2eao4q7ah7pNmrYUVEcAV6/W78khfxNKOCXCu8ERWSAcRyYNAA==","signatures":[{"sig":"MEYCIQCOqhBZousXwuln0vjXWuZXKcwKsbVQ7Dogx4YiFnLwEwIhALm8eIBI45oH9dYLcenFxuacS3aWykJFx8R03apsDOEd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":400826},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"gitHead":"0dc56957acdcd14ec3f7bee41918794612df53f1","scripts":{"lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:watch":"tsc -w","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wdlopez","email":"wdlopez@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","rimraf":"^5.0.0","ts-jest":"^29.4.11","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0","@types/express":"^5.0.3","@nestjs/platform-express":"^11.1.6"},"peerDependencies":{"rxjs":"^7.0.0","express":"^5.0.0","@nestjs/jwt":"^11.0.0","@nestjs/core":"^11.1.6","jsonwebtoken":"^9.0.0","@nestjs/common":"^11.1.6","@nestjs/config":"^4.0.2","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/permissions-contractx_2.9.0_1784433682348_0.5180029860942488","host":"s3://npm-registry-packages-npm-production"}},"2.10.0":{"name":"permissions-contractx","version":"2.10.0","keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"author":{"name":"ContractX Development Team"},"license":"MIT","_id":"permissions-contractx@2.10.0","maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"},{"name":"chechorjuela","email":"saor89@hotmail.com"},{"name":"santiagogv2","email":"santigarciavel33@gmail.com"}],"dist":{"shasum":"6b87f76271f5b767b1e64cec821adcf26e700eae","tarball":"https://registry.npmjs.org/permissions-contractx/-/permissions-contractx-2.10.0.tgz","fileCount":126,"integrity":"sha512-IOufRaDmN3a9ucV8uFpfzmn0mEipRdKis1UnaspIK+tm5if5QYML9o6tEozqF0NLDMbTB8uq2WAYOjKVxwlIVw==","signatures":[{"sig":"MEUCIB5f/h9daKSz+dxkc56Via0SgzEevgG5hGOOURqIyPAoAiEAlZ5Owcze6MiBcTNj0GfkethXe7FHQ3oRIGucYgzO6vU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":404461},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"gitHead":"28737237d388cad53c742ba2051bf097458da601","scripts":{"lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:watch":"tsc -w","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wdlopez","email":"wdlopez@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","rimraf":"^5.0.0","ts-jest":"^29.4.11","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0","@types/express":"^5.0.3","@nestjs/platform-express":"^11.1.6"},"peerDependencies":{"rxjs":"^7.0.0","express":"^5.0.0","@nestjs/jwt":"^11.0.0","@nestjs/core":"^11.1.6","jsonwebtoken":"^9.0.0","@nestjs/common":"^11.1.6","@nestjs/config":"^4.0.2","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/permissions-contractx_2.10.0_1785001266726_0.4603819706488468","host":"s3://npm-registry-packages-npm-production"}},"2.11.0":{"name":"permissions-contractx","version":"2.11.0","keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"author":{"name":"ContractX Development Team"},"license":"MIT","_id":"permissions-contractx@2.11.0","maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"},{"name":"chechorjuela","email":"saor89@hotmail.com"},{"name":"santiagogv2","email":"santigarciavel33@gmail.com"}],"dist":{"shasum":"365ef5647e93c5c78734ec69420486d0e4df3aa5","tarball":"https://registry.npmjs.org/permissions-contractx/-/permissions-contractx-2.11.0.tgz","fileCount":126,"integrity":"sha512-XeR8sgr6zfrxL0Ne92K8WOkDepGcAEo8/kUfy+OOsv3/qzJUOHua9yPP7N4PQWTNXUI+Nu8fL5pMXJ6Gf35T/A==","signatures":[{"sig":"MEUCIDOFw2ZzcjFqGfDDc0aeXwBZ86K/hT6kOiNWNVG7XJVwAiEAlQynxk46ZsFaBy0kE0rXXoRol8mTt3JXRTQQ6xsQsT0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":404359},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"gitHead":"9822014a3aaf657ca32cc7f0e965f79a85ab4847","scripts":{"lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:watch":"tsc -w","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wdlopez","email":"wdlopez@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","rimraf":"^5.0.0","ts-jest":"^29.4.11","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0","@types/express":"^5.0.3","@nestjs/platform-express":"^11.1.6"},"peerDependencies":{"rxjs":"^7.0.0","express":"^5.0.0","@nestjs/jwt":"^11.0.0","@nestjs/core":"^11.1.6","jsonwebtoken":"^9.0.0","@nestjs/common":"^11.1.6","@nestjs/config":"^4.0.2","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/permissions-contractx_2.11.0_1785600150537_0.8041161948616398","host":"s3://npm-registry-packages-npm-production"}},"2.12.0":{"name":"permissions-contractx","version":"2.12.0","keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"author":{"name":"ContractX Development Team"},"license":"MIT","_id":"permissions-contractx@2.12.0","maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"},{"name":"chechorjuela","email":"saor89@hotmail.com"},{"name":"santiagogv2","email":"santigarciavel33@gmail.com"}],"dist":{"shasum":"f2982b1f9cc4b296b6582614b773e3deb910afea","tarball":"https://registry.npmjs.org/permissions-contractx/-/permissions-contractx-2.12.0.tgz","fileCount":126,"integrity":"sha512-xUaWd3tfCxxsMUvzgIzPj94COEOeLUEbtK69chsj4zHQC1vqvTdTm1/w6jYcE+x7IauccKmHe3DKZihifeEUeA==","signatures":[{"sig":"MEQCIBEqv3qeWbjtP2q1Sdm5w4wJKdgOUWkzOdRkeewW2n7PAiAXLzfE5mRkLMyjZXlO22JkaMqzKUrG7u6jTGQ6wQTMvg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":412844},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"gitHead":"0ed41d3f996c8a3dc9b4918fc912c2475172106e","scripts":{"lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:watch":"tsc -w","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wdlopez","email":"wdlopez@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","rimraf":"^5.0.0","ts-jest":"^29.4.11","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0","@types/express":"^5.0.3","@nestjs/platform-express":"^11.1.6"},"peerDependencies":{"rxjs":"^7.0.0","express":"^5.0.0","@nestjs/jwt":"^11.0.0","@nestjs/core":"^11.1.6","jsonwebtoken":"^9.0.0","@nestjs/common":"^11.1.6","@nestjs/config":"^4.0.2","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/permissions-contractx_2.12.0_1785777782201_0.36005044649214835","host":"s3://npm-registry-packages-npm-production"}},"2.13.0":{"name":"permissions-contractx","version":"2.13.0","keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"author":{"name":"ContractX Development Team"},"license":"MIT","_id":"permissions-contractx@2.13.0","maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"},{"name":"chechorjuela","email":"saor89@hotmail.com"},{"name":"santiagogv2","email":"santigarciavel33@gmail.com"}],"dist":{"shasum":"223d1e3b350bbbd95827635e64d6c44f7a9aec16","tarball":"https://registry.npmjs.org/permissions-contractx/-/permissions-contractx-2.13.0.tgz","fileCount":126,"integrity":"sha512-YYEFBnlaizmdi3kJYCFHeym9v+vOX8wd/J4ZGY5wTSr79A8UEiiBxvL/uAk9wfMXT9o4L+gLxG/Ava7+oX5Y9w==","signatures":[{"sig":"MEUCIQC7ftUU2VaVIG7Mom+17+rd8DvNTxmzxTPb9q2AlvB2zgIgVlgEStdMr/I9maLaqZmuowMEwUplFGZ+yEyiOshOmkE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":416014},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"gitHead":"8720a646a47a7a9f72b14e7181908a111b914059","scripts":{"lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:watch":"tsc -w","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wdlopez","email":"wdlopez@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","rimraf":"^5.0.0","ts-jest":"^29.4.11","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0","@types/express":"^5.0.3","@nestjs/platform-express":"^11.1.6"},"peerDependencies":{"rxjs":"^7.0.0","express":"^5.0.0","@nestjs/jwt":"^11.0.0","@nestjs/core":"^11.1.6","jsonwebtoken":"^9.0.0","@nestjs/common":"^11.1.6","@nestjs/config":"^4.0.2","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/permissions-contractx_2.13.0_1785784956880_0.04367743040131744","host":"s3://npm-registry-packages-npm-production"}},"2.14.0":{"name":"permissions-contractx","version":"2.14.0","keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"author":{"name":"ContractX Development Team"},"license":"MIT","_id":"permissions-contractx@2.14.0","maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"},{"name":"chechorjuela","email":"saor89@hotmail.com"},{"name":"santiagogv2","email":"santigarciavel33@gmail.com"}],"dist":{"shasum":"e093a8cc69fed56f357a6ef768693e514a35cfea","tarball":"https://registry.npmjs.org/permissions-contractx/-/permissions-contractx-2.14.0.tgz","fileCount":126,"integrity":"sha512-Vc2SLlmlK6qtsEmdG7S24orJ7Ti9r3aWkj1ooWvXTUPusaoxUav1GQ5yo4VexzHw9yZH0nY2/fMcoyF+ITw4sw==","signatures":[{"sig":"MEUCIQCIJTqj3tqnQWRoP8DWiuhp8zamBg2L6D3Egr+67gd3WgIgPnR/9dczkAuCHQHtk7gQUoOC7xOJr45qUaeL8RMfN2U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":418618},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"gitHead":"9bfa585ba14561fee88cc3dc2c46dfdbeb0f376b","scripts":{"lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:watch":"tsc -w","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wdlopez","email":"wdlopez@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","rimraf":"^5.0.0","ts-jest":"^29.4.11","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0","@types/express":"^5.0.3","@nestjs/platform-express":"^11.1.6"},"peerDependencies":{"rxjs":"^7.0.0","express":"^5.0.0","@nestjs/jwt":"^11.0.0","@nestjs/core":"^11.1.6","jsonwebtoken":"^9.0.0","@nestjs/common":"^11.1.6","@nestjs/config":"^4.0.2","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/permissions-contractx_2.14.0_1787077703440_0.6403969502685751","host":"s3://npm-registry-packages-npm-production"}},"2.14.1":{"name":"permissions-contractx","version":"2.14.1","keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"author":{"name":"ContractX Development Team"},"license":"MIT","_id":"permissions-contractx@2.14.1","maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"},{"name":"chechorjuela","email":"saor89@hotmail.com"},{"name":"santiagogv2","email":"santigarciavel33@gmail.com"}],"dist":{"shasum":"e7f2d9a19f711e639c4357d8d8edc6f30c32c3db","tarball":"https://registry.npmjs.org/permissions-contractx/-/permissions-contractx-2.14.1.tgz","fileCount":126,"integrity":"sha512-MQeJ7ey0rdWToFXPKEmmKUSRQ8/ENaYFilNcMYNy/gBuw3WeHqxD3tTvkJtkvduz8JZMi0djQW6s3xmc8Kft/g==","signatures":[{"sig":"MEQCIFOkrOH3SF573fSPYv1PBLO5HUgqXeJsUfeEVTpbkulXAiAHRbl76s+MCxUVy/k6Mv9ZvmpzcyFlh14nAN+rkyqsjQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":418618},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"gitHead":"71afb5506e68e27f4ee6f390fd455828bac07010","scripts":{"lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:watch":"tsc -w","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wdlopez","email":"wdlopez@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","rimraf":"^5.0.0","ts-jest":"^29.4.11","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0","@types/express":"^5.0.3","@nestjs/platform-express":"^11.1.6"},"peerDependencies":{"rxjs":"^7.0.0","express":"^5.0.0","@nestjs/jwt":"^11.0.0","@nestjs/core":"^11.1.6","jsonwebtoken":"^9.0.0","@nestjs/common":"^11.1.6","@nestjs/config":"^4.0.2","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/permissions-contractx_2.14.1_1787668526778_0.953744176167822","host":"s3://npm-registry-packages-npm-production"}},"2.16.0":{"name":"permissions-contractx","version":"2.16.0","keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"author":{"name":"ContractX Development Team"},"license":"MIT","_id":"permissions-contractx@2.16.0","maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"},{"name":"chechorjuela","email":"saor89@hotmail.com"},{"name":"santiagogv2","email":"santigarciavel33@gmail.com"}],"dist":{"shasum":"afb1311d1c2f071088e4802de21832d778da9862","tarball":"https://registry.npmjs.org/permissions-contractx/-/permissions-contractx-2.16.0.tgz","fileCount":126,"integrity":"sha512-je6VLpq/5W6RxJCEDURchmLV8DUi5MaPHfQmGOZfqJFv/yvjn2oOW94LqDA/2E3UQ9uqjjy5NcdGqeFAI18org==","signatures":[{"sig":"MEUCIQCmfBFfDQXJ6K7QizNE/PBRuu+n2WVlQahQKB3sv9my+wIgMMjP4P591DncN6F/B/Ou81HSpfvaEkbjBO9nJ8dc1BI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":418775},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"gitHead":"9b3fc3617da766fc9c26e276d73b71d56ceb2a81","scripts":{"lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:watch":"tsc -w","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wdlopez","email":"wdlopez@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","rimraf":"^5.0.0","ts-jest":"^29.4.11","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0","@types/express":"^5.0.3","@nestjs/platform-express":"^11.1.6"},"peerDependencies":{"rxjs":"^7.0.0","express":"^5.0.0","@nestjs/jwt":"^11.0.0","@nestjs/core":"^11.1.6","jsonwebtoken":"^9.0.0","@nestjs/common":"^11.1.6","@nestjs/config":"^4.0.2","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/permissions-contractx_2.16.0_1787669651077_0.26781621986774984","host":"s3://npm-registry-packages-npm-production"}},"2.17.0":{"name":"permissions-contractx","version":"2.17.0","keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"author":{"name":"ContractX Development Team"},"license":"MIT","_id":"permissions-contractx@2.17.0","maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"},{"name":"chechorjuela","email":"saor89@hotmail.com"},{"name":"santiagogv2","email":"santigarciavel33@gmail.com"}],"dist":{"shasum":"d977e5592a0404db6bafb9f297364d757e5fd7f6","tarball":"https://registry.npmjs.org/permissions-contractx/-/permissions-contractx-2.17.0.tgz","fileCount":129,"integrity":"sha512-g0TDIy+h8c4W8ZQLmm8R/7FyaQO9zQmMK0CfVOKtnZonAnTNkyVV44hargUad1x99CxlRqwErB5k4FrRuHIkYA==","signatures":[{"sig":"MEUCIQCTcXMAgFoPwKw1gtbGeo/bOc7oHbAMq7OtjQcieeYNigIgJv0qXxINFQynA4+CM4Q0/BoHoeEpovp69aQaTTh4PTk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":421890},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"gitHead":"a4e5d47bb1abc14962c37203cb0b63a42bd0fe32","scripts":{"lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:watch":"tsc -w","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wdlopez","email":"wdlopez@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","rimraf":"^5.0.0","ts-jest":"^29.4.11","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0","@types/express":"^5.0.3","@nestjs/platform-express":"^11.1.6"},"peerDependencies":{"rxjs":"^7.0.0","express":"^5.0.0","@nestjs/jwt":"^11.0.0","@nestjs/core":"^11.1.6","jsonwebtoken":"^9.0.0","@nestjs/common":"^11.1.6","@nestjs/config":"^4.0.2","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/permissions-contractx_2.17.0_1788876041551_0.7997007138415331","host":"s3://npm-registry-packages-npm-production"}},"2.18.0":{"name":"permissions-contractx","version":"2.18.0","keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"author":{"name":"ContractX Development Team"},"license":"MIT","_id":"permissions-contractx@2.18.0","maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"},{"name":"chechorjuela","email":"saor89@hotmail.com"},{"name":"santiagogv2","email":"santigarciavel33@gmail.com"}],"dist":{"shasum":"b63844fc9e7183af5a79edc9f9baade45e49af69","tarball":"https://registry.npmjs.org/permissions-contractx/-/permissions-contractx-2.18.0.tgz","fileCount":129,"integrity":"sha512-9bKeR3nbTbU5YV1MffuEVubR5WgKiftvEuCYHgLwUg+kTQpfScpJp2mdl/7gCkKs9tpVUB4UiJU1kKuRNw26+w==","signatures":[{"sig":"MEUCIQChnFubNLxE0TaQ/B40MC++ZuMcpxNbdZWHztDRykW/agIgWtE487USqSAmondunBH2WuRJuWEaUCzlxVFofxZIWWU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":433070},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"gitHead":"de0b0fe30119255faabab312f9689c8e588d9090","scripts":{"lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:watch":"tsc -w","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wdlopez","email":"wdlopez@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","rimraf":"^5.0.0","ts-jest":"^29.4.11","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0","@types/express":"^5.0.3","@nestjs/platform-express":"^11.1.6"},"peerDependencies":{"rxjs":"^7.0.0","express":"^5.0.0","@nestjs/jwt":"^11.0.0","@nestjs/core":"^11.1.6","jsonwebtoken":"^9.0.0","@nestjs/common":"^11.1.6","@nestjs/config":"^4.0.2","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/permissions-contractx_2.18.0_1788890075854_0.45720076791546926","host":"s3://npm-registry-packages-npm-production"}},"2.19.0":{"name":"permissions-contractx","version":"2.19.0","keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"author":{"name":"ContractX Development Team"},"license":"MIT","_id":"permissions-contractx@2.19.0","maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"},{"name":"chechorjuela","email":"saor89@hotmail.com"},{"name":"santiagogv2","email":"santigarciavel33@gmail.com"}],"dist":{"shasum":"3152245ad2a2f2403c67c46bd691e53ef16b1eab","tarball":"https://registry.npmjs.org/permissions-contractx/-/permissions-contractx-2.19.0.tgz","fileCount":129,"integrity":"sha512-nP6+TyNQFlQQ0XhHXOdFVxhgXKp58MEOIizx4DTOFk+Us9rajoWl3xDpxnwYAtSAleCivB6MveDcgkEeqvNUxA==","signatures":[{"sig":"MEUCIFNGSn/EEfkpMq8zuzowPc78Lk94e6PR3sx3ib5XwdT/AiEA7T+BxPCOCYTPwEmGX0b41tfRFDU+/ommpNh6GNJJLIo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":435412},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"gitHead":"b15871d6b1129cf523e046b7fca617931637fbb4","scripts":{"lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:watch":"tsc -w","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wdlopez","email":"wdlopez@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","rimraf":"^5.0.0","ts-jest":"^29.4.11","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0","@types/express":"^5.0.3","@nestjs/platform-express":"^11.1.6"},"peerDependencies":{"rxjs":"^7.0.0","express":"^5.0.0","@nestjs/jwt":"^11.0.0","@nestjs/core":"^11.1.6","jsonwebtoken":"^9.0.0","@nestjs/common":"^11.1.6","@nestjs/config":"^4.0.2","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/permissions-contractx_2.19.0_1788891470316_0.7122788715963642","host":"s3://npm-registry-packages-npm-production"}},"2.20.0":{"name":"permissions-contractx","version":"2.20.0","keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"author":{"name":"ContractX Development Team"},"license":"MIT","_id":"permissions-contractx@2.20.0","maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"},{"name":"chechorjuela","email":"saor89@hotmail.com"},{"name":"santiagogv2","email":"santigarciavel33@gmail.com"}],"dist":{"shasum":"8c0595c3c14d99c7b73fbe2ef5c1dcbf97a41f90","tarball":"https://registry.npmjs.org/permissions-contractx/-/permissions-contractx-2.20.0.tgz","fileCount":129,"integrity":"sha512-eMVIFG22ORM4dTo23P/iN6sK1LGQlHhcPVIIdFJFaE4ThDu/QEH7kgIi4sXXD+7Ciyy+w1UFYl4p1as/VCM29A==","signatures":[{"sig":"MEUCIQCEhnp+U78R2zcPsNvZmTzctBk7QtO7Mcs+MKKPMDjr9wIgDB3ahVd8esCFbiM/pfa2QFwkiVFPfupScUOmfCmkojY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":438173},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=16.0.0"},"gitHead":"862230cc2dfa32c2ee1a9470f6a012b0a5ea2edd","scripts":{"lint":"eslint src/**/*.ts","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch","build:watch":"tsc -w","test:coverage":"jest --coverage","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"wdlopez","email":"wdlopez@gmail.com"},"_npmVersion":"10.8.2","description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","rimraf":"^5.0.0","ts-jest":"^29.4.11","typescript":"^5.0.0","@types/jest":"^30.0.0","@types/node":"^20.0.0","@types/express":"^5.0.3","@nestjs/platform-express":"^11.1.6"},"peerDependencies":{"rxjs":"^7.0.0","express":"^5.0.0","@nestjs/jwt":"^11.0.0","@nestjs/core":"^11.1.6","jsonwebtoken":"^9.0.0","@nestjs/common":"^11.1.6","@nestjs/config":"^4.0.2","reflect-metadata":"^0.1.13"},"_npmOperationalInternal":{"tmp":"tmp/permissions-contractx_2.20.0_1788895642765_0.09708005184972568","host":"s3://npm-registry-packages-npm-production"}},"2.21.0":{"name":"permissions-contractx","version":"2.21.0","description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","build:watch":"tsc -w","clean":"rimraf dist","prepublishOnly":"npm run clean && npm run build","test":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage","lint":"eslint src/**/*.ts","lint:fix":"eslint src/**/*.ts --fix"},"keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"author":{"name":"ContractX Development Team"},"license":"MIT","engines":{"node":">=16.0.0","npm":">=7.0.0"},"peerDependencies":{"@nestjs/common":"^11.1.6","@nestjs/config":"^4.0.2","@nestjs/core":"^11.1.6","@nestjs/jwt":"^11.0.0","express":"^5.0.0","jsonwebtoken":"^9.0.0","reflect-metadata":"^0.1.13","rxjs":"^7.0.0"},"devDependencies":{"@nestjs/platform-express":"^11.1.6","@types/express":"^5.0.3","@types/jest":"^30.0.0","@types/node":"^20.0.0","jest":"^30.4.2","rimraf":"^5.0.0","ts-jest":"^29.4.11","typescript":"^5.0.0"},"_id":"permissions-contractx@2.21.0","gitHead":"b3b2ef2fac47850d7be89c54b4ad5f7a28c52775","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-CPoHDO9ThE1N9So7Jh5ALbLoQL2xKK757qVCYFrEaatMZruZ2mCU1USahxv2YNdzLdsXGxzt2tmbt1A57+88wQ==","shasum":"7531754e2c4243347bcc90000be5520371a88c39","tarball":"https://registry.npmjs.org/permissions-contractx/-/permissions-contractx-2.21.0.tgz","fileCount":129,"unpackedSize":439283,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIF1PKadrV2yofLRVGFoaJnEB7kz64SlWXJbz0t3d/K0JAiEAyER3Xoa70wZxvXeC6xF8Qve3SjMLfxR5X9ZrqrO986w="}]},"_npmUser":{"name":"wdlopez","email":"wdlopez@gmail.com"},"directories":{},"maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"},{"name":"chechorjuela","email":"saor89@hotmail.com"},{"name":"santiagogv2","email":"santigarciavel33@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/permissions-contractx_2.21.0_1789141624048_0.12973169994773937"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-01T15:07:35.574Z","modified":"2026-09-11T15:47:04.330Z","1.0.0":"2025-09-01T15:07:35.758Z","1.0.1":"2025-09-08T18:48:35.115Z","1.0.2":"2025-09-09T05:09:10.840Z","1.1.0":"2026-06-03T19:46:42.072Z","1.2.0":"2026-06-05T21:25:18.740Z","1.2.1":"2026-06-09T18:12:45.434Z","1.3.0":"2026-06-09T19:50:24.975Z","1.4.0":"2026-06-10T14:46:24.739Z","1.4.1":"2026-06-10T19:33:52.060Z","1.5.0":"2026-06-12T21:51:12.716Z","1.5.1":"2026-06-18T14:21:41.074Z","1.6.0":"2026-06-19T00:24:23.394Z","2.0.0":"2026-06-19T13:24:17.427Z","2.1.0":"2026-06-19T20:10:25.194Z","2.2.0":"2026-06-24T22:17:21.190Z","2.3.0":"2026-06-25T18:18:39.639Z","2.4.0":"2026-07-08T01:48:49.824Z","2.5.0":"2026-07-10T21:00:25.809Z","2.5.1":"2026-07-11T02:46:22.126Z","2.6.0":"2026-07-14T18:16:20.902Z","2.7.0":"2026-07-16T22:14:53.562Z","2.8.0":"2026-07-17T14:37:28.264Z","2.9.0":"2026-07-19T04:01:22.481Z","2.10.0":"2026-07-25T17:41:06.868Z","2.11.0":"2026-08-01T16:02:30.716Z","2.12.0":"2026-08-03T17:23:02.367Z","2.13.0":"2026-08-03T19:22:37.023Z","2.14.0":"2026-08-18T18:28:23.608Z","2.14.1":"2026-08-25T14:35:26.909Z","2.16.0":"2026-08-25T14:54:11.274Z","2.17.0":"2026-09-08T14:00:41.682Z","2.18.0":"2026-09-08T17:54:36.029Z","2.19.0":"2026-09-08T18:17:50.454Z","2.20.0":"2026-09-08T19:27:22.981Z","2.21.0":"2026-09-11T15:47:04.183Z"},"author":{"name":"ContractX Development Team"},"license":"MIT","keywords":["nestjs","authentication","authorization","rbac","jwt","permissions","roles","security","microservices","middleware","guard","decorator"],"description":"Enterprise-grade authentication and authorization package for NestJS microservices with role-based and permission-based access control","maintainers":[{"name":"wdlopez","email":"wdlopez@gmail.com"},{"name":"chechorjuela","email":"saor89@hotmail.com"},{"name":"santiagogv2","email":"santigarciavel33@gmail.com"}],"readme":"# permissions-contractx\n\nLibrería compartida de autorización para la plataforma **ContractX**. Provee los guards, decoradores, interfaces y constantes que los microservicios usan para verificar los JWT que emite el servicio de Auth y aplicar el modelo de permisos de dominio (ADR-004).\n\nAuth **emite y firma** los tokens; cada microservicio **verifica** los suyos usando este paquete. Ningún servicio mantiene su propio catálogo de permisos: todos referencian el vocabulario central definido en Auth.\n\n## Instalación\n\n```bash\nnpm install permissions-contractx\n```\n\n### Peer dependencies\n\nEl paquete espera que el servicio consumidor ya tenga instaladas:\n\n- `@nestjs/common`, `@nestjs/core`\n- `reflect-metadata`, `rxjs`\n- `jsonwebtoken`\n- `express`\n\n## Qué incluye\n\n### Guards\n\n- **`AuthorizationGuard`** — guard de autorización con cuatro estados de migración por endpoint (legacy / observación / estricto / solo-permisos), eje lectura/escritura derivado del método HTTP, y soporte de modo-ver (un permiso de solo lectura bloquea escrituras). Resuelve conflictos con la regla *deny-overrides* (deny siempre gana).\n- `JwtAuthGuard` — verificación y decodificación del JWT.\n\n### Decoradores\n\n- `@RequirePermissions(...)` — declara los permisos que un endpoint exige.\n- `@PermissionWrites(...)` — override explícito del eje lectura/escritura (por ejemplo, un `GET` con efectos o un `POST` de solo lectura).\n- `@CurrentUser()` — inyecta el usuario resuelto del token.\n- `@Public()` — marca un endpoint como abierto.\n\n### Interfaces\n\n- **`JwtPayload`** — contrato del token que emite Auth: `sub`, `role[]`, `permissions[]`, `permissionsView[]`, `clientId[]`, `providerId`, `tenantContext` (`'client' | 'provider' | 'system'`), `key_client`, entre otros.\n- `PermissionMode` — enum `WRITE` / `READ`, espejo del modo del par rol↔permiso en Auth.\n\n### Constantes\n\n- **`permission-names.constants`** — los 130 códigos de permiso de dominio, agrupados por microservicio, más `PERMISSIONS_BY_DOMAIN`, `ALL_PERMISSION_CODES` y el tipo `PermissionCode`.\n- `security.constants` — constantes de roles del sistema.\n\n## Uso básico\n\nRegistrar el guard de forma global en un microservicio (NestJS):\n\n```typescript\nimport { AuthorizationGuard } from 'permissions-contractx';\nimport { APP_GUARD } from '@nestjs/core';\n\n@Module({\n  providers: [\n    { provide: APP_GUARD, useClass: AuthorizationGuard },\n  ],\n})\nexport class AppModule {}\n```\n\nProteger un endpoint exigiendo un permiso:\n\n```typescript\nimport { RequirePermissions } from 'permissions-contractx';\n\n@Controller('contracts')\nexport class ContractsController {\n  @Post()\n  @RequirePermissions('contracts.create')\n  create() { /* ... */ }\n}\n```\n\nOverride del eje lectura/escritura cuando la convención HTTP no aplica:\n\n```typescript\nimport { PermissionWrites } from 'permissions-contractx';\n\n// Un POST que en realidad solo consulta:\n@Post('search')\n@RequirePermissions('contracts.view_list')\n@PermissionWrites(false)\nsearch() { /* ... */ }\n```\n\n## Inter-Service Authentication (HMAC)\n\nAdemás del modelo de autorización basado en JWT de usuario, el paquete incluye el sistema de autenticación **machine-to-machine (M2M)** que usan los microservicios de ContractX para llamarse entre sí de forma segura.\n\nCada llamada saliente lleva headers `X-Service-*` con una firma HMAC-SHA256 del par `apiKey + secretKey` del servicio emisor. El receptor verifica la firma, el timestamp (ventana de expiración + drift de reloj) y el nonce (anti-replay). Ningún JWT de usuario interviene en estas llamadas.\n\nPara detalles de implementación, arquitectura y deuda conocida, ver [`src/inter-service-auth/README.md`](./src/inter-service-auth/README.md).\n\n### Configurar el módulo\n\n```typescript\nimport { InterServiceAuthModule, SERVICE_NAMES } from 'permissions-contractx';\nimport { ConfigModule, ConfigService } from '@nestjs/config';\n\n@Module({\n  imports: [\n    InterServiceAuthModule.forRootAsync({\n      imports: [ConfigModule],\n      useFactory: (cfg: ConfigService) => ({\n        services: {\n          [SERVICE_NAMES.AUTH]: {\n            serviceId: SERVICE_NAMES.AUTH,\n            apiKey:    cfg.get('AUTH_API_KEY'),\n            secretKey: cfg.get('AUTH_SECRET_KEY'),\n          },\n          [SERVICE_NAMES.CONTRACTS]: {\n            serviceId: SERVICE_NAMES.CONTRACTS,\n            apiKey:    cfg.get('CONTRACTS_API_KEY'),\n            secretKey: cfg.get('CONTRACTS_SECRET_KEY'),\n          },\n        },\n        signatureExpireMinutes:  5,\n        allowedTimeDriftSeconds: 30,\n        enableLogging: cfg.get('SERVICE_AUTH_LOGGING') === 'true',\n      }),\n      inject: [ConfigService],\n    }),\n  ],\n})\nexport class AppModule {}\n```\n\nEl middleware (`InterServiceAuthMiddleware`) debe registrarse en el módulo consumidor:\n\n```typescript\nimport { InterServiceAuthMiddleware } from 'permissions-contractx';\n\nexport class AppModule implements NestModule {\n  configure(consumer: MiddlewareConsumer) {\n    consumer.apply(InterServiceAuthMiddleware).forRoutes('*');\n  }\n}\n```\n\n### Proteger un endpoint (solo M2M)\n\n```typescript\nimport {\n  ServiceAuthGuard,\n  RequireServiceAuth,\n  RequireServicePermissions,\n} from 'permissions-contractx';\n\n@Controller('internal')\n@RequireServiceAuth()           // rechaza cualquier request no-M2M\n@UseGuards(ServiceAuthGuard)\nexport class InternalController {\n  @Get('contracts')\n  @RequireServicePermissions('contracts.read')\n  listContracts() { /* ... */ }\n}\n```\n\n### Emitir una llamada M2M saliente\n\n```typescript\nconstructor(private readonly authSvc: InterServiceAuthService) {}\n\nasync fetchFromContracts(schema: string) {\n  const headers = this.authSvc.generateAuthHeaders(SERVICE_NAMES.CONTRACTS, schema);\n  return this.httpService.get('/internal/contracts', { headers }).toPromise();\n}\n```\n\n### Decoradores disponibles\n\n| Decorador | Propósito |\n|---|---|\n| `@RequireServiceAuth()` | Endpoint exclusivo M2M; rechaza JWT de usuario |\n| `@AllowServiceAuth(false)` | Bloquea M2M en un endpoint específico (gana sobre clase) |\n| `@RequireServicePermissions(...p)` | El servicio llamante debe tener todos los permisos listados |\n| `@RequireServiceRoles(...r)` | El servicio llamante debe tener al menos uno de los roles listados |\n\n## Modelo de cuatro estados (migración)\n\nEl `AuthorizationGuard` permite migrar cada endpoint de forma gradual mediante la variable de entorno de enforcement:\n\n1. **legacy / solo-roles** — sin gateo por permisos (estado de partida).\n2. **observación** — el gateo por permisos evalúa y registra discrepancias, pero solo el rol-gate bloquea.\n3. **estricto** — ambos gates bloquean.\n4. **solo-permisos** — endpoint graduado, gateado únicamente por permisos.\n\nEsto permite introducir el enforcement servicio por servicio sin romper el acceso existente. El principio rector es *fallar-seguro*: ante cualquier conflicto, gana lo más restrictivo.\n\n## Versionado\n\nSigue [SemVer](https://semver.org/). La serie `1.x` es aditiva sobre el modelo ADR-004; los cambios que retiren la API antigua de autorización se reservan para una mayor (`2.0.0`).\n\n## Licencia\n\nMIT\n","readmeFilename":"README.md"}