UNPKG

@zpg6-test-pkgs/better-auth

Version:

The most comprehensive authentication library for TypeScript.

639 lines (632 loc) 25.2 kB
import * as better_call from 'better-call'; import { z } from 'zod/v4'; import { I as InferOptionSchema } from '../../shared/better-auth.8Ira7TFx.cjs'; import 'kysely'; import '../../shared/better-auth.DTtXpZYr.cjs'; import '../../shared/better-auth.DtuOgks-.cjs'; import 'jose'; import 'zod/v4/core'; import 'zod'; import 'better-sqlite3'; import 'bun:sqlite'; type Years = "years" | "year" | "yrs" | "yr" | "y"; type Weeks = "weeks" | "week" | "w"; type Days = "days" | "day" | "d"; type Hours = "hours" | "hour" | "hrs" | "hr" | "h"; type Minutes = "minutes" | "minute" | "mins" | "min" | "m"; type Seconds = "seconds" | "second" | "secs" | "sec" | "s"; type Milliseconds = "milliseconds" | "millisecond" | "msecs" | "msec" | "ms"; type Unit = Years | Weeks | Days | Hours | Minutes | Seconds | Milliseconds; type UnitAnyCase = Capitalize<Unit> | Uppercase<Unit> | Unit; type StringValue = `${number}` | `${number}${UnitAnyCase}` | `${number} ${UnitAnyCase}`; declare const schema: { deviceCode: { fields: { deviceCode: { type: "string"; required: true; }; userCode: { type: "string"; required: true; }; userId: { type: "string"; required: false; }; expiresAt: { type: "date"; required: true; }; status: { type: "string"; required: true; }; lastPolledAt: { type: "date"; required: false; }; pollingInterval: { type: "number"; required: false; }; clientId: { type: "string"; required: false; }; scope: { type: "string"; required: false; }; }; }; }; declare const deviceAuthorizationClient: () => { id: "device-authorization"; $InferServerPlugin: ReturnType<typeof deviceAuthorization>; pathMethods: { "/device/code": "POST"; "/device/token": "POST"; "/device": "GET"; "/device/approve": "POST"; "/device/deny": "POST"; }; }; declare const $deviceAuthorizationOptionsSchema: z.ZodObject<{ expiresIn: z.ZodDefault<z.ZodCustom<StringValue, StringValue>>; interval: z.ZodDefault<z.ZodCustom<StringValue, StringValue>>; deviceCodeLength: z.ZodDefault<z.ZodNumber>; userCodeLength: z.ZodDefault<z.ZodNumber>; generateDeviceCode: z.ZodOptional<z.ZodCustom<() => string | Promise<string>, () => string | Promise<string>>>; generateUserCode: z.ZodOptional<z.ZodCustom<() => string | Promise<string>, () => string | Promise<string>>>; validateClient: z.ZodOptional<z.ZodCustom<(clientId: string) => boolean | Promise<boolean>, (clientId: string) => boolean | Promise<boolean>>>; onDeviceAuthRequest: z.ZodOptional<z.ZodCustom<(clientId: string, scope: string | undefined) => void | Promise<void>, (clientId: string, scope: string | undefined) => void | Promise<void>>>; schema: z.ZodCustom<{ deviceCode?: { modelName?: string; fields?: { deviceCode?: string | undefined; userCode?: string | undefined; userId?: string | undefined; expiresAt?: string | undefined; status?: string | undefined; lastPolledAt?: string | undefined; pollingInterval?: string | undefined; clientId?: string | undefined; scope?: string | undefined; } | undefined; } | undefined; }, { deviceCode?: { modelName?: string; fields?: { deviceCode?: string | undefined; userCode?: string | undefined; userId?: string | undefined; expiresAt?: string | undefined; status?: string | undefined; lastPolledAt?: string | undefined; pollingInterval?: string | undefined; clientId?: string | undefined; scope?: string | undefined; } | undefined; } | undefined; }>; }, z.core.$strip>; /** * @see {$deviceAuthorizationOptionsSchema} */ type DeviceAuthorizationOptions = { expiresIn: StringValue; interval: StringValue; deviceCodeLength: number; userCodeLength: number; generateDeviceCode?: () => string | Promise<string>; generateUserCode?: () => string | Promise<string>; validateClient?: (clientId: string) => boolean | Promise<boolean>; onDeviceAuthRequest?: (clientId: string, scope: string | undefined) => void | Promise<void>; schema?: InferOptionSchema<typeof schema>; }; declare const deviceAuthorization: (options?: Partial<DeviceAuthorizationOptions>) => { id: "device-authorization"; schema: { deviceCode: { fields: { deviceCode: { type: "string"; required: true; }; userCode: { type: "string"; required: true; }; userId: { type: "string"; required: false; }; expiresAt: { type: "date"; required: true; }; status: { type: "string"; required: true; }; lastPolledAt: { type: "date"; required: false; }; pollingInterval: { type: "number"; required: false; }; clientId: { type: "string"; required: false; }; scope: { type: "string"; required: false; }; }; }; }; endpoints: { deviceCode: { <AsResponse extends boolean = false, ReturnHeaders extends boolean = false>(inputCtx_0: { body: { client_id: string; scope?: string | undefined; }; } & { method?: "POST" | undefined; } & { query?: Record<string, any> | undefined; } & { params?: Record<string, any>; } & { request?: Request; } & { headers?: HeadersInit; } & { asResponse?: boolean; returnHeaders?: boolean; use?: better_call.Middleware[]; path?: string; } & { asResponse?: AsResponse | undefined; returnHeaders?: ReturnHeaders | undefined; }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { headers: Headers; response: { device_code: string; user_code: string; verification_uri: string; verification_uri_complete: string; expires_in: number; interval: number; }; } : { device_code: string; user_code: string; verification_uri: string; verification_uri_complete: string; expires_in: number; interval: number; }>; options: { method: "POST"; body: z.ZodObject<{ client_id: z.ZodString; scope: z.ZodOptional<z.ZodString>; }, z.core.$strip>; error: z.ZodObject<{ error: z.ZodEnum<{ invalid_request: "invalid_request"; invalid_client: "invalid_client"; }>; error_description: z.ZodString; }, z.core.$strip>; metadata: { openapi: { description: string; responses: { 200: { description: string; content: { "application/json": { schema: { type: "object"; properties: { device_code: { type: string; description: string; }; user_code: { type: string; description: string; }; verification_uri: { type: string; description: string; }; verification_uri_complete: { type: string; description: string; }; expires_in: { type: string; description: string; }; interval: { type: string; description: string; }; }; }; }; }; }; 400: { description: string; content: { "application/json": { schema: { type: "object"; properties: { error: { type: string; enum: string[]; }; error_description: { type: string; }; }; }; }; }; }; }; }; }; } & { use: any[]; }; path: "/device/code"; }; deviceToken: { <AsResponse extends boolean = false, ReturnHeaders extends boolean = false>(inputCtx_0: { body: { grant_type: "urn:ietf:params:oauth:grant-type:device_code"; device_code: string; client_id: string; }; } & { method?: "POST" | undefined; } & { query?: Record<string, any> | undefined; } & { params?: Record<string, any>; } & { request?: Request; } & { headers?: HeadersInit; } & { asResponse?: boolean; returnHeaders?: boolean; use?: better_call.Middleware[]; path?: string; } & { asResponse?: AsResponse | undefined; returnHeaders?: ReturnHeaders | undefined; }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { headers: Headers; response: { access_token: string; token_type: string; expires_in: number; scope: string; }; } : { access_token: string; token_type: string; expires_in: number; scope: string; }>; options: { method: "POST"; body: z.ZodObject<{ grant_type: z.ZodLiteral<"urn:ietf:params:oauth:grant-type:device_code">; device_code: z.ZodString; client_id: z.ZodString; }, z.core.$strip>; error: z.ZodObject<{ error: z.ZodEnum<{ invalid_request: "invalid_request"; authorization_pending: "authorization_pending"; slow_down: "slow_down"; expired_token: "expired_token"; access_denied: "access_denied"; invalid_grant: "invalid_grant"; }>; error_description: z.ZodString; }, z.core.$strip>; metadata: { openapi: { description: string; responses: { 200: { description: string; content: { "application/json": { schema: { type: "object"; properties: { session: { $ref: string; }; user: { $ref: string; }; }; }; }; }; }; 400: { description: string; content: { "application/json": { schema: { type: "object"; properties: { error: { type: string; enum: string[]; }; error_description: { type: string; }; }; }; }; }; }; }; }; }; } & { use: any[]; }; path: "/device/token"; }; deviceVerify: { <AsResponse extends boolean = false, ReturnHeaders extends boolean = false>(inputCtx_0: { body?: undefined; } & { method?: "GET" | undefined; } & { query: { user_code: string; }; } & { params?: Record<string, any>; } & { request?: Request; } & { headers?: HeadersInit; } & { asResponse?: boolean; returnHeaders?: boolean; use?: better_call.Middleware[]; path?: string; } & { asResponse?: AsResponse | undefined; returnHeaders?: ReturnHeaders | undefined; }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { headers: Headers; response: { user_code: string; status: string; }; } : { user_code: string; status: string; }>; options: { method: "GET"; query: z.ZodObject<{ user_code: z.ZodString; }, z.core.$strip>; error: z.ZodObject<{ error: z.ZodEnum<{ invalid_request: "invalid_request"; }>; error_description: z.ZodString; }, z.core.$strip>; metadata: { openapi: { description: string; responses: { 200: { description: string; content: { "application/json": { schema: { type: "object"; properties: { user_code: { type: string; description: string; }; status: { type: string; enum: string[]; description: string; }; }; }; }; }; }; }; }; }; } & { use: any[]; }; path: "/device"; }; deviceApprove: { <AsResponse extends boolean = false, ReturnHeaders extends boolean = false>(inputCtx_0: { body: { userCode: string; }; } & { method?: "POST" | undefined; } & { query?: Record<string, any> | undefined; } & { params?: Record<string, any>; } & { request?: Request; } & { headers: HeadersInit; } & { asResponse?: boolean; returnHeaders?: boolean; use?: better_call.Middleware[]; path?: string; } & { asResponse?: AsResponse | undefined; returnHeaders?: ReturnHeaders | undefined; }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { headers: Headers; response: { success: boolean; }; } : { success: boolean; }>; options: { method: "POST"; body: z.ZodObject<{ userCode: z.ZodString; }, z.core.$strip>; error: z.ZodObject<{ error: z.ZodEnum<{ invalid_request: "invalid_request"; expired_token: "expired_token"; device_code_already_processed: "device_code_already_processed"; }>; error_description: z.ZodString; }, z.core.$strip>; requireHeaders: true; metadata: { openapi: { description: string; responses: { 200: { description: string; content: { "application/json": { schema: { type: "object"; properties: { success: { type: string; }; }; }; }; }; }; }; }; }; } & { use: any[]; }; path: "/device/approve"; }; deviceDeny: { <AsResponse extends boolean = false, ReturnHeaders extends boolean = false>(inputCtx_0: { body: { userCode: string; }; } & { method?: "POST" | undefined; } & { query?: Record<string, any> | undefined; } & { params?: Record<string, any>; } & { request?: Request; } & { headers?: HeadersInit; } & { asResponse?: boolean; returnHeaders?: boolean; use?: better_call.Middleware[]; path?: string; } & { asResponse?: AsResponse | undefined; returnHeaders?: ReturnHeaders | undefined; }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { headers: Headers; response: { success: boolean; }; } : { success: boolean; }>; options: { method: "POST"; body: z.ZodObject<{ userCode: z.ZodString; }, z.core.$strip>; metadata: { openapi: { description: string; responses: { 200: { description: string; content: { "application/json": { schema: { type: "object"; properties: { success: { type: string; }; }; }; }; }; }; }; }; }; } & { use: any[]; }; path: "/device/deny"; }; }; $ERROR_CODES: { readonly INVALID_DEVICE_CODE: "Invalid device code"; readonly EXPIRED_DEVICE_CODE: "Device code has expired"; readonly EXPIRED_USER_CODE: "User code has expired"; readonly AUTHORIZATION_PENDING: "Authorization pending"; readonly ACCESS_DENIED: "Access denied"; readonly INVALID_USER_CODE: "Invalid user code"; readonly DEVICE_CODE_ALREADY_PROCESSED: "Device code already processed"; readonly POLLING_TOO_FREQUENTLY: "Polling too frequently"; readonly USER_NOT_FOUND: "User not found"; readonly FAILED_TO_CREATE_SESSION: "Failed to create session"; readonly INVALID_DEVICE_CODE_STATUS: "Invalid device code status"; readonly AUTHENTICATION_REQUIRED: "Authentication required"; }; }; export { $deviceAuthorizationOptionsSchema, deviceAuthorization, deviceAuthorizationClient }; export type { DeviceAuthorizationOptions };