UNPKG

permix

Version:

Permix is a lightweight, framework-agnostic, type-safe permissions management library for JavaScript applications on the client and server sides.

235 lines 5.88 kB
{ "name": "permix", "displayName": "Permix", "type": "module", "version": "4.1.1", "private": false, "description": "Permix is a lightweight, framework-agnostic, type-safe permissions management library for JavaScript applications on the client and server sides.", "author": "Valerii Strilets", "license": "MIT", "funding": "https://github.com/sponsors/letstri", "homepage": "https://permix.letstri.dev", "repository": { "type": "git", "url": "git+https://github.com/letstri/permix.git", "directory": "permix" }, "bugs": { "url": "https://github.com/letstri/permix/issues" }, "keywords": [ "permissions", "authorization", "acl", "access-control", "typescript", "react", "nextjs", "vue", "solid", "svelte", "type-safe", "rbac", "security", "permissions-management", "frontend", "javascript", "tanstack-intent" ], "intent": { "repo": "letstri/permix", "docs": "../docs/content/docs" }, "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" } }, "main": "./dist/core/index.mjs", "types": "./dist/core/index.d.mts", "files": [ "dist", "skills" ], "engines": { "node": ">=22" }, "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 } }, "devDependencies": { "@solidjs/testing-library": "^0.8.10", "@sveltejs/package": "^2.5.7", "@sveltejs/vite-plugin-svelte": "^7.1.2", "@tanstack/intent": "^0.0.42", "@tanstack/react-start": "^1.168.18", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.2", "@testing-library/svelte": "^5.3.1", "@types/express": "^5.0.6", "@types/node": "^25.9.1", "@types/react": "^19.2.15", "@types/supertest": "^7.2.0", "@vitejs/plugin-react": "^6.0.2", "@vitest/coverage-v8": "^4.1.8", "@vue/test-utils": "^2.4.10", "drizzle-orm": "1.0.0-rc.3", "effect": "^3.21.2", "happy-dom": "^20.9.0", "react-dom": "^19.2.6", "supertest": "^7.2.2", "svelte": "^5.56.0", "svelte-check": "^4.5.0", "tsdown": "^0.22.1", "typescript": "^6.0.3", "vite-plugin-solid": "^2.11.12", "vitest": "^4.1.8", "vue": "^3.5.17", "zod": "^4.4.3" }, "scripts": { "build": "tsdown && pnpm run build:svelte", "build:svelte": "svelte-package -i src/svelte -o dist/svelte && node ./scripts/build-svelte.ts", "test": "vitest run", "check-types": "tsc --build && svelte-check --tsconfig ./tsconfig.svelte.json", "scripts:copy-readme": "node ./scripts/copy-readme.ts", "skills:validate": "intent validate skills", "skills:stale": "intent stale skills" } }