New:Socket for Asana Is Now Available.Learn more
Get Started

@authon/shared

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@authon/shared - npm Package Compare versions

Comparing version
0.7.17
to
0.8.0
+1
-1
dist/index.cjs.map

@@ -1,1 +0,1 @@

{"version":3,"sources":["../src/index.ts"],"sourcesContent":["// ── Types ──\n\nexport interface AuthonUser {\n id: string;\n projectId: string;\n email: string | null;\n displayName: string | null;\n avatarUrl: string | null;\n phone: string | null;\n emailVerified: boolean;\n phoneVerified: boolean;\n isBanned: boolean;\n publicMetadata: Record<string, unknown> | null;\n lastSignInAt: string | null;\n signInCount: number;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface AuthonSession {\n id: string;\n userId: string;\n ipAddress: string | null;\n userAgent: string | null;\n deviceName: string | null;\n lastActiveAt: string | null;\n createdAt: string;\n expiresAt: string;\n}\n\nexport interface AuthonProvider {\n provider: string;\n enabled: boolean;\n sortOrder: number;\n configured: boolean;\n}\n\nexport interface BrandingConfig {\n logoDataUrl?: string;\n brandName?: string;\n primaryColorStart?: string;\n primaryColorEnd?: string;\n lightBg?: string;\n lightText?: string;\n darkBg?: string;\n darkText?: string;\n borderRadius?: number;\n providerOrder?: string[];\n hiddenProviders?: string[];\n showEmailPassword?: boolean;\n showDivider?: boolean;\n termsUrl?: string;\n privacyUrl?: string;\n customCss?: string;\n locale?: string;\n showSecuredBy?: boolean;\n showWeb3?: boolean;\n showPasswordless?: boolean;\n showPasskey?: boolean;\n passwordlessMethod?: 'magic_link' | 'email_otp' | 'both';\n}\n\nexport interface SessionConfig {\n accessTokenTtl?: number;\n refreshTokenTtl?: number;\n maxSessions?: number;\n singleSession?: boolean;\n}\n\nexport interface AuthTokens {\n accessToken: string;\n refreshToken: string;\n expiresIn: number;\n user: AuthonUser;\n}\n\nexport interface WebhookEvent {\n id: string;\n type: string;\n projectId: string;\n timestamp: string;\n data: Record<string, unknown>;\n}\n\n// ── MFA Types ──\n\nexport interface MfaSetupResponse {\n secret: string;\n qrCodeUri: string;\n backupCodes: string[];\n}\n\nexport interface MfaStatus {\n enabled: boolean;\n backupCodesRemaining: number;\n}\n\nexport interface MfaVerifyResponse {\n accessToken: string;\n refreshToken: string;\n expiresIn: number;\n user: AuthonUser;\n}\n\n// ── Passwordless Types ──\n\nexport interface PasswordlessResult {\n message: string;\n}\n\n// ── Passkey Types ──\n\nexport interface PasskeyCredential {\n id: string;\n name: string | null;\n createdAt: string;\n lastUsedAt: string | null;\n}\n\n// ── Web3 Types ──\n\nexport type Web3Chain = 'evm' | 'solana';\nexport type Web3WalletType =\n | 'metamask'\n | 'pexus'\n | 'walletconnect'\n | 'coinbase'\n | 'phantom'\n | 'trust'\n | 'other';\n\nexport interface Web3Wallet {\n id: string;\n address: string;\n chain: Web3Chain;\n walletType: Web3WalletType;\n chainId: number | null;\n createdAt: string;\n}\n\nexport interface Web3NonceResponse {\n message: string;\n nonce: string;\n}\n\n// ── Session Types ──\n\nexport interface SessionInfo {\n id: string;\n ipAddress: string | null;\n userAgent: string | null;\n createdAt: string;\n lastActiveAt: string | null;\n}\n\n// ── Organization Types ──\n\nexport interface AuthonOrganization {\n id: string;\n projectId: string;\n name: string;\n slug: string;\n logoUrl: string | null;\n metadata: Record<string, any> | null;\n maxMembers: number;\n createdBy: string;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface OrganizationMember {\n id: string;\n organizationId: string;\n userId: string;\n role: 'owner' | 'admin' | 'member';\n joinedAt: string;\n createdAt: string;\n}\n\nexport interface OrganizationInvitation {\n id: string;\n organizationId: string;\n email: string;\n role: string;\n status: 'pending' | 'accepted' | 'rejected' | 'expired';\n invitedBy: string;\n expiresAt: string;\n createdAt: string;\n}\n\nexport interface CreateOrganizationParams {\n name: string;\n slug?: string;\n logoUrl?: string;\n metadata?: Record<string, any>;\n maxMembers?: number;\n}\n\nexport interface UpdateOrganizationParams {\n name?: string;\n slug?: string;\n logoUrl?: string;\n metadata?: Record<string, any>;\n maxMembers?: number;\n}\n\nexport interface InviteMemberParams {\n email: string;\n role?: 'admin' | 'member';\n}\n\nexport interface OrganizationListResponse {\n data: AuthonOrganization[];\n total: number;\n page: number;\n limit: number;\n}\n\n// ── Audit Log Types ──\n\nexport interface AuditLogEntry {\n id: string;\n projectId: string;\n actorType: 'user' | 'admin' | 'system' | 'api_key';\n actorId: string | null;\n event: string;\n targetType: string | null;\n targetId: string | null;\n metadata: Record<string, any> | null;\n ipAddress: string | null;\n userAgent: string | null;\n createdAt: string;\n}\n\nexport interface AuditLogQueryParams {\n event?: string;\n actorId?: string;\n targetId?: string;\n dateFrom?: string;\n dateTo?: string;\n page?: number;\n limit?: number;\n}\n\nexport interface AuditLogListResponse {\n data: AuditLogEntry[];\n total: number;\n page: number;\n limit: number;\n}\n\nexport interface AuditLogStats {\n [eventType: string]: number;\n}\n\n// ── JWT Template Types ──\n\nexport interface JwtClaimMapping {\n key: string;\n source?: string;\n value?: string;\n}\n\nexport interface JwtTemplate {\n id: string;\n projectId: string;\n name: string;\n isDefault: boolean;\n claims: JwtClaimMapping[];\n allowedLifetime: number | null;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface CreateJwtTemplateParams {\n name: string;\n claims: JwtClaimMapping[];\n allowedLifetime?: number;\n}\n\nexport interface UpdateJwtTemplateParams {\n name?: string;\n claims?: JwtClaimMapping[];\n allowedLifetime?: number | null;\n}\n\nexport interface JwtPreviewResponse {\n token: string;\n decoded: Record<string, any>;\n}\n\n// ── Constants ──\n\nexport const OAUTH_PROVIDERS = [\n 'google',\n 'apple',\n 'kakao',\n 'naver',\n 'facebook',\n 'github',\n 'discord',\n 'x',\n 'line',\n 'microsoft',\n] as const;\n\nexport type OAuthProviderType = (typeof OAUTH_PROVIDERS)[number];\n\nexport const PROVIDER_DISPLAY_NAMES: Record<OAuthProviderType, string> = {\n google: 'Google',\n apple: 'Apple',\n kakao: 'Kakao',\n naver: 'Naver',\n facebook: 'Facebook',\n github: 'GitHub',\n discord: 'Discord',\n x: 'X',\n line: 'LINE',\n microsoft: 'Microsoft',\n};\n\nexport const PROVIDER_COLORS: Record<OAuthProviderType, { bg: string; text: string }> = {\n google: { bg: '#ffffff', text: '#1f1f1f' },\n apple: { bg: '#000000', text: '#ffffff' },\n kakao: { bg: '#FEE500', text: '#191919' },\n naver: { bg: '#03C75A', text: '#ffffff' },\n facebook: { bg: '#1877F2', text: '#ffffff' },\n github: { bg: '#24292e', text: '#ffffff' },\n discord: { bg: '#5865F2', text: '#ffffff' },\n x: { bg: '#000000', text: '#ffffff' },\n line: { bg: '#06C755', text: '#ffffff' },\n microsoft: { bg: '#ffffff', text: '#1f1f1f' },\n};\n\nexport const WEBHOOK_EVENTS = [\n 'user.created',\n 'user.updated',\n 'user.deleted',\n 'user.banned',\n 'user.unbanned',\n 'session.created',\n 'session.ended',\n 'session.revoked',\n 'provider.linked',\n 'provider.unlinked',\n] as const;\n\nexport type WebhookEventType = (typeof WEBHOOK_EVENTS)[number];\n\nexport const API_KEY_PREFIXES = {\n PUBLISHABLE_LIVE: 'pk_live_',\n PUBLISHABLE_TEST: 'pk_test_',\n SECRET_LIVE: 'sk_live_',\n SECRET_TEST: 'sk_test_',\n} as const;\n\nexport const DEFAULT_BRANDING: BrandingConfig = {\n primaryColorStart: '#7c3aed',\n primaryColorEnd: '#4f46e5',\n lightBg: '#ffffff',\n lightText: '#111827',\n darkBg: '#0f172a',\n darkText: '#f1f5f9',\n borderRadius: 12,\n showEmailPassword: true,\n showDivider: true,\n showSecuredBy: true,\n locale: 'en',\n};\n\nexport const DEFAULT_SESSION_CONFIG: SessionConfig = {\n accessTokenTtl: 900,\n refreshTokenTtl: 604800,\n maxSessions: 5,\n singleSession: false,\n};\n\nexport const AUDIT_EVENTS = {\n AUTH_SIGNUP: 'auth.signup',\n AUTH_SIGNIN: 'auth.signin',\n AUTH_SIGNIN_FAILED: 'auth.signin.failed',\n AUTH_SIGNOUT: 'auth.signout',\n AUTH_TOKEN_REFRESH: 'auth.token.refresh',\n AUTH_MFA_SETUP: 'auth.mfa.setup',\n AUTH_MFA_VERIFY: 'auth.mfa.verify',\n AUTH_PASSKEY_REGISTER: 'auth.passkey.register',\n AUTH_WEB3_VERIFY: 'auth.web3.verify',\n ADMIN_USER_BANNED: 'admin.user.banned',\n ADMIN_USER_UNBANNED: 'admin.user.unbanned',\n ADMIN_USER_DELETED: 'admin.user.deleted',\n ORG_CREATED: 'org.created',\n ORG_DELETED: 'org.deleted',\n ORG_MEMBER_ADDED: 'org.member.added',\n ORG_MEMBER_REMOVED: 'org.member.removed',\n ORG_MEMBER_ROLE_CHANGED: 'org.member.role_changed',\n ORG_INVITATION_SENT: 'org.invitation.sent',\n ORG_INVITATION_ACCEPTED: 'org.invitation.accepted',\n} as const;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAqSO,IAAM,kBAAkB;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAIO,IAAM,yBAA4D;AAAA,EACvE,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,GAAG;AAAA,EACH,MAAM;AAAA,EACN,WAAW;AACb;AAEO,IAAM,kBAA2E;AAAA,EACtF,QAAQ,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EACzC,OAAO,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EACxC,OAAO,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EACxC,OAAO,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EACxC,UAAU,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EAC3C,QAAQ,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EACzC,SAAS,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EAC1C,GAAG,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EACpC,MAAM,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EACvC,WAAW,EAAE,IAAI,WAAW,MAAM,UAAU;AAC9C;AAEO,IAAM,iBAAiB;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAIO,IAAM,mBAAmB;AAAA,EAC9B,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,aAAa;AAAA,EACb,aAAa;AACf;AAEO,IAAM,mBAAmC;AAAA,EAC9C,mBAAmB;AAAA,EACnB,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,cAAc;AAAA,EACd,mBAAmB;AAAA,EACnB,aAAa;AAAA,EACb,eAAe;AAAA,EACf,QAAQ;AACV;AAEO,IAAM,yBAAwC;AAAA,EACnD,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,eAAe;AACjB;AAEO,IAAM,eAAe;AAAA,EAC1B,aAAa;AAAA,EACb,aAAa;AAAA,EACb,oBAAoB;AAAA,EACpB,cAAc;AAAA,EACd,oBAAoB;AAAA,EACpB,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,uBAAuB;AAAA,EACvB,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,qBAAqB;AAAA,EACrB,oBAAoB;AAAA,EACpB,aAAa;AAAA,EACb,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,yBAAyB;AAAA,EACzB,qBAAqB;AAAA,EACrB,yBAAyB;AAC3B;","names":[]}
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["// ── Types ──\n\nexport interface AuthonUser {\n id: string;\n projectId: string;\n email: string | null;\n displayName: string | null;\n avatarUrl: string | null;\n phone: string | null;\n emailVerified: boolean;\n phoneVerified: boolean;\n isBanned: boolean;\n publicMetadata: Record<string, unknown> | null;\n lastSignInAt: string | null;\n signInCount: number;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface AuthonSession {\n id: string;\n userId: string;\n ipAddress: string | null;\n userAgent: string | null;\n deviceName: string | null;\n lastActiveAt: string | null;\n createdAt: string;\n expiresAt: string;\n}\n\nexport interface AuthonProvider {\n provider: string;\n enabled: boolean;\n sortOrder: number;\n configured: boolean;\n}\n\nexport interface BrandingConfig {\n logoDataUrl?: string;\n brandName?: string;\n primaryColorStart?: string;\n primaryColorEnd?: string;\n lightBg?: string;\n lightText?: string;\n darkBg?: string;\n darkText?: string;\n borderRadius?: number;\n providerOrder?: string[];\n hiddenProviders?: string[];\n showEmailPassword?: boolean;\n showDivider?: boolean;\n termsUrl?: string;\n privacyUrl?: string;\n customCss?: string;\n locale?: string;\n showSecuredBy?: boolean;\n showWeb3?: boolean;\n showPasswordless?: boolean;\n showPasskey?: boolean;\n passwordlessMethod?: 'magic_link' | 'email_otp' | 'both';\n}\n\nexport interface SessionConfig {\n accessTokenTtl?: number;\n refreshTokenTtl?: number;\n maxSessions?: number;\n singleSession?: boolean;\n}\n\nexport interface AuthTokens {\n accessToken: string;\n refreshToken: string;\n expiresIn: number;\n user: AuthonUser;\n}\n\nexport interface AuthorizationCodeOptions {\n responseType: 'code';\n redirectUri: string;\n codeChallenge: string;\n codeChallengeMethod: 'S256';\n state: string;\n}\n\nexport interface AuthorizationCodeResult {\n authorizationCode: string;\n state: string;\n expiresIn: number;\n}\n\nexport interface AuthorizationCodeExchangeRequest {\n grantType: 'authorization_code';\n code: string;\n codeVerifier: string;\n redirectUri: string;\n}\n\nexport interface AuthorizationCodeExchangeResponse extends AuthTokens {\n sessionId: string;\n}\n\nexport interface WebhookEvent {\n id: string;\n type: string;\n projectId: string;\n timestamp: string;\n data: Record<string, unknown>;\n}\n\n// ── MFA Types ──\n\nexport interface MfaSetupResponse {\n secret: string;\n qrCodeUri: string;\n backupCodes: string[];\n}\n\nexport interface MfaStatus {\n enabled: boolean;\n backupCodesRemaining: number;\n}\n\nexport interface MfaVerifyResponse {\n accessToken: string;\n refreshToken: string;\n expiresIn: number;\n user: AuthonUser;\n}\n\n// ── Passwordless Types ──\n\nexport interface PasswordlessResult {\n message: string;\n}\n\n// ── Passkey Types ──\n\nexport interface PasskeyCredential {\n id: string;\n name: string | null;\n createdAt: string;\n lastUsedAt: string | null;\n}\n\n// ── Web3 Types ──\n\nexport type Web3Chain = 'evm' | 'solana';\nexport type Web3WalletType =\n | 'metamask'\n | 'pexus'\n | 'walletconnect'\n | 'coinbase'\n | 'phantom'\n | 'trust'\n | 'other';\n\nexport interface Web3Wallet {\n id: string;\n address: string;\n chain: Web3Chain;\n walletType: Web3WalletType;\n chainId: number | null;\n createdAt: string;\n}\n\nexport interface Web3NonceResponse {\n message: string;\n nonce: string;\n}\n\n// ── Session Types ──\n\nexport interface SessionInfo {\n id: string;\n ipAddress: string | null;\n userAgent: string | null;\n createdAt: string;\n lastActiveAt: string | null;\n}\n\n// ── Organization Types ──\n\nexport interface AuthonOrganization {\n id: string;\n projectId: string;\n name: string;\n slug: string;\n logoUrl: string | null;\n metadata: Record<string, any> | null;\n maxMembers: number;\n createdBy: string;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface OrganizationMember {\n id: string;\n organizationId: string;\n userId: string;\n role: 'owner' | 'admin' | 'member';\n joinedAt: string;\n createdAt: string;\n}\n\nexport interface OrganizationInvitation {\n id: string;\n organizationId: string;\n email: string;\n role: string;\n status: 'pending' | 'accepted' | 'rejected' | 'expired';\n invitedBy: string;\n expiresAt: string;\n createdAt: string;\n}\n\nexport interface CreateOrganizationParams {\n name: string;\n slug?: string;\n logoUrl?: string;\n metadata?: Record<string, any>;\n maxMembers?: number;\n}\n\nexport interface UpdateOrganizationParams {\n name?: string;\n slug?: string;\n logoUrl?: string;\n metadata?: Record<string, any>;\n maxMembers?: number;\n}\n\nexport interface InviteMemberParams {\n email: string;\n role?: 'admin' | 'member';\n}\n\nexport interface OrganizationListResponse {\n data: AuthonOrganization[];\n total: number;\n page: number;\n limit: number;\n}\n\n// ── Audit Log Types ──\n\nexport interface AuditLogEntry {\n id: string;\n projectId: string;\n actorType: 'user' | 'admin' | 'system' | 'api_key';\n actorId: string | null;\n event: string;\n targetType: string | null;\n targetId: string | null;\n metadata: Record<string, any> | null;\n ipAddress: string | null;\n userAgent: string | null;\n createdAt: string;\n}\n\nexport interface AuditLogQueryParams {\n event?: string;\n actorId?: string;\n targetId?: string;\n dateFrom?: string;\n dateTo?: string;\n page?: number;\n limit?: number;\n}\n\nexport interface AuditLogListResponse {\n data: AuditLogEntry[];\n total: number;\n page: number;\n limit: number;\n}\n\nexport interface AuditLogStats {\n [eventType: string]: number;\n}\n\n// ── JWT Template Types ──\n\nexport interface JwtClaimMapping {\n key: string;\n source?: string;\n value?: string;\n}\n\nexport interface JwtTemplate {\n id: string;\n projectId: string;\n name: string;\n isDefault: boolean;\n claims: JwtClaimMapping[];\n allowedLifetime: number | null;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface CreateJwtTemplateParams {\n name: string;\n claims: JwtClaimMapping[];\n allowedLifetime?: number;\n}\n\nexport interface UpdateJwtTemplateParams {\n name?: string;\n claims?: JwtClaimMapping[];\n allowedLifetime?: number | null;\n}\n\nexport interface JwtPreviewResponse {\n token: string;\n decoded: Record<string, any>;\n}\n\n// ── Constants ──\n\nexport const OAUTH_PROVIDERS = [\n 'google',\n 'apple',\n 'kakao',\n 'naver',\n 'facebook',\n 'github',\n 'discord',\n 'x',\n 'line',\n 'microsoft',\n] as const;\n\nexport type OAuthProviderType = (typeof OAUTH_PROVIDERS)[number];\n\nexport const PROVIDER_DISPLAY_NAMES: Record<OAuthProviderType, string> = {\n google: 'Google',\n apple: 'Apple',\n kakao: 'Kakao',\n naver: 'Naver',\n facebook: 'Facebook',\n github: 'GitHub',\n discord: 'Discord',\n x: 'X',\n line: 'LINE',\n microsoft: 'Microsoft',\n};\n\nexport const PROVIDER_COLORS: Record<OAuthProviderType, { bg: string; text: string }> = {\n google: { bg: '#ffffff', text: '#1f1f1f' },\n apple: { bg: '#000000', text: '#ffffff' },\n kakao: { bg: '#FEE500', text: '#191919' },\n naver: { bg: '#03C75A', text: '#ffffff' },\n facebook: { bg: '#1877F2', text: '#ffffff' },\n github: { bg: '#24292e', text: '#ffffff' },\n discord: { bg: '#5865F2', text: '#ffffff' },\n x: { bg: '#000000', text: '#ffffff' },\n line: { bg: '#06C755', text: '#ffffff' },\n microsoft: { bg: '#ffffff', text: '#1f1f1f' },\n};\n\nexport const WEBHOOK_EVENTS = [\n 'user.created',\n 'user.updated',\n 'user.deleted',\n 'user.banned',\n 'user.unbanned',\n 'session.created',\n 'session.ended',\n 'session.revoked',\n 'provider.linked',\n 'provider.unlinked',\n] as const;\n\nexport type WebhookEventType = (typeof WEBHOOK_EVENTS)[number];\n\nexport const API_KEY_PREFIXES = {\n PUBLISHABLE_LIVE: 'pk_live_',\n PUBLISHABLE_TEST: 'pk_test_',\n SECRET_LIVE: 'sk_live_',\n SECRET_TEST: 'sk_test_',\n} as const;\n\nexport const DEFAULT_BRANDING: BrandingConfig = {\n primaryColorStart: '#7c3aed',\n primaryColorEnd: '#4f46e5',\n lightBg: '#ffffff',\n lightText: '#111827',\n darkBg: '#0f172a',\n darkText: '#f1f5f9',\n borderRadius: 12,\n showEmailPassword: true,\n showDivider: true,\n showSecuredBy: true,\n locale: 'en',\n};\n\nexport const DEFAULT_SESSION_CONFIG: SessionConfig = {\n accessTokenTtl: 900,\n refreshTokenTtl: 604800,\n maxSessions: 5,\n singleSession: false,\n};\n\nexport const AUDIT_EVENTS = {\n AUTH_SIGNUP: 'auth.signup',\n AUTH_SIGNIN: 'auth.signin',\n AUTH_SIGNIN_FAILED: 'auth.signin.failed',\n AUTH_SIGNOUT: 'auth.signout',\n AUTH_TOKEN_REFRESH: 'auth.token.refresh',\n AUTH_MFA_SETUP: 'auth.mfa.setup',\n AUTH_MFA_VERIFY: 'auth.mfa.verify',\n AUTH_PASSKEY_REGISTER: 'auth.passkey.register',\n AUTH_WEB3_VERIFY: 'auth.web3.verify',\n ADMIN_USER_BANNED: 'admin.user.banned',\n ADMIN_USER_UNBANNED: 'admin.user.unbanned',\n ADMIN_USER_DELETED: 'admin.user.deleted',\n ORG_CREATED: 'org.created',\n ORG_DELETED: 'org.deleted',\n ORG_MEMBER_ADDED: 'org.member.added',\n ORG_MEMBER_REMOVED: 'org.member.removed',\n ORG_MEMBER_ROLE_CHANGED: 'org.member.role_changed',\n ORG_INVITATION_SENT: 'org.invitation.sent',\n ORG_INVITATION_ACCEPTED: 'org.invitation.accepted',\n} as const;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA8TO,IAAM,kBAAkB;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAIO,IAAM,yBAA4D;AAAA,EACvE,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,GAAG;AAAA,EACH,MAAM;AAAA,EACN,WAAW;AACb;AAEO,IAAM,kBAA2E;AAAA,EACtF,QAAQ,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EACzC,OAAO,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EACxC,OAAO,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EACxC,OAAO,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EACxC,UAAU,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EAC3C,QAAQ,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EACzC,SAAS,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EAC1C,GAAG,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EACpC,MAAM,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EACvC,WAAW,EAAE,IAAI,WAAW,MAAM,UAAU;AAC9C;AAEO,IAAM,iBAAiB;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAIO,IAAM,mBAAmB;AAAA,EAC9B,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,aAAa;AAAA,EACb,aAAa;AACf;AAEO,IAAM,mBAAmC;AAAA,EAC9C,mBAAmB;AAAA,EACnB,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,cAAc;AAAA,EACd,mBAAmB;AAAA,EACnB,aAAa;AAAA,EACb,eAAe;AAAA,EACf,QAAQ;AACV;AAEO,IAAM,yBAAwC;AAAA,EACnD,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,eAAe;AACjB;AAEO,IAAM,eAAe;AAAA,EAC1B,aAAa;AAAA,EACb,aAAa;AAAA,EACb,oBAAoB;AAAA,EACpB,cAAc;AAAA,EACd,oBAAoB;AAAA,EACpB,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,uBAAuB;AAAA,EACvB,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,qBAAqB;AAAA,EACrB,oBAAoB;AAAA,EACpB,aAAa;AAAA,EACb,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,yBAAyB;AAAA,EACzB,qBAAqB;AAAA,EACrB,yBAAyB;AAC3B;","names":[]}

@@ -69,2 +69,23 @@ interface AuthonUser {

}
interface AuthorizationCodeOptions {
responseType: 'code';
redirectUri: string;
codeChallenge: string;
codeChallengeMethod: 'S256';
state: string;
}
interface AuthorizationCodeResult {
authorizationCode: string;
state: string;
expiresIn: number;
}
interface AuthorizationCodeExchangeRequest {
grantType: 'authorization_code';
code: string;
codeVerifier: string;
redirectUri: string;
}
interface AuthorizationCodeExchangeResponse extends AuthTokens {
sessionId: string;
}
interface WebhookEvent {

@@ -275,2 +296,2 @@ id: string;

export { API_KEY_PREFIXES, AUDIT_EVENTS, type AuditLogEntry, type AuditLogListResponse, type AuditLogQueryParams, type AuditLogStats, type AuthTokens, type AuthonOrganization, type AuthonProvider, type AuthonSession, type AuthonUser, type BrandingConfig, type CreateJwtTemplateParams, type CreateOrganizationParams, DEFAULT_BRANDING, DEFAULT_SESSION_CONFIG, type InviteMemberParams, type JwtClaimMapping, type JwtPreviewResponse, type JwtTemplate, type MfaSetupResponse, type MfaStatus, type MfaVerifyResponse, OAUTH_PROVIDERS, type OAuthProviderType, type OrganizationInvitation, type OrganizationListResponse, type OrganizationMember, PROVIDER_COLORS, PROVIDER_DISPLAY_NAMES, type PasskeyCredential, type PasswordlessResult, type SessionConfig, type SessionInfo, type UpdateJwtTemplateParams, type UpdateOrganizationParams, WEBHOOK_EVENTS, type Web3Chain, type Web3NonceResponse, type Web3Wallet, type Web3WalletType, type WebhookEvent, type WebhookEventType };
export { API_KEY_PREFIXES, AUDIT_EVENTS, type AuditLogEntry, type AuditLogListResponse, type AuditLogQueryParams, type AuditLogStats, type AuthTokens, type AuthonOrganization, type AuthonProvider, type AuthonSession, type AuthonUser, type AuthorizationCodeExchangeRequest, type AuthorizationCodeExchangeResponse, type AuthorizationCodeOptions, type AuthorizationCodeResult, type BrandingConfig, type CreateJwtTemplateParams, type CreateOrganizationParams, DEFAULT_BRANDING, DEFAULT_SESSION_CONFIG, type InviteMemberParams, type JwtClaimMapping, type JwtPreviewResponse, type JwtTemplate, type MfaSetupResponse, type MfaStatus, type MfaVerifyResponse, OAUTH_PROVIDERS, type OAuthProviderType, type OrganizationInvitation, type OrganizationListResponse, type OrganizationMember, PROVIDER_COLORS, PROVIDER_DISPLAY_NAMES, type PasskeyCredential, type PasswordlessResult, type SessionConfig, type SessionInfo, type UpdateJwtTemplateParams, type UpdateOrganizationParams, WEBHOOK_EVENTS, type Web3Chain, type Web3NonceResponse, type Web3Wallet, type Web3WalletType, type WebhookEvent, type WebhookEventType };

@@ -69,2 +69,23 @@ interface AuthonUser {

}
interface AuthorizationCodeOptions {
responseType: 'code';
redirectUri: string;
codeChallenge: string;
codeChallengeMethod: 'S256';
state: string;
}
interface AuthorizationCodeResult {
authorizationCode: string;
state: string;
expiresIn: number;
}
interface AuthorizationCodeExchangeRequest {
grantType: 'authorization_code';
code: string;
codeVerifier: string;
redirectUri: string;
}
interface AuthorizationCodeExchangeResponse extends AuthTokens {
sessionId: string;
}
interface WebhookEvent {

@@ -275,2 +296,2 @@ id: string;

export { API_KEY_PREFIXES, AUDIT_EVENTS, type AuditLogEntry, type AuditLogListResponse, type AuditLogQueryParams, type AuditLogStats, type AuthTokens, type AuthonOrganization, type AuthonProvider, type AuthonSession, type AuthonUser, type BrandingConfig, type CreateJwtTemplateParams, type CreateOrganizationParams, DEFAULT_BRANDING, DEFAULT_SESSION_CONFIG, type InviteMemberParams, type JwtClaimMapping, type JwtPreviewResponse, type JwtTemplate, type MfaSetupResponse, type MfaStatus, type MfaVerifyResponse, OAUTH_PROVIDERS, type OAuthProviderType, type OrganizationInvitation, type OrganizationListResponse, type OrganizationMember, PROVIDER_COLORS, PROVIDER_DISPLAY_NAMES, type PasskeyCredential, type PasswordlessResult, type SessionConfig, type SessionInfo, type UpdateJwtTemplateParams, type UpdateOrganizationParams, WEBHOOK_EVENTS, type Web3Chain, type Web3NonceResponse, type Web3Wallet, type Web3WalletType, type WebhookEvent, type WebhookEventType };
export { API_KEY_PREFIXES, AUDIT_EVENTS, type AuditLogEntry, type AuditLogListResponse, type AuditLogQueryParams, type AuditLogStats, type AuthTokens, type AuthonOrganization, type AuthonProvider, type AuthonSession, type AuthonUser, type AuthorizationCodeExchangeRequest, type AuthorizationCodeExchangeResponse, type AuthorizationCodeOptions, type AuthorizationCodeResult, type BrandingConfig, type CreateJwtTemplateParams, type CreateOrganizationParams, DEFAULT_BRANDING, DEFAULT_SESSION_CONFIG, type InviteMemberParams, type JwtClaimMapping, type JwtPreviewResponse, type JwtTemplate, type MfaSetupResponse, type MfaStatus, type MfaVerifyResponse, OAUTH_PROVIDERS, type OAuthProviderType, type OrganizationInvitation, type OrganizationListResponse, type OrganizationMember, PROVIDER_COLORS, PROVIDER_DISPLAY_NAMES, type PasskeyCredential, type PasswordlessResult, type SessionConfig, type SessionInfo, type UpdateJwtTemplateParams, type UpdateOrganizationParams, WEBHOOK_EVENTS, type Web3Chain, type Web3NonceResponse, type Web3Wallet, type Web3WalletType, type WebhookEvent, type WebhookEventType };

@@ -1,1 +0,1 @@

{"version":3,"sources":["../src/index.ts"],"sourcesContent":["// ── Types ──\n\nexport interface AuthonUser {\n id: string;\n projectId: string;\n email: string | null;\n displayName: string | null;\n avatarUrl: string | null;\n phone: string | null;\n emailVerified: boolean;\n phoneVerified: boolean;\n isBanned: boolean;\n publicMetadata: Record<string, unknown> | null;\n lastSignInAt: string | null;\n signInCount: number;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface AuthonSession {\n id: string;\n userId: string;\n ipAddress: string | null;\n userAgent: string | null;\n deviceName: string | null;\n lastActiveAt: string | null;\n createdAt: string;\n expiresAt: string;\n}\n\nexport interface AuthonProvider {\n provider: string;\n enabled: boolean;\n sortOrder: number;\n configured: boolean;\n}\n\nexport interface BrandingConfig {\n logoDataUrl?: string;\n brandName?: string;\n primaryColorStart?: string;\n primaryColorEnd?: string;\n lightBg?: string;\n lightText?: string;\n darkBg?: string;\n darkText?: string;\n borderRadius?: number;\n providerOrder?: string[];\n hiddenProviders?: string[];\n showEmailPassword?: boolean;\n showDivider?: boolean;\n termsUrl?: string;\n privacyUrl?: string;\n customCss?: string;\n locale?: string;\n showSecuredBy?: boolean;\n showWeb3?: boolean;\n showPasswordless?: boolean;\n showPasskey?: boolean;\n passwordlessMethod?: 'magic_link' | 'email_otp' | 'both';\n}\n\nexport interface SessionConfig {\n accessTokenTtl?: number;\n refreshTokenTtl?: number;\n maxSessions?: number;\n singleSession?: boolean;\n}\n\nexport interface AuthTokens {\n accessToken: string;\n refreshToken: string;\n expiresIn: number;\n user: AuthonUser;\n}\n\nexport interface WebhookEvent {\n id: string;\n type: string;\n projectId: string;\n timestamp: string;\n data: Record<string, unknown>;\n}\n\n// ── MFA Types ──\n\nexport interface MfaSetupResponse {\n secret: string;\n qrCodeUri: string;\n backupCodes: string[];\n}\n\nexport interface MfaStatus {\n enabled: boolean;\n backupCodesRemaining: number;\n}\n\nexport interface MfaVerifyResponse {\n accessToken: string;\n refreshToken: string;\n expiresIn: number;\n user: AuthonUser;\n}\n\n// ── Passwordless Types ──\n\nexport interface PasswordlessResult {\n message: string;\n}\n\n// ── Passkey Types ──\n\nexport interface PasskeyCredential {\n id: string;\n name: string | null;\n createdAt: string;\n lastUsedAt: string | null;\n}\n\n// ── Web3 Types ──\n\nexport type Web3Chain = 'evm' | 'solana';\nexport type Web3WalletType =\n | 'metamask'\n | 'pexus'\n | 'walletconnect'\n | 'coinbase'\n | 'phantom'\n | 'trust'\n | 'other';\n\nexport interface Web3Wallet {\n id: string;\n address: string;\n chain: Web3Chain;\n walletType: Web3WalletType;\n chainId: number | null;\n createdAt: string;\n}\n\nexport interface Web3NonceResponse {\n message: string;\n nonce: string;\n}\n\n// ── Session Types ──\n\nexport interface SessionInfo {\n id: string;\n ipAddress: string | null;\n userAgent: string | null;\n createdAt: string;\n lastActiveAt: string | null;\n}\n\n// ── Organization Types ──\n\nexport interface AuthonOrganization {\n id: string;\n projectId: string;\n name: string;\n slug: string;\n logoUrl: string | null;\n metadata: Record<string, any> | null;\n maxMembers: number;\n createdBy: string;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface OrganizationMember {\n id: string;\n organizationId: string;\n userId: string;\n role: 'owner' | 'admin' | 'member';\n joinedAt: string;\n createdAt: string;\n}\n\nexport interface OrganizationInvitation {\n id: string;\n organizationId: string;\n email: string;\n role: string;\n status: 'pending' | 'accepted' | 'rejected' | 'expired';\n invitedBy: string;\n expiresAt: string;\n createdAt: string;\n}\n\nexport interface CreateOrganizationParams {\n name: string;\n slug?: string;\n logoUrl?: string;\n metadata?: Record<string, any>;\n maxMembers?: number;\n}\n\nexport interface UpdateOrganizationParams {\n name?: string;\n slug?: string;\n logoUrl?: string;\n metadata?: Record<string, any>;\n maxMembers?: number;\n}\n\nexport interface InviteMemberParams {\n email: string;\n role?: 'admin' | 'member';\n}\n\nexport interface OrganizationListResponse {\n data: AuthonOrganization[];\n total: number;\n page: number;\n limit: number;\n}\n\n// ── Audit Log Types ──\n\nexport interface AuditLogEntry {\n id: string;\n projectId: string;\n actorType: 'user' | 'admin' | 'system' | 'api_key';\n actorId: string | null;\n event: string;\n targetType: string | null;\n targetId: string | null;\n metadata: Record<string, any> | null;\n ipAddress: string | null;\n userAgent: string | null;\n createdAt: string;\n}\n\nexport interface AuditLogQueryParams {\n event?: string;\n actorId?: string;\n targetId?: string;\n dateFrom?: string;\n dateTo?: string;\n page?: number;\n limit?: number;\n}\n\nexport interface AuditLogListResponse {\n data: AuditLogEntry[];\n total: number;\n page: number;\n limit: number;\n}\n\nexport interface AuditLogStats {\n [eventType: string]: number;\n}\n\n// ── JWT Template Types ──\n\nexport interface JwtClaimMapping {\n key: string;\n source?: string;\n value?: string;\n}\n\nexport interface JwtTemplate {\n id: string;\n projectId: string;\n name: string;\n isDefault: boolean;\n claims: JwtClaimMapping[];\n allowedLifetime: number | null;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface CreateJwtTemplateParams {\n name: string;\n claims: JwtClaimMapping[];\n allowedLifetime?: number;\n}\n\nexport interface UpdateJwtTemplateParams {\n name?: string;\n claims?: JwtClaimMapping[];\n allowedLifetime?: number | null;\n}\n\nexport interface JwtPreviewResponse {\n token: string;\n decoded: Record<string, any>;\n}\n\n// ── Constants ──\n\nexport const OAUTH_PROVIDERS = [\n 'google',\n 'apple',\n 'kakao',\n 'naver',\n 'facebook',\n 'github',\n 'discord',\n 'x',\n 'line',\n 'microsoft',\n] as const;\n\nexport type OAuthProviderType = (typeof OAUTH_PROVIDERS)[number];\n\nexport const PROVIDER_DISPLAY_NAMES: Record<OAuthProviderType, string> = {\n google: 'Google',\n apple: 'Apple',\n kakao: 'Kakao',\n naver: 'Naver',\n facebook: 'Facebook',\n github: 'GitHub',\n discord: 'Discord',\n x: 'X',\n line: 'LINE',\n microsoft: 'Microsoft',\n};\n\nexport const PROVIDER_COLORS: Record<OAuthProviderType, { bg: string; text: string }> = {\n google: { bg: '#ffffff', text: '#1f1f1f' },\n apple: { bg: '#000000', text: '#ffffff' },\n kakao: { bg: '#FEE500', text: '#191919' },\n naver: { bg: '#03C75A', text: '#ffffff' },\n facebook: { bg: '#1877F2', text: '#ffffff' },\n github: { bg: '#24292e', text: '#ffffff' },\n discord: { bg: '#5865F2', text: '#ffffff' },\n x: { bg: '#000000', text: '#ffffff' },\n line: { bg: '#06C755', text: '#ffffff' },\n microsoft: { bg: '#ffffff', text: '#1f1f1f' },\n};\n\nexport const WEBHOOK_EVENTS = [\n 'user.created',\n 'user.updated',\n 'user.deleted',\n 'user.banned',\n 'user.unbanned',\n 'session.created',\n 'session.ended',\n 'session.revoked',\n 'provider.linked',\n 'provider.unlinked',\n] as const;\n\nexport type WebhookEventType = (typeof WEBHOOK_EVENTS)[number];\n\nexport const API_KEY_PREFIXES = {\n PUBLISHABLE_LIVE: 'pk_live_',\n PUBLISHABLE_TEST: 'pk_test_',\n SECRET_LIVE: 'sk_live_',\n SECRET_TEST: 'sk_test_',\n} as const;\n\nexport const DEFAULT_BRANDING: BrandingConfig = {\n primaryColorStart: '#7c3aed',\n primaryColorEnd: '#4f46e5',\n lightBg: '#ffffff',\n lightText: '#111827',\n darkBg: '#0f172a',\n darkText: '#f1f5f9',\n borderRadius: 12,\n showEmailPassword: true,\n showDivider: true,\n showSecuredBy: true,\n locale: 'en',\n};\n\nexport const DEFAULT_SESSION_CONFIG: SessionConfig = {\n accessTokenTtl: 900,\n refreshTokenTtl: 604800,\n maxSessions: 5,\n singleSession: false,\n};\n\nexport const AUDIT_EVENTS = {\n AUTH_SIGNUP: 'auth.signup',\n AUTH_SIGNIN: 'auth.signin',\n AUTH_SIGNIN_FAILED: 'auth.signin.failed',\n AUTH_SIGNOUT: 'auth.signout',\n AUTH_TOKEN_REFRESH: 'auth.token.refresh',\n AUTH_MFA_SETUP: 'auth.mfa.setup',\n AUTH_MFA_VERIFY: 'auth.mfa.verify',\n AUTH_PASSKEY_REGISTER: 'auth.passkey.register',\n AUTH_WEB3_VERIFY: 'auth.web3.verify',\n ADMIN_USER_BANNED: 'admin.user.banned',\n ADMIN_USER_UNBANNED: 'admin.user.unbanned',\n ADMIN_USER_DELETED: 'admin.user.deleted',\n ORG_CREATED: 'org.created',\n ORG_DELETED: 'org.deleted',\n ORG_MEMBER_ADDED: 'org.member.added',\n ORG_MEMBER_REMOVED: 'org.member.removed',\n ORG_MEMBER_ROLE_CHANGED: 'org.member.role_changed',\n ORG_INVITATION_SENT: 'org.invitation.sent',\n ORG_INVITATION_ACCEPTED: 'org.invitation.accepted',\n} as const;\n"],"mappings":";AAqSO,IAAM,kBAAkB;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAIO,IAAM,yBAA4D;AAAA,EACvE,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,GAAG;AAAA,EACH,MAAM;AAAA,EACN,WAAW;AACb;AAEO,IAAM,kBAA2E;AAAA,EACtF,QAAQ,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EACzC,OAAO,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EACxC,OAAO,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EACxC,OAAO,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EACxC,UAAU,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EAC3C,QAAQ,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EACzC,SAAS,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EAC1C,GAAG,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EACpC,MAAM,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EACvC,WAAW,EAAE,IAAI,WAAW,MAAM,UAAU;AAC9C;AAEO,IAAM,iBAAiB;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAIO,IAAM,mBAAmB;AAAA,EAC9B,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,aAAa;AAAA,EACb,aAAa;AACf;AAEO,IAAM,mBAAmC;AAAA,EAC9C,mBAAmB;AAAA,EACnB,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,cAAc;AAAA,EACd,mBAAmB;AAAA,EACnB,aAAa;AAAA,EACb,eAAe;AAAA,EACf,QAAQ;AACV;AAEO,IAAM,yBAAwC;AAAA,EACnD,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,eAAe;AACjB;AAEO,IAAM,eAAe;AAAA,EAC1B,aAAa;AAAA,EACb,aAAa;AAAA,EACb,oBAAoB;AAAA,EACpB,cAAc;AAAA,EACd,oBAAoB;AAAA,EACpB,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,uBAAuB;AAAA,EACvB,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,qBAAqB;AAAA,EACrB,oBAAoB;AAAA,EACpB,aAAa;AAAA,EACb,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,yBAAyB;AAAA,EACzB,qBAAqB;AAAA,EACrB,yBAAyB;AAC3B;","names":[]}
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["// ── Types ──\n\nexport interface AuthonUser {\n id: string;\n projectId: string;\n email: string | null;\n displayName: string | null;\n avatarUrl: string | null;\n phone: string | null;\n emailVerified: boolean;\n phoneVerified: boolean;\n isBanned: boolean;\n publicMetadata: Record<string, unknown> | null;\n lastSignInAt: string | null;\n signInCount: number;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface AuthonSession {\n id: string;\n userId: string;\n ipAddress: string | null;\n userAgent: string | null;\n deviceName: string | null;\n lastActiveAt: string | null;\n createdAt: string;\n expiresAt: string;\n}\n\nexport interface AuthonProvider {\n provider: string;\n enabled: boolean;\n sortOrder: number;\n configured: boolean;\n}\n\nexport interface BrandingConfig {\n logoDataUrl?: string;\n brandName?: string;\n primaryColorStart?: string;\n primaryColorEnd?: string;\n lightBg?: string;\n lightText?: string;\n darkBg?: string;\n darkText?: string;\n borderRadius?: number;\n providerOrder?: string[];\n hiddenProviders?: string[];\n showEmailPassword?: boolean;\n showDivider?: boolean;\n termsUrl?: string;\n privacyUrl?: string;\n customCss?: string;\n locale?: string;\n showSecuredBy?: boolean;\n showWeb3?: boolean;\n showPasswordless?: boolean;\n showPasskey?: boolean;\n passwordlessMethod?: 'magic_link' | 'email_otp' | 'both';\n}\n\nexport interface SessionConfig {\n accessTokenTtl?: number;\n refreshTokenTtl?: number;\n maxSessions?: number;\n singleSession?: boolean;\n}\n\nexport interface AuthTokens {\n accessToken: string;\n refreshToken: string;\n expiresIn: number;\n user: AuthonUser;\n}\n\nexport interface AuthorizationCodeOptions {\n responseType: 'code';\n redirectUri: string;\n codeChallenge: string;\n codeChallengeMethod: 'S256';\n state: string;\n}\n\nexport interface AuthorizationCodeResult {\n authorizationCode: string;\n state: string;\n expiresIn: number;\n}\n\nexport interface AuthorizationCodeExchangeRequest {\n grantType: 'authorization_code';\n code: string;\n codeVerifier: string;\n redirectUri: string;\n}\n\nexport interface AuthorizationCodeExchangeResponse extends AuthTokens {\n sessionId: string;\n}\n\nexport interface WebhookEvent {\n id: string;\n type: string;\n projectId: string;\n timestamp: string;\n data: Record<string, unknown>;\n}\n\n// ── MFA Types ──\n\nexport interface MfaSetupResponse {\n secret: string;\n qrCodeUri: string;\n backupCodes: string[];\n}\n\nexport interface MfaStatus {\n enabled: boolean;\n backupCodesRemaining: number;\n}\n\nexport interface MfaVerifyResponse {\n accessToken: string;\n refreshToken: string;\n expiresIn: number;\n user: AuthonUser;\n}\n\n// ── Passwordless Types ──\n\nexport interface PasswordlessResult {\n message: string;\n}\n\n// ── Passkey Types ──\n\nexport interface PasskeyCredential {\n id: string;\n name: string | null;\n createdAt: string;\n lastUsedAt: string | null;\n}\n\n// ── Web3 Types ──\n\nexport type Web3Chain = 'evm' | 'solana';\nexport type Web3WalletType =\n | 'metamask'\n | 'pexus'\n | 'walletconnect'\n | 'coinbase'\n | 'phantom'\n | 'trust'\n | 'other';\n\nexport interface Web3Wallet {\n id: string;\n address: string;\n chain: Web3Chain;\n walletType: Web3WalletType;\n chainId: number | null;\n createdAt: string;\n}\n\nexport interface Web3NonceResponse {\n message: string;\n nonce: string;\n}\n\n// ── Session Types ──\n\nexport interface SessionInfo {\n id: string;\n ipAddress: string | null;\n userAgent: string | null;\n createdAt: string;\n lastActiveAt: string | null;\n}\n\n// ── Organization Types ──\n\nexport interface AuthonOrganization {\n id: string;\n projectId: string;\n name: string;\n slug: string;\n logoUrl: string | null;\n metadata: Record<string, any> | null;\n maxMembers: number;\n createdBy: string;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface OrganizationMember {\n id: string;\n organizationId: string;\n userId: string;\n role: 'owner' | 'admin' | 'member';\n joinedAt: string;\n createdAt: string;\n}\n\nexport interface OrganizationInvitation {\n id: string;\n organizationId: string;\n email: string;\n role: string;\n status: 'pending' | 'accepted' | 'rejected' | 'expired';\n invitedBy: string;\n expiresAt: string;\n createdAt: string;\n}\n\nexport interface CreateOrganizationParams {\n name: string;\n slug?: string;\n logoUrl?: string;\n metadata?: Record<string, any>;\n maxMembers?: number;\n}\n\nexport interface UpdateOrganizationParams {\n name?: string;\n slug?: string;\n logoUrl?: string;\n metadata?: Record<string, any>;\n maxMembers?: number;\n}\n\nexport interface InviteMemberParams {\n email: string;\n role?: 'admin' | 'member';\n}\n\nexport interface OrganizationListResponse {\n data: AuthonOrganization[];\n total: number;\n page: number;\n limit: number;\n}\n\n// ── Audit Log Types ──\n\nexport interface AuditLogEntry {\n id: string;\n projectId: string;\n actorType: 'user' | 'admin' | 'system' | 'api_key';\n actorId: string | null;\n event: string;\n targetType: string | null;\n targetId: string | null;\n metadata: Record<string, any> | null;\n ipAddress: string | null;\n userAgent: string | null;\n createdAt: string;\n}\n\nexport interface AuditLogQueryParams {\n event?: string;\n actorId?: string;\n targetId?: string;\n dateFrom?: string;\n dateTo?: string;\n page?: number;\n limit?: number;\n}\n\nexport interface AuditLogListResponse {\n data: AuditLogEntry[];\n total: number;\n page: number;\n limit: number;\n}\n\nexport interface AuditLogStats {\n [eventType: string]: number;\n}\n\n// ── JWT Template Types ──\n\nexport interface JwtClaimMapping {\n key: string;\n source?: string;\n value?: string;\n}\n\nexport interface JwtTemplate {\n id: string;\n projectId: string;\n name: string;\n isDefault: boolean;\n claims: JwtClaimMapping[];\n allowedLifetime: number | null;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface CreateJwtTemplateParams {\n name: string;\n claims: JwtClaimMapping[];\n allowedLifetime?: number;\n}\n\nexport interface UpdateJwtTemplateParams {\n name?: string;\n claims?: JwtClaimMapping[];\n allowedLifetime?: number | null;\n}\n\nexport interface JwtPreviewResponse {\n token: string;\n decoded: Record<string, any>;\n}\n\n// ── Constants ──\n\nexport const OAUTH_PROVIDERS = [\n 'google',\n 'apple',\n 'kakao',\n 'naver',\n 'facebook',\n 'github',\n 'discord',\n 'x',\n 'line',\n 'microsoft',\n] as const;\n\nexport type OAuthProviderType = (typeof OAUTH_PROVIDERS)[number];\n\nexport const PROVIDER_DISPLAY_NAMES: Record<OAuthProviderType, string> = {\n google: 'Google',\n apple: 'Apple',\n kakao: 'Kakao',\n naver: 'Naver',\n facebook: 'Facebook',\n github: 'GitHub',\n discord: 'Discord',\n x: 'X',\n line: 'LINE',\n microsoft: 'Microsoft',\n};\n\nexport const PROVIDER_COLORS: Record<OAuthProviderType, { bg: string; text: string }> = {\n google: { bg: '#ffffff', text: '#1f1f1f' },\n apple: { bg: '#000000', text: '#ffffff' },\n kakao: { bg: '#FEE500', text: '#191919' },\n naver: { bg: '#03C75A', text: '#ffffff' },\n facebook: { bg: '#1877F2', text: '#ffffff' },\n github: { bg: '#24292e', text: '#ffffff' },\n discord: { bg: '#5865F2', text: '#ffffff' },\n x: { bg: '#000000', text: '#ffffff' },\n line: { bg: '#06C755', text: '#ffffff' },\n microsoft: { bg: '#ffffff', text: '#1f1f1f' },\n};\n\nexport const WEBHOOK_EVENTS = [\n 'user.created',\n 'user.updated',\n 'user.deleted',\n 'user.banned',\n 'user.unbanned',\n 'session.created',\n 'session.ended',\n 'session.revoked',\n 'provider.linked',\n 'provider.unlinked',\n] as const;\n\nexport type WebhookEventType = (typeof WEBHOOK_EVENTS)[number];\n\nexport const API_KEY_PREFIXES = {\n PUBLISHABLE_LIVE: 'pk_live_',\n PUBLISHABLE_TEST: 'pk_test_',\n SECRET_LIVE: 'sk_live_',\n SECRET_TEST: 'sk_test_',\n} as const;\n\nexport const DEFAULT_BRANDING: BrandingConfig = {\n primaryColorStart: '#7c3aed',\n primaryColorEnd: '#4f46e5',\n lightBg: '#ffffff',\n lightText: '#111827',\n darkBg: '#0f172a',\n darkText: '#f1f5f9',\n borderRadius: 12,\n showEmailPassword: true,\n showDivider: true,\n showSecuredBy: true,\n locale: 'en',\n};\n\nexport const DEFAULT_SESSION_CONFIG: SessionConfig = {\n accessTokenTtl: 900,\n refreshTokenTtl: 604800,\n maxSessions: 5,\n singleSession: false,\n};\n\nexport const AUDIT_EVENTS = {\n AUTH_SIGNUP: 'auth.signup',\n AUTH_SIGNIN: 'auth.signin',\n AUTH_SIGNIN_FAILED: 'auth.signin.failed',\n AUTH_SIGNOUT: 'auth.signout',\n AUTH_TOKEN_REFRESH: 'auth.token.refresh',\n AUTH_MFA_SETUP: 'auth.mfa.setup',\n AUTH_MFA_VERIFY: 'auth.mfa.verify',\n AUTH_PASSKEY_REGISTER: 'auth.passkey.register',\n AUTH_WEB3_VERIFY: 'auth.web3.verify',\n ADMIN_USER_BANNED: 'admin.user.banned',\n ADMIN_USER_UNBANNED: 'admin.user.unbanned',\n ADMIN_USER_DELETED: 'admin.user.deleted',\n ORG_CREATED: 'org.created',\n ORG_DELETED: 'org.deleted',\n ORG_MEMBER_ADDED: 'org.member.added',\n ORG_MEMBER_REMOVED: 'org.member.removed',\n ORG_MEMBER_ROLE_CHANGED: 'org.member.role_changed',\n ORG_INVITATION_SENT: 'org.invitation.sent',\n ORG_INVITATION_ACCEPTED: 'org.invitation.accepted',\n} as const;\n"],"mappings":";AA8TO,IAAM,kBAAkB;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAIO,IAAM,yBAA4D;AAAA,EACvE,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,GAAG;AAAA,EACH,MAAM;AAAA,EACN,WAAW;AACb;AAEO,IAAM,kBAA2E;AAAA,EACtF,QAAQ,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EACzC,OAAO,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EACxC,OAAO,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EACxC,OAAO,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EACxC,UAAU,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EAC3C,QAAQ,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EACzC,SAAS,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EAC1C,GAAG,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EACpC,MAAM,EAAE,IAAI,WAAW,MAAM,UAAU;AAAA,EACvC,WAAW,EAAE,IAAI,WAAW,MAAM,UAAU;AAC9C;AAEO,IAAM,iBAAiB;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAIO,IAAM,mBAAmB;AAAA,EAC9B,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,EAClB,aAAa;AAAA,EACb,aAAa;AACf;AAEO,IAAM,mBAAmC;AAAA,EAC9C,mBAAmB;AAAA,EACnB,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,cAAc;AAAA,EACd,mBAAmB;AAAA,EACnB,aAAa;AAAA,EACb,eAAe;AAAA,EACf,QAAQ;AACV;AAEO,IAAM,yBAAwC;AAAA,EACnD,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,eAAe;AACjB;AAEO,IAAM,eAAe;AAAA,EAC1B,aAAa;AAAA,EACb,aAAa;AAAA,EACb,oBAAoB;AAAA,EACpB,cAAc;AAAA,EACd,oBAAoB;AAAA,EACpB,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,uBAAuB;AAAA,EACvB,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,qBAAqB;AAAA,EACrB,oBAAoB;AAAA,EACpB,aAAa;AAAA,EACb,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB,oBAAoB;AAAA,EACpB,yBAAyB;AAAA,EACzB,qBAAqB;AAAA,EACrB,yBAAyB;AAC3B;","names":[]}
{
"name": "@authon/shared",
"version": "0.7.17",
"version": "0.8.0",
"description": "Shared types and constants for Authon SDKs",

@@ -5,0 +5,0 @@ "type": "module",