{"_id":"@12-apps/rbac","_rev":"60-83cf4a2c30af0ace3d51ccddfedb96e0","name":"@12-apps/rbac","dist-tags":{"latest":"4.17.0"},"versions":{"1.0.0":{"name":"@12-apps/rbac","version":"1.0.0","license":"MIT","_id":"@12-apps/rbac@1.0.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"46a28398f8f6dc0823e96814bd22d610b61bdfd9","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.0.0.tgz","fileCount":39,"integrity":"sha512-uDX/WT9nWw7jRm42rAsFFnDrAxQk9gQ+yfCsHb0e4SyDKLxI1ddwuW+zsCCQ310LZuD0mkQlmsZcwRj5rRreLQ==","signatures":[{"sig":"MEUCIQCjeMmWQKQPkAz9dqLN4nfq+vNR5xcSAqNubU2IWk0xSAIgWMFTHDqdXN9J3lPjPd4kKzaxI/ITcfw4iboCJpCcdNg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":172812},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts"},"gitHead":"e1d0b7c4524e3a0cee4c80ebbf0bb7c11ee536f2","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"tigredonorte","email":"tigredonorte3@gmail.com"},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control library. Framework-free core plus optional React and framework-neutral server (Next) adapters. Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.1.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.1.0"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.0.0_1785896254761_0.5619658008740323","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@12-apps/rbac","version":"1.2.0","license":"MIT","_id":"@12-apps/rbac@1.2.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"052fe6ed8c6bb8ae7edbbf8282b0277d45dc1f01","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.2.0.tgz","fileCount":39,"integrity":"sha512-nGngml9PNVmFc616JP1+4b0F0qLobCjGD96FJicguxE/MHvCXhRb8dCfs4sC/qbqggFbPsS5QxJELQzqQsYC4A==","signatures":[{"sig":"MEUCICgasgF7V+8p9ntfylSeotM/PRNYva9YaJzqVfHsRKW8AiEAjyX6TYU4kWHqkA6sDUXDdj/A4Kam83ormMBV1WOXhDM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":172812},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts"},"gitHead":"d05da896cc8a43f54fec717c51429eefed6682d3","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control library. Framework-free core plus optional React and framework-neutral server (Next) adapters. Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.3.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.3.0"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.2.0_1785946181110_0.6337941190474343","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@12-apps/rbac","version":"1.2.1","license":"MIT","_id":"@12-apps/rbac@1.2.1","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"ab46c0b88611ac980484dc3747d04405acb35f65","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.2.1.tgz","fileCount":39,"integrity":"sha512-SipGqJymLEhXkx72Lae8B3PkGzuChqkIUoZHT4pkjZGAMB3Qo3Tzi0rtMTDRqoGFjBfTcY6aWkiCQgPQIhv4Jw==","signatures":[{"sig":"MEQCID4DNDhLdvKOE3lagHmXi5ICELiXvtBZYTXG11FxSlEsAiAn9OvnTAeZVlCjEiUuQdBV2zxIi985Uoe8+I3r9D3utQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":172812},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts"},"gitHead":"6a59470cbaaf679bd15ec21462bb500a5843db54","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control library. Framework-free core plus optional React and framework-neutral server (Next) adapters. Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.3.1","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.3.1"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.2.1_1785949574856_0.956826373524212","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@12-apps/rbac","version":"1.3.0","license":"MIT","_id":"@12-apps/rbac@1.3.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"e6252047728066bae2014d57959ae2468ac24461","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.3.0.tgz","fileCount":39,"integrity":"sha512-uBVGjrNTtof8rQ9xzqd/Ji2sWOP15K65bbA4Kj8Gdhfl0f3AR91aUffNh17NjqfE9fAibMOPV5Fo5m88RCZoRA==","signatures":[{"sig":"MEQCIEJhuSw4FxxhIuBu5TtU50AMJmnc+9pv0JFDq5sLLdiWAiAlm48YxejrF1fBdR1mAJ9qi4XrXtdFqhiVPCVoDYTH3A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":172812},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts"},"gitHead":"f52a264eaaba821a536b1f2a3fcfae9a6cc4f7c7","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control library. Framework-free core plus optional React and framework-neutral server (Next) adapters. Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.4.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.4.0"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.3.0_1785954851906_0.9447878312933207","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@12-apps/rbac","version":"1.3.1","license":"MIT","_id":"@12-apps/rbac@1.3.1","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"b88853e11fcafb268c395c7c3152f4bd89244cb1","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.3.1.tgz","fileCount":39,"integrity":"sha512-0Dnvh3aWIIHvTMsoGXDHh3dwlDPkdKrnkM4XT9mhCUvQF+Q69lfJQ/wOPU1VKg/Q7xDM2tSC9entZI+eUGbMGw==","signatures":[{"sig":"MEUCIG5sZd5J6YV1On/hQXX4XMUomKoEYzeRXH7j+BLmIlstAiEAhU44yM3aOa0YL+MpwSmJ1cjKYPgBakk9lXs1cvSzFv0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@1.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":172812},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts"},"gitHead":"4067cf613069590fbad29cf687882ba0f49e1073","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control library. Framework-free core plus optional React and framework-neutral server (Next) adapters. Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.4.1","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.4.1"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.3.1_1785955908979_0.23743220988892721","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@12-apps/rbac","version":"1.4.0","license":"MIT","_id":"@12-apps/rbac@1.4.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"e7614cbc85539eeff7d944af7025156c328e6199","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.4.0.tgz","fileCount":39,"integrity":"sha512-kRgHFf1m4JYe31mvPoa9vZ9je6vgiYpXoza+xtOW557UIUmcyjrFx7nepHIH29dCwLnlv9fG42JN8mJZNpAmkA==","signatures":[{"sig":"MEUCIGR3aPp9c8FYYL1l85BS+TwLv9vF5WbJMN/Wj0Up1qI3AiEA3UH1LOb1q70PCxuQRvcXR5N1MwIMcz/fuolpc3xAgVE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":172812},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts"},"gitHead":"9ac31454f10150e8721e44c9a38b8bb1d545dfea","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control library. Framework-free core plus optional React and framework-neutral server (Next) adapters. Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.5.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.5.0"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.4.0_1785966189868_0.46842787276885134","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@12-apps/rbac","version":"1.4.1","license":"MIT","_id":"@12-apps/rbac@1.4.1","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"74ecf33f491dcd5789b872470e3c1220aca928fc","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.4.1.tgz","fileCount":21,"integrity":"sha512-t9tXkSx2CUdojKHgwnXwcXelK+OD47WT09vBYA9KLTTLhayKHlegH4PgVL+TBav7utWPl2JAs7FgWCS+QI8d7g==","signatures":[{"sig":"MEQCIAfu32N9qf7cUwnD7zeZy/r6YXtf5JdcCxBr/Hxg7XvHAiBybV/8QOvAdwChGjwNeuN7A9jvyNaT71KKLH+D4Rxxtw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@1.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96329},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts"},"gitHead":"81e7421d24f622d31b501c3562db19b0c6943936","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control library. Framework-free core plus optional React and framework-neutral server (Next) adapters. Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.5.1","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.5.1"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.4.1_1785978958503_0.1976546741851013","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"@12-apps/rbac","version":"1.4.2","license":"MIT","_id":"@12-apps/rbac@1.4.2","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"78e29251c285117d53251b4aa94e77452689100d","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.4.2.tgz","fileCount":21,"integrity":"sha512-QwdlUI+VLZ55OVH1QUn+KsMgvk2x68RPKFDR1/0NFWoZxvEIgPj/bFbfvd92TsNEZp+41qEj0ItdVdLa0w7h3g==","signatures":[{"sig":"MEQCIHVE4uoB36ST9yxnqmV2K6niPseWpVeFaj+bVOEXPuVcAiA8HHhhirqcIRw/+wt9QfhpazQjOx/O6akGKL8KfKIoAQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@1.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96329},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts"},"gitHead":"f57c50c67e9ea99974be5dcae253e526be4090d9","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control library. Framework-free core plus optional React and framework-neutral server (Next) adapters. Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.5.3","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.5.3"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.4.2_1785993084218_0.2161292278952296","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@12-apps/rbac","version":"1.5.0","license":"MIT","_id":"@12-apps/rbac@1.5.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"1c0bb5b389cae8adbb29da0d85d9ae35f88d4261","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.5.0.tgz","fileCount":21,"integrity":"sha512-/qKnkfm1t7AuVB7tUhmf8KufcnG2Cqlg5sgkFy+RWRAEhr4itJQxNHh3iAo/IHjS2rIST05l7k1VLsHU0dPu1g==","signatures":[{"sig":"MEQCICnZE/t4Hmqr7PFkYyUT50TAhDo3xoLVgQOYvuDIfyy+AiATgZI0sIoWlcNiFrKVuorUZT8hgxlKpP1XvTcex/mBmg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96329},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts"},"gitHead":"8e0cd152236f2f1e72297beceba8334893f28e2a","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control library. Framework-free core plus optional React and framework-neutral server (Next) adapters. Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.6.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.6.0"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.5.0_1786030900035_0.48712529024659945","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"@12-apps/rbac","version":"1.5.1","license":"MIT","_id":"@12-apps/rbac@1.5.1","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"e9295c0bef163b5f3107c273831b41a795e9fc09","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.5.1.tgz","fileCount":21,"integrity":"sha512-K200y+3go/pExLtfy3DDzy0mY7NkZAUvUya+/8JBO0iCP+S9PhTQZZrD6fae+DmUD87bqqCPhv6rTOfFZArF/g==","signatures":[{"sig":"MEUCIHf122/IR/8yTBFfGA6LrzQ7R4oUoGeYChvUcx4RT3/XAiEA6iPSJU7Aa1ltYDNmIUr+ra1YRsfxLryCbKDYCDZ8ldg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@1.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96329},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts"},"gitHead":"15f8407ccc08a7d53484c2d3d701a8b1eb28639d","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control library. Framework-free core plus optional React and framework-neutral server (Next) adapters. Zero app coupling.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.6.1","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.6.1"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.5.1_1786059886312_0.886313767087","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"@12-apps/rbac","version":"1.5.2","license":"MIT","_id":"@12-apps/rbac@1.5.2","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"d1381b5b44107c26ffdd3c47e0c3bf93fb56b572","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.5.2.tgz","fileCount":21,"integrity":"sha512-jEPWb3TQBPktvVCV16+kGGAQg5xcifBEEyZnoIVRju+QofdLLINrFoVzpvYJLrihqtVNrRKoPF29PVHTtE33pA==","signatures":[{"sig":"MEYCIQC6pvGl2rCq47ngPuaKwMgItMaX4Kam34RdJFGqNz/k9wIhAKqwNPtoc41enga4j1eUsM1b6wftmDSP6pwCrRxIb6o1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@1.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96329},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts"},"gitHead":"5b1ad4d8fc1948a6a2494d48f84552644bd57405","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control library. Framework-free core plus optional React and framework-neutral server (Next) adapters. Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.6.2","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.6.2"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.5.2_1786061423998_0.9403479713030345","host":"s3://npm-registry-packages-npm-production"}},"1.5.3":{"name":"@12-apps/rbac","version":"1.5.3","license":"MIT","_id":"@12-apps/rbac@1.5.3","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"8637d8657f0d4ed907da9f0ec867f6632c617120","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.5.3.tgz","fileCount":21,"integrity":"sha512-Aqu/UC86H8f1PyEW+voI4TLCudKFyEkUmjwpxYoqLYtXN134GZLYGKyL1eoet4RtQNKrIWalLFBuIjaFUx4jSg==","signatures":[{"sig":"MEYCIQDtC3v7OZGRZ1wkL0rODPgJZF/1IRQ2cT87UtcytGmQoAIhAMcEt2UpydWb0KNgjgdI/Vjyt2guDNXq12U1R5lNq2ZL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@1.5.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96329},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts"},"gitHead":"8ba6d6ad47840a83c06c146ef654227af5104a8e","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control library. Framework-free core plus optional React and framework-neutral server (Next) adapters. Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.6.3","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.6.3"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.5.3_1786066363545_0.6447858698204874","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@12-apps/rbac","version":"1.6.0","license":"MIT","_id":"@12-apps/rbac@1.6.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"715ce87a6e58098b9f69cdb3a2014384ef3fd814","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.6.0.tgz","fileCount":21,"integrity":"sha512-si3nNJPDr2+xnV3hS4LrentapUBT6YocUocpwauqEZJL5Sh8abHc7ZACBk3M+vjCVXgr9e6dmUMf9LEwv3Hu2g==","signatures":[{"sig":"MEQCH17ifr1GqbOk6wV30eeBG4/GPbbJvh1SRwmFiABnHq8CIQCCJQwZca0V+br3sYSa3ARDZyZxft5e1YHStYOAm/ASgw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96329},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts"},"gitHead":"1dbc1469b614c0f8b0f50e0116c4be4e99f39256","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control library. Framework-free core plus optional React and framework-neutral server (Next) adapters. Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.7.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.7.0"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.6.0_1786069529124_0.48163544891478316","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@12-apps/rbac","version":"1.7.0","license":"MIT","_id":"@12-apps/rbac@1.7.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"e2fb697da48174bab28b82e2c44b7f26d008c4d6","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.7.0.tgz","fileCount":21,"integrity":"sha512-QsAbfvap20TpW0+H4vWyjbQ3YDXICKqjhiCBv4JuMwTIx/CRvhcqCsU52ehlIRSjkPzRftYr6vRF//XOC0nuUw==","signatures":[{"sig":"MEUCIQCDF0CSDmRObgtb49/GH6d28l2oz55C3L9MT0HvMd0J8QIgf6bYpTsYDd2MX2fzNxFdsPWRHbNRTDLRiPrYwu0EMJ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@1.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96329},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts"},"gitHead":"6d34a3a466269e83fcce802ee81df261bfb14523","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control library. Framework-free core plus optional React and framework-neutral server (Next) adapters. Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.0.1","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.0.2"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.7.0_1786076505499_0.7071049355164307","host":"s3://npm-registry-packages-npm-production"}},"1.7.1":{"name":"@12-apps/rbac","version":"1.7.1","license":"MIT","_id":"@12-apps/rbac@1.7.1","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"6de230044325ea5161c80ac6ecd7de55907c9787","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.7.1.tgz","fileCount":21,"integrity":"sha512-wtjGTTFoWjhDBseXMCD5XO0tNZJCZ2c6DK4CiQH9MDNieFTHuJ/hYto5ASsmIJxKmue9PT+xYBTEHAymHgSsbw==","signatures":[{"sig":"MEUCIQDabtugMD/shbpxofftyFRhvg4jOe2pHrk/P28msIDbDgIgIntvEWMwZv0beba99juILpD2ljf8Oh6N8qKzWlvf6ME=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@1.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96329},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts"},"gitHead":"2e9d99f013ab8d5373a4e32a01a9c0221bd12190","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control library. Framework-free core plus optional React and framework-neutral server (Next) adapters. Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.8.1","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.8.1"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.7.1_1786077106731_0.4175704098443991","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@12-apps/rbac","version":"1.8.0","license":"MIT","_id":"@12-apps/rbac@1.8.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"8a0a605ac007942150fd218bb2df013f8ed43993","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.8.0.tgz","fileCount":21,"integrity":"sha512-U5xnCbeO4prjo88dyU+JyyOWOikfgJZOTcZ4gBVJZALeo+gcFDLAFWCql/K29Y7bK1XMJfHPQEsb3gdjiQHVQA==","signatures":[{"sig":"MEUCIQDVoodOiEm8qDbRw5RLdoVTpgcuwOeCDmGdQQEcfhtCLwIgS8x5KlhRLS1bb39ephdX/C19RTCK7+YVori0b/kW498=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@1.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96329},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts"},"gitHead":"7bfcec03feb4cfeb6db70c9dd7b69a936a1687bd","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control library. Framework-free core plus optional React and framework-neutral server (Next) adapters. Zero app coupling.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.9.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.9.0"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.8.0_1786089723206_0.5968345903123047","host":"s3://npm-registry-packages-npm-production"}},"1.8.1":{"name":"@12-apps/rbac","version":"1.8.1","license":"MIT","_id":"@12-apps/rbac@1.8.1","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"12d1236e860498b59694b8775c71ce688318172a","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.8.1.tgz","fileCount":21,"integrity":"sha512-WbMUVA31ajTt2VguZeKPX41pYQU+YXmO8CbpFBUZBHyq2Ff6iLPblogkt/+DFz4sRX3CNc8W3bYAAhGH47v/8Q==","signatures":[{"sig":"MEQCIC/x23ec5T5engvipWTLQxlOgkHy61oS9U7i5nQi6XOQAiBrXSHWWxr7JcnBwzNW7p4+rYbAPfmctUUVjAVSoy/G8g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@1.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96329},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts"},"gitHead":"e7605e656458d821164b2c47ee7fe9d7d4d790bd","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control library. Framework-free core plus optional React and framework-neutral server (Next) adapters. Zero app coupling.","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.9.1","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.9.1"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.8.1_1786093383760_0.7540365971317664","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"@12-apps/rbac","version":"1.9.0","license":"MIT","_id":"@12-apps/rbac@1.9.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"2bcd4e639272e483b284994bc95c1091e428238c","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.9.0.tgz","fileCount":21,"integrity":"sha512-mjKj2vEKjXHROgreCIBvqWEuAs1nl0P2sZ+SHtyZcV3W8wzqJDRROrgcxm7TuhJ1bvjzCv5N0RhInfMJsvQ3Lg==","signatures":[{"sig":"MEUCICFebyn824Oj/fPePZGzIjpTh7Iewozcsa5WUz0ryf1wAiEAi8bdPwJNnrPOx772o/JzAXVE6l0yTHAwL17MYWfNwoQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@1.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96331},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts"},"gitHead":"6bfe86e2215d81dffd8f616dad4aa181f027548b","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control library. Framework-free core plus optional React and framework-neutral server (Next) adapters. Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.10.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.10.0"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.9.0_1786100289109_0.5444839746472558","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"@12-apps/rbac","version":"1.10.0","license":"MIT","_id":"@12-apps/rbac@1.10.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"507f2e44dd67c11787d6f54d66e97ef8e214db84","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.10.0.tgz","fileCount":21,"integrity":"sha512-G9QtHUumWxkCweu50tiiHrK2mAzI5Y2NAHTQr39UrFBxUtMQ/M/uY9OV7tIZJXBf6ayCZEZfeFZz0lgUF5oiJA==","signatures":[{"sig":"MEUCIQDozCjd1q1BB4ge/oydcd1JrSrxkem/eQFd1jrE6mCYKwIgST4Lx837g/K2mgX2/JJlcDcAVcaWhEYyxahHyMIXeFs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@1.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96332},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts"},"gitHead":"ca77c6e24bbdd7ce427c8003f0de2444c95d88cf","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control library. Framework-free core plus optional React and framework-neutral server (Next) adapters. Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.11.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.11.0"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.10.0_1786103560371_0.26043231427608227","host":"s3://npm-registry-packages-npm-production"}},"1.10.1":{"name":"@12-apps/rbac","version":"1.10.1","license":"MIT","_id":"@12-apps/rbac@1.10.1","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"b9bda6058be56109adfd4731a252dc47c6f2d175","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.10.1.tgz","fileCount":21,"integrity":"sha512-ead7xLw1aL0uocQpim3wMNeSFxCudp/aHhifU1Ju9ctTF4/c88XwuYLXf2UjEUcMswYqJ0L5APeie4i9k+rpqQ==","signatures":[{"sig":"MEUCIDbBo6sQLW1V/UrHMXx+13lciESgS69l4cxYYfSmTA34AiEA9A5oe8YbqsqE5NPwbgHIyHanViQYKwGk/WIiWFW2UD4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@1.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96332},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts"},"gitHead":"b1c4a9ee167c219178d1933083ccaa44ba467ca2","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control library. Framework-free core plus optional React and framework-neutral server (Next) adapters. Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.11.1","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.11.1"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.10.1_1786108063487_0.18062520495025258","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"@12-apps/rbac","version":"1.11.0","license":"MIT","_id":"@12-apps/rbac@1.11.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"dee694262c79f33a3d8f0696d7084cd9194471c7","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.11.0.tgz","fileCount":21,"integrity":"sha512-1tuOJD1i6H+FR5XeoDUbLGwwYShLNXHvYVGpeZXoxM/w52p/gI2D2TjnlDN/xNZjwus6kNyQ33NLosP4uNo+VA==","signatures":[{"sig":"MEUCIQDixycxMkeML1KPQt6DpQk8Q6ECMrM8n4VAPJfNK3FkqAIgY8bDj4hs5VjRXrZn7U7mi3ojqlOPC5HIdkRjoS+xiek=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@1.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96332},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts"},"gitHead":"ec6d74e8ae3156dc9294ef46e3fd05dcdf8b6af4","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control library. Framework-free core plus optional React and framework-neutral server (Next) adapters. Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.12.1","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.12.1"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.11.0_1786117849736_0.9159657163633437","host":"s3://npm-registry-packages-npm-production"}},"1.11.1":{"name":"@12-apps/rbac","version":"1.11.1","license":"MIT","_id":"@12-apps/rbac@1.11.1","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"30db2d6f27bb7fbe7ecc07613551464a656e00ff","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.11.1.tgz","fileCount":21,"integrity":"sha512-p/wnL4JyYQlFOaSJyOGhzw4bXjCZwlsvPUAa+TDYfR9tgP1Q3nDyc/SVRHIoMPTZx1nTMgKW3aeVLmXcvYtbuQ==","signatures":[{"sig":"MEUCIQDo8IAqdVXgXU6mP2P3MLAuMjpm7I9KbZOfeVjdoh0E7AIgVRT0ihF6Rswjwu2eOT2YBRiik3l6yjWQ3DRgyhobhLg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@1.11.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96332},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts"},"gitHead":"e9fa4d72f92e37490fec1f39348375e9e34bf2ee","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control library. Framework-free core plus optional React and framework-neutral server (Next) adapters. Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.12.2","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.12.2"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.11.1_1786127724164_0.44692688831997374","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"@12-apps/rbac","version":"1.12.0","license":"MIT","_id":"@12-apps/rbac@1.12.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"135b51d63006ac4b9f80bfa21aded0f18dbaa7fb","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.12.0.tgz","fileCount":21,"integrity":"sha512-Fe0Zf4pOn1H8q5CUtDbHrpisgLkpkDwc1jg3nEAIMlAr11WlBE5kDrXNCUzabBHg80oV7DTNeJEGF3iJnsAqpQ==","signatures":[{"sig":"MEUCICURbO9Bs8y4o1ZN6USzuyFcPJJfKRIfsZ8xOXg2FOhoAiEAvKmTrYvgI4edHDmMQjna9bIpTuWkQLtykr/OYQ23oOY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@1.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96332},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts"},"gitHead":"903862a6809118567baa5931596f484c3ff8ff37","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control library. Framework-free core plus optional React and framework-neutral server (Next) adapters. Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.13.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.13.0"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.12.0_1786128532101_0.9134409630547187","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"name":"@12-apps/rbac","version":"1.13.0","license":"MIT","_id":"@12-apps/rbac@1.13.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"65ba393e3592d040e585ccd9e7275b60215bf32b","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.13.0.tgz","fileCount":21,"integrity":"sha512-V9zfVrSFVauVlDsbva9F+94l7OGjI+WAbDFiuESfVZuvD9wPzqyx1JCqMa6A2IkbcU56RRAn1aSKM82uXCMe6w==","signatures":[{"sig":"MEUCIHWtX2jM6oeJciNmbmOefTgNAX070PfBVIzxZYv4CZraAiEAs3YV0I4w8qVYxnCCJE5y2l+FbMNKPjb44QCxtQxYYUU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@1.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96332},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts"},"gitHead":"f9c9457f43bc8c265f81d27b8d3bb5f250fce11e","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control library. Framework-free core plus optional React and framework-neutral server (Next) adapters. Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.15.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.15.0"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.13.0_1786133004859_0.5133765072994325","host":"s3://npm-registry-packages-npm-production"}},"1.14.0":{"name":"@12-apps/rbac","version":"1.14.0","license":"MIT","_id":"@12-apps/rbac@1.14.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"13f752414f38817ea9442024934c4bfeea1013f7","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.14.0.tgz","fileCount":21,"integrity":"sha512-gPIJ+yNzx85w8wZl8su6Bep6IC3Ym8GdrIoMmWA89IlmVnh1ImD5WDJ88UJF7SFRQVmkzvUIdc3SyrKxa128AQ==","signatures":[{"sig":"MEYCIQDjT5Sg127Jag2hz6xddv8BDxbpXGND4R7fMSvcyJwF3QIhAMnr4Cdc1DdixMB1PTN8x0yH6MrwwL168oxtBDUO9+KX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@1.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96332},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts"},"gitHead":"ebccb7d5693b1f1340342b72139daef11fc81223","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control library. Framework-free core plus optional React and framework-neutral server (Next) adapters. Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.16.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.16.0"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.14.0_1786133706197_0.3063842291990371","host":"s3://npm-registry-packages-npm-production"}},"1.14.2":{"name":"@12-apps/rbac","version":"1.14.2","license":"MIT","_id":"@12-apps/rbac@1.14.2","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"b93f7c0b7fa92fb44818c9151829cad240294c3e","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.14.2.tgz","fileCount":21,"integrity":"sha512-TxLgzbTyPp9ym+WOram45qrGS8CjRZZJqYK8WgyWnNxvohzED6OIDRk4ward09IcZjxDoArtmf61NE84tZ9lwQ==","signatures":[{"sig":"MEUCIEGS8HlB/fvPp65i1Wr7c6pReyucyvmTeZ5PxxxWMdK5AiEA4AomXG+sAk3B6Wob3aEfj8jO4Ffj3t+WnaFp81zGRPw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@1.14.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96332},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts"},"gitHead":"bfd39495ffa882cae31b10538877b522984cbebc","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control library. Framework-free core plus optional React and framework-neutral server (Next) adapters. Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.16.2","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.16.2"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.14.2_1786138850092_0.3104594016554447","host":"s3://npm-registry-packages-npm-production"}},"1.15.0":{"name":"@12-apps/rbac","version":"1.15.0","license":"MIT","_id":"@12-apps/rbac@1.15.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"5a932254c0d6f713d449b0949577911eef0edd99","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.15.0.tgz","fileCount":21,"integrity":"sha512-B4A+wZkP5E3F57nJZo84hS7APpi1DEWks5N1YVPZqAfQgoE+U0nJbSakfyCxUwzYiKuQIQ6HMGrOB1QV3TO1UQ==","signatures":[{"sig":"MEUCIHV8SW6HGp159gJ2KC+n8p7ZkZEI/sSkTqWttkCMWfdLAiEAkRYhqkmXJjHIAVIJl/A5a9YUM5IXDoxeD6cxAZ16gkM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@1.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96332},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts"},"gitHead":"2d4a0e9dbf04f79e2306b779f56f0dd5d079e09a","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control library. Framework-free core plus optional React and framework-neutral server (Next) adapters. Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.17.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.17.0"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.15.0_1786145551189_0.10933043213310056","host":"s3://npm-registry-packages-npm-production"}},"1.15.1":{"name":"@12-apps/rbac","version":"1.15.1","license":"MIT","_id":"@12-apps/rbac@1.15.1","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"08d53856625145e0d61cfeab9588a29285488231","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.15.1.tgz","fileCount":21,"integrity":"sha512-mzuCRR1GMxdwtRTVXjWSI3BQq+PPzh4y/oMwn0DzyH2npHA3FiJQSgiQH11hQnOPqNtJXAuYkCm5aoHXToiHrQ==","signatures":[{"sig":"MEUCIQCf7IUmTM6PHM/NCcpwhSDgH48uZDMBJBec5wEgJ8VAUAIgHrV1Cej92F8yMfF6C2gAmLPuyhlv5dH+qrj2I3qE3Nk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@1.15.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96332},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts"},"gitHead":"f0356169f9682182eabba77485cf4772051235ae","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control library. Framework-free core plus optional React and framework-neutral server (Next) adapters. Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.17.1","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.17.1"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.15.1_1786146696005_0.01793475232141395","host":"s3://npm-registry-packages-npm-production"}},"1.15.2":{"name":"@12-apps/rbac","version":"1.15.2","license":"MIT","_id":"@12-apps/rbac@1.15.2","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"bfbc4ff2cadfce9d83b6ba6eda5474b1fc029e57","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.15.2.tgz","fileCount":21,"integrity":"sha512-qtT0TTFBcgc7HUnKx3cIfuBBviK9oJ6lyjARQ7TzMZkR2da5DtTLSEDPm6CtvF0d0Jfdh/Xh4FryBKTvhF+eYw==","signatures":[{"sig":"MEUCIQDF/YCqRgly651NUxANGiPlf0fmUa9PTmbSUhzMFG9buQIgcM3scJX+IJyXaJSRMzNILu19c+dmWY9tpWnVDZfL9rM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@1.15.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96332},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts"},"gitHead":"4b2466cbe6cded4941ec25ef92cf41d7fab0697e","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control library. Framework-free core plus optional React and framework-neutral server (Next) adapters. Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.17.2","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.17.2"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.15.2_1786159948328_0.6823105634648534","host":"s3://npm-registry-packages-npm-production"}},"1.15.3":{"name":"@12-apps/rbac","version":"1.15.3","license":"MIT","_id":"@12-apps/rbac@1.15.3","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"c7592b52b891b7be022ec05141b9e68f167ff124","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.15.3.tgz","fileCount":21,"integrity":"sha512-rzvTYm/ozSZ2vv3pKF93j1FMI18YbqmOWbSC14Q7h6tAoqpk3BNgvPygWrKNjQr0xC7ga58tAX4D/t1gMST5vg==","signatures":[{"sig":"MEQCIFvo+GVNmfEwaonZA29O10yv2tIj5Mwwf/QHcIWfD9wDAiAxV/F/srn/pSE1ujI3UX3pbzOqgfw4IL7MQcyw6Vtrtw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@1.15.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96332},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts"},"gitHead":"ee3399530780d82beea32410802a945627ffe271","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control library. Framework-free core plus optional React and framework-neutral server (Next) adapters. Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.17.3","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.17.3"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.15.3_1786197923469_0.3154407303118094","host":"s3://npm-registry-packages-npm-production"}},"1.16.0":{"name":"@12-apps/rbac","version":"1.16.0","license":"MIT","_id":"@12-apps/rbac@1.16.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"91e7df42eefe3630f2e2c10b0facd3e1acc79606","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.16.0.tgz","fileCount":21,"integrity":"sha512-0WZU2FmgrGtnuRqpV5V5R9mGEdw9FkSHHRQ+/yCTSgqMWJcyJh4bJTdtZS8FF0swebuJFa9KrQtHwOPtPiFn6g==","signatures":[{"sig":"MEQCID14ldB157MIjaif5GaV3tVABjZ8chD+hD9tA2gIBIynAiAjsnZl4uAhkATL4MP9cG8B9iaglh02GNN55O1gasvvzQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@1.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96332},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts"},"gitHead":"8af3c18e1811d042f30016a4ba43e74abc4b8c50","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control library. Framework-free core plus optional React and framework-neutral server (Next) adapters. Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.18.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.18.0"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.16.0_1786203896694_0.5787268980187761","host":"s3://npm-registry-packages-npm-production"}},"1.17.0":{"name":"@12-apps/rbac","version":"1.17.0","license":"MIT","_id":"@12-apps/rbac@1.17.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"3a6bc0b330b75fcbf9b72751b71927d22065fd25","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.17.0.tgz","fileCount":21,"integrity":"sha512-KbgtskKtJUnTYepm2rMeIJBU8juq1IM++7lyDrTHW9vdoTE9YXB9Bevdj72OnrTxB5anz72lGspvNQWgcTLvOQ==","signatures":[{"sig":"MEUCIGCIH3FbRfapvG2XyCtASn+R3RX7RpqYef+XIKW7DLcTAiEAiZ9D1gPTxpEAcV4vVMbwwU9KWSVY6AzFsGPxWOkutzg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@1.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96332},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts"},"gitHead":"3a8eb1783f8cccce3b7ec49cb10e3e6d2c5d7310","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control library. Framework-free core plus optional React and framework-neutral server (Next) adapters. Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.19.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.19.0"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.17.0_1786206098845_0.746778668247551","host":"s3://npm-registry-packages-npm-production"}},"1.18.0":{"name":"@12-apps/rbac","version":"1.18.0","license":"MIT","_id":"@12-apps/rbac@1.18.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"30adf7e9853f8b0e77d0fb3cf6170ae20619e746","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.18.0.tgz","fileCount":21,"integrity":"sha512-L/MZByM12ogPDEPXF8JQMwnEQPgAVb8CiZ8g8kzENaixlwr12YzXel8cD/ys5nCIeEMnQDCzCSkb6z63GbxLTA==","signatures":[{"sig":"MEQCIEZsKV147EaMhBRo4EdSacElF3FCJ2vt3cVpAnFHt7rIAiA/xgSk8PSPwVhslOC/PncCRSpEe7MHf7bb52ozl4L2FA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@1.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":96332},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts"},"gitHead":"21bbb5b06424cf045eaad617a5912aa00d0c654b","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control library. Framework-free core plus optional React and framework-neutral server (Next) adapters. Zero app coupling.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.20.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.20.0"},"peerDependencies":{"react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.18.0_1786209445533_0.5969816577718681","host":"s3://npm-registry-packages-npm-production"}},"1.19.0":{"name":"@12-apps/rbac","version":"1.19.0","license":"MIT","_id":"@12-apps/rbac@1.19.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"509422b38a595b477e4949763ba593c86fca195a","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.19.0.tgz","fileCount":59,"integrity":"sha512-p3g+w2eCmFS+VaNHVX2rkATdG4IZxsHVzO5nnOxXGq1GJWXlSU16n6rK5pvfd+sF4kbButkSLV4abtGkpWPCHg==","signatures":[{"sig":"MEYCIQD5rf2oiIWU4vHoac5lx8oyoiE7lkiefg84BiqigR4bPAIhAOz6N6n4q5gq5Cp/AbOoid76UYmqRCS3nIGBSo5GldTk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@1.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":335494},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./hono":"./src/hono/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts","./server":"./src/server/index.ts","./coverage":"./src/coverage-gate/index.ts","./package.json":"./package.json"},"gitHead":"5bf538dc3680536533f4750ad7be4c0d27941b40","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit","prisma:sync":"node scripts/sync-rbac-schema.mjs","prisma:sync:check":"node scripts/sync-rbac-schema.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control. Framework-free core (engine, registry, caveats, templates, governance), host-mounted backend surface (./server: role CRUD, permissions, team roster, guard helpers, duck-typed Prisma seam), Hono adapter (./hono)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.3.5","@12-apps/ui":"^4.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.20.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.20.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.19.0_1786571934760_0.2515222337065526","host":"s3://npm-registry-packages-npm-production"}},"1.20.0":{"name":"@12-apps/rbac","version":"1.20.0","license":"MIT","_id":"@12-apps/rbac@1.20.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"6ae459f4f0afbdc426510a5f912a30135c0759f9","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.20.0.tgz","fileCount":59,"integrity":"sha512-bSmnGFK2Lu3INAu/QHUObJx6ZvzsGQy52MUrMO814lCE2g6gowC886Iblsr5c0CBRAnGaBUBgxgZMfx4vTgLvw==","signatures":[{"sig":"MEQCIDFn6Q3L/9jH9dcKzSZvRSFAwSSRD1+oWVS7dgM6ijlZAiA26/qHfHL1i8icgVovJjuFnahhg0y45lnID++8zF3aNg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@1.20.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":338542},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./hono":"./src/hono/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts","./server":"./src/server/index.ts","./coverage":"./src/coverage-gate/index.ts","./package.json":"./package.json"},"gitHead":"a470e8b821b0aa209090194eaea60deb3ad07974","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit","prisma:sync":"node scripts/sync-rbac-schema.mjs","prisma:sync:check":"node scripts/sync-rbac-schema.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control. Framework-free core (engine, registry, caveats, templates, governance), host-mounted backend surface (./server: role CRUD, permissions, team roster, guard helpers, duck-typed Prisma seam), Hono adapter (./hono)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.3.5","@12-apps/ui":"^4.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.20.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.20.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.20.0_1786588129392_0.6724617999235727","host":"s3://npm-registry-packages-npm-production"}},"1.20.1":{"name":"@12-apps/rbac","version":"1.20.1","license":"MIT","_id":"@12-apps/rbac@1.20.1","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"7499784dd76f19f20d9c5586454b08e1e51517d9","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-1.20.1.tgz","fileCount":59,"integrity":"sha512-++GJUr5LkYygiaEKG0KpSODSGqnOj8xUZ4zH3VBrxoAO0pGsllxLXokFQy1fedi3CYP1KtA6Xco+LtzDDuOkeA==","signatures":[{"sig":"MEUCIQDOIWHTmj/K1a3GuR2ImSXRGFtalohPvFvdNO5DCT2aPQIgbp15/XU92tFatZG2VmlBcRyWPgAbwoyfrpLv/WsMRww=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@1.20.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":341280},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./hono":"./src/hono/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts","./server":"./src/server/index.ts","./coverage":"./src/coverage-gate/index.ts","./package.json":"./package.json"},"gitHead":"ecd06168c820803183cde1c80107e500c8196efb","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit","prisma:sync":"node scripts/sync-rbac-schema.mjs","prisma:sync:check":"node scripts/sync-rbac-schema.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control. Framework-free core (engine, registry, caveats, templates, governance), host-mounted backend surface (./server: role CRUD, permissions, team roster, guard helpers, duck-typed Prisma seam), Hono adapter (./hono)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.5","@12-apps/ui":"^4.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.20.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.20.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_1.20.1_1786590465497_0.3310852550892316","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@12-apps/rbac","version":"2.0.0","license":"MIT","_id":"@12-apps/rbac@2.0.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"5d53a8504cc971dab3ec51beec97c4df2b7cd905","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-2.0.0.tgz","fileCount":59,"integrity":"sha512-6ivs+V2KJIBV9ex1LK0GZhnkGjAdxbC9u+DF8AJju3b8YaGK30bpB+jnVVPXr747ItA0jyqLJen0VqJfO+xyKw==","signatures":[{"sig":"MEYCIQCvvHBlwvJNj8zaoj9gOtnK7yYU2Ci3Zi3kKLNOdajzhAIhALz5yNhq96KcZTnxK0a2ae8U6x05UXJcnI63epR29moD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":344367},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./hono":"./src/hono/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts","./server":"./src/server/index.ts","./coverage":"./src/coverage-gate/index.ts","./package.json":"./package.json"},"gitHead":"c508587929332bb285143002f9b85d8efa481e83","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit","prisma:sync":"node scripts/sync-rbac-schema.mjs","prisma:sync:check":"node scripts/sync-rbac-schema.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control. Framework-free core (engine, registry, caveats, templates, governance), host-mounted backend surface (./server: role CRUD, permissions, team roster, guard helpers, duck-typed Prisma seam), Hono adapter (./hono)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.5","@12-apps/ui":"^4.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.20.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.20.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_2.0.0_1786591641016_0.4383955598500531","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@12-apps/rbac","version":"3.0.0","license":"MIT","_id":"@12-apps/rbac@3.0.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"e3456f692aec620b3aeaf395b6a5ac664a259406","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-3.0.0.tgz","fileCount":61,"integrity":"sha512-sWbbmYXxjietzVISdFelQheWXMAqoH41573rAqPPD3L/TLiDG77B1dDo6oyZuse2/qhISrkLRvcC6znJ0IeocA==","signatures":[{"sig":"MEUCIQCP+S+LtiGphYkv18uW6ONpXoT36rx/Bl2g0LMM3nHbLwIgI1To9r7BsmpIfJU9fhQQPOpW8n1F3eNPRwP6FJeNfGY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":370534},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./hono":"./src/hono/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts","./server":"./src/server/index.ts","./coverage":"./src/coverage-gate/index.ts","./package.json":"./package.json"},"gitHead":"4a2944d4e0aab830bcf7e2b7693e887ddb1afb44","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit","prisma:sync":"node scripts/sync-rbac-schema.mjs","prisma:sync:check":"node scripts/sync-rbac-schema.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control. Framework-free core (engine, registry, caveats, templates, governance), host-mounted backend surface (./server: role CRUD, permissions, team roster, guard helpers, duck-typed Prisma seam), Hono adapter (./hono)","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.5","@12-apps/ui":"^4.0.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.20.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.20.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_3.0.0_1786662144188_0.9502735459026326","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@12-apps/rbac","version":"4.0.0","license":"MIT","_id":"@12-apps/rbac@4.0.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"f857433d03cdcbe4b68bf5fdc853ae7a3702be46","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-4.0.0.tgz","fileCount":61,"integrity":"sha512-OoANODLcRyPDDNZ/Mr/kNKYspw1MUJvHLHJaTLPVRu7udmZA10BDZtVLSPhqcFDrkcqBeLn40zGwhD76/Pm4PQ==","signatures":[{"sig":"MEYCIQCfMKUcxYlyV/rq/Sr68wqfcPkqBRzh/aH/2Ej5gP4q1gIhALak61x2ZDwCiabsMzHP9bkS5eU/PPSzrb00MlKiOF+q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@4.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":370811},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./hono":"./src/hono/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts","./server":"./src/server/index.ts","./coverage":"./src/coverage-gate/index.ts","./package.json":"./package.json"},"gitHead":"f837d4958a5b21e02d2f02a1c008ff1d1a23937a","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit","prisma:sync":"node scripts/sync-rbac-schema.mjs","prisma:sync:check":"node scripts/sync-rbac-schema.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control. Framework-free core (engine, registry, caveats, templates, governance), host-mounted backend surface (./server: role CRUD, permissions, team roster, guard helpers, duck-typed Prisma seam), Hono adapter (./hono)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.3.5","@12-apps/ui":"^5.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.20.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.20.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_4.0.0_1786800305692_0.5123949478873695","host":"s3://npm-registry-packages-npm-production"}},"4.0.1":{"name":"@12-apps/rbac","version":"4.0.1","license":"MIT","_id":"@12-apps/rbac@4.0.1","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"62c693e0708ad814db60d6e734f00d98dcad7237","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-4.0.1.tgz","fileCount":62,"integrity":"sha512-+Y75RYxUIVDFBsmFqsG6hQhxHDvrv8/34F2PvGe4r+o7xxm6neYZZDbYoMT8R/R/ti6WeuGHwSsWpO1d1HMG8Q==","signatures":[{"sig":"MEYCIQCACkTamp5BNAVSnRT1a9Qltovb1sYDPq6OiIYhP13ZNwIhAIE27/Mdrg05eJPe5DWqKbDEhxJmSXA3xAcCXa6h6jgC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@4.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":377659},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./src/index.ts","./hono":"./src/hono/index.ts","./next":"./src/next/index.ts","./react":"./src/react/index.ts","./server":"./src/server/index.ts","./coverage":"./src/coverage-gate/index.ts","./package.json":"./package.json"},"gitHead":"74abd58281f78b667b86aa3341808211580ba7cb","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit","prisma:sync":"node scripts/sync-rbac-schema.mjs","prisma:sync:check":"node scripts/sync-rbac-schema.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control. Framework-free core (engine, registry, caveats, templates, governance), host-mounted backend surface (./server: role CRUD, permissions, team roster, guard helpers, duck-typed Prisma seam), Hono adapter (./hono)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.3.5","@12-apps/ui":"^5.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.20.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.20.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_4.0.1_1786815191232_0.10828462986749221","host":"s3://npm-registry-packages-npm-production"}},"4.0.2":{"name":"@12-apps/rbac","version":"4.0.2","license":"MIT","_id":"@12-apps/rbac@4.0.2","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"8c3167369d8c4e336e753eed31298c4f464f103d","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-4.0.2.tgz","fileCount":94,"integrity":"sha512-1upjMWtgCvjAvWJgvnoh5j02Q3/SEQ2Orp8MwrGw3oa+KlvxKMHVxxgOBlNatBJycGUp2DtdooMXNcebkMkZTQ==","signatures":[{"sig":"MEUCIQCOc2z4YCjOJIQSGvg54uB9XA3HzOTXJWjiJs/XzpcpWwIgUuMQmuKq9BZW1MOdowcnx8viO/yf2Vr5ILx64GtAoMc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@4.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1050703},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./hono":{"types":"./dist/hono/index.d.ts","default":"./dist/hono/index.js"},"./next":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./server":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./coverage":{"types":"./dist/coverage-gate/index.d.ts","default":"./dist/coverage-gate/index.js"},"./package.json":"./package.json"},"gitHead":"5a17fce7aad1374fed047dba175aab7e20d53a29","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit","prisma:sync":"node scripts/sync-rbac-schema.mjs","prisma:sync:check":"node scripts/sync-rbac-schema.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control. Framework-free core (engine, registry, caveats, templates, governance), host-mounted backend surface (./server: role CRUD, permissions, team roster, guard helpers, duck-typed Prisma seam), Hono adapter (./hono)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.3.5","@12-apps/ui":"^5.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.20.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.20.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_4.0.2_1786983845225_0.16149913112063552","host":"s3://npm-registry-packages-npm-production"}},"4.0.3":{"name":"@12-apps/rbac","version":"4.0.3","license":"MIT","_id":"@12-apps/rbac@4.0.3","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"02faff0123b53f37e3db604a775d237875821f76","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-4.0.3.tgz","fileCount":95,"integrity":"sha512-3eqDCk/1bFDqLCln7AQpgLyyamcLT4yHhY8nP/HUcNHdPIp/BZ/9ao6E0PeJt6ZAsY01NMoL+3YQjZBE+WL17g==","signatures":[{"sig":"MEYCIQDIdrTWqAvoWrYZORg1QYpsXdKmzhhdxYvwdSoezt0tAQIhALuoxMU9SLnogu1p2Mno+5ZW732RftjaH9Qu4nMrHoke","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@4.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1065485},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./hono":{"types":"./dist/hono/index.d.ts","default":"./dist/hono/index.js"},"./next":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./server":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./coverage":{"types":"./dist/coverage-gate/index.d.ts","default":"./dist/coverage-gate/index.js"},"./package.json":"./package.json"},"gitHead":"e7f428e3fe31105ba18d9dcdd8dccc46a7eba296","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit","prisma:sync":"node scripts/sync-rbac-schema.mjs","prisma:sync:check":"node scripts/sync-rbac-schema.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control. Framework-free core (engine, registry, caveats, templates, governance), host-mounted backend surface (./server: role CRUD, permissions, team roster, guard helpers, duck-typed Prisma seam), Hono adapter (./hono)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.3.5","@12-apps/ui":"^6.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.20.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.20.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_4.0.3_1787236936963_0.7915370805233768","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"name":"@12-apps/rbac","version":"4.1.0","license":"MIT","_id":"@12-apps/rbac@4.1.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"02de2fdca3e93191ae887c56c92b85c756fe9a43","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-4.1.0.tgz","fileCount":95,"integrity":"sha512-kgLbtbmalJAUvN7Y9NFsedpFc/hP6RCgNoYa6SXhgfb0r54LT8hZkva3tug/NWcLDgWjZuWiIFp0lwsGbeY/ug==","signatures":[{"sig":"MEUCIGnsB8xHfTT1Rqg5ow2haoKt1bl14UcLSHf0y+Pf00KYAiEAokA8OynMGXz0UBUJKY/VcL2Rsl3IOTiMvy78oGdhKMw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@4.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1076705},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./hono":{"types":"./dist/hono/index.d.ts","default":"./dist/hono/index.js"},"./next":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./server":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./coverage":{"types":"./dist/coverage-gate/index.d.ts","default":"./dist/coverage-gate/index.js"},"./package.json":"./package.json"},"gitHead":"9899de29a12e90e2ecc83203a90a1bcb24f430a8","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit","prisma:sync":"node scripts/sync-rbac-schema.mjs","prisma:sync:check":"node scripts/sync-rbac-schema.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control. Framework-free core (engine, registry, caveats, templates, governance), host-mounted backend surface (./server: role CRUD, permissions, team roster, guard helpers, duck-typed Prisma seam), Hono adapter (./hono)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.3.5","@12-apps/ui":"^6.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.21.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.20.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_4.1.0_1787271212421_0.4132598703272501","host":"s3://npm-registry-packages-npm-production"}},"4.2.0":{"name":"@12-apps/rbac","version":"4.2.0","license":"MIT","_id":"@12-apps/rbac@4.2.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"5e1bae46f45f06600447897c9c06988702a77a05","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-4.2.0.tgz","fileCount":98,"integrity":"sha512-T1vCNcBkZyW03yiQ489XM7y+lP6O5bjzhsYmowlpEjBEmxDVkU29feBzzj3PTLgLXVjquH3liv7QiDFgsziLXg==","signatures":[{"sig":"MEUCIQDwiinZAPQcvk88tz1gf5f/na8E8p8jEmYqv6wMvpnjSAIgaeN8ZvLwL3K6RK1BiAW2JA+RVPX1Fif2hHWzp9HECsM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@4.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1111181},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./hono":{"types":"./dist/hono/index.d.ts","default":"./dist/hono/index.js"},"./next":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./server":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./coverage":{"types":"./dist/coverage-gate/index.d.ts","default":"./dist/coverage-gate/index.js"},"./package.json":"./package.json"},"gitHead":"3c4711049bf8351685612372531c3cae1370bbbb","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit","prisma:sync":"node scripts/sync-rbac-schema.mjs","prisma:sync:check":"node scripts/sync-rbac-schema.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:487ebbe1-b1b7-4896-8521-fd4e364d5714"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control. Framework-free core (engine, registry, caveats, templates, governance), host-mounted backend surface (./server: role CRUD, permissions, team roster, guard helpers, duck-typed Prisma seam), Hono adapter (./hono)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.3.5","@12-apps/ui":"^6.1.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.21.1","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.20.1","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","react":">=19.0.0","react-dom":">=19.0.0"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_4.2.0_1787327254108_0.7902182796780084","host":"s3://npm-registry-packages-npm-production"}},"4.3.0":{"name":"@12-apps/rbac","version":"4.3.0","license":"MIT","_id":"@12-apps/rbac@4.3.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"eae2e5a5b9da1762dbfecb63b178e3c63b5dcf25","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-4.3.0.tgz","fileCount":100,"integrity":"sha512-JvxONlTWmj16YKWoP79DTWT5HicV2ZWmyhVzs0J+/hgJsaeteD3mxmSuDARM9BdAmYewYgdq3Y6DYt5MJNz9wA==","signatures":[{"sig":"MEYCIQDoSzGVF07j3fC8tVH18tRG/fR+Az5tW6hKyDGu1rZj7AIhAPt9HQsBFJirjp0kA1rHqU7sXkHJzgZryeHMs41Mk1sP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@4.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1115470},"type":"module","wiring":{"db":{"partial":"prisma/rbac.prisma","migrations":"prisma/migrations"}},"engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./hono":{"types":"./dist/hono/index.d.ts","default":"./dist/hono/index.js"},"./next":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./server":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./coverage":{"types":"./dist/coverage-gate/index.d.ts","default":"./dist/coverage-gate/index.js"},"./manifest":"./src/manifest/index.ts","./package.json":"./package.json","./manifest/server":"./src/manifest/server.ts"},"gitHead":"75f7035ac04cd2d62b424aa8119ce8ed91f0aa19","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit","prisma:sync":"node scripts/sync-rbac-schema.mjs","prisma:sync:check":"node scripts/sync-rbac-schema.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9ef2227-5430-443e-b29a-d3683845720d"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control. Framework-free core (engine, registry, caveats, templates, governance), host-mounted backend surface (./server: role CRUD, permissions, team roster, guard helpers, duck-typed Prisma seam), Hono adapter (./hono)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.3.5","@12-apps/ui":"^6.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@12-apps/wiring":"^1.10.0","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.21.1","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.20.1","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","react":">=19.0.0","react-dom":">=19.0.0","@12-apps/wiring":">=1.3.0"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_4.3.0_1787411947593_0.6392546175443026","host":"s3://npm-registry-packages-npm-production"}},"4.3.1":{"name":"@12-apps/rbac","version":"4.3.1","license":"MIT","_id":"@12-apps/rbac@4.3.1","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"12c2cd7e50b18caa98f22b3fe2df43748503b476","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-4.3.1.tgz","fileCount":111,"integrity":"sha512-G8cVyeH2G8z0Q/ar78EJLtoaM4ku2c7mpiO+PbQjK1XRcVz+AHq7B5Hl/ICBb3q75+RP0OcCIEfiPl0sLudpkA==","signatures":[{"sig":"MEYCIQCkMz5+n+zh1W2oLjNiopf9X/+S+24uoVilZGf21zQBrQIhANdeGk3fJpeoJ7ah6hbEghR/59zUiVIhcZ9whmO3x4Wp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@4.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1126255},"type":"module","wiring":{"db":{"partial":"prisma/rbac.prisma","migrations":"prisma/migrations"}},"engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./hono":{"types":"./dist/hono/index.d.ts","default":"./dist/hono/index.js"},"./next":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./server":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./coverage":{"types":"./dist/coverage-gate/index.d.ts","default":"./dist/coverage-gate/index.js"},"./manifest":{"types":"./dist/manifest/index.d.ts","default":"./dist/manifest/index.js"},"./package.json":"./package.json","./manifest/server":{"types":"./dist/manifest/server.d.ts","default":"./dist/manifest/server.js"}},"gitHead":"32f0a72af7b186bfe9e323c3d1384d3d54c9c2cb","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit","prisma:sync":"node scripts/sync-rbac-schema.mjs","prisma:sync:check":"node scripts/sync-rbac-schema.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9ef2227-5430-443e-b29a-d3683845720d"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control. Framework-free core (engine, registry, caveats, templates, governance), host-mounted backend surface (./server: role CRUD, permissions, team roster, guard helpers, duck-typed Prisma seam), Hono adapter (./hono)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.3.5","@12-apps/ui":"^6.2.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@12-apps/wiring":"^1.10.0","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.21.1","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.20.1","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","react":">=19.0.0","react-dom":">=19.0.0","@12-apps/wiring":">=1.3.0"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_4.3.1_1787420704768_0.6733399344859323","host":"s3://npm-registry-packages-npm-production"}},"4.4.0":{"name":"@12-apps/rbac","version":"4.4.0","license":"MIT","_id":"@12-apps/rbac@4.4.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"614898e71cc2fb8e937f85747c1dbb431e57af65","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-4.4.0.tgz","fileCount":113,"integrity":"sha512-VNvyA68BpKuM0QycgQUr0TylKq2NmN8IsVsJkEicp0CqkMrAjkjWjNckwuqM/KwVGc3QEwXk5T52xgLHwXxKcg==","signatures":[{"sig":"MEUCIQCKTf2HbajcNb8wadaikPWuTJ1gagxhYolagBqNVAJrHwIgPmUDmStgFaGF1xA8C1MG8gh5ZhdDzlW6DxL1loFTw24=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@4.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1175948},"type":"module","wiring":{"db":{"partial":"prisma/rbac.prisma","migrations":"prisma/migrations"}},"engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./hono":{"types":"./dist/hono/index.d.ts","default":"./dist/hono/index.js"},"./next":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./server":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./coverage":{"types":"./dist/coverage-gate/index.d.ts","default":"./dist/coverage-gate/index.js"},"./manifest":{"types":"./dist/manifest/index.d.ts","default":"./dist/manifest/index.js"},"./package.json":"./package.json","./manifest/server":{"types":"./dist/manifest/server.d.ts","default":"./dist/manifest/server.js"}},"gitHead":"972da83ebfe181d70c281a3eff5c281985f54764","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit","prisma:sync":"node scripts/sync-rbac-schema.mjs","prisma:sync:check":"node scripts/sync-rbac-schema.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9ef2227-5430-443e-b29a-d3683845720d"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control. Framework-free core (engine, registry, caveats, templates, governance), host-mounted backend surface (./server: role CRUD, permissions, team roster, guard helpers, duck-typed Prisma seam), Hono adapter (./hono)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.3.5","@12-apps/ui":"^6.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@12-apps/wiring":"^1.10.0","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.21.1","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.20.1","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","react":">=19.0.0","react-dom":">=19.0.0","@12-apps/wiring":">=1.3.0"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_4.4.0_1787496735670_0.6242570146402466","host":"s3://npm-registry-packages-npm-production"}},"4.5.0":{"name":"@12-apps/rbac","version":"4.5.0","license":"MIT","_id":"@12-apps/rbac@4.5.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"24a4bd384028352e6b91f6ddf0dbb4d4fada0e7c","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-4.5.0.tgz","fileCount":114,"integrity":"sha512-G1RuD/V/fXRFzYiIyyN3e7mlwxijvVQqjmb1pAQ/M31tsSXCgckTkZkZjMD4uLKMKa1V9VjUFajLGwDn31BmnQ==","signatures":[{"sig":"MEQCIAFfV1SCERZXWQ0KRWluUdhQ4DTYwrb+imgsG3xrb2h7AiBHALCV1rKvkuNqSLPghD2VNy4VSrvRg/jvnojfB1KOVg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@4.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1203691},"type":"module","wiring":{"db":{"partial":"prisma/rbac.prisma","migrations":"prisma/migrations"}},"engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./hono":{"types":"./dist/hono/index.d.ts","default":"./dist/hono/index.js"},"./next":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./server":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./coverage":{"types":"./dist/coverage-gate/index.d.ts","default":"./dist/coverage-gate/index.js"},"./manifest":{"types":"./dist/manifest/index.d.ts","default":"./dist/manifest/index.js"},"./package.json":"./package.json","./manifest/server":{"types":"./dist/manifest/server.d.ts","default":"./dist/manifest/server.js"}},"gitHead":"c76b6ed2001fc390ec6b419aef7ca543a78d399a","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit","prisma:sync":"node scripts/sync-rbac-schema.mjs","prisma:sync:check":"node scripts/sync-rbac-schema.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9ef2227-5430-443e-b29a-d3683845720d"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control. Framework-free core (engine, registry, caveats, templates, governance), host-mounted backend surface (./server: role CRUD, permissions, team roster, guard helpers, duck-typed Prisma seam), Hono adapter (./hono)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.3.5","@12-apps/ui":"^6.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@12-apps/wiring":"^1.10.0","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.21.1","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.20.1","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","react":">=19.0.0","react-dom":">=19.0.0","@12-apps/wiring":">=1.3.0"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_4.5.0_1787502950004_0.23563376306587624","host":"s3://npm-registry-packages-npm-production"}},"4.6.0":{"name":"@12-apps/rbac","version":"4.6.0","license":"MIT","_id":"@12-apps/rbac@4.6.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"ea75e7888f0d4e532a999c13b842f4668c8e71c6","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-4.6.0.tgz","fileCount":114,"integrity":"sha512-W6++ura1YCTIrerHDG5tl72LOs47kzFjjZ9l86QNHf8Y8fptmD+XDqwcOOSwhaXtbb4J131GJI9A6ZefNRTT0A==","signatures":[{"sig":"MEQCIEYgOmfuLMLZNMCvu3Y+aue+de4GODZII7qk+uQJDzdvAiBuz+TOw4Xtm61XpHWAQy1zEC1HqxEK0TCZQCH950qLmg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@4.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1206817},"type":"module","wiring":{"db":{"partial":"prisma/rbac.prisma","migrations":"prisma/migrations"}},"engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./hono":{"types":"./dist/hono/index.d.ts","default":"./dist/hono/index.js"},"./next":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./server":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./coverage":{"types":"./dist/coverage-gate/index.d.ts","default":"./dist/coverage-gate/index.js"},"./manifest":{"types":"./dist/manifest/index.d.ts","default":"./dist/manifest/index.js"},"./package.json":"./package.json","./manifest/server":{"types":"./dist/manifest/server.d.ts","default":"./dist/manifest/server.js"}},"gitHead":"8cb5a3741c23210e92a558071eedde889c4283de","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit","prisma:sync":"node scripts/sync-rbac-schema.mjs","prisma:sync:check":"node scripts/sync-rbac-schema.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9ef2227-5430-443e-b29a-d3683845720d"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control. Framework-free core (engine, registry, caveats, templates, governance), host-mounted backend surface (./server: role CRUD, permissions, team roster, guard helpers, duck-typed Prisma seam), Hono adapter (./hono)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.3.5","@12-apps/ui":"^6.7.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@12-apps/wiring":"^1.10.0","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.21.1","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.20.1","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","react":">=19.0.0","react-dom":">=19.0.0","@12-apps/wiring":">=1.3.0"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_4.6.0_1787504457968_0.23538845825789267","host":"s3://npm-registry-packages-npm-production"}},"4.7.0":{"name":"@12-apps/rbac","version":"4.7.0","license":"MIT","_id":"@12-apps/rbac@4.7.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"713c2dc7b8a315408f297af5a0f1a9885295b631","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-4.7.0.tgz","fileCount":118,"integrity":"sha512-mLfoTAXrwkuIfVht62s8TprQuV9HOgIXnE3eB7nXkjy7aYsfTkcmJVe0pc32w7j+lshufO7Pj3hhLB8R/K4X0g==","signatures":[{"sig":"MEQCIAl668zhEYyof4Ia14iS/8c+BtFu2nihIyBQ6pKc1fF4AiAd1iH6rYk2oWqL208j1j6mtQwIyYvoiJ21KA8r/7ooXw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@4.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1230618},"type":"module","wiring":{"db":{"partial":"prisma/rbac.prisma","migrations":"prisma/migrations"}},"engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./hono":{"types":"./dist/hono/index.d.ts","default":"./dist/hono/index.js"},"./next":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./server":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./coverage":{"types":"./dist/coverage-gate/index.d.ts","default":"./dist/coverage-gate/index.js"},"./manifest":{"types":"./dist/manifest/index.d.ts","default":"./dist/manifest/index.js"},"./package.json":"./package.json","./manifest/server":{"types":"./dist/manifest/server.d.ts","default":"./dist/manifest/server.js"}},"gitHead":"9aa6a7b4c316ceed44033000e57b1b02c316537b","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit","prisma:sync":"node scripts/sync-rbac-schema.mjs","prisma:sync:check":"node scripts/sync-rbac-schema.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9ef2227-5430-443e-b29a-d3683845720d"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control. Framework-free core (engine, registry, caveats, templates, governance), host-mounted backend surface (./server: role CRUD, permissions, team roster, guard helpers, duck-typed Prisma seam), Hono adapter (./hono)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.3.5","@12-apps/ui":"^6.9.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@12-apps/i18n":"^1.0.0","@12-apps/wiring":"^1.10.0","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.21.1","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.20.1","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","react":">=19.0.0","react-dom":">=19.0.0","@12-apps/wiring":">=1.3.0"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_4.7.0_1787547243769_0.0848199554048068","host":"s3://npm-registry-packages-npm-production"}},"4.8.0":{"name":"@12-apps/rbac","version":"4.8.0","license":"MIT","_id":"@12-apps/rbac@4.8.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"8622d0cc307e40f8369c1397f069dd70f89c88db","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-4.8.0.tgz","fileCount":118,"integrity":"sha512-FlPQjEZBJhUDMSyDDfzSIJEr22LoRQRf0u9HcL+WrlyAxBv8Ukh3S5B6irayM9Dz/TYUOEvdfgejPKr+1kzlrQ==","signatures":[{"sig":"MEUCIBJvyPsfYntrg6tIQdR9qqRYyrvTwbeCnwyqDywukx8dAiEArI3SWmHwCvzNFZzR52FgzqWoInaZXLHIMQRX2b2lm5s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@4.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1247391},"type":"module","wiring":{"db":{"partial":"prisma/rbac.prisma","migrations":"prisma/migrations"}},"engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./hono":{"types":"./dist/hono/index.d.ts","default":"./dist/hono/index.js"},"./next":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./server":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./coverage":{"types":"./dist/coverage-gate/index.d.ts","default":"./dist/coverage-gate/index.js"},"./manifest":{"types":"./dist/manifest/index.d.ts","default":"./dist/manifest/index.js"},"./package.json":"./package.json","./manifest/server":{"types":"./dist/manifest/server.d.ts","default":"./dist/manifest/server.js"}},"gitHead":"03c5e167469ab2118b1d18148cf456f8653a0345","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit","prisma:sync":"node scripts/sync-rbac-schema.mjs","prisma:sync:check":"node scripts/sync-rbac-schema.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9ef2227-5430-443e-b29a-d3683845720d"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control. Framework-free core (engine, registry, caveats, templates, governance), host-mounted backend surface (./server: role CRUD, permissions, team roster, guard helpers, duck-typed Prisma seam), Hono adapter (./hono)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.3.5","@12-apps/ui":"^6.9.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@12-apps/i18n":"^1.1.0","@12-apps/wiring":"^1.12.1","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.21.1","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.20.1","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","react":">=19.0.0","react-dom":">=19.0.0","@12-apps/wiring":">=1.3.0"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_4.8.0_1787594979601_0.29703892404187426","host":"s3://npm-registry-packages-npm-production"}},"4.9.0":{"name":"@12-apps/rbac","version":"4.9.0","license":"MIT","_id":"@12-apps/rbac@4.9.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"393f7a2635a1d6f3d6da938223acd33bcc71662d","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-4.9.0.tgz","fileCount":128,"integrity":"sha512-9SVNS6LeARZMY9nIYHzZXLhizTst7kWlQPvIKVX8mHwaAsYJWlrpxvp7RhylaeLHjTCeBirKbLuf+lXEvWlSKA==","signatures":[{"sig":"MEQCIEHzt0o5aKzlcMXv8X7+OZfb6GnoFEX11OoDxJyDp6ySAiBwQwT/2668yha4HATuHd7T/Mr9Xpy3pD8ti6ONNCGDWA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@4.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1295746},"type":"module","wiring":{"db":{"partial":"prisma/rbac.prisma","migrations":"prisma/migrations"}},"engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./hono":{"types":"./dist/hono/index.d.ts","default":"./dist/hono/index.js"},"./next":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./server":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./coverage":{"types":"./dist/coverage-gate/index.d.ts","default":"./dist/coverage-gate/index.js"},"./manifest":{"types":"./dist/manifest/index.d.ts","default":"./dist/manifest/index.js"},"./manifest/web":{"types":"./dist/manifest/web.d.ts","default":"./dist/manifest/web.js"},"./package.json":"./package.json","./manifest/server":{"types":"./dist/manifest/server.d.ts","default":"./dist/manifest/server.js"}},"gitHead":"142fe64617cadbd2f852a257eafd0aaf95b73fbc","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit","prisma:sync":"node scripts/sync-rbac-schema.mjs","prisma:sync:check":"node scripts/sync-rbac-schema.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9ef2227-5430-443e-b29a-d3683845720d"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control. Framework-free core (engine, registry, caveats, templates, governance), host-mounted backend surface (./server: role CRUD, permissions, team roster, guard helpers, duck-typed Prisma seam), Hono adapter (./hono)","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.3.5","@12-apps/ui":"^6.9.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@12-apps/i18n":"^1.1.0","@12-apps/wiring":"^1.13.0","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.21.1","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.20.1","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","react":">=19.0.0","react-dom":">=19.0.0","@12-apps/wiring":">=1.3.0"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"@12-apps/wiring":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_4.9.0_1787597413402_0.6681911478684666","host":"s3://npm-registry-packages-npm-production"}},"4.10.0":{"name":"@12-apps/rbac","version":"4.10.0","license":"MIT","_id":"@12-apps/rbac@4.10.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"c3781f18a57a76e5acaf3d008677c32acc74cfd4","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-4.10.0.tgz","fileCount":128,"integrity":"sha512-JoW3QfiYFPhLqRrbiBKvnLAJxBac7Gai6JLUxuD3EhNpBmRn2q9r3ga7n4x/f9UIAdTsBWZ7z60YkoJfDEerVw==","signatures":[{"sig":"MEYCIQCW7Xf/yNNufubtCdpR/iQaRYqkVM2zRNoyt8or6ZTO3gIhALpMDs5aEDP9lZgvb3q7pSiCfw5LDmxZCvNC1YnjgAIT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@4.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1295772},"type":"module","wiring":{"db":{"partial":"prisma/rbac.prisma","migrations":"prisma/migrations"}},"engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./hono":{"types":"./dist/hono/index.d.ts","default":"./dist/hono/index.js"},"./next":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./server":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./coverage":{"types":"./dist/coverage-gate/index.d.ts","default":"./dist/coverage-gate/index.js"},"./manifest":{"types":"./dist/manifest/index.d.ts","default":"./dist/manifest/index.js"},"./manifest/web":{"types":"./dist/manifest/web.d.ts","default":"./dist/manifest/web.js"},"./package.json":"./package.json","./manifest/server":{"types":"./dist/manifest/server.d.ts","default":"./dist/manifest/server.js"}},"gitHead":"4714bd10c901bcc51544843d5d6091cc1509e649","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit","prisma:sync":"node scripts/sync-rbac-schema.mjs","prisma:sync:check":"node scripts/sync-rbac-schema.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9ef2227-5430-443e-b29a-d3683845720d"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control. Framework-free core (engine, registry, caveats, templates, governance), host-mounted backend surface (./server: role CRUD, permissions, team roster, guard helpers, duck-typed Prisma seam), Hono adapter (./hono)","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.3.5","@12-apps/ui":"^6.10.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@12-apps/i18n":"^1.2.0","@12-apps/wiring":"^1.14.0","@types/react-dom":"19.2.2","@12-apps/eslint-config":"^1.22.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.21.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","react":">=19.0.0","react-dom":">=19.0.0","@12-apps/wiring":">=1.3.0"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"@12-apps/wiring":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_4.10.0_1787617837981_0.8154643797470713","host":"s3://npm-registry-packages-npm-production"}},"4.11.0":{"name":"@12-apps/rbac","version":"4.11.0","license":"MIT","_id":"@12-apps/rbac@4.11.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"42386b83b25338bfdd3fc5b4485c19e5ad58faf7","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-4.11.0.tgz","fileCount":161,"integrity":"sha512-/mvXpP+PCSACAMAnNFicjpWVD8m0K8/0ee2JYwCqMn/NmNormZgBqeTV+JwN+gIlBEEDSRbLsGz0iTx0omPXSw==","signatures":[{"sig":"MEYCIQCSXe9ThgFFJb/uWREHC/pmIW+Z/n8HnITmg7ZV6vfj3wIhAOCZ97kVNzJcXF0LzGsnnaoXvPBE3mrl2S8UBDy85feA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@4.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1701490},"type":"module","wiring":{"db":{"partial":"prisma/rbac.prisma","migrations":"prisma/migrations"}},"engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./e2e":{"types":"./dist/e2e/index.d.ts","import":"./dist/e2e/index.js","default":"./dist/e2e/index.js"},"./mcp":{"types":"./dist/mcp/index.d.ts","import":"./dist/mcp/index.js","default":"./dist/mcp/index.js"},"./hono":{"types":"./dist/hono/index.d.ts","default":"./dist/hono/index.js"},"./next":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./server":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./coverage":{"types":"./dist/coverage-gate/index.d.ts","default":"./dist/coverage-gate/index.js"},"./manifest":{"types":"./dist/manifest/index.d.ts","default":"./dist/manifest/index.js"},"./manifest/web":{"types":"./dist/manifest/web.d.ts","default":"./dist/manifest/web.js"},"./package.json":"./package.json","./manifest/server":{"types":"./dist/manifest/server.d.ts","default":"./dist/manifest/server.js"}},"gitHead":"14d4758eea55506bae6bb0b6fe6001aa1c954e81","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit","prisma:sync":"node scripts/sync-rbac-schema.mjs","prisma:sync:check":"node scripts/sync-rbac-schema.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9ef2227-5430-443e-b29a-d3683845720d"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control. Framework-free core (engine, registry, caveats, templates, governance), host-mounted backend surface (./server: role CRUD, permissions, team roster, guard helpers, duck-typed Prisma seam), Hono adapter (./hono)","directories":{},"sideEffects":["**/e2e/steps/*.steps.*"],"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.3.5","@12-apps/ui":"^6.10.0","@12-apps/app-shell":"^5.5.0","@12-apps/forms-core":"^1.21.0","@mui/icons-material":"^6.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@12-apps/i18n":"^1.2.0","playwright-bdd":"^9.2.0","@12-apps/wiring":"^1.14.0","@playwright/test":"^1.61.1","@types/react-dom":"19.2.2","react-router-dom":"^7.9.4","@12-apps/eslint-config":"^1.22.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.21.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","react":">=19.0.0","react-dom":">=19.0.0","playwright-bdd":">=8.3.0","@12-apps/wiring":">=1.3.0","@playwright/test":">=1.55.0","react-router-dom":">=7.0.0"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"playwright-bdd":{"optional":true},"@12-apps/wiring":{"optional":true},"@playwright/test":{"optional":true},"react-router-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_4.11.0_1787624751081_0.8691571055624865","host":"s3://npm-registry-packages-npm-production"}},"4.12.0":{"name":"@12-apps/rbac","version":"4.12.0","license":"MIT","_id":"@12-apps/rbac@4.12.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"10f7871f85db21f06d95191a845c3bce0909660c","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-4.12.0.tgz","fileCount":167,"integrity":"sha512-VuIGGJNAa4eJEpiN077fUo1Do970/ajzDm7l3OVurguascygb3UJvWCkhr+qpA0Y7/GsisNBhp0mvKBXdVGRCw==","signatures":[{"sig":"MEUCIQCk0G0lLeUn529njmeoua7GcT/r2dQJJL5+HNu2LDLdVwIgVj4YN/c/Qo4ndZbVLT5T82CPLgtCBMy2rum+btrDEy0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@4.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1737302},"type":"module","wiring":{"db":{"partial":"prisma/rbac.prisma","migrations":"prisma/migrations"}},"engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./e2e":{"types":"./dist/e2e/index.d.ts","import":"./dist/e2e/index.js","default":"./dist/e2e/index.js"},"./mcp":{"types":"./dist/mcp/index.d.ts","import":"./dist/mcp/index.js","default":"./dist/mcp/index.js"},"./hono":{"types":"./dist/hono/index.d.ts","default":"./dist/hono/index.js"},"./next":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./server":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./coverage":{"types":"./dist/coverage-gate/index.d.ts","default":"./dist/coverage-gate/index.js"},"./manifest":{"types":"./dist/manifest/index.d.ts","default":"./dist/manifest/index.js"},"./manifest/web":{"types":"./dist/manifest/web.d.ts","default":"./dist/manifest/web.js"},"./package.json":"./package.json","./manifest/server":{"types":"./dist/manifest/server.d.ts","default":"./dist/manifest/server.js"}},"gitHead":"2c692b90ed09938c60b847aecff462546b425339","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit","prisma:sync":"node scripts/sync-rbac-schema.mjs","prisma:sync:check":"node scripts/sync-rbac-schema.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9ef2227-5430-443e-b29a-d3683845720d"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control. Framework-free core (engine, registry, caveats, templates, governance), host-mounted backend surface (./server: role CRUD, permissions, team roster, guard helpers, duck-typed Prisma seam), Hono adapter (./hono)","directories":{},"sideEffects":["**/e2e/steps/*.steps.*"],"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.3.5","@12-apps/ui":"^6.11.1","@12-apps/app-shell":"^5.7.0","@12-apps/forms-core":"^1.21.0","@mui/icons-material":"^6.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@12-apps/i18n":"^1.2.0","playwright-bdd":"^9.2.0","@12-apps/wiring":"^1.15.0","@playwright/test":"^1.61.1","@types/react-dom":"19.2.2","react-router-dom":"^7.9.4","@12-apps/eslint-config":"^1.22.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.21.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","react":">=19.0.0","react-dom":">=19.0.0","playwright-bdd":">=8.3.0","@12-apps/wiring":">=1.3.0","@playwright/test":">=1.55.0","react-router-dom":">=7.0.0"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"playwright-bdd":{"optional":true},"@12-apps/wiring":{"optional":true},"@playwright/test":{"optional":true},"react-router-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_4.12.0_1787715330649_0.034152318462143505","host":"s3://npm-registry-packages-npm-production"}},"4.13.0":{"name":"@12-apps/rbac","version":"4.13.0","license":"MIT","_id":"@12-apps/rbac@4.13.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"5370951c189ce880df2d6e4762bb3bf3f5d58696","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-4.13.0.tgz","fileCount":167,"integrity":"sha512-pUBSpQh5FMALoDusnp4icR566DaM43id2dJGTpU+TIv4jRy5P0NAOzVNDOFXEVJx1wyFRFcm8cx6FC9U2zC2wA==","signatures":[{"sig":"MEUCIQCwvgfCPiEniYeqVHKM1NdL7N9QNjlnuhwuZL1LW+eH2wIgalQ4nj7A8NX29flI7vesd0FE1qCWmRbMbATvphor130=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@4.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1744749},"type":"module","wiring":{"db":{"partial":"prisma/rbac.prisma","migrations":"prisma/migrations"}},"engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./e2e":{"types":"./dist/e2e/index.d.ts","import":"./dist/e2e/index.js","default":"./dist/e2e/index.js"},"./mcp":{"types":"./dist/mcp/index.d.ts","import":"./dist/mcp/index.js","default":"./dist/mcp/index.js"},"./hono":{"types":"./dist/hono/index.d.ts","default":"./dist/hono/index.js"},"./next":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./server":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./coverage":{"types":"./dist/coverage-gate/index.d.ts","default":"./dist/coverage-gate/index.js"},"./manifest":{"types":"./dist/manifest/index.d.ts","default":"./dist/manifest/index.js"},"./manifest/web":{"types":"./dist/manifest/web.d.ts","default":"./dist/manifest/web.js"},"./package.json":"./package.json","./manifest/server":{"types":"./dist/manifest/server.d.ts","default":"./dist/manifest/server.js"}},"gitHead":"f20bcf2ed49c404ade9f624c06f57333bcca4beb","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit","prisma:sync":"node scripts/sync-rbac-schema.mjs","prisma:sync:check":"node scripts/sync-rbac-schema.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9ef2227-5430-443e-b29a-d3683845720d"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control. Framework-free core (engine, registry, caveats, templates, governance), host-mounted backend surface (./server: role CRUD, permissions, team roster, guard helpers, duck-typed Prisma seam), Hono adapter (./hono)","directories":{},"sideEffects":["**/e2e/steps/*.steps.*"],"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.3.5","@12-apps/ui":"^6.11.1","@12-apps/app-shell":"^5.7.0","@12-apps/forms-core":"^1.21.0","@mui/icons-material":"^6.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@12-apps/i18n":"^1.2.0","playwright-bdd":"^9.2.0","@12-apps/wiring":"^1.16.0","@playwright/test":"^1.61.1","@types/react-dom":"19.2.2","react-router-dom":"^7.9.4","@12-apps/eslint-config":"^1.22.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.21.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","react":">=19.0.0","react-dom":">=19.0.0","playwright-bdd":">=8.3.0","@12-apps/wiring":">=1.3.0","@playwright/test":">=1.55.0","react-router-dom":">=7.0.0"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"playwright-bdd":{"optional":true},"@12-apps/wiring":{"optional":true},"@playwright/test":{"optional":true},"react-router-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_4.13.0_1787746842833_0.2249004644807877","host":"s3://npm-registry-packages-npm-production"}},"4.14.0":{"name":"@12-apps/rbac","version":"4.14.0","license":"MIT","_id":"@12-apps/rbac@4.14.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"bef48dd7423551c871197553b50a34daf2ab88f3","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-4.14.0.tgz","fileCount":167,"integrity":"sha512-Hxtmw5enrcdG6uVVNVoIfjc/q1CQJl5JjVm6RQ0ns/f7TXxYPaT14Y+he9H3i5v8yV3KmrUliDEmT/g58Ce3hg==","signatures":[{"sig":"MEUCIFFhzE0nSaZWbt8q+3PUn9V9GkEcKv6KYzAZeUt9naGHAiEA0M/OGo40tX895NewIxIyHEaxmL88gZlGuzJyZoolexU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@4.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1753841},"type":"module","wiring":{"db":{"partial":"prisma/rbac.prisma","migrations":"prisma/migrations"}},"engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./e2e":{"types":"./dist/e2e/index.d.ts","import":"./dist/e2e/index.js","default":"./dist/e2e/index.js"},"./mcp":{"types":"./dist/mcp/index.d.ts","import":"./dist/mcp/index.js","default":"./dist/mcp/index.js"},"./hono":{"types":"./dist/hono/index.d.ts","default":"./dist/hono/index.js"},"./next":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./server":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./coverage":{"types":"./dist/coverage-gate/index.d.ts","default":"./dist/coverage-gate/index.js"},"./manifest":{"types":"./dist/manifest/index.d.ts","default":"./dist/manifest/index.js"},"./manifest/web":{"types":"./dist/manifest/web.d.ts","default":"./dist/manifest/web.js"},"./package.json":"./package.json","./manifest/server":{"types":"./dist/manifest/server.d.ts","default":"./dist/manifest/server.js"}},"gitHead":"1304b83bd609995e16b8b66957d0f2cd819db538","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit","prisma:sync":"node scripts/sync-rbac-schema.mjs","prisma:sync:check":"node scripts/sync-rbac-schema.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9ef2227-5430-443e-b29a-d3683845720d"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control. Framework-free core (engine, registry, caveats, templates, governance), host-mounted backend surface (./server: role CRUD, permissions, team roster, guard helpers, duck-typed Prisma seam), Hono adapter (./hono)","directories":{},"sideEffects":["**/e2e/steps/*.steps.*"],"_nodeVersion":"24.19.0","dependencies":{"zod":"^4.3.5","@12-apps/ui":"^6.13.2","@12-apps/app-shell":"^5.7.0","@12-apps/forms-core":"^1.21.0","@mui/icons-material":"^6.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@12-apps/i18n":"^1.3.0","playwright-bdd":"^9.2.0","@12-apps/wiring":"^1.16.0","@playwright/test":"^1.61.1","@types/react-dom":"19.2.2","react-router-dom":"^7.9.4","@12-apps/eslint-config":"^1.22.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.21.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","react":">=19.0.0","react-dom":">=19.0.0","playwright-bdd":">=8.3.0","@12-apps/wiring":">=1.3.0","@playwright/test":">=1.55.0","react-router-dom":">=7.0.0"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"playwright-bdd":{"optional":true},"@12-apps/wiring":{"optional":true},"@playwright/test":{"optional":true},"react-router-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_4.14.0_1787832138463_0.24104681416367435","host":"s3://npm-registry-packages-npm-production"}},"4.15.0":{"name":"@12-apps/rbac","version":"4.15.0","license":"MIT","_id":"@12-apps/rbac@4.15.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"3ac9cb7e7be79ed5e48fb800548fac85340b8437","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-4.15.0.tgz","fileCount":169,"integrity":"sha512-EEG9wXgwoLRks1DRjbj6qyPz8wbACe7UZdkF7LoMvgcoPgPo4HFRWznnFz+kiNx5LkYXnehY3NXBKpS9f5Nzrg==","signatures":[{"sig":"MEYCIQDPAXOlNWZTrNb5h5oHlX4fPNxztCwejnVL/0kUCGohGQIhALNSvmDX0PdgcC0H09vypMcCPEHBzUlSNPIeyVdwhjn7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@4.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1800089},"type":"module","wiring":{"db":{"partial":"prisma/rbac.prisma","migrations":"prisma/migrations"}},"engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./e2e":{"types":"./dist/e2e/index.d.ts","import":"./dist/e2e/index.js","default":"./dist/e2e/index.js"},"./mcp":{"types":"./dist/mcp/index.d.ts","import":"./dist/mcp/index.js","default":"./dist/mcp/index.js"},"./hono":{"types":"./dist/hono/index.d.ts","default":"./dist/hono/index.js"},"./next":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./server":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./coverage":{"types":"./dist/coverage-gate/index.d.ts","default":"./dist/coverage-gate/index.js"},"./manifest":{"types":"./dist/manifest/index.d.ts","default":"./dist/manifest/index.js"},"./manifest/web":{"types":"./dist/manifest/web.d.ts","default":"./dist/manifest/web.js"},"./package.json":"./package.json","./manifest/server":{"types":"./dist/manifest/server.d.ts","default":"./dist/manifest/server.js"}},"gitHead":"25bf7713d1d64dfe4a48654af80e6904a5052fdf","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit","prisma:sync":"node scripts/sync-rbac-schema.mjs","prisma:sync:check":"node scripts/sync-rbac-schema.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9ef2227-5430-443e-b29a-d3683845720d"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control. Framework-free core (engine, registry, caveats, templates, governance), host-mounted backend surface (./server: role CRUD, permissions, team roster, guard helpers, duck-typed Prisma seam), Hono adapter (./hono)","directories":{},"sideEffects":["**/e2e/steps/*.steps.*"],"_nodeVersion":"24.20.0","dependencies":{"zod":"^4.3.5","@12-apps/ui":"^6.25.0","@12-apps/app-shell":"^5.7.0","@12-apps/forms-core":"^1.21.0","@mui/icons-material":"^6.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@12-apps/i18n":"^1.3.0","playwright-bdd":"^9.2.0","@12-apps/wiring":"^1.16.0","@playwright/test":"^1.61.1","@types/react-dom":"19.2.2","react-router-dom":"^7.9.4","@12-apps/eslint-config":"^1.22.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.21.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","react":">=19.0.0","react-dom":">=19.0.0","playwright-bdd":">=8.3.0","@12-apps/wiring":">=1.3.0","@playwright/test":">=1.55.0","react-router-dom":">=7.0.0"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"playwright-bdd":{"optional":true},"@12-apps/wiring":{"optional":true},"@playwright/test":{"optional":true},"react-router-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_4.15.0_1789090424418_0.7115268305033324","host":"s3://npm-registry-packages-npm-production"}},"4.16.0":{"name":"@12-apps/rbac","version":"4.16.0","license":"MIT","_id":"@12-apps/rbac@4.16.0","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"homepage":"https://github.com/12-apps/shared-packages#readme","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"dist":{"shasum":"3a8f2ecc1f18d6fc38a26ed4078f5a52bd70e603","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-4.16.0.tgz","fileCount":170,"integrity":"sha512-b9YwRZyZTPEvjDvRMySQNWcWGQWRcwxvgTA8M0bG1arVEtG5QP/cthrz8zoP9I+aB393j5OxOzaMRTHFieQycQ==","signatures":[{"sig":"MEUCIQC3l7BEDrRICNsbZ+Ny1L1G7dDZ+zqQUBZvl1XT4o+BxQIgMdzJBPJed8T3C07+ki5em0vepuGeyzn+Qhe3jPcO8+U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@4.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1836984},"type":"module","wiring":{"db":{"partial":"prisma/rbac.prisma","migrations":"prisma/migrations"}},"engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./e2e":{"types":"./dist/e2e/index.d.ts","import":"./dist/e2e/index.js","default":"./dist/e2e/index.js"},"./mcp":{"types":"./dist/mcp/index.d.ts","import":"./dist/mcp/index.js","default":"./dist/mcp/index.js"},"./hono":{"types":"./dist/hono/index.d.ts","default":"./dist/hono/index.js"},"./next":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./server":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./coverage":{"types":"./dist/coverage-gate/index.d.ts","default":"./dist/coverage-gate/index.js"},"./manifest":{"types":"./dist/manifest/index.d.ts","default":"./dist/manifest/index.js"},"./manifest/web":{"types":"./dist/manifest/web.d.ts","default":"./dist/manifest/web.js"},"./package.json":"./package.json","./manifest/server":{"types":"./dist/manifest/server.d.ts","default":"./dist/manifest/server.js"}},"gitHead":"ccb3d06c63d3b4892c452f8908c4726c1b5c0418","scripts":{"lint":"eslint src --max-warnings 0","test":"node ../../scripts/vitest-with-teardown.mjs run","build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage","typecheck":"tsc --noEmit","test:watch":"vitest watch","check-types":"tsc --noEmit","prisma:sync":"node scripts/sync-rbac-schema.mjs","prisma:sync:check":"node scripts/sync-rbac-schema.mjs --check"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9ef2227-5430-443e-b29a-d3683845720d"}},"repository":{"url":"git+https://github.com/12-apps/shared-packages.git","type":"git","directory":"packages/rbac"},"_npmVersion":"12.0.2","description":"Generic, portable Role-Based Access Control. Framework-free core (engine, registry, caveats, templates, governance), host-mounted backend surface (./server: role CRUD, permissions, team roster, guard helpers, duck-typed Prisma seam), Hono adapter (./hono)","directories":{},"sideEffects":["**/e2e/steps/*.steps.*"],"_nodeVersion":"24.20.0","dependencies":{"zod":"^4.3.5","@12-apps/ui":"^6.25.0","@12-apps/app-shell":"^5.7.0","@12-apps/forms-core":"^1.21.0","@mui/icons-material":"^6.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"hono":"^4.6.0","tsup":"^8.0.0","jsdom":"^25.0.1","react":"^19.2.0","eslint":"^9.39.1","vitest":"^3.2.4","react-dom":"^19.2.0","typescript":"^5.9.2","@types/react":"19.2.2","@12-apps/i18n":"^1.3.0","playwright-bdd":"^9.2.0","@12-apps/wiring":"^1.16.0","@playwright/test":"^1.61.1","@types/react-dom":"19.2.2","react-router-dom":"^7.9.4","@12-apps/eslint-config":"^1.22.0","@testing-library/react":"^16.1.0","@12-apps/typescript-config":"^1.21.0","eslint-plugin-test-flakiness":"^1.4.0"},"peerDependencies":{"hono":">=4.0.0","react":">=19.0.0","react-dom":">=19.0.0","playwright-bdd":">=8.3.0","@12-apps/wiring":">=1.3.0","@playwright/test":">=1.55.0","react-router-dom":">=7.0.0"},"peerDependenciesMeta":{"hono":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"playwright-bdd":{"optional":true},"@12-apps/wiring":{"optional":true},"@playwright/test":{"optional":true},"react-router-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rbac_4.16.0_1789092438129_0.21183431342362025","host":"s3://npm-registry-packages-npm-production"}},"4.17.0":{"name":"@12-apps/rbac","version":"4.17.0","type":"module","sideEffects":["**/e2e/steps/*.steps.*"],"description":"Generic, portable Role-Based Access Control. Framework-free core (engine, registry, caveats, templates, governance), host-mounted backend surface (./server: role CRUD, permissions, team roster, guard helpers, duck-typed Prisma seam), Hono adapter (./hono)","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","default":"./dist/react/index.js"},"./next":{"types":"./dist/next/index.d.ts","default":"./dist/next/index.js"},"./server":{"types":"./dist/server/index.d.ts","default":"./dist/server/index.js"},"./hono":{"types":"./dist/hono/index.d.ts","default":"./dist/hono/index.js"},"./coverage":{"types":"./dist/coverage-gate/index.d.ts","default":"./dist/coverage-gate/index.js"},"./manifest":{"types":"./dist/manifest/index.d.ts","default":"./dist/manifest/index.js"},"./manifest/server":{"types":"./dist/manifest/server.d.ts","default":"./dist/manifest/server.js"},"./manifest/web":{"types":"./dist/manifest/web.d.ts","default":"./dist/manifest/web.js"},"./package.json":"./package.json","./mcp":{"types":"./dist/mcp/index.d.ts","import":"./dist/mcp/index.js","default":"./dist/mcp/index.js"},"./e2e":{"types":"./dist/e2e/index.d.ts","import":"./dist/e2e/index.js","default":"./dist/e2e/index.js"}},"scripts":{"build":"rm -rf dist && tsup","clean":"rm -rf node_modules coverage","test":"node ../../scripts/vitest-with-teardown.mjs run","test:watch":"vitest watch","lint":"eslint src --max-warnings 0","check-types":"tsc --noEmit","typecheck":"tsc --noEmit","prisma:sync":"node scripts/sync-rbac-schema.mjs","prisma:sync:check":"node scripts/sync-rbac-schema.mjs --check"},"peerDependencies":{"@12-apps/wiring":">=1.3.0","@playwright/test":">=1.55.0","hono":">=4.0.0","playwright-bdd":">=8.3.0","react":">=19.0.0","react-dom":">=19.0.0","react-router-dom":">=7.0.0"},"peerDependenciesMeta":{"@12-apps/wiring":{"optional":true},"@playwright/test":{"optional":true},"hono":{"optional":true},"playwright-bdd":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"react-router-dom":{"optional":true}},"devDependencies":{"@12-apps/eslint-config":"^1.22.0","@12-apps/i18n":"^1.3.0","@12-apps/typescript-config":"^1.21.0","@12-apps/wiring":"^1.16.0","@playwright/test":"^1.61.1","@testing-library/react":"^16.1.0","@types/react":"19.2.2","@types/react-dom":"19.2.2","eslint":"^9.39.1","eslint-plugin-test-flakiness":"^1.4.0","hono":"^4.6.0","jsdom":"^25.0.1","playwright-bdd":"^9.2.0","react":"^19.2.0","react-dom":"^19.2.0","tsup":"^8.0.0","typescript":"^5.9.2","vitest":"^3.2.4","react-router-dom":"^7.9.4"},"engines":{"node":">=22.0.0"},"license":"MIT","publishConfig":{"registry":"https://registry.npmjs.org","access":"public"},"repository":{"type":"git","url":"git+https://github.com/12-apps/shared-packages.git","directory":"packages/rbac"},"dependencies":{"@12-apps/app-shell":"^5.7.0","@12-apps/forms-core":"^1.21.0","@12-apps/ui":"^6.25.0","@mui/icons-material":"^6.5.0","zod":"^4.3.5"},"wiring":{"db":{"partial":"prisma/rbac.prisma","migrations":"prisma/migrations"}},"gitHead":"3cdc80f65e045a57be62beb2d35c43ad9fc55c25","_id":"@12-apps/rbac@4.17.0","bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"homepage":"https://github.com/12-apps/shared-packages#readme","_nodeVersion":"24.20.0","_npmVersion":"12.0.2","dist":{"integrity":"sha512-TL1CKYAUNMLxlJAFlbIRw1sMOvY17bRV2fMipUIj5rZb2NoEfHGbs4ETYvXz5Ga1NcR4R78MnJ1Pc7XoXusxHw==","shasum":"998e418f936e51050e6dff2f097eff5aeaf1a586","tarball":"https://registry.npmjs.org/@12-apps/rbac/-/rbac-4.17.0.tgz","fileCount":170,"unpackedSize":1849291,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@12-apps%2frbac@4.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDeCFjTMUe2Lez/oLf60+UxGRpZ+aOZRrjnGNJKxH4DnwIhANkxVU+WSd0zuNe7H+mx4J0ZRyBmvKpfS7ARXbHJ8aZw"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d9ef2227-5430-443e-b29a-d3683845720d"}},"directories":{},"maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/rbac_4.17.0_1789231086505_0.8782067551781201"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-05T02:17:34.595Z","modified":"2026-09-12T16:38:07.033Z","1.0.0":"2026-08-05T02:17:34.910Z","1.2.0":"2026-08-05T16:09:41.259Z","1.2.1":"2026-08-05T17:06:15.233Z","1.3.0":"2026-08-05T18:34:12.071Z","1.3.1":"2026-08-05T18:51:49.120Z","1.4.0":"2026-08-05T21:43:10.032Z","1.4.1":"2026-08-06T01:15:58.658Z","1.4.2":"2026-08-06T05:11:24.368Z","1.5.0":"2026-08-06T15:41:40.189Z","1.5.1":"2026-08-06T23:44:46.464Z","1.5.2":"2026-08-07T00:10:24.180Z","1.5.3":"2026-08-07T01:32:43.686Z","1.6.0":"2026-08-07T02:25:29.273Z","1.7.0":"2026-08-07T04:21:45.653Z","1.7.1":"2026-08-07T04:31:46.914Z","1.8.0":"2026-08-07T08:02:03.360Z","1.8.1":"2026-08-07T09:03:03.912Z","1.9.0":"2026-08-07T10:58:09.249Z","1.10.0":"2026-08-07T11:52:40.518Z","1.10.1":"2026-08-07T13:07:43.629Z","1.11.0":"2026-08-07T15:50:49.874Z","1.11.1":"2026-08-07T18:35:24.315Z","1.12.0":"2026-08-07T18:48:52.235Z","1.13.0":"2026-08-07T20:03:25.013Z","1.14.0":"2026-08-07T20:15:06.399Z","1.14.2":"2026-08-07T21:40:50.216Z","1.15.0":"2026-08-07T23:32:31.358Z","1.15.1":"2026-08-07T23:51:36.169Z","1.15.2":"2026-08-08T03:32:28.475Z","1.15.3":"2026-08-08T14:05:23.645Z","1.16.0":"2026-08-08T15:44:56.852Z","1.17.0":"2026-08-08T16:21:38.992Z","1.18.0":"2026-08-08T17:17:25.700Z","1.19.0":"2026-08-12T21:58:54.905Z","1.20.0":"2026-08-13T02:28:49.553Z","1.20.1":"2026-08-13T03:07:45.654Z","2.0.0":"2026-08-13T03:27:21.150Z","3.0.0":"2026-08-13T23:02:24.379Z","4.0.0":"2026-08-15T13:25:05.848Z","4.0.1":"2026-08-15T17:33:11.367Z","4.0.2":"2026-08-17T16:24:05.365Z","4.0.3":"2026-08-20T14:42:17.124Z","4.1.0":"2026-08-21T00:13:32.584Z","4.2.0":"2026-08-21T15:47:34.250Z","4.3.0":"2026-08-22T15:19:07.801Z","4.3.1":"2026-08-22T17:45:04.900Z","4.4.0":"2026-08-23T14:52:15.836Z","4.5.0":"2026-08-23T16:35:50.162Z","4.6.0":"2026-08-23T17:00:58.140Z","4.7.0":"2026-08-24T04:54:03.924Z","4.8.0":"2026-08-24T18:09:39.753Z","4.9.0":"2026-08-24T18:50:13.543Z","4.10.0":"2026-08-25T00:30:38.159Z","4.11.0":"2026-08-25T02:25:51.311Z","4.12.0":"2026-08-26T03:35:30.831Z","4.13.0":"2026-08-26T12:20:43.034Z","4.14.0":"2026-08-27T12:02:18.611Z","4.15.0":"2026-09-11T01:33:44.623Z","4.16.0":"2026-09-11T02:07:18.299Z","4.17.0":"2026-09-12T16:38:06.687Z"},"bugs":{"url":"https://github.com/12-apps/shared-packages/issues"},"license":"MIT","homepage":"https://github.com/12-apps/shared-packages#readme","repository":{"type":"git","url":"git+https://github.com/12-apps/shared-packages.git","directory":"packages/rbac"},"description":"Generic, portable Role-Based Access Control. Framework-free core (engine, registry, caveats, templates, governance), host-mounted backend surface (./server: role CRUD, permissions, team roster, guard helpers, duck-typed Prisma seam), Hono adapter (./hono)","maintainers":[{"name":"tigredonorte","email":"tigredonorte3@gmail.com"}],"readme":"# @12-apps/rbac\n\nGeneric, portable, **engine-agnostic** authorization. A framework-free core plus\noptional React and framework-neutral server adapters. **Zero app coupling**: the\ncore knows nothing about the origin host — permissions, roles, scopes and actors are\nall host-supplied data.\n\n> **Adopting this in another project?** This README is the API reference. See\n> **[`RBAC.md`](./RBAC.md)** for the step-by-step integration playbook — DB\n> resolver, guards, the CI coverage gate, DB-persisted custom roles, and the roles\n> admin panel + member-assignment patterns (with the gotchas).\n\n## Subpath exports\n\n| Import | Contents |\n| --- | --- |\n| `@12-apps/rbac` | core + composition (`composePermissions`) + governance + this package's own `RBAC_PERMISSIONS` |\n| `@12-apps/rbac/react` | `RbacProvider`, `useCan`, `<Can>` |\n| `@12-apps/rbac/next` | `createRbacGuards` (framework-neutral server guards) |\n\nThe exports map points at `./src` directly — no build step is required at\nruntime.\n\n## The two seams behind a swappable PDP\n\nAll authorization goes through a **Policy Decision Point** — the `AuthzAdapter`\ninterface — with exactly two seams. Call sites use `can()` and\n`visibleResources()` **only**; they never know which engine answers.\n\n```ts\ninterface AuthzAdapter {\n  // POINT seam: may this subject do this action to this exact resource?\n  check(subject, action, resource: string | null, context): boolean | Promise<boolean>;\n  // LIST seam: which instances of resourceType may this subject act on?\n  visible(subject, action, resourceType, context): VisibleResult | Promise<VisibleResult>;\n}\n\ntype VisibleResult =\n  | { kind: 'all' }                       // hold the class permission\n  | { kind: 'none' }                      // denied\n  | { kind: 'ids'; ids: string[] }        // exactly these instances\n  | { kind: 'predicate'; predicate: unknown }; // host turns this into a WHERE clause\n```\n\n- `check` answers **point** decisions (a specific row, or a class action when\n  `resource` is `null`).\n- `visible` is the **list** seam — never fetch-then-filter. Ask the PDP what is\n  visible, then push `all` / `none` / `ids` / `predicate` down into your query.\n\n### Default adapter (SQL / in-process)\n\nShips built-in. It is the classic roles-as-data engine plus the entity gate:\n\n- **Class permission** → RBAC alone decides. `visible` = `all` when held.\n- **Instance permission** → RBAC gate **then** an entity gate: ownership OR the\n  assignment relation OR a caveat. `visible` = the union as `ids` / `predicate`.\n\n### Swapping in OpenFGA (later)\n\nAn OpenFGA adapter implements the **same** `AuthzAdapter`:\n`check` → the FGA `Check` RPC, `visible` → `ListObjects`. Pass it as\n`config.adapter` and every call site keeps working unchanged.\n\n```ts\ncreateRbac({ ...config, adapter: myOpenFgaAdapter });\n```\n\n## Class vs instance permissions\n\nDeclare permissions with `definePermissions`. Either the backward-compatible\nstring tuple (everything defaults to `'class'`) or an **object map** that flags\neach permission's scope-kind:\n\n```ts\nimport { definePermissions } from '@12-apps/rbac';\n\nconst PERMISSIONS = definePermissions({\n  'products:write': 'class',       // RBAC alone\n  'orders:read:own': 'instance',   // RBAC gate THEN entity gate\n} as const);\n\nPERMISSIONS.kind('orders:read:own'); // 'instance'\nPERMISSIONS.kind('products:write');  // 'class'\nPERMISSIONS.kind('unknown');         // 'class' (default)\n```\n\n## Roles as data (with caveats)\n\n```ts\nconst ROLES: readonly RoleDef<AppPermission>[] = [\n  { name: 'OWNER', permissions: '*' },\n  { name: 'STAFF', permissions: ['products:read:all', 'orders:create'] },\n  {\n    name: 'JUNIOR_FINANCE',\n    permissions: [\n      // ABAC caveat: refunds only under a threshold in the host context\n      { permission: 'orders:refund', caveat: (ctx) => Number(ctx.amount) < 100 },\n    ],\n  },\n];\n```\n\n`'*'` grants everything. `inherits: ['OTHER']` unions another role's permissions\n(recursively, cycle-guarded).\n\n## ABAC caveats + context\n\nA role-permission entry may carry a `caveat: (context) => boolean`. The\nclass/instance gate additionally requires the caveat to pass. `context` is\nhost-populated and threaded through `can()` / `visibleResources()` (as the last\nargument). **Missing context denies** — a caveat that cannot find the data it\nneeds must return `false`; there is no silent allow.\n\n```ts\nawait rbac.can(userId, 'orders:refund', orderId, { scope: tenantId, amount: 50 });  // true\nawait rbac.can(userId, 'orders:refund', orderId, { scope: tenantId, amount: 500 }); // false\nawait rbac.can(userId, 'orders:refund', orderId, { scope: tenantId });              // false (no amount)\n```\n\nThe three condition shapes the design names ship as ready-made factories\n(`src/core/caveats.ts`), each denying on missing/mistyped context:\n\n```ts\nimport { amountAtMost, withinShift, notExpired, allOf } from '@12-apps/rbac';\n\n{ permission: 'orders:refund', caveat: amountAtMost(5000) }        // comp/refund cap\n{ permission: 'payments:take', caveat: withinShift() }             // ctx.onShift === true\n{ permission: 'config:write',  caveat: notExpired() }              // time-boxed elevation\n{ permission: 'orders:refund', caveat: allOf(amountAtMost(5000), notExpired()) }\n```\n\n`isActiveAssignment({ validFrom, validTo }, now)` is the in-process mirror of\nthe SQL temporal predicate (`valid_to IS NULL OR valid_to > now()`) for\nin-memory hosts, resolvers and tests.\n\n## Scope parent-walk (chains)\n\nMulti-level scopes (org → restaurant) are supported via `scopeParent`. A grant at\na **parent** scope satisfies checks at any descendant; a child grant never\nreaches the parent or a sibling. The walk is cycle-guarded.\n\n```ts\ncreateRbac({\n  ...config,\n  scopeParent: (scope) => parentOf[scope] ?? null, // return null at the root\n});\n// OWNER@org-1 can config:write on restaurant-1 (child)   -> true\n// OWNER@restaurant-1 cannot reach org-1 (parent)          -> false\n```\n\n## Create the engine\n\n```ts\nimport { createRbac } from '@12-apps/rbac';\n\nexport const rbac = createRbac<AppPermission>({\n  permissions: PERMISSIONS,\n  roles: ROLES,\n  resolver,                 // actorId -> RoleAssignment[]\n  globalScope: 'GLOBAL',    // assignments here satisfy any scope\n  scopeParent,              // optional: org -> restaurant chains\n  ownership,                // optional entity gate: (subject, type) -> OwnershipPredicate | null\n  assignmentResolver,       // optional entity gate: (subject, type, ctx) -> string[] (the RELATION)\n  adapter,                  // optional: swap in OpenFGA etc.\n});\n\n// converged call sites:\nawait rbac.can(userId, 'products:write', null, { scope: tenantId });        // Promise<boolean>\nawait rbac.can(userId, 'orders:read:own', orderId, { scope: tenantId });    // instance point check\nawait rbac.visibleResources(userId, 'orders:read:own', 'orders', { scope: tenantId }); // LIST seam\nawait rbac.requirePermission(userId, 'orders:void', orderId, { scope: tenantId });      // throws\n```\n\nThe **entity gate** (`ownership` + `assignmentResolver`) is only consulted for\ninstance permissions. Assignment is always a **relation** (many ids), never a\nsingle column, and the host temporal-filters it. Composition: an instance check\npasses iff RBAC grants the action **and** (ownership holds **or** the id is in\nthe assignment set **or** a caveat passes).\n\n## Governance validator\n\n`validateGrant` is a **pure, framework-free** guard on the role-administration\nsurface (who may create/assign which role, at which scope). It is NOT an\nauthorization check — it decides whether a grant is *allowed to be made*.\n\n```ts\nimport { validateGrant } from '@12-apps/rbac';\n\nconst verdict = validateGrant({\n  granterPermissions: myPermissions, // the granter's ceiling ('*' allowed)\n  roleBeingGranted: 'MANAGER',        // a catalog role name or an inline RoleDef\n  targetScope: { isLeaf: true },      // leaf (a single site) vs org/parent\n  catalog: CATALOG.governance,        // from your composed catalog (see above)\n});\n// { ok: true }\n// | { ok: false, reason: 'ESCALATION: ...', missingPermissions: ['a:write', …] }\n// | { ok: false, reason: 'SCOPE_CEILING: ...' }\n```\n\n`missingPermissions` is present on **`ESCALATION` only** — every id the granter\nwould have had to hold, not just the first one found. It is there so a host\nnaming them to a person does not have to parse them back out of `reason`; the\nserver surface already appends them to the refusal copy (capped at ten, with a\ncount for the remainder).\n\nEnforced rules (stable `reason` prefixes):\n\n- **`OWNER_PROTECTED`** — owner roles / owner-marker permissions / wildcard roles\n  are never grantable via a custom role.\n- **`ESCALATION`** — the granter may only grant permissions they hold. The only\n  code that carries `missingPermissions`, and the only one whose user-facing\n  copy names ids: the set is the caller's own permissions subtracted from a role\n  they can already see, so it discloses nothing they could not compute.\n- **`SCOPE_CEILING`** — leaf-only roles and instance permissions may only be\n  assigned at a leaf scope, never at an org/parent scope.\n- **`SEPARATION_OF_DUTIES`** — no single role may hold both halves of a\n  configured mutually-exclusive pair (e.g. `purchasing:write` +\n  `purchasing:approve`).\n\n## Composing a catalog (the host is the assembler)\n\nThe package ships **no application catalog**. It declares the three permissions\nguarding its own screens and endpoints — `roles:manage`, `team:read`,\n`team:manage`, exported as `RBAC_PERMISSIONS` — and a host composes those with\nevery other owner's contribution.\n\n```ts\nimport {\n  composePermissions,\n  definePermissionContribution,\n  RBAC_PERMISSIONS,\n  type PermissionOf,\n} from '@12-apps/rbac';\nimport { LIFECYCLE_PERMISSIONS } from '@12-apps/entity-lifecycle';\n\n/** Your domain declares its own ids, with everything true about each. */\nexport const SHOP_PERMISSIONS = definePermissionContribution({\n  source: 'shop',\n  permissions: {\n    'products:write': { kind: 'class' },\n    'orders:read:own': { kind: 'instance' },\n    'payouts:manage': { kind: 'class', ownerMarker: true },\n  },\n  labels: { domains: { products: 'Produtos' }, actions: { write: 'Editar' } },\n});\n\nexport const CATALOG = composePermissions(\n  RBAC_PERMISSIONS,        // this package's own surfaces\n  LIFECYCLE_PERMISSIONS,   // another package's surfaces\n  SHOP_PERMISSIONS,        // your domain\n).withRoles({\n  roles: SHOP_ROLES,       // typed against the composed union\n  ownerRoles: ['OWNER'],\n  leafOnlyRoles: ['MANAGER'],\n  platformOnlyRoles: ['SUPERADMIN'],\n  roleLabels: { OWNER: 'Proprietário' },\n});\n\n/** The union your guards are checked against — it survives composition. */\nexport type ShopPermission = PermissionOf<typeof CATALOG>;\n```\n\n`CATALOG` is the ONE object `createApiRbac` / `createWebRbac` take. It carries\nthe registry, the role templates, the governance catalog, the per-tenant seed\nrows and the merged labels, so a host cannot wire the registry from one place\nand the governance from another and have them disagree.\n\n**A contribution is one coherent unit.** Each id travels with its scope-kind\n(`class` / `instance`), its owner-marker flag, its separation-of-duties\ncounterparts and its label. An id registered without its scope-kind resolves to\n`class` and skips the entity gate — the half-wiring that fails open — so there\nis no shape of the declaration that omits it. The TYPE says that where a catalog\nis written; composition says it again at assembly, because a catalog that is\ngenerated, read from config or parsed from JSON crosses that boundary exactly\nonce. A spec whose `kind` is not `class`/`instance`, whose `ownerMarker` is not\na boolean, or whose `separateFrom` is not a list of ids throws an\n`RbacCatalogError` (`INVALID_PERMISSION_SPEC`) naming the id and its source.\n\n**Collisions are loud.** Two sources contributing the same id throw an\n`RbacCatalogError` (`PERMISSION_COLLISION`) naming both, in either order. There\nis no last-write-wins: a silent overwrite is how one package's `instance`\nbecomes another's `class`. Composition also refuses an SoD counterpart nothing\ncontributes, a role granting an unknown id, and a policy naming an unknown role.\n\n**A pair may span sources.** `separateFrom` is resolved against the whole\nassembled catalog, so an approvals package can declare\n`'products:approve': { separateFrom: ['products:write'] }` without owning\n`products:write`.\n\n## Server guards\n\n```ts\nimport { createRbacGuards } from '@12-apps/rbac/next';\nimport { PermissionDeniedError } from '@12-apps/rbac';\n\nconst guards = createRbacGuards(rbac, async () => (await auth())?.user?.id ?? null);\n\nexport async function refundOrder(tenantId: string) {\n  try {\n    await guards.requirePermission('orders:refund', tenantId);\n  } catch (e) {\n    if (e instanceof PermissionDeniedError) return { status: 403 };\n    throw e;\n  }\n  // ...perform the refund\n}\n```\n\n## React: `useCan` / `<Can>`\n\nThe provider takes an **already-resolved** permission set (resolve it\nserver-side for the current scope and pass it down). The client never touches\nthe resolver or DB.\n\n```tsx\nimport { RbacProvider, useCan, Can } from '@12-apps/rbac/react';\n\nconst permissions = await rbac.getPermissions(userId, tenantId);\n\n<RbacProvider permissions={permissions}>\n  <Can permission=\"orders:refund\" fallback={null}>\n    <RefundButton />\n  </Can>\n</RbacProvider>;\n```\n\n## Portability: a toy second host (a blog)\n\nThe same core powers a completely different domain, and an OpenFGA adapter\ncould replace the default engine without touching any of this. Not just prose:\n`src/__tests__/portability.test.ts` is the RUNNABLE version of this host — its\nown catalog, roles, scope chain, ownership, temporal review assignments and\ngovernance policy — plus the tripwire that asserts what the PACKAGE contains,\nwhich is what \"portable\" used to mean here and did not check:\n\n```ts\nimport { definePermissions, createRbac, type RoleDef } from '@12-apps/rbac';\n\nconst BLOG = definePermissions({\n  'posts:read': 'class',\n  'posts:write:own': 'instance', // authors edit only their own drafts\n  'posts:publish': 'class',\n} as const);\ntype BlogPerm = (typeof BLOG.list)[number];\n\nconst ROLES: readonly RoleDef<BlogPerm>[] = [\n  { name: 'READER', permissions: ['posts:read'] },\n  { name: 'AUTHOR', permissions: ['posts:read', 'posts:write:own'] },\n  { name: 'EDITOR', permissions: '*' },\n];\n\nconst blogRbac = createRbac<BlogPerm>({\n  permissions: BLOG,\n  roles: ROLES,\n  resolver: () => [{ role: 'AUTHOR', scope: 'blog-1' }],\n  ownership: (subject, type) =>\n    type === 'posts' ? { kind: 'predicate', test: (id) => id.startsWith(subject) } : null,\n});\n\nawait blogRbac.can('u1', 'posts:read', null, { scope: 'blog-1' });        // true (class)\nawait blogRbac.can('u1', 'posts:write:own', 'u1-draft', { scope: 'blog-1' }); // true (owns it)\nawait blogRbac.can('u1', 'posts:write:own', 'u2-draft', { scope: 'blog-1' }); // false (not owner)\nawait blogRbac.can('u1', 'posts:publish', null, { scope: 'blog-1' });     // false (author lacks it)\n```\n","readmeFilename":"README.md"}