{"_id":"@grantjs/server","_rev":"31-156e56c387e310b8f89bdc0880d51f62","name":"@grantjs/server","dist-tags":{"latest":"1.11.0"},"versions":{"1.0.0":{"name":"@grantjs/server","version":"1.0.0","keywords":["grant","authorization","permissions","rbac","role-based-access-control","express","fastify","nestjs","nextjs","middleware","access-control","typescript","multi-tenant","sdk","server"],"author":{"url":"https://logus.graphics","name":"Alejandro Heredia","email":"ale@logus.graphics"},"license":"MIT","_id":"@grantjs/server@1.0.0","maintainers":[{"name":"logus","email":"logusgraphics@icloud.com"}],"homepage":"https://github.com/logusgraphics/grant#readme","bugs":{"url":"https://github.com/logusgraphics/grant/issues"},"dist":{"shasum":"3ce76be50fa3973e6a1fbb60060d099f3832507c","tarball":"https://registry.npmjs.org/@grantjs/server/-/server-1.0.0.tgz","fileCount":63,"integrity":"sha512-s9GRYATraLeXXgsfSaEUInGx/MKl23BPczPQmnwFkEAo6jTnwChOTSJ1mNyJpPeTu18P9p91tvO4uFoxw0V8CQ==","signatures":[{"sig":"MEQCIAg9uZ/70jB8t2mec94U8g/X+s9+bwTKhOvs6p7Ypb5tAiAE3S8MUe8veVdI+TUdmibD3JIMrsjkokIadctso76l9w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":180790},"main":"./dist/index.cjs","type":"module","_from":"file:grantjs-server-1.0.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./nest":{"types":"./dist/nest/index.d.ts","import":"./dist/nest.mjs","require":"./dist/nest.cjs"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next.mjs","require":"./dist/next.cjs"},"./express":{"types":"./dist/express/index.d.ts","import":"./dist/express.mjs","require":"./dist/express.cjs"},"./fastify":{"types":"./dist/fastify/index.d.ts","import":"./dist/fastify.mjs","require":"./dist/fastify.cjs"}},"scripts":{"lint":"eslint src --ext .ts","test":"vitest","build":"vite build","lint:fix":"eslint src --ext .ts --fix","test:run":"vitest run","type-check":"tsc --noEmit","build:watch":"vite build --watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"logus","email":"logusgraphics@icloud.com"},"_resolved":"/tmp/cc9cd78bad916d7d6de02ce8ad4fdd13/grantjs-server-1.0.0.tgz","_integrity":"sha512-s9GRYATraLeXXgsfSaEUInGx/MKl23BPczPQmnwFkEAo6jTnwChOTSJ1mNyJpPeTu18P9p91tvO4uFoxw0V8CQ==","repository":{"url":"git+https://github.com/logusgraphics/grant.git","type":"git","directory":"packages/@grantjs/server"},"_npmVersion":"11.11.0","description":"Server SDK for Grant authorization - Middleware and guards for Express, Fastify, NestJS, and Next.js","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","dependencies":{"@grantjs/schema":"1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.0.0","vite":"^6.0.0","eslint":"^9.37.0","vitest":"^3.2.4","express":"^5.1.0","fastify":"^5.7.2","typescript":"^5","@types/node":"^24.7.2","@nestjs/core":"^11.0.0","@nestjs/common":"^11.0.0","@types/express":"^5.0.0","vite-plugin-dts":"^4.3.0","@vitest/coverage-v8":"^3.2.4"},"peerDependencies":{"next":">=13.0.0 <17.0.0","express":"^4 || ^5","fastify":"^4 || ^5","@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/server_1.0.0_1773263238069_0.22783963109136884","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@grantjs/server","version":"1.1.0","keywords":["grant","authorization","permissions","rbac","role-based-access-control","express","fastify","nestjs","nextjs","middleware","access-control","typescript","multi-tenant","sdk","server"],"author":{"url":"https://grantjs.org","name":"Ale Heredia","email":"ale@grantjs.org"},"license":"MIT","_id":"@grantjs/server@1.1.0","maintainers":[{"name":"logus","email":"logusgraphics@icloud.com"}],"homepage":"https://github.com/grant-js/grant#readme","bugs":{"url":"https://github.com/grant-js/grant/issues"},"dist":{"shasum":"508b1068dbbd3d6136ed306807c97638da210320","tarball":"https://registry.npmjs.org/@grantjs/server/-/server-1.1.0.tgz","fileCount":65,"integrity":"sha512-N8V3TOeoEKl2bTcUxFrN6igR7eslVebfwuwRAZpi20f/A1ptWEx29kDVS/xOXCMDhhZud+D2mPKcOCJLU+mNeA==","signatures":[{"sig":"MEUCIBP/VdQqlKnmOmdwJz4OMtRj5+fs45EwfxaEiazuTImTAiEA/FHCxaGYIYR0koFYumIh/2fbPf1JEKY6lHqZEtK0JQo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":185931},"main":"./dist/index.cjs","type":"module","_from":"file:grantjs-server-1.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./nest":{"types":"./dist/nest/index.d.ts","import":"./dist/nest.mjs","require":"./dist/nest.cjs"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next.mjs","require":"./dist/next.cjs"},"./express":{"types":"./dist/express/index.d.ts","import":"./dist/express.mjs","require":"./dist/express.cjs"},"./fastify":{"types":"./dist/fastify/index.d.ts","import":"./dist/fastify.mjs","require":"./dist/fastify.cjs"}},"scripts":{"lint":"eslint src --ext .ts","test":"vitest","build":"vite build","lint:fix":"eslint src --ext .ts --fix","test:run":"vitest run","type-check":"tsc --noEmit","build:watch":"vite build --watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"logus","email":"logusgraphics@icloud.com"},"_resolved":"/tmp/22a9ed7837a64626170cf06d6320e251/grantjs-server-1.1.0.tgz","_integrity":"sha512-N8V3TOeoEKl2bTcUxFrN6igR7eslVebfwuwRAZpi20f/A1ptWEx29kDVS/xOXCMDhhZud+D2mPKcOCJLU+mNeA==","repository":{"url":"git+https://github.com/grant-js/grant.git","type":"git","directory":"packages/@grantjs/server"},"_npmVersion":"11.9.0","description":"Server SDK for Grant authorization - Middleware and guards for Express, Fastify, NestJS, and Next.js","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","dependencies":{"@grantjs/schema":"1.1.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.4","vite":"^8.0.10","eslint":"^10.3.0","vitest":"^4.1.5","express":"^5.1.0","fastify":"^5.8.5","typescript":"^6","@types/node":"^25.6.0","@nestjs/core":"^11.1.19","@nestjs/common":"^11.1.19","@types/express":"^5.0.0","vite-plugin-dts":"^5.0.0","@vitest/coverage-v8":"^4.1.5"},"peerDependencies":{"next":">=13.0.0 <17.0.0","express":"^4 || ^5","fastify":"^4 || ^5","@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/server_1.1.0_1778943729462_0.07442247478669306","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@grantjs/server","version":"1.1.1","keywords":["grant","authorization","permissions","rbac","role-based-access-control","express","fastify","nestjs","nextjs","middleware","access-control","typescript","multi-tenant","sdk","server"],"author":{"url":"https://grantjs.org","name":"Ale Heredia","email":"ale@grantjs.org"},"license":"MIT","_id":"@grantjs/server@1.1.1","maintainers":[{"name":"logus","email":"logusgraphics@icloud.com"}],"homepage":"https://github.com/grant-js/grant#readme","bugs":{"url":"https://github.com/grant-js/grant/issues"},"dist":{"shasum":"7801e03e99a3cb869c58b54b30f63f0805cf5250","tarball":"https://registry.npmjs.org/@grantjs/server/-/server-1.1.1.tgz","fileCount":65,"integrity":"sha512-52QwYPASwX85EUk/romli6TGVYjlN4bSb5wkOUqb8NgC+XrrxINo/geOj9qcEa/Htitn9P5XvyGkRTVQbyeozw==","signatures":[{"sig":"MEYCIQD/8vDle32re/iWHlIQj+6YSdLLhggX4uj9jb370ALnJAIhALph2UdsEw3cqTWsYGlD0Dr8LORRFRLBnY8O8S97ONsG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":185931},"main":"./dist/index.cjs","type":"module","_from":"file:grantjs-server-1.1.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./nest":{"types":"./dist/nest/index.d.ts","import":"./dist/nest.mjs","require":"./dist/nest.cjs"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next.mjs","require":"./dist/next.cjs"},"./express":{"types":"./dist/express/index.d.ts","import":"./dist/express.mjs","require":"./dist/express.cjs"},"./fastify":{"types":"./dist/fastify/index.d.ts","import":"./dist/fastify.mjs","require":"./dist/fastify.cjs"}},"scripts":{"lint":"eslint src --ext .ts","test":"vitest","build":"vite build","lint:fix":"eslint src --ext .ts --fix","test:run":"vitest run","type-check":"tsc --noEmit","build:watch":"vite build --watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"logus","email":"logusgraphics@icloud.com"},"_resolved":"/tmp/c061b4f8b3f1309a57685e46b92145c1/grantjs-server-1.1.1.tgz","_integrity":"sha512-52QwYPASwX85EUk/romli6TGVYjlN4bSb5wkOUqb8NgC+XrrxINo/geOj9qcEa/Htitn9P5XvyGkRTVQbyeozw==","repository":{"url":"git+https://github.com/grant-js/grant.git","type":"git","directory":"packages/@grantjs/server"},"_npmVersion":"11.9.0","description":"Server SDK for Grant authorization - Middleware and guards for Express, Fastify, NestJS, and Next.js","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","dependencies":{"@grantjs/schema":"1.1.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.4","vite":"^8.0.10","eslint":"^10.3.0","vitest":"^4.1.5","express":"^5.1.0","fastify":"^5.8.5","typescript":"^6","@types/node":"^25.6.0","@nestjs/core":"^11.1.19","@nestjs/common":"^11.1.19","@types/express":"^5.0.0","vite-plugin-dts":"^5.0.0","@vitest/coverage-v8":"^4.1.5"},"peerDependencies":{"next":">=13.0.0 <17.0.0","express":"^4 || ^5","fastify":"^4 || ^5","@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/server_1.1.1_1778948713515_0.6153185564098265","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@grantjs/server","version":"1.1.2","keywords":["grant","authorization","permissions","rbac","role-based-access-control","express","fastify","nestjs","nextjs","middleware","access-control","typescript","multi-tenant","sdk","server"],"author":{"url":"https://grantjs.org","name":"Ale Heredia","email":"ale@grantjs.org"},"license":"MIT","_id":"@grantjs/server@1.1.2","maintainers":[{"name":"logus","email":"logusgraphics@icloud.com"}],"homepage":"https://github.com/grant-js/grant#readme","bugs":{"url":"https://github.com/grant-js/grant/issues"},"dist":{"shasum":"629f0b62b286a2296d16391d4b038c14eecd853d","tarball":"https://registry.npmjs.org/@grantjs/server/-/server-1.1.2.tgz","fileCount":65,"integrity":"sha512-NV5Dz+6on9UZRTBXsqkiM6iFbAsjqfrty+VDnuIsOU3H72g2N0Dqdgh5H1SoB+/LQATvnn19A6F6b9Lwpw6hKg==","signatures":[{"sig":"MEUCIAaLu+9+WxYeaENCy4aUoVHxuF5gJ+7jHRyGiBXc4HjCAiEAlDg3DbbBuBHHpZmTADb1NfFqXr+rZrxEHyT9ABUkb8E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187555},"main":"./dist/index.cjs","type":"module","_from":"file:grantjs-server-1.1.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./nest":{"types":"./dist/nest/index.d.ts","import":"./dist/nest.mjs","require":"./dist/nest.cjs"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next.mjs","require":"./dist/next.cjs"},"./express":{"types":"./dist/express/index.d.ts","import":"./dist/express.mjs","require":"./dist/express.cjs"},"./fastify":{"types":"./dist/fastify/index.d.ts","import":"./dist/fastify.mjs","require":"./dist/fastify.cjs"}},"scripts":{"lint":"eslint src --ext .ts","test":"vitest","build":"vite build","lint:fix":"eslint src --ext .ts --fix","test:run":"vitest run","type-check":"tsc --noEmit","build:watch":"vite build --watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"logus","email":"logusgraphics@icloud.com"},"_resolved":"/tmp/b576c58a808bd6250e1feda469b0e354/grantjs-server-1.1.2.tgz","_integrity":"sha512-NV5Dz+6on9UZRTBXsqkiM6iFbAsjqfrty+VDnuIsOU3H72g2N0Dqdgh5H1SoB+/LQATvnn19A6F6b9Lwpw6hKg==","repository":{"url":"git+https://github.com/grant-js/grant.git","type":"git","directory":"packages/@grantjs/server"},"_npmVersion":"11.9.0","description":"Server SDK for Grant authorization - Middleware and guards for Express, Fastify, NestJS, and Next.js","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","dependencies":{"@grantjs/schema":"1.1.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.6","vite":"^8.0.14","eslint":"^10.3.0","vitest":"^4.1.5","express":"^5.1.0","fastify":"^5.8.5","typescript":"^6","@types/node":"^25.6.0","@nestjs/core":"^11.1.19","@nestjs/common":"^11.1.19","@types/express":"^5.0.0","vite-plugin-dts":"^5.0.0","@vitest/coverage-v8":"^4.1.5"},"peerDependencies":{"next":">=13.0.0 <17.0.0","express":"^4 || ^5","fastify":"^4 || ^5","@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/server_1.1.2_1780226054008_0.39135112025563856","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@grantjs/server","version":"1.1.3","keywords":["grant","authorization","permissions","rbac","role-based-access-control","express","fastify","nestjs","nextjs","middleware","access-control","typescript","multi-tenant","sdk","server"],"author":{"url":"https://grantjs.org","name":"Ale Heredia","email":"ale@grantjs.org"},"license":"MIT","_id":"@grantjs/server@1.1.3","maintainers":[{"name":"logus","email":"logusgraphics@icloud.com"}],"homepage":"https://github.com/grant-js/grant#readme","bugs":{"url":"https://github.com/grant-js/grant/issues"},"dist":{"shasum":"8d62ad1ba65e1b45096f7e7f91c951712d08da40","tarball":"https://registry.npmjs.org/@grantjs/server/-/server-1.1.3.tgz","fileCount":65,"integrity":"sha512-T2NVahc3YJaOLgMnC/XfV5VmjsiCkF2DhC/UZClx1+G99FfESEOEfs6THxoBSag44SBHfUQr8JrKik+r/nDeTA==","signatures":[{"sig":"MEUCIFYX7TSh1MkiDNCHyy8cSrJbeutS/5FLEM9Il0eJo+xzAiEA/xUCIJ9f0hHGY9UnbCDojTrATUySvVJCZo2ASU6pPnQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187555},"main":"./dist/index.cjs","type":"module","_from":"file:grantjs-server-1.1.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./nest":{"types":"./dist/nest/index.d.ts","import":"./dist/nest.mjs","require":"./dist/nest.cjs"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next.mjs","require":"./dist/next.cjs"},"./express":{"types":"./dist/express/index.d.ts","import":"./dist/express.mjs","require":"./dist/express.cjs"},"./fastify":{"types":"./dist/fastify/index.d.ts","import":"./dist/fastify.mjs","require":"./dist/fastify.cjs"}},"scripts":{"lint":"eslint src --ext .ts","test":"vitest","build":"vite build","lint:fix":"eslint src --ext .ts --fix","test:run":"vitest run","type-check":"tsc --noEmit","build:watch":"vite build --watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"logus","email":"logusgraphics@icloud.com"},"_resolved":"/tmp/549d30d4c386f5ee53c72079138a7a60/grantjs-server-1.1.3.tgz","_integrity":"sha512-T2NVahc3YJaOLgMnC/XfV5VmjsiCkF2DhC/UZClx1+G99FfESEOEfs6THxoBSag44SBHfUQr8JrKik+r/nDeTA==","repository":{"url":"git+https://github.com/grant-js/grant.git","type":"git","directory":"packages/@grantjs/server"},"_npmVersion":"11.9.0","description":"Server SDK for Grant authorization - Middleware and guards for Express, Fastify, NestJS, and Next.js","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","dependencies":{"@grantjs/schema":"1.1.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.6","vite":"^8.0.14","eslint":"^10.3.0","vitest":"^4.1.5","express":"^5.1.0","fastify":"^5.8.5","typescript":"^6","@types/node":"^25.6.0","@nestjs/core":"^11.1.19","@nestjs/common":"^11.1.19","@types/express":"^5.0.0","vite-plugin-dts":"^5.0.0","@vitest/coverage-v8":"^4.1.5"},"peerDependencies":{"next":">=13.0.0 <17.0.0","express":"^4 || ^5","fastify":"^4 || ^5","@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/server_1.1.3_1780494151286_0.4165476933815204","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@grantjs/server","version":"1.1.4","keywords":["grant","authorization","permissions","rbac","role-based-access-control","express","fastify","nestjs","nextjs","middleware","access-control","typescript","multi-tenant","sdk","server"],"author":{"url":"https://grantjs.org","name":"Ale Heredia","email":"ale@grantjs.org"},"license":"MIT","_id":"@grantjs/server@1.1.4","maintainers":[{"name":"logus","email":"logusgraphics@icloud.com"}],"homepage":"https://github.com/grant-js/grant#readme","bugs":{"url":"https://github.com/grant-js/grant/issues"},"dist":{"shasum":"68ce1b92c90d862aa0bc4e23fbb2044f1c5d1ea4","tarball":"https://registry.npmjs.org/@grantjs/server/-/server-1.1.4.tgz","fileCount":65,"integrity":"sha512-dJAMVJ3yMvWyEfA/f6WXIoONJqu6X3HgnDKhRRj2NIR3+UIXHkGcutNK9HGRIEmN/eFsZ26XOZ/b76a+fAA6qg==","signatures":[{"sig":"MEYCIQCJlyrR+zHx7nQsJAe/xAGSctgZpYXKLil46k9DvBZTWwIhALvW+kf17yamS1muzl26zzKVQ/eqAnm6WwsYzdrOwXD/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187555},"main":"./dist/index.cjs","type":"module","_from":"file:grantjs-server-1.1.4.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./nest":{"types":"./dist/nest/index.d.ts","import":"./dist/nest.mjs","require":"./dist/nest.cjs"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next.mjs","require":"./dist/next.cjs"},"./express":{"types":"./dist/express/index.d.ts","import":"./dist/express.mjs","require":"./dist/express.cjs"},"./fastify":{"types":"./dist/fastify/index.d.ts","import":"./dist/fastify.mjs","require":"./dist/fastify.cjs"}},"scripts":{"lint":"eslint src --ext .ts","test":"vitest","build":"vite build","lint:fix":"eslint src --ext .ts --fix","test:run":"vitest run","type-check":"tsc --noEmit","build:watch":"vite build --watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"logus","email":"logusgraphics@icloud.com"},"_resolved":"/tmp/e44280b4b120baa0374350d497f5bb58/grantjs-server-1.1.4.tgz","_integrity":"sha512-dJAMVJ3yMvWyEfA/f6WXIoONJqu6X3HgnDKhRRj2NIR3+UIXHkGcutNK9HGRIEmN/eFsZ26XOZ/b76a+fAA6qg==","repository":{"url":"git+https://github.com/grant-js/grant.git","type":"git","directory":"packages/@grantjs/server"},"_npmVersion":"11.9.0","description":"Server SDK for Grant authorization - Middleware and guards for Express, Fastify, NestJS, and Next.js","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","dependencies":{"@grantjs/schema":"1.1.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.6","vite":"^8.0.14","eslint":"^10.3.0","vitest":"^4.1.5","express":"^5.1.0","fastify":"^5.8.5","typescript":"^6","@types/node":"^25.6.0","@nestjs/core":"^11.1.19","@nestjs/common":"^11.1.19","@types/express":"^5.0.0","vite-plugin-dts":"^5.0.0","@vitest/coverage-v8":"^4.1.5"},"peerDependencies":{"next":">=13.0.0 <17.0.0","express":"^4 || ^5","fastify":"^4 || ^5","@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/server_1.1.4_1780498434032_0.7062976136456804","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"@grantjs/server","version":"1.1.5","keywords":["grant","authorization","permissions","rbac","role-based-access-control","express","fastify","nestjs","nextjs","middleware","access-control","typescript","multi-tenant","sdk","server"],"author":{"url":"https://grantjs.org","name":"Ale Heredia","email":"ale@grantjs.org"},"license":"MIT","_id":"@grantjs/server@1.1.5","maintainers":[{"name":"logus","email":"logusgraphics@icloud.com"}],"homepage":"https://github.com/grant-js/grant#readme","bugs":{"url":"https://github.com/grant-js/grant/issues"},"dist":{"shasum":"7a2c750477013a1d21f90145b391744ce1bce29e","tarball":"https://registry.npmjs.org/@grantjs/server/-/server-1.1.5.tgz","fileCount":65,"integrity":"sha512-efUmAYWPI5YC8VjHb9gaunIHh+54FyxlDkvjEBOb2uvn37b8Wm2jFDC+Ca4N+5r8k4LCUZ7GrIa3QZg3Eavrgg==","signatures":[{"sig":"MEUCIGcTXjhs40s9E2zhH0kdctSHDKBTqw5oC5TUd8GGMcwiAiEA7L7mYTva2ITmVJcRHps+uCV8+Lbi3DIVh78LpeHoBTM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187555},"main":"./dist/index.cjs","type":"module","_from":"file:grantjs-server-1.1.5.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./nest":{"types":"./dist/nest/index.d.ts","import":"./dist/nest.mjs","require":"./dist/nest.cjs"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next.mjs","require":"./dist/next.cjs"},"./express":{"types":"./dist/express/index.d.ts","import":"./dist/express.mjs","require":"./dist/express.cjs"},"./fastify":{"types":"./dist/fastify/index.d.ts","import":"./dist/fastify.mjs","require":"./dist/fastify.cjs"}},"scripts":{"lint":"eslint src --ext .ts","test":"vitest","build":"vite build","lint:fix":"eslint src --ext .ts --fix","test:run":"vitest run","type-check":"tsc --noEmit","build:watch":"vite build --watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"logus","email":"logusgraphics@icloud.com"},"_resolved":"/tmp/8947f62ad9ae33d91ad9cdc7afea872c/grantjs-server-1.1.5.tgz","_integrity":"sha512-efUmAYWPI5YC8VjHb9gaunIHh+54FyxlDkvjEBOb2uvn37b8Wm2jFDC+Ca4N+5r8k4LCUZ7GrIa3QZg3Eavrgg==","repository":{"url":"git+https://github.com/grant-js/grant.git","type":"git","directory":"packages/@grantjs/server"},"_npmVersion":"11.9.0","description":"Server SDK for Grant authorization - Middleware and guards for Express, Fastify, NestJS, and Next.js","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","dependencies":{"@grantjs/schema":"1.1.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.6","vite":"^8.0.14","eslint":"^10.3.0","vitest":"^4.1.5","express":"^5.1.0","fastify":"^5.8.5","typescript":"^6","@types/node":"^25.6.0","@nestjs/core":"^11.1.19","@nestjs/common":"^11.1.19","@types/express":"^5.0.0","vite-plugin-dts":"^5.0.0","@vitest/coverage-v8":"^4.1.5"},"peerDependencies":{"next":">=13.0.0 <17.0.0","express":"^4 || ^5","fastify":"^4 || ^5","@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/server_1.1.5_1781098639025_0.06141722616772016","host":"s3://npm-registry-packages-npm-production"}},"1.1.6":{"name":"@grantjs/server","version":"1.1.6","keywords":["grant","authorization","permissions","rbac","role-based-access-control","express","fastify","nestjs","nextjs","middleware","access-control","typescript","multi-tenant","sdk","server"],"author":{"url":"https://grantjs.org","name":"Ale Heredia","email":"ale@grantjs.org"},"license":"MIT","_id":"@grantjs/server@1.1.6","maintainers":[{"name":"logus","email":"logusgraphics@icloud.com"}],"homepage":"https://github.com/grant-js/grant#readme","bugs":{"url":"https://github.com/grant-js/grant/issues"},"dist":{"shasum":"c2dac4c6e64a6c3e7aa975be490a5860c7dd9d40","tarball":"https://registry.npmjs.org/@grantjs/server/-/server-1.1.6.tgz","fileCount":65,"integrity":"sha512-YhimZH9mo5cF3xMBZRyjA619QgWUuhHG3wTvqSkUi+wYUOj8GCqqRTEaPgtb9SlVMaWuEwiPtFWWe5ytNxOsiA==","signatures":[{"sig":"MEUCIFpyN9k0Ze0SUYcaP9EvNPVMFw4cBBVu+JaBRWjF/QRFAiEAjDVNpazS6pbc90OjInnZ321QDNpMCwjaMgZga5meY5Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187555},"main":"./dist/index.cjs","type":"module","_from":"file:grantjs-server-1.1.6.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./nest":{"types":"./dist/nest/index.d.ts","import":"./dist/nest.mjs","require":"./dist/nest.cjs"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next.mjs","require":"./dist/next.cjs"},"./express":{"types":"./dist/express/index.d.ts","import":"./dist/express.mjs","require":"./dist/express.cjs"},"./fastify":{"types":"./dist/fastify/index.d.ts","import":"./dist/fastify.mjs","require":"./dist/fastify.cjs"}},"scripts":{"lint":"eslint src --ext .ts","test":"vitest","build":"vite build","lint:fix":"eslint src --ext .ts --fix","test:run":"vitest run","type-check":"tsc --noEmit","build:watch":"vite build --watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"logus","email":"logusgraphics@icloud.com"},"_resolved":"/tmp/c14a1dd8bc117993bfc4510998e3e5ae/grantjs-server-1.1.6.tgz","_integrity":"sha512-YhimZH9mo5cF3xMBZRyjA619QgWUuhHG3wTvqSkUi+wYUOj8GCqqRTEaPgtb9SlVMaWuEwiPtFWWe5ytNxOsiA==","repository":{"url":"git+https://github.com/grant-js/grant.git","type":"git","directory":"packages/@grantjs/server"},"_npmVersion":"11.9.0","description":"Server SDK for Grant authorization - Middleware and guards for Express, Fastify, NestJS, and Next.js","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","dependencies":{"@grantjs/schema":"1.1.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.6","vite":"^8.0.14","eslint":"^10.3.0","vitest":"^4.1.5","express":"^5.1.0","fastify":"^5.8.5","typescript":"^6","@types/node":"^25.6.0","@nestjs/core":"^11.1.19","@nestjs/common":"^11.1.19","@types/express":"^5.0.0","vite-plugin-dts":"^5.0.0","@vitest/coverage-v8":"^4.1.5"},"peerDependencies":{"next":">=13.0.0 <17.0.0","express":"^4 || ^5","fastify":"^4 || ^5","@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/server_1.1.6_1781108675103_0.28550255245859146","host":"s3://npm-registry-packages-npm-production"}},"1.1.7":{"name":"@grantjs/server","version":"1.1.7","keywords":["grant","authorization","permissions","rbac","role-based-access-control","express","fastify","nestjs","nextjs","middleware","access-control","typescript","multi-tenant","sdk","server"],"author":{"url":"https://grantjs.org","name":"Ale Heredia","email":"ale@grantjs.org"},"license":"MIT","_id":"@grantjs/server@1.1.7","maintainers":[{"name":"logus","email":"logusgraphics@icloud.com"}],"homepage":"https://github.com/grant-js/grant#readme","bugs":{"url":"https://github.com/grant-js/grant/issues"},"dist":{"shasum":"b4ab4e98b199ddd47430cf64a275a24251da0163","tarball":"https://registry.npmjs.org/@grantjs/server/-/server-1.1.7.tgz","fileCount":65,"integrity":"sha512-jmgp0XhZixMHZiAY9JZPSzY9OJp/vabKCa8oZqoC1cUNgVSsYp0aY1IO2kikxvymnsejrwBuvi8DeHtvDXORCA==","signatures":[{"sig":"MEUCIDjQMXK8xaM5N4lHHF8eQD2FC/jUsphvGtLIcvcSyxfPAiEA1jmhZtAF2im49/y7mj64Oivf1TnLlHKLKc9HZ3B0IH0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187555},"main":"./dist/index.cjs","type":"module","_from":"file:grantjs-server-1.1.7.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./nest":{"types":"./dist/nest/index.d.ts","import":"./dist/nest.mjs","require":"./dist/nest.cjs"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next.mjs","require":"./dist/next.cjs"},"./express":{"types":"./dist/express/index.d.ts","import":"./dist/express.mjs","require":"./dist/express.cjs"},"./fastify":{"types":"./dist/fastify/index.d.ts","import":"./dist/fastify.mjs","require":"./dist/fastify.cjs"}},"scripts":{"lint":"eslint src --ext .ts","test":"vitest","build":"vite build","lint:fix":"eslint src --ext .ts --fix","test:run":"vitest run","type-check":"tsc --noEmit","build:watch":"vite build --watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"logus","email":"logusgraphics@icloud.com"},"_resolved":"/tmp/40e5560d397bc078923b26dedfc8f8d4/grantjs-server-1.1.7.tgz","_integrity":"sha512-jmgp0XhZixMHZiAY9JZPSzY9OJp/vabKCa8oZqoC1cUNgVSsYp0aY1IO2kikxvymnsejrwBuvi8DeHtvDXORCA==","repository":{"url":"git+https://github.com/grant-js/grant.git","type":"git","directory":"packages/@grantjs/server"},"_npmVersion":"11.9.0","description":"Server SDK for Grant authorization - Middleware and guards for Express, Fastify, NestJS, and Next.js","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","dependencies":{"@grantjs/schema":"1.1.7"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.6","vite":"^8.0.14","eslint":"^10.3.0","vitest":"^4.1.5","express":"^5.1.0","fastify":"^5.8.5","typescript":"^6","@types/node":"^25.6.0","@nestjs/core":"^11.1.19","@nestjs/common":"^11.1.19","@types/express":"^5.0.0","vite-plugin-dts":"^5.0.0","@vitest/coverage-v8":"^4.1.5"},"peerDependencies":{"next":">=13.0.0 <17.0.0","express":"^4 || ^5","fastify":"^4 || ^5","@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/server_1.1.7_1781114434637_0.10746797554550658","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@grantjs/server","version":"1.2.0","keywords":["grant","authorization","permissions","rbac","role-based-access-control","express","fastify","nestjs","nextjs","middleware","access-control","typescript","multi-tenant","sdk","server"],"author":{"url":"https://grantjs.org","name":"Ale Heredia","email":"ale@grantjs.org"},"license":"MIT","_id":"@grantjs/server@1.2.0","maintainers":[{"name":"logus","email":"logusgraphics@icloud.com"}],"homepage":"https://github.com/grant-js/grant#readme","bugs":{"url":"https://github.com/grant-js/grant/issues"},"dist":{"shasum":"7c03d88d921a14c40fdb26c54fd5999e9ecf473e","tarball":"https://registry.npmjs.org/@grantjs/server/-/server-1.2.0.tgz","fileCount":65,"integrity":"sha512-09rUPKTCnUfnCIH4OmKpEQFoXbTYwBZV6GFFmXgQzrZR8yXV5KmUatd/+GIwYjG0pexvynfqsuwGbg+62RJLjw==","signatures":[{"sig":"MEUCIH64X7cHOvrohxiFnO3nHwodhR+brzp09oa9E98vhLd9AiEAyvspP4Xgf9PYcs6ZmMKnEkzJfgEPY4qDXzk3TP4U6tU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187555},"main":"./dist/index.cjs","type":"module","_from":"file:grantjs-server-1.2.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./nest":{"types":"./dist/nest/index.d.ts","import":"./dist/nest.mjs","require":"./dist/nest.cjs"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next.mjs","require":"./dist/next.cjs"},"./express":{"types":"./dist/express/index.d.ts","import":"./dist/express.mjs","require":"./dist/express.cjs"},"./fastify":{"types":"./dist/fastify/index.d.ts","import":"./dist/fastify.mjs","require":"./dist/fastify.cjs"}},"scripts":{"lint":"eslint src --ext .ts","test":"vitest","build":"vite build","lint:fix":"eslint src --ext .ts --fix","test:run":"vitest run","type-check":"tsc --noEmit","build:watch":"vite build --watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"logus","email":"logusgraphics@icloud.com"},"_resolved":"/tmp/c7f03839fdf349641c3692a1861d0531/grantjs-server-1.2.0.tgz","_integrity":"sha512-09rUPKTCnUfnCIH4OmKpEQFoXbTYwBZV6GFFmXgQzrZR8yXV5KmUatd/+GIwYjG0pexvynfqsuwGbg+62RJLjw==","repository":{"url":"git+https://github.com/grant-js/grant.git","type":"git","directory":"packages/@grantjs/server"},"_npmVersion":"11.9.0","description":"Server SDK for Grant authorization - Middleware and guards for Express, Fastify, NestJS, and Next.js","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","dependencies":{"@grantjs/schema":"1.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.6","vite":"^8.0.14","eslint":"^10.3.0","vitest":"^4.1.5","express":"^5.1.0","fastify":"^5.8.5","typescript":"^6","@types/node":"^25.6.0","@nestjs/core":"^11.1.19","@nestjs/common":"^11.1.19","@types/express":"^5.0.0","vite-plugin-dts":"^5.0.0","@vitest/coverage-v8":"^4.1.5"},"peerDependencies":{"next":">=13.0.0 <17.0.0","express":"^4 || ^5","fastify":"^4 || ^5","@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/server_1.2.0_1781476171483_0.11933724163660875","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@grantjs/server","version":"1.3.0","keywords":["grant","authorization","permissions","rbac","role-based-access-control","express","fastify","nestjs","nextjs","middleware","access-control","typescript","multi-tenant","sdk","server"],"author":{"url":"https://grantjs.org","name":"Ale Heredia","email":"ale@grantjs.org"},"license":"MIT","_id":"@grantjs/server@1.3.0","maintainers":[{"name":"logus","email":"logusgraphics@icloud.com"}],"homepage":"https://github.com/grant-js/grant#readme","bugs":{"url":"https://github.com/grant-js/grant/issues"},"dist":{"shasum":"582d2d4134177add1209d813d7c58a013ffff88a","tarball":"https://registry.npmjs.org/@grantjs/server/-/server-1.3.0.tgz","fileCount":65,"integrity":"sha512-kmJK+Mp4JZIiJ8Ln9s7N/DeAkSTnuhixiKaBTiu4qJFFKLy3v1stGLdm+TYS/by++pbAUDt4hft8eqXvb2jYtA==","signatures":[{"sig":"MEYCIQDK7s9uZKfCqg65l6zkQ9xtM479kzZYzlMhE2DjwRaCfQIhAKHA4qF8RfpOMkFofC6Bin3cZ23GNWQIQpfsuH1Ot3Jn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187511},"main":"./dist/index.cjs","type":"module","_from":"file:grantjs-server-1.3.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./nest":{"types":"./dist/nest/index.d.ts","import":"./dist/nest.mjs","require":"./dist/nest.cjs"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next.mjs","require":"./dist/next.cjs"},"./express":{"types":"./dist/express/index.d.ts","import":"./dist/express.mjs","require":"./dist/express.cjs"},"./fastify":{"types":"./dist/fastify/index.d.ts","import":"./dist/fastify.mjs","require":"./dist/fastify.cjs"}},"scripts":{"lint":"eslint src --ext .ts","test":"vitest","build":"vite build","lint:fix":"eslint src --ext .ts --fix","test:run":"vitest run","type-check":"tsc --noEmit","build:watch":"vite build --watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"logus","email":"logusgraphics@icloud.com"},"_resolved":"/tmp/c7c005d0d4e58a52de9afa3102a4c1de/grantjs-server-1.3.0.tgz","_integrity":"sha512-kmJK+Mp4JZIiJ8Ln9s7N/DeAkSTnuhixiKaBTiu4qJFFKLy3v1stGLdm+TYS/by++pbAUDt4hft8eqXvb2jYtA==","repository":{"url":"git+https://github.com/grant-js/grant.git","type":"git","directory":"packages/@grantjs/server"},"_npmVersion":"11.9.0","description":"Server SDK for Grant authorization - Middleware and guards for Express, Fastify, NestJS, and Next.js","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","dependencies":{"@grantjs/schema":"1.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.9","vite":"^8.0.16","eslint":"^10.5.0","vitest":"^4.1.5","express":"^5.1.0","fastify":"^5.8.5","typescript":"^6","@types/node":"^25.9.3","@nestjs/core":"^11.1.26","@nestjs/common":"^11.1.26","@types/express":"^5.0.0","vite-plugin-dts":"^5.0.2","@vitest/coverage-v8":"^4.1.9"},"peerDependencies":{"next":">=13.0.0 <17.0.0","express":"^4 || ^5","fastify":"^4 || ^5","@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/server_1.3.0_1781532719370_0.9435149890844445","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@grantjs/server","version":"1.3.1","keywords":["grant","authorization","permissions","rbac","role-based-access-control","express","fastify","nestjs","nextjs","middleware","access-control","typescript","multi-tenant","sdk","server"],"author":{"url":"https://grantjs.org","name":"Ale Heredia","email":"ale@grantjs.org"},"license":"MIT","_id":"@grantjs/server@1.3.1","maintainers":[{"name":"logus","email":"logusgraphics@icloud.com"}],"homepage":"https://github.com/grant-js/grant#readme","bugs":{"url":"https://github.com/grant-js/grant/issues"},"dist":{"shasum":"9cc01dc0e90bd849925989686e4c4f2bc9998ee9","tarball":"https://registry.npmjs.org/@grantjs/server/-/server-1.3.1.tgz","fileCount":65,"integrity":"sha512-+9czp3PMykhU5Y1OKF1exlkNu9LYyox2eHVsTxdwXR60hBavuFqgsTyHw3CLX1CYNRBt732h4kNo6+RoA7Z5Cg==","signatures":[{"sig":"MEUCIQD3uGd6703QcA7gpS94yt1uiPGXu8fBZg+lJYLmKxpT9gIgOLrmX3gXrx8nMqctWPGogvzz1pC00itzkPTd2cl9VPY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187511},"main":"./dist/index.cjs","type":"module","_from":"file:grantjs-server-1.3.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./nest":{"types":"./dist/nest/index.d.ts","import":"./dist/nest.mjs","require":"./dist/nest.cjs"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next.mjs","require":"./dist/next.cjs"},"./express":{"types":"./dist/express/index.d.ts","import":"./dist/express.mjs","require":"./dist/express.cjs"},"./fastify":{"types":"./dist/fastify/index.d.ts","import":"./dist/fastify.mjs","require":"./dist/fastify.cjs"}},"scripts":{"lint":"eslint src --ext .ts","test":"vitest","build":"vite build","lint:fix":"eslint src --ext .ts --fix","test:run":"vitest run","type-check":"tsc --noEmit","build:watch":"vite build --watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"logus","email":"logusgraphics@icloud.com"},"_resolved":"/tmp/1e02a3b34edffb1e4cf1874ba4b29ad3/grantjs-server-1.3.1.tgz","_integrity":"sha512-+9czp3PMykhU5Y1OKF1exlkNu9LYyox2eHVsTxdwXR60hBavuFqgsTyHw3CLX1CYNRBt732h4kNo6+RoA7Z5Cg==","repository":{"url":"git+https://github.com/grant-js/grant.git","type":"git","directory":"packages/@grantjs/server"},"_npmVersion":"11.9.0","description":"Server SDK for Grant authorization - Middleware and guards for Express, Fastify, NestJS, and Next.js","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","dependencies":{"@grantjs/schema":"1.3.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.9","vite":"^8.0.16","eslint":"^10.5.0","vitest":"^4.1.9","express":"^5.1.0","fastify":"^5.8.5","typescript":"^6","@types/node":"^25.9.3","@nestjs/core":"^11.1.27","@nestjs/common":"^11.1.27","@types/express":"^5.0.0","vite-plugin-dts":"^5.0.2","@vitest/coverage-v8":"^4.1.9"},"peerDependencies":{"next":">=13.0.0 <17.0.0","express":"^4 || ^5","fastify":"^4 || ^5","@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/server_1.3.1_1781774836541_0.9786498526608274","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@grantjs/server","version":"1.3.2","keywords":["grant","authorization","permissions","rbac","role-based-access-control","express","fastify","nestjs","nextjs","middleware","access-control","typescript","multi-tenant","sdk","server"],"author":{"url":"https://grantjs.org","name":"Ale Heredia","email":"ale@grantjs.org"},"license":"MIT","_id":"@grantjs/server@1.3.2","maintainers":[{"name":"logus","email":"logusgraphics@icloud.com"}],"homepage":"https://github.com/grant-js/grant#readme","bugs":{"url":"https://github.com/grant-js/grant/issues"},"dist":{"shasum":"62ddcb09b6c8af84fc4093d725033cf64ca85748","tarball":"https://registry.npmjs.org/@grantjs/server/-/server-1.3.2.tgz","fileCount":65,"integrity":"sha512-b9r02oz6aFkXbCF11XkvvKEC8kJ1JGzd107iHjDNopGSuqbX4KDNRsTWJ8AVkQKfcmOcj33mxquHlyFdLrgm3A==","signatures":[{"sig":"MEUCIQCjUV6qJdlMYOhMcBrjc2x2gB9F5BsuFGYrU/jWk4MY8AIgcaaKq9MHHJKIDFn0GGW/wQd2G68sGsIpup2PwgR//9g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187511},"main":"./dist/index.cjs","type":"module","_from":"file:grantjs-server-1.3.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./nest":{"types":"./dist/nest/index.d.ts","import":"./dist/nest.mjs","require":"./dist/nest.cjs"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next.mjs","require":"./dist/next.cjs"},"./express":{"types":"./dist/express/index.d.ts","import":"./dist/express.mjs","require":"./dist/express.cjs"},"./fastify":{"types":"./dist/fastify/index.d.ts","import":"./dist/fastify.mjs","require":"./dist/fastify.cjs"}},"scripts":{"lint":"eslint src --ext .ts","test":"vitest","build":"vite build","lint:fix":"eslint src --ext .ts --fix","test:run":"vitest run","type-check":"tsc --noEmit","build:watch":"vite build --watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"logus","email":"logusgraphics@icloud.com"},"_resolved":"/tmp/715d9f2e9901431ef11e1c4ebe265279/grantjs-server-1.3.2.tgz","_integrity":"sha512-b9r02oz6aFkXbCF11XkvvKEC8kJ1JGzd107iHjDNopGSuqbX4KDNRsTWJ8AVkQKfcmOcj33mxquHlyFdLrgm3A==","repository":{"url":"git+https://github.com/grant-js/grant.git","type":"git","directory":"packages/@grantjs/server"},"_npmVersion":"11.9.0","description":"Server SDK for Grant authorization - Middleware and guards for Express, Fastify, NestJS, and Next.js","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","dependencies":{"@grantjs/schema":"1.3.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.9","vite":"^8.0.16","eslint":"^10.5.0","vitest":"^4.1.9","express":"^5.1.0","fastify":"^5.8.5","typescript":"^6","@types/node":"^25.9.3","@nestjs/core":"^11.1.27","@nestjs/common":"^11.1.27","@types/express":"^5.0.0","vite-plugin-dts":"^5.0.2","@vitest/coverage-v8":"^4.1.9"},"peerDependencies":{"next":">=13.0.0 <17.0.0","express":"^4 || ^5","fastify":"^4 || ^5","@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/server_1.3.2_1781791060201_0.27908643730609706","host":"s3://npm-registry-packages-npm-production"}},"1.3.3":{"name":"@grantjs/server","version":"1.3.3","keywords":["grant","authorization","permissions","rbac","role-based-access-control","express","fastify","nestjs","nextjs","middleware","access-control","typescript","multi-tenant","sdk","server"],"author":{"url":"https://grantjs.org","name":"Ale Heredia","email":"ale@grantjs.org"},"license":"MIT","_id":"@grantjs/server@1.3.3","maintainers":[{"name":"logus","email":"logusgraphics@icloud.com"}],"homepage":"https://github.com/grant-js/grant#readme","bugs":{"url":"https://github.com/grant-js/grant/issues"},"dist":{"shasum":"ec8df56ee9be19517fcadddb60028af1fda96b9c","tarball":"https://registry.npmjs.org/@grantjs/server/-/server-1.3.3.tgz","fileCount":65,"integrity":"sha512-xZbx7Fbk6j3Yx3rO8DOcZ+HtNNTL9GdwnhHw3SPFcYeHt7InZrlLwgsEpcwXcf6vcDuiSHe/LQeEJf4wjxOchQ==","signatures":[{"sig":"MEUCIGDdqxLZpBmj4Adi8fen3gzpqOsxA3oQqzPGx+ZNXDswAiEAntadc0/DMel8i4zpthG9h5KD1SW1RyTsR47z3aLd3Y4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187511},"main":"./dist/index.cjs","type":"module","_from":"file:grantjs-server-1.3.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./nest":{"types":"./dist/nest/index.d.ts","import":"./dist/nest.mjs","require":"./dist/nest.cjs"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next.mjs","require":"./dist/next.cjs"},"./express":{"types":"./dist/express/index.d.ts","import":"./dist/express.mjs","require":"./dist/express.cjs"},"./fastify":{"types":"./dist/fastify/index.d.ts","import":"./dist/fastify.mjs","require":"./dist/fastify.cjs"}},"scripts":{"lint":"eslint src --ext .ts","test":"vitest","build":"vite build","lint:fix":"eslint src --ext .ts --fix","test:run":"vitest run","type-check":"tsc --noEmit","build:watch":"vite build --watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"logus","email":"logusgraphics@icloud.com"},"_resolved":"/tmp/0ac2e0d74a817388409f677476bdbfc8/grantjs-server-1.3.3.tgz","_integrity":"sha512-xZbx7Fbk6j3Yx3rO8DOcZ+HtNNTL9GdwnhHw3SPFcYeHt7InZrlLwgsEpcwXcf6vcDuiSHe/LQeEJf4wjxOchQ==","repository":{"url":"git+https://github.com/grant-js/grant.git","type":"git","directory":"packages/@grantjs/server"},"_npmVersion":"11.9.0","description":"Server SDK for Grant authorization - Middleware and guards for Express, Fastify, NestJS, and Next.js","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","dependencies":{"@grantjs/schema":"1.3.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.9","vite":"^8.0.16","eslint":"^10.5.0","vitest":"^4.1.9","express":"^5.1.0","fastify":"^5.8.5","typescript":"^6","@types/node":"^25.9.3","@nestjs/core":"^11.1.27","@nestjs/common":"^11.1.27","@types/express":"^5.0.0","vite-plugin-dts":"^5.0.2","@vitest/coverage-v8":"^4.1.9"},"peerDependencies":{"next":">=13.0.0 <17.0.0","express":"^4 || ^5","fastify":"^4 || ^5","@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/server_1.3.3_1781799431743_0.5147910748597013","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@grantjs/server","version":"1.4.0","keywords":["grant","authorization","permissions","rbac","role-based-access-control","express","fastify","nestjs","nextjs","middleware","access-control","typescript","multi-tenant","sdk","server"],"author":{"url":"https://grantjs.org","name":"Ale Heredia","email":"ale@grantjs.org"},"license":"MIT","_id":"@grantjs/server@1.4.0","maintainers":[{"name":"logus","email":"logusgraphics@icloud.com"}],"homepage":"https://github.com/grant-js/grant#readme","bugs":{"url":"https://github.com/grant-js/grant/issues"},"dist":{"shasum":"76cd09b3a7cd1e9be5dfeb456ded4ed1d5b91e77","tarball":"https://registry.npmjs.org/@grantjs/server/-/server-1.4.0.tgz","fileCount":65,"integrity":"sha512-VC6JhEE9G3X8k91EKaLXo0lOwM7sVWnuqbx9fWBZr7sbrkfx+2yDZTuWPP/HfkVnKoOUDNzFswFIFuhB65/MMQ==","signatures":[{"sig":"MEQCIErgNleilVlJdZIi7eWnDHMzaU7vmXuUV+pEx3XJ3unbAiAfuvbdIcwBKYbfJdLfgEtY9LZhORyx1hA+4I7qzjRvgg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187511},"main":"./dist/index.cjs","type":"module","_from":"file:grantjs-server-1.4.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./nest":{"types":"./dist/nest/index.d.ts","import":"./dist/nest.mjs","require":"./dist/nest.cjs"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next.mjs","require":"./dist/next.cjs"},"./express":{"types":"./dist/express/index.d.ts","import":"./dist/express.mjs","require":"./dist/express.cjs"},"./fastify":{"types":"./dist/fastify/index.d.ts","import":"./dist/fastify.mjs","require":"./dist/fastify.cjs"}},"scripts":{"lint":"eslint src --ext .ts","test":"vitest","build":"vite build","lint:fix":"eslint src --ext .ts --fix","test:run":"vitest run","type-check":"tsc --noEmit","build:watch":"vite build --watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"logus","email":"logusgraphics@icloud.com"},"_resolved":"/tmp/572d8163c723acf13385c963a690dd74/grantjs-server-1.4.0.tgz","_integrity":"sha512-VC6JhEE9G3X8k91EKaLXo0lOwM7sVWnuqbx9fWBZr7sbrkfx+2yDZTuWPP/HfkVnKoOUDNzFswFIFuhB65/MMQ==","repository":{"url":"git+https://github.com/grant-js/grant.git","type":"git","directory":"packages/@grantjs/server"},"_npmVersion":"11.9.0","description":"Server SDK for Grant authorization - Middleware and guards for Express, Fastify, NestJS, and Next.js","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","dependencies":{"@grantjs/schema":"1.4.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.9","vite":"^8.0.16","eslint":"^10.5.0","vitest":"^4.1.9","express":"^5.1.0","fastify":"^5.8.5","typescript":"^6","@types/node":"^25.9.3","@nestjs/core":"^11.1.27","@nestjs/common":"^11.1.27","@types/express":"^5.0.0","vite-plugin-dts":"^5.0.2","@vitest/coverage-v8":"^4.1.9"},"peerDependencies":{"next":">=13.0.0 <17.0.0","express":"^4 || ^5","fastify":"^4 || ^5","@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/server_1.4.0_1781813245531_0.11415638482593415","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@grantjs/server","version":"1.4.1","keywords":["grant","authorization","permissions","rbac","role-based-access-control","express","fastify","nestjs","nextjs","middleware","access-control","typescript","multi-tenant","sdk","server"],"author":{"url":"https://grantjs.org","name":"Ale Heredia","email":"ale@grantjs.org"},"license":"MIT","_id":"@grantjs/server@1.4.1","maintainers":[{"name":"logus","email":"logusgraphics@icloud.com"}],"homepage":"https://github.com/grant-js/grant#readme","bugs":{"url":"https://github.com/grant-js/grant/issues"},"dist":{"shasum":"5af40a4b6d5720a89df51d989f49870a3721dc30","tarball":"https://registry.npmjs.org/@grantjs/server/-/server-1.4.1.tgz","fileCount":65,"integrity":"sha512-5cn3L6PL3qW86L7sA7GJJ5odt1Y862BkhELzR6nvuAaxRbD5GTOjzFcDvipNB8lUCCqUSv85kikxNRcyagydmA==","signatures":[{"sig":"MEUCIQDtHjIEI4PRX2CmJTOirTOHZjMmw14V01lsw0yrbe/V4QIgOBQ7oY8EYQO2928PEb7aCtu7RyFBZW5j9O1ADlfMxvU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187511},"main":"./dist/index.cjs","type":"module","_from":"file:grantjs-server-1.4.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./nest":{"types":"./dist/nest/index.d.ts","import":"./dist/nest.mjs","require":"./dist/nest.cjs"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next.mjs","require":"./dist/next.cjs"},"./express":{"types":"./dist/express/index.d.ts","import":"./dist/express.mjs","require":"./dist/express.cjs"},"./fastify":{"types":"./dist/fastify/index.d.ts","import":"./dist/fastify.mjs","require":"./dist/fastify.cjs"}},"scripts":{"lint":"eslint src --ext .ts","test":"vitest","build":"vite build","lint:fix":"eslint src --ext .ts --fix","test:run":"vitest run","type-check":"tsc --noEmit","build:watch":"vite build --watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"logus","email":"logusgraphics@icloud.com"},"_resolved":"/tmp/d598379e35933824dc949af678d69007/grantjs-server-1.4.1.tgz","_integrity":"sha512-5cn3L6PL3qW86L7sA7GJJ5odt1Y862BkhELzR6nvuAaxRbD5GTOjzFcDvipNB8lUCCqUSv85kikxNRcyagydmA==","repository":{"url":"git+https://github.com/grant-js/grant.git","type":"git","directory":"packages/@grantjs/server"},"_npmVersion":"11.9.0","description":"Server SDK for Grant authorization - Middleware and guards for Express, Fastify, NestJS, and Next.js","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","dependencies":{"@grantjs/schema":"1.4.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.9","vite":"^8.0.16","eslint":"^10.5.0","vitest":"^4.1.9","express":"^5.1.0","fastify":"^5.8.5","typescript":"^6","@types/node":"^25.9.3","@nestjs/core":"^11.1.27","@nestjs/common":"^11.1.27","@types/express":"^5.0.0","vite-plugin-dts":"^5.0.2","@vitest/coverage-v8":"^4.1.9"},"peerDependencies":{"next":">=13.0.0 <17.0.0","express":"^4 || ^5","fastify":"^4 || ^5","@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/server_1.4.1_1781823770969_0.3615217376756652","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"@grantjs/server","version":"1.4.2","keywords":["grant","authorization","permissions","rbac","role-based-access-control","express","fastify","nestjs","nextjs","middleware","access-control","typescript","multi-tenant","sdk","server"],"author":{"url":"https://grantjs.org","name":"Ale Heredia","email":"ale@grantjs.org"},"license":"MIT","_id":"@grantjs/server@1.4.2","maintainers":[{"name":"logus","email":"logusgraphics@icloud.com"}],"homepage":"https://github.com/grant-js/grant#readme","bugs":{"url":"https://github.com/grant-js/grant/issues"},"dist":{"shasum":"3feca6c7d71ce2be7f8ea23f832214412fedb6d0","tarball":"https://registry.npmjs.org/@grantjs/server/-/server-1.4.2.tgz","fileCount":65,"integrity":"sha512-aWUbCkRRaJ1ophsUxaqOWKqpZ0TV3qh4BsiyC6Beb68oDmNHJvvEImrqnX+Ad+suXBauShQI0A5JBy6zFNem4A==","signatures":[{"sig":"MEUCIG5PQyp2zjWAcJqfD2nJ9UAdbSLoKcXmOuXGIfLvBPp3AiEAoJ6xKhJjvH6dxAwc+MrQ3ttKB90hVElANpa0ZZGDgxc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187511},"main":"./dist/index.cjs","type":"module","_from":"file:grantjs-server-1.4.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./nest":{"types":"./dist/nest/index.d.ts","import":"./dist/nest.mjs","require":"./dist/nest.cjs"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next.mjs","require":"./dist/next.cjs"},"./express":{"types":"./dist/express/index.d.ts","import":"./dist/express.mjs","require":"./dist/express.cjs"},"./fastify":{"types":"./dist/fastify/index.d.ts","import":"./dist/fastify.mjs","require":"./dist/fastify.cjs"}},"scripts":{"lint":"eslint src --ext .ts","test":"vitest","build":"vite build","lint:fix":"eslint src --ext .ts --fix","test:run":"vitest run","type-check":"tsc --noEmit","build:watch":"vite build --watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"logus","email":"logusgraphics@icloud.com"},"_resolved":"/tmp/3d7170f6ca6db401f3bc95a71835e794/grantjs-server-1.4.2.tgz","_integrity":"sha512-aWUbCkRRaJ1ophsUxaqOWKqpZ0TV3qh4BsiyC6Beb68oDmNHJvvEImrqnX+Ad+suXBauShQI0A5JBy6zFNem4A==","repository":{"url":"git+https://github.com/grant-js/grant.git","type":"git","directory":"packages/@grantjs/server"},"_npmVersion":"11.9.0","description":"Server SDK for Grant authorization - Middleware and guards for Express, Fastify, NestJS, and Next.js","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","dependencies":{"@grantjs/schema":"1.4.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.9","vite":"^8.0.16","eslint":"^10.5.0","vitest":"^4.1.9","express":"^5.1.0","fastify":"^5.8.5","typescript":"^6","@types/node":"^25.9.3","@nestjs/core":"^11.1.27","@nestjs/common":"^11.1.27","@types/express":"^5.0.0","vite-plugin-dts":"^5.0.2","@vitest/coverage-v8":"^4.1.9"},"peerDependencies":{"next":">=13.0.0 <17.0.0","express":"^4 || ^5","fastify":"^4 || ^5","@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/server_1.4.2_1781875050437_0.8661904333465342","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@grantjs/server","version":"1.5.0","keywords":["grant","authorization","permissions","rbac","role-based-access-control","express","fastify","nestjs","nextjs","middleware","access-control","typescript","multi-tenant","sdk","server"],"author":{"url":"https://grantjs.org","name":"Ale Heredia","email":"ale@grantjs.org"},"license":"MIT","_id":"@grantjs/server@1.5.0","maintainers":[{"name":"logus","email":"logusgraphics@icloud.com"}],"homepage":"https://github.com/grant-js/grant#readme","bugs":{"url":"https://github.com/grant-js/grant/issues"},"dist":{"shasum":"24e40d342ae1833835116af2323dd99de3e8152a","tarball":"https://registry.npmjs.org/@grantjs/server/-/server-1.5.0.tgz","fileCount":65,"integrity":"sha512-VG6MGwdK19nDCyyorIXFfcugNIFmtP0yKlF8tdq8ttlQxHTLLumDsDR4GnzUiJeuvtFoU8eC3sII7V6RVH3uWg==","signatures":[{"sig":"MEUCIDBgM6a1vdtLcdeXYGYJCBjvuPPM4b7YamqpiJcv6iyXAiEA0z/6pP0VbkEIl1s6KH0syUPL/bWO+TEpx2siCZfaH2o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":188040},"main":"./dist/index.cjs","type":"module","_from":"file:grantjs-server-1.5.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./nest":{"types":"./dist/nest/index.d.ts","import":"./dist/nest.mjs","require":"./dist/nest.cjs"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next.mjs","require":"./dist/next.cjs"},"./express":{"types":"./dist/express/index.d.ts","import":"./dist/express.mjs","require":"./dist/express.cjs"},"./fastify":{"types":"./dist/fastify/index.d.ts","import":"./dist/fastify.mjs","require":"./dist/fastify.cjs"}},"scripts":{"lint":"eslint src --ext .ts","test":"vitest","build":"vite build","lint:fix":"eslint src --ext .ts --fix","test:run":"vitest run","type-check":"tsc --noEmit","build:watch":"vite build --watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"logus","email":"logusgraphics@icloud.com"},"_resolved":"/tmp/24c65515fcbfa7452b70f0166ae6d3b8/grantjs-server-1.5.0.tgz","_integrity":"sha512-VG6MGwdK19nDCyyorIXFfcugNIFmtP0yKlF8tdq8ttlQxHTLLumDsDR4GnzUiJeuvtFoU8eC3sII7V6RVH3uWg==","repository":{"url":"git+https://github.com/grant-js/grant.git","type":"git","directory":"packages/@grantjs/server"},"_npmVersion":"11.9.0","description":"Server SDK for Grant authorization - Middleware and guards for Express, Fastify, NestJS, and Next.js","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","dependencies":{"@grantjs/schema":"1.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","vite":"^8.2.0","eslint":"^10.7.0","vitest":"^4.1.10","express":"^5.1.0","fastify":"^5.10.0","typescript":"^6.0.3","@types/node":"^26.1.1","@nestjs/core":"^11.1.28","@nestjs/common":"^11.1.28","@types/express":"^5.0.0","vite-plugin-dts":"^5.0.3","@vitest/coverage-v8":"^4.1.10"},"peerDependencies":{"next":">=13.0.0 <17.0.0","express":"^4 || ^5","fastify":"^4 || ^5","@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/server_1.5.0_1785615255652_0.6272024970078862","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"@grantjs/server","version":"1.5.1","keywords":["grant","authorization","permissions","rbac","role-based-access-control","express","fastify","nestjs","nextjs","middleware","access-control","typescript","multi-tenant","sdk","server"],"author":{"url":"https://grantjs.org","name":"Ale Heredia","email":"ale@grantjs.org"},"license":"MIT","_id":"@grantjs/server@1.5.1","maintainers":[{"name":"logus","email":"logusgraphics@icloud.com"}],"homepage":"https://github.com/grant-js/grant#readme","bugs":{"url":"https://github.com/grant-js/grant/issues"},"dist":{"shasum":"67b5b3778820c7a419b1196446064fa0bd1d3f95","tarball":"https://registry.npmjs.org/@grantjs/server/-/server-1.5.1.tgz","fileCount":65,"integrity":"sha512-eFKEEoH8oCCJ02XIdco+AaWUNs+Ip8q0A96c0OqYP7fQBxG3awcHufh8xZI3ClZAZn+R+SBXMLNMywJcAYql0A==","signatures":[{"sig":"MEUCIGM00BYRpYPuSHSJg+qP0KiVe0fMLLAOpI27OYZu/WO/AiEAh+sUvtdJIL3c3VTK6QhXL9oSTjrrsJP+xqmekX/bhUo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":188040},"main":"./dist/index.cjs","type":"module","_from":"file:grantjs-server-1.5.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./nest":{"types":"./dist/nest/index.d.ts","import":"./dist/nest.mjs","require":"./dist/nest.cjs"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next.mjs","require":"./dist/next.cjs"},"./express":{"types":"./dist/express/index.d.ts","import":"./dist/express.mjs","require":"./dist/express.cjs"},"./fastify":{"types":"./dist/fastify/index.d.ts","import":"./dist/fastify.mjs","require":"./dist/fastify.cjs"}},"scripts":{"lint":"eslint src --ext .ts","test":"vitest","build":"vite build","lint:fix":"eslint src --ext .ts --fix","test:run":"vitest run","type-check":"tsc --noEmit","build:watch":"vite build --watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"logus","email":"logusgraphics@icloud.com"},"_resolved":"/tmp/b58fb831fdd4a4eb3d1627f996c0b721/grantjs-server-1.5.1.tgz","_integrity":"sha512-eFKEEoH8oCCJ02XIdco+AaWUNs+Ip8q0A96c0OqYP7fQBxG3awcHufh8xZI3ClZAZn+R+SBXMLNMywJcAYql0A==","repository":{"url":"git+https://github.com/grant-js/grant.git","type":"git","directory":"packages/@grantjs/server"},"_npmVersion":"11.9.0","description":"Server SDK for Grant authorization - Middleware and guards for Express, Fastify, NestJS, and Next.js","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","dependencies":{"@grantjs/schema":"1.5.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","vite":"^8.2.0","eslint":"^10.7.0","vitest":"^4.1.10","express":"^5.1.0","fastify":"^5.10.0","typescript":"^6.0.3","@types/node":"^26.1.1","@nestjs/core":"^11.1.28","@nestjs/common":"^11.1.28","@types/express":"^5.0.0","vite-plugin-dts":"^5.0.3","@vitest/coverage-v8":"^4.1.10"},"peerDependencies":{"next":">=13.0.0 <17.0.0","express":"^4 || ^5","fastify":"^4 || ^5","@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/server_1.5.1_1785969205872_0.8377766991379978","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"@grantjs/server","version":"1.5.2","keywords":["grant","authorization","permissions","rbac","role-based-access-control","express","fastify","nestjs","nextjs","middleware","access-control","typescript","multi-tenant","sdk","server"],"author":{"url":"https://grantjs.org","name":"Ale Heredia","email":"ale@grantjs.org"},"license":"MIT","_id":"@grantjs/server@1.5.2","maintainers":[{"name":"logus","email":"logusgraphics@icloud.com"}],"homepage":"https://github.com/grant-js/grant#readme","bugs":{"url":"https://github.com/grant-js/grant/issues"},"dist":{"shasum":"6e7c804f17592abf830b0df83cbf295a817736ea","tarball":"https://registry.npmjs.org/@grantjs/server/-/server-1.5.2.tgz","fileCount":65,"integrity":"sha512-o4UyA55hGb9fJvSQ6jqR3OEGC2Z9oZzWS2X+g3uiNE9NBPChs/TW9pPDqMBWkM3t2EwBlYOyCKY5uR8Hrv6g0Q==","signatures":[{"sig":"MEUCIGwEgpVna5fDK4iJqzYbC9Fg4Dwbv0+K/IU7pAFhw9wdAiEA7vFQlWWdS3qzzmpCmlTOcZPRfdkJNrj7L47Y4q7Jby4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":188040},"main":"./dist/index.cjs","type":"module","_from":"file:grantjs-server-1.5.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./nest":{"types":"./dist/nest/index.d.ts","import":"./dist/nest.mjs","require":"./dist/nest.cjs"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next.mjs","require":"./dist/next.cjs"},"./express":{"types":"./dist/express/index.d.ts","import":"./dist/express.mjs","require":"./dist/express.cjs"},"./fastify":{"types":"./dist/fastify/index.d.ts","import":"./dist/fastify.mjs","require":"./dist/fastify.cjs"}},"scripts":{"lint":"eslint src --ext .ts","test":"vitest","build":"vite build","lint:fix":"eslint src --ext .ts --fix","test:run":"vitest run","type-check":"tsc --noEmit","build:watch":"vite build --watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"logus","email":"logusgraphics@icloud.com"},"_resolved":"/tmp/404e749e663aaa57ad2840a321aa098f/grantjs-server-1.5.2.tgz","_integrity":"sha512-o4UyA55hGb9fJvSQ6jqR3OEGC2Z9oZzWS2X+g3uiNE9NBPChs/TW9pPDqMBWkM3t2EwBlYOyCKY5uR8Hrv6g0Q==","repository":{"url":"git+https://github.com/grant-js/grant.git","type":"git","directory":"packages/@grantjs/server"},"_npmVersion":"11.9.0","description":"Server SDK for Grant authorization - Middleware and guards for Express, Fastify, NestJS, and Next.js","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","dependencies":{"@grantjs/schema":"1.5.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","vite":"^8.2.0","eslint":"^10.7.0","vitest":"^4.1.10","express":"^5.1.0","fastify":"^5.10.0","typescript":"^6.0.3","@types/node":"^26.1.1","@nestjs/core":"^11.1.28","@nestjs/common":"^11.1.28","@types/express":"^5.0.0","vite-plugin-dts":"^5.0.3","@vitest/coverage-v8":"^4.1.10"},"peerDependencies":{"next":">=13.0.0 <17.0.0","express":"^4 || ^5","fastify":"^4 || ^5","@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/server_1.5.2_1786282249587_0.5815923457844177","host":"s3://npm-registry-packages-npm-production"}},"1.5.3":{"name":"@grantjs/server","version":"1.5.3","keywords":["grant","authorization","permissions","rbac","role-based-access-control","express","fastify","nestjs","nextjs","middleware","access-control","typescript","multi-tenant","sdk","server"],"author":{"url":"https://grantjs.org","name":"Ale Heredia","email":"ale@grantjs.org"},"license":"MIT","_id":"@grantjs/server@1.5.3","maintainers":[{"name":"logus","email":"logusgraphics@icloud.com"}],"homepage":"https://github.com/grant-js/grant#readme","bugs":{"url":"https://github.com/grant-js/grant/issues"},"dist":{"shasum":"370538aeb4cf7efd14953d9b9065139eac1ed889","tarball":"https://registry.npmjs.org/@grantjs/server/-/server-1.5.3.tgz","fileCount":65,"integrity":"sha512-yJCSLMfxv0tMHui/zwVu6ju8+avEYh7PLoO0cdSQMzbBWrrSSg9nd1M3v9cxpq3sFYMD3LzKF1T5Sf8BAx/WHw==","signatures":[{"sig":"MEYCIQDftJAmUkoONR3ByOMFHgIat7jtDli/Klq0oZylAfXuKAIhAPC2jgrQjBsNRndjwg+COIEriiiRZgP19x5FWgt00jec","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":188040},"main":"./dist/index.cjs","type":"module","_from":"file:grantjs-server-1.5.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./nest":{"types":"./dist/nest/index.d.ts","import":"./dist/nest.mjs","require":"./dist/nest.cjs"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next.mjs","require":"./dist/next.cjs"},"./express":{"types":"./dist/express/index.d.ts","import":"./dist/express.mjs","require":"./dist/express.cjs"},"./fastify":{"types":"./dist/fastify/index.d.ts","import":"./dist/fastify.mjs","require":"./dist/fastify.cjs"}},"scripts":{"lint":"eslint src --ext .ts","test":"vitest","build":"vite build","lint:fix":"eslint src --ext .ts --fix","test:run":"vitest run","type-check":"tsc --noEmit","build:watch":"vite build --watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"logus","email":"logusgraphics@icloud.com"},"_resolved":"/tmp/bc96181b1f31dbab2aff16a0ad1461d7/grantjs-server-1.5.3.tgz","_integrity":"sha512-yJCSLMfxv0tMHui/zwVu6ju8+avEYh7PLoO0cdSQMzbBWrrSSg9nd1M3v9cxpq3sFYMD3LzKF1T5Sf8BAx/WHw==","repository":{"url":"git+https://github.com/grant-js/grant.git","type":"git","directory":"packages/@grantjs/server"},"_npmVersion":"11.9.0","description":"Server SDK for Grant authorization - Middleware and guards for Express, Fastify, NestJS, and Next.js","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","dependencies":{"@grantjs/schema":"1.5.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.11","vite":"^8.2.0","eslint":"^10.7.0","vitest":"^4.1.10","express":"^5.1.0","fastify":"^5.10.0","typescript":"^6.0.3","@types/node":"^26.1.1","@nestjs/core":"^11.1.28","@nestjs/common":"^11.1.28","@types/express":"^5.0.0","vite-plugin-dts":"^5.0.3","@vitest/coverage-v8":"^4.1.10"},"peerDependencies":{"next":">=13.0.0 <17.0.0","express":"^4 || ^5","fastify":"^4 || ^5","@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/server_1.5.3_1786895401220_0.984294495385083","host":"s3://npm-registry-packages-npm-production"}},"1.5.4":{"name":"@grantjs/server","version":"1.5.4","keywords":["grant","authorization","permissions","rbac","role-based-access-control","express","fastify","nestjs","nextjs","middleware","access-control","typescript","multi-tenant","sdk","server"],"author":{"url":"https://grantjs.org","name":"Ale Heredia","email":"ale@grantjs.org"},"license":"MIT","_id":"@grantjs/server@1.5.4","maintainers":[{"name":"logus","email":"logusgraphics@icloud.com"}],"homepage":"https://github.com/grant-js/grant#readme","bugs":{"url":"https://github.com/grant-js/grant/issues"},"dist":{"shasum":"59450cdbf27e24c11b1714965010392492d481b2","tarball":"https://registry.npmjs.org/@grantjs/server/-/server-1.5.4.tgz","fileCount":65,"integrity":"sha512-DDHBXm8YBQVA0Sd+laUngxnpOqvgDgw0q0auz9F67OY0WXrX9zRU42ctMGUJsQL9I5GZjbbJdAdtUFV2KcdZWA==","signatures":[{"sig":"MEUCIATuPFrGeCvdHnqJiuxIS2iWt9kQIUvj6jpGTIA66yaaAiEAu9O6Aemm1xpGQtFLEAbZYVySmxQrC0zITO1YuEmn3tA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":187947},"main":"./dist/index.cjs","type":"module","_from":"file:grantjs-server-1.5.4.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./nest":{"types":"./dist/nest/index.d.ts","import":"./dist/nest.mjs","require":"./dist/nest.cjs"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next.mjs","require":"./dist/next.cjs"},"./express":{"types":"./dist/express/index.d.ts","import":"./dist/express.mjs","require":"./dist/express.cjs"},"./fastify":{"types":"./dist/fastify/index.d.ts","import":"./dist/fastify.mjs","require":"./dist/fastify.cjs"}},"scripts":{"lint":"eslint src --ext .ts","test":"vitest","build":"vite build","lint:fix":"eslint src --ext .ts --fix","test:run":"vitest run","type-check":"tsc --noEmit","build:watch":"vite build --watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"logus","email":"logusgraphics@icloud.com"},"_resolved":"/tmp/0acb6e9c0f66276d02db8d88ced12f9f/grantjs-server-1.5.4.tgz","_integrity":"sha512-DDHBXm8YBQVA0Sd+laUngxnpOqvgDgw0q0auz9F67OY0WXrX9zRU42ctMGUJsQL9I5GZjbbJdAdtUFV2KcdZWA==","repository":{"url":"git+https://github.com/grant-js/grant.git","type":"git","directory":"packages/@grantjs/server"},"_npmVersion":"11.9.0","description":"Server SDK for Grant authorization - Middleware and guards for Express, Fastify, NestJS, and Next.js","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","dependencies":{"@grantjs/schema":"1.5.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.2","vite":"^8.2.1","eslint":"^10.8.1","vitest":"^4.1.11","express":"^5.1.0","fastify":"^5.12.1","typescript":"^6.0.3","@types/node":"^26.2.0","@nestjs/core":"^11.2.1","@nestjs/common":"^11.2.1","@types/express":"^5.0.0","vite-plugin-dts":"^5.0.3","@vitest/coverage-v8":"^4.1.11"},"peerDependencies":{"next":">=13.0.0 <17.0.0","express":"^4 || ^5","fastify":"^4 || ^5","@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/server_1.5.4_1787590571403_0.64715369467171","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"@grantjs/server","version":"1.6.1","keywords":["grant","authorization","permissions","rbac","role-based-access-control","express","fastify","nestjs","nextjs","middleware","access-control","typescript","multi-tenant","sdk","server"],"author":{"url":"https://grantjs.org","name":"Ale Heredia","email":"ale@grantjs.org"},"license":"MIT","_id":"@grantjs/server@1.6.1","maintainers":[{"name":"logus","email":"logusgraphics@icloud.com"}],"homepage":"https://github.com/grant-js/grant#readme","bugs":{"url":"https://github.com/grant-js/grant/issues"},"dist":{"shasum":"34060dd5129c1c80af0d341f0ee043799ad525b5","tarball":"https://registry.npmjs.org/@grantjs/server/-/server-1.6.1.tgz","fileCount":65,"integrity":"sha512-IODanI7ItDzUl9IItivp6jDinYmHpCRpWB+OWXs/YMImX4GfVbmok+3EIUiNLWtiUO4tSYFBaUM9ePyvFu49PQ==","signatures":[{"sig":"MEUCIQCI2OgtLW3VXmmGZDm+1SnhKJJB/Kyr0nQUDQ8SLESh+wIgZQYTXG/AfCDeiwawGzj+39yJK3QRZVlTemnp0ENmJ9A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@grantjs%2fserver@1.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":187947},"main":"./dist/index.cjs","type":"module","_from":"file:grantjs-server-1.6.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./nest":{"types":"./dist/nest/index.d.ts","import":"./dist/nest.mjs","require":"./dist/nest.cjs"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next.mjs","require":"./dist/next.cjs"},"./express":{"types":"./dist/express/index.d.ts","import":"./dist/express.mjs","require":"./dist/express.cjs"},"./fastify":{"types":"./dist/fastify/index.d.ts","import":"./dist/fastify.mjs","require":"./dist/fastify.cjs"}},"scripts":{"lint":"eslint src --ext .ts","test":"vitest","build":"vite build","lint:fix":"eslint src --ext .ts --fix","test:run":"vitest run","type-check":"tsc --noEmit","build:watch":"vite build --watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6e6a36a4-db41-4db1-bb36-a10e2fc66567"}},"_resolved":"/tmp/87cef44a8e12e93b9048b4f0de91671f/grantjs-server-1.6.1.tgz","_integrity":"sha512-IODanI7ItDzUl9IItivp6jDinYmHpCRpWB+OWXs/YMImX4GfVbmok+3EIUiNLWtiUO4tSYFBaUM9ePyvFu49PQ==","repository":{"url":"git+https://github.com/grant-js/grant.git","type":"git","directory":"packages/@grantjs/server"},"_npmVersion":"11.19.1","description":"Server SDK for Grant authorization - Middleware and guards for Express, Fastify, NestJS, and Next.js","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"@grantjs/schema":"1.6.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.2","vite":"^8.2.1","eslint":"^10.8.1","vitest":"^4.1.11","express":"^5.1.0","fastify":"^5.12.1","typescript":"^6.0.3","@types/node":"^26.2.0","@nestjs/core":"^11.2.1","@nestjs/common":"^11.2.1","@types/express":"^5.0.0","vite-plugin-dts":"^5.0.3","@vitest/coverage-v8":"^4.1.11"},"peerDependencies":{"next":">=13.0.0 <17.0.0","express":"^4 || ^5","fastify":"^4 || ^5","@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/server_1.6.1_1788472557964_0.2553463371851685","host":"s3://npm-registry-packages-npm-production"}},"1.6.2":{"name":"@grantjs/server","version":"1.6.2","keywords":["grant","authorization","permissions","rbac","role-based-access-control","express","fastify","nestjs","nextjs","middleware","access-control","typescript","multi-tenant","sdk","server"],"author":{"url":"https://grantjs.org","name":"Ale Heredia","email":"ale@grantjs.org"},"license":"MIT","_id":"@grantjs/server@1.6.2","maintainers":[{"name":"logus","email":"logusgraphics@icloud.com"}],"homepage":"https://github.com/grant-js/grant#readme","bugs":{"url":"https://github.com/grant-js/grant/issues"},"dist":{"shasum":"a799eb40eb908e37122fda09e0d68e7a17d15c54","tarball":"https://registry.npmjs.org/@grantjs/server/-/server-1.6.2.tgz","fileCount":65,"integrity":"sha512-wdYJziga+j+gSzhzypCiqshLcHZGzJk7ewtnsuPiKGgvgmQ1Kqkcbh9lfGzelswI3yh19vDrBH+WuV8BSh3R4Q==","signatures":[{"sig":"MEUCIQC/dzvIldtI6oiJ5BakoDEtTxqIzK8k3uhbdJapRDKUVQIgcLSOL7kxKGxU6p8jw6OEifyFaFW7tyypWxuIq75pg9s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@grantjs%2fserver@1.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":187947},"main":"./dist/index.cjs","type":"module","_from":"file:grantjs-server-1.6.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./nest":{"types":"./dist/nest/index.d.ts","import":"./dist/nest.mjs","require":"./dist/nest.cjs"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next.mjs","require":"./dist/next.cjs"},"./express":{"types":"./dist/express/index.d.ts","import":"./dist/express.mjs","require":"./dist/express.cjs"},"./fastify":{"types":"./dist/fastify/index.d.ts","import":"./dist/fastify.mjs","require":"./dist/fastify.cjs"}},"scripts":{"lint":"eslint src --ext .ts","test":"vitest","build":"vite build","lint:fix":"eslint src --ext .ts --fix","test:run":"vitest run","type-check":"tsc --noEmit","build:watch":"vite build --watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6e6a36a4-db41-4db1-bb36-a10e2fc66567"}},"_resolved":"/tmp/e1dae4dedb26bace7cc15a0d1959c49b/grantjs-server-1.6.2.tgz","_integrity":"sha512-wdYJziga+j+gSzhzypCiqshLcHZGzJk7ewtnsuPiKGgvgmQ1Kqkcbh9lfGzelswI3yh19vDrBH+WuV8BSh3R4Q==","repository":{"url":"git+https://github.com/grant-js/grant.git","type":"git","directory":"packages/@grantjs/server"},"_npmVersion":"11.19.1","description":"Server SDK for Grant authorization - Middleware and guards for Express, Fastify, NestJS, and Next.js","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"@grantjs/schema":"1.6.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.2","vite":"^8.2.1","eslint":"^10.8.1","vitest":"^4.1.11","express":"^5.1.0","fastify":"^5.12.1","typescript":"^6.0.3","@types/node":"^26.2.0","@nestjs/core":"^11.2.1","@nestjs/common":"^11.2.1","@types/express":"^5.0.0","vite-plugin-dts":"^5.0.3","@vitest/coverage-v8":"^4.1.11"},"peerDependencies":{"next":">=13.0.0 <17.0.0","express":"^4 || ^5","fastify":"^4 || ^5","@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/server_1.6.2_1788538297660_0.8510406607564471","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@grantjs/server","version":"1.7.0","keywords":["grant","authorization","permissions","rbac","role-based-access-control","express","fastify","nestjs","nextjs","middleware","access-control","typescript","multi-tenant","sdk","server"],"author":{"url":"https://grantjs.org","name":"Ale Heredia","email":"ale@grantjs.org"},"license":"MIT","_id":"@grantjs/server@1.7.0","maintainers":[{"name":"logus","email":"logusgraphics@icloud.com"}],"homepage":"https://github.com/grant-js/grant#readme","bugs":{"url":"https://github.com/grant-js/grant/issues"},"dist":{"shasum":"18bac9f70af80f1ec3a7a05066f89b76ffd352ef","tarball":"https://registry.npmjs.org/@grantjs/server/-/server-1.7.0.tgz","fileCount":65,"integrity":"sha512-JlWsxqoB3cZKZna9hRl27PK3wp1SZV0U6EQLdAF0MrAyKqcySc3Q+RVJMYBYjZErcjI+oqfk93wR4J2tq9t9Mg==","signatures":[{"sig":"MEYCIQDpPL5Hrff+P1xCBcUzNxsRCjkcv4wway3/zs2uXHLjLAIhAMpP9CzPR4EbxYbfgfHojKhJZkhaYtjIMXE3fsf9aB2d","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBGNzYbvr3KYZctsDj5nHJbPlzB1mWjlQDIzaASiTx0lAiEAsmOrjdP1je36F2CgX7tohNmlu81s2nuDefR1MetyGs0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@grantjs%2fserver@1.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":188027},"main":"./dist/index.cjs","type":"module","_from":"file:grantjs-server-1.7.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./nest":{"types":"./dist/nest/index.d.ts","import":"./dist/nest.mjs","require":"./dist/nest.cjs"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next.mjs","require":"./dist/next.cjs"},"./express":{"types":"./dist/express/index.d.ts","import":"./dist/express.mjs","require":"./dist/express.cjs"},"./fastify":{"types":"./dist/fastify/index.d.ts","import":"./dist/fastify.mjs","require":"./dist/fastify.cjs"}},"scripts":{"lint":"eslint src --ext .ts","test":"vitest","build":"vite build","lint:fix":"eslint src --ext .ts --fix","test:run":"vitest run","type-check":"tsc --noEmit","build:watch":"vite build --watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6e6a36a4-db41-4db1-bb36-a10e2fc66567"}},"_resolved":"/tmp/9cb710cbdd5e624af9b27464e99f148b/grantjs-server-1.7.0.tgz","_integrity":"sha512-JlWsxqoB3cZKZna9hRl27PK3wp1SZV0U6EQLdAF0MrAyKqcySc3Q+RVJMYBYjZErcjI+oqfk93wR4J2tq9t9Mg==","repository":{"url":"git+https://github.com/grant-js/grant.git","type":"git","directory":"packages/@grantjs/server"},"_npmVersion":"11.19.1","description":"Server SDK for Grant authorization - Middleware and guards for Express, Fastify, NestJS, and Next.js","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"@grantjs/schema":"1.7.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.4","vite":"^8.2.1","eslint":"^10.10.0","vitest":"^4.1.11","express":"^5.1.0","fastify":"^5.12.3","typescript":"npm:@typescript/typescript6@^6.0.2","@types/node":"^26.4.1","@nestjs/core":"^12.0.1","@nestjs/common":"^12.0.1","@types/express":"^5.0.0","vite-plugin-dts":"^5.1.0","@typescript/native":"npm:typescript@^7.0.2","@vitest/coverage-v8":"^4.1.11"},"peerDependencies":{"next":">=13.0.0 <17.0.0","express":"^4 || ^5","fastify":"^4 || ^5","@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/server_1.7.0_1789164684261_0.7599372333889094","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@grantjs/server","version":"1.8.0","keywords":["grant","authorization","permissions","rbac","role-based-access-control","express","fastify","nestjs","nextjs","middleware","access-control","typescript","multi-tenant","sdk","server"],"author":{"url":"https://grantjs.org","name":"Ale Heredia","email":"ale@grantjs.org"},"license":"MIT","_id":"@grantjs/server@1.8.0","maintainers":[{"name":"logus","email":"logusgraphics@icloud.com"}],"homepage":"https://github.com/grant-js/grant#readme","bugs":{"url":"https://github.com/grant-js/grant/issues"},"dist":{"shasum":"ee95510d300b8287bb5159c6d3eedb909ade9c4d","tarball":"https://registry.npmjs.org/@grantjs/server/-/server-1.8.0.tgz","fileCount":65,"integrity":"sha512-drkVjn+k3uQv61sOdoQpp5P9v486d1ExrN8FEc4Xr6vM7u6pZmx2XKuOF0ADLgj74IkVfqvRdWMTi+BX7wODvA==","signatures":[{"sig":"MEYCIQD0e1pAJfOT2INUfavlU8o1nAW19ABe1tmvWIE2itsKqwIhAKMrX8VPQk7P/1KYczNeFdftXmJ13/E7n0O4uvE3zCx0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHU66zWvMkmP95WbRxSzBYzS0st7I62TgDb+bslfrje+AiEAjfW1032k70w7HMKIk9Udtioyc8hPWME0rYI/wRT1Vwk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@grantjs%2fserver@1.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":188027},"main":"./dist/index.cjs","type":"module","_from":"file:grantjs-server-1.8.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./nest":{"types":"./dist/nest/index.d.ts","import":"./dist/nest.mjs","require":"./dist/nest.cjs"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next.mjs","require":"./dist/next.cjs"},"./express":{"types":"./dist/express/index.d.ts","import":"./dist/express.mjs","require":"./dist/express.cjs"},"./fastify":{"types":"./dist/fastify/index.d.ts","import":"./dist/fastify.mjs","require":"./dist/fastify.cjs"}},"scripts":{"lint":"eslint src --ext .ts","test":"vitest","build":"vite build","lint:fix":"eslint src --ext .ts --fix","test:run":"vitest run","type-check":"tsc --noEmit","build:watch":"vite build --watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6e6a36a4-db41-4db1-bb36-a10e2fc66567"}},"_resolved":"/tmp/0b0a64244b88fb1512f3b2f66f3bccdf/grantjs-server-1.8.0.tgz","_integrity":"sha512-drkVjn+k3uQv61sOdoQpp5P9v486d1ExrN8FEc4Xr6vM7u6pZmx2XKuOF0ADLgj74IkVfqvRdWMTi+BX7wODvA==","repository":{"url":"git+https://github.com/grant-js/grant.git","type":"git","directory":"packages/@grantjs/server"},"_npmVersion":"11.19.1","description":"Server SDK for Grant authorization - Middleware and guards for Express, Fastify, NestJS, and Next.js","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"@grantjs/schema":"1.8.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.4","vite":"^8.2.1","eslint":"^10.10.0","vitest":"^4.1.11","express":"^5.1.0","fastify":"^5.12.3","typescript":"npm:@typescript/typescript6@^6.0.2","@types/node":"^26.4.1","@nestjs/core":"^12.0.1","@nestjs/common":"^12.0.1","@types/express":"^5.0.0","vite-plugin-dts":"^5.1.0","@typescript/native":"npm:typescript@^7.0.2","@vitest/coverage-v8":"^4.1.11"},"peerDependencies":{"next":">=13.0.0 <17.0.0","express":"^4 || ^5","fastify":"^4 || ^5","@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/server_1.8.0_1789254562635_0.9655536946677479","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"@grantjs/server","version":"1.9.0","keywords":["grant","authorization","permissions","rbac","role-based-access-control","express","fastify","nestjs","nextjs","middleware","access-control","typescript","multi-tenant","sdk","server"],"author":{"url":"https://grantjs.org","name":"Ale Heredia","email":"ale@grantjs.org"},"license":"MIT","_id":"@grantjs/server@1.9.0","maintainers":[{"name":"logus","email":"logusgraphics@icloud.com"}],"homepage":"https://github.com/grant-js/grant#readme","bugs":{"url":"https://github.com/grant-js/grant/issues"},"dist":{"shasum":"65fb5c7d33ce3d8342acd2aae1520203cd1a4ca4","tarball":"https://registry.npmjs.org/@grantjs/server/-/server-1.9.0.tgz","fileCount":65,"integrity":"sha512-3eK/m4NBszz2O4tazu0A9UbKBZBDQEn6fagAXIxSvX6CeODiJxgBWQbQWp1RcLFJobDKcZ6+CcBLjxRZz4Nl8g==","signatures":[{"sig":"MEQCIHFQi4bjl0LjddfBk/dTCo8mflmIvIzP4w4pVnsGp5P5AiBmi5ZcHssWRF21jRLopK/V6NZFdk0E6pr1Au/xQ+smeg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICZzuY671iglG3uKyaTjttfYHdXLKfhXdCmRK4LfBkumAiEAxLN9v+bSV1QF5FCAmiRdyO+mb5z58m2Qe5nQkP3olvk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@grantjs%2fserver@1.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":188027},"main":"./dist/index.cjs","type":"module","_from":"file:grantjs-server-1.9.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./nest":{"types":"./dist/nest/index.d.ts","import":"./dist/nest.mjs","require":"./dist/nest.cjs"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next.mjs","require":"./dist/next.cjs"},"./express":{"types":"./dist/express/index.d.ts","import":"./dist/express.mjs","require":"./dist/express.cjs"},"./fastify":{"types":"./dist/fastify/index.d.ts","import":"./dist/fastify.mjs","require":"./dist/fastify.cjs"}},"scripts":{"lint":"eslint src --ext .ts","test":"vitest","build":"vite build","lint:fix":"eslint src --ext .ts --fix","test:run":"vitest run","type-check":"tsc --noEmit","build:watch":"vite build --watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6e6a36a4-db41-4db1-bb36-a10e2fc66567"}},"_resolved":"/tmp/f03eeaffc7a1588688afdfacc2d06c57/grantjs-server-1.9.0.tgz","_integrity":"sha512-3eK/m4NBszz2O4tazu0A9UbKBZBDQEn6fagAXIxSvX6CeODiJxgBWQbQWp1RcLFJobDKcZ6+CcBLjxRZz4Nl8g==","repository":{"url":"git+https://github.com/grant-js/grant.git","type":"git","directory":"packages/@grantjs/server"},"_npmVersion":"11.19.1","description":"Server SDK for Grant authorization - Middleware and guards for Express, Fastify, NestJS, and Next.js","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"@grantjs/schema":"1.9.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.4","vite":"^8.2.1","eslint":"^10.10.0","vitest":"^4.1.11","express":"^5.1.0","fastify":"^5.12.3","typescript":"npm:@typescript/typescript6@^6.0.2","@types/node":"^26.4.1","@nestjs/core":"^12.0.1","@nestjs/common":"^12.0.1","@types/express":"^5.0.0","vite-plugin-dts":"^5.1.0","@typescript/native":"npm:typescript@^7.0.2","@vitest/coverage-v8":"^4.1.11"},"peerDependencies":{"next":">=13.0.0 <17.0.0","express":"^4 || ^5","fastify":"^4 || ^5","@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/server_1.9.0_1789366213699_0.09042671144923564","host":"s3://npm-registry-packages-npm-production"}},"1.9.1":{"name":"@grantjs/server","version":"1.9.1","keywords":["grant","authorization","permissions","rbac","role-based-access-control","express","fastify","nestjs","nextjs","middleware","access-control","typescript","multi-tenant","sdk","server"],"author":{"url":"https://grantjs.org","name":"Ale Heredia","email":"ale@grantjs.org"},"license":"MIT","_id":"@grantjs/server@1.9.1","maintainers":[{"name":"logus","email":"logusgraphics@icloud.com"}],"homepage":"https://github.com/grant-js/grant#readme","bugs":{"url":"https://github.com/grant-js/grant/issues"},"dist":{"shasum":"d8f922bb95e45f5905497777c6017375f9f3c16d","tarball":"https://registry.npmjs.org/@grantjs/server/-/server-1.9.1.tgz","fileCount":65,"integrity":"sha512-K7xFpyEh6q2b7OQIFI4MHfwtEfF+Rug02pYQgZ3JYehZ6g5xuakdW7N/CNC7guBSLSIP/zMjRiQjSAUxSQXTaQ==","signatures":[{"sig":"MEYCIQD3fkWOGEivgPGD/w/HU1bo7BXKYrobJpc0Z5xMQfCjDgIhAMaEgfEi6/1DBhQi+6qx/vTaghKSPszN16vUptofB1MC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIG1xLCEuks4NToxjsSRO0asDKoSZD/BE6vxnBLBGX7eaAiAGCGLvOBpRsTZE+wSvzz8xQ0mAFf4OIYBovuGwjc+s7A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@grantjs%2fserver@1.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":188027},"main":"./dist/index.cjs","type":"module","_from":"file:grantjs-server-1.9.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./nest":{"types":"./dist/nest/index.d.ts","import":"./dist/nest.mjs","require":"./dist/nest.cjs"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next.mjs","require":"./dist/next.cjs"},"./express":{"types":"./dist/express/index.d.ts","import":"./dist/express.mjs","require":"./dist/express.cjs"},"./fastify":{"types":"./dist/fastify/index.d.ts","import":"./dist/fastify.mjs","require":"./dist/fastify.cjs"}},"scripts":{"lint":"eslint src --ext .ts","test":"vitest","build":"vite build","lint:fix":"eslint src --ext .ts --fix","test:run":"vitest run","type-check":"tsc --noEmit","build:watch":"vite build --watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6e6a36a4-db41-4db1-bb36-a10e2fc66567"}},"_resolved":"/tmp/5c07b5134a00df5393a951cc2ba461a9/grantjs-server-1.9.1.tgz","_integrity":"sha512-K7xFpyEh6q2b7OQIFI4MHfwtEfF+Rug02pYQgZ3JYehZ6g5xuakdW7N/CNC7guBSLSIP/zMjRiQjSAUxSQXTaQ==","repository":{"url":"git+https://github.com/grant-js/grant.git","type":"git","directory":"packages/@grantjs/server"},"_npmVersion":"11.19.1","description":"Server SDK for Grant authorization - Middleware and guards for Express, Fastify, NestJS, and Next.js","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"@grantjs/schema":"1.9.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.4","vite":"^8.2.1","eslint":"^10.10.0","vitest":"^4.1.11","express":"^5.1.0","fastify":"^5.12.3","typescript":"npm:@typescript/typescript6@^6.0.2","@types/node":"^26.4.1","@nestjs/core":"^12.0.1","@nestjs/common":"^12.0.1","@types/express":"^5.0.0","vite-plugin-dts":"^5.1.0","@typescript/native":"npm:typescript@^7.0.2","@vitest/coverage-v8":"^4.1.11"},"peerDependencies":{"next":">=13.0.0 <17.0.0","express":"^4 || ^5","fastify":"^4 || ^5","@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/server_1.9.1_1789460400166_0.04456049546000029","host":"s3://npm-registry-packages-npm-production"}},"1.9.2":{"name":"@grantjs/server","version":"1.9.2","keywords":["grant","authorization","permissions","rbac","role-based-access-control","express","fastify","nestjs","nextjs","middleware","access-control","typescript","multi-tenant","sdk","server"],"author":{"url":"https://grantjs.org","name":"Ale Heredia","email":"ale@grantjs.org"},"license":"MIT","_id":"@grantjs/server@1.9.2","maintainers":[{"name":"logus","email":"logusgraphics@icloud.com"}],"homepage":"https://github.com/grant-js/grant#readme","bugs":{"url":"https://github.com/grant-js/grant/issues"},"dist":{"shasum":"57af57c8ee9e106c7309d14b7ec0235ce1ecba61","tarball":"https://registry.npmjs.org/@grantjs/server/-/server-1.9.2.tgz","fileCount":65,"integrity":"sha512-Zc5nh2ew0oPyalVfzJGXz2oRU5MK+xXTFDULfjXuS5YRHdXvSROuan7Mv5IQ7R9S5iQd/Km+OqBfOLxgXFLXUg==","signatures":[{"sig":"MEUCIFEY6P1GA/6dfuC4RAv3wuHHdnUT7OnLAzVZzJKjNurmAiEAsDWKUtOg07o4PadaUrubo0E/fvEtYQA1cN+q7jvuhAo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCTbff3KVpxXm9x/kGvMPkUlxJ8Uu1VN7q35MzIhLuJcgIgT3Rg2y+MlwPD8whpxfUHNerfmXuF7qLyqm+qSiEm12Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@grantjs%2fserver@1.9.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":188027},"main":"./dist/index.cjs","type":"module","_from":"file:grantjs-server-1.9.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./nest":{"types":"./dist/nest/index.d.ts","import":"./dist/nest.mjs","require":"./dist/nest.cjs"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next.mjs","require":"./dist/next.cjs"},"./express":{"types":"./dist/express/index.d.ts","import":"./dist/express.mjs","require":"./dist/express.cjs"},"./fastify":{"types":"./dist/fastify/index.d.ts","import":"./dist/fastify.mjs","require":"./dist/fastify.cjs"}},"scripts":{"lint":"eslint src --ext .ts","test":"vitest","build":"vite build","lint:fix":"eslint src --ext .ts --fix","test:run":"vitest run","type-check":"tsc --noEmit","build:watch":"vite build --watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6e6a36a4-db41-4db1-bb36-a10e2fc66567"}},"_resolved":"/tmp/6f153733205c6e46c63a91ffc4acb4fe/grantjs-server-1.9.2.tgz","_integrity":"sha512-Zc5nh2ew0oPyalVfzJGXz2oRU5MK+xXTFDULfjXuS5YRHdXvSROuan7Mv5IQ7R9S5iQd/Km+OqBfOLxgXFLXUg==","repository":{"url":"git+https://github.com/grant-js/grant.git","type":"git","directory":"packages/@grantjs/server"},"_npmVersion":"11.19.1","description":"Server SDK for Grant authorization - Middleware and guards for Express, Fastify, NestJS, and Next.js","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"@grantjs/schema":"1.9.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.4","vite":"^8.2.1","eslint":"^10.10.0","vitest":"^4.1.11","express":"^5.1.0","fastify":"^5.12.3","typescript":"npm:@typescript/typescript6@^6.0.2","@types/node":"^26.4.1","@nestjs/core":"^12.0.1","@nestjs/common":"^12.0.1","@types/express":"^5.0.0","vite-plugin-dts":"^5.1.0","@typescript/native":"npm:typescript@^7.0.2","@vitest/coverage-v8":"^4.1.11"},"peerDependencies":{"next":">=13.0.0 <17.0.0","express":"^4 || ^5","fastify":"^4 || ^5","@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/server_1.9.2_1789498386042_0.6960394191212063","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"@grantjs/server","version":"1.10.0","keywords":["grant","authorization","permissions","rbac","role-based-access-control","express","fastify","nestjs","nextjs","middleware","access-control","typescript","multi-tenant","sdk","server"],"author":{"url":"https://grantjs.org","name":"Ale Heredia","email":"ale@grantjs.org"},"license":"MIT","_id":"@grantjs/server@1.10.0","maintainers":[{"name":"logus","email":"logusgraphics@icloud.com"}],"homepage":"https://github.com/grant-js/grant#readme","bugs":{"url":"https://github.com/grant-js/grant/issues"},"dist":{"shasum":"35dbb31b11c0f05381c9a9e71b65eaef2604e740","tarball":"https://registry.npmjs.org/@grantjs/server/-/server-1.10.0.tgz","fileCount":65,"integrity":"sha512-CcsEKIoNrNLihp67+JNX8AsAWDjBrsKFXFiML8KnEdhuU8x6bsm4FRCYT3+wKAFQkrThafMd6L++2x4H58Sesw==","signatures":[{"sig":"MEUCIGUIxRDs9mGIMbldiqp92YD3T6C0+oXsTxJ9VzC1kUfAAiEAnfWHkIL7uUyAe5VTYGZsGcySO+fZ16VFO+LVyVZfj5k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCSdm7ohjqyYlDD4DsyWi/RpSn3qyPnY1jzjOTH9bgHXAIhAP0hilL10iwgdAuLqbymXFh4S4SdMMChV1HwWhUXsQqe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@grantjs%2fserver@1.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":188027},"main":"./dist/index.cjs","type":"module","_from":"file:grantjs-server-1.10.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./nest":{"types":"./dist/nest/index.d.ts","import":"./dist/nest.mjs","require":"./dist/nest.cjs"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next.mjs","require":"./dist/next.cjs"},"./express":{"types":"./dist/express/index.d.ts","import":"./dist/express.mjs","require":"./dist/express.cjs"},"./fastify":{"types":"./dist/fastify/index.d.ts","import":"./dist/fastify.mjs","require":"./dist/fastify.cjs"}},"scripts":{"lint":"eslint src --ext .ts","test":"vitest","build":"vite build","lint:fix":"eslint src --ext .ts --fix","test:run":"vitest run","type-check":"tsc --noEmit","build:watch":"vite build --watch","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:6e6a36a4-db41-4db1-bb36-a10e2fc66567"}},"_resolved":"/tmp/dc2e8d9367e61da0336ffda6a815aa77/grantjs-server-1.10.0.tgz","_integrity":"sha512-CcsEKIoNrNLihp67+JNX8AsAWDjBrsKFXFiML8KnEdhuU8x6bsm4FRCYT3+wKAFQkrThafMd6L++2x4H58Sesw==","repository":{"url":"git+https://github.com/grant-js/grant.git","type":"git","directory":"packages/@grantjs/server"},"_npmVersion":"11.19.1","description":"Server SDK for Grant authorization - Middleware and guards for Express, Fastify, NestJS, and Next.js","directories":{},"sideEffects":false,"_nodeVersion":"24.20.0","dependencies":{"@grantjs/schema":"1.10.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.5","vite":"^8.3.0","eslint":"^10.10.0","vitest":"^5.0.1","express":"^5.1.0","fastify":"^5.12.5","typescript":"npm:@typescript/typescript6@^6.0.2","@types/node":"^26.6.1","@nestjs/core":"^12.0.3","@nestjs/common":"^12.0.3","@types/express":"^5.0.0","vite-plugin-dts":"^5.1.0","@typescript/native":"npm:typescript@^7.0.2","@vitest/coverage-v8":"^5.0.1"},"peerDependencies":{"next":">=13.0.0 <17.0.0","express":"^4 || ^5","fastify":"^4 || ^5","@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/server_1.10.0_1789930651453_0.46458894354849023","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"_id":"@grantjs/server@1.11.0","bugs":{"url":"https://github.com/grant-js/grant/issues"},"dist":{"shasum":"243ce06d7a6fcca4be3d2bb11901c609fc6da53c","tarball":"https://registry.npmjs.org/@grantjs/server/-/server-1.11.0.tgz","fileCount":65,"integrity":"sha512-P2eoUqu0ikWwAsoRPS2DCIWB3fVvC99WOmV0HfHIr3OuyJq99b3l9JUroUYs9yCVtci0xZv8bHyIoRlg4xDSzw==","signatures":[{"sig":"MEQCIAg9WWDH+bV9rE7xoOdbCIb6BRSGoZA5m4ljif5WwLHoAiBpIU+dshco+LfN8jc49JBBf1BT9WAZJE0XhBYoSclSnA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEhd8xOuZszT2HZqrj9FQKfWxO0lQwgKy025lHxkrhjAAiEAo/GcCwZXOIellRAw9sM9Hp5JZC5hXtLhrKILeH1VC4g="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@grantjs%2fserver@1.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":188646},"main":"./dist/index.cjs","name":"@grantjs/server","type":"module","_from":"file:grantjs-server-1.11.0.tgz","types":"./dist/index.d.ts","author":{"url":"https://grantjs.org","name":"Ale Heredia","email":"ale@grantjs.org"},"module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./nest":{"types":"./dist/nest/index.d.ts","import":"./dist/nest.mjs","require":"./dist/nest.cjs"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next.mjs","require":"./dist/next.cjs"},"./express":{"types":"./dist/express/index.d.ts","import":"./dist/express.mjs","require":"./dist/express.cjs"},"./fastify":{"types":"./dist/fastify/index.d.ts","import":"./dist/fastify.mjs","require":"./dist/fastify.cjs"}},"license":"MIT","scripts":{"lint":"eslint src --ext .ts","test":"vitest","build":"vite build","lint:fix":"eslint src --ext .ts --fix","test:run":"vitest run","type-check":"tsc --noEmit","build:watch":"vite build --watch","test:coverage":"vitest run --coverage"},"version":"1.11.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"6e6a36a4-db41-4db1-bb36-a10e2fc66567"}},"homepage":"https://github.com/grant-js/grant#readme","keywords":["grant","authorization","permissions","rbac","role-based-access-control","express","fastify","nestjs","nextjs","middleware","access-control","typescript","multi-tenant","sdk","server"],"_resolved":"/tmp/ca98eb18a9b0bf2c4ad1ed74e6c50929/grantjs-server-1.11.0.tgz","_integrity":"sha512-P2eoUqu0ikWwAsoRPS2DCIWB3fVvC99WOmV0HfHIr3OuyJq99b3l9JUroUYs9yCVtci0xZv8bHyIoRlg4xDSzw==","repository":{"url":"git+https://github.com/grant-js/grant.git","type":"git","directory":"packages/@grantjs/server"},"_npmVersion":"11.20.0","description":"Server SDK for Grant authorization - Middleware and guards for Express, Fastify, NestJS, and Next.js","directories":{},"maintainers":[{"name":"logus","email":"logusgraphics@icloud.com"}],"sideEffects":false,"_nodeVersion":"24.21.0","dependencies":{"@grantjs/schema":"1.11.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.3.6","vite":"^8.3.1","eslint":"^10.11.0","vitest":"^5.0.1","express":"^5.1.0","fastify":"^5.12.5","typescript":"npm:@typescript/typescript6@^6.0.2","@types/node":"^26.6.2","@nestjs/core":"^12.1.0","@nestjs/common":"^12.1.0","@types/express":"^5.0.0","vite-plugin-dts":"^5.1.1","@typescript/native":"npm:typescript@^7.0.2","@vitest/coverage-v8":"^5.0.1"},"peerDependencies":{"next":">=13.0.0 <17.0.0","express":"^4 || ^5","fastify":"^4 || ^5","@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/server_1.11.0_1790743645403_0.8488740247505215"}}},"time":{"created":"2026-03-11T21:07:17.984Z","modified":"2026-09-30T04:47:25.843Z","1.0.0":"2026-03-11T21:07:18.247Z","1.1.0":"2026-05-16T15:02:09.634Z","1.1.1":"2026-05-16T16:25:13.688Z","1.1.2":"2026-05-31T11:14:14.149Z","1.1.3":"2026-06-03T13:42:31.416Z","1.1.4":"2026-06-03T14:53:54.233Z","1.1.5":"2026-06-10T13:37:19.190Z","1.1.6":"2026-06-10T16:24:35.277Z","1.1.7":"2026-06-10T18:00:34.785Z","1.2.0":"2026-06-14T22:29:31.624Z","1.3.0":"2026-06-15T14:11:59.528Z","1.3.1":"2026-06-18T09:27:16.720Z","1.3.2":"2026-06-18T13:57:40.340Z","1.3.3":"2026-06-18T16:17:11.886Z","1.4.0":"2026-06-18T20:07:25.687Z","1.4.1":"2026-06-18T23:02:51.252Z","1.4.2":"2026-06-19T13:17:30.603Z","1.5.0":"2026-08-01T20:14:15.834Z","1.5.1":"2026-08-05T22:33:26.027Z","1.5.2":"2026-08-09T13:30:49.736Z","1.5.3":"2026-08-16T15:50:01.380Z","1.5.4":"2026-08-24T16:56:11.549Z","1.6.1":"2026-09-03T21:55:58.102Z","1.6.2":"2026-09-04T16:11:37.804Z","1.7.0":"2026-09-11T22:11:24.357Z","1.8.0":"2026-09-12T23:09:22.724Z","1.9.0":"2026-09-14T06:10:13.780Z","1.9.1":"2026-09-15T08:20:00.255Z","1.9.2":"2026-09-15T18:53:06.120Z","1.10.0":"2026-09-20T18:57:31.549Z","1.11.0":"2026-09-30T04:47:25.482Z"},"bugs":{"url":"https://github.com/grant-js/grant/issues"},"author":{"url":"https://grantjs.org","name":"Ale Heredia","email":"ale@grantjs.org"},"license":"MIT","homepage":"https://github.com/grant-js/grant#readme","keywords":["grant","authorization","permissions","rbac","role-based-access-control","express","fastify","nestjs","nextjs","middleware","access-control","typescript","multi-tenant","sdk","server"],"repository":{"url":"git+https://github.com/grant-js/grant.git","type":"git","directory":"packages/@grantjs/server"},"description":"Server SDK for Grant authorization - Middleware and guards for Express, Fastify, NestJS, and Next.js","maintainers":[{"name":"logus","email":"logusgraphics@icloud.com"}],"readme":"# @grantjs/server\n\nServer SDK for Grant authorization platform. Provides middleware and guards for **Express**, **Fastify**, **NestJS**, and **Next.js** applications.\n\n**Documentation:** [Server SDK](https://github.com/grant-js/grant/blob/main/docs/integration/server-sdk.md) in the official docs.\n\n## Features\n\n- **REST-based API** – Uses native `fetch`, no GraphQL client required\n- **Framework integrations** – Express (`grant()`), Fastify (`grant()`), NestJS (`@Grant` + `GrantGuard`), Next.js (`withGrant()`)\n- **Token extraction** – Supports Authorization header and cookies\n- **Resource resolvers** – Optional resource resolution for condition evaluation\n- **JWT-based scope** – Scope is taken from token claims (API-key / client-secret flows); session-style scope from request is not used\n- **TypeScript** – Full type safety with types from `@grantjs/schema`\n- **Generic** – Works with any permission model (uses plain strings for resource/action)\n\n## Installation\n\n```bash\nnpm install @grantjs/server\n# or\npnpm add @grantjs/server\n# or\nyarn add @grantjs/server\n```\n\n## Examples\n\nMinimal runnable apps for each framework live in **`examples/`** and share the same CRUD surface (documents: GET, POST, PUT, PATCH, DELETE). From the repo root:\n\n```bash\npnpm install\npnpm --filter @grantjs/server build\ncd packages/@grantjs/server/examples/express   # or fastify, nextjs, nestjs\ncp .env.example .env   # set GRANT_API_URL and optionally GRANT_TOKEN\npnpm start\n```\n\n| Example   | Framework | Usage                                                            |\n| --------- | --------- | ---------------------------------------------------------------- |\n| `express` | Express   | `grant(client, { resource, action })` middleware                 |\n| `fastify` | Fastify   | `grant(client, { resource, action })` preHandler                 |\n| `nextjs`  | Next.js   | `withGrant(client, { resource, action }, handler)` on API routes |\n| `nestjs`  | NestJS    | `@Grant(resource, action)` + `GrantGuard`, `GrantModule`         |\n\nSee **[examples/README.md](./examples/README.md)** for prerequisites, routes, and curl commands.\n\n## Quick Start\n\n### 1. Create the Client\n\n```typescript\nimport { GrantClient } from '@grantjs/server';\n\n// Basic configuration (uses Authorization header or cookies)\nconst grantClient = new GrantClient({\n  apiUrl: 'https://api.grant.com',\n});\n\n// With cookie-based auth\nconst grantClient = new GrantClient({\n  apiUrl: 'https://api.grant.com',\n  cookieName: 'grant-access-token', // Default: 'grant-access-token'\n});\n\n// With custom token extraction\nconst grantClient = new GrantClient({\n  apiUrl: 'https://api.grant.com',\n  getToken: (request) => {\n    // Custom logic to extract token from request\n    const req = request as { headers?: { 'x-api-key'?: string } };\n    return req.headers?.['x-api-key'] || null;\n  },\n});\n```\n\n### 2. Express Middleware\n\n```typescript\nimport express from 'express';\nimport { grant } from '@grantjs/server/express';\n\nconst app = express();\nconst grantClient = new GrantClient({ apiUrl: 'https://api.grant.com' });\n\n// Basic usage\napp.get(\n  '/organizations',\n  grant(grantClient, {\n    resource: 'Organization',\n    action: 'Query',\n  }),\n  async (req, res) => {\n    // User is authorized, proceed with handler\n    res.json({ organizations: [] });\n  }\n);\n\n// With resource resolver for condition evaluation\napp.patch(\n  '/projects/:id',\n  grant(grantClient, {\n    resource: 'Project',\n    action: 'Update',\n    resourceResolver: async ({ resourceSlug, request }) => {\n      // Resolve the project resource for condition evaluation\n      const projectId = (request as any).params.id;\n      const project = await getProjectById(projectId);\n      return project ? { id: project.id, ownerId: project.ownerId } : null;\n    },\n  }),\n  async (req, res) => {\n    // User is authorized, proceed with handler\n    res.json({ success: true });\n  }\n);\n```\n\n### 3. Fastify Plugin\n\n```typescript\nimport Fastify from 'fastify';\nimport { grantPlugin, grant } from '@grantjs/server/fastify';\nimport { GrantClient } from '@grantjs/server';\n\nconst fastify = Fastify();\n\n// Register the plugin (decorates fastify.grant)\nawait fastify.register(grantPlugin, {\n  apiUrl: 'https://api.grant.com',\n  cookieName: 'grant-access-token',\n});\n\n// Use preHandler hook\nfastify.get(\n  '/organizations',\n  {\n    preHandler: grant(fastify.grant, {\n      resource: 'Organization',\n      action: 'Query',\n    }),\n  },\n  async (request, reply) => {\n    return { organizations: [] };\n  }\n);\n\n// With resource resolver\nfastify.patch(\n  '/projects/:id',\n  {\n    preHandler: grant(fastify.grant, {\n      resource: 'Project',\n      action: 'Update',\n      resourceResolver: async ({ resourceSlug, request }) => {\n        const projectId = (request.params as { id: string }).id;\n        const project = await getProjectById(projectId);\n        return project ? { id: project.id, ownerId: project.ownerId } : null;\n      },\n    }),\n  },\n  async (request, reply) => {\n    return { success: true };\n  }\n);\n```\n\n### 4. Next.js (App Router)\n\n```typescript\n// app/api/documents/route.ts\nimport { NextResponse } from 'next/server';\nimport { withGrant } from '@grantjs/server/next';\nimport { GrantClient } from '@grantjs/server';\n\nconst grantClient = new GrantClient({ apiUrl: process.env.GRANT_API_URL! });\n\nexport const GET = withGrant(grantClient, { resource: 'Document', action: 'Query' }, async () =>\n  NextResponse.json({ data: [] })\n);\n\nexport const POST = withGrant(\n  grantClient,\n  { resource: 'Document', action: 'Create' },\n  async (request) => {\n    const body = await request.json();\n    return NextResponse.json({ data: { title: body?.title ?? 'Untitled' } }, { status: 201 });\n  }\n);\n```\n\n### 5. NestJS\n\n```typescript\n// app.module.ts\nimport { GrantModule } from '@grantjs/server/nest';\n\n@Module({\n  imports: [\n    GrantModule.forRoot({\n      apiUrl: process.env.GRANT_API_URL!,\n      getToken: (req: any) => req.headers?.authorization?.replace?.('Bearer ', '') ?? null,\n    }),\n  ],\n})\nexport class AppModule {}\n\n// documents.controller.ts\nimport { Grant, GrantGuard } from '@grantjs/server/nest';\n\n@Controller('documents')\nexport class DocumentsController {\n  @Get()\n  @Grant('Document', 'Query')\n  @UseGuards(GrantGuard)\n  list() {\n    return { data: [] };\n  }\n\n  @Post()\n  @Grant('Document', 'Create')\n  @UseGuards(GrantGuard)\n  create(@Body() body: { title?: string }) {\n    return { data: { title: body?.title ?? 'Untitled' } };\n  }\n}\n```\n\nRegister `GrantGuard` as a provider in your feature module (e.g. `providers: [GrantGuard]`) so Nest injects `GrantClient`. See `examples/nestjs` for a full app.\n\n## API Reference\n\n### GrantClient\n\n```typescript\nconst grantClient = new GrantClient(config: GrantServerConfig);\n```\n\n#### Configuration\n\n```typescript\ninterface GrantServerConfig {\n  // Required\n  apiUrl: string;\n\n  // Optional\n  cookieName?: string; // Default: 'grant-access-token'\n  getToken?: (request: unknown) => string | null | Promise<string | null>;\n  fetch?: typeof fetch;\n  credentials?: RequestCredentials;\n}\n```\n\n#### Methods\n\n```typescript\n// Permission checks\ngrantClient.isGranted(resource, action, options?, request?): Promise<boolean>\ngrantClient.isAuthorized(resource, action, options?, request?): Promise<AuthorizationResult>\n\n// Token extraction\ngrantClient.getTokenFromRequest(request): Promise<string | null>\n```\n\n### Express Middleware\n\n#### `grant(client, options)`\n\nCreates Express middleware that checks authorization before proceeding.\n\n**Options:**\n\n```typescript\ninterface GrantOptions {\n  resource: string; // Resource slug (e.g., \"Organization\", \"Project\", \"Document\")\n  action: string; // Action name (e.g., \"Query\", \"Create\", \"Update\", \"Delete\")\n  resourceResolver?: ResourceResolver; // Resource resolution for conditions\n}\n```\n\n**Behavior:**\n\n- Returns `401 Unauthorized` if no token is found\n- Returns `404 Not Found` if resource resolver returns null\n- Returns `403 Forbidden` if user lacks permission\n- Calls `next()` if authorized\n- Attaches `authorization` result to `req.authorization` for downstream use\n- Scope for authorization is taken from the JWT (e.g. API-key / client-secret tokens); it is not extracted from the request\n\n### Fastify Plugin\n\n#### `grantPlugin(fastify, options)`\n\nRegisters a Fastify plugin that decorates the instance with `fastify.grant` (GrantClient).\n\n**Options:**\n\nSame as `GrantServerConfig` - see [GrantClient Configuration](#grantclient) above.\n\n**Usage:**\n\n```typescript\nawait fastify.register(grantPlugin, {\n  apiUrl: 'https://api.grant.com',\n  cookieName: 'grant-access-token',\n});\n\n// Now fastify.grant is available\nconst canEdit = await fastify.grant.isGranted('Document', 'Update', undefined, request);\n```\n\n#### `grant(client, options)`\n\nCreates a Fastify `preHandler` hook that checks authorization before proceeding.\n\n**Options:**\n\nSame as Express `GrantOptions` - see above.\n\n**Behavior:**\n\n- Returns `401 Unauthorized` if no token is found\n- Returns `404 Not Found` if resource resolver returns null\n- Returns `403 Forbidden` if user lacks permission\n- Attaches `authorization` result to `request.authorization` for downstream use\n- Scope for authorization is taken from the JWT; it is not extracted from the request\n\n### Next.js (App Router)\n\n#### `withGrant(client, options, handler)`\n\nWraps an App Router route handler with Grant authorization. Use for `GET`, `POST`, `PUT`, `PATCH`, `DELETE` in `app/api/.../route.ts`.\n\n**Options:** Same as Express `GrantOptions` (resource, action, optional resourceResolver).\n\n**Behavior:** Returns `401` / `404` / `403` responses on failure; calls your handler with `(request, { authorization })` on success. Compatible with Next.js 13–16.\n\n### NestJS\n\n#### `GrantModule.forRoot(config)`\n\nGlobal module that provides `GrantClient` for injection. Import in `AppModule`.\n\n#### `@Grant(resource, action)` / `Grant(resource, action)`\n\nDecorator that sets resource/action metadata for `GrantGuard`. Use with `@UseGuards(GrantGuard)` on controller methods.\n\n#### `GrantGuard`\n\nGuard that reads options from `@Grant()` metadata (or explicit constructor options with optional `resourceResolver`). Register as a provider (e.g. `providers: [GrantGuard]`) so Nest injects `GrantClient` and `Reflector`. Exports `GRANT_CLIENT` and `GRANT_OPTIONS_KEY` for advanced use.\n\n## Token Extraction\n\nThe client supports multiple token extraction methods (in order of precedence):\n\n1. **Custom `getToken` function** (if provided)\n2. **Authorization header**: `Authorization: Bearer <token>`\n3. **Cookies**: Cookie named by `cookieName` config (default: `grant-access-token`)\n\n## Resource Resolvers\n\nResource resolvers are optional functions that resolve resource data for condition evaluation. Scope is not passed from the middleware (it is taken from the JWT on the API side).\n\n```typescript\nconst resourceResolver: ResourceResolver = async ({ resourceSlug, request }) => {\n  // Fetch resource from database\n  const resource = await getResource(resourceSlug, request);\n\n  // Return resource data for condition evaluation\n  // e.g., { id: '...', ownerId: '...', status: 'active' }\n  return resource ? { id: resource.id, ownerId: resource.ownerId } : null;\n};\n```\n\nIf the resolver returns `null`, the middleware returns `404 Not Found`.\n\n## Development / Debug\n\nSet **`DEBUG_GRANT=1`** in your environment (e.g. in `.env`) to enable request/outcome logs for all integrations (Express, Fastify, Next, Nest). Logs include resource, action, and authorized/denied with reason.\n\n## Error Handling\n\nThe package exports error classes for graceful error handling:\n\n```typescript\nimport {\n  AuthenticationError, // 401\n  AuthorizationError, // 403\n  BadRequestError, // 400\n  NotFoundError, // 404\n} from '@grantjs/server';\n\ntry {\n  await grantClient.isAuthorized('resource', 'action', undefined, request);\n} catch (error) {\n  if (error instanceof AuthenticationError) {\n    // Handle 401\n  } else if (error instanceof AuthorizationError) {\n    // Handle 403\n  }\n}\n```\n\n## TypeScript\n\nFull type definitions are included:\n\n```typescript\nimport type {\n  GrantServerConfig,\n  AuthorizationResult,\n  PermissionCheckOptions,\n  Scope,\n  ResourceResolver,\n} from '@grantjs/server';\n\nimport { Tenant } from '@grantjs/schema';\n```\n\n## Comparison with @grantjs/client\n\nThe server package (`@grantjs/server`) is designed for **server-side** Node.js applications, while the client package (`@grantjs/client`) is for **browser** applications.\n\n**Key Differences:**\n\n| Feature               | @grantjs/server                                                    | @grantjs/client             |\n| --------------------- | ------------------------------------------------------------------ | --------------------------- |\n| **Target**            | Node.js servers                                                    | Browser apps                |\n| **Caching**           | No (handled by API)                                                | Yes (5min TTL)              |\n| **Token Source**      | Request object                                                     | Callback functions          |\n| **Framework Support** | Express, Fastify, NestJS, Next.js                                  | React, Vue, Svelte, Angular |\n| **API**               | `grant()` (Express/Fastify), `withGrant()` (Next), `@Grant` (Nest) | `useGrant()` hook           |\n| **Error Handling**    | HTTP status codes                                                  | Boolean returns             |\n| **Resource/Action**   | Plain strings (generic)                                            | Plain strings (generic)     |\n\n**When to Use:**\n\n- **@grantjs/server**: Protecting API routes, GraphQL resolvers, server-side middleware\n- **@grantjs/client**: Conditional UI rendering, client-side permission checks\n\n## License\n\nMIT\n","readmeFilename":"README.md"}