@authowl/core 0.22.1 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-LBCOMERN.js +1 -0
- package/dist/chunk-YL2FF2VS.js +2 -0
- package/dist/{client-BwZ1bqU4.d.cts → config-CyUwyJ9B.d.cts} +495 -253
- package/dist/{client-DXypEWpf.d.ts → config-CyUwyJ9B.d.ts} +495 -253
- package/dist/{idempotency-BWMPd3B7.d.ts → idempotency-fDhUiiGz.d.ts} +24 -24
- package/dist/{idempotency-BfRYS8qn.d.cts → idempotency-mYtBlnGY.d.cts} +24 -24
- package/dist/index.cjs +3 -3
- package/dist/index.d.cts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +3 -3
- package/dist/native.cjs +2 -2
- package/dist/native.d.cts +7 -8
- package/dist/native.d.ts +7 -8
- package/dist/native.js +1 -1
- package/dist/privacy.d.cts +2 -2
- package/dist/privacy.d.ts +2 -2
- package/dist/public-config-DojOd5F7.d.cts +241 -0
- package/dist/public-config-Drxchm7N.d.ts +241 -0
- package/dist/server.cjs +2 -2
- package/dist/server.d.cts +2 -2
- package/dist/server.d.ts +2 -2
- package/dist/server.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-DVVGVPDH.js +0 -1
- package/dist/chunk-IB6TFQFD.js +0 -2
- package/dist/organization-membership-BIify9hZ.d.cts +0 -450
- package/dist/organization-membership-BIify9hZ.d.ts +0 -450
|
@@ -1,5 +1,27 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { R as ResolvedAuthConfig, A as ActionFetchOptions, a as AuthActionResult } from './config-CyUwyJ9B.js';
|
|
2
|
+
import { P as PublicConfig } from './public-config-Drxchm7N.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 {
|
|
2
|
-
import {
|
|
1
|
+
import { R as ResolvedAuthConfig, A as ActionFetchOptions, a as AuthActionResult } from './config-CyUwyJ9B.cjs';
|
|
2
|
+
import { P as PublicConfig } from './public-config-DojOd5F7.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=
|
|
1
|
+
'use strict';var _o=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 Xt=(e,t)=>{for(var n in t)_o(e,n,{get:t[n],enumerable:true});};var wn={};Xt(wn,{abandonSession:()=>gn,bindingNonce:()=>An,boundedSessionFetch:()=>De,clearSessionProofKeyMemoryForTests:()=>ir,cookieCapability:()=>fn,createSessionProof:()=>On,createStoredSessionProof:()=>cr,prepareSenderConstrainedSession:()=>tr,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 fn(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 gn(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 tr(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 gn(e.fetcher,`${e.projectBaseURL}/session/abandon`,e.headers,u),t.endSession(),t.beginSession(e.start);}}let i;try{i=await fn(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:An()},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 mn(e){return ce(new Uint8Array(await crypto.subtle.digest("SHA-256",xe(e))))}function hn(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 yn(e){return mn(JSON.stringify({crv:e.crv,kty:e.kty,x:e.x,y:e.y}))}function nr(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 ir(){Ce.clear();}async function or(e){if(!e||typeof e!="object")return null;let t=e;if(!nr(t.privateKey)||!t.publicJwk||!hn(t.publicJwk))return null;let n=await yn(t.publicJwk);return t.thumbprint!==n?null:{privateKey:t.privateKey,publicJwk:t.publicJwk,thumbprint:n,persistent:true}}function bn(){return typeof indexedDB>"u"?Promise.resolve(null):new Promise(e=>{let t;try{t=indexedDB.open(er,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 pn(e){let t=await bn();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 or(n)}finally{t.close();}}async function rr(e,t){let n=await bn();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 sr(){let e=await crypto.subtle.generateKey({name:"ECDSA",namedCurve:"P-256"},false,["sign","verify"]),t=await crypto.subtle.exportKey("jwk",e.publicKey);if(!hn(t))throw new Error("The browser produced an invalid proof key.");return {privateKey:e.privateKey,publicJwk:t,thumbprint:await yn(t),persistent:false}}function _e(e){let t=Ce.get(e);if(t)return t;let n=(async()=>{let i=await pn(e);if(i)return i;let o=await sr(),r=await rr(e,o);return r==="stored"?{...o,persistent:true}:r==="conflict"?await pn(e)??o:o})();return Ce.set(e,n),n.catch(()=>Ce.delete(e)),n}function An(){return ce(crypto.getRandomValues(new Uint8Array(32)))}function ar(e){let t=new URL(e);return t.search="",t.hash="",t.toString()}async function On(e){let t=ce(xe(JSON.stringify({typ:Qo,alg:Zo,jwk:e.key.publicJwk}))),n=ce(xe(JSON.stringify({htm:e.method.toUpperCase(),htu:ar(e.url),iat:Math.floor(Date.now()/1e3),jti:ce(crypto.getRandomValues(new Uint8Array(16))),ath:await mn(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 cr(e){let t=await _e(e.origin);if(t.thumbprint!==e.expectedThumbprint)throw new Error("Session proof key changed.");return On({key:t,method:e.method,url:e.url,token:e.token})}var Qo,Zo,er,ue,Ce,Sn=ot(()=>{"use strict";Qo="pop+jwt",Zo="ES256",er="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 St=ot(()=>{"use strict";});var Xe={};Xt(Xe,{beginCrossSiteSignIn:()=>Ys,challengeFor:()=>ro,completeCrossSiteSignIn:()=>Xs,takeHandoffCode:()=>Mt});function oo(e){let t="";for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function ro(e){let t=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e));return oo(new Uint8Array(t))}function $s(){return oo(crypto.getRandomValues(new Uint8Array(Bs)))}function so(e,t){let n=window.location.protocol==="https:"?"; Secure":"";document.cookie=`${io}=${e}; Path=/; Max-Age=${t}; SameSite=Lax${n}`;}function Gs(){for(let e of document.cookie.split(";")){let t=e.indexOf("=");if(!(t<0)&&e.slice(0,t).trim()===io)return e.slice(t+1).trim()||null}return null}function Ws(){so("",0);}function no(e){return new URL(e,window.location.href).toString()}async function Ys(e,t){let n=t.callbackURL?no(t.callbackURL):null;if(n&&new URL(n).origin!==window.location.origin)return null;let i=$s(),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 Js){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,no(u));return o.searchParams.set("challenge",await ro(i)),so(i,js),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 Xs(e,t,n){if(!Oe())return false;let i=n??Mt();if(!i)return false;n&&Mt(n);let o=Gs();if(Ws(),!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 io,Lt,Bs,js,Js,Qe=ot(()=>{"use strict";St();io="authowl_handoff_verifier",Lt="authowl_code",Bs=32,js=900,Js=["email","providerId","domain","organizationSlug"];});var Uo=/^(pk_(live|test))_([0-9a-f-]{36})_([A-Za-z0-9]{20,})$/i,No=/^sk_/i;function rt(e){if(typeof e!="string"||e.length===0)throw new Error("publishableKey is required");if(No.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=Uo.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 zo(e,t){let n=`p_${e.toLowerCase().replace(/-/g,"")}`;return `${t?.secure?"__Secure-":""}${n}.session_token`}var Qt=/^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 Zt(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&&Qt.test(i)))throw new TypeError("Transport URL must use HTTPS except on approved loopback.");return n}function en(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||!Qt.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 M(e,t,n){try{n===null?e?.removeItem(t):e?.setItem(t,n);}catch{}}function U(){try{return globalThis.localStorage}catch{return}}function Z(){try{return globalThis.sessionStorage}catch{return}}var Lo="authowl.session-challenge",Mo=e=>`${Lo}.${e}`,Fo="set-auth-challenge",at="x-authowl-challenge";function Ko(e){let t=e.get(at);return me(t)?on(t).some(([n,i])=>n.endsWith(".dont_remember")&&i.length>0):false}var nn="INVALID_TWO_FACTOR_COOKIE",Vo=2048,me=e=>e!==null&&e.length<=Vo,tn=/^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/;function on(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 rn(e){let t=Mo(e),n=new Map;function i(){return n.size===0?null:[...n].map(([u,a])=>`${u}=${a}`).join("; ")}function o(){let u=i();M(Z(),t,me(u)?u:null);}function r(u){for(let[a,h]of on(u))tn.test(a)&&(h===""?n.delete(a):tn.test(h)&&n.set(a,h));}let c=H(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(Fo);me(a)&&(r(a),o());},clear(){n.clear(),o();}}}var ct="set-auth-token",ut="x-authowl-session-transport",lt="bearer";var Ho="authowl.session-token",qo="authowl.session-binding",Bo="authowl.cookie-transport",an="ok",cn="bearer",jo=e=>`${Ho}.${e}`,Jo=e=>`${qo}.${e}`,$o=e=>`${Bo}.${e}`;function Go(e){return e===an?"cookies":e===cn?"bearer":"unknown"}function Wo(e){return e==="cookies"?an:e==="bearer"?cn:null}function Yo(e){let t=jo(e),n=Jo(e),i=$o(e),o=rn(e),r=new Set;function c(O){for(let L of r)try{L(O);}catch{}}let u=null,a=null,h=null,s=false,l=null,p=Go(H(U(),i)),y=()=>p==="unknown",b=0,S=null,d=false;function g(){let O=H(Z(),t);if(O!==null)return s=true,O;let L=H(U(),t);return L!==null?(s=false,L):null}function A(){return H(Z(),n)??H(U(),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,L=O===null?null:a,[ge,Yt]=s?[Z(),U()]:[U(),Z()];M(Yt,t,null),M(Yt,n,null),M(ge,t,O),M(ge,n,L);}function _(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,M(U(),i,Wo(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 Gt(){b+=1,l=null,h=null,s=false,_(null),o.clear(),w(),c({type:"endSession"});}let Wt=()=>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 L=I();return !L&&!Wt()?false:(L&&O.set("authorization",`Bearer ${L}`),O.set(ut,lt),o.presentOn(O),true)},wantsToken:Wt,needsProbe:y,observe(O){let L=O.get(ct);L&&_(L),o.observe(O);},dropChallenge:o.clear,measureWith(O){S=O,k();},beginRead(){let O=I(),L=b;return {carriedToken:O!==null,endIfDead(){O!==null&&Q()===O&&b===L&&Gt();},recordCookieVerdict(ge){if(b===L&&y()){if(K(ge?"cookies":"bearer"),ge){_(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"),_(null);},useBoundBearerTransport(O,L){if(!O)throw new Error("A session proof thumbprint is required.");h=O,L||(l=true),K("bearer");},endSession:Gt}}var sn=new Map;function un(e){let t=sn.get(e);if(t)return t;let n=Yo(e);return sn.set(e,n),n}var ln=Symbol.for("authowl.session-transport-integration.v1");function Xo(e,t){return Object.defineProperty(e,ln,{value:t,configurable:false,enumerable:false,writable:false}),e}function dn(e){return e?e[ln]??null:null}var dt="x-authowl-session-proof",Rn="x-authowl-session-binding",kn="x-authowl-session-binding-proof",Ue=()=>Promise.resolve().then(()=>(Sn(),wn));function ur(e,t){return t?.headers?new Headers(t.headers):typeof e=="object"&&e!==null&&"headers"in e?new Headers(e.headers):new Headers}function Tn(e,t){let n=un(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=ur(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 _=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:_})));}catch{await a(b),n.endSession(),b.delete("authorization"),b.delete(dt),b.delete(Rn),b.delete(kn),T=false;}}if(r){let _=r;b.set(Rn,_.nonce),b.set(T?kn:dt,await Ue().then(K=>K.createSessionProof({key:_.key,method:g,url:A,token:_.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:dn(t),prepareSession:h}}function In(e){if(!e||typeof e!="object")throw new Error("AuthConfig is required");let t=rt(e.publishableKey),n=en(e.apiUrl,{allowHttpLoopback:t.env==="test"});return {publishableKey:e.publishableKey,apiUrl:n,decoded:t,projectBaseURL:`${n}/api/projects/${t.projectId}/auth`}}function lr(e){let t=In(e),{fetch:n,...i}=Tn({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",Pn=/^[A-Za-z0-9_-]{1,128}$/,En=10080*60*1e3;function dr(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(!Pn.test(n))return he(e);let i={id:n,capturedAt:e};return M(U(),ft,JSON.stringify(i)),i}function he(e=Date.now()){let t=H(U(),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"||!Pn.test(i)||typeof o!="number"||e-o>En?(ye(),null):{id:i,capturedAt:o}}function ye(){M(U(),ft,null);}var vn="authowl.last-used-method",pr=/^(password|username|magic-link|email-otp|phone-otp|passkey|sso|social:[a-z0-9][a-z0-9_-]{0,63})$/,gt=e=>`${vn}.${e}`;function ze(e){return pr.test(e)}function fr(e){let t=H(U(),gt(e));return t===null||!ze(t)?null:t}function gr(e,t){ze(t)&&(M(U(),Ne(e),null),M(U(),gt(e),t));}var Ne=e=>`${vn}.pending.${e}`;function mr(e,t){ze(t)&&M(U(),Ne(e),t);}function hr(e,t){let n=H(U(),Ne(e));M(U(),Ne(e),null),t&&n!==null&&ze(n)&&M(U(),gt(e),n);}function yr(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 br=1e4,Ar=1024*1024,F=class extends Error{kind;requestId;constructor(t,n){super(Pr(t)),this.name="TransportError",this.kind=t,this.requestId=n;}},Dn=new WeakSet;function V(e,t){let n=new F(e,t);return Dn.add(n),n}async function _n({fetchImpl:e,url:t,init:n={},timeoutMs:i=br,maxResponseBytes:o=Ar,allowHttpLoopback:r=false,decode:c}){xn(i,"timeoutMs"),xn(o,"maxResponseBytes");let u=Zt(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 V(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 V(s??"network")}if(d.type==="abort")throw V(d.kind);if(!Or(d.response))throw V("invalid_response");let g=d.response,A=Ir(g.headers),k=await wr(g,o,p,()=>s,A),T=kr(g,k,A),_;try{_=g.ok&&c?c(T,Object.freeze({status:g.status})):T;}catch{throw V("invalid_response",A)}return {response:g,data:_,...A===void 0?{}:{requestId:A}}}catch(d){throw d instanceof F&&Dn.has(d)?d:V(s??"network")}finally{clearTimeout(S),a?.removeEventListener("abort",b);}}function Or(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 wr(e,t,n,i,o){let r=e.headers.get("content-length");if(r!==null){if(!/^\d+$/.test(r))throw Cn(e.body),V("invalid_response",o);if(Number(r)>t)throw Cn(e.body),V("response_too_large",o)}if(!e.body)return "";let c;try{c=e.body.getReader();}catch{throw V("network",o)}let u=[],a=0,h=null;try{for(;;){let p;try{p=await Promise.race([c.read(),n]);}catch{h=V(i()??"network",o);break}if(Sr(p)){h=V(p.kind,o);break}let{done:y,value:b}=p;if(y)break;if(b.byteLength!==0){if(a+=b.byteLength,a>t){h=V("response_too_large",o);break}u.push(b);}}}finally{h&&Rr(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 V("invalid_response",o)}}function Sr(e){return "type"in e&&e.type==="abort"}function Cn(e){if(e)try{e.cancel().catch(()=>{});}catch{}}function Rr(e){try{e.cancel().catch(()=>{});}catch{}}function kr(e,t,n){if(e.status===204||e.status===205)return null;let i=Tr(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 Tr(e){if(e===null)return false;let t=e.split(";",1)[0]?.trim().toLowerCase();return t==="application/json"||t?.endsWith("+json")===true}function Ir(e){let t=e.get("x-request-id")?.trim();if(!(!t||t.length>256||!/^[A-Za-z0-9._:-]+$/.test(t)))return t}function xn(e,t){if(!Number.isInteger(e)||e<=0)throw new TypeError(`${t} must be a positive integer.`)}function Pr(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),_n({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,Er=/^[a-z]{2}$/;function vr(e,t){if(typeof window>"u")return ()=>{};if(t===null)return te.delete(e),()=>{};let n=t.trim().toLowerCase();if(!Er.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 mt(e){return typeof window>"u"?null:te.get(e)?.at(-1)?.locale??null}var zn="x-authowl-turnstile-token",Ln="x-authowl-locale",Cr=1e4,xr=32,Dr=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=Nr(t,n,i.query),r=i.method??(i.body===void 0?"GET":"POST"),c=new Headers(i.fetchOptions?.headers);i.fetchOptions?.authChallengeToken&&c.set(zn,i.fetchOptions.authChallengeToken);let u=mt(e.decoded.projectId);u&&c.set(Ln,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=Ur(r,i.fetchOptions),l;try{l=await _r(e,o,{...a,signal:i.fetchOptions?.signal},s);}catch(g){let A=Nn(g);return await i.fetchOptions?.onError?.(ht(h,A,Mr(g))),{data:null,error:A}}let{response:p,requestId:y}=l,b=Vr(n,l.data),S=b;if(p.ok)try{S=bt(b),i.decode&&(S=i.decode(S));}catch{let g=Nn(new F("invalid_response",y));return await i.fetchOptions?.onError?.(ht(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=zr(p,b,y);return g.code===nn&&e.session.tokens.dropChallenge(),await i.fetchOptions?.onError?.(ht(h,g,"api")),{data:null,error:g}}return await i.fetchOptions?.onSuccess?.(d),{data:S,error:null}}}}async function _r(e,t,n,i){let o=Date.now()+Cr;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 Fr(50*2**r,n.signal,o);}throw new F("network")}function Ur(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 Nr(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 zr(e,t,n){let i=be(t)?t:{},o=Lr(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 Lr(e,t){let n=(typeof e.retryAfterSeconds=="number"&&Number.isFinite(e.retryAfterSeconds)?e.retryAfterSeconds:void 0)??Un(t.get("retry-after"))??Un(t.get("x-retry-after"));if(n!==void 0)return Math.min(Math.max(Math.trunc(n),1),86400)}function Un(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 Nn(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 ht(e,t,n){return Object.freeze({...e,status:t.status??0,...t.requestId===void 0?{}:{requestId:t.requestId},failure:n})}function Mr(e){return e instanceof F?e.kind:"network"}function Fr(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 bt(e,t="",n=0,i={nodes:0}){if(i.nodes+=1,n>xr||i.nodes>Dr)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=>bt(o,"",n+1,i)):be(e)?Object.fromEntries(Object.entries(e).map(([o,r])=>[o,Kr(o)?r:bt(r,o,n+1,i)])):e}function Kr(e){return e==="metadata"||e==="public_metadata"||e==="unsafe_metadata"||e==="private_metadata"||e==="publicMetadata"||e==="unsafeMetadata"||e==="privateMetadata"}function Vr(e,t){if(e==="/list-sessions"&&Array.isArray(t))return t.map(o=>be(o)?yt(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-")?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")&&be(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 be(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}var Hr=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 x(e,t){let n=e[t];return n==null||typeof n=="string"?n:f()}function Mn(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",x(t,"phoneNumber")),...q("username",x(t,"username")),...q("displayUsername",x(t,"displayUsername")),...q("firstName",x(t,"firstName")),...q("lastName",x(t,"lastName")),...q("name",x(t,"name")),...q("image",x(t,"image")),...q("twoFactorEnabled",Mn(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",x(t,"activeOrganizationId")),...q("activeTeamId",x(t,"activeTeamId")),...q("membership",n==null?n:qr(n)),...q("pendingMfaEnrollment",Mn(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 At(e,0,{nodes:0},t,n)}function qr(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 At(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=>At(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))Hr.has(u)&&f(),c[u]=At(a,t+1,n,i,o);return c}function q(e,t){return t===void 0?{}:{[e]:t}}function Fn({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:wt})}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:wt});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:wt}).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 _(){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&&(_(),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 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)}}St();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 Kn(e,t){return e.request("/user/metadata",{fetchOptions:t,decode:Hn})}async function Vn(e,t,n){return e.request("/user/metadata",{method:"PATCH",body:{expected_version:t.expectedVersion,unsafe_metadata:t.unsafeMetadata},fetchOptions:n,decode:Hn})}function Hn(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 Bn(e,t){let{post:n,mutation:i}=ne(e,t);return {getMetadata:o=>Kn(e,o),updateUnsafeMetadata:(o,r)=>Vn(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,Br)),listSessions:o=>e.request("/list-sessions",{fetchOptions:o,decode:jr}),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:Jr});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,$r),unlinkSocial:(o,r)=>i(n("/unlink-account",o,r,Se)),delete:(o={},r)=>i(n("/delete-user",o,r,Gr))}}function Se(e){let t=m(e);return {status:P(t.status)}}function Br(e){let t=m(e);return {user:B(t.user)}}function jr(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),...qn("ipAddress",x(n,"ipAddress")),...qn("userAgent",x(n,"userAgent"))}})}function Jr(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 $r(e){let t=m(e);return {url:R(t.url),redirect:P(t.redirect)}}function Gr(e){let t=m(e);return {success:P(t.success),message:R(t.message)}}function qn(e,t){return t===void 0?{}:{[e]:t}}function Fe(e,t){return !e||!t?false:e.permissions.includes(t)}function jn(e,t){return !e||!t?false:e.teams?.includes(t)??false}function Jn(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&&!Jn(e,n)||i!==void 0&&!e.permissions.includes(i)||o!==void 0&&!jn(e,o))}function Wr(e){return {has:t=>Ke(e,t),hasPermission:t=>Fe(e,t.permission)}}var Yr=new Set(["pending","accepted","rejected","canceled"]),Rt=1e4;function $n(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",x(i,"logo")),...Re("metadata",i.metadata===void 0?void 0:Ot(i.metadata))};return J(o.id,t),J(o.slug,n),o}function Gn(e){return W(e,le)}function kt(e,t,n){return e===null?null:(t===null&&f(),le(e,t,n))}function Wn(e,t,n){if(e===null)return null;let i=m(e),o=le(i,t,n);return {...o,members:W(i.members,r=>ai(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||Ie(i.map(o=>o.organizationId),t),i}function Yn(e,t){let n=W(e,i=>It(i));return Ie(n.map(i=>i.teamId),t),n}function It(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 Xn(e,t,n){return e===null?null:(t===null&&f(),ke(e,t,n))}function Qn(e,t){let n=m(e);return (!Number.isSafeInteger(n.total)||n.total<0)&&f(),{members:Xr(n.members,t),total:n.total}}function Y(e,t,n){let i=m(e),o=v(i.status);Yr.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 Zn(e,t){let n=W(e,i=>Y(i));return Ie(n.map(i=>i.organizationId),t),n}function ei(e){return W(e,t=>{let n=m(t);return {...Y(n),organizationName:Te(n.organizationName)}})}function ti(e,t){let n=m(e);return {...Y(n,t),organizationName:v(n.organizationName),organizationSlug:v(n.organizationSlug),inviterEmail:ci(n.inviterEmail)}}function ni(e,t){let n=m(e),i=Y(n.invitation,t);return {invitation:i,member:de(n.member,void 0,i.organizationId)}}function ii(e,t){let n=m(e);return n.member!==null&&f(),{invitation:n.invitation===null?null:Y(n.invitation,t),member:null}}function oi(e,t){return e===null?null:Y(e,t)}function ri(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:ui(i.user)}};return J(o.id,t),J(o.organizationId,n),o}function si(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:Qr(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 Pt(e){let t=m(e);return {message:Te(t.message)}}function ai(e,t){let n=m(e);return {...de(n,void 0,t),user:ui(n.user)}}function Xr(e,t){let n=W(e,i=>ai(i));return Ie(n.map(i=>i.organizationId),t),n}function Qr(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>Rt||!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>Rt)&&f(),t}function Te(e){if(e==null)return "";let t=R(e);return t.length>Rt&&f(),t}function ci(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 ui(e){let t=m(e);return {id:v(t.id),name:Te(t.name),email:ci(t.email),...Re("image",x(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 li(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,Gn),get:(s={},l)=>a("/organization/get-full-organization",{organizationId:s.organizationId,organizationSlug:s.organizationSlug,membersLimit:s.membersLimit},l,p=>Wn(p,s.organizationId,s.organizationSlug)),setActive:(s,l)=>h(i("/organization/set-active",s,l,p=>kt(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=>Tt(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,Pt)),listUserTeams:s=>a("/organization/list-user-teams",void 0,s,l=>Tt(l,void 0,true)),listTeamMembers:(s={},l)=>a("/organization/list-team-members",{teamId:s.teamId},l,p=>Yn(p,s.teamId)),addTeamMember:(s,l)=>h(i("/organization/add-team-member",s,l,p=>It(p,s.teamId,s.userId))),removeTeamMember:(s,l)=>h(i("/organization/remove-team-member",s,l,Pt)),setActiveTeam:(s,l)=>h(i("/organization/set-active-team",s,l,p=>Xn(p,s.teamId))),update:(s,l)=>h(i("/organization/update",s,l,p=>kt(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=>Qn(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=>Zn(p,s.organizationId)),listUserInvitations:s=>a("/organization/list-user-invitations",void 0,s,ei),getInvitation:(s,l)=>a("/organization/get-invitation",{id:s.id},l,p=>ti(p,s.id)),getInvitationRecipientHint:(s,l)=>a("/organization/invitation-recipient-hint",{invitationId:s.invitationId},l,$n),acceptInvitation:(s,l)=>h(i("/organization/accept-invitation",s,l,p=>ni(p,s.invitationId))),rejectInvitation:(s,l)=>h(i("/organization/reject-invitation",s,l,p=>ii(p,s.invitationId))),cancelInvitation:(s,l)=>h(i("/organization/cancel-invitation",s,l,p=>oi(p,s.invitationId))),removeMember:(s,l)=>h(i("/organization/remove-member",s,l,p=>ri(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=>si(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:Zr}),recordConsent:(t,n)=>e.request("/privacy/consent-decisions",{method:"POST",body:{...t,correlationId:t.correlationId??we()},fetchOptions:n,decode:ts}),listRightsRequests:t=>e.request("/privacy/rights",{fetchOptions:t,decode:ns}),createRightsRequest:(t,n)=>e.request("/privacy/rights",{method:"POST",body:t,fetchOptions:n,decode:is})}}function Zr(e){let t=m(e);return Array.isArray(t.preferences)||f(),{preferences:t.preferences.map(es)}}function es(e){let t=m(e);return {purposeId:R(t.purposeId),purposeVersionId:R(t.purposeVersionId),code:R(t.code),state:os(t.state,["granted","refused","withdrawn"]),updatedAt:Ve(t.updatedAt),decidedAt:Ve(t.decidedAt)}}function ts(e){let t=m(e);return t.recorded!==true&&f(),{recorded:true,decision:Pe(t.decision,["granted","refused","withdrawn"]),decidedAt:He(t.decidedAt)}}function ns(e){let t=m(e);return Array.isArray(t.requests)||f(),{requests:t.requests.map(di)}}function is(e){return {request:di(m(e).request)}}function di(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 os(e,t){return e===null?null:Pe(e,t)}var pi=4096,rs=4096,ss=100,as=256,cs=16,us=64,ls=12;function vt(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:Ci(t.twoFactorMethods,cs,us)}}):(t.twoFactorRedirect!==void 0&&f(),{redirect:P(t.redirect),...ms(t,"url"),user:B(t.user)})}function fi(e){let t=m(e);return {user:B(t.user)}}function gi(e){let t=m(e);return {sessionCreated:P(t.sessionCreated),user:B(t.user)}}function mi(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:Et(n.url,t)}):(o===r&&f(),o?{redirect:false,user:B(n.user)}:{redirect:false,url:Et(n.url,t)})}function hi(e,t){let n=m(e);return (n.redirect!==true||n.user!==void 0)&&f(),{redirect:true,url:Et(n.url,t)}}function yi(e){return {status:P(m(e).status)}}function bi(e){return {success:P(m(e).success)}}function Ai(e){return m(e).status!=="pending"&&f(),{status:"pending"}}function Oi(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:ds(t.difficulty),challengeToken:R(t.challengeToken),challengeRequired:P(t.challengeRequired),turnstile:{required:P(n.required),siteKey:i}}}function ds(e){return (!Number.isSafeInteger(e)||Number(e)<0||Number(e)>ls)&&f(),Number(e)}function wi(e){let t=m(e);return (t.status!==true||t.sessionCreated!==true)&&f(),{status:true,sessionCreated:true,user:ps(t.user)}}function Ct(e){return {status:P(m(e).status)}}function Si(e){return {status:P(m(e).status)}}function Ri(e){let t=m(e);return {status:P(t.status),user:B(t.user)}}function ki(e){return {success:P(m(e).success)}}function Ti(e){let t=m(e);return {totpURI:gs(t.totpURI),backupCodes:vi(t.backupCodes)}}function Ii(e){return {status:P(m(e).status)}}function Be(e){return m(e).status!==true&&f(),{status:true}}function Pi(e){return {status:P(m(e).status)}}function Ei(e){let t=m(e);return t.status!==void 0&&t.status!==true&&f(),{backupCodes:vi(t.backupCodes)}}function ps(e){let t=m(e);return {id:pe(t.id,512),...hs(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 Et(e,t){let n=pe(e,pi);/[\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:"&&fs(i.hostname)?i.href:f()}function fs(e){let t=e.toLowerCase();return t==="localhost"||t==="127.0.0.1"||t==="[::1]"}function gs(e){let t=pe(e,rs),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 vi(e){return Ci(e,ss,as)}function Ci(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 ms(e,t){let n=e[t];return n==null?{}:{[t]:pe(n,pi)}}function hs(e,t,n){let i=x(e,t);return i===void 0?{}:(i!==null&&i.length>n&&f(),{[t]:i})}var xi=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||_i(n,i)||Di(i)||xi.has(i))return {valid:false}}let t=ys(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||_i(o,r)||Di(r)||xi.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 ys(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 Di(e){return e>=0&&e<=31||e>=127&&e<=159}function _i(e,t){return e.length===1&&t>=55296&&t<=57343}var zi=12,Li=5e3,bs=8,As=1e3,Os=16,Ui=512,Mi=100,Fi=8192,ws=32768,Dt=1024,Ni=256,Ut=64,Ss=6e5,Rs=/^[A-Za-z0-9_-]+$/u,ks=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u,Ts=/[\u0000-\u001f\u007f-\u009f\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/u,Is=/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$/u,Ps=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu,Ki=new Set(["discouraged","preferred","required"]),Es=new Set(["singleDevice","multiDevice"]),Vi=new Set(["ble","cable","hybrid","internal","nfc","smart-card","usb"]),Hi=new Set(["hybrid","security-key","client-device"]),vs=new Set(["none","indirect","direct","enterprise"]),Cs=new Set(["fido-u2f","packed","android-safetynet","android-key","tpm","apple","none"]),xs=new Set(["platform","cross-platform"]),Ds=new Set(["discouraged","preferred","required"]),_s=new Set([-8,-7,-257]);function qi(e){let t=G(e,zi,Li);return {challenge:Zi(t.challenge),...N("timeout",Xi(t.timeout)),...N("rpId",eo(t.rpId)),...N("allowCredentials",Yi(t.allowCredentials)),...N("userVerification",Ee(t.userVerification,Ki)),...N("hints",Ge(t.hints,Hi)),...N("extensions",Qi(t.extensions))}}function Bi(e){let t=G(e,zi,Li);return {challenge:Zi(t.challenge),rp:Us(t.rp),user:Ns(t.user),pubKeyCredParams:zs(t.pubKeyCredParams),...N("timeout",Xi(t.timeout)),...N("excludeCredentials",Yi(t.excludeCredentials)),...N("authenticatorSelection",Ls(t.authenticatorSelection)),...N("attestation",Ee(t.attestation,vs)),...N("attestationFormats",Ge(t.attestationFormats,Cs)),...N("hints",Ge(t.hints,Hi)),...N("extensions",Qi(t.extensions))}}function ji(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,Es),o=P(t.backedUp);return o&&i!=="multiDevice"&&f(),{id:fe(t.id,Ni),...Ks(t),publicKey:Ms(t.publicKey,ws),userId:fe(t.userId,Ni),credentialID:Ye(t.credentialID,Fi),counter:n,deviceType:i,backedUp:o,...Vs(t),createdAt:E(t.createdAt),...Hs(t)}}function Ji(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 $i(e){(!Array.isArray(e)||e.length>Mi)&&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 Gi(e,t,n){let i=m(e),o=Nt(i.passkey);return (o.id!==t||o.name!==n)&&f(),{passkey:o}}function Wi(e){return m(e).status!==true&&f(),{status:true}}function Us(e){let t=m(e);return {name:_t(t.name,Dt),...N("id",eo(t.id))}}function Ns(e){let t=m(e);return {id:Ye(t.id,128,1,64),name:_t(t.name,Dt),displayName:_t(t.displayName,Dt)}}function zs(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)||!_s.has(i.alg))&&f(),{type:"public-key",alg:i.alg}});return qs(t.map(n=>n.alg)),t}function Yi(e){if(e===void 0)return;(!Array.isArray(e)||e.length>Mi)&&f();let t=e.map(n=>{let i=m(n);return i.type!=="public-key"&&f(),{type:"public-key",id:Ye(i.id,Fi),...N("transports",Ge(i.transports,Vi))}});return We(t.map(n=>n.id)),t}function Ls(e){if(e===void 0)return;let t=m(e);t.requireResidentKey!==void 0&&typeof t.requireResidentKey!="boolean"&&f();let n=Ee(t.residentKey,Ds);return t.requireResidentKey!==void 0&&n!==void 0&&t.requireResidentKey!==(n==="required")&&f(),{...N("authenticatorAttachment",Ee(t.authenticatorAttachment,xs)),...N("residentKey",n),...N("requireResidentKey",t.requireResidentKey),...N("userVerification",Ee(t.userVerification,Ki))}}function Xi(e){return e!==void 0&&(typeof e!="number"||!Number.isFinite(e)||e<0||e>Ss)&&f(),e}function Qi(e){return e===void 0?void 0:G(e,bs,As)}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 Zi(e){return Ye(e,Math.ceil(Ui*4/3),Os,Ui)}function Ye(e,t,n=1,i=Number.POSITIVE_INFINITY){let o=fe(e,t),r=o.length%4,c=Fs(o.at(-1)??""),u=Math.floor(o.length*3/4);return (!Rs.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 _t(e,t){let n=fe(e,t);return Ts.test(n)&&f(),n}function eo(e){if(e===void 0)return;let t=fe(e,253);return t!=="localhost"&&(t.endsWith(".")||!t.includes(".")||t.split(".").some(n=>!Is.test(n)))&&f(),t}function Ms(e,t){let n=fe(e,t),i=n.endsWith("=="),o=!i&&n.endsWith("="),r=n.at(i?-3:o?-2:-1)??"",c=to(r);return (n.length%4!==0||!ks.test(n)||i&&(c&15)!==0||o&&(c&3)!==0)&&f(),n}function Fs(e){return to(e,true)}function to(e,t=false){return (t?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").indexOf(e)}function Ks(e){let t=x(e,"name");return t===void 0?{}:(t!==null&&!xt(t)&&f(),{name:t})}function Vs(e){let t=x(e,"transports");if(t==null||t==="")return t===void 0?{}:{transports:t};let n=t.split(",");return (n.length>Ut||n.some(i=>!Vi.has(i))||new Set(n).size!==n.length)&&f(),{transports:t}}function Hs(e){let t=x(e,"aaguid");return t==null?t===void 0?{}:{aaguid:null}:(Ps.test(t)||f(),{aaguid:t})}function zt(e,t){let n=R(e);return t.has(n)||f(),n}function N(e,t){return t===void 0?{}:{[e]:t}}function We(e){new Set(e).size!==e.length&&f();}function qs(e){new Set(e).size!==e.length&&f();}function Qs(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 ao=new Map;function Zs(e,t,n){let i=ao.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)),ao.set(n,i);}return i}function co(e){return !Oe()||e.idToken||e.disableRedirect?"legacy":"first-party"}function lo(e,t=()=>{},n=ea){let i=Ae(e),o=e.session.tokens,r=Oe()?Zs(i,e.session,e.decoded.projectId):void 0,c=Qs(i,r),u=Fn({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:Bn(c,a),organization:li(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,vt),A=>!("twoFactorRedirect"in A))),username:async(d,g)=>(await S(d),y(l("/sign-in/username",d,g,vt),A=>!("twoFactorRedirect"in A))),social:async(d,g)=>{if(await S(),co(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=>mi(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(co(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=>hi(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,yi),emailOtp:async(d,g)=>(await S(),y(l("/sign-in/email-otp",d,g,fi))),passkey:async(d,g)=>(await S(),s.signIn(d,g))},signUp:{email:async(d,g)=>(await S(),y(l("/sign-up/email",d,g,gi),A=>A.sessionCreated))},emailOtp:{sendVerificationOtp:(d,g)=>l("/email-otp/send-verification-otp",d,g,bi),verifyEmail:async(d,g)=>(await S(),y(l("/email-otp/verify-email",d,g,Ri)))},phoneOtp:{prepare:d=>l("/phone-otp/challenge",{},d,Oi),start:(d,g)=>l("/phone-otp/start",{...d,idempotencyKey:d.idempotencyKey??we()},g,Ai),verify:async(d,g)=>(await S(),y(l("/phone-otp/verify",d,g,wi)))},requestPasswordReset:(d,g)=>l("/request-password-reset",d,g,Ct),resetPassword:(d,g)=>l("/reset-password",d,g,Ct),sendVerificationEmail:(d,g)=>l("/send-verification-email",d,g,Si),passkey:{addPasskey:(d,g)=>s.add(d,g),listUserPasskeys:()=>c.request("/passkey/list-user-passkeys",{decode:$i}),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=>Gi(T,d.id,k))},deletePasskey:(d,g)=>l("/passkey/delete-passkey",d,g,Wi)},twoFactor:{enable:(d,g)=>l("/two-factor/enable",d,g,Ti),disable:(d,g)=>p(l("/two-factor/disable",d,g,Ii),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,Pi),verifyOtp:(d,g)=>y(l("/two-factor/verify-otp",d,g,Be)),generateBackupCodes:(d,g)=>l("/two-factor/generate-backup-codes",d,g,Ei)},signOut:d=>p(c.request("/sign-out",{method:"POST",body:{},fetchOptions:d,decode:ki}).then(g=>(o.endSession(),e.session.integration?.sessionEnded().then(()=>g)??g)),g=>g.success)}}function ea(){return {signIn:()=>uo(),add:()=>uo()}}function uo(){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 yo(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 go(c.error);let u;try{u=qi(c.data);}catch{return po()}let a;try{a=await n.authenticate({optionsJSON:u,useBrowserAutofill:o.autoFill});}catch(y){return mo(n,y,"AUTH_CANCELLED","Passkey authentication was cancelled.")}if(!ta(a))return fo();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:ji});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 go(u.error);let a;try{a=Bi(u.data);}catch{return po()}let h;try{h=await n.register({optionsJSON:a});}catch(y){return mo(n,y,"REGISTRATION_CANCELLED","Passkey registration was cancelled.")}if(!na(h))return fo();let{clientExtensionResults:s,...l}=h,p=await e.request("/passkey/verify-registration",{method:"POST",body:{response:l,name:c.value},fetchOptions:r,decode:y=>Ji(y,h.id,c.value)});return p.data&&t(),p}}}function po(){return {data:null,error:{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned invalid WebAuthn options."}}}function fo(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_WEBAUTHN_RESPONSE",message:"The platform returned an invalid passkey response."}}}function bo(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 ta(e){if(!bo(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 na(e){if(!bo(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.attestationObject=="string"}function go(e){return {data:null,error:e??{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned no WebAuthn options."}}}function mo(e,t,n,i){let o=oa(t,"page does not have focus"),r=e.errorCode?.(t),c=r!==void 0?r==="ERROR_CEREMONY_ABORTED":ho(t)==="AbortError",u=n!=="AUTH_CANCELLED",a=ia(r,ho(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 ia(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 ho(e){return e&&typeof e=="object"&&"name"in e&&typeof e.name=="string"?e.name:void 0}function oa(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 ra.stubThis(globalThis?.PublicKeyCredential!==void 0&&typeof globalThis.PublicKeyCredential=="function")}var ra={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 C=class extends Error{constructor({message:t,code:n,cause:i,name:o}){super(t,{cause:i}),Object.defineProperty(this,"code",{enumerable:true,configurable:true,writable:true,value:void 0}),this.name=o??i.name,this.code=n;}};function 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 C({message:"Registration ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else if(e.name==="ConstraintError"){if(n.authenticatorSelection?.requireResidentKey===true)return new C({message:"Discoverable credentials were required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT",cause:e});if(t.mediation==="conditional"&&n.authenticatorSelection?.userVerification==="required")return new C({message:"User verification was required during automatic registration but it could not be performed",code:"ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE",cause:e});if(n.authenticatorSelection?.userVerification==="required")return new C({message:"User verification was required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT",cause:e})}else {if(e.name==="InvalidStateError")return new C({message:"The authenticator was previously registered",code:"ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED",cause:e});if(e.name==="NotAllowedError")return new C({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="NotSupportedError")return n.pubKeyCredParams.filter(o=>o.type==="public-key").length===0?new C({message:'No entry in pubKeyCredParams was of type "public-key"',code:"ERROR_MALFORMED_PUBKEYCREDPARAMS",cause:e}):new C({message:"No available authenticator supported any of the specified pubKeyCredParams algorithms",code:"ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG",cause:e});if(e.name==="SecurityError"){let i=globalThis.location.hostname;if(et(i)){if(n.rp.id!==i)return new C({message:`The RP ID "${n.rp.id}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new C({message:`${globalThis.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="TypeError"){if(n.user.id.byteLength<1||n.user.id.byteLength>64)return new C({message:"User ID was not between 1 and 64 characters",code:"ERROR_INVALID_USER_ID_LENGTH",cause:e})}else if(e.name==="UnknownError")return new C({message:"The authenticator was unable to process the specified options, or could not create a new credential",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return e}var 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 sa=["cross-platform","platform"];function nt(e){if(e&&!(sa.indexOf(e)<0))return e}async function Oo(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 Ao({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){Kt("getPublicKeyAlgorithm()",b);}let p;if(typeof a.getPublicKey=="function")try{let b=a.getPublicKey();b!==null&&(p=j(b));}catch(b){Kt("getPublicKey()",b);}let y;if(typeof a.getAuthenticatorData=="function")try{y=j(a.getAuthenticatorData());}catch(b){Kt("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 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 wo(){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 So({error:e,options:t}){let{publicKey:n}=t;if(!n)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(t.signal instanceof AbortSignal)return new C({message:"Authentication ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else {if(e.name==="NotAllowedError")return new C({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="SecurityError"){let i=globalThis.location.hostname;if(et(i)){if(n.rpId!==i)return new C({message:`The RP ID "${n.rpId}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new C({message:`${globalThis.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="UnknownError")return new C({message:"The authenticator was unable to process the specified options, or could not create a new assertion signature",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return e}async function Ro(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 wo())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 So({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 ko={authenticate:e=>Ro(e),register:e=>Oo(e),errorCode:e=>e instanceof C?e.code:void 0};function Io(e){return `${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/consent`}async function Ht(e){let t=await $(e,Io(e),{init:{method:"GET",credentials:"include"},maxResponseBytes:65536,decode:aa});return t.response.status===401?{required:false}:ee(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 ee(await $(e,Io(e),{init:{method:"POST",headers:{"content-type":"application/json"},credentials:"include",body:JSON.stringify({version:t})},maxResponseBytes:64*1024,decode:ca}),"consent accept")}function aa(e){let t=m(e),n=P(t.required),i=ua(t.needsConsent),o=Po(t.version),r=To(t.termsUrl),c=To(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 ca(e){let t=m(e),n=Po(t.version);return {ok:P(t.ok),...n===void 0?{}:{version:n}}}function ua(e){if(e===void 0||typeof e=="boolean")return e;throw new TypeError("Invalid consent response.")}function Po(e){if(e===void 0||Number.isSafeInteger(e)&&e>=1)return e;throw new TypeError("Invalid consent response.")}function To(e){if(e===void 0||typeof e=="string"&&e.length<=4096)return e;throw new TypeError("Invalid consent response.")}var la=30;function da(e){return typeof e?.exp=="number"?e.exp:null}function pa(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 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>la)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:_=>fa(_,c!==null)});if(S.response.status===401)return l()&&i(),null;let d=ee(S,"token"),g=d.policyVersion,A=d.token,k=pa(A),T=da(k);if(l())if(T!==null){let _=typeof k?.sub=="string"?k.sub:null,K=typeof k?.org_id=="string"?k.org_id:null;if(!c||_){let w=JSON.stringify([e.projectBaseURL,_,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 fa(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 ga(e){let t=Bt(e),n=lo(e,t.clear,(u,a)=>yo(u,a,ko)),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:()=>Ht(e),acceptConsent:u=>qt(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 ma(e){if(typeof window>"u")throw new Error("Akedly Shield challenges must be solved in a browser.");let t=await ha(),n=e.challengeRequired?await t.solvePow(e.challenge,e.difficulty):null,i=e.turnstile.required?await t.getTurnstileToken(ya(e.turnstile.siteKey)):void 0;return {connectionId:e.connectionId,...n?{challengeToken:e.challengeToken,nonce:n.nonce}:{},...i?{turnstileToken:i}:{}}}async function ha(){return import('@akedly/shield')}function ya(e){if(!e)throw new Error("Akedly Shield did not provide a Turnstile site key.");return e}async function ba(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=>Aa(n,e)}),"public-config")}function Aa(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 z();let c=D(n.branding),u=D(n.legal);if(!se(n.enabledMethods,64)||!se(n.socialProviders,64)||!xo(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"||!xo(u,["termsUrl","privacyUrl"])||!Number.isSafeInteger(u.version)||u.version<0||typeof u.required!="boolean")throw z();if(n.socialProviderClientIds!==void 0){let a=D(n.socialProviderClientIds);if(Object.keys(a).length>64||Object.values(a).some(h=>typeof h!="string"||h.length>2048))throw z()}if(!X(n,["requireEmailVerification","twoFactor","mfaRequired","accountDeletion","organizations","sso","badge"])||!Eo(n.turnstileSiteKey)||!Eo(n.authTurnstileSiteKey)||typeof n.locale!="string"||n.locale.length===0||n.locale.length>64||!Number.isSafeInteger(n.configVersion)||n.configVersion<0)throw z();if(n.jwtIssuer!==null){let a=D(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 z()}if(n.signUp!==void 0){let a=D(n.signUp).mode;if(typeof a!="string"||!["open","restricted","allowlist","waitlist"].includes(a))throw z()}if(n.authentication!==void 0&&Oa(n.authentication),n.privacy!==void 0&&wa(n.privacy),n.emailVerification!==void 0){let a=D(n.emailVerification);if(!X(a,["required"])||a.method!=="link"&&a.method!=="code")throw z()}if(n.userModel!==void 0&&!X(D(n.userModel),["requireEmail","firstLastName","emailChange","accountDeletion"]))throw z();if(n.mfa!==void 0){let a=D(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 z()}if(n.captcha===void 0||n.captcha===null)n.captcha=typeof n.authTurnstileSiteKey=="string"&&n.authTurnstileSiteKey.length>0?{provider:"turnstile",siteKey:n.authTurnstileSiteKey}:null;else {let a=D(n.captcha);if(typeof a.provider!="string"||a.provider.length===0||a.provider.length>64||typeof a.siteKey!="string"||a.siteKey.length===0||a.siteKey.length>512)throw z();n.captcha={provider:a.provider,siteKey:a.siteKey};}return n}function 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 z(){return new TypeError("public-config returned an invalid response")}function D(e){if(!e||typeof e!="object"||Array.isArray(e))throw z();return e}function Eo(e){return e===null||typeof e=="string"&&e.length<=4096}function Oa(e){let t=D(e),n=D(t.email),i=D(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(D(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(D(t.passkey),["signIn","add"])||!Sa(D(t.passkey).relyingPartyId)||!X(D(t.username),["collectOnSignUp","signIn"]))throw z()}function wa(e){let t=D(e);if(!Array.isArray(t.notices)||!Array.isArray(t.consentPurposes)||t.notices.length>64||t.consentPurposes.length>64)throw z();for(let n of t.notices){let i=D(n);if(vo(i,"noticeId","noticeVersionId"),it(i.title,512),it(i.body,1e5),Co(i.digest),!se(i.activityCodes,128)||!se(i.purposeCodes,128)||typeof i.effectiveFrom!="string"||!Number.isFinite(Date.parse(i.effectiveFrom)))throw z()}for(let n of t.consentPurposes){let i=D(n);if(vo(i,"purposeId","purposeVersionId"),it(i.title,512),it(i.description,1e4),Co(i.digest),!se(i.activityCodes,128)||!se(i.dataCategories,128))throw z()}}function vo(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 z()}function it(e,t){let n=D(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 z()}function Co(e){let t=D(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 z()}function Sa(e){return e==null||typeof e=="string"}function X(e,t){return t.every(n=>typeof e[n]=="boolean")}function xo(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},Jt=class extends ve{constructor(n,i){super(`Rate limited. Retry after ${n}s.`,i);this.retryAfterSeconds=n;this.name="RateLimitedError";}retryAfterSeconds},$t=class extends ve{constructor(t="invalid publishable key",n){super(t,n),this.name="InvalidKeyError";}};var Do=["en","ar"];function Ra(e){return e==="ar"?"rtl":"ltr"}function ka(e){return typeof e=="string"&&Do.includes(e)}
|
|
3
|
+
exports.AUTH_CHALLENGE_HEADER=zn;exports.AUTH_LOCALE_HEADER=Ln;exports.AuthOwlError=ve;exports.AuthOwlHttpError=Le;exports.INVITATION_CLAIM_MAX_AGE_MS=En;exports.INVITATION_QUERY_PARAM=pt;exports.InvalidKeyError=$t;exports.LOCALES=Do;exports.RateLimitedError=Jt;exports.SESSION_TOKEN_HEADER=ct;exports.SESSION_TRANSPORT_BEARER=lt;exports.SESSION_TRANSPORT_HEADER=ut;exports.TransportError=F;exports.acceptConsent=qt;exports.activeLocale=mt;exports.captureInvitationClaim=dr;exports.clearInvitationClaim=ye;exports.createAuthOwlClient=ga;exports.createIdempotencyKey=we;exports.createMembershipHas=Wr;exports.createTokenClient=Bt;exports.decodePublishableKey=rt;exports.directionFor=Ra;exports.getConsentStatus=Ht;exports.getPublicConfig=ba;exports.isLocale=ka;exports.membershipHas=Ke;exports.membershipHasPermission=Fe;exports.membershipHasRole=Jn;exports.membershipHasTeam=jn;exports.readInvitationClaim=he;exports.readLastUsedSignInMethod=fr;exports.recordLastUsedSignInMethod=gr;exports.rememberPendingSignInMethod=mr;exports.resolveAuthTarget=In;exports.resolveConfig=lr;exports.resolveProjectCapabilities=yr;exports.sessionChallengeIsEphemeral=Ko;exports.sessionCookieName=zo;exports.setActiveLocale=vr;exports.settlePendingSignInMethod=hr;exports.solvePhoneOtpChallenge=ma;exports.withSessionTransportIntegration=Xo;
|