@authowl/core 0.19.0 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { A as AuthConfig, D as DecodedPublishableKey, H as HasParams, O as OrganizationMembership, R as ResolvedAuthConfig, a as ResolvedAuthTarget, T as TransportError, b as TransportErrorKind, c as createMembershipHas, d as decodePublishableKey, m as membershipHas, e as membershipHasPermission, f as membershipHasRole, g as membershipHasTeam, r as resolveAuthTarget, h as resolveConfig, s as sessionCookieName } from './organization-membership-B05mzhtA.js';
2
- import { P as PhoneOtpChallengeData, A as AkedlyShieldStartProof } from './client-CgM5jSLp.js';
3
- export { a as AUTH_CHALLENGE_HEADER, b as AcceptOrganizationInvitationData, c as AccountClient, d as AccountSession, e as AccountStatusData, f as ActionFetchOptions, g as AddOrganizationTeamMemberOptions, h as AddPasskeyOptions, i as AuthActionResult, j as AuthClientError, k as AuthErrorContext, l as AuthOwlClient, m as AuthOwlErrorCode, n as AuthPasskey, o as AuthRequestContext, p as AuthResponseContext, q as AuthSession, r as AuthUser, C as ChangeEmailOptions, s as ChangePasswordData, t as ChangePasswordOptions, u as ConsentAcceptResult, v as ConsentStatus, w as CreateOrganizationOptions, x as CreateOrganizationTeamOptions, D as DeleteAccountData, y as DeleteAccountOptions, z as DeleteOrganizationOptions, B as DeletePasskeyData, E as DeletePasskeyOptions, F as DisableTwoFactorOptions, G as EmailAuthData, H as EmailOtpAuthData, I as EmailOtpSignInOptions, J as EmailOtpType, K as EmailSignInOptions, L as EmailSignUpData, M as EmailSignUpOptions, N as EnableTwoFactorOptions, O as EnvironmentType, Q as GenerateBackupCodesOptions, R as GetOrganizationInvitationOptions, S as GetOrganizationOptions, T as GetToken, U as GetTokenOptions, V as INVITATION_CLAIM_MAX_AGE_MS, W as INVITATION_QUERY_PARAM, X as InvitationClaim, Y as InvitationRecipientHint, Z as InviteOrganizationMemberOptions, _ as JsonObject, $ as JsonPrimitive, a0 as JsonValue, a1 as LeaveOrganizationOptions, a2 as LinkSocialData, a3 as LinkSocialOptions, a4 as ListOrganizationInvitationsOptions, a5 as ListOrganizationMembersOptions, a6 as ListOrganizationRolesOptions, a7 as ListOrganizationTeamMembersOptions, a8 as ListOrganizationTeamsOptions, a9 as MagicLinkData, aa as MagicLinkSignInOptions, ab as Organization, ac as OrganizationClient, ad as OrganizationDetails, ae as OrganizationFilterOperator, af as OrganizationInvitation, ag as OrganizationInvitationActionOptions, ah as OrganizationInvitationDetails, ai as OrganizationInvitationStatus, aj as OrganizationMember, ak as OrganizationMemberUser, al as OrganizationMemberWithUser, am as OrganizationMembersData, an as OrganizationRoleSummary, ao as OrganizationSelector, ap as OrganizationTeam, aq as OrganizationTeamMember, ar as OrganizationUserInvitation, as as PasskeyAuthData, at as PasskeySignInOptions, au as PasswordResetData, av as PhoneAuthUser, aw as PhoneOtpStartData, ax as PhoneOtpStartOptions, ay as PhoneOtpVerifyData, az as PhoneOtpVerifyOptions, aA as ProjectCapabilities, aB as PublicConfig, aC as RejectOrganizationInvitationData, aD as RemoveOrganizationMemberData, aE as RemoveOrganizationMemberOptions, aF as RemoveOrganizationTeamData, aG as RemoveOrganizationTeamMemberData, aH as RemoveOrganizationTeamMemberOptions, aI as RemoveOrganizationTeamOptions, aJ as RequestPasswordResetOptions, aK as ResetPasswordOptions, aL as RevokeSessionOptions, aM as SendOtpData, aN as SendTwoFactorOtpData, aO as SendTwoFactorOtpOptions, aP as SendVerificationOtpOptions, aQ as SessionState, aR as SessionStore, aS as SetActiveOrganizationOptions, aT as SetActiveTeamOptions, aU as SignOutData, aV as SocialAccount, aW as SocialAuthData, aX as SocialIdTokenOptions, aY as SocialSignInOptions, aZ as TokenClient, a_ as TwoFactorBackupCodesData, a$ as TwoFactorEnableData, b0 as TwoFactorRedirectData, b1 as TwoFactorStatusData, b2 as TwoFactorVerifyData, b3 as UnlinkSocialOptions, b4 as UpdateOrganizationMemberRoleOptions, b5 as UpdateOrganizationOptions, b6 as UpdateOrganizationTeamOptions, b7 as UpdatePasskeyData, b8 as UpdatePasskeyOptions, b9 as UpdateProfileOptions, ba as UpdateUnsafeMetadataOptions, bb as UserMetadata, bc as UsernameSignInOptions, bd as VerifyBackupCodeOptions, be as VerifyEmailOtpData, bf as VerifyEmailOtpOptions, bg as VerifyTotpOptions, bh as VerifyTwoFactorOtpOptions, bi as WaitlistJoinData, bj as WaitlistJoinOptions, bk as acceptConsent, bl as captureInvitationClaim, bm as clearInvitationClaim, bn as createAuthOwlClient, bo as createTokenClient, bp as getConsentStatus, bq as getPublicConfig, br as readInvitationClaim, bs as resolveProjectCapabilities } from './client-CgM5jSLp.js';
2
+ import { P as PhoneOtpChallengeData, A as AkedlyShieldStartProof } from './client-C76hiQOA.js';
3
+ export { a as AUTH_CHALLENGE_HEADER, b as AUTH_LOCALE_HEADER, c as AcceptOrganizationInvitationData, d as AccountClient, e as AccountSession, f as AccountStatusData, g as ActionFetchOptions, h as AddOrganizationTeamMemberOptions, i as AddPasskeyOptions, j as AuthActionResult, k as AuthClientError, l as AuthErrorContext, m as AuthOwlClient, n as AuthOwlErrorCode, o as AuthPasskey, p as AuthRequestContext, q as AuthResponseContext, r as AuthSession, s as AuthUser, C as ChangeEmailOptions, t as ChangePasswordData, u as ChangePasswordOptions, v as ConsentAcceptResult, w as ConsentStatus, x as CreateOrganizationOptions, y as CreateOrganizationTeamOptions, D as DeleteAccountData, z as DeleteAccountOptions, B as DeleteOrganizationOptions, E as DeletePasskeyData, F as DeletePasskeyOptions, G as DisableTwoFactorOptions, H as EmailAuthData, I as EmailOtpAuthData, J as EmailOtpSignInOptions, K as EmailOtpType, L as EmailSignInOptions, M as EmailSignUpData, N as EmailSignUpOptions, O as EnableTwoFactorOptions, Q as EnvironmentType, R as GenerateBackupCodesOptions, S as GetOrganizationInvitationOptions, T as GetOrganizationOptions, U as GetToken, V as GetTokenOptions, W as INVITATION_CLAIM_MAX_AGE_MS, X as INVITATION_QUERY_PARAM, Y as InvitationClaim, Z as InvitationRecipientHint, _ as InviteOrganizationMemberOptions, $ as JsonObject, a0 as JsonPrimitive, a1 as JsonValue, a2 as LeaveOrganizationOptions, a3 as LinkSocialData, a4 as LinkSocialOptions, a5 as ListOrganizationInvitationsOptions, a6 as ListOrganizationMembersOptions, a7 as ListOrganizationRolesOptions, a8 as ListOrganizationTeamMembersOptions, a9 as ListOrganizationTeamsOptions, aa as MagicLinkData, ab as MagicLinkSignInOptions, ac as Organization, ad as OrganizationClient, ae as OrganizationDetails, af as OrganizationFilterOperator, ag as OrganizationInvitation, ah as OrganizationInvitationActionOptions, ai as OrganizationInvitationDetails, aj as OrganizationInvitationStatus, ak as OrganizationMember, al as OrganizationMemberUser, am as OrganizationMemberWithUser, an as OrganizationMembersData, ao as OrganizationRoleSummary, ap as OrganizationSelector, aq as OrganizationTeam, ar as OrganizationTeamMember, as as OrganizationUserInvitation, at as PasskeyAuthData, au as PasskeySignInOptions, av as PasswordResetData, aw as PhoneAuthUser, ax as PhoneOtpStartData, ay as PhoneOtpStartOptions, az as PhoneOtpVerifyData, aA as PhoneOtpVerifyOptions, aB as ProjectCapabilities, aC as PublicConfig, aD as RejectOrganizationInvitationData, aE as RemoveOrganizationMemberData, aF as RemoveOrganizationMemberOptions, aG as RemoveOrganizationTeamData, aH as RemoveOrganizationTeamMemberData, aI as RemoveOrganizationTeamMemberOptions, aJ as RemoveOrganizationTeamOptions, aK as RequestPasswordResetOptions, aL as ResetPasswordOptions, aM as RevokeSessionOptions, aN as SendOtpData, aO as SendTwoFactorOtpData, aP as SendTwoFactorOtpOptions, aQ as SendVerificationOtpOptions, aR as SessionState, aS as SessionStore, aT as SetActiveOrganizationOptions, aU as SetActiveTeamOptions, aV as SignOutData, aW as SocialAccount, aX as SocialAuthData, aY as SocialIdTokenOptions, aZ as SocialSignInOptions, a_ as TokenClient, a$ as TwoFactorBackupCodesData, b0 as TwoFactorEnableData, b1 as TwoFactorRedirectData, b2 as TwoFactorStatusData, b3 as TwoFactorVerifyData, b4 as UnlinkSocialOptions, b5 as UpdateOrganizationMemberRoleOptions, b6 as UpdateOrganizationOptions, b7 as UpdateOrganizationTeamOptions, b8 as UpdatePasskeyData, b9 as UpdatePasskeyOptions, ba as UpdateProfileOptions, bb as UpdateUnsafeMetadataOptions, bc as UserMetadata, bd as UsernameSignInOptions, be as VerifyBackupCodeOptions, bf as VerifyEmailOtpData, bg as VerifyEmailOtpOptions, bh as VerifyTotpOptions, bi as VerifyTwoFactorOtpOptions, bj as WaitlistJoinData, bk as WaitlistJoinOptions, bl as acceptConsent, bm as captureInvitationClaim, bn as clearInvitationClaim, bo as createAuthOwlClient, bp as createTokenClient, bq as getConsentStatus, br as getPublicConfig, bs as readInvitationClaim, bt as resolveProjectCapabilities } from './client-C76hiQOA.js';
4
4
  export { S as SESSION_TOKEN_HEADER, a as SESSION_TRANSPORT_BEARER, b as SESSION_TRANSPORT_HEADER } from './session-transport-contract-HDPYRum8.js';
5
5
  export { L as LOCALES, a as Locale, d as directionFor, i as isLocale } from './index-hIdXOzRp.js';
6
6
 
@@ -10,6 +10,80 @@ export { L as LOCALES, a as Locale, d as directionFor, i as isLocale } from './i
10
10
  */
11
11
  declare function sessionChallengeIsEphemeral(headers: Headers): boolean;
12
12
 
