{"_id":"@feedmepos/hrm-permission","_rev":"62-779d712232b3d0efad297fa7711972b8","name":"@feedmepos/hrm-permission","dist-tags":{"dev":"1.0.16-beta.0","latest":"1.2.0"},"versions":{"0.0.1-beta.2":{"name":"@feedmepos/hrm-permission","version":"0.0.1-beta.2","_id":"@feedmepos/hrm-permission@0.0.1-beta.2","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"a7f153b4c9f9676e190e0cb02a90913c3c3bf312","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-0.0.1-beta.2.tgz","fileCount":2,"integrity":"sha512-41UTYUMasl4YKzxVul4Hky64TH7cbsrcfWVEkjIn9Befuab5Ut1w332Geg9fTzqUrhyrkmWd3GGboRWx+a6XzA==","signatures":[{"sig":"MEUCIGRogfd3BuLWNYjRruEtnnyAymRDklwzK7cFTBYoA4tIAiEAi4Ylhwa+y15wjLtxSbi5D+nBesMjypYdr6Q2r0xpChk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23722},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"},"./utils/audit-log":{"types":"./dist/utils/audit-log.d.ts","import":"./dist/utils/audit-log.js","require":"./dist/utils/audit-log.cjs"}},"gitHead":"a6bc576f7b7d91a99136919d767df261a8c6eb0f","scripts":{"dev":"vite","build":"vite build","preview":"vite preview","build-only":"vite build","type-check":"vue-tsc --noEmit -p tsconfig.app.json"},"_npmUser":{"name":"lokingwei","email":"kingwei@feedme.cc"},"_npmVersion":"11.6.2","description":"Unified permission management package for FeedMe HRM system with both frontend (Vue) and backend (NestJS/standalone) support. Provides type-safe permission definitions, CASL-based validation, Vue components, a MongoDB-backed permission service, and ClickH","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"3.17.9","mongodb":"^4.17.2","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@clickhouse/client":"^1.17.0","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2","@clickhouse/client-web":"^1.17.0"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"components":["./dist/components/index.d.ts"],"utils/audit-log":["./dist/utils/audit-log.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.1.13","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_0.0.1-beta.2_1772433201284_0.6064710928861572","host":"s3://npm-registry-packages-npm-production"}},"0.0.1-beta.3":{"name":"@feedmepos/hrm-permission","version":"0.0.1-beta.3","_id":"@feedmepos/hrm-permission@0.0.1-beta.3","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"e0788023755bc0e130b4b0c8b7b1a750ca883e99","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-0.0.1-beta.3.tgz","fileCount":65,"integrity":"sha512-5EUQ0vF1/UfnzJ+1+eYkF2HWeii/ywaBeuQ+8roDcK9bBtx2kIZ1vitUFu4FhFRVSxY1LsFSFsQvKL3TGGL1EQ==","signatures":[{"sig":"MEQCIClDD2LJMZ7BcAVMZYUqLs/6eYL5t6LgLCRY6Uh74p6EAiByNL7PGvhC1hVg5xHJpT23KiY04jKpZCmiEzSe/9Ky4A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3674259},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-0.0.1-beta.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"},"./utils/audit-log":{"types":"./dist/utils/audit-log.d.ts","import":"./dist/utils/audit-log.js","require":"./dist/utils/audit-log.cjs"}},"scripts":{"dev":"vite","build":"vite build","preview":"vite preview","build-only":"vite build","type-check":"vue-tsc --noEmit -p tsconfig.app.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/be1abbb15c57dd4c4a037ec5dd6d9ff7/feedmepos-hrm-permission-0.0.1-beta.3.tgz","_integrity":"sha512-5EUQ0vF1/UfnzJ+1+eYkF2HWeii/ywaBeuQ+8roDcK9bBtx2kIZ1vitUFu4FhFRVSxY1LsFSFsQvKL3TGGL1EQ==","_npmVersion":"11.5.1","description":"Unified permission management package for FeedMe HRM system with both frontend (Vue) and backend (NestJS/standalone) support. Provides type-safe permission definitions, CASL-based validation, Vue components, a MongoDB-backed permission service, and ClickH","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"^4.17.2","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@clickhouse/client":"^1.17.0","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2","@clickhouse/client-web":"^1.17.0"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"components":["./dist/components/index.d.ts"],"utils/audit-log":["./dist/utils/audit-log.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.1.13","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_0.0.1-beta.3_1772434131977_0.6941453180524395","host":"s3://npm-registry-packages-npm-production"}},"0.0.1-dev":{"name":"@feedmepos/hrm-permission","version":"0.0.1-dev","_id":"@feedmepos/hrm-permission@0.0.1-dev","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"6a390661bcfd299f3600bb17ded43b22f3b9b99c","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-0.0.1-dev.tgz","fileCount":65,"integrity":"sha512-WRP9M8fYlbHAwpZjOoz1WzpXGQzRHjgDf9BDfFTzTA/ED/Quz8ghPzY9gkpH29ZrTuNnItsX0UL8kUrGsCjSGg==","signatures":[{"sig":"MEQCIDK7EfrP36FQhm3GVlJMAOy2QvZSxnNqZHYvMmX/Uzu4AiAptuTM0JV6TplHNG4rVFhHPdLjwSX/6l8NE/mh5E6peg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3674255},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-0.0.1-dev.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"},"./utils/audit-log":{"types":"./dist/utils/audit-log.d.ts","import":"./dist/utils/audit-log.js","require":"./dist/utils/audit-log.cjs"}},"scripts":{"dev":"vite","build":"vite build","preview":"vite preview","build-only":"vite build","type-check":"vue-tsc --noEmit -p tsconfig.app.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/a1d4065028d2ac7ebd32eaf83ab26d14/feedmepos-hrm-permission-0.0.1-dev.tgz","_integrity":"sha512-WRP9M8fYlbHAwpZjOoz1WzpXGQzRHjgDf9BDfFTzTA/ED/Quz8ghPzY9gkpH29ZrTuNnItsX0UL8kUrGsCjSGg==","_npmVersion":"11.5.1","description":"Unified permission management package for FeedMe HRM system with both frontend (Vue) and backend (NestJS/standalone) support. Provides type-safe permission definitions, CASL-based validation, Vue components, a MongoDB-backed permission service, and ClickH","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"^4.17.2","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@clickhouse/client":"^1.17.0","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2","@clickhouse/client-web":"^1.17.0"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"components":["./dist/components/index.d.ts"],"utils/audit-log":["./dist/utils/audit-log.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.1.13","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_0.0.1-dev_1772435616800_0.721623681784709","host":"s3://npm-registry-packages-npm-production"}},"0.0.2-dev":{"name":"@feedmepos/hrm-permission","version":"0.0.2-dev","_id":"@feedmepos/hrm-permission@0.0.2-dev","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"45666cd5430b246e469a041cdb906b3769c13854","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-0.0.2-dev.tgz","fileCount":69,"integrity":"sha512-Y3L8dxIJiuhh4ZH2ZG6sAXfWalf23x0aixN6dN35cazrguNrimrXOsYDPNuOFpGvXF/RC++A7k0iPK62eIfkDw==","signatures":[{"sig":"MEYCIQD1oL1b3sujYno44xcmS4JT63VnAT3yu8ioomOEQxGF2AIhAOJuvYGJGWINvCMJYLTp8kazGLmUGWJEA+kxDDHvsrLx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3681288},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-0.0.2-dev.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"},"./utils/audit-log":{"types":"./dist/utils/audit-log.d.ts","import":"./dist/utils/audit-log.js","require":"./dist/utils/audit-log.cjs"}},"scripts":{"dev":"vite","build":"vite build","preview":"vite preview","build-only":"vite build","type-check":"vue-tsc --noEmit -p tsconfig.app.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/9852ff930972215df393f18ff6d79fb5/feedmepos-hrm-permission-0.0.2-dev.tgz","_integrity":"sha512-Y3L8dxIJiuhh4ZH2ZG6sAXfWalf23x0aixN6dN35cazrguNrimrXOsYDPNuOFpGvXF/RC++A7k0iPK62eIfkDw==","_npmVersion":"11.5.1","description":"Unified permission management package for FeedMe HRM system with both frontend (Vue) and backend (NestJS/standalone) support. Provides type-safe permission definitions, CASL-based validation, Vue components, a MongoDB-backed permission service, and ClickH","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"^4.17.2","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@clickhouse/client":"^1.17.0","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2","@clickhouse/client-web":"^1.17.0"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"components":["./dist/components/index.d.ts"],"utils/audit-log":["./dist/utils/audit-log.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_0.0.2-dev_1772532222495_0.9556203748521537","host":"s3://npm-registry-packages-npm-production"}},"0.0.3-dev":{"name":"@feedmepos/hrm-permission","version":"0.0.3-dev","_id":"@feedmepos/hrm-permission@0.0.3-dev","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"5712268015556c9c62278f67b90cb5ac359dd17f","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-0.0.3-dev.tgz","fileCount":79,"integrity":"sha512-BX3zMp5aO/VwCA6q0d3lOfHbPHW+14WXmLS6qmemQHF2cl12nEczJtlPJvz39NK+6lsTqWQGFVQH+7ypuPXdFg==","signatures":[{"sig":"MEYCIQDMZsZ55vbLcGVtcqfP9oh3TkvVKR4fRfim5hyQMNd60gIhAJwMySaVf9Mk+bNgR1zHjKtAP0W18i5n2LluM7IF74L+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3680676},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-0.0.3-dev.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"},"./utils/audit-log":{"types":"./dist/utils/audit-log.d.ts","import":"./dist/utils/audit-log.js","require":"./dist/utils/audit-log.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/cbea56ff442d6e71386bbccc6b298ded/feedmepos-hrm-permission-0.0.3-dev.tgz","_integrity":"sha512-BX3zMp5aO/VwCA6q0d3lOfHbPHW+14WXmLS6qmemQHF2cl12nEczJtlPJvz39NK+6lsTqWQGFVQH+7ypuPXdFg==","_npmVersion":"11.5.1","description":"Unified permission management package for FeedMe HRM system with both frontend (Vue) and backend (NestJS/standalone) support. Provides type-safe permission definitions, CASL-based validation, Vue components, a MongoDB-backed permission service, and ClickH","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"^4.17.2","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@clickhouse/client":"^1.17.0","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2","@clickhouse/client-web":"^1.17.0"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"components":["./dist/components/index.d.ts"],"utils/audit-log":["./dist/utils/audit-log.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_0.0.3-dev_1772694502128_0.542451461623396","host":"s3://npm-registry-packages-npm-production"}},"0.0.4-dev":{"name":"@feedmepos/hrm-permission","version":"0.0.4-dev","_id":"@feedmepos/hrm-permission@0.0.4-dev","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"4f4b12fe42071369da57754fd5696060379238e0","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-0.0.4-dev.tgz","fileCount":79,"integrity":"sha512-dRe0MMdkshd5MiEQkigt/sfig6CLbj7yLL3IS+HgcYrLfmr+MPZDWBpjziZTI3XHlK1UArq6RqzwFNjdJ0eVBg==","signatures":[{"sig":"MEUCICBYrAxapBicbuCAMYGpbWgYdzkHtcY8xyXMa4KkPs8hAiEAoaz+IoOaEUnTiufCnWKfamH8r9hWlKG7Hyz8ganjfa4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3681295},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-0.0.4-dev.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"},"./utils/audit-log":{"types":"./dist/utils/audit-log.d.ts","import":"./dist/utils/audit-log.js","require":"./dist/utils/audit-log.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/407cd7163356e78fdade81fbf42cc689/feedmepos-hrm-permission-0.0.4-dev.tgz","_integrity":"sha512-dRe0MMdkshd5MiEQkigt/sfig6CLbj7yLL3IS+HgcYrLfmr+MPZDWBpjziZTI3XHlK1UArq6RqzwFNjdJ0eVBg==","_npmVersion":"11.5.1","description":"Unified permission management package for FeedMe HRM system with both frontend (Vue) and backend (NestJS/standalone) support. Provides type-safe permission definitions, CASL-based validation, Vue components, a MongoDB-backed permission service, and ClickH","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"^4.17.2","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@clickhouse/client":"^1.17.0","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2","@clickhouse/client-web":"^1.17.0"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"components":["./dist/components/index.d.ts"],"utils/audit-log":["./dist/utils/audit-log.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_0.0.4-dev_1772699058518_0.7960419409940851","host":"s3://npm-registry-packages-npm-production"}},"0.0.4-dev.1":{"name":"@feedmepos/hrm-permission","version":"0.0.4-dev.1","_id":"@feedmepos/hrm-permission@0.0.4-dev.1","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"3b0140613b80f764bcaa1d3401bd34f669088d6d","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-0.0.4-dev.1.tgz","fileCount":79,"integrity":"sha512-ayBmTxQ40BjUAxsXzifCel0o73MhMdYczqmmo+aFdtYIomycHYZqEACV8sSQL9HPtFgXHFgJ8cWWIacir2VuAA==","signatures":[{"sig":"MEYCIQD4+SNemf+bmHmeW4yZddz/2JtUbKh/uv+yNHK6+0W5WgIhAMrqhKZGa2YSePcTr7S9f3wsO5p0A3qaFsYqxhr7yw6P","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3681301},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-0.0.4-dev.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"},"./utils/audit-log":{"types":"./dist/utils/audit-log.d.ts","import":"./dist/utils/audit-log.js","require":"./dist/utils/audit-log.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/d1a3c224aa488763a2884746c153ae34/feedmepos-hrm-permission-0.0.4-dev.1.tgz","_integrity":"sha512-ayBmTxQ40BjUAxsXzifCel0o73MhMdYczqmmo+aFdtYIomycHYZqEACV8sSQL9HPtFgXHFgJ8cWWIacir2VuAA==","_npmVersion":"11.5.1","description":"Unified permission management package for FeedMe HRM system with both frontend (Vue) and backend (NestJS/standalone) support. Provides type-safe permission definitions, CASL-based validation, Vue components, a MongoDB-backed permission service, and ClickH","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"^4.4.1","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@clickhouse/client":"^1.17.0","@feedmepos/zod-repo":"1.1.0-rc.4","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2","@clickhouse/client-web":"^1.17.0"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"components":["./dist/components/index.d.ts"],"utils/audit-log":["./dist/utils/audit-log.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_0.0.4-dev.1_1772771137637_0.41663201691261853","host":"s3://npm-registry-packages-npm-production"}},"0.0.4-dev.2":{"name":"@feedmepos/hrm-permission","version":"0.0.4-dev.2","_id":"@feedmepos/hrm-permission@0.0.4-dev.2","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"175cc0340ffd16605bd6cd94e8ff041b558f2763","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-0.0.4-dev.2.tgz","fileCount":80,"integrity":"sha512-OUvNAqaXAX1tjRxnaFPsNUdLYQPX7XJgn/uRuL5+uDrCVYwBNRDUsKaTfx+ur0+kEdl5BsexOpFyP2eXDS6A0g==","signatures":[{"sig":"MEUCIQCTqgGfswpzuhf5o0naYAdwg6LV7hjFbYL4J7cRBgGsdAIgXWIExYQjTdEozDetp9R86PDLRkQ46fk5G2f8RsxwxsQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3681654},"main":"./dist/app.cjs","type":"module","_from":"file:feedmepos-hrm-permission-0.0.4-dev.2.tgz","types":"./dist/app.d.ts","module":"./dist/app.js","exports":{".":{"types":"./dist/app.d.ts","import":"./dist/app.js","require":"./dist/app.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"},"./utils/audit-log":{"types":"./dist/utils/audit-log.d.ts","import":"./dist/utils/audit-log.js","require":"./dist/utils/audit-log.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/893b78a97616b13a4c36fef6812cd519/feedmepos-hrm-permission-0.0.4-dev.2.tgz","_integrity":"sha512-OUvNAqaXAX1tjRxnaFPsNUdLYQPX7XJgn/uRuL5+uDrCVYwBNRDUsKaTfx+ur0+kEdl5BsexOpFyP2eXDS6A0g==","_npmVersion":"11.5.1","description":"Unified permission management package for FeedMe HRM system with both frontend (Vue) and backend (NestJS/standalone) support. Provides type-safe permission definitions, CASL-based validation, Vue components, a MongoDB-backed permission service, and ClickH","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@clickhouse/client":"^1.17.0","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2","@clickhouse/client-web":"^1.17.0"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"components":["./dist/components/index.d.ts"],"utils/audit-log":["./dist/utils/audit-log.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_0.0.4-dev.2_1773158065448_0.15872962265196033","host":"s3://npm-registry-packages-npm-production"}},"0.0.4-dev.3":{"name":"@feedmepos/hrm-permission","version":"0.0.4-dev.3","_id":"@feedmepos/hrm-permission@0.0.4-dev.3","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"84db74f63c30feb2b7129b59b9db1a9ac3142059","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-0.0.4-dev.3.tgz","fileCount":81,"integrity":"sha512-ZWbbP1pQ5aSlxyHdoa2uiqFSmrcxVaaEkvSBRwpBazkd+SNqdu8YYH+a2Xrrr7WYjsVA0cgUdJAsri1EDFTNaw==","signatures":[{"sig":"MEYCIQDS5luRMX4SKsGy//Sm4+PJc3B0KuRMr1BWi9WiF69j2AIhAMPmMKBz8KBlssqub+iktJWXCBKa4trV90uEqZm6nhQp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3682761},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-0.0.4-dev.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/3379104d099d48726699060a7a99504a/feedmepos-hrm-permission-0.0.4-dev.3.tgz","_integrity":"sha512-ZWbbP1pQ5aSlxyHdoa2uiqFSmrcxVaaEkvSBRwpBazkd+SNqdu8YYH+a2Xrrr7WYjsVA0cgUdJAsri1EDFTNaw==","_npmVersion":"11.5.1","description":"Unified permission management package for FeedMe HRM system with both frontend (Vue) and backend (NestJS/standalone) support. Provides type-safe permission definitions, CASL-based validation, Vue components, a MongoDB-backed permission service, and ClickH","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@clickhouse/client":"^1.17.0","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2","@clickhouse/client-web":"^1.17.0"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_0.0.4-dev.3_1773225958018_0.2114185475618624","host":"s3://npm-registry-packages-npm-production"}},"0.0.4-dev.4":{"name":"@feedmepos/hrm-permission","version":"0.0.4-dev.4","_id":"@feedmepos/hrm-permission@0.0.4-dev.4","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"7f2d8a473ab70f86a7b783488ce5b106c028380c","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-0.0.4-dev.4.tgz","fileCount":87,"integrity":"sha512-iRSvgdkSYuxlcvW6yR9l/z5LmMaJkCLZlSE1X+m4upGCXOOlRAsbCTLe3tlqED/sT7odad05W4ju4U7xaWRcdA==","signatures":[{"sig":"MEQCIF+YlA1lLLS0B1oVGYMzRMEFY0ncwaZFEKfEdp0tJLfvAiAdovDLVUyy6LQz5QE4eDA9XNRVDdrFga7BGGT6NH1pRA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3713892},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-0.0.4-dev.4.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/0864a42ca4c9489675779016ef660f1e/feedmepos-hrm-permission-0.0.4-dev.4.tgz","_integrity":"sha512-iRSvgdkSYuxlcvW6yR9l/z5LmMaJkCLZlSE1X+m4upGCXOOlRAsbCTLe3tlqED/sT7odad05W4ju4U7xaWRcdA==","_npmVersion":"11.5.1","description":"Unified permission management package for FeedMe HRM system with both frontend (Vue) and backend (NestJS/standalone) support. Provides type-safe permission definitions, CASL-based validation, Vue components, a MongoDB-backed permission service, and ClickH","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@casl/ability":"^3.2.0","@grpc/grpc-js":"^1.12.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@grpc/proto-loader":"^0.7.0","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_0.0.4-dev.4_1773917469335_0.47104017364974804","host":"s3://npm-registry-packages-npm-production"}},"0.0.4-dev.5":{"name":"@feedmepos/hrm-permission","version":"0.0.4-dev.5","_id":"@feedmepos/hrm-permission@0.0.4-dev.5","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"97a7e406ae65464a5a5d706686a80fbf42193e62","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-0.0.4-dev.5.tgz","fileCount":87,"integrity":"sha512-raWZfCoQUEU8MgEwnH3hN9Psnl13kd4tzpFV0hq2Fy/g+gSo25ABuo0/wvQeZ+cohjvtwjGiXzY+IuvYGJf11g==","signatures":[{"sig":"MEUCIQDlQHONDA+M+4C64XE4mb4WNBVyMnabpJPC8Qs0tuGRVgIgEOkAoDjxL+DkOPJF59lhpHa0eIUEFam5MNTWBdGdE1s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3713892},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-0.0.4-dev.5.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/af2eb4b70427d55acca3b5ddeb93d630/feedmepos-hrm-permission-0.0.4-dev.5.tgz","_integrity":"sha512-raWZfCoQUEU8MgEwnH3hN9Psnl13kd4tzpFV0hq2Fy/g+gSo25ABuo0/wvQeZ+cohjvtwjGiXzY+IuvYGJf11g==","_npmVersion":"11.5.1","description":"Unified permission management package for FeedMe HRM system with both frontend (Vue) and backend (NestJS/standalone) support. Provides type-safe permission definitions, CASL-based validation, Vue components, a MongoDB-backed permission service, and ClickH","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@casl/ability":"^3.2.0","@grpc/grpc-js":"^1.12.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@grpc/proto-loader":"^0.7.0","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_0.0.4-dev.5_1773918338787_0.6481422901954512","host":"s3://npm-registry-packages-npm-production"}},"0.0.4-dev.6":{"name":"@feedmepos/hrm-permission","version":"0.0.4-dev.6","_id":"@feedmepos/hrm-permission@0.0.4-dev.6","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"8ae6198082ea5d2ffe35ca7a55b7c08b5248ae0f","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-0.0.4-dev.6.tgz","fileCount":97,"integrity":"sha512-8An1xhZFWava6M5Sl3/YmaiTF2l41me1m7oIUv0ssXDIoYDqaH/bMY4h5YgBfly+Sm2OEYnQ+Rfz+HgY1LmjGQ==","signatures":[{"sig":"MEUCIQCZLShXnSCk7nlyrC0pPK6YhV09+C0n7mBWZ98yW245+AIgSJMBZipcjRJbbyJj6J7HDGaqjEK5zHgsmcz8GXXWxg0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3752355},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-0.0.4-dev.6.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/0b66220b0d43677bb13b270ae1f37933/feedmepos-hrm-permission-0.0.4-dev.6.tgz","_integrity":"sha512-8An1xhZFWava6M5Sl3/YmaiTF2l41me1m7oIUv0ssXDIoYDqaH/bMY4h5YgBfly+Sm2OEYnQ+Rfz+HgY1LmjGQ==","_npmVersion":"11.5.1","description":"Unified permission management package for FeedMe HRM system with both frontend (Vue) and backend (NestJS/standalone) support. Provides type-safe permission definitions, CASL-based validation, Vue components, a MongoDB-backed permission service, and ClickH","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@casl/ability":"^3.2.0","@grpc/grpc-js":"^1.12.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@grpc/proto-loader":"^0.7.0","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_0.0.4-dev.6_1774267819528_0.2818169670922439","host":"s3://npm-registry-packages-npm-production"}},"0.0.4-dev.7":{"name":"@feedmepos/hrm-permission","version":"0.0.4-dev.7","_id":"@feedmepos/hrm-permission@0.0.4-dev.7","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"d9126dcba0f12bf79ecc3917d4781bcabb24c0d5","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-0.0.4-dev.7.tgz","fileCount":97,"integrity":"sha512-eK3uoAtLlZ0q7/y2664kSSV2rBXFtwWxMc8nxfpE8bypRMLLdo43EJ2WsJWWfWr9p3BnpwYra736YRcgK96IFw==","signatures":[{"sig":"MEYCIQCQ1QMt5/e/tonxNM8Zx+uEnVsrArxLrct831YGn7TrPAIhAP6tVRGgg7Y7X1Ecp+48emGDEyx+ddYSUbuP87siRen9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3748885},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-0.0.4-dev.7.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/8b38c3687190a5e771617ab0b14a83af/feedmepos-hrm-permission-0.0.4-dev.7.tgz","_integrity":"sha512-eK3uoAtLlZ0q7/y2664kSSV2rBXFtwWxMc8nxfpE8bypRMLLdo43EJ2WsJWWfWr9p3BnpwYra736YRcgK96IFw==","_npmVersion":"11.5.1","description":"Unified permission management package for FeedMe HRM system with both frontend (Vue) and backend (NestJS/standalone) support. Provides type-safe permission definitions, CASL-based validation, Vue components, a MongoDB-backed permission service, and ClickH","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@casl/ability":"^3.2.0","@grpc/grpc-js":"^1.12.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@grpc/proto-loader":"^0.7.0","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_0.0.4-dev.7_1774336451257_0.8251015035064764","host":"s3://npm-registry-packages-npm-production"}},"0.0.4-dev.8":{"name":"@feedmepos/hrm-permission","version":"0.0.4-dev.8","_id":"@feedmepos/hrm-permission@0.0.4-dev.8","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"ecaf97e3adce6709c7c2ca40bc39da57fa52da13","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-0.0.4-dev.8.tgz","fileCount":87,"integrity":"sha512-pTLuMzEg5epHvRe00ZDFOsbrfzlqU/tyHgbeECY2qUFsW7gvXHLojcohaMYuurNLVC/fuRLczAUdnGEoVvtnzw==","signatures":[{"sig":"MEUCIQDEQHBScnBEat8vX5AKC3OgAYRFRTJH/16vfc40av+glgIgKgAq5AlodDhQqxpFnG5MQERjRiOhAim6AKkxt0DylyA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3710065},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-0.0.4-dev.8.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/d894a4203b6ea014817e08ff7cdfcd3d/feedmepos-hrm-permission-0.0.4-dev.8.tgz","_integrity":"sha512-pTLuMzEg5epHvRe00ZDFOsbrfzlqU/tyHgbeECY2qUFsW7gvXHLojcohaMYuurNLVC/fuRLczAUdnGEoVvtnzw==","_npmVersion":"11.5.1","description":"Unified permission management package for FeedMe HRM system with both frontend (Vue) and backend (NestJS/standalone) support. Provides type-safe permission definitions, CASL-based validation, Vue components, a MongoDB-backed permission service, and ClickH","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@casl/ability":"^3.2.0","@grpc/grpc-js":"^1.12.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@grpc/proto-loader":"^0.7.0","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_0.0.4-dev.8_1774339484328_0.6378423968959432","host":"s3://npm-registry-packages-npm-production"}},"0.0.4-dev.9":{"name":"@feedmepos/hrm-permission","version":"0.0.4-dev.9","_id":"@feedmepos/hrm-permission@0.0.4-dev.9","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"8cb04635a9bc4215f75a6b810315282f4e428120","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-0.0.4-dev.9.tgz","fileCount":103,"integrity":"sha512-TMr5ociOEM88QlN+f7CYTTRb57n25yFSG//q5DHYqqI/7lY3R91FWpAbL4zj11K+K0t2EgwEi24vOhsj2vJpHA==","signatures":[{"sig":"MEQCIAt/qeUZyA56sehaMg6PtZOEjHzrRFTWVauzIPWquSj/AiBFflJnKN6BGZhTTsAGVitErqcwjZvYQg3rXwxDmym9FA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3754783},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-0.0.4-dev.9.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/483213c7833788054abd9b902d8323e0/feedmepos-hrm-permission-0.0.4-dev.9.tgz","_integrity":"sha512-TMr5ociOEM88QlN+f7CYTTRb57n25yFSG//q5DHYqqI/7lY3R91FWpAbL4zj11K+K0t2EgwEi24vOhsj2vJpHA==","_npmVersion":"11.5.1","description":"Unified permission management package for FeedMe HRM system with both frontend (Vue) and backend (NestJS/standalone) support. Provides type-safe permission definitions, CASL-based validation, Vue components, a MongoDB-backed permission service, and ClickH","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@casl/ability":"^3.2.0","@grpc/grpc-js":"^1.12.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@grpc/proto-loader":"^0.7.0","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_0.0.4-dev.9_1774840738067_0.6687219687936841","host":"s3://npm-registry-packages-npm-production"}},"0.0.4-dev.10":{"name":"@feedmepos/hrm-permission","version":"0.0.4-dev.10","_id":"@feedmepos/hrm-permission@0.0.4-dev.10","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"b155eca612ee6cda0041e20cbc68a95641d933eb","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-0.0.4-dev.10.tgz","fileCount":103,"integrity":"sha512-MwNLcW93RHs3/LdSyFNqwxFT8P6v9k9t9oteArnhhFHocsumiQc8+lfImv/TxFN0AppiAWCkCHcIb4RJWzZZkw==","signatures":[{"sig":"MEUCICPcJImMcJ23VZWOe/YpNVFqdZmL52Pv/daCu3fJtZQ9AiEA76LaOSdjlslUINCnPTauLen+AaXOaFqFP/cWSAKBoDo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3755192},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-0.0.4-dev.10.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/d349b4d03d5f30a534a3a56790d21f95/feedmepos-hrm-permission-0.0.4-dev.10.tgz","_integrity":"sha512-MwNLcW93RHs3/LdSyFNqwxFT8P6v9k9t9oteArnhhFHocsumiQc8+lfImv/TxFN0AppiAWCkCHcIb4RJWzZZkw==","_npmVersion":"11.5.1","description":"Unified permission management package for FeedMe HRM system with both frontend (Vue) and backend (NestJS/standalone) support. Provides type-safe permission definitions, CASL-based validation, Vue components, a MongoDB-backed permission service, and ClickH","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@casl/ability":"^3.2.0","@grpc/grpc-js":"^1.12.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@grpc/proto-loader":"^0.7.0","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_0.0.4-dev.10_1774882600842_0.7870993996533122","host":"s3://npm-registry-packages-npm-production"}},"0.0.4-dev.11":{"name":"@feedmepos/hrm-permission","version":"0.0.4-dev.11","_id":"@feedmepos/hrm-permission@0.0.4-dev.11","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"2bc19dcec1ddadd425eff41826227fd61475f415","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-0.0.4-dev.11.tgz","fileCount":103,"integrity":"sha512-8BhGhW+CTx8ehzb7Uu3MK5b42xw9lUaUgoDo8bj/0yGDGlsi1yS22XMprJ1e/85FyNK/pogby9VMUB6S++Yjgg==","signatures":[{"sig":"MEYCIQC1CUrYEY9SEbpHYt/AjoGD0EqO60VJ2lOBG1A04qKbYQIhAMAAi1SKrBAVFwawwu7Tfy0ora2TWMG2ddmS5/D0GYrQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3755434},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-0.0.4-dev.11.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/96dd609b617a2b5462947fecaf245985/feedmepos-hrm-permission-0.0.4-dev.11.tgz","_integrity":"sha512-8BhGhW+CTx8ehzb7Uu3MK5b42xw9lUaUgoDo8bj/0yGDGlsi1yS22XMprJ1e/85FyNK/pogby9VMUB6S++Yjgg==","_npmVersion":"11.5.1","description":"Unified permission management package for FeedMe HRM system with both frontend (Vue) and backend (NestJS/standalone) support. Provides type-safe permission definitions, CASL-based validation, Vue components, a MongoDB-backed permission service, and ClickH","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@casl/ability":"^3.2.0","@grpc/grpc-js":"^1.12.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@grpc/proto-loader":"^0.7.0","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_0.0.4-dev.11_1774947707383_0.6965765830550963","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@feedmepos/hrm-permission","version":"1.0.0","_id":"@feedmepos/hrm-permission@1.0.0","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"225870766047dc408407e457437e4ca2d137d6a4","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.0.tgz","fileCount":103,"integrity":"sha512-ESpTIJra62Un5vwS6auwzVD1CBhbRJFF+Hyxj2KIx2nyx2c3XvYyFdIaxDVflbS12k3CXibNGIFEPo1cD/N0rg==","signatures":[{"sig":"MEUCIBue5EBypj1/Z0/13cZx9A//DC0iORNd1Q8xmL4U/ulsAiEAvXqVTdlCaxOeLr7YxdAL4TImaRb7Mckissw2pGGpVEw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3755427},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/65935b874ede62fe7964f656c5e431f3/feedmepos-hrm-permission-1.0.0.tgz","_integrity":"sha512-ESpTIJra62Un5vwS6auwzVD1CBhbRJFF+Hyxj2KIx2nyx2c3XvYyFdIaxDVflbS12k3CXibNGIFEPo1cD/N0rg==","_npmVersion":"11.5.1","description":"Unified permission management package for FeedMe HRM system with both frontend (Vue) and backend (NestJS/standalone) support. Provides type-safe permission definitions, CASL-based validation, Vue components, a MongoDB-backed permission service, and ClickH","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@casl/ability":"^3.2.0","@grpc/grpc-js":"^1.12.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@grpc/proto-loader":"^0.7.0","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.0_1775032236903_0.7281448518090523","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@feedmepos/hrm-permission","version":"1.0.1","_id":"@feedmepos/hrm-permission@1.0.1","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"7c42979d24de4e28b55533d7a7036b0b44c81f42","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.1.tgz","fileCount":101,"integrity":"sha512-+z5mGif/EvcXEXSfI8H2Xb07bdIRLOMcMwhvmQoXy0Lmf9MkQUr9TBrIynrl/QzaA20cQyn1agcKXFIbt/DPuw==","signatures":[{"sig":"MEUCIQCDqUwuvPT7/+nCE8UqtwwFY6ewnrwqKfskcm7p7zAHBQIgbhENc0hiHGs8W5k5PshkeOqYV6RvYUaz/eMb9buvg9E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3758506},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/1b856ed779a7e80e30e7c8046ce41b08/feedmepos-hrm-permission-1.0.1.tgz","_integrity":"sha512-+z5mGif/EvcXEXSfI8H2Xb07bdIRLOMcMwhvmQoXy0Lmf9MkQUr9TBrIynrl/QzaA20cQyn1agcKXFIbt/DPuw==","_npmVersion":"11.5.1","description":"Unified permission management package for FeedMe HRM system with both frontend (Vue) and backend (NestJS/standalone) support. Provides type-safe permission definitions, CASL-based validation, Vue components, a MongoDB-backed permission service, and ClickH","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@casl/ability":"^3.2.0","@grpc/grpc-js":"^1.12.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@grpc/proto-loader":"^0.7.0","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.1_1775188833664_0.22992515496739596","host":"s3://npm-registry-packages-npm-production"}},"1.0.2-dev":{"name":"@feedmepos/hrm-permission","version":"1.0.2-dev","_id":"@feedmepos/hrm-permission@1.0.2-dev","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"c0ccc2c867aa055d653f3b77a666275c3efc5cd7","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.2-dev.tgz","fileCount":101,"integrity":"sha512-t1Be2Gb80yzHt6NTMJfnF4uh+rUwn4CiPLrSyoPBgzYZwK41Amq1OKzRiCWq19BLQWz2F9UIw4bHz1tt/eBXhQ==","signatures":[{"sig":"MEUCIAl+LVtA+chgVvHZbYXqPkYv9exkS5rlKytCeE9PD8eAAiEArP+lEe51cuQMcMgr2cRKQa+lrG64mLYgebVqly1UCtI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3771381},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.2-dev.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/c9ec3710f5d5256e007887fad3b965f6/feedmepos-hrm-permission-1.0.2-dev.tgz","_integrity":"sha512-t1Be2Gb80yzHt6NTMJfnF4uh+rUwn4CiPLrSyoPBgzYZwK41Amq1OKzRiCWq19BLQWz2F9UIw4bHz1tt/eBXhQ==","_npmVersion":"11.5.1","description":"Unified permission management package for FeedMe HRM system with both frontend (Vue) and backend (NestJS/standalone) support. Provides type-safe permission definitions, CASL-based validation, Vue components, a MongoDB-backed permission service, and ClickH","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@casl/ability":"^3.2.0","@grpc/grpc-js":"^1.12.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@grpc/proto-loader":"^0.7.0","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.2-dev_1776240739932_0.297765183926884","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@feedmepos/hrm-permission","version":"1.0.2","_id":"@feedmepos/hrm-permission@1.0.2","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"ac9b501b24e6219fc8a2ed615811924d72e70fba","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.2.tgz","fileCount":101,"integrity":"sha512-onYafxRsKILXvSdgBLGvjbBJ+nBr9QUoKgl8FU0VvqsckaN/rcDU+bQTAmwGUPODYwqyNjDVbLTV7RQmNF+YwA==","signatures":[{"sig":"MEQCIBbqhVikBnwxgKqKk2tGNtFQaq54LTq/mon0wgbg0A6vAiAHOuKfUMeUF8iIEXuocxnciNvB9G5b8sSBtzviKB3x8Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3763702},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/18a8c2e2bee723025df74ed35da40818/feedmepos-hrm-permission-1.0.2.tgz","_integrity":"sha512-onYafxRsKILXvSdgBLGvjbBJ+nBr9QUoKgl8FU0VvqsckaN/rcDU+bQTAmwGUPODYwqyNjDVbLTV7RQmNF+YwA==","_npmVersion":"11.5.1","description":"Unified permission management package for FeedMe HRM system with both frontend (Vue) and backend (NestJS/standalone) support. Provides type-safe permission definitions, CASL-based validation, Vue components, a MongoDB-backed permission service, and ClickH","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@casl/ability":"^3.2.0","@grpc/grpc-js":"^1.12.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@grpc/proto-loader":"^0.7.0","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.2_1776321210240_0.12204395448103922","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@feedmepos/hrm-permission","version":"1.0.3","_id":"@feedmepos/hrm-permission@1.0.3","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"fd8accece174c52c24a3b59c1ab0326b0756cb69","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.3.tgz","fileCount":105,"integrity":"sha512-EaEDHeFN5Jo1VCSMyQCU6h3VeNd4Q48/aC1gW7Z9BOhWXYrrqa+X3oRO3Hu8gOIhL6lK5nFiZS/kuZM/q3ZVnA==","signatures":[{"sig":"MEUCIQDBuaCL6YF1d2SkCPu3yl3mHlgl+ywkLbkdpkd9jukfXwIgMuDJ2gT0t/32XWzHtduz1Rb7/VRD3PrVx1JC+7/Wkqk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3765104},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/e0b17071519df67b130506420581dfac/feedmepos-hrm-permission-1.0.3.tgz","_integrity":"sha512-EaEDHeFN5Jo1VCSMyQCU6h3VeNd4Q48/aC1gW7Z9BOhWXYrrqa+X3oRO3Hu8gOIhL6lK5nFiZS/kuZM/q3ZVnA==","_npmVersion":"11.5.1","description":"Unified permission management package for FeedMe HRM system with both frontend (Vue) and backend (NestJS/standalone) support. Provides type-safe permission definitions, CASL-based validation, Vue components, a MongoDB-backed permission service, and ClickH","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@grpc/grpc-js":"^1.12.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@grpc/proto-loader":"^0.7.0","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.3_1776408904578_0.1222780360530964","host":"s3://npm-registry-packages-npm-production"}},"1.0.4-dev.1":{"name":"@feedmepos/hrm-permission","version":"1.0.4-dev.1","_id":"@feedmepos/hrm-permission@1.0.4-dev.1","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"1354909fef7c19f3837ffa09b21d6cef0db77120","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.4-dev.1.tgz","fileCount":105,"integrity":"sha512-ioV1OdcGPmzmScqDC5IxI3nCpR5Fl1wkAsiVx2RNzAxahGPjdHThZ6VLYWvXc0SZf0IFPuhWYcnYjT7InFGO3Q==","signatures":[{"sig":"MEQCIF8FbB9oCc6hiwaOoVABVzY5y2K4aiDX4ZKLamuoWV/UAiADWJZfQXszF0eUJ+Ncg7lTAL+c+CPtPmeJgP+iJlWD+A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3765665},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.4-dev.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/30f123e3ed62c4168526e75f00898a8e/feedmepos-hrm-permission-1.0.4-dev.1.tgz","_integrity":"sha512-ioV1OdcGPmzmScqDC5IxI3nCpR5Fl1wkAsiVx2RNzAxahGPjdHThZ6VLYWvXc0SZf0IFPuhWYcnYjT7InFGO3Q==","_npmVersion":"11.5.1","description":"Unified permission management package for FeedMe HRM system with both frontend (Vue) and backend (NestJS/standalone) support. Provides type-safe permission definitions, CASL-based validation, Vue components, a MongoDB-backed permission service, and ClickH","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@grpc/grpc-js":"^1.12.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@grpc/proto-loader":"^0.7.0","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.4-dev.1_1776656365150_0.3844615450326647","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@feedmepos/hrm-permission","version":"1.0.4","_id":"@feedmepos/hrm-permission@1.0.4","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"f59048917ae602da0b64e9283840c5c2660dec1f","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.4.tgz","fileCount":105,"integrity":"sha512-vfPJe8I21XbGcHw4NGHlMkMepnb55JUiCi+98WJ8nuEzw2jUHk/7uchaYsUZ7oZNpw15Fh/vjPD5JABIp5vQZQ==","signatures":[{"sig":"MEQCIDF9zRxVmz4KACrEBUGtWHsDUoAanTos6aoPUC0pwbCtAiBtJFARjMtkVzYbEg9p1sAemJwtH+sRug8xEiqEYp6C5g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3765657},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.4.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/f7e9af68c5ff9331abe902404e0acded/feedmepos-hrm-permission-1.0.4.tgz","_integrity":"sha512-vfPJe8I21XbGcHw4NGHlMkMepnb55JUiCi+98WJ8nuEzw2jUHk/7uchaYsUZ7oZNpw15Fh/vjPD5JABIp5vQZQ==","_npmVersion":"11.5.1","description":"Unified permission management package for FeedMe HRM system with both frontend (Vue) and backend (NestJS/standalone) support. Provides type-safe permission definitions, CASL-based validation, Vue components, a MongoDB-backed permission service, and ClickH","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@grpc/grpc-js":"^1.12.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@grpc/proto-loader":"^0.7.0","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.4_1776668984736_0.570996037292584","host":"s3://npm-registry-packages-npm-production"}},"1.0.5-dev.1":{"name":"@feedmepos/hrm-permission","version":"1.0.5-dev.1","_id":"@feedmepos/hrm-permission@1.0.5-dev.1","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"213c0c5f4ffd8d60026fa44f23033731370ed45a","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.5-dev.1.tgz","fileCount":105,"integrity":"sha512-lRf5u7kZxkQ795NOh90DsMsK0btnubShPyjDUBIXvXFKhPyNgBPf+9pULD4CCsLa+5rypJUG+RditTY57BH7zA==","signatures":[{"sig":"MEYCIQC0McyfpD1cguW/yFdn6/wRzM80g45IETr8D51iaR8XNAIhAL3fJclhCAytJKJ+4E6yt0JnXWxMM8Qw2Bd93YXFNw2U","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3751114},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.5-dev.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/980afbc3aa9ebda51a095b4d82d82bb9/feedmepos-hrm-permission-1.0.5-dev.1.tgz","_integrity":"sha512-lRf5u7kZxkQ795NOh90DsMsK0btnubShPyjDUBIXvXFKhPyNgBPf+9pULD4CCsLa+5rypJUG+RditTY57BH7zA==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.5-dev.1_1777350464731_0.03881425939495453","host":"s3://npm-registry-packages-npm-production"}},"1.0.5-dev.2":{"name":"@feedmepos/hrm-permission","version":"1.0.5-dev.2","_id":"@feedmepos/hrm-permission@1.0.5-dev.2","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"0966648d74cf96a9a6ae7344c1de2f024032a936","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.5-dev.2.tgz","fileCount":105,"integrity":"sha512-qaL9eZnb3PoLZVoIiHTA/OprQMCmJsT3afR4I3h3vniogrs6RdA446jBCoUP1l2mkW0Q0kLKjNkf4FY87sO7Qw==","signatures":[{"sig":"MEUCIB+JtOn/AXbC36x2McZUmiusPy4oU/E1Uu/i/ODf5i+PAiEA8z8BmqwTMnll9Ugtbz7A+HDxkyqtcr5ljQDPjs51UYc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3751114},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.5-dev.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/3e5baca1e01211c309d96eb358b7b5f5/feedmepos-hrm-permission-1.0.5-dev.2.tgz","_integrity":"sha512-qaL9eZnb3PoLZVoIiHTA/OprQMCmJsT3afR4I3h3vniogrs6RdA446jBCoUP1l2mkW0Q0kLKjNkf4FY87sO7Qw==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.5-dev.2_1777350684019_0.7532476375375139","host":"s3://npm-registry-packages-npm-production"}},"1.0.5-dev.3":{"name":"@feedmepos/hrm-permission","version":"1.0.5-dev.3","_id":"@feedmepos/hrm-permission@1.0.5-dev.3","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"0afb83420a942e26c6738acf249821efb4bde626","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.5-dev.3.tgz","fileCount":105,"integrity":"sha512-p9U8RpW/KO9xmh7sTLiKgM+FLVLxvtAzwCXpTGwNa1ftq8ZEREth1glKmvnqSiLboffSRQilAq4pTm8aHlm9Zw==","signatures":[{"sig":"MEYCIQCA/iDldwAhjuanHb477O+yR5eVltztPdr9nldNazDr5QIhAP+jvsUHeIaXWKwmU/+IlqCXB0bJZI3t6Hhe1YwrbplK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3759800},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.5-dev.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/ce487051fe4f65e45262ba2912896457/feedmepos-hrm-permission-1.0.5-dev.3.tgz","_integrity":"sha512-p9U8RpW/KO9xmh7sTLiKgM+FLVLxvtAzwCXpTGwNa1ftq8ZEREth1glKmvnqSiLboffSRQilAq4pTm8aHlm9Zw==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@grpc/grpc-js":"^1.12.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@grpc/proto-loader":"^0.7.0","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.5-dev.3_1777363410023_0.31756054047820936","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@feedmepos/hrm-permission","version":"1.0.5","_id":"@feedmepos/hrm-permission@1.0.5","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"14e422d53112efb4f59dc25a05c463332b006980","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.5.tgz","fileCount":105,"integrity":"sha512-JpmvStT5Z1gPF1+rtDp+WEZSKAC5qtWbM4qgtuN2m62/9ZO/VetTfDk3oNHploVUlpi5DF/GkQfrJJqHC3OEMw==","signatures":[{"sig":"MEUCIHq8bHSg4kYcqSlCTQGJL6+M1wK4nnpHC57G8lPOrkAcAiEAz6yEEH46vQ1sWw4Fe7Q+93y/nxKLJurFBh8Dd4s+cyQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3751278},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.5.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/dd92331a43dd0fa14fd9dd64884ae46e/feedmepos-hrm-permission-1.0.5.tgz","_integrity":"sha512-JpmvStT5Z1gPF1+rtDp+WEZSKAC5qtWbM4qgtuN2m62/9ZO/VetTfDk3oNHploVUlpi5DF/GkQfrJJqHC3OEMw==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.5_1777520600767_0.6378359039560109","host":"s3://npm-registry-packages-npm-production"}},"1.0.6-dev":{"name":"@feedmepos/hrm-permission","version":"1.0.6-dev","_id":"@feedmepos/hrm-permission@1.0.6-dev","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"aa6f2de02456973c2ae39af48079b28b1e4a9fe8","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.6-dev.tgz","fileCount":111,"integrity":"sha512-Zf1aInFDjZeGX/dNuSl/B5PJyZHXlnQjokxsH0+ju7B93xoIzK5r7vwriHZIjboSQL8RwGOqhFml09JyGdyiBg==","signatures":[{"sig":"MEUCIQCzf4JD0xvzN5IsnhBRq4lfQO8dYyjfwFmDrbsO2OLCHwIgLK8Z6/+IUd+Ghf7vVuZDdLohNg70Ids5i+NGsyR/J4M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3762947},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.6-dev.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/3c4dda1edc38cbc7e0b74e9741fdb975/feedmepos-hrm-permission-1.0.6-dev.tgz","_integrity":"sha512-Zf1aInFDjZeGX/dNuSl/B5PJyZHXlnQjokxsH0+ju7B93xoIzK5r7vwriHZIjboSQL8RwGOqhFml09JyGdyiBg==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@grpc/grpc-js":"^1.12.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@grpc/proto-loader":"^0.7.0","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.6-dev_1777520937938_0.05514342186565191","host":"s3://npm-registry-packages-npm-production"}},"1.0.6-dev.1":{"name":"@feedmepos/hrm-permission","version":"1.0.6-dev.1","_id":"@feedmepos/hrm-permission@1.0.6-dev.1","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"b8fc38ef33bbb3e55ccfcf4f956624d62ada1a82","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.6-dev.1.tgz","fileCount":111,"integrity":"sha512-Llq7hvTwMSBtdD5c+DeAjl4iEP7In+kqJNC7ejJkElpM57j20WN042tYq8FpJNVVI6v6m0B3j+fGokE717+Ojg==","signatures":[{"sig":"MEUCIF425EITtHvL4Dp5dYmcrGvMKkmt7CYFITmNHp7ABCZaAiEAzMe6O7QWqfuOagryBRfKN0xLGSaln1Gnh9DnOaoXHrk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3760277},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.6-dev.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/c8e2846753fff7d484a68b5dcfc75b86/feedmepos-hrm-permission-1.0.6-dev.1.tgz","_integrity":"sha512-Llq7hvTwMSBtdD5c+DeAjl4iEP7In+kqJNC7ejJkElpM57j20WN042tYq8FpJNVVI6v6m0B3j+fGokE717+Ojg==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.6-dev.1_1777543749706_0.1233797152126348","host":"s3://npm-registry-packages-npm-production"}},"1.0.6-dev.2":{"name":"@feedmepos/hrm-permission","version":"1.0.6-dev.2","_id":"@feedmepos/hrm-permission@1.0.6-dev.2","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"3133da2ccad1237ec96f0198ecd4cff3fcadb2da","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.6-dev.2.tgz","fileCount":111,"integrity":"sha512-He1LGvhEsj/O2wmpdWPKFc6ZUB30vqu/xVX4DFjEFUr8o3ekuFXdT5z56l0+PmpxOrXUB9bVe67e3ILI5IlBNA==","signatures":[{"sig":"MEUCIQDUsvwcRadq1x1K8VkN2dYfya5tNlKYkVdN/vFpcY/q2AIgfDVJamWbZvc1Uz50N8Dp0oVZrPrpkqW5KkZG/MZO+G8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3770706},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.6-dev.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/f48db2fc447f2e3f1655c5dc6af3626b/feedmepos-hrm-permission-1.0.6-dev.2.tgz","_integrity":"sha512-He1LGvhEsj/O2wmpdWPKFc6ZUB30vqu/xVX4DFjEFUr8o3ekuFXdT5z56l0+PmpxOrXUB9bVe67e3ILI5IlBNA==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.6-dev.2_1777883697069_0.5807702732292375","host":"s3://npm-registry-packages-npm-production"}},"1.0.6-dev.3":{"name":"@feedmepos/hrm-permission","version":"1.0.6-dev.3","_id":"@feedmepos/hrm-permission@1.0.6-dev.3","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"3da63549d1336f4900e7b4b230e0d0fdd44b62d4","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.6-dev.3.tgz","fileCount":119,"integrity":"sha512-6IHo8sxZST1p3shEEcrMi4PrSCMqiChVaWZq2EjebTRvLDK2gpbNV/16eSZ+bvI2q5pprACmG+6qRjgcaOtyfA==","signatures":[{"sig":"MEUCIQCTvX6ZCkvrmMWRF4WdpMuBycc9pFpX6fbwwv7eE8L3RAIgNZ2BQfAqC83lHti/0XM1Kku5v5yf8PAPF7LIFMee4yk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3789417},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.6-dev.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/228ce436c3c17135f3bb402c8e6c610b/feedmepos-hrm-permission-1.0.6-dev.3.tgz","_integrity":"sha512-6IHo8sxZST1p3shEEcrMi4PrSCMqiChVaWZq2EjebTRvLDK2gpbNV/16eSZ+bvI2q5pprACmG+6qRjgcaOtyfA==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.6-dev.3_1778034922521_0.16423465957362793","host":"s3://npm-registry-packages-npm-production"}},"1.0.6-dev.4":{"name":"@feedmepos/hrm-permission","version":"1.0.6-dev.4","_id":"@feedmepos/hrm-permission@1.0.6-dev.4","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"1430967de0083134152b5283e55813c340f3a1a9","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.6-dev.4.tgz","fileCount":119,"integrity":"sha512-PjH6zUK1T2flyJhIGu29AZ+zVFciGWasQVbYUPIb0F5tRcDKrpWOBzLFXecThPLc2L/hOesMQfAL2Lt+RtA2lQ==","signatures":[{"sig":"MEYCIQCRTPc7Vnx/8zX60ieFzCcWh4t/uu1ObtI8JNy6WbLtEwIhAOcFv6bn0Vj3QVJpWki26nqsBvWQ8H7F7g7TJVEiZxxT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3793257},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.6-dev.4.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/371d75e2537a81f8aa1224d3f3d4a6b8/feedmepos-hrm-permission-1.0.6-dev.4.tgz","_integrity":"sha512-PjH6zUK1T2flyJhIGu29AZ+zVFciGWasQVbYUPIb0F5tRcDKrpWOBzLFXecThPLc2L/hOesMQfAL2Lt+RtA2lQ==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.6-dev.4_1778147695224_0.2621487664346125","host":"s3://npm-registry-packages-npm-production"}},"1.0.6-dev.5":{"name":"@feedmepos/hrm-permission","version":"1.0.6-dev.5","_id":"@feedmepos/hrm-permission@1.0.6-dev.5","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"7e2df6ab07ef917e99f5e7da5889d67d99b7b4bf","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.6-dev.5.tgz","fileCount":119,"integrity":"sha512-6xYN5XqTDixRizMzefmplkPuNjszOR1i6Jzp/pwEdtJBNZhS/iJxMW8BtvIWe9QQOKn9HlusGjLQjxSg0/bcdA==","signatures":[{"sig":"MEQCIEFN7yw74YE9PORH2nNdHVXMA5fpcmZwCBLgqyn8vM7yAiAj3NFhx6HU4veksVG9nCl1jnQNxdtWOB3qbbyHBvr0yg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3800255},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.6-dev.5.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/22072f38e3be825252669c7c33bd1e45/feedmepos-hrm-permission-1.0.6-dev.5.tgz","_integrity":"sha512-6xYN5XqTDixRizMzefmplkPuNjszOR1i6Jzp/pwEdtJBNZhS/iJxMW8BtvIWe9QQOKn9HlusGjLQjxSg0/bcdA==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.6-dev.5_1778154069550_0.4915124547582317","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@feedmepos/hrm-permission","version":"1.0.6","_id":"@feedmepos/hrm-permission@1.0.6","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"e9c518442791ee674db266e029cee32863c58817","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.6.tgz","fileCount":119,"integrity":"sha512-hPDDRKOUEOvmZo4K2u2olEgHfpDHZb5ADxgntZotUIKBGtKYDGup2i9OsRyzyXEnXN/reoYsK7jMQjo94zJ5mQ==","signatures":[{"sig":"MEYCIQCqYJOawPp1FzZZyr72p/1UkNwcXZfqvt5ttnCrQl9GXAIhAOiuuVEV+xixUwi6dOecahEcGqCp6bTBpYLJzSghsaRP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3798837},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.6.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/d15704996e8677966024c4f6bd17d0b9/feedmepos-hrm-permission-1.0.6.tgz","_integrity":"sha512-hPDDRKOUEOvmZo4K2u2olEgHfpDHZb5ADxgntZotUIKBGtKYDGup2i9OsRyzyXEnXN/reoYsK7jMQjo94zJ5mQ==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.6_1778520209553_0.02845374688647806","host":"s3://npm-registry-packages-npm-production"}},"1.0.7-dev":{"name":"@feedmepos/hrm-permission","version":"1.0.7-dev","_id":"@feedmepos/hrm-permission@1.0.7-dev","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"93ffd9b230b295819e35434d2a15dcab37a7a6d7","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.7-dev.tgz","fileCount":119,"integrity":"sha512-ddCI5luvz2HRy0kGM2SETTlg0xowsKDuzr1IBpXKSi5BrxmwMPjrpqqmEc0PlTFqvHq7r8LDizDSSAzFgYm/gw==","signatures":[{"sig":"MEQCIFK9xXGi3QWsAp6eJ6Xn+jMB1gqqC7dSi2S8wF58L7zyAiBPTpvunpQ53OtMBV2pI1pmW+fZ5RE9yQJzJT9BfOhvhQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3799521},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.7-dev.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/7894d67a4533e3289b63f1f94f8dee6b/feedmepos-hrm-permission-1.0.7-dev.tgz","_integrity":"sha512-ddCI5luvz2HRy0kGM2SETTlg0xowsKDuzr1IBpXKSi5BrxmwMPjrpqqmEc0PlTFqvHq7r8LDizDSSAzFgYm/gw==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.7-dev_1778568728929_0.9135220265586219","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@feedmepos/hrm-permission","version":"1.0.7","_id":"@feedmepos/hrm-permission@1.0.7","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"24e073139a61fce85d03ad63a2948ca065b62ef5","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.7.tgz","fileCount":119,"integrity":"sha512-cqcljBFeGznhrYqqJPNMH91gfVaQs9K+W7lbuz0GcVHZB8X10vbvNr+niEKT6ULgDI6xt92WWBHLmk5RCzN8vA==","signatures":[{"sig":"MEUCIGThBEmXy4P/aX41svTbCcJVdHLzj9HjDirH3peoZnDGAiEA6mD+kU6hT3mHkxl1wRQ8RD97iOu6uoXvWZYZ7Kza/pI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3799454},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.7.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/fb995d67fdf8b959881ef18b32910259/feedmepos-hrm-permission-1.0.7.tgz","_integrity":"sha512-cqcljBFeGznhrYqqJPNMH91gfVaQs9K+W7lbuz0GcVHZB8X10vbvNr+niEKT6ULgDI6xt92WWBHLmk5RCzN8vA==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.7_1779179600885_0.523681183584608","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@feedmepos/hrm-permission","version":"1.0.8","_id":"@feedmepos/hrm-permission@1.0.8","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"a88bb63ed51a43e0f0fa66ec77e020d425146e48","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.8.tgz","fileCount":119,"integrity":"sha512-PafhJgcknKIV7fu8x1EnPCUWTrl8/2l7TlSKYzXP39/ufMaoU1kUtZbCjt5HQS16LuUtSu9AOHgdFFMUTkhLFw==","signatures":[{"sig":"MEQCIFmtXOwqaEyhJGYJP0qsxyp9P6InqZ7UB9qCyZyp2eE7AiA8ZIa6AF4EQlxK0UPnWAx+IMeFUlshTm/eUQqo9q1ftA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3805554},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.8.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/70cfe3e61dded43f01f327d794d226d0/feedmepos-hrm-permission-1.0.8.tgz","_integrity":"sha512-PafhJgcknKIV7fu8x1EnPCUWTrl8/2l7TlSKYzXP39/ufMaoU1kUtZbCjt5HQS16LuUtSu9AOHgdFFMUTkhLFw==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.8_1779425703401_0.8193167600629367","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@feedmepos/hrm-permission","version":"1.0.9","_id":"@feedmepos/hrm-permission@1.0.9","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"b6da280487652645818c152d77afc55c83331760","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.9.tgz","fileCount":119,"integrity":"sha512-gUz5UcB+V4ZFz1AeXJLZI8UI46g96KDOSG2NRPYnsyCW34eTCD3wdqMuJFmRLKh7cE+MwioL2zTPJBXQAyj6WA==","signatures":[{"sig":"MEUCIQCYX7jxoRqxRYUBst4WIwVIgPH/8Knu0oRDa+wDgC5qsAIgKCuUb8pTmIiK3HXt9vbp4SlxVJkJovyuipQt9AoECyc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3807106},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.9.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/7b51f94f60888e08374fb504e66d1346/feedmepos-hrm-permission-1.0.9.tgz","_integrity":"sha512-gUz5UcB+V4ZFz1AeXJLZI8UI46g96KDOSG2NRPYnsyCW34eTCD3wdqMuJFmRLKh7cE+MwioL2zTPJBXQAyj6WA==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.9_1780472821812_0.15994938303444672","host":"s3://npm-registry-packages-npm-production"}},"1.0.10-dev":{"name":"@feedmepos/hrm-permission","version":"1.0.10-dev","_id":"@feedmepos/hrm-permission@1.0.10-dev","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"4ef662935528e7fe2cce2ec271ae91f58365bdb5","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.10-dev.tgz","fileCount":123,"integrity":"sha512-wA0ECIGP4Skx/GkRbhn6VEC8zNEwoOC++K7U/uw4dwSv078wIEtYLR0xxUfKa1+fv+/jwdESTxPO+3frw0fKQA==","signatures":[{"sig":"MEQCIBAT58s6VxO7Bl3VqIC6xuzGXLstxOZj6I4TtO288kvTAiBg8naXTUCa0mNolNvSk+vZMtcGfnoniSKSQCJEPh48rQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3806959},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.10-dev.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./constants":{"types":"./dist/constants.d.ts","import":"./dist/constants.js","require":"./dist/constants.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/fdc3bf16d071baa681d63c7e8e1f80af/feedmepos-hrm-permission-1.0.10-dev.tgz","_integrity":"sha512-wA0ECIGP4Skx/GkRbhn6VEC8zNEwoOC++K7U/uw4dwSv078wIEtYLR0xxUfKa1+fv+/jwdESTxPO+3frw0fKQA==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"constants":["./dist/constants.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.10-dev_1780563088192_0.9163432527260253","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@feedmepos/hrm-permission","version":"1.0.10","_id":"@feedmepos/hrm-permission@1.0.10","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"9ebb451ba431527e0eaaa9aac724bbc0c8b5c095","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.10.tgz","fileCount":119,"integrity":"sha512-kQQlDJ2nHncdwlaDvwMZcjrMCPUp4jlrotO4rl30NQHgCvk9Qu7xO+DFsUFR7kv01qy5pTPXb0eCQaSodW2nSg==","signatures":[{"sig":"MEYCIQCzD3QRrRNfRDK5oK1QoXrhIMthcvXgNUBvqKTEZGW6+wIhALmoIn2V2e01rOUJFitOUaF8q/g7VOaxflBnxFYIGQwq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3811255},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.10.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/9df9239ddb42be265abd681be79aeefe/feedmepos-hrm-permission-1.0.10.tgz","_integrity":"sha512-kQQlDJ2nHncdwlaDvwMZcjrMCPUp4jlrotO4rl30NQHgCvk9Qu7xO+DFsUFR7kv01qy5pTPXb0eCQaSodW2nSg==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.10_1781065836680_0.18227183269092362","host":"s3://npm-registry-packages-npm-production"}},"1.0.10-dev.2":{"name":"@feedmepos/hrm-permission","version":"1.0.10-dev.2","_id":"@feedmepos/hrm-permission@1.0.10-dev.2","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"9b9f08fc2f40e933e8066e2fc1e6666c03bb6f18","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.10-dev.2.tgz","fileCount":123,"integrity":"sha512-r3LI1UUMYWM3RAmzVc/AxN/fsDzNTG+0vo3WZT40jO6z40KER5itot5RV5AEiD0PQg8QYC0DCvNaHjItVQ4hhA==","signatures":[{"sig":"MEUCIBR+3n8W94zg5PloMx6xefgTy1DbfZ+vTARI+10nurClAiEAlvTvuj5sI0pq9BAxVqurHJnUSy0GJO3RhOs1Eb3PP6k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3812757},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.10-dev.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./constants":{"types":"./dist/constants.d.ts","import":"./dist/constants.js","require":"./dist/constants.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/d270c9b11c30eb8cc28fd021a940d38a/feedmepos-hrm-permission-1.0.10-dev.2.tgz","_integrity":"sha512-r3LI1UUMYWM3RAmzVc/AxN/fsDzNTG+0vo3WZT40jO6z40KER5itot5RV5AEiD0PQg8QYC0DCvNaHjItVQ4hhA==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"constants":["./dist/constants.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.5.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.10-dev.2_1781153884144_0.11670195719129306","host":"s3://npm-registry-packages-npm-production"}},"1.0.10-dev.3":{"name":"@feedmepos/hrm-permission","version":"1.0.10-dev.3","_id":"@feedmepos/hrm-permission@1.0.10-dev.3","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"3139a7e83f11d17a5be2c19f21ef9a3b4df0208a","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.10-dev.3.tgz","fileCount":123,"integrity":"sha512-fEc6gBDTZKdCS43RfbCIqmuY+f9asJo6b/RO4eRIUtRhWoTwAMPUTjmoxtJDxEyFRX7q6dC4BY13OM0eefo2nQ==","signatures":[{"sig":"MEUCIQDZQmHo+DtBR9CiMT24mvuR6qTiBsukwIm7QgrYLLcxYwIgIgneX8QbGAh8wOuy0eaxreiXKa/bk/GG+Q/k5y7djfI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3813044},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.10-dev.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./constants":{"types":"./dist/constants.d.ts","import":"./dist/constants.js","require":"./dist/constants.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/0cba3c19bebd4e73c79a0620d4723bef/feedmepos-hrm-permission-1.0.10-dev.3.tgz","_integrity":"sha512-fEc6gBDTZKdCS43RfbCIqmuY+f9asJo6b/RO4eRIUtRhWoTwAMPUTjmoxtJDxEyFRX7q6dC4BY13OM0eefo2nQ==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"constants":["./dist/constants.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.4.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"vue":{"optional":true},"vue-router":{"optional":true},"@nestjs/core":{"optional":true},"@nestjs/common":{"optional":true},"reflect-metadata":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.10-dev.3_1781154909897_0.6136247995265731","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"@feedmepos/hrm-permission","version":"1.0.11","_id":"@feedmepos/hrm-permission@1.0.11","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"fbc009e4cf7c455552c0fdffa445c28302b505a7","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.11.tgz","fileCount":123,"integrity":"sha512-uOk67Q0y6o3LNRcX9eE5aryYvUGHb+lsQD4Buokbt4DITmM69dJoqbccCxeQwUUjgXdiGqoYIslwxNiOm5PvQw==","signatures":[{"sig":"MEYCIQDjFWbxftn1ToWCSmct3ucoXgzGZfmS1LNGqtAGv3NDfAIhANO+pVj4MeomfoFSTqGrwI6gIF+LWNLnyoP6/c4kfZMW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3813038},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.11.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./constants":{"types":"./dist/constants.d.ts","import":"./dist/constants.js","require":"./dist/constants.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/7243bed736e61c0ebe53203723c8ad06/feedmepos-hrm-permission-1.0.11.tgz","_integrity":"sha512-uOk67Q0y6o3LNRcX9eE5aryYvUGHb+lsQD4Buokbt4DITmM69dJoqbccCxeQwUUjgXdiGqoYIslwxNiOm5PvQw==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"constants":["./dist/constants.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.4.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"vue":{"optional":true},"vue-router":{"optional":true},"@nestjs/core":{"optional":true},"@nestjs/common":{"optional":true},"reflect-metadata":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.11_1781159502774_0.2868108950144257","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"@feedmepos/hrm-permission","version":"1.0.12","_id":"@feedmepos/hrm-permission@1.0.12","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"70336a1033826eefce48f5b5d54416ab7bd47d1a","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.12.tgz","fileCount":123,"integrity":"sha512-UckCNJfA8uWJihnkfaQ0TzGBmCB4jddJ1t/EuCMmlPOcCx+92HYEmQmYdOscC1LCnx21c0QLcmQ2u+GL0qLSqw==","signatures":[{"sig":"MEQCIFNChhgB81R86hph6NBLwxH06aTLUctcUp0rPF8ikxL7AiA9rIp60gjOaKbkeQVcXtyXB7ilcCEVl6Pa4QdMTmQ0zQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3814355},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.12.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./constants":{"types":"./dist/constants.d.ts","import":"./dist/constants.js","require":"./dist/constants.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/d076cfbf77307b10e9bd993c0bd32ed3/feedmepos-hrm-permission-1.0.12.tgz","_integrity":"sha512-UckCNJfA8uWJihnkfaQ0TzGBmCB4jddJ1t/EuCMmlPOcCx+92HYEmQmYdOscC1LCnx21c0QLcmQ2u+GL0qLSqw==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"constants":["./dist/constants.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.4.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"vue":{"optional":true},"vue-router":{"optional":true},"@nestjs/core":{"optional":true},"@nestjs/common":{"optional":true},"reflect-metadata":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.12_1782116400320_0.6057662319603976","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"@feedmepos/hrm-permission","version":"1.0.13","_id":"@feedmepos/hrm-permission@1.0.13","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"1fdd3b64ba26aa74324a8768d16f079221a5e301","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.13.tgz","fileCount":123,"integrity":"sha512-tgXWjJfkjksoXgC387tijH/71nQJ+Ygwyll8FSVjXABjvjiaEoU7Nfp2JxD0jGyusbHRoH/Q/mB5ZbnkqcBvbQ==","signatures":[{"sig":"MEYCIQCAjgekr2Pw7G2muYc5oZFKhophOJL+NuizXzYWFpz51wIhAMxPuIB6wjg4XNW5DylRmVBeZ6g6tJcVbKgV92CBbrQo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3815018},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.13.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./constants":{"types":"./dist/constants.d.ts","import":"./dist/constants.js","require":"./dist/constants.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/df4d619383483d52c0c6f98ec06ca0d7/feedmepos-hrm-permission-1.0.13.tgz","_integrity":"sha512-tgXWjJfkjksoXgC387tijH/71nQJ+Ygwyll8FSVjXABjvjiaEoU7Nfp2JxD0jGyusbHRoH/Q/mB5ZbnkqcBvbQ==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"constants":["./dist/constants.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.4.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"vue":{"optional":true},"vue-router":{"optional":true},"@nestjs/core":{"optional":true},"@nestjs/common":{"optional":true},"reflect-metadata":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.13_1782470877005_0.7709196382971002","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"@feedmepos/hrm-permission","version":"1.0.14","_id":"@feedmepos/hrm-permission@1.0.14","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"19fa11ecc8e7606dd7f6821996bf93ffd94a0341","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.14.tgz","fileCount":123,"integrity":"sha512-VcgpuOTOlh7fMylR850ghAGBgRewJewpRkqIiCtzx2G5fOw6jKKtGVKcupiLZHO1S8+JhdOzmuW1qh5jrVaPCA==","signatures":[{"sig":"MEQCIBVbUdFB99iBuZYCP4UQYW94ONdca4Ge+SlaDom2+N6SAiABCKuyBHZ8VlUnPetoOF+aErAKkjtge7TDqA5k/BIUxQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3815955},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.14.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./constants":{"types":"./dist/constants.d.ts","import":"./dist/constants.js","require":"./dist/constants.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/e5d07a97ec7209f1bf25b71188437223/feedmepos-hrm-permission-1.0.14.tgz","_integrity":"sha512-VcgpuOTOlh7fMylR850ghAGBgRewJewpRkqIiCtzx2G5fOw6jKKtGVKcupiLZHO1S8+JhdOzmuW1qh5jrVaPCA==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"constants":["./dist/constants.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.4.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"vue":{"optional":true},"vue-router":{"optional":true},"@nestjs/core":{"optional":true},"@nestjs/common":{"optional":true},"reflect-metadata":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.14_1782718530642_0.6275343729658702","host":"s3://npm-registry-packages-npm-production"}},"1.0.11-beta.0":{"name":"@feedmepos/hrm-permission","version":"1.0.11-beta.0","_id":"@feedmepos/hrm-permission@1.0.11-beta.0","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"a327102ad47709a594d35c01763f14b31bb73402","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.11-beta.0.tgz","fileCount":148,"integrity":"sha512-+E+4unf1VAheCbHPWm1biwMO43U9jB8OTtQf+yKNJgzoGTy1pbHHeXvrIIkl0LwTDynFSA/ZgGyUZj35pP4PxQ==","signatures":[{"sig":"MEUCICme1jP1xXo5DxXSdkStn8OA2bS9vTXaAcBrz/wyzBO0AiEAwfXTOiEWugqPZFTPHyk1Cg0KbV9MI9Mne/3P7qfAemM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3847979},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.11-beta.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./constants":{"types":"./dist/constants.d.ts","import":"./dist/constants.js","require":"./dist/constants.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"},"./condition-builder":{"types":"./dist/condition-builder/index.d.ts","import":"./dist/condition-builder/index.js","require":"./dist/condition-builder/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/50fbbd971477a83d655d4512fa57da55/feedmepos-hrm-permission-1.0.11-beta.0.tgz","_integrity":"sha512-+E+4unf1VAheCbHPWm1biwMO43U9jB8OTtQf+yKNJgzoGTy1pbHHeXvrIIkl0LwTDynFSA/ZgGyUZj35pP4PxQ==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"constants":["./dist/constants.d.ts"],"components":["./dist/components/index.d.ts"],"condition-builder":["./dist/condition-builder/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.4.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"vue":{"optional":true},"vue-router":{"optional":true},"@nestjs/core":{"optional":true},"@nestjs/common":{"optional":true},"reflect-metadata":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.11-beta.0_1782876606590_0.9915182304498988","host":"s3://npm-registry-packages-npm-production"}},"1.0.15-dev":{"name":"@feedmepos/hrm-permission","version":"1.0.15-dev","_id":"@feedmepos/hrm-permission@1.0.15-dev","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"52be9098571bf674ca63d4cfbf002f801776f195","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.15-dev.tgz","fileCount":154,"integrity":"sha512-+8XwMyH5tafUgNYA9T/TV7vi5a0Zwqn4qeq+l+MJ3hSJKs9b3BuSszNCHJnhm7fTE3FhR7kBfmqW/j2gEHmxkQ==","signatures":[{"sig":"MEUCIQCoPCNKhsQrksxO9mSKFvGDC3BG1nQqQwNgic+3kbDAewIgGyPCr1K+/EViyU10izhEO8RrRqWxzhKuo7DeLQI3Gxc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3868744},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.15-dev.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./constants":{"types":"./dist/constants.d.ts","import":"./dist/constants.js","require":"./dist/constants.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"},"./condition-builder":{"types":"./dist/condition-builder/index.d.ts","import":"./dist/condition-builder/index.js","require":"./dist/condition-builder/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/98da38939a9bde088a648cae92fd33a8/feedmepos-hrm-permission-1.0.15-dev.tgz","_integrity":"sha512-+8XwMyH5tafUgNYA9T/TV7vi5a0Zwqn4qeq+l+MJ3hSJKs9b3BuSszNCHJnhm7fTE3FhR7kBfmqW/j2gEHmxkQ==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"constants":["./dist/constants.d.ts"],"components":["./dist/components/index.d.ts"],"condition-builder":["./dist/condition-builder/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.4.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"vue":{"optional":true},"vue-router":{"optional":true},"@nestjs/core":{"optional":true},"@nestjs/common":{"optional":true},"reflect-metadata":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.15-dev_1782904750731_0.1340024328630085","host":"s3://npm-registry-packages-npm-production"}},"1.0.15-dev.1":{"name":"@feedmepos/hrm-permission","version":"1.0.15-dev.1","_id":"@feedmepos/hrm-permission@1.0.15-dev.1","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"d022f282db63551093d4a27f1b416d5ab717888d","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.15-dev.1.tgz","fileCount":154,"integrity":"sha512-HRqIdAxX13A7C6GYOp/x0akIo3pis+FVAC+sbNmmAzluF1713ss1ncNBnoXIv7fwQHuedfdZ8oF8u27Inh+yrw==","signatures":[{"sig":"MEYCIQDF6mgNTropu38pX9NoO5qhplf+2U+k56Rtnjw/2WyJ5AIhAMvl0XqwGWR/jVevRaZeuyiUD31yl93tVioBpZkAr5M4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3870969},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.15-dev.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./constants":{"types":"./dist/constants.d.ts","import":"./dist/constants.js","require":"./dist/constants.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"},"./condition-builder":{"types":"./dist/condition-builder/index.d.ts","import":"./dist/condition-builder/index.js","require":"./dist/condition-builder/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build:go":"node scripts/gen-go.mjs","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/70c21662f51fd647f519ac474fbe56f9/feedmepos-hrm-permission-1.0.15-dev.1.tgz","_integrity":"sha512-HRqIdAxX13A7C6GYOp/x0akIo3pis+FVAC+sbNmmAzluF1713ss1ncNBnoXIv7fwQHuedfdZ8oF8u27Inh+yrw==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"constants":["./dist/constants.d.ts"],"components":["./dist/components/index.d.ts"],"condition-builder":["./dist/condition-builder/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.4.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"vue":{"optional":true},"vue-router":{"optional":true},"@nestjs/core":{"optional":true},"@nestjs/common":{"optional":true},"reflect-metadata":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.15-dev.1_1782970338853_0.816425649397672","host":"s3://npm-registry-packages-npm-production"}},"1.0.15":{"name":"@feedmepos/hrm-permission","version":"1.0.15","_id":"@feedmepos/hrm-permission@1.0.15","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"89e81bb264c1f4604951368ed6d2c811dd0725ee","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.15.tgz","fileCount":123,"integrity":"sha512-V0Tt/mR1vBIoc7hw8rK/HlSzN1Xvd/EZJTwEGar1uSO1NbJB+6ubrnZ/kLywfEEKmx3bdMkJzxP5J+l7MaokEQ==","signatures":[{"sig":"MEQCICwdLFgoWUySJvSFPbrQZvaVBc3DYe1sNoZZy5A9GE1yAiA1+SjUzwaD1xLqffqCDB5yLsh5yr2ennV53sk/1HdWNg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3816642},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.15.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./constants":{"types":"./dist/constants.d.ts","import":"./dist/constants.js","require":"./dist/constants.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build:go":"node scripts/gen-go.mjs","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/92633ddb1655a87112198eea297ac59c/feedmepos-hrm-permission-1.0.15.tgz","_integrity":"sha512-V0Tt/mR1vBIoc7hw8rK/HlSzN1Xvd/EZJTwEGar1uSO1NbJB+6ubrnZ/kLywfEEKmx3bdMkJzxP5J+l7MaokEQ==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"constants":["./dist/constants.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.4.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"vue":{"optional":true},"vue-router":{"optional":true},"@nestjs/core":{"optional":true},"@nestjs/common":{"optional":true},"reflect-metadata":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.15_1783346342682_0.42051166241466165","host":"s3://npm-registry-packages-npm-production"}},"1.0.15-beta.0":{"name":"@feedmepos/hrm-permission","version":"1.0.15-beta.0","_id":"@feedmepos/hrm-permission@1.0.15-beta.0","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"cdd674a82d0b1edac9e0110e6d323a2e1b7f6871","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.15-beta.0.tgz","fileCount":166,"integrity":"sha512-pTvkoFsDEqEmrTNmGlpWZHaNRzduR6gv9bi/e4c1iidPol9gmoRssogFy1tRBTsz3QvXzzZXsgEKCVtVJf2vZw==","signatures":[{"sig":"MEQCICgDl/6/zFreQtFYTYvF1qnLqJOVdvPu18qDajg9FYJCAiAvaFbgiXA6nmhsUZhj0f5iAG65K+cW04gpfv3F4wEiWQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3889169},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.15-beta.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./constants":{"types":"./dist/constants.d.ts","import":"./dist/constants.js","require":"./dist/constants.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"},"./condition-builder":{"types":"./dist/condition-builder/index.d.ts","import":"./dist/condition-builder/index.js","require":"./dist/condition-builder/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build:go":"node scripts/gen-go.mjs","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/049e2f7c5379c6d4616d24130b7fcfa6/feedmepos-hrm-permission-1.0.15-beta.0.tgz","_integrity":"sha512-pTvkoFsDEqEmrTNmGlpWZHaNRzduR6gv9bi/e4c1iidPol9gmoRssogFy1tRBTsz3QvXzzZXsgEKCVtVJf2vZw==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"constants":["./dist/constants.d.ts"],"components":["./dist/components/index.d.ts"],"condition-builder":["./dist/condition-builder/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.4.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"vue":{"optional":true},"vue-router":{"optional":true},"@nestjs/core":{"optional":true},"@nestjs/common":{"optional":true},"reflect-metadata":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.15-beta.0_1784007258889_0.19784775133872534","host":"s3://npm-registry-packages-npm-production"}},"1.1.0-dev":{"name":"@feedmepos/hrm-permission","version":"1.1.0-dev","_id":"@feedmepos/hrm-permission@1.1.0-dev","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"47cd9186118edf5d0676f683e0a7662423e9b111","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.1.0-dev.tgz","fileCount":178,"integrity":"sha512-s/fZ12j7Vp3FJD7tadTW0OpW2c6QGQh55zf54dhBlqv3d8D1HVnpX1iWSONyzOHv1ljxZ7/R3gUf8+O00JH1YQ==","signatures":[{"sig":"MEYCIQCESQ3NsB/DqbjMYDQ6WzEolMJTYDbFP1Hb111uFHUzbQIhAP3YAOIioUnV2FyeSWuUMq7W7Xt7VDMXl2tzYFJvdrSH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3908684},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.1.0-dev.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./constants":{"types":"./dist/constants.d.ts","import":"./dist/constants.js","require":"./dist/constants.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"},"./condition-builder":{"types":"./dist/condition-builder/index.d.ts","import":"./dist/condition-builder/index.js","require":"./dist/condition-builder/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build:go":"node scripts/gen-go.mjs","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/46ef65b97fe19821b3fc88f54af6261d/feedmepos-hrm-permission-1.1.0-dev.tgz","_integrity":"sha512-s/fZ12j7Vp3FJD7tadTW0OpW2c6QGQh55zf54dhBlqv3d8D1HVnpX1iWSONyzOHv1ljxZ7/R3gUf8+O00JH1YQ==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"constants":["./dist/constants.d.ts"],"components":["./dist/components/index.d.ts"],"condition-builder":["./dist/condition-builder/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.4.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"vue":{"optional":true},"vue-router":{"optional":true},"@nestjs/core":{"optional":true},"@nestjs/common":{"optional":true},"reflect-metadata":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.1.0-dev_1784517267349_0.7425933228311488","host":"s3://npm-registry-packages-npm-production"}},"1.1.0-dev.2":{"name":"@feedmepos/hrm-permission","version":"1.1.0-dev.2","_id":"@feedmepos/hrm-permission@1.1.0-dev.2","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"864f0a7f4b64900e7dbb219f800a3f741292dfcd","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.1.0-dev.2.tgz","fileCount":178,"integrity":"sha512-L9qUiB1aiNfW4eVFbDa4NQEtCnz2XM+aVOdPAf8B2Sxm+mKDdkiUXp7g+UTOs/lUJIxJy/uZhyiPWInasspXaw==","signatures":[{"sig":"MEUCIQDCBO5dbBBUCNjQ6sPedw7/L3xelCOYAs9gu/b6Wh/wJwIgI8cuI4ZsmbUAEhcFqCi9urXu2NS63qccTIwQdQTTk58=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3908686},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.1.0-dev.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./constants":{"types":"./dist/constants.d.ts","import":"./dist/constants.js","require":"./dist/constants.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"},"./condition-builder":{"types":"./dist/condition-builder/index.d.ts","import":"./dist/condition-builder/index.js","require":"./dist/condition-builder/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build:go":"node scripts/gen-go.mjs","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/170da58a687ee4c06f28d77d258296cc/feedmepos-hrm-permission-1.1.0-dev.2.tgz","_integrity":"sha512-L9qUiB1aiNfW4eVFbDa4NQEtCnz2XM+aVOdPAf8B2Sxm+mKDdkiUXp7g+UTOs/lUJIxJy/uZhyiPWInasspXaw==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"constants":["./dist/constants.d.ts"],"components":["./dist/components/index.d.ts"],"condition-builder":["./dist/condition-builder/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.4.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"vue":{"optional":true},"vue-router":{"optional":true},"@nestjs/core":{"optional":true},"@nestjs/common":{"optional":true},"reflect-metadata":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.1.0-dev.2_1784522528543_0.8494344192338992","host":"s3://npm-registry-packages-npm-production"}},"1.1.0-dev.3":{"name":"@feedmepos/hrm-permission","version":"1.1.0-dev.3","_id":"@feedmepos/hrm-permission@1.1.0-dev.3","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"fadc7494fd780212dbb733424b51e17251f92cc5","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.1.0-dev.3.tgz","fileCount":178,"integrity":"sha512-n8fCuJe/DcvelBmP7h/pqsHFriXiZ5bVHo+Fkw4dXQhF/6PWk54MGaMAXSzIz0F8O52t2gF8qTAl+VzDrKHCSQ==","signatures":[{"sig":"MEYCIQDecxq/TgPu1CvlzkMJcz6PGR9wl2O9gdCtDpbpCy/W7gIhAKLhh3abh/dBvTwH0LyN33o1PTbpD1k13nb1MoHU0EZ5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3909170},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.1.0-dev.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./constants":{"types":"./dist/constants.d.ts","import":"./dist/constants.js","require":"./dist/constants.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"},"./condition-builder":{"types":"./dist/condition-builder/index.d.ts","import":"./dist/condition-builder/index.js","require":"./dist/condition-builder/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build:go":"node scripts/gen-go.mjs","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/5adfe3830ef60883adc4942842bf9b6e/feedmepos-hrm-permission-1.1.0-dev.3.tgz","_integrity":"sha512-n8fCuJe/DcvelBmP7h/pqsHFriXiZ5bVHo+Fkw4dXQhF/6PWk54MGaMAXSzIz0F8O52t2gF8qTAl+VzDrKHCSQ==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"constants":["./dist/constants.d.ts"],"components":["./dist/components/index.d.ts"],"condition-builder":["./dist/condition-builder/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.4.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"vue":{"optional":true},"vue-router":{"optional":true},"@nestjs/core":{"optional":true},"@nestjs/common":{"optional":true},"reflect-metadata":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.1.0-dev.3_1784543239330_0.969046626843068","host":"s3://npm-registry-packages-npm-production"}},"1.0.16-beta.0":{"name":"@feedmepos/hrm-permission","version":"1.0.16-beta.0","_id":"@feedmepos/hrm-permission@1.0.16-beta.0","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"09c6af58be5b0612020e44e777f992394a457b97","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.16-beta.0.tgz","fileCount":123,"integrity":"sha512-gOob551H58tmAN1UQiXdf2vtR/H5hPaZeYawoHq5gaeN2SheFQ39FsA/1IDxIiBWdkp36gYWAE/Sh8L5n8Pqwg==","signatures":[{"sig":"MEUCIQDf/y6HJ4630rLksvrTmDqNIsB0dTcA7evzsKPgwjfKvAIgf1ZYPHai1CzbW4JMO2xH/sY0uYmQcYNcCb/bKAhLV3M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3817378},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.16-beta.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./constants":{"types":"./dist/constants.d.ts","import":"./dist/constants.js","require":"./dist/constants.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build:go":"node scripts/gen-go.mjs","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/2e30d69c20625061acfaf5d758759be5/feedmepos-hrm-permission-1.0.16-beta.0.tgz","_integrity":"sha512-gOob551H58tmAN1UQiXdf2vtR/H5hPaZeYawoHq5gaeN2SheFQ39FsA/1IDxIiBWdkp36gYWAE/Sh8L5n8Pqwg==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"constants":["./dist/constants.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.4.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"vue":{"optional":true},"vue-router":{"optional":true},"@nestjs/core":{"optional":true},"@nestjs/common":{"optional":true},"reflect-metadata":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.16-beta.0_1784777482745_0.22731260878114967","host":"s3://npm-registry-packages-npm-production"}},"1.0.16":{"name":"@feedmepos/hrm-permission","version":"1.0.16","_id":"@feedmepos/hrm-permission@1.0.16","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"474ae1e42d86518f30e10ede07787350212819a3","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.0.16.tgz","fileCount":123,"integrity":"sha512-KxKI5hIeNAGlVqWTgdCBSCLHbyZISYMbVV9Ao3iup4fvYP7AkJuMf0BLhLJJ5PMWds9dPtEL1hoCIBHfGKY0lQ==","signatures":[{"sig":"MEUCIQDvj6Q/vtduXMo6caF6fXlxPGC7u7yyhHc7uynwTcYKOgIgQIh3CvuaTMLzikVNZikqQyrJ/rVZVYeSrEsfdW5QkyM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3817371},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.0.16.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./constants":{"types":"./dist/constants.d.ts","import":"./dist/constants.js","require":"./dist/constants.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build:go":"node scripts/gen-go.mjs","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/850ed7fc22e5e2193bdebcd394318052/feedmepos-hrm-permission-1.0.16.tgz","_integrity":"sha512-KxKI5hIeNAGlVqWTgdCBSCLHbyZISYMbVV9Ao3iup4fvYP7AkJuMf0BLhLJJ5PMWds9dPtEL1hoCIBHfGKY0lQ==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"constants":["./dist/constants.d.ts"],"components":["./dist/components/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.4.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"vue":{"optional":true},"vue-router":{"optional":true},"@nestjs/core":{"optional":true},"@nestjs/common":{"optional":true},"reflect-metadata":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.0.16_1784806318394_0.973601257289751","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@feedmepos/hrm-permission","version":"1.1.0","_id":"@feedmepos/hrm-permission@1.1.0","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"}],"dist":{"shasum":"6e314de29df00694742ad512b5317203f88b1732","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.1.0.tgz","fileCount":178,"integrity":"sha512-Ib2OxePASjcKNmtBcpdGHRCPSZ+PzkltKEKTcaM0W6h9pliJGN2Mtdl7H5l5w6pW+SMDZNfKbls+1/MWryjZaQ==","signatures":[{"sig":"MEUCIGan3pm8QCrK9Qk6O+1k6SZP+TAHwTenWo6tbrTGgY8DAiEA3fGPktOyk5R9ZYvi7CyzVtKIQqtwv7LVXBk2J7toAn8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3913063},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./constants":{"types":"./dist/constants.d.ts","import":"./dist/constants.js","require":"./dist/constants.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"},"./condition-builder":{"types":"./dist/condition-builder/index.d.ts","import":"./dist/condition-builder/index.js","require":"./dist/condition-builder/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build:go":"node scripts/gen-go.mjs","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/bd71ed36d597759da1519d7223b47450/feedmepos-hrm-permission-1.1.0.tgz","_integrity":"sha512-Ib2OxePASjcKNmtBcpdGHRCPSZ+PzkltKEKTcaM0W6h9pliJGN2Mtdl7H5l5w6pW+SMDZNfKbls+1/MWryjZaQ==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"constants":["./dist/constants.d.ts"],"components":["./dist/components/index.d.ts"],"condition-builder":["./dist/condition-builder/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.4.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"vue":{"optional":true},"vue-router":{"optional":true},"@nestjs/core":{"optional":true},"@nestjs/common":{"optional":true},"reflect-metadata":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.1.0_1785249796104_0.6982629326117951","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@feedmepos/hrm-permission","version":"1.1.1","_id":"@feedmepos/hrm-permission@1.1.1","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"},{"name":"fm_mebot","email":"mebot@feedme.cc"}],"dist":{"shasum":"cb616551509e4d04cce3bd361721364656d38e12","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.1.1.tgz","fileCount":180,"integrity":"sha512-Tknx8tz3KGbi7nEw+qsIyp9eZzt0rhARcSvXE3PsaAv5G3ouGQ1gS+mGtnukbzlwPYHjG1dE1KLf91F7vOHuMw==","signatures":[{"sig":"MEUCIQCMJ02bVzE8Q62pnZbPSZawTjscqDY0a6/rZPrUfex+RwIgFH/jCmiQ5npKfkTES1Hzgs/v3UKD3tG4/YQJt7doB8E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3915907},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.1.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./constants":{"types":"./dist/constants.d.ts","import":"./dist/constants.js","require":"./dist/constants.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"},"./condition-builder":{"types":"./dist/condition-builder/index.d.ts","import":"./dist/condition-builder/index.js","require":"./dist/condition-builder/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build:go":"node scripts/gen-go.mjs","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/9394fbb8d711b222943e0ed9b38c506a/feedmepos-hrm-permission-1.1.1.tgz","_integrity":"sha512-Tknx8tz3KGbi7nEw+qsIyp9eZzt0rhARcSvXE3PsaAv5G3ouGQ1gS+mGtnukbzlwPYHjG1dE1KLf91F7vOHuMw==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"constants":["./dist/constants.d.ts"],"components":["./dist/components/index.d.ts"],"condition-builder":["./dist/condition-builder/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.4.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"vue":{"optional":true},"vue-router":{"optional":true},"@nestjs/core":{"optional":true},"@nestjs/common":{"optional":true},"reflect-metadata":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.1.1_1786590776050_0.09430308687607836","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@feedmepos/hrm-permission","version":"1.1.2","_id":"@feedmepos/hrm-permission@1.1.2","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"},{"name":"fm_mebot","email":"mebot@feedme.cc"}],"dist":{"shasum":"abac97bb653fad260bf142a031201fcd899f417a","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.1.2.tgz","fileCount":180,"integrity":"sha512-lU/LycodgJA5xRq1kdVO+uhBeSv95OCtHBdhRVK1Cfmlksbw+WJw62WrMJwuEgjK+p4mMA7oxVsaI7sBukAhEw==","signatures":[{"sig":"MEUCIQD4Gqa+EWx94vke6GDX9wA0MWm6qqq1EwQ48VCjzsE/gQIgPRGEFWbmyrNGhS0CEIXvIHGKoRcI62BTBBOzUiRfKNA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3917156},"main":"./dist/index.cjs","type":"module","_from":"file:feedmepos-hrm-permission-1.1.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./constants":{"types":"./dist/constants.d.ts","import":"./dist/constants.js","require":"./dist/constants.cjs"},"./style.css":"./dist/style.css","./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"},"./condition-builder":{"types":"./dist/condition-builder/index.d.ts","import":"./dist/condition-builder/index.js","require":"./dist/condition-builder/index.cjs"}},"scripts":{"dev":"vite","test":"vitest run","build":"vite build","preview":"vite preview","build:go":"node scripts/gen-go.mjs","build-only":"vite build","test:watch":"vitest","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"_resolved":"/tmp/0c01b8d1cde8f86553b904ae3fe63952/feedmepos-hrm-permission-1.1.2.tgz","_integrity":"sha512-lU/LycodgJA5xRq1kdVO+uhBeSv95OCtHBdhRVK1Cfmlksbw+WJw62WrMJwuEgjK+p4mMA7oxVsaI7sBukAhEw==","_npmVersion":"11.5.1","description":"Permission types, enums, and access checking for FeedMe services.","directories":{},"_nodeVersion":"24.5.0","dependencies":{"zod":"3.17.9","mongodb":"4.17.2","@vueuse/core":"^10.11.1","@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@feedmepos/zod-repo":"1.0.7","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2"},"typesVersions":{"*":{"utils":["./dist/utils/index.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"constants":["./dist/constants.d.ts"],"components":["./dist/components/index.d.ts"],"condition-builder":["./dist/condition-builder/index.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.26","sass":"^1.77.1","vite":"^5.1.4","vitest":"^1.6.0","postcss":"^8.4.31","vue-tsc":"^2.1.10","prettier":"^3.0.3","typescript":"^5.9.3","vue-router":"^4.6.4","@types/node":"^18.17.17","tailwindcss":"^3.3.3","@nestjs/core":"^10.0.0","autoprefixer":"^10.4.23","@vue/tsconfig":"^0.4.0","@nestjs/common":"^10.0.0","vite-plugin-dts":"^3.6.0","@tsconfig/node18":"^18.2.6","reflect-metadata":"^0.2.0","@vitejs/plugin-vue":"^5.0.0"},"peerDependencies":{"vue":"^3.4.0","vue-router":"^4.2.0","@nestjs/core":"^10.0.0","@nestjs/common":"^10.0.0","reflect-metadata":"^0.2.0"},"peerDependenciesMeta":{"vue":{"optional":true},"vue-router":{"optional":true},"@nestjs/core":{"optional":true},"@nestjs/common":{"optional":true},"reflect-metadata":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/hrm-permission_1.1.2_1787025734633_0.7209424757056588","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@feedmepos/hrm-permission","version":"1.2.0","type":"module","module":"./dist/index.js","types":"./dist/index.d.ts","main":"./dist/index.cjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./constants":{"types":"./dist/constants.d.ts","import":"./dist/constants.js","require":"./dist/constants.cjs"},"./nestjs":{"types":"./dist/nestjs/index.d.ts","import":"./dist/nestjs/index.js","require":"./dist/nestjs/index.cjs"},"./components":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js","require":"./dist/components/index.cjs"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","require":"./dist/utils/index.cjs"},"./audit-log":{"types":"./dist/audit-log/index.d.ts","import":"./dist/audit-log/index.js","require":"./dist/audit-log/index.cjs"},"./condition-builder":{"types":"./dist/condition-builder/index.d.ts","import":"./dist/condition-builder/index.js","require":"./dist/condition-builder/index.cjs"},"./style.css":"./dist/style.css"},"typesVersions":{"*":{"constants":["./dist/constants.d.ts"],"nestjs":["./dist/nestjs/index.d.ts"],"components":["./dist/components/index.d.ts"],"utils":["./dist/utils/index.d.ts"],"audit-log":["./dist/audit-log/index.d.ts"],"condition-builder":["./dist/condition-builder/index.d.ts"]}},"dependencies":{"@casl/ability":"^3.2.0","@feedmepos/core":"2.14.36","@feedmepos/entity":"^0.0.4","@feedmepos/mf-common":"^1.28.6","@feedmepos/ui-library":"1.7.0","@feedmepos/zod-common":"^1.0.2","@feedmepos/zod-repo":"1.0.7","@vueuse/core":"^10.11.1","mongodb":"4.17.2","zod":"3.17.9"},"peerDependencies":{"@nestjs/common":"^10.0.0","@nestjs/core":"^10.0.0","reflect-metadata":"^0.2.0","vue":"^3.4.0","vue-router":"^4.2.0"},"peerDependenciesMeta":{"@nestjs/common":{"optional":true},"@nestjs/core":{"optional":true},"reflect-metadata":{"optional":true},"vue":{"optional":true},"vue-router":{"optional":true}},"devDependencies":{"@nestjs/common":"^10.0.0","@nestjs/core":"^10.0.0","@tsconfig/node18":"^18.2.6","@types/node":"^18.17.17","@vitejs/plugin-vue":"^5.0.0","@vue/tsconfig":"^0.4.0","autoprefixer":"^10.4.23","postcss":"^8.4.31","prettier":"^3.0.3","reflect-metadata":"^0.2.0","sass":"^1.77.1","tailwindcss":"^3.3.3","typescript":"^5.9.3","vite":"^5.1.4","vite-plugin-dts":"^3.6.0","vitest":"^1.6.0","vue":"^3.5.26","vue-router":"^4.6.4","vue-tsc":"^2.1.10"},"scripts":{"dev":"vite","build":"vite build","build-only":"vite build","build:go":"node scripts/gen-go.mjs","type-check":"vue-tsc --noEmit -p tsconfig.app.json","build:check":"vue-tsc --noEmit -p tsconfig.app.json && vite build","preview":"vite preview","test":"vitest run","test:watch":"vitest"},"_id":"@feedmepos/hrm-permission@1.2.0","description":"Permission types, enums, and access checking for FeedMe services.","_integrity":"sha512-sTaUTho953WAb0fVlOrsbLF0pLa4RooPs6sYmVPXSSci5KAaGoEx6cZTo9ATXsHMMca91rl2arz95zWoJZK1ZQ==","_resolved":"/tmp/bf5636a1377f3a289d0e910724e488a0/feedmepos-hrm-permission-1.2.0.tgz","_from":"file:feedmepos-hrm-permission-1.2.0.tgz","_nodeVersion":"24.5.0","_npmVersion":"11.5.1","dist":{"integrity":"sha512-sTaUTho953WAb0fVlOrsbLF0pLa4RooPs6sYmVPXSSci5KAaGoEx6cZTo9ATXsHMMca91rl2arz95zWoJZK1ZQ==","shasum":"e1dac189acca454a7b51a34f99a581abe1b2f7d0","tarball":"https://registry.npmjs.org/@feedmepos/hrm-permission/-/hrm-permission-1.2.0.tgz","fileCount":184,"unpackedSize":3931316,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDNrTCoXl7WDBXShHEDSgnY/MDgo2SC806aq2eG5YqwNwIhANF2LhQNOlr4LN1LCeyCOlimNfWnJlZQL4o68v5Y2sdX"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:dd44b19e-56e1-4c77-9ad5-5a1e2961bad0"}},"directories":{},"maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"},{"name":"fm_mebot","email":"mebot@feedme.cc"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/hrm-permission_1.2.0_1788425316801_0.044592632785648734"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-02T06:33:21.210Z","modified":"2026-09-03T08:48:37.162Z","0.0.1-beta.2":"2026-03-02T06:33:21.453Z","0.0.1-beta.3":"2026-03-02T06:48:52.168Z","0.0.1-dev":"2026-03-02T07:13:37.016Z","0.0.2-dev":"2026-03-03T10:03:42.733Z","0.0.3-dev":"2026-03-05T07:08:22.385Z","0.0.4-dev":"2026-03-05T08:24:18.758Z","0.0.4-dev.1":"2026-03-06T04:25:37.896Z","0.0.4-dev.2":"2026-03-10T15:54:25.680Z","0.0.4-dev.3":"2026-03-11T10:45:58.205Z","0.0.4-dev.4":"2026-03-19T10:51:09.590Z","0.0.4-dev.5":"2026-03-19T11:05:39.029Z","0.0.4-dev.6":"2026-03-23T12:10:19.736Z","0.0.4-dev.7":"2026-03-24T07:14:11.553Z","0.0.4-dev.8":"2026-03-24T08:04:44.588Z","0.0.4-dev.9":"2026-03-30T03:18:58.281Z","0.0.4-dev.10":"2026-03-30T14:56:41.098Z","0.0.4-dev.11":"2026-03-31T09:01:47.633Z","1.0.0":"2026-04-01T08:30:37.148Z","1.0.1":"2026-04-03T04:00:33.907Z","1.0.2-dev":"2026-04-15T08:12:20.116Z","1.0.2":"2026-04-16T06:33:30.480Z","1.0.3":"2026-04-17T06:55:04.837Z","1.0.4-dev.1":"2026-04-20T03:39:25.326Z","1.0.4":"2026-04-20T07:09:44.963Z","1.0.5-dev.1":"2026-04-28T04:27:44.960Z","1.0.5-dev.2":"2026-04-28T04:31:24.265Z","1.0.5-dev.3":"2026-04-28T08:03:30.202Z","1.0.5":"2026-04-30T03:43:20.951Z","1.0.6-dev":"2026-04-30T03:48:58.131Z","1.0.6-dev.1":"2026-04-30T10:09:10.198Z","1.0.6-dev.2":"2026-05-04T08:34:57.255Z","1.0.6-dev.3":"2026-05-06T02:35:22.835Z","1.0.6-dev.4":"2026-05-07T09:54:55.415Z","1.0.6-dev.5":"2026-05-07T11:41:09.837Z","1.0.6":"2026-05-11T17:23:29.806Z","1.0.7-dev":"2026-05-12T06:52:09.124Z","1.0.7":"2026-05-19T08:33:21.120Z","1.0.8":"2026-05-22T04:55:03.566Z","1.0.9":"2026-06-03T07:47:02.055Z","1.0.10-dev":"2026-06-04T08:51:28.395Z","1.0.10":"2026-06-10T04:30:36.913Z","1.0.10-dev.2":"2026-06-11T04:58:04.379Z","1.0.10-dev.3":"2026-06-11T05:15:10.088Z","1.0.11":"2026-06-11T06:31:42.993Z","1.0.12":"2026-06-22T08:20:00.463Z","1.0.13":"2026-06-26T10:47:57.188Z","1.0.14":"2026-06-29T07:35:30.837Z","1.0.11-beta.0":"2026-07-01T03:30:06.782Z","1.0.15-dev":"2026-07-01T11:19:10.916Z","1.0.15-dev.1":"2026-07-02T05:32:19.026Z","1.0.15":"2026-07-06T13:59:02.883Z","1.0.15-beta.0":"2026-07-14T05:34:19.072Z","1.1.0-dev":"2026-07-20T03:14:27.600Z","1.1.0-dev.2":"2026-07-20T04:42:08.708Z","1.1.0-dev.3":"2026-07-20T10:27:19.510Z","1.0.16-beta.0":"2026-07-23T03:31:22.912Z","1.0.16":"2026-07-23T11:31:58.579Z","1.1.0":"2026-07-28T14:43:16.274Z","1.1.1":"2026-08-13T03:12:56.225Z","1.1.2":"2026-08-18T04:02:14.906Z","1.2.0":"2026-09-03T08:48:36.989Z"},"description":"Permission types, enums, and access checking for FeedMe services.","maintainers":[{"name":"victor.chai","email":"victor.chai@feedme.cc"},{"name":"lokingwei","email":"kingwei@feedme.cc"},{"name":"danielmcfluffy","email":"daniel001.dhf@gmail.com"},{"name":"fm_mebot","email":"mebot@feedme.cc"}],"readme":"# @feedmepos/hrm-permission\n\nPermission types, enums, and access checking for FeedMe services.\n\n> **New to the permission system, or changing one?** Read\n> [docs/permission-lifecycle.md](./docs/permission-lifecycle.md) first — it\n> covers the portal vs POS lanes, where permissions are stored, how they\n> reach each consumer, and what actually happens when you add, rename or\n> delete one. This README is the API reference for the portal lane.\n\n## Installation\n\n```bash\npnpm add @feedmepos/hrm-permission\n```\n\n---\n\n## Usage\n\n### Permission Enums\n\nAll subjects are in `PermissionSubjectBusinessNamespace`, exposed via `Permission.Subject.Business`.\n\n```typescript\nimport {\n\tPermission,\n\tPermissionAction,\n\tPermissionSubjectBusinessNamespace,\n} from '@feedmepos/hrm-permission';\n\n// Actions\nPermissionAction.manage; // full control\nPermissionAction.read;\nPermissionAction.create;\nPermissionAction.update;\nPermissionAction.delete;\n\n// Subjects — use either form, they are the same value\nPermission.Subject.Business.hrm_teamMember; // 'business::hrm::teamMember'\nPermissionSubjectBusinessNamespace.hrm_teamMember; // same\n\n// Common subjects by module\nPermission.Subject.Business.menu_item; // 'business::menu::item'\nPermission.Subject.Business.menu_catalog; // 'business::menu::catalog'\nPermission.Subject.Business.menu_menuManagement; // 'business::menu::menuManagement'\n// ... (see full menu list in the collapsible below)\nPermission.Subject.Business.restaurant; // 'business::restaurant'\n\nPermission.Subject.Business.crm_promotion; // 'business::crm::promotion'\nPermission.Subject.Business.crm_voucher; // 'business::crm::voucher'\nPermission.Subject.Business.crm_membership; // 'business::crm::membership'\n\nPermission.Subject.Business.payment_payoutAccount; // 'business::payment::payoutAccount'\nPermission.Subject.Business.payment_paymentOnboarding; // 'business::payment::paymentOnboarding'\nPermission.Subject.Business.payment_transactions; // 'business::payment::transactions'\nPermission.Subject.Business.payment_settlements; // 'business::payment::settlements'\n\nPermission.Subject.Business.inventory_stockBalance; // 'business::inventory::stockBalance'\nPermission.Subject.Business.inventory_ingredient; // 'business::inventory::ingredient'\nPermission.Subject.Business.inventory_recipe; // 'business::inventory::recipe'\n// ... (see full list in the collapsible below)\n\nPermission.Subject.Business.hrm_employee; // 'business::hrm::employee'\nPermission.Subject.Business.hrm_teamMember; // 'business::hrm::teamMember'\nPermission.Subject.Business.hrm_auditLog; // 'business::hrm::auditLog'\n\nPermission.Subject.Business.report_createReport; // 'business::report::createReport'\nPermission.Subject.Business.report_accessOverview; // 'business::report::accessOverview'\n```\n\n<details>\n<summary>Full subject reference</summary>\n\n```typescript\n// General\nPermission.Subject.Business.profile;\nPermission.Subject.Business.restaurant;\n\n// Menu\nPermission.Subject.Business.menu_item; // 'business::menu::item'\nPermission.Subject.Business.menu_catalog; // 'business::menu::catalog'\nPermission.Subject.Business.menu_category; // 'business::menu::category'\nPermission.Subject.Business.menu_subCategory; // 'business::menu::subCategory'\nPermission.Subject.Business.menu_group; // 'business::menu::group'\nPermission.Subject.Business.menu_takeaway; // 'business::menu::takeaway'\nPermission.Subject.Business.menu_scheduler; // 'business::menu::scheduler'\nPermission.Subject.Business.menu_variant; // 'business::menu::variant'\nPermission.Subject.Business.menu_cookingGuide; // 'business::menu::cookingGuide'\nPermission.Subject.Business.menu_printRoute; // 'business::menu::printRoute'\nPermission.Subject.Business.menu_servingSequence; // 'business::menu::servingSequence'\nPermission.Subject.Business.menu_unit; // 'business::menu::unit'\nPermission.Subject.Business.menu_ingredient; // 'business::menu::ingredient'\nPermission.Subject.Business.menu_recipe; // 'business::menu::recipe'\nPermission.Subject.Business.menu_settings; // 'business::menu::settings'\nPermission.Subject.Business.menu_publish; // 'business::menu::publish'\nPermission.Subject.Business.menu_menuManagement; // 'business::menu::menuManagement'\nPermission.Subject.Business.menu_importExport; // 'business::menu::importExport'\n\n// CRM\nPermission.Subject.Business.crm_promotion; // 'business::crm::promotion'\nPermission.Subject.Business.crm_voucher; // 'business::crm::voucher'\nPermission.Subject.Business.crm_membership; // 'business::crm::membership'\nPermission.Subject.Business.crm_analytic; // 'business::crm::analytic'\nPermission.Subject.Business.crm_tier; // 'business::crm::tier'\nPermission.Subject.Business.crm_title; // 'business::crm::title'\nPermission.Subject.Business.crm_broadcast; // 'business::crm::broadcast'\nPermission.Subject.Business.crm_point; // 'business::crm::point'\nPermission.Subject.Business.crm_credit; // 'business::crm::credit'\nPermission.Subject.Business.crm_experience; // 'business::crm::experience'\nPermission.Subject.Business.crm_game; // 'business::crm::game'\nPermission.Subject.Business.crm_mission; // 'business::crm::mission'\nPermission.Subject.Business.crm_loyaltyMember; // 'business::crm::loyaltyMember'\nPermission.Subject.Business.crm_loyaltySegment; // 'business::crm::loyaltySegment'\nPermission.Subject.Business.crm_loyaltyCard; // 'business::crm::loyaltyCard'\nPermission.Subject.Business.crm_referral; // 'business::crm::referral'\nPermission.Subject.Business.crm_store; // 'business::crm::store'\nPermission.Subject.Business.crm_transaction; // 'business::crm::transaction'\nPermission.Subject.Business.crm_setting; // 'business::crm::setting'\nPermission.Subject.Business.crm_bin; // 'business::crm::bin'\nPermission.Subject.Business.crm_marketingMaterial; // 'business::crm::marketingMaterial'\n\n// Payment\nPermission.Subject.Business.payment_payoutAccount; // 'business::payment::payoutAccount'\nPermission.Subject.Business.payment_paymentOnboarding; // 'business::payment::paymentOnboarding'\nPermission.Subject.Business.payment_transactions; // 'business::payment::transactions'\nPermission.Subject.Business.payment_settlements; // 'business::payment::settlements'\n\n// Inventory\nPermission.Subject.Business.inventory_stock; // 'business::inventory::stock'\nPermission.Subject.Business.inventory_stockBalance; // 'business::inventory::stockBalance'\nPermission.Subject.Business.inventory_stockAdjustment; // 'business::inventory::stockAdjustment'\nPermission.Subject.Business.inventory_stockAdjustmentReason; // 'business::inventory::stockAdjustmentReason'\nPermission.Subject.Business.inventory_unitCostHistory; // 'business::inventory::unitCostHistory'\nPermission.Subject.Business.inventory_wastageTemplate; // 'business::inventory::wastageTemplate'\nPermission.Subject.Business.inventory_closingHistory; // 'business::inventory::closingHistory'\nPermission.Subject.Business.inventory_closingTemplate; // 'business::inventory::closingTemplate'\nPermission.Subject.Business.inventory_closingDraft; // 'business::inventory::closingDraft'\nPermission.Subject.Business.inventory_ingredient; // 'business::inventory::ingredient'\nPermission.Subject.Business.inventory_ingredientGroup; // 'business::inventory::ingredientGroup'\nPermission.Subject.Business.inventory_recipe; // 'business::inventory::recipe'\nPermission.Subject.Business.inventory_unit; // 'business::inventory::unit'\nPermission.Subject.Business.inventory_purchaseTransfer; // 'business::inventory::purchaseTransfer'\nPermission.Subject.Business.inventory_orderDraftApproval; // 'business::inventory::orderDraftApproval'\nPermission.Subject.Business.inventory_transferOut; // 'business::inventory::transferOut'\nPermission.Subject.Business.inventory_surcharge; // 'business::inventory::surcharge'\nPermission.Subject.Business.inventory_orderTemplate; // 'business::inventory::orderTemplate'\nPermission.Subject.Business.inventory_supplier; // 'business::inventory::supplier'\nPermission.Subject.Business.inventory_warehouse; // 'business::inventory::warehouse'\nPermission.Subject.Business.inventory_publish; // 'business::inventory::publish'\nPermission.Subject.Business.inventory_import; // 'business::inventory::import'\nPermission.Subject.Business.inventory_integration; // 'business::inventory::integration'\n\n// HRM\nPermission.Subject.Business.hrm_employee; // 'business::hrm::employee'\nPermission.Subject.Business.hrm_teamMember; // 'business::hrm::teamMember'\nPermission.Subject.Business.hrm_auditLog; // 'business::hrm::auditLog'\nPermission.Subject.Business.hrm_approvalCode; // 'business::hrm::approvalCode'\n\n// Report\nPermission.Subject.Business.report_createReport; // 'business::report::createReport'\nPermission.Subject.Business.report_accessOsDashboard; // 'business::report::accessOsDashboard'\nPermission.Subject.Business.report_accessOverview; // 'business::report::accessOverview'\nPermission.Subject.Business.report_accessInsight; // 'business::report::accessInsight'\nPermission.Subject.Business.report_accessSetting; // 'business::report::accessSetting'\nPermission.Subject.Business.report_accessIntegration; // 'business::report::accessIntegration'\nPermission.Subject.Business.report_reports_allDefaultReports; // 'business::report::allDefaultReports'\nPermission.Subject.Business.report_reports_allCustomReports; // 'business::report::allCustomReports'\n\n// Media\nPermission.Subject.Business.media_assets; // 'business::media::assets'\n```\n\n</details>\n\n### checkAccess\n\n```typescript\nimport { checkAccess } from '@feedmepos/hrm-permission';\nimport type { RawRule } from '@casl/ability';\n\n// userPermissions comes from your permission service / store\nconst userPermissions: RawRule[] = /* ... */;\n```\n\n### Basic check (AND — all must pass)\n\n```typescript\nconst result = checkAccess(\n\t[\n\t\t{ action: PermissionAction.manage, subject: Permission.Subject.Business.hrm_teamMember },\n\t\t{ action: PermissionAction.read, subject: Permission.Subject.Business.hrm_employee },\n\t],\n\tuserPermissions\n);\n\nif (result.granted) {\n\t// allowed\n} else {\n\tconsole.log('blocked by', result.decisivePermission);\n}\n```\n\n### coverSubject — OR fallback\n\nGrants access when the user can perform the action on **either** `subject` **or** `coverSubject`. Useful for \"group covers individual\" patterns (e.g. a catch-all report permission covering a specific dynamic report subject).\n\n```typescript\nconst result = checkAccess(\n\t[\n\t\t{\n\t\t\taction: PermissionAction.read,\n\t\t\tsubject: 'business::report::myDynamicReport',\n\t\t\tcoverSubject: Permission.Subject.Business.report_reports_allDefaultReports,\n\t\t},\n\t],\n\tuserPermissions\n);\n```\n\nBy default, `coverSubject` uses OR semantics. For report access checks where a report-specific rule should override an all-report default, pass `coverSubjectMode: 'directOverride'`. In that mode, `coverSubject` is consulted only when the user has no non-inverted direct rule for the requested `subject` and `action`.\n\n```typescript\nconst result = checkAccess(\n\t{\n\t\taction: PermissionAction.read,\n\t\tsubject: 'business::report::reports::closeup',\n\t\tcoverSubject: Permission.Subject.Business.report_reports_allDefaultReports,\n\t\tcoverSubjectMode: 'directOverride',\n\t},\n\tuserPermissions,\n\treportAccessWindowBuilder.buildContext?.({ nowAtUtc, reportDate })\n);\n```\n\n`buildContext` is an optional convenience supplied by a domain builder. A consumer may construct\nthe context itself instead, as long as the final object satisfies the builder's required\n`contextSchema` fields.\n\n### Condition-aware check (single permission + context)\n\nUse this when a rule carries a `$in` / `$eq` condition (e.g. restaurant-scoped permissions, or an\nauthored condition-builder restriction like report access windows). Only accepts a single permission\nbecause context fields are subject-specific. `context` is optional — see below for what happens\nwhen it's omitted. Works identically on the frontend (against a cached permissions array, no\nnetwork call) and the backend.\n\n```typescript\nconst result = checkAccess(\n\t{ action: PermissionAction.manage, subject: Permission.Subject.Business.restaurant },\n\tuserPermissions,\n\t{ restaurantId: 'abc' } // evaluated against rule conditions, e.g. { restaurantId: { $in: ['abc', 'def'] } }\n);\n\n// Typical use: filter a list to items the user can access\nconst accessible = restaurants.filter(\n\t(r) =>\n\t\tcheckAccess(\n\t\t\t{ action: PermissionAction.manage, subject: Permission.Subject.Business.restaurant },\n\t\t\tuserPermissions,\n\t\t\t{ restaurantId: r.id }\n\t\t).granted\n);\n```\n\n**Omitting `context`** (or passing `undefined`): whether that's tolerated or denied is derived from\nthe rules, not declared anywhere. If every applicable direct or cover rule that grants this permission carries a condition on\na registered condition-builder's `ownedFields`, a real restriction exists and can't be verified —\ndenied (`missing_or_invalid_context`). If any applicable rule is unconditioned (e.g. the builder's\n`unrestricted` preset) or conditioned on fields no builder owns, context is irrelevant and the\ntype-level result stands (`not_enforced`). A builder's `ownedFields` only count toward this\nderivation for actions its `appliesToActions` covers (absent = all actions) — a rule conditioned\nsolely on a builder's fields is unconditioned, and thus `not_enforced`, for an action that builder\ndoes not govern. See \"Advanced: condition builders\" below for the full algorithm.\n\n### Return value\n\n```typescript\ninterface AccessCheckResult {\n\tgranted: boolean;\n\t/** The permission requirement that was decisive. */\n\tdecisivePermission: CaslPermission;\n\t/** The matched CASL rule, or null if nothing matched. Parse `.reason` as JSON for audit source info. */\n\tdecisiveRule: RawRule | null;\n}\n\n// The single-permission overload actually returns this superset:\ninterface ContextAccessCheckResult extends AccessCheckResult {\n\t/** How condition evaluation participated in the decision. */\n\tconditionEvaluation: 'matched' | 'missing_or_invalid_context' | 'not_enforced';\n}\n```\n\n### Adding a New Permission\n\n> **Tip:** You can ask Copilot to do this for you using the `add-new-permission` skill. Example prompts:\n>\n> ```\n> @workspace /add-new-permission add hrm_payroll under the HRM category with manage action\n> ```\n>\n> ```\n> @workspace /add-new-permission add crm_loyaltyCard under CRM category, manage action, behind feature flag crm_loyalty_card\n> ```\n>\n> ```\n> @workspace /add-new-permission add report_exportCsv under Report category with manage action\n> ```\n\nAdding a portal permission (one admins can toggle in the UI) requires two file changes.\n\n### Step 1 — Add the subject enum value\n\nFile: `packages/permission/src/common/types.ts`\n\n```typescript\nexport enum PermissionSubjectBusinessNamespace {\n\t// ... existing entries ...\n\n\t// HRM module — follow the module_feature naming pattern\n\thrm_payroll = 'business::hrm::payroll',\n}\n```\n\n**Naming rules:**\n\n- Prefix with the module: `crm_`, `inventory_`, `hrm_`, `report_`\n- camelCase feature name\n- Value pattern: `business::<module>::<feature>`\n\n### Step 2 — Add it to `FullPortalPermissions`\n\nFile: `packages/permission/src/common/full-portal-permissions.ts`\n\n```typescript\nexport const FullPortalPermissions = {\n\t// ... existing entries ...\n\n\tpayroll: {\n\t\tlabel: 'Payroll Management', // shown in the UI permission editor and audit logs\n\t\tsubject: PermissionSubjectBusinessNamespace.hrm_payroll,\n\t\tactions: [PermissionAction.manage],\n\t\tcategory: PermissionCategory.hrm, // General | Inventory | HRM | CRM | Report\n\t\t// showByFeatureFlag: 'payroll-beta',                // optional: hides checkbox until flag is on\n\t},\n};\n```\n\n**Available categories:** `PermissionCategory.general`, `.inventory`, `.hrm`, `.crm`, `.payment`, `.report`, `.reports`, `.customReports`, `.menu`, `.media`\n\nThe permission will now appear as a checkbox in the HRM portal permission editor under the correct category section. Two build steps remain.\n\n### Step 3 — Rebuild the package\n\n```bash\ncd packages/permission && pnpm build\n```\n\n### Step 4 — Regenerate Go enums\n\n```bash\ncd packages/permission && pnpm build:go\n```\n\nGo services consume subjects via the generated `packages/permission/go`\nmodule (`portal`/`pos`/`casl` subpackages). The \"Permission Go Enums Check\" CI\nworkflow fails the PR if the regenerated output is stale, so commit the diff\nin the same PR — see `packages/permission/go/README.md` for the full Go-side\npicture.\n\n---\n\n<details>\n<summary>Advanced: system permission sets (auto-injected resource dependencies)</summary>\n\nSome features silently require access to other resources to work correctly (e.g. \"Team Member Management\" needs to read the POS role list to populate a dropdown). Rather than requiring admins to grant both, you define a **system permission set** that auto-injects the dependency whenever the parent permission is granted.\n\n### When to use this\n\n- Your feature silently requires read access to another resource → use `permissions[]`\n- You split an existing subject into multiple new granular subjects and existing users should silently get them → use `permissionSets[]` (backward-compat chaining)\n- If neither applies, skip this — most portal permissions do not need a system set\n\n### Subject namespaces in `permissions[]`\n\n`permissions[]` accepts both resource subjects (`hrm::posRole`) and business/module subjects\n(`business::payment::payoutAccount`). Both are injected as leaf-level CASL rules and are never\nshown in the portal UI. Use `PermissionSubjectBusinessNamespace` directly when the subject already\nexists there — no separate resource enum needed. Create a resource enum only for subjects with no\ncorresponding portal entry.\n\n### `permissions[]` — inject a read-only dependency\n\n```typescript\n// permission-manifest/hrm/hrm-system-sets.ts\nimport { HrmResource } from './types';\n\n[`set_${PermissionSubjectBusinessNamespace.hrm_teamMember}`]: {\n  key: 'sys:team_member_access',   // stable — never change after deploy, stored in audit logs\n  name: 'Team Member Access',      // shown in audit log breadcrumbs\n  permissions: [\n    {\n      label: 'Pos Role',           // subject name only, reused as audit log display label\n      subject: HrmResource.hrm_posRole,\n      actions: [PermissionAction.read],\n    },\n  ],\n},\n```\n\n> **Recommended rule: prefer `read`-only actions in `permissions[]` — avoid `manage` where possible.**\n> Injecting `manage` causes two problems: (1) **UI bleed** — the editor filters out system-injected\n> entries by checking for non-`manage` actions, so a `manage` entry renders as an auto-checked\n> checkbox; (2) **over-grant** — `manage` is a CASL wildcard covering all actions, silently granting\n> destructive write access the admin never explicitly authorised.\n> If `manage` access is needed as a side-effect, prefer `permissionSets[]` chaining instead.\n> Some existing system sets (e.g. `hrm-system-sets.ts`) inject `manage` via `permissions[]` for\n> legacy reasons — new sets should avoid this pattern.\n\n### `permissionSets[]` — chain to another portal permission (backward-compat)\n\nUse when an existing parent permission should silently unlock new granular sibling subjects. Each chained subject gets a synthetic `manage` rule and its own system set is recursively expanded.\n\n```typescript\n[`set_${PermissionSubjectBusinessNamespace.hrm_payroll}`]: {\n  key: 'sys:payroll_access',\n  name: 'Payroll Access',\n  permissionSets: [\n    PermissionSubjectBusinessNamespace.hrm_payroll_approval, // users with payroll:manage get this too\n  ],\n},\n```\n\n### File organisation\n\nWhen a domain has many system sets, extract them:\n\n```\npermission-manifest/\n  hrm/\n    types.ts           ← HrmResource enum\n    hrm-system-sets.ts\n    index.ts\n  inventory/\n    types.ts           ← InventoryResource enum\n    inventory-system-sets.ts\n    index.ts\n```\n\nSpread them into `SYSTEM_PERMISSION_SETS` in `system-permission-sets.ts`:\n\n```typescript\nexport const SYSTEM_PERMISSION_SETS = {\n\t...INVENTORY_SYSTEM_SETS,\n\t...HRM_SYSTEM_SETS,\n};\n```\n\n### Updated checklist (with system set)\n\n| Step                            | File                            | Portal permission | Resource dependency |\n| ------------------------------- | ------------------------------- | :---------------: | :-----------------: |\n| Add enum value                  | `types.ts`                      |        ✅         |         ✅          |\n| Add to `FullPortalPermissions`  | `full-portal-permissions.ts`    |        ✅         |         ❌          |\n| Add to `SYSTEM_PERMISSION_SETS` | `permission-manifest/<domain>/` |        ❌         |         ✅          |\n| Add `@Action` to controller     | your controller                 |        ✅         |         ✅          |\n| Rebuild package                 | —                               |        ✅         |         ✅          |\n\n</details>\n\n<details>\n<summary>Advanced: condition builders (per-request condition customization)</summary>\n\nA **condition builder** lets a permission carry a _condition_ that is matched against a\nper-request **context** at evaluation time — e.g. \"this staff member may read a report only for\nthe current day\", or \"only restaurants A/B\". The admin configures the condition in the portal; the\nendpoint supplies the context; HRM matches them with CASL.\n\n### The two halves: condition vs context\n\n|               | What                                                                  | Who produces it                                | When           |\n| ------------- | --------------------------------------------------------------------- | ---------------------------------------------- | -------------- |\n| **condition** | stored mongo-query on the rule, e.g. `{ reportAgeDays: { $lte: 7 } }` | admin via the portal form → `toCondition`      | authoring time |\n| **context**   | computed scalars, e.g. `{ reportAgeDays: 6 }`                         | the endpoint's `@Action({ context })` resolver | every request  |\n\nHRM never computes \"now\" or interprets the condition — the team pre-computes any relative value\n(e.g. \"days ago\") into a **constant-comparison** scalar in the context. CASL matches the context\nagainst the stored condition: `6 <= 7` → granted.\n\n### What a domain team provides\n\nFour things — all of it is \"content\"; HRM owns the frame (registry, portal host, evaluation):\n\n**1. The builder** (`common/condition-builder/<domain>/<name>-builder.ts`) — the whole builder in\nONE file via `defineConditionBuilder`: context schema, the pure form ⇄ condition translation, a\ndeclarative `form` config (rendered by the portal's generic renderer — no per-builder Vue file),\n`ownedFields`, and optionally a co-located `buildContext` convenience factory. Consumers may use\nthat factory or build the same schema-valid context themselves. `labelKey`s follow the\n`conditionBuilder.<builderGroup>.<field>` convention — a builder ships its own translations as\n`<domain>/locales/*.json` (one file per locale, content nested under its own top-level key, e.g.\n`{ \"reportAccessWindow\": { ... } }`) and registers them with one import + one spread in\n`common/condition-builder/locales.ts`, which the portal consumes as a single message source\nalongside its own view-owned locale files:\n\n```typescript\nimport { z } from 'zod';\nimport type { ConditionFormConfig } from '../form-config';\nimport { defineConditionBuilder } from '../form-config';\n\nexport const REPORT_ACCESS_WINDOW_CONTEXT_SCHEMA = z.object({\n\treportDate: z.string(),\n\treportAgeDays: z.number().int().min(0),\n\treportAgeMonths: z.number().int().min(0),\n\treportAgeYears: z.number().int().min(0),\n});\n\nexport type ReportAccessWindowForm =\n\t| { mode: 'unrestricted' }\n\t| { mode: 'since'; sinceAtUtc: string }\n\t| { mode: 'last'; amount: number; unit: 'days' | 'months' | 'years' };\n\nconst reportAccessWindowForm: ConditionFormConfig = {\n\tdefaults: { mode: 'unrestricted' },\n\tfields: [\n\t\t{\n\t\t\tkind: 'radio',\n\t\t\tkey: 'mode',\n\t\t\tlabelKey: 'conditionBuilder.reportAccessWindow.mode',\n\t\t\toptions: {\n\t\t\t\tstatic: [\n\t\t\t\t\t{ value: 'unrestricted', labelKey: 'conditionBuilder.reportAccessWindow.unrestricted' },\n\t\t\t\t\t{ value: 'since', labelKey: 'conditionBuilder.reportAccessWindow.since' },\n\t\t\t\t\t{ value: 'last', labelKey: 'conditionBuilder.reportAccessWindow.last' },\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tkind: 'date',\n\t\t\tkey: 'sinceAtUtc',\n\t\t\tlabelKey: 'conditionBuilder.reportAccessWindow.sinceAtUtc',\n\t\t\tvisibleWhen: { field: 'mode', eq: 'since' },\n\t\t},\n\t\t{\n\t\t\tkind: 'number',\n\t\t\tkey: 'amount',\n\t\t\tlabelKey: 'conditionBuilder.reportAccessWindow.amount',\n\t\t\tmin: 1,\n\t\t\tdefault: 7,\n\t\t\tvisibleWhen: { field: 'mode', eq: 'last' },\n\t\t},\n\t\t{\n\t\t\tkind: 'select',\n\t\t\tkey: 'unit',\n\t\t\tlabelKey: 'conditionBuilder.reportAccessWindow.unit',\n\t\t\tdefault: 'days',\n\t\t\tvisibleWhen: { field: 'mode', eq: 'last' },\n\t\t\toptions: {\n\t\t\t\tstatic: [\n\t\t\t\t\t{ value: 'days', labelKey: 'conditionBuilder.reportAccessWindow.days' },\n\t\t\t\t\t{ value: 'months', labelKey: 'conditionBuilder.reportAccessWindow.months' },\n\t\t\t\t\t{ value: 'years', labelKey: 'conditionBuilder.reportAccessWindow.years' },\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport const reportAccessWindowBuilder = defineConditionBuilder<ReportAccessWindowForm>({\n\tbuilderKey: 'report-access-window', // stable id — never change after deploy\n\tversion: 1,\n\tcontextSchema: REPORT_ACCESS_WINDOW_CONTEXT_SCHEMA, // ownedFields derived from this\n\tform: reportAccessWindowForm,\n\n\t// toCondition/fromCondition are GENERATED from these templates: when the form\n\t// matches `when`, `condition` is stored with `{ $form: '<field>' }` substituted\n\t// by the form value — and the inverse (stored condition → form) is derived by\n\t// matching back against the same templates, so the two directions cannot drift.\n\t// Unknown stored shapes fall back to the form defaults — never throw.\n\ttemplates: [\n\t\t{ when: { mode: 'unrestricted' }, condition: {} }, // empty = no restriction\n\t\t{\n\t\t\twhen: { mode: 'since' },\n\t\t\tcondition: { reportDate: { $gte: { $form: 'sinceAtUtc' } } },\n\t\t},\n\t\t{\n\t\t\twhen: { mode: 'last', unit: 'days' },\n\t\t\tcondition: { reportAgeDays: { $lte: { $form: 'amount' } } },\n\t\t},\n\t\t{\n\t\t\twhen: { mode: 'last', unit: 'months' },\n\t\t\tcondition: { reportAgeMonths: { $lte: { $form: 'amount' } } },\n\t\t},\n\t\t{\n\t\t\twhen: { mode: 'last', unit: 'years' },\n\t\t\tcondition: { reportAgeYears: { $lte: { $form: 'amount' } } },\n\t\t},\n\t],\n});\n```\n\nTemplates cover the common case: \"preset → fixed condition shape with directly substituted form\nvalues\". Only when a condition needs COMPUTED operands (arithmetic on form values, merged fields)\nshould a builder hand-write the `toCondition(form)` / `fromCondition(condition)` pair instead —\n`defineConditionBuilder` accepts either style. Hand-written `fromCondition` MUST tolerate\nnull/unknown shapes (older rules) and never throw.\n\n**Optional hooks** — a builder may also implement either of these on the same object passed to\n`defineConditionBuilder` (they pass through untouched, including through the `templates` shorthand):\n\n```typescript\nappliesToActions?(actions: string[]): boolean;\nsummarizeForm?(form: TForm, opts: { timeZone: string }): ConditionSummary | undefined;\n```\n\n- `appliesToActions` — whether this builder governs a rule carrying these actions. Absent = applies\n  always. Gates both the authoring UI (E.g. `reportAccessWindowBuilder` only offers authoring for\n  `read`/`manage` rules) and missing-context enforcement derivation (see **Evaluation** below) — a\n  check for an action outside this set is never failed closed by this builder's `ownedFields`.\n- `summarizeForm` — a `{ labelKey, params }` summary of a form value for display (e.g. an\n  \"inherited condition\" hint next to an authoring control). The host resolves `labelKey` via i18n;\n  `timeZone` is an IANA zone the host resolves from business context and passes in — the builder\n  never looks it up itself.\n\n**2. Attachment** (`common/condition-builder/attachments.ts`) — ONE central declarative map\ndecides which subjects render (and enforce) which builders. The builder itself is a pure\n\"condition entity\" and knows nothing about subjects; importing the builder objects here is also\nwhat loads them — a builder absent from this map does not exist anywhere. This is\nauthoring/storage only — it does not declare an enforcement mode; whether a condition is actually\nenforced is derived per-check by `checkAccess` from the data (see **Evaluation** below):\n\n```typescript\n// attachments.ts — add your builder to the relevant subject entries\nconst REPORT_COMMON = [reportAccessWindowBuilder]; // shared list — grow it, every entry grows\n\nexport const CONDITION_BUILDER_ATTACHMENTS: Record<string, ConditionBuilder[]> = {\n\t'prefix:business::report::reports::': REPORT_COMMON,\n\t// exact entry = the WHOLE truth for that subject (opts out of / extends the prefix):\n\t'business::report::reports::dailySales': [...REPORT_COMMON, dailySpecialBuilder],\n};\n```\n\nKeys accept exact subjects and `prefix:<subjectPrefix>` entries (dynamic subjects like per-report\npermissions). Resolution is most-specific-wins — exact > longest prefix — and the winning entry\nfully replaces the others (entries never merge; compose shared lists with spread). A subject may\ncarry SEVERAL builders: array order = portal render order, and builders in one entry must own\ndisjoint context fields (enforced with a throw at load).\n\n**3. The form** — usually NO Vue file: the declarative `form` config above is rendered by the\nportal's generic `ConditionFormRenderer` (fields, `visibleWhen`, static/`provider` options) in\nboth permission editors automatically. Only for UI that exceeds the declarative vocabulary, set\n`form: { component: '<key>' }` and register the component in\n`condition-builders/component-map.ts` under that key (escape hatch).\n\n**4. The `@Action` context resolver** on the endpoint (in the team's own service) — computes the\nscalars the schema declares:\n\n```typescript\n@Action({\n\tlevel: Permission.Level.business,\n\tsubject: ({ params }) => `business::report::reports::${params.reportKey}`,\n\taction: Permission.Action.read,\n\tcontext: ({ query }) => ({\n\t\treportDate: new Date(query.reportDate).toISOString(),\n\t\treportAgeDays: diffDays(new Date(), new Date(query.reportDate)),\n\t\treportAgeMonths: diffMonths(new Date(), new Date(query.reportDate)),\n\t\treportAgeYears: diffYears(new Date(), new Date(query.reportDate)),\n\t}),\n})\n@Get('/:reportKey')\nasync getReport() {}\n```\n\n> Some subjects are also evaluated **locally** by a non-HRM consumer instead of round-tripping\n> through the backend — e.g. POS's Go CASL port checks report access-window access on-device. That\n> consumer may use its own same-language context factory, pinned against a shared parity fixture so\n> it can't drift from the required schema. See `reportAccessWindowBuilder.buildContext`\n> and its Go port at `permission/lib/conditionbuilder/report_access_window.go` (parity fixtures:\n> `packages/shared/condition-builder/fixtures/report-access-window.json`) for the reference pattern.\n\n### Evaluation\n\nThere is no declared enforcement mode — `checkAccess` derives it from the data on every check:\n\n1. Run the type-level check (ignoring conditions). If denied, stop — context can never rescue a\n   type-level deny.\n2. If granted, look at every non-inverted rule that applies to this subject+action. A builder's\n   `ownedFields` only count for this step if its `appliesToActions` covers the action being checked\n   (absent = always counts) — e.g. a rule mixing `create` and `read` conditioned only on the report\n   access-window builder's fields is unconditioned, for a `create` check, since that builder doesn't\n   govern `create`. If **any** applicable rule has no condition, or a condition that doesn't touch an\n   in-scope `ownedFields` key (e.g. the rule is `unrestricted`, or the condition belongs to an\n   unrelated/legacy mechanism) — context is irrelevant. Grant, `not_enforced`.\n3. If **every** applicable rule carries a condition on an `ownedFields` key, a real restriction is\n   configured and needs evaluating: missing or schema-invalid context → **deny**\n   (`missing_or_invalid_context`, fail-closed); valid context → match it against the condition\n   (`matched`).\n\nPractical effect: while every rule for a subject stays `unrestricted` (the builder's default),\nnothing requires a `context` resolver — authoring and storage work with zero endpoint changes. The\nmoment an admin configures a real restriction, every endpoint guarding that subject needs a\n`context` resolver or requests will be denied. So ship resolvers on **all** endpoints for a subject\n_before_ anyone configures anything other than `unrestricted` for it — not after.\n\nScope boundary: this is derived only from non-inverted (restricted-allow) rules. A conditioned\n_deny_ rule on an `ownedFields` key is not a supported pattern here (production revoke logic never\nemits one — see `permission-set.ts`'s `invertBase`/`getEffectivePermissions`, which strip the\ncondition or delete the subject outright for a full revoke instead of relying on CASL to negate a\ncondition on an inverted rule).\n\n### Condition shape: flat fields only\n\nSibling fields in one condition are **AND**-ed. Conditions must be FLAT — every key a top-level\nowned field. Builders must **not** emit `$or`/`$and`:\n\n- Missing-context enforcement derivation (see **Evaluation** above) only inspects top-level\n  condition keys — an owned field nested under `$or` reads as unconditioned for that check, a\n  silent fail-open.\n- CASL v4+ removed logical operators from the default matcher. Stored conditions are data, not\n  code — they outlive whatever wrote them, so a CASL upgrade would need a production data\n  migration to re-shape every already-saved `$or` condition, not just a code change.\n\nOR-shaped policies, in order of preference:\n\n1. **Compute the OR in `buildContext` as a derived scalar field.** E.g. the policy \"current month\n   always, last month until the 7th, older never\": derive a single field\n   `graceDaysSinceMonthEnd` (current/future month → `0`; last month → today's day-of-month; older\n   → a large sentinel) and condition on `{ graceDaysSinceMonthEnd: { $lte: N } }` — one flat,\n   parameterized field expresses the whole rule.\n2. **Multiple same-subject rules** — CASL unions positive grants across rules (guarded by\n   `__tests__/casl-rule-union.test.ts`). Today this is authorable only via separate permission\n   sets, since the builder/portal path emits one condition per rule.\n\n> `contextSchema` should declare every field a builder's condition references — declared fields are\n> validated (fail-closed on bad values); undeclared context fields pass through to matching\n> unvalidated (so legacy scoping keys like `restaurantId: { $in: [...] }` keep evaluating).\n\n### Required test\n\nEvery builder must include a round-trip test — it's what catches a wrong `fromCondition`:\n\n```typescript\nexpect(builder.fromCondition(builder.toCondition(form))).toEqual(form);\n```\n\n### Checklist\n\n| Step                                                                                       | File                                                                                      |\n| ------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------- |\n| Builder (schema + form config + templates/to-fromCondition + optional buildContext)        | `common/condition-builder/<domain>/<name>-builder.ts`                                     |\n| Export from the domain barrel                                                              | `common/condition-builder/<domain>/index.ts`                                              |\n| Translations (one JSON per locale) + register in the aggregator                            | `common/condition-builder/<domain>/locales/*.json`, `common/condition-builder/locales.ts` |\n| Attach (subject → builders, ONE central map)                                               | `common/condition-builder/attachments.ts`                                                 |\n| _(only for bespoke UI)_ component + `component-map` entry                                  | `apps/hrm-portal/.../condition-builders/`                                                 |\n| `@Action({ context })` resolver                                                            | your controller                                                                           |\n| _(only if a subject is also evaluated locally, e.g. POS)_ context factory + parity fixture | e.g. `permission/lib/conditionbuilder/`, `packages/shared/condition-builder/fixtures/`    |\n| Round-trip test                                                                            | `__tests__/`                                                                              |\n| Rebuild package                                                                            | `cd packages/permission && pnpm build`                                                    |\n\n</details>\n\n<details>\n<summary>Vue components & route protection</summary>\n\n```typescript\nimport '@feedmepos/hrm-permission/style.css';\n```\n\n### PermissionWrapper\n\nRenders children only when route permissions are satisfied.\n\n```vue\n<template>\n\t<PermissionWrapper>\n\t\t<div>Protected content</div>\n\t</PermissionWrapper>\n</template>\n\n<script setup lang=\"ts\">\nimport { PermissionWrapper } from '@feedmepos/hrm-permission/components';\n</script>\n```\n\n### withPermission HOC\n\nWraps a component so it renders only when the route's `validationManifest` permissions are satisfied. Typically combined with a lazy-loaded component:\n\n```typescript\nimport { withPermission } from '@feedmepos/hrm-permission/components';\nimport { withLoading } from '@/components/loading';\nimport { Permission } from '@feedmepos/hrm-permission';\nimport type { RouteMeta } from 'vue-router';\n\n// Wrap lazy-loaded views\nconst hrMain = withPermission(withLoading(() => import('@/views/hr/Main.vue')));\nconst teamMain = withPermission(withLoading(() => import('@/views/team/Main.vue')));\n\n// Helper to build the required route meta\nconst canManage = (subject: string): RouteMeta =>\n\t({\n\t\tvalidationManifest: {\n\t\t\trequiredCaslPermissions: [{ action: Permission.Action.manage, subject }],\n\t\t},\n\t}) as unknown as RouteMeta;\n\n// Routes\nconst routes = [\n\t{\n\t\tpath: '/',\n\t\tcomponent: hrMain,\n\t\tmeta: canManage(Permission.Subject.Business.hrm_employee),\n\t\tchildren: [\n\t\t\t{\n\t\t\t\tpath: 'employee',\n\t\t\t\tcomponent: withLoading(() => import('@/views/hr/employee/EmployeeList.vue')),\n\t\t\t},\n\t\t\t{ path: 'role', component: withLoading(() => import('@/views/hr/role/RoleList.vue')) },\n\t\t],\n\t},\n\t{\n\t\tpath: '/team',\n\t\tcomponent: teamMain,\n\t\tmeta: canManage(Permission.Subject.Business.hrm_teamMember),\n\t},\n];\n```\n\nThe `validationManifest` on the route meta is read by `withPermission` to check the user's CASL ability before rendering. If the check fails, the component is not mounted.\n\n</details>\n\n<details>\n<summary>Backend service & NestJS integration</summary>\n\n### Standalone\n\n```typescript\nimport { PermissionService } from '@feedmepos/hrm-permission/nestjs';\n\nconst service = new PermissionService({\n\tmongoUrl: process.env.MONGODB_URL,\n\tdbName: process.env.MONGODB_NAME || 'companyDB',\n});\n\nawait service.initialize();\n\nconst ability = await service.constructAbility({\n\tuserId: 'user123',\n\tlevel: 1, // Permission.Level.business\n\trole: 'admin',\n\tbusinessId: 'biz123',\n});\n\nawait service.close();\n```\n\n### NestJS module\n\n```typescript\n// app.module.ts\nimport { PermissionModule } from '@feedmepos/hrm-permission/nestjs';\n\n@Module({\n\timports: [\n\t\tPermissionModule.forRoot({\n\t\t\tmongoUrl: process.env.MONGODB_URL,\n\t\t\tdbName: process.env.MONGODB_NAME,\n\t\t}),\n\t],\n})\nexport class AppModule {}\n\n// your.service.ts\nimport { PermissionService } from '@feedmepos/hrm-permission/nestjs';\n\n@Injectable()\nexport class MyService {\n\tconstructor(private readonly permissionService: PermissionService) {}\n}\n```\n\n### Environment variables\n\n| Variable       | Required | Description                          |\n| -------------- | -------- | ------------------------------------ |\n| `MONGODB_URL`  | ✅       | MongoDB connection string            |\n| `MONGODB_NAME` | —        | Database name (default: `companyDB`) |\n\n</details>\n\n<details>\n<summary>Audit logging</summary>\n\nAudit logging is handled automatically by **hrm-backend** — every `ActionGuard` permission check writes a ClickHouse entry via gRPC. Consumer services do not call any audit-log function directly.\n\n**Two-event model.** A single request produces up to two records, correlated by the request's `traceId`:\n\n1. **Access check** (`AuditLogEntry`) — written on every guarded request, granted or denied. Carries `eventKey`, `entityId`, and `params` authored on `@Action` (the request-intent key, in `<entity>.<verb>` form, e.g. `inventory-item.adjust-stock`).\n2. **Operation event(s)** (`AuditLogOperation`) — written after a mutation handler settles (POST/PUT/PATCH/DELETE), one per `audit.record()` call. Carries the effect key, `status` (`success` / `failed`), `durationMs`, optional `before`/`after` snapshots, and optional `changeNodes` (display-ready human-readable diff rows resolved at write time — the portal renders them as a table, falling back to raw JSON diff when absent).\n\n`eventKey` is a stable, domain-owned key — domains may introduce keys without changing ActionGuard. See `@feedmepos/hrm-actionguard` for how `@Action` and `audit.record()` populate these.\n\nIf you need to build a log entry manually (e.g. inside hrm-backend itself), use `buildPermissionLog`:\n\n```typescript\nimport { buildPermissionLog, type AuditContext } from '@feedmepos/hrm-permission/audit-log';\nimport { checkAccess } from '@feedmepos/hrm-permission/utils';\n\nconst result = checkAccess(\n\t[{ action: PermissionAction.read, subject: Permission.Subject.Business.hrm_employee }],\n\tuserPermissions\n);\n\nconst logEntry = buildPermissionLog(result, {\n\tuserId: 'user123',\n\trequestPath: '/api/employees',\n\trequestMethod: 'GET',\n\trequestBody: '{\"key\":\"value\"}', // serialized string — plain JSON or \"gzip:<base64>\" for large bodies\n\tbusinessId: 'biz456',\n\tcountry: 'MY',\n} satisfies AuditContext);\n```\n\n`AuditContext.requestBody` is a **string** — either plain JSON (`JSON.stringify(body)`) for bodies ≤ 1 MB, or `\"gzip:<base64>\"` for larger bodies (produced by `serializeRequestBody` in `@feedmepos/hrm-actionguard`). Legacy records stored in ClickHouse may have `requestBody` as a `Record<string, unknown>` object — `AuditLogMetadata.requestBody` is typed as `string | Record<string, unknown>` to handle both.\n\n</details>\n\n<details>\n<summary>Migration guide</summary>\n\n### Flat → namespaced subjects\n\n`PermissionSubjectBusiness` is `@deprecated`. Use `PermissionSubjectBusinessNamespace` instead. Legacy subjects are automatically remapped at runtime.\n\n| Old (deprecated)            | New                                    |\n| --------------------------- | -------------------------------------- |\n| `business::promotion`       | `business::crm::promotion`             |\n| `business::voucher`         | `business::crm::voucher`               |\n| `business::membership`      | `business::crm::membership`            |\n| `business::stock`           | `business::inventory::stock`           |\n| `business::ingredient`      | `business::inventory::ingredient`      |\n| `business::recipe`          | `business::inventory::recipe`          |\n| `business::unit`            | `business::inventory::unit`            |\n| `business::supplier`        | `business::inventory::supplier`        |\n| `business::warehouse`       | `business::inventory::warehouse`       |\n| `business::publish`         | `business::inventory::publish`         |\n| `business::integration`     | `business::inventory::integration`     |\n| `business::orderDraft`      | `business::inventory::orderDraft`      |\n| `business::wastageTemplate` | `business::inventory::wastageTemplate` |\n| `business::closingTemplate` | `business::inventory::closingTemplate` |\n| `business::orderTemplate`   | `business::inventory::orderTemplate`   |\n| `business::unitCostHistory` | `business::inventory::unitCostHistory` |\n| `business::permission`      | `business::hrm::teamMember`            |\n| `business::role`            | `business::hrm::employee::role`        |\n\n### `hasAccess` → `checkAccess`\n\n```typescript\n// Before\nconst canAccess: boolean = hasAccess(requiredPermissions, userPermissions);\n\n// After\nconst result = checkAccess(requiredPermissions, userPermissions);\nconst canAccess = result.granted;\n```\n\n</details>\n\n<details>\n<summary>Package structure & all exports</summary>\n\n| Entry point                                   | What's in it                                                                                                                  |\n| --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |\n| `@feedmepos/hrm-permission`                   | Enums, types, constants, `checkAccess`                                                                                        |\n| `@feedmepos/hrm-permission/utils`             | `checkAccess`, `validate`, `validateRoute`, `mergePermissions`, `mapLegacyPermission`, `getCoverSubjectFor`, `isCoverSubject` |\n| `@feedmepos/hrm-permission/components`        | `PermissionWrapper`, `withPermission`                                                                                         |\n| `@feedmepos/hrm-permission/nestjs`            | `PermissionModule`, `PermissionService` + re-exports common                                                                   |\n| `@feedmepos/hrm-permission/service`           | `PermissionService` (standalone, no NestJS)                                                                                   |\n| `@feedmepos/hrm-permission/audit-log`         | `buildPermissionLog`, `AuditContext` type                                                                                     |\n| `@feedmepos/hrm-permission/condition-builder` | Condition builders (`reportAccessWindowBuilder`, ...), registry, `conditionBuilderI18nMessages`                               |\n| `@feedmepos/hrm-permission/style.css`         | Component styles                                                                                                              |\n\n### Peer dependencies\n\n- `@casl/ability`\n- `@feedmepos/core`\n- `@feedmepos/zod-repo`\n- `mongodb`\n- `vue` ^3.5.0 _(for components)_\n- `vue-router` ^4.2.0 _(for route validation)_\n\n</details>\n\n<details>\n<summary>Development</summary>\n\n```bash\npnpm install\n\npnpm dev        # run demo app with hot reload\npnpm build      # build library\npnpm type-check\n```\n\n</details>\n","readmeFilename":"README.md"}