permix
Version:
Permix is a lightweight, framework-agnostic, type-safe permissions management library for JavaScript applications on the client and server sides.
229 lines • 5.69 kB
JSON
{
"name": "permix",
"displayName": "Permix",
"version": "4.2.0",
"private": false,
"description": "Permix is a lightweight, framework-agnostic, type-safe permissions management library for JavaScript applications on the client and server sides.",
"keywords": [
"access-control",
"acl",
"authorization",
"frontend",
"javascript",
"nextjs",
"permissions",
"permissions-management",
"rbac",
"react",
"security",
"solid",
"svelte",
"type-safe",
"typescript",
"vue"
],
"homepage": "https://permix.letstri.dev",
"bugs": {
"url": "https://github.com/letstri/permix/issues"
},
"license": "MIT",
"author": "Valerii Strilets",
"repository": {
"type": "git",
"url": "git+https://github.com/letstri/permix.git",
"directory": "permix"
},
"funding": "https://github.com/sponsors/letstri",
"files": [
"dist",
"skills"
],
"type": "module",
"main": "./dist/core/index.mjs",
"types": "./dist/core/index.d.mts",
"exports": {
".": {
"types": "./dist/core/index.d.mts",
"import": "./dist/core/index.mjs"
},
"./react": {
"types": "./dist/react/index.d.mts",
"import": "./dist/react/index.mjs"
},
"./vue": {
"types": "./dist/vue/index.d.mts",
"import": "./dist/vue/index.mjs"
},
"./trpc": {
"types": "./dist/trpc/index.d.mts",
"import": "./dist/trpc/index.mjs"
},
"./orpc": {
"types": "./dist/orpc/index.d.mts",
"import": "./dist/orpc/index.mjs"
},
"./express": {
"types": "./dist/express/index.d.mts",
"import": "./dist/express/index.mjs"
},
"./hono": {
"types": "./dist/hono/index.d.mts",
"import": "./dist/hono/index.mjs"
},
"./node": {
"types": "./dist/node/index.d.mts",
"import": "./dist/node/index.mjs"
},
"./server": {
"types": "./dist/server/index.d.mts",
"import": "./dist/server/index.mjs"
},
"./elysia": {
"types": "./dist/elysia/index.d.mts",
"import": "./dist/elysia/index.mjs"
},
"./fastify": {
"types": "./dist/fastify/index.d.mts",
"import": "./dist/fastify/index.mjs"
},
"./solid": {
"types": "./dist/solid/index.d.mts",
"import": "./dist/solid/index.mjs"
},
"./svelte": {
"types": "./dist/svelte/index.d.ts",
"svelte": "./dist/svelte/index.js",
"import": "./dist/svelte/index.js",
"default": "./dist/svelte/index.js"
},
"./drizzle": {
"types": "./dist/drizzle/index.d.mts",
"import": "./dist/drizzle/index.mjs"
},
"./drizzle/legacy": {
"types": "./dist/drizzle/legacy/index.d.mts",
"import": "./dist/drizzle/legacy/index.mjs"
},
"./effect": {
"types": "./dist/effect/index.d.mts",
"import": "./dist/effect/index.mjs"
},
"./next": {
"types": "./dist/next/index.d.mts",
"import": "./dist/next/index.mjs"
},
"./tanstack-start": {
"types": "./dist/tanstack-start/index.d.mts",
"import": "./dist/tanstack-start/index.mjs"
}
},
"devDependencies": {
"@solidjs/testing-library": "^0.8.10",
"@sveltejs/package": "^2.5.8",
"@sveltejs/vite-plugin-svelte": "^7.3.0",
"@tanstack/react-start": "^1.168.52",
"@testing-library/jest-dom": "^7.0.1",
"@testing-library/react": "^16.3.3",
"@testing-library/svelte": "^5.4.2",
"@types/express": "^5.0.6",
"@types/node": "^26.5.1",
"@types/react": "^19.3.0",
"@types/supertest": "^7.2.1",
"@vitejs/plugin-react": "^6.1.1",
"@vitest/coverage-v8": "^5.0.0",
"@vue/test-utils": "^2.5.0",
"drizzle-orm": "1.0.0-rc.3",
"effect": "^3.22.2",
"fastify": "^5.12.4",
"happy-dom": "^20.14.5",
"react": "^19.3.0",
"react-dom": "^19.3.0",
"supertest": "^7.2.2",
"svelte": "^5.56.0",
"svelte-check": "^4.7.6",
"tsdown": "^0.23.0",
"typescript": "^6.0.3",
"vite-plugin-solid": "^2.11.14",
"vitest": "^5.0.0",
"vue": "^3.5.17",
"zod": "^4.6.2"
},
"peerDependencies": {
"@orpc/server": ">=1",
"@tanstack/react-start": ">=1",
"@trpc/server": ">=11",
"drizzle-orm": ">=0.30.0 || >=1.0.0-rc.3",
"effect": ">=3",
"elysia": ">=1",
"express": ">=4",
"fastify": ">=5",
"fastify-plugin": ">=5",
"hono": ">=4",
"next": ">=14",
"react": ">=18",
"react-dom": ">=18",
"solid-js": ">=1",
"svelte": ">=5",
"vue": ">=3"
},
"peerDependenciesMeta": {
"@orpc/server": {
"optional": true
},
"@tanstack/react-start": {
"optional": true
},
"@trpc/server": {
"optional": true
},
"drizzle-orm": {
"optional": true
},
"effect": {
"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
},
"svelte": {
"optional": true
},
"vue": {
"optional": true
}
},
"engines": {
"node": ">=22"
},
"scripts": {
"build": "tsdown && pnpm run build:svelte",
"build:svelte": "svelte-package -i src/svelte -o dist/svelte && node ./scripts/build-svelte.ts",
"check-types": "tsc --build && svelte-check --tsconfig ./tsconfig.svelte.json",
"scripts:copy-readme": "node ./scripts/copy-readme.ts",
"test": "vitest run"
}
}