13
+ /**
14
+ * Which sign-in method last worked IN THIS BROWSER.
15
+ *
16
+ * A returning user usually has one habit, and a form that shows five equal
17
+ * options makes them re-derive it every visit. Remembering it is a small thing
18
+ * that removes a real hesitation.
19
+ *
20
+ * WHY THIS IS NOT THE `last-login-method` PLUGIN. That plugin sets a
21
+ * non-httpOnly cookie and reads it from `document.cookie`. In AuthOwl's SPA
22
+ * architecture that cookie lands on the ENGINE's domain, invisible to the
23
+ * tenant's page; in the server architecture it lands on the tenant server's
24
+ * fetch, which the session bridge does not forward. Unreadable in both. The SDK
25
+ * does not need it told anyway - it executed the call, so it already knows.
26
+ *
27
+ * THE LINE THIS MUST NOT CROSS. What is stored is a property of this BROWSER,
28
+ * never of an address. Nothing here may be keyed by, derived from, or exposed
29
+ * alongside an email or username: "which method does a@b.com use" is an account
30
+ * enumeration and targeted-phishing surface, and answering it before
31
+ * authentication would hand an attacker the cheapest possible reconnaissance.
32
+ * The value is written only AFTER a method has already succeeded here, so it
33
+ * reveals nothing that this browser did not already do.
34
+ *
35
+ * Best-effort storage, deliberately: a browser refusing `localStorage` degrades
36
+ * to "no badge", which is invisible, rather than to a sign-in that throws.
37
+ */
38
+ /**
39
+ * The methods worth remembering, as a closed set.
40
+ *
41
+ * A closed set rather than a free string because this value is read back from
42
+ * storage a user can edit, and it decides what a form highlights. An unknown
43
+ * value is discarded rather than rendered.
44
+ *
45
+ * Social providers collapse to `social:<id>` so a returning Google user is
46
+ * pointed at the Google button rather than at "social" generally.
47
+ */
48
+ type LastUsedSignInMethod = 'password' | 'username' | 'magic-link' | 'email-otp' | 'phone-otp' | 'passkey' | 'sso' | `social:${string}`;
49
+ /**
50
+ * Read what last worked here, or null.
51
+ *
52
+ * Null covers every uncertainty identically - never used, storage refused,
53
+ * value unrecognised, value tampered with - because a caller has exactly one
54
+ * sensible response to all of them, which is to show no badge.
55
+ */
56
+ declare function readLastUsedSignInMethod(projectId: string): LastUsedSignInMethod | null;
57
+ /**
58
+ * Record a method that JUST SUCCEEDED.
59
+ *
60
+ * Never call this at the start of an attempt for a method that completes
61
+ * in-page: a failed password attempt would then teach the form to recommend
62
+ * the method that just did not work.
63
+ *
64
+ * Redirect methods are the exception and are handled by
65
+ * `rememberPendingSignInMethod`, because the page that would record success is
66
+ * one the browser leaves before reaching.
67
+ */
68
+ declare function recordLastUsedSignInMethod(projectId: string, method: LastUsedSignInMethod): void;
69
+ /**
70
+ * Note that a REDIRECT method is being attempted, without recording it as used.
71
+ *
72
+ * Social and SSO leave the page before anything can observe success, so the
73
+ * attempt is parked here and promoted only once the user comes back signed in.
74
+ * Kept separate from the recorded value on purpose: a user who bounces off a
75
+ * provider's consent screen and returns unauthenticated must not be told that
76
+ * provider is what worked last, because it did not.
77
+ */
78
+ declare function rememberPendingSignInMethod(projectId: string, method: LastUsedSignInMethod): void;
79
+ /**
80
+ * Settle a parked redirect attempt once the returning session has loaded.
81
+ *
82
+ * A signed-in return promotes it. A signed-out return clears it, so a cancelled
83
+ * redirect cannot be mistaken for an unrelated sign-in later.
84
+ */
85
+ declare function settlePendingSignInMethod(projectId: string, signedIn: boolean): void;
86
+
13
87
  /**
14
88
  * Complete Akedly Shield's browser-only proof ceremony. The provider package is
15
89
  * lazy-loaded only when the server-selected route requires it.
@@ -40,4 +114,7 @@ declare class AuthOwlHttpError extends Error {
40
114
  constructor(label: string, response: Response, requestId?: string);
41
115
  }
42
116
 
43
- export { AkedlyShieldStartProof, AuthOwlError, AuthOwlHttpError, InvalidKeyError, PhoneOtpChallengeData, RateLimitedError, createIdempotencyKey, sessionChallengeIsEphemeral, solvePhoneOtpChallenge };
117
+ declare function setActiveLocale(projectId: string, locale: string | null): () => void;
118
+ declare function activeLocale(projectId: string): string | null;
119
+
120
+ export { AkedlyShieldStartProof, AuthOwlError, AuthOwlHttpError, InvalidKeyError, type LastUsedSignInMethod, PhoneOtpChallengeData, RateLimitedError, activeLocale, createIdempotencyKey, readLastUsedSignInMethod, recordLastUsedSignInMethod, rememberPendingSignInMethod, sessionChallengeIsEphemeral, setActiveLocale, settlePendingSignInMethod, solvePhoneOtpChallenge };
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- export{a as LOCALES,b as directionFor,c as isLocale}from'./chunk-M4QJVSXT.js';import {c as c$1,d,h,j,f as f$1}from'./chunk-24DA3F3A.js';export{e as AUTH_CHALLENGE_HEADER,b as AuthOwlHttpError,g as createIdempotencyKey,k as getPublicConfig,a as resolveProjectCapabilities}from'./chunk-24DA3F3A.js';import {f,g as g$1,e,q as q$1,s,r}from'./chunk-V3MSLXXB.js';export{j as SESSION_TOKEN_HEADER,l as SESSION_TRANSPORT_BEARER,k as SESSION_TRANSPORT_HEADER,o as TransportError,F as createMembershipHas,a as decodePublishableKey,E as membershipHas,B as membershipHasPermission,D as membershipHasRole,C as membershipHasTeam,m as resolveAuthTarget,n as resolveConfig,h as sessionChallengeIsEphemeral,b as sessionCookieName}from'./chunk-V3MSLXXB.js';import'./chunk-T5SH3ZZP.js';var N="authowl_invitation",F="authowl.invitation-claim",ee=/^[A-Za-z0-9_-]{1,128}$/,te=10080*60*1e3;function Ne(e=Date.now()){if(typeof window>"u")return S(e);let n;try{n=new URL(window.location.href);}catch{return S(e)}let t=n.searchParams.get(N);if(t===null)return S(e);n.searchParams.delete(N);try{window.history.replaceState(window.history.state,"",n.toString());}catch{}if(!ee.test(t))return S(e);let i={id:t,capturedAt:e};return f(g$1(),F,JSON.stringify(i)),i}function S(e$1=Date.now()){let n=e(g$1(),F);if(n===null)return null;let t;try{t=JSON.parse(n);}catch{return E(),null}if(typeof t!="object"||t===null)return E(),null;let{id:i,capturedAt:o}=t;return typeof i!="string"||!ee.test(i)||typeof o!="number"||e$1-o>te?(E(),null):{id:i,capturedAt:o}}function E(){f(g$1(),F,null);}function u(e){let n=new Uint8Array(e),t="";for(let o of n)t+=String.fromCharCode(o);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function g(e){let n=e.replace(/-/g,"+").replace(/_/g,"/"),t=(4-n.length%4)%4,i=n.padEnd(n.length+t,"="),o=atob(i),s=new ArrayBuffer(o.length),a=new Uint8Array(s);for(let l=0;l<o.length;l++)a[l]=o.charCodeAt(l);return s}function O(){return Fe.stubThis(globalThis?.PublicKeyCredential!==void 0&&typeof globalThis.PublicKeyCredential=="function")}var Fe={stubThis:e=>e};function k(e){let{id:n}=e;return {...e,id:g(n),transports:e.transports}}function I(e){return e==="localhost"||/^((xn--[a-z0-9-]+|[a-z0-9]+(-[a-z0-9]+)*)\.)+([a-z]{2,}|xn--[a-z0-9-]+)$/i.test(e)}var c=class extends Error{constructor({message:n,code:t,cause:i,name:o}){super(n,{cause:i}),Object.defineProperty(this,"code",{enumerable:true,configurable:true,writable:true,value:void 0}),this.name=o??i.name,this.code=t;}};function ne({error:e,options:n}){let{publicKey:t}=n;if(!t)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(n.signal instanceof AbortSignal)return new c({message:"Registration ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else if(e.name==="ConstraintError"){if(t.authenticatorSelection?.requireResidentKey===true)return new c({message:"Discoverable credentials were required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT",cause:e});if(n.mediation==="conditional"&&t.authenticatorSelection?.userVerification==="required")return new c({message:"User verification was required during automatic registration but it could not be performed",code:"ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE",cause:e});if(t.authenticatorSelection?.userVerification==="required")return new c({message:"User verification was required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT",cause:e})}else {if(e.name==="InvalidStateError")return new c({message:"The authenticator was previously registered",code:"ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED",cause:e});if(e.name==="NotAllowedError")return new c({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="NotSupportedError")return t.pubKeyCredParams.filter(o=>o.type==="public-key").length===0?new c({message:'No entry in pubKeyCredParams was of type "public-key"',code:"ERROR_MALFORMED_PUBKEYCREDPARAMS",cause:e}):new c({message:"No available authenticator supported any of the specified pubKeyCredParams algorithms",code:"ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG",cause:e});if(e.name==="SecurityError"){let i=globalThis.location.hostname;if(I(i)){if(t.rp.id!==i)return new c({message:`The RP ID "${t.rp.id}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new c({message:`${globalThis.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="TypeError"){if(t.user.id.byteLength<1||t.user.id.byteLength>64)return new c({message:"User ID was not between 1 and 64 characters",code:"ERROR_INVALID_USER_ID_LENGTH",cause:e})}else if(e.name==="UnknownError")return new c({message:"The authenticator was unable to process the specified options, or could not create a new credential",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return e}var L=class{constructor(){Object.defineProperty(this,"controller",{enumerable:true,configurable:true,writable:true,value:void 0});}createNewAbortSignal(){if(this.controller){let t=new Error("Cancelling existing WebAuthn API call for new one");t.name="AbortError",this.controller.abort(t);}let n=new AbortController;return this.controller=n,n.signal}cancelCeremony(){if(this.controller){let n=new Error("Manually cancelling existing WebAuthn API call");n.name="AbortError",this.controller.abort(n),this.controller=void 0;}}},x=new L;var Le=["cross-platform","platform"];function D(e){if(e&&!(Le.indexOf(e)<0))return e}async function oe(e){!e.optionsJSON&&e.challenge&&(console.warn("startRegistration() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information."),e={optionsJSON:e});let{optionsJSON:n,useAutoRegister:t=false}=e;if(!O())throw new Error("WebAuthn is not supported in this browser");let i={...n,challenge:g(n.challenge),user:{...n.user,id:g(n.user.id)},excludeCredentials:n.excludeCredentials?.map(k)},o={};t&&(o.mediation="conditional"),o.publicKey=i,o.signal=x.createNewAbortSignal();let s;try{s=await navigator.credentials.create(o);}catch(p){throw ne({error:p,options:o})}if(!s)throw new Error("Registration was not completed");let{id:a,rawId:l,response:r,type:y}=s,d;typeof r.getTransports=="function"&&(d=r.getTransports());let h;if(typeof r.getPublicKeyAlgorithm=="function")try{h=r.getPublicKeyAlgorithm();}catch(p){V("getPublicKeyAlgorithm()",p);}let f;if(typeof r.getPublicKey=="function")try{let p=r.getPublicKey();p!==null&&(f=u(p));}catch(p){V("getPublicKey()",p);}let m;if(typeof r.getAuthenticatorData=="function")try{m=u(r.getAuthenticatorData());}catch(p){V("getAuthenticatorData()",p);}return {id:a,rawId:u(l),response:{attestationObject:u(r.attestationObject),clientDataJSON:u(r.clientDataJSON),transports:d,publicKeyAlgorithm:h,publicKey:f,authenticatorData:m},type:y,clientExtensionResults:s.getClientExtensionResults(),authenticatorAttachment:D(s.authenticatorAttachment)}}function V(e,n){console.warn(`The browser extension that intercepted this WebAuthn API call incorrectly implemented ${e}. You should report this error to them.
2
- `,n);}function ie(){if(!O())return M.stubThis(new Promise(n=>n(false)));let e=globalThis.PublicKeyCredential;return e?.isConditionalMediationAvailable===void 0?M.stubThis(new Promise(n=>n(false))):M.stubThis(e.isConditionalMediationAvailable())}var M={stubThis:e=>e};function re({error:e,options:n}){let{publicKey:t}=n;if(!t)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(n.signal instanceof AbortSignal)return new c({message:"Authentication ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else {if(e.name==="NotAllowedError")return new c({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="SecurityError"){let i=globalThis.location.hostname;if(I(i)){if(t.rpId!==i)return new c({message:`The RP ID "${t.rpId}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new c({message:`${globalThis.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="UnknownError")return new c({message:"The authenticator was unable to process the specified options, or could not create a new assertion signature",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return e}async function ae(e){!e.optionsJSON&&e.challenge&&(console.warn("startAuthentication() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information."),e={optionsJSON:e});let{optionsJSON:n,useBrowserAutofill:t=false,verifyBrowserAutofillInput:i=true}=e;if(!O())throw new Error("WebAuthn is not supported in this browser");let o;n.allowCredentials?.length!==0&&(o=n.allowCredentials?.map(k));let s={...n,challenge:g(n.challenge),allowCredentials:o},a={};if(t){if(!await ie())throw Error("Browser does not support WebAuthn autofill");if(document.querySelectorAll("input[autocomplete$='webauthn']").length<1&&i)throw Error('No <input> with "webauthn" as the only or last value in its `autocomplete` attribute was detected');a.mediation="conditional",s.allowCredentials=[];}a.publicKey=s,a.signal=x.createNewAbortSignal();let l;try{l=await navigator.credentials.get(a);}catch(m){throw re({error:m,options:a})}if(!l)throw new Error("Authentication was not completed");let{id:r,rawId:y,response:d,type:h}=l,f;return d.userHandle&&(f=u(d.userHandle)),{id:r,rawId:u(y),response:{authenticatorData:u(d.authenticatorData),clientDataJSON:u(d.clientDataJSON),signature:u(d.signature),userHandle:f},type:h,clientExtensionResults:l.getClientExtensionResults(),authenticatorAttachment:D(l.authenticatorAttachment)}}var se={authenticate:e=>ae(e),register:e=>oe(e),errorCode:e=>e instanceof c?e.code:void 0};function le(e){return `${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/consent`}async function K(e){let n=await c$1(e,le(e),{init:{method:"GET",credentials:"include"},maxResponseBytes:65536,decode:Ve});return n.response.status===401?{required:false}:d(n,"consent status")}async function z(e,n){if(!Number.isSafeInteger(n)||n<1)throw new TypeError("Consent version must be a positive integer.");return d(await c$1(e,le(e),{init:{method:"POST",headers:{"content-type":"application/json"},credentials:"include",body:JSON.stringify({version:n})},maxResponseBytes:64*1024,decode:Me}),"consent accept")}function Ve(e){let n=q$1(e),t=s(n.required),i=Ke(n.needsConsent),o=pe(n.version),s$1=ce(n.termsUrl),a=ce(n.privacyUrl);return {required:t,...i===void 0?{}:{needsConsent:i},...o===void 0?{}:{version:o},...s$1===void 0?{}:{termsUrl:s$1},...a===void 0?{}:{privacyUrl:a}}}function Me(e){let n=q$1(e),t=pe(n.version);return {ok:s(n.ok),...t===void 0?{}:{version:t}}}function Ke(e){if(e===void 0||typeof e=="boolean")return e;throw new TypeError("Invalid consent response.")}function pe(e){if(e===void 0||Number.isSafeInteger(e)&&e>=1)return e;throw new TypeError("Invalid consent response.")}function ce(e){if(e===void 0||typeof e=="string"&&e.length<=4096)return e;throw new TypeError("Invalid consent response.")}var ze=30;function Be(e){return typeof e?.exp=="number"?e.exp:null}function qe(e){let n=e.split(".")[1];if(!n)return null;try{let t=n.replace(/-/g,"+").replace(/_/g,"/"),i=JSON.parse(atob(t));return typeof i=="object"&&i!==null?i:null}catch{return null}}function B(e){let n=new Map;async function t(s={}){let a=s.template===void 0?null:s.template.trim().toLowerCase();if(a==="")throw new TypeError("Template missing");let l=a??"",r=n.get(l);r||(r={activeKey:null,cachedByKey:new Map,inflight:null,sequence:0},n.set(l,r));let y=s.forceRefresh===true;if(!y){let p=r.activeKey?r.cachedByKey.get(r.activeKey):null;if(p&&p.exp-Date.now()/1e3>ze)return p.token;if(r.inflight)return r.inflight}let d$1=++r.sequence,h=()=>n.get(l)===r&&r.sequence===d$1,f=(async()=>{let p=a?`${e.projectBaseURL}/token/${encodeURIComponent(a)}`:`${e.projectBaseURL}/token`,G=await c$1(e,p,{init:{method:"GET",credentials:"include"},maxResponseBytes:64*1024,decode:C=>He(C,a!==null)});if(G.response.status===401)return h()&&i(),null;let J=d(G,"token"),ue=J.policyVersion,v=J.token,b=qe(v),W=Be(b);if(h())if(W!==null){let C=typeof b?.sub=="string"?b.sub:null,de=typeof b?.org_id=="string"?b.org_id:null;if(!a||C){let j=JSON.stringify([e.projectBaseURL,C,de,a,ue]);r.cachedByKey.clear(),r.cachedByKey.set(j,{token:v,exp:W}),r.activeKey=j;}else o(r);}else o(r);return v})();if(y)return f;let m=f.finally(()=>{r.inflight===m&&(r.inflight=null);});return r.inflight=m,m}function i(){n.clear();}function o(s){s.cachedByKey.clear(),s.activeKey=null;}return {getToken:t,clear:i}}function He(e,n){let t=q$1(e),i=r(t.token);if(i.length===0||i.length>32*1024)throw new TypeError("Invalid token response.");if(!n)return {token:i,policyVersion:0};let o=q$1(t.template);if(!Number.isSafeInteger(o.policyVersion)||o.policyVersion<1)throw new TypeError("Invalid token response.");return {token:i,policyVersion:o.policyVersion}}function Ge(e){let n=B(e),t=h(e,n.clear,(a,l)=>j(a,l,se)),i=f$1(e,`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}`),o=a=>(...l)=>(n.clear(),a(...l)),s={getConsentStatus:()=>K(e),acceptConsent:a=>z(e,a),getToken:n.getToken,waitlist:{join:(a,l)=>i.request("/waitlist",{method:"POST",body:a,fetchOptions:l,credentials:"omit"})},account:{...t.account,updateUnsafeMetadata:o(t.account.updateUnsafeMetadata),updateProfile:o(t.account.updateProfile),changeEmail:o(t.account.changeEmail),changePassword:o(t.account.changePassword),revokeSession:o(t.account.revokeSession),delete:o(t.account.delete)},signIn:{email:o(t.signIn.email),username:o(t.signIn.username),social:o(t.signIn.social),sso:t.signIn.sso,magicLink:t.signIn.magicLink,emailOtp:o(t.signIn.emailOtp),passkey:o(t.signIn.passkey)},signUp:{email:o(t.signUp.email)},emailOtp:{...t.emailOtp,verifyEmail:o(t.emailOtp.verifyEmail)},twoFactor:{enable:t.twoFactor.enable,disable:o(t.twoFactor.disable),verifyTotp:o(t.twoFactor.verifyTotp),verifyBackupCode:o(t.twoFactor.verifyBackupCode),sendOtp:t.twoFactor.sendOtp,verifyOtp:o(t.twoFactor.verifyOtp),generateBackupCodes:t.twoFactor.generateBackupCodes},phoneOtp:{prepare:t.phoneOtp.prepare,start:t.phoneOtp.start,verify:o(t.phoneOtp.verify)},signOut:o(t.signOut)};return {...t,...s}}async function Je(e){if(typeof window>"u")throw new Error("Akedly Shield challenges must be solved in a browser.");let n=await We(),t=e.challengeRequired?await n.solvePow(e.challenge,e.difficulty):null,i=e.turnstile.required?await n.getTurnstileToken(je(e.turnstile.siteKey)):void 0;return {connectionId:e.connectionId,...t?{challengeToken:e.challengeToken,nonce:t.nonce}:{},...i?{turnstileToken:i}:{}}}async function We(){return import('@akedly/shield')}function je(e){if(!e)throw new Error("Akedly Shield did not provide a Turnstile site key.");return e}var T=class extends Error{constructor(t,i){super(t);this.cause=i;this.name="AuthOwlError";}cause},q=class extends T{constructor(t,i){super(`Rate limited. Retry after ${t}s.`,i);this.retryAfterSeconds=t;this.name="RateLimitedError";}retryAfterSeconds},H=class extends T{constructor(n="invalid publishable key",t){super(n,t),this.name="InvalidKeyError";}};
3
- export{T as AuthOwlError,te as INVITATION_CLAIM_MAX_AGE_MS,N as INVITATION_QUERY_PARAM,H as InvalidKeyError,q as RateLimitedError,z as acceptConsent,Ne as captureInvitationClaim,E as clearInvitationClaim,Ge as createAuthOwlClient,B as createTokenClient,K as getConsentStatus,S as readInvitationClaim,Je as solvePhoneOtpChallenge};
1
+ export{a as LOCALES,b as directionFor,c as isLocale}from'./chunk-M4QJVSXT.js';import {c as c$1,d as d$1,k,m,i}from'./chunk-KZCWYFAX.js';export{g as AUTH_CHALLENGE_HEADER,h as AUTH_LOCALE_HEADER,b as AuthOwlHttpError,f as activeLocale,j as createIdempotencyKey,n as getPublicConfig,a as resolveProjectCapabilities,e as setActiveLocale}from'./chunk-KZCWYFAX.js';import {f,g,e,q as q$1,s,r}from'./chunk-V3MSLXXB.js';export{j as SESSION_TOKEN_HEADER,l as SESSION_TRANSPORT_BEARER,k as SESSION_TRANSPORT_HEADER,o as TransportError,F as createMembershipHas,a as decodePublishableKey,E as membershipHas,B as membershipHasPermission,D as membershipHasRole,C as membershipHasTeam,m as resolveAuthTarget,n as resolveConfig,h as sessionChallengeIsEphemeral,b as sessionCookieName}from'./chunk-V3MSLXXB.js';import'./chunk-T5SH3ZZP.js';var M="authowl_invitation",V="authowl.invitation-claim",oe=/^[A-Za-z0-9_-]{1,128}$/,ie=10080*60*1e3;function Be(e=Date.now()){if(typeof window>"u")return C(e);let t;try{t=new URL(window.location.href);}catch{return C(e)}let n=t.searchParams.get(M);if(n===null)return C(e);t.searchParams.delete(M);try{window.history.replaceState(window.history.state,"",t.toString());}catch{}if(!oe.test(n))return C(e);let i={id:n,capturedAt:e};return f(g(),V,JSON.stringify(i)),i}function C(e$1=Date.now()){let t=e(g(),V);if(t===null)return null;let n;try{n=JSON.parse(t);}catch{return I(),null}if(typeof n!="object"||n===null)return I(),null;let{id:i,capturedAt:o}=n;return typeof i!="string"||!oe.test(i)||typeof o!="number"||e$1-o>ie?(I(),null):{id:i,capturedAt:o}}function I(){f(g(),V,null);}var re="authowl.last-used-method",qe=/^(password|username|magic-link|email-otp|phone-otp|passkey|sso|social:[a-z0-9][a-z0-9_-]{0,63})$/,K=e=>`${re}.${e}`;function D(e){return qe.test(e)}function He(e$1){let t=e(g(),K(e$1));return t===null||!D(t)?null:t}function Ge(e,t){D(t)&&(f(g(),x(e),null),f(g(),K(e),t));}var x=e=>`${re}.pending.${e}`;function Je(e,t){D(t)&&f(g(),x(e),t);}function We(e$1,t){let n=e(g(),x(e$1));f(g(),x(e$1),null),t&&n!==null&&D(n)&&f(g(),K(e$1),n);}function d(e){let t=new Uint8Array(e),n="";for(let o of t)n+=String.fromCharCode(o);return btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function y(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),n=(4-t.length%4)%4,i=t.padEnd(t.length+n,"="),o=atob(i),s=new ArrayBuffer(o.length),a=new Uint8Array(s);for(let l=0;l<o.length;l++)a[l]=o.charCodeAt(l);return s}function A(){return $e.stubThis(globalThis?.PublicKeyCredential!==void 0&&typeof globalThis.PublicKeyCredential=="function")}var $e={stubThis:e=>e};function v(e){let{id:t}=e;return {...e,id:y(t),transports:e.transports}}function U(e){return e==="localhost"||/^((xn--[a-z0-9-]+|[a-z0-9]+(-[a-z0-9]+)*)\.)+([a-z]{2,}|xn--[a-z0-9-]+)$/i.test(e)}var c=class extends Error{constructor({message:t,code:n,cause:i,name:o}){super(t,{cause:i}),Object.defineProperty(this,"code",{enumerable:true,configurable:true,writable:true,value:void 0}),this.name=o??i.name,this.code=n;}};function ae({error:e,options:t}){let{publicKey:n}=t;if(!n)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(t.signal instanceof AbortSignal)return new c({message:"Registration ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else if(e.name==="ConstraintError"){if(n.authenticatorSelection?.requireResidentKey===true)return new c({message:"Discoverable credentials were required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT",cause:e});if(t.mediation==="conditional"&&n.authenticatorSelection?.userVerification==="required")return new c({message:"User verification was required during automatic registration but it could not be performed",code:"ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE",cause:e});if(n.authenticatorSelection?.userVerification==="required")return new c({message:"User verification was required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT",cause:e})}else {if(e.name==="InvalidStateError")return new c({message:"The authenticator was previously registered",code:"ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED",cause:e});if(e.name==="NotAllowedError")return new c({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="NotSupportedError")return n.pubKeyCredParams.filter(o=>o.type==="public-key").length===0?new c({message:'No entry in pubKeyCredParams was of type "public-key"',code:"ERROR_MALFORMED_PUBKEYCREDPARAMS",cause:e}):new c({message:"No available authenticator supported any of the specified pubKeyCredParams algorithms",code:"ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG",cause:e});if(e.name==="SecurityError"){let i=globalThis.location.hostname;if(U(i)){if(n.rp.id!==i)return new c({message:`The RP ID "${n.rp.id}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new c({message:`${globalThis.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="TypeError"){if(n.user.id.byteLength<1||n.user.id.byteLength>64)return new c({message:"User ID was not between 1 and 64 characters",code:"ERROR_INVALID_USER_ID_LENGTH",cause:e})}else if(e.name==="UnknownError")return new c({message:"The authenticator was unable to process the specified options, or could not create a new credential",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return e}var z=class{constructor(){Object.defineProperty(this,"controller",{enumerable:true,configurable:true,writable:true,value:void 0});}createNewAbortSignal(){if(this.controller){let n=new Error("Cancelling existing WebAuthn API call for new one");n.name="AbortError",this.controller.abort(n);}let t=new AbortController;return this.controller=t,t.signal}cancelCeremony(){if(this.controller){let t=new Error("Manually cancelling existing WebAuthn API call");t.name="AbortError",this.controller.abort(t),this.controller=void 0;}}},_=new z;var je=["cross-platform","platform"];function N(e){if(e&&!(je.indexOf(e)<0))return e}async function se(e){!e.optionsJSON&&e.challenge&&(console.warn("startRegistration() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information."),e={optionsJSON:e});let{optionsJSON:t,useAutoRegister:n=false}=e;if(!A())throw new Error("WebAuthn is not supported in this browser");let i={...t,challenge:y(t.challenge),user:{...t.user,id:y(t.user.id)},excludeCredentials:t.excludeCredentials?.map(v)},o={};n&&(o.mediation="conditional"),o.publicKey=i,o.signal=_.createNewAbortSignal();let s;try{s=await navigator.credentials.create(o);}catch(p){throw ae({error:p,options:o})}if(!s)throw new Error("Registration was not completed");let{id:a,rawId:l,response:r,type:b}=s,m;typeof r.getTransports=="function"&&(m=r.getTransports());let O;if(typeof r.getPublicKeyAlgorithm=="function")try{O=r.getPublicKeyAlgorithm();}catch(p){B("getPublicKeyAlgorithm()",p);}let h;if(typeof r.getPublicKey=="function")try{let p=r.getPublicKey();p!==null&&(h=d(p));}catch(p){B("getPublicKey()",p);}let f;if(typeof r.getAuthenticatorData=="function")try{f=d(r.getAuthenticatorData());}catch(p){B("getAuthenticatorData()",p);}return {id:a,rawId:d(l),response:{attestationObject:d(r.attestationObject),clientDataJSON:d(r.clientDataJSON),transports:m,publicKeyAlgorithm:O,publicKey:h,authenticatorData:f},type:b,clientExtensionResults:s.getClientExtensionResults(),authenticatorAttachment:N(s.authenticatorAttachment)}}function B(e,t){console.warn(`The browser extension that intercepted this WebAuthn API call incorrectly implemented ${e}. You should report this error to them.
2
+ `,t);}function ce(){if(!A())return q.stubThis(new Promise(t=>t(false)));let e=globalThis.PublicKeyCredential;return e?.isConditionalMediationAvailable===void 0?q.stubThis(new Promise(t=>t(false))):q.stubThis(e.isConditionalMediationAvailable())}var q={stubThis:e=>e};function le({error:e,options:t}){let{publicKey:n}=t;if(!n)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(t.signal instanceof AbortSignal)return new c({message:"Authentication ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else {if(e.name==="NotAllowedError")return new c({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="SecurityError"){let i=globalThis.location.hostname;if(U(i)){if(n.rpId!==i)return new c({message:`The RP ID "${n.rpId}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new c({message:`${globalThis.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="UnknownError")return new c({message:"The authenticator was unable to process the specified options, or could not create a new assertion signature",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return e}async function pe(e){!e.optionsJSON&&e.challenge&&(console.warn("startAuthentication() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information."),e={optionsJSON:e});let{optionsJSON:t,useBrowserAutofill:n=false,verifyBrowserAutofillInput:i=true}=e;if(!A())throw new Error("WebAuthn is not supported in this browser");let o;t.allowCredentials?.length!==0&&(o=t.allowCredentials?.map(v));let s={...t,challenge:y(t.challenge),allowCredentials:o},a={};if(n){if(!await ce())throw Error("Browser does not support WebAuthn autofill");if(document.querySelectorAll("input[autocomplete$='webauthn']").length<1&&i)throw Error('No <input> with "webauthn" as the only or last value in its `autocomplete` attribute was detected');a.mediation="conditional",s.allowCredentials=[];}a.publicKey=s,a.signal=_.createNewAbortSignal();let l;try{l=await navigator.credentials.get(a);}catch(f){throw le({error:f,options:a})}if(!l)throw new Error("Authentication was not completed");let{id:r,rawId:b,response:m,type:O}=l,h;return m.userHandle&&(h=d(m.userHandle)),{id:r,rawId:d(b),response:{authenticatorData:d(m.authenticatorData),clientDataJSON:d(m.clientDataJSON),signature:d(m.signature),userHandle:h},type:O,clientExtensionResults:l.getClientExtensionResults(),authenticatorAttachment:N(l.authenticatorAttachment)}}var ue={authenticate:e=>pe(e),register:e=>se(e),errorCode:e=>e instanceof c?e.code:void 0};function me(e){return `${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/consent`}async function H(e){let t=await c$1(e,me(e),{init:{method:"GET",credentials:"include"},maxResponseBytes:65536,decode:Ye});return t.response.status===401?{required:false}:d$1(t,"consent status")}async function G(e,t){if(!Number.isSafeInteger(t)||t<1)throw new TypeError("Consent version must be a positive integer.");return d$1(await c$1(e,me(e),{init:{method:"POST",headers:{"content-type":"application/json"},credentials:"include",body:JSON.stringify({version:t})},maxResponseBytes:64*1024,decode:Qe}),"consent accept")}function Ye(e){let t=q$1(e),n=s(t.required),i=Xe(t.needsConsent),o=fe(t.version),s$1=de(t.termsUrl),a=de(t.privacyUrl);return {required:n,...i===void 0?{}:{needsConsent:i},...o===void 0?{}:{version:o},...s$1===void 0?{}:{termsUrl:s$1},...a===void 0?{}:{privacyUrl:a}}}function Qe(e){let t=q$1(e),n=fe(t.version);return {ok:s(t.ok),...n===void 0?{}:{version:n}}}function Xe(e){if(e===void 0||typeof e=="boolean")return e;throw new TypeError("Invalid consent response.")}function fe(e){if(e===void 0||Number.isSafeInteger(e)&&e>=1)return e;throw new TypeError("Invalid consent response.")}function de(e){if(e===void 0||typeof e=="string"&&e.length<=4096)return e;throw new TypeError("Invalid consent response.")}var Ze=30;function et(e){return typeof e?.exp=="number"?e.exp:null}function tt(e){let t=e.split(".")[1];if(!t)return null;try{let n=t.replace(/-/g,"+").replace(/_/g,"/"),i=JSON.parse(atob(n));return typeof i=="object"&&i!==null?i:null}catch{return null}}function J(e){let t=new Map;async function n(s={}){let a=s.template===void 0?null:s.template.trim().toLowerCase();if(a==="")throw new TypeError("Template missing");let l=a??"",r=t.get(l);r||(r={activeKey:null,cachedByKey:new Map,inflight:null,sequence:0},t.set(l,r));let b=s.forceRefresh===true;if(!b){let p=r.activeKey?r.cachedByKey.get(r.activeKey):null;if(p&&p.exp-Date.now()/1e3>Ze)return p.token;if(r.inflight)return r.inflight}let m=++r.sequence,O=()=>t.get(l)===r&&r.sequence===m,h=(async()=>{let p=a?`${e.projectBaseURL}/token/${encodeURIComponent(a)}`:`${e.projectBaseURL}/token`,j=await c$1(e,p,{init:{method:"GET",credentials:"include"},maxResponseBytes:64*1024,decode:k=>nt(k,a!==null)});if(j.response.status===401)return O()&&i(),null;let Y=d$1(j,"token"),ge=Y.policyVersion,F=Y.token,w=tt(F),Q=et(w);if(O())if(Q!==null){let k=typeof w?.sub=="string"?w.sub:null,he=typeof w?.org_id=="string"?w.org_id:null;if(!a||k){let X=JSON.stringify([e.projectBaseURL,k,he,a,ge]);r.cachedByKey.clear(),r.cachedByKey.set(X,{token:F,exp:Q}),r.activeKey=X;}else o(r);}else o(r);return F})();if(b)return h;let f=h.finally(()=>{r.inflight===f&&(r.inflight=null);});return r.inflight=f,f}function i(){t.clear();}function o(s){s.cachedByKey.clear(),s.activeKey=null;}return {getToken:n,clear:i}}function nt(e,t){let n=q$1(e),i=r(n.token);if(i.length===0||i.length>32*1024)throw new TypeError("Invalid token response.");if(!t)return {token:i,policyVersion:0};let o=q$1(n.template);if(!Number.isSafeInteger(o.policyVersion)||o.policyVersion<1)throw new TypeError("Invalid token response.");return {token:i,policyVersion:o.policyVersion}}function ot(e){let t=J(e),n=k(e,t.clear,(a,l)=>m(a,l,ue)),i$1=i(e,`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}`),o=a=>(...l)=>(t.clear(),a(...l)),s={getConsentStatus:()=>H(e),acceptConsent:a=>G(e,a),getToken:t.getToken,waitlist:{join:(a,l)=>i$1.request("/waitlist",{method:"POST",body:a,fetchOptions:l,credentials:"omit"})},account:{...n.account,updateUnsafeMetadata:o(n.account.updateUnsafeMetadata),updateProfile:o(n.account.updateProfile),changeEmail:o(n.account.changeEmail),changePassword:o(n.account.changePassword),revokeSession:o(n.account.revokeSession),delete:o(n.account.delete)},signIn:{email:o(n.signIn.email),username:o(n.signIn.username),social:o(n.signIn.social),sso:n.signIn.sso,magicLink:n.signIn.magicLink,emailOtp:o(n.signIn.emailOtp),passkey:o(n.signIn.passkey)},signUp:{email:o(n.signUp.email)},emailOtp:{...n.emailOtp,verifyEmail:o(n.emailOtp.verifyEmail)},twoFactor:{enable:n.twoFactor.enable,disable:o(n.twoFactor.disable),verifyTotp:o(n.twoFactor.verifyTotp),verifyBackupCode:o(n.twoFactor.verifyBackupCode),sendOtp:n.twoFactor.sendOtp,verifyOtp:o(n.twoFactor.verifyOtp),generateBackupCodes:n.twoFactor.generateBackupCodes},phoneOtp:{prepare:n.phoneOtp.prepare,start:n.phoneOtp.start,verify:o(n.phoneOtp.verify)},signOut:o(n.signOut)};return {...n,...s}}async function it(e){if(typeof window>"u")throw new Error("Akedly Shield challenges must be solved in a browser.");let t=await rt(),n=e.challengeRequired?await t.solvePow(e.challenge,e.difficulty):null,i=e.turnstile.required?await t.getTurnstileToken(at(e.turnstile.siteKey)):void 0;return {connectionId:e.connectionId,...n?{challengeToken:e.challengeToken,nonce:n.nonce}:{},...i?{turnstileToken:i}:{}}}async function rt(){return import('@akedly/shield')}function at(e){if(!e)throw new Error("Akedly Shield did not provide a Turnstile site key.");return e}var P=class extends Error{constructor(n,i){super(n);this.cause=i;this.name="AuthOwlError";}cause},W=class extends P{constructor(n,i){super(`Rate limited. Retry after ${n}s.`,i);this.retryAfterSeconds=n;this.name="RateLimitedError";}retryAfterSeconds},$=class extends P{constructor(t="invalid publishable key",n){super(t,n),this.name="InvalidKeyError";}};
3
+ export{P as AuthOwlError,ie as INVITATION_CLAIM_MAX_AGE_MS,M as INVITATION_QUERY_PARAM,$ as InvalidKeyError,W as RateLimitedError,G as acceptConsent,Be as captureInvitationClaim,I as clearInvitationClaim,ot as createAuthOwlClient,J as createTokenClient,H as getConsentStatus,C as readInvitationClaim,He as readLastUsedSignInMethod,Ge as recordLastUsedSignInMethod,Je as rememberPendingSignInMethod,We as settlePendingSignInMethod,it as solvePhoneOtpChallenge};
package/dist/native.cjs CHANGED
@@ -1,2 +1,2 @@
1
- 'use strict';var ii=Object.defineProperty;var et=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(i){throw n=[i],i}};var oi=(e,t)=>{for(var n in t)ii(e,n,{get:t[n],enumerable:true});};function ne(){return typeof window<"u"&&typeof document<"u"&&typeof crypto<"u"&&typeof crypto.subtle?.digest=="function"}var De=et(()=>{"use strict";});var Oe={};oi(Oe,{beginCrossSiteSignIn:()=>Wo,challengeFor:()=>Vn,completeCrossSiteSignIn:()=>Yo,takeHandoffCode:()=>Xe});function Kn(e){let t="";for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function Vn(e){let t=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e));return Kn(new Uint8Array(t))}function Jo(){return Kn(crypto.getRandomValues(new Uint8Array(Vo)))}function Bn(e,t){let n=window.location.protocol==="https:"?"; Secure":"";document.cookie=`${qn}=${e}; Path=/; Max-Age=${t}; SameSite=Lax${n}`;}function $o(){for(let e of document.cookie.split(";")){let t=e.indexOf("=");if(!(t<0)&&e.slice(0,t).trim()===qn)return e.slice(t+1).trim()||null}return null}function Go(){Bn("",0);}function Hn(e){return new URL(e,window.location.href).toString()}async function Wo(e,t){let n=t.callbackURL?Hn(t.callbackURL):null;if(n&&new URL(n).origin!==window.location.origin)return null;let i=Jo(),o=new URL(`${e.projectBaseURL}/session/start`);if(o.searchParams.set("pk",e.publishableKey),o.searchParams.set("kind",t.kind),t.kind==="social")o.searchParams.set("provider",t.provider),t.scopes?.length&&o.searchParams.set("scopes",t.scopes.join(",")),t.loginHint&&o.searchParams.set("loginHint",t.loginHint),t.requestSignUp!==void 0&&o.searchParams.set("requestSignUp",t.requestSignUp?"1":"0");else for(let d of jo){let l=t[d];l&&o.searchParams.set(d,l);}let s=`${window.location.origin}${window.location.pathname}${window.location.search}`;o.searchParams.set("cb",n??s);for(let[d,l]of [["err",t.errorCallbackURL],["new",t.newUserCallbackURL]])l&&o.searchParams.set(d,Hn(l));return o.searchParams.set("challenge",await Vn(i)),Bn(i,Bo),o.toString()}function Xe(e){if(typeof window>"u")return null;let t=window.location.hash;if(!t.includes(Ye))return null;let n=new URLSearchParams(t.replace(/^#/,"")),i=n.get(Ye);if(!i||e!==void 0&&i!==e)return null;n.delete(Ye);let o=n.toString();return window.history.replaceState(window.history.state,"",`${window.location.pathname}${window.location.search}${o?`#${o}`:""}`),i}async function Yo(e,t,n){if(!ne())return false;let i=n??Xe();if(!i)return false;n&&Xe(n);let o=$o();if(Go(),!o)return false;t.beginSession({remember:true});let{error:s}=await e.request("/session/exchange",{method:"POST",body:{code:i,verifier:o}});return s===null}var qn,Ye,Vo,Bo,jo,we=et(()=>{"use strict";De();qn="authowl_handoff_verifier",Ye="authowl_code",Vo=32,Bo=900,jo=["email","providerId","domain","organizationSlug"];});var ri=/^(pk_(live|test))_([0-9a-f-]{36})_([A-Za-z0-9]{20,})$/i,si=/^sk_/i;function ke(e){if(typeof e!="string"||e.length===0)throw new Error("publishableKey is required");if(si.test(e))throw new Error("A secret key was passed where a publishable key was expected. Never embed secret keys in client code.");let t=ri.exec(e);if(!t)throw new Error("publishableKey is malformed; expected pk_(live|test)_<uuid>_<base62>");return {prefix:t[1].toLowerCase(),env:t[2].toLowerCase(),projectId:t[3].toLowerCase()}}var tt=/^http:\/\/(?:(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*localhost|127\.0\.0\.1|\[::1\])(?::\d+)?(?:\/|$)/i;function Re(e,t){throw new Error(`${e}: ${t}`)}function nt(e,t){let n;try{n=new URL(String(e));}catch{throw new TypeError("Transport URL must be absolute.")}if(n.username||n.password||n.hash)throw new TypeError("Transport URL must not contain credentials or a fragment.");let i=n.toString();if(n.protocol!=="https:"&&!(n.protocol==="http:"&&t.allowHttpLoopback&&tt.test(i)))throw new TypeError("Transport URL must use HTTPS except on approved loopback.");return n}function it(e,t){(typeof e!="string"||!/^https?:\/\/[^/?#@\\\s]+\/?$/i.test(e))&&Re("apiUrl","origin required");let n;try{n=new URL(e);}catch{Re("apiUrl","origin required");}return n.protocol==="http:"&&(!t.allowHttpLoopback||!tt.test(e))&&Re("apiUrl","HTTPS required except exact loopback"),n.origin}function $(e,t){try{return e?.getItem(t)??null}catch{return null}}function G(e,t,n){try{n===null?e?.removeItem(t):e?.setItem(t,n);}catch{}}function W(){try{return globalThis.localStorage}catch{return}}function B(){try{return globalThis.sessionStorage}catch{return}}var ai="authowl.session-challenge",ui=e=>`${ai}.${e}`,ci="set-auth-challenge",ot="x-authowl-challenge";var st="INVALID_TWO_FACTOR_COOKIE",di=2048,de=e=>e!==null&&e.length<=di,rt=/^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/;function li(e){let t=[];for(let n of e.split(";")){let i=n.trimStart(),o=i.indexOf("=");o<=0||t.push([i.slice(0,o).trimEnd(),i.slice(o+1)]);}return t}function at(e){let t=ui(e),n=new Map;function i(){return n.size===0?null:[...n].map(([l,a])=>`${l}=${a}`).join("; ")}function o(){let l=i();G(B(),t,de(l)?l:null);}function s(l){for(let[a,y]of li(l))rt.test(a)&&(y===""?n.delete(a):rt.test(y)&&n.set(a,y));}let d=$(B(),t);return de(d)&&s(d),{presentOn(l){let a=i();l.delete(ot),de(a)&&l.set(ot,a);},observe(l){let a=l.get(ci);de(a)&&(s(a),o());},clear(){n.clear(),o();}}}var ut="set-auth-token",ct="x-authowl-session-transport",dt="bearer";var pi="authowl.session-token",fi="authowl.cookie-transport",pt="ok",ft="bearer",gi=e=>`${pi}.${e}`,mi=e=>`${fi}.${e}`;function hi(e){return e===pt?"cookies":e===ft?"bearer":"unknown"}function yi(e){return e==="cookies"?pt:e==="bearer"?ft:null}function Ai(e){let t=gi(e),n=mi(e),i=at(e),o=null,s=false,d=null,l=hi($(W(),n)),a=()=>l==="unknown",y=0,r=null,u=false;function f(){let h=$(B(),t);if(h!==null)return s=true,h;let O=$(W(),t);return O!==null?(s=false,O):null}o=f(),o!==null&&a()&&(u=true);function b(){if(!(!u||!r)){u=false;try{r();}catch{}}}function c(){let h=l==="bearer"?o:null,[O,_]=s?[B(),W()]:[W(),B()];G(_,t,null),G(O,t,h);}function g(h){h!==null&&d!==null&&(s=d,d=null),o=h,c(),h!==null&&a()&&(u=true,b());}function A(h){l=h,G(W(),n,yi(h));}function w(){A("unknown"),u=false;}function I(){return o===null&&(o=f()),o}function q(){let h=f();return h!==null&&(o=h),o}function K(h){q()===h&&c();}function V(){y+=1,d=null,s=false,g(null),i.clear(),w();}let J=()=>l!=="cookies";return {hasToken:()=>I()!==null,declareOn(h){if(h.has("authorization"))return false;let O=I();return !O&&!J()?false:(O&&h.set("authorization",`Bearer ${O}`),h.set(ct,dt),i.presentOn(h),true)},wantsToken:J,needsProbe:a,observe(h){let O=h.get(ut);O&&g(O),i.observe(h);},dropChallenge:i.clear,measureWith(h){r=h,b();},beginRead(){let h=I(),O=y;return {carriedToken:h!==null,endIfDead(){h!==null&&q()===h&&y===O&&V();},recordCookieVerdict(_){if(y===O&&a()){if(A(_?"cookies":"bearer"),_){g(null);return}K(h);}}}},beginSession({remember:h}){y+=1,d=!h,i.clear(),w();},endSession:V}}var lt=new Map;function gt(e){let t=lt.get(e);if(t)return t;let n=Ai(e);return lt.set(e,n),n}function bi(e,t){return t?.headers?new Headers(t.headers):typeof e=="object"&&e!==null&&"headers"in e?new Headers(e.headers):new Headers}function mt(e,t){let n=gt(e),i=(d,l)=>(t??globalThis.fetch)(d,l);return {fetch:async(d,l)=>{if(l?.credentials==="omit"||!n.wantsToken())return i(d,l);let a=bi(d,l),y=n.declareOn(a),r=await i(d,{...l,headers:a});return y&&n.observe(r.headers),r},probe:i,tokens:n}}function Oi(e){if(!e||typeof e!="object")throw new Error("AuthConfig is required");let t=ke(e.publishableKey),n=it(e.apiUrl,{allowHttpLoopback:t.env==="test"});return {publishableKey:e.publishableKey,apiUrl:n,decoded:t,projectBaseURL:`${n}/api/projects/${t.projectId}/auth`}}function Se(e){let t=Oi(e),{fetch:n,...i}=mt(t.decoded.projectId,e.fetch);return {...e,...t,fetch:n,session:i}}var wi=1e4,ki=1024*1024,x=class extends Error{kind;requestId;constructor(t,n){super(Ei(t)),this.name="TransportError",this.kind=t,this.requestId=n;}},At=new WeakSet;function C(e,t){let n=new x(e,t);return At.add(n),n}async function bt({fetchImpl:e,url:t,init:n={},timeoutMs:i=wi,maxResponseBytes:o=ki,allowHttpLoopback:s=false,decode:d}){yt(i,"timeoutMs"),yt(o,"maxResponseBytes");let l=nt(t,{allowHttpLoopback:s}),a=n.signal,y=new AbortController,r=null,u,f=new Promise(A=>{u=A;}),b=A=>{r===null&&(r=A,u({type:"abort",kind:A}),y.abort());},c=()=>b("aborted");a?.addEventListener("abort",c,{once:true});let g=setTimeout(()=>b("timeout"),i);a?.aborted&&c();try{if(r!==null)throw C(r);let A;try{A=await Promise.race([e(l.toString(),{...n,redirect:"error",signal:y.signal}).then(J=>({type:"response",response:J})),f]);}catch{throw C(r??"network")}if(A.type==="abort")throw C(A.kind);if(!Ri(A.response))throw C("invalid_response");let w=A.response,I=xi(w.headers),q=await Si(w,o,f,()=>r,I),K=Pi(w,q,I),V;try{V=w.ok&&d?d(K,Object.freeze({status:w.status})):K;}catch{throw C("invalid_response",I)}return {response:w,data:V,...I===void 0?{}:{requestId:I}}}catch(A){throw A instanceof x&&At.has(A)?A:C(r??"network")}finally{clearTimeout(g),a?.removeEventListener("abort",c);}}function Ri(e){if(!e||typeof e!="object")return false;let t=e;return Number.isInteger(t.status)&&t.status>=0&&t.status<=599&&typeof t.statusText=="string"&&typeof t.ok=="boolean"&&typeof t.headers?.get=="function"&&(t.body===null||typeof t.body=="object"&&typeof t.body?.getReader=="function"&&typeof t.body.cancel=="function")}async function Si(e,t,n,i,o){let s=e.headers.get("content-length");if(s!==null){if(!/^\d+$/.test(s))throw ht(e.body),C("invalid_response",o);if(Number(s)>t)throw ht(e.body),C("response_too_large",o)}if(!e.body)return "";let d;try{d=e.body.getReader();}catch{throw C("network",o)}let l=[],a=0,y=null;try{for(;;){let f;try{f=await Promise.race([d.read(),n]);}catch{y=C(i()??"network",o);break}if(Ti(f)){y=C(f.kind,o);break}let{done:b,value:c}=f;if(b)break;if(c.byteLength!==0){if(a+=c.byteLength,a>t){y=C("response_too_large",o);break}l.push(c);}}}finally{y&&Ii(d);try{d.releaseLock();}catch{}}if(y)throw y;let r=new Uint8Array(a),u=0;for(let f of l)r.set(f,u),u+=f.byteLength;try{return new TextDecoder("utf-8",{fatal:!0}).decode(r)}catch{throw C("invalid_response",o)}}function Ti(e){return "type"in e&&e.type==="abort"}function ht(e){if(e)try{e.cancel().catch(()=>{});}catch{}}function Ii(e){try{e.cancel().catch(()=>{});}catch{}}function Pi(e,t,n){if(e.status===204||e.status===205)return null;let i=vi(e.headers.get("content-type"));if(!e.ok&&(!i||t.length===0))return null;if(!i||t.length===0)throw C("invalid_response",n);try{return JSON.parse(t)}catch{if(!e.ok)return null;throw C("invalid_response",n)}}function vi(e){if(e===null)return false;let t=e.split(";",1)[0]?.trim().toLowerCase();return t==="application/json"||t?.endsWith("+json")===true}function xi(e){let t=e.get("x-request-id")?.trim();if(!(!t||t.length>256||!/^[A-Za-z0-9._:-]+$/.test(t)))return t}function yt(e,t){if(!Number.isInteger(e)||e<=0)throw new TypeError(`${t} must be a positive integer.`)}function Ei(e){switch(e){case "aborted":return "The request was cancelled.";case "timeout":return "The request timed out.";case "response_too_large":return "The response exceeded the allowed size.";case "invalid_response":return "The service returned an invalid response.";case "network":return "The network request could not be completed."}}var Te=class extends Error{status;requestId;constructor(t,n,i){super(`${t} request failed with status ${n.status}.`),this.name="AuthOwlHttpError",this.status=n.status,this.requestId=i;}};function le(e,t,n={}){let i=new Headers(n.init?.headers);return i.set("x-publishable-key",e.publishableKey),bt({fetchImpl:e.fetch,url:t,init:{...n.init,headers:i},allowHttpLoopback:e.decoded.env==="test",...n.timeoutMs===void 0?{}:{timeoutMs:n.timeoutMs},...n.maxResponseBytes===void 0?{}:{maxResponseBytes:n.maxResponseBytes},...n.decode===void 0?{}:{decode:n.decode}})}function Ot(e,t){if(!e.response.ok)throw new Te(t,e.response,e.requestId);return e.data}var Ci="x-authowl-turnstile-token",zi=1e4,Di=32,Ui=2e4;function Y(e,t){return {post:(n,i,o,s)=>e.request(n,{method:"POST",body:i,fetchOptions:o,decode:s}),mutation:async(n,i)=>{let o=await n;return o.error===null&&(i===void 0||o.data!==null&&i(o.data))&&t(),o}}}function xe(e,t=e.projectBaseURL){return {async request(n,i={}){let o=Mi(t,n,i.query),s=i.method??(i.body===void 0?"GET":"POST"),d=new Headers(i.fetchOptions?.headers);i.fetchOptions?.authChallengeToken&&d.set(Ci,i.fetchOptions.authChallengeToken),i.body!==void 0&&d.set("content-type","application/json");let l={method:s,headers:d,credentials:i.credentials??"include",...i.body===void 0?{}:{body:JSON.stringify(i.body)}},a=Object.freeze({method:s,path:n});await i.fetchOptions?.onRequest?.(a);let y=Ni(s,i.fetchOptions),r;try{r=await _i(e,o,{...l,signal:i.fetchOptions?.signal},y);}catch(A){let w=kt(A);return await i.fetchOptions?.onError?.(Ie(a,w,Hi(A))),{data:null,error:w}}let{response:u,requestId:f}=r,b=Vi(n,r.data),c=b;if(u.ok)try{c=ve(b),i.decode&&(c=i.decode(c));}catch{let A=kt(new x("invalid_response",f));return await i.fetchOptions?.onError?.(Ie(a,A,"invalid_response")),{data:null,error:A}}let g=Object.freeze({...a,status:u.status,...f===void 0?{}:{requestId:f}});if(await i.fetchOptions?.onResponse?.(g),!u.ok){let A=Li(u,b,f);return A.code===st&&e.session.tokens.dropChallenge(),await i.fetchOptions?.onError?.(Ie(a,A,"api")),{data:null,error:A}}return await i.fetchOptions?.onSuccess?.(g),{data:c,error:null}}}}async function _i(e,t,n,i){let o=Date.now()+zi;for(let s=0;s<i;s+=1){let d=o-Date.now();if(d<=0)throw new x("timeout");try{let l=await le(e,t,{init:n,timeoutMs:Math.max(1,Math.ceil(d))});if(l.response.status<500||s===i-1)return l}catch(l){if(s===i-1||!(l instanceof x)||l.kind!=="network")throw l}await qi(50*2**s,n.signal,o);}throw new x("network")}function Ni(e,t){if(e!=="GET"||t?.authChallengeToken)return 1;let n=t?.retry;return typeof n!="number"||!Number.isFinite(n)?1:Math.min(Math.max(Math.trunc(n),0),3)+1}function Mi(e,t,n){let i=new URL(`${e}${t.startsWith("/")?t:`/${t}`}`);for(let[o,s]of Object.entries(n??{}))s!==void 0&&i.searchParams.set(o,String(s));return i.toString()}function Li(e,t,n){let i=te(t)?t:{},o=Fi(i,e.headers);return {status:e.status,statusText:e.statusText,code:typeof i.code=="string"?i.code:void 0,...n===void 0?{}:{requestId:n},...typeof i.current_version=="number"?{currentVersion:i.current_version}:{},...o!==void 0?{retryAfterSeconds:o}:{},message:typeof i.message=="string"?i.message:typeof i.error=="string"?i.error:typeof i.detail=="string"?i.detail:e.statusText||"Request failed"}}function Fi(e,t){let n=(typeof e.retryAfterSeconds=="number"&&Number.isFinite(e.retryAfterSeconds)?e.retryAfterSeconds:void 0)??wt(t.get("retry-after"))??wt(t.get("x-retry-after"));if(n!==void 0)return Math.min(Math.max(Math.trunc(n),1),86400)}function wt(e){if(!e)return;let t=e.trim();if(!/^\d+$/.test(t))return;let n=Number(t);return Number.isFinite(n)?n:void 0}function kt(e){let t=e instanceof x?e.kind:"network";return {status:0,...{aborted:{statusText:"ABORTED",code:"REQUEST_ABORTED",message:"The request was cancelled."},timeout:{statusText:"TIMEOUT",code:"REQUEST_TIMEOUT",message:"The request timed out."},response_too_large:{statusText:"INVALID_RESPONSE",code:"RESPONSE_TOO_LARGE",message:"The service response was too large."},invalid_response:{statusText:"INVALID_RESPONSE",code:"INVALID_RESPONSE",message:"The service returned an invalid response."},network:{statusText:"FETCH_ERROR",code:"FETCH_ERROR",message:"Network request failed."}}[t],...e instanceof x&&e.requestId?{requestId:e.requestId}:{}}}function Ie(e,t,n){return Object.freeze({...e,status:t.status??0,...t.requestId===void 0?{}:{requestId:t.requestId},failure:n})}function Hi(e){return e instanceof x?e.kind:"network"}function qi(e,t,n){return new Promise((i,o)=>{if(t?.aborted){o(new x("aborted"));return}let s=n-Date.now();if(s<=0){o(new x("timeout"));return}let d=Math.min(e,s),l=()=>{clearTimeout(a),o(new x("aborted"));},a=setTimeout(()=>{t?.removeEventListener("abort",l),Date.now()>=n?o(new x("timeout")):i();},d);t?.addEventListener("abort",l,{once:true}),t?.aborted&&l();})}function ve(e,t="",n=0,i={nodes:0}){if(i.nodes+=1,n>Di||i.nodes>Ui)throw new Error("response traversal limit exceeded");if(typeof e=="string"&&/^(?:createdAt|updatedAt|expiresAt)$/.test(t)){let o=new Date(e);return Number.isNaN(o.getTime())?e:o}return Array.isArray(e)?e.map(o=>ve(o,"",n+1,i)):te(e)?Object.fromEntries(Object.entries(e).map(([o,s])=>[o,Ki(o)?s:ve(s,o,n+1,i)])):e}function Ki(e){return e==="metadata"||e==="public_metadata"||e==="unsafe_metadata"||e==="private_metadata"||e==="publicMetadata"||e==="unsafeMetadata"||e==="privateMetadata"}function Vi(e,t){if(e==="/list-sessions"&&Array.isArray(t))return t.map(o=>te(o)?Pe(o):o);if(!te(t))return t;let i=e==="/change-password"||e==="/passkey/verify-authentication"||e==="/phone-otp/verify"||e==="/sign-up/email"||e.startsWith("/sign-in/")||e.startsWith("/two-factor/verify-")?Pe(t):t;return e==="/sign-up/email"&&!("sessionCreated"in i)&&(i={...i,sessionCreated:typeof t.token=="string"&&t.token.length>0}),(e==="/get-session"||e==="/passkey/verify-authentication")&&te(i.session)&&(i={...i,session:Pe(i.session)}),i}function Pe(e){if(!Object.hasOwn(e,"token"))return e;let t={...e};return delete t.token,t}function te(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}var Bi=new Set(["__proto__","constructor","prototype"]);function m(e){(!e||typeof e!="object"||Array.isArray(e))&&p();let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null&&p(),e}function k(e){return typeof e!="string"&&p(),e}function T(e){return typeof e!="boolean"&&p(),e}function S(e){return (!(e instanceof Date)||Number.isNaN(e.getTime()))&&p(),e}function j(e){return (!Array.isArray(e)||!e.every(t=>typeof t=="string"))&&p(),[...e]}function P(e,t){let n=e[t];return n==null||typeof n=="string"?n:p()}function Rt(e,t){let n=e[t];return n==null||typeof n=="boolean"?n:p()}function U(e){let t=m(e),n=t.email;return n!==null&&typeof n!="string"&&p(),{id:k(t.id),email:n,emailVerified:T(t.emailVerified),createdAt:S(t.createdAt),updatedAt:S(t.updatedAt),...D("phoneNumber",P(t,"phoneNumber")),...D("username",P(t,"username")),...D("displayUsername",P(t,"displayUsername")),...D("firstName",P(t,"firstName")),...D("lastName",P(t,"lastName")),...D("name",P(t,"name")),...D("image",P(t,"image")),...D("twoFactorEnabled",Rt(t,"twoFactorEnabled"))}}function pe(e){let t=m(e),n=t.membership;return {id:k(t.id),userId:k(t.userId),expiresAt:S(t.expiresAt),...D("activeOrganizationId",P(t,"activeOrganizationId")),...D("activeTeamId",P(t,"activeTeamId")),...D("membership",n==null?n:ji(n)),...D("pendingMfaEnrollment",Rt(t,"pendingMfaEnrollment"))}}function p(){throw new TypeError("AuthOwl response does not match its runtime contract.")}function M(e,t=20,n=1e4){return (!e||typeof e!="object"||Array.isArray(e))&&p(),Ce(e,t,n)}function Ce(e,t=20,n=1e4){return Ee(e,0,{nodes:0},t,n)}function ji(e){let t=m(e);return {role:k(t.role),...t.roles===void 0?{}:{roles:j(t.roles)},permissions:j(t.permissions),...t.teams===void 0?{}:{teams:j(t.teams)}}}function Ee(e,t,n,i,o){if(n.nodes+=1,(t>i||n.nodes>o)&&p(),e===null||typeof e=="string"||typeof e=="boolean")return e;if(typeof e=="number")return Number.isFinite(e)||p(),e;if(Array.isArray(e))return e.map(l=>Ee(l,t+1,n,i,o));(!e||typeof e!="object")&&p();let s=Object.getPrototypeOf(e);s!==Object.prototype&&s!==null&&p();let d={};for(let[l,a]of Object.entries(e))Bi.has(l)&&p(),d[l]=Ee(a,t+1,n,i,o);return d}function D(e,t){return t===void 0?{}:{[e]:t}}function St({http:e,probe:t,tokens:n,channelName:i}){let o=new Set,s=null,d=null,l=null,a=null,y=null,r=null,u,f=h=>{g(h);};u={data:null,isPending:true,isRefetching:false,error:null,refetch:f};function b(h){u=h;for(let O of o)O();}async function c(h){return e.request("/get-session",{query:h?.query,decode:ze})}function g(h){if(h?.query?.disableCookieCache===true)return w(h);if(a)return a;if(y)return y;let O=w(h).finally(()=>{y===O&&(y=null);});return y=O,O}function A(){if(a)return a;let h=w({query:{disableCookieCache:true}}).finally(()=>{a===h&&(a=null);});return a=h,h}async function w(h){l?.abort();let O=new AbortController;l=O,b({...u,isPending:u.data===null&&u.error===null,isRefetching:u.data!==null});let _=n.beginRead(),ce=await e.request("/get-session",{query:h?.query,fetchOptions:{signal:O.signal},decode:ze});if(l===O&&(l=null,b({data:ce.data,error:ce.error,isPending:false,isRefetching:false,refetch:f}),ce.error===null)){if(ce.data===null){_.endIfDead();return}await I(_);}}async function I(h){if(n.needsProbe()){if(!h.carriedToken){h.recordCookieVerdict(true);return}return r||q(h)}}function q(h){let O=t.request("/get-session",{query:{disableCookieCache:true},decode:ze}).then(_=>{r===O&&_.error===null&&h.recordCookieVerdict(_.data!==null);}).finally(()=>{r===O&&(r=null);});return r=O,O}function K(){s?.postMessage({type:"session-changed"});}function V(){if(typeof window>"u"||d)return;let h=()=>{g();},O=()=>{document.visibilityState==="visible"&&g();};window.addEventListener("focus",h),document.addEventListener("visibilitychange",O),typeof BroadcastChannel<"u"&&(s=new BroadcastChannel(i),s.addEventListener("message",h)),d=()=>{window.removeEventListener("focus",h),document.removeEventListener("visibilitychange",O),s?.close(),s=null,d=null;};}function J(h){return o.add(h),o.size===1&&(V(),g()),()=>{if(o.delete(h),o.size===0){let O=l;l=null,y=null,a=null,O?.abort(),d?.();}}}return n.measureWith(()=>{n.needsProbe()&&q(n.beginRead());}),{store:{subscribe:J,getSnapshot:()=>u,refresh:A},getSession:c,notifyMutation(){K(),r&&r.catch(()=>{}).then(()=>{!n.needsProbe()&&n.hasToken()&&K();}),o.size>0&&g({query:{disableCookieCache:true}});}}}function ze(e){if(e===null)return null;let t=m(e);return (t.session===void 0||t.user===void 0)&&p(),{session:pe(t.session),user:U(t.user)}}De();function Tt(){let e=globalThis.crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=Array.from(e,n=>n.toString(16).padStart(2,"0")).join("");return `${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}async function It(e,t){return e.request("/user/metadata",{fetchOptions:t,decode:vt})}async function Pt(e,t,n){return e.request("/user/metadata",{method:"PATCH",body:{expected_version:t.expectedVersion,unsafe_metadata:t.unsafeMetadata},fetchOptions:n,decode:vt})}function vt(e){let t=m(e),n=M(t.public_metadata),i=M(t.unsafe_metadata);if(!Number.isSafeInteger(t.metadata_version)||t.metadata_version<0)throw new TypeError("Invalid AuthOwl metadata response");return {publicMetadata:n,unsafeMetadata:i,metadataVersion:t.metadata_version}}function Et(e,t){let{post:n,mutation:i}=Y(e,t);return {getMetadata:o=>It(e,o),updateUnsafeMetadata:(o,s)=>Pt(e,o,s),updateProfile:(o,s)=>i(n("/update-user",o,s,ie)),changeEmail:(o,s)=>i(n("/change-email",o,s,ie)),changePassword:(o,s)=>i(n("/change-password",o,s,Ji)),listSessions:o=>e.request("/list-sessions",{fetchOptions:o,decode:$i}),revokeSession:({sessionId:o},s)=>i(n("/revoke-session",{sessionId:o},s,ie)),revokeOtherSessions:o=>i(n("/revoke-other-sessions",{},o,ie)),listSocialAccounts:async o=>{let s=await e.request("/list-accounts",{fetchOptions:o,decode:Gi});if(!s.data)return {data:null,error:s.error};let d=s.data.length>1;return {...s,data:s.data.filter(l=>l.providerId!=="credential").map(l=>({...l,canUnlink:d}))}},linkSocial:(o,s)=>n("/link-social",o,s,Wi),unlinkSocial:(o,s)=>i(n("/unlink-account",o,s,ie)),delete:(o={},s)=>i(n("/delete-user",o,s,Yi))}}function ie(e){let t=m(e);return {status:T(t.status)}}function Ji(e){let t=m(e);return {user:U(t.user)}}function $i(e){return Array.isArray(e)||p(),e.map(t=>{let n=m(t);return {id:k(n.id),userId:k(n.userId),createdAt:S(n.createdAt),updatedAt:S(n.updatedAt),expiresAt:S(n.expiresAt),...xt("ipAddress",P(n,"ipAddress")),...xt("userAgent",P(n,"userAgent"))}})}function Gi(e){return Array.isArray(e)||p(),e.map(t=>{let n=m(t);return {id:k(n.id),userId:k(n.userId),providerId:k(n.providerId),accountId:k(n.accountId),scopes:j(n.scopes),createdAt:S(n.createdAt),updatedAt:S(n.updatedAt)}})}function Wi(e){let t=m(e);return {url:k(t.url),redirect:T(t.redirect)}}function Yi(e){let t=m(e);return {success:T(t.success),message:k(t.message)}}function xt(e,t){return t===void 0?{}:{[e]:t}}function Ue(e,t){return !e||!t?false:e.permissions.includes(t)}function Xi(e,t){return !e||!t?false:e.teams?.includes(t)??false}function Qi(e,t){return e?e.roles===void 0?e.role===t:e.roles.includes(t):false}function _e(e,t){if(!e)return false;let{role:n,permission:i,teamId:o}=t;return !(n===void 0&&i===void 0&&o===void 0||n!==void 0&&!Qi(e,n)||i!==void 0&&!e.permissions.includes(i)||o!==void 0&&!Xi(e,o))}function Zi(e){return {has:t=>_e(e,t),hasPermission:t=>Ue(e,t.permission)}}var eo=new Set(["pending","accepted","rejected","canceled"]),Ne=1e4;function Ct(e){let t=m(e);return t.recipientHint!==null&&t.recipientHint!=="new_user"&&p(),{recipientHint:t.recipientHint}}function X(e,t,n){let i=m(e),o={id:R(i.id),name:R(i.name),slug:R(i.slug),createdAt:S(i.createdAt),...oe("logo",P(i,"logo")),...oe("metadata",i.metadata===void 0?void 0:Ce(i.metadata))};return N(o.id,t),N(o.slug,n),o}function zt(e){return L(e,X)}function Me(e,t,n){return e===null?null:(t===null&&p(),X(e,t,n))}function Dt(e,t,n){if(e===null)return null;let i=m(e),o=X(i,t,n);return {...o,members:L(i.members,s=>jt(s,o.id)),invitations:L(i.invitations,s=>F(s,void 0,o.id))}}function Le(e,t,n=false){let i=L(e,o=>re(o));return n||ae(i.map(o=>o.organizationId),t),i}function Ut(e,t){let n=L(e,i=>Fe(i));return ae(n.map(i=>i.teamId),t),n}function Fe(e,t,n){let i=m(e),o={id:R(i.id),teamId:R(i.teamId),userId:R(i.userId),createdAt:S(i.createdAt)};return N(o.teamId,t),N(o.userId,n),o}function _t(e,t,n){return e===null?null:(t===null&&p(),re(e,t,n))}function Nt(e,t){let n=m(e);return (!Number.isSafeInteger(n.total)||n.total<0)&&p(),{members:to(n.members,t),total:n.total}}function F(e,t,n){let i=m(e),o=R(i.status);eo.has(o)||p();let s={id:R(i.id),organizationId:R(i.organizationId),email:se(i.email),role:R(i.role),status:o,inviterId:R(i.inviterId),expiresAt:S(i.expiresAt),createdAt:S(i.createdAt)};return N(s.id,t),N(s.organizationId,n),s}function Mt(e,t){let n=L(e,i=>F(i));return ae(n.map(i=>i.organizationId),t),n}function Lt(e){return L(e,t=>{let n=m(t);return {...F(n),organizationName:se(n.organizationName)}})}function Ft(e,t){let n=m(e);return {...F(n,t),organizationName:R(n.organizationName),organizationSlug:R(n.organizationSlug),inviterEmail:Jt(n.inviterEmail)}}function Ht(e,t){let n=m(e),i=F(n.invitation,t);return {invitation:i,member:Q(n.member,void 0,i.organizationId)}}function qt(e,t){let n=m(e);return n.member!==null&&p(),{invitation:n.invitation===null?null:F(n.invitation,t),member:null}}function Kt(e,t){return e===null?null:F(e,t)}function Vt(e,t,n){let i=m(e);return {member:Q(i.member,n,t)}}function Q(e,t,n){let i=m(e),o={id:R(i.id),organizationId:R(i.organizationId),userId:R(i.userId),role:R(i.role),createdAt:S(i.createdAt),...i.user===void 0?{}:{user:$t(i.user)}};return N(o.id,t),N(o.organizationId,n),o}function Bt(e,t){let n=L(e,i=>{let o=m(i);return {organizationId:R(o.organizationId),data:{role:R(o.role),...oe("permission",o.permission===void 0?void 0:no(o.permission)),...oe("customPermissionKeys",o.customPermissionKeys===void 0?void 0:j(o.customPermissionKeys))}}});return ae(n.map(i=>i.organizationId),t),n.map(i=>i.data)}function re(e,t,n){let i=m(e),o=i.updatedAt,s={id:R(i.id),name:se(i.name),organizationId:R(i.organizationId),createdAt:S(i.createdAt),...o===void 0?{}:{updatedAt:S(o)}};return N(s.id,t),N(s.organizationId,n),s}function He(e){let t=m(e);return {message:se(t.message)}}function jt(e,t){let n=m(e);return {...Q(n,void 0,t),user:$t(n.user)}}function to(e,t){let n=L(e,i=>jt(i));return ae(n.map(i=>i.organizationId),t),n}function no(e){let t=m(e),n={};for(let[i,o]of Object.entries(t))(i==="__proto__"||i==="constructor"||i==="prototype"||i.length===0||i.length>Ne||!Array.isArray(o))&&p(),n[i]=o.map(s=>R(s));return n}function R(e){let t=k(e);return (t.length===0||t.length>Ne)&&p(),t}function se(e){if(e==null)return "";let t=k(e);return t.length>Ne&&p(),t}function Jt(e){return e===null?null:R(e)}function N(e,t){t!==void 0&&e!==t&&p();}function ae(e,t){let n=t??e[0];n!==void 0&&e.some(i=>i!==n)&&p();}function $t(e){let t=m(e);return {id:R(t.id),name:se(t.name),email:Jt(t.email),...oe("image",P(t,"image"))}}function L(e,t){return Array.isArray(e)||p(),e.map(n=>t(n))}function oe(e,t){return t===void 0?{}:{[e]:t}}function Gt(e,t,n=()=>null){let{post:i,mutation:o}=Y(e,t),s=new Set,d=()=>{for(let r of s)try{r();}catch{}},l=new Map,a=(r,u,f,b)=>{if(f)return e.request(r,{query:u,fetchOptions:f,decode:b});let c=`${r}\0${JSON.stringify(u??null)}`,g=l.get(c);if(g)return g;let A=e.request(r,{query:u,decode:b}).finally(()=>{l.delete(c);});return l.set(c,A),A},y=async r=>{let u=await o(r).finally(()=>l.clear());return u.error===null&&d(),u};return {subscribe(r){return s.add(r),()=>s.delete(r)},create:(r,u)=>y(i("/organization/create",r,u,X)),list:r=>a("/organization/list",void 0,r,zt),get:(r={},u)=>a("/organization/get-full-organization",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,membersLimit:r.membersLimit},u,f=>Dt(f,r.organizationId,r.organizationSlug)),setActive:(r,u)=>y(i("/organization/set-active",r,u,f=>Me(f,r.organizationId,r.organizationSlug))),createTeam:(r,u)=>y(i("/organization/create-team",r,u,f=>re(f,void 0,r.organizationId))),listTeams:(r={},u)=>a("/organization/list-teams",{organizationId:r.organizationId},u,f=>Le(f,r.organizationId)),updateTeam:(r,u)=>y(i("/organization/update-team",r,u,f=>re(f,r.teamId,r.data.organizationId))),removeTeam:(r,u)=>y(i("/organization/remove-team",r,u,He)),listUserTeams:r=>a("/organization/list-user-teams",void 0,r,u=>Le(u,void 0,true)),listTeamMembers:(r={},u)=>a("/organization/list-team-members",{teamId:r.teamId},u,f=>Ut(f,r.teamId)),addTeamMember:(r,u)=>y(i("/organization/add-team-member",r,u,f=>Fe(f,r.teamId,r.userId))),removeTeamMember:(r,u)=>y(i("/organization/remove-team-member",r,u,He)),setActiveTeam:(r,u)=>y(i("/organization/set-active-team",r,u,f=>_t(f,r.teamId))),update:(r,u)=>y(i("/organization/update",r,u,f=>Me(f,r.organizationId))),delete:(r,u)=>y(i("/organization/delete",r,u,f=>X(f,r.organizationId))),listMembers:(r={},u)=>a("/organization/list-members",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,limit:r.limit,offset:r.offset,sortBy:r.sortBy,sortDirection:r.sortDirection,filterField:r.filterField,filterValue:r.filterValue,filterOperator:r.filterOperator},u,f=>Nt(f,r.organizationId)),inviteMember:(r,u)=>y(i("/organization/invite-member",r,u,f=>F(f,void 0,r.organizationId))),listInvitations:(r={},u)=>a("/organization/list-invitations",{organizationId:r.organizationId},u,f=>Mt(f,r.organizationId)),listUserInvitations:r=>a("/organization/list-user-invitations",void 0,r,Lt),getInvitation:(r,u)=>a("/organization/get-invitation",{id:r.id},u,f=>Ft(f,r.id)),getInvitationRecipientHint:(r,u)=>a("/organization/invitation-recipient-hint",{invitationId:r.invitationId},u,Ct),acceptInvitation:(r,u)=>y(i("/organization/accept-invitation",r,u,f=>Ht(f,r.invitationId))),rejectInvitation:(r,u)=>y(i("/organization/reject-invitation",r,u,f=>qt(f,r.invitationId))),cancelInvitation:(r,u)=>y(i("/organization/cancel-invitation",r,u,f=>Kt(f,r.invitationId))),removeMember:(r,u)=>y(i("/organization/remove-member",r,u,f=>Vt(f,r.organizationId,r.memberIdOrEmail.includes("@")?void 0:r.memberIdOrEmail))),updateMemberRole:(r,u)=>y(i("/organization/update-member-role",r,u,f=>Q(f,r.memberId,r.organizationId))),leave:(r,u)=>y(i("/organization/leave",r,u,f=>Q(f,void 0,r.organizationId))),listRoles:(r={},u)=>a("/organization/list-roles",{organizationId:r.organizationId},u,f=>Bt(f,r.organizationId)),has:r=>_e(n(),r),hasPermission:r=>Ue(n(),r.permission)}}var Wt=4096,io=4096,oo=100,ro=256,so=16,ao=64,uo=12;function Ke(e){let t=m(e);return t.twoFactorRedirect===true?((t.user!==void 0||t.redirect!==void 0||t.url!==void 0)&&p(),{twoFactorRedirect:true,...t.twoFactorMethods===void 0?{}:{twoFactorMethods:gn(t.twoFactorMethods,so,ao)}}):(t.twoFactorRedirect!==void 0&&p(),{redirect:T(t.redirect),...go(t,"url"),user:U(t.user)})}function Yt(e){let t=m(e);return {user:U(t.user)}}function Xt(e){let t=m(e);return {sessionCreated:T(t.sessionCreated),user:U(t.user)}}function Qt(e,t){let n=m(e),i=T(n.redirect);n.user===null&&p();let o=n.user!==void 0&&n.user!==null,s=n.url!==void 0&&n.url!==null;return i?((o||!s)&&p(),{redirect:true,url:qe(n.url,t)}):(o===s&&p(),o?{redirect:false,user:U(n.user)}:{redirect:false,url:qe(n.url,t)})}function Zt(e,t){let n=m(e);return (n.redirect!==true||n.user!==void 0)&&p(),{redirect:true,url:qe(n.url,t)}}function en(e){return {status:T(m(e).status)}}function tn(e){return {success:T(m(e).success)}}function nn(e){return m(e).status!=="pending"&&p(),{status:"pending"}}function on(e){let t=m(e);if(t.kind==="authowl_turnstile")return {kind:"authowl_turnstile"};t.kind!=="akedly_shield_v1_2"&&p();let n=m(t.turnstile),i=n.siteKey===null?null:k(n.siteKey);return {kind:"akedly_shield_v1_2",connectionId:k(t.connectionId),challenge:k(t.challenge),difficulty:co(t.difficulty),challengeToken:k(t.challengeToken),challengeRequired:T(t.challengeRequired),turnstile:{required:T(n.required),siteKey:i}}}function co(e){return (!Number.isSafeInteger(e)||Number(e)<0||Number(e)>uo)&&p(),Number(e)}function rn(e){let t=m(e);return (t.status!==true||t.sessionCreated!==true)&&p(),{status:true,sessionCreated:true,user:lo(t.user)}}function Ve(e){return {status:T(m(e).status)}}function sn(e){return {status:T(m(e).status)}}function an(e){let t=m(e);return {status:T(t.status),user:U(t.user)}}function un(e){return {success:T(m(e).success)}}function cn(e){let t=m(e);return {totpURI:fo(t.totpURI),backupCodes:fn(t.backupCodes)}}function dn(e){return {status:T(m(e).status)}}function fe(e){return m(e).status!==true&&p(),{status:true}}function ln(e){return {status:T(m(e).status)}}function pn(e){let t=m(e);return t.status!==void 0&&t.status!==true&&p(),{backupCodes:fn(t.backupCodes)}}function lo(e){let t=m(e);return {id:Z(t.id,512),...mo(t,"name",1024),phoneNumber:Z(t.phoneNumber,64),phoneNumberVerified:T(t.phoneNumberVerified),...t.createdAt===void 0?{}:{createdAt:S(t.createdAt)},...t.updatedAt===void 0?{}:{updatedAt:S(t.updatedAt)}}}function qe(e,t){let n=Z(e,Wt);/[\u0000-\u0020\u007f]/u.test(n)&&p();let i;try{i=new URL(n);}catch{return p()}return (i.username||i.password)&&p(),i.protocol==="https:"||t&&i.protocol==="http:"&&po(i.hostname)?i.href:p()}function po(e){let t=e.toLowerCase();return t==="localhost"||t==="127.0.0.1"||t==="[::1]"}function fo(e){let t=Z(e,io),n;try{n=new URL(t);}catch{return p()}let i=n.searchParams.get("secret");return (n.protocol!=="otpauth:"||n.hostname.toLowerCase()!=="totp"||n.username||n.password||n.hash||i===null||i.length===0||i.length>512||/\s/u.test(i))&&p(),t}function fn(e){return gn(e,oo,ro)}function gn(e,t,n){(!Array.isArray(e)||e.length===0||e.length>t)&&p();let i=e.map(o=>Z(o,n));return i.some(o=>o.trim().length===0)&&p(),new Set(i).size!==i.length&&p(),i}function Z(e,t){let n=k(e);return (n.length===0||n.length>t)&&p(),n}function go(e,t){let n=e[t];return n==null?{}:{[t]:Z(n,Wt)}}function mo(e,t,n){let i=P(e,t);return i===void 0?{}:(i!==null&&i.length>n&&p(),{[t]:i})}var mn=new Set([1564,8206,8207,8234,8235,8236,8237,8238,8294,8295,8296,8297]),ge=new Set([9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288,65279]);function me(e){if(e===void 0)return {valid:true,value:void 0};for(let n of e){let i=n.codePointAt(0);if(i===void 0||yn(n,i)||hn(i)||mn.has(i))return {valid:false}}let t=ho(e);return Be(t)?{valid:true,value:t}:{valid:false}}function Be(e){let t=0,n,i;for(let o of e){if(t+=1,t>256)return false;let s=o.codePointAt(0);if(s===void 0||yn(o,s)||hn(s)||mn.has(s))return false;n??=s,i=s;}return t>0&&n!==void 0&&i!==void 0&&!ge.has(n)&&!ge.has(i)}function he(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_PASSKEY_NAME",message:"Passkey names must contain 1 to 256 safe Unicode characters."}}}function ho(e){let t=0,n=e.length;for(;t<n;){let i=e.codePointAt(t);if(i===void 0||!ge.has(i))break;t+=i>65535?2:1;}for(;n>t;){let i=e.codePointAt(n-1);if(i===void 0)break;let s=i>=56320&&i<=57343?n-2:n-1,d=e.codePointAt(s);if(d===void 0||!ge.has(d))break;n=s;}return e.slice(t,n)}function hn(e){return e>=0&&e<=31||e>=127&&e<=159}function yn(e,t){return e.length===1&&t>=55296&&t<=57343}var On=12,wn=5e3,yo=8,Ao=1e3,bo=16,An=512,kn=100,Rn=8192,Oo=32768,je=1024,bn=256,$e=64,wo=6e5,ko=/^[A-Za-z0-9_-]+$/u,Ro=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u,So=/[\u0000-\u001f\u007f-\u009f\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/u,To=/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$/u,Io=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu,Sn=new Set(["discouraged","preferred","required"]),Po=new Set(["singleDevice","multiDevice"]),Tn=new Set(["ble","cable","hybrid","internal","nfc","smart-card","usb"]),In=new Set(["hybrid","security-key","client-device"]),vo=new Set(["none","indirect","direct","enterprise"]),xo=new Set(["fido-u2f","packed","android-safetynet","android-key","tpm","apple","none"]),Eo=new Set(["platform","cross-platform"]),Co=new Set(["discouraged","preferred","required"]),zo=new Set([-8,-7,-257]);function Pn(e){let t=M(e,On,wn);return {challenge:Mn(t.challenge),...v("timeout",_n(t.timeout)),...v("rpId",Ln(t.rpId)),...v("allowCredentials",Un(t.allowCredentials)),...v("userVerification",ue(t.userVerification,Sn)),...v("hints",ye(t.hints,In)),...v("extensions",Nn(t.extensions))}}function vn(e){let t=M(e,On,wn);return {challenge:Mn(t.challenge),rp:Do(t.rp),user:Uo(t.user),pubKeyCredParams:_o(t.pubKeyCredParams),...v("timeout",_n(t.timeout)),...v("excludeCredentials",Un(t.excludeCredentials)),...v("authenticatorSelection",No(t.authenticatorSelection)),...v("attestation",ue(t.attestation,vo)),...v("attestationFormats",ye(t.attestationFormats,xo)),...v("hints",ye(t.hints,In)),...v("extensions",Nn(t.extensions))}}function xn(e){let t=m(e),n=pe(t.session),i=U(t.user);return n.userId!==i.id&&p(),{session:n,user:i}}function Ge(e){let t=m(e),n=t.counter;(!Number.isSafeInteger(n)||n<0)&&p();let i=We(t.deviceType,Po),o=T(t.backedUp);return o&&i!=="multiDevice"&&p(),{id:ee(t.id,bn),...Fo(t),publicKey:Mo(t.publicKey,Oo),userId:ee(t.userId,bn),credentialID:be(t.credentialID,Rn),counter:n,deviceType:i,backedUp:o,...Ho(t),createdAt:S(t.createdAt),...qo(t)}}function En(e,t,n){let i=Ge(e);return (i.credentialID!==t||(n===void 0?i.name!==void 0&&i.name!==null:i.name!==n))&&p(),i}function Cn(e){(!Array.isArray(e)||e.length>kn)&&p();let t=e.map(Ge);return Ae(t.map(n=>n.id)),Ae(t.map(n=>n.credentialID)),t.length>1&&t.some(n=>n.userId!==t[0]?.userId)&&p(),t}function zn(e,t,n){let i=m(e),o=Ge(i.passkey);return (o.id!==t||o.name!==n)&&p(),{passkey:o}}function Dn(e){return m(e).status!==true&&p(),{status:true}}function Do(e){let t=m(e);return {name:Je(t.name,je),...v("id",Ln(t.id))}}function Uo(e){let t=m(e);return {id:be(t.id,128,1,64),name:Je(t.name,je),displayName:Je(t.displayName,je)}}function _o(e){(!Array.isArray(e)||e.length===0||e.length>$e)&&p();let t=e.map(n=>{let i=m(n);return (i.type!=="public-key"||!Number.isSafeInteger(i.alg)||!zo.has(i.alg))&&p(),{type:"public-key",alg:i.alg}});return Ko(t.map(n=>n.alg)),t}function Un(e){if(e===void 0)return;(!Array.isArray(e)||e.length>kn)&&p();let t=e.map(n=>{let i=m(n);return i.type!=="public-key"&&p(),{type:"public-key",id:be(i.id,Rn),...v("transports",ye(i.transports,Tn))}});return Ae(t.map(n=>n.id)),t}function No(e){if(e===void 0)return;let t=m(e);t.requireResidentKey!==void 0&&typeof t.requireResidentKey!="boolean"&&p();let n=ue(t.residentKey,Co);return t.requireResidentKey!==void 0&&n!==void 0&&t.requireResidentKey!==(n==="required")&&p(),{...v("authenticatorAttachment",ue(t.authenticatorAttachment,Eo)),...v("residentKey",n),...v("requireResidentKey",t.requireResidentKey),...v("userVerification",ue(t.userVerification,Sn))}}function _n(e){return e!==void 0&&(typeof e!="number"||!Number.isFinite(e)||e<0||e>wo)&&p(),e}function Nn(e){return e===void 0?void 0:M(e,yo,Ao)}function ye(e,t){if(e===void 0)return;(!Array.isArray(e)||e.length>$e)&&p();let n=e.map(i=>We(i,t));return Ae(n),n}function ue(e,t){if(e!==void 0)return We(e,t)}function Mn(e){return be(e,Math.ceil(An*4/3),bo,An)}function be(e,t,n=1,i=Number.POSITIVE_INFINITY){let o=ee(e,t),s=o.length%4,d=Lo(o.at(-1)??""),l=Math.floor(o.length*3/4);return (!ko.test(o)||s===1||s===2&&(d&15)!==0||s===3&&(d&3)!==0||l<n||l>i)&&p(),o}function ee(e,t){let n=k(e);return (n.length===0||n.length>t)&&p(),n}function Je(e,t){let n=ee(e,t);return So.test(n)&&p(),n}function Ln(e){if(e===void 0)return;let t=ee(e,253);return t!=="localhost"&&(t.endsWith(".")||!t.includes(".")||t.split(".").some(n=>!To.test(n)))&&p(),t}function Mo(e,t){let n=ee(e,t),i=n.endsWith("=="),o=!i&&n.endsWith("="),s=n.at(i?-3:o?-2:-1)??"",d=Fn(s);return (n.length%4!==0||!Ro.test(n)||i&&(d&15)!==0||o&&(d&3)!==0)&&p(),n}function Lo(e){return Fn(e,true)}function Fn(e,t=false){return (t?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").indexOf(e)}function Fo(e){let t=P(e,"name");return t===void 0?{}:(t!==null&&!Be(t)&&p(),{name:t})}function Ho(e){let t=P(e,"transports");if(t==null||t==="")return t===void 0?{}:{transports:t};let n=t.split(",");return (n.length>$e||n.some(i=>!Tn.has(i))||new Set(n).size!==n.length)&&p(),{transports:t}}function qo(e){let t=P(e,"aaguid");return t==null?t===void 0?{}:{aaguid:null}:(Io.test(t)||p(),{aaguid:t})}function We(e,t){let n=k(e);return t.has(n)||p(),n}function v(e,t){return t===void 0?{}:{[e]:t}}function Ae(e){new Set(e).size!==e.length&&p();}function Ko(e){new Set(e).size!==e.length&&p();}function Xo(e,t){if(!t)return e;let n=t.catch(()=>{});return n.then(()=>{n=null;}),{async request(i,o){return n&&await n,e.request(i,o)}}}var jn=new Map;function Qo(e,t,n){let i=jn.get(n);if(!i){let o=new URLSearchParams(window.location.hash.slice(1)).get("authowl_code");if(!o)return;i=Promise.resolve().then(()=>(we(),Oe)).then(s=>s.completeCrossSiteSignIn(e,t,o)),jn.set(n,i);}return i}function Jn(e){return !ne()||e.idToken||e.disableRedirect?"legacy":"first-party"}function Zo(e,t=()=>{},n=nr){let i=xe(e),o=e.session.tokens,s=ne()?Qo(i,o,e.decoded.projectId):void 0,d=Xo(i,s),l=St({http:d,probe:xe({...e,fetch:e.session.probe}),tokens:o,channelName:`authowl:${e.decoded.projectId}`}),a=n(d,l.notifyMutation),y=()=>{l.notifyMutation(),t();},{post:r,mutation:u}=Y(d,y),f=e.decoded.env==="test",b=c=>{o.beginSession({remember:c?.rememberMe!==false});};return {sessionStore:l.store,getSession:l.getSession,account:Et(d,y),organization:Gt(d,y,()=>l.store.getSnapshot().data?.session.membership??null),signIn:{email:(c,g)=>(b(c),u(r("/sign-in/email",c,g,Ke),A=>!("twoFactorRedirect"in A))),username:(c,g)=>(b(c),u(r("/sign-in/username",c,g,Ke),A=>!("twoFactorRedirect"in A))),social:async(c,g)=>{if(b(),Jn(c)==="first-party"){let{beginCrossSiteSignIn:w}=await Promise.resolve().then(()=>(we(),Oe)),I=await w(e,{kind:"social",provider:c.provider,callbackURL:c.callbackURL,errorCallbackURL:c.errorCallbackURL,newUserCallbackURL:c.newUserCallbackURL,scopes:c.scopes,loginHint:c.loginHint,requestSignUp:c.requestSignUp});if(I)return window.location.assign(I),{data:{redirect:true,url:I},error:null}}let A=await u(r("/sign-in/social",c,g,w=>Qt(w,f)),w=>"user"in w);return A.error!==null||A.data===null||"url"in A.data&&A.data.redirect&&!c.disableRedirect&&typeof window<"u"&&window.location.assign(A.data.url),A},sso:async(c,g)=>{if(Jn(c)==="first-party"){let{beginCrossSiteSignIn:w}=await Promise.resolve().then(()=>(we(),Oe)),I=await w(e,{kind:"sso",email:c.email,providerId:c.providerId,domain:c.domain,organizationSlug:c.organizationSlug,callbackURL:c.callbackURL,errorCallbackURL:c.errorCallbackURL,newUserCallbackURL:c.newUserCallbackURL});if(I)return window.location.assign(I),{data:{url:I,redirect:true},error:null}}let A=await r("/sign-in/sso",c,g,w=>Zt(w,f));return A.error!==null||A.data===null||typeof window<"u"&&window.location.assign(A.data.url),A},magicLink:(c,g)=>r("/sign-in/magic-link",c,g,en),emailOtp:(c,g)=>(b(),u(r("/sign-in/email-otp",c,g,Yt))),passkey:(c,g)=>(b(),a.signIn(c,g))},signUp:{email:(c,g)=>(b(),u(r("/sign-up/email",c,g,Xt),A=>A.sessionCreated))},emailOtp:{sendVerificationOtp:(c,g)=>r("/email-otp/send-verification-otp",c,g,tn),verifyEmail:(c,g)=>(b(),u(r("/email-otp/verify-email",c,g,an)))},phoneOtp:{prepare:c=>r("/phone-otp/challenge",{},c,on),start:(c,g)=>r("/phone-otp/start",{...c,idempotencyKey:c.idempotencyKey??Tt()},g,nn),verify:(c,g)=>(b(),u(r("/phone-otp/verify",c,g,rn)))},requestPasswordReset:(c,g)=>r("/request-password-reset",c,g,Ve),resetPassword:(c,g)=>r("/reset-password",c,g,Ve),sendVerificationEmail:(c,g)=>r("/send-verification-email",c,g,sn),passkey:{addPasskey:(c,g)=>a.add(c,g),listUserPasskeys:()=>d.request("/passkey/list-user-passkeys",{decode:Cn}),updatePasskey:async(c,g)=>{let A=me(c.name);if(!A.valid||A.value===void 0)return he();let w=A.value;return r("/passkey/update-passkey",{...c,name:w},g,I=>zn(I,c.id,w))},deletePasskey:(c,g)=>r("/passkey/delete-passkey",c,g,Dn)},twoFactor:{enable:(c,g)=>r("/two-factor/enable",c,g,cn),disable:(c,g)=>u(r("/two-factor/disable",c,g,dn),A=>A.status),verifyTotp:(c,g)=>u(r("/two-factor/verify-totp",c,g,fe)),verifyBackupCode:(c,g)=>u(r("/two-factor/verify-backup-code",c,g,fe)),sendOtp:(c={},g)=>r("/two-factor/send-otp",c,g,ln),verifyOtp:(c,g)=>u(r("/two-factor/verify-otp",c,g,fe)),generateBackupCodes:(c,g)=>r("/two-factor/generate-backup-codes",c,g,pn)},signOut:c=>u(d.request("/sign-out",{method:"POST",body:{},fetchOptions:c,decode:un}).then(g=>(o.endSession(),g)),g=>g.success)}}function Qe(e,t=()=>{},n){let i=Zo(e,t,n);return n?{...i,signIn:{email:i.signIn.email,username:i.signIn.username,social:$n(i),magicLink:i.signIn.magicLink,emailOtp:i.signIn.emailOtp,passkey:i.signIn.passkey},passkey:{listUserPasskeys:i.passkey.listUserPasskeys,updatePasskey:i.passkey.updatePasskey,deletePasskey:i.passkey.deletePasskey,addPasskey:i.passkey.addPasskey}}:{...i,signIn:{email:i.signIn.email,username:i.signIn.username,social:$n(i),magicLink:i.signIn.magicLink,emailOtp:i.signIn.emailOtp},passkey:{listUserPasskeys:i.passkey.listUserPasskeys,updatePasskey:i.passkey.updatePasskey,deletePasskey:i.passkey.deletePasskey}}}function $n(e){return async(t,n)=>{if(!t?.idToken||typeof t.idToken.token!="string"||t.idToken.token==="")return er();let i=await e.signIn.social({...t,disableRedirect:true},n);return i.data!==null&&"url"in i.data?tr():i}}function er(){return Promise.resolve({data:null,error:{status:400,statusText:"BAD_REQUEST",code:"NATIVE_SOCIAL_ID_TOKEN_REQUIRED",message:"Native social sign-in requires a provider ID token."}})}function tr(){return Promise.resolve({data:null,error:{status:502,statusText:"BAD_GATEWAY",code:"INVALID_NATIVE_SOCIAL_RESPONSE",message:"The server returned a redirect for native ID-token sign-in."}})}function nr(){return {signIn:()=>Gn(),add:()=>Gn()}}function Gn(){return Promise.resolve({data:null,error:{status:400,statusText:"BAD_REQUEST",code:"PASSKEY_BROWSER_REQUIRED",message:"This passkey ceremony requires a browser with WebAuthn."}})}function ir(e,t,n){let i=new Map;return {async signIn(o={},s){let d=await e.request("/passkey/generate-authenticate-options");if(!d.data)return Xn(d.error);let l;try{l=Pn(d.data);}catch{return Wn()}let a;try{a=await n.authenticate({optionsJSON:l,useBrowserAutofill:o.autoFill});}catch(b){return Qn(n,b,"AUTH_CANCELLED","Passkey authentication was cancelled.")}if(!or(a))return Yn();let{clientExtensionResults:y,...r}=a,u=i.get(a.id);if(u)return u;let f=(async()=>{let b=await e.request("/passkey/verify-authentication",{method:"POST",body:{response:r},fetchOptions:s,decode:xn});return b.data&&t(),b})();i.set(a.id,f);try{return await f}finally{i.get(a.id)===f&&i.delete(a.id);}},async add(o={},s){let d=me(o.name);if(!d.valid)return he();let l=await e.request("/passkey/generate-register-options",{query:{name:d.value,authenticatorAttachment:o.authenticatorAttachment}});if(!l.data)return Xn(l.error);let a;try{a=vn(l.data);}catch{return Wn()}let y;try{y=await n.register({optionsJSON:a});}catch(b){return Qn(n,b,"REGISTRATION_CANCELLED","Passkey registration was cancelled.")}if(!rr(y))return Yn();let{clientExtensionResults:r,...u}=y,f=await e.request("/passkey/verify-registration",{method:"POST",body:{response:u,name:d.value},fetchOptions:s,decode:b=>En(b,y.id,d.value)});return f.data&&t(),f}}}function Wn(){return {data:null,error:{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned invalid WebAuthn options."}}}function Yn(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_WEBAUTHN_RESPONSE",message:"The platform returned an invalid passkey response."}}}function ei(e){if(!e||typeof e!="object")return false;let t=e;return typeof t.id=="string"&&t.id.length>0&&typeof t.rawId=="string"&&t.rawId.length>0&&t.type==="public-key"&&!!t.response&&typeof t.response=="object"}function or(e){if(!ei(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.authenticatorData=="string"&&typeof t.signature=="string"&&(t.userHandle===void 0||typeof t.userHandle=="string")}function rr(e){if(!ei(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.attestationObject=="string"}function Xn(e){return {data:null,error:e??{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned no WebAuthn options."}}}function Qn(e,t,n,i){let o=ar(t,"page does not have focus"),s=e.errorCode?.(t),d=s!==void 0?s==="ERROR_CEREMONY_ABORTED":Zn(t)==="AbortError",l=n!=="AUTH_CANCELLED",a=sr(s,Zn(t),l);return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:o?"PASSKEY_PAGE_NOT_FOCUSED":d?n:s??"PASSKEY_BROWSER_ERROR",message:o?"Keep this page focused while completing the passkey prompt.":d?i:a}}}function sr(e,t,n){switch(e){case "ERROR_INVALID_DOMAIN":case "ERROR_INVALID_RP_ID":return "Passkeys are not set up for this site\u2019s domain.";case "ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED":return "This device already has a passkey for this account.";case "ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEY_ALGS":case "ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT":case "ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT":return "This device cannot create a passkey for this site.";}return t==="NotAllowedError"?n?"No passkey was created. The prompt was dismissed or timed out.":"No passkey was used. This device may not have one saved for this site yet, or the prompt was dismissed.":t==="SecurityError"?"Passkeys are not set up for this site\u2019s domain.":n?"Passkey registration did not complete.":"Passkey sign-in did not complete."}function Zn(e){return e&&typeof e=="object"&&"name"in e&&typeof e.name=="string"?e.name:void 0}function ar(e,t){let n=t.toLowerCase(),i=new Set,o=e;for(;o&&typeof o=="object"&&!i.has(o);){if(i.add(o),"message"in o&&typeof o.message=="string"&&o.message.toLowerCase().includes(n))return true;o="cause"in o?o.cause:void 0;}return false}async function ur(e){let n=`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/public-config`;return Ot(await le(e,n,{init:{method:"GET",credentials:"omit"},maxResponseBytes:256*1024,decode:i=>cr(i,e)}),"public-config")}function cr(e,t){let n=M(e),i=n.environmentId,o=n.environmentType,s=`${new URL(t.apiUrl).origin}/api/projects/${t.decoded.projectId}/auth`;if(typeof n.applicationId!="string"||!dr(n.applicationId)||i!==t.decoded.projectId||o!=="development"&&o!=="production"||n.authBaseUrl!==s)throw z();let d=E(n.branding),l=E(n.legal);if(!Ze(n.enabledMethods,64)||!Ze(n.socialProviders,64)||!ni(d,["appName","logoUrl","primaryColor"])||d.showAppName!==void 0&&typeof d.showAppName!="boolean"||d.alignment!==void 0&&d.alignment!=="left"&&d.alignment!=="center"&&d.alignment!=="right"||d.theme!==void 0&&d.theme!=="light"&&d.theme!=="dark"&&d.theme!=="system"||!ni(l,["termsUrl","privacyUrl"])||!Number.isSafeInteger(l.version)||l.version<0||typeof l.required!="boolean")throw z();if(n.socialProviderClientIds!==void 0){let a=E(n.socialProviderClientIds);if(Object.keys(a).length>64||Object.values(a).some(y=>typeof y!="string"||y.length>2048))throw z()}if(!H(n,["requireEmailVerification","twoFactor","mfaRequired","accountDeletion","organizations","sso","badge"])||!ti(n.turnstileSiteKey)||!ti(n.authTurnstileSiteKey)||typeof n.locale!="string"||n.locale.length===0||n.locale.length>64||!Number.isSafeInteger(n.configVersion)||n.configVersion<0)throw z();if(n.jwtIssuer!==null){let a=E(n.jwtIssuer);if(a.issuer!==s||a.jwksUrl!==`${s}/jwks`||a.aud!==t.decoded.projectId)throw z()}if(n.signUp!==void 0){let a=E(n.signUp).mode;if(typeof a!="string"||!["open","restricted","allowlist","waitlist"].includes(a))throw z()}if(n.authentication!==void 0&&lr(n.authentication),n.emailVerification!==void 0){let a=E(n.emailVerification);if(!H(a,["required"])||a.method!=="link"&&a.method!=="code")throw z()}if(n.userModel!==void 0&&!H(E(n.userModel),["requireEmail","firstLastName","emailChange","accountDeletion"]))throw z();if(n.mfa!==void 0){let a=E(n.mfa);if(!H(a,["totp","required","backupCodes"])||(a.required===true||a.backupCodes===true)&&a.totp!==true)throw z()}if(n.captcha===void 0||n.captcha===null)n.captcha=typeof n.authTurnstileSiteKey=="string"&&n.authTurnstileSiteKey.length>0?{provider:"turnstile",siteKey:n.authTurnstileSiteKey}:null;else {let a=E(n.captcha);if(typeof a.provider!="string"||a.provider.length===0||a.provider.length>64||typeof a.siteKey!="string"||a.siteKey.length===0||a.siteKey.length>512)throw z();n.captcha={provider:a.provider,siteKey:a.siteKey};}return n}function dr(e){return /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e)}function z(){return new TypeError("public-config returned an invalid response")}function E(e){if(!e||typeof e!="object"||Array.isArray(e))throw z();return e}function ti(e){return e===null||typeof e=="string"&&e.length<=4096}function lr(e){let t=E(e),n=E(t.email),i=E(t.password),o=i.minLength!==void 0||i.maxLength!==void 0;if(!H(n,["signUp"])||!Ze(n.signIn,3)||n.signIn.some(s=>s!=="password"&&s!=="magic_link"&&s!=="email_otp")||!H(E(t.phone),["signUp","signIn"])||!H(i,["signUp","add"])||o&&(!Number.isSafeInteger(i.minLength)||!Number.isSafeInteger(i.maxLength)||i.minLength<1||i.maxLength>4096||i.minLength>i.maxLength)||!H(E(t.passkey),["signIn","add"])||!pr(E(t.passkey).relyingPartyId)||!H(E(t.username),["collectOnSignUp","signIn"]))throw z()}function pr(e){return e==null||typeof e=="string"}function H(e,t){return t.every(n=>typeof e[n]=="boolean")}function ni(e,t){return t.every(n=>e[n]===void 0||typeof e[n]=="string"&&e[n].length<=4096)}function Ze(e,t){return Array.isArray(e)&&e.length<=t&&e.every(n=>typeof n=="string"&&n.length<=128)&&new Set(e).size===e.length}function fr(e){let t=e?.enabledMethods??["password"],n=t.includes("password"),i=t.includes("passkey"),o=e?.authentication,s=e?.mfa;return {emailSignUp:o?.email.signUp??t.some(d=>d==="password"||d==="magic_link"||d==="email_otp"),passwordSignUp:o?.password.signUp??n,phoneSignUp:o?.phone.signUp??t.includes("phone_otp"),passwordSignIn:o?.email.signIn.includes("password")??n,passwordMinLength:o?.password.minLength??8,passwordMaxLength:o?.password.maxLength??128,magicLinkSignIn:o?.email.signIn.includes("magic_link")??t.includes("magic_link"),emailOtpSignIn:o?.email.signIn.includes("email_otp")??t.includes("email_otp"),phoneSignIn:o?.phone.signIn??t.includes("phone_otp"),usernameSignIn:o?.username.signIn??false,collectUsername:o?.username.collectOnSignUp??false,passkeySignIn:o?.passkey.signIn??i,passkeyAdd:o?.passkey.add??i,firstLastName:e?.userModel?.firstLastName??false,emailChange:e===null?false:e.userModel?.emailChange??true,accountDeletion:e?.userModel?.accountDeletion??e?.accountDeletion??false,emailVerificationRequired:e?.emailVerification?.required??e?.requireEmailVerification??false,emailVerificationMethod:e?.emailVerification?.method??"link",totp:s?.totp??e?.twoFactor??false,mfaRequired:s?.required??e?.mfaRequired??false,backupCodes:s?.backupCodes??e?.twoFactor??false,legacyNameField:e?.authentication===void 0}}function gr(e,t){let n=`p_${e.toLowerCase().replace(/-/g,"")}`;return `${t?.secure?"__Secure-":""}${n}.session_token`}function Cs(e,t){return Qe(Se(e),t)}
2
- exports.createMembershipHas=Zi;exports.createNativeAuthClient=Qe;exports.createNativeClient=Cs;exports.createPasskeyClient=ir;exports.decodePublishableKey=ke;exports.getPublicConfig=ur;exports.resolveConfig=Se;exports.resolveProjectCapabilities=fr;exports.sessionCookieName=gr;
1
+ 'use strict';var oi=Object.defineProperty;var et=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(i){throw n=[i],i}};var ri=(e,t)=>{for(var n in t)oi(e,n,{get:t[n],enumerable:true});};function ne(){return typeof window<"u"&&typeof document<"u"&&typeof crypto<"u"&&typeof crypto.subtle?.digest=="function"}var De=et(()=>{"use strict";});var Oe={};ri(Oe,{beginCrossSiteSignIn:()=>Qo,challengeFor:()=>Bn,completeCrossSiteSignIn:()=>Zo,takeHandoffCode:()=>Xe});function Vn(e){let t="";for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function Bn(e){let t=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e));return Vn(new Uint8Array(t))}function Wo(){return Vn(crypto.getRandomValues(new Uint8Array(Jo)))}function jn(e,t){let n=window.location.protocol==="https:"?"; Secure":"";document.cookie=`${Kn}=${e}; Path=/; Max-Age=${t}; SameSite=Lax${n}`;}function Yo(){for(let e of document.cookie.split(";")){let t=e.indexOf("=");if(!(t<0)&&e.slice(0,t).trim()===Kn)return e.slice(t+1).trim()||null}return null}function Xo(){jn("",0);}function qn(e){return new URL(e,window.location.href).toString()}async function Qo(e,t){let n=t.callbackURL?qn(t.callbackURL):null;if(n&&new URL(n).origin!==window.location.origin)return null;let i=Wo(),o=new URL(`${e.projectBaseURL}/session/start`);if(o.searchParams.set("pk",e.publishableKey),o.searchParams.set("kind",t.kind),t.kind==="social")o.searchParams.set("provider",t.provider),t.scopes?.length&&o.searchParams.set("scopes",t.scopes.join(",")),t.loginHint&&o.searchParams.set("loginHint",t.loginHint),t.requestSignUp!==void 0&&o.searchParams.set("requestSignUp",t.requestSignUp?"1":"0");else for(let d of Go){let l=t[d];l&&o.searchParams.set(d,l);}let s=`${window.location.origin}${window.location.pathname}${window.location.search}`;o.searchParams.set("cb",n??s);for(let[d,l]of [["err",t.errorCallbackURL],["new",t.newUserCallbackURL]])l&&o.searchParams.set(d,qn(l));return o.searchParams.set("challenge",await Bn(i)),jn(i,$o),o.toString()}function Xe(e){if(typeof window>"u")return null;let t=window.location.hash;if(!t.includes(Ye))return null;let n=new URLSearchParams(t.replace(/^#/,"")),i=n.get(Ye);if(!i||e!==void 0&&i!==e)return null;n.delete(Ye);let o=n.toString();return window.history.replaceState(window.history.state,"",`${window.location.pathname}${window.location.search}${o?`#${o}`:""}`),i}async function Zo(e,t,n){if(!ne())return false;let i=n??Xe();if(!i)return false;n&&Xe(n);let o=Yo();if(Xo(),!o)return false;t.beginSession({remember:true});let{error:s}=await e.request("/session/exchange",{method:"POST",body:{code:i,verifier:o}});return s===null}var Kn,Ye,Jo,$o,Go,we=et(()=>{"use strict";De();Kn="authowl_handoff_verifier",Ye="authowl_code",Jo=32,$o=900,Go=["email","providerId","domain","organizationSlug"];});var si=/^(pk_(live|test))_([0-9a-f-]{36})_([A-Za-z0-9]{20,})$/i,ai=/^sk_/i;function ke(e){if(typeof e!="string"||e.length===0)throw new Error("publishableKey is required");if(ai.test(e))throw new Error("A secret key was passed where a publishable key was expected. Never embed secret keys in client code.");let t=si.exec(e);if(!t)throw new Error("publishableKey is malformed; expected pk_(live|test)_<uuid>_<base62>");return {prefix:t[1].toLowerCase(),env:t[2].toLowerCase(),projectId:t[3].toLowerCase()}}var tt=/^http:\/\/(?:(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*localhost|127\.0\.0\.1|\[::1\])(?::\d+)?(?:\/|$)/i;function Re(e,t){throw new Error(`${e}: ${t}`)}function nt(e,t){let n;try{n=new URL(String(e));}catch{throw new TypeError("Transport URL must be absolute.")}if(n.username||n.password||n.hash)throw new TypeError("Transport URL must not contain credentials or a fragment.");let i=n.toString();if(n.protocol!=="https:"&&!(n.protocol==="http:"&&t.allowHttpLoopback&&tt.test(i)))throw new TypeError("Transport URL must use HTTPS except on approved loopback.");return n}function it(e,t){(typeof e!="string"||!/^https?:\/\/[^/?#@\\\s]+\/?$/i.test(e))&&Re("apiUrl","origin required");let n;try{n=new URL(e);}catch{Re("apiUrl","origin required");}return n.protocol==="http:"&&(!t.allowHttpLoopback||!tt.test(e))&&Re("apiUrl","HTTPS required except exact loopback"),n.origin}function $(e,t){try{return e?.getItem(t)??null}catch{return null}}function G(e,t,n){try{n===null?e?.removeItem(t):e?.setItem(t,n);}catch{}}function W(){try{return globalThis.localStorage}catch{return}}function B(){try{return globalThis.sessionStorage}catch{return}}var ui="authowl.session-challenge",ci=e=>`${ui}.${e}`,di="set-auth-challenge",ot="x-authowl-challenge";var st="INVALID_TWO_FACTOR_COOKIE",li=2048,de=e=>e!==null&&e.length<=li,rt=/^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/;function pi(e){let t=[];for(let n of e.split(";")){let i=n.trimStart(),o=i.indexOf("=");o<=0||t.push([i.slice(0,o).trimEnd(),i.slice(o+1)]);}return t}function at(e){let t=ci(e),n=new Map;function i(){return n.size===0?null:[...n].map(([l,u])=>`${l}=${u}`).join("; ")}function o(){let l=i();G(B(),t,de(l)?l:null);}function s(l){for(let[u,m]of pi(l))rt.test(u)&&(m===""?n.delete(u):rt.test(m)&&n.set(u,m));}let d=$(B(),t);return de(d)&&s(d),{presentOn(l){let u=i();l.delete(ot),de(u)&&l.set(ot,u);},observe(l){let u=l.get(di);de(u)&&(s(u),o());},clear(){n.clear(),o();}}}var ut="set-auth-token",ct="x-authowl-session-transport",dt="bearer";var fi="authowl.session-token",gi="authowl.cookie-transport",pt="ok",ft="bearer",mi=e=>`${fi}.${e}`,hi=e=>`${gi}.${e}`;function yi(e){return e===pt?"cookies":e===ft?"bearer":"unknown"}function Ai(e){return e==="cookies"?pt:e==="bearer"?ft:null}function bi(e){let t=mi(e),n=hi(e),i=at(e),o=null,s=false,d=null,l=yi($(W(),n)),u=()=>l==="unknown",m=0,r=null,a=false;function f(){let y=$(B(),t);if(y!==null)return s=true,y;let w=$(W(),t);return w!==null?(s=false,w):null}o=f(),o!==null&&u()&&(a=true);function b(){if(!(!a||!r)){a=false;try{r();}catch{}}}function c(){let y=l==="bearer"?o:null,[w,U]=s?[B(),W()]:[W(),B()];G(U,t,null),G(w,t,y);}function g(y){y!==null&&d!==null&&(s=d,d=null),o=y,c(),y!==null&&u()&&(a=true,b());}function A(y){l=y,G(W(),n,Ai(y));}function O(){A("unknown"),a=false;}function R(){return o===null&&(o=f()),o}function q(){let y=f();return y!==null&&(o=y),o}function K(y){q()===y&&c();}function V(){m+=1,d=null,s=false,g(null),i.clear(),O();}let J=()=>l!=="cookies";return {hasToken:()=>R()!==null,declareOn(y){if(y.has("authorization"))return false;let w=R();return !w&&!J()?false:(w&&y.set("authorization",`Bearer ${w}`),y.set(ct,dt),i.presentOn(y),true)},wantsToken:J,needsProbe:u,observe(y){let w=y.get(ut);w&&g(w),i.observe(y);},dropChallenge:i.clear,measureWith(y){r=y,b();},beginRead(){let y=R(),w=m;return {carriedToken:y!==null,endIfDead(){y!==null&&q()===y&&m===w&&V();},recordCookieVerdict(U){if(m===w&&u()){if(A(U?"cookies":"bearer"),U){g(null);return}K(y);}}}},beginSession({remember:y}){m+=1,d=!y,i.clear(),O();},endSession:V}}var lt=new Map;function gt(e){let t=lt.get(e);if(t)return t;let n=bi(e);return lt.set(e,n),n}function Oi(e,t){return t?.headers?new Headers(t.headers):typeof e=="object"&&e!==null&&"headers"in e?new Headers(e.headers):new Headers}function mt(e,t){let n=gt(e),i=(d,l)=>(t??globalThis.fetch)(d,l);return {fetch:async(d,l)=>{if(l?.credentials==="omit"||!n.wantsToken())return i(d,l);let u=Oi(d,l),m=n.declareOn(u),r=await i(d,{...l,headers:u});return m&&n.observe(r.headers),r},probe:i,tokens:n}}function wi(e){if(!e||typeof e!="object")throw new Error("AuthConfig is required");let t=ke(e.publishableKey),n=it(e.apiUrl,{allowHttpLoopback:t.env==="test"});return {publishableKey:e.publishableKey,apiUrl:n,decoded:t,projectBaseURL:`${n}/api/projects/${t.projectId}/auth`}}function Se(e){let t=wi(e),{fetch:n,...i}=mt(t.decoded.projectId,e.fetch);return {...e,...t,fetch:n,session:i}}var ki=1e4,Ri=1024*1024,x=class extends Error{kind;requestId;constructor(t,n){super(Ci(t)),this.name="TransportError",this.kind=t,this.requestId=n;}},At=new WeakSet;function C(e,t){let n=new x(e,t);return At.add(n),n}async function bt({fetchImpl:e,url:t,init:n={},timeoutMs:i=ki,maxResponseBytes:o=Ri,allowHttpLoopback:s=false,decode:d}){yt(i,"timeoutMs"),yt(o,"maxResponseBytes");let l=nt(t,{allowHttpLoopback:s}),u=n.signal,m=new AbortController,r=null,a,f=new Promise(A=>{a=A;}),b=A=>{r===null&&(r=A,a({type:"abort",kind:A}),m.abort());},c=()=>b("aborted");u?.addEventListener("abort",c,{once:true});let g=setTimeout(()=>b("timeout"),i);u?.aborted&&c();try{if(r!==null)throw C(r);let A;try{A=await Promise.race([e(l.toString(),{...n,redirect:"error",signal:m.signal}).then(J=>({type:"response",response:J})),f]);}catch{throw C(r??"network")}if(A.type==="abort")throw C(A.kind);if(!Si(A.response))throw C("invalid_response");let O=A.response,R=Ei(O.headers),q=await Ti(O,o,f,()=>r,R),K=vi(O,q,R),V;try{V=O.ok&&d?d(K,Object.freeze({status:O.status})):K;}catch{throw C("invalid_response",R)}return {response:O,data:V,...R===void 0?{}:{requestId:R}}}catch(A){throw A instanceof x&&At.has(A)?A:C(r??"network")}finally{clearTimeout(g),u?.removeEventListener("abort",c);}}function Si(e){if(!e||typeof e!="object")return false;let t=e;return Number.isInteger(t.status)&&t.status>=0&&t.status<=599&&typeof t.statusText=="string"&&typeof t.ok=="boolean"&&typeof t.headers?.get=="function"&&(t.body===null||typeof t.body=="object"&&typeof t.body?.getReader=="function"&&typeof t.body.cancel=="function")}async function Ti(e,t,n,i,o){let s=e.headers.get("content-length");if(s!==null){if(!/^\d+$/.test(s))throw ht(e.body),C("invalid_response",o);if(Number(s)>t)throw ht(e.body),C("response_too_large",o)}if(!e.body)return "";let d;try{d=e.body.getReader();}catch{throw C("network",o)}let l=[],u=0,m=null;try{for(;;){let f;try{f=await Promise.race([d.read(),n]);}catch{m=C(i()??"network",o);break}if(Ii(f)){m=C(f.kind,o);break}let{done:b,value:c}=f;if(b)break;if(c.byteLength!==0){if(u+=c.byteLength,u>t){m=C("response_too_large",o);break}l.push(c);}}}finally{m&&Pi(d);try{d.releaseLock();}catch{}}if(m)throw m;let r=new Uint8Array(u),a=0;for(let f of l)r.set(f,a),a+=f.byteLength;try{return new TextDecoder("utf-8",{fatal:!0}).decode(r)}catch{throw C("invalid_response",o)}}function Ii(e){return "type"in e&&e.type==="abort"}function ht(e){if(e)try{e.cancel().catch(()=>{});}catch{}}function Pi(e){try{e.cancel().catch(()=>{});}catch{}}function vi(e,t,n){if(e.status===204||e.status===205)return null;let i=xi(e.headers.get("content-type"));if(!e.ok&&(!i||t.length===0))return null;if(!i||t.length===0)throw C("invalid_response",n);try{return JSON.parse(t)}catch{if(!e.ok)return null;throw C("invalid_response",n)}}function xi(e){if(e===null)return false;let t=e.split(";",1)[0]?.trim().toLowerCase();return t==="application/json"||t?.endsWith("+json")===true}function Ei(e){let t=e.get("x-request-id")?.trim();if(!(!t||t.length>256||!/^[A-Za-z0-9._:-]+$/.test(t)))return t}function yt(e,t){if(!Number.isInteger(e)||e<=0)throw new TypeError(`${t} must be a positive integer.`)}function Ci(e){switch(e){case "aborted":return "The request was cancelled.";case "timeout":return "The request timed out.";case "response_too_large":return "The response exceeded the allowed size.";case "invalid_response":return "The service returned an invalid response.";case "network":return "The network request could not be completed."}}var Te=class extends Error{status;requestId;constructor(t,n,i){super(`${t} request failed with status ${n.status}.`),this.name="AuthOwlHttpError",this.status=n.status,this.requestId=i;}};function le(e,t,n={}){let i=new Headers(n.init?.headers);return i.set("x-publishable-key",e.publishableKey),bt({fetchImpl:e.fetch,url:t,init:{...n.init,headers:i},allowHttpLoopback:e.decoded.env==="test",...n.timeoutMs===void 0?{}:{timeoutMs:n.timeoutMs},...n.maxResponseBytes===void 0?{}:{maxResponseBytes:n.maxResponseBytes},...n.decode===void 0?{}:{decode:n.decode}})}function Ot(e,t){if(!e.response.ok)throw new Te(t,e.response,e.requestId);return e.data}var zi=new Map;function wt(e){return typeof window>"u"?null:zi.get(e)?.at(-1)?.locale??null}var Di="x-authowl-turnstile-token",_i="x-authowl-locale",Ui=1e4,Ni=32,Li=2e4;function Y(e,t){return {post:(n,i,o,s)=>e.request(n,{method:"POST",body:i,fetchOptions:o,decode:s}),mutation:async(n,i)=>{let o=await n;return o.error===null&&(i===void 0||o.data!==null&&i(o.data))&&t(),o}}}function xe(e,t=e.projectBaseURL){return {async request(n,i={}){let o=Fi(t,n,i.query),s=i.method??(i.body===void 0?"GET":"POST"),d=new Headers(i.fetchOptions?.headers);i.fetchOptions?.authChallengeToken&&d.set(Di,i.fetchOptions.authChallengeToken);let l=wt(e.decoded.projectId);l&&d.set(_i,l),i.body!==void 0&&d.set("content-type","application/json");let u={method:s,headers:d,credentials:i.credentials??"include",...i.body===void 0?{}:{body:JSON.stringify(i.body)}},m=Object.freeze({method:s,path:n});await i.fetchOptions?.onRequest?.(m);let r=Hi(s,i.fetchOptions),a;try{a=await Mi(e,o,{...u,signal:i.fetchOptions?.signal},r);}catch(O){let R=Rt(O);return await i.fetchOptions?.onError?.(Ie(m,R,Vi(O))),{data:null,error:R}}let{response:f,requestId:b}=a,c=Ji(n,a.data),g=c;if(f.ok)try{g=ve(c),i.decode&&(g=i.decode(g));}catch{let O=Rt(new x("invalid_response",b));return await i.fetchOptions?.onError?.(Ie(m,O,"invalid_response")),{data:null,error:O}}let A=Object.freeze({...m,status:f.status,...b===void 0?{}:{requestId:b}});if(await i.fetchOptions?.onResponse?.(A),!f.ok){let O=qi(f,c,b);return O.code===st&&e.session.tokens.dropChallenge(),await i.fetchOptions?.onError?.(Ie(m,O,"api")),{data:null,error:O}}return await i.fetchOptions?.onSuccess?.(A),{data:g,error:null}}}}async function Mi(e,t,n,i){let o=Date.now()+Ui;for(let s=0;s<i;s+=1){let d=o-Date.now();if(d<=0)throw new x("timeout");try{let l=await le(e,t,{init:n,timeoutMs:Math.max(1,Math.ceil(d))});if(l.response.status<500||s===i-1)return l}catch(l){if(s===i-1||!(l instanceof x)||l.kind!=="network")throw l}await Bi(50*2**s,n.signal,o);}throw new x("network")}function Hi(e,t){if(e!=="GET"||t?.authChallengeToken)return 1;let n=t?.retry;return typeof n!="number"||!Number.isFinite(n)?1:Math.min(Math.max(Math.trunc(n),0),3)+1}function Fi(e,t,n){let i=new URL(`${e}${t.startsWith("/")?t:`/${t}`}`);for(let[o,s]of Object.entries(n??{}))s!==void 0&&i.searchParams.set(o,String(s));return i.toString()}function qi(e,t,n){let i=te(t)?t:{},o=Ki(i,e.headers);return {status:e.status,statusText:e.statusText,code:typeof i.code=="string"?i.code:void 0,...n===void 0?{}:{requestId:n},...typeof i.current_version=="number"?{currentVersion:i.current_version}:{},...o!==void 0?{retryAfterSeconds:o}:{},message:typeof i.message=="string"?i.message:typeof i.error=="string"?i.error:typeof i.detail=="string"?i.detail:e.statusText||"Request failed"}}function Ki(e,t){let n=(typeof e.retryAfterSeconds=="number"&&Number.isFinite(e.retryAfterSeconds)?e.retryAfterSeconds:void 0)??kt(t.get("retry-after"))??kt(t.get("x-retry-after"));if(n!==void 0)return Math.min(Math.max(Math.trunc(n),1),86400)}function kt(e){if(!e)return;let t=e.trim();if(!/^\d+$/.test(t))return;let n=Number(t);return Number.isFinite(n)?n:void 0}function Rt(e){let t=e instanceof x?e.kind:"network";return {status:0,...{aborted:{statusText:"ABORTED",code:"REQUEST_ABORTED",message:"The request was cancelled."},timeout:{statusText:"TIMEOUT",code:"REQUEST_TIMEOUT",message:"The request timed out."},response_too_large:{statusText:"INVALID_RESPONSE",code:"RESPONSE_TOO_LARGE",message:"The service response was too large."},invalid_response:{statusText:"INVALID_RESPONSE",code:"INVALID_RESPONSE",message:"The service returned an invalid response."},network:{statusText:"FETCH_ERROR",code:"FETCH_ERROR",message:"Network request failed."}}[t],...e instanceof x&&e.requestId?{requestId:e.requestId}:{}}}function Ie(e,t,n){return Object.freeze({...e,status:t.status??0,...t.requestId===void 0?{}:{requestId:t.requestId},failure:n})}function Vi(e){return e instanceof x?e.kind:"network"}function Bi(e,t,n){return new Promise((i,o)=>{if(t?.aborted){o(new x("aborted"));return}let s=n-Date.now();if(s<=0){o(new x("timeout"));return}let d=Math.min(e,s),l=()=>{clearTimeout(u),o(new x("aborted"));},u=setTimeout(()=>{t?.removeEventListener("abort",l),Date.now()>=n?o(new x("timeout")):i();},d);t?.addEventListener("abort",l,{once:true}),t?.aborted&&l();})}function ve(e,t="",n=0,i={nodes:0}){if(i.nodes+=1,n>Ni||i.nodes>Li)throw new Error("response traversal limit exceeded");if(typeof e=="string"&&/^(?:createdAt|updatedAt|expiresAt)$/.test(t)){let o=new Date(e);return Number.isNaN(o.getTime())?e:o}return Array.isArray(e)?e.map(o=>ve(o,"",n+1,i)):te(e)?Object.fromEntries(Object.entries(e).map(([o,s])=>[o,ji(o)?s:ve(s,o,n+1,i)])):e}function ji(e){return e==="metadata"||e==="public_metadata"||e==="unsafe_metadata"||e==="private_metadata"||e==="publicMetadata"||e==="unsafeMetadata"||e==="privateMetadata"}function Ji(e,t){if(e==="/list-sessions"&&Array.isArray(t))return t.map(o=>te(o)?Pe(o):o);if(!te(t))return t;let i=e==="/change-password"||e==="/passkey/verify-authentication"||e==="/phone-otp/verify"||e==="/sign-up/email"||e.startsWith("/sign-in/")||e.startsWith("/two-factor/verify-")?Pe(t):t;return e==="/sign-up/email"&&!("sessionCreated"in i)&&(i={...i,sessionCreated:typeof t.token=="string"&&t.token.length>0}),(e==="/get-session"||e==="/passkey/verify-authentication")&&te(i.session)&&(i={...i,session:Pe(i.session)}),i}function Pe(e){if(!Object.hasOwn(e,"token"))return e;let t={...e};return delete t.token,t}function te(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}var $i=new Set(["__proto__","constructor","prototype"]);function h(e){(!e||typeof e!="object"||Array.isArray(e))&&p();let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null&&p(),e}function k(e){return typeof e!="string"&&p(),e}function I(e){return typeof e!="boolean"&&p(),e}function T(e){return (!(e instanceof Date)||Number.isNaN(e.getTime()))&&p(),e}function j(e){return (!Array.isArray(e)||!e.every(t=>typeof t=="string"))&&p(),[...e]}function P(e,t){let n=e[t];return n==null||typeof n=="string"?n:p()}function St(e,t){let n=e[t];return n==null||typeof n=="boolean"?n:p()}function _(e){let t=h(e),n=t.email;return n!==null&&typeof n!="string"&&p(),{id:k(t.id),email:n,emailVerified:I(t.emailVerified),createdAt:T(t.createdAt),updatedAt:T(t.updatedAt),...D("phoneNumber",P(t,"phoneNumber")),...D("username",P(t,"username")),...D("displayUsername",P(t,"displayUsername")),...D("firstName",P(t,"firstName")),...D("lastName",P(t,"lastName")),...D("name",P(t,"name")),...D("image",P(t,"image")),...D("twoFactorEnabled",St(t,"twoFactorEnabled"))}}function pe(e){let t=h(e),n=t.membership;return {id:k(t.id),userId:k(t.userId),expiresAt:T(t.expiresAt),...D("activeOrganizationId",P(t,"activeOrganizationId")),...D("activeTeamId",P(t,"activeTeamId")),...D("membership",n==null?n:Gi(n)),...D("pendingMfaEnrollment",St(t,"pendingMfaEnrollment"))}}function p(){throw new TypeError("AuthOwl response does not match its runtime contract.")}function L(e,t=20,n=1e4){return (!e||typeof e!="object"||Array.isArray(e))&&p(),Ce(e,t,n)}function Ce(e,t=20,n=1e4){return Ee(e,0,{nodes:0},t,n)}function Gi(e){let t=h(e);return {role:k(t.role),...t.roles===void 0?{}:{roles:j(t.roles)},permissions:j(t.permissions),...t.teams===void 0?{}:{teams:j(t.teams)}}}function Ee(e,t,n,i,o){if(n.nodes+=1,(t>i||n.nodes>o)&&p(),e===null||typeof e=="string"||typeof e=="boolean")return e;if(typeof e=="number")return Number.isFinite(e)||p(),e;if(Array.isArray(e))return e.map(l=>Ee(l,t+1,n,i,o));(!e||typeof e!="object")&&p();let s=Object.getPrototypeOf(e);s!==Object.prototype&&s!==null&&p();let d={};for(let[l,u]of Object.entries(e))$i.has(l)&&p(),d[l]=Ee(u,t+1,n,i,o);return d}function D(e,t){return t===void 0?{}:{[e]:t}}function Tt({http:e,probe:t,tokens:n,channelName:i}){let o=new Set,s=null,d=null,l=null,u=null,m=null,r=null,a,f=y=>{g(y);};a={data:null,isPending:true,isRefetching:false,error:null,refetch:f};function b(y){a=y;for(let w of o)w();}async function c(y){return e.request("/get-session",{query:y?.query,decode:ze})}function g(y){if(y?.query?.disableCookieCache===true)return O(y);if(u)return u;if(m)return m;let w=O(y).finally(()=>{m===w&&(m=null);});return m=w,w}function A(){if(u)return u;let y=O({query:{disableCookieCache:true}}).finally(()=>{u===y&&(u=null);});return u=y,y}async function O(y){l?.abort();let w=new AbortController;l=w,b({...a,isPending:a.data===null&&a.error===null,isRefetching:a.data!==null});let U=n.beginRead(),ce=await e.request("/get-session",{query:y?.query,fetchOptions:{signal:w.signal},decode:ze});if(l===w&&(l=null,b({data:ce.data,error:ce.error,isPending:false,isRefetching:false,refetch:f}),ce.error===null)){if(ce.data===null){U.endIfDead();return}await R(U);}}async function R(y){if(n.needsProbe()){if(!y.carriedToken){y.recordCookieVerdict(true);return}return r||q(y)}}function q(y){let w=t.request("/get-session",{query:{disableCookieCache:true},decode:ze}).then(U=>{r===w&&U.error===null&&y.recordCookieVerdict(U.data!==null);}).finally(()=>{r===w&&(r=null);});return r=w,w}function K(){s?.postMessage({type:"session-changed"});}function V(){if(typeof window>"u"||d)return;let y=()=>{g();},w=()=>{document.visibilityState==="visible"&&g();};window.addEventListener("focus",y),document.addEventListener("visibilitychange",w),typeof BroadcastChannel<"u"&&(s=new BroadcastChannel(i),s.addEventListener("message",y)),d=()=>{window.removeEventListener("focus",y),document.removeEventListener("visibilitychange",w),s?.close(),s=null,d=null;};}function J(y){return o.add(y),o.size===1&&(V(),g()),()=>{if(o.delete(y),o.size===0){let w=l;l=null,m=null,u=null,w?.abort(),d?.();}}}return n.measureWith(()=>{n.needsProbe()&&q(n.beginRead());}),{store:{subscribe:J,getSnapshot:()=>a,refresh:A},getSession:c,notifyMutation(){K(),r&&r.catch(()=>{}).then(()=>{!n.needsProbe()&&n.hasToken()&&K();}),o.size>0&&g({query:{disableCookieCache:true}});}}}function ze(e){if(e===null)return null;let t=h(e);return (t.session===void 0||t.user===void 0)&&p(),{session:pe(t.session),user:_(t.user)}}De();function It(){let e=globalThis.crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=Array.from(e,n=>n.toString(16).padStart(2,"0")).join("");return `${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}async function Pt(e,t){return e.request("/user/metadata",{fetchOptions:t,decode:xt})}async function vt(e,t,n){return e.request("/user/metadata",{method:"PATCH",body:{expected_version:t.expectedVersion,unsafe_metadata:t.unsafeMetadata},fetchOptions:n,decode:xt})}function xt(e){let t=h(e),n=L(t.public_metadata),i=L(t.unsafe_metadata);if(!Number.isSafeInteger(t.metadata_version)||t.metadata_version<0)throw new TypeError("Invalid AuthOwl metadata response");return {publicMetadata:n,unsafeMetadata:i,metadataVersion:t.metadata_version}}function Ct(e,t){let{post:n,mutation:i}=Y(e,t);return {getMetadata:o=>Pt(e,o),updateUnsafeMetadata:(o,s)=>vt(e,o,s),updateProfile:(o,s)=>i(n("/update-user",o,s,ie)),changeEmail:(o,s)=>i(n("/change-email",o,s,ie)),changePassword:(o,s)=>i(n("/change-password",o,s,Wi)),listSessions:o=>e.request("/list-sessions",{fetchOptions:o,decode:Yi}),revokeSession:({sessionId:o},s)=>i(n("/revoke-session",{sessionId:o},s,ie)),revokeOtherSessions:o=>i(n("/revoke-other-sessions",{},o,ie)),listSocialAccounts:async o=>{let s=await e.request("/list-accounts",{fetchOptions:o,decode:Xi});if(!s.data)return {data:null,error:s.error};let d=s.data.length>1;return {...s,data:s.data.filter(l=>l.providerId!=="credential").map(l=>({...l,canUnlink:d}))}},linkSocial:(o,s)=>n("/link-social",o,s,Qi),unlinkSocial:(o,s)=>i(n("/unlink-account",o,s,ie)),delete:(o={},s)=>i(n("/delete-user",o,s,Zi))}}function ie(e){let t=h(e);return {status:I(t.status)}}function Wi(e){let t=h(e);return {user:_(t.user)}}function Yi(e){return Array.isArray(e)||p(),e.map(t=>{let n=h(t);return {id:k(n.id),userId:k(n.userId),createdAt:T(n.createdAt),updatedAt:T(n.updatedAt),expiresAt:T(n.expiresAt),...Et("ipAddress",P(n,"ipAddress")),...Et("userAgent",P(n,"userAgent"))}})}function Xi(e){return Array.isArray(e)||p(),e.map(t=>{let n=h(t);return {id:k(n.id),userId:k(n.userId),providerId:k(n.providerId),accountId:k(n.accountId),scopes:j(n.scopes),createdAt:T(n.createdAt),updatedAt:T(n.updatedAt)}})}function Qi(e){let t=h(e);return {url:k(t.url),redirect:I(t.redirect)}}function Zi(e){let t=h(e);return {success:I(t.success),message:k(t.message)}}function Et(e,t){return t===void 0?{}:{[e]:t}}function _e(e,t){return !e||!t?false:e.permissions.includes(t)}function eo(e,t){return !e||!t?false:e.teams?.includes(t)??false}function to(e,t){return e?e.roles===void 0?e.role===t:e.roles.includes(t):false}function Ue(e,t){if(!e)return false;let{role:n,permission:i,teamId:o}=t;return !(n===void 0&&i===void 0&&o===void 0||n!==void 0&&!to(e,n)||i!==void 0&&!e.permissions.includes(i)||o!==void 0&&!eo(e,o))}function no(e){return {has:t=>Ue(e,t),hasPermission:t=>_e(e,t.permission)}}var io=new Set(["pending","accepted","rejected","canceled"]),Ne=1e4;function zt(e){let t=h(e);return t.recipientHint!==null&&t.recipientHint!=="new_user"&&p(),{recipientHint:t.recipientHint}}function X(e,t,n){let i=h(e),o={id:S(i.id),name:S(i.name),slug:S(i.slug),createdAt:T(i.createdAt),...oe("logo",P(i,"logo")),...oe("metadata",i.metadata===void 0?void 0:Ce(i.metadata))};return N(o.id,t),N(o.slug,n),o}function Dt(e){return M(e,X)}function Le(e,t,n){return e===null?null:(t===null&&p(),X(e,t,n))}function _t(e,t,n){if(e===null)return null;let i=h(e),o=X(i,t,n);return {...o,members:M(i.members,s=>Jt(s,o.id)),invitations:M(i.invitations,s=>H(s,void 0,o.id))}}function Me(e,t,n=false){let i=M(e,o=>re(o));return n||ae(i.map(o=>o.organizationId),t),i}function Ut(e,t){let n=M(e,i=>He(i));return ae(n.map(i=>i.teamId),t),n}function He(e,t,n){let i=h(e),o={id:S(i.id),teamId:S(i.teamId),userId:S(i.userId),createdAt:T(i.createdAt)};return N(o.teamId,t),N(o.userId,n),o}function Nt(e,t,n){return e===null?null:(t===null&&p(),re(e,t,n))}function Lt(e,t){let n=h(e);return (!Number.isSafeInteger(n.total)||n.total<0)&&p(),{members:oo(n.members,t),total:n.total}}function H(e,t,n){let i=h(e),o=S(i.status);io.has(o)||p();let s={id:S(i.id),organizationId:S(i.organizationId),email:se(i.email),role:S(i.role),status:o,inviterId:S(i.inviterId),expiresAt:T(i.expiresAt),createdAt:T(i.createdAt)};return N(s.id,t),N(s.organizationId,n),s}function Mt(e,t){let n=M(e,i=>H(i));return ae(n.map(i=>i.organizationId),t),n}function Ht(e){return M(e,t=>{let n=h(t);return {...H(n),organizationName:se(n.organizationName)}})}function Ft(e,t){let n=h(e);return {...H(n,t),organizationName:S(n.organizationName),organizationSlug:S(n.organizationSlug),inviterEmail:$t(n.inviterEmail)}}function qt(e,t){let n=h(e),i=H(n.invitation,t);return {invitation:i,member:Q(n.member,void 0,i.organizationId)}}function Kt(e,t){let n=h(e);return n.member!==null&&p(),{invitation:n.invitation===null?null:H(n.invitation,t),member:null}}function Vt(e,t){return e===null?null:H(e,t)}function Bt(e,t,n){let i=h(e);return {member:Q(i.member,n,t)}}function Q(e,t,n){let i=h(e),o={id:S(i.id),organizationId:S(i.organizationId),userId:S(i.userId),role:S(i.role),createdAt:T(i.createdAt),...i.user===void 0?{}:{user:Gt(i.user)}};return N(o.id,t),N(o.organizationId,n),o}function jt(e,t){let n=M(e,i=>{let o=h(i);return {organizationId:S(o.organizationId),data:{role:S(o.role),...oe("permission",o.permission===void 0?void 0:ro(o.permission)),...oe("customPermissionKeys",o.customPermissionKeys===void 0?void 0:j(o.customPermissionKeys))}}});return ae(n.map(i=>i.organizationId),t),n.map(i=>i.data)}function re(e,t,n){let i=h(e),o=i.updatedAt,s={id:S(i.id),name:se(i.name),organizationId:S(i.organizationId),createdAt:T(i.createdAt),...o===void 0?{}:{updatedAt:T(o)}};return N(s.id,t),N(s.organizationId,n),s}function Fe(e){let t=h(e);return {message:se(t.message)}}function Jt(e,t){let n=h(e);return {...Q(n,void 0,t),user:Gt(n.user)}}function oo(e,t){let n=M(e,i=>Jt(i));return ae(n.map(i=>i.organizationId),t),n}function ro(e){let t=h(e),n={};for(let[i,o]of Object.entries(t))(i==="__proto__"||i==="constructor"||i==="prototype"||i.length===0||i.length>Ne||!Array.isArray(o))&&p(),n[i]=o.map(s=>S(s));return n}function S(e){let t=k(e);return (t.length===0||t.length>Ne)&&p(),t}function se(e){if(e==null)return "";let t=k(e);return t.length>Ne&&p(),t}function $t(e){return e===null?null:S(e)}function N(e,t){t!==void 0&&e!==t&&p();}function ae(e,t){let n=t??e[0];n!==void 0&&e.some(i=>i!==n)&&p();}function Gt(e){let t=h(e);return {id:S(t.id),name:se(t.name),email:$t(t.email),...oe("image",P(t,"image"))}}function M(e,t){return Array.isArray(e)||p(),e.map(n=>t(n))}function oe(e,t){return t===void 0?{}:{[e]:t}}function Wt(e,t,n=()=>null){let{post:i,mutation:o}=Y(e,t),s=new Set,d=()=>{for(let r of s)try{r();}catch{}},l=new Map,u=(r,a,f,b)=>{if(f)return e.request(r,{query:a,fetchOptions:f,decode:b});let c=`${r}\0${JSON.stringify(a??null)}`,g=l.get(c);if(g)return g;let A=e.request(r,{query:a,decode:b}).finally(()=>{l.delete(c);});return l.set(c,A),A},m=async r=>{let a=await o(r).finally(()=>l.clear());return a.error===null&&d(),a};return {subscribe(r){return s.add(r),()=>s.delete(r)},create:(r,a)=>m(i("/organization/create",r,a,X)),list:r=>u("/organization/list",void 0,r,Dt),get:(r={},a)=>u("/organization/get-full-organization",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,membersLimit:r.membersLimit},a,f=>_t(f,r.organizationId,r.organizationSlug)),setActive:(r,a)=>m(i("/organization/set-active",r,a,f=>Le(f,r.organizationId,r.organizationSlug))),createTeam:(r,a)=>m(i("/organization/create-team",r,a,f=>re(f,void 0,r.organizationId))),listTeams:(r={},a)=>u("/organization/list-teams",{organizationId:r.organizationId},a,f=>Me(f,r.organizationId)),updateTeam:(r,a)=>m(i("/organization/update-team",r,a,f=>re(f,r.teamId,r.data.organizationId))),removeTeam:(r,a)=>m(i("/organization/remove-team",r,a,Fe)),listUserTeams:r=>u("/organization/list-user-teams",void 0,r,a=>Me(a,void 0,true)),listTeamMembers:(r={},a)=>u("/organization/list-team-members",{teamId:r.teamId},a,f=>Ut(f,r.teamId)),addTeamMember:(r,a)=>m(i("/organization/add-team-member",r,a,f=>He(f,r.teamId,r.userId))),removeTeamMember:(r,a)=>m(i("/organization/remove-team-member",r,a,Fe)),setActiveTeam:(r,a)=>m(i("/organization/set-active-team",r,a,f=>Nt(f,r.teamId))),update:(r,a)=>m(i("/organization/update",r,a,f=>Le(f,r.organizationId))),delete:(r,a)=>m(i("/organization/delete",r,a,f=>X(f,r.organizationId))),listMembers:(r={},a)=>u("/organization/list-members",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,limit:r.limit,offset:r.offset,sortBy:r.sortBy,sortDirection:r.sortDirection,filterField:r.filterField,filterValue:r.filterValue,filterOperator:r.filterOperator},a,f=>Lt(f,r.organizationId)),inviteMember:(r,a)=>m(i("/organization/invite-member",r,a,f=>H(f,void 0,r.organizationId))),listInvitations:(r={},a)=>u("/organization/list-invitations",{organizationId:r.organizationId},a,f=>Mt(f,r.organizationId)),listUserInvitations:r=>u("/organization/list-user-invitations",void 0,r,Ht),getInvitation:(r,a)=>u("/organization/get-invitation",{id:r.id},a,f=>Ft(f,r.id)),getInvitationRecipientHint:(r,a)=>u("/organization/invitation-recipient-hint",{invitationId:r.invitationId},a,zt),acceptInvitation:(r,a)=>m(i("/organization/accept-invitation",r,a,f=>qt(f,r.invitationId))),rejectInvitation:(r,a)=>m(i("/organization/reject-invitation",r,a,f=>Kt(f,r.invitationId))),cancelInvitation:(r,a)=>m(i("/organization/cancel-invitation",r,a,f=>Vt(f,r.invitationId))),removeMember:(r,a)=>m(i("/organization/remove-member",r,a,f=>Bt(f,r.organizationId,r.memberIdOrEmail.includes("@")?void 0:r.memberIdOrEmail))),updateMemberRole:(r,a)=>m(i("/organization/update-member-role",r,a,f=>Q(f,r.memberId,r.organizationId))),leave:(r,a)=>m(i("/organization/leave",r,a,f=>Q(f,void 0,r.organizationId))),listRoles:(r={},a)=>u("/organization/list-roles",{organizationId:r.organizationId},a,f=>jt(f,r.organizationId)),has:r=>Ue(n(),r),hasPermission:r=>_e(n(),r.permission)}}var Yt=4096,so=4096,ao=100,uo=256,co=16,lo=64,po=12;function Ke(e){let t=h(e);return t.twoFactorRedirect===true?((t.user!==void 0||t.redirect!==void 0||t.url!==void 0)&&p(),{twoFactorRedirect:true,...t.twoFactorMethods===void 0?{}:{twoFactorMethods:mn(t.twoFactorMethods,co,lo)}}):(t.twoFactorRedirect!==void 0&&p(),{redirect:I(t.redirect),...yo(t,"url"),user:_(t.user)})}function Xt(e){let t=h(e);return {user:_(t.user)}}function Qt(e){let t=h(e);return {sessionCreated:I(t.sessionCreated),user:_(t.user)}}function Zt(e,t){let n=h(e),i=I(n.redirect);n.user===null&&p();let o=n.user!==void 0&&n.user!==null,s=n.url!==void 0&&n.url!==null;return i?((o||!s)&&p(),{redirect:true,url:qe(n.url,t)}):(o===s&&p(),o?{redirect:false,user:_(n.user)}:{redirect:false,url:qe(n.url,t)})}function en(e,t){let n=h(e);return (n.redirect!==true||n.user!==void 0)&&p(),{redirect:true,url:qe(n.url,t)}}function tn(e){return {status:I(h(e).status)}}function nn(e){return {success:I(h(e).success)}}function on(e){return h(e).status!=="pending"&&p(),{status:"pending"}}function rn(e){let t=h(e);if(t.kind==="authowl_turnstile")return {kind:"authowl_turnstile"};t.kind!=="akedly_shield_v1_2"&&p();let n=h(t.turnstile),i=n.siteKey===null?null:k(n.siteKey);return {kind:"akedly_shield_v1_2",connectionId:k(t.connectionId),challenge:k(t.challenge),difficulty:fo(t.difficulty),challengeToken:k(t.challengeToken),challengeRequired:I(t.challengeRequired),turnstile:{required:I(n.required),siteKey:i}}}function fo(e){return (!Number.isSafeInteger(e)||Number(e)<0||Number(e)>po)&&p(),Number(e)}function sn(e){let t=h(e);return (t.status!==true||t.sessionCreated!==true)&&p(),{status:true,sessionCreated:true,user:go(t.user)}}function Ve(e){return {status:I(h(e).status)}}function an(e){return {status:I(h(e).status)}}function un(e){let t=h(e);return {status:I(t.status),user:_(t.user)}}function cn(e){return {success:I(h(e).success)}}function dn(e){let t=h(e);return {totpURI:ho(t.totpURI),backupCodes:gn(t.backupCodes)}}function ln(e){return {status:I(h(e).status)}}function fe(e){return h(e).status!==true&&p(),{status:true}}function pn(e){return {status:I(h(e).status)}}function fn(e){let t=h(e);return t.status!==void 0&&t.status!==true&&p(),{backupCodes:gn(t.backupCodes)}}function go(e){let t=h(e);return {id:Z(t.id,512),...Ao(t,"name",1024),phoneNumber:Z(t.phoneNumber,64),phoneNumberVerified:I(t.phoneNumberVerified),...t.createdAt===void 0?{}:{createdAt:T(t.createdAt)},...t.updatedAt===void 0?{}:{updatedAt:T(t.updatedAt)}}}function qe(e,t){let n=Z(e,Yt);/[\u0000-\u0020\u007f]/u.test(n)&&p();let i;try{i=new URL(n);}catch{return p()}return (i.username||i.password)&&p(),i.protocol==="https:"||t&&i.protocol==="http:"&&mo(i.hostname)?i.href:p()}function mo(e){let t=e.toLowerCase();return t==="localhost"||t==="127.0.0.1"||t==="[::1]"}function ho(e){let t=Z(e,so),n;try{n=new URL(t);}catch{return p()}let i=n.searchParams.get("secret");return (n.protocol!=="otpauth:"||n.hostname.toLowerCase()!=="totp"||n.username||n.password||n.hash||i===null||i.length===0||i.length>512||/\s/u.test(i))&&p(),t}function gn(e){return mn(e,ao,uo)}function mn(e,t,n){(!Array.isArray(e)||e.length===0||e.length>t)&&p();let i=e.map(o=>Z(o,n));return i.some(o=>o.trim().length===0)&&p(),new Set(i).size!==i.length&&p(),i}function Z(e,t){let n=k(e);return (n.length===0||n.length>t)&&p(),n}function yo(e,t){let n=e[t];return n==null?{}:{[t]:Z(n,Yt)}}function Ao(e,t,n){let i=P(e,t);return i===void 0?{}:(i!==null&&i.length>n&&p(),{[t]:i})}var hn=new Set([1564,8206,8207,8234,8235,8236,8237,8238,8294,8295,8296,8297]),ge=new Set([9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288,65279]);function me(e){if(e===void 0)return {valid:true,value:void 0};for(let n of e){let i=n.codePointAt(0);if(i===void 0||An(n,i)||yn(i)||hn.has(i))return {valid:false}}let t=bo(e);return Be(t)?{valid:true,value:t}:{valid:false}}function Be(e){let t=0,n,i;for(let o of e){if(t+=1,t>256)return false;let s=o.codePointAt(0);if(s===void 0||An(o,s)||yn(s)||hn.has(s))return false;n??=s,i=s;}return t>0&&n!==void 0&&i!==void 0&&!ge.has(n)&&!ge.has(i)}function he(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_PASSKEY_NAME",message:"Passkey names must contain 1 to 256 safe Unicode characters."}}}function bo(e){let t=0,n=e.length;for(;t<n;){let i=e.codePointAt(t);if(i===void 0||!ge.has(i))break;t+=i>65535?2:1;}for(;n>t;){let i=e.codePointAt(n-1);if(i===void 0)break;let s=i>=56320&&i<=57343?n-2:n-1,d=e.codePointAt(s);if(d===void 0||!ge.has(d))break;n=s;}return e.slice(t,n)}function yn(e){return e>=0&&e<=31||e>=127&&e<=159}function An(e,t){return e.length===1&&t>=55296&&t<=57343}var wn=12,kn=5e3,Oo=8,wo=1e3,ko=16,bn=512,Rn=100,Sn=8192,Ro=32768,je=1024,On=256,$e=64,So=6e5,To=/^[A-Za-z0-9_-]+$/u,Io=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u,Po=/[\u0000-\u001f\u007f-\u009f\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/u,vo=/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$/u,xo=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu,Tn=new Set(["discouraged","preferred","required"]),Eo=new Set(["singleDevice","multiDevice"]),In=new Set(["ble","cable","hybrid","internal","nfc","smart-card","usb"]),Pn=new Set(["hybrid","security-key","client-device"]),Co=new Set(["none","indirect","direct","enterprise"]),zo=new Set(["fido-u2f","packed","android-safetynet","android-key","tpm","apple","none"]),Do=new Set(["platform","cross-platform"]),_o=new Set(["discouraged","preferred","required"]),Uo=new Set([-8,-7,-257]);function vn(e){let t=L(e,wn,kn);return {challenge:Mn(t.challenge),...v("timeout",Nn(t.timeout)),...v("rpId",Hn(t.rpId)),...v("allowCredentials",Un(t.allowCredentials)),...v("userVerification",ue(t.userVerification,Tn)),...v("hints",ye(t.hints,Pn)),...v("extensions",Ln(t.extensions))}}function xn(e){let t=L(e,wn,kn);return {challenge:Mn(t.challenge),rp:No(t.rp),user:Lo(t.user),pubKeyCredParams:Mo(t.pubKeyCredParams),...v("timeout",Nn(t.timeout)),...v("excludeCredentials",Un(t.excludeCredentials)),...v("authenticatorSelection",Ho(t.authenticatorSelection)),...v("attestation",ue(t.attestation,Co)),...v("attestationFormats",ye(t.attestationFormats,zo)),...v("hints",ye(t.hints,Pn)),...v("extensions",Ln(t.extensions))}}function En(e){let t=h(e),n=pe(t.session),i=_(t.user);return n.userId!==i.id&&p(),{session:n,user:i}}function Ge(e){let t=h(e),n=t.counter;(!Number.isSafeInteger(n)||n<0)&&p();let i=We(t.deviceType,Eo),o=I(t.backedUp);return o&&i!=="multiDevice"&&p(),{id:ee(t.id,On),...Ko(t),publicKey:Fo(t.publicKey,Ro),userId:ee(t.userId,On),credentialID:be(t.credentialID,Sn),counter:n,deviceType:i,backedUp:o,...Vo(t),createdAt:T(t.createdAt),...Bo(t)}}function Cn(e,t,n){let i=Ge(e);return (i.credentialID!==t||(n===void 0?i.name!==void 0&&i.name!==null:i.name!==n))&&p(),i}function zn(e){(!Array.isArray(e)||e.length>Rn)&&p();let t=e.map(Ge);return Ae(t.map(n=>n.id)),Ae(t.map(n=>n.credentialID)),t.length>1&&t.some(n=>n.userId!==t[0]?.userId)&&p(),t}function Dn(e,t,n){let i=h(e),o=Ge(i.passkey);return (o.id!==t||o.name!==n)&&p(),{passkey:o}}function _n(e){return h(e).status!==true&&p(),{status:true}}function No(e){let t=h(e);return {name:Je(t.name,je),...v("id",Hn(t.id))}}function Lo(e){let t=h(e);return {id:be(t.id,128,1,64),name:Je(t.name,je),displayName:Je(t.displayName,je)}}function Mo(e){(!Array.isArray(e)||e.length===0||e.length>$e)&&p();let t=e.map(n=>{let i=h(n);return (i.type!=="public-key"||!Number.isSafeInteger(i.alg)||!Uo.has(i.alg))&&p(),{type:"public-key",alg:i.alg}});return jo(t.map(n=>n.alg)),t}function Un(e){if(e===void 0)return;(!Array.isArray(e)||e.length>Rn)&&p();let t=e.map(n=>{let i=h(n);return i.type!=="public-key"&&p(),{type:"public-key",id:be(i.id,Sn),...v("transports",ye(i.transports,In))}});return Ae(t.map(n=>n.id)),t}function Ho(e){if(e===void 0)return;let t=h(e);t.requireResidentKey!==void 0&&typeof t.requireResidentKey!="boolean"&&p();let n=ue(t.residentKey,_o);return t.requireResidentKey!==void 0&&n!==void 0&&t.requireResidentKey!==(n==="required")&&p(),{...v("authenticatorAttachment",ue(t.authenticatorAttachment,Do)),...v("residentKey",n),...v("requireResidentKey",t.requireResidentKey),...v("userVerification",ue(t.userVerification,Tn))}}function Nn(e){return e!==void 0&&(typeof e!="number"||!Number.isFinite(e)||e<0||e>So)&&p(),e}function Ln(e){return e===void 0?void 0:L(e,Oo,wo)}function ye(e,t){if(e===void 0)return;(!Array.isArray(e)||e.length>$e)&&p();let n=e.map(i=>We(i,t));return Ae(n),n}function ue(e,t){if(e!==void 0)return We(e,t)}function Mn(e){return be(e,Math.ceil(bn*4/3),ko,bn)}function be(e,t,n=1,i=Number.POSITIVE_INFINITY){let o=ee(e,t),s=o.length%4,d=qo(o.at(-1)??""),l=Math.floor(o.length*3/4);return (!To.test(o)||s===1||s===2&&(d&15)!==0||s===3&&(d&3)!==0||l<n||l>i)&&p(),o}function ee(e,t){let n=k(e);return (n.length===0||n.length>t)&&p(),n}function Je(e,t){let n=ee(e,t);return Po.test(n)&&p(),n}function Hn(e){if(e===void 0)return;let t=ee(e,253);return t!=="localhost"&&(t.endsWith(".")||!t.includes(".")||t.split(".").some(n=>!vo.test(n)))&&p(),t}function Fo(e,t){let n=ee(e,t),i=n.endsWith("=="),o=!i&&n.endsWith("="),s=n.at(i?-3:o?-2:-1)??"",d=Fn(s);return (n.length%4!==0||!Io.test(n)||i&&(d&15)!==0||o&&(d&3)!==0)&&p(),n}function qo(e){return Fn(e,true)}function Fn(e,t=false){return (t?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").indexOf(e)}function Ko(e){let t=P(e,"name");return t===void 0?{}:(t!==null&&!Be(t)&&p(),{name:t})}function Vo(e){let t=P(e,"transports");if(t==null||t==="")return t===void 0?{}:{transports:t};let n=t.split(",");return (n.length>$e||n.some(i=>!In.has(i))||new Set(n).size!==n.length)&&p(),{transports:t}}function Bo(e){let t=P(e,"aaguid");return t==null?t===void 0?{}:{aaguid:null}:(xo.test(t)||p(),{aaguid:t})}function We(e,t){let n=k(e);return t.has(n)||p(),n}function v(e,t){return t===void 0?{}:{[e]:t}}function Ae(e){new Set(e).size!==e.length&&p();}function jo(e){new Set(e).size!==e.length&&p();}function er(e,t){if(!t)return e;let n=t.catch(()=>{});return n.then(()=>{n=null;}),{async request(i,o){return n&&await n,e.request(i,o)}}}var Jn=new Map;function tr(e,t,n){let i=Jn.get(n);if(!i){let o=new URLSearchParams(window.location.hash.slice(1)).get("authowl_code");if(!o)return;i=Promise.resolve().then(()=>(we(),Oe)).then(s=>s.completeCrossSiteSignIn(e,t,o)),Jn.set(n,i);}return i}function $n(e){return !ne()||e.idToken||e.disableRedirect?"legacy":"first-party"}function nr(e,t=()=>{},n=rr){let i=xe(e),o=e.session.tokens,s=ne()?tr(i,o,e.decoded.projectId):void 0,d=er(i,s),l=Tt({http:d,probe:xe({...e,fetch:e.session.probe}),tokens:o,channelName:`authowl:${e.decoded.projectId}`}),u=n(d,l.notifyMutation),m=()=>{l.notifyMutation(),t();},{post:r,mutation:a}=Y(d,m),f=e.decoded.env==="test",b=c=>{o.beginSession({remember:c?.rememberMe!==false});};return {sessionStore:l.store,getSession:l.getSession,account:Ct(d,m),organization:Wt(d,m,()=>l.store.getSnapshot().data?.session.membership??null),signIn:{email:(c,g)=>(b(c),a(r("/sign-in/email",c,g,Ke),A=>!("twoFactorRedirect"in A))),username:(c,g)=>(b(c),a(r("/sign-in/username",c,g,Ke),A=>!("twoFactorRedirect"in A))),social:async(c,g)=>{if(b(),$n(c)==="first-party"){let{beginCrossSiteSignIn:O}=await Promise.resolve().then(()=>(we(),Oe)),R=await O(e,{kind:"social",provider:c.provider,callbackURL:c.callbackURL,errorCallbackURL:c.errorCallbackURL,newUserCallbackURL:c.newUserCallbackURL,scopes:c.scopes,loginHint:c.loginHint,requestSignUp:c.requestSignUp});if(R)return window.location.assign(R),{data:{redirect:true,url:R},error:null}}let A=await a(r("/sign-in/social",c,g,O=>Zt(O,f)),O=>"user"in O);return A.error!==null||A.data===null||"url"in A.data&&A.data.redirect&&!c.disableRedirect&&typeof window<"u"&&window.location.assign(A.data.url),A},sso:async(c,g)=>{if($n(c)==="first-party"){let{beginCrossSiteSignIn:O}=await Promise.resolve().then(()=>(we(),Oe)),R=await O(e,{kind:"sso",email:c.email,providerId:c.providerId,domain:c.domain,organizationSlug:c.organizationSlug,callbackURL:c.callbackURL,errorCallbackURL:c.errorCallbackURL,newUserCallbackURL:c.newUserCallbackURL});if(R)return window.location.assign(R),{data:{url:R,redirect:true},error:null}}let A=await r("/sign-in/sso",c,g,O=>en(O,f));return A.error!==null||A.data===null||typeof window<"u"&&window.location.assign(A.data.url),A},magicLink:(c,g)=>r("/sign-in/magic-link",c,g,tn),emailOtp:(c,g)=>(b(),a(r("/sign-in/email-otp",c,g,Xt))),passkey:(c,g)=>(b(),u.signIn(c,g))},signUp:{email:(c,g)=>(b(),a(r("/sign-up/email",c,g,Qt),A=>A.sessionCreated))},emailOtp:{sendVerificationOtp:(c,g)=>r("/email-otp/send-verification-otp",c,g,nn),verifyEmail:(c,g)=>(b(),a(r("/email-otp/verify-email",c,g,un)))},phoneOtp:{prepare:c=>r("/phone-otp/challenge",{},c,rn),start:(c,g)=>r("/phone-otp/start",{...c,idempotencyKey:c.idempotencyKey??It()},g,on),verify:(c,g)=>(b(),a(r("/phone-otp/verify",c,g,sn)))},requestPasswordReset:(c,g)=>r("/request-password-reset",c,g,Ve),resetPassword:(c,g)=>r("/reset-password",c,g,Ve),sendVerificationEmail:(c,g)=>r("/send-verification-email",c,g,an),passkey:{addPasskey:(c,g)=>u.add(c,g),listUserPasskeys:()=>d.request("/passkey/list-user-passkeys",{decode:zn}),updatePasskey:async(c,g)=>{let A=me(c.name);if(!A.valid||A.value===void 0)return he();let O=A.value;return r("/passkey/update-passkey",{...c,name:O},g,R=>Dn(R,c.id,O))},deletePasskey:(c,g)=>r("/passkey/delete-passkey",c,g,_n)},twoFactor:{enable:(c,g)=>r("/two-factor/enable",c,g,dn),disable:(c,g)=>a(r("/two-factor/disable",c,g,ln),A=>A.status),verifyTotp:(c,g)=>a(r("/two-factor/verify-totp",c,g,fe)),verifyBackupCode:(c,g)=>a(r("/two-factor/verify-backup-code",c,g,fe)),sendOtp:(c={},g)=>r("/two-factor/send-otp",c,g,pn),verifyOtp:(c,g)=>a(r("/two-factor/verify-otp",c,g,fe)),generateBackupCodes:(c,g)=>r("/two-factor/generate-backup-codes",c,g,fn)},signOut:c=>a(d.request("/sign-out",{method:"POST",body:{},fetchOptions:c,decode:cn}).then(g=>(o.endSession(),g)),g=>g.success)}}function Qe(e,t=()=>{},n){let i=nr(e,t,n);return n?{...i,signIn:{email:i.signIn.email,username:i.signIn.username,social:Gn(i),magicLink:i.signIn.magicLink,emailOtp:i.signIn.emailOtp,passkey:i.signIn.passkey},passkey:{listUserPasskeys:i.passkey.listUserPasskeys,updatePasskey:i.passkey.updatePasskey,deletePasskey:i.passkey.deletePasskey,addPasskey:i.passkey.addPasskey}}:{...i,signIn:{email:i.signIn.email,username:i.signIn.username,social:Gn(i),magicLink:i.signIn.magicLink,emailOtp:i.signIn.emailOtp},passkey:{listUserPasskeys:i.passkey.listUserPasskeys,updatePasskey:i.passkey.updatePasskey,deletePasskey:i.passkey.deletePasskey}}}function Gn(e){return async(t,n)=>{if(!t?.idToken||typeof t.idToken.token!="string"||t.idToken.token==="")return ir();let i=await e.signIn.social({...t,disableRedirect:true},n);return i.data!==null&&"url"in i.data?or():i}}function ir(){return Promise.resolve({data:null,error:{status:400,statusText:"BAD_REQUEST",code:"NATIVE_SOCIAL_ID_TOKEN_REQUIRED",message:"Native social sign-in requires a provider ID token."}})}function or(){return Promise.resolve({data:null,error:{status:502,statusText:"BAD_GATEWAY",code:"INVALID_NATIVE_SOCIAL_RESPONSE",message:"The server returned a redirect for native ID-token sign-in."}})}function rr(){return {signIn:()=>Wn(),add:()=>Wn()}}function Wn(){return Promise.resolve({data:null,error:{status:400,statusText:"BAD_REQUEST",code:"PASSKEY_BROWSER_REQUIRED",message:"This passkey ceremony requires a browser with WebAuthn."}})}function sr(e,t,n){let i=new Map;return {async signIn(o={},s){let d=await e.request("/passkey/generate-authenticate-options");if(!d.data)return Qn(d.error);let l;try{l=vn(d.data);}catch{return Yn()}let u;try{u=await n.authenticate({optionsJSON:l,useBrowserAutofill:o.autoFill});}catch(b){return Zn(n,b,"AUTH_CANCELLED","Passkey authentication was cancelled.")}if(!ar(u))return Xn();let{clientExtensionResults:m,...r}=u,a=i.get(u.id);if(a)return a;let f=(async()=>{let b=await e.request("/passkey/verify-authentication",{method:"POST",body:{response:r},fetchOptions:s,decode:En});return b.data&&t(),b})();i.set(u.id,f);try{return await f}finally{i.get(u.id)===f&&i.delete(u.id);}},async add(o={},s){let d=me(o.name);if(!d.valid)return he();let l=await e.request("/passkey/generate-register-options",{query:{name:d.value,authenticatorAttachment:o.authenticatorAttachment}});if(!l.data)return Qn(l.error);let u;try{u=xn(l.data);}catch{return Yn()}let m;try{m=await n.register({optionsJSON:u});}catch(b){return Zn(n,b,"REGISTRATION_CANCELLED","Passkey registration was cancelled.")}if(!ur(m))return Xn();let{clientExtensionResults:r,...a}=m,f=await e.request("/passkey/verify-registration",{method:"POST",body:{response:a,name:d.value},fetchOptions:s,decode:b=>Cn(b,m.id,d.value)});return f.data&&t(),f}}}function Yn(){return {data:null,error:{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned invalid WebAuthn options."}}}function Xn(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_WEBAUTHN_RESPONSE",message:"The platform returned an invalid passkey response."}}}function ti(e){if(!e||typeof e!="object")return false;let t=e;return typeof t.id=="string"&&t.id.length>0&&typeof t.rawId=="string"&&t.rawId.length>0&&t.type==="public-key"&&!!t.response&&typeof t.response=="object"}function ar(e){if(!ti(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.authenticatorData=="string"&&typeof t.signature=="string"&&(t.userHandle===void 0||typeof t.userHandle=="string")}function ur(e){if(!ti(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.attestationObject=="string"}function Qn(e){return {data:null,error:e??{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned no WebAuthn options."}}}function Zn(e,t,n,i){let o=dr(t,"page does not have focus"),s=e.errorCode?.(t),d=s!==void 0?s==="ERROR_CEREMONY_ABORTED":ei(t)==="AbortError",l=n!=="AUTH_CANCELLED",u=cr(s,ei(t),l);return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:o?"PASSKEY_PAGE_NOT_FOCUSED":d?n:s??"PASSKEY_BROWSER_ERROR",message:o?"Keep this page focused while completing the passkey prompt.":d?i:u}}}function cr(e,t,n){switch(e){case "ERROR_INVALID_DOMAIN":case "ERROR_INVALID_RP_ID":return "Passkeys are not set up for this site\u2019s domain.";case "ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED":return "This device already has a passkey for this account.";case "ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEY_ALGS":case "ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT":case "ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT":return "This device cannot create a passkey for this site.";}return t==="NotAllowedError"?n?"No passkey was created. The prompt was dismissed or timed out.":"No passkey was used. This device may not have one saved for this site yet, or the prompt was dismissed.":t==="SecurityError"?"Passkeys are not set up for this site\u2019s domain.":n?"Passkey registration did not complete.":"Passkey sign-in did not complete."}function ei(e){return e&&typeof e=="object"&&"name"in e&&typeof e.name=="string"?e.name:void 0}function dr(e,t){let n=t.toLowerCase(),i=new Set,o=e;for(;o&&typeof o=="object"&&!i.has(o);){if(i.add(o),"message"in o&&typeof o.message=="string"&&o.message.toLowerCase().includes(n))return true;o="cause"in o?o.cause:void 0;}return false}async function lr(e){let n=`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/public-config`;return Ot(await le(e,n,{init:{method:"GET",credentials:"omit"},maxResponseBytes:256*1024,decode:i=>pr(i,e)}),"public-config")}function pr(e,t){let n=L(e),i=n.environmentId,o=n.environmentType,s=`${new URL(t.apiUrl).origin}/api/projects/${t.decoded.projectId}/auth`;if(typeof n.applicationId!="string"||!fr(n.applicationId)||i!==t.decoded.projectId||o!=="development"&&o!=="production"||n.authBaseUrl!==s)throw z();let d=E(n.branding),l=E(n.legal);if(!Ze(n.enabledMethods,64)||!Ze(n.socialProviders,64)||!ii(d,["appName","logoUrl","primaryColor"])||d.showAppName!==void 0&&typeof d.showAppName!="boolean"||d.alignment!==void 0&&d.alignment!=="left"&&d.alignment!=="center"&&d.alignment!=="right"||d.theme!==void 0&&d.theme!=="light"&&d.theme!=="dark"&&d.theme!=="system"||!ii(l,["termsUrl","privacyUrl"])||!Number.isSafeInteger(l.version)||l.version<0||typeof l.required!="boolean")throw z();if(n.socialProviderClientIds!==void 0){let u=E(n.socialProviderClientIds);if(Object.keys(u).length>64||Object.values(u).some(m=>typeof m!="string"||m.length>2048))throw z()}if(!F(n,["requireEmailVerification","twoFactor","mfaRequired","accountDeletion","organizations","sso","badge"])||!ni(n.turnstileSiteKey)||!ni(n.authTurnstileSiteKey)||typeof n.locale!="string"||n.locale.length===0||n.locale.length>64||!Number.isSafeInteger(n.configVersion)||n.configVersion<0)throw z();if(n.jwtIssuer!==null){let u=E(n.jwtIssuer);if(u.issuer!==s||u.jwksUrl!==`${s}/jwks`||u.aud!==t.decoded.projectId)throw z()}if(n.signUp!==void 0){let u=E(n.signUp).mode;if(typeof u!="string"||!["open","restricted","allowlist","waitlist"].includes(u))throw z()}if(n.authentication!==void 0&&gr(n.authentication),n.emailVerification!==void 0){let u=E(n.emailVerification);if(!F(u,["required"])||u.method!=="link"&&u.method!=="code")throw z()}if(n.userModel!==void 0&&!F(E(n.userModel),["requireEmail","firstLastName","emailChange","accountDeletion"]))throw z();if(n.mfa!==void 0){let u=E(n.mfa);if(!F(u,["totp","required","backupCodes"])||(u.required===true||u.backupCodes===true)&&u.totp!==true)throw z()}if(n.captcha===void 0||n.captcha===null)n.captcha=typeof n.authTurnstileSiteKey=="string"&&n.authTurnstileSiteKey.length>0?{provider:"turnstile",siteKey:n.authTurnstileSiteKey}:null;else {let u=E(n.captcha);if(typeof u.provider!="string"||u.provider.length===0||u.provider.length>64||typeof u.siteKey!="string"||u.siteKey.length===0||u.siteKey.length>512)throw z();n.captcha={provider:u.provider,siteKey:u.siteKey};}return n}function fr(e){return /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e)}function z(){return new TypeError("public-config returned an invalid response")}function E(e){if(!e||typeof e!="object"||Array.isArray(e))throw z();return e}function ni(e){return e===null||typeof e=="string"&&e.length<=4096}function gr(e){let t=E(e),n=E(t.email),i=E(t.password),o=i.minLength!==void 0||i.maxLength!==void 0;if(!F(n,["signUp"])||!Ze(n.signIn,3)||n.signIn.some(s=>s!=="password"&&s!=="magic_link"&&s!=="email_otp")||!F(E(t.phone),["signUp","signIn"])||!F(i,["signUp","add"])||o&&(!Number.isSafeInteger(i.minLength)||!Number.isSafeInteger(i.maxLength)||i.minLength<1||i.maxLength>4096||i.minLength>i.maxLength)||!F(E(t.passkey),["signIn","add"])||!mr(E(t.passkey).relyingPartyId)||!F(E(t.username),["collectOnSignUp","signIn"]))throw z()}function mr(e){return e==null||typeof e=="string"}function F(e,t){return t.every(n=>typeof e[n]=="boolean")}function ii(e,t){return t.every(n=>e[n]===void 0||typeof e[n]=="string"&&e[n].length<=4096)}function Ze(e,t){return Array.isArray(e)&&e.length<=t&&e.every(n=>typeof n=="string"&&n.length<=128)&&new Set(e).size===e.length}function hr(e){let t=e?.enabledMethods??["password"],n=t.includes("password"),i=t.includes("passkey"),o=e?.authentication,s=e?.mfa;return {emailSignUp:o?.email.signUp??t.some(d=>d==="password"||d==="magic_link"||d==="email_otp"),passwordSignUp:o?.password.signUp??n,phoneSignUp:o?.phone.signUp??t.includes("phone_otp"),passwordSignIn:o?.email.signIn.includes("password")??n,passwordMinLength:o?.password.minLength??8,passwordMaxLength:o?.password.maxLength??128,magicLinkSignIn:o?.email.signIn.includes("magic_link")??t.includes("magic_link"),emailOtpSignIn:o?.email.signIn.includes("email_otp")??t.includes("email_otp"),phoneSignIn:o?.phone.signIn??t.includes("phone_otp"),usernameSignIn:o?.username.signIn??false,collectUsername:o?.username.collectOnSignUp??false,passkeySignIn:o?.passkey.signIn??i,passkeyAdd:o?.passkey.add??i,firstLastName:e?.userModel?.firstLastName??false,emailChange:e===null?false:e.userModel?.emailChange??true,accountDeletion:e?.userModel?.accountDeletion??e?.accountDeletion??false,emailVerificationRequired:e?.emailVerification?.required??e?.requireEmailVerification??false,emailVerificationMethod:e?.emailVerification?.method??"link",totp:s?.totp??e?.twoFactor??false,mfaRequired:s?.required??e?.mfaRequired??false,backupCodes:s?.backupCodes??e?.twoFactor??false,legacyNameField:e?.authentication===void 0}}function yr(e,t){let n=`p_${e.toLowerCase().replace(/-/g,"")}`;return `${t?.secure?"__Secure-":""}${n}.session_token`}function Ns(e,t){return Qe(Se(e),t)}
2
+ exports.createMembershipHas=no;exports.createNativeAuthClient=Qe;exports.createNativeClient=Ns;exports.createPasskeyClient=sr;exports.decodePublishableKey=ke;exports.getPublicConfig=lr;exports.resolveConfig=Se;exports.resolveProjectCapabilities=hr;exports.sessionCookieName=yr;
package/dist/native.d.cts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { R as ResolvedAuthConfig, A as AuthConfig } from './organization-membership-B05mzhtA.cjs';
2
2
  export { D as DecodedPublishableKey, H as HasParams, O as OrganizationMembership, c as createMembershipHas, d as decodePublishableKey, h as resolveConfig, s as sessionCookieName } from './organization-membership-B05mzhtA.cjs';
3
- import { l as AuthOwlClient, aX as SocialIdTokenOptions, bt as createAuthHttpClient, bu as AuthHttpClient, at as PasskeySignInOptions, f as ActionFetchOptions, i as AuthActionResult, as as PasskeyAuthData, h as AddPasskeyOptions, n as AuthPasskey } from './client-CbTdWXNE.cjs';
4
- export { j as AuthClientError, q as AuthSession, r as AuthUser, ab as Organization, ac as OrganizationClient, ad as OrganizationDetails, aA as ProjectCapabilities, aB as PublicConfig, aQ as SessionState, aR as SessionStore, aS as SetActiveOrganizationOptions, aW as SocialAuthData, bq as getPublicConfig, bs as resolveProjectCapabilities } from './client-CbTdWXNE.cjs';
3
+ import { m as AuthOwlClient, aY as SocialIdTokenOptions, bu as createAuthHttpClient, bv as AuthHttpClient, au as PasskeySignInOptions, g as ActionFetchOptions, j as AuthActionResult, at as PasskeyAuthData, i as AddPasskeyOptions, o as AuthPasskey } from './client-N1yD-Tvm.cjs';
4
+ export { k as AuthClientError, r as AuthSession, s as AuthUser, ac as Organization, ad as OrganizationClient, ae as OrganizationDetails, aB as ProjectCapabilities, aC as PublicConfig, aR as SessionState, aS as SessionStore, aT as SetActiveOrganizationOptions, aX as SocialAuthData, br as getPublicConfig, bt as resolveProjectCapabilities } from './client-N1yD-Tvm.cjs';
5
5
  import { startAuthentication, startRegistration } from '@simplewebauthn/browser';
6
6
 
7
7
  type AuthActionClient = Omit<AuthOwlClient, 'getToken' | 'getConsentStatus' | 'acceptConsent' | 'waitlist'>;
package/dist/native.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { R as ResolvedAuthConfig, A as AuthConfig } from './organization-membership-B05mzhtA.js';
2
2
  export { D as DecodedPublishableKey, H as HasParams, O as OrganizationMembership, c as createMembershipHas, d as decodePublishableKey, h as resolveConfig, s as sessionCookieName } from './organization-membership-B05mzhtA.js';
3
- import { l as AuthOwlClient, aX as SocialIdTokenOptions, bt as createAuthHttpClient, bu as AuthHttpClient, at as PasskeySignInOptions, f as ActionFetchOptions, i as AuthActionResult, as as PasskeyAuthData, h as AddPasskeyOptions, n as AuthPasskey } from './client-CgM5jSLp.js';
4
- export { j as AuthClientError, q as AuthSession, r as AuthUser, ab as Organization, ac as OrganizationClient, ad as OrganizationDetails, aA as ProjectCapabilities, aB as PublicConfig, aQ as SessionState, aR as SessionStore, aS as SetActiveOrganizationOptions, aW as SocialAuthData, bq as getPublicConfig, bs as resolveProjectCapabilities } from './client-CgM5jSLp.js';
3
+ import { m as AuthOwlClient, aY as SocialIdTokenOptions, bu as createAuthHttpClient, bv as AuthHttpClient, au as PasskeySignInOptions, g as ActionFetchOptions, j as AuthActionResult, at as PasskeyAuthData, i as AddPasskeyOptions, o as AuthPasskey } from './client-C76hiQOA.js';
4
+ export { k as AuthClientError, r as AuthSession, s as AuthUser, ac as Organization, ad as OrganizationClient, ae as OrganizationDetails, aB as ProjectCapabilities, aC as PublicConfig, aR as SessionState, aS as SessionStore, aT as SetActiveOrganizationOptions, aX as SocialAuthData, br as getPublicConfig, bt as resolveProjectCapabilities } from './client-C76hiQOA.js';
5
5
  import { startAuthentication, startRegistration } from '@simplewebauthn/browser';
6
6
 
7
7
  type AuthActionClient = Omit<AuthOwlClient, 'getToken' | 'getConsentStatus' | 'acceptConsent' | 'waitlist'>;
package/dist/native.js CHANGED
@@ -1 +1 @@
1
- import {i}from'./chunk-24DA3F3A.js';export{i as createNativeAuthClient,j as createPasskeyClient,k as getPublicConfig,a as resolveProjectCapabilities}from'./chunk-24DA3F3A.js';import {n}from'./chunk-V3MSLXXB.js';export{F as createMembershipHas,a as decodePublishableKey,n as resolveConfig,b as sessionCookieName}from'./chunk-V3MSLXXB.js';import'./chunk-T5SH3ZZP.js';function u(i$1,o){return i(n(i$1),o)}export{u as createNativeClient};
1
+ import {l}from'./chunk-KZCWYFAX.js';export{l as createNativeAuthClient,m as createPasskeyClient,n as getPublicConfig,a as resolveProjectCapabilities}from'./chunk-KZCWYFAX.js';import {n}from'./chunk-V3MSLXXB.js';export{F as createMembershipHas,a as decodePublishableKey,n as resolveConfig,b as sessionCookieName}from'./chunk-V3MSLXXB.js';import'./chunk-T5SH3ZZP.js';function u(i,o){return l(n(i),o)}export{u as createNativeClient};