{"_id":"@generazioneai/authz","_rev":"38-053b0455b1ab88e81609c9572664c4fd","name":"@generazioneai/authz","dist-tags":{"latest":"0.3.8"},"versions":{"0.0.1":{"name":"@generazioneai/authz","version":"0.0.1","_id":"@generazioneai/authz@0.0.1","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js","authz-codegen":"dist/codegen/index.js"},"dist":{"shasum":"3c2003d5b53b59f97234bb3211db5d6620daea12","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.0.1.tgz","fileCount":105,"integrity":"sha512-lxLXs0q6/j4mYU4ehFxBx3qSp4U0ZheqTcrktjyHjEQ52eSGBu7BWfoggs4F5v5Q1nxX2pcljmLYFQ20giuurw==","signatures":[{"sig":"MEQCIHOiz+xUMbvG6qnM0wpBlYIrd15aGO1Al8H5YGRORYqxAiB29N6479gqxDxFSiMi1PoPlIABfs4STosudVIjShnWnQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":170730},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./internal":{"types":"./dist/internal/index.d.ts","default":"./dist/internal/index.js"}},"gitHead":"e7686ca8d8c700b0b923f418a373443f0ba54cee","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.11.0","description":"Runtime authz + autoquery for Skillera microservices","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","lz4-napi":"^2.7.0","lru-cache":"^10.4.0","@noble/hashes":"^1.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"internal":["dist/internal/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.5.0","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"@casl/prisma":"^1.5.0 || ^2.0.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@prisma/client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.0.1_1780068716263_0.24407508855167048","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@generazioneai/authz","version":"0.0.2","_id":"@generazioneai/authz@0.0.2","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js","authz-codegen":"dist/codegen/index.js"},"dist":{"shasum":"38a97d0625e1f42414ca6c1d23e52146b0c95390","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.0.2.tgz","fileCount":105,"integrity":"sha512-gFq7l9Z9BNZakUJJIYHSj6XbEbq8MZAz0JD7gcBSbJjNZ0tLdbwdmkCtBsOapV3bNz283QwbLpyntIAF5LeC3Q==","signatures":[{"sig":"MEQCIDaY5FUays0F8Mp7FOd/Oi2BPAGFHOueilH08CdP6VsLAiAW45kP6/RYKRV0/pAtD0dhkYhHNuoSuRyU3zRY6IZT9w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":170645},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./internal":{"types":"./dist/internal/index.d.ts","default":"./dist/internal/index.js"}},"gitHead":"e7686ca8d8c700b0b923f418a373443f0ba54cee","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.11.0","description":"Runtime authz + autoquery for Skillera microservices","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"internal":["dist/internal/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.5.0","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"@casl/prisma":"^1.5.0 || ^2.0.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@prisma/client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.0.2_1780068976611_0.10562691866354479","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@generazioneai/authz","version":"0.0.3","_id":"@generazioneai/authz@0.0.3","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js","authz-codegen":"dist/codegen/index.js"},"dist":{"shasum":"670bc8f660b9b5b6bf65e0993150493e7b8eba9e","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.0.3.tgz","fileCount":105,"integrity":"sha512-98N69kVbIL11SynfFZLPaMa1Dq1GJ+cWSrICaLuFYSde2SBhUP/SUqi5IriDQTpIuU2tH3pLwQDZ859Q2G99WQ==","signatures":[{"sig":"MEUCIQCgPPlyXigzPS5tCX1qEI6EoNW/3PqarsfWEBoBV8aXnAIgVW55LPi1VwuNOrgb2URcoxvjQgxjsxcz5qaCw1gdIs8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":170740},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./internal":{"types":"./dist/internal/index.d.ts","default":"./dist/internal/index.js"}},"gitHead":"2ceafac11d89048f19c1cf15484335a0f4e65537","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.11.0","description":"Runtime authz + autoquery for Skillera microservices","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"internal":["dist/internal/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.5.0","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"@casl/prisma":"^1.5.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@casl/prisma":{"optional":true},"@casl/ability":{"optional":true},"@prisma/client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.0.3_1780069277914_0.6048560309738096","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@generazioneai/authz","version":"0.0.4","_id":"@generazioneai/authz@0.0.4","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js","authz-codegen":"dist/codegen/index.js"},"dist":{"shasum":"2f364355c03ffc7a62bb589a9448decab6a2a50d","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.0.4.tgz","fileCount":161,"integrity":"sha512-V6QQkZ5pTlGzLSCvFGMM6hPpz1A8+u/sFrFsNrwkyG26GPmLJLP7kUXmDVWWA8Dr3sr1NVibbCp6djMrSKr+Zg==","signatures":[{"sig":"MEUCIGQ3+uJL9EZboCqDDHFviWzNQz8iIDGKV/QPQ/t6qIP5AiEAslzpwdVk9F5zhpJW9cRevB9Kn8gq+2E4qNhKlV5e3pI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":230274},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./enforce":{"types":"./dist/enforce/index.d.ts","default":"./dist/enforce/index.js"},"./internal":{"types":"./dist/internal/index.d.ts","default":"./dist/internal/index.js"},"./snapshot":{"types":"./dist/snapshot/index.d.ts","default":"./dist/snapshot/index.js"}},"gitHead":"e93478b78f655cb85282e50c7da36c5ea3425864","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.11.0","description":"Runtime authz + autoquery for Skillera microservices","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","lru-cache":"^10.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"enforce":["dist/enforce/index.d.ts"],"internal":["dist/internal/index.d.ts"],"snapshot":["dist/snapshot/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.6.2","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"@casl/prisma":"^1.5.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@casl/prisma":{"optional":true},"@casl/ability":{"optional":true},"@prisma/client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.0.4_1780085580195_0.5896883576890115","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@generazioneai/authz","version":"0.0.5","_id":"@generazioneai/authz@0.0.5","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js","authz-codegen":"dist/codegen/index.js"},"dist":{"shasum":"d0c338634b8ee2b2ce4692494ed2d6a0f99383b8","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.0.5.tgz","fileCount":161,"integrity":"sha512-EjjKXu1Q15TmL/hBCvrk+R4NbeJgF1gZvu5F8s+Rk5vZyFhqWkMpX2m6HolFYLbxzJ1vRwQGoHdImAz3+KFwRw==","signatures":[{"sig":"MEQCIBx0I52wd5QRKmvxntaptkNq0sXrlm05QkdDQneReqJTAiA81z5AC5VsJVAGO26le6k0C/AWUPOqk8rno3vfzmUe9A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":235295},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./enforce":{"types":"./dist/enforce/index.d.ts","default":"./dist/enforce/index.js"},"./internal":{"types":"./dist/internal/index.d.ts","default":"./dist/internal/index.js"},"./snapshot":{"types":"./dist/snapshot/index.d.ts","default":"./dist/snapshot/index.js"}},"gitHead":"e93478b78f655cb85282e50c7da36c5ea3425864","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.11.0","description":"Runtime authz + autoquery for Skillera microservices","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","lru-cache":"^10.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"enforce":["dist/enforce/index.d.ts"],"internal":["dist/internal/index.d.ts"],"snapshot":["dist/snapshot/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.6.2","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"@casl/prisma":"^1.5.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@casl/prisma":{"optional":true},"@casl/ability":{"optional":true},"@prisma/client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.0.5_1780100320721_0.4174345871737779","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@generazioneai/authz","version":"0.0.6","_id":"@generazioneai/authz@0.0.6","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js","authz-codegen":"dist/codegen/index.js"},"dist":{"shasum":"dac5ff37a3e3b722167bf82b4ae96a5fb68adfc8","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.0.6.tgz","fileCount":161,"integrity":"sha512-wk6iopiGHgPDRsUaXnIp3he4M7RzKJBBKoUZeic8jLldZaRJj29/H8NaO7rL94R+Dziq6BmlC2AnI2e7GIzpbA==","signatures":[{"sig":"MEUCIQCz/AWs9UJAJb58LotsrmW5i2H5oC5gHRfQuj41VOM5TgIgBKpp0Mc+eunLvHYkNgGlzprKtqspoYJBX2/4zeReQsE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":237718},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./enforce":{"types":"./dist/enforce/index.d.ts","default":"./dist/enforce/index.js"},"./internal":{"types":"./dist/internal/index.d.ts","default":"./dist/internal/index.js"},"./snapshot":{"types":"./dist/snapshot/index.d.ts","default":"./dist/snapshot/index.js"}},"gitHead":"e93478b78f655cb85282e50c7da36c5ea3425864","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.11.0","description":"Runtime authz + autoquery for Skillera microservices","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","lru-cache":"^10.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"enforce":["dist/enforce/index.d.ts"],"internal":["dist/internal/index.d.ts"],"snapshot":["dist/snapshot/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.6.2","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"@casl/prisma":"^1.5.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@casl/prisma":{"optional":true},"@casl/ability":{"optional":true},"@prisma/client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.0.6_1780100925511_0.14539953963461727","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@generazioneai/authz","version":"0.1.0","keywords":["authorization","authz","casl","prisma","nestjs","rbac","abac","multi-tenant","nats","microservices","permissions"],"license":"MIT","_id":"@generazioneai/authz@0.1.0","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js","authz-codegen":"dist/codegen/index.js"},"dist":{"shasum":"725886cc0478ec8d7c1816ff6e29d4fcecbbf2f1","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.1.0.tgz","fileCount":162,"integrity":"sha512-GlgrZMDVQJbvc1YjL+jFpMcmZ1xfdH8zXY8aALXh32dnUahS1NPkSJyCDTkHyJHgNwBEB+15VqOi8m1tdQmLbQ==","signatures":[{"sig":"MEUCIQDHksAxzV9k/pPLtPnmQAP651RnVv6O8DmqR02do4ONIAIgYxLEqRUTLMAF2vk//Gw+kaKVSjBdoCyGu/6fNR7q+e4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":242373},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./enforce":{"types":"./dist/enforce/index.d.ts","default":"./dist/enforce/index.js"},"./internal":{"types":"./dist/internal/index.d.ts","default":"./dist/internal/index.js"},"./snapshot":{"types":"./dist/snapshot/index.d.ts","default":"./dist/snapshot/index.js"}},"gitHead":"e93478b78f655cb85282e50c7da36c5ea3425864","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.11.0","description":"Agnostic runtime authorization for NestJS + Prisma: CASL scoping, signed inter-service JWTs, and snapshot-based permission propagation over NATS.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","lru-cache":"^10.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"enforce":["dist/enforce/index.d.ts"],"internal":["dist/internal/index.d.ts"],"snapshot":["dist/snapshot/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.6.2","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"@casl/prisma":"^1.5.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@casl/prisma":{"optional":true},"@casl/ability":{"optional":true},"@prisma/client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.1.0_1780132956386_0.5150269050452079","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@generazioneai/authz","version":"0.1.1","keywords":["authorization","authz","casl","prisma","nestjs","rbac","abac","multi-tenant","nats","microservices","permissions"],"license":"MIT","_id":"@generazioneai/authz@0.1.1","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js","authz-codegen":"dist/codegen/index.js"},"dist":{"shasum":"b50bbd2a0d63e6232ec011451890e722ceff2937","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.1.1.tgz","fileCount":166,"integrity":"sha512-5hBnncQm6l6iNHNbst7IwjWg1aABOAHEz+lszhC9h0on1DCjUCUyaAW0/ossISYcafAs4i4oSDspYiQlztHDHQ==","signatures":[{"sig":"MEQCIEC6sX6b4mgt2dw+1KbKjC+nygsBACshMeDqcQevV+wkAiBqNmVC/oM57jCDCGz0DnXedhbEEpBvAhKCVLHuFtYzUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":245381},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./enforce":{"types":"./dist/enforce/index.d.ts","default":"./dist/enforce/index.js"},"./internal":{"types":"./dist/internal/index.d.ts","default":"./dist/internal/index.js"},"./snapshot":{"types":"./dist/snapshot/index.d.ts","default":"./dist/snapshot/index.js"}},"gitHead":"e93478b78f655cb85282e50c7da36c5ea3425864","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.11.0","description":"Agnostic runtime authorization for NestJS + Prisma: CASL scoping, signed inter-service JWTs, and snapshot-based permission propagation over NATS.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","lru-cache":"^10.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"enforce":["dist/enforce/index.d.ts"],"internal":["dist/internal/index.d.ts"],"snapshot":["dist/snapshot/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.6.2","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"@casl/prisma":"^1.5.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@casl/prisma":{"optional":true},"@casl/ability":{"optional":true},"@prisma/client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.1.1_1780137137112_0.1945027529547152","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@generazioneai/authz","version":"0.2.0","keywords":["authorization","authz","casl","prisma","nestjs","rbac","abac","multi-tenant","nats","microservices","permissions"],"license":"MIT","_id":"@generazioneai/authz@0.2.0","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js","authz-codegen":"dist/codegen/index.js"},"dist":{"shasum":"b4257a52be9f5d9e9942a4fc69b70bd538fe8ff1","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.2.0.tgz","fileCount":166,"integrity":"sha512-npqBimO4/FN4Pdo37USVGaCAZ9x4KjI3fr+zbDIwf/Wa21ilsceectjkcXS8uv0248WGMM+7A+CbGz07PnT3bw==","signatures":[{"sig":"MEYCIQDG/IRvW16NkHV1IjOl68PTuwF3IwcJNJQ3Q7K+gHEpugIhAOMcspeCugGGTps7QLohA+mzu6mSDkq9H8TJu38HjLca","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":245219},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./enforce":{"types":"./dist/enforce/index.d.ts","default":"./dist/enforce/index.js"},"./snapshot":{"types":"./dist/snapshot/index.d.ts","default":"./dist/snapshot/index.js"}},"gitHead":"e93478b78f655cb85282e50c7da36c5ea3425864","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.11.0","description":"Agnostic runtime authorization for NestJS + Prisma: CASL scoping, signed inter-service JWTs, and snapshot-based permission propagation over NATS.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","lru-cache":"^10.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"enforce":["dist/enforce/index.d.ts"],"snapshot":["dist/snapshot/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.6.2","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"@casl/prisma":"^1.5.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@casl/prisma":{"optional":true},"@casl/ability":{"optional":true},"@prisma/client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.2.0_1780138330659_0.43850550469692173","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@generazioneai/authz","version":"0.2.1","keywords":["authorization","authz","casl","prisma","nestjs","rbac","abac","multi-tenant","nats","microservices","permissions"],"license":"MIT","_id":"@generazioneai/authz@0.2.1","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js","authz-codegen":"dist/codegen/index.js"},"dist":{"shasum":"b0f6e62144a29c706b8970d8ca048006097c6419","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.2.1.tgz","fileCount":166,"integrity":"sha512-IxXgX0kgnsdH6OEFiW7avXjE0oxnqLSKH/Hcbe7T//7vI1v1ndGBiR4PmuP0HRv/3tU9kM3Bevv2ry3I/lq/1Q==","signatures":[{"sig":"MEQCIA4MI2DVUUGbXslbOpFiVH76YtxmRWlvIxo6/s+ExAsOAiAFfp311u5GO3SuFZrwm55a8v8Xr50NnBPvcdnCmTQ49Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":257844},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./enforce":{"types":"./dist/enforce/index.d.ts","default":"./dist/enforce/index.js"},"./snapshot":{"types":"./dist/snapshot/index.d.ts","default":"./dist/snapshot/index.js"}},"gitHead":"e93478b78f655cb85282e50c7da36c5ea3425864","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.11.0","description":"Agnostic runtime authorization for NestJS + Prisma: CASL scoping, signed inter-service JWTs, and snapshot-based permission propagation over NATS.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","lru-cache":"^10.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"enforce":["dist/enforce/index.d.ts"],"snapshot":["dist/snapshot/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.6.2","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"@casl/prisma":"^1.5.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@casl/prisma":{"optional":true},"@casl/ability":{"optional":true},"@prisma/client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.2.1_1780139985921_0.4265526751885387","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@generazioneai/authz","version":"0.2.2","keywords":["authorization","authz","casl","prisma","nestjs","rbac","abac","multi-tenant","nats","microservices","permissions"],"license":"MIT","_id":"@generazioneai/authz@0.2.2","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js","authz-codegen":"dist/codegen/index.js"},"dist":{"shasum":"e6e34857dd708b4470889538f933e27356f2449e","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.2.2.tgz","fileCount":166,"integrity":"sha512-Du4/LFItPt7GnI7OiufQlr0ayovuEFEci7wxDfAxpIWs9Pmy8esGp8WQF4V1ZIEho0BHwBWLynmgXF54dTGy8A==","signatures":[{"sig":"MEYCIQCFaTgmTMzCZ3wBmAKuviGkMn18xs2ne/0Mr5JuDlfCBgIhANdAZwDKELNBkhuABIZirC0oLsZ0mqwMX/92rJ6yLv5h","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260178},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./enforce":{"types":"./dist/enforce/index.d.ts","default":"./dist/enforce/index.js"},"./snapshot":{"types":"./dist/snapshot/index.d.ts","default":"./dist/snapshot/index.js"}},"gitHead":"e93478b78f655cb85282e50c7da36c5ea3425864","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.11.0","description":"Agnostic runtime authorization for NestJS + Prisma: CASL scoping, signed inter-service JWTs, and snapshot-based permission propagation over NATS.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","lru-cache":"^10.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"enforce":["dist/enforce/index.d.ts"],"snapshot":["dist/snapshot/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.6.2","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"@casl/prisma":"^1.5.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@casl/prisma":{"optional":true},"@casl/ability":{"optional":true},"@prisma/client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.2.2_1780143896223_0.9408051744606518","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@generazioneai/authz","version":"0.2.3","keywords":["authorization","authz","casl","prisma","nestjs","rbac","abac","multi-tenant","nats","microservices","permissions"],"license":"MIT","_id":"@generazioneai/authz@0.2.3","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js","authz-codegen":"dist/codegen/index.js"},"dist":{"shasum":"47c7710bd82aa815b3ee1529cc5a64a752fc35a3","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.2.3.tgz","fileCount":166,"integrity":"sha512-HUKaYWIsGq5WmhyvMJIbL9gE0JN+Ybpzv6molKvbRLE0n6kM0gJmEZihR8Z6NLWkxptBHr6AOi8aYdE8i0daUA==","signatures":[{"sig":"MEQCIF13/rMOumx3haqT7MWK1seLZSIwawTRARMb5z8/np+AAiAVGhYW0suyF3l6OtFP32487wv4B/yexDneEXNWzedM5g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":266479},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./enforce":{"types":"./dist/enforce/index.d.ts","default":"./dist/enforce/index.js"},"./snapshot":{"types":"./dist/snapshot/index.d.ts","default":"./dist/snapshot/index.js"}},"gitHead":"e93478b78f655cb85282e50c7da36c5ea3425864","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.11.0","description":"Agnostic runtime authorization for NestJS + Prisma: CASL scoping, signed inter-service JWTs, and snapshot-based permission propagation over NATS.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","lru-cache":"^10.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"enforce":["dist/enforce/index.d.ts"],"snapshot":["dist/snapshot/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.6.2","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"@casl/prisma":"^1.5.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@casl/prisma":{"optional":true},"@casl/ability":{"optional":true},"@prisma/client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.2.3_1780145546070_0.43749767152995633","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@generazioneai/authz","version":"0.2.4","keywords":["authorization","authz","casl","prisma","nestjs","rbac","abac","multi-tenant","nats","microservices","permissions"],"license":"MIT","_id":"@generazioneai/authz@0.2.4","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js","authz-codegen":"dist/codegen/index.js"},"dist":{"shasum":"953b8e3c65d71bb93461f13741e48bb3a0ddee0b","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.2.4.tgz","fileCount":166,"integrity":"sha512-6itXN7/GRtfUV2jXIgUJbVIDHNPSQDWS4Oh1BhnskDDQig3UZxv9cyr0BS3nmbN9AHrnzKiRfZcD4K72lA3ssQ==","signatures":[{"sig":"MEQCIF6Vtn3ZyKrCegs7HkKAnGk1OXAMejLOT+JKDsbmBnnhAiAHXQQir6qa7LkYkhUsHEIuZp0y8VlbgcknBGv7s/6KUQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":272902},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./enforce":{"types":"./dist/enforce/index.d.ts","default":"./dist/enforce/index.js"},"./snapshot":{"types":"./dist/snapshot/index.d.ts","default":"./dist/snapshot/index.js"}},"gitHead":"e93478b78f655cb85282e50c7da36c5ea3425864","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.11.0","description":"Agnostic runtime authorization for NestJS + Prisma: CASL scoping, signed inter-service JWTs, and snapshot-based permission propagation over NATS.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","lru-cache":"^10.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"enforce":["dist/enforce/index.d.ts"],"snapshot":["dist/snapshot/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.6.2","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"@casl/prisma":"^1.5.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@casl/prisma":{"optional":true},"@casl/ability":{"optional":true},"@prisma/client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.2.4_1780146192222_0.5510646265709753","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@generazioneai/authz","version":"0.2.5","keywords":["authorization","authz","casl","prisma","nestjs","rbac","abac","multi-tenant","nats","microservices","permissions"],"license":"MIT","_id":"@generazioneai/authz@0.2.5","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js","authz-codegen":"dist/codegen/index.js"},"dist":{"shasum":"a63f897b30e87563eeb694d42d9c0fa47505137d","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.2.5.tgz","fileCount":166,"integrity":"sha512-sru8vH+Y+8xWjiDnr6lVFjDCKDkWd5yaE2R6bXRg6mTbK6M9ngJ3Kr7WaDqUucvAOC2xXaVcTkV5vQe3RVs9Gw==","signatures":[{"sig":"MEYCIQCZgp9NCuRqzLhd53wQEfoYuMcJquRmCCvf80N4wwTHwgIhAI71SQQ1RR/zE6JglkmQrYWEik7i4WP7ivPQ3Pg1U3Lf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":275375},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./enforce":{"types":"./dist/enforce/index.d.ts","default":"./dist/enforce/index.js"},"./snapshot":{"types":"./dist/snapshot/index.d.ts","default":"./dist/snapshot/index.js"}},"gitHead":"d97ee333370beec52ef3faccb273be777dbc7538","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.11.0","description":"Agnostic runtime authorization for NestJS + Prisma: CASL scoping, signed inter-service JWTs, and snapshot-based permission propagation over NATS.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","lru-cache":"^10.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"enforce":["dist/enforce/index.d.ts"],"snapshot":["dist/snapshot/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.6.2","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"@casl/prisma":"^1.5.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@casl/prisma":{"optional":true},"@casl/ability":{"optional":true},"@prisma/client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.2.5_1780148726011_0.4877076673597227","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@generazioneai/authz","version":"0.2.6","keywords":["authorization","authz","casl","prisma","nestjs","rbac","abac","multi-tenant","nats","microservices","permissions"],"license":"MIT","_id":"@generazioneai/authz@0.2.6","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js","authz-codegen":"dist/codegen/index.js"},"dist":{"shasum":"b6d408fd7ccdaaa28a2621795669f0e0beaf5a21","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.2.6.tgz","fileCount":166,"integrity":"sha512-AjulZGj5IL/G6nWmHVgqo4Lm/xIWHPwaoa6OfqQHoYBHwjFviDRmEEDFIvbbhEjmvLYpBItnfoB0Lf6ZcVDuYw==","signatures":[{"sig":"MEYCIQCzhDIsMb+KfhFEfXl76P+uh0VL4/DT6Gm3Ilo1i3qDrwIhAPjRh3ISEpqioUBATSA+T4NyrMyfiD++BiBidyKg6mb8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":276084},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./enforce":{"types":"./dist/enforce/index.d.ts","default":"./dist/enforce/index.js"},"./snapshot":{"types":"./dist/snapshot/index.d.ts","default":"./dist/snapshot/index.js"}},"gitHead":"e3ea2a0e1e023db553359c04fd3eb6b7c626c8c6","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.11.0","description":"Agnostic runtime authorization for NestJS + Prisma: CASL scoping, signed inter-service JWTs, and snapshot-based permission propagation over NATS.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","lru-cache":"^10.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"enforce":["dist/enforce/index.d.ts"],"snapshot":["dist/snapshot/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.6.2","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"@casl/prisma":"^1.5.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@casl/prisma":{"optional":true},"@casl/ability":{"optional":true},"@prisma/client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.2.6_1780166305644_0.08556955006944444","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"@generazioneai/authz","version":"0.2.8","keywords":["authorization","authz","casl","prisma","nestjs","rbac","abac","multi-tenant","nats","microservices","permissions"],"license":"MIT","_id":"@generazioneai/authz@0.2.8","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js","authz-codegen":"dist/codegen/index.js"},"dist":{"shasum":"9c82cb0e818c9b6a852e647ad4ee8a63876288d9","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.2.8.tgz","fileCount":166,"integrity":"sha512-rgLNkb3U47HVxuawIA3wMSnCfD48xh+Tjz3CdMIrF0vTdIghNABdRPVCOygjI9bpzLsS0dIu2EhIEryzx7KKfw==","signatures":[{"sig":"MEUCIQD7Eas/AoIGqkAvjG0CsKy2R1rKFOs1TnH+AnVicIuzQgIgHfyLo0MkVr4zhht9se/Wsp77485IXoH/qYFA2PWs8No=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":280510},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./enforce":{"types":"./dist/enforce/index.d.ts","default":"./dist/enforce/index.js"},"./snapshot":{"types":"./dist/snapshot/index.d.ts","default":"./dist/snapshot/index.js"}},"gitHead":"58e2a1629c4d77d511d753b51966309035e31a1a","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.11.0","description":"Agnostic runtime authorization for NestJS + Prisma: CASL scoping, signed inter-service JWTs, and snapshot-based permission propagation over NATS.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","lru-cache":"^10.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"enforce":["dist/enforce/index.d.ts"],"snapshot":["dist/snapshot/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.6.2","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"@casl/prisma":"^1.5.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@casl/prisma":{"optional":true},"@casl/ability":{"optional":true},"@prisma/client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.2.8_1780301863023_0.9701021381539254","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"@generazioneai/authz","version":"0.2.9","keywords":["authorization","authz","casl","prisma","nestjs","rbac","abac","multi-tenant","nats","microservices","permissions"],"license":"MIT","_id":"@generazioneai/authz@0.2.9","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js","authz-codegen":"dist/codegen/index.js"},"dist":{"shasum":"8cfa243489db85412d109fbce6f143bab9692086","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.2.9.tgz","fileCount":166,"integrity":"sha512-FJn/QM+HuOdUHqZv0bIo7Oi9aspCqUgQrfG89PNkU4nWIphzLjwNkwfFC2W+bSlKQOnXuXeLIHtA/95ciL5O0A==","signatures":[{"sig":"MEUCIQDLYPuYzXI1TfAq/Ls9ZVV7/z0MkwLtZeBDpwHVnrdJmQIgJMqdMm1SDlwQ41kKI46MS2vmD565/5Jq+dzHMqeb0Eo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":282258},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./enforce":{"types":"./dist/enforce/index.d.ts","default":"./dist/enforce/index.js"},"./snapshot":{"types":"./dist/snapshot/index.d.ts","default":"./dist/snapshot/index.js"}},"gitHead":"08095cacf0033b5152841864941168b99f8dc0b0","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.11.0","description":"Agnostic runtime authorization for NestJS + Prisma: CASL scoping, signed inter-service JWTs, and snapshot-based permission propagation over NATS.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","lru-cache":"^10.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"enforce":["dist/enforce/index.d.ts"],"snapshot":["dist/snapshot/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.6.2","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"@casl/prisma":"^1.5.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@casl/prisma":{"optional":true},"@casl/ability":{"optional":true},"@prisma/client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.2.9_1780302867596_0.649653012641626","host":"s3://npm-registry-packages-npm-production"}},"0.2.10":{"name":"@generazioneai/authz","version":"0.2.10","keywords":["authorization","authz","casl","prisma","nestjs","rbac","abac","multi-tenant","nats","microservices","permissions"],"license":"MIT","_id":"@generazioneai/authz@0.2.10","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js","authz-codegen":"dist/codegen/index.js"},"dist":{"shasum":"879d2a68897d97ff2a413d5694ee67edbacc01b7","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.2.10.tgz","fileCount":170,"integrity":"sha512-7v5TeaGsW1vMpwfhPEBE08qEIIvcICEx6rhqgZXPX4qZG5QaLv+5XvwbWhjSuloVT1TtbN0KZgTXgfDHZyiang==","signatures":[{"sig":"MEYCIQDVu0XZZMZj0363WAmA9ayzl+OibPjNkIFHkF97gFMTwwIhAILfcPFPjCLShkDfRh2tH/gJdkLfvNTiNjL/xV1mUAUb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":289900},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","default":"./dist/codegen/index.js"},"./enforce":{"types":"./dist/enforce/index.d.ts","default":"./dist/enforce/index.js"},"./snapshot":{"types":"./dist/snapshot/index.d.ts","default":"./dist/snapshot/index.js"}},"gitHead":"2e6526ca45d5e092f082fe036351583b63d819ef","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.11.0","description":"Agnostic runtime authorization for NestJS + Prisma: CASL scoping, signed inter-service JWTs, and snapshot-based permission propagation over NATS.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","lru-cache":"^10.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"enforce":["dist/enforce/index.d.ts"],"snapshot":["dist/snapshot/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.6.2","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"@casl/prisma":"^1.5.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@prisma/internals":">=6","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@casl/prisma":{"optional":true},"@casl/ability":{"optional":true},"@prisma/client":{"optional":true},"@prisma/internals":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.2.10_1780303440580_0.40157121205555235","host":"s3://npm-registry-packages-npm-production"}},"0.2.11":{"name":"@generazioneai/authz","version":"0.2.11","keywords":["authorization","authz","casl","prisma","nestjs","rbac","abac","multi-tenant","nats","microservices","permissions"],"license":"MIT","_id":"@generazioneai/authz@0.2.11","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js"},"dist":{"shasum":"aae39881877b2f8c39a7bf9e4fab89fbbed36609","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.2.11.tgz","fileCount":170,"integrity":"sha512-wLADOHNkZFACE8V3RZ7KOuUEryo1Ucv5FCDfY1b3IPTpo8C5EPTZ3Jtpq9aJLtsoogm2yHg1HXs75yAddpCUjA==","signatures":[{"sig":"MEYCIQCYUfoTWWFgTN3xvS3NHqpIKNAjP0DnmtNWtdNpc43ZAwIhAODzZNUKOQ6eWUSVTaqEmvqNbl+syF64u9fLjEG8GsDV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":284151},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","default":"./dist/codegen/index.js"},"./enforce":{"types":"./dist/enforce/index.d.ts","default":"./dist/enforce/index.js"},"./snapshot":{"types":"./dist/snapshot/index.d.ts","default":"./dist/snapshot/index.js"}},"gitHead":"78776a88e88f1aa5dd1f332cfc992986eee3223a","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.11.0","description":"Agnostic runtime authorization for NestJS + Prisma: CASL scoping, signed inter-service JWTs, and snapshot-based permission propagation over NATS.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","lru-cache":"^10.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"enforce":["dist/enforce/index.d.ts"],"snapshot":["dist/snapshot/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.6.2","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"@casl/prisma":"^1.5.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@prisma/internals":">=6","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@casl/prisma":{"optional":true},"@casl/ability":{"optional":true},"@prisma/client":{"optional":true},"@prisma/internals":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.2.11_1780304677506_0.4082592058005774","host":"s3://npm-registry-packages-npm-production"}},"0.2.12":{"name":"@generazioneai/authz","version":"0.2.12","keywords":["authorization","authz","casl","prisma","nestjs","rbac","abac","multi-tenant","nats","microservices","permissions"],"license":"MIT","_id":"@generazioneai/authz@0.2.12","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js"},"dist":{"shasum":"de0db3cb0f885ba209f92627ba3cb3b6585c2b72","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.2.12.tgz","fileCount":166,"integrity":"sha512-IZ6dIQDHDtKsyjr8k6q1KMyTkWta7o8vX4OEoZz15vr9ygOc8dV014sybOoY6m5PBIqnsh/WqsKei3TrjNotYQ==","signatures":[{"sig":"MEUCICqT5e8TLf6IK83Ihgowh7VItRY484IWdthWM64J+f/RAiEA0dpzzc3cSX2Y8Hx9OFPDqDm8hLx5J0/0hgGeoipNVlg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":279430},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","default":"./dist/codegen/index.js"},"./enforce":{"types":"./dist/enforce/index.d.ts","default":"./dist/enforce/index.js"},"./snapshot":{"types":"./dist/snapshot/index.d.ts","default":"./dist/snapshot/index.js"}},"gitHead":"78776a88e88f1aa5dd1f332cfc992986eee3223a","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.11.0","description":"Agnostic runtime authorization for NestJS + Prisma: CASL scoping, signed inter-service JWTs, and snapshot-based permission propagation over NATS.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","lru-cache":"^10.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"enforce":["dist/enforce/index.d.ts"],"snapshot":["dist/snapshot/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.6.2","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"@casl/prisma":"^1.5.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@prisma/internals":">=6","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@casl/prisma":{"optional":true},"@casl/ability":{"optional":true},"@prisma/client":{"optional":true},"@prisma/internals":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.2.12_1780307641279_0.5186078292491572","host":"s3://npm-registry-packages-npm-production"}},"0.2.13":{"name":"@generazioneai/authz","version":"0.2.13","keywords":["authorization","authz","casl","prisma","nestjs","rbac","abac","multi-tenant","nats","microservices","permissions"],"license":"MIT","_id":"@generazioneai/authz@0.2.13","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js"},"dist":{"shasum":"b08460da1170046c4b912dc298f06bcc639c8bfc","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.2.13.tgz","fileCount":166,"integrity":"sha512-A1lgG+dfzlUVxGKsdpZ5HcaLeSYdnrqcDx3SGeeuyfE1PJHcl+e9li7k1i/wG5epCOot2qht3VYu6glLZr3wNA==","signatures":[{"sig":"MEUCIGT4bwx5GyXqes9fRaqwj2AVCRbiWrzGEUhMJVKc+aksAiEAlqE5i4Ls0kDCNycxOwxt4MGB+H7num9rJyMFQSumu0A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":285718},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","default":"./dist/codegen/index.js"},"./enforce":{"types":"./dist/enforce/index.d.ts","default":"./dist/enforce/index.js"},"./snapshot":{"types":"./dist/snapshot/index.d.ts","default":"./dist/snapshot/index.js"}},"gitHead":"d092a5862b0d4ec664e55106009b272342b6ae1c","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"generazioneai-development","email":"development@generazioneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.11.0","description":"Agnostic runtime authorization for NestJS + Prisma: CASL scoping, signed inter-service JWTs, and snapshot-based permission propagation over NATS.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","lru-cache":"^10.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"enforce":["dist/enforce/index.d.ts"],"snapshot":["dist/snapshot/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.6.2","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"@casl/prisma":"^1.5.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@prisma/internals":">=6","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@casl/prisma":{"optional":true},"@casl/ability":{"optional":true},"@prisma/client":{"optional":true},"@prisma/internals":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.2.13_1780573193056_0.37009449267162964","host":"s3://npm-registry-packages-npm-production"}},"0.2.14":{"name":"@generazioneai/authz","version":"0.2.14","keywords":["authorization","authz","casl","prisma","nestjs","rbac","abac","multi-tenant","nats","microservices","permissions"],"license":"MIT","_id":"@generazioneai/authz@0.2.14","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js"},"dist":{"shasum":"9c9b42a7e5470e2ccb157410ed266e16a1384486","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.2.14.tgz","fileCount":166,"integrity":"sha512-tLPY1W3gk4HQjAi6q6i8Kc4fyC1ZS5Arky2tged7J5De5MJxan1ujMf4bgwGHv9ITq4pIqC1QWF5vZkOva8F2g==","signatures":[{"sig":"MEUCIQDx9wqjfgRchfy7fCi2MVKmF4gwOHWe6qqAOn6+kCcBNQIgFZ/Qjpl+L7l03rbVb9NxqwtNJxEm5yhKRXmIwB8o860=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":288319},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","default":"./dist/codegen/index.js"},"./enforce":{"types":"./dist/enforce/index.d.ts","default":"./dist/enforce/index.js"},"./snapshot":{"types":"./dist/snapshot/index.d.ts","default":"./dist/snapshot/index.js"}},"gitHead":"d092a5862b0d4ec664e55106009b272342b6ae1c","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"generazioneai-development","email":"development@generazioneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.11.0","description":"Agnostic runtime authorization for NestJS + Prisma: CASL scoping, signed inter-service JWTs, and snapshot-based permission propagation over NATS.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","lru-cache":"^10.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"enforce":["dist/enforce/index.d.ts"],"snapshot":["dist/snapshot/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.6.2","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"@casl/prisma":"^1.5.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@prisma/internals":">=6","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@casl/prisma":{"optional":true},"@casl/ability":{"optional":true},"@prisma/client":{"optional":true},"@prisma/internals":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.2.14_1781095914836_0.6480992864142505","host":"s3://npm-registry-packages-npm-production"}},"0.2.15":{"name":"@generazioneai/authz","version":"0.2.15","keywords":["authorization","authz","casl","prisma","nestjs","rbac","abac","multi-tenant","nats","microservices","permissions"],"license":"MIT","_id":"@generazioneai/authz@0.2.15","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js"},"dist":{"shasum":"744065b324f849bafbd92f79af41d3b1e9b739eb","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.2.15.tgz","fileCount":166,"integrity":"sha512-2678e+Rd/q+eJBLkRTHRlx3w9X2EiL/KOEuzrQ2+1llyxtovASKSdBFINV4HeyeGIhG7+LaoNFFh9kFtZlO2sg==","signatures":[{"sig":"MEYCIQDfIUGAvCsPSZTQH+0NhHqBaj524yORIeEsxf+xoZObsAIhAJ36rOIqE0Z1XOS4h+VkM22d1QlB/HvQCMSaOVBaBN0s","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":291727},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","default":"./dist/codegen/index.js"},"./enforce":{"types":"./dist/enforce/index.d.ts","default":"./dist/enforce/index.js"},"./snapshot":{"types":"./dist/snapshot/index.d.ts","default":"./dist/snapshot/index.js"}},"gitHead":"12c442f9f13d7cf13f85bd3bd91e3a47a58705d9","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"generazioneai-development","email":"development@generazioneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.11.0","description":"Agnostic runtime authorization for NestJS + Prisma: CASL scoping, signed inter-service JWTs, and snapshot-based permission propagation over NATS.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","lru-cache":"^10.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"enforce":["dist/enforce/index.d.ts"],"snapshot":["dist/snapshot/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.6.2","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"@casl/prisma":"^1.5.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@prisma/internals":">=6","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@casl/prisma":{"optional":true},"@casl/ability":{"optional":true},"@prisma/client":{"optional":true},"@prisma/internals":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.2.15_1781103746880_0.40537449227406697","host":"s3://npm-registry-packages-npm-production"}},"0.2.16":{"name":"@generazioneai/authz","version":"0.2.16","keywords":["authorization","authz","casl","prisma","nestjs","rbac","abac","multi-tenant","nats","microservices","permissions"],"license":"MIT","_id":"@generazioneai/authz@0.2.16","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js"},"dist":{"shasum":"2429d0cbadc293e064c662b09684e37d9a697476","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.2.16.tgz","fileCount":166,"integrity":"sha512-p0He4/7RkrK1NUcJcbrZgfG2R4MXhx3xE1RUbLeoam89e+FB9LQY4Iapjb/3L85w4k91S3c1NawpxRkaxKZ4qQ==","signatures":[{"sig":"MEUCIB4ZEOiR/0OC2U7LHpCxoMPbfAAzw/ppYVA5yTCPIFk0AiEAlRncrFF53yAU6FH8AGj5LimR9V8hc7gL+PRgemhW1j0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":292485},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","default":"./dist/codegen/index.js"},"./enforce":{"types":"./dist/enforce/index.d.ts","default":"./dist/enforce/index.js"},"./snapshot":{"types":"./dist/snapshot/index.d.ts","default":"./dist/snapshot/index.js"}},"gitHead":"12c442f9f13d7cf13f85bd3bd91e3a47a58705d9","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"generazioneai-development","email":"development@generazioneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.11.0","description":"Agnostic runtime authorization for NestJS + Prisma: CASL scoping, signed inter-service JWTs, and snapshot-based permission propagation over NATS.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","lru-cache":"^10.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"enforce":["dist/enforce/index.d.ts"],"snapshot":["dist/snapshot/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.6.2","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"@casl/prisma":"^1.5.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@prisma/internals":">=6","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@casl/prisma":{"optional":true},"@casl/ability":{"optional":true},"@prisma/client":{"optional":true},"@prisma/internals":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.2.16_1781129166625_0.29105937510641655","host":"s3://npm-registry-packages-npm-production"}},"0.2.17":{"name":"@generazioneai/authz","version":"0.2.17","keywords":["authorization","authz","casl","prisma","nestjs","rbac","abac","multi-tenant","nats","microservices","permissions"],"license":"MIT","_id":"@generazioneai/authz@0.2.17","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js"},"dist":{"shasum":"34bcc131c65b3885d1799b1237e25782ccd01889","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.2.17.tgz","fileCount":166,"integrity":"sha512-LSwPEXyWXWMuC7SN1ccwDQ30R4QvBBTqqbsiwD8L2UZa3pU/p9+L6O8IvGjIqqQqYx/HA1WEGZDJJkoueBLEIg==","signatures":[{"sig":"MEUCIEwNZ165UISqtHI8F9hMEEcjUq9gOF/+BdUV4u37l70RAiEAyiWnPRg+vmUJSaGsfYhFPt3GU/bqpQuZvm7RF0uGpX4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":295126},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","default":"./dist/codegen/index.js"},"./enforce":{"types":"./dist/enforce/index.d.ts","default":"./dist/enforce/index.js"},"./snapshot":{"types":"./dist/snapshot/index.d.ts","default":"./dist/snapshot/index.js"}},"gitHead":"6873976a2decda36a63f19c8dc180f1a166a35af","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"generazioneai-development","email":"development@generazioneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.11.0","description":"Agnostic runtime authorization for NestJS + Prisma: CASL scoping, signed inter-service JWTs, and snapshot-based permission propagation over NATS.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","lru-cache":"^10.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"enforce":["dist/enforce/index.d.ts"],"snapshot":["dist/snapshot/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.6.2","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"@casl/prisma":"^1.5.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@prisma/internals":">=6","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@casl/prisma":{"optional":true},"@casl/ability":{"optional":true},"@prisma/client":{"optional":true},"@prisma/internals":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.2.17_1781167867597_0.5868358056456116","host":"s3://npm-registry-packages-npm-production"}},"0.2.18":{"name":"@generazioneai/authz","version":"0.2.18","keywords":["authorization","authz","casl","prisma","nestjs","rbac","abac","multi-tenant","nats","microservices","permissions"],"license":"MIT","_id":"@generazioneai/authz@0.2.18","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js"},"dist":{"shasum":"5026b7b93f4d603537dbd83f4f80d0c383dc8bed","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.2.18.tgz","fileCount":178,"integrity":"sha512-BBddfo5hOdprUSMYrg1ePWgxoaUoDsnhEZis2bkMPDnEyEHCTEqDGyP/W/7fxkB0vD96Pw/HvuMi44bsOypIvA==","signatures":[{"sig":"MEQCIAvphc1qOR4K9gmsb5mJK5+f9MhVJpAX8VBHKjNyhRbOAiAh2sFCAFclIQztPDh+XMin5WOUohuGS+iLCNOqNHmL5Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":315489},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","default":"./dist/codegen/index.js"},"./enforce":{"types":"./dist/enforce/index.d.ts","default":"./dist/enforce/index.js"},"./snapshot":{"types":"./dist/snapshot/index.d.ts","default":"./dist/snapshot/index.js"}},"gitHead":"40ddf12e92b776e5e05866a6faacd81b0802cac6","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"generazioneai-development","email":"development@generazioneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.11.0","description":"Agnostic runtime authorization for NestJS + Prisma: CASL scoping, signed inter-service JWTs, and snapshot-based permission propagation over NATS.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","lru-cache":"^10.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"enforce":["dist/enforce/index.d.ts"],"snapshot":["dist/snapshot/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.6.2","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"@casl/prisma":"^1.5.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@prisma/internals":">=6","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@casl/prisma":{"optional":true},"@casl/ability":{"optional":true},"@prisma/client":{"optional":true},"@prisma/internals":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.2.18_1781203856611_0.182117799597596","host":"s3://npm-registry-packages-npm-production"}},"0.2.19":{"name":"@generazioneai/authz","version":"0.2.19","keywords":["authorization","authz","casl","prisma","nestjs","rbac","abac","multi-tenant","nats","microservices","permissions"],"license":"MIT","_id":"@generazioneai/authz@0.2.19","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js"},"dist":{"shasum":"5bfc828110b127ecfc6e5e1d672713af5be67c6f","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.2.19.tgz","fileCount":182,"integrity":"sha512-wAE2KjItoerjzHWfxlYZ9klDNYygNpn1tZLaxq6+fMwWqndJiYM72miizhXNM5xYTLNpIqsQAcovCNo516fisg==","signatures":[{"sig":"MEQCIChPZibvdbN6qfKV4ZpnHW5rElKQ5HgSKhUbnesVctz4AiBCH7DT3NkRhkdtH1/U4s2WibHl3W2n2zZU4oLTWdBxQQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":324140},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","default":"./dist/codegen/index.js"},"./enforce":{"types":"./dist/enforce/index.d.ts","default":"./dist/enforce/index.js"},"./snapshot":{"types":"./dist/snapshot/index.d.ts","default":"./dist/snapshot/index.js"}},"gitHead":"9a5365190a45ed09367e1e1bbc9d61553a88c0ab","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"generazioneai-development","email":"development@generazioneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.11.0","description":"Agnostic runtime authorization for NestJS + Prisma: CASL scoping, signed inter-service JWTs, and snapshot-based permission propagation over NATS.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","lru-cache":"^10.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"enforce":["dist/enforce/index.d.ts"],"snapshot":["dist/snapshot/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.6.2","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"@casl/prisma":"^1.5.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@prisma/internals":">=6","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@casl/prisma":{"optional":true},"@casl/ability":{"optional":true},"@prisma/client":{"optional":true},"@prisma/internals":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.2.19_1781204606738_0.7824658033803291","host":"s3://npm-registry-packages-npm-production"}},"0.2.20":{"name":"@generazioneai/authz","version":"0.2.20","keywords":["authorization","authz","casl","prisma","nestjs","rbac","abac","multi-tenant","nats","microservices","permissions"],"license":"MIT","_id":"@generazioneai/authz@0.2.20","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js"},"dist":{"shasum":"044e2c3964af12b5ecc69d0fba9aebbb9c409517","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.2.20.tgz","fileCount":186,"integrity":"sha512-8tqhdBEQW/SdSC1Fk1VNN8bV+CHBJRBQKAIaZqGHgv5Lpr0cmYkpyqI/U0wSirgT5farqDixfczRzUN7gjYbAg==","signatures":[{"sig":"MEUCICftqRKz07q0SGhWWT5OHzZ5wHGLgL1HoSSVaVSwa+8QAiEAxMt4XStePXljAvRIM3Wi5XiD3CEkLnmNHcl3e4ouqus=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":329543},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","default":"./dist/codegen/index.js"},"./enforce":{"types":"./dist/enforce/index.d.ts","default":"./dist/enforce/index.js"},"./snapshot":{"types":"./dist/snapshot/index.d.ts","default":"./dist/snapshot/index.js"}},"gitHead":"cbffc7532f02911cfa8bc16c63af652af3c7a859","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"generazioneai-development","email":"development@generazioneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.11.0","description":"Agnostic runtime authorization for NestJS + Prisma: CASL scoping, signed inter-service JWTs, and snapshot-based permission propagation over NATS.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","lru-cache":"^10.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"enforce":["dist/enforce/index.d.ts"],"snapshot":["dist/snapshot/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.6.2","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"@casl/prisma":"^1.5.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@prisma/internals":">=6","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@casl/prisma":{"optional":true},"@casl/ability":{"optional":true},"@prisma/client":{"optional":true},"@prisma/internals":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.2.20_1781205533725_0.2851118729575879","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@generazioneai/authz","version":"0.3.0","keywords":["authorization","authz","casl","prisma","nestjs","rbac","abac","multi-tenant","nats","microservices","permissions"],"license":"MIT","_id":"@generazioneai/authz@0.3.0","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js"},"dist":{"shasum":"041e678dc310cb01e481b392854fc2624c7103d0","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.3.0.tgz","fileCount":186,"integrity":"sha512-SKoEfvtirzV8Xap3u0fJfF+EBmZjSjQZcQTj1LIVt+adsexIPPexl8wI9Fes8GPOx5oqHYpfEgwKSvjVouBE0w==","signatures":[{"sig":"MEUCIAcRQu6otVkLckGNK0qEN18fI18bG2izqlLOR5shUA4XAiEA87eRYRB1tVYySTXXkJY8npLG02tIPFJgzST7ffRdZac=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":329344},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","default":"./dist/codegen/index.js"},"./enforce":{"types":"./dist/enforce/index.d.ts","default":"./dist/enforce/index.js"},"./snapshot":{"types":"./dist/snapshot/index.d.ts","default":"./dist/snapshot/index.js"}},"gitHead":"d808d635e73b94499cb7a9e7d695374e964c548c","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"generazioneai-development","email":"development@generazioneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.11.0","description":"Agnostic runtime authorization for NestJS + Prisma: CASL scoping, signed inter-service JWTs, and snapshot-based permission propagation over NATS.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","lru-cache":"^10.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"enforce":["dist/enforce/index.d.ts"],"snapshot":["dist/snapshot/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.6.2","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"@casl/prisma":"^1.5.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@prisma/internals":">=6","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@casl/prisma":{"optional":true},"@casl/ability":{"optional":true},"@prisma/client":{"optional":true},"@prisma/internals":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.3.0_1781210657340_0.6709047356852238","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@generazioneai/authz","version":"0.3.1","keywords":["authorization","authz","casl","prisma","nestjs","rbac","abac","multi-tenant","nats","microservices","permissions"],"license":"MIT","_id":"@generazioneai/authz@0.3.1","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js"},"dist":{"shasum":"86f21a87b1fb589d46f37ee28804703acd6e6cac","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.3.1.tgz","fileCount":182,"integrity":"sha512-2YGiIQxWcZJLDtD3mZJGfhDp68tDVNsDeehpBJtsrUmD8d5iyFYWke+kWagqzvJTJkfAWOFFzhIz0ugEp+2oDw==","signatures":[{"sig":"MEUCIF8vvaCEuHIbEVm2o7MyOkM14iogXAFogF/McpqGsLNoAiEAle3RqfViLpgn9ZfC8bMGF7iLn5HcPJsHomybXM2+sVU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":323317},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","default":"./dist/codegen/index.js"},"./enforce":{"types":"./dist/enforce/index.d.ts","default":"./dist/enforce/index.js"},"./snapshot":{"types":"./dist/snapshot/index.d.ts","default":"./dist/snapshot/index.js"}},"gitHead":"640a2fa934966c14701586d155f90078664d751c","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"npm run clean && tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"generazioneai-development","email":"development@generazioneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.11.0","description":"Agnostic runtime authorization for NestJS + Prisma: CASL scoping, signed inter-service JWTs, and snapshot-based permission propagation over NATS.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","lru-cache":"^10.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"enforce":["dist/enforce/index.d.ts"],"snapshot":["dist/snapshot/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.6.2","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"@casl/prisma":"^1.5.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@prisma/internals":">=6","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@casl/prisma":{"optional":true},"@casl/ability":{"optional":true},"@prisma/client":{"optional":true},"@prisma/internals":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.3.1_1781211404126_0.6741599412071528","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@generazioneai/authz","version":"0.3.2","keywords":["authorization","authz","casl","prisma","nestjs","rbac","abac","multi-tenant","nats","microservices","permissions"],"license":"MIT","_id":"@generazioneai/authz@0.3.2","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js"},"dist":{"shasum":"c05a10f46c27add3134a6f5c04ea6d27b9298b39","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.3.2.tgz","fileCount":182,"integrity":"sha512-SFTfP5dkUiZZDyuB52KSka1pv+DZ0Ry24JWomSXC+CBl6F24u55dBoWWXOAwmZOa2UEJYZJsZX4NNBc0lFXRxg==","signatures":[{"sig":"MEYCIQCkkRwx2dqqGMXCbhqcyR//ZdJMBTD40YF64t47huMBdwIhAJI5dyBa+XFC3BTEX+k84OVbW6uEciqrurQr803cjkwC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":323379},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","default":"./dist/codegen/index.js"},"./enforce":{"types":"./dist/enforce/index.d.ts","default":"./dist/enforce/index.js"},"./snapshot":{"types":"./dist/snapshot/index.d.ts","default":"./dist/snapshot/index.js"}},"gitHead":"5c943b2747da522eb384978ca832db2e2c4ede5a","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"npm run clean && tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"generazioneai-development","email":"development@generazioneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.11.0","description":"Agnostic runtime authorization for NestJS + Prisma: CASL scoping, signed inter-service JWTs, and snapshot-based permission propagation over NATS.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","lru-cache":"^10.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"codegen":["dist/codegen/index.d.ts"],"enforce":["dist/enforce/index.d.ts"],"snapshot":["dist/snapshot/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.6.2","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"@casl/prisma":"^1.5.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@prisma/internals":">=6","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@casl/prisma":{"optional":true},"@casl/ability":{"optional":true},"@prisma/client":{"optional":true},"@prisma/internals":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.3.2_1781212614604_0.3020690263995034","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@generazioneai/authz","version":"0.3.3","keywords":["authorization","authz","casl","prisma","nestjs","rbac","abac","multi-tenant","nats","microservices","permissions"],"license":"MIT","_id":"@generazioneai/authz@0.3.3","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js"},"dist":{"shasum":"6c947431a6e5ee0412491a2e9f4405d944c920ea","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.3.3.tgz","fileCount":182,"integrity":"sha512-RoTExliGiE9NjqkFmcTgNpmfbJUqEiTcCA7w1x2yu5spsvds0yl7wrwkJoA6WASJq9dufb51bZlE3BCnDoEUhA==","signatures":[{"sig":"MEUCIB5GjWZOho0/4juXP2a4DnIAc8MKbrK9bt4t/GB6hyCiAiEA2Yqib13TtBk7K5onuzZA351lRn52ntt/3GY0e2TWr8o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":325913},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","default":"./dist/codegen/index.js"},"./enforce":{"types":"./dist/enforce/index.d.ts","default":"./dist/enforce/index.js"},"./snapshot":{"types":"./dist/snapshot/index.d.ts","default":"./dist/snapshot/index.js"}},"gitHead":"2d019eff2c13089d588145ca8e6399d182cbc1b2","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"npm run clean && tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"generazioneai-development","email":"development@generazioneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.11.0","description":"Agnostic runtime authorization for NestJS + Prisma: CASL scoping, signed inter-service JWTs, and snapshot-based permission propagation over NATS.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","lru-cache":"^10.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"codegen":["dist/codegen/index.d.ts"],"enforce":["dist/enforce/index.d.ts"],"snapshot":["dist/snapshot/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.6.2","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"rxjs":"^7.0.0","@casl/prisma":"^1.5.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@prisma/internals":">=6","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@casl/prisma":{"optional":true},"@casl/ability":{"optional":true},"@prisma/client":{"optional":true},"@prisma/internals":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.3.3_1781259668163_0.5220659689135871","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@generazioneai/authz","version":"0.3.4","keywords":["authorization","authz","casl","prisma","nestjs","rbac","abac","multi-tenant","nats","microservices","permissions"],"license":"MIT","_id":"@generazioneai/authz@0.3.4","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"elsed","email":"giuliano.dinardo@oneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js"},"dist":{"shasum":"5c9bd085f76164fa93d5bafcfd1e8d5a50c090b9","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.3.4.tgz","fileCount":182,"integrity":"sha512-zhPnmdiHcUVb1LylLNezBj+TIHk7hoM6nDiSVlhNz71+AVghh93tCqPmGmfHE3zajlamb1I7YzKasmVffX2x6Q==","signatures":[{"sig":"MEUCIFQozJ4WrRf7gL6Kp6KW219b7JvbQ+nogAtd6dmu+kT8AiEA+ps3CPDuoP0+KtSk4cGmBXoE/iYkknz1CM0eWxYKYg0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":327931},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","default":"./dist/codegen/index.js"},"./enforce":{"types":"./dist/enforce/index.d.ts","default":"./dist/enforce/index.js"},"./snapshot":{"types":"./dist/snapshot/index.d.ts","default":"./dist/snapshot/index.js"}},"gitHead":"2d019eff2c13089d588145ca8e6399d182cbc1b2","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"npm run clean && tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"generazioneai-development","email":"development@generazioneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.13.0","description":"Agnostic runtime authorization for NestJS + Prisma: CASL scoping, signed inter-service JWTs, and snapshot-based permission propagation over NATS.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","lru-cache":"^10.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"codegen":["dist/codegen/index.d.ts"],"enforce":["dist/enforce/index.d.ts"],"snapshot":["dist/snapshot/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.6.2","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"rxjs":"^7.0.0","@casl/prisma":"^1.5.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@prisma/internals":">=6","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@casl/prisma":{"optional":true},"@casl/ability":{"optional":true},"@prisma/client":{"optional":true},"@prisma/internals":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.3.4_1783629524925_0.3839252963107205","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@generazioneai/authz","version":"0.3.5","keywords":["authorization","authz","casl","prisma","nestjs","rbac","abac","multi-tenant","nats","microservices","permissions"],"license":"MIT","_id":"@generazioneai/authz@0.3.5","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"elsed","email":"giuliano.dinardo@oneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js"},"dist":{"shasum":"437d4d68d09c83669550746384f9da8068334251","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.3.5.tgz","fileCount":182,"integrity":"sha512-xgWQiontuGgxdWks4SnXZ6zpq7iCKoTBoWPSkqHWlkYRcIH/8ebM3uovEA488wP20P6UGabqK6i39ttR+vTkow==","signatures":[{"sig":"MEUCIQC/43vxsq8OnfWPmS32bbBuPHHGeR2DdTRQpN8bLmUYkAIgYsJzVMQ3JsuEgcrP9uVyCa55PdmjnV3qHS5HrSFaPeQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":328565},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","default":"./dist/codegen/index.js"},"./enforce":{"types":"./dist/enforce/index.d.ts","default":"./dist/enforce/index.js"},"./snapshot":{"types":"./dist/snapshot/index.d.ts","default":"./dist/snapshot/index.js"}},"gitHead":"20085ee55e78a1194fcac22880de28cb2220ab6b","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"npm run clean && tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"generazioneai-development","email":"development@generazioneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.13.0","description":"Agnostic runtime authorization for NestJS + Prisma: CASL scoping, signed inter-service JWTs, and snapshot-based permission propagation over NATS.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","lru-cache":"^10.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"codegen":["dist/codegen/index.d.ts"],"enforce":["dist/enforce/index.d.ts"],"snapshot":["dist/snapshot/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.6.2","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"rxjs":"^7.0.0","@casl/prisma":"^1.5.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@prisma/internals":">=6","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@casl/prisma":{"optional":true},"@casl/ability":{"optional":true},"@prisma/client":{"optional":true},"@prisma/internals":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.3.5_1783637951923_0.7677500658903937","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"@generazioneai/authz","version":"0.3.6","keywords":["authorization","authz","casl","prisma","nestjs","rbac","abac","multi-tenant","nats","microservices","permissions"],"license":"MIT","_id":"@generazioneai/authz@0.3.6","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"elsed","email":"giuliano.dinardo@oneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js"},"dist":{"shasum":"345aad8810b0295378e5fdd0953d9afc9c732da5","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.3.6.tgz","fileCount":182,"integrity":"sha512-s1AlcWeUUNFpxVAiga/df0ci7h15Qv10aBXR5+GClPMBB4Peeci3wQwtFJs2Wc32RxwesGg7m1PvD4LmirP56w==","signatures":[{"sig":"MEQCIHAMpmPxO4rHUbW33/Thqp/8pWVdI18C3kOgwyICUATUAiBOAbEWnJZR08IuMitmyMm7CTcACrMVGaEVHDjkWh586Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":329726},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","default":"./dist/codegen/index.js"},"./enforce":{"types":"./dist/enforce/index.d.ts","default":"./dist/enforce/index.js"},"./snapshot":{"types":"./dist/snapshot/index.d.ts","default":"./dist/snapshot/index.js"}},"gitHead":"b2800ca1278051f73842ef87fd33e3d14ec36494","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"npm run clean && tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"generazioneai-development","email":"development@generazioneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.13.0","description":"Agnostic runtime authorization for NestJS + Prisma: CASL scoping, signed inter-service JWTs, and snapshot-based permission propagation over NATS.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","lru-cache":"^10.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"codegen":["dist/codegen/index.d.ts"],"enforce":["dist/enforce/index.d.ts"],"snapshot":["dist/snapshot/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.6.2","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"rxjs":"^7.0.0","@casl/prisma":"^1.5.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@prisma/internals":">=6","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@casl/prisma":{"optional":true},"@casl/ability":{"optional":true},"@prisma/client":{"optional":true},"@prisma/internals":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.3.6_1783673595226_0.07764722492708453","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"@generazioneai/authz","version":"0.3.7","keywords":["authorization","authz","casl","prisma","nestjs","rbac","abac","multi-tenant","nats","microservices","permissions"],"license":"MIT","_id":"@generazioneai/authz@0.3.7","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"elsed","email":"giuliano.dinardo@oneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"bin":{"authz-check":"dist/codegen/authz-check.js"},"dist":{"shasum":"4f0e3a7c14b614190ec8c349b8027913566409a3","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.3.7.tgz","fileCount":182,"integrity":"sha512-pujPEuHzcOB9fWhiQxz23QbDZVZf71GlIq0PQCTIQXDw5szZyFIhqdDdvkU3KAb8EAfFHat97mpjPEUVTFUudg==","signatures":[{"sig":"MEYCIQCEjWCg0EMViAxF5Ox6DBD3pObTIuywDfPsudBcvnpWNAIhAJ/nX8t02RVkVAEOC/Q9ofZGBg2flFQA14wFUF+BPF7g","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":332436},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","default":"./dist/codegen/index.js"},"./enforce":{"types":"./dist/enforce/index.d.ts","default":"./dist/enforce/index.js"},"./snapshot":{"types":"./dist/snapshot/index.d.ts","default":"./dist/snapshot/index.js"}},"gitHead":"c3300a18fe8010a5c749afb76da3d85515a4e9ed","scripts":{"lint":"echo 'TODO: lint' && exit 0","test":"jest","build":"npm run clean && tsc -p tsconfig.json","clean":"rm -rf dist","test:cov":"jest --coverage","authz:genkey":"ts-node scripts/generate-key.ts"},"_npmUser":{"name":"generazioneai-development","email":"development@generazioneai.it"},"repository":{"url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","type":"git","directory":"packages/authz"},"_npmVersion":"11.13.0","description":"Agnostic runtime authorization for NestJS + Prisma: CASL scoping, signed inter-service JWTs, and snapshot-based permission propagation over NATS.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"jose":"^6.0.10","ioredis":"^5.4.0","lru-cache":"^10.4.0","json-stable-stringify":"^1.1.1"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"codegen":["dist/codegen/index.d.ts"],"enforce":["dist/enforce/index.d.ts"],"snapshot":["dist/snapshot/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3","@types/node":"^22.0.0","@casl/prisma":"^1.6.2","@nestjs/core":"^11.1.24","@casl/ability":"^6.7.3","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36"},"peerDependencies":{"rxjs":"^7.0.0","@casl/prisma":"^1.5.0","@nestjs/core":"^11.0.0","@casl/ability":"^6.7.0","@nestjs/common":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@prisma/internals":">=6","@nestjs/microservices":"^11.0.0"},"peerDependenciesMeta":{"@casl/prisma":{"optional":true},"@casl/ability":{"optional":true},"@prisma/client":{"optional":true},"@prisma/internals":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/authz_0.3.7_1783674835655_0.9856310732870641","host":"s3://npm-registry-packages-npm-production"}},"0.3.8":{"name":"@generazioneai/authz","version":"0.3.8","description":"Agnostic runtime authorization for NestJS + Prisma: CASL scoping, signed inter-service JWTs, and snapshot-based permission propagation over NATS.","main":"dist/index.js","types":"dist/index.d.ts","bin":{"authz-check":"dist/codegen/authz-check.js"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","directory":"packages/authz"},"scripts":{"build":"npm run clean && tsc -p tsconfig.json","clean":"rm -rf dist","test":"jest","test:cov":"jest --coverage","lint":"echo 'TODO: lint' && exit 0","authz:genkey":"ts-node scripts/generate-key.ts"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./nats":{"types":"./dist/nats/index.d.ts","default":"./dist/nats/index.js"},"./nest":{"types":"./dist/nest/index.d.ts","default":"./dist/nest/index.js"},"./snapshot":{"types":"./dist/snapshot/index.d.ts","default":"./dist/snapshot/index.js"},"./enforce":{"types":"./dist/enforce/index.d.ts","default":"./dist/enforce/index.js"},"./codegen":{"types":"./dist/codegen/index.d.ts","default":"./dist/codegen/index.js"}},"typesVersions":{"*":{"nats":["dist/nats/index.d.ts"],"nest":["dist/nest/index.d.ts"],"snapshot":["dist/snapshot/index.d.ts"],"enforce":["dist/enforce/index.d.ts"],"codegen":["dist/codegen/index.d.ts"]}},"peerDependencies":{"@casl/ability":"^6.7.0","@casl/prisma":"^1.5.0","@nestjs/common":"^11.0.0","@nestjs/core":"^11.0.0","@nestjs/microservices":"^11.0.0","@prisma/client":"^6.0.0 || ^7.0.0","@prisma/internals":">=6","rxjs":"^7.0.0"},"peerDependenciesMeta":{"@prisma/client":{"optional":true},"@casl/ability":{"optional":true},"@casl/prisma":{"optional":true},"@prisma/internals":{"optional":true}},"dependencies":{"ioredis":"^5.4.0","jose":"^6.0.10","json-stable-stringify":"^1.1.1","lru-cache":"^10.4.0"},"devDependencies":{"@casl/ability":"^6.7.3","@casl/prisma":"^1.6.2","@nestjs/core":"^11.1.24","@nestjs/microservices":"^11.1.24","@types/json-stable-stringify":"^1.0.36","@types/node":"^22.0.0","rxjs":"^7.8.2","ts-node":"^10.9.2","typescript":"^5.1.3"},"keywords":["authorization","authz","casl","prisma","nestjs","rbac","abac","multi-tenant","nats","microservices","permissions"],"license":"MIT","gitHead":"c190cbf8790fec240df58b3b1c13e614322bd75a","_id":"@generazioneai/authz@0.3.8","bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-0KzQSUKtbMuLgfBRFCMBKVcMBxL6X1OkxUkOk7XV1hAqy7jQR0xyzfscQfpoepYgCN0NmcPU0NCFlTzT7sqATA==","shasum":"1e725f4f086a0a2b4deb965ae625649ba4147dfb","tarball":"https://registry.npmjs.org/@generazioneai/authz/-/authz-0.3.8.tgz","fileCount":182,"unpackedSize":332617,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCCAPlCfBW5QnNoLTO7VlNINeL3zpQPsZCEdrR2ijBtHAIgEbWHy1viKpbstBwCkic9m/2v4SyIOz0lTGSGBsmMy0s="}]},"_npmUser":{"name":"generazioneai-development","email":"development@generazioneai.it"},"directories":{},"maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"elsed","email":"giuliano.dinardo@oneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/authz_0.3.8_1783675248813_0.22975955508396528"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-29T15:31:56.108Z","modified":"2026-07-10T09:20:49.165Z","0.0.1":"2026-05-29T15:31:56.463Z","0.0.2":"2026-05-29T15:36:16.797Z","0.0.3":"2026-05-29T15:41:18.082Z","0.0.4":"2026-05-29T20:13:00.345Z","0.0.5":"2026-05-30T00:18:40.888Z","0.0.6":"2026-05-30T00:28:45.659Z","0.1.0":"2026-05-30T09:22:36.519Z","0.1.1":"2026-05-30T10:32:17.273Z","0.2.0":"2026-05-30T10:52:10.861Z","0.2.1":"2026-05-30T11:19:46.072Z","0.2.2":"2026-05-30T12:24:56.357Z","0.2.3":"2026-05-30T12:52:26.240Z","0.2.4":"2026-05-30T13:03:12.392Z","0.2.5":"2026-05-30T13:45:26.170Z","0.2.6":"2026-05-30T18:38:25.812Z","0.2.8":"2026-06-01T08:17:43.183Z","0.2.9":"2026-06-01T08:34:27.745Z","0.2.10":"2026-06-01T08:44:00.724Z","0.2.11":"2026-06-01T09:04:37.693Z","0.2.12":"2026-06-01T09:54:01.474Z","0.2.13":"2026-06-04T11:39:53.220Z","0.2.14":"2026-06-10T12:51:55.008Z","0.2.15":"2026-06-10T15:02:27.076Z","0.2.16":"2026-06-10T22:06:06.782Z","0.2.17":"2026-06-11T08:51:07.781Z","0.2.18":"2026-06-11T18:50:56.834Z","0.2.19":"2026-06-11T19:03:26.874Z","0.2.20":"2026-06-11T19:18:53.912Z","0.3.0":"2026-06-11T20:44:17.486Z","0.3.1":"2026-06-11T20:56:44.280Z","0.3.2":"2026-06-11T21:16:54.781Z","0.3.3":"2026-06-12T10:21:08.335Z","0.3.4":"2026-07-09T20:38:45.140Z","0.3.5":"2026-07-09T22:59:12.070Z","0.3.6":"2026-07-10T08:53:15.366Z","0.3.7":"2026-07-10T09:13:55.790Z","0.3.8":"2026-07-10T09:20:48.993Z"},"bugs":{"url":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES/issues"},"license":"MIT","homepage":"https://github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES#readme","keywords":["authorization","authz","casl","prisma","nestjs","rbac","abac","multi-tenant","nats","microservices","permissions"],"repository":{"type":"git","url":"git+ssh://git@github.com/GenerazioneAI-SRL/SKILLERA-AUTHZ-PACKAGES.git","directory":"packages/authz"},"description":"Agnostic runtime authorization for NestJS + Prisma: CASL scoping, signed inter-service JWTs, and snapshot-based permission propagation over NATS.","maintainers":[{"name":"madh_00","email":"antonio.liberti@generazioneai.it"},{"name":"generazioneai-development","email":"development@generazioneai.it"},{"name":"maxgenai","email":"massimiliano.noviello@generazioneai.it"},{"name":"elsed","email":"giuliano.dinardo@oneai.it"},{"name":"francesco-prisco","email":"francesco.prisco@oneai.it"}],"readme":"# @generazioneai/authz\n\n**Agnostic, fail-closed runtime authorization for NestJS + Prisma.**\n\nA small, composable engine for multi-tenant authorization across a microservice mesh:\n\n- **Query-level scoping** — a Prisma Client extension ANDs the caller's CASL ability into *every* `where` (incl. nested `include`/`select`), so a row a user can't see is impossible to read/update/delete/connect — even from a bug.\n- **Snapshot-based permissions** — one service builds a user's permission snapshot (roles → CASL rules) once, caches it in Redis under an opaque id; every other service rehydrates it by id. No N+1 permission lookups.\n- **Signed inter-service calls** — short-lived EdDSA JWTs authenticate every NATS message (replay-protected, body-hash-bound, cmd-bound).\n- **Default-deny route guards** — `@Public()` / `@Authenticated()` / `@Authorize(action, subject)`.\n\n**Agnostic:** the engine knows nothing about your entities, tables, identity model, or service names. Your domain lives in *resource manifests* you write in each service; the SDK only provides the mechanism.\n\n```bash\nnpm i @generazioneai/authz @casl/ability @casl/prisma\n# per-subpath extras: ioredis (snapshot/nats), jose (dep), @nestjs/* (nest), @prisma/client (peer)\n```\n\n> Pre-1.0: minor versions (`0.x`) may break.\n\n---\n\n## Modes\n\nTwo independent env switches, **both default `off`** (adding the SDK to a running service changes nothing):\n\n| var | read by | `off` | `shadow` | `enforce` |\n|---|---|---|---|---|\n| `AUTHZ_ENFORCE_MODE` | the Prisma extension | passthrough | measure + log | **scope queries, fail-closed** |\n| `AUTHZ_INTERNAL_AUTH_MODE` | the inter-service interceptor | strip token | verify + log | **verify + reject** |\n\n> **Enable them together.** The Prisma extension reads the ability from `AsyncLocalStorage`, which is populated by the inter-service interceptor. `AUTHZ_ENFORCE_MODE=enforce` with `AUTHZ_INTERNAL_AUTH_MODE=off` means no context → every query throws `UNSCOPED_QUERY`. (Reference services fail-fast at boot on this combo.)\n\n---\n\n## Concepts\n\n| Piece | What it is |\n|---|---|\n| **Resource manifest** | `defineResource({ subject, prismaModel, tenancy, scopes, actions, autoquery })` — how a model is scoped. Lives in *your* service. |\n| **AuthzContext** | Per-request payload in `AsyncLocalStorage`: `{ userId, tenantId?, ability, …claims }`. **Open shape** — attach any domain claims your `$ctx` paths reference. |\n| **Scope template** | A Prisma `where` with `{ $ctx: 'path' }` placeholders, substituted from the context (e.g. `{ ownerId: { $ctx: 'userId' } }`). |\n| **Snapshot** | Serialized CASL rules + raw grants + claims, cached in Redis under an opaque `snapId`. |\n\n### The context is yours\n\nThe SDK reads only `userId`, `tenantId`, `ability`, and a few engine internals. Everything else is **your** vocabulary, attached as claims and resolved by `$ctx` paths in your manifests:\n\n```ts\nimport type { AuthzContext } from '@generazioneai/authz';\n\ninterface AppContext extends AuthzContext {   // purely for your own type-safety\n  orgId?: string;\n  teamIds?: string[];\n}\n// a manifest scope can then reference { $ctx: 'orgId' } or { $ctx: 'teamIds' }\n```\n\n---\n\n## 1. Declare resources\n\n```ts\n// post.resource.ts  (in your service)\nimport { defineResource } from '@generazioneai/authz';\n\nexport const PostResource = defineResource({\n  subject: 'Post',\n  prismaModel: 'post',                         // must match the Prisma model (camelCase)\n  service: 'blog-api',                         // free-form metadata\n  tenancy: { kind: 'single', field: 'orgId' }, // stamped on create\n  actions: ['create', 'read', 'update', 'delete'],\n  scopes: {\n    TENANT: { orgId: { $ctx: 'orgId' } },      // members of an org\n    OWN:    { authorId: { $ctx: 'userId' } },  // the author\n    // GLOBAL needs no template (unrestricted within the grant)\n  },\n  autoquery: { filterable: {}, sortable: [], includable: [], pagination: { default: 50, max: 200 } },\n});\n\n// registry.ts\nimport { ResourceRegistry } from '@generazioneai/authz';\nexport const registry = new ResourceRegistry();\n[PostResource /*, ... */].forEach((m) => registry.register(m));\n```\n\n> In `enforce`, a query on a model with **no manifest** throws `UNMANAGED_MODEL` — fail-closed. Genuinely-unmanaged tables (e.g. OIDC adapter rows) go in `allowUnmanaged` (below).\n\n## 2. Enforce on every query (Prisma extension)\n\n```ts\nimport { Prisma, PrismaClient } from '@prisma/client';\nimport { createAuthzPrismaExtension } from '@generazioneai/authz/enforce';\n\nlet client: any;\nclient = new PrismaClient().$extends(\n  createAuthzPrismaExtension(registry, {\n    mode: process.env.AUTHZ_ENFORCE_MODE,            // default 'off'\n    dmmf: Prisma.dmmf.datamodel.models,              // required to scope nested include/select\n    allowUnmanaged: ['OidcEntity'],                  // models intentionally unscoped (optional)\n    getClient: () => client,                         // scoped client → verify connect/set targets\n  }),\n);\n```\n\nWhat it does in `enforce` (all fail-closed):\n\n| operation | behaviour |\n|---|---|\n| read / update / delete | ANDs `accessibleBy(ability, action)[subject]` into `where` |\n| **field-level read** | strips scalar fields the caller may not read from the returned row(s) + included relations, based on `permittedFieldsOf(ability, 'read', subject)`. A read rule **without** `fields` grants every scalar (no-op); a rule **with** `fields` narrows it (needs `dmmf`). |\n| nested `include` / `select` (to-many) | ANDs the child's read scope into the nested `where` (needs `dmmf`) — throws if it can't be resolved |\n| create | **stamps** the tenant field (caller-supplied value can't override it), recursively for nested creates |\n| nested `connect` / `set` / `connectOrCreate` | pre-verifies the target is in scope via a scoped read (needs `getClient`), else `LINK_DENIED` |\n| raw ops (`$queryRaw`, `aggregateRaw`, …) | thrown — can't be scoped; wrap in `runUnscoped` if intended |\n| unmanaged model | thrown unless in `allowUnmanaged` |\n\nThe extension reads the ability from `AsyncLocalStorage`. Wrap each request:\n\n```ts\nimport { authzAls } from '@generazioneai/authz';\nawait authzAls.run(ctx, async () => client.post.findMany());   // scoped\n```\n\nSystem work bypasses scoping explicitly:\n\n```ts\nimport { runUnscoped } from '@generazioneai/authz/enforce';\nawait runUnscoped('nightly-rollup', async () => client.post.count());\n```\n\n> **Gotcha:** the `authzAls.run` / `runUnscoped` callback must be `async` (or return a promise). A sync callback returning a lazy Prisma promise loses the context before the query runs.\n\n## 3. Build a snapshot (the service that owns roles)\n\n```ts\nimport { buildRulesFromGrants, computePermHash, computeSnapId, RedisSnapshotStore } from '@generazioneai/authz/snapshot';\n\nconst grants = /* read the user's roles → [{ action, subject, scope, fields? }] */;\nconst ctx = { userId, tenantId, orgId, /* …claims */ };\nconst rules  = buildRulesFromGrants(grants, registry, ctx);\nconst snapId = computeSnapId(userId, tenantId, Date.now());\n\nawait new RedisSnapshotStore(redis).put({\n  schemaVersion: 1, snapId, userId, tenantId,\n  permHash: computePermHash(rules), builtAt: Date.now(),\n  rules, grants,\n  claims: { orgId /* …whatever your $ctx paths need downstream */ },\n});\n```\n\n**Revocation:** evict snapshots when roles/permissions change, so the change is immediate\n(not bounded by the 60s TTL):\n\n```ts\nconst store = new RedisSnapshotStore(redis);\nawait store.revokeUser(userId);        // on a user's role assignment change\nawait store.revokeRole('system', roleId); // cascade to all members of a role\n```\n\n## 4. Verify + hydrate downstream (NestJS + NATS)\n\n```ts\nimport { InternalAuthInterceptor } from '@generazioneai/authz/nest';\nimport { createInternalJwks, RedisReplayCache } from '@generazioneai/authz/nats';\nimport { RedisSnapshotStore, hydrateAbility, buildRulesFromGrants } from '@generazioneai/authz/snapshot';\n\napp.useGlobalInterceptors(new InternalAuthInterceptor({\n  jwks: createInternalJwks({ url: process.env.AUTHZ_JWKS_URL }),\n  replay: new RedisReplayCache(redis),\n  serviceName: 'blog-api',\n  reflector: app.get(Reflector),\n  mode: process.env.AUTHZ_INTERNAL_AUTH_MODE,            // default 'off'\n  snapshotStore: new RedisSnapshotStore(redis),\n  hydrate: hydrateAbility,\n  buildRules: buildRulesFromGrants, registry,            // re-substitute scopes with THIS service's registry\n}));\n```\n\nIt verifies the internal JWT, fetches the snapshot by its `snap` claim, replays the `claims`\nonto the context, rebuilds the ability with **this** service's registry (so it scopes subjects\nthe builder doesn't own), and runs the handler inside `authzAls`.\n\nThe signing side (the gateway) uses `NatsScopedClientProxy` + `InternalTokenSigner` and serves\nits public keys at a JWKS endpoint (`createInternalJwks` fetches it). Keys load via\n`loadSigningKey` / `generateSigningKeyPair` (`@generazioneai/authz/nats`).\n\n## 5. Route-level default-deny (optional)\n\nThree intention-revealing decorators on one axis — how much identity a route demands:\n\n```ts\nimport { GlobalAuthzGuard, Authorize, Authenticated, Public } from '@generazioneai/authz/nest';\n\n@Public()                      // no auth at all (login, webhooks, health)\n@Get('health') health() {}\n\n@Authenticated()               // any logged-in user — no permission check\n@Get('me') me() {}\n\n@Authorize('read', 'Post')     // logged-in AND has the permission (data scoped by the ability)\n@Get() findAll() {}\n```\n\n| decorator | login | permission |\n|---|---|---|\n| `@Public()` | ❌ | ❌ |\n| `@Authenticated()` | ✅ | ❌ |\n| `@Authorize(action, subject)` | ✅ | ✅ |\n\nRegister `GlobalAuthzGuard` as an `APP_GUARD` with an `AbilityResolver` (resolves the request's\nability), plus your own authn guard first (it enforces login; have it honour `PUBLIC_KEY` so\n`@Public` opts out of both). In `enforce`, a route with none of the three is **denied**.\nOrthogonal concerns (e.g. tenant binding) compose as separate app-provided decorators.\n\n---\n\n## Subpath exports\n\n| import | contents | extra peer deps |\n|---|---|---|\n| `@generazioneai/authz` | `defineResource`, `ResourceRegistry`, `AuthzContext`, `authzAls` | `@casl/*` |\n| `@generazioneai/authz/enforce` | Prisma extension, `runUnscoped`, scoped repo | `@casl/prisma` |\n| `@generazioneai/authz/snapshot` | grants→rules, perm-hash, envelope, Redis store + revocation | `@casl/prisma`, `ioredis` |\n| `@generazioneai/authz/nats` | EdDSA sign/verify, JWKS, replay cache, key loader | `jose`, `ioredis` |\n| `@generazioneai/authz/nest` | guards, decorators, interceptors, signing proxy | `@nestjs/*` |\n\n## Rollout\n\nOff by default. Flip `shadow` (measures `would-deny`, never blocks) on both switches → then\n`enforce`. Provision the gateway signing key + the downstream JWKS URL before enabling\ninter-service auth.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}