@authowl/core 0.21.0 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,3 +1,3 @@
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;
1
+ 'use strict';var Co=Object.defineProperty;var ot=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(i){throw n=[i],i}};var Wt=(e,t)=>{for(var n in t)Co(e,n,{get:t[n],enumerable:true});};var yn={};Wt(yn,{abandonSession:()=>ln,bindingNonce:()=>mn,boundedSessionFetch:()=>De,clearSessionProofKeyMemoryForTests:()=>Qo,cookieCapability:()=>un,createSessionProof:()=>hn,createStoredSessionProof:()=>ir,prepareSenderConstrainedSession:()=>Yo,sessionProofKey:()=>_e});async function De(e,t,n,i){let o=new AbortController,r,c=new Promise((l,a)=>{r=setTimeout(()=>{o.abort(),a(new Error("AuthOwl session transport request timed out."));},i);});try{return await Promise.race([e(t,{...n,signal:o.signal}),c])}finally{clearTimeout(r);}}async function un(e,t,n){let i=await De(e,t,{method:"POST",credentials:"include",headers:n},1e4);if(i.status===404||i.status===405)return "legacy";if(i.status!==204)throw new Error("AuthOwl cookie capability check failed.");let o=await De(e,t,{method:"GET",credentials:"include",headers:n},1e4);if(o.status===404||o.status===405)return "legacy";if(o.status!==200)throw new Error("AuthOwl cookie capability check failed.");let r=await o.text();if(new TextEncoder().encode(r).byteLength>128)throw new Error("AuthOwl cookie capability response is invalid.");let c;try{c=JSON.parse(r);}catch{throw new Error("AuthOwl cookie capability response is invalid.")}if(!c||typeof c!="object"||Array.isArray(c)||Object.keys(c).length!==1||typeof c.cookieSupported!="boolean")throw new Error("AuthOwl cookie capability response is invalid.");return c.cookieSupported}async function ln(e,t,n,i){let o=new Headers(n);o.set("authorization",i),o.set("x-authowl-session-transport","bearer");try{await De(e,t,{method:"POST",credentials:"include",headers:o},2e3);}catch{}}async function Yo(e){let{tokens:t}=e;if(t.beginSession(e.start),!e.clientOrigin)return {binding:null,cookieOnly:false};let n=null;if(t.hasToken()){let r=t.bindingThumbprint();if(r)try{let c=await _e(e.clientOrigin);if(c.thumbprint!==r)throw new Error("Session proof key changed.");n=c;}catch{let c=new Headers;t.declareOn(c);let l=c.get("authorization");l&&await ln(e.fetcher,`${e.projectBaseURL}/session/abandon`,e.headers,l),t.endSession(),t.beginSession(e.start);}}let i;try{i=await un(e.fetcher,`${e.projectBaseURL}/session/cookie-capability`,e.headers);}catch{return t.useCookieTransport(),{binding:null,cookieOnly:false}}if(i==="legacy")return {binding:null,cookieOnly:false};if(i)return t.hasToken()?{binding:null,cookieOnly:true}:(t.useCookieTransport(),{binding:null,cookieOnly:false});let o=n??await _e(e.clientOrigin);return t.useBoundBearerTransport(o.thumbprint,o.persistent),{binding:{key:o,nonce:mn()},cookieOnly:false}}function ae(e){let t="";for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function xe(e){return new TextEncoder().encode(e)}async function dn(e){return ae(new Uint8Array(await crypto.subtle.digest("SHA-256",xe(e))))}function pn(e){return e.kty==="EC"&&e.crv==="P-256"&&typeof e.x=="string"&&e.x.length>0&&typeof e.y=="string"&&e.y.length>0&&e.d===void 0}async function fn(e){return dn(JSON.stringify({crv:e.crv,kty:e.kty,x:e.x,y:e.y}))}function Xo(e){if(!e||typeof e!="object")return false;let t=e,n=t.algorithm;return t.type==="private"&&t.extractable===false&&t.usages.length===1&&t.usages[0]==="sign"&&n.name==="ECDSA"&&n.namedCurve==="P-256"}function Qo(){ve.clear();}async function Zo(e){if(!e||typeof e!="object")return null;let t=e;if(!Xo(t.privateKey)||!t.publicJwk||!pn(t.publicJwk))return null;let n=await fn(t.publicJwk);return t.thumbprint!==n?null:{privateKey:t.privateKey,publicJwk:t.publicJwk,thumbprint:n,persistent:true}}function gn(){return typeof indexedDB>"u"?Promise.resolve(null):new Promise(e=>{let t;try{t=indexedDB.open(Wo,1);}catch{e(null);return}t.onupgradeneeded=()=>{t.result.objectStoreNames.contains(ce)||t.result.createObjectStore(ce,{keyPath:"origin"});},t.onsuccess=()=>e(t.result),t.onerror=()=>e(null),t.onblocked=()=>e(null);})}async function cn(e){let t=await gn();if(!t)return null;try{let n=await new Promise(i=>{let o=t.transaction(ce,"readonly").objectStore(ce).get(e);o.onsuccess=()=>i(o.result),o.onerror=()=>i(null);});return await Zo(n)}finally{t.close();}}async function er(e,t){let n=await gn();if(!n)return "unavailable";try{return await new Promise(i=>{let o;try{o=n.transaction(ce,"readwrite"),o.objectStore(ce).add({origin:e,privateKey:t.privateKey,publicJwk:t.publicJwk,thumbprint:t.thumbprint});}catch{i("unavailable");return}o.oncomplete=()=>i("stored"),o.onerror=()=>{let r=o.error;i(r?.name==="ConstraintError"?"conflict":"unavailable");},o.onabort=()=>{let r=o.error;i(r?.name==="ConstraintError"?"conflict":"unavailable");};})}finally{n.close();}}async function tr(){let e=await crypto.subtle.generateKey({name:"ECDSA",namedCurve:"P-256"},false,["sign","verify"]),t=await crypto.subtle.exportKey("jwk",e.publicKey);if(!pn(t))throw new Error("The browser produced an invalid proof key.");return {privateKey:e.privateKey,publicJwk:t,thumbprint:await fn(t),persistent:false}}function _e(e){let t=ve.get(e);if(t)return t;let n=(async()=>{let i=await cn(e);if(i)return i;let o=await tr(),r=await er(e,o);return r==="stored"?{...o,persistent:true}:r==="conflict"?await cn(e)??o:o})();return ve.set(e,n),n.catch(()=>ve.delete(e)),n}function mn(){return ae(crypto.getRandomValues(new Uint8Array(32)))}function nr(e){let t=new URL(e);return t.search="",t.hash="",t.toString()}async function hn(e){let t=ae(xe(JSON.stringify({typ:$o,alg:Go,jwk:e.key.publicJwk}))),n=ae(xe(JSON.stringify({htm:e.method.toUpperCase(),htu:nr(e.url),iat:Math.floor(Date.now()/1e3),jti:ae(crypto.getRandomValues(new Uint8Array(16))),ath:await dn(e.token)}))),i=`${t}.${n}`,o=await crypto.subtle.sign({name:"ECDSA",hash:"SHA-256"},e.key.privateKey,xe(i));return `${i}.${ae(new Uint8Array(o))}`}async function ir(e){let t=await _e(e.origin);if(t.thumbprint!==e.expectedThumbprint)throw new Error("Session proof key changed.");return hn({key:t,method:e.method,url:e.url,token:e.token})}var $o,Go,Wo,ce,ve,An=ot(()=>{"use strict";$o="pop+jwt",Go="ES256",Wo="authowl-session-proof",ce="origin-keys",ve=new Map;});function Oe(){return typeof window<"u"&&typeof document<"u"&&typeof crypto<"u"&&typeof crypto.subtle?.digest=="function"}var Rt=ot(()=>{"use strict";});var Xe={};Wt(Xe,{beginCrossSiteSignIn:()=>js,challengeFor:()=>to,completeCrossSiteSignIn:()=>Js,takeHandoffCode:()=>Mt});function eo(e){let t="";for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function to(e){let t=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e));return eo(new Uint8Array(t))}function Vs(){return eo(crypto.getRandomValues(new Uint8Array(Fs)))}function no(e,t){let n=window.location.protocol==="https:"?"; Secure":"";document.cookie=`${Zi}=${e}; Path=/; Max-Age=${t}; SameSite=Lax${n}`;}function qs(){for(let e of document.cookie.split(";")){let t=e.indexOf("=");if(!(t<0)&&e.slice(0,t).trim()===Zi)return e.slice(t+1).trim()||null}return null}function Bs(){no("",0);}function Qi(e){return new URL(e,window.location.href).toString()}async function js(e,t){let n=t.callbackURL?Qi(t.callbackURL):null;if(n&&new URL(n).origin!==window.location.origin)return null;let i=Vs(),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 Hs){let l=t[c];l&&o.searchParams.set(c,l);}let r=`${window.location.origin}${window.location.pathname}${window.location.search}`;o.searchParams.set("cb",n??r);for(let[c,l]of [["err",t.errorCallbackURL],["new",t.newUserCallbackURL]])l&&o.searchParams.set(c,Qi(l));return o.searchParams.set("challenge",await to(i)),no(i,Ks),o.toString()}function Mt(e){if(typeof window>"u")return null;let t=window.location.hash;if(!t.includes(Lt))return null;let n=new URLSearchParams(t.replace(/^#/,"")),i=n.get(Lt);if(!i||e!==void 0&&i!==e)return null;n.delete(Lt);let o=n.toString();return window.history.replaceState(window.history.state,"",`${window.location.pathname}${window.location.search}${o?`#${o}`:""}`),i}async function Js(e,t,n){if(!Oe())return false;let i=n??Mt();if(!i)return false;n&&Mt(n);let o=qs();if(Bs(),!o)return false;await t.prepareSession({remember:true});let{error:r}=await e.request("/session/exchange",{method:"POST",body:{code:i,verifier:o}});return r===null}var Zi,Lt,Fs,Ks,Hs,Qe=ot(()=>{"use strict";Rt();Zi="authowl_handoff_verifier",Lt="authowl_code",Fs=32,Ks=900,Hs=["email","providerId","domain","organizationSlug"];});var vo=/^(pk_(live|test))_([0-9a-f-]{36})_([A-Za-z0-9]{20,})$/i,xo=/^sk_/i;function rt(e){if(typeof e!="string"||e.length===0)throw new Error("publishableKey is required");if(xo.test(e))throw new Error("A secret key was passed where a publishable key was expected. Never embed secret keys in client code.");let t=vo.exec(e);if(!t)throw new Error("publishableKey is malformed; expected pk_(live|test)_<uuid>_<base62>");return {prefix:t[1].toLowerCase(),env:t[2].toLowerCase(),projectId:t[3].toLowerCase()}}function Do(e,t){let n=`p_${e.toLowerCase().replace(/-/g,"")}`;return `${t?.secure?"__Secure-":""}${n}.session_token`}var Yt=/^http:\/\/(?:(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*localhost|127\.0\.0\.1|\[::1\])(?::\d+)?(?:\/|$)/i;function st(e,t){throw new Error(`${e}: ${t}`)}function Xt(e,t){let n;try{n=new URL(String(e));}catch{throw new TypeError("Transport URL must be absolute.")}if(n.username||n.password||n.hash)throw new TypeError("Transport URL must not contain credentials or a fragment.");let i=n.toString();if(n.protocol!=="https:"&&!(n.protocol==="http:"&&t.allowHttpLoopback&&Yt.test(i)))throw new TypeError("Transport URL must use HTTPS except on approved loopback.");return n}function Qt(e,t){(typeof e!="string"||!/^https?:\/\/[^/?#@\\\s]+\/?$/i.test(e))&&st("apiUrl","origin required");let n;try{n=new URL(e);}catch{st("apiUrl","origin required");}return n.protocol==="http:"&&(!t.allowHttpLoopback||!Yt.test(e))&&st("apiUrl","HTTPS required except exact loopback"),n.origin}function V(e,t){try{return e?.getItem(t)??null}catch{return null}}function L(e,t,n){try{n===null?e?.removeItem(t):e?.setItem(t,n);}catch{}}function D(){try{return globalThis.localStorage}catch{return}}function Z(){try{return globalThis.sessionStorage}catch{return}}var _o="authowl.session-challenge",Uo=e=>`${_o}.${e}`,No="set-auth-challenge",at="x-authowl-challenge";function zo(e){let t=e.get(at);return me(t)?tn(t).some(([n,i])=>n.endsWith(".dont_remember")&&i.length>0):false}var en="INVALID_TWO_FACTOR_COOKIE",Lo=2048,me=e=>e!==null&&e.length<=Lo,Zt=/^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/;function tn(e){let t=[];for(let n of e.split(";")){let i=n.trimStart(),o=i.indexOf("=");o<=0||t.push([i.slice(0,o).trimEnd(),i.slice(o+1)]);}return t}function nn(e){let t=Uo(e),n=new Map;function i(){return n.size===0?null:[...n].map(([l,a])=>`${l}=${a}`).join("; ")}function o(){let l=i();L(Z(),t,me(l)?l:null);}function r(l){for(let[a,h]of tn(l))Zt.test(a)&&(h===""?n.delete(a):Zt.test(h)&&n.set(a,h));}let c=V(Z(),t);return me(c)&&r(c),{presentOn(l){let a=i();l.delete(at),me(a)&&l.set(at,a);},observe(l){let a=l.get(No);me(a)&&(r(a),o());},clear(){n.clear(),o();}}}var ct="set-auth-token",ut="x-authowl-session-transport",lt="bearer";var Mo="authowl.session-token",Fo="authowl.session-binding",Ko="authowl.cookie-transport",rn="ok",sn="bearer",Ho=e=>`${Mo}.${e}`,Vo=e=>`${Fo}.${e}`,qo=e=>`${Ko}.${e}`;function Bo(e){return e===rn?"cookies":e===sn?"bearer":"unknown"}function jo(e){return e==="cookies"?rn:e==="bearer"?sn:null}function Jo(e){let t=Ho(e),n=Vo(e),i=qo(e),o=nn(e),r=null,c=null,l=null,a=false,h=null,s=Bo(V(D(),i)),d=()=>s==="unknown",p=0,y=null,u=false;function g(){let O=V(Z(),t);if(O!==null)return a=true,O;let K=V(D(),t);return K!==null?(a=false,K):null}function A(){return V(Z(),n)??V(D(),n)}r=g(),c=r===null?null:A(),r!==null&&d()&&(u=true);function b(){if(!(!u||!y)){u=false;try{y();}catch{}}}function R(){let O=s==="bearer"?r:null,K=O===null?null:c,[ge,Gt]=a?[Z(),D()]:[D(),Z()];L(Gt,t,null),L(Gt,n,null),L(ge,t,O),L(ge,n,K);}function x(O){O!==null&&h!==null&&(a=h,h=null),O!==null&&l!==null?(c=l,l=null):O===null&&(c=null),r=O,R(),O!==null&&d()&&(u=true,b());}function N(O){s=O,L(D(),i,jo(O));}function z(){N("unknown"),u=false;}function F(){return r===null&&(r=g(),c=r===null?null:A()),r}function w(){let O=g();return O!==null&&(r=O,c=A()),r}function E(O){w()===O&&R();}function Q(){p+=1,h=null,l=null,a=false,x(null),o.clear(),z();}let ee=()=>s!=="cookies";return {hasToken:()=>F()!==null,bindingThumbprint:()=>(F(),c),declareOn(O){if(O.has("authorization"))return false;let K=F();return !K&&!ee()?false:(K&&O.set("authorization",`Bearer ${K}`),O.set(ut,lt),o.presentOn(O),true)},wantsToken:ee,needsProbe:d,observe(O){let K=O.get(ct);K&&x(K),o.observe(O);},dropChallenge:o.clear,measureWith(O){y=O,b();},beginRead(){let O=F(),K=p;return {carriedToken:O!==null,endIfDead(){O!==null&&w()===O&&p===K&&Q();},recordCookieVerdict(ge){if(p===K&&d()){if(N(ge?"cookies":"bearer"),ge){x(null);return}E(O);}}}},beginSession({remember:O}){p+=1,h=!O,o.clear(),z();},useCookieTransport(){F()===null&&(l=null,N("cookies"));},completeCookieTransport(){N("cookies"),x(null);},useBoundBearerTransport(O,K){if(!O)throw new Error("A session proof thumbprint is required.");l=O,K||(h=true),N("bearer");},endSession:Q}}var on=new Map;function an(e){let t=on.get(e);if(t)return t;let n=Jo(e);return on.set(e,n),n}var dt="x-authowl-session-proof",bn="x-authowl-session-binding",On="x-authowl-session-binding-proof",Ue=()=>Promise.resolve().then(()=>(An(),yn));function or(e,t){return t?.headers?new Headers(t.headers):typeof e=="object"&&e!==null&&"headers"in e?new Headers(e.headers):new Headers}function wn(e,t){let n=an(e.projectId),i=(p,y)=>(t??globalThis.fetch)(p,y),o=typeof globalThis.location=="object"&&typeof globalThis.location.origin=="string"&&globalThis.location.origin!=="null"?globalThis.location.origin:null,r=null,c=false,l=()=>new Headers({"x-publishable-key":e.publishableKey});async function a(p){let y=p.get("authorization");y&&await Ue().then(u=>u.abandonSession(i,`${e.projectBaseURL}/session/abandon`,l(),y));}async function h(p){r=null,c=false;let y=await Ue().then(u=>u.prepareSenderConstrainedSession({tokens:n,start:p,clientOrigin:o,fetcher:i,projectBaseURL:e.projectBaseURL,headers:l()}));r=y.binding,c=y.cookieOnly;}return {fetch:async(p,y)=>{if(y?.credentials==="omit"||!n.wantsToken())return i(p,y);let u=or(p,y),g=n.declareOn(u),A=u.get("authorization"),b=(y?.method??(typeof p=="object"&&p!==null&&"method"in p?p.method:"GET")).toUpperCase(),R=typeof p=="string"?p:p instanceof URL?p.toString():p.url;if(g&&o){let N=!!A;if(A){let z=A.replace(/^Bearer\s+/i,""),F=n.bindingThumbprint();if(F)try{u.set(dt,await Ue().then(w=>w.createStoredSessionProof({origin:o,expectedThumbprint:F,method:b,url:R,token:z})));}catch{await a(u),n.endSession(),u.delete("authorization"),u.delete(dt),u.delete(bn),u.delete(On),N=false;}}if(r){let z=r;u.set(bn,z.nonce),u.set(N?On:dt,await Ue().then(F=>F.createSessionProof({key:z.key,method:b,url:R,token:z.nonce})));}}let x=await i(p,{...y,headers:u});return g&&(x.status===401&&A&&(new URL(R).pathname.endsWith("/get-session")||new URL(R).pathname.endsWith("/sign-out"))?(await a(u),n.endSession(),r=null,c=false):(n.observe(x.headers),x.headers.has("set-auth-token")&&(c&&n.completeCookieTransport(),r=null,c=false))),x},probe:i,tokens:n,prepareSession:h}}function Rn(e){if(!e||typeof e!="object")throw new Error("AuthConfig is required");let t=rt(e.publishableKey),n=Qt(e.apiUrl,{allowHttpLoopback:t.env==="test"});return {publishableKey:e.publishableKey,apiUrl:n,decoded:t,projectBaseURL:`${n}/api/projects/${t.projectId}/auth`}}function rr(e){let t=Rn(e),{fetch:n,...i}=wn({projectId:t.decoded.projectId,projectBaseURL:t.projectBaseURL,publishableKey:t.publishableKey},e.fetch);return {...e,...t,fetch:n,session:i}}var pt="authowl_invitation",ft="authowl.invitation-claim",Sn=/^[A-Za-z0-9_-]{1,128}$/,kn=10080*60*1e3;function sr(e=Date.now()){if(typeof window>"u")return he(e);let t;try{t=new URL(window.location.href);}catch{return he(e)}let n=t.searchParams.get(pt);if(n===null)return he(e);t.searchParams.delete(pt);try{window.history.replaceState(window.history.state,"",t.toString());}catch{}if(!Sn.test(n))return he(e);let i={id:n,capturedAt:e};return L(D(),ft,JSON.stringify(i)),i}function he(e=Date.now()){let t=V(D(),ft);if(t===null)return null;let n;try{n=JSON.parse(t);}catch{return ye(),null}if(typeof n!="object"||n===null)return ye(),null;let{id:i,capturedAt:o}=n;return typeof i!="string"||!Sn.test(i)||typeof o!="number"||e-o>kn?(ye(),null):{id:i,capturedAt:o}}function ye(){L(D(),ft,null);}var Tn="authowl.last-used-method",ar=/^(password|username|magic-link|email-otp|phone-otp|passkey|sso|social:[a-z0-9][a-z0-9_-]{0,63})$/,gt=e=>`${Tn}.${e}`;function ze(e){return ar.test(e)}function cr(e){let t=V(D(),gt(e));return t===null||!ze(t)?null:t}function ur(e,t){ze(t)&&(L(D(),Ne(e),null),L(D(),gt(e),t));}var Ne=e=>`${Tn}.pending.${e}`;function lr(e,t){ze(t)&&L(D(),Ne(e),t);}function dr(e,t){let n=V(D(),Ne(e));L(D(),Ne(e),null),t&&n!==null&&ze(n)&&L(D(),gt(e),n);}function pr(e){let t=e?.enabledMethods??["password"],n=t.includes("password"),i=t.includes("passkey"),o=e?.authentication,r=e?.mfa;return {emailSignUp:o?.email.signUp??t.some(c=>c==="password"||c==="magic_link"||c==="email_otp"),passwordSignUp:o?.password.signUp??n,phoneSignUp:o?.phone.signUp??t.includes("phone_otp"),passwordSignIn:o?.email.signIn.includes("password")??n,passwordMinLength:o?.password.minLength??8,passwordMaxLength:o?.password.maxLength??128,magicLinkSignIn:o?.email.signIn.includes("magic_link")??t.includes("magic_link"),emailOtpSignIn:o?.email.signIn.includes("email_otp")??t.includes("email_otp"),phoneSignIn:o?.phone.signIn??t.includes("phone_otp"),usernameSignIn:o?.username.signIn??false,collectUsername:o?.username.collectOnSignUp??false,passkeySignIn:o?.passkey.signIn??i,passkeyAdd:o?.passkey.add??i,firstLastName:e?.userModel?.firstLastName??false,emailChange:e===null?false:e.userModel?.emailChange??true,accountDeletion:e?.userModel?.accountDeletion??e?.accountDeletion??false,emailVerificationRequired:e?.emailVerification?.required??e?.requireEmailVerification??false,emailVerificationMethod:e?.emailVerification?.method??"link",totp:r?.totp??e?.twoFactor??false,mfaRequired:r?.required??e?.mfaRequired??false,backupCodes:r?.backupCodes??e?.twoFactor??false,legacyNameField:e?.authentication===void 0}}var fr=1e4,gr=1024*1024,M=class extends Error{kind;requestId;constructor(t,n){super(Rr(t)),this.name="TransportError",this.kind=t,this.requestId=n;}},En=new WeakSet;function H(e,t){let n=new M(e,t);return En.add(n),n}async function Cn({fetchImpl:e,url:t,init:n={},timeoutMs:i=fr,maxResponseBytes:o=gr,allowHttpLoopback:r=false,decode:c}){In(i,"timeoutMs"),In(o,"maxResponseBytes");let l=Xt(t,{allowHttpLoopback:r}),a=n.signal,h=new AbortController,s=null,d,p=new Promise(A=>{d=A;}),y=A=>{s===null&&(s=A,d({type:"abort",kind:A}),h.abort());},u=()=>y("aborted");a?.addEventListener("abort",u,{once:true});let g=setTimeout(()=>y("timeout"),i);a?.aborted&&u();try{if(s!==null)throw H(s);let A;try{A=await Promise.race([e(l.toString(),{...n,redirect:"error",signal:h.signal}).then(F=>({type:"response",response:F})),p]);}catch{throw H(s??"network")}if(A.type==="abort")throw H(A.kind);if(!mr(A.response))throw H("invalid_response");let b=A.response,R=wr(b.headers),x=await hr(b,o,p,()=>s,R),N=br(b,x,R),z;try{z=b.ok&&c?c(N,Object.freeze({status:b.status})):N;}catch{throw H("invalid_response",R)}return {response:b,data:z,...R===void 0?{}:{requestId:R}}}catch(A){throw A instanceof M&&En.has(A)?A:H(s??"network")}finally{clearTimeout(g),a?.removeEventListener("abort",u);}}function mr(e){if(!e||typeof e!="object")return false;let t=e;return Number.isInteger(t.status)&&t.status>=0&&t.status<=599&&typeof t.statusText=="string"&&typeof t.ok=="boolean"&&typeof t.headers?.get=="function"&&(t.body===null||typeof t.body=="object"&&typeof t.body?.getReader=="function"&&typeof t.body.cancel=="function")}async function hr(e,t,n,i,o){let r=e.headers.get("content-length");if(r!==null){if(!/^\d+$/.test(r))throw Pn(e.body),H("invalid_response",o);if(Number(r)>t)throw Pn(e.body),H("response_too_large",o)}if(!e.body)return "";let c;try{c=e.body.getReader();}catch{throw H("network",o)}let l=[],a=0,h=null;try{for(;;){let p;try{p=await Promise.race([c.read(),n]);}catch{h=H(i()??"network",o);break}if(yr(p)){h=H(p.kind,o);break}let{done:y,value:u}=p;if(y)break;if(u.byteLength!==0){if(a+=u.byteLength,a>t){h=H("response_too_large",o);break}l.push(u);}}}finally{h&&Ar(c);try{c.releaseLock();}catch{}}if(h)throw h;let s=new Uint8Array(a),d=0;for(let p of l)s.set(p,d),d+=p.byteLength;try{return new TextDecoder("utf-8",{fatal:!0}).decode(s)}catch{throw H("invalid_response",o)}}function yr(e){return "type"in e&&e.type==="abort"}function Pn(e){if(e)try{e.cancel().catch(()=>{});}catch{}}function Ar(e){try{e.cancel().catch(()=>{});}catch{}}function br(e,t,n){if(e.status===204||e.status===205)return null;let i=Or(e.headers.get("content-type"));if(!e.ok&&(!i||t.length===0))return null;if(!i||t.length===0)throw H("invalid_response",n);try{return JSON.parse(t)}catch{if(!e.ok)return null;throw H("invalid_response",n)}}function Or(e){if(e===null)return false;let t=e.split(";",1)[0]?.trim().toLowerCase();return t==="application/json"||t?.endsWith("+json")===true}function wr(e){let t=e.get("x-request-id")?.trim();if(!(!t||t.length>256||!/^[A-Za-z0-9._:-]+$/.test(t)))return t}function In(e,t){if(!Number.isInteger(e)||e<=0)throw new TypeError(`${t} must be a positive integer.`)}function Rr(e){switch(e){case "aborted":return "The request was cancelled.";case "timeout":return "The request timed out.";case "response_too_large":return "The response exceeded the allowed size.";case "invalid_response":return "The service returned an invalid response.";case "network":return "The network request could not be completed."}}var Le=class extends Error{status;requestId;constructor(t,n,i){super(`${t} request failed with status ${n.status}.`),this.name="AuthOwlHttpError",this.status=n.status,this.requestId=i;}};function $(e,t,n={}){let i=new Headers(n.init?.headers);return i.set("x-publishable-key",e.publishableKey),Cn({fetchImpl:e.fetch,url:t,init:{...n.init,headers:i},allowHttpLoopback:e.decoded.env==="test",...n.timeoutMs===void 0?{}:{timeoutMs:n.timeoutMs},...n.maxResponseBytes===void 0?{}:{maxResponseBytes:n.maxResponseBytes},...n.decode===void 0?{}:{decode:n.decode}})}function te(e,t){if(!e.response.ok)throw new Le(t,e.response,e.requestId);return e.data}var ne=new Map,Sr=/^[a-z]{2}$/;function kr(e,t){if(typeof window>"u")return ()=>{};if(t===null)return ne.delete(e),()=>{};let n=t.trim().toLowerCase();if(!Sr.test(n))return ()=>{};let i=Symbol(e),o=ne.get(e)??[];return o.push({token:i,locale:n}),ne.set(e,o),()=>{let r=ne.get(e);if(!r)return;let c=r.filter(l=>l.token!==i);c.length===0?ne.delete(e):ne.set(e,c);}}function mt(e){return typeof window>"u"?null:ne.get(e)?.at(-1)?.locale??null}var Dn="x-authowl-turnstile-token",_n="x-authowl-locale",Tr=1e4,Pr=32,Ir=2e4;function ue(e,t){return {post:(n,i,o,r)=>e.request(n,{method:"POST",body:i,fetchOptions:o,decode:r}),mutation:async(n,i)=>{let o=await n;return o.error===null&&(i===void 0||o.data!==null&&i(o.data))&&t(),o}}}function be(e,t=e.projectBaseURL){return {async request(n,i={}){let o=vr(t,n,i.query),r=i.method??(i.body===void 0?"GET":"POST"),c=new Headers(i.fetchOptions?.headers);i.fetchOptions?.authChallengeToken&&c.set(Dn,i.fetchOptions.authChallengeToken);let l=mt(e.decoded.projectId);l&&c.set(_n,l),i.body!==void 0&&c.set("content-type","application/json");let a={method:r,headers:c,credentials:i.credentials??"include",...i.body===void 0?{}:{body:JSON.stringify(i.body)}},h=Object.freeze({method:r,path:n});await i.fetchOptions?.onRequest?.(h);let s=Cr(r,i.fetchOptions),d;try{d=await Er(e,o,{...a,signal:i.fetchOptions?.signal},s);}catch(b){let R=xn(b);return await i.fetchOptions?.onError?.(ht(h,R,_r(b))),{data:null,error:R}}let{response:p,requestId:y}=d,u=zr(n,d.data),g=u;if(p.ok)try{g=At(u),i.decode&&(g=i.decode(g));}catch{let b=xn(new M("invalid_response",y));return await i.fetchOptions?.onError?.(ht(h,b,"invalid_response")),{data:null,error:b}}let A=Object.freeze({...h,status:p.status,...y===void 0?{}:{requestId:y}});if(await i.fetchOptions?.onResponse?.(A),!p.ok){let b=xr(p,u,y);return b.code===en&&e.session.tokens.dropChallenge(),await i.fetchOptions?.onError?.(ht(h,b,"api")),{data:null,error:b}}return await i.fetchOptions?.onSuccess?.(A),{data:g,error:null}}}}async function Er(e,t,n,i){let o=Date.now()+Tr;for(let r=0;r<i;r+=1){let c=o-Date.now();if(c<=0)throw new M("timeout");try{let l=await $(e,t,{init:n,timeoutMs:Math.max(1,Math.ceil(c))});if(l.response.status<500||r===i-1)return l}catch(l){if(r===i-1||!(l instanceof M)||l.kind!=="network")throw l}await Ur(50*2**r,n.signal,o);}throw new M("network")}function Cr(e,t){if(e!=="GET"||t?.authChallengeToken)return 1;let n=t?.retry;return typeof n!="number"||!Number.isFinite(n)?1:Math.min(Math.max(Math.trunc(n),0),3)+1}function vr(e,t,n){let i=new URL(`${e}${t.startsWith("/")?t:`/${t}`}`);for(let[o,r]of Object.entries(n??{}))r!==void 0&&i.searchParams.set(o,String(r));return i.toString()}function xr(e,t,n){let i=Ae(t)?t:{},o=Dr(i,e.headers);return {status:e.status,statusText:e.statusText,code:typeof i.code=="string"?i.code:void 0,...n===void 0?{}:{requestId:n},...typeof i.current_version=="number"?{currentVersion:i.current_version}:{},...o!==void 0?{retryAfterSeconds:o}:{},message:typeof i.message=="string"?i.message:typeof i.error=="string"?i.error:typeof i.detail=="string"?i.detail:e.statusText||"Request failed"}}function Dr(e,t){let n=(typeof e.retryAfterSeconds=="number"&&Number.isFinite(e.retryAfterSeconds)?e.retryAfterSeconds:void 0)??vn(t.get("retry-after"))??vn(t.get("x-retry-after"));if(n!==void 0)return Math.min(Math.max(Math.trunc(n),1),86400)}function vn(e){if(!e)return;let t=e.trim();if(!/^\d+$/.test(t))return;let n=Number(t);return Number.isFinite(n)?n:void 0}function xn(e){let t=e instanceof M?e.kind:"network";return {status:0,...{aborted:{statusText:"ABORTED",code:"REQUEST_ABORTED",message:"The request was cancelled."},timeout:{statusText:"TIMEOUT",code:"REQUEST_TIMEOUT",message:"The request timed out."},response_too_large:{statusText:"INVALID_RESPONSE",code:"RESPONSE_TOO_LARGE",message:"The service response was too large."},invalid_response:{statusText:"INVALID_RESPONSE",code:"INVALID_RESPONSE",message:"The service returned an invalid response."},network:{statusText:"FETCH_ERROR",code:"FETCH_ERROR",message:"Network request failed."}}[t],...e instanceof M&&e.requestId?{requestId:e.requestId}:{}}}function ht(e,t,n){return Object.freeze({...e,status:t.status??0,...t.requestId===void 0?{}:{requestId:t.requestId},failure:n})}function _r(e){return e instanceof M?e.kind:"network"}function Ur(e,t,n){return new Promise((i,o)=>{if(t?.aborted){o(new M("aborted"));return}let r=n-Date.now();if(r<=0){o(new M("timeout"));return}let c=Math.min(e,r),l=()=>{clearTimeout(a),o(new M("aborted"));},a=setTimeout(()=>{t?.removeEventListener("abort",l),Date.now()>=n?o(new M("timeout")):i();},c);t?.addEventListener("abort",l,{once:true}),t?.aborted&&l();})}function At(e,t="",n=0,i={nodes:0}){if(i.nodes+=1,n>Pr||i.nodes>Ir)throw new Error("response traversal limit exceeded");if(typeof e=="string"&&/^(?:createdAt|updatedAt|expiresAt)$/.test(t)){let o=new Date(e);return Number.isNaN(o.getTime())?e:o}return Array.isArray(e)?e.map(o=>At(o,"",n+1,i)):Ae(e)?Object.fromEntries(Object.entries(e).map(([o,r])=>[o,Nr(o)?r:At(r,o,n+1,i)])):e}function Nr(e){return e==="metadata"||e==="public_metadata"||e==="unsafe_metadata"||e==="private_metadata"||e==="publicMetadata"||e==="unsafeMetadata"||e==="privateMetadata"}function zr(e,t){if(e==="/list-sessions"&&Array.isArray(t))return t.map(o=>Ae(o)?yt(o):o);if(!Ae(t))return t;let i=e==="/change-password"||e==="/passkey/verify-authentication"||e==="/phone-otp/verify"||e==="/sign-up/email"||e.startsWith("/sign-in/")||e.startsWith("/two-factor/verify-")?yt(t):t;return e==="/sign-up/email"&&!("sessionCreated"in i)&&(i={...i,sessionCreated:typeof t.token=="string"&&t.token.length>0}),(e==="/get-session"||e==="/passkey/verify-authentication")&&Ae(i.session)&&(i={...i,session:yt(i.session)}),i}function yt(e){if(!Object.hasOwn(e,"token"))return e;let t={...e};return delete t.token,t}function Ae(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}var Lr=new Set(["__proto__","constructor","prototype"]);function m(e){(!e||typeof e!="object"||Array.isArray(e))&&f();let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null&&f(),e}function S(e){return typeof e!="string"&&f(),e}function k(e){return typeof e!="boolean"&&f(),e}function T(e){return (!(e instanceof Date)||Number.isNaN(e.getTime()))&&f(),e}function ie(e){return (!Array.isArray(e)||!e.every(t=>typeof t=="string"))&&f(),[...e]}function C(e,t){let n=e[t];return n==null||typeof n=="string"?n:f()}function Un(e,t){let n=e[t];return n==null||typeof n=="boolean"?n:f()}function B(e){let t=m(e),n=t.email;return n!==null&&typeof n!="string"&&f(),{id:S(t.id),email:n,emailVerified:k(t.emailVerified),createdAt:T(t.createdAt),updatedAt:T(t.updatedAt),...q("phoneNumber",C(t,"phoneNumber")),...q("username",C(t,"username")),...q("displayUsername",C(t,"displayUsername")),...q("firstName",C(t,"firstName")),...q("lastName",C(t,"lastName")),...q("name",C(t,"name")),...q("image",C(t,"image")),...q("twoFactorEnabled",Un(t,"twoFactorEnabled"))}}function Me(e){let t=m(e),n=t.membership;return {id:S(t.id),userId:S(t.userId),expiresAt:T(t.expiresAt),...q("activeOrganizationId",C(t,"activeOrganizationId")),...q("activeTeamId",C(t,"activeTeamId")),...q("membership",n==null?n:Mr(n)),...q("pendingMfaEnrollment",Un(t,"pendingMfaEnrollment"))}}function f(){throw new TypeError("AuthOwl response does not match its runtime contract.")}function G(e,t=20,n=1e4){return (!e||typeof e!="object"||Array.isArray(e))&&f(),Ot(e,t,n)}function Ot(e,t=20,n=1e4){return bt(e,0,{nodes:0},t,n)}function Mr(e){let t=m(e);return {role:S(t.role),...t.roles===void 0?{}:{roles:ie(t.roles)},permissions:ie(t.permissions),...t.teams===void 0?{}:{teams:ie(t.teams)}}}function bt(e,t,n,i,o){if(n.nodes+=1,(t>i||n.nodes>o)&&f(),e===null||typeof e=="string"||typeof e=="boolean")return e;if(typeof e=="number")return Number.isFinite(e)||f(),e;if(Array.isArray(e))return e.map(l=>bt(l,t+1,n,i,o));(!e||typeof e!="object")&&f();let r=Object.getPrototypeOf(e);r!==Object.prototype&&r!==null&&f();let c={};for(let[l,a]of Object.entries(e))Lr.has(l)&&f(),c[l]=bt(a,t+1,n,i,o);return c}function q(e,t){return t===void 0?{}:{[e]:t}}function Nn({http:e,probe:t,tokens:n,channelName:i}){let o=new Set,r=null,c=null,l=null,a=null,h=null,s=null,d,p=w=>{g(w);};d={data:null,isPending:true,isRefetching:false,error:null,refetch:p};function y(w){d=w;for(let E of o)E();}async function u(w){return e.request("/get-session",{query:w?.query,decode:wt})}function g(w){if(w?.query?.disableCookieCache===true)return b(w);if(a)return a;if(h)return h;let E=b(w).finally(()=>{h===E&&(h=null);});return h=E,E}function A(){if(a)return a;let w=b({query:{disableCookieCache:true}}).finally(()=>{a===w&&(a=null);});return a=w,w}async function b(w){l?.abort();let E=new AbortController;l=E,y({...d,isPending:d.data===null&&d.error===null,isRefetching:d.data!==null});let Q=n.beginRead(),ee=await e.request("/get-session",{query:w?.query,fetchOptions:{signal:E.signal},decode:wt});if(l===E&&(l=null,y({data:ee.data,error:ee.error,isPending:false,isRefetching:false,refetch:p}),ee.error===null)){if(ee.data===null){Q.endIfDead();return}await R(Q);}}async function R(w){if(n.needsProbe()){if(!w.carriedToken){w.recordCookieVerdict(true);return}return s||x(w)}}function x(w){let E=t.request("/get-session",{query:{disableCookieCache:true},decode:wt}).then(Q=>{s===E&&Q.error===null&&w.recordCookieVerdict(Q.data!==null);}).finally(()=>{s===E&&(s=null);});return s=E,E}function N(){r?.postMessage({type:"session-changed"});}function z(){if(typeof window>"u"||c)return;let w=()=>{g();},E=()=>{document.visibilityState==="visible"&&g();};window.addEventListener("focus",w),document.addEventListener("visibilitychange",E),typeof BroadcastChannel<"u"&&(r=new BroadcastChannel(i),r.addEventListener("message",w)),c=()=>{window.removeEventListener("focus",w),document.removeEventListener("visibilitychange",E),r?.close(),r=null,c=null;};}function F(w){return o.add(w),o.size===1&&(z(),g()),()=>{if(o.delete(w),o.size===0){let E=l;l=null,h=null,a=null,E?.abort(),c?.();}}}return n.measureWith(()=>{n.needsProbe()&&x(n.beginRead());}),{store:{subscribe:F,getSnapshot:()=>d,refresh:A},getSession:u,notifyMutation(){N(),s&&s.catch(()=>{}).then(()=>{!n.needsProbe()&&n.hasToken()&&N();}),o.size>0&&g({query:{disableCookieCache:true}});}}}function wt(e){if(e===null)return null;let t=m(e);return (t.session===void 0||t.user===void 0)&&f(),{session:Me(t.session),user:B(t.user)}}Rt();function we(){let e=globalThis.crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=Array.from(e,n=>n.toString(16).padStart(2,"0")).join("");return `${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}async function zn(e,t){return e.request("/user/metadata",{fetchOptions:t,decode:Mn})}async function Ln(e,t,n){return e.request("/user/metadata",{method:"PATCH",body:{expected_version:t.expectedVersion,unsafe_metadata:t.unsafeMetadata},fetchOptions:n,decode:Mn})}function Mn(e){let t=m(e),n=G(t.public_metadata),i=G(t.unsafe_metadata);if(!Number.isSafeInteger(t.metadata_version)||t.metadata_version<0)throw new TypeError("Invalid AuthOwl metadata response");return {publicMetadata:n,unsafeMetadata:i,metadataVersion:t.metadata_version}}function Kn(e,t){let{post:n,mutation:i}=ue(e,t);return {getMetadata:o=>zn(e,o),updateUnsafeMetadata:(o,r)=>Ln(e,o,r),updateProfile:(o,r)=>i(n("/update-user",o,r,Re)),changeEmail:(o,r)=>i(n("/change-email",o,r,Re)),changePassword:(o,r)=>i(n("/change-password",o,r,Fr)),listSessions:o=>e.request("/list-sessions",{fetchOptions:o,decode:Kr}),revokeSession:({sessionId:o},r)=>i(n("/revoke-session",{sessionId:o},r,Re)),revokeOtherSessions:o=>i(n("/revoke-other-sessions",{},o,Re)),listSocialAccounts:async o=>{let r=await e.request("/list-accounts",{fetchOptions:o,decode:Hr});if(!r.data)return {data:null,error:r.error};let c=r.data.length>1;return {...r,data:r.data.filter(l=>l.providerId!=="credential").map(l=>({...l,canUnlink:c}))}},linkSocial:(o,r)=>n("/link-social",o,r,Vr),unlinkSocial:(o,r)=>i(n("/unlink-account",o,r,Re)),delete:(o={},r)=>i(n("/delete-user",o,r,qr))}}function Re(e){let t=m(e);return {status:k(t.status)}}function Fr(e){let t=m(e);return {user:B(t.user)}}function Kr(e){return Array.isArray(e)||f(),e.map(t=>{let n=m(t);return {id:S(n.id),userId:S(n.userId),createdAt:T(n.createdAt),updatedAt:T(n.updatedAt),expiresAt:T(n.expiresAt),...Fn("ipAddress",C(n,"ipAddress")),...Fn("userAgent",C(n,"userAgent"))}})}function Hr(e){return Array.isArray(e)||f(),e.map(t=>{let n=m(t);return {id:S(n.id),userId:S(n.userId),providerId:S(n.providerId),accountId:S(n.accountId),scopes:ie(n.scopes),createdAt:T(n.createdAt),updatedAt:T(n.updatedAt)}})}function Vr(e){let t=m(e);return {url:S(t.url),redirect:k(t.redirect)}}function qr(e){let t=m(e);return {success:k(t.success),message:S(t.message)}}function Fn(e,t){return t===void 0?{}:{[e]:t}}function Fe(e,t){return !e||!t?false:e.permissions.includes(t)}function Hn(e,t){return !e||!t?false:e.teams?.includes(t)??false}function Vn(e,t){return e?e.roles===void 0?e.role===t:e.roles.includes(t):false}function Ke(e,t){if(!e)return false;let{role:n,permission:i,teamId:o}=t;return !(n===void 0&&i===void 0&&o===void 0||n!==void 0&&!Vn(e,n)||i!==void 0&&!e.permissions.includes(i)||o!==void 0&&!Hn(e,o))}function Br(e){return {has:t=>Ke(e,t),hasPermission:t=>Fe(e,t.permission)}}var jr=new Set(["pending","accepted","rejected","canceled"]),St=1e4;function qn(e){let t=m(e);return t.recipientHint!==null&&t.recipientHint!=="new_user"&&f(),{recipientHint:t.recipientHint}}function le(e,t,n){let i=m(e),o={id:P(i.id),name:P(i.name),slug:P(i.slug),createdAt:T(i.createdAt),...Se("logo",C(i,"logo")),...Se("metadata",i.metadata===void 0?void 0:Ot(i.metadata))};return J(o.id,t),J(o.slug,n),o}function Bn(e){return W(e,le)}function kt(e,t,n){return e===null?null:(t===null&&f(),le(e,t,n))}function jn(e,t,n){if(e===null)return null;let i=m(e),o=le(i,t,n);return {...o,members:W(i.members,r=>ii(r,o.id)),invitations:W(i.invitations,r=>Y(r,void 0,o.id))}}function Tt(e,t,n=false){let i=W(e,o=>ke(o));return n||Pe(i.map(o=>o.organizationId),t),i}function Jn(e,t){let n=W(e,i=>Pt(i));return Pe(n.map(i=>i.teamId),t),n}function Pt(e,t,n){let i=m(e),o={id:P(i.id),teamId:P(i.teamId),userId:P(i.userId),createdAt:T(i.createdAt)};return J(o.teamId,t),J(o.userId,n),o}function $n(e,t,n){return e===null?null:(t===null&&f(),ke(e,t,n))}function Gn(e,t){let n=m(e);return (!Number.isSafeInteger(n.total)||n.total<0)&&f(),{members:Jr(n.members,t),total:n.total}}function Y(e,t,n){let i=m(e),o=P(i.status);jr.has(o)||f();let r={id:P(i.id),organizationId:P(i.organizationId),email:Te(i.email),role:P(i.role),status:o,inviterId:P(i.inviterId),expiresAt:T(i.expiresAt),createdAt:T(i.createdAt)};return J(r.id,t),J(r.organizationId,n),r}function Wn(e,t){let n=W(e,i=>Y(i));return Pe(n.map(i=>i.organizationId),t),n}function Yn(e){return W(e,t=>{let n=m(t);return {...Y(n),organizationName:Te(n.organizationName)}})}function Xn(e,t){let n=m(e);return {...Y(n,t),organizationName:P(n.organizationName),organizationSlug:P(n.organizationSlug),inviterEmail:oi(n.inviterEmail)}}function Qn(e,t){let n=m(e),i=Y(n.invitation,t);return {invitation:i,member:de(n.member,void 0,i.organizationId)}}function Zn(e,t){let n=m(e);return n.member!==null&&f(),{invitation:n.invitation===null?null:Y(n.invitation,t),member:null}}function ei(e,t){return e===null?null:Y(e,t)}function ti(e,t,n){let i=m(e);return {member:de(i.member,n,t)}}function de(e,t,n){let i=m(e),o={id:P(i.id),organizationId:P(i.organizationId),userId:P(i.userId),role:P(i.role),createdAt:T(i.createdAt),...i.user===void 0?{}:{user:ri(i.user)}};return J(o.id,t),J(o.organizationId,n),o}function ni(e,t){let n=W(e,i=>{let o=m(i);return {organizationId:P(o.organizationId),data:{role:P(o.role),...Se("permission",o.permission===void 0?void 0:$r(o.permission)),...Se("customPermissionKeys",o.customPermissionKeys===void 0?void 0:ie(o.customPermissionKeys))}}});return Pe(n.map(i=>i.organizationId),t),n.map(i=>i.data)}function ke(e,t,n){let i=m(e),o=i.updatedAt,r={id:P(i.id),name:Te(i.name),organizationId:P(i.organizationId),createdAt:T(i.createdAt),...o===void 0?{}:{updatedAt:T(o)}};return J(r.id,t),J(r.organizationId,n),r}function It(e){let t=m(e);return {message:Te(t.message)}}function ii(e,t){let n=m(e);return {...de(n,void 0,t),user:ri(n.user)}}function Jr(e,t){let n=W(e,i=>ii(i));return Pe(n.map(i=>i.organizationId),t),n}function $r(e){let t=m(e),n={};for(let[i,o]of Object.entries(t))(i==="__proto__"||i==="constructor"||i==="prototype"||i.length===0||i.length>St||!Array.isArray(o))&&f(),n[i]=o.map(r=>P(r));return n}function P(e){let t=S(e);return (t.length===0||t.length>St)&&f(),t}function Te(e){if(e==null)return "";let t=S(e);return t.length>St&&f(),t}function oi(e){return e===null?null:P(e)}function J(e,t){t!==void 0&&e!==t&&f();}function Pe(e,t){let n=t??e[0];n!==void 0&&e.some(i=>i!==n)&&f();}function ri(e){let t=m(e);return {id:P(t.id),name:Te(t.name),email:oi(t.email),...Se("image",C(t,"image"))}}function W(e,t){return Array.isArray(e)||f(),e.map(n=>t(n))}function Se(e,t){return t===void 0?{}:{[e]:t}}function si(e,t,n=()=>null){let{post:i,mutation:o}=ue(e,t),r=new Set,c=()=>{for(let s of r)try{s();}catch{}},l=new Map,a=(s,d,p,y)=>{if(p)return e.request(s,{query:d,fetchOptions:p,decode:y});let u=`${s}\0${JSON.stringify(d??null)}`,g=l.get(u);if(g)return g;let A=e.request(s,{query:d,decode:y}).finally(()=>{l.delete(u);});return l.set(u,A),A},h=async s=>{let d=await o(s).finally(()=>l.clear());return d.error===null&&c(),d};return {subscribe(s){return r.add(s),()=>r.delete(s)},create:(s,d)=>h(i("/organization/create",s,d,le)),list:s=>a("/organization/list",void 0,s,Bn),get:(s={},d)=>a("/organization/get-full-organization",{organizationId:s.organizationId,organizationSlug:s.organizationSlug,membersLimit:s.membersLimit},d,p=>jn(p,s.organizationId,s.organizationSlug)),setActive:(s,d)=>h(i("/organization/set-active",s,d,p=>kt(p,s.organizationId,s.organizationSlug))),createTeam:(s,d)=>h(i("/organization/create-team",s,d,p=>ke(p,void 0,s.organizationId))),listTeams:(s={},d)=>a("/organization/list-teams",{organizationId:s.organizationId},d,p=>Tt(p,s.organizationId)),updateTeam:(s,d)=>h(i("/organization/update-team",s,d,p=>ke(p,s.teamId,s.data.organizationId))),removeTeam:(s,d)=>h(i("/organization/remove-team",s,d,It)),listUserTeams:s=>a("/organization/list-user-teams",void 0,s,d=>Tt(d,void 0,true)),listTeamMembers:(s={},d)=>a("/organization/list-team-members",{teamId:s.teamId},d,p=>Jn(p,s.teamId)),addTeamMember:(s,d)=>h(i("/organization/add-team-member",s,d,p=>Pt(p,s.teamId,s.userId))),removeTeamMember:(s,d)=>h(i("/organization/remove-team-member",s,d,It)),setActiveTeam:(s,d)=>h(i("/organization/set-active-team",s,d,p=>$n(p,s.teamId))),update:(s,d)=>h(i("/organization/update",s,d,p=>kt(p,s.organizationId))),delete:(s,d)=>h(i("/organization/delete",s,d,p=>le(p,s.organizationId))),listMembers:(s={},d)=>a("/organization/list-members",{organizationId:s.organizationId,organizationSlug:s.organizationSlug,limit:s.limit,offset:s.offset,sortBy:s.sortBy,sortDirection:s.sortDirection,filterField:s.filterField,filterValue:s.filterValue,filterOperator:s.filterOperator},d,p=>Gn(p,s.organizationId)),inviteMember:(s,d)=>h(i("/organization/invite-member",s,d,p=>Y(p,void 0,s.organizationId))),listInvitations:(s={},d)=>a("/organization/list-invitations",{organizationId:s.organizationId},d,p=>Wn(p,s.organizationId)),listUserInvitations:s=>a("/organization/list-user-invitations",void 0,s,Yn),getInvitation:(s,d)=>a("/organization/get-invitation",{id:s.id},d,p=>Xn(p,s.id)),getInvitationRecipientHint:(s,d)=>a("/organization/invitation-recipient-hint",{invitationId:s.invitationId},d,qn),acceptInvitation:(s,d)=>h(i("/organization/accept-invitation",s,d,p=>Qn(p,s.invitationId))),rejectInvitation:(s,d)=>h(i("/organization/reject-invitation",s,d,p=>Zn(p,s.invitationId))),cancelInvitation:(s,d)=>h(i("/organization/cancel-invitation",s,d,p=>ei(p,s.invitationId))),removeMember:(s,d)=>h(i("/organization/remove-member",s,d,p=>ti(p,s.organizationId,s.memberIdOrEmail.includes("@")?void 0:s.memberIdOrEmail))),updateMemberRole:(s,d)=>h(i("/organization/update-member-role",s,d,p=>de(p,s.memberId,s.organizationId))),leave:(s,d)=>h(i("/organization/leave",s,d,p=>de(p,void 0,s.organizationId))),listRoles:(s={},d)=>a("/organization/list-roles",{organizationId:s.organizationId},d,p=>ni(p,s.organizationId)),has:s=>Ke(n(),s),hasPermission:s=>Fe(n(),s.permission)}}function qe(e){return {listConsentPreferences:t=>e.request("/privacy/consent-decisions",{fetchOptions:t,decode:Gr}),recordConsent:(t,n)=>e.request("/privacy/consent-decisions",{method:"POST",body:{...t,correlationId:t.correlationId??we()},fetchOptions:n,decode:Yr}),listRightsRequests:t=>e.request("/privacy/rights",{fetchOptions:t,decode:Xr}),createRightsRequest:(t,n)=>e.request("/privacy/rights",{method:"POST",body:t,fetchOptions:n,decode:Qr})}}function Gr(e){let t=m(e);return Array.isArray(t.preferences)||f(),{preferences:t.preferences.map(Wr)}}function Wr(e){let t=m(e);return {purposeId:S(t.purposeId),purposeVersionId:S(t.purposeVersionId),code:S(t.code),state:Zr(t.state,["granted","refused","withdrawn"]),updatedAt:He(t.updatedAt),decidedAt:He(t.decidedAt)}}function Yr(e){let t=m(e);return t.recorded!==true&&f(),{recorded:true,decision:Ie(t.decision,["granted","refused","withdrawn"]),decidedAt:Ve(t.decidedAt)}}function Xr(e){let t=m(e);return Array.isArray(t.requests)||f(),{requests:t.requests.map(ai)}}function Qr(e){return {request:ai(m(e).request)}}function ai(e){let t=m(e);return {id:S(t.id),rightType:Ie(t.rightType,["access","correction","portability","erasure","restriction","objection","consent_withdrawal"]),state:Ie(t.state,["received","identity_pending","in_progress","restricted","completed","denied","withdrawn"]),locale:Ie(t.locale,["en","ar"]),receivedAt:Ve(t.receivedAt),acknowledgedAt:He(t.acknowledgedAt),fulfilmentDeadline:Ve(t.fulfilmentDeadline),completedAt:He(t.completedAt)}}function He(e){return e===null?null:Ve(e)}function Ve(e){if(e instanceof Date)return T(e);typeof e!="string"&&f();let t=new Date(e);return Number.isNaN(t.getTime())&&f(),t}function Ie(e,t){return (typeof e!="string"||!t.includes(e))&&f(),e}function Zr(e,t){return e===null?null:Ie(e,t)}var ci=4096,es=4096,ts=100,ns=256,is=16,os=64,rs=12;function Ct(e){let t=m(e);return t.twoFactorRedirect===true?((t.user!==void 0||t.redirect!==void 0||t.url!==void 0)&&f(),{twoFactorRedirect:true,...t.twoFactorMethods===void 0?{}:{twoFactorMethods:Pi(t.twoFactorMethods,is,os)}}):(t.twoFactorRedirect!==void 0&&f(),{redirect:k(t.redirect),...ls(t,"url"),user:B(t.user)})}function ui(e){let t=m(e);return {user:B(t.user)}}function li(e){let t=m(e);return {sessionCreated:k(t.sessionCreated),user:B(t.user)}}function di(e,t){let n=m(e),i=k(n.redirect);n.user===null&&f();let o=n.user!==void 0&&n.user!==null,r=n.url!==void 0&&n.url!==null;return i?((o||!r)&&f(),{redirect:true,url:Et(n.url,t)}):(o===r&&f(),o?{redirect:false,user:B(n.user)}:{redirect:false,url:Et(n.url,t)})}function pi(e,t){let n=m(e);return (n.redirect!==true||n.user!==void 0)&&f(),{redirect:true,url:Et(n.url,t)}}function fi(e){return {status:k(m(e).status)}}function gi(e){return {success:k(m(e).success)}}function mi(e){return m(e).status!=="pending"&&f(),{status:"pending"}}function hi(e){let t=m(e);if(t.kind==="authowl_turnstile")return {kind:"authowl_turnstile"};t.kind!=="akedly_shield_v1_2"&&f();let n=m(t.turnstile),i=n.siteKey===null?null:S(n.siteKey);return {kind:"akedly_shield_v1_2",connectionId:S(t.connectionId),challenge:S(t.challenge),difficulty:ss(t.difficulty),challengeToken:S(t.challengeToken),challengeRequired:k(t.challengeRequired),turnstile:{required:k(n.required),siteKey:i}}}function ss(e){return (!Number.isSafeInteger(e)||Number(e)<0||Number(e)>rs)&&f(),Number(e)}function yi(e){let t=m(e);return (t.status!==true||t.sessionCreated!==true)&&f(),{status:true,sessionCreated:true,user:as(t.user)}}function vt(e){return {status:k(m(e).status)}}function Ai(e){return {status:k(m(e).status)}}function bi(e){let t=m(e);return {status:k(t.status),user:B(t.user)}}function Oi(e){return {success:k(m(e).success)}}function wi(e){let t=m(e);return {totpURI:us(t.totpURI),backupCodes:Ti(t.backupCodes)}}function Ri(e){return {status:k(m(e).status)}}function Be(e){return m(e).status!==true&&f(),{status:true}}function Si(e){return {status:k(m(e).status)}}function ki(e){let t=m(e);return t.status!==void 0&&t.status!==true&&f(),{backupCodes:Ti(t.backupCodes)}}function as(e){let t=m(e);return {id:pe(t.id,512),...ds(t,"name",1024),phoneNumber:pe(t.phoneNumber,64),phoneNumberVerified:k(t.phoneNumberVerified),...t.createdAt===void 0?{}:{createdAt:T(t.createdAt)},...t.updatedAt===void 0?{}:{updatedAt:T(t.updatedAt)}}}function Et(e,t){let n=pe(e,ci);/[\u0000-\u0020\u007f]/u.test(n)&&f();let i;try{i=new URL(n);}catch{return f()}return (i.username||i.password)&&f(),i.protocol==="https:"||t&&i.protocol==="http:"&&cs(i.hostname)?i.href:f()}function cs(e){let t=e.toLowerCase();return t==="localhost"||t==="127.0.0.1"||t==="[::1]"}function us(e){let t=pe(e,es),n;try{n=new URL(t);}catch{return f()}let i=n.searchParams.get("secret");return (n.protocol!=="otpauth:"||n.hostname.toLowerCase()!=="totp"||n.username||n.password||n.hash||i===null||i.length===0||i.length>512||/\s/u.test(i))&&f(),t}function Ti(e){return Pi(e,ts,ns)}function Pi(e,t,n){(!Array.isArray(e)||e.length===0||e.length>t)&&f();let i=e.map(o=>pe(o,n));return i.some(o=>o.trim().length===0)&&f(),new Set(i).size!==i.length&&f(),i}function pe(e,t){let n=S(e);return (n.length===0||n.length>t)&&f(),n}function ls(e,t){let n=e[t];return n==null?{}:{[t]:pe(n,ci)}}function ds(e,t,n){let i=C(e,t);return i===void 0?{}:(i!==null&&i.length>n&&f(),{[t]:i})}var Ii=new Set([1564,8206,8207,8234,8235,8236,8237,8238,8294,8295,8296,8297]),je=new Set([9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288,65279]);function Je(e){if(e===void 0)return {valid:true,value:void 0};for(let n of e){let i=n.codePointAt(0);if(i===void 0||Ci(n,i)||Ei(i)||Ii.has(i))return {valid:false}}let t=ps(e);return xt(t)?{valid:true,value:t}:{valid:false}}function xt(e){let t=0,n,i;for(let o of e){if(t+=1,t>256)return false;let r=o.codePointAt(0);if(r===void 0||Ci(o,r)||Ei(r)||Ii.has(r))return false;n??=r,i=r;}return t>0&&n!==void 0&&i!==void 0&&!je.has(n)&&!je.has(i)}function $e(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_PASSKEY_NAME",message:"Passkey names must contain 1 to 256 safe Unicode characters."}}}function ps(e){let t=0,n=e.length;for(;t<n;){let i=e.codePointAt(t);if(i===void 0||!je.has(i))break;t+=i>65535?2:1;}for(;n>t;){let i=e.codePointAt(n-1);if(i===void 0)break;let r=i>=56320&&i<=57343?n-2:n-1,c=e.codePointAt(r);if(c===void 0||!je.has(c))break;n=r;}return e.slice(t,n)}function Ei(e){return e>=0&&e<=31||e>=127&&e<=159}function Ci(e,t){return e.length===1&&t>=55296&&t<=57343}var Di=12,_i=5e3,fs=8,gs=1e3,ms=16,vi=512,Ui=100,Ni=8192,hs=32768,Dt=1024,xi=256,Ut=64,ys=6e5,As=/^[A-Za-z0-9_-]+$/u,bs=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u,Os=/[\u0000-\u001f\u007f-\u009f\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/u,ws=/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$/u,Rs=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu,zi=new Set(["discouraged","preferred","required"]),Ss=new Set(["singleDevice","multiDevice"]),Li=new Set(["ble","cable","hybrid","internal","nfc","smart-card","usb"]),Mi=new Set(["hybrid","security-key","client-device"]),ks=new Set(["none","indirect","direct","enterprise"]),Ts=new Set(["fido-u2f","packed","android-safetynet","android-key","tpm","apple","none"]),Ps=new Set(["platform","cross-platform"]),Is=new Set(["discouraged","preferred","required"]),Es=new Set([-8,-7,-257]);function Fi(e){let t=G(e,Di,_i);return {challenge:Wi(t.challenge),..._("timeout",$i(t.timeout)),..._("rpId",Yi(t.rpId)),..._("allowCredentials",Ji(t.allowCredentials)),..._("userVerification",Ee(t.userVerification,zi)),..._("hints",Ge(t.hints,Mi)),..._("extensions",Gi(t.extensions))}}function Ki(e){let t=G(e,Di,_i);return {challenge:Wi(t.challenge),rp:Cs(t.rp),user:vs(t.user),pubKeyCredParams:xs(t.pubKeyCredParams),..._("timeout",$i(t.timeout)),..._("excludeCredentials",Ji(t.excludeCredentials)),..._("authenticatorSelection",Ds(t.authenticatorSelection)),..._("attestation",Ee(t.attestation,ks)),..._("attestationFormats",Ge(t.attestationFormats,Ts)),..._("hints",Ge(t.hints,Mi)),..._("extensions",Gi(t.extensions))}}function Hi(e){let t=m(e),n=Me(t.session),i=B(t.user);return n.userId!==i.id&&f(),{session:n,user:i}}function Nt(e){let t=m(e),n=t.counter;(!Number.isSafeInteger(n)||n<0)&&f();let i=zt(t.deviceType,Ss),o=k(t.backedUp);return o&&i!=="multiDevice"&&f(),{id:fe(t.id,xi),...Ns(t),publicKey:_s(t.publicKey,hs),userId:fe(t.userId,xi),credentialID:Ye(t.credentialID,Ni),counter:n,deviceType:i,backedUp:o,...zs(t),createdAt:T(t.createdAt),...Ls(t)}}function Vi(e,t,n){let i=Nt(e);return (i.credentialID!==t||(n===void 0?i.name!==void 0&&i.name!==null:i.name!==n))&&f(),i}function qi(e){(!Array.isArray(e)||e.length>Ui)&&f();let t=e.map(Nt);return We(t.map(n=>n.id)),We(t.map(n=>n.credentialID)),t.length>1&&t.some(n=>n.userId!==t[0]?.userId)&&f(),t}function Bi(e,t,n){let i=m(e),o=Nt(i.passkey);return (o.id!==t||o.name!==n)&&f(),{passkey:o}}function ji(e){return m(e).status!==true&&f(),{status:true}}function Cs(e){let t=m(e);return {name:_t(t.name,Dt),..._("id",Yi(t.id))}}function vs(e){let t=m(e);return {id:Ye(t.id,128,1,64),name:_t(t.name,Dt),displayName:_t(t.displayName,Dt)}}function xs(e){(!Array.isArray(e)||e.length===0||e.length>Ut)&&f();let t=e.map(n=>{let i=m(n);return (i.type!=="public-key"||!Number.isSafeInteger(i.alg)||!Es.has(i.alg))&&f(),{type:"public-key",alg:i.alg}});return Ms(t.map(n=>n.alg)),t}function Ji(e){if(e===void 0)return;(!Array.isArray(e)||e.length>Ui)&&f();let t=e.map(n=>{let i=m(n);return i.type!=="public-key"&&f(),{type:"public-key",id:Ye(i.id,Ni),..._("transports",Ge(i.transports,Li))}});return We(t.map(n=>n.id)),t}function Ds(e){if(e===void 0)return;let t=m(e);t.requireResidentKey!==void 0&&typeof t.requireResidentKey!="boolean"&&f();let n=Ee(t.residentKey,Is);return t.requireResidentKey!==void 0&&n!==void 0&&t.requireResidentKey!==(n==="required")&&f(),{..._("authenticatorAttachment",Ee(t.authenticatorAttachment,Ps)),..._("residentKey",n),..._("requireResidentKey",t.requireResidentKey),..._("userVerification",Ee(t.userVerification,zi))}}function $i(e){return e!==void 0&&(typeof e!="number"||!Number.isFinite(e)||e<0||e>ys)&&f(),e}function Gi(e){return e===void 0?void 0:G(e,fs,gs)}function Ge(e,t){if(e===void 0)return;(!Array.isArray(e)||e.length>Ut)&&f();let n=e.map(i=>zt(i,t));return We(n),n}function Ee(e,t){if(e!==void 0)return zt(e,t)}function Wi(e){return Ye(e,Math.ceil(vi*4/3),ms,vi)}function Ye(e,t,n=1,i=Number.POSITIVE_INFINITY){let o=fe(e,t),r=o.length%4,c=Us(o.at(-1)??""),l=Math.floor(o.length*3/4);return (!As.test(o)||r===1||r===2&&(c&15)!==0||r===3&&(c&3)!==0||l<n||l>i)&&f(),o}function fe(e,t){let n=S(e);return (n.length===0||n.length>t)&&f(),n}function _t(e,t){let n=fe(e,t);return Os.test(n)&&f(),n}function Yi(e){if(e===void 0)return;let t=fe(e,253);return t!=="localhost"&&(t.endsWith(".")||!t.includes(".")||t.split(".").some(n=>!ws.test(n)))&&f(),t}function _s(e,t){let n=fe(e,t),i=n.endsWith("=="),o=!i&&n.endsWith("="),r=n.at(i?-3:o?-2:-1)??"",c=Xi(r);return (n.length%4!==0||!bs.test(n)||i&&(c&15)!==0||o&&(c&3)!==0)&&f(),n}function Us(e){return Xi(e,true)}function Xi(e,t=false){return (t?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").indexOf(e)}function Ns(e){let t=C(e,"name");return t===void 0?{}:(t!==null&&!xt(t)&&f(),{name:t})}function zs(e){let t=C(e,"transports");if(t==null||t==="")return t===void 0?{}:{transports:t};let n=t.split(",");return (n.length>Ut||n.some(i=>!Li.has(i))||new Set(n).size!==n.length)&&f(),{transports:t}}function Ls(e){let t=C(e,"aaguid");return t==null?t===void 0?{}:{aaguid:null}:(Rs.test(t)||f(),{aaguid:t})}function zt(e,t){let n=S(e);return t.has(n)||f(),n}function _(e,t){return t===void 0?{}:{[e]:t}}function We(e){new Set(e).size!==e.length&&f();}function Ms(e){new Set(e).size!==e.length&&f();}function $s(e,t){if(!t)return e;let n=t.catch(()=>{});return n.then(()=>{n=null;}),{async request(i,o){return n&&await n,e.request(i,o)}}}var io=new Map;function Gs(e,t,n){let i=io.get(n);if(!i){let o=new URLSearchParams(window.location.hash.slice(1)).get("authowl_code");if(!o)return;i=Promise.resolve().then(()=>(Qe(),Xe)).then(r=>r.completeCrossSiteSignIn(e,t,o)),io.set(n,i);}return i}function oo(e){return !Oe()||e.idToken||e.disableRedirect?"legacy":"first-party"}function so(e,t=()=>{},n=Ws){let i=be(e),o=e.session.tokens,r=Oe()?Gs(i,e.session,e.decoded.projectId):void 0,c=$s(i,r),l=Nn({http:c,probe:be({...e,fetch:e.session.probe}),tokens:o,channelName:`authowl:${e.decoded.projectId}`}),a=n(c,l.notifyMutation),h=()=>{l.notifyMutation(),t();},{post:s,mutation:d}=ue(c,h),p=e.decoded.env==="test",y=u=>e.session.prepareSession({remember:u?.rememberMe!==false});return {sessionStore:l.store,getSession:l.getSession,account:Kn(c,h),organization:si(c,h,()=>l.store.getSnapshot().data?.session.membership??null),privacy:qe(c),signIn:{email:async(u,g)=>(await y(u),d(s("/sign-in/email",u,g,Ct),A=>!("twoFactorRedirect"in A))),username:async(u,g)=>(await y(u),d(s("/sign-in/username",u,g,Ct),A=>!("twoFactorRedirect"in A))),social:async(u,g)=>{if(await y(),oo(u)==="first-party"){let{beginCrossSiteSignIn:b}=await Promise.resolve().then(()=>(Qe(),Xe)),R=await b(e,{kind:"social",provider:u.provider,callbackURL:u.callbackURL,errorCallbackURL:u.errorCallbackURL,newUserCallbackURL:u.newUserCallbackURL,scopes:u.scopes,loginHint:u.loginHint,requestSignUp:u.requestSignUp});if(R)return window.location.assign(R),{data:{redirect:true,url:R},error:null}}let A=await d(s("/sign-in/social",u,g,b=>di(b,p)),b=>"user"in b);return A.error!==null||A.data===null||"url"in A.data&&A.data.redirect&&!u.disableRedirect&&typeof window<"u"&&window.location.assign(A.data.url),A},sso:async(u,g)=>{if(oo(u)==="first-party"){let{beginCrossSiteSignIn:b}=await Promise.resolve().then(()=>(Qe(),Xe)),R=await b(e,{kind:"sso",email:u.email,providerId:u.providerId,domain:u.domain,organizationSlug:u.organizationSlug,callbackURL:u.callbackURL,errorCallbackURL:u.errorCallbackURL,newUserCallbackURL:u.newUserCallbackURL});if(R)return window.location.assign(R),{data:{url:R,redirect:true},error:null}}let A=await s("/sign-in/sso",u,g,b=>pi(b,p));return A.error!==null||A.data===null||typeof window<"u"&&window.location.assign(A.data.url),A},magicLink:(u,g)=>s("/sign-in/magic-link",u,g,fi),emailOtp:async(u,g)=>(await y(),d(s("/sign-in/email-otp",u,g,ui))),passkey:async(u,g)=>(await y(),a.signIn(u,g))},signUp:{email:async(u,g)=>(await y(),d(s("/sign-up/email",u,g,li),A=>A.sessionCreated))},emailOtp:{sendVerificationOtp:(u,g)=>s("/email-otp/send-verification-otp",u,g,gi),verifyEmail:async(u,g)=>(await y(),d(s("/email-otp/verify-email",u,g,bi)))},phoneOtp:{prepare:u=>s("/phone-otp/challenge",{},u,hi),start:(u,g)=>s("/phone-otp/start",{...u,idempotencyKey:u.idempotencyKey??we()},g,mi),verify:async(u,g)=>(await y(),d(s("/phone-otp/verify",u,g,yi)))},requestPasswordReset:(u,g)=>s("/request-password-reset",u,g,vt),resetPassword:(u,g)=>s("/reset-password",u,g,vt),sendVerificationEmail:(u,g)=>s("/send-verification-email",u,g,Ai),passkey:{addPasskey:(u,g)=>a.add(u,g),listUserPasskeys:()=>c.request("/passkey/list-user-passkeys",{decode:qi}),updatePasskey:async(u,g)=>{let A=Je(u.name);if(!A.valid||A.value===void 0)return $e();let b=A.value;return s("/passkey/update-passkey",{...u,name:b},g,R=>Bi(R,u.id,b))},deletePasskey:(u,g)=>s("/passkey/delete-passkey",u,g,ji)},twoFactor:{enable:(u,g)=>s("/two-factor/enable",u,g,wi),disable:(u,g)=>d(s("/two-factor/disable",u,g,Ri),A=>A.status),verifyTotp:(u,g)=>d(s("/two-factor/verify-totp",u,g,Be)),verifyBackupCode:(u,g)=>d(s("/two-factor/verify-backup-code",u,g,Be)),sendOtp:(u={},g)=>s("/two-factor/send-otp",u,g,Si),verifyOtp:(u,g)=>d(s("/two-factor/verify-otp",u,g,Be)),generateBackupCodes:(u,g)=>s("/two-factor/generate-backup-codes",u,g,ki)},signOut:u=>d(c.request("/sign-out",{method:"POST",body:{},fetchOptions:u,decode:Oi}).then(g=>(o.endSession(),g)),g=>g.success)}}function Ws(){return {signIn:()=>ro(),add:()=>ro()}}function ro(){return Promise.resolve({data:null,error:{status:400,statusText:"BAD_REQUEST",code:"PASSKEY_BROWSER_REQUIRED",message:"This passkey ceremony requires a browser with WebAuthn."}})}function fo(e,t,n){let i=new Map;return {async signIn(o={},r){let c=await e.request("/passkey/generate-authenticate-options");if(!c.data)return uo(c.error);let l;try{l=Fi(c.data);}catch{return ao()}let a;try{a=await n.authenticate({optionsJSON:l,useBrowserAutofill:o.autoFill});}catch(y){return lo(n,y,"AUTH_CANCELLED","Passkey authentication was cancelled.")}if(!Ys(a))return co();let{clientExtensionResults:h,...s}=a,d=i.get(a.id);if(d)return d;let p=(async()=>{let y=await e.request("/passkey/verify-authentication",{method:"POST",body:{response:s},fetchOptions:r,decode:Hi});return y.data&&t(),y})();i.set(a.id,p);try{return await p}finally{i.get(a.id)===p&&i.delete(a.id);}},async add(o={},r){let c=Je(o.name);if(!c.valid)return $e();let l=await e.request("/passkey/generate-register-options",{query:{name:c.value,authenticatorAttachment:o.authenticatorAttachment}});if(!l.data)return uo(l.error);let a;try{a=Ki(l.data);}catch{return ao()}let h;try{h=await n.register({optionsJSON:a});}catch(y){return lo(n,y,"REGISTRATION_CANCELLED","Passkey registration was cancelled.")}if(!Xs(h))return co();let{clientExtensionResults:s,...d}=h,p=await e.request("/passkey/verify-registration",{method:"POST",body:{response:d,name:c.value},fetchOptions:r,decode:y=>Vi(y,h.id,c.value)});return p.data&&t(),p}}}function ao(){return {data:null,error:{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned invalid WebAuthn options."}}}function co(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_WEBAUTHN_RESPONSE",message:"The platform returned an invalid passkey response."}}}function go(e){if(!e||typeof e!="object")return false;let t=e;return typeof t.id=="string"&&t.id.length>0&&typeof t.rawId=="string"&&t.rawId.length>0&&t.type==="public-key"&&!!t.response&&typeof t.response=="object"}function Ys(e){if(!go(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.authenticatorData=="string"&&typeof t.signature=="string"&&(t.userHandle===void 0||typeof t.userHandle=="string")}function Xs(e){if(!go(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.attestationObject=="string"}function uo(e){return {data:null,error:e??{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned no WebAuthn options."}}}function lo(e,t,n,i){let o=Zs(t,"page does not have focus"),r=e.errorCode?.(t),c=r!==void 0?r==="ERROR_CEREMONY_ABORTED":po(t)==="AbortError",l=n!=="AUTH_CANCELLED",a=Qs(r,po(t),l);return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:o?"PASSKEY_PAGE_NOT_FOCUSED":c?n:r??"PASSKEY_BROWSER_ERROR",message:o?"Keep this page focused while completing the passkey prompt.":c?i:a}}}function Qs(e,t,n){switch(e){case "ERROR_INVALID_DOMAIN":case "ERROR_INVALID_RP_ID":return "Passkeys are not set up for this site\u2019s domain.";case "ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED":return "This device already has a passkey for this account.";case "ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEY_ALGS":case "ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT":case "ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT":return "This device cannot create a passkey for this site.";}return t==="NotAllowedError"?n?"No passkey was created. The prompt was dismissed or timed out.":"No passkey was used. This device may not have one saved for this site yet, or the prompt was dismissed.":t==="SecurityError"?"Passkeys are not set up for this site\u2019s domain.":n?"Passkey registration did not complete.":"Passkey sign-in did not complete."}function po(e){return e&&typeof e=="object"&&"name"in e&&typeof e.name=="string"?e.name:void 0}function Zs(e,t){let n=t.toLowerCase(),i=new Set,o=e;for(;o&&typeof o=="object"&&!i.has(o);){if(i.add(o),"message"in o&&typeof o.message=="string"&&o.message.toLowerCase().includes(n))return true;o="cause"in o?o.cause:void 0;}return false}function j(e){let t=new Uint8Array(e),n="";for(let o of t)n+=String.fromCharCode(o);return btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function oe(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),n=(4-t.length%4)%4,i=t.padEnd(t.length+n,"="),o=atob(i),r=new ArrayBuffer(o.length),c=new Uint8Array(r);for(let l=0;l<o.length;l++)c[l]=o.charCodeAt(l);return r}function re(){return ea.stubThis(globalThis?.PublicKeyCredential!==void 0&&typeof globalThis.PublicKeyCredential=="function")}var ea={stubThis:e=>e};function Ze(e){let{id:t}=e;return {...e,id:oe(t),transports:e.transports}}function et(e){return e==="localhost"||/^((xn--[a-z0-9-]+|[a-z0-9]+(-[a-z0-9]+)*)\.)+([a-z]{2,}|xn--[a-z0-9-]+)$/i.test(e)}var I=class extends Error{constructor({message:t,code:n,cause:i,name:o}){super(t,{cause:i}),Object.defineProperty(this,"code",{enumerable:true,configurable:true,writable:true,value:void 0}),this.name=o??i.name,this.code=n;}};function mo({error:e,options:t}){let{publicKey:n}=t;if(!n)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(t.signal instanceof AbortSignal)return new I({message:"Registration ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else if(e.name==="ConstraintError"){if(n.authenticatorSelection?.requireResidentKey===true)return new I({message:"Discoverable credentials were required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT",cause:e});if(t.mediation==="conditional"&&n.authenticatorSelection?.userVerification==="required")return new I({message:"User verification was required during automatic registration but it could not be performed",code:"ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE",cause:e});if(n.authenticatorSelection?.userVerification==="required")return new I({message:"User verification was required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT",cause:e})}else {if(e.name==="InvalidStateError")return new I({message:"The authenticator was previously registered",code:"ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED",cause:e});if(e.name==="NotAllowedError")return new I({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="NotSupportedError")return n.pubKeyCredParams.filter(o=>o.type==="public-key").length===0?new I({message:'No entry in pubKeyCredParams was of type "public-key"',code:"ERROR_MALFORMED_PUBKEYCREDPARAMS",cause:e}):new I({message:"No available authenticator supported any of the specified pubKeyCredParams algorithms",code:"ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG",cause:e});if(e.name==="SecurityError"){let i=globalThis.location.hostname;if(et(i)){if(n.rp.id!==i)return new I({message:`The RP ID "${n.rp.id}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new I({message:`${globalThis.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="TypeError"){if(n.user.id.byteLength<1||n.user.id.byteLength>64)return new I({message:"User ID was not between 1 and 64 characters",code:"ERROR_INVALID_USER_ID_LENGTH",cause:e})}else if(e.name==="UnknownError")return new I({message:"The authenticator was unable to process the specified options, or could not create a new credential",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return e}var Ft=class{constructor(){Object.defineProperty(this,"controller",{enumerable:true,configurable:true,writable:true,value:void 0});}createNewAbortSignal(){if(this.controller){let n=new Error("Cancelling existing WebAuthn API call for new one");n.name="AbortError",this.controller.abort(n);}let t=new AbortController;return this.controller=t,t.signal}cancelCeremony(){if(this.controller){let t=new Error("Manually cancelling existing WebAuthn API call");t.name="AbortError",this.controller.abort(t),this.controller=void 0;}}},tt=new Ft;var ta=["cross-platform","platform"];function nt(e){if(e&&!(ta.indexOf(e)<0))return e}async function ho(e){!e.optionsJSON&&e.challenge&&(console.warn("startRegistration() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information."),e={optionsJSON:e});let{optionsJSON:t,useAutoRegister:n=false}=e;if(!re())throw new Error("WebAuthn is not supported in this browser");let i={...t,challenge:oe(t.challenge),user:{...t.user,id:oe(t.user.id)},excludeCredentials:t.excludeCredentials?.map(Ze)},o={};n&&(o.mediation="conditional"),o.publicKey=i,o.signal=tt.createNewAbortSignal();let r;try{r=await navigator.credentials.create(o);}catch(u){throw mo({error:u,options:o})}if(!r)throw new Error("Registration was not completed");let{id:c,rawId:l,response:a,type:h}=r,s;typeof a.getTransports=="function"&&(s=a.getTransports());let d;if(typeof a.getPublicKeyAlgorithm=="function")try{d=a.getPublicKeyAlgorithm();}catch(u){Kt("getPublicKeyAlgorithm()",u);}let p;if(typeof a.getPublicKey=="function")try{let u=a.getPublicKey();u!==null&&(p=j(u));}catch(u){Kt("getPublicKey()",u);}let y;if(typeof a.getAuthenticatorData=="function")try{y=j(a.getAuthenticatorData());}catch(u){Kt("getAuthenticatorData()",u);}return {id:c,rawId:j(l),response:{attestationObject:j(a.attestationObject),clientDataJSON:j(a.clientDataJSON),transports:s,publicKeyAlgorithm:d,publicKey:p,authenticatorData:y},type:h,clientExtensionResults:r.getClientExtensionResults(),authenticatorAttachment:nt(r.authenticatorAttachment)}}function Kt(e,t){console.warn(`The browser extension that intercepted this WebAuthn API call incorrectly implemented ${e}. You should report this error to them.
2
+ `,t);}function yo(){if(!re())return Ht.stubThis(new Promise(t=>t(false)));let e=globalThis.PublicKeyCredential;return e?.isConditionalMediationAvailable===void 0?Ht.stubThis(new Promise(t=>t(false))):Ht.stubThis(e.isConditionalMediationAvailable())}var Ht={stubThis:e=>e};function Ao({error:e,options:t}){let{publicKey:n}=t;if(!n)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(t.signal instanceof AbortSignal)return new I({message:"Authentication ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else {if(e.name==="NotAllowedError")return new I({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="SecurityError"){let i=globalThis.location.hostname;if(et(i)){if(n.rpId!==i)return new I({message:`The RP ID "${n.rpId}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new I({message:`${globalThis.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="UnknownError")return new I({message:"The authenticator was unable to process the specified options, or could not create a new assertion signature",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return e}async function bo(e){!e.optionsJSON&&e.challenge&&(console.warn("startAuthentication() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information."),e={optionsJSON:e});let{optionsJSON:t,useBrowserAutofill:n=false,verifyBrowserAutofillInput:i=true}=e;if(!re())throw new Error("WebAuthn is not supported in this browser");let o;t.allowCredentials?.length!==0&&(o=t.allowCredentials?.map(Ze));let r={...t,challenge:oe(t.challenge),allowCredentials:o},c={};if(n){if(!await yo())throw Error("Browser does not support WebAuthn autofill");if(document.querySelectorAll("input[autocomplete$='webauthn']").length<1&&i)throw Error('No <input> with "webauthn" as the only or last value in its `autocomplete` attribute was detected');c.mediation="conditional",r.allowCredentials=[];}c.publicKey=r,c.signal=tt.createNewAbortSignal();let l;try{l=await navigator.credentials.get(c);}catch(y){throw Ao({error:y,options:c})}if(!l)throw new Error("Authentication was not completed");let{id:a,rawId:h,response:s,type:d}=l,p;return s.userHandle&&(p=j(s.userHandle)),{id:a,rawId:j(h),response:{authenticatorData:j(s.authenticatorData),clientDataJSON:j(s.clientDataJSON),signature:j(s.signature),userHandle:p},type:d,clientExtensionResults:l.getClientExtensionResults(),authenticatorAttachment:nt(l.authenticatorAttachment)}}var Oo={authenticate:e=>bo(e),register:e=>ho(e),errorCode:e=>e instanceof I?e.code:void 0};function Ro(e){return `${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/consent`}async function Vt(e){let t=await $(e,Ro(e),{init:{method:"GET",credentials:"include"},maxResponseBytes:65536,decode:na});return t.response.status===401?{required:false}:te(t,"consent status")}async function qt(e,t){if(!Number.isSafeInteger(t)||t<1)throw new TypeError("Consent version must be a positive integer.");return te(await $(e,Ro(e),{init:{method:"POST",headers:{"content-type":"application/json"},credentials:"include",body:JSON.stringify({version:t})},maxResponseBytes:64*1024,decode:ia}),"consent accept")}function na(e){let t=m(e),n=k(t.required),i=oa(t.needsConsent),o=So(t.version),r=wo(t.termsUrl),c=wo(t.privacyUrl);return {required:n,...i===void 0?{}:{needsConsent:i},...o===void 0?{}:{version:o},...r===void 0?{}:{termsUrl:r},...c===void 0?{}:{privacyUrl:c}}}function ia(e){let t=m(e),n=So(t.version);return {ok:k(t.ok),...n===void 0?{}:{version:n}}}function oa(e){if(e===void 0||typeof e=="boolean")return e;throw new TypeError("Invalid consent response.")}function So(e){if(e===void 0||Number.isSafeInteger(e)&&e>=1)return e;throw new TypeError("Invalid consent response.")}function wo(e){if(e===void 0||typeof e=="string"&&e.length<=4096)return e;throw new TypeError("Invalid consent response.")}var ra=30;function sa(e){return typeof e?.exp=="number"?e.exp:null}function aa(e){let t=e.split(".")[1];if(!t)return null;try{let n=t.replace(/-/g,"+").replace(/_/g,"/"),i=JSON.parse(atob(n));return typeof i=="object"&&i!==null?i:null}catch{return null}}function Bt(e){let t=new Map;async function n(r={}){let c=r.template===void 0?null:r.template.trim().toLowerCase();if(c==="")throw new TypeError("Template missing");let l=c??"",a=t.get(l);a||(a={activeKey:null,cachedByKey:new Map,inflight:null,sequence:0},t.set(l,a));let h=r.forceRefresh===true;if(!h){let u=a.activeKey?a.cachedByKey.get(a.activeKey):null;if(u&&u.exp-Date.now()/1e3>ra)return u.token;if(a.inflight)return a.inflight}let s=++a.sequence,d=()=>t.get(l)===a&&a.sequence===s,p=(async()=>{let u=c?`${e.projectBaseURL}/token/${encodeURIComponent(c)}`:`${e.projectBaseURL}/token`,g=await $(e,u,{init:{method:"GET",credentials:"include"},maxResponseBytes:64*1024,decode:z=>ca(z,c!==null)});if(g.response.status===401)return d()&&i(),null;let A=te(g,"token"),b=A.policyVersion,R=A.token,x=aa(R),N=sa(x);if(d())if(N!==null){let z=typeof x?.sub=="string"?x.sub:null,F=typeof x?.org_id=="string"?x.org_id:null;if(!c||z){let w=JSON.stringify([e.projectBaseURL,z,F,c,b]);a.cachedByKey.clear(),a.cachedByKey.set(w,{token:R,exp:N}),a.activeKey=w;}else o(a);}else o(a);return R})();if(h)return p;let y=p.finally(()=>{a.inflight===y&&(a.inflight=null);});return a.inflight=y,y}function i(){t.clear();}function o(r){r.cachedByKey.clear(),r.activeKey=null;}return {getToken:n,clear:i}}function ca(e,t){let n=m(e),i=S(n.token);if(i.length===0||i.length>32*1024)throw new TypeError("Invalid token response.");if(!t)return {token:i,policyVersion:0};let o=m(n.template);if(!Number.isSafeInteger(o.policyVersion)||o.policyVersion<1)throw new TypeError("Invalid token response.");return {token:i,policyVersion:o.policyVersion}}function ua(e){let t=Bt(e),n=so(e,t.clear,(l,a)=>fo(l,a,Oo)),i=be(e,`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}`),o=qe(i),r=l=>(...a)=>(t.clear(),l(...a)),c={getConsentStatus:()=>Vt(e),acceptConsent:l=>qt(e,l),getToken:t.getToken,privacy:o,waitlist:{join:(l,a)=>i.request("/waitlist",{method:"POST",body:l,fetchOptions:a,credentials:"omit"})},account:{...n.account,updateUnsafeMetadata:r(n.account.updateUnsafeMetadata),updateProfile:r(n.account.updateProfile),changeEmail:r(n.account.changeEmail),changePassword:r(n.account.changePassword),revokeSession:r(n.account.revokeSession),delete:r(n.account.delete)},signIn:{email:r(n.signIn.email),username:r(n.signIn.username),social:r(n.signIn.social),sso:n.signIn.sso,magicLink:n.signIn.magicLink,emailOtp:r(n.signIn.emailOtp),passkey:r(n.signIn.passkey)},signUp:{email:r(n.signUp.email)},emailOtp:{...n.emailOtp,verifyEmail:r(n.emailOtp.verifyEmail)},twoFactor:{enable:n.twoFactor.enable,disable:r(n.twoFactor.disable),verifyTotp:r(n.twoFactor.verifyTotp),verifyBackupCode:r(n.twoFactor.verifyBackupCode),sendOtp:n.twoFactor.sendOtp,verifyOtp:r(n.twoFactor.verifyOtp),generateBackupCodes:n.twoFactor.generateBackupCodes},phoneOtp:{prepare:n.phoneOtp.prepare,start:n.phoneOtp.start,verify:r(n.phoneOtp.verify)},signOut:r(n.signOut)};return {...n,...c}}async function la(e){if(typeof window>"u")throw new Error("Akedly Shield challenges must be solved in a browser.");let t=await da(),n=e.challengeRequired?await t.solvePow(e.challenge,e.difficulty):null,i=e.turnstile.required?await t.getTurnstileToken(pa(e.turnstile.siteKey)):void 0;return {connectionId:e.connectionId,...n?{challengeToken:e.challengeToken,nonce:n.nonce}:{},...i?{turnstileToken:i}:{}}}async function da(){return import('@akedly/shield')}function pa(e){if(!e)throw new Error("Akedly Shield did not provide a Turnstile site key.");return e}async function fa(e){let t=`${e.apiUrl}/api/projects/${e.decoded.projectId}/public-config`;return te(await $(e,t,{init:{method:"GET",credentials:"omit"},maxResponseBytes:256*1024,decode:n=>ga(n,e)}),"public-config")}function ga(e,t){let n=G(e),i=n.environmentId,o=n.environmentType,r=`${t.apiUrl}/api/projects/${t.decoded.projectId}/auth`;if(typeof n.applicationId!="string"||!jt(n.applicationId)||i!==t.decoded.projectId||o!=="development"&&o!=="production"||n.authBaseUrl!==r)throw U();let c=v(n.branding),l=v(n.legal);if(!se(n.enabledMethods,64)||!se(n.socialProviders,64)||!Io(c,["appName","logoUrl","primaryColor"])||c.showAppName!==void 0&&typeof c.showAppName!="boolean"||c.alignment!==void 0&&c.alignment!=="left"&&c.alignment!=="center"&&c.alignment!=="right"||c.theme!==void 0&&c.theme!=="light"&&c.theme!=="dark"&&c.theme!=="system"||!Io(l,["termsUrl","privacyUrl"])||!Number.isSafeInteger(l.version)||l.version<0||typeof l.required!="boolean")throw U();if(n.socialProviderClientIds!==void 0){let a=v(n.socialProviderClientIds);if(Object.keys(a).length>64||Object.values(a).some(h=>typeof h!="string"||h.length>2048))throw U()}if(!X(n,["requireEmailVerification","twoFactor","mfaRequired","accountDeletion","organizations","sso","badge"])||!ko(n.turnstileSiteKey)||!ko(n.authTurnstileSiteKey)||typeof n.locale!="string"||n.locale.length===0||n.locale.length>64||!Number.isSafeInteger(n.configVersion)||n.configVersion<0)throw U();if(n.jwtIssuer!==null){let a=v(n.jwtIssuer),h=new URL(a.issuer),s=`${h.origin}/api/projects/${t.decoded.projectId}/auth`;if(a.issuer!==s||a.jwksUrl!==`${s}/jwks`||a.aud!==t.decoded.projectId||h.protocol!=="https:"&&h.origin!==t.apiUrl)throw U()}if(n.signUp!==void 0){let a=v(n.signUp).mode;if(typeof a!="string"||!["open","restricted","allowlist","waitlist"].includes(a))throw U()}if(n.authentication!==void 0&&ma(n.authentication),n.privacy!==void 0&&ha(n.privacy),n.emailVerification!==void 0){let a=v(n.emailVerification);if(!X(a,["required"])||a.method!=="link"&&a.method!=="code")throw U()}if(n.userModel!==void 0&&!X(v(n.userModel),["requireEmail","firstLastName","emailChange","accountDeletion"]))throw U();if(n.mfa!==void 0){let a=v(n.mfa);if(!X(a,["totp","required","backupCodes"])||(a.required===true||a.backupCodes===true)&&a.totp!==true)throw U()}if(n.captcha===void 0||n.captcha===null)n.captcha=typeof n.authTurnstileSiteKey=="string"&&n.authTurnstileSiteKey.length>0?{provider:"turnstile",siteKey:n.authTurnstileSiteKey}:null;else {let a=v(n.captcha);if(typeof a.provider!="string"||a.provider.length===0||a.provider.length>64||typeof a.siteKey!="string"||a.siteKey.length===0||a.siteKey.length>512)throw U();n.captcha={provider:a.provider,siteKey:a.siteKey};}return n}function jt(e){return /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e)}function U(){return new TypeError("public-config returned an invalid response")}function v(e){if(!e||typeof e!="object"||Array.isArray(e))throw U();return e}function ko(e){return e===null||typeof e=="string"&&e.length<=4096}function ma(e){let t=v(e),n=v(t.email),i=v(t.password),o=i.minLength!==void 0||i.maxLength!==void 0;if(!X(n,["signUp"])||!se(n.signIn,3)||n.signIn.some(r=>r!=="password"&&r!=="magic_link"&&r!=="email_otp")||!X(v(t.phone),["signUp","signIn"])||!X(i,["signUp","add"])||o&&(!Number.isSafeInteger(i.minLength)||!Number.isSafeInteger(i.maxLength)||i.minLength<1||i.maxLength>4096||i.minLength>i.maxLength)||!X(v(t.passkey),["signIn","add"])||!ya(v(t.passkey).relyingPartyId)||!X(v(t.username),["collectOnSignUp","signIn"]))throw U()}function ha(e){let t=v(e);if(!Array.isArray(t.notices)||!Array.isArray(t.consentPurposes)||t.notices.length>64||t.consentPurposes.length>64)throw U();for(let n of t.notices){let i=v(n);if(To(i,"noticeId","noticeVersionId"),it(i.title,512),it(i.body,1e5),Po(i.digest),!se(i.activityCodes,128)||!se(i.purposeCodes,128)||typeof i.effectiveFrom!="string"||!Number.isFinite(Date.parse(i.effectiveFrom)))throw U()}for(let n of t.consentPurposes){let i=v(n);if(To(i,"purposeId","purposeVersionId"),it(i.title,512),it(i.description,1e4),Po(i.digest),!se(i.activityCodes,128)||!se(i.dataCategories,128))throw U()}}function To(e,t,n){if(typeof e[t]!="string"||!jt(e[t])||typeof e[n]!="string"||!jt(e[n])||typeof e.code!="string"||!/^[a-z][a-z0-9_]{0,63}$/.test(e.code)||!Number.isSafeInteger(e.version)||e.version<1)throw U()}function it(e,t){let n=v(e);if(typeof n.en!="string"||n.en.length===0||n.en.length>t||typeof n.ar!="string"||n.ar.length===0||n.ar.length>t)throw U()}function Po(e){let t=v(e);if(typeof t.en!="string"||!/^[a-f0-9]{64}$/.test(t.en)||typeof t.ar!="string"||!/^[a-f0-9]{64}$/.test(t.ar))throw U()}function ya(e){return e==null||typeof e=="string"}function X(e,t){return t.every(n=>typeof e[n]=="boolean")}function Io(e,t){return t.every(n=>e[n]===void 0||typeof e[n]=="string"&&e[n].length<=4096)}function se(e,t){return Array.isArray(e)&&e.length<=t&&e.every(n=>typeof n=="string"&&n.length<=128)&&new Set(e).size===e.length}var Ce=class extends Error{constructor(n,i){super(n);this.cause=i;this.name="AuthOwlError";}cause},Jt=class extends Ce{constructor(n,i){super(`Rate limited. Retry after ${n}s.`,i);this.retryAfterSeconds=n;this.name="RateLimitedError";}retryAfterSeconds},$t=class extends Ce{constructor(t="invalid publishable key",n){super(t,n),this.name="InvalidKeyError";}};var Eo=["en","ar"];function Aa(e){return e==="ar"?"rtl":"ltr"}function ba(e){return typeof e=="string"&&Eo.includes(e)}
3
+ exports.AUTH_CHALLENGE_HEADER=Dn;exports.AUTH_LOCALE_HEADER=_n;exports.AuthOwlError=Ce;exports.AuthOwlHttpError=Le;exports.INVITATION_CLAIM_MAX_AGE_MS=kn;exports.INVITATION_QUERY_PARAM=pt;exports.InvalidKeyError=$t;exports.LOCALES=Eo;exports.RateLimitedError=Jt;exports.SESSION_TOKEN_HEADER=ct;exports.SESSION_TRANSPORT_BEARER=lt;exports.SESSION_TRANSPORT_HEADER=ut;exports.TransportError=M;exports.acceptConsent=qt;exports.activeLocale=mt;exports.captureInvitationClaim=sr;exports.clearInvitationClaim=ye;exports.createAuthOwlClient=ua;exports.createIdempotencyKey=we;exports.createMembershipHas=Br;exports.createTokenClient=Bt;exports.decodePublishableKey=rt;exports.directionFor=Aa;exports.getConsentStatus=Vt;exports.getPublicConfig=fa;exports.isLocale=ba;exports.membershipHas=Ke;exports.membershipHasPermission=Fe;exports.membershipHasRole=Vn;exports.membershipHasTeam=Hn;exports.readInvitationClaim=he;exports.readLastUsedSignInMethod=cr;exports.recordLastUsedSignInMethod=ur;exports.rememberPendingSignInMethod=lr;exports.resolveAuthTarget=Rn;exports.resolveConfig=rr;exports.resolveProjectCapabilities=pr;exports.sessionChallengeIsEphemeral=zo;exports.sessionCookieName=Do;exports.setActiveLocale=kr;exports.settlePendingSignInMethod=dr;exports.solvePhoneOtpChallenge=la;
package/dist/index.d.cts CHANGED
@@ -1,9 +1,9 @@
1
- export { A as AuthConfig, D as DecodedPublishableKey, H as HasParams, O as OrganizationMembership, R as ResolvedAuthConfig, a as ResolvedAuthTarget, T as TransportError, b as TransportErrorKind, c as createMembershipHas, d as decodePublishableKey, m as membershipHas, e as membershipHasPermission, f as membershipHasRole, g as membershipHasTeam, h as resolveAuthTarget, r as resolveConfig } from './organization-membership-DSqmZLkN.cjs';
1
+ export { A as AuthConfig, D as DecodedPublishableKey, H as HasParams, O as OrganizationMembership, R as ResolvedAuthConfig, a as ResolvedAuthTarget, T as TransportError, b as TransportErrorKind, c as createMembershipHas, d as decodePublishableKey, m as membershipHas, e as membershipHasPermission, f as membershipHasRole, g as membershipHasTeam, h as resolveAuthTarget, r as resolveConfig } from './organization-membership-BIify9hZ.cjs';
2
2
  export { s as sessionCookieName } from './cookie-BqcfagTw.cjs';
3
- import { x as PhoneOtpChallengeData, y as AkedlyShieldStartProof } from './client-2xyOK_yb.cjs';
4
- export { z as AcceptOrganizationInvitationData, B as AccountClient, D as AccountSession, E as AccountStatusData, A as ActionFetchOptions, F as AddOrganizationTeamMemberOptions, e as AddPasskeyOptions, a as AuthActionResult, g as AuthClientError, G as AuthErrorContext, b as AuthOwlClient, H as AuthOwlErrorCode, f as AuthPasskey, I as AuthRequestContext, J as AuthResponseContext, h as AuthSession, i as AuthUser, K as ChangeEmailOptions, L as ChangePasswordData, M as ChangePasswordOptions, N as ConsentAcceptResult, Q as ConsentStatus, T as CreateOrganizationOptions, U as CreateOrganizationTeamOptions, C as CreatePrivacyRightsRequestOptions, V as DeleteAccountData, W as DeleteAccountOptions, X as DeleteOrganizationOptions, Y as DeletePasskeyData, Z as DeletePasskeyOptions, _ as DisableTwoFactorOptions, $ as EmailAuthData, a0 as EmailOtpAuthData, a1 as EmailOtpSignInOptions, a2 as EmailOtpType, a3 as EmailSignInOptions, a4 as EmailSignUpData, a5 as EmailSignUpOptions, a6 as EnableTwoFactorOptions, a7 as EnvironmentType, a8 as GenerateBackupCodesOptions, a9 as GetOrganizationInvitationOptions, aa as GetOrganizationOptions, ab as GetToken, ac as GetTokenOptions, ad as INVITATION_CLAIM_MAX_AGE_MS, ae as INVITATION_QUERY_PARAM, af as InvitationClaim, ag as InvitationRecipientHint, ah as InviteOrganizationMemberOptions, ai as JsonObject, aj as JsonPrimitive, ak as JsonValue, al as LeaveOrganizationOptions, am as LinkSocialData, an as LinkSocialOptions, ao as ListOrganizationInvitationsOptions, ap as ListOrganizationMembersOptions, aq as ListOrganizationRolesOptions, ar as ListOrganizationTeamMembersOptions, as as ListOrganizationTeamsOptions, at as MagicLinkData, au as MagicLinkSignInOptions, O as Organization, j as OrganizationClient, k as OrganizationDetails, av as OrganizationFilterOperator, aw as OrganizationInvitation, ax as OrganizationInvitationActionOptions, ay as OrganizationInvitationDetails, az as OrganizationInvitationStatus, aA as OrganizationMember, aB as OrganizationMemberUser, aC as OrganizationMemberWithUser, aD as OrganizationMembersData, aE as OrganizationRoleSummary, aF as OrganizationSelector, aG as OrganizationTeam, aH as OrganizationTeamMember, aI as OrganizationUserInvitation, d as PasskeyAuthData, c as PasskeySignInOptions, aJ as PasswordResetData, aK as PhoneAuthUser, aL as PhoneOtpStartData, aM as PhoneOtpStartOptions, aN as PhoneOtpVerifyData, aO as PhoneOtpVerifyOptions, l as PrivacyClient, m as PrivacyConsentPreference, n as PrivacyConsentState, o as PrivacyLocale, p as PrivacyRightState, q as PrivacyRightType, r as PrivacyRightsRequest, P as PublicConfig, R as RecordPrivacyConsentOptions, aP as RejectOrganizationInvitationData, aQ as RemoveOrganizationMemberData, aR as RemoveOrganizationMemberOptions, aS as RemoveOrganizationTeamData, aT as RemoveOrganizationTeamMemberData, aU as RemoveOrganizationTeamMemberOptions, aV as RemoveOrganizationTeamOptions, aW as RequestPasswordResetOptions, aX as ResetPasswordOptions, aY as RevokeSessionOptions, aZ as SendOtpData, a_ as SendTwoFactorOtpData, a$ as SendTwoFactorOtpOptions, b0 as SendVerificationOtpOptions, s as SessionState, t as SessionStore, u as SetActiveOrganizationOptions, b1 as SetActiveTeamOptions, b2 as SignOutData, b3 as SocialAccount, v as SocialAuthData, S as SocialIdTokenOptions, b4 as SocialSignInOptions, b5 as TokenClient, b6 as TwoFactorBackupCodesData, b7 as TwoFactorEnableData, b8 as TwoFactorRedirectData, b9 as TwoFactorStatusData, ba as TwoFactorVerifyData, bb as UnlinkSocialOptions, bc as UpdateOrganizationMemberRoleOptions, bd as UpdateOrganizationOptions, be as UpdateOrganizationTeamOptions, bf as UpdatePasskeyData, bg as UpdatePasskeyOptions, bh as UpdateProfileOptions, bi as UpdateUnsafeMetadataOptions, bj as UserMetadata, bk as UsernameSignInOptions, bl as VerifyBackupCodeOptions, bm as VerifyEmailOtpData, bn as VerifyEmailOtpOptions, bo as VerifyTotpOptions, bp as VerifyTwoFactorOtpOptions, bq as WaitlistJoinData, br as WaitlistJoinOptions, bs as acceptConsent, bt as captureInvitationClaim, bu as clearInvitationClaim, bv as createAuthOwlClient, bw as createTokenClient, bx as getConsentStatus, w as getPublicConfig, by as readInvitationClaim } from './client-2xyOK_yb.cjs';
3
+ import { x as PhoneOtpChallengeData, y as AkedlyShieldStartProof } from './client-w6no1OpC.cjs';
4
+ export { z as AcceptOrganizationInvitationData, B as AccountClient, D as AccountSession, E as AccountStatusData, A as ActionFetchOptions, F as AddOrganizationTeamMemberOptions, e as AddPasskeyOptions, a as AuthActionResult, g as AuthClientError, G as AuthErrorContext, b as AuthOwlClient, H as AuthOwlErrorCode, f as AuthPasskey, I as AuthRequestContext, J as AuthResponseContext, h as AuthSession, i as AuthUser, K as ChangeEmailOptions, L as ChangePasswordData, M as ChangePasswordOptions, N as ConsentAcceptResult, Q as ConsentStatus, T as CreateOrganizationOptions, U as CreateOrganizationTeamOptions, C as CreatePrivacyRightsRequestOptions, V as DeleteAccountData, W as DeleteAccountOptions, X as DeleteOrganizationOptions, Y as DeletePasskeyData, Z as DeletePasskeyOptions, _ as DisableTwoFactorOptions, $ as EmailAuthData, a0 as EmailOtpAuthData, a1 as EmailOtpSignInOptions, a2 as EmailOtpType, a3 as EmailSignInOptions, a4 as EmailSignUpData, a5 as EmailSignUpOptions, a6 as EnableTwoFactorOptions, a7 as EnvironmentType, a8 as GenerateBackupCodesOptions, a9 as GetOrganizationInvitationOptions, aa as GetOrganizationOptions, ab as GetToken, ac as GetTokenOptions, ad as INVITATION_CLAIM_MAX_AGE_MS, ae as INVITATION_QUERY_PARAM, af as InvitationClaim, ag as InvitationRecipientHint, ah as InviteOrganizationMemberOptions, ai as JsonObject, aj as JsonPrimitive, ak as JsonValue, al as LeaveOrganizationOptions, am as LinkSocialData, an as LinkSocialOptions, ao as ListOrganizationInvitationsOptions, ap as ListOrganizationMembersOptions, aq as ListOrganizationRolesOptions, ar as ListOrganizationTeamMembersOptions, as as ListOrganizationTeamsOptions, at as MagicLinkData, au as MagicLinkSignInOptions, O as Organization, j as OrganizationClient, k as OrganizationDetails, av as OrganizationFilterOperator, aw as OrganizationInvitation, ax as OrganizationInvitationActionOptions, ay as OrganizationInvitationDetails, az as OrganizationInvitationStatus, aA as OrganizationMember, aB as OrganizationMemberUser, aC as OrganizationMemberWithUser, aD as OrganizationMembersData, aE as OrganizationRoleSummary, aF as OrganizationSelector, aG as OrganizationTeam, aH as OrganizationTeamMember, aI as OrganizationUserInvitation, d as PasskeyAuthData, c as PasskeySignInOptions, aJ as PasswordResetData, aK as PhoneAuthUser, aL as PhoneOtpStartData, aM as PhoneOtpStartOptions, aN as PhoneOtpVerifyData, aO as PhoneOtpVerifyOptions, l as PrivacyClient, m as PrivacyConsentPreference, n as PrivacyConsentState, o as PrivacyLocale, p as PrivacyRightState, q as PrivacyRightType, r as PrivacyRightsRequest, P as PublicConfig, R as RecordPrivacyConsentOptions, aP as RejectOrganizationInvitationData, aQ as RemoveOrganizationMemberData, aR as RemoveOrganizationMemberOptions, aS as RemoveOrganizationTeamData, aT as RemoveOrganizationTeamMemberData, aU as RemoveOrganizationTeamMemberOptions, aV as RemoveOrganizationTeamOptions, aW as RequestPasswordResetOptions, aX as ResetPasswordOptions, aY as RevokeSessionOptions, aZ as SendOtpData, a_ as SendTwoFactorOtpData, a$ as SendTwoFactorOtpOptions, b0 as SendVerificationOtpOptions, s as SessionState, t as SessionStore, u as SetActiveOrganizationOptions, b1 as SetActiveTeamOptions, b2 as SignOutData, b3 as SocialAccount, v as SocialAuthData, S as SocialIdTokenOptions, b4 as SocialSignInOptions, b5 as TokenClient, b6 as TwoFactorBackupCodesData, b7 as TwoFactorEnableData, b8 as TwoFactorRedirectData, b9 as TwoFactorStatusData, ba as TwoFactorVerifyData, bb as UnlinkSocialOptions, bc as UpdateOrganizationMemberRoleOptions, bd as UpdateOrganizationOptions, be as UpdateOrganizationTeamOptions, bf as UpdatePasskeyData, bg as UpdatePasskeyOptions, bh as UpdateProfileOptions, bi as UpdateUnsafeMetadataOptions, bj as UserMetadata, bk as UsernameSignInOptions, bl as VerifyBackupCodeOptions, bm as VerifyEmailOtpData, bn as VerifyEmailOtpOptions, bo as VerifyTotpOptions, bp as VerifyTwoFactorOtpOptions, bq as WaitlistJoinData, br as WaitlistJoinOptions, bs as acceptConsent, bt as captureInvitationClaim, bu as clearInvitationClaim, bv as createAuthOwlClient, bw as createTokenClient, bx as getConsentStatus, w as getPublicConfig, by as readInvitationClaim } from './client-w6no1OpC.cjs';
5
5
  export { S as SESSION_TOKEN_HEADER, a as SESSION_TRANSPORT_BEARER, b as SESSION_TRANSPORT_HEADER } from './session-transport-contract-HDPYRum8.cjs';
6
- export { b as AUTH_CHALLENGE_HEADER, d as AUTH_LOCALE_HEADER, P as ProjectCapabilities, a as createIdempotencyKey, r as resolveProjectCapabilities } from './idempotency-BWgUuHGa.cjs';
6
+ export { b as AUTH_CHALLENGE_HEADER, d as AUTH_LOCALE_HEADER, P as ProjectCapabilities, a as createIdempotencyKey, r as resolveProjectCapabilities } from './idempotency-MKQZa2OJ.cjs';
7
7
  export { a as LOCALES, L as Locale, d as directionFor, i as isLocale } from './index-DgVPDEYx.cjs';
8
8
 
9
9
  /**
package/dist/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- export { A as AuthConfig, D as DecodedPublishableKey, H as HasParams, O as OrganizationMembership, R as ResolvedAuthConfig, a as ResolvedAuthTarget, T as TransportError, b as TransportErrorKind, c as createMembershipHas, d as decodePublishableKey, m as membershipHas, e as membershipHasPermission, f as membershipHasRole, g as membershipHasTeam, h as resolveAuthTarget, r as resolveConfig } from './organization-membership-DSqmZLkN.js';
1
+ export { A as AuthConfig, D as DecodedPublishableKey, H as HasParams, O as OrganizationMembership, R as ResolvedAuthConfig, a as ResolvedAuthTarget, T as TransportError, b as TransportErrorKind, c as createMembershipHas, d as decodePublishableKey, m as membershipHas, e as membershipHasPermission, f as membershipHasRole, g as membershipHasTeam, h as resolveAuthTarget, r as resolveConfig } from './organization-membership-BIify9hZ.js';
2
2
  export { s as sessionCookieName } from './cookie-BqcfagTw.js';
3
- import { x as PhoneOtpChallengeData, y as AkedlyShieldStartProof } from './client-Za31KAN3.js';
4
- export { z as AcceptOrganizationInvitationData, B as AccountClient, D as AccountSession, E as AccountStatusData, A as ActionFetchOptions, F as AddOrganizationTeamMemberOptions, e as AddPasskeyOptions, a as AuthActionResult, g as AuthClientError, G as AuthErrorContext, b as AuthOwlClient, H as AuthOwlErrorCode, f as AuthPasskey, I as AuthRequestContext, J as AuthResponseContext, h as AuthSession, i as AuthUser, K as ChangeEmailOptions, L as ChangePasswordData, M as ChangePasswordOptions, N as ConsentAcceptResult, Q as ConsentStatus, T as CreateOrganizationOptions, U as CreateOrganizationTeamOptions, C as CreatePrivacyRightsRequestOptions, V as DeleteAccountData, W as DeleteAccountOptions, X as DeleteOrganizationOptions, Y as DeletePasskeyData, Z as DeletePasskeyOptions, _ as DisableTwoFactorOptions, $ as EmailAuthData, a0 as EmailOtpAuthData, a1 as EmailOtpSignInOptions, a2 as EmailOtpType, a3 as EmailSignInOptions, a4 as EmailSignUpData, a5 as EmailSignUpOptions, a6 as EnableTwoFactorOptions, a7 as EnvironmentType, a8 as GenerateBackupCodesOptions, a9 as GetOrganizationInvitationOptions, aa as GetOrganizationOptions, ab as GetToken, ac as GetTokenOptions, ad as INVITATION_CLAIM_MAX_AGE_MS, ae as INVITATION_QUERY_PARAM, af as InvitationClaim, ag as InvitationRecipientHint, ah as InviteOrganizationMemberOptions, ai as JsonObject, aj as JsonPrimitive, ak as JsonValue, al as LeaveOrganizationOptions, am as LinkSocialData, an as LinkSocialOptions, ao as ListOrganizationInvitationsOptions, ap as ListOrganizationMembersOptions, aq as ListOrganizationRolesOptions, ar as ListOrganizationTeamMembersOptions, as as ListOrganizationTeamsOptions, at as MagicLinkData, au as MagicLinkSignInOptions, O as Organization, j as OrganizationClient, k as OrganizationDetails, av as OrganizationFilterOperator, aw as OrganizationInvitation, ax as OrganizationInvitationActionOptions, ay as OrganizationInvitationDetails, az as OrganizationInvitationStatus, aA as OrganizationMember, aB as OrganizationMemberUser, aC as OrganizationMemberWithUser, aD as OrganizationMembersData, aE as OrganizationRoleSummary, aF as OrganizationSelector, aG as OrganizationTeam, aH as OrganizationTeamMember, aI as OrganizationUserInvitation, d as PasskeyAuthData, c as PasskeySignInOptions, aJ as PasswordResetData, aK as PhoneAuthUser, aL as PhoneOtpStartData, aM as PhoneOtpStartOptions, aN as PhoneOtpVerifyData, aO as PhoneOtpVerifyOptions, l as PrivacyClient, m as PrivacyConsentPreference, n as PrivacyConsentState, o as PrivacyLocale, p as PrivacyRightState, q as PrivacyRightType, r as PrivacyRightsRequest, P as PublicConfig, R as RecordPrivacyConsentOptions, aP as RejectOrganizationInvitationData, aQ as RemoveOrganizationMemberData, aR as RemoveOrganizationMemberOptions, aS as RemoveOrganizationTeamData, aT as RemoveOrganizationTeamMemberData, aU as RemoveOrganizationTeamMemberOptions, aV as RemoveOrganizationTeamOptions, aW as RequestPasswordResetOptions, aX as ResetPasswordOptions, aY as RevokeSessionOptions, aZ as SendOtpData, a_ as SendTwoFactorOtpData, a$ as SendTwoFactorOtpOptions, b0 as SendVerificationOtpOptions, s as SessionState, t as SessionStore, u as SetActiveOrganizationOptions, b1 as SetActiveTeamOptions, b2 as SignOutData, b3 as SocialAccount, v as SocialAuthData, S as SocialIdTokenOptions, b4 as SocialSignInOptions, b5 as TokenClient, b6 as TwoFactorBackupCodesData, b7 as TwoFactorEnableData, b8 as TwoFactorRedirectData, b9 as TwoFactorStatusData, ba as TwoFactorVerifyData, bb as UnlinkSocialOptions, bc as UpdateOrganizationMemberRoleOptions, bd as UpdateOrganizationOptions, be as UpdateOrganizationTeamOptions, bf as UpdatePasskeyData, bg as UpdatePasskeyOptions, bh as UpdateProfileOptions, bi as UpdateUnsafeMetadataOptions, bj as UserMetadata, bk as UsernameSignInOptions, bl as VerifyBackupCodeOptions, bm as VerifyEmailOtpData, bn as VerifyEmailOtpOptions, bo as VerifyTotpOptions, bp as VerifyTwoFactorOtpOptions, bq as WaitlistJoinData, br as WaitlistJoinOptions, bs as acceptConsent, bt as captureInvitationClaim, bu as clearInvitationClaim, bv as createAuthOwlClient, bw as createTokenClient, bx as getConsentStatus, w as getPublicConfig, by as readInvitationClaim } from './client-Za31KAN3.js';
3
+ import { x as PhoneOtpChallengeData, y as AkedlyShieldStartProof } from './client-BHufZSky.js';
4
+ export { z as AcceptOrganizationInvitationData, B as AccountClient, D as AccountSession, E as AccountStatusData, A as ActionFetchOptions, F as AddOrganizationTeamMemberOptions, e as AddPasskeyOptions, a as AuthActionResult, g as AuthClientError, G as AuthErrorContext, b as AuthOwlClient, H as AuthOwlErrorCode, f as AuthPasskey, I as AuthRequestContext, J as AuthResponseContext, h as AuthSession, i as AuthUser, K as ChangeEmailOptions, L as ChangePasswordData, M as ChangePasswordOptions, N as ConsentAcceptResult, Q as ConsentStatus, T as CreateOrganizationOptions, U as CreateOrganizationTeamOptions, C as CreatePrivacyRightsRequestOptions, V as DeleteAccountData, W as DeleteAccountOptions, X as DeleteOrganizationOptions, Y as DeletePasskeyData, Z as DeletePasskeyOptions, _ as DisableTwoFactorOptions, $ as EmailAuthData, a0 as EmailOtpAuthData, a1 as EmailOtpSignInOptions, a2 as EmailOtpType, a3 as EmailSignInOptions, a4 as EmailSignUpData, a5 as EmailSignUpOptions, a6 as EnableTwoFactorOptions, a7 as EnvironmentType, a8 as GenerateBackupCodesOptions, a9 as GetOrganizationInvitationOptions, aa as GetOrganizationOptions, ab as GetToken, ac as GetTokenOptions, ad as INVITATION_CLAIM_MAX_AGE_MS, ae as INVITATION_QUERY_PARAM, af as InvitationClaim, ag as InvitationRecipientHint, ah as InviteOrganizationMemberOptions, ai as JsonObject, aj as JsonPrimitive, ak as JsonValue, al as LeaveOrganizationOptions, am as LinkSocialData, an as LinkSocialOptions, ao as ListOrganizationInvitationsOptions, ap as ListOrganizationMembersOptions, aq as ListOrganizationRolesOptions, ar as ListOrganizationTeamMembersOptions, as as ListOrganizationTeamsOptions, at as MagicLinkData, au as MagicLinkSignInOptions, O as Organization, j as OrganizationClient, k as OrganizationDetails, av as OrganizationFilterOperator, aw as OrganizationInvitation, ax as OrganizationInvitationActionOptions, ay as OrganizationInvitationDetails, az as OrganizationInvitationStatus, aA as OrganizationMember, aB as OrganizationMemberUser, aC as OrganizationMemberWithUser, aD as OrganizationMembersData, aE as OrganizationRoleSummary, aF as OrganizationSelector, aG as OrganizationTeam, aH as OrganizationTeamMember, aI as OrganizationUserInvitation, d as PasskeyAuthData, c as PasskeySignInOptions, aJ as PasswordResetData, aK as PhoneAuthUser, aL as PhoneOtpStartData, aM as PhoneOtpStartOptions, aN as PhoneOtpVerifyData, aO as PhoneOtpVerifyOptions, l as PrivacyClient, m as PrivacyConsentPreference, n as PrivacyConsentState, o as PrivacyLocale, p as PrivacyRightState, q as PrivacyRightType, r as PrivacyRightsRequest, P as PublicConfig, R as RecordPrivacyConsentOptions, aP as RejectOrganizationInvitationData, aQ as RemoveOrganizationMemberData, aR as RemoveOrganizationMemberOptions, aS as RemoveOrganizationTeamData, aT as RemoveOrganizationTeamMemberData, aU as RemoveOrganizationTeamMemberOptions, aV as RemoveOrganizationTeamOptions, aW as RequestPasswordResetOptions, aX as ResetPasswordOptions, aY as RevokeSessionOptions, aZ as SendOtpData, a_ as SendTwoFactorOtpData, a$ as SendTwoFactorOtpOptions, b0 as SendVerificationOtpOptions, s as SessionState, t as SessionStore, u as SetActiveOrganizationOptions, b1 as SetActiveTeamOptions, b2 as SignOutData, b3 as SocialAccount, v as SocialAuthData, S as SocialIdTokenOptions, b4 as SocialSignInOptions, b5 as TokenClient, b6 as TwoFactorBackupCodesData, b7 as TwoFactorEnableData, b8 as TwoFactorRedirectData, b9 as TwoFactorStatusData, ba as TwoFactorVerifyData, bb as UnlinkSocialOptions, bc as UpdateOrganizationMemberRoleOptions, bd as UpdateOrganizationOptions, be as UpdateOrganizationTeamOptions, bf as UpdatePasskeyData, bg as UpdatePasskeyOptions, bh as UpdateProfileOptions, bi as UpdateUnsafeMetadataOptions, bj as UserMetadata, bk as UsernameSignInOptions, bl as VerifyBackupCodeOptions, bm as VerifyEmailOtpData, bn as VerifyEmailOtpOptions, bo as VerifyTotpOptions, bp as VerifyTwoFactorOtpOptions, bq as WaitlistJoinData, br as WaitlistJoinOptions, bs as acceptConsent, bt as captureInvitationClaim, bu as clearInvitationClaim, bv as createAuthOwlClient, bw as createTokenClient, bx as getConsentStatus, w as getPublicConfig, by as readInvitationClaim } from './client-BHufZSky.js';
5
5
  export { S as SESSION_TOKEN_HEADER, a as SESSION_TRANSPORT_BEARER, b as SESSION_TRANSPORT_HEADER } from './session-transport-contract-HDPYRum8.js';
6
- export { b as AUTH_CHALLENGE_HEADER, d as AUTH_LOCALE_HEADER, P as ProjectCapabilities, a as createIdempotencyKey, r as resolveProjectCapabilities } from './idempotency-BidZZuun.js';
6
+ export { b as AUTH_CHALLENGE_HEADER, d as AUTH_LOCALE_HEADER, P as ProjectCapabilities, a as createIdempotencyKey, r as resolveProjectCapabilities } from './idempotency-DFT3sJwb.js';
7
7
  export { a as LOCALES, L as Locale, d as directionFor, i as isLocale } from './index-DgVPDEYx.js';
8
8
 
9
9
  /**
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- import {c as c$1,d as d$1,k,m,i,j}from'./chunk-Y2VJN76I.js';export{g as AUTH_CHALLENGE_HEADER,h as AUTH_LOCALE_HEADER,b as AuthOwlHttpError,f as activeLocale,n as getPublicConfig,a as resolveProjectCapabilities,e as setActiveLocale}from'./chunk-Y2VJN76I.js';export{a as LOCALES,b as directionFor,c as isLocale}from'./chunk-M4QJVSXT.js';export{a as createIdempotencyKey}from'./chunk-5NL5GJW6.js';import {f,g,e,q as q$1,s,r}from'./chunk-V3MSLXXB.js';export{j as SESSION_TOKEN_HEADER,l as SESSION_TRANSPORT_BEARER,k as SESSION_TRANSPORT_HEADER,o as TransportError,F as createMembershipHas,a as decodePublishableKey,E as membershipHas,B as membershipHasPermission,D as membershipHasRole,C as membershipHasTeam,m as resolveAuthTarget,n as resolveConfig,h as sessionChallengeIsEphemeral,b as sessionCookieName}from'./chunk-V3MSLXXB.js';import'./chunk-T5SH3ZZP.js';var M="authowl_invitation",V="authowl.invitation-claim",ie=/^[A-Za-z0-9_-]{1,128}$/,re=10080*60*1e3;function qe(e=Date.now()){if(typeof window>"u")return C(e);let t;try{t=new URL(window.location.href);}catch{return C(e)}let n=t.searchParams.get(M);if(n===null)return C(e);t.searchParams.delete(M);try{window.history.replaceState(window.history.state,"",t.toString());}catch{}if(!ie.test(n))return C(e);let o={id:n,capturedAt:e};return f(g(),V,JSON.stringify(o)),o}function C(e$1=Date.now()){let t=e(g(),V);if(t===null)return null;let n;try{n=JSON.parse(t);}catch{return P(),null}if(typeof n!="object"||n===null)return P(),null;let{id:o,capturedAt:a}=n;return typeof o!="string"||!ie.test(o)||typeof a!="number"||e$1-a>re?(P(),null):{id:o,capturedAt:a}}function P(){f(g(),V,null);}var ae="authowl.last-used-method",He=/^(password|username|magic-link|email-otp|phone-otp|passkey|sso|social:[a-z0-9][a-z0-9_-]{0,63})$/,K=e=>`${ae}.${e}`;function D(e){return He.test(e)}function Ge(e$1){let t=e(g(),K(e$1));return t===null||!D(t)?null:t}function Je(e,t){D(t)&&(f(g(),x(e),null),f(g(),K(e),t));}var x=e=>`${ae}.pending.${e}`;function We(e,t){D(t)&&f(g(),x(e),t);}function $e(e$1,t){let n=e(g(),x(e$1));f(g(),x(e$1),null),t&&n!==null&&D(n)&&f(g(),K(e$1),n);}function d(e){let t=new Uint8Array(e),n="";for(let a of t)n+=String.fromCharCode(a);return btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function O(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),n=(4-t.length%4)%4,o=t.padEnd(t.length+n,"="),a=atob(o),i=new ArrayBuffer(a.length),l=new Uint8Array(i);for(let s=0;s<a.length;s++)l[s]=a.charCodeAt(s);return i}function A(){return je.stubThis(globalThis?.PublicKeyCredential!==void 0&&typeof globalThis.PublicKeyCredential=="function")}var je={stubThis:e=>e};function v(e){let{id:t}=e;return {...e,id:O(t),transports:e.transports}}function U(e){return e==="localhost"||/^((xn--[a-z0-9-]+|[a-z0-9]+(-[a-z0-9]+)*)\.)+([a-z]{2,}|xn--[a-z0-9-]+)$/i.test(e)}var c=class extends Error{constructor({message:t,code:n,cause:o,name:a}){super(t,{cause:o}),Object.defineProperty(this,"code",{enumerable:true,configurable:true,writable:true,value:void 0}),this.name=a??o.name,this.code=n;}};function se({error:e,options:t}){let{publicKey:n}=t;if(!n)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(t.signal instanceof AbortSignal)return new c({message:"Registration ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else if(e.name==="ConstraintError"){if(n.authenticatorSelection?.requireResidentKey===true)return new c({message:"Discoverable credentials were required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT",cause:e});if(t.mediation==="conditional"&&n.authenticatorSelection?.userVerification==="required")return new c({message:"User verification was required during automatic registration but it could not be performed",code:"ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE",cause:e});if(n.authenticatorSelection?.userVerification==="required")return new c({message:"User verification was required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT",cause:e})}else {if(e.name==="InvalidStateError")return new c({message:"The authenticator was previously registered",code:"ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED",cause:e});if(e.name==="NotAllowedError")return new c({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="NotSupportedError")return n.pubKeyCredParams.filter(a=>a.type==="public-key").length===0?new c({message:'No entry in pubKeyCredParams was of type "public-key"',code:"ERROR_MALFORMED_PUBKEYCREDPARAMS",cause:e}):new c({message:"No available authenticator supported any of the specified pubKeyCredParams algorithms",code:"ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG",cause:e});if(e.name==="SecurityError"){let o=globalThis.location.hostname;if(U(o)){if(n.rp.id!==o)return new c({message:`The RP ID "${n.rp.id}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new c({message:`${globalThis.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="TypeError"){if(n.user.id.byteLength<1||n.user.id.byteLength>64)return new c({message:"User ID was not between 1 and 64 characters",code:"ERROR_INVALID_USER_ID_LENGTH",cause:e})}else if(e.name==="UnknownError")return new c({message:"The authenticator was unable to process the specified options, or could not create a new credential",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return e}var z=class{constructor(){Object.defineProperty(this,"controller",{enumerable:true,configurable:true,writable:true,value:void 0});}createNewAbortSignal(){if(this.controller){let n=new Error("Cancelling existing WebAuthn API call for new one");n.name="AbortError",this.controller.abort(n);}let t=new AbortController;return this.controller=t,t.signal}cancelCeremony(){if(this.controller){let t=new Error("Manually cancelling existing WebAuthn API call");t.name="AbortError",this.controller.abort(t),this.controller=void 0;}}},_=new z;var Ye=["cross-platform","platform"];function N(e){if(e&&!(Ye.indexOf(e)<0))return e}async function ce(e){!e.optionsJSON&&e.challenge&&(console.warn("startRegistration() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information."),e={optionsJSON:e});let{optionsJSON:t,useAutoRegister:n=false}=e;if(!A())throw new Error("WebAuthn is not supported in this browser");let o={...t,challenge:O(t.challenge),user:{...t.user,id:O(t.user.id)},excludeCredentials:t.excludeCredentials?.map(v)},a={};n&&(a.mediation="conditional"),a.publicKey=o,a.signal=_.createNewAbortSignal();let i;try{i=await navigator.credentials.create(a);}catch(p){throw se({error:p,options:a})}if(!i)throw new Error("Registration was not completed");let{id:l,rawId:s,response:r,type:b}=i,m;typeof r.getTransports=="function"&&(m=r.getTransports());let y;if(typeof r.getPublicKeyAlgorithm=="function")try{y=r.getPublicKeyAlgorithm();}catch(p){B("getPublicKeyAlgorithm()",p);}let h;if(typeof r.getPublicKey=="function")try{let p=r.getPublicKey();p!==null&&(h=d(p));}catch(p){B("getPublicKey()",p);}let f;if(typeof r.getAuthenticatorData=="function")try{f=d(r.getAuthenticatorData());}catch(p){B("getAuthenticatorData()",p);}return {id:l,rawId:d(s),response:{attestationObject:d(r.attestationObject),clientDataJSON:d(r.clientDataJSON),transports:m,publicKeyAlgorithm:y,publicKey:h,authenticatorData:f},type:b,clientExtensionResults:i.getClientExtensionResults(),authenticatorAttachment:N(i.authenticatorAttachment)}}function B(e,t){console.warn(`The browser extension that intercepted this WebAuthn API call incorrectly implemented ${e}. You should report this error to them.
1
+ import {c as c$1,d as d$1,k,m,i,j}from'./chunk-6GILD4LY.js';export{g as AUTH_CHALLENGE_HEADER,h as AUTH_LOCALE_HEADER,b as AuthOwlHttpError,f as activeLocale,n as getPublicConfig,a as resolveProjectCapabilities,e as setActiveLocale}from'./chunk-6GILD4LY.js';export{a as LOCALES,b as directionFor,c as isLocale}from'./chunk-M4QJVSXT.js';export{a as createIdempotencyKey}from'./chunk-5NL5GJW6.js';import {f,g,e,q as q$1,s,r}from'./chunk-IB6TFQFD.js';export{j as SESSION_TOKEN_HEADER,l as SESSION_TRANSPORT_BEARER,k as SESSION_TRANSPORT_HEADER,o as TransportError,F as createMembershipHas,a as decodePublishableKey,E as membershipHas,B as membershipHasPermission,D as membershipHasRole,C as membershipHasTeam,m as resolveAuthTarget,n as resolveConfig,h as sessionChallengeIsEphemeral,b as sessionCookieName}from'./chunk-IB6TFQFD.js';import'./chunk-T5SH3ZZP.js';var M="authowl_invitation",V="authowl.invitation-claim",ie=/^[A-Za-z0-9_-]{1,128}$/,re=10080*60*1e3;function qe(e=Date.now()){if(typeof window>"u")return C(e);let t;try{t=new URL(window.location.href);}catch{return C(e)}let n=t.searchParams.get(M);if(n===null)return C(e);t.searchParams.delete(M);try{window.history.replaceState(window.history.state,"",t.toString());}catch{}if(!ie.test(n))return C(e);let o={id:n,capturedAt:e};return f(g(),V,JSON.stringify(o)),o}function C(e$1=Date.now()){let t=e(g(),V);if(t===null)return null;let n;try{n=JSON.parse(t);}catch{return P(),null}if(typeof n!="object"||n===null)return P(),null;let{id:o,capturedAt:a}=n;return typeof o!="string"||!ie.test(o)||typeof a!="number"||e$1-a>re?(P(),null):{id:o,capturedAt:a}}function P(){f(g(),V,null);}var ae="authowl.last-used-method",He=/^(password|username|magic-link|email-otp|phone-otp|passkey|sso|social:[a-z0-9][a-z0-9_-]{0,63})$/,K=e=>`${ae}.${e}`;function D(e){return He.test(e)}function Ge(e$1){let t=e(g(),K(e$1));return t===null||!D(t)?null:t}function Je(e,t){D(t)&&(f(g(),x(e),null),f(g(),K(e),t));}var x=e=>`${ae}.pending.${e}`;function We(e,t){D(t)&&f(g(),x(e),t);}function $e(e$1,t){let n=e(g(),x(e$1));f(g(),x(e$1),null),t&&n!==null&&D(n)&&f(g(),K(e$1),n);}function d(e){let t=new Uint8Array(e),n="";for(let a of t)n+=String.fromCharCode(a);return btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function O(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),n=(4-t.length%4)%4,o=t.padEnd(t.length+n,"="),a=atob(o),i=new ArrayBuffer(a.length),l=new Uint8Array(i);for(let s=0;s<a.length;s++)l[s]=a.charCodeAt(s);return i}function A(){return je.stubThis(globalThis?.PublicKeyCredential!==void 0&&typeof globalThis.PublicKeyCredential=="function")}var je={stubThis:e=>e};function v(e){let{id:t}=e;return {...e,id:O(t),transports:e.transports}}function U(e){return e==="localhost"||/^((xn--[a-z0-9-]+|[a-z0-9]+(-[a-z0-9]+)*)\.)+([a-z]{2,}|xn--[a-z0-9-]+)$/i.test(e)}var c=class extends Error{constructor({message:t,code:n,cause:o,name:a}){super(t,{cause:o}),Object.defineProperty(this,"code",{enumerable:true,configurable:true,writable:true,value:void 0}),this.name=a??o.name,this.code=n;}};function se({error:e,options:t}){let{publicKey:n}=t;if(!n)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(t.signal instanceof AbortSignal)return new c({message:"Registration ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else if(e.name==="ConstraintError"){if(n.authenticatorSelection?.requireResidentKey===true)return new c({message:"Discoverable credentials were required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT",cause:e});if(t.mediation==="conditional"&&n.authenticatorSelection?.userVerification==="required")return new c({message:"User verification was required during automatic registration but it could not be performed",code:"ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE",cause:e});if(n.authenticatorSelection?.userVerification==="required")return new c({message:"User verification was required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT",cause:e})}else {if(e.name==="InvalidStateError")return new c({message:"The authenticator was previously registered",code:"ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED",cause:e});if(e.name==="NotAllowedError")return new c({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="NotSupportedError")return n.pubKeyCredParams.filter(a=>a.type==="public-key").length===0?new c({message:'No entry in pubKeyCredParams was of type "public-key"',code:"ERROR_MALFORMED_PUBKEYCREDPARAMS",cause:e}):new c({message:"No available authenticator supported any of the specified pubKeyCredParams algorithms",code:"ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG",cause:e});if(e.name==="SecurityError"){let o=globalThis.location.hostname;if(U(o)){if(n.rp.id!==o)return new c({message:`The RP ID "${n.rp.id}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new c({message:`${globalThis.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="TypeError"){if(n.user.id.byteLength<1||n.user.id.byteLength>64)return new c({message:"User ID was not between 1 and 64 characters",code:"ERROR_INVALID_USER_ID_LENGTH",cause:e})}else if(e.name==="UnknownError")return new c({message:"The authenticator was unable to process the specified options, or could not create a new credential",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return e}var z=class{constructor(){Object.defineProperty(this,"controller",{enumerable:true,configurable:true,writable:true,value:void 0});}createNewAbortSignal(){if(this.controller){let n=new Error("Cancelling existing WebAuthn API call for new one");n.name="AbortError",this.controller.abort(n);}let t=new AbortController;return this.controller=t,t.signal}cancelCeremony(){if(this.controller){let t=new Error("Manually cancelling existing WebAuthn API call");t.name="AbortError",this.controller.abort(t),this.controller=void 0;}}},_=new z;var Ye=["cross-platform","platform"];function N(e){if(e&&!(Ye.indexOf(e)<0))return e}async function ce(e){!e.optionsJSON&&e.challenge&&(console.warn("startRegistration() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information."),e={optionsJSON:e});let{optionsJSON:t,useAutoRegister:n=false}=e;if(!A())throw new Error("WebAuthn is not supported in this browser");let o={...t,challenge:O(t.challenge),user:{...t.user,id:O(t.user.id)},excludeCredentials:t.excludeCredentials?.map(v)},a={};n&&(a.mediation="conditional"),a.publicKey=o,a.signal=_.createNewAbortSignal();let i;try{i=await navigator.credentials.create(a);}catch(p){throw se({error:p,options:a})}if(!i)throw new Error("Registration was not completed");let{id:l,rawId:s,response:r,type:b}=i,m;typeof r.getTransports=="function"&&(m=r.getTransports());let y;if(typeof r.getPublicKeyAlgorithm=="function")try{y=r.getPublicKeyAlgorithm();}catch(p){B("getPublicKeyAlgorithm()",p);}let h;if(typeof r.getPublicKey=="function")try{let p=r.getPublicKey();p!==null&&(h=d(p));}catch(p){B("getPublicKey()",p);}let f;if(typeof r.getAuthenticatorData=="function")try{f=d(r.getAuthenticatorData());}catch(p){B("getAuthenticatorData()",p);}return {id:l,rawId:d(s),response:{attestationObject:d(r.attestationObject),clientDataJSON:d(r.clientDataJSON),transports:m,publicKeyAlgorithm:y,publicKey:h,authenticatorData:f},type:b,clientExtensionResults:i.getClientExtensionResults(),authenticatorAttachment:N(i.authenticatorAttachment)}}function B(e,t){console.warn(`The browser extension that intercepted this WebAuthn API call incorrectly implemented ${e}. You should report this error to them.
2
2
  `,t);}function le(){if(!A())return q.stubThis(new Promise(t=>t(false)));let e=globalThis.PublicKeyCredential;return e?.isConditionalMediationAvailable===void 0?q.stubThis(new Promise(t=>t(false))):q.stubThis(e.isConditionalMediationAvailable())}var q={stubThis:e=>e};function pe({error:e,options:t}){let{publicKey:n}=t;if(!n)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(t.signal instanceof AbortSignal)return new c({message:"Authentication ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else {if(e.name==="NotAllowedError")return new c({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="SecurityError"){let o=globalThis.location.hostname;if(U(o)){if(n.rpId!==o)return new c({message:`The RP ID "${n.rpId}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new c({message:`${globalThis.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="UnknownError")return new c({message:"The authenticator was unable to process the specified options, or could not create a new assertion signature",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return e}async function ue(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:o=true}=e;if(!A())throw new Error("WebAuthn is not supported in this browser");let a;t.allowCredentials?.length!==0&&(a=t.allowCredentials?.map(v));let i={...t,challenge:O(t.challenge),allowCredentials:a},l={};if(n){if(!await le())throw Error("Browser does not support WebAuthn autofill");if(document.querySelectorAll("input[autocomplete$='webauthn']").length<1&&o)throw Error('No <input> with "webauthn" as the only or last value in its `autocomplete` attribute was detected');l.mediation="conditional",i.allowCredentials=[];}l.publicKey=i,l.signal=_.createNewAbortSignal();let s;try{s=await navigator.credentials.get(l);}catch(f){throw pe({error:f,options:l})}if(!s)throw new Error("Authentication was not completed");let{id:r,rawId:b,response:m,type:y}=s,h;return m.userHandle&&(h=d(m.userHandle)),{id:r,rawId:d(b),response:{authenticatorData:d(m.authenticatorData),clientDataJSON:d(m.clientDataJSON),signature:d(m.signature),userHandle:h},type:y,clientExtensionResults:s.getClientExtensionResults(),authenticatorAttachment:N(s.authenticatorAttachment)}}var de={authenticate:e=>ue(e),register:e=>ce(e),errorCode:e=>e instanceof c?e.code:void 0};function fe(e){return `${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/consent`}async function H(e){let t=await c$1(e,fe(e),{init:{method:"GET",credentials:"include"},maxResponseBytes:65536,decode:Qe});return t.response.status===401?{required:false}:d$1(t,"consent status")}async function G(e,t){if(!Number.isSafeInteger(t)||t<1)throw new TypeError("Consent version must be a positive integer.");return d$1(await c$1(e,fe(e),{init:{method:"POST",headers:{"content-type":"application/json"},credentials:"include",body:JSON.stringify({version:t})},maxResponseBytes:64*1024,decode:Xe}),"consent accept")}function Qe(e){let t=q$1(e),n=s(t.required),o=Ze(t.needsConsent),a=ge(t.version),i=me(t.termsUrl),l=me(t.privacyUrl);return {required:n,...o===void 0?{}:{needsConsent:o},...a===void 0?{}:{version:a},...i===void 0?{}:{termsUrl:i},...l===void 0?{}:{privacyUrl:l}}}function Xe(e){let t=q$1(e),n=ge(t.version);return {ok:s(t.ok),...n===void 0?{}:{version:n}}}function Ze(e){if(e===void 0||typeof e=="boolean")return e;throw new TypeError("Invalid consent response.")}function ge(e){if(e===void 0||Number.isSafeInteger(e)&&e>=1)return e;throw new TypeError("Invalid consent response.")}function me(e){if(e===void 0||typeof e=="string"&&e.length<=4096)return e;throw new TypeError("Invalid consent response.")}var et=30;function tt(e){return typeof e?.exp=="number"?e.exp:null}function nt(e){let t=e.split(".")[1];if(!t)return null;try{let n=t.replace(/-/g,"+").replace(/_/g,"/"),o=JSON.parse(atob(n));return typeof o=="object"&&o!==null?o:null}catch{return null}}function J(e){let t=new Map;async function n(i={}){let l=i.template===void 0?null:i.template.trim().toLowerCase();if(l==="")throw new TypeError("Template missing");let s=l??"",r=t.get(s);r||(r={activeKey:null,cachedByKey:new Map,inflight:null,sequence:0},t.set(s,r));let b=i.forceRefresh===true;if(!b){let p=r.activeKey?r.cachedByKey.get(r.activeKey):null;if(p&&p.exp-Date.now()/1e3>et)return p.token;if(r.inflight)return r.inflight}let m=++r.sequence,y=()=>t.get(s)===r&&r.sequence===m,h=(async()=>{let p=l?`${e.projectBaseURL}/token/${encodeURIComponent(l)}`:`${e.projectBaseURL}/token`,j=await c$1(e,p,{init:{method:"GET",credentials:"include"},maxResponseBytes:64*1024,decode:k=>ot(k,l!==null)});if(j.response.status===401)return y()&&o(),null;let Y=d$1(j,"token"),he=Y.policyVersion,F=Y.token,w=nt(F),Q=tt(w);if(y())if(Q!==null){let k=typeof w?.sub=="string"?w.sub:null,ye=typeof w?.org_id=="string"?w.org_id:null;if(!l||k){let X=JSON.stringify([e.projectBaseURL,k,ye,l,he]);r.cachedByKey.clear(),r.cachedByKey.set(X,{token:F,exp:Q}),r.activeKey=X;}else a(r);}else a(r);return F})();if(b)return h;let f=h.finally(()=>{r.inflight===f&&(r.inflight=null);});return r.inflight=f,f}function o(){t.clear();}function a(i){i.cachedByKey.clear(),i.activeKey=null;}return {getToken:n,clear:o}}function ot(e,t){let n=q$1(e),o=r(n.token);if(o.length===0||o.length>32*1024)throw new TypeError("Invalid token response.");if(!t)return {token:o,policyVersion:0};let a=q$1(n.template);if(!Number.isSafeInteger(a.policyVersion)||a.policyVersion<1)throw new TypeError("Invalid token response.");return {token:o,policyVersion:a.policyVersion}}function it(e){let t=J(e),n=k(e,t.clear,(s,r)=>m(s,r,de)),o=i(e,`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}`),a=j(o),i$1=s=>(...r)=>(t.clear(),s(...r)),l={getConsentStatus:()=>H(e),acceptConsent:s=>G(e,s),getToken:t.getToken,privacy:a,waitlist:{join:(s,r)=>o.request("/waitlist",{method:"POST",body:s,fetchOptions:r,credentials:"omit"})},account:{...n.account,updateUnsafeMetadata:i$1(n.account.updateUnsafeMetadata),updateProfile:i$1(n.account.updateProfile),changeEmail:i$1(n.account.changeEmail),changePassword:i$1(n.account.changePassword),revokeSession:i$1(n.account.revokeSession),delete:i$1(n.account.delete)},signIn:{email:i$1(n.signIn.email),username:i$1(n.signIn.username),social:i$1(n.signIn.social),sso:n.signIn.sso,magicLink:n.signIn.magicLink,emailOtp:i$1(n.signIn.emailOtp),passkey:i$1(n.signIn.passkey)},signUp:{email:i$1(n.signUp.email)},emailOtp:{...n.emailOtp,verifyEmail:i$1(n.emailOtp.verifyEmail)},twoFactor:{enable:n.twoFactor.enable,disable:i$1(n.twoFactor.disable),verifyTotp:i$1(n.twoFactor.verifyTotp),verifyBackupCode:i$1(n.twoFactor.verifyBackupCode),sendOtp:n.twoFactor.sendOtp,verifyOtp:i$1(n.twoFactor.verifyOtp),generateBackupCodes:n.twoFactor.generateBackupCodes},phoneOtp:{prepare:n.phoneOtp.prepare,start:n.phoneOtp.start,verify:i$1(n.phoneOtp.verify)},signOut:i$1(n.signOut)};return {...n,...l}}async function rt(e){if(typeof window>"u")throw new Error("Akedly Shield challenges must be solved in a browser.");let t=await at(),n=e.challengeRequired?await t.solvePow(e.challenge,e.difficulty):null,o=e.turnstile.required?await t.getTurnstileToken(st(e.turnstile.siteKey)):void 0;return {connectionId:e.connectionId,...n?{challengeToken:e.challengeToken,nonce:n.nonce}:{},...o?{turnstileToken:o}:{}}}async function at(){return import('@akedly/shield')}function st(e){if(!e)throw new Error("Akedly Shield did not provide a Turnstile site key.");return e}var I=class extends Error{constructor(n,o){super(n);this.cause=o;this.name="AuthOwlError";}cause},W=class extends I{constructor(n,o){super(`Rate limited. Retry after ${n}s.`,o);this.retryAfterSeconds=n;this.name="RateLimitedError";}retryAfterSeconds},$=class extends I{constructor(t="invalid publishable key",n){super(t,n),this.name="InvalidKeyError";}};
3
3
  export{I as AuthOwlError,re as INVITATION_CLAIM_MAX_AGE_MS,M as INVITATION_QUERY_PARAM,$ as InvalidKeyError,W as RateLimitedError,G as acceptConsent,qe as captureInvitationClaim,P as clearInvitationClaim,it as createAuthOwlClient,J as createTokenClient,H as getConsentStatus,C as readInvitationClaim,Ge as readLastUsedSignInMethod,Je as recordLastUsedSignInMethod,We as rememberPendingSignInMethod,$e as settlePendingSignInMethod,rt as solvePhoneOtpChallenge};