UNPKG

better-auth

Version:

The most comprehensive authentication framework for TypeScript.

568 lines • 17.3 kB
{ "name": "better-auth", "version": "1.4.9", "description": "The most comprehensive authentication framework for TypeScript.", "type": "module", "license": "MIT", "homepage": "https://better-auth.com", "repository": { "type": "git", "url": "git+https://github.com/better-auth/better-auth.git", "directory": "packages/better-auth" }, "keywords": [ "auth", "oauth", "oidc", "2fa", "social", "security", "typescript", "nextjs" ], "publishConfig": { "access": "public" }, "files": [ "dist" ], "main": "./dist/index.mjs", "module": "./dist/index.mjs", "types": "./dist/index.d.mts", "exports": { ".": { "dev-source": "./src/index.ts", "types": "./dist/index.d.mts", "default": "./dist/index.mjs" }, "./minimal": { "dev-source": "./src/auth/minimal.ts", "types": "./dist/auth/minimal.d.mts", "default": "./dist/auth/minimal.mjs" }, "./social-providers": { "dev-source": "./src/social-providers/index.ts", "types": "./dist/social-providers/index.d.mts", "default": "./dist/social-providers/index.mjs" }, "./client": { "dev-source": "./src/client/index.ts", "types": "./dist/client/index.d.mts", "default": "./dist/client/index.mjs" }, "./client/plugins": { "dev-source": "./src/client/plugins/index.ts", "types": "./dist/client/plugins/index.d.mts", "default": "./dist/client/plugins/index.mjs" }, "./types": { "dev-source": "./src/types/index.ts", "types": "./dist/types/index.d.mts", "default": "./dist/types/index.mjs" }, "./crypto": { "dev-source": "./src/crypto/index.ts", "types": "./dist/crypto/index.d.mts", "default": "./dist/crypto/index.mjs" }, "./cookies": { "dev-source": "./src/cookies/index.ts", "types": "./dist/cookies/index.d.mts", "default": "./dist/cookies/index.mjs" }, "./oauth2": { "dev-source": "./src/oauth2/index.ts", "types": "./dist/oauth2/index.d.mts", "default": "./dist/oauth2/index.mjs" }, "./react": { "dev-source": "./src/client/react/index.ts", "types": "./dist/client/react/index.d.mts", "default": "./dist/client/react/index.mjs" }, "./solid": { "dev-source": "./src/client/solid/index.ts", "types": "./dist/client/solid/index.d.mts", "default": "./dist/client/solid/index.mjs" }, "./lynx": { "dev-source": "./src/client/lynx/index.ts", "types": "./dist/client/lynx/index.d.mts", "default": "./dist/client/lynx/index.mjs" }, "./test": { "dev-source": "./src/test-utils/index.ts", "types": "./dist/test-utils/index.d.mts", "default": "./dist/test-utils/index.mjs" }, "./api": { "dev-source": "./src/api/index.ts", "types": "./dist/api/index.d.mts", "default": "./dist/api/index.mjs" }, "./db": { "dev-source": "./src/db/index.ts", "types": "./dist/db/index.d.mts", "default": "./dist/db/index.mjs" }, "./vue": { "dev-source": "./src/client/vue/index.ts", "types": "./dist/client/vue/index.d.mts", "default": "./dist/client/vue/index.mjs" }, "./plugins": { "dev-source": "./src/plugins/index.ts", "types": "./dist/plugins/index.d.mts", "default": "./dist/plugins/index.mjs" }, "./svelte-kit": { "dev-source": "./src/integrations/svelte-kit.ts", "types": "./dist/integrations/svelte-kit.d.mts", "default": "./dist/integrations/svelte-kit.mjs" }, "./solid-start": { "dev-source": "./src/integrations/solid-start.ts", "types": "./dist/integrations/solid-start.d.mts", "default": "./dist/integrations/solid-start.mjs" }, "./svelte": { "dev-source": "./src/client/svelte/index.ts", "types": "./dist/client/svelte/index.d.mts", "default": "./dist/client/svelte/index.mjs" }, "./next-js": { "dev-source": "./src/integrations/next-js.ts", "types": "./dist/integrations/next-js.d.mts", "default": "./dist/integrations/next-js.mjs" }, "./tanstack-start": { "dev-source": "./src/integrations/tanstack-start.ts", "types": "./dist/integrations/tanstack-start.d.mts", "default": "./dist/integrations/tanstack-start.mjs" }, "./node": { "dev-source": "./src/integrations/node.ts", "types": "./dist/integrations/node.d.mts", "default": "./dist/integrations/node.mjs" }, "./adapters/prisma": { "dev-source": "./src/adapters/prisma-adapter/index.ts", "types": "./dist/adapters/prisma-adapter/index.d.mts", "default": "./dist/adapters/prisma-adapter/index.mjs" }, "./adapters/drizzle": { "dev-source": "./src/adapters/drizzle-adapter/index.ts", "types": "./dist/adapters/drizzle-adapter/index.d.mts", "default": "./dist/adapters/drizzle-adapter/index.mjs" }, "./adapters/mongodb": { "dev-source": "./src/adapters/mongodb-adapter/index.ts", "types": "./dist/adapters/mongodb-adapter/index.d.mts", "default": "./dist/adapters/mongodb-adapter/index.mjs" }, "./adapters/memory": { "dev-source": "./src/adapters/memory-adapter/index.ts", "types": "./dist/adapters/memory-adapter/index.d.mts", "default": "./dist/adapters/memory-adapter/index.mjs" }, "./adapters/test": { "dev-source": "./src/adapters/test.ts", "types": "./dist/adapters/test.d.mts", "default": "./dist/adapters/test.mjs" }, "./adapters": { "dev-source": "./src/adapters/index.ts", "types": "./dist/adapters/index.d.mts", "default": "./dist/adapters/index.mjs" }, "./plugins/access": { "dev-source": "./src/plugins/access/index.ts", "types": "./dist/plugins/access/index.d.mts", "default": "./dist/plugins/access/index.mjs" }, "./plugins/admin": { "dev-source": "./src/plugins/admin/index.ts", "types": "./dist/plugins/admin/index.d.mts", "default": "./dist/plugins/admin/index.mjs" }, "./plugins/admin/access": { "dev-source": "./src/plugins/admin/access/index.ts", "types": "./dist/plugins/admin/access/index.d.mts", "default": "./dist/plugins/admin/access/index.mjs" }, "./plugins/anonymous": { "dev-source": "./src/plugins/anonymous/index.ts", "types": "./dist/plugins/anonymous/index.d.mts", "default": "./dist/plugins/anonymous/index.mjs" }, "./plugins/bearer": { "dev-source": "./src/plugins/bearer/index.ts", "types": "./dist/plugins/bearer/index.d.mts", "default": "./dist/plugins/bearer/index.mjs" }, "./plugins/custom-session": { "dev-source": "./src/plugins/custom-session/index.ts", "types": "./dist/plugins/custom-session/index.d.mts", "default": "./dist/plugins/custom-session/index.mjs" }, "./plugins/email-otp": { "dev-source": "./src/plugins/email-otp/index.ts", "types": "./dist/plugins/email-otp/index.d.mts", "default": "./dist/plugins/email-otp/index.mjs" }, "./plugins/generic-oauth": { "dev-source": "./src/plugins/generic-oauth/index.ts", "types": "./dist/plugins/generic-oauth/index.d.mts", "default": "./dist/plugins/generic-oauth/index.mjs" }, "./plugins/jwt": { "dev-source": "./src/plugins/jwt/index.ts", "types": "./dist/plugins/jwt/index.d.mts", "default": "./dist/plugins/jwt/index.mjs" }, "./plugins/haveibeenpwned": { "dev-source": "./src/plugins/haveibeenpwned/index.ts", "types": "./dist/plugins/haveibeenpwned/index.d.mts", "default": "./dist/plugins/haveibeenpwned/index.mjs" }, "./plugins/oidc-provider": { "dev-source": "./src/plugins/oidc-provider/index.ts", "types": "./dist/plugins/oidc-provider/index.d.mts", "default": "./dist/plugins/oidc-provider/index.mjs" }, "./plugins/magic-link": { "dev-source": "./src/plugins/magic-link/index.ts", "types": "./dist/plugins/magic-link/index.d.mts", "default": "./dist/plugins/magic-link/index.mjs" }, "./plugins/multi-session": { "dev-source": "./src/plugins/multi-session/index.ts", "types": "./dist/plugins/multi-session/index.d.mts", "default": "./dist/plugins/multi-session/index.mjs" }, "./plugins/oauth-proxy": { "dev-source": "./src/plugins/oauth-proxy/index.ts", "types": "./dist/plugins/oauth-proxy/index.d.mts", "default": "./dist/plugins/oauth-proxy/index.mjs" }, "./plugins/organization": { "dev-source": "./src/plugins/organization/index.ts", "types": "./dist/plugins/organization/index.d.mts", "default": "./dist/plugins/organization/index.mjs" }, "./plugins/organization/access": { "dev-source": "./src/plugins/organization/access/index.ts", "types": "./dist/plugins/organization/access/index.d.mts", "default": "./dist/plugins/organization/access/index.mjs" }, "./plugins/one-time-token": { "dev-source": "./src/plugins/one-time-token/index.ts", "types": "./dist/plugins/one-time-token/index.d.mts", "default": "./dist/plugins/one-time-token/index.mjs" }, "./plugins/phone-number": { "dev-source": "./src/plugins/phone-number/index.ts", "types": "./dist/plugins/phone-number/index.d.mts", "default": "./dist/plugins/phone-number/index.mjs" }, "./plugins/two-factor": { "dev-source": "./src/plugins/two-factor/index.ts", "types": "./dist/plugins/two-factor/index.d.mts", "default": "./dist/plugins/two-factor/index.mjs" }, "./plugins/username": { "dev-source": "./src/plugins/username/index.ts", "types": "./dist/plugins/username/index.d.mts", "default": "./dist/plugins/username/index.mjs" }, "./plugins/siwe": { "dev-source": "./src/plugins/siwe/index.ts", "types": "./dist/plugins/siwe/index.d.mts", "default": "./dist/plugins/siwe/index.mjs" }, "./plugins/device-authorization": { "dev-source": "./src/plugins/device-authorization/index.ts", "types": "./dist/plugins/device-authorization/index.d.mts", "default": "./dist/plugins/device-authorization/index.mjs" } }, "typesVersions": { "*": { "*": [ "./dist/index.d.mts" ], "minimal": [ "./dist/auth/minimal.d.mts" ], "node": [ "./dist/integrations/node.d.mts" ], "react": [ "./dist/client/react/index.d.mts" ], "vue": [ "./dist/client/vue/index.d.mts" ], "svelte": [ "./dist/client/svelte/index.d.mts" ], "social-providers": [ "./dist/social-providers/index.d.mts" ], "client": [ "./dist/client/index.d.mts" ], "client/plugins": [ "./dist/client/plugins/index.d.mts" ], "types": [ "./dist/types/index.d.mts" ], "crypto": [ "./dist/crypto/index.d.mts" ], "cookies": [ "./dist/cookies/index.d.mts" ], "oauth2": [ "./dist/oauth2/index.d.mts" ], "solid": [ "./dist/client/solid/index.d.mts" ], "lynx": [ "./dist/client/lynx/index.d.mts" ], "api": [ "./dist/api/index.d.mts" ], "db": [ "./dist/db/index.d.mts" ], "svelte-kit": [ "./dist/integrations/svelte-kit.d.mts" ], "solid-start": [ "./dist/integrations/solid-start.d.mts" ], "next-js": [ "./dist/integrations/next-js.d.mts" ], "tanstack-start": [ "./dist/integrations/tanstack-start.d.mts" ], "adapters": [ "./dist/adapters/index.d.mts" ], "adapters/prisma": [ "./dist/adapters/prisma-adapter/index.d.mts" ], "adapters/drizzle": [ "./dist/adapters/drizzle-adapter/index.d.mts" ], "adapters/mongodb": [ "./dist/adapters/mongodb-adapter/index.d.mts" ], "adapters/memory": [ "./dist/adapters/memory-adapter/index.d.mts" ], "plugins": [ "./dist/plugins/index.d.mts" ], "plugins/access": [ "./dist/plugins/access/index.d.mts" ], "plugins/admin": [ "./dist/plugins/admin/index.d.mts" ], "plugins/admin/access": [ "./dist/plugins/admin/access/index.d.mts" ], "plugins/anonymous": [ "./dist/plugins/anonymous/index.d.mts" ], "plugins/bearer": [ "./dist/plugins/bearer/index.d.mts" ], "plugins/custom-session": [ "./dist/plugins/custom-session/index.d.mts" ], "plugins/email-otp": [ "./dist/plugins/email-otp/index.d.mts" ], "plugins/generic-oauth": [ "./dist/plugins/generic-oauth/index.d.mts" ], "plugins/haveibeenpwned": [ "./dist/plugins/haveibeenpwned/index.d.mts" ], "plugins/oauth-proxy": [ "./dist/plugins/oauth-proxy/index.d.mts" ], "plugins/one-time-token": [ "./dist/plugins/one-time-token/index.d.mts" ], "plugins/oidc-provider": [ "./dist/plugins/oidc-provider/index.d.mts" ], "plugins/jwt": [ "./dist/plugins/jwt/index.d.mts" ], "plugins/magic-link": [ "./dist/plugins/magic-link/index.d.mts" ], "plugins/organization": [ "./dist/plugins/organization/index.d.mts" ], "plugins/organization/access": [ "./dist/plugins/organization/access/index.d.mts" ], "plugins/phone-number": [ "./dist/plugins/phone-number/index.d.mts" ], "plugins/two-factor": [ "./dist/plugins/two-factor/index.d.mts" ], "plugins/username": [ "./dist/plugins/username/index.d.mts" ], "plugins/siwe": [ "./dist/plugins/siwe/index.d.mts" ], "plugins/device-authorization": [ "./dist/plugins/device-authorization/index.d.mts" ] } }, "dependencies": { "@better-auth/utils": "0.3.0", "@better-fetch/fetch": "1.1.21", "@noble/ciphers": "^2.0.0", "@noble/hashes": "^2.0.0", "better-call": "1.1.7", "defu": "^6.1.4", "jose": "^6.1.0", "kysely": "^0.28.5", "nanostores": "^1.0.1", "zod": "^4.1.12", "@better-auth/core": "1.4.9", "@better-auth/telemetry": "1.4.9" }, "devDependencies": { "@lynx-js/react": "^0.114.0", "@prisma/client": "^5.22.0", "@sveltejs/kit": "^2.37.1", "@types/better-sqlite3": "^7.6.13", "@types/bun": "^1.3.3", "@types/pg": "^8.15.5", "@types/react": "^19.2.0", "better-sqlite3": "^12.4.1", "deepmerge": "^4.3.1", "drizzle-kit": "^0.31.4", "drizzle-orm": "^0.41.0", "happy-dom": "^20.0.10", "listhen": "^1.9.0", "mongodb": "^6.18.0", "msw": "^2.12.4", "mysql2": "^3.14.4", "next": "^16.0.10", "oauth2-mock-server": "^7.2.1", "pg": "^8.16.3", "prisma": "^5.22.0", "react": "^19.2.3", "react-dom": "^19.2.3", "solid-js": "^1.9.8", "tarn": "^3.0.2", "tedious": "^18.6.1", "tsdown": "^0.17.2", "type-fest": "^5.2.0", "typescript": "^5.9.3", "vitest": "^4.0.15", "vue": "^3.5.18" }, "peerDependencies": { "@lynx-js/react": "*", "@prisma/client": "^5.0.0 || ^6.0.0 || ^7.0.0", "@sveltejs/kit": "^2.0.0", "@tanstack/react-start": "^1.0.0", "better-sqlite3": "^12.0.0", "drizzle-kit": ">=0.31.4", "drizzle-orm": ">=0.41.0", "mongodb": "^6.0.0 || ^7.0.0", "mysql2": "^3.0.0", "next": "^14.0.0 || ^15.0.0 || ^16.0.0", "pg": "^8.0.0", "prisma": "^5.0.0 || ^6.0.0 || ^7.0.0", "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0", "solid-js": "^1.0.0", "svelte": "^4.0.0 || ^5.0.0", "vitest": "^2.0.0 || ^3.0.0 || ^4.0.0", "vue": "^3.0.0" }, "peerDependenciesMeta": { "@lynx-js/react": { "optional": true }, "@prisma/client": { "optional": true }, "@sveltejs/kit": { "optional": true }, "@tanstack/react-start": { "optional": true }, "next": { "optional": true }, "react": { "optional": true }, "react-dom": { "optional": true }, "solid-js": { "optional": true }, "svelte": { "optional": true }, "vue": { "optional": true }, "drizzle-kit": { "optional": true }, "drizzle-orm": { "optional": true }, "mongodb": { "optional": true }, "mysql2": { "optional": true }, "pg": { "optional": true }, "prisma": { "optional": true }, "better-sqlite3": { "optional": true }, "vitest": { "optional": true } }, "scripts": { "build": "tsdown", "test": "vitest", "coverage": "vitest run --coverage", "lint:package": "publint run --strict", "lint:types": "attw --profile esm-only --pack .", "test:adapters": "vitest run --config vitest.config.adapters.ts", "typecheck": "tsc --project tsconfig.json" } }