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