{"_id":"@aminzoubaa/permix","_rev":"4-8c0bd43b6d75c15bb8ca1f2850d69bfb","name":"@aminzoubaa/permix","dist-tags":{"latest":"4.0.3"},"versions":{"4.0.0":{"name":"@aminzoubaa/permix","version":"4.0.0","keywords":["permissions","authorization","acl","access-control","typescript","react","vue","solid","type-safe","rbac","security","permissions-management","frontend","javascript","nextjs","fork"],"author":{"url":"https://github.com/AminZoubaa","name":"Amin Zoubaa"},"license":"MIT","_id":"@aminzoubaa/permix@4.0.0","maintainers":[{"name":"aminzoubaa","email":"info@zoubaa.de"}],"contributors":[{"url":"https://github.com/letstri","name":"Valerii Strilets"}],"homepage":"https://github.com/AminZoubaa/permix#readme","bugs":{"url":"https://github.com/AminZoubaa/permix/issues"},"dist":{"shasum":"2de1fbbfb8fd0a82b70511c7a046d6e37de52f9b","tarball":"https://registry.npmjs.org/@aminzoubaa/permix/-/permix-4.0.0.tgz","fileCount":47,"integrity":"sha512-sZRc5qSStdD8OmZSYzLjpP/a6uI8zPsFTQrgNKeGbzd6ziYjDLoPbdRp2y7UulvjkWnvx7Xbwbr0dqKDL3fquQ==","signatures":[{"sig":"MEQCIFFBwv57IKliAIPb0/6lGbUOMuXHTx65Y6jaiiz8EFyEAiB9/buON4rnX07h20Sh2VMZJnUN8VGMp1mKEORcKnmQHQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aminzoubaa%2fpermix@4.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":98814},"main":"./dist/core/index.mjs","type":"module","types":"./dist/core/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.mjs"},"./vue":{"types":"./dist/vue/index.d.ts","import":"./dist/vue/index.mjs"},"./hono":{"types":"./dist/hono/index.d.ts","import":"./dist/hono/index.mjs"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next/index.mjs"},"./node":{"types":"./dist/node/index.d.ts","import":"./dist/node/index.mjs"},"./orpc":{"types":"./dist/orpc/index.d.ts","import":"./dist/orpc/index.mjs"},"./trpc":{"types":"./dist/trpc/index.d.ts","import":"./dist/trpc/index.mjs"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.mjs"},"./solid":{"types":"./dist/solid/index.d.ts","import":"./dist/solid/index.mjs"},"./elysia":{"types":"./dist/elysia/index.d.ts","import":"./dist/elysia/index.mjs"},"./express":{"types":"./dist/express/index.d.ts","import":"./dist/express/index.mjs"},"./fastify":{"types":"./dist/fastify/index.d.ts","import":"./dist/fastify/index.mjs"},"./better-auth":{"types":"./dist/better-auth/index.d.ts","import":"./dist/better-auth/index.mjs"}},"funding":"https://github.com/sponsors/letstri","gitHead":"0f8fc09707a9eba99070f28d3a1ed3241f2b3f20","private":false,"scripts":{"test":"vitest run","build":"unbuild","check-types":"tsc --build","prepublishOnly":"run-s check-types test build scripts:copy-readme","scripts:copy-readme":"node ./scripts/copy-readme.ts"},"_npmUser":{"name":"aminzoubaa","email":"info@zoubaa.de"},"repository":{"url":"git+https://github.com/AminZoubaa/permix.git","type":"git","directory":"permix"},"_npmVersion":"10.9.4","description":"Maintained fork of Permix, the type-safe permissions library originally created by Valerii Strilets, extended for production Next.js usage.","directories":{},"displayName":"Permix","_nodeVersion":"22.22.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.32.1","devDependencies":{"vue":"catalog:","zod":"catalog:","vitest":"catalog:","unbuild":"catalog:","happy-dom":"catalog:","react-dom":"catalog:","supertest":"catalog:","typescript":"catalog:","@types/node":"catalog:","better-auth":"catalog:","@types/react":"catalog:","@types/express":"catalog:","@vue/test-utils":"catalog:","@types/supertest":"catalog:","vite-plugin-solid":"catalog:","babel-preset-solid":"catalog:","@babel/preset-react":"catalog:","@vitest/coverage-v8":"catalog:","@rollup/plugin-babel":"catalog:","@vitejs/plugin-react":"catalog:","@testing-library/react":"catalog:","@babel/preset-typescript":"catalog:","@solidjs/testing-library":"catalog:","@testing-library/jest-dom":"catalog:"},"peerDependencies":{"vue":">=3","hono":">=4","next":">=14","react":">=18","elysia":">=1","express":">=4","fastify":">=5","solid-js":">=1","react-dom":">=18","better-auth":">=1","@orpc/server":">=1","@trpc/server":">=11","fastify-plugin":">=5"},"peerDependenciesMeta":{"vue":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"elysia":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"solid-js":{"optional":true},"react-dom":{"optional":true},"better-auth":{"optional":true},"@orpc/server":{"optional":true},"@trpc/server":{"optional":true},"fastify-plugin":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/permix_4.0.0_1774084086578_0.6224535957566493","host":"s3://npm-registry-packages-npm-production"}},"4.0.1":{"name":"@aminzoubaa/permix","version":"4.0.1","keywords":["permissions","authorization","acl","access-control","typescript","react","vue","solid","type-safe","rbac","security","permissions-management","frontend","javascript","nextjs","fork"],"author":{"url":"https://github.com/AminZoubaa","name":"Amin Zoubaa"},"license":"MIT","_id":"@aminzoubaa/permix@4.0.1","maintainers":[{"name":"aminzoubaa","email":"info@zoubaa.de"}],"contributors":[{"url":"https://github.com/letstri","name":"Valerii Strilets"}],"homepage":"https://aminzoubaa.github.io/permix/","bugs":{"url":"https://github.com/AminZoubaa/permix/issues"},"dist":{"shasum":"b69f89181119bd6d0e8c3b86f220ec021e26ca0f","tarball":"https://registry.npmjs.org/@aminzoubaa/permix/-/permix-4.0.1.tgz","fileCount":47,"integrity":"sha512-62znHRhXgs/AfXb7U0O8Ue/0NJ7RYQMWFlzGPDK5WHBG9nHT/rln8odQcUyV42K5yrRCT02ZZLk322nXl/S1Ew==","signatures":[{"sig":"MEUCIQCaal5+CyNs/8WX1o630yTXuqgY8Q/T7bt5UzkF+nlVAQIgH5GPcyyWD5FFwPOuggXFfkRRWYu60cmdifvFDbU7bac=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aminzoubaa%2fpermix@4.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":98945},"main":"./dist/core/index.mjs","type":"module","types":"./dist/core/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.mjs"},"./vue":{"types":"./dist/vue/index.d.ts","import":"./dist/vue/index.mjs"},"./hono":{"types":"./dist/hono/index.d.ts","import":"./dist/hono/index.mjs"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next/index.mjs"},"./node":{"types":"./dist/node/index.d.ts","import":"./dist/node/index.mjs"},"./orpc":{"types":"./dist/orpc/index.d.ts","import":"./dist/orpc/index.mjs"},"./trpc":{"types":"./dist/trpc/index.d.ts","import":"./dist/trpc/index.mjs"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.mjs"},"./solid":{"types":"./dist/solid/index.d.ts","import":"./dist/solid/index.mjs"},"./elysia":{"types":"./dist/elysia/index.d.ts","import":"./dist/elysia/index.mjs"},"./express":{"types":"./dist/express/index.d.ts","import":"./dist/express/index.mjs"},"./fastify":{"types":"./dist/fastify/index.d.ts","import":"./dist/fastify/index.mjs"},"./better-auth":{"types":"./dist/better-auth/index.d.ts","import":"./dist/better-auth/index.mjs"}},"funding":"https://github.com/sponsors/letstri","gitHead":"168744249b03be96e66a900aaf8ca30c6215795c","private":false,"scripts":{"test":"vitest run","build":"unbuild","prepack":"pnpm run scripts:copy-readme","check-types":"tsc --build","prepublishOnly":"run-s check-types test build scripts:copy-readme","scripts:copy-readme":"node ./scripts/copy-readme.mjs"},"_npmUser":{"name":"aminzoubaa","email":"info@zoubaa.de"},"repository":{"url":"git+https://github.com/AminZoubaa/permix.git","type":"git","directory":"permix"},"_npmVersion":"10.9.4","description":"Maintained fork of Permix, the type-safe permissions library originally created by Valerii Strilets, extended for production Next.js usage.","directories":{},"displayName":"Permix","sideEffects":false,"_nodeVersion":"22.22.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.32.1","devDependencies":{"vue":"catalog:","zod":"catalog:","vitest":"catalog:","unbuild":"catalog:","happy-dom":"catalog:","react-dom":"catalog:","supertest":"catalog:","typescript":"catalog:","@types/node":"catalog:","better-auth":"catalog:","@types/react":"catalog:","@types/express":"catalog:","@vue/test-utils":"catalog:","@types/supertest":"catalog:","vite-plugin-solid":"catalog:","babel-preset-solid":"catalog:","@babel/preset-react":"catalog:","@vitest/coverage-v8":"catalog:","@rollup/plugin-babel":"catalog:","@vitejs/plugin-react":"catalog:","@testing-library/react":"catalog:","@babel/preset-typescript":"catalog:","@solidjs/testing-library":"catalog:","@testing-library/jest-dom":"catalog:"},"peerDependencies":{"vue":">=3","hono":">=4","next":">=14","react":">=18","elysia":">=1","express":">=4","fastify":">=5","solid-js":">=1","react-dom":">=18","better-auth":">=1","@orpc/server":">=1","@trpc/server":">=11","fastify-plugin":">=5"},"peerDependenciesMeta":{"vue":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"elysia":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"solid-js":{"optional":true},"react-dom":{"optional":true},"better-auth":{"optional":true},"@orpc/server":{"optional":true},"@trpc/server":{"optional":true},"fastify-plugin":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/permix_4.0.1_1774087524383_0.655152576164227","host":"s3://npm-registry-packages-npm-production"}},"4.0.2":{"name":"@aminzoubaa/permix","version":"4.0.2","keywords":["permissions","authorization","acl","access-control","typescript","react","vue","solid","type-safe","rbac","security","permissions-management","frontend","javascript","nextjs","fork"],"author":{"url":"https://github.com/AminZoubaa","name":"Amin Zoubaa"},"license":"MIT","_id":"@aminzoubaa/permix@4.0.2","maintainers":[{"name":"aminzoubaa","email":"info@zoubaa.de"}],"contributors":[{"url":"https://github.com/letstri","name":"Valerii Strilets"}],"homepage":"https://aminzoubaa.github.io/permix/","bugs":{"url":"https://github.com/AminZoubaa/permix/issues"},"dist":{"shasum":"26c5d53c88ddc0b00d9e6a5ee261428f103f6acd","tarball":"https://registry.npmjs.org/@aminzoubaa/permix/-/permix-4.0.2.tgz","fileCount":47,"integrity":"sha512-0c3X4Pybj9QMKQad0JHd8GmCsEtGTbmU7oAM4XuRgRYRckJW3HT+GkZka1WTgByLJB9tINXSCn0idt/48TtP/w==","signatures":[{"sig":"MEYCIQC259i0yX3bSMjg2KpusNZNmSdehp++3VsyafXLu6ty9AIhAOzNbjKpbN1X55N860RadZwAwiYdS+3QCCSQjsGglisE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aminzoubaa%2fpermix@4.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":99529},"main":"./dist/core/index.mjs","type":"module","types":"./dist/core/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.mjs"},"./vue":{"types":"./dist/vue/index.d.ts","import":"./dist/vue/index.mjs"},"./hono":{"types":"./dist/hono/index.d.ts","import":"./dist/hono/index.mjs"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next/index.mjs"},"./node":{"types":"./dist/node/index.d.ts","import":"./dist/node/index.mjs"},"./orpc":{"types":"./dist/orpc/index.d.ts","import":"./dist/orpc/index.mjs"},"./trpc":{"types":"./dist/trpc/index.d.ts","import":"./dist/trpc/index.mjs"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.mjs"},"./solid":{"types":"./dist/solid/index.d.ts","import":"./dist/solid/index.mjs"},"./elysia":{"types":"./dist/elysia/index.d.ts","import":"./dist/elysia/index.mjs"},"./express":{"types":"./dist/express/index.d.ts","import":"./dist/express/index.mjs"},"./fastify":{"types":"./dist/fastify/index.d.ts","import":"./dist/fastify/index.mjs"},"./better-auth":{"types":"./dist/better-auth/index.d.ts","import":"./dist/better-auth/index.mjs"}},"funding":"https://github.com/sponsors/letstri","gitHead":"2d3b262026fb9b271b6dadd87f50e6e39dc55053","private":false,"scripts":{"test":"vitest run","build":"unbuild","prepack":"pnpm run scripts:copy-readme","check-types":"tsc --build","prepublishOnly":"run-s check-types test build scripts:copy-readme","scripts:copy-readme":"node ./scripts/copy-readme.mjs"},"_npmUser":{"name":"aminzoubaa","email":"info@zoubaa.de"},"repository":{"url":"git+https://github.com/AminZoubaa/permix.git","type":"git","directory":"permix"},"_npmVersion":"10.9.4","description":"Maintained fork of Permix, the type-safe permissions library originally created by Valerii Strilets, extended for production Next.js usage.","directories":{},"displayName":"Permix","sideEffects":false,"_nodeVersion":"22.22.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.32.1","devDependencies":{"vue":"catalog:","zod":"catalog:","vitest":"catalog:","unbuild":"catalog:","happy-dom":"catalog:","react-dom":"catalog:","supertest":"catalog:","typescript":"catalog:","@types/node":"catalog:","better-auth":"catalog:","@types/react":"catalog:","@types/express":"catalog:","@vue/test-utils":"catalog:","@types/supertest":"catalog:","vite-plugin-solid":"catalog:","babel-preset-solid":"catalog:","@babel/preset-react":"catalog:","@vitest/coverage-v8":"catalog:","@rollup/plugin-babel":"catalog:","@vitejs/plugin-react":"catalog:","@testing-library/react":"catalog:","@babel/preset-typescript":"catalog:","@solidjs/testing-library":"catalog:","@testing-library/jest-dom":"catalog:"},"peerDependencies":{"vue":">=3","hono":">=4","next":">=14","react":">=18","elysia":">=1","express":">=4","fastify":">=5","solid-js":">=1","react-dom":">=18","better-auth":">=1","@orpc/server":">=1","@trpc/server":">=11","fastify-plugin":">=5"},"peerDependenciesMeta":{"vue":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"elysia":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"solid-js":{"optional":true},"react-dom":{"optional":true},"better-auth":{"optional":true},"@orpc/server":{"optional":true},"@trpc/server":{"optional":true},"fastify-plugin":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/permix_4.0.2_1774089413644_0.1526699814275616","host":"s3://npm-registry-packages-npm-production"}},"4.0.3":{"name":"@aminzoubaa/permix","displayName":"Permix","type":"module","version":"4.0.3","private":false,"packageManager":"pnpm@10.32.1","description":"Maintained fork of Permix, the type-safe permissions library originally created by Valerii Strilets, extended for production Next.js usage.","author":{"name":"Amin Zoubaa","url":"https://github.com/AminZoubaa"},"contributors":[{"name":"Valerii Strilets","url":"https://github.com/letstri"}],"license":"MIT","funding":"https://github.com/sponsors/letstri","homepage":"https://aminzoubaa.github.io/permix/","repository":{"type":"git","url":"git+https://github.com/AminZoubaa/permix.git","directory":"permix"},"bugs":{"url":"https://github.com/AminZoubaa/permix/issues"},"publishConfig":{"access":"public"},"keywords":["permissions","authorization","acl","access-control","typescript","react","vue","solid","type-safe","rbac","security","permissions-management","frontend","javascript","nextjs","fork"],"sideEffects":false,"exports":{".":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.mjs"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.mjs"},"./next":{"types":"./dist/next/index.d.ts","import":"./dist/next/index.mjs"},"./vue":{"types":"./dist/vue/index.d.ts","import":"./dist/vue/index.mjs"},"./trpc":{"types":"./dist/trpc/index.d.ts","import":"./dist/trpc/index.mjs"},"./orpc":{"types":"./dist/orpc/index.d.ts","import":"./dist/orpc/index.mjs"},"./express":{"types":"./dist/express/index.d.ts","import":"./dist/express/index.mjs"},"./hono":{"types":"./dist/hono/index.d.ts","import":"./dist/hono/index.mjs"},"./node":{"types":"./dist/node/index.d.ts","import":"./dist/node/index.mjs"},"./elysia":{"types":"./dist/elysia/index.d.ts","import":"./dist/elysia/index.mjs"},"./fastify":{"types":"./dist/fastify/index.d.ts","import":"./dist/fastify/index.mjs"},"./solid":{"types":"./dist/solid/index.d.ts","import":"./dist/solid/index.mjs"},"./better-auth":{"types":"./dist/better-auth/index.d.ts","import":"./dist/better-auth/index.mjs"}},"main":"./dist/core/index.mjs","types":"./dist/core/index.d.ts","engines":{"node":">=18"},"scripts":{"prepublishOnly":"run-s check-types test build scripts:copy-readme","prepack":"pnpm run scripts:copy-readme","build":"unbuild","test":"vitest run","check-types":"tsc --build","scripts:copy-readme":"node ./scripts/copy-readme.mjs"},"peerDependencies":{"@orpc/server":">=1","@trpc/server":">=11","better-auth":">=1","elysia":">=1","express":">=4","fastify":">=5","fastify-plugin":">=5","hono":">=4","next":">=14","react":">=18","react-dom":">=18","solid-js":">=1","vue":">=3"},"peerDependenciesMeta":{"@orpc/server":{"optional":true},"@trpc/server":{"optional":true},"better-auth":{"optional":true},"elysia":{"optional":true},"express":{"optional":true},"fastify":{"optional":true},"fastify-plugin":{"optional":true},"hono":{"optional":true},"next":{"optional":true},"react":{"optional":true},"react-dom":{"optional":true},"solid-js":{"optional":true},"vue":{"optional":true}},"devDependencies":{"@babel/preset-react":"catalog:","@babel/preset-typescript":"catalog:","@rollup/plugin-babel":"catalog:","@solidjs/testing-library":"catalog:","@testing-library/jest-dom":"catalog:","@testing-library/react":"catalog:","@types/express":"catalog:","@types/node":"catalog:","@types/react":"catalog:","@types/supertest":"catalog:","@vitejs/plugin-react":"catalog:","@vitest/coverage-v8":"catalog:","@vue/test-utils":"catalog:","babel-preset-solid":"catalog:","better-auth":"catalog:","happy-dom":"catalog:","react-dom":"catalog:","supertest":"catalog:","typescript":"catalog:","unbuild":"catalog:","vite-plugin-solid":"catalog:","vitest":"catalog:","vue":"catalog:","zod":"catalog:"},"_id":"@aminzoubaa/permix@4.0.3","gitHead":"165b9f13a3cc76e1c73b4a38e265e38b89176398","_nodeVersion":"22.22.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-5/Fm2wmWkiPIpZQW5VSYduA5Tp+IK4QHTp7AfQqyuTatEK5D9Jf1Z0ouMMGOtHW5EVTHQK3lUYVove9ZQwYXHw==","shasum":"1d2b8b673d55283135718121efd3bb5e9fba39f3","tarball":"https://registry.npmjs.org/@aminzoubaa/permix/-/permix-4.0.3.tgz","fileCount":47,"unpackedSize":99337,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aminzoubaa%2fpermix@4.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCkKkKmSaChS8QvpIf8GjT6SULf+4Bb94VhcfPlD0NjbQIhAPRII20OD6T8L8pnt+EefWjlH2/wK7bnr9XmgNPGF9C7"}]},"_npmUser":{"name":"aminzoubaa","email":"info@zoubaa.de"},"directories":{},"maintainers":[{"name":"aminzoubaa","email":"info@zoubaa.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/permix_4.0.3_1774090212977_0.8506674266407821"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-21T09:08:06.516Z","modified":"2026-03-21T10:50:13.376Z","4.0.0":"2026-03-21T09:08:06.734Z","4.0.1":"2026-03-21T10:05:24.547Z","4.0.2":"2026-03-21T10:36:53.799Z","4.0.3":"2026-03-21T10:50:13.121Z"},"bugs":{"url":"https://github.com/AminZoubaa/permix/issues"},"author":{"name":"Amin Zoubaa","url":"https://github.com/AminZoubaa"},"license":"MIT","homepage":"https://aminzoubaa.github.io/permix/","keywords":["permissions","authorization","acl","access-control","typescript","react","vue","solid","type-safe","rbac","security","permissions-management","frontend","javascript","nextjs","fork"],"repository":{"type":"git","url":"git+https://github.com/AminZoubaa/permix.git","directory":"permix"},"description":"Maintained fork of Permix, the type-safe permissions library originally created by Valerii Strilets, extended for production Next.js usage.","contributors":[{"name":"Valerii Strilets","url":"https://github.com/letstri"}],"maintainers":[{"name":"aminzoubaa","email":"info@zoubaa.de"}],"readme":"# Permix\n\n[![npm version](https://badgen.net/npm/v/%40aminzoubaa%2Fpermix?icon=npm)](https://www.npmjs.com/package/@aminzoubaa/permix)\n[![bundle size](https://badgen.net/bundlephobia/minzip/%40aminzoubaa%2Fpermix?label=bundle)](https://bundlephobia.com/package/@aminzoubaa/permix)\n[![license](https://badgen.net/github/license/AminZoubaa/permix?label=license)](https://github.com/AminZoubaa/permix/blob/main/LICENSE)\n[![release](https://badgen.net/github/release/AminZoubaa/permix?label=release)](https://github.com/AminZoubaa/permix/releases)\n[![docs](https://badgen.net/static/docs/live/1d4ed8)](https://aminzoubaa.github.io/permix/)\n\nPermix is a lightweight, framework-agnostic, type-safe permissions management library for JavaScript applications on the client and server sides.\n\n## Fork Notice\n\n`@aminzoubaa/permix` is a maintained public fork of the original [`permix`](https://www.npmjs.com/package/permix) package, which was created by [Valerii Strilets](https://github.com/letstri).\n\nThis fork exists so the improved Next.js integration, multi-role composition, hydration fixes, examples, and test coverage can be used immediately in production projects without waiting for the upstream release cycle.\n\nIf you are looking for the original project, see:\n\n- npm: [`permix`](https://www.npmjs.com/package/permix)\n- GitHub: [letstri/permix](https://github.com/letstri/permix)\n\n## Documentation\n\nYou can find the documentation [here](https://aminzoubaa.github.io/permix).\n\nIf you are using Next.js App Router, start with the dedicated [Next.js guide](https://aminzoubaa.github.io/permix/docs/integrations/next) and the official reference apps:\n\n- [Next Minimal](https://aminzoubaa.github.io/permix/docs/examples/next-minimal)\n- [Next App Router Repros](https://aminzoubaa.github.io/permix/docs/examples/next-app-router-repros)\n- [Next Blog CMS Demo](https://aminzoubaa.github.io/permix/docs/examples/next-blog-cms)\n\n## Example\n\nTo quick start you only need to write the following code:\n\n```ts\nimport { createPermix } from '@aminzoubaa/permix'\n\nconst permix = createPermix<{\n  post: {\n    action: 'read'\n  }\n}>()\n\npermix.setup({\n  post: {\n    read: true,\n  }\n})\n\npermix.check('post', 'read') // true\n```\n\nPermix has other powerful features, so check out the [docs](https://aminzoubaa.github.io/permix/docs) and the guided [examples](https://aminzoubaa.github.io/permix/docs/examples).\n\n## Migration\n\nPermix `4.x` is a major release line that improves SSR hydration and request-scoped Next.js usage. If you are upgrading from `3.x`, read the [migration guide](https://aminzoubaa.github.io/permix/docs/guide/migration-v4) before updating.\n\n## License\n\nMIT License - see the [LICENSE](https://github.com/AminZoubaa/permix/blob/main/LICENSE) file for details\n","readmeFilename":"README.md"}