@authowl/core 0.22.1 → 0.24.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.
@@ -1,5 +1,27 @@
1
- import { P as PublicConfig, A as ActionFetchOptions, a as AuthActionResult } from './client-DXypEWpf.js';
2
- import { R as ResolvedAuthConfig } from './organization-membership-BIify9hZ.js';
1
+ import { R as ResolvedAuthConfig, A as ActionFetchOptions, a as AuthActionResult } from './config-ZhNp65dI.js';
2
+ import { P as PublicConfig } from './public-config-BfuiC8Ph.js';
3
+
4
+ declare const AUTH_CHALLENGE_HEADER = "x-authowl-turnstile-token";
5
+ /**
6
+ * The language this request is being conducted in.
7
+ *
8
+ * Advisory: a server that does not know it ignores it, and one that does
9
+ * falls back to the project default for anything it has no catalogue for.
10
+ */
11
+ declare const AUTH_LOCALE_HEADER = "x-authowl-locale";
12
+ type ResponseDecoder<T> = (value: unknown) => T;
13
+ type AuthHttpRequest<T = unknown> = {
14
+ method?: 'GET' | 'POST' | 'PATCH';
15
+ body?: unknown;
16
+ query?: Record<string, string | number | boolean | undefined>;
17
+ fetchOptions?: ActionFetchOptions;
18
+ decode?: ResponseDecoder<T>;
19
+ credentials?: RequestCredentials;
20
+ };
21
+ interface AuthHttpClient {
22
+ request<T>(path: string, options?: AuthHttpRequest<T>): Promise<AuthActionResult<T>>;
23
+ }
24
+ declare function createAuthHttpClient(config: ResolvedAuthConfig, baseURL?: string): AuthHttpClient;
3
25
 
4
26
  /** One compatibility boundary for project-controlled authentication UI. */
5
27
  type ProjectCapabilities = {
@@ -33,28 +55,6 @@ type ProjectCapabilities = {
33
55
  */
34
56
  declare function resolveProjectCapabilities(config: PublicConfig | null): ProjectCapabilities;
35
57
 
36
- declare const AUTH_CHALLENGE_HEADER = "x-authowl-turnstile-token";
37
- /**
38
- * The language this request is being conducted in.
39
- *
40
- * Advisory: a server that does not know it ignores it, and one that does
41
- * falls back to the project default for anything it has no catalogue for.
42
- */
43
- declare const AUTH_LOCALE_HEADER = "x-authowl-locale";
44
- type ResponseDecoder<T> = (value: unknown) => T;
45
- type AuthHttpRequest<T = unknown> = {
46
- method?: 'GET' | 'POST' | 'PATCH';
47
- body?: unknown;
48
- query?: Record<string, string | number | boolean | undefined>;
49
- fetchOptions?: ActionFetchOptions;
50
- decode?: ResponseDecoder<T>;
51
- credentials?: RequestCredentials;
52
- };
53
- interface AuthHttpClient {
54
- request<T>(path: string, options?: AuthHttpRequest<T>): Promise<AuthActionResult<T>>;
55
- }
56
- declare function createAuthHttpClient(config: ResolvedAuthConfig, baseURL?: string): AuthHttpClient;
57
-
58
58
  /** Create a cryptographically random RFC 4122 v4 key for retry-safe write actions. */
59
59
  declare function createIdempotencyKey(): string;
60
60
 
@@ -1,5 +1,27 @@
1
- import { P as PublicConfig, A as ActionFetchOptions, a as AuthActionResult } from './client-BwZ1bqU4.cjs';
2
- import { R as ResolvedAuthConfig } from './organization-membership-BIify9hZ.cjs';
1
+ import { R as ResolvedAuthConfig, A as ActionFetchOptions, a as AuthActionResult } from './config-ZhNp65dI.cjs';
2
+ import { P as PublicConfig } from './public-config-DdTDwDF7.cjs';
3
+
4
+ declare const AUTH_CHALLENGE_HEADER = "x-authowl-turnstile-token";
5
+ /**
6
+ * The language this request is being conducted in.
7
+ *
8
+ * Advisory: a server that does not know it ignores it, and one that does
9
+ * falls back to the project default for anything it has no catalogue for.
10
+ */
11
+ declare const AUTH_LOCALE_HEADER = "x-authowl-locale";
12
+ type ResponseDecoder<T> = (value: unknown) => T;
13
+ type AuthHttpRequest<T = unknown> = {
14
+ method?: 'GET' | 'POST' | 'PATCH';
15
+ body?: unknown;
16
+ query?: Record<string, string | number | boolean | undefined>;
17
+ fetchOptions?: ActionFetchOptions;
18
+ decode?: ResponseDecoder<T>;
19
+ credentials?: RequestCredentials;
20
+ };
21
+ interface AuthHttpClient {
22
+ request<T>(path: string, options?: AuthHttpRequest<T>): Promise<AuthActionResult<T>>;
23
+ }
24
+ declare function createAuthHttpClient(config: ResolvedAuthConfig, baseURL?: string): AuthHttpClient;
3
25
 
4
26
  /** One compatibility boundary for project-controlled authentication UI. */
5
27
  type ProjectCapabilities = {
@@ -33,28 +55,6 @@ type ProjectCapabilities = {
33
55
  */
34
56
  declare function resolveProjectCapabilities(config: PublicConfig | null): ProjectCapabilities;
35
57
 
36
- declare const AUTH_CHALLENGE_HEADER = "x-authowl-turnstile-token";
37
- /**
38
- * The language this request is being conducted in.
39
- *
40
- * Advisory: a server that does not know it ignores it, and one that does
41
- * falls back to the project default for anything it has no catalogue for.
42
- */
43
- declare const AUTH_LOCALE_HEADER = "x-authowl-locale";
44
- type ResponseDecoder<T> = (value: unknown) => T;
45
- type AuthHttpRequest<T = unknown> = {
46
- method?: 'GET' | 'POST' | 'PATCH';
47
- body?: unknown;
48
- query?: Record<string, string | number | boolean | undefined>;
49
- fetchOptions?: ActionFetchOptions;
50
- decode?: ResponseDecoder<T>;
51
- credentials?: RequestCredentials;
52
- };
53
- interface AuthHttpClient {
54
- request<T>(path: string, options?: AuthHttpRequest<T>): Promise<AuthActionResult<T>>;
55
- }
56
- declare function createAuthHttpClient(config: ResolvedAuthConfig, baseURL?: string): AuthHttpClient;
57
-
58
58
  /** Create a cryptographically random RFC 4122 v4 key for retry-safe write actions. */
59
59
  declare function createIdempotencyKey(): string;
60
60
 
package/dist/index.cjs CHANGED
@@ -1,3 +1,3 @@
1
- 'use strict';var Co=Object.defineProperty;var ot=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(i){throw n=[i],i}};var Wt=(e,t)=>{for(var n in t)Co(e,n,{get:t[n],enumerable:true});};var yn={};Wt(yn,{abandonSession:()=>ln,bindingNonce:()=>mn,boundedSessionFetch:()=>De,clearSessionProofKeyMemoryForTests:()=>Qo,cookieCapability:()=>un,createSessionProof:()=>hn,createStoredSessionProof:()=>ir,prepareSenderConstrainedSession:()=>Yo,sessionProofKey:()=>_e});async function De(e,t,n,i){let o=new AbortController,r,c=new Promise((l,a)=>{r=setTimeout(()=>{o.abort(),a(new Error("AuthOwl session transport request timed out."));},i);});try{return await Promise.race([e(t,{...n,signal:o.signal}),c])}finally{clearTimeout(r);}}async function un(e,t,n){let i=await De(e,t,{method:"POST",credentials:"include",headers:n},1e4);if(i.status===404||i.status===405)return "legacy";if(i.status!==204)throw new Error("AuthOwl cookie capability check failed.");let o=await De(e,t,{method:"GET",credentials:"include",headers:n},1e4);if(o.status===404||o.status===405)return "legacy";if(o.status!==200)throw new Error("AuthOwl cookie capability check failed.");let r=await o.text();if(new TextEncoder().encode(r).byteLength>128)throw new Error("AuthOwl cookie capability response is invalid.");let c;try{c=JSON.parse(r);}catch{throw new Error("AuthOwl cookie capability response is invalid.")}if(!c||typeof c!="object"||Array.isArray(c)||Object.keys(c).length!==1||typeof c.cookieSupported!="boolean")throw new Error("AuthOwl cookie capability response is invalid.");return c.cookieSupported}async function ln(e,t,n,i){let o=new Headers(n);o.set("authorization",i),o.set("x-authowl-session-transport","bearer");try{await De(e,t,{method:"POST",credentials:"include",headers:o},2e3);}catch{}}async function Yo(e){let{tokens:t}=e;if(t.beginSession(e.start),!e.clientOrigin)return {binding:null,cookieOnly:false};let n=null;if(t.hasToken()){let r=t.bindingThumbprint();if(r)try{let c=await _e(e.clientOrigin);if(c.thumbprint!==r)throw new Error("Session proof key changed.");n=c;}catch{let c=new Headers;t.declareOn(c);let l=c.get("authorization");l&&await ln(e.fetcher,`${e.projectBaseURL}/session/abandon`,e.headers,l),t.endSession(),t.beginSession(e.start);}}let i;try{i=await un(e.fetcher,`${e.projectBaseURL}/session/cookie-capability`,e.headers);}catch{return t.useCookieTransport(),{binding:null,cookieOnly:false}}if(i==="legacy")return {binding:null,cookieOnly:false};if(i)return t.hasToken()?{binding:null,cookieOnly:true}:(t.useCookieTransport(),{binding:null,cookieOnly:false});let o=n??await _e(e.clientOrigin);return t.useBoundBearerTransport(o.thumbprint,o.persistent),{binding:{key:o,nonce:mn()},cookieOnly:false}}function ae(e){let t="";for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function xe(e){return new TextEncoder().encode(e)}async function dn(e){return ae(new Uint8Array(await crypto.subtle.digest("SHA-256",xe(e))))}function pn(e){return e.kty==="EC"&&e.crv==="P-256"&&typeof e.x=="string"&&e.x.length>0&&typeof e.y=="string"&&e.y.length>0&&e.d===void 0}async function fn(e){return dn(JSON.stringify({crv:e.crv,kty:e.kty,x:e.x,y:e.y}))}function Xo(e){if(!e||typeof e!="object")return false;let t=e,n=t.algorithm;return t.type==="private"&&t.extractable===false&&t.usages.length===1&&t.usages[0]==="sign"&&n.name==="ECDSA"&&n.namedCurve==="P-256"}function Qo(){ve.clear();}async function Zo(e){if(!e||typeof e!="object")return null;let t=e;if(!Xo(t.privateKey)||!t.publicJwk||!pn(t.publicJwk))return null;let n=await fn(t.publicJwk);return t.thumbprint!==n?null:{privateKey:t.privateKey,publicJwk:t.publicJwk,thumbprint:n,persistent:true}}function gn(){return typeof indexedDB>"u"?Promise.resolve(null):new Promise(e=>{let t;try{t=indexedDB.open(Wo,1);}catch{e(null);return}t.onupgradeneeded=()=>{t.result.objectStoreNames.contains(ce)||t.result.createObjectStore(ce,{keyPath:"origin"});},t.onsuccess=()=>e(t.result),t.onerror=()=>e(null),t.onblocked=()=>e(null);})}async function cn(e){let t=await gn();if(!t)return null;try{let n=await new Promise(i=>{let o=t.transaction(ce,"readonly").objectStore(ce).get(e);o.onsuccess=()=>i(o.result),o.onerror=()=>i(null);});return await Zo(n)}finally{t.close();}}async function er(e,t){let n=await gn();if(!n)return "unavailable";try{return await new Promise(i=>{let o;try{o=n.transaction(ce,"readwrite"),o.objectStore(ce).add({origin:e,privateKey:t.privateKey,publicJwk:t.publicJwk,thumbprint:t.thumbprint});}catch{i("unavailable");return}o.oncomplete=()=>i("stored"),o.onerror=()=>{let r=o.error;i(r?.name==="ConstraintError"?"conflict":"unavailable");},o.onabort=()=>{let r=o.error;i(r?.name==="ConstraintError"?"conflict":"unavailable");};})}finally{n.close();}}async function tr(){let e=await crypto.subtle.generateKey({name:"ECDSA",namedCurve:"P-256"},false,["sign","verify"]),t=await crypto.subtle.exportKey("jwk",e.publicKey);if(!pn(t))throw new Error("The browser produced an invalid proof key.");return {privateKey:e.privateKey,publicJwk:t,thumbprint:await fn(t),persistent:false}}function _e(e){let t=ve.get(e);if(t)return t;let n=(async()=>{let i=await cn(e);if(i)return i;let o=await tr(),r=await er(e,o);return r==="stored"?{...o,persistent:true}:r==="conflict"?await cn(e)??o:o})();return ve.set(e,n),n.catch(()=>ve.delete(e)),n}function mn(){return ae(crypto.getRandomValues(new Uint8Array(32)))}function nr(e){let t=new URL(e);return t.search="",t.hash="",t.toString()}async function hn(e){let t=ae(xe(JSON.stringify({typ:$o,alg:Go,jwk:e.key.publicJwk}))),n=ae(xe(JSON.stringify({htm:e.method.toUpperCase(),htu:nr(e.url),iat:Math.floor(Date.now()/1e3),jti:ae(crypto.getRandomValues(new Uint8Array(16))),ath:await dn(e.token)}))),i=`${t}.${n}`,o=await crypto.subtle.sign({name:"ECDSA",hash:"SHA-256"},e.key.privateKey,xe(i));return `${i}.${ae(new Uint8Array(o))}`}async function ir(e){let t=await _e(e.origin);if(t.thumbprint!==e.expectedThumbprint)throw new Error("Session proof key changed.");return hn({key:t,method:e.method,url:e.url,token:e.token})}var $o,Go,Wo,ce,ve,An=ot(()=>{"use strict";$o="pop+jwt",Go="ES256",Wo="authowl-session-proof",ce="origin-keys",ve=new Map;});function Oe(){return typeof window<"u"&&typeof document<"u"&&typeof crypto<"u"&&typeof crypto.subtle?.digest=="function"}var Rt=ot(()=>{"use strict";});var Xe={};Wt(Xe,{beginCrossSiteSignIn:()=>js,challengeFor:()=>to,completeCrossSiteSignIn:()=>Js,takeHandoffCode:()=>Mt});function eo(e){let t="";for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function to(e){let t=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e));return eo(new Uint8Array(t))}function Hs(){return eo(crypto.getRandomValues(new Uint8Array(Fs)))}function no(e,t){let n=window.location.protocol==="https:"?"; Secure":"";document.cookie=`${Zi}=${e}; Path=/; Max-Age=${t}; SameSite=Lax${n}`;}function qs(){for(let e of document.cookie.split(";")){let t=e.indexOf("=");if(!(t<0)&&e.slice(0,t).trim()===Zi)return e.slice(t+1).trim()||null}return null}function Bs(){no("",0);}function Qi(e){return new URL(e,window.location.href).toString()}async function js(e,t){let n=t.callbackURL?Qi(t.callbackURL):null;if(n&&new URL(n).origin!==window.location.origin)return null;let i=Hs(),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 c of Vs){let l=t[c];l&&o.searchParams.set(c,l);}let r=`${window.location.origin}${window.location.pathname}${window.location.search}`;o.searchParams.set("cb",n??r);for(let[c,l]of [["err",t.errorCallbackURL],["new",t.newUserCallbackURL]])l&&o.searchParams.set(c,Qi(l));return o.searchParams.set("challenge",await to(i)),no(i,Ks),o.toString()}function Mt(e){if(typeof window>"u")return null;let t=window.location.hash;if(!t.includes(Lt))return null;let n=new URLSearchParams(t.replace(/^#/,"")),i=n.get(Lt);if(!i||e!==void 0&&i!==e)return null;n.delete(Lt);let o=n.toString();return window.history.replaceState(window.history.state,"",`${window.location.pathname}${window.location.search}${o?`#${o}`:""}`),i}async function Js(e,t,n){if(!Oe())return false;let i=n??Mt();if(!i)return false;n&&Mt(n);let o=qs();if(Bs(),!o)return false;await t.prepareSession({remember:true});let{error:r}=await e.request("/session/exchange",{method:"POST",body:{code:i,verifier:o}});return r===null}var Zi,Lt,Fs,Ks,Vs,Qe=ot(()=>{"use strict";Rt();Zi="authowl_handoff_verifier",Lt="authowl_code",Fs=32,Ks=900,Vs=["email","providerId","domain","organizationSlug"];});var vo=/^(pk_(live|test))_([0-9a-f-]{36})_([A-Za-z0-9]{20,})$/i,xo=/^sk_/i;function rt(e){if(typeof e!="string"||e.length===0)throw new Error("publishableKey is required");if(xo.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=vo.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()}}function Do(e,t){let n=`p_${e.toLowerCase().replace(/-/g,"")}`;return `${t?.secure?"__Secure-":""}${n}.session_token`}var Yt=/^http:\/\/(?:(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*localhost|127\.0\.0\.1|\[::1\])(?::\d+)?(?:\/|$)/i;function st(e,t){throw new Error(`${e}: ${t}`)}function Xt(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&&Yt.test(i)))throw new TypeError("Transport URL must use HTTPS except on approved loopback.");return n}function Qt(e,t){(typeof e!="string"||!/^https?:\/\/[^/?#@\\\s]+\/?$/i.test(e))&&st("apiUrl","origin required");let n;try{n=new URL(e);}catch{st("apiUrl","origin required");}return n.protocol==="http:"&&(!t.allowHttpLoopback||!Yt.test(e))&&st("apiUrl","HTTPS required except exact loopback"),n.origin}function H(e,t){try{return e?.getItem(t)??null}catch{return null}}function L(e,t,n){try{n===null?e?.removeItem(t):e?.setItem(t,n);}catch{}}function D(){try{return globalThis.localStorage}catch{return}}function Z(){try{return globalThis.sessionStorage}catch{return}}var _o="authowl.session-challenge",Uo=e=>`${_o}.${e}`,No="set-auth-challenge",at="x-authowl-challenge";function zo(e){let t=e.get(at);return me(t)?tn(t).some(([n,i])=>n.endsWith(".dont_remember")&&i.length>0):false}var en="INVALID_TWO_FACTOR_COOKIE",Lo=2048,me=e=>e!==null&&e.length<=Lo,Zt=/^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/;function tn(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 nn(e){let t=Uo(e),n=new Map;function i(){return n.size===0?null:[...n].map(([l,a])=>`${l}=${a}`).join("; ")}function o(){let l=i();L(Z(),t,me(l)?l:null);}function r(l){for(let[a,h]of tn(l))Zt.test(a)&&(h===""?n.delete(a):Zt.test(h)&&n.set(a,h));}let c=H(Z(),t);return me(c)&&r(c),{presentOn(l){let a=i();l.delete(at),me(a)&&l.set(at,a);},observe(l){let a=l.get(No);me(a)&&(r(a),o());},clear(){n.clear(),o();}}}var ct="set-auth-token",ut="x-authowl-session-transport",lt="bearer";var Mo="authowl.session-token",Fo="authowl.session-binding",Ko="authowl.cookie-transport",rn="ok",sn="bearer",Vo=e=>`${Mo}.${e}`,Ho=e=>`${Fo}.${e}`,qo=e=>`${Ko}.${e}`;function Bo(e){return e===rn?"cookies":e===sn?"bearer":"unknown"}function jo(e){return e==="cookies"?rn:e==="bearer"?sn:null}function Jo(e){let t=Vo(e),n=Ho(e),i=qo(e),o=nn(e),r=null,c=null,l=null,a=false,h=null,s=Bo(H(D(),i)),d=()=>s==="unknown",p=0,y=null,u=false;function g(){let O=H(Z(),t);if(O!==null)return a=true,O;let K=H(D(),t);return K!==null?(a=false,K):null}function A(){return H(Z(),n)??H(D(),n)}r=g(),c=r===null?null:A(),r!==null&&d()&&(u=true);function b(){if(!(!u||!y)){u=false;try{y();}catch{}}}function R(){let O=s==="bearer"?r:null,K=O===null?null:c,[ge,Gt]=a?[Z(),D()]:[D(),Z()];L(Gt,t,null),L(Gt,n,null),L(ge,t,O),L(ge,n,K);}function x(O){O!==null&&h!==null&&(a=h,h=null),O!==null&&l!==null?(c=l,l=null):O===null&&(c=null),r=O,R(),O!==null&&d()&&(u=true,b());}function N(O){s=O,L(D(),i,jo(O));}function z(){N("unknown"),u=false;}function F(){return r===null&&(r=g(),c=r===null?null:A()),r}function w(){let O=g();return O!==null&&(r=O,c=A()),r}function E(O){w()===O&&R();}function Q(){p+=1,h=null,l=null,a=false,x(null),o.clear(),z();}let ee=()=>s!=="cookies";return {hasToken:()=>F()!==null,bindingThumbprint:()=>(F(),c),declareOn(O){if(O.has("authorization"))return false;let K=F();return !K&&!ee()?false:(K&&O.set("authorization",`Bearer ${K}`),O.set(ut,lt),o.presentOn(O),true)},wantsToken:ee,needsProbe:d,observe(O){let K=O.get(ct);K&&x(K),o.observe(O);},dropChallenge:o.clear,measureWith(O){y=O,b();},beginRead(){let O=F(),K=p;return {carriedToken:O!==null,endIfDead(){O!==null&&w()===O&&p===K&&Q();},recordCookieVerdict(ge){if(p===K&&d()){if(N(ge?"cookies":"bearer"),ge){x(null);return}E(O);}}}},beginSession({remember:O}){p+=1,h=!O,o.clear(),z();},useCookieTransport(){F()===null&&(l=null,N("cookies"));},completeCookieTransport(){N("cookies"),x(null);},useBoundBearerTransport(O,K){if(!O)throw new Error("A session proof thumbprint is required.");l=O,K||(h=true),N("bearer");},endSession:Q}}var on=new Map;function an(e){let t=on.get(e);if(t)return t;let n=Jo(e);return on.set(e,n),n}var dt="x-authowl-session-proof",bn="x-authowl-session-binding",On="x-authowl-session-binding-proof",Ue=()=>Promise.resolve().then(()=>(An(),yn));function or(e,t){return t?.headers?new Headers(t.headers):typeof e=="object"&&e!==null&&"headers"in e?new Headers(e.headers):new Headers}function wn(e,t){let n=an(e.projectId),i=(p,y)=>(t??globalThis.fetch)(p,y),o=typeof globalThis.location=="object"&&typeof globalThis.location.origin=="string"&&globalThis.location.origin!=="null"?globalThis.location.origin:null,r=null,c=false,l=()=>new Headers({"x-publishable-key":e.publishableKey});async function a(p){let y=p.get("authorization");y&&await Ue().then(u=>u.abandonSession(i,`${e.projectBaseURL}/session/abandon`,l(),y));}async function h(p){r=null,c=false;let y=await Ue().then(u=>u.prepareSenderConstrainedSession({tokens:n,start:p,clientOrigin:o,fetcher:i,projectBaseURL:e.projectBaseURL,headers:l()}));r=y.binding,c=y.cookieOnly;}return {fetch:async(p,y)=>{if(y?.credentials==="omit"||!n.wantsToken())return i(p,y);let u=or(p,y),g=n.declareOn(u),A=u.get("authorization"),b=(y?.method??(typeof p=="object"&&p!==null&&"method"in p?p.method:"GET")).toUpperCase(),R=typeof p=="string"?p:p instanceof URL?p.toString():p.url;if(g&&o){let N=!!A;if(A){let z=A.replace(/^Bearer\s+/i,""),F=n.bindingThumbprint();if(F)try{u.set(dt,await Ue().then(w=>w.createStoredSessionProof({origin:o,expectedThumbprint:F,method:b,url:R,token:z})));}catch{await a(u),n.endSession(),u.delete("authorization"),u.delete(dt),u.delete(bn),u.delete(On),N=false;}}if(r){let z=r;u.set(bn,z.nonce),u.set(N?On:dt,await Ue().then(F=>F.createSessionProof({key:z.key,method:b,url:R,token:z.nonce})));}}let x=await i(p,{...y,headers:u});return g&&(x.status===401&&A&&(new URL(R).pathname.endsWith("/get-session")||new URL(R).pathname.endsWith("/sign-out"))?(await a(u),n.endSession(),r=null,c=false):(n.observe(x.headers),x.headers.has("set-auth-token")&&(c&&n.completeCookieTransport(),r=null,c=false))),x},probe:i,tokens:n,prepareSession:h}}function Rn(e){if(!e||typeof e!="object")throw new Error("AuthConfig is required");let t=rt(e.publishableKey),n=Qt(e.apiUrl,{allowHttpLoopback:t.env==="test"});return {publishableKey:e.publishableKey,apiUrl:n,decoded:t,projectBaseURL:`${n}/api/projects/${t.projectId}/auth`}}function rr(e){let t=Rn(e),{fetch:n,...i}=wn({projectId:t.decoded.projectId,projectBaseURL:t.projectBaseURL,publishableKey:t.publishableKey},e.fetch);return {...e,...t,fetch:n,session:i}}var pt="authowl_invitation",ft="authowl.invitation-claim",Sn=/^[A-Za-z0-9_-]{1,128}$/,kn=10080*60*1e3;function sr(e=Date.now()){if(typeof window>"u")return he(e);let t;try{t=new URL(window.location.href);}catch{return he(e)}let n=t.searchParams.get(pt);if(n===null)return he(e);t.searchParams.delete(pt);try{window.history.replaceState(window.history.state,"",t.toString());}catch{}if(!Sn.test(n))return he(e);let i={id:n,capturedAt:e};return L(D(),ft,JSON.stringify(i)),i}function he(e=Date.now()){let t=H(D(),ft);if(t===null)return null;let n;try{n=JSON.parse(t);}catch{return ye(),null}if(typeof n!="object"||n===null)return ye(),null;let{id:i,capturedAt:o}=n;return typeof i!="string"||!Sn.test(i)||typeof o!="number"||e-o>kn?(ye(),null):{id:i,capturedAt:o}}function ye(){L(D(),ft,null);}var Tn="authowl.last-used-method",ar=/^(password|username|magic-link|email-otp|phone-otp|passkey|sso|social:[a-z0-9][a-z0-9_-]{0,63})$/,gt=e=>`${Tn}.${e}`;function ze(e){return ar.test(e)}function cr(e){let t=H(D(),gt(e));return t===null||!ze(t)?null:t}function ur(e,t){ze(t)&&(L(D(),Ne(e),null),L(D(),gt(e),t));}var Ne=e=>`${Tn}.pending.${e}`;function lr(e,t){ze(t)&&L(D(),Ne(e),t);}function dr(e,t){let n=H(D(),Ne(e));L(D(),Ne(e),null),t&&n!==null&&ze(n)&&L(D(),gt(e),n);}function pr(e){let t=e?.enabledMethods??["password"],n=t.includes("password"),i=t.includes("passkey"),o=e?.authentication,r=e?.mfa;return {emailSignUp:o?.email.signUp??t.some(c=>c==="password"||c==="magic_link"||c==="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:r?.totp??e?.twoFactor??false,mfaRequired:r?.required??e?.mfaRequired??false,backupCodes:r?.backupCodes??e?.twoFactor??false,legacyNameField:e?.authentication===void 0}}var fr=1e4,gr=1024*1024,M=class extends Error{kind;requestId;constructor(t,n){super(Rr(t)),this.name="TransportError",this.kind=t,this.requestId=n;}},En=new WeakSet;function V(e,t){let n=new M(e,t);return En.add(n),n}async function Cn({fetchImpl:e,url:t,init:n={},timeoutMs:i=fr,maxResponseBytes:o=gr,allowHttpLoopback:r=false,decode:c}){In(i,"timeoutMs"),In(o,"maxResponseBytes");let l=Xt(t,{allowHttpLoopback:r}),a=n.signal,h=new AbortController,s=null,d,p=new Promise(A=>{d=A;}),y=A=>{s===null&&(s=A,d({type:"abort",kind:A}),h.abort());},u=()=>y("aborted");a?.addEventListener("abort",u,{once:true});let g=setTimeout(()=>y("timeout"),i);a?.aborted&&u();try{if(s!==null)throw V(s);let A;try{A=await Promise.race([e(l.toString(),{...n,redirect:"error",signal:h.signal}).then(F=>({type:"response",response:F})),p]);}catch{throw V(s??"network")}if(A.type==="abort")throw V(A.kind);if(!mr(A.response))throw V("invalid_response");let b=A.response,R=wr(b.headers),x=await hr(b,o,p,()=>s,R),N=br(b,x,R),z;try{z=b.ok&&c?c(N,Object.freeze({status:b.status})):N;}catch{throw V("invalid_response",R)}return {response:b,data:z,...R===void 0?{}:{requestId:R}}}catch(A){throw A instanceof M&&En.has(A)?A:V(s??"network")}finally{clearTimeout(g),a?.removeEventListener("abort",u);}}function mr(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 hr(e,t,n,i,o){let r=e.headers.get("content-length");if(r!==null){if(!/^\d+$/.test(r))throw Pn(e.body),V("invalid_response",o);if(Number(r)>t)throw Pn(e.body),V("response_too_large",o)}if(!e.body)return "";let c;try{c=e.body.getReader();}catch{throw V("network",o)}let l=[],a=0,h=null;try{for(;;){let p;try{p=await Promise.race([c.read(),n]);}catch{h=V(i()??"network",o);break}if(yr(p)){h=V(p.kind,o);break}let{done:y,value:u}=p;if(y)break;if(u.byteLength!==0){if(a+=u.byteLength,a>t){h=V("response_too_large",o);break}l.push(u);}}}finally{h&&Ar(c);try{c.releaseLock();}catch{}}if(h)throw h;let s=new Uint8Array(a),d=0;for(let p of l)s.set(p,d),d+=p.byteLength;try{return new TextDecoder("utf-8",{fatal:!0}).decode(s)}catch{throw V("invalid_response",o)}}function yr(e){return "type"in e&&e.type==="abort"}function Pn(e){if(e)try{e.cancel().catch(()=>{});}catch{}}function Ar(e){try{e.cancel().catch(()=>{});}catch{}}function br(e,t,n){if(e.status===204||e.status===205)return null;let i=Or(e.headers.get("content-type"));if(!e.ok&&(!i||t.length===0))return null;if(!i||t.length===0)throw V("invalid_response",n);try{return JSON.parse(t)}catch{if(!e.ok)return null;throw V("invalid_response",n)}}function Or(e){if(e===null)return false;let t=e.split(";",1)[0]?.trim().toLowerCase();return t==="application/json"||t?.endsWith("+json")===true}function wr(e){let t=e.get("x-request-id")?.trim();if(!(!t||t.length>256||!/^[A-Za-z0-9._:-]+$/.test(t)))return t}function In(e,t){if(!Number.isInteger(e)||e<=0)throw new TypeError(`${t} must be a positive integer.`)}function Rr(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 Le=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 $(e,t,n={}){let i=new Headers(n.init?.headers);return i.set("x-publishable-key",e.publishableKey),Cn({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 te(e,t){if(!e.response.ok)throw new Le(t,e.response,e.requestId);return e.data}var ne=new Map,Sr=/^[a-z]{2}$/;function kr(e,t){if(typeof window>"u")return ()=>{};if(t===null)return ne.delete(e),()=>{};let n=t.trim().toLowerCase();if(!Sr.test(n))return ()=>{};let i=Symbol(e),o=ne.get(e)??[];return o.push({token:i,locale:n}),ne.set(e,o),()=>{let r=ne.get(e);if(!r)return;let c=r.filter(l=>l.token!==i);c.length===0?ne.delete(e):ne.set(e,c);}}function mt(e){return typeof window>"u"?null:ne.get(e)?.at(-1)?.locale??null}var Dn="x-authowl-turnstile-token",_n="x-authowl-locale",Tr=1e4,Pr=32,Ir=2e4;function ue(e,t){return {post:(n,i,o,r)=>e.request(n,{method:"POST",body:i,fetchOptions:o,decode:r}),mutation:async(n,i)=>{let o=await n;return o.error===null&&(i===void 0||o.data!==null&&i(o.data))&&t(),o}}}function be(e,t=e.projectBaseURL){return {async request(n,i={}){let o=vr(t,n,i.query),r=i.method??(i.body===void 0?"GET":"POST"),c=new Headers(i.fetchOptions?.headers);i.fetchOptions?.authChallengeToken&&c.set(Dn,i.fetchOptions.authChallengeToken);let l=mt(e.decoded.projectId);l&&c.set(_n,l),i.body!==void 0&&c.set("content-type","application/json");let a={method:r,headers:c,credentials:i.credentials??"include",...i.body===void 0?{}:{body:JSON.stringify(i.body)}},h=Object.freeze({method:r,path:n});await i.fetchOptions?.onRequest?.(h);let s=Cr(r,i.fetchOptions),d;try{d=await Er(e,o,{...a,signal:i.fetchOptions?.signal},s);}catch(b){let R=xn(b);return await i.fetchOptions?.onError?.(ht(h,R,_r(b))),{data:null,error:R}}let{response:p,requestId:y}=d,u=zr(n,d.data),g=u;if(p.ok)try{g=At(u),i.decode&&(g=i.decode(g));}catch{let b=xn(new M("invalid_response",y));return await i.fetchOptions?.onError?.(ht(h,b,"invalid_response")),{data:null,error:b}}let A=Object.freeze({...h,status:p.status,...y===void 0?{}:{requestId:y}});if(await i.fetchOptions?.onResponse?.(A),!p.ok){let b=xr(p,u,y);return b.code===en&&e.session.tokens.dropChallenge(),await i.fetchOptions?.onError?.(ht(h,b,"api")),{data:null,error:b}}return await i.fetchOptions?.onSuccess?.(A),{data:g,error:null}}}}async function Er(e,t,n,i){let o=Date.now()+Tr;for(let r=0;r<i;r+=1){let c=o-Date.now();if(c<=0)throw new M("timeout");try{let l=await $(e,t,{init:n,timeoutMs:Math.max(1,Math.ceil(c))});if(l.response.status<500||r===i-1)return l}catch(l){if(r===i-1||!(l instanceof M)||l.kind!=="network")throw l}await Ur(50*2**r,n.signal,o);}throw new M("network")}function Cr(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 vr(e,t,n){let i=new URL(`${e}${t.startsWith("/")?t:`/${t}`}`);for(let[o,r]of Object.entries(n??{}))r!==void 0&&i.searchParams.set(o,String(r));return i.toString()}function xr(e,t,n){let i=Ae(t)?t:{},o=Dr(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 Dr(e,t){let n=(typeof e.retryAfterSeconds=="number"&&Number.isFinite(e.retryAfterSeconds)?e.retryAfterSeconds:void 0)??vn(t.get("retry-after"))??vn(t.get("x-retry-after"));if(n!==void 0)return Math.min(Math.max(Math.trunc(n),1),86400)}function vn(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 xn(e){let t=e instanceof M?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 M&&e.requestId?{requestId:e.requestId}:{}}}function ht(e,t,n){return Object.freeze({...e,status:t.status??0,...t.requestId===void 0?{}:{requestId:t.requestId},failure:n})}function _r(e){return e instanceof M?e.kind:"network"}function Ur(e,t,n){return new Promise((i,o)=>{if(t?.aborted){o(new M("aborted"));return}let r=n-Date.now();if(r<=0){o(new M("timeout"));return}let c=Math.min(e,r),l=()=>{clearTimeout(a),o(new M("aborted"));},a=setTimeout(()=>{t?.removeEventListener("abort",l),Date.now()>=n?o(new M("timeout")):i();},c);t?.addEventListener("abort",l,{once:true}),t?.aborted&&l();})}function At(e,t="",n=0,i={nodes:0}){if(i.nodes+=1,n>Pr||i.nodes>Ir)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=>At(o,"",n+1,i)):Ae(e)?Object.fromEntries(Object.entries(e).map(([o,r])=>[o,Nr(o)?r:At(r,o,n+1,i)])):e}function Nr(e){return e==="metadata"||e==="public_metadata"||e==="unsafe_metadata"||e==="private_metadata"||e==="publicMetadata"||e==="unsafeMetadata"||e==="privateMetadata"}function zr(e,t){if(e==="/list-sessions"&&Array.isArray(t))return t.map(o=>Ae(o)?yt(o):o);if(!Ae(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-")?yt(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")&&Ae(i.session)&&(i={...i,session:yt(i.session)}),i}function yt(e){if(!Object.hasOwn(e,"token"))return e;let t={...e};return delete t.token,t}function Ae(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}var Lr=new Set(["__proto__","constructor","prototype"]);function m(e){(!e||typeof e!="object"||Array.isArray(e))&&f();let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null&&f(),e}function S(e){return typeof e!="string"&&f(),e}function k(e){return typeof e!="boolean"&&f(),e}function T(e){return (!(e instanceof Date)||Number.isNaN(e.getTime()))&&f(),e}function ie(e){return (!Array.isArray(e)||!e.every(t=>typeof t=="string"))&&f(),[...e]}function C(e,t){let n=e[t];return n==null||typeof n=="string"?n:f()}function Un(e,t){let n=e[t];return n==null||typeof n=="boolean"?n:f()}function B(e){let t=m(e),n=t.email;return n!==null&&typeof n!="string"&&f(),{id:S(t.id),email:n,emailVerified:k(t.emailVerified),createdAt:T(t.createdAt),updatedAt:T(t.updatedAt),...q("phoneNumber",C(t,"phoneNumber")),...q("username",C(t,"username")),...q("displayUsername",C(t,"displayUsername")),...q("firstName",C(t,"firstName")),...q("lastName",C(t,"lastName")),...q("name",C(t,"name")),...q("image",C(t,"image")),...q("twoFactorEnabled",Un(t,"twoFactorEnabled"))}}function Me(e){let t=m(e),n=t.membership;return {id:S(t.id),userId:S(t.userId),expiresAt:T(t.expiresAt),...q("activeOrganizationId",C(t,"activeOrganizationId")),...q("activeTeamId",C(t,"activeTeamId")),...q("membership",n==null?n:Mr(n)),...q("pendingMfaEnrollment",Un(t,"pendingMfaEnrollment"))}}function f(){throw new TypeError("AuthOwl response does not match its runtime contract.")}function G(e,t=20,n=1e4){return (!e||typeof e!="object"||Array.isArray(e))&&f(),Ot(e,t,n)}function Ot(e,t=20,n=1e4){return bt(e,0,{nodes:0},t,n)}function Mr(e){let t=m(e);return {role:S(t.role),...t.roles===void 0?{}:{roles:ie(t.roles)},permissions:ie(t.permissions),...t.teams===void 0?{}:{teams:ie(t.teams)}}}function bt(e,t,n,i,o){if(n.nodes+=1,(t>i||n.nodes>o)&&f(),e===null||typeof e=="string"||typeof e=="boolean")return e;if(typeof e=="number")return Number.isFinite(e)||f(),e;if(Array.isArray(e))return e.map(l=>bt(l,t+1,n,i,o));(!e||typeof e!="object")&&f();let r=Object.getPrototypeOf(e);r!==Object.prototype&&r!==null&&f();let c={};for(let[l,a]of Object.entries(e))Lr.has(l)&&f(),c[l]=bt(a,t+1,n,i,o);return c}function q(e,t){return t===void 0?{}:{[e]:t}}function Nn({http:e,probe:t,tokens:n,channelName:i}){let o=new Set,r=null,c=null,l=null,a=null,h=null,s=null,d,p=w=>{g(w);};d={data:null,isPending:true,isRefetching:false,error:null,refetch:p};function y(w){d=w;for(let E of o)E();}async function u(w){return e.request("/get-session",{query:w?.query,decode:wt})}function g(w){if(w?.query?.disableCookieCache===true)return b(w);if(a)return a;if(h)return h;let E=b(w).finally(()=>{h===E&&(h=null);});return h=E,E}function A(){if(a)return a;let w=b({query:{disableCookieCache:true}}).finally(()=>{a===w&&(a=null);});return a=w,w}async function b(w){l?.abort();let E=new AbortController;l=E,y({...d,isPending:d.data===null&&d.error===null,isRefetching:d.data!==null});let Q=n.beginRead(),ee=await e.request("/get-session",{query:w?.query,fetchOptions:{signal:E.signal},decode:wt});if(l===E&&(l=null,y({data:ee.data,error:ee.error,isPending:false,isRefetching:false,refetch:p}),ee.error===null)){if(ee.data===null){Q.endIfDead();return}await R(Q);}}async function R(w){if(n.needsProbe()){if(!w.carriedToken){w.recordCookieVerdict(true);return}return s||x(w)}}function x(w){let E=t.request("/get-session",{query:{disableCookieCache:true},decode:wt}).then(Q=>{s===E&&Q.error===null&&w.recordCookieVerdict(Q.data!==null);}).finally(()=>{s===E&&(s=null);});return s=E,E}function N(){r?.postMessage({type:"session-changed"});}function z(){if(typeof window>"u"||c)return;let w=()=>{g();},E=()=>{document.visibilityState==="visible"&&g();};window.addEventListener("focus",w),document.addEventListener("visibilitychange",E),typeof BroadcastChannel<"u"&&(r=new BroadcastChannel(i),r.addEventListener("message",w)),c=()=>{window.removeEventListener("focus",w),document.removeEventListener("visibilitychange",E),r?.close(),r=null,c=null;};}function F(w){return o.add(w),o.size===1&&(z(),g()),()=>{if(o.delete(w),o.size===0){let E=l;l=null,h=null,a=null,E?.abort(),c?.();}}}return n.measureWith(()=>{n.needsProbe()&&x(n.beginRead());}),{store:{subscribe:F,getSnapshot:()=>d,refresh:A},getSession:u,notifyMutation(){N(),s&&s.catch(()=>{}).then(()=>{!n.needsProbe()&&n.hasToken()&&N();}),o.size>0&&g({query:{disableCookieCache:true}});}}}function wt(e){if(e===null)return null;let t=m(e);return (t.session===void 0||t.user===void 0)&&f(),{session:Me(t.session),user:B(t.user)}}Rt();function we(){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 zn(e,t){return e.request("/user/metadata",{fetchOptions:t,decode:Mn})}async function Ln(e,t,n){return e.request("/user/metadata",{method:"PATCH",body:{expected_version:t.expectedVersion,unsafe_metadata:t.unsafeMetadata},fetchOptions:n,decode:Mn})}function Mn(e){let t=m(e),n=G(t.public_metadata),i=G(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 Kn(e,t){let{post:n,mutation:i}=ue(e,t);return {getMetadata:o=>zn(e,o),updateUnsafeMetadata:(o,r)=>Ln(e,o,r),updateProfile:(o,r)=>i(n("/update-user",o,r,Re)),changeEmail:(o,r)=>i(n("/change-email",o,r,Re)),changePassword:(o,r)=>i(n("/change-password",o,r,Fr)),listSessions:o=>e.request("/list-sessions",{fetchOptions:o,decode:Kr}),revokeSession:({sessionId:o},r)=>i(n("/revoke-session",{sessionId:o},r,Re)),revokeOtherSessions:o=>i(n("/revoke-other-sessions",{},o,Re)),listSocialAccounts:async o=>{let r=await e.request("/list-accounts",{fetchOptions:o,decode:Vr});if(!r.data)return {data:null,error:r.error};let c=r.data.length>1;return {...r,data:r.data.filter(l=>l.providerId!=="credential").map(l=>({...l,canUnlink:c}))}},linkSocial:(o,r)=>n("/link-social",o,r,Hr),unlinkSocial:(o,r)=>i(n("/unlink-account",o,r,Re)),delete:(o={},r)=>i(n("/delete-user",o,r,qr))}}function Re(e){let t=m(e);return {status:k(t.status)}}function Fr(e){let t=m(e);return {user:B(t.user)}}function Kr(e){return Array.isArray(e)||f(),e.map(t=>{let n=m(t);return {id:S(n.id),userId:S(n.userId),createdAt:T(n.createdAt),updatedAt:T(n.updatedAt),expiresAt:T(n.expiresAt),...Fn("ipAddress",C(n,"ipAddress")),...Fn("userAgent",C(n,"userAgent"))}})}function Vr(e){return Array.isArray(e)||f(),e.map(t=>{let n=m(t);return {id:S(n.id),userId:S(n.userId),providerId:S(n.providerId),accountId:S(n.accountId),scopes:ie(n.scopes),createdAt:T(n.createdAt),updatedAt:T(n.updatedAt)}})}function Hr(e){let t=m(e);return {url:S(t.url),redirect:k(t.redirect)}}function qr(e){let t=m(e);return {success:k(t.success),message:S(t.message)}}function Fn(e,t){return t===void 0?{}:{[e]:t}}function Fe(e,t){return !e||!t?false:e.permissions.includes(t)}function Vn(e,t){return !e||!t?false:e.teams?.includes(t)??false}function Hn(e,t){return e?e.roles===void 0?e.role===t:e.roles.includes(t):false}function Ke(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&&!Hn(e,n)||i!==void 0&&!e.permissions.includes(i)||o!==void 0&&!Vn(e,o))}function Br(e){return {has:t=>Ke(e,t),hasPermission:t=>Fe(e,t.permission)}}var jr=new Set(["pending","accepted","rejected","canceled"]),St=1e4;function qn(e){let t=m(e);return t.recipientHint!==null&&t.recipientHint!=="new_user"&&f(),{recipientHint:t.recipientHint}}function le(e,t,n){let i=m(e),o={id:P(i.id),name:P(i.name),slug:P(i.slug),createdAt:T(i.createdAt),...Se("logo",C(i,"logo")),...Se("metadata",i.metadata===void 0?void 0:Ot(i.metadata))};return J(o.id,t),J(o.slug,n),o}function Bn(e){return W(e,le)}function kt(e,t,n){return e===null?null:(t===null&&f(),le(e,t,n))}function jn(e,t,n){if(e===null)return null;let i=m(e),o=le(i,t,n);return {...o,members:W(i.members,r=>ii(r,o.id)),invitations:W(i.invitations,r=>Y(r,void 0,o.id))}}function Tt(e,t,n=false){let i=W(e,o=>ke(o));return n||Pe(i.map(o=>o.organizationId),t),i}function Jn(e,t){let n=W(e,i=>Pt(i));return Pe(n.map(i=>i.teamId),t),n}function Pt(e,t,n){let i=m(e),o={id:P(i.id),teamId:P(i.teamId),userId:P(i.userId),createdAt:T(i.createdAt)};return J(o.teamId,t),J(o.userId,n),o}function $n(e,t,n){return e===null?null:(t===null&&f(),ke(e,t,n))}function Gn(e,t){let n=m(e);return (!Number.isSafeInteger(n.total)||n.total<0)&&f(),{members:Jr(n.members,t),total:n.total}}function Y(e,t,n){let i=m(e),o=P(i.status);jr.has(o)||f();let r={id:P(i.id),organizationId:P(i.organizationId),email:Te(i.email),role:P(i.role),status:o,inviterId:P(i.inviterId),expiresAt:T(i.expiresAt),createdAt:T(i.createdAt)};return J(r.id,t),J(r.organizationId,n),r}function Wn(e,t){let n=W(e,i=>Y(i));return Pe(n.map(i=>i.organizationId),t),n}function Yn(e){return W(e,t=>{let n=m(t);return {...Y(n),organizationName:Te(n.organizationName)}})}function Xn(e,t){let n=m(e);return {...Y(n,t),organizationName:P(n.organizationName),organizationSlug:P(n.organizationSlug),inviterEmail:oi(n.inviterEmail)}}function Qn(e,t){let n=m(e),i=Y(n.invitation,t);return {invitation:i,member:de(n.member,void 0,i.organizationId)}}function Zn(e,t){let n=m(e);return n.member!==null&&f(),{invitation:n.invitation===null?null:Y(n.invitation,t),member:null}}function ei(e,t){return e===null?null:Y(e,t)}function ti(e,t,n){let i=m(e);return {member:de(i.member,n,t)}}function de(e,t,n){let i=m(e),o={id:P(i.id),organizationId:P(i.organizationId),userId:P(i.userId),role:P(i.role),createdAt:T(i.createdAt),...i.user===void 0?{}:{user:ri(i.user)}};return J(o.id,t),J(o.organizationId,n),o}function ni(e,t){let n=W(e,i=>{let o=m(i);return {organizationId:P(o.organizationId),data:{role:P(o.role),...Se("permission",o.permission===void 0?void 0:$r(o.permission)),...Se("customPermissionKeys",o.customPermissionKeys===void 0?void 0:ie(o.customPermissionKeys))}}});return Pe(n.map(i=>i.organizationId),t),n.map(i=>i.data)}function ke(e,t,n){let i=m(e),o=i.updatedAt,r={id:P(i.id),name:Te(i.name),organizationId:P(i.organizationId),createdAt:T(i.createdAt),...o===void 0?{}:{updatedAt:T(o)}};return J(r.id,t),J(r.organizationId,n),r}function It(e){let t=m(e);return {message:Te(t.message)}}function ii(e,t){let n=m(e);return {...de(n,void 0,t),user:ri(n.user)}}function Jr(e,t){let n=W(e,i=>ii(i));return Pe(n.map(i=>i.organizationId),t),n}function $r(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>St||!Array.isArray(o))&&f(),n[i]=o.map(r=>P(r));return n}function P(e){let t=S(e);return (t.length===0||t.length>St)&&f(),t}function Te(e){if(e==null)return "";let t=S(e);return t.length>St&&f(),t}function oi(e){return e===null?null:P(e)}function J(e,t){t!==void 0&&e!==t&&f();}function Pe(e,t){let n=t??e[0];n!==void 0&&e.some(i=>i!==n)&&f();}function ri(e){let t=m(e);return {id:P(t.id),name:Te(t.name),email:oi(t.email),...Se("image",C(t,"image"))}}function W(e,t){return Array.isArray(e)||f(),e.map(n=>t(n))}function Se(e,t){return t===void 0?{}:{[e]:t}}function si(e,t,n=()=>null){let{post:i,mutation:o}=ue(e,t),r=new Set,c=()=>{for(let s of r)try{s();}catch{}},l=new Map,a=(s,d,p,y)=>{if(p)return e.request(s,{query:d,fetchOptions:p,decode:y});let u=`${s}\0${JSON.stringify(d??null)}`,g=l.get(u);if(g)return g;let A=e.request(s,{query:d,decode:y}).finally(()=>{l.delete(u);});return l.set(u,A),A},h=async s=>{let d=await o(s).finally(()=>l.clear());return d.error===null&&c(),d};return {subscribe(s){return r.add(s),()=>r.delete(s)},create:(s,d)=>h(i("/organization/create",s,d,le)),list:s=>a("/organization/list",void 0,s,Bn),get:(s={},d)=>a("/organization/get-full-organization",{organizationId:s.organizationId,organizationSlug:s.organizationSlug,membersLimit:s.membersLimit},d,p=>jn(p,s.organizationId,s.organizationSlug)),setActive:(s,d)=>h(i("/organization/set-active",s,d,p=>kt(p,s.organizationId,s.organizationSlug))),createTeam:(s,d)=>h(i("/organization/create-team",s,d,p=>ke(p,void 0,s.organizationId))),listTeams:(s={},d)=>a("/organization/list-teams",{organizationId:s.organizationId},d,p=>Tt(p,s.organizationId)),updateTeam:(s,d)=>h(i("/organization/update-team",s,d,p=>ke(p,s.teamId,s.data.organizationId))),removeTeam:(s,d)=>h(i("/organization/remove-team",s,d,It)),listUserTeams:s=>a("/organization/list-user-teams",void 0,s,d=>Tt(d,void 0,true)),listTeamMembers:(s={},d)=>a("/organization/list-team-members",{teamId:s.teamId},d,p=>Jn(p,s.teamId)),addTeamMember:(s,d)=>h(i("/organization/add-team-member",s,d,p=>Pt(p,s.teamId,s.userId))),removeTeamMember:(s,d)=>h(i("/organization/remove-team-member",s,d,It)),setActiveTeam:(s,d)=>h(i("/organization/set-active-team",s,d,p=>$n(p,s.teamId))),update:(s,d)=>h(i("/organization/update",s,d,p=>kt(p,s.organizationId))),delete:(s,d)=>h(i("/organization/delete",s,d,p=>le(p,s.organizationId))),listMembers:(s={},d)=>a("/organization/list-members",{organizationId:s.organizationId,organizationSlug:s.organizationSlug,limit:s.limit,offset:s.offset,sortBy:s.sortBy,sortDirection:s.sortDirection,filterField:s.filterField,filterValue:s.filterValue,filterOperator:s.filterOperator},d,p=>Gn(p,s.organizationId)),inviteMember:(s,d)=>h(i("/organization/invite-member",s,d,p=>Y(p,void 0,s.organizationId))),listInvitations:(s={},d)=>a("/organization/list-invitations",{organizationId:s.organizationId},d,p=>Wn(p,s.organizationId)),listUserInvitations:s=>a("/organization/list-user-invitations",void 0,s,Yn),getInvitation:(s,d)=>a("/organization/get-invitation",{id:s.id},d,p=>Xn(p,s.id)),getInvitationRecipientHint:(s,d)=>a("/organization/invitation-recipient-hint",{invitationId:s.invitationId},d,qn),acceptInvitation:(s,d)=>h(i("/organization/accept-invitation",s,d,p=>Qn(p,s.invitationId))),rejectInvitation:(s,d)=>h(i("/organization/reject-invitation",s,d,p=>Zn(p,s.invitationId))),cancelInvitation:(s,d)=>h(i("/organization/cancel-invitation",s,d,p=>ei(p,s.invitationId))),removeMember:(s,d)=>h(i("/organization/remove-member",s,d,p=>ti(p,s.organizationId,s.memberIdOrEmail.includes("@")?void 0:s.memberIdOrEmail))),updateMemberRole:(s,d)=>h(i("/organization/update-member-role",s,d,p=>de(p,s.memberId,s.organizationId))),leave:(s,d)=>h(i("/organization/leave",s,d,p=>de(p,void 0,s.organizationId))),listRoles:(s={},d)=>a("/organization/list-roles",{organizationId:s.organizationId},d,p=>ni(p,s.organizationId)),has:s=>Ke(n(),s),hasPermission:s=>Fe(n(),s.permission)}}function qe(e){return {listConsentPreferences:t=>e.request("/privacy/consent-decisions",{fetchOptions:t,decode:Gr}),recordConsent:(t,n)=>e.request("/privacy/consent-decisions",{method:"POST",body:{...t,correlationId:t.correlationId??we()},fetchOptions:n,decode:Yr}),listRightsRequests:t=>e.request("/privacy/rights",{fetchOptions:t,decode:Xr}),createRightsRequest:(t,n)=>e.request("/privacy/rights",{method:"POST",body:t,fetchOptions:n,decode:Qr})}}function Gr(e){let t=m(e);return Array.isArray(t.preferences)||f(),{preferences:t.preferences.map(Wr)}}function Wr(e){let t=m(e);return {purposeId:S(t.purposeId),purposeVersionId:S(t.purposeVersionId),code:S(t.code),state:Zr(t.state,["granted","refused","withdrawn"]),updatedAt:Ve(t.updatedAt),decidedAt:Ve(t.decidedAt)}}function Yr(e){let t=m(e);return t.recorded!==true&&f(),{recorded:true,decision:Ie(t.decision,["granted","refused","withdrawn"]),decidedAt:He(t.decidedAt)}}function Xr(e){let t=m(e);return Array.isArray(t.requests)||f(),{requests:t.requests.map(ai)}}function Qr(e){return {request:ai(m(e).request)}}function ai(e){let t=m(e);return {id:S(t.id),rightType:Ie(t.rightType,["access","correction","portability","erasure","restriction","objection","consent_withdrawal"]),state:Ie(t.state,["received","identity_pending","in_progress","restricted","completed","denied","withdrawn"]),locale:Ie(t.locale,["en","ar"]),receivedAt:He(t.receivedAt),acknowledgedAt:Ve(t.acknowledgedAt),fulfilmentDeadline:He(t.fulfilmentDeadline),completedAt:Ve(t.completedAt)}}function Ve(e){return e===null?null:He(e)}function He(e){if(e instanceof Date)return T(e);typeof e!="string"&&f();let t=new Date(e);return Number.isNaN(t.getTime())&&f(),t}function Ie(e,t){return (typeof e!="string"||!t.includes(e))&&f(),e}function Zr(e,t){return e===null?null:Ie(e,t)}var ci=4096,es=4096,ts=100,ns=256,is=16,os=64,rs=12;function Ct(e){let t=m(e);return t.twoFactorRedirect===true?((t.user!==void 0||t.redirect!==void 0||t.url!==void 0)&&f(),{twoFactorRedirect:true,...t.twoFactorMethods===void 0?{}:{twoFactorMethods:Pi(t.twoFactorMethods,is,os)}}):(t.twoFactorRedirect!==void 0&&f(),{redirect:k(t.redirect),...ls(t,"url"),user:B(t.user)})}function ui(e){let t=m(e);return {user:B(t.user)}}function li(e){let t=m(e);return {sessionCreated:k(t.sessionCreated),user:B(t.user)}}function di(e,t){let n=m(e),i=k(n.redirect);n.user===null&&f();let o=n.user!==void 0&&n.user!==null,r=n.url!==void 0&&n.url!==null;return i?((o||!r)&&f(),{redirect:true,url:Et(n.url,t)}):(o===r&&f(),o?{redirect:false,user:B(n.user)}:{redirect:false,url:Et(n.url,t)})}function pi(e,t){let n=m(e);return (n.redirect!==true||n.user!==void 0)&&f(),{redirect:true,url:Et(n.url,t)}}function fi(e){return {status:k(m(e).status)}}function gi(e){return {success:k(m(e).success)}}function mi(e){return m(e).status!=="pending"&&f(),{status:"pending"}}function hi(e){let t=m(e);if(t.kind==="authowl_turnstile")return {kind:"authowl_turnstile"};t.kind!=="akedly_shield_v1_2"&&f();let n=m(t.turnstile),i=n.siteKey===null?null:S(n.siteKey);return {kind:"akedly_shield_v1_2",connectionId:S(t.connectionId),challenge:S(t.challenge),difficulty:ss(t.difficulty),challengeToken:S(t.challengeToken),challengeRequired:k(t.challengeRequired),turnstile:{required:k(n.required),siteKey:i}}}function ss(e){return (!Number.isSafeInteger(e)||Number(e)<0||Number(e)>rs)&&f(),Number(e)}function yi(e){let t=m(e);return (t.status!==true||t.sessionCreated!==true)&&f(),{status:true,sessionCreated:true,user:as(t.user)}}function vt(e){return {status:k(m(e).status)}}function Ai(e){return {status:k(m(e).status)}}function bi(e){let t=m(e);return {status:k(t.status),user:B(t.user)}}function Oi(e){return {success:k(m(e).success)}}function wi(e){let t=m(e);return {totpURI:us(t.totpURI),backupCodes:Ti(t.backupCodes)}}function Ri(e){return {status:k(m(e).status)}}function Be(e){return m(e).status!==true&&f(),{status:true}}function Si(e){return {status:k(m(e).status)}}function ki(e){let t=m(e);return t.status!==void 0&&t.status!==true&&f(),{backupCodes:Ti(t.backupCodes)}}function as(e){let t=m(e);return {id:pe(t.id,512),...ds(t,"name",1024),phoneNumber:pe(t.phoneNumber,64),phoneNumberVerified:k(t.phoneNumberVerified),...t.createdAt===void 0?{}:{createdAt:T(t.createdAt)},...t.updatedAt===void 0?{}:{updatedAt:T(t.updatedAt)}}}function Et(e,t){let n=pe(e,ci);/[\u0000-\u0020\u007f]/u.test(n)&&f();let i;try{i=new URL(n);}catch{return f()}return (i.username||i.password)&&f(),i.protocol==="https:"||t&&i.protocol==="http:"&&cs(i.hostname)?i.href:f()}function cs(e){let t=e.toLowerCase();return t==="localhost"||t==="127.0.0.1"||t==="[::1]"}function us(e){let t=pe(e,es),n;try{n=new URL(t);}catch{return f()}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))&&f(),t}function Ti(e){return Pi(e,ts,ns)}function Pi(e,t,n){(!Array.isArray(e)||e.length===0||e.length>t)&&f();let i=e.map(o=>pe(o,n));return i.some(o=>o.trim().length===0)&&f(),new Set(i).size!==i.length&&f(),i}function pe(e,t){let n=S(e);return (n.length===0||n.length>t)&&f(),n}function ls(e,t){let n=e[t];return n==null?{}:{[t]:pe(n,ci)}}function ds(e,t,n){let i=C(e,t);return i===void 0?{}:(i!==null&&i.length>n&&f(),{[t]:i})}var Ii=new Set([1564,8206,8207,8234,8235,8236,8237,8238,8294,8295,8296,8297]),je=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 Je(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||Ci(n,i)||Ei(i)||Ii.has(i))return {valid:false}}let t=ps(e);return xt(t)?{valid:true,value:t}:{valid:false}}function xt(e){let t=0,n,i;for(let o of e){if(t+=1,t>256)return false;let r=o.codePointAt(0);if(r===void 0||Ci(o,r)||Ei(r)||Ii.has(r))return false;n??=r,i=r;}return t>0&&n!==void 0&&i!==void 0&&!je.has(n)&&!je.has(i)}function $e(){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 ps(e){let t=0,n=e.length;for(;t<n;){let i=e.codePointAt(t);if(i===void 0||!je.has(i))break;t+=i>65535?2:1;}for(;n>t;){let i=e.codePointAt(n-1);if(i===void 0)break;let r=i>=56320&&i<=57343?n-2:n-1,c=e.codePointAt(r);if(c===void 0||!je.has(c))break;n=r;}return e.slice(t,n)}function Ei(e){return e>=0&&e<=31||e>=127&&e<=159}function Ci(e,t){return e.length===1&&t>=55296&&t<=57343}var Di=12,_i=5e3,fs=8,gs=1e3,ms=16,vi=512,Ui=100,Ni=8192,hs=32768,Dt=1024,xi=256,Ut=64,ys=6e5,As=/^[A-Za-z0-9_-]+$/u,bs=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u,Os=/[\u0000-\u001f\u007f-\u009f\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/u,ws=/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$/u,Rs=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu,zi=new Set(["discouraged","preferred","required"]),Ss=new Set(["singleDevice","multiDevice"]),Li=new Set(["ble","cable","hybrid","internal","nfc","smart-card","usb"]),Mi=new Set(["hybrid","security-key","client-device"]),ks=new Set(["none","indirect","direct","enterprise"]),Ts=new Set(["fido-u2f","packed","android-safetynet","android-key","tpm","apple","none"]),Ps=new Set(["platform","cross-platform"]),Is=new Set(["discouraged","preferred","required"]),Es=new Set([-8,-7,-257]);function Fi(e){let t=G(e,Di,_i);return {challenge:Wi(t.challenge),..._("timeout",$i(t.timeout)),..._("rpId",Yi(t.rpId)),..._("allowCredentials",Ji(t.allowCredentials)),..._("userVerification",Ee(t.userVerification,zi)),..._("hints",Ge(t.hints,Mi)),..._("extensions",Gi(t.extensions))}}function Ki(e){let t=G(e,Di,_i);return {challenge:Wi(t.challenge),rp:Cs(t.rp),user:vs(t.user),pubKeyCredParams:xs(t.pubKeyCredParams),..._("timeout",$i(t.timeout)),..._("excludeCredentials",Ji(t.excludeCredentials)),..._("authenticatorSelection",Ds(t.authenticatorSelection)),..._("attestation",Ee(t.attestation,ks)),..._("attestationFormats",Ge(t.attestationFormats,Ts)),..._("hints",Ge(t.hints,Mi)),..._("extensions",Gi(t.extensions))}}function Vi(e){let t=m(e),n=Me(t.session),i=B(t.user);return n.userId!==i.id&&f(),{session:n,user:i}}function Nt(e){let t=m(e),n=t.counter;(!Number.isSafeInteger(n)||n<0)&&f();let i=zt(t.deviceType,Ss),o=k(t.backedUp);return o&&i!=="multiDevice"&&f(),{id:fe(t.id,xi),...Ns(t),publicKey:_s(t.publicKey,hs),userId:fe(t.userId,xi),credentialID:Ye(t.credentialID,Ni),counter:n,deviceType:i,backedUp:o,...zs(t),createdAt:T(t.createdAt),...Ls(t)}}function Hi(e,t,n){let i=Nt(e);return (i.credentialID!==t||(n===void 0?i.name!==void 0&&i.name!==null:i.name!==n))&&f(),i}function qi(e){(!Array.isArray(e)||e.length>Ui)&&f();let t=e.map(Nt);return We(t.map(n=>n.id)),We(t.map(n=>n.credentialID)),t.length>1&&t.some(n=>n.userId!==t[0]?.userId)&&f(),t}function Bi(e,t,n){let i=m(e),o=Nt(i.passkey);return (o.id!==t||o.name!==n)&&f(),{passkey:o}}function ji(e){return m(e).status!==true&&f(),{status:true}}function Cs(e){let t=m(e);return {name:_t(t.name,Dt),..._("id",Yi(t.id))}}function vs(e){let t=m(e);return {id:Ye(t.id,128,1,64),name:_t(t.name,Dt),displayName:_t(t.displayName,Dt)}}function xs(e){(!Array.isArray(e)||e.length===0||e.length>Ut)&&f();let t=e.map(n=>{let i=m(n);return (i.type!=="public-key"||!Number.isSafeInteger(i.alg)||!Es.has(i.alg))&&f(),{type:"public-key",alg:i.alg}});return Ms(t.map(n=>n.alg)),t}function Ji(e){if(e===void 0)return;(!Array.isArray(e)||e.length>Ui)&&f();let t=e.map(n=>{let i=m(n);return i.type!=="public-key"&&f(),{type:"public-key",id:Ye(i.id,Ni),..._("transports",Ge(i.transports,Li))}});return We(t.map(n=>n.id)),t}function Ds(e){if(e===void 0)return;let t=m(e);t.requireResidentKey!==void 0&&typeof t.requireResidentKey!="boolean"&&f();let n=Ee(t.residentKey,Is);return t.requireResidentKey!==void 0&&n!==void 0&&t.requireResidentKey!==(n==="required")&&f(),{..._("authenticatorAttachment",Ee(t.authenticatorAttachment,Ps)),..._("residentKey",n),..._("requireResidentKey",t.requireResidentKey),..._("userVerification",Ee(t.userVerification,zi))}}function $i(e){return e!==void 0&&(typeof e!="number"||!Number.isFinite(e)||e<0||e>ys)&&f(),e}function Gi(e){return e===void 0?void 0:G(e,fs,gs)}function Ge(e,t){if(e===void 0)return;(!Array.isArray(e)||e.length>Ut)&&f();let n=e.map(i=>zt(i,t));return We(n),n}function Ee(e,t){if(e!==void 0)return zt(e,t)}function Wi(e){return Ye(e,Math.ceil(vi*4/3),ms,vi)}function Ye(e,t,n=1,i=Number.POSITIVE_INFINITY){let o=fe(e,t),r=o.length%4,c=Us(o.at(-1)??""),l=Math.floor(o.length*3/4);return (!As.test(o)||r===1||r===2&&(c&15)!==0||r===3&&(c&3)!==0||l<n||l>i)&&f(),o}function fe(e,t){let n=S(e);return (n.length===0||n.length>t)&&f(),n}function _t(e,t){let n=fe(e,t);return Os.test(n)&&f(),n}function Yi(e){if(e===void 0)return;let t=fe(e,253);return t!=="localhost"&&(t.endsWith(".")||!t.includes(".")||t.split(".").some(n=>!ws.test(n)))&&f(),t}function _s(e,t){let n=fe(e,t),i=n.endsWith("=="),o=!i&&n.endsWith("="),r=n.at(i?-3:o?-2:-1)??"",c=Xi(r);return (n.length%4!==0||!bs.test(n)||i&&(c&15)!==0||o&&(c&3)!==0)&&f(),n}function Us(e){return Xi(e,true)}function Xi(e,t=false){return (t?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").indexOf(e)}function Ns(e){let t=C(e,"name");return t===void 0?{}:(t!==null&&!xt(t)&&f(),{name:t})}function zs(e){let t=C(e,"transports");if(t==null||t==="")return t===void 0?{}:{transports:t};let n=t.split(",");return (n.length>Ut||n.some(i=>!Li.has(i))||new Set(n).size!==n.length)&&f(),{transports:t}}function Ls(e){let t=C(e,"aaguid");return t==null?t===void 0?{}:{aaguid:null}:(Rs.test(t)||f(),{aaguid:t})}function zt(e,t){let n=S(e);return t.has(n)||f(),n}function _(e,t){return t===void 0?{}:{[e]:t}}function We(e){new Set(e).size!==e.length&&f();}function Ms(e){new Set(e).size!==e.length&&f();}function $s(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 io=new Map;function Gs(e,t,n){let i=io.get(n);if(!i){let o=new URLSearchParams(window.location.hash.slice(1)).get("authowl_code");if(!o)return;i=Promise.resolve().then(()=>(Qe(),Xe)).then(r=>r.completeCrossSiteSignIn(e,t,o)),io.set(n,i);}return i}function oo(e){return !Oe()||e.idToken||e.disableRedirect?"legacy":"first-party"}function so(e,t=()=>{},n=Ws){let i=be(e),o=e.session.tokens,r=Oe()?Gs(i,e.session,e.decoded.projectId):void 0,c=$s(i,r),l=Nn({http:c,probe:be({...e,fetch:e.session.probe}),tokens:o,channelName:`authowl:${e.decoded.projectId}`}),a=n(c,l.notifyMutation),h=()=>{l.notifyMutation(),t();},{post:s,mutation:d}=ue(c,h),p=e.decoded.env==="test",y=u=>e.session.prepareSession({remember:u?.rememberMe!==false});return {sessionStore:l.store,getSession:l.getSession,account:Kn(c,h),organization:si(c,h,()=>l.store.getSnapshot().data?.session.membership??null),privacy:qe(c),signIn:{email:async(u,g)=>(await y(u),d(s("/sign-in/email",u,g,Ct),A=>!("twoFactorRedirect"in A))),username:async(u,g)=>(await y(u),d(s("/sign-in/username",u,g,Ct),A=>!("twoFactorRedirect"in A))),social:async(u,g)=>{if(await y(),oo(u)==="first-party"){let{beginCrossSiteSignIn:b}=await Promise.resolve().then(()=>(Qe(),Xe)),R=await b(e,{kind:"social",provider:u.provider,callbackURL:u.callbackURL,errorCallbackURL:u.errorCallbackURL,newUserCallbackURL:u.newUserCallbackURL,scopes:u.scopes,loginHint:u.loginHint,requestSignUp:u.requestSignUp});if(R)return window.location.assign(R),{data:{redirect:true,url:R},error:null}}let A=await d(s("/sign-in/social",u,g,b=>di(b,p)),b=>"user"in b);return A.error!==null||A.data===null||"url"in A.data&&A.data.redirect&&!u.disableRedirect&&typeof window<"u"&&window.location.assign(A.data.url),A},sso:async(u,g)=>{if(oo(u)==="first-party"){let{beginCrossSiteSignIn:b}=await Promise.resolve().then(()=>(Qe(),Xe)),R=await b(e,{kind:"sso",email:u.email,providerId:u.providerId,domain:u.domain,organizationSlug:u.organizationSlug,callbackURL:u.callbackURL,errorCallbackURL:u.errorCallbackURL,newUserCallbackURL:u.newUserCallbackURL});if(R)return window.location.assign(R),{data:{url:R,redirect:true},error:null}}let A=await s("/sign-in/sso",u,g,b=>pi(b,p));return A.error!==null||A.data===null||typeof window<"u"&&window.location.assign(A.data.url),A},magicLink:(u,g)=>s("/sign-in/magic-link",u,g,fi),emailOtp:async(u,g)=>(await y(),d(s("/sign-in/email-otp",u,g,ui))),passkey:async(u,g)=>(await y(),a.signIn(u,g))},signUp:{email:async(u,g)=>(await y(),d(s("/sign-up/email",u,g,li),A=>A.sessionCreated))},emailOtp:{sendVerificationOtp:(u,g)=>s("/email-otp/send-verification-otp",u,g,gi),verifyEmail:async(u,g)=>(await y(),d(s("/email-otp/verify-email",u,g,bi)))},phoneOtp:{prepare:u=>s("/phone-otp/challenge",{},u,hi),start:(u,g)=>s("/phone-otp/start",{...u,idempotencyKey:u.idempotencyKey??we()},g,mi),verify:async(u,g)=>(await y(),d(s("/phone-otp/verify",u,g,yi)))},requestPasswordReset:(u,g)=>s("/request-password-reset",u,g,vt),resetPassword:(u,g)=>s("/reset-password",u,g,vt),sendVerificationEmail:(u,g)=>s("/send-verification-email",u,g,Ai),passkey:{addPasskey:(u,g)=>a.add(u,g),listUserPasskeys:()=>c.request("/passkey/list-user-passkeys",{decode:qi}),updatePasskey:async(u,g)=>{let A=Je(u.name);if(!A.valid||A.value===void 0)return $e();let b=A.value;return s("/passkey/update-passkey",{...u,name:b},g,R=>Bi(R,u.id,b))},deletePasskey:(u,g)=>s("/passkey/delete-passkey",u,g,ji)},twoFactor:{enable:(u,g)=>s("/two-factor/enable",u,g,wi),disable:(u,g)=>d(s("/two-factor/disable",u,g,Ri),A=>A.status),verifyTotp:(u,g)=>d(s("/two-factor/verify-totp",u,g,Be)),verifyBackupCode:(u,g)=>d(s("/two-factor/verify-backup-code",u,g,Be)),sendOtp:(u={},g)=>s("/two-factor/send-otp",u,g,Si),verifyOtp:(u,g)=>d(s("/two-factor/verify-otp",u,g,Be)),generateBackupCodes:(u,g)=>s("/two-factor/generate-backup-codes",u,g,ki)},signOut:u=>d(c.request("/sign-out",{method:"POST",body:{},fetchOptions:u,decode:Oi}).then(g=>(o.endSession(),g)),g=>g.success)}}function Ws(){return {signIn:()=>ro(),add:()=>ro()}}function ro(){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 fo(e,t,n){let i=new Map;return {async signIn(o={},r){let c=await e.request("/passkey/generate-authenticate-options");if(!c.data)return uo(c.error);let l;try{l=Fi(c.data);}catch{return ao()}let a;try{a=await n.authenticate({optionsJSON:l,useBrowserAutofill:o.autoFill});}catch(y){return lo(n,y,"AUTH_CANCELLED","Passkey authentication was cancelled.")}if(!Ys(a))return co();let{clientExtensionResults:h,...s}=a,d=i.get(a.id);if(d)return d;let p=(async()=>{let y=await e.request("/passkey/verify-authentication",{method:"POST",body:{response:s},fetchOptions:r,decode:Vi});return y.data&&t(),y})();i.set(a.id,p);try{return await p}finally{i.get(a.id)===p&&i.delete(a.id);}},async add(o={},r){let c=Je(o.name);if(!c.valid)return $e();let l=await e.request("/passkey/generate-register-options",{query:{name:c.value,authenticatorAttachment:o.authenticatorAttachment}});if(!l.data)return uo(l.error);let a;try{a=Ki(l.data);}catch{return ao()}let h;try{h=await n.register({optionsJSON:a});}catch(y){return lo(n,y,"REGISTRATION_CANCELLED","Passkey registration was cancelled.")}if(!Xs(h))return co();let{clientExtensionResults:s,...d}=h,p=await e.request("/passkey/verify-registration",{method:"POST",body:{response:d,name:c.value},fetchOptions:r,decode:y=>Hi(y,h.id,c.value)});return p.data&&t(),p}}}function ao(){return {data:null,error:{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned invalid WebAuthn options."}}}function co(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_WEBAUTHN_RESPONSE",message:"The platform returned an invalid passkey response."}}}function go(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 Ys(e){if(!go(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 Xs(e){if(!go(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.attestationObject=="string"}function uo(e){return {data:null,error:e??{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned no WebAuthn options."}}}function lo(e,t,n,i){let o=Zs(t,"page does not have focus"),r=e.errorCode?.(t),c=r!==void 0?r==="ERROR_CEREMONY_ABORTED":po(t)==="AbortError",l=n!=="AUTH_CANCELLED",a=Qs(r,po(t),l);return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:o?"PASSKEY_PAGE_NOT_FOCUSED":c?n:r??"PASSKEY_BROWSER_ERROR",message:o?"Keep this page focused while completing the passkey prompt.":c?i:a}}}function Qs(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 po(e){return e&&typeof e=="object"&&"name"in e&&typeof e.name=="string"?e.name:void 0}function Zs(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}function j(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 oe(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),n=(4-t.length%4)%4,i=t.padEnd(t.length+n,"="),o=atob(i),r=new ArrayBuffer(o.length),c=new Uint8Array(r);for(let l=0;l<o.length;l++)c[l]=o.charCodeAt(l);return r}function re(){return ea.stubThis(globalThis?.PublicKeyCredential!==void 0&&typeof globalThis.PublicKeyCredential=="function")}var ea={stubThis:e=>e};function Ze(e){let{id:t}=e;return {...e,id:oe(t),transports:e.transports}}function et(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 I=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 mo({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 I({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 I({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 I({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 I({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 I({message:"The authenticator was previously registered",code:"ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED",cause:e});if(e.name==="NotAllowedError")return new I({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 I({message:'No entry in pubKeyCredParams was of type "public-key"',code:"ERROR_MALFORMED_PUBKEYCREDPARAMS",cause:e}):new I({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(et(i)){if(n.rp.id!==i)return new I({message:`The RP ID "${n.rp.id}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new I({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 I({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 I({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 Ft=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;}}},tt=new Ft;var ta=["cross-platform","platform"];function nt(e){if(e&&!(ta.indexOf(e)<0))return e}async function ho(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(!re())throw new Error("WebAuthn is not supported in this browser");let i={...t,challenge:oe(t.challenge),user:{...t.user,id:oe(t.user.id)},excludeCredentials:t.excludeCredentials?.map(Ze)},o={};n&&(o.mediation="conditional"),o.publicKey=i,o.signal=tt.createNewAbortSignal();let r;try{r=await navigator.credentials.create(o);}catch(u){throw mo({error:u,options:o})}if(!r)throw new Error("Registration was not completed");let{id:c,rawId:l,response:a,type:h}=r,s;typeof a.getTransports=="function"&&(s=a.getTransports());let d;if(typeof a.getPublicKeyAlgorithm=="function")try{d=a.getPublicKeyAlgorithm();}catch(u){Kt("getPublicKeyAlgorithm()",u);}let p;if(typeof a.getPublicKey=="function")try{let u=a.getPublicKey();u!==null&&(p=j(u));}catch(u){Kt("getPublicKey()",u);}let y;if(typeof a.getAuthenticatorData=="function")try{y=j(a.getAuthenticatorData());}catch(u){Kt("getAuthenticatorData()",u);}return {id:c,rawId:j(l),response:{attestationObject:j(a.attestationObject),clientDataJSON:j(a.clientDataJSON),transports:s,publicKeyAlgorithm:d,publicKey:p,authenticatorData:y},type:h,clientExtensionResults:r.getClientExtensionResults(),authenticatorAttachment:nt(r.authenticatorAttachment)}}function Kt(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 yo(){if(!re())return Vt.stubThis(new Promise(t=>t(false)));let e=globalThis.PublicKeyCredential;return e?.isConditionalMediationAvailable===void 0?Vt.stubThis(new Promise(t=>t(false))):Vt.stubThis(e.isConditionalMediationAvailable())}var Vt={stubThis:e=>e};function Ao({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 I({message:"Authentication ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else {if(e.name==="NotAllowedError")return new I({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="SecurityError"){let i=globalThis.location.hostname;if(et(i)){if(n.rpId!==i)return new I({message:`The RP ID "${n.rpId}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new I({message:`${globalThis.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="UnknownError")return new I({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 bo(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(!re())throw new Error("WebAuthn is not supported in this browser");let o;t.allowCredentials?.length!==0&&(o=t.allowCredentials?.map(Ze));let r={...t,challenge:oe(t.challenge),allowCredentials:o},c={};if(n){if(!await yo())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');c.mediation="conditional",r.allowCredentials=[];}c.publicKey=r,c.signal=tt.createNewAbortSignal();let l;try{l=await navigator.credentials.get(c);}catch(y){throw Ao({error:y,options:c})}if(!l)throw new Error("Authentication was not completed");let{id:a,rawId:h,response:s,type:d}=l,p;return s.userHandle&&(p=j(s.userHandle)),{id:a,rawId:j(h),response:{authenticatorData:j(s.authenticatorData),clientDataJSON:j(s.clientDataJSON),signature:j(s.signature),userHandle:p},type:d,clientExtensionResults:l.getClientExtensionResults(),authenticatorAttachment:nt(l.authenticatorAttachment)}}var Oo={authenticate:e=>bo(e),register:e=>ho(e),errorCode:e=>e instanceof I?e.code:void 0};function Ro(e){return `${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/consent`}async function Ht(e){let t=await $(e,Ro(e),{init:{method:"GET",credentials:"include"},maxResponseBytes:65536,decode:na});return t.response.status===401?{required:false}:te(t,"consent status")}async function qt(e,t){if(!Number.isSafeInteger(t)||t<1)throw new TypeError("Consent version must be a positive integer.");return te(await $(e,Ro(e),{init:{method:"POST",headers:{"content-type":"application/json"},credentials:"include",body:JSON.stringify({version:t})},maxResponseBytes:64*1024,decode:ia}),"consent accept")}function na(e){let t=m(e),n=k(t.required),i=oa(t.needsConsent),o=So(t.version),r=wo(t.termsUrl),c=wo(t.privacyUrl);return {required:n,...i===void 0?{}:{needsConsent:i},...o===void 0?{}:{version:o},...r===void 0?{}:{termsUrl:r},...c===void 0?{}:{privacyUrl:c}}}function ia(e){let t=m(e),n=So(t.version);return {ok:k(t.ok),...n===void 0?{}:{version:n}}}function oa(e){if(e===void 0||typeof e=="boolean")return e;throw new TypeError("Invalid consent response.")}function So(e){if(e===void 0||Number.isSafeInteger(e)&&e>=1)return e;throw new TypeError("Invalid consent response.")}function wo(e){if(e===void 0||typeof e=="string"&&e.length<=4096)return e;throw new TypeError("Invalid consent response.")}var ra=30;function sa(e){return typeof e?.exp=="number"?e.exp:null}function aa(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 Bt(e){let t=new Map;async function n(r={}){let c=r.template===void 0?null:r.template.trim().toLowerCase();if(c==="")throw new TypeError("Template missing");let l=c??"",a=t.get(l);a||(a={activeKey:null,cachedByKey:new Map,inflight:null,sequence:0},t.set(l,a));let h=r.forceRefresh===true;if(!h){let u=a.activeKey?a.cachedByKey.get(a.activeKey):null;if(u&&u.exp-Date.now()/1e3>ra)return u.token;if(a.inflight)return a.inflight}let s=++a.sequence,d=()=>t.get(l)===a&&a.sequence===s,p=(async()=>{let u=c?`${e.projectBaseURL}/token/${encodeURIComponent(c)}`:`${e.projectBaseURL}/token`,g=await $(e,u,{init:{method:"GET",credentials:"include"},maxResponseBytes:64*1024,decode:z=>ca(z,c!==null)});if(g.response.status===401)return d()&&i(),null;let A=te(g,"token"),b=A.policyVersion,R=A.token,x=aa(R),N=sa(x);if(d())if(N!==null){let z=typeof x?.sub=="string"?x.sub:null,F=typeof x?.org_id=="string"?x.org_id:null;if(!c||z){let w=JSON.stringify([e.projectBaseURL,z,F,c,b]);a.cachedByKey.clear(),a.cachedByKey.set(w,{token:R,exp:N}),a.activeKey=w;}else o(a);}else o(a);return R})();if(h)return p;let y=p.finally(()=>{a.inflight===y&&(a.inflight=null);});return a.inflight=y,y}function i(){t.clear();}function o(r){r.cachedByKey.clear(),r.activeKey=null;}return {getToken:n,clear:i}}function ca(e,t){let n=m(e),i=S(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=m(n.template);if(!Number.isSafeInteger(o.policyVersion)||o.policyVersion<1)throw new TypeError("Invalid token response.");return {token:i,policyVersion:o.policyVersion}}function ua(e){let t=Bt(e),n=so(e,t.clear,(l,a)=>fo(l,a,Oo)),i=be(e,`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}`),o=qe(i),r=l=>(...a)=>(t.clear(),l(...a)),c={getConsentStatus:()=>Ht(e),acceptConsent:l=>qt(e,l),getToken:t.getToken,privacy:o,waitlist:{join:(l,a)=>i.request("/waitlist",{method:"POST",body:l,fetchOptions:a,credentials:"omit"})},account:{...n.account,updateUnsafeMetadata:r(n.account.updateUnsafeMetadata),updateProfile:r(n.account.updateProfile),changeEmail:r(n.account.changeEmail),changePassword:r(n.account.changePassword),revokeSession:r(n.account.revokeSession),delete:r(n.account.delete)},signIn:{email:r(n.signIn.email),username:r(n.signIn.username),social:r(n.signIn.social),sso:n.signIn.sso,magicLink:n.signIn.magicLink,emailOtp:r(n.signIn.emailOtp),passkey:r(n.signIn.passkey)},signUp:{email:r(n.signUp.email)},emailOtp:{...n.emailOtp,verifyEmail:r(n.emailOtp.verifyEmail)},twoFactor:{enable:n.twoFactor.enable,disable:r(n.twoFactor.disable),verifyTotp:r(n.twoFactor.verifyTotp),verifyBackupCode:r(n.twoFactor.verifyBackupCode),sendOtp:n.twoFactor.sendOtp,verifyOtp:r(n.twoFactor.verifyOtp),generateBackupCodes:n.twoFactor.generateBackupCodes},phoneOtp:{prepare:n.phoneOtp.prepare,start:n.phoneOtp.start,verify:r(n.phoneOtp.verify)},signOut:r(n.signOut)};return {...n,...c}}async function la(e){if(typeof window>"u")throw new Error("Akedly Shield challenges must be solved in a browser.");let t=await da(),n=e.challengeRequired?await t.solvePow(e.challenge,e.difficulty):null,i=e.turnstile.required?await t.getTurnstileToken(pa(e.turnstile.siteKey)):void 0;return {connectionId:e.connectionId,...n?{challengeToken:e.challengeToken,nonce:n.nonce}:{},...i?{turnstileToken:i}:{}}}async function da(){return import('@akedly/shield')}function pa(e){if(!e)throw new Error("Akedly Shield did not provide a Turnstile site key.");return e}async function fa(e){let t=`${e.apiUrl}/api/projects/${e.decoded.projectId}/public-config`;return te(await $(e,t,{init:{method:"GET",credentials:"omit"},maxResponseBytes:256*1024,decode:n=>ga(n,e)}),"public-config")}function ga(e,t){let n=G(e),i=n.environmentId,o=n.environmentType,r=`${t.apiUrl}/api/projects/${t.decoded.projectId}/auth`;if(typeof n.applicationId!="string"||!jt(n.applicationId)||i!==t.decoded.projectId||o!=="development"&&o!=="production"||n.authBaseUrl!==r)throw U();let c=v(n.branding),l=v(n.legal);if(!se(n.enabledMethods,64)||!se(n.socialProviders,64)||!Io(c,["appName","logoUrl","primaryColor"])||c.showAppName!==void 0&&typeof c.showAppName!="boolean"||c.alignment!==void 0&&c.alignment!=="left"&&c.alignment!=="center"&&c.alignment!=="right"||c.theme!==void 0&&c.theme!=="light"&&c.theme!=="dark"&&c.theme!=="system"||!Io(l,["termsUrl","privacyUrl"])||!Number.isSafeInteger(l.version)||l.version<0||typeof l.required!="boolean")throw U();if(n.socialProviderClientIds!==void 0){let a=v(n.socialProviderClientIds);if(Object.keys(a).length>64||Object.values(a).some(h=>typeof h!="string"||h.length>2048))throw U()}if(!X(n,["requireEmailVerification","twoFactor","mfaRequired","accountDeletion","organizations","sso","badge"])||!ko(n.turnstileSiteKey)||!ko(n.authTurnstileSiteKey)||typeof n.locale!="string"||n.locale.length===0||n.locale.length>64||!Number.isSafeInteger(n.configVersion)||n.configVersion<0)throw U();if(n.jwtIssuer!==null){let a=v(n.jwtIssuer),h=new URL(a.issuer),s=`${h.origin}/api/projects/${t.decoded.projectId}/auth`;if(a.issuer!==s||a.jwksUrl!==`${s}/jwks`||a.aud!==t.decoded.projectId||h.protocol!=="https:"&&h.origin!==t.apiUrl)throw U()}if(n.signUp!==void 0){let a=v(n.signUp).mode;if(typeof a!="string"||!["open","restricted","allowlist","waitlist"].includes(a))throw U()}if(n.authentication!==void 0&&ma(n.authentication),n.privacy!==void 0&&ha(n.privacy),n.emailVerification!==void 0){let a=v(n.emailVerification);if(!X(a,["required"])||a.method!=="link"&&a.method!=="code")throw U()}if(n.userModel!==void 0&&!X(v(n.userModel),["requireEmail","firstLastName","emailChange","accountDeletion"]))throw U();if(n.mfa!==void 0){let a=v(n.mfa);if(!X(a,["totp","required","backupCodes"])||a.emailOtpFallback!==void 0&&typeof a.emailOtpFallback!="boolean"||a.trustDevice!==void 0&&typeof a.trustDevice!="boolean"||(a.required===true||a.backupCodes===true)&&a.totp!==true)throw U()}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=v(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 U();n.captcha={provider:a.provider,siteKey:a.siteKey};}return n}function jt(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 U(){return new TypeError("public-config returned an invalid response")}function v(e){if(!e||typeof e!="object"||Array.isArray(e))throw U();return e}function ko(e){return e===null||typeof e=="string"&&e.length<=4096}function ma(e){let t=v(e),n=v(t.email),i=v(t.password),o=i.minLength!==void 0||i.maxLength!==void 0;if(!X(n,["signUp"])||!se(n.signIn,3)||n.signIn.some(r=>r!=="password"&&r!=="magic_link"&&r!=="email_otp")||!X(v(t.phone),["signUp","signIn"])||!X(i,["signUp","add"])||o&&(!Number.isSafeInteger(i.minLength)||!Number.isSafeInteger(i.maxLength)||i.minLength<1||i.maxLength>4096||i.minLength>i.maxLength)||!X(v(t.passkey),["signIn","add"])||!ya(v(t.passkey).relyingPartyId)||!X(v(t.username),["collectOnSignUp","signIn"]))throw U()}function ha(e){let t=v(e);if(!Array.isArray(t.notices)||!Array.isArray(t.consentPurposes)||t.notices.length>64||t.consentPurposes.length>64)throw U();for(let n of t.notices){let i=v(n);if(To(i,"noticeId","noticeVersionId"),it(i.title,512),it(i.body,1e5),Po(i.digest),!se(i.activityCodes,128)||!se(i.purposeCodes,128)||typeof i.effectiveFrom!="string"||!Number.isFinite(Date.parse(i.effectiveFrom)))throw U()}for(let n of t.consentPurposes){let i=v(n);if(To(i,"purposeId","purposeVersionId"),it(i.title,512),it(i.description,1e4),Po(i.digest),!se(i.activityCodes,128)||!se(i.dataCategories,128))throw U()}}function To(e,t,n){if(typeof e[t]!="string"||!jt(e[t])||typeof e[n]!="string"||!jt(e[n])||typeof e.code!="string"||!/^[a-z][a-z0-9_]{0,63}$/.test(e.code)||!Number.isSafeInteger(e.version)||e.version<1)throw U()}function it(e,t){let n=v(e);if(typeof n.en!="string"||n.en.length===0||n.en.length>t||typeof n.ar!="string"||n.ar.length===0||n.ar.length>t)throw U()}function Po(e){let t=v(e);if(typeof t.en!="string"||!/^[a-f0-9]{64}$/.test(t.en)||typeof t.ar!="string"||!/^[a-f0-9]{64}$/.test(t.ar))throw U()}function ya(e){return e==null||typeof e=="string"}function X(e,t){return t.every(n=>typeof e[n]=="boolean")}function Io(e,t){return t.every(n=>e[n]===void 0||typeof e[n]=="string"&&e[n].length<=4096)}function se(e,t){return Array.isArray(e)&&e.length<=t&&e.every(n=>typeof n=="string"&&n.length<=128)&&new Set(e).size===e.length}var Ce=class extends Error{constructor(n,i){super(n);this.cause=i;this.name="AuthOwlError";}cause},Jt=class extends Ce{constructor(n,i){super(`Rate limited. Retry after ${n}s.`,i);this.retryAfterSeconds=n;this.name="RateLimitedError";}retryAfterSeconds},$t=class extends Ce{constructor(t="invalid publishable key",n){super(t,n),this.name="InvalidKeyError";}};var Eo=["en","ar"];function Aa(e){return e==="ar"?"rtl":"ltr"}function ba(e){return typeof e=="string"&&Eo.includes(e)}
3
- exports.AUTH_CHALLENGE_HEADER=Dn;exports.AUTH_LOCALE_HEADER=_n;exports.AuthOwlError=Ce;exports.AuthOwlHttpError=Le;exports.INVITATION_CLAIM_MAX_AGE_MS=kn;exports.INVITATION_QUERY_PARAM=pt;exports.InvalidKeyError=$t;exports.LOCALES=Eo;exports.RateLimitedError=Jt;exports.SESSION_TOKEN_HEADER=ct;exports.SESSION_TRANSPORT_BEARER=lt;exports.SESSION_TRANSPORT_HEADER=ut;exports.TransportError=M;exports.acceptConsent=qt;exports.activeLocale=mt;exports.captureInvitationClaim=sr;exports.clearInvitationClaim=ye;exports.createAuthOwlClient=ua;exports.createIdempotencyKey=we;exports.createMembershipHas=Br;exports.createTokenClient=Bt;exports.decodePublishableKey=rt;exports.directionFor=Aa;exports.getConsentStatus=Ht;exports.getPublicConfig=fa;exports.isLocale=ba;exports.membershipHas=Ke;exports.membershipHasPermission=Fe;exports.membershipHasRole=Hn;exports.membershipHasTeam=Vn;exports.readInvitationClaim=he;exports.readLastUsedSignInMethod=cr;exports.recordLastUsedSignInMethod=ur;exports.rememberPendingSignInMethod=lr;exports.resolveAuthTarget=Rn;exports.resolveConfig=rr;exports.resolveProjectCapabilities=pr;exports.sessionChallengeIsEphemeral=zo;exports.sessionCookieName=Do;exports.setActiveLocale=kr;exports.settlePendingSignInMethod=dr;exports.solvePhoneOtpChallenge=la;
1
+ 'use strict';var No=Object.defineProperty;var ot=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(i){throw n=[i],i}};var Qt=(e,t)=>{for(var n in t)No(e,n,{get:t[n],enumerable:true});};var Sn={};Qt(Sn,{abandonSession:()=>mn,bindingNonce:()=>On,boundedSessionFetch:()=>De,clearSessionProofKeyMemoryForTests:()=>rr,cookieCapability:()=>gn,createSessionProof:()=>wn,createStoredSessionProof:()=>lr,prepareSenderConstrainedSession:()=>ir,sessionProofKey:()=>_e});async function De(e,t,n,i){let o=new AbortController,r,c=new Promise((u,a)=>{r=setTimeout(()=>{o.abort(),a(new Error("AuthOwl session transport request timed out."));},i);});try{return await Promise.race([e(t,{...n,signal:o.signal}),c])}finally{clearTimeout(r);}}async function gn(e,t,n){let i=await De(e,t,{method:"POST",credentials:"include",headers:n},1e4);if(i.status===404||i.status===405)return "legacy";if(i.status!==204)throw new Error("AuthOwl cookie capability check failed.");let o=await De(e,t,{method:"GET",credentials:"include",headers:n},1e4);if(o.status===404||o.status===405)return "legacy";if(o.status!==200)throw new Error("AuthOwl cookie capability check failed.");let r=await o.text();if(new TextEncoder().encode(r).byteLength>128)throw new Error("AuthOwl cookie capability response is invalid.");let c;try{c=JSON.parse(r);}catch{throw new Error("AuthOwl cookie capability response is invalid.")}if(!c||typeof c!="object"||Array.isArray(c)||Object.keys(c).length!==1||typeof c.cookieSupported!="boolean")throw new Error("AuthOwl cookie capability response is invalid.");return c.cookieSupported}async function mn(e,t,n,i){let o=new Headers(n);o.set("authorization",i),o.set("x-authowl-session-transport","bearer");try{await De(e,t,{method:"POST",credentials:"include",headers:o},2e3);}catch{}}async function ir(e){let{tokens:t}=e;if(t.beginSession(e.start),!e.clientOrigin)return {binding:null,cookieOnly:false};let n=null;if(t.hasToken()){let r=t.bindingThumbprint();if(r)try{let c=await _e(e.clientOrigin);if(c.thumbprint!==r)throw new Error("Session proof key changed.");n=c;}catch{let c=new Headers;t.declareOn(c);let u=c.get("authorization");u&&await mn(e.fetcher,`${e.projectBaseURL}/session/abandon`,e.headers,u),t.endSession(),t.beginSession(e.start);}}let i;try{i=await gn(e.fetcher,`${e.projectBaseURL}/session/cookie-capability`,e.headers);}catch{return t.useCookieTransport(),{binding:null,cookieOnly:false}}if(i==="legacy")return {binding:null,cookieOnly:false};if(i)return t.hasToken()?{binding:null,cookieOnly:true}:(t.useCookieTransport(),{binding:null,cookieOnly:false});let o=n??await _e(e.clientOrigin);return t.useBoundBearerTransport(o.thumbprint,o.persistent),{binding:{key:o,nonce:On()},cookieOnly:false}}function ce(e){let t="";for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function xe(e){return new TextEncoder().encode(e)}async function hn(e){return ce(new Uint8Array(await crypto.subtle.digest("SHA-256",xe(e))))}function yn(e){return e.kty==="EC"&&e.crv==="P-256"&&typeof e.x=="string"&&e.x.length>0&&typeof e.y=="string"&&e.y.length>0&&e.d===void 0}async function bn(e){return hn(JSON.stringify({crv:e.crv,kty:e.kty,x:e.x,y:e.y}))}function or(e){if(!e||typeof e!="object")return false;let t=e,n=t.algorithm;return t.type==="private"&&t.extractable===false&&t.usages.length===1&&t.usages[0]==="sign"&&n.name==="ECDSA"&&n.namedCurve==="P-256"}function rr(){Ce.clear();}async function sr(e){if(!e||typeof e!="object")return null;let t=e;if(!or(t.privateKey)||!t.publicJwk||!yn(t.publicJwk))return null;let n=await bn(t.publicJwk);return t.thumbprint!==n?null:{privateKey:t.privateKey,publicJwk:t.publicJwk,thumbprint:n,persistent:true}}function An(){return typeof indexedDB>"u"?Promise.resolve(null):new Promise(e=>{let t;try{t=indexedDB.open(nr,1);}catch{e(null);return}t.onupgradeneeded=()=>{t.result.objectStoreNames.contains(ue)||t.result.createObjectStore(ue,{keyPath:"origin"});},t.onsuccess=()=>e(t.result),t.onerror=()=>e(null),t.onblocked=()=>e(null);})}async function fn(e){let t=await An();if(!t)return null;try{let n=await new Promise(i=>{let o=t.transaction(ue,"readonly").objectStore(ue).get(e);o.onsuccess=()=>i(o.result),o.onerror=()=>i(null);});return await sr(n)}finally{t.close();}}async function ar(e,t){let n=await An();if(!n)return "unavailable";try{return await new Promise(i=>{let o;try{o=n.transaction(ue,"readwrite"),o.objectStore(ue).add({origin:e,privateKey:t.privateKey,publicJwk:t.publicJwk,thumbprint:t.thumbprint});}catch{i("unavailable");return}o.oncomplete=()=>i("stored"),o.onerror=()=>{let r=o.error;i(r?.name==="ConstraintError"?"conflict":"unavailable");},o.onabort=()=>{let r=o.error;i(r?.name==="ConstraintError"?"conflict":"unavailable");};})}finally{n.close();}}async function cr(){let e=await crypto.subtle.generateKey({name:"ECDSA",namedCurve:"P-256"},false,["sign","verify"]),t=await crypto.subtle.exportKey("jwk",e.publicKey);if(!yn(t))throw new Error("The browser produced an invalid proof key.");return {privateKey:e.privateKey,publicJwk:t,thumbprint:await bn(t),persistent:false}}function _e(e){let t=Ce.get(e);if(t)return t;let n=(async()=>{let i=await fn(e);if(i)return i;let o=await cr(),r=await ar(e,o);return r==="stored"?{...o,persistent:true}:r==="conflict"?await fn(e)??o:o})();return Ce.set(e,n),n.catch(()=>Ce.delete(e)),n}function On(){return ce(crypto.getRandomValues(new Uint8Array(32)))}function ur(e){let t=new URL(e);return t.search="",t.hash="",t.toString()}async function wn(e){let t=ce(xe(JSON.stringify({typ:er,alg:tr,jwk:e.key.publicJwk}))),n=ce(xe(JSON.stringify({htm:e.method.toUpperCase(),htu:ur(e.url),iat:Math.floor(Date.now()/1e3),jti:ce(crypto.getRandomValues(new Uint8Array(16))),ath:await hn(e.token)}))),i=`${t}.${n}`,o=await crypto.subtle.sign({name:"ECDSA",hash:"SHA-256"},e.key.privateKey,xe(i));return `${i}.${ce(new Uint8Array(o))}`}async function lr(e){let t=await _e(e.origin);if(t.thumbprint!==e.expectedThumbprint)throw new Error("Session proof key changed.");return wn({key:t,method:e.method,url:e.url,token:e.token})}var er,tr,nr,ue,Ce,Rn=ot(()=>{"use strict";er="pop+jwt",tr="ES256",nr="authowl-session-proof",ue="origin-keys",Ce=new Map;});function Oe(){return typeof window<"u"&&typeof document<"u"&&typeof crypto<"u"&&typeof crypto.subtle?.digest=="function"}var Rt=ot(()=>{"use strict";});var Xe={};Qt(Xe,{beginCrossSiteSignIn:()=>ia,challengeFor:()=>ao,completeCrossSiteSignIn:()=>oa,takeHandoffCode:()=>Ft});function so(e){let t="";for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function ao(e){let t=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e));return so(new Uint8Array(t))}function ea(){return so(crypto.getRandomValues(new Uint8Array(Xs)))}function co(e,t){let n=window.location.protocol==="https:"?"; Secure":"";document.cookie=`${ro}=${e}; Path=/; Max-Age=${t}; SameSite=Lax${n}`;}function ta(){for(let e of document.cookie.split(";")){let t=e.indexOf("=");if(!(t<0)&&e.slice(0,t).trim()===ro)return e.slice(t+1).trim()||null}return null}function na(){co("",0);}function oo(e){return new URL(e,window.location.href).toString()}async function ia(e,t){let n=t.callbackURL?oo(t.callbackURL):null;if(n&&new URL(n).origin!==window.location.origin)return null;let i=ea(),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 c of Zs){let u=t[c];u&&o.searchParams.set(c,u);}let r=`${window.location.origin}${window.location.pathname}${window.location.search}`;o.searchParams.set("cb",n??r);for(let[c,u]of [["err",t.errorCallbackURL],["new",t.newUserCallbackURL]])u&&o.searchParams.set(c,oo(u));return o.searchParams.set("challenge",await ao(i)),co(i,Qs),o.toString()}function Ft(e){if(typeof window>"u")return null;let t=window.location.hash;if(!t.includes(Mt))return null;let n=new URLSearchParams(t.replace(/^#/,"")),i=n.get(Mt);if(!i||e!==void 0&&i!==e)return null;n.delete(Mt);let o=n.toString();return window.history.replaceState(window.history.state,"",`${window.location.pathname}${window.location.search}${o?`#${o}`:""}`),i}async function oa(e,t,n){if(!Oe())return false;let i=n??Ft();if(!i)return false;n&&Ft(n);let o=ta();if(na(),!o)return false;await t.prepareSession({remember:true});let{error:r}=await e.request("/session/exchange",{method:"POST",body:{code:i,verifier:o}});return r===null}var ro,Mt,Xs,Qs,Zs,Qe=ot(()=>{"use strict";Rt();ro="authowl_handoff_verifier",Mt="authowl_code",Xs=32,Qs=900,Zs=["email","providerId","domain","organizationSlug"];});var zo=/^(pk_(live|test))_([0-9a-f-]{36})_([A-Za-z0-9]{20,})$/i,Lo=/^sk_/i;function rt(e){if(typeof e!="string"||e.length===0)throw new Error("publishableKey is required");if(Lo.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=zo.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()}}function Mo(e,t){let n=`p_${e.toLowerCase().replace(/-/g,"")}`;return `${t?.secure?"__Secure-":""}${n}.session_token`}var Zt=/^http:\/\/(?:(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*localhost|127\.0\.0\.1|\[::1\])(?::\d+)?(?:\/|$)/i;function st(e,t){throw new Error(`${e}: ${t}`)}function en(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&&Zt.test(i)))throw new TypeError("Transport URL must use HTTPS except on approved loopback.");return n}function tn(e,t){(typeof e!="string"||!/^https?:\/\/[^/?#@\\\s]+\/?$/i.test(e))&&st("apiUrl","origin required");let n;try{n=new URL(e);}catch{st("apiUrl","origin required");}return n.protocol==="http:"&&(!t.allowHttpLoopback||!Zt.test(e))&&st("apiUrl","HTTPS required except exact loopback"),n.origin}function V(e,t){try{return e?.getItem(t)??null}catch{return null}}function N(e,t,n){try{n===null?e?.removeItem(t):e?.setItem(t,n);}catch{}}function C(){try{return globalThis.localStorage}catch{return}}function Z(){try{return globalThis.sessionStorage}catch{return}}var Fo="authowl.session-challenge",Ko=e=>`${Fo}.${e}`,Vo="set-auth-challenge",at="x-authowl-challenge";function Ho(e){let t=e.get(at);return me(t)?rn(t).some(([n,i])=>n.endsWith(".dont_remember")&&i.length>0):false}var on="INVALID_TWO_FACTOR_COOKIE",qo=2048,me=e=>e!==null&&e.length<=qo,nn=/^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/;function rn(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 sn(e){let t=Ko(e),n=new Map;function i(){return n.size===0?null:[...n].map(([u,a])=>`${u}=${a}`).join("; ")}function o(){let u=i();N(Z(),t,me(u)?u:null);}function r(u){for(let[a,h]of rn(u))nn.test(a)&&(h===""?n.delete(a):nn.test(h)&&n.set(a,h));}let c=V(Z(),t);return me(c)&&r(c),{presentOn(u){let a=i();u.delete(at),me(a)&&u.set(at,a);},observe(u){let a=u.get(Vo);me(a)&&(r(a),o());},clear(){n.clear(),o();}}}var ct="set-auth-token",ut="x-authowl-session-transport",lt="bearer";var Bo="authowl.session-token",jo="authowl.session-binding",Jo="authowl.cookie-transport",cn="ok",un="bearer",$o=e=>`${Bo}.${e}`,Go=e=>`${jo}.${e}`,Wo=e=>`${Jo}.${e}`;function Yo(e){return e===cn?"cookies":e===un?"bearer":"unknown"}function Xo(e){return e==="cookies"?cn:e==="bearer"?un:null}function Qo(e){let t=$o(e),n=Go(e),i=Wo(e),o=sn(e),r=new Set;function c(O){for(let M of r)try{M(O);}catch{}}let u=null,a=null,h=null,s=false,l=null,p=Yo(V(C(),i)),y=()=>p==="unknown",b=0,S=null,d=false;function g(){let O=V(Z(),t);if(O!==null)return s=true,O;let M=V(C(),t);return M!==null?(s=false,M):null}function A(){return V(Z(),n)??V(C(),n)}u=g(),a=u===null?null:A(),u!==null&&y()&&(d=true);function k(){if(!(!d||!S)){d=false;try{S();}catch{}}}function T(){let O=p==="bearer"?u:null,M=O===null?null:a,[ge,Xt]=s?[Z(),C()]:[C(),Z()];N(Xt,t,null),N(Xt,n,null),N(ge,t,O),N(ge,n,M);}function U(O){O!==null&&l!==null&&(s=l,l=null),O!==null&&h!==null?(a=h,h=null):O===null&&(a=null),u=O,T(),O!==null&&y()&&(d=true,k());}function K(O){p=O,N(C(),i,Xo(O));}function w(){K("unknown"),d=false;}function I(){return u===null&&(u=g(),a=u===null?null:A()),u}function Q(){let O=g();return O!==null&&(u=O,a=A()),u}function ae(O){Q()===O&&T();}function Wt(){b+=1,l=null,h=null,s=false,U(null),o.clear(),w(),c({type:"endSession"});}let Yt=()=>p!=="cookies";return {subscribeLifecycle(O){return r.add(O),()=>r.delete(O)},hasToken:()=>I()!==null,bindingThumbprint:()=>(I(),a),declareOn(O){if(O.has("authorization"))return false;let M=I();return !M&&!Yt()?false:(M&&O.set("authorization",`Bearer ${M}`),O.set(ut,lt),o.presentOn(O),true)},wantsToken:Yt,needsProbe:y,observe(O){let M=O.get(ct);M&&U(M),o.observe(O);},dropChallenge:o.clear,measureWith(O){S=O,k();},beginRead(){let O=I(),M=b;return {carriedToken:O!==null,endIfDead(){O!==null&&Q()===O&&b===M&&Wt();},recordCookieVerdict(ge){if(b===M&&y()){if(K(ge?"cookies":"bearer"),ge){U(null);return}ae(O);}}}},beginSession({remember:O}){b+=1,l=!O,o.clear(),w(),c({type:"beginSession",remember:O});},useCookieTransport(){I()===null&&(h=null,K("cookies"));},completeCookieTransport(){K("cookies"),U(null);},useBoundBearerTransport(O,M){if(!O)throw new Error("A session proof thumbprint is required.");h=O,M||(l=true),K("bearer");},endSession:Wt}}var an=new Map;function ln(e){let t=an.get(e);if(t)return t;let n=Qo(e);return an.set(e,n),n}var dn=Symbol.for("authowl.session-transport-integration.v1");function Zo(e,t){return Object.defineProperty(e,dn,{value:t,configurable:false,enumerable:false,writable:false}),e}function pn(e){return e?e[dn]??null:null}var dt="x-authowl-session-proof",kn="x-authowl-session-binding",Tn="x-authowl-session-binding-proof",Ue=()=>Promise.resolve().then(()=>(Rn(),Sn));function dr(e,t){return t?.headers?new Headers(t.headers):typeof e=="object"&&e!==null&&"headers"in e?new Headers(e.headers):new Headers}function In(e,t){let n=ln(e.projectId),i=(p,y)=>(t??globalThis.fetch)(p,y),o=typeof globalThis.location=="object"&&typeof globalThis.location.origin=="string"&&globalThis.location.origin!=="null"?globalThis.location.origin:null,r=null,c=false,u=()=>new Headers({"x-publishable-key":e.publishableKey});async function a(p){let y=p.get("authorization");y&&await Ue().then(b=>b.abandonSession(i,`${e.projectBaseURL}/session/abandon`,u(),y));}async function h(p){r=null,c=false;let y=await Ue().then(b=>b.prepareSenderConstrainedSession({tokens:n,start:p,clientOrigin:o,fetcher:i,projectBaseURL:e.projectBaseURL,headers:u()}));r=y.binding,c=y.cookieOnly;}return {fetch:async(p,y)=>{if(y?.credentials==="omit"||!n.wantsToken())return i(p,y);let b=dr(p,y),S=n.declareOn(b),d=b.get("authorization"),g=(y?.method??(typeof p=="object"&&p!==null&&"method"in p?p.method:"GET")).toUpperCase(),A=typeof p=="string"?p:p instanceof URL?p.toString():p.url;if(S&&o){let T=!!d;if(d){let U=d.replace(/^Bearer\s+/i,""),K=n.bindingThumbprint();if(K)try{b.set(dt,await Ue().then(w=>w.createStoredSessionProof({origin:o,expectedThumbprint:K,method:g,url:A,token:U})));}catch{await a(b),n.endSession(),b.delete("authorization"),b.delete(dt),b.delete(kn),b.delete(Tn),T=false;}}if(r){let U=r;b.set(kn,U.nonce),b.set(T?Tn:dt,await Ue().then(K=>K.createSessionProof({key:U.key,method:g,url:A,token:U.nonce})));}}let k=await i(p,{...y,headers:b});return S&&(k.status===401&&d&&(new URL(A).pathname.endsWith("/get-session")||new URL(A).pathname.endsWith("/sign-out"))?(await a(b),n.endSession(),r=null,c=false):(n.observe(k.headers),k.headers.has("set-auth-token")&&(c&&n.completeCookieTransport(),r=null,c=false))),k},probe:i,tokens:n,integration:pn(t),prepareSession:h}}function Pn(e){if(!e||typeof e!="object")throw new Error("AuthConfig is required");let t=rt(e.publishableKey),n=tn(e.apiUrl,{allowHttpLoopback:t.env==="test"});return {publishableKey:e.publishableKey,apiUrl:n,decoded:t,projectBaseURL:`${n}/api/projects/${t.projectId}/auth`}}function pr(e){let t=Pn(e),{fetch:n,...i}=In({projectId:t.decoded.projectId,projectBaseURL:t.projectBaseURL,publishableKey:t.publishableKey},e.fetch);return {...e,...t,fetch:n,session:i}}var pt="authowl_invitation",ft="authowl.invitation-claim",En=/^[A-Za-z0-9_-]{1,128}$/,vn=10080*60*1e3;function fr(e=Date.now()){if(typeof window>"u")return he(e);let t;try{t=new URL(window.location.href);}catch{return he(e)}let n=t.searchParams.get(pt);if(n===null)return he(e);t.searchParams.delete(pt);try{window.history.replaceState(window.history.state,"",t.toString());}catch{}if(!En.test(n))return he(e);let i={id:n,capturedAt:e};return N(C(),ft,JSON.stringify(i)),i}function he(e=Date.now()){let t=V(C(),ft);if(t===null)return null;let n;try{n=JSON.parse(t);}catch{return ye(),null}if(typeof n!="object"||n===null)return ye(),null;let{id:i,capturedAt:o}=n;return typeof i!="string"||!En.test(i)||typeof o!="number"||e-o>vn?(ye(),null):{id:i,capturedAt:o}}function ye(){N(C(),ft,null);}var Cn="authowl.last-used-method",gr=/^(password|username|magic-link|email-otp|phone-otp|passkey|sso|social:[a-z0-9][a-z0-9_-]{0,63})$/,gt=e=>`${Cn}.${e}`;function ze(e){return gr.test(e)}function mr(e){let t=V(C(),gt(e));return t===null||!ze(t)?null:t}function hr(e,t){ze(t)&&(N(C(),Ne(e),null),N(C(),gt(e),t));}var Ne=e=>`${Cn}.pending.${e}`;function yr(e,t){ze(t)&&N(C(),Ne(e),t);}function br(e,t){let n=V(C(),Ne(e));N(C(),Ne(e),null),t&&n!==null&&ze(n)&&N(C(),gt(e),n);}var Ar="authowl.passkey-offer",xn="done",Or=720*60*60*1e3,mt=(e,t)=>`${Ar}.${e}.${t}`;function wr(e,t,n=Date.now()){let i=V(C(),mt(e,t));if(i===null)return true;if(i===xn)return false;let o=Number(i);if(!Number.isFinite(o))return true;let r=n-o;return r<0||r>=Or}function Sr(e,t,n=Date.now()){N(C(),mt(e,t),String(n));}function Rr(e,t){N(C(),mt(e,t),xn);}function kr(e){let t=e?.enabledMethods??["password"],n=t.includes("password"),i=t.includes("passkey"),o=e?.authentication,r=e?.mfa;return {emailSignUp:o?.email.signUp??t.some(c=>c==="password"||c==="magic_link"||c==="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:r?.totp??e?.twoFactor??false,mfaRequired:r?.required??e?.mfaRequired??false,backupCodes:r?.backupCodes??e?.twoFactor??false,legacyNameField:e?.authentication===void 0}}var Tr=1e4,Ir=1024*1024,F=class extends Error{kind;requestId;constructor(t,n){super(Ur(t)),this.name="TransportError",this.kind=t,this.requestId=n;}},Un=new WeakSet;function H(e,t){let n=new F(e,t);return Un.add(n),n}async function Nn({fetchImpl:e,url:t,init:n={},timeoutMs:i=Tr,maxResponseBytes:o=Ir,allowHttpLoopback:r=false,decode:c}){_n(i,"timeoutMs"),_n(o,"maxResponseBytes");let u=en(t,{allowHttpLoopback:r}),a=n.signal,h=new AbortController,s=null,l,p=new Promise(d=>{l=d;}),y=d=>{s===null&&(s=d,l({type:"abort",kind:d}),h.abort());},b=()=>y("aborted");a?.addEventListener("abort",b,{once:true});let S=setTimeout(()=>y("timeout"),i);a?.aborted&&b();try{if(s!==null)throw H(s);let d;try{d=await Promise.race([e(u.toString(),{...n,redirect:"error",signal:h.signal}).then(K=>({type:"response",response:K})),p]);}catch{throw H(s??"network")}if(d.type==="abort")throw H(d.kind);if(!Pr(d.response))throw H("invalid_response");let g=d.response,A=_r(g.headers),k=await Er(g,o,p,()=>s,A),T=xr(g,k,A),U;try{U=g.ok&&c?c(T,Object.freeze({status:g.status})):T;}catch{throw H("invalid_response",A)}return {response:g,data:U,...A===void 0?{}:{requestId:A}}}catch(d){throw d instanceof F&&Un.has(d)?d:H(s??"network")}finally{clearTimeout(S),a?.removeEventListener("abort",b);}}function Pr(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 Er(e,t,n,i,o){let r=e.headers.get("content-length");if(r!==null){if(!/^\d+$/.test(r))throw Dn(e.body),H("invalid_response",o);if(Number(r)>t)throw Dn(e.body),H("response_too_large",o)}if(!e.body)return "";let c;try{c=e.body.getReader();}catch{throw H("network",o)}let u=[],a=0,h=null;try{for(;;){let p;try{p=await Promise.race([c.read(),n]);}catch{h=H(i()??"network",o);break}if(vr(p)){h=H(p.kind,o);break}let{done:y,value:b}=p;if(y)break;if(b.byteLength!==0){if(a+=b.byteLength,a>t){h=H("response_too_large",o);break}u.push(b);}}}finally{h&&Cr(c);try{c.releaseLock();}catch{}}if(h)throw h;let s=new Uint8Array(a),l=0;for(let p of u)s.set(p,l),l+=p.byteLength;try{return new TextDecoder("utf-8",{fatal:!0}).decode(s)}catch{throw H("invalid_response",o)}}function vr(e){return "type"in e&&e.type==="abort"}function Dn(e){if(e)try{e.cancel().catch(()=>{});}catch{}}function Cr(e){try{e.cancel().catch(()=>{});}catch{}}function xr(e,t,n){if(e.status===204||e.status===205)return null;let i=Dr(e.headers.get("content-type"));if(!e.ok&&(!i||t.length===0))return null;if(!i||t.length===0)throw H("invalid_response",n);try{return JSON.parse(t)}catch{if(!e.ok)return null;throw H("invalid_response",n)}}function Dr(e){if(e===null)return false;let t=e.split(";",1)[0]?.trim().toLowerCase();return t==="application/json"||t?.endsWith("+json")===true}function _r(e){let t=e.get("x-request-id")?.trim();if(!(!t||t.length>256||!/^[A-Za-z0-9._:-]+$/.test(t)))return t}function _n(e,t){if(!Number.isInteger(e)||e<=0)throw new TypeError(`${t} must be a positive integer.`)}function Ur(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 Le=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 $(e,t,n={}){let i=new Headers(n.init?.headers);return i.set("x-publishable-key",e.publishableKey),Nn({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 ee(e,t){if(!e.response.ok)throw new Le(t,e.response,e.requestId);return e.data}var te=new Map,Nr=/^[a-z]{2}$/;function zr(e,t){if(typeof window>"u")return ()=>{};if(t===null)return te.delete(e),()=>{};let n=t.trim().toLowerCase();if(!Nr.test(n))return ()=>{};let i=Symbol(e),o=te.get(e)??[];return o.push({token:i,locale:n}),te.set(e,o),()=>{let r=te.get(e);if(!r)return;let c=r.filter(u=>u.token!==i);c.length===0?te.delete(e):te.set(e,c);}}function ht(e){return typeof window>"u"?null:te.get(e)?.at(-1)?.locale??null}var Mn="x-authowl-turnstile-token",Fn="x-authowl-locale",Lr=1e4,Mr=32,Fr=2e4;function ne(e,t){return {post:(n,i,o,r)=>e.request(n,{method:"POST",body:i,fetchOptions:o,decode:r}),mutation:async(n,i)=>{let o=await n;return o.error===null&&(i===void 0||o.data!==null&&i(o.data))&&await t(),o}}}function Ae(e,t=e.projectBaseURL){return {async request(n,i={}){let o=Hr(t,n,i.query),r=i.method??(i.body===void 0?"GET":"POST"),c=new Headers(i.fetchOptions?.headers);i.fetchOptions?.authChallengeToken&&c.set(Mn,i.fetchOptions.authChallengeToken);let u=ht(e.decoded.projectId);u&&c.set(Fn,u),i.body!==void 0&&c.set("content-type","application/json");let a={method:r,headers:c,credentials:i.credentials??"include",...i.body===void 0?{}:{body:JSON.stringify(i.body)}},h=Object.freeze({method:r,path:n});await i.fetchOptions?.onRequest?.(h);let s=Vr(r,i.fetchOptions),l;try{l=await Kr(e,o,{...a,signal:i.fetchOptions?.signal},s);}catch(g){let A=Ln(g);return await i.fetchOptions?.onError?.(yt(h,A,jr(g))),{data:null,error:A}}let{response:p,requestId:y}=l,b=Gr(n,l.data),S=b;if(p.ok)try{S=At(b),i.decode&&(S=i.decode(S));}catch{let g=Ln(new F("invalid_response",y));return await i.fetchOptions?.onError?.(yt(h,g,"invalid_response")),{data:null,error:g}}let d=Object.freeze({...h,status:p.status,...y===void 0?{}:{requestId:y}});if(await i.fetchOptions?.onResponse?.(d),!p.ok){let g=qr(p,b,y);return g.code===on&&e.session.tokens.dropChallenge(),await i.fetchOptions?.onError?.(yt(h,g,"api")),{data:null,error:g}}return await i.fetchOptions?.onSuccess?.(d),{data:S,error:null}}}}async function Kr(e,t,n,i){let o=Date.now()+Lr;for(let r=0;r<i;r+=1){let c=o-Date.now();if(c<=0)throw new F("timeout");try{let u=await $(e,t,{init:n,timeoutMs:Math.max(1,Math.ceil(c))});if(u.response.status<500||r===i-1)return u}catch(u){if(r===i-1||!(u instanceof F)||u.kind!=="network")throw u}await Jr(50*2**r,n.signal,o);}throw new F("network")}function Vr(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 Hr(e,t,n){let i=new URL(`${e}${t.startsWith("/")?t:`/${t}`}`);for(let[o,r]of Object.entries(n??{}))r!==void 0&&i.searchParams.set(o,String(r));return i.toString()}function qr(e,t,n){let i=be(t)?t:{},o=Br(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 Br(e,t){let n=(typeof e.retryAfterSeconds=="number"&&Number.isFinite(e.retryAfterSeconds)?e.retryAfterSeconds:void 0)??zn(t.get("retry-after"))??zn(t.get("x-retry-after"));if(n!==void 0)return Math.min(Math.max(Math.trunc(n),1),86400)}function zn(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 Ln(e){let t=e instanceof F?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 F&&e.requestId?{requestId:e.requestId}:{}}}function yt(e,t,n){return Object.freeze({...e,status:t.status??0,...t.requestId===void 0?{}:{requestId:t.requestId},failure:n})}function jr(e){return e instanceof F?e.kind:"network"}function Jr(e,t,n){return new Promise((i,o)=>{if(t?.aborted){o(new F("aborted"));return}let r=n-Date.now();if(r<=0){o(new F("timeout"));return}let c=Math.min(e,r),u=()=>{clearTimeout(a),o(new F("aborted"));},a=setTimeout(()=>{t?.removeEventListener("abort",u),Date.now()>=n?o(new F("timeout")):i();},c);t?.addEventListener("abort",u,{once:true}),t?.aborted&&u();})}function At(e,t="",n=0,i={nodes:0}){if(i.nodes+=1,n>Mr||i.nodes>Fr)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=>At(o,"",n+1,i)):be(e)?Object.fromEntries(Object.entries(e).map(([o,r])=>[o,$r(o)?r:At(r,o,n+1,i)])):e}function $r(e){return e==="metadata"||e==="public_metadata"||e==="unsafe_metadata"||e==="private_metadata"||e==="publicMetadata"||e==="unsafeMetadata"||e==="privateMetadata"}function Gr(e,t){if(e==="/list-sessions"&&Array.isArray(t))return t.map(o=>be(o)?bt(o):o);if(!be(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-")?bt(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")&&be(i.session)&&(i={...i,session:bt(i.session)}),i}function bt(e){if(!Object.hasOwn(e,"token"))return e;let t={...e};return delete t.token,t}function be(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}var Wr=new Set(["__proto__","constructor","prototype"]);function m(e){(!e||typeof e!="object"||Array.isArray(e))&&f();let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null&&f(),e}function R(e){return typeof e!="string"&&f(),e}function P(e){return typeof e!="boolean"&&f(),e}function E(e){return (!(e instanceof Date)||Number.isNaN(e.getTime()))&&f(),e}function ie(e){return (!Array.isArray(e)||!e.every(t=>typeof t=="string"))&&f(),[...e]}function D(e,t){let n=e[t];return n==null||typeof n=="string"?n:f()}function Kn(e,t){let n=e[t];return n==null||typeof n=="boolean"?n:f()}function B(e){let t=m(e),n=t.email;return n!==null&&typeof n!="string"&&f(),{id:R(t.id),email:n,emailVerified:P(t.emailVerified),createdAt:E(t.createdAt),updatedAt:E(t.updatedAt),...q("phoneNumber",D(t,"phoneNumber")),...q("username",D(t,"username")),...q("displayUsername",D(t,"displayUsername")),...q("firstName",D(t,"firstName")),...q("lastName",D(t,"lastName")),...q("name",D(t,"name")),...q("image",D(t,"image")),...q("twoFactorEnabled",Kn(t,"twoFactorEnabled"))}}function Me(e){let t=m(e),n=t.membership;return {id:R(t.id),userId:R(t.userId),expiresAt:E(t.expiresAt),...q("activeOrganizationId",D(t,"activeOrganizationId")),...q("activeTeamId",D(t,"activeTeamId")),...q("membership",n==null?n:Yr(n)),...q("pendingMfaEnrollment",Kn(t,"pendingMfaEnrollment"))}}function f(){throw new TypeError("AuthOwl response does not match its runtime contract.")}function G(e,t=20,n=1e4){return (!e||typeof e!="object"||Array.isArray(e))&&f(),wt(e,t,n)}function wt(e,t=20,n=1e4){return Ot(e,0,{nodes:0},t,n)}function Yr(e){let t=m(e);return {role:R(t.role),...t.roles===void 0?{}:{roles:ie(t.roles)},permissions:ie(t.permissions),...t.teams===void 0?{}:{teams:ie(t.teams)}}}function Ot(e,t,n,i,o){if(n.nodes+=1,(t>i||n.nodes>o)&&f(),e===null||typeof e=="string"||typeof e=="boolean")return e;if(typeof e=="number")return Number.isFinite(e)||f(),e;if(Array.isArray(e))return e.map(u=>Ot(u,t+1,n,i,o));(!e||typeof e!="object")&&f();let r=Object.getPrototypeOf(e);r!==Object.prototype&&r!==null&&f();let c={};for(let[u,a]of Object.entries(e))Wr.has(u)&&f(),c[u]=Ot(a,t+1,n,i,o);return c}function q(e,t){return t===void 0?{}:{[e]:t}}function Vn({http:e,probe:t,tokens:n,channelName:i}){let o=new Set,r=null,c=null,u=null,a=null,h=null,s=null,l,p=w=>{S(w);};l={data:null,isPending:true,isRefetching:false,error:null,refetch:p};function y(w){l=w;for(let I of o)I();}async function b(w){return e.request("/get-session",{query:w?.query,decode:St})}function S(w){if(w?.query?.disableCookieCache===true)return g(w);if(a)return a;if(h)return h;let I=g(w).finally(()=>{h===I&&(h=null);});return h=I,I}function d(){if(a)return a;let w=g({query:{disableCookieCache:true}}).finally(()=>{a===w&&(a=null);});return a=w,w}async function g(w){u?.abort();let I=new AbortController;u=I,y({...l,isPending:l.data===null&&l.error===null,isRefetching:l.data!==null});let Q=n.beginRead(),ae=await e.request("/get-session",{query:w?.query,fetchOptions:{signal:I.signal},decode:St});if(u===I&&(u=null,y({data:ae.data,error:ae.error,isPending:false,isRefetching:false,refetch:p}),ae.error===null)){if(ae.data===null){Q.endIfDead();return}await A(Q);}}async function A(w){if(n.needsProbe()){if(!w.carriedToken){w.recordCookieVerdict(true);return}return s||k(w)}}function k(w){let I=t.request("/get-session",{query:{disableCookieCache:true},decode:St}).then(Q=>{s===I&&Q.error===null&&w.recordCookieVerdict(Q.data!==null);}).finally(()=>{s===I&&(s=null);});return s=I,I}function T(){r?.postMessage({type:"session-changed"});}function U(){if(typeof window>"u"||c)return;let w=()=>{S();},I=()=>{document.visibilityState==="visible"&&S();};window.addEventListener("focus",w),document.addEventListener("visibilitychange",I),typeof BroadcastChannel<"u"&&(r=new BroadcastChannel(i),r.addEventListener("message",w)),c=()=>{window.removeEventListener("focus",w),document.removeEventListener("visibilitychange",I),r?.close(),r=null,c=null;};}function K(w){return o.add(w),o.size===1&&(U(),S()),()=>{if(o.delete(w),o.size===0){let I=u;u=null,h=null,a=null,I?.abort(),c?.();}}}return n.measureWith(()=>{n.needsProbe()&&k(n.beginRead());}),{store:{subscribe:K,getSnapshot:()=>l,refresh:d},getSession:b,notifyMutation(){T(),s&&s.catch(()=>{}).then(()=>{!n.needsProbe()&&n.hasToken()&&T();}),o.size>0&&S({query:{disableCookieCache:true}});}}}function St(e){if(e===null)return null;let t=m(e);return (t.session===void 0||t.user===void 0)&&f(),{session:Me(t.session),user:B(t.user)}}Rt();function we(){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 Hn(e,t){return e.request("/user/metadata",{fetchOptions:t,decode:Bn})}async function qn(e,t,n){return e.request("/user/metadata",{method:"PATCH",body:{expected_version:t.expectedVersion,unsafe_metadata:t.unsafeMetadata},fetchOptions:n,decode:Bn})}function Bn(e){let t=m(e),n=G(t.public_metadata),i=G(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 Jn(e,t){let{post:n,mutation:i}=ne(e,t);return {getMetadata:o=>Hn(e,o),updateUnsafeMetadata:(o,r)=>qn(e,o,r),updateProfile:(o,r)=>i(n("/update-user",o,r,Se)),changeEmail:(o,r)=>i(n("/change-email",o,r,Se)),changePassword:(o,r)=>i(n("/change-password",o,r,Xr)),listSessions:o=>e.request("/list-sessions",{fetchOptions:o,decode:Qr}),revokeSession:({sessionId:o},r)=>i(n("/revoke-session",{sessionId:o},r,Se)),revokeOtherSessions:o=>i(n("/revoke-other-sessions",{},o,Se)),listSocialAccounts:async o=>{let r=await e.request("/list-accounts",{fetchOptions:o,decode:Zr});if(!r.data)return {data:null,error:r.error};let c=r.data.length>1;return {...r,data:r.data.filter(u=>u.providerId!=="credential").map(u=>({...u,canUnlink:c}))}},linkSocial:(o,r)=>n("/link-social",o,r,es),unlinkSocial:(o,r)=>i(n("/unlink-account",o,r,Se)),delete:(o={},r)=>i(n("/delete-user",o,r,ts))}}function Se(e){let t=m(e);return {status:P(t.status)}}function Xr(e){let t=m(e);return {user:B(t.user)}}function Qr(e){return Array.isArray(e)||f(),e.map(t=>{let n=m(t);return {id:R(n.id),userId:R(n.userId),createdAt:E(n.createdAt),updatedAt:E(n.updatedAt),expiresAt:E(n.expiresAt),...jn("ipAddress",D(n,"ipAddress")),...jn("userAgent",D(n,"userAgent"))}})}function Zr(e){return Array.isArray(e)||f(),e.map(t=>{let n=m(t);return {id:R(n.id),userId:R(n.userId),providerId:R(n.providerId),accountId:R(n.accountId),scopes:ie(n.scopes),createdAt:E(n.createdAt),updatedAt:E(n.updatedAt)}})}function es(e){let t=m(e);return {url:R(t.url),redirect:P(t.redirect)}}function ts(e){let t=m(e);return {success:P(t.success),message:R(t.message)}}function jn(e,t){return t===void 0?{}:{[e]:t}}function Fe(e,t){return !e||!t?false:e.permissions.includes(t)}function $n(e,t){return !e||!t?false:e.teams?.includes(t)??false}function Gn(e,t){return e?e.roles===void 0?e.role===t:e.roles.includes(t):false}function Ke(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&&!Gn(e,n)||i!==void 0&&!e.permissions.includes(i)||o!==void 0&&!$n(e,o))}function ns(e){return {has:t=>Ke(e,t),hasPermission:t=>Fe(e,t.permission)}}var is=new Set(["pending","accepted","rejected","canceled"]),kt=1e4;function Wn(e){let t=m(e);return t.recipientHint!==null&&t.recipientHint!=="new_user"&&f(),{recipientHint:t.recipientHint}}function le(e,t,n){let i=m(e),o={id:v(i.id),name:v(i.name),slug:v(i.slug),createdAt:E(i.createdAt),...Re("logo",D(i,"logo")),...Re("metadata",i.metadata===void 0?void 0:wt(i.metadata))};return J(o.id,t),J(o.slug,n),o}function Yn(e){return W(e,le)}function Tt(e,t,n){return e===null?null:(t===null&&f(),le(e,t,n))}function Xn(e,t,n){if(e===null)return null;let i=m(e),o=le(i,t,n);return {...o,members:W(i.members,r=>ui(r,o.id)),invitations:W(i.invitations,r=>Y(r,void 0,o.id))}}function It(e,t,n=false){let i=W(e,o=>ke(o));return n||Ie(i.map(o=>o.organizationId),t),i}function Qn(e,t){let n=W(e,i=>Pt(i));return Ie(n.map(i=>i.teamId),t),n}function Pt(e,t,n){let i=m(e),o={id:v(i.id),teamId:v(i.teamId),userId:v(i.userId),createdAt:E(i.createdAt)};return J(o.teamId,t),J(o.userId,n),o}function Zn(e,t,n){return e===null?null:(t===null&&f(),ke(e,t,n))}function ei(e,t){let n=m(e);return (!Number.isSafeInteger(n.total)||n.total<0)&&f(),{members:os(n.members,t),total:n.total}}function Y(e,t,n){let i=m(e),o=v(i.status);is.has(o)||f();let r={id:v(i.id),organizationId:v(i.organizationId),email:Te(i.email),role:v(i.role),status:o,inviterId:v(i.inviterId),expiresAt:E(i.expiresAt),createdAt:E(i.createdAt)};return J(r.id,t),J(r.organizationId,n),r}function ti(e,t){let n=W(e,i=>Y(i));return Ie(n.map(i=>i.organizationId),t),n}function ni(e){return W(e,t=>{let n=m(t);return {...Y(n),organizationName:Te(n.organizationName)}})}function ii(e,t){let n=m(e);return {...Y(n,t),organizationName:v(n.organizationName),organizationSlug:v(n.organizationSlug),inviterEmail:li(n.inviterEmail)}}function oi(e,t){let n=m(e),i=Y(n.invitation,t);return {invitation:i,member:de(n.member,void 0,i.organizationId)}}function ri(e,t){let n=m(e);return n.member!==null&&f(),{invitation:n.invitation===null?null:Y(n.invitation,t),member:null}}function si(e,t){return e===null?null:Y(e,t)}function ai(e,t,n){let i=m(e);return {member:de(i.member,n,t)}}function de(e,t,n){let i=m(e),o={id:v(i.id),organizationId:v(i.organizationId),userId:v(i.userId),role:v(i.role),createdAt:E(i.createdAt),...i.user===void 0?{}:{user:di(i.user)}};return J(o.id,t),J(o.organizationId,n),o}function ci(e,t){let n=W(e,i=>{let o=m(i);return {organizationId:v(o.organizationId),data:{role:v(o.role),...Re("permission",o.permission===void 0?void 0:rs(o.permission)),...Re("customPermissionKeys",o.customPermissionKeys===void 0?void 0:ie(o.customPermissionKeys))}}});return Ie(n.map(i=>i.organizationId),t),n.map(i=>i.data)}function ke(e,t,n){let i=m(e),o=i.updatedAt,r={id:v(i.id),name:Te(i.name),organizationId:v(i.organizationId),createdAt:E(i.createdAt),...o===void 0?{}:{updatedAt:E(o)}};return J(r.id,t),J(r.organizationId,n),r}function Et(e){let t=m(e);return {message:Te(t.message)}}function ui(e,t){let n=m(e);return {...de(n,void 0,t),user:di(n.user)}}function os(e,t){let n=W(e,i=>ui(i));return Ie(n.map(i=>i.organizationId),t),n}function rs(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>kt||!Array.isArray(o))&&f(),n[i]=o.map(r=>v(r));return n}function v(e){let t=R(e);return (t.length===0||t.length>kt)&&f(),t}function Te(e){if(e==null)return "";let t=R(e);return t.length>kt&&f(),t}function li(e){return e===null?null:v(e)}function J(e,t){t!==void 0&&e!==t&&f();}function Ie(e,t){let n=t??e[0];n!==void 0&&e.some(i=>i!==n)&&f();}function di(e){let t=m(e);return {id:v(t.id),name:Te(t.name),email:li(t.email),...Re("image",D(t,"image"))}}function W(e,t){return Array.isArray(e)||f(),e.map(n=>t(n))}function Re(e,t){return t===void 0?{}:{[e]:t}}function pi(e,t,n=()=>null){let{post:i,mutation:o}=ne(e,t),r=new Set,c=()=>{for(let s of r)try{s();}catch{}},u=new Map,a=(s,l,p,y)=>{if(p)return e.request(s,{query:l,fetchOptions:p,decode:y});let b=`${s}\0${JSON.stringify(l??null)}`,S=u.get(b);if(S)return S;let d=e.request(s,{query:l,decode:y}).finally(()=>{u.delete(b);});return u.set(b,d),d},h=async s=>{let l=await o(s).finally(()=>u.clear());return l.error===null&&c(),l};return {subscribe(s){return r.add(s),()=>r.delete(s)},create:(s,l)=>h(i("/organization/create",s,l,le)),list:s=>a("/organization/list",void 0,s,Yn),get:(s={},l)=>a("/organization/get-full-organization",{organizationId:s.organizationId,organizationSlug:s.organizationSlug,membersLimit:s.membersLimit},l,p=>Xn(p,s.organizationId,s.organizationSlug)),setActive:(s,l)=>h(i("/organization/set-active",s,l,p=>Tt(p,s.organizationId,s.organizationSlug))),createTeam:(s,l)=>h(i("/organization/create-team",s,l,p=>ke(p,void 0,s.organizationId))),listTeams:(s={},l)=>a("/organization/list-teams",{organizationId:s.organizationId},l,p=>It(p,s.organizationId)),updateTeam:(s,l)=>h(i("/organization/update-team",s,l,p=>ke(p,s.teamId,s.data.organizationId))),removeTeam:(s,l)=>h(i("/organization/remove-team",s,l,Et)),listUserTeams:s=>a("/organization/list-user-teams",void 0,s,l=>It(l,void 0,true)),listTeamMembers:(s={},l)=>a("/organization/list-team-members",{teamId:s.teamId},l,p=>Qn(p,s.teamId)),addTeamMember:(s,l)=>h(i("/organization/add-team-member",s,l,p=>Pt(p,s.teamId,s.userId))),removeTeamMember:(s,l)=>h(i("/organization/remove-team-member",s,l,Et)),setActiveTeam:(s,l)=>h(i("/organization/set-active-team",s,l,p=>Zn(p,s.teamId))),update:(s,l)=>h(i("/organization/update",s,l,p=>Tt(p,s.organizationId))),delete:(s,l)=>h(i("/organization/delete",s,l,p=>le(p,s.organizationId))),listMembers:(s={},l)=>a("/organization/list-members",{organizationId:s.organizationId,organizationSlug:s.organizationSlug,limit:s.limit,offset:s.offset,sortBy:s.sortBy,sortDirection:s.sortDirection,filterField:s.filterField,filterValue:s.filterValue,filterOperator:s.filterOperator},l,p=>ei(p,s.organizationId)),inviteMember:(s,l)=>h(i("/organization/invite-member",s,l,p=>Y(p,void 0,s.organizationId))),listInvitations:(s={},l)=>a("/organization/list-invitations",{organizationId:s.organizationId},l,p=>ti(p,s.organizationId)),listUserInvitations:s=>a("/organization/list-user-invitations",void 0,s,ni),getInvitation:(s,l)=>a("/organization/get-invitation",{id:s.id},l,p=>ii(p,s.id)),getInvitationRecipientHint:(s,l)=>a("/organization/invitation-recipient-hint",{invitationId:s.invitationId},l,Wn),acceptInvitation:(s,l)=>h(i("/organization/accept-invitation",s,l,p=>oi(p,s.invitationId))),rejectInvitation:(s,l)=>h(i("/organization/reject-invitation",s,l,p=>ri(p,s.invitationId))),cancelInvitation:(s,l)=>h(i("/organization/cancel-invitation",s,l,p=>si(p,s.invitationId))),removeMember:(s,l)=>h(i("/organization/remove-member",s,l,p=>ai(p,s.organizationId,s.memberIdOrEmail.includes("@")?void 0:s.memberIdOrEmail))),updateMemberRole:(s,l)=>h(i("/organization/update-member-role",s,l,p=>de(p,s.memberId,s.organizationId))),leave:(s,l)=>h(i("/organization/leave",s,l,p=>de(p,void 0,s.organizationId))),listRoles:(s={},l)=>a("/organization/list-roles",{organizationId:s.organizationId},l,p=>ci(p,s.organizationId)),has:s=>Ke(n(),s),hasPermission:s=>Fe(n(),s.permission)}}function qe(e){return {listConsentPreferences:t=>e.request("/privacy/consent-decisions",{fetchOptions:t,decode:ss}),recordConsent:(t,n)=>e.request("/privacy/consent-decisions",{method:"POST",body:{...t,correlationId:t.correlationId??we()},fetchOptions:n,decode:cs}),listRightsRequests:t=>e.request("/privacy/rights",{fetchOptions:t,decode:us}),createRightsRequest:(t,n)=>e.request("/privacy/rights",{method:"POST",body:t,fetchOptions:n,decode:ls})}}function ss(e){let t=m(e);return Array.isArray(t.preferences)||f(),{preferences:t.preferences.map(as)}}function as(e){let t=m(e);return {purposeId:R(t.purposeId),purposeVersionId:R(t.purposeVersionId),code:R(t.code),state:ds(t.state,["granted","refused","withdrawn"]),updatedAt:Ve(t.updatedAt),decidedAt:Ve(t.decidedAt)}}function cs(e){let t=m(e);return t.recorded!==true&&f(),{recorded:true,decision:Pe(t.decision,["granted","refused","withdrawn"]),decidedAt:He(t.decidedAt)}}function us(e){let t=m(e);return Array.isArray(t.requests)||f(),{requests:t.requests.map(fi)}}function ls(e){return {request:fi(m(e).request)}}function fi(e){let t=m(e);return {id:R(t.id),rightType:Pe(t.rightType,["access","correction","portability","erasure","restriction","objection","consent_withdrawal"]),state:Pe(t.state,["received","identity_pending","in_progress","restricted","completed","denied","withdrawn"]),locale:Pe(t.locale,["en","ar"]),receivedAt:He(t.receivedAt),acknowledgedAt:Ve(t.acknowledgedAt),fulfilmentDeadline:He(t.fulfilmentDeadline),completedAt:Ve(t.completedAt)}}function Ve(e){return e===null?null:He(e)}function He(e){if(e instanceof Date)return E(e);typeof e!="string"&&f();let t=new Date(e);return Number.isNaN(t.getTime())&&f(),t}function Pe(e,t){return (typeof e!="string"||!t.includes(e))&&f(),e}function ds(e,t){return e===null?null:Pe(e,t)}var gi=4096,ps=4096,fs=100,gs=256,ms=16,hs=64,ys=12;function Ct(e){let t=m(e);return t.twoFactorRedirect===true?((t.user!==void 0||t.redirect!==void 0||t.url!==void 0)&&f(),{twoFactorRedirect:true,...t.twoFactorMethods===void 0?{}:{twoFactorMethods:Di(t.twoFactorMethods,ms,hs)}}):(t.twoFactorRedirect!==void 0&&f(),{redirect:P(t.redirect),...Ss(t,"url"),user:B(t.user)})}function mi(e){let t=m(e);return {user:B(t.user)}}function hi(e){let t=m(e);return {sessionCreated:P(t.sessionCreated),user:B(t.user)}}function yi(e,t){let n=m(e),i=P(n.redirect);n.user===null&&f();let o=n.user!==void 0&&n.user!==null,r=n.url!==void 0&&n.url!==null;return i?((o||!r)&&f(),{redirect:true,url:vt(n.url,t)}):(o===r&&f(),o?{redirect:false,user:B(n.user)}:{redirect:false,url:vt(n.url,t)})}function bi(e,t){let n=m(e);return (n.redirect!==true||n.user!==void 0)&&f(),{redirect:true,url:vt(n.url,t)}}function Ai(e){return {status:P(m(e).status)}}function Oi(e){return {success:P(m(e).success)}}function wi(e){return m(e).status!=="pending"&&f(),{status:"pending"}}function Si(e){let t=m(e);if(t.kind==="authowl_turnstile")return {kind:"authowl_turnstile"};t.kind!=="akedly_shield_v1_2"&&f();let n=m(t.turnstile),i=n.siteKey===null?null:R(n.siteKey);return {kind:"akedly_shield_v1_2",connectionId:R(t.connectionId),challenge:R(t.challenge),difficulty:bs(t.difficulty),challengeToken:R(t.challengeToken),challengeRequired:P(t.challengeRequired),turnstile:{required:P(n.required),siteKey:i}}}function bs(e){return (!Number.isSafeInteger(e)||Number(e)<0||Number(e)>ys)&&f(),Number(e)}function Ri(e){let t=m(e);return (t.status!==true||t.sessionCreated!==true)&&f(),{status:true,sessionCreated:true,user:As(t.user)}}function xt(e){return {status:P(m(e).status)}}function ki(e){return {status:P(m(e).status)}}function Ti(e){let t=m(e);return {status:P(t.status),user:B(t.user)}}function Ii(e){return {success:P(m(e).success)}}function Pi(e){let t=m(e);return {totpURI:ws(t.totpURI),backupCodes:xi(t.backupCodes)}}function Ei(e){return {status:P(m(e).status)}}function Be(e){return m(e).status!==true&&f(),{status:true}}function vi(e){return {status:P(m(e).status)}}function Ci(e){let t=m(e);return t.status!==void 0&&t.status!==true&&f(),{backupCodes:xi(t.backupCodes)}}function As(e){let t=m(e);return {id:pe(t.id,512),...Rs(t,"name",1024),phoneNumber:pe(t.phoneNumber,64),phoneNumberVerified:P(t.phoneNumberVerified),...t.createdAt===void 0?{}:{createdAt:E(t.createdAt)},...t.updatedAt===void 0?{}:{updatedAt:E(t.updatedAt)}}}function vt(e,t){let n=pe(e,gi);/[\u0000-\u0020\u007f]/u.test(n)&&f();let i;try{i=new URL(n);}catch{return f()}return (i.username||i.password)&&f(),i.protocol==="https:"||t&&i.protocol==="http:"&&Os(i.hostname)?i.href:f()}function Os(e){let t=e.toLowerCase();return t==="localhost"||t==="127.0.0.1"||t==="[::1]"}function ws(e){let t=pe(e,ps),n;try{n=new URL(t);}catch{return f()}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))&&f(),t}function xi(e){return Di(e,fs,gs)}function Di(e,t,n){(!Array.isArray(e)||e.length===0||e.length>t)&&f();let i=e.map(o=>pe(o,n));return i.some(o=>o.trim().length===0)&&f(),new Set(i).size!==i.length&&f(),i}function pe(e,t){let n=R(e);return (n.length===0||n.length>t)&&f(),n}function Ss(e,t){let n=e[t];return n==null?{}:{[t]:pe(n,gi)}}function Rs(e,t,n){let i=D(e,t);return i===void 0?{}:(i!==null&&i.length>n&&f(),{[t]:i})}var _i=new Set([1564,8206,8207,8234,8235,8236,8237,8238,8294,8295,8296,8297]),je=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 Je(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||Ni(n,i)||Ui(i)||_i.has(i))return {valid:false}}let t=ks(e);return Dt(t)?{valid:true,value:t}:{valid:false}}function Dt(e){let t=0,n,i;for(let o of e){if(t+=1,t>256)return false;let r=o.codePointAt(0);if(r===void 0||Ni(o,r)||Ui(r)||_i.has(r))return false;n??=r,i=r;}return t>0&&n!==void 0&&i!==void 0&&!je.has(n)&&!je.has(i)}function $e(){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 ks(e){let t=0,n=e.length;for(;t<n;){let i=e.codePointAt(t);if(i===void 0||!je.has(i))break;t+=i>65535?2:1;}for(;n>t;){let i=e.codePointAt(n-1);if(i===void 0)break;let r=i>=56320&&i<=57343?n-2:n-1,c=e.codePointAt(r);if(c===void 0||!je.has(c))break;n=r;}return e.slice(t,n)}function Ui(e){return e>=0&&e<=31||e>=127&&e<=159}function Ni(e,t){return e.length===1&&t>=55296&&t<=57343}var Mi=12,Fi=5e3,Ts=8,Is=1e3,Ps=16,zi=512,Ki=100,Vi=8192,Es=32768,_t=1024,Li=256,Nt=64,vs=6e5,Cs=/^[A-Za-z0-9_-]+$/u,xs=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u,Ds=/[\u0000-\u001f\u007f-\u009f\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/u,_s=/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$/u,Us=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu,Hi=new Set(["discouraged","preferred","required"]),Ns=new Set(["singleDevice","multiDevice"]),qi=new Set(["ble","cable","hybrid","internal","nfc","smart-card","usb"]),Bi=new Set(["hybrid","security-key","client-device"]),zs=new Set(["none","indirect","direct","enterprise"]),Ls=new Set(["fido-u2f","packed","android-safetynet","android-key","tpm","apple","none"]),Ms=new Set(["platform","cross-platform"]),Fs=new Set(["discouraged","preferred","required"]),Ks=new Set([-8,-7,-257]);function ji(e){let t=G(e,Mi,Fi);return {challenge:to(t.challenge),...z("timeout",Zi(t.timeout)),...z("rpId",no(t.rpId)),...z("allowCredentials",Qi(t.allowCredentials)),...z("userVerification",Ee(t.userVerification,Hi)),...z("hints",Ge(t.hints,Bi)),...z("extensions",eo(t.extensions))}}function Ji(e){let t=G(e,Mi,Fi);return {challenge:to(t.challenge),rp:Vs(t.rp),user:Hs(t.user),pubKeyCredParams:qs(t.pubKeyCredParams),...z("timeout",Zi(t.timeout)),...z("excludeCredentials",Qi(t.excludeCredentials)),...z("authenticatorSelection",Bs(t.authenticatorSelection)),...z("attestation",Ee(t.attestation,zs)),...z("attestationFormats",Ge(t.attestationFormats,Ls)),...z("hints",Ge(t.hints,Bi)),...z("extensions",eo(t.extensions))}}function $i(e){let t=m(e),n=Me(t.session),i=B(t.user);return n.userId!==i.id&&f(),{session:n,user:i}}function zt(e){let t=m(e),n=t.counter;(!Number.isSafeInteger(n)||n<0)&&f();let i=Lt(t.deviceType,Ns),o=P(t.backedUp);return o&&i!=="multiDevice"&&f(),{id:fe(t.id,Li),...$s(t),publicKey:js(t.publicKey,Es),userId:fe(t.userId,Li),credentialID:Ye(t.credentialID,Vi),counter:n,deviceType:i,backedUp:o,...Gs(t),createdAt:E(t.createdAt),...Ws(t)}}function Gi(e,t,n){let i=zt(e);return (i.credentialID!==t||(n===void 0?i.name!==void 0&&i.name!==null:i.name!==n))&&f(),i}function Wi(e){(!Array.isArray(e)||e.length>Ki)&&f();let t=e.map(zt);return We(t.map(n=>n.id)),We(t.map(n=>n.credentialID)),t.length>1&&t.some(n=>n.userId!==t[0]?.userId)&&f(),t}function Yi(e,t,n){let i=m(e),o=zt(i.passkey);return (o.id!==t||o.name!==n)&&f(),{passkey:o}}function Xi(e){return m(e).status!==true&&f(),{status:true}}function Vs(e){let t=m(e);return {name:Ut(t.name,_t),...z("id",no(t.id))}}function Hs(e){let t=m(e);return {id:Ye(t.id,128,1,64),name:Ut(t.name,_t),displayName:Ut(t.displayName,_t)}}function qs(e){(!Array.isArray(e)||e.length===0||e.length>Nt)&&f();let t=e.map(n=>{let i=m(n);return (i.type!=="public-key"||!Number.isSafeInteger(i.alg)||!Ks.has(i.alg))&&f(),{type:"public-key",alg:i.alg}});return Ys(t.map(n=>n.alg)),t}function Qi(e){if(e===void 0)return;(!Array.isArray(e)||e.length>Ki)&&f();let t=e.map(n=>{let i=m(n);return i.type!=="public-key"&&f(),{type:"public-key",id:Ye(i.id,Vi),...z("transports",Ge(i.transports,qi))}});return We(t.map(n=>n.id)),t}function Bs(e){if(e===void 0)return;let t=m(e);t.requireResidentKey!==void 0&&typeof t.requireResidentKey!="boolean"&&f();let n=Ee(t.residentKey,Fs);return t.requireResidentKey!==void 0&&n!==void 0&&t.requireResidentKey!==(n==="required")&&f(),{...z("authenticatorAttachment",Ee(t.authenticatorAttachment,Ms)),...z("residentKey",n),...z("requireResidentKey",t.requireResidentKey),...z("userVerification",Ee(t.userVerification,Hi))}}function Zi(e){return e!==void 0&&(typeof e!="number"||!Number.isFinite(e)||e<0||e>vs)&&f(),e}function eo(e){return e===void 0?void 0:G(e,Ts,Is)}function Ge(e,t){if(e===void 0)return;(!Array.isArray(e)||e.length>Nt)&&f();let n=e.map(i=>Lt(i,t));return We(n),n}function Ee(e,t){if(e!==void 0)return Lt(e,t)}function to(e){return Ye(e,Math.ceil(zi*4/3),Ps,zi)}function Ye(e,t,n=1,i=Number.POSITIVE_INFINITY){let o=fe(e,t),r=o.length%4,c=Js(o.at(-1)??""),u=Math.floor(o.length*3/4);return (!Cs.test(o)||r===1||r===2&&(c&15)!==0||r===3&&(c&3)!==0||u<n||u>i)&&f(),o}function fe(e,t){let n=R(e);return (n.length===0||n.length>t)&&f(),n}function Ut(e,t){let n=fe(e,t);return Ds.test(n)&&f(),n}function no(e){if(e===void 0)return;let t=fe(e,253);return t!=="localhost"&&(t.endsWith(".")||!t.includes(".")||t.split(".").some(n=>!_s.test(n)))&&f(),t}function js(e,t){let n=fe(e,t),i=n.endsWith("=="),o=!i&&n.endsWith("="),r=n.at(i?-3:o?-2:-1)??"",c=io(r);return (n.length%4!==0||!xs.test(n)||i&&(c&15)!==0||o&&(c&3)!==0)&&f(),n}function Js(e){return io(e,true)}function io(e,t=false){return (t?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").indexOf(e)}function $s(e){let t=D(e,"name");return t===void 0?{}:(t!==null&&!Dt(t)&&f(),{name:t})}function Gs(e){let t=D(e,"transports");if(t==null||t==="")return t===void 0?{}:{transports:t};let n=t.split(",");return (n.length>Nt||n.some(i=>!qi.has(i))||new Set(n).size!==n.length)&&f(),{transports:t}}function Ws(e){let t=D(e,"aaguid");return t==null?t===void 0?{}:{aaguid:null}:(Us.test(t)||f(),{aaguid:t})}function Lt(e,t){let n=R(e);return t.has(n)||f(),n}function z(e,t){return t===void 0?{}:{[e]:t}}function We(e){new Set(e).size!==e.length&&f();}function Ys(e){new Set(e).size!==e.length&&f();}function ra(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 uo=new Map;function sa(e,t,n){let i=uo.get(n);if(!i){let o=new URLSearchParams(window.location.hash.slice(1)).get("authowl_code");if(!o)return;i=Promise.resolve().then(()=>(Qe(),Xe)).then(r=>r.completeCrossSiteSignIn(e,t,o)),uo.set(n,i);}return i}function lo(e){return !Oe()||e.idToken||e.disableRedirect?"legacy":"first-party"}function fo(e,t=()=>{},n=aa){let i=Ae(e),o=e.session.tokens,r=Oe()?sa(i,e.session,e.decoded.projectId):void 0,c=ra(i,r),u=Vn({http:c,probe:Ae({...e,fetch:e.session.probe}),tokens:o,channelName:`authowl:${e.decoded.projectId}`});e.session.integration?.connect({authenticatedFetch:e.fetch,sessionStore:u.store,subscribeLifecycle:d=>o.subscribeLifecycle(d)});let a=()=>{u.notifyMutation(),t();},h=async()=>{await e.session.integration?.sessionEstablished(),a();},s=n(c,h),{post:l,mutation:p}=ne(c,a),{mutation:y}=ne(c,h),b=e.decoded.env==="test",S=d=>e.session.prepareSession({remember:d?.rememberMe!==false});return {sessionStore:u.store,getSession:u.getSession,account:Jn(c,a),organization:pi(c,a,()=>u.store.getSnapshot().data?.session.membership??null),privacy:qe(c),signIn:{email:async(d,g)=>(await S(d),y(l("/sign-in/email",d,g,Ct),A=>!("twoFactorRedirect"in A))),username:async(d,g)=>(await S(d),y(l("/sign-in/username",d,g,Ct),A=>!("twoFactorRedirect"in A))),social:async(d,g)=>{if(await S(),lo(d)==="first-party"){let{beginCrossSiteSignIn:k}=await Promise.resolve().then(()=>(Qe(),Xe)),T=await k(e,{kind:"social",provider:d.provider,callbackURL:d.callbackURL,errorCallbackURL:d.errorCallbackURL,newUserCallbackURL:d.newUserCallbackURL,scopes:d.scopes,loginHint:d.loginHint,requestSignUp:d.requestSignUp});if(T)return window.location.assign(T),{data:{redirect:true,url:T},error:null}}let A=await y(l("/sign-in/social",d,g,k=>yi(k,b)),k=>"user"in k);return A.error!==null||A.data===null||"url"in A.data&&A.data.redirect&&!d.disableRedirect&&typeof window<"u"&&window.location.assign(A.data.url),A},sso:async(d,g)=>{if(lo(d)==="first-party"){let{beginCrossSiteSignIn:k}=await Promise.resolve().then(()=>(Qe(),Xe)),T=await k(e,{kind:"sso",email:d.email,providerId:d.providerId,domain:d.domain,organizationSlug:d.organizationSlug,callbackURL:d.callbackURL,errorCallbackURL:d.errorCallbackURL,newUserCallbackURL:d.newUserCallbackURL});if(T)return window.location.assign(T),{data:{url:T,redirect:true},error:null}}let A=await l("/sign-in/sso",d,g,k=>bi(k,b));return A.error!==null||A.data===null||typeof window<"u"&&window.location.assign(A.data.url),A},magicLink:(d,g)=>l("/sign-in/magic-link",d,g,Ai),emailOtp:async(d,g)=>(await S(),y(l("/sign-in/email-otp",d,g,mi))),passkey:async(d,g)=>(await S(),s.signIn(d,g))},signUp:{email:async(d,g)=>(await S(),y(l("/sign-up/email",d,g,hi),A=>A.sessionCreated))},emailOtp:{sendVerificationOtp:(d,g)=>l("/email-otp/send-verification-otp",d,g,Oi),verifyEmail:async(d,g)=>(await S(),y(l("/email-otp/verify-email",d,g,Ti)))},phoneOtp:{prepare:d=>l("/phone-otp/challenge",{},d,Si),start:(d,g)=>l("/phone-otp/start",{...d,idempotencyKey:d.idempotencyKey??we()},g,wi),verify:async(d,g)=>(await S(),y(l("/phone-otp/verify",d,g,Ri)))},requestPasswordReset:(d,g)=>l("/request-password-reset",d,g,xt),resetPassword:(d,g)=>l("/reset-password",d,g,xt),sendVerificationEmail:(d,g)=>l("/send-verification-email",d,g,ki),passkey:{addPasskey:(d,g)=>s.add(d,g),listUserPasskeys:()=>c.request("/passkey/list-user-passkeys",{decode:Wi}),updatePasskey:async(d,g)=>{let A=Je(d.name);if(!A.valid||A.value===void 0)return $e();let k=A.value;return l("/passkey/update-passkey",{...d,name:k},g,T=>Yi(T,d.id,k))},deletePasskey:(d,g)=>l("/passkey/delete-passkey",d,g,Xi)},twoFactor:{enable:(d,g)=>l("/two-factor/enable",d,g,Pi),disable:(d,g)=>p(l("/two-factor/disable",d,g,Ei),A=>A.status),verifyTotp:(d,g)=>y(l("/two-factor/verify-totp",d,g,Be)),verifyBackupCode:(d,g)=>y(l("/two-factor/verify-backup-code",d,g,Be)),sendOtp:(d={},g)=>l("/two-factor/send-otp",d,g,vi),verifyOtp:(d,g)=>y(l("/two-factor/verify-otp",d,g,Be)),generateBackupCodes:(d,g)=>l("/two-factor/generate-backup-codes",d,g,Ci)},signOut:d=>p(c.request("/sign-out",{method:"POST",body:{},fetchOptions:d,decode:Ii}).then(g=>(o.endSession(),e.session.integration?.sessionEnded().then(()=>g)??g)),g=>g.success)}}function aa(){return {signIn:()=>po(),add:()=>po()}}function po(){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 Ao(e,t,n){let i=new Map;return {async signIn(o={},r){let c=await e.request("/passkey/generate-authenticate-options");if(!c.data)return ho(c.error);let u;try{u=ji(c.data);}catch{return go()}let a;try{a=await n.authenticate({optionsJSON:u,useBrowserAutofill:o.autoFill});}catch(y){return yo(n,y,"AUTH_CANCELLED","Passkey authentication was cancelled.")}if(!ca(a))return mo();let{clientExtensionResults:h,...s}=a,l=i.get(a.id);if(l)return l;let p=(async()=>{let y=await e.request("/passkey/verify-authentication",{method:"POST",body:{response:s},fetchOptions:r,decode:$i});return y.data&&await t(),y})();i.set(a.id,p);try{return await p}finally{i.get(a.id)===p&&i.delete(a.id);}},async add(o={},r){let c=Je(o.name);if(!c.valid)return $e();let u=await e.request("/passkey/generate-register-options",{query:{name:c.value,authenticatorAttachment:o.authenticatorAttachment}});if(!u.data)return ho(u.error);let a;try{a=Ji(u.data);}catch{return go()}let h;try{h=await n.register({optionsJSON:a});}catch(y){return yo(n,y,"REGISTRATION_CANCELLED","Passkey registration was cancelled.")}if(!ua(h))return mo();let{clientExtensionResults:s,...l}=h,p=await e.request("/passkey/verify-registration",{method:"POST",body:{response:l,name:c.value},fetchOptions:r,decode:y=>Gi(y,h.id,c.value)});return p.data&&t(),p}}}function go(){return {data:null,error:{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned invalid WebAuthn options."}}}function mo(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_WEBAUTHN_RESPONSE",message:"The platform returned an invalid passkey response."}}}function Oo(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 ca(e){if(!Oo(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 ua(e){if(!Oo(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.attestationObject=="string"}function ho(e){return {data:null,error:e??{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned no WebAuthn options."}}}function yo(e,t,n,i){let o=da(t,"page does not have focus"),r=e.errorCode?.(t),c=r!==void 0?r==="ERROR_CEREMONY_ABORTED":bo(t)==="AbortError",u=n!=="AUTH_CANCELLED",a=la(r,bo(t),u);return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:o?"PASSKEY_PAGE_NOT_FOCUSED":c?n:r??"PASSKEY_BROWSER_ERROR",message:o?"Keep this page focused while completing the passkey prompt.":c?i:a}}}function la(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 bo(e){return e&&typeof e=="object"&&"name"in e&&typeof e.name=="string"?e.name:void 0}function da(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}function j(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 oe(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),n=(4-t.length%4)%4,i=t.padEnd(t.length+n,"="),o=atob(i),r=new ArrayBuffer(o.length),c=new Uint8Array(r);for(let u=0;u<o.length;u++)c[u]=o.charCodeAt(u);return r}function re(){return pa.stubThis(globalThis?.PublicKeyCredential!==void 0&&typeof globalThis.PublicKeyCredential=="function")}var pa={stubThis:e=>e};function Ze(e){let{id:t}=e;return {...e,id:oe(t),transports:e.transports}}function et(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 x=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 wo({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 x({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 x({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 x({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 x({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 x({message:"The authenticator was previously registered",code:"ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED",cause:e});if(e.name==="NotAllowedError")return new x({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 x({message:'No entry in pubKeyCredParams was of type "public-key"',code:"ERROR_MALFORMED_PUBKEYCREDPARAMS",cause:e}):new x({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(et(i)){if(n.rp.id!==i)return new x({message:`The RP ID "${n.rp.id}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new x({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 x({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 x({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 Kt=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;}}},tt=new Kt;var fa=["cross-platform","platform"];function nt(e){if(e&&!(fa.indexOf(e)<0))return e}async function So(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(!re())throw new Error("WebAuthn is not supported in this browser");let i={...t,challenge:oe(t.challenge),user:{...t.user,id:oe(t.user.id)},excludeCredentials:t.excludeCredentials?.map(Ze)},o={};n&&(o.mediation="conditional"),o.publicKey=i,o.signal=tt.createNewAbortSignal();let r;try{r=await navigator.credentials.create(o);}catch(b){throw wo({error:b,options:o})}if(!r)throw new Error("Registration was not completed");let{id:c,rawId:u,response:a,type:h}=r,s;typeof a.getTransports=="function"&&(s=a.getTransports());let l;if(typeof a.getPublicKeyAlgorithm=="function")try{l=a.getPublicKeyAlgorithm();}catch(b){Vt("getPublicKeyAlgorithm()",b);}let p;if(typeof a.getPublicKey=="function")try{let b=a.getPublicKey();b!==null&&(p=j(b));}catch(b){Vt("getPublicKey()",b);}let y;if(typeof a.getAuthenticatorData=="function")try{y=j(a.getAuthenticatorData());}catch(b){Vt("getAuthenticatorData()",b);}return {id:c,rawId:j(u),response:{attestationObject:j(a.attestationObject),clientDataJSON:j(a.clientDataJSON),transports:s,publicKeyAlgorithm:l,publicKey:p,authenticatorData:y},type:h,clientExtensionResults:r.getClientExtensionResults(),authenticatorAttachment:nt(r.authenticatorAttachment)}}function Vt(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 Ro(){if(!re())return Ht.stubThis(new Promise(t=>t(false)));let e=globalThis.PublicKeyCredential;return e?.isConditionalMediationAvailable===void 0?Ht.stubThis(new Promise(t=>t(false))):Ht.stubThis(e.isConditionalMediationAvailable())}var Ht={stubThis:e=>e};function ko({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 x({message:"Authentication ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else {if(e.name==="NotAllowedError")return new x({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="SecurityError"){let i=globalThis.location.hostname;if(et(i)){if(n.rpId!==i)return new x({message:`The RP ID "${n.rpId}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new x({message:`${globalThis.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="UnknownError")return new x({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 To(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(!re())throw new Error("WebAuthn is not supported in this browser");let o;t.allowCredentials?.length!==0&&(o=t.allowCredentials?.map(Ze));let r={...t,challenge:oe(t.challenge),allowCredentials:o},c={};if(n){if(!await Ro())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');c.mediation="conditional",r.allowCredentials=[];}c.publicKey=r,c.signal=tt.createNewAbortSignal();let u;try{u=await navigator.credentials.get(c);}catch(y){throw ko({error:y,options:c})}if(!u)throw new Error("Authentication was not completed");let{id:a,rawId:h,response:s,type:l}=u,p;return s.userHandle&&(p=j(s.userHandle)),{id:a,rawId:j(h),response:{authenticatorData:j(s.authenticatorData),clientDataJSON:j(s.clientDataJSON),signature:j(s.signature),userHandle:p},type:l,clientExtensionResults:u.getClientExtensionResults(),authenticatorAttachment:nt(u.authenticatorAttachment)}}var Io={authenticate:e=>To(e),register:e=>So(e),errorCode:e=>e instanceof x?e.code:void 0};function Eo(e){return `${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/consent`}async function qt(e){let t=await $(e,Eo(e),{init:{method:"GET",credentials:"include"},maxResponseBytes:65536,decode:ga});return t.response.status===401?{required:false}:ee(t,"consent status")}async function Bt(e,t){if(!Number.isSafeInteger(t)||t<1)throw new TypeError("Consent version must be a positive integer.");return ee(await $(e,Eo(e),{init:{method:"POST",headers:{"content-type":"application/json"},credentials:"include",body:JSON.stringify({version:t})},maxResponseBytes:64*1024,decode:ma}),"consent accept")}function ga(e){let t=m(e),n=P(t.required),i=ha(t.needsConsent),o=vo(t.version),r=Po(t.termsUrl),c=Po(t.privacyUrl);return {required:n,...i===void 0?{}:{needsConsent:i},...o===void 0?{}:{version:o},...r===void 0?{}:{termsUrl:r},...c===void 0?{}:{privacyUrl:c}}}function ma(e){let t=m(e),n=vo(t.version);return {ok:P(t.ok),...n===void 0?{}:{version:n}}}function ha(e){if(e===void 0||typeof e=="boolean")return e;throw new TypeError("Invalid consent response.")}function vo(e){if(e===void 0||Number.isSafeInteger(e)&&e>=1)return e;throw new TypeError("Invalid consent response.")}function Po(e){if(e===void 0||typeof e=="string"&&e.length<=4096)return e;throw new TypeError("Invalid consent response.")}var ya=30;function ba(e){return typeof e?.exp=="number"?e.exp:null}function Aa(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 jt(e){let t=new Map;async function n(r={}){let c=r.template===void 0?null:r.template.trim().toLowerCase();if(c==="")throw new TypeError("Template missing");let u=c??"",a=t.get(u);a||(a={activeKey:null,cachedByKey:new Map,inflight:null,sequence:0},t.set(u,a));let h=r.forceRefresh===true;if(!h){let b=a.activeKey?a.cachedByKey.get(a.activeKey):null;if(b&&b.exp-Date.now()/1e3>ya)return b.token;if(a.inflight)return a.inflight}let s=++a.sequence,l=()=>t.get(u)===a&&a.sequence===s,p=(async()=>{let b=c?`${e.projectBaseURL}/token/${encodeURIComponent(c)}`:`${e.projectBaseURL}/token`,S=await $(e,b,{init:{method:"GET",credentials:"include"},maxResponseBytes:64*1024,decode:U=>Oa(U,c!==null)});if(S.response.status===401)return l()&&i(),null;let d=ee(S,"token"),g=d.policyVersion,A=d.token,k=Aa(A),T=ba(k);if(l())if(T!==null){let U=typeof k?.sub=="string"?k.sub:null,K=typeof k?.org_id=="string"?k.org_id:null;if(!c||U){let w=JSON.stringify([e.projectBaseURL,U,K,c,g]);a.cachedByKey.clear(),a.cachedByKey.set(w,{token:A,exp:T}),a.activeKey=w;}else o(a);}else o(a);return A})();if(h)return p;let y=p.finally(()=>{a.inflight===y&&(a.inflight=null);});return a.inflight=y,y}function i(){t.clear();}function o(r){r.cachedByKey.clear(),r.activeKey=null;}return {getToken:n,clear:i}}function Oa(e,t){let n=m(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=m(n.template);if(!Number.isSafeInteger(o.policyVersion)||o.policyVersion<1)throw new TypeError("Invalid token response.");return {token:i,policyVersion:o.policyVersion}}function wa(e){let t=jt(e),n=fo(e,t.clear,(u,a)=>Ao(u,a,Io)),i=Ae(e,`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}`),o=qe(i),r=u=>(...a)=>(t.clear(),u(...a)),c={getConsentStatus:()=>qt(e),acceptConsent:u=>Bt(e,u),getToken:t.getToken,privacy:o,waitlist:{join:(u,a)=>i.request("/waitlist",{method:"POST",body:u,fetchOptions:a,credentials:"omit"})},account:{...n.account,updateUnsafeMetadata:r(n.account.updateUnsafeMetadata),updateProfile:r(n.account.updateProfile),changeEmail:r(n.account.changeEmail),changePassword:r(n.account.changePassword),revokeSession:r(n.account.revokeSession),delete:r(n.account.delete)},signIn:{email:r(n.signIn.email),username:r(n.signIn.username),social:r(n.signIn.social),sso:n.signIn.sso,magicLink:n.signIn.magicLink,emailOtp:r(n.signIn.emailOtp),passkey:r(n.signIn.passkey)},signUp:{email:r(n.signUp.email)},emailOtp:{...n.emailOtp,verifyEmail:r(n.emailOtp.verifyEmail)},twoFactor:{enable:n.twoFactor.enable,disable:r(n.twoFactor.disable),verifyTotp:r(n.twoFactor.verifyTotp),verifyBackupCode:r(n.twoFactor.verifyBackupCode),sendOtp:n.twoFactor.sendOtp,verifyOtp:r(n.twoFactor.verifyOtp),generateBackupCodes:n.twoFactor.generateBackupCodes},phoneOtp:{prepare:n.phoneOtp.prepare,start:n.phoneOtp.start,verify:r(n.phoneOtp.verify)},signOut:r(n.signOut)};return {...n,...c}}async function Sa(e){if(typeof window>"u")throw new Error("Akedly Shield challenges must be solved in a browser.");let t=await Ra(),n=e.challengeRequired?await t.solvePow(e.challenge,e.difficulty):null,i=e.turnstile.required?await t.getTurnstileToken(ka(e.turnstile.siteKey)):void 0;return {connectionId:e.connectionId,...n?{challengeToken:e.challengeToken,nonce:n.nonce}:{},...i?{turnstileToken:i}:{}}}async function Ra(){return import('@akedly/shield')}function ka(e){if(!e)throw new Error("Akedly Shield did not provide a Turnstile site key.");return e}async function Ta(e){let t=`${e.apiUrl}/api/projects/${e.decoded.projectId}/public-config`;return ee(await $(e,t,{init:{method:"GET",credentials:"omit"},maxResponseBytes:256*1024,decode:n=>Ia(n,e)}),"public-config")}function Ia(e,t){let n=G(e),i=n.environmentId,o=n.environmentType,r=`${t.apiUrl}/api/projects/${t.decoded.projectId}/auth`;if(typeof n.applicationId!="string"||!Jt(n.applicationId)||i!==t.decoded.projectId||o!=="development"&&o!=="production"||n.authBaseUrl!==r)throw L();let c=_(n.branding),u=_(n.legal);if(!se(n.enabledMethods,64)||!se(n.socialProviders,64)||!_o(c,["appName","logoUrl","primaryColor"])||c.showAppName!==void 0&&typeof c.showAppName!="boolean"||c.alignment!==void 0&&c.alignment!=="left"&&c.alignment!=="center"&&c.alignment!=="right"||c.theme!==void 0&&c.theme!=="light"&&c.theme!=="dark"&&c.theme!=="system"||!_o(u,["termsUrl","privacyUrl"])||!Number.isSafeInteger(u.version)||u.version<0||typeof u.required!="boolean")throw L();if(n.socialProviderClientIds!==void 0){let a=_(n.socialProviderClientIds);if(Object.keys(a).length>64||Object.values(a).some(h=>typeof h!="string"||h.length>2048))throw L()}if(!X(n,["requireEmailVerification","twoFactor","mfaRequired","accountDeletion","organizations","sso","badge"])||!Co(n.turnstileSiteKey)||!Co(n.authTurnstileSiteKey)||typeof n.locale!="string"||n.locale.length===0||n.locale.length>64||!Number.isSafeInteger(n.configVersion)||n.configVersion<0)throw L();if(n.jwtIssuer!==null){let a=_(n.jwtIssuer),h=new URL(a.issuer),s=`${h.origin}/api/projects/${t.decoded.projectId}/auth`;if(a.issuer!==s||a.jwksUrl!==`${s}/jwks`||a.aud!==t.decoded.projectId||h.protocol!=="https:"&&h.origin!==t.apiUrl)throw L()}if(n.signUp!==void 0){let a=_(n.signUp).mode;if(typeof a!="string"||!["open","restricted","allowlist","waitlist"].includes(a))throw L()}if(n.authentication!==void 0&&Pa(n.authentication),n.privacy!==void 0&&Ea(n.privacy),n.emailVerification!==void 0){let a=_(n.emailVerification);if(!X(a,["required"])||a.method!=="link"&&a.method!=="code")throw L()}if(n.userModel!==void 0&&!X(_(n.userModel),["requireEmail","firstLastName","emailChange","accountDeletion"]))throw L();if(n.mfa!==void 0){let a=_(n.mfa);if(!X(a,["totp","required","backupCodes"])||a.emailOtpFallback!==void 0&&typeof a.emailOtpFallback!="boolean"||a.trustDevice!==void 0&&typeof a.trustDevice!="boolean"||(a.required===true||a.backupCodes===true)&&a.totp!==true)throw L()}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=_(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 L();n.captcha={provider:a.provider,siteKey:a.siteKey};}return n}function Jt(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 L(){return new TypeError("public-config returned an invalid response")}function _(e){if(!e||typeof e!="object"||Array.isArray(e))throw L();return e}function Co(e){return e===null||typeof e=="string"&&e.length<=4096}function Pa(e){let t=_(e),n=_(t.email),i=_(t.password),o=i.minLength!==void 0||i.maxLength!==void 0;if(!X(n,["signUp"])||!se(n.signIn,3)||n.signIn.some(r=>r!=="password"&&r!=="magic_link"&&r!=="email_otp")||!X(_(t.phone),["signUp","signIn"])||!X(i,["signUp","add"])||o&&(!Number.isSafeInteger(i.minLength)||!Number.isSafeInteger(i.maxLength)||i.minLength<1||i.maxLength>4096||i.minLength>i.maxLength)||!X(_(t.passkey),["signIn","add"])||!va(_(t.passkey).relyingPartyId)||!X(_(t.username),["collectOnSignUp","signIn"]))throw L()}function Ea(e){let t=_(e);if(!Array.isArray(t.notices)||!Array.isArray(t.consentPurposes)||t.notices.length>64||t.consentPurposes.length>64)throw L();for(let n of t.notices){let i=_(n);if(xo(i,"noticeId","noticeVersionId"),it(i.title,512),it(i.body,1e5),Do(i.digest),!se(i.activityCodes,128)||!se(i.purposeCodes,128)||typeof i.effectiveFrom!="string"||!Number.isFinite(Date.parse(i.effectiveFrom)))throw L()}for(let n of t.consentPurposes){let i=_(n);if(xo(i,"purposeId","purposeVersionId"),it(i.title,512),it(i.description,1e4),Do(i.digest),!se(i.activityCodes,128)||!se(i.dataCategories,128))throw L()}}function xo(e,t,n){if(typeof e[t]!="string"||!Jt(e[t])||typeof e[n]!="string"||!Jt(e[n])||typeof e.code!="string"||!/^[a-z][a-z0-9_]{0,63}$/.test(e.code)||!Number.isSafeInteger(e.version)||e.version<1)throw L()}function it(e,t){let n=_(e);if(typeof n.en!="string"||n.en.length===0||n.en.length>t||typeof n.ar!="string"||n.ar.length===0||n.ar.length>t)throw L()}function Do(e){let t=_(e);if(typeof t.en!="string"||!/^[a-f0-9]{64}$/.test(t.en)||typeof t.ar!="string"||!/^[a-f0-9]{64}$/.test(t.ar))throw L()}function va(e){return e==null||typeof e=="string"}function X(e,t){return t.every(n=>typeof e[n]=="boolean")}function _o(e,t){return t.every(n=>e[n]===void 0||typeof e[n]=="string"&&e[n].length<=4096)}function se(e,t){return Array.isArray(e)&&e.length<=t&&e.every(n=>typeof n=="string"&&n.length<=128)&&new Set(e).size===e.length}var ve=class extends Error{constructor(n,i){super(n);this.cause=i;this.name="AuthOwlError";}cause},$t=class extends ve{constructor(n,i){super(`Rate limited. Retry after ${n}s.`,i);this.retryAfterSeconds=n;this.name="RateLimitedError";}retryAfterSeconds},Gt=class extends ve{constructor(t="invalid publishable key",n){super(t,n),this.name="InvalidKeyError";}};var Uo=["en","ar"];function Ca(e){return e==="ar"?"rtl":"ltr"}function xa(e){return typeof e=="string"&&Uo.includes(e)}
3
+ exports.AUTH_CHALLENGE_HEADER=Mn;exports.AUTH_LOCALE_HEADER=Fn;exports.AuthOwlError=ve;exports.AuthOwlHttpError=Le;exports.INVITATION_CLAIM_MAX_AGE_MS=vn;exports.INVITATION_QUERY_PARAM=pt;exports.InvalidKeyError=Gt;exports.LOCALES=Uo;exports.RateLimitedError=$t;exports.SESSION_TOKEN_HEADER=ct;exports.SESSION_TRANSPORT_BEARER=lt;exports.SESSION_TRANSPORT_HEADER=ut;exports.TransportError=F;exports.acceptConsent=Bt;exports.activeLocale=ht;exports.captureInvitationClaim=fr;exports.clearInvitationClaim=ye;exports.createAuthOwlClient=wa;exports.createIdempotencyKey=we;exports.createMembershipHas=ns;exports.createTokenClient=jt;exports.decodePublishableKey=rt;exports.directionFor=Ca;exports.getConsentStatus=qt;exports.getPublicConfig=Ta;exports.isLocale=xa;exports.membershipHas=Ke;exports.membershipHasPermission=Fe;exports.membershipHasRole=Gn;exports.membershipHasTeam=$n;exports.passkeyOfferIsDue=wr;exports.readInvitationClaim=he;exports.readLastUsedSignInMethod=mr;exports.recordLastUsedSignInMethod=hr;exports.recordPasskeyOfferDismissed=Sr;exports.recordPasskeyOfferSettled=Rr;exports.rememberPendingSignInMethod=yr;exports.resolveAuthTarget=Pn;exports.resolveConfig=pr;exports.resolveProjectCapabilities=kr;exports.sessionChallengeIsEphemeral=Ho;exports.sessionCookieName=Mo;exports.setActiveLocale=zr;exports.settlePendingSignInMethod=br;exports.solvePhoneOtpChallenge=Sa;exports.withSessionTransportIntegration=Zo;