{"_id":"@dudousxd/nestjs-authz-mikro-orm","_rev":"8-6ed9aa6f74f09d56e8565f9dfc8af61b","name":"@dudousxd/nestjs-authz-mikro-orm","dist-tags":{"latest":"0.7.0"},"versions":{"0.2.0":{"name":"@dudousxd/nestjs-authz-mikro-orm","version":"0.2.0","keywords":["nestjs","authorization","authz","rbac","roles","permissions","mikro-orm"],"author":{"name":"Davi Carvalho","email":"davi@goflip.ai"},"license":"MIT","_id":"@dudousxd/nestjs-authz-mikro-orm@0.2.0","maintainers":[{"name":"dudousxd","email":"davi_carvalho96@hotmail.com"}],"homepage":"https://github.com/DavideCarvalho/nestjs-authz#readme","bugs":{"url":"https://github.com/DavideCarvalho/nestjs-authz/issues"},"dist":{"shasum":"d88e94327964826c65163fa91ad2c79532b78f89","tarball":"https://registry.npmjs.org/@dudousxd/nestjs-authz-mikro-orm/-/nestjs-authz-mikro-orm-0.2.0.tgz","fileCount":28,"integrity":"sha512-oyWoComr8itaf5Nt9o70Z2CooHfiiRhPjNnWCTp9IlIOR0B9JNNSQaIPgveBsRQYmZfA5H6+NQHdQRaXEZ6waQ==","signatures":[{"sig":"MEQCICi4NopEg5Gvm4DxSbXDFxHoaOW8+JWSNYumSOW3aAHXAiAzr7jUGjJS0IeD88XyyeBLyJIfOZdzIBttSL6Ze9OZBw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dudousxd%2fnestjs-authz-mikro-orm@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":58355},"main":"./dist/index.js","type":"module","_from":"file:dudousxd-nestjs-authz-mikro-orm-0.2.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"dudousxd","email":"davi_carvalho96@hotmail.com"},"_resolved":"/tmp/23e6b196200c894625bbe04ea932d530/dudousxd-nestjs-authz-mikro-orm-0.2.0.tgz","_integrity":"sha512-oyWoComr8itaf5Nt9o70Z2CooHfiiRhPjNnWCTp9IlIOR0B9JNNSQaIPgveBsRQYmZfA5H6+NQHdQRaXEZ6waQ==","repository":{"url":"git+https://github.com/DavideCarvalho/nestjs-authz.git","type":"git","directory":"packages/mikro-orm"},"_npmVersion":"10.8.2","description":"MikroORM RBAC persistence for @dudousxd/nestjs-authz — roles, permissions, and a Gate seam (zero connection ownership).","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.1","vitest":"^3.0.0","typescript":"^5.4.0","@types/node":"^20.0.0","@nestjs/core":"^11.0.0","@nestjs/common":"^11.0.0","@mikro-orm/core":"6.6.15","@nestjs/testing":"^11.0.0","reflect-metadata":"^0.2.2","@mikro-orm/nestjs":"^6.0.0","@dudousxd/nestjs-authz":"^0.4.0","@mikro-orm/better-sqlite":"6.6.15"},"peerDependencies":{"@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0","@mikro-orm/core":"^6.0.0","reflect-metadata":">=0.1.13","@mikro-orm/nestjs":"^5.0.0 || ^6.0.0","@dudousxd/nestjs-authz":">=0.1.0"},"peerDependenciesMeta":{"@mikro-orm/nestjs":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nestjs-authz-mikro-orm_0.2.0_1781707215656_0.9646585769624179","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@dudousxd/nestjs-authz-mikro-orm","version":"0.3.0","keywords":["nestjs","authorization","authz","rbac","roles","permissions","mikro-orm"],"author":{"name":"Davi Carvalho","email":"davi@goflip.ai"},"license":"MIT","_id":"@dudousxd/nestjs-authz-mikro-orm@0.3.0","maintainers":[{"name":"dudousxd","email":"davi_carvalho96@hotmail.com"}],"homepage":"https://github.com/DavideCarvalho/nestjs-authz#readme","bugs":{"url":"https://github.com/DavideCarvalho/nestjs-authz/issues"},"dist":{"shasum":"0ff08fca451892b2407abd3b03385e9734755461","tarball":"https://registry.npmjs.org/@dudousxd/nestjs-authz-mikro-orm/-/nestjs-authz-mikro-orm-0.3.0.tgz","fileCount":32,"integrity":"sha512-0tqNXZtCxI0tNmg2p3T484qppnUDAMT0vaFxDRO+9fnzxGXchiFkqCTIgUvDQCqJqVvppfZkrU15T5DJsukCPw==","signatures":[{"sig":"MEUCIQCwJre2SiUbntkJDhnGbL+L5Va8UGSy8xHb5snobIC53wIgasPNcOgG/7/hliPYypALKMvWOjMWrKQh/7PIh76Pag4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dudousxd%2fnestjs-authz-mikro-orm@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":75518},"main":"./dist/index.js","type":"module","_from":"file:dudousxd-nestjs-authz-mikro-orm-0.3.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"dudousxd","email":"davi_carvalho96@hotmail.com"},"_resolved":"/tmp/25b63c92822e9ba5b6b4b751598cf7ad/dudousxd-nestjs-authz-mikro-orm-0.3.0.tgz","_integrity":"sha512-0tqNXZtCxI0tNmg2p3T484qppnUDAMT0vaFxDRO+9fnzxGXchiFkqCTIgUvDQCqJqVvppfZkrU15T5DJsukCPw==","repository":{"url":"git+https://github.com/DavideCarvalho/nestjs-authz.git","type":"git","directory":"packages/mikro-orm"},"_npmVersion":"10.8.2","description":"MikroORM RBAC persistence for @dudousxd/nestjs-authz — roles, permissions, and a Gate seam (zero connection ownership).","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.1","vitest":"^3.0.0","typescript":"^5.4.0","@types/node":"^20.0.0","@nestjs/core":"^11.0.0","@nestjs/common":"^11.0.0","@mikro-orm/core":"6.6.15","@nestjs/testing":"^11.0.0","reflect-metadata":"^0.2.2","@mikro-orm/nestjs":"^6.0.0","@dudousxd/nestjs-authz":"^0.6.0","@mikro-orm/better-sqlite":"6.6.15"},"peerDependencies":{"@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0","@mikro-orm/core":"^6.0.0","reflect-metadata":">=0.1.13","@mikro-orm/nestjs":"^5.0.0 || ^6.0.0","@dudousxd/nestjs-authz":">=0.1.0"},"peerDependenciesMeta":{"@mikro-orm/nestjs":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nestjs-authz-mikro-orm_0.3.0_1781797246875_0.7339532553078731","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@dudousxd/nestjs-authz-mikro-orm","version":"0.3.1","keywords":["nestjs","authorization","authz","rbac","roles","permissions","mikro-orm"],"author":{"name":"Davi Carvalho","email":"davi@goflip.ai"},"license":"MIT","_id":"@dudousxd/nestjs-authz-mikro-orm@0.3.1","maintainers":[{"name":"dudousxd","email":"davi_carvalho96@hotmail.com"}],"homepage":"https://github.com/DavideCarvalho/nestjs-authz#readme","bugs":{"url":"https://github.com/DavideCarvalho/nestjs-authz/issues"},"dist":{"shasum":"d3aefcfbccc67401f7bd03d71885c41dd279212c","tarball":"https://registry.npmjs.org/@dudousxd/nestjs-authz-mikro-orm/-/nestjs-authz-mikro-orm-0.3.1.tgz","fileCount":32,"integrity":"sha512-mkF2HByXyADM/f/CFLGkiJqRiK9HCMSGrqLt/1PuDhtG99UJFPsBQktI6DvjJHACW5+QwvCSTf1Cg+OguFeUpA==","signatures":[{"sig":"MEYCIQD4Dsqlzyk1kvURHx+8CfAakh85GDubAeFONJI5bJqncgIhAL4hIiIQh4Trvht+ICStNLLHqQhkWQUtHqEbbbO+8Wn6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dudousxd%2fnestjs-authz-mikro-orm@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":74005},"main":"./dist/index.js","type":"module","_from":"file:dudousxd-nestjs-authz-mikro-orm-0.3.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"dudousxd","email":"davi_carvalho96@hotmail.com"},"_resolved":"/tmp/33e2ba1351ee1d407bf84e60f732a211/dudousxd-nestjs-authz-mikro-orm-0.3.1.tgz","_integrity":"sha512-mkF2HByXyADM/f/CFLGkiJqRiK9HCMSGrqLt/1PuDhtG99UJFPsBQktI6DvjJHACW5+QwvCSTf1Cg+OguFeUpA==","repository":{"url":"git+https://github.com/DavideCarvalho/nestjs-authz.git","type":"git","directory":"packages/mikro-orm"},"_npmVersion":"10.8.2","description":"MikroORM RBAC persistence for @dudousxd/nestjs-authz — roles, permissions, and a Gate seam (zero connection ownership).","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.1","vitest":"^3.0.0","typescript":"^5.4.0","@types/node":"^20.0.0","@nestjs/core":"^11.0.0","@nestjs/common":"^11.0.0","@mikro-orm/core":"6.6.15","@nestjs/testing":"^11.0.0","reflect-metadata":"^0.2.2","@mikro-orm/nestjs":"^6.0.0","@dudousxd/nestjs-authz":"^0.6.1","@mikro-orm/better-sqlite":"6.6.15"},"peerDependencies":{"@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0","@mikro-orm/core":"^6.0.0","reflect-metadata":">=0.1.13","@mikro-orm/nestjs":"^5.0.0 || ^6.0.0","@dudousxd/nestjs-authz":">=0.1.0"},"peerDependenciesMeta":{"@mikro-orm/nestjs":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nestjs-authz-mikro-orm_0.3.1_1781898516833_0.8757790277822308","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@dudousxd/nestjs-authz-mikro-orm","version":"0.4.0","keywords":["nestjs","authorization","authz","rbac","roles","permissions","mikro-orm"],"author":{"name":"Davi Carvalho","email":"davi@goflip.ai"},"license":"MIT","_id":"@dudousxd/nestjs-authz-mikro-orm@0.4.0","maintainers":[{"name":"dudousxd","email":"davi_carvalho96@hotmail.com"}],"homepage":"https://github.com/DavideCarvalho/nestjs-authz#readme","bugs":{"url":"https://github.com/DavideCarvalho/nestjs-authz/issues"},"dist":{"shasum":"f5a80cfcc16a006ec94a4c2d8f37032bf57bae92","tarball":"https://registry.npmjs.org/@dudousxd/nestjs-authz-mikro-orm/-/nestjs-authz-mikro-orm-0.4.0.tgz","fileCount":32,"integrity":"sha512-fh4tkzK0Uq903AmF+jEVJhQXX7vKe0/aIuZsot0d+5YHvgX6dA8JgFKFf9CVKl3CyQAxInwHpajgnS4+2PjAnw==","signatures":[{"sig":"MEUCIQCp+s7JRCUauB5dz0V4/UAH1pEPfi5Zp0f6P8bJ1vgH+wIgGJmdxt9txnWcrSgq9IOIbIfIfmrWjBedc1zv54PPsis=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dudousxd%2fnestjs-authz-mikro-orm@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":76843},"main":"./dist/index.js","type":"module","_from":"file:dudousxd-nestjs-authz-mikro-orm-0.4.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"dudousxd","email":"davi_carvalho96@hotmail.com"},"_resolved":"/tmp/285f7b20cf9ed79087cb4f935ab005f8/dudousxd-nestjs-authz-mikro-orm-0.4.0.tgz","_integrity":"sha512-fh4tkzK0Uq903AmF+jEVJhQXX7vKe0/aIuZsot0d+5YHvgX6dA8JgFKFf9CVKl3CyQAxInwHpajgnS4+2PjAnw==","repository":{"url":"git+https://github.com/DavideCarvalho/nestjs-authz.git","type":"git","directory":"packages/mikro-orm"},"_npmVersion":"10.8.2","description":"MikroORM RBAC persistence for @dudousxd/nestjs-authz — roles, permissions, and a Gate seam (zero connection ownership).","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.1","vitest":"^3.0.0","typescript":"^5.4.0","@types/node":"^20.0.0","@nestjs/core":"^11.0.0","@nestjs/common":"^11.0.0","@mikro-orm/core":"6.6.15","@nestjs/testing":"^11.0.0","reflect-metadata":"^0.2.2","@mikro-orm/nestjs":"^6.0.0","@dudousxd/nestjs-authz":"^0.6.3","@mikro-orm/better-sqlite":"6.6.15"},"peerDependencies":{"@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0","@mikro-orm/core":"^6.0.0 || ^7.0.0","reflect-metadata":">=0.1.13","@mikro-orm/nestjs":"^5.0.0 || ^6.0.0 || ^7.0.0","@dudousxd/nestjs-authz":">=0.1.0"},"peerDependenciesMeta":{"@mikro-orm/nestjs":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nestjs-authz-mikro-orm_0.4.0_1782168313316_0.2962475203053867","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@dudousxd/nestjs-authz-mikro-orm","version":"0.5.0","keywords":["nestjs","authorization","authz","rbac","roles","permissions","mikro-orm"],"author":{"name":"Davi Carvalho","email":"davi@goflip.ai"},"license":"MIT","_id":"@dudousxd/nestjs-authz-mikro-orm@0.5.0","maintainers":[{"name":"dudousxd","email":"davi_carvalho96@hotmail.com"}],"homepage":"https://github.com/DavideCarvalho/nestjs-authz#readme","bugs":{"url":"https://github.com/DavideCarvalho/nestjs-authz/issues"},"dist":{"shasum":"77df4035b9dc1b03d2cfe6414c95b558c1d439e4","tarball":"https://registry.npmjs.org/@dudousxd/nestjs-authz-mikro-orm/-/nestjs-authz-mikro-orm-0.5.0.tgz","fileCount":36,"integrity":"sha512-GvqdKIO3KnaesnkMEK3muvTGeOEHYWnl1jhe/c3owLIcI9To2m0mXlMeSCX8GtzgOIhe9ZTI/noR+k8C/0YPPg==","signatures":[{"sig":"MEYCIQDbfJkx1QmRXeIcRq9ivWzgdnwcaUy629aMS1MQKFURGwIhAPkkQxUPedfvjjAcVp1rufUviczYuYZvu4BaFpAPFuFf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dudousxd%2fnestjs-authz-mikro-orm@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":92153},"main":"./dist/index.js","type":"module","_from":"file:dudousxd-nestjs-authz-mikro-orm-0.5.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"dudousxd","email":"davi_carvalho96@hotmail.com"},"_resolved":"/tmp/9db136f2c2987ec7567501a3ca2c3753/dudousxd-nestjs-authz-mikro-orm-0.5.0.tgz","_integrity":"sha512-GvqdKIO3KnaesnkMEK3muvTGeOEHYWnl1jhe/c3owLIcI9To2m0mXlMeSCX8GtzgOIhe9ZTI/noR+k8C/0YPPg==","repository":{"url":"git+https://github.com/DavideCarvalho/nestjs-authz.git","type":"git","directory":"packages/mikro-orm"},"_npmVersion":"10.8.2","description":"MikroORM RBAC persistence for @dudousxd/nestjs-authz — roles, permissions, and a Gate seam (zero connection ownership).","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.1","vitest":"^3.0.0","typescript":"^5.4.0","@types/node":"^20.0.0","@nestjs/core":"^11.0.0","@nestjs/common":"^11.0.0","@mikro-orm/core":"6.6.15","@nestjs/testing":"^11.0.0","reflect-metadata":"^0.2.2","@mikro-orm/nestjs":"^6.0.0","@dudousxd/nestjs-authz":"^0.6.4","@mikro-orm/better-sqlite":"6.6.15"},"peerDependencies":{"@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0","@mikro-orm/core":"^6.0.0 || ^7.0.0","reflect-metadata":">=0.1.13","@mikro-orm/nestjs":"^5.0.0 || ^6.0.0 || ^7.0.0","@dudousxd/nestjs-authz":">=0.1.0"},"peerDependenciesMeta":{"@mikro-orm/nestjs":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nestjs-authz-mikro-orm_0.5.0_1787671759093_0.7046984163060805","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@dudousxd/nestjs-authz-mikro-orm","version":"0.5.1","keywords":["nestjs","authorization","authz","rbac","roles","permissions","mikro-orm"],"author":{"name":"Davi Carvalho","email":"davi@goflip.ai"},"license":"MIT","_id":"@dudousxd/nestjs-authz-mikro-orm@0.5.1","maintainers":[{"name":"dudousxd","email":"davi_carvalho96@hotmail.com"}],"homepage":"https://github.com/DavideCarvalho/nestjs-authz#readme","bugs":{"url":"https://github.com/DavideCarvalho/nestjs-authz/issues"},"dist":{"shasum":"070300b1d69912f951eb817d2c908edb189a6b4c","tarball":"https://registry.npmjs.org/@dudousxd/nestjs-authz-mikro-orm/-/nestjs-authz-mikro-orm-0.5.1.tgz","fileCount":36,"integrity":"sha512-ZHGWjb2ZW/MEzepOAjozgoWlh5RTsmDl7VZ1Tkm75xplB7tSqdvi2uoIXZT9z1gSRoBxIRMmz58Z9oXpLSR+Ug==","signatures":[{"sig":"MEUCIGJj5qVIRZ6C351sjmfIsffDo7rxmOc22KhRQXpY8mkKAiEAyqrRCCk4aJ2G1YjF9U3qaCNZb64O1fvJWrz8tvXH4mU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dudousxd%2fnestjs-authz-mikro-orm@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":92618},"main":"./dist/index.js","type":"module","_from":"file:dudousxd-nestjs-authz-mikro-orm-0.5.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"dudousxd","email":"davi_carvalho96@hotmail.com"},"_resolved":"/tmp/de04f86bf7a5a9c5a55ccd629bd0937a/dudousxd-nestjs-authz-mikro-orm-0.5.1.tgz","_integrity":"sha512-ZHGWjb2ZW/MEzepOAjozgoWlh5RTsmDl7VZ1Tkm75xplB7tSqdvi2uoIXZT9z1gSRoBxIRMmz58Z9oXpLSR+Ug==","repository":{"url":"git+https://github.com/DavideCarvalho/nestjs-authz.git","type":"git","directory":"packages/mikro-orm"},"_npmVersion":"10.8.2","description":"MikroORM RBAC persistence for @dudousxd/nestjs-authz — roles, permissions, and a Gate seam (zero connection ownership).","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.1","vitest":"^3.0.0","typescript":"^5.4.0","@types/node":"^20.0.0","@nestjs/core":"^12.0.1","@nestjs/common":"^12.0.1","@mikro-orm/core":"6.6.15","@nestjs/testing":"^12.0.1","reflect-metadata":"^0.2.2","@mikro-orm/nestjs":"^6.0.0","@dudousxd/nestjs-authz":"^0.6.5","@mikro-orm/better-sqlite":"6.6.15"},"peerDependencies":{"@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0","@mikro-orm/core":"^6.0.0 || ^7.0.0","reflect-metadata":">=0.1.13","@mikro-orm/nestjs":"^5.0.0 || ^6.0.0 || ^7.0.0","@dudousxd/nestjs-authz":">=0.1.0"},"peerDependenciesMeta":{"@mikro-orm/nestjs":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nestjs-authz-mikro-orm_0.5.1_1788017600203_0.7923737576916434","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@dudousxd/nestjs-authz-mikro-orm","version":"0.6.0","keywords":["nestjs","authorization","authz","rbac","roles","permissions","mikro-orm"],"author":{"name":"Davi Carvalho","email":"davi@goflip.ai"},"license":"MIT","_id":"@dudousxd/nestjs-authz-mikro-orm@0.6.0","maintainers":[{"name":"dudousxd","email":"davi_carvalho96@hotmail.com"}],"homepage":"https://davidecarvalho.github.io/aviary/docs/authz","bugs":{"url":"https://github.com/DavideCarvalho/nestjs-authz/issues"},"dist":{"shasum":"d77f26ea8b6105e23c3c66069d07c18f8b92117e","tarball":"https://registry.npmjs.org/@dudousxd/nestjs-authz-mikro-orm/-/nestjs-authz-mikro-orm-0.6.0.tgz","fileCount":36,"integrity":"sha512-RDq3KyM0VhKeTsHxwKd4uNc0+XrcsMAoY5n5nbsWfVrNtOzj5pjJNENIwS75zA27qzrQRNzn8mnafWTltIRY3A==","signatures":[{"sig":"MEYCIQDXX8jjjIppMtzmVuyq7y3gUodLZmsz50T+hMZWISUd9QIhAPzcE9IERRSxvR0Sw6lAutePfR0v+rQ1NaTJfvVgvqgd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHkzCQJIR3m31F495ot2Qa3PXItoY+JZ6nGC4dm727LUAiEA8Fgp7RYWvnLpL0vng9h3a0xZw2AQBwHrqY4npsvpbB0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dudousxd%2fnestjs-authz-mikro-orm@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103812},"main":"./dist/index.js","type":"module","_from":"file:dudousxd-nestjs-authz-mikro-orm-0.6.0.tgz","types":"./dist/index.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"test":"vitest run --passWithNoTests","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"9b7d0f70-5bf3-402a-bcfc-3f314e99c13e"}},"_resolved":"/tmp/62e2090cbc4bc80aba84fcf23ca24051/dudousxd-nestjs-authz-mikro-orm-0.6.0.tgz","_integrity":"sha512-RDq3KyM0VhKeTsHxwKd4uNc0+XrcsMAoY5n5nbsWfVrNtOzj5pjJNENIwS75zA27qzrQRNzn8mnafWTltIRY3A==","repository":{"url":"git+https://github.com/DavideCarvalho/nestjs-authz.git","type":"git","directory":"packages/mikro-orm"},"_npmVersion":"11.20.0","description":"MikroORM RBAC persistence for @dudousxd/nestjs-authz — roles, permissions, and a Gate seam (zero connection ownership).","directories":{},"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"rxjs":"7.8.2","vitest":"3.2.7","typescript":"5.9.3","@types/node":"20.19.43","@nestjs/core":"12.0.1","@nestjs/common":"12.0.1","@mikro-orm/core":"6.6.16","@nestjs/testing":"12.0.1","reflect-metadata":"0.2.2","@mikro-orm/nestjs":"6.1.2","@dudousxd/nestjs-authz":"^0.7.0","@mikro-orm/better-sqlite":"6.6.16"},"peerDependencies":{"@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0","@mikro-orm/core":"^6.0.0 || ^7.0.0","reflect-metadata":">=0.1.13","@mikro-orm/nestjs":"^5.0.0 || ^6.0.0 || ^7.0.0","@dudousxd/nestjs-authz":">=0.7.0"},"peerDependenciesMeta":{"@mikro-orm/nestjs":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nestjs-authz-mikro-orm_0.6.0_1790649492121_0.7593998111170845","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"_id":"@dudousxd/nestjs-authz-mikro-orm@0.7.0","bugs":{"url":"https://github.com/DavideCarvalho/nestjs-authz/issues"},"dist":{"shasum":"ff2e463caeddd3c049fb968ea63a31a0284149ac","tarball":"https://registry.npmjs.org/@dudousxd/nestjs-authz-mikro-orm/-/nestjs-authz-mikro-orm-0.7.0.tgz","fileCount":36,"integrity":"sha512-NQvNpOLhngd2SHLrdUIG9vagRrLOm0ADHadkInGYkt2raX82Fa3fGwfmAZin1LsQmx+bs/GskCh5XWH4rL4VOg==","signatures":[{"sig":"MEUCIFG4gWdMNF3rM40LALuCoQvmRDDKTk4gUtzTndRizqQZAiEAty4YHsZrXDnLrAXe5pQzQ9IA2J/UZcerSM7B/46rJ4w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDgZmMaNQVzzZsC51Caw350ITB4u0RtQAgGf5F/TYRG4wIgayXUW8NHUiLlODVvn6wlfM/IheZ3758gcEfVD/PHlLI="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dudousxd%2fnestjs-authz-mikro-orm@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":120913},"main":"./dist/index.js","name":"@dudousxd/nestjs-authz-mikro-orm","type":"module","_from":"file:dudousxd-nestjs-authz-mikro-orm-0.7.0.tgz","types":"./dist/index.d.ts","author":{"name":"Davi Carvalho","email":"davi@goflip.ai"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"license":"MIT","scripts":{"test":"vitest run --passWithNoTests","build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"version":"0.7.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"9b7d0f70-5bf3-402a-bcfc-3f314e99c13e"}},"homepage":"https://davidecarvalho.github.io/aviary/docs/authz","keywords":["nestjs","authorization","authz","rbac","roles","permissions","mikro-orm"],"_resolved":"/tmp/dd01d86886365660cd2f61b7070e50c3/dudousxd-nestjs-authz-mikro-orm-0.7.0.tgz","_integrity":"sha512-NQvNpOLhngd2SHLrdUIG9vagRrLOm0ADHadkInGYkt2raX82Fa3fGwfmAZin1LsQmx+bs/GskCh5XWH4rL4VOg==","repository":{"url":"git+https://github.com/DavideCarvalho/nestjs-authz.git","type":"git","directory":"packages/mikro-orm"},"_npmVersion":"11.20.0","description":"MikroORM RBAC persistence for @dudousxd/nestjs-authz — roles, permissions, and a Gate seam (zero connection ownership).","directories":{},"maintainers":[{"name":"dudousxd","email":"davi_carvalho96@hotmail.com"}],"_nodeVersion":"20.20.2","_hasShrinkwrap":false,"devDependencies":{"rxjs":"7.8.2","vitest":"3.2.7","typescript":"5.9.3","@types/node":"20.19.43","@nestjs/core":"12.0.1","@nestjs/common":"12.0.1","@mikro-orm/core":"6.6.16","@nestjs/testing":"12.0.1","reflect-metadata":"0.2.2","@mikro-orm/nestjs":"6.1.2","@dudousxd/nestjs-authz":"^0.8.0","@mikro-orm/better-sqlite":"6.6.16"},"peerDependencies":{"@nestjs/core":">=10.0.0","@nestjs/common":">=10.0.0","@mikro-orm/core":"^6.0.0 || ^7.0.0","reflect-metadata":">=0.1.13","@mikro-orm/nestjs":"^5.0.0 || ^6.0.0 || ^7.0.0","@dudousxd/nestjs-authz":">=0.8.0"},"peerDependenciesMeta":{"@mikro-orm/nestjs":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nestjs-authz-mikro-orm_0.7.0_1790683132168_0.2656058698564734"}}},"time":{"created":"2026-06-17T14:40:15.427Z","modified":"2026-09-29T11:58:52.630Z","0.2.0":"2026-06-17T14:40:15.852Z","0.3.0":"2026-06-18T15:40:47.008Z","0.3.1":"2026-06-19T19:48:37.000Z","0.4.0":"2026-06-22T22:45:13.462Z","0.5.0":"2026-08-25T15:29:19.243Z","0.5.1":"2026-08-29T15:33:20.340Z","0.6.0":"2026-09-29T02:38:12.225Z","0.7.0":"2026-09-29T11:58:52.269Z"},"bugs":{"url":"https://github.com/DavideCarvalho/nestjs-authz/issues"},"author":{"name":"Davi Carvalho","email":"davi@goflip.ai"},"license":"MIT","homepage":"https://davidecarvalho.github.io/aviary/docs/authz","keywords":["nestjs","authorization","authz","rbac","roles","permissions","mikro-orm"],"repository":{"url":"git+https://github.com/DavideCarvalho/nestjs-authz.git","type":"git","directory":"packages/mikro-orm"},"description":"MikroORM RBAC persistence for @dudousxd/nestjs-authz — roles, permissions, and a Gate seam (zero connection ownership).","maintainers":[{"name":"dudousxd","email":"davi_carvalho96@hotmail.com"}],"readme":"# @dudousxd/nestjs-authz-mikro-orm\n\nMikroORM RBAC persistence for [`@dudousxd/nestjs-authz`](https://github.com/DavideCarvalho/nestjs-authz) —\nroles, permissions, and a Gate seam, with **zero connection ownership** (your app owns the\n`EntityManager`; this package never opens a connection).\n\nThis is the MikroORM sibling of `@dudousxd/nestjs-authz-typeorm`: identical store surface\nand `AuthzRbacModule`, backed by MikroORM entities.\n\nWorks with **MikroORM 6 and 7** (peer `@mikro-orm/core` `^6 || ^7`). The entities are\ndefined with `EntitySchema` — the one definition style that lives entirely in\n`@mikro-orm/core` across both majors (v7 moved the `@Entity/@Property/...` decorators into a\nseparate `@mikro-orm/decorators` package), so no extra peer is required.\n\n## Install\n\n```bash\npnpm add @dudousxd/nestjs-authz-mikro-orm @dudousxd/nestjs-authz @mikro-orm/core @mikro-orm/nestjs\n```\n\n## Entities\n\nThe package ships four entities (referencing the user **by id only** — it never owns a\nusers table):\n\n- `RoleEntity` → `authz_roles`\n- `PermissionEntity` → `authz_permissions`\n- `RolePermissionEntity` → `authz_role_permission` (pivot)\n- `UserRoleEntity` → `authz_user_role` (pivot, keyed by `userType` + `userId`)\n\nRegister them with your ORM so MikroORM can discover them:\n\n```ts\nimport { AUTHZ_ENTITIES } from '@dudousxd/nestjs-authz-mikro-orm';\n\nawait MikroORM.init({ entities: [...AUTHZ_ENTITIES /* , your entities */] });\n```\n\n### BYO table names\n\nMikroORM resolves table names from entity metadata at discovery time. Build your own set of\nschemas with `createAuthzEntitySchemas` and register those instead:\n\n```ts\nimport { createAuthzEntitySchemas } from '@dudousxd/nestjs-authz-mikro-orm';\n\nconst authz = createAuthzEntitySchemas({ roles: 'app_roles', userRole: 'app_user_role' });\nawait MikroORM.init({ entities: [...authz.all /* , your entities */] });\n```\n\nAny subset of `roles` / `permissions` / `rolePermission` / `userRole` may be overridden; the\nrest keep their defaults. The factory carries the custom repository binding and derives the\nindex names from your table names, so nothing is lost by relocating the tables — hand-writing\n`new EntitySchema({ class: RoleEntity, tableName })` instead silently drops both. The store and\nthe schema helpers read the physical names back off the live metadata and never assume a\nliteral name.\n\n## Repositories\n\nEach entity is bound to a typed repository, so app code injects it by type rather than passing\nthe entity class to every `EntityManager` call:\n\n```ts\nimport { AUTHZ_ENTITY_CLASSES, AuthzRoleRepository } from '@dudousxd/nestjs-authz-mikro-orm';\nimport { MikroOrmModule } from '@mikro-orm/nestjs';\n\n@Module({\n  // forFeature matches on the entity CLASS — pass these, not the schemas.\n  imports: [MikroOrmModule.forFeature([...AUTHZ_ENTITY_CLASSES])],\n})\nexport class RolesModule {}\n\n@Injectable()\nexport class RolesService {\n  constructor(private readonly roles: AuthzRoleRepository) {}\n\n  findByName(name: string) {\n    return this.roles.findOne({ name });\n  }\n}\n```\n\nWithout `@mikro-orm/nestjs`, `em.getRepository(RoleEntity)` returns the same instance and is\ntyped as `AuthzRoleRepository`. The four classes are `AuthzRoleRepository`,\n`AuthzPermissionRepository`, `AuthzRolePermissionRepository` and `AuthzUserRoleRepository`;\ntheir bodies are empty — this package ships no query surface beyond `MikroOrmAuthzStore`.\n\n`MikroOrmAuthzStore` is unaffected — it still takes an `EntityManager` and owns no connection.\n\n## Usage\n\n```ts\nimport {\n  AuthzRbacModule,\n  MikroOrmAuthzStore,\n} from '@dudousxd/nestjs-authz-mikro-orm';\nimport { EntityManager } from '@mikro-orm/core';\n\n@Module({\n  imports: [\n    AuthzRbacModule.forRootAsync({\n      inject: [EntityManager],\n      useFactory: (em: EntityManager) => ({\n        store: new MikroOrmAuthzStore(em),\n        // autoCreateSchema defaults to true (non-destructive `updateSchema({ safe: true })`)\n      }),\n    }),\n  ],\n})\nexport class AppModule {}\n```\n\nOnce wired, the Gate consults persisted RBAC:\n\n```ts\nawait store.givePermissionToRole('editor', 'posts.publish');\nawait store.assignRole({ type: 'user', id: 7 }, 'editor');\n\ngate.forUser(user).allows('posts.publish'); // true (PERMISSION_PROVIDER seam)\ngate.forUser(user).hasRole('editor');       // true (ROLE_PROVIDER seam)\n```\n\n## Schema\n\n`autoCreateSchema` (default `true`) runs `ensureAuthzSchema` on `onModuleInit` via MikroORM's\nnative **`updateSchema({ safe: true })`** — it creates missing tables and ADDs missing columns,\nbut never drops/alters/renames existing ones, so it is safe to run on every boot.\n\nTo manage the schema with MikroORM migrations instead, set `autoCreateSchema: false` and use\nthe SQL helper:\n\n```ts\nimport { authzSchemaSql } from '@dudousxd/nestjs-authz-mikro-orm';\n\nexport class AddAuthz extends Migration {\n  async up() {\n    this.addSql(await authzSchemaSql(this.getEntityManager().getOrm()));\n  }\n}\n```\n\n## Role sources (manual vs SSO/SCIM)\n\nEvery role assignment records a `source`. It defaults to `'manual'`, so existing calls and existing\nrows keep their meaning. A sync replaces only its own source:\n\n```ts\n// On each SSO login: exactly these roles come from SSO. Manual grants are untouched.\nawait store.setUserRoles(user, rolesFromIdpGroups, { source: 'sso' });\n\nawait store.assignRole(user, 'editor');                      // source 'manual'\nawait store.assignRole(user, 'editor', { source: 'scim' });  // a second assignment of the same role\nawait store.removeRole(user, 'editor', { source: 'scim' });  // still an editor (manual)\nawait store.removeRole(user, 'editor');                      // no source: removed from every source\nawait store.getRoleAssignments(user); // [{ role, source, tenantId }]\n```\n\n`getRolesForUser` and the Gate seams see the distinct role names from all sources.\n\n### Migrating an existing database\n\n`ensureAuthzSchema` / `autoCreateSchema` add the `source` column to `authz_user_role`\n(`NOT NULL DEFAULT 'manual'`), so existing rows become manual assignments. They don't widen the\nprimary key. Until you widen it, a role can come from only one source per user: assigning it from\na second source fails with a duplicate-key error. Widen the key once:\n\n```sql\n-- PostgreSQL (default constraint name; check yours with \\d authz_user_role)\nALTER TABLE authz_user_role DROP CONSTRAINT authz_user_role_pkey,\n  ADD PRIMARY KEY (user_type, user_id, role_id, source);\n-- MySQL\nALTER TABLE authz_user_role DROP PRIMARY KEY, ADD PRIMARY KEY (user_type, user_id, role_id, source);\n-- SQLite: recreate the table with the 4-column key (SQLite cannot alter a primary key).\n```\n\n## Admin management\n\nOperations for an admin UI (role editor, member list, account deletion):\n\n```ts\n// Replace a role's permissions with exactly this set (spatie's syncPermissions). Creates missing\n// roles/permissions by name; the link swap is transactional.\nawait store.syncRolePermissions('editor', ['posts.view', 'posts.edit']);\n\n// Each role's permission names in one query. Existing roles are keys (even with no permissions);\n// roles that don't exist are absent.\nawait store.getRolePermissions(['editor', 'viewer']); // { editor: ['posts.edit', 'posts.view'], viewer: [] }\n\n// Delete a role, its permission links and every assignment of it (all sources). Returns false\n// when the role didn't exist. Permissions are kept.\nawait store.deleteRole('editor');\n\n// Raw assignment rows: { userType, userId, role, source, tenantId }[],\n// ordered by (userType, userId, role, source).\nawait store.listRoleAssignments({ role: ['admin', 'owner'], source: 'sso' });\nawait store.listRoleAssignments({ user: { type: 'user', id: 7 } });\n\n// Account deleted: drop every role assignment of the user (all sources).\nawait store.removeUser({ type: 'user', id: 7 });\n```\n\nThis adapter has no tenant-scoped assignments, so every row has `tenantId: null`:\n`listRoleAssignments({ tenantId: null })` lists everything and a tenant id string matches\nnothing.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}