@authowl/core 0.24.0 → 0.24.1

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/native.cjs CHANGED
@@ -1,2 +1,2 @@
1
- 'use strict';var Bi=Object.defineProperty;var Me=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(i){throw n=[i],i}};var Ot=(e,t)=>{for(var n in t)Bi(e,n,{get:t[n],enumerable:true});};var Jt={};Ot(Jt,{abandonSession:()=>Ft,bindingNonce:()=>Vt,boundedSessionFetch:()=>Oe,clearSessionProofKeyMemoryForTests:()=>fo,cookieCapability:()=>Mt,createSessionProof:()=>jt,createStoredSessionProof:()=>bo,prepareSenderConstrainedSession:()=>lo,sessionProofKey:()=>Se});async function Oe(e,t,n,i){let o=new AbortController,r,u=new Promise((d,l)=>{r=setTimeout(()=>{o.abort(),l(new Error("AuthOwl session transport request timed out."));},i);});try{return await Promise.race([e(t,{...n,signal:o.signal}),u])}finally{clearTimeout(r);}}async function Mt(e,t,n){let i=await Oe(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 Oe(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 u;try{u=JSON.parse(r);}catch{throw new Error("AuthOwl cookie capability response is invalid.")}if(!u||typeof u!="object"||Array.isArray(u)||Object.keys(u).length!==1||typeof u.cookieSupported!="boolean")throw new Error("AuthOwl cookie capability response is invalid.");return u.cookieSupported}async function Ft(e,t,n,i){let o=new Headers(n);o.set("authorization",i),o.set("x-authowl-session-transport","bearer");try{await Oe(e,t,{method:"POST",credentials:"include",headers:o},2e3);}catch{}}async function lo(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 u=await Se(e.clientOrigin);if(u.thumbprint!==r)throw new Error("Session proof key changed.");n=u;}catch{let u=new Headers;t.declareOn(u);let d=u.get("authorization");d&&await Ft(e.fetcher,`${e.projectBaseURL}/session/abandon`,e.headers,d),t.endSession(),t.beginSession(e.start);}}let i;try{i=await Mt(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 Se(e.clientOrigin);return t.useBoundBearerTransport(o.thumbprint,o.persistent),{binding:{key:o,nonce:Vt()},cookieOnly:false}}function ne(e){let t="";for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function we(e){return new TextEncoder().encode(e)}async function Ht(e){return ne(new Uint8Array(await crypto.subtle.digest("SHA-256",we(e))))}function Kt(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 qt(e){return Ht(JSON.stringify({crv:e.crv,kty:e.kty,x:e.x,y:e.y}))}function po(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 fo(){Ae.clear();}async function go(e){if(!e||typeof e!="object")return null;let t=e;if(!po(t.privateKey)||!t.publicJwk||!Kt(t.publicJwk))return null;let n=await qt(t.publicJwk);return t.thumbprint!==n?null:{privateKey:t.privateKey,publicJwk:t.publicJwk,thumbprint:n,persistent:true}}function Bt(){return typeof indexedDB>"u"?Promise.resolve(null):new Promise(e=>{let t;try{t=indexedDB.open(uo,1);}catch{e(null);return}t.onupgradeneeded=()=>{t.result.objectStoreNames.contains(ie)||t.result.createObjectStore(ie,{keyPath:"origin"});},t.onsuccess=()=>e(t.result),t.onerror=()=>e(null),t.onblocked=()=>e(null);})}async function Lt(e){let t=await Bt();if(!t)return null;try{let n=await new Promise(i=>{let o=t.transaction(ie,"readonly").objectStore(ie).get(e);o.onsuccess=()=>i(o.result),o.onerror=()=>i(null);});return await go(n)}finally{t.close();}}async function mo(e,t){let n=await Bt();if(!n)return "unavailable";try{return await new Promise(i=>{let o;try{o=n.transaction(ie,"readwrite"),o.objectStore(ie).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 ho(){let e=await crypto.subtle.generateKey({name:"ECDSA",namedCurve:"P-256"},false,["sign","verify"]),t=await crypto.subtle.exportKey("jwk",e.publicKey);if(!Kt(t))throw new Error("The browser produced an invalid proof key.");return {privateKey:e.privateKey,publicJwk:t,thumbprint:await qt(t),persistent:false}}function Se(e){let t=Ae.get(e);if(t)return t;let n=(async()=>{let i=await Lt(e);if(i)return i;let o=await ho(),r=await mo(e,o);return r==="stored"?{...o,persistent:true}:r==="conflict"?await Lt(e)??o:o})();return Ae.set(e,n),n.catch(()=>Ae.delete(e)),n}function Vt(){return ne(crypto.getRandomValues(new Uint8Array(32)))}function yo(e){let t=new URL(e);return t.search="",t.hash="",t.toString()}async function jt(e){let t=ne(we(JSON.stringify({typ:ao,alg:co,jwk:e.key.publicJwk}))),n=ne(we(JSON.stringify({htm:e.method.toUpperCase(),htu:yo(e.url),iat:Math.floor(Date.now()/1e3),jti:ne(crypto.getRandomValues(new Uint8Array(16))),ath:await Ht(e.token)}))),i=`${t}.${n}`,o=await crypto.subtle.sign({name:"ECDSA",hash:"SHA-256"},e.key.privateKey,we(i));return `${i}.${ne(new Uint8Array(o))}`}async function bo(e){let t=await Se(e.origin);if(t.thumbprint!==e.expectedThumbprint)throw new Error("Session proof key changed.");return jt({key:t,method:e.method,url:e.url,token:e.token})}var ao,co,uo,ie,Ae,$t=Me(()=>{"use strict";ao="pop+jwt",co="ES256",uo="authowl-session-proof",ie="origin-keys",Ae=new Map;});function le(){return typeof window<"u"&&typeof document<"u"&&typeof crypto<"u"&&typeof crypto.subtle?.digest=="function"}var Xe=Me(()=>{"use strict";});var Ue={};Ot(Ue,{beginCrossSiteSignIn:()=>ns,challengeFor:()=>Pi,completeCrossSiteSignIn:()=>is,takeHandoffCode:()=>mt});function Ti(e){let t="";for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function Pi(e){let t=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e));return Ti(new Uint8Array(t))}function Zr(){return Ti(crypto.getRandomValues(new Uint8Array(Yr)))}function Ii(e,t){let n=window.location.protocol==="https:"?"; Secure":"";document.cookie=`${Ri}=${e}; Path=/; Max-Age=${t}; SameSite=Lax${n}`;}function es(){for(let e of document.cookie.split(";")){let t=e.indexOf("=");if(!(t<0)&&e.slice(0,t).trim()===Ri)return e.slice(t+1).trim()||null}return null}function ts(){Ii("",0);}function ki(e){return new URL(e,window.location.href).toString()}async function ns(e,t){let n=t.callbackURL?ki(t.callbackURL):null;if(n&&new URL(n).origin!==window.location.origin)return null;let i=Zr(),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 u of Qr){let d=t[u];d&&o.searchParams.set(u,d);}let r=`${window.location.origin}${window.location.pathname}${window.location.search}`;o.searchParams.set("cb",n??r);for(let[u,d]of [["err",t.errorCallbackURL],["new",t.newUserCallbackURL]])d&&o.searchParams.set(u,ki(d));return o.searchParams.set("challenge",await Pi(i)),Ii(i,Xr),o.toString()}function mt(e){if(typeof window>"u")return null;let t=window.location.hash;if(!t.includes(gt))return null;let n=new URLSearchParams(t.replace(/^#/,"")),i=n.get(gt);if(!i||e!==void 0&&i!==e)return null;n.delete(gt);let o=n.toString();return window.history.replaceState(window.history.state,"",`${window.location.pathname}${window.location.search}${o?`#${o}`:""}`),i}async function is(e,t,n){if(!le())return false;let i=n??mt();if(!i)return false;n&&mt(n);let o=es();if(ts(),!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 Ri,gt,Yr,Xr,Qr,Ne=Me(()=>{"use strict";Xe();Ri="authowl_handoff_verifier",gt="authowl_code",Yr=32,Xr=900,Qr=["email","providerId","domain","organizationSlug"];});var Vi=/^(pk_(live|test))_([0-9a-f-]{36})_([A-Za-z0-9]{20,})$/i,ji=/^sk_/i;function Fe(e){if(typeof e!="string"||e.length===0)throw new Error("publishableKey is required");if(ji.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=Vi.exec(e);if(!t)throw new Error("publishableKey is malformed; expected pk_(live|test)_<uuid>_<base62>");return {prefix:t[1].toLowerCase(),env:t[2].toLowerCase(),projectId:t[3].toLowerCase()}}var St=/^http:\/\/(?:(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*localhost|127\.0\.0\.1|\[::1\])(?::\d+)?(?:\/|$)/i;function He(e,t){throw new Error(`${e}: ${t}`)}function kt(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&&St.test(i)))throw new TypeError("Transport URL must use HTTPS except on approved loopback.");return n}function Rt(e,t){(typeof e!="string"||!/^https?:\/\/[^/?#@\\\s]+\/?$/i.test(e))&&He("apiUrl","origin required");let n;try{n=new URL(e);}catch{He("apiUrl","origin required");}return n.protocol==="http:"&&(!t.allowHttpLoopback||!St.test(e))&&He("apiUrl","HTTPS required except exact loopback"),n.origin}function $(e,t){try{return e?.getItem(t)??null}catch{return null}}function G(e,t,n){try{n===null?e?.removeItem(t):e?.setItem(t,n);}catch{}}function Y(){try{return globalThis.localStorage}catch{return}}function W(){try{return globalThis.sessionStorage}catch{return}}var Ji="authowl.session-challenge",$i=e=>`${Ji}.${e}`,Gi="set-auth-challenge",Tt="x-authowl-challenge";var It="INVALID_TWO_FACTOR_COOKIE",Wi=2048,be=e=>e!==null&&e.length<=Wi,Pt=/^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/;function Yi(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 vt(e){let t=$i(e),n=new Map;function i(){return n.size===0?null:[...n].map(([d,l])=>`${d}=${l}`).join("; ")}function o(){let d=i();G(W(),t,be(d)?d:null);}function r(d){for(let[l,h]of Yi(d))Pt.test(l)&&(h===""?n.delete(l):Pt.test(h)&&n.set(l,h));}let u=$(W(),t);return be(u)&&r(u),{presentOn(d){let l=i();d.delete(Tt),be(l)&&d.set(Tt,l);},observe(d){let l=d.get(Gi);be(l)&&(r(l),o());},clear(){n.clear(),o();}}}var Ct="set-auth-token",Et="x-authowl-session-transport",xt="bearer";var Xi="authowl.session-token",Qi="authowl.session-binding",Zi="authowl.cookie-transport",_t="ok",zt="bearer",eo=e=>`${Xi}.${e}`,to=e=>`${Qi}.${e}`,no=e=>`${Zi}.${e}`;function io(e){return e===_t?"cookies":e===zt?"bearer":"unknown"}function oo(e){return e==="cookies"?_t:e==="bearer"?zt:null}function ro(e){let t=eo(e),n=to(e),i=no(e),o=vt(e),r=new Set;function u(A){for(let z of r)try{z(A);}catch{}}let d=null,l=null,h=null,s=false,a=null,p=io($(Y(),i)),y=()=>p==="unknown",w=0,S=null,c=false;function g(){let A=$(W(),t);if(A!==null)return s=true,A;let z=$(Y(),t);return z!==null?(s=false,z):null}function b(){return $(W(),n)??$(Y(),n)}d=g(),l=d===null?null:b(),d!==null&&y()&&(c=true);function R(){if(!(!c||!S)){c=false;try{S();}catch{}}}function v(){let A=p==="bearer"?d:null,z=A===null?null:l,[ce,wt]=s?[W(),Y()]:[Y(),W()];G(wt,t,null),G(wt,n,null),G(ce,t,A),G(ce,n,z);}function N(A){A!==null&&a!==null&&(s=a,a=null),A!==null&&h!==null?(l=h,h=null):A===null&&(l=null),d=A,v(),A!==null&&y()&&(c=true,R());}function M(A){p=A,G(Y(),i,oo(A));}function O(){M("unknown"),c=false;}function T(){return d===null&&(d=g(),l=d===null?null:b()),d}function J(){let A=g();return A!==null&&(d=A,l=b()),d}function te(A){J()===A&&v();}function bt(){w+=1,a=null,h=null,s=false,N(null),o.clear(),O(),u({type:"endSession"});}let At=()=>p!=="cookies";return {subscribeLifecycle(A){return r.add(A),()=>r.delete(A)},hasToken:()=>T()!==null,bindingThumbprint:()=>(T(),l),declareOn(A){if(A.has("authorization"))return false;let z=T();return !z&&!At()?false:(z&&A.set("authorization",`Bearer ${z}`),A.set(Et,xt),o.presentOn(A),true)},wantsToken:At,needsProbe:y,observe(A){let z=A.get(Ct);z&&N(z),o.observe(A);},dropChallenge:o.clear,measureWith(A){S=A,R();},beginRead(){let A=T(),z=w;return {carriedToken:A!==null,endIfDead(){A!==null&&J()===A&&w===z&&bt();},recordCookieVerdict(ce){if(w===z&&y()){if(M(ce?"cookies":"bearer"),ce){N(null);return}te(A);}}}},beginSession({remember:A}){w+=1,a=!A,o.clear(),O(),u({type:"beginSession",remember:A});},useCookieTransport(){T()===null&&(h=null,M("cookies"));},completeCookieTransport(){M("cookies"),N(null);},useBoundBearerTransport(A,z){if(!A)throw new Error("A session proof thumbprint is required.");h=A,z||(a=true),M("bearer");},endSession:bt}}var Dt=new Map;function Ut(e){let t=Dt.get(e);if(t)return t;let n=ro(e);return Dt.set(e,n),n}var so=Symbol.for("authowl.session-transport-integration.v1");function Nt(e){return e?e[so]??null:null}var Ke="x-authowl-session-proof",Gt="x-authowl-session-binding",Wt="x-authowl-session-binding-proof",ke=()=>Promise.resolve().then(()=>($t(),Jt));function Ao(e,t){return t?.headers?new Headers(t.headers):typeof e=="object"&&e!==null&&"headers"in e?new Headers(e.headers):new Headers}function Yt(e,t){let n=Ut(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,u=false,d=()=>new Headers({"x-publishable-key":e.publishableKey});async function l(p){let y=p.get("authorization");y&&await ke().then(w=>w.abandonSession(i,`${e.projectBaseURL}/session/abandon`,d(),y));}async function h(p){r=null,u=false;let y=await ke().then(w=>w.prepareSenderConstrainedSession({tokens:n,start:p,clientOrigin:o,fetcher:i,projectBaseURL:e.projectBaseURL,headers:d()}));r=y.binding,u=y.cookieOnly;}return {fetch:async(p,y)=>{if(y?.credentials==="omit"||!n.wantsToken())return i(p,y);let w=Ao(p,y),S=n.declareOn(w),c=w.get("authorization"),g=(y?.method??(typeof p=="object"&&p!==null&&"method"in p?p.method:"GET")).toUpperCase(),b=typeof p=="string"?p:p instanceof URL?p.toString():p.url;if(S&&o){let v=!!c;if(c){let N=c.replace(/^Bearer\s+/i,""),M=n.bindingThumbprint();if(M)try{w.set(Ke,await ke().then(O=>O.createStoredSessionProof({origin:o,expectedThumbprint:M,method:g,url:b,token:N})));}catch{await l(w),n.endSession(),w.delete("authorization"),w.delete(Ke),w.delete(Gt),w.delete(Wt),v=false;}}if(r){let N=r;w.set(Gt,N.nonce),w.set(v?Wt:Ke,await ke().then(M=>M.createSessionProof({key:N.key,method:g,url:b,token:N.nonce})));}}let R=await i(p,{...y,headers:w});return S&&(R.status===401&&c&&(new URL(b).pathname.endsWith("/get-session")||new URL(b).pathname.endsWith("/sign-out"))?(await l(w),n.endSession(),r=null,u=false):(n.observe(R.headers),R.headers.has("set-auth-token")&&(u&&n.completeCookieTransport(),r=null,u=false))),R},probe:i,tokens:n,integration:Nt(t),prepareSession:h}}function wo(e){if(!e||typeof e!="object")throw new Error("AuthConfig is required");let t=Fe(e.publishableKey),n=Rt(e.apiUrl,{allowHttpLoopback:t.env==="test"});return {publishableKey:e.publishableKey,apiUrl:n,decoded:t,projectBaseURL:`${n}/api/projects/${t.projectId}/auth`}}function qe(e){let t=wo(e),{fetch:n,...i}=Yt({projectId:t.decoded.projectId,projectBaseURL:t.projectBaseURL,publishableKey:t.publishableKey},e.fetch);return {...e,...t,fetch:n,session:i}}var Oo=1e4,So=1024*1024,U=class extends Error{kind;requestId;constructor(t,n){super(Eo(t)),this.name="TransportError",this.kind=t,this.requestId=n;}},Zt=new WeakSet;function L(e,t){let n=new U(e,t);return Zt.add(n),n}async function en({fetchImpl:e,url:t,init:n={},timeoutMs:i=Oo,maxResponseBytes:o=So,allowHttpLoopback:r=false,decode:u}){Qt(i,"timeoutMs"),Qt(o,"maxResponseBytes");let d=kt(t,{allowHttpLoopback:r}),l=n.signal,h=new AbortController,s=null,a,p=new Promise(c=>{a=c;}),y=c=>{s===null&&(s=c,a({type:"abort",kind:c}),h.abort());},w=()=>y("aborted");l?.addEventListener("abort",w,{once:true});let S=setTimeout(()=>y("timeout"),i);l?.aborted&&w();try{if(s!==null)throw L(s);let c;try{c=await Promise.race([e(d.toString(),{...n,redirect:"error",signal:h.signal}).then(M=>({type:"response",response:M})),p]);}catch{throw L(s??"network")}if(c.type==="abort")throw L(c.kind);if(!ko(c.response))throw L("invalid_response");let g=c.response,b=Co(g.headers),R=await Ro(g,o,p,()=>s,b),v=Io(g,R,b),N;try{N=g.ok&&u?u(v,Object.freeze({status:g.status})):v;}catch{throw L("invalid_response",b)}return {response:g,data:N,...b===void 0?{}:{requestId:b}}}catch(c){throw c instanceof U&&Zt.has(c)?c:L(s??"network")}finally{clearTimeout(S),l?.removeEventListener("abort",w);}}function ko(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 Ro(e,t,n,i,o){let r=e.headers.get("content-length");if(r!==null){if(!/^\d+$/.test(r))throw Xt(e.body),L("invalid_response",o);if(Number(r)>t)throw Xt(e.body),L("response_too_large",o)}if(!e.body)return "";let u;try{u=e.body.getReader();}catch{throw L("network",o)}let d=[],l=0,h=null;try{for(;;){let p;try{p=await Promise.race([u.read(),n]);}catch{h=L(i()??"network",o);break}if(To(p)){h=L(p.kind,o);break}let{done:y,value:w}=p;if(y)break;if(w.byteLength!==0){if(l+=w.byteLength,l>t){h=L("response_too_large",o);break}d.push(w);}}}finally{h&&Po(u);try{u.releaseLock();}catch{}}if(h)throw h;let s=new Uint8Array(l),a=0;for(let p of d)s.set(p,a),a+=p.byteLength;try{return new TextDecoder("utf-8",{fatal:!0}).decode(s)}catch{throw L("invalid_response",o)}}function To(e){return "type"in e&&e.type==="abort"}function Xt(e){if(e)try{e.cancel().catch(()=>{});}catch{}}function Po(e){try{e.cancel().catch(()=>{});}catch{}}function Io(e,t,n){if(e.status===204||e.status===205)return null;let i=vo(e.headers.get("content-type"));if(!e.ok&&(!i||t.length===0))return null;if(!i||t.length===0)throw L("invalid_response",n);try{return JSON.parse(t)}catch{if(!e.ok)return null;throw L("invalid_response",n)}}function vo(e){if(e===null)return false;let t=e.split(";",1)[0]?.trim().toLowerCase();return t==="application/json"||t?.endsWith("+json")===true}function Co(e){let t=e.get("x-request-id")?.trim();if(!(!t||t.length>256||!/^[A-Za-z0-9._:-]+$/.test(t)))return t}function Qt(e,t){if(!Number.isInteger(e)||e<=0)throw new TypeError(`${t} must be a positive integer.`)}function Eo(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 Be=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 Re(e,t,n={}){let i=new Headers(n.init?.headers);return i.set("x-publishable-key",e.publishableKey),en({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 tn(e,t){if(!e.response.ok)throw new Be(t,e.response,e.requestId);return e.data}var xo=new Map;function nn(e){return typeof window>"u"?null:xo.get(e)?.at(-1)?.locale??null}var Do="x-authowl-turnstile-token",_o="x-authowl-locale",zo=1e4,Uo=32,No=2e4;function X(e,t){return {post:(n,i,o,r)=>e.request(n,{method:"POST",body:i,fetchOptions:o,decode:r}),mutation:async(n,i)=>{let o=await n;return o.error===null&&(i===void 0||o.data!==null&&i(o.data))&&await t(),o}}}function $e(e,t=e.projectBaseURL){return {async request(n,i={}){let o=Fo(t,n,i.query),r=i.method??(i.body===void 0?"GET":"POST"),u=new Headers(i.fetchOptions?.headers);i.fetchOptions?.authChallengeToken&&u.set(Do,i.fetchOptions.authChallengeToken);let d=nn(e.decoded.projectId);d&&u.set(_o,d),i.body!==void 0&&u.set("content-type","application/json");let l={method:r,headers:u,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=Mo(r,i.fetchOptions),a;try{a=await Lo(e,o,{...l,signal:i.fetchOptions?.signal},s);}catch(g){let b=rn(g);return await i.fetchOptions?.onError?.(Ve(h,b,qo(g))),{data:null,error:b}}let{response:p,requestId:y}=a,w=jo(n,a.data),S=w;if(p.ok)try{S=Je(w),i.decode&&(S=i.decode(S));}catch{let g=rn(new U("invalid_response",y));return await i.fetchOptions?.onError?.(Ve(h,g,"invalid_response")),{data:null,error:g}}let c=Object.freeze({...h,status:p.status,...y===void 0?{}:{requestId:y}});if(await i.fetchOptions?.onResponse?.(c),!p.ok){let g=Ho(p,w,y);return g.code===It&&e.session.tokens.dropChallenge(),await i.fetchOptions?.onError?.(Ve(h,g,"api")),{data:null,error:g}}return await i.fetchOptions?.onSuccess?.(c),{data:S,error:null}}}}async function Lo(e,t,n,i){let o=Date.now()+zo;for(let r=0;r<i;r+=1){let u=o-Date.now();if(u<=0)throw new U("timeout");try{let d=await Re(e,t,{init:n,timeoutMs:Math.max(1,Math.ceil(u))});if(d.response.status<500||r===i-1)return d}catch(d){if(r===i-1||!(d instanceof U)||d.kind!=="network")throw d}await Bo(50*2**r,n.signal,o);}throw new U("network")}function Mo(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 Fo(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 Ho(e,t,n){let i=ue(t)?t:{},o=Ko(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 Ko(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 U?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 U&&e.requestId?{requestId:e.requestId}:{}}}function Ve(e,t,n){return Object.freeze({...e,status:t.status??0,...t.requestId===void 0?{}:{requestId:t.requestId},failure:n})}function qo(e){return e instanceof U?e.kind:"network"}function Bo(e,t,n){return new Promise((i,o)=>{if(t?.aborted){o(new U("aborted"));return}let r=n-Date.now();if(r<=0){o(new U("timeout"));return}let u=Math.min(e,r),d=()=>{clearTimeout(l),o(new U("aborted"));},l=setTimeout(()=>{t?.removeEventListener("abort",d),Date.now()>=n?o(new U("timeout")):i();},u);t?.addEventListener("abort",d,{once:true}),t?.aborted&&d();})}function Je(e,t="",n=0,i={nodes:0}){if(i.nodes+=1,n>Uo||i.nodes>No)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=>Je(o,"",n+1,i)):ue(e)?Object.fromEntries(Object.entries(e).map(([o,r])=>[o,Vo(o)?r:Je(r,o,n+1,i)])):e}function Vo(e){return e==="metadata"||e==="public_metadata"||e==="unsafe_metadata"||e==="private_metadata"||e==="publicMetadata"||e==="unsafeMetadata"||e==="privateMetadata"}function jo(e,t){if(e==="/list-sessions"&&Array.isArray(t))return t.map(o=>ue(o)?je(o):o);if(!ue(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-")?je(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")&&ue(i.session)&&(i={...i,session:je(i.session)}),i}function je(e){if(!Object.hasOwn(e,"token"))return e;let t={...e};return delete t.token,t}function ue(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}var Jo=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 k(e){return typeof e!="string"&&f(),e}function C(e){return typeof e!="boolean"&&f(),e}function P(e){return (!(e instanceof Date)||Number.isNaN(e.getTime()))&&f(),e}function Q(e){return (!Array.isArray(e)||!e.every(t=>typeof t=="string"))&&f(),[...e]}function E(e,t){let n=e[t];return n==null||typeof n=="string"?n:f()}function sn(e,t){let n=e[t];return n==null||typeof n=="boolean"?n:f()}function H(e){let t=m(e),n=t.email;return n!==null&&typeof n!="string"&&f(),{id:k(t.id),email:n,emailVerified:C(t.emailVerified),createdAt:P(t.createdAt),updatedAt:P(t.updatedAt),...F("phoneNumber",E(t,"phoneNumber")),...F("username",E(t,"username")),...F("displayUsername",E(t,"displayUsername")),...F("firstName",E(t,"firstName")),...F("lastName",E(t,"lastName")),...F("name",E(t,"name")),...F("image",E(t,"image")),...F("twoFactorEnabled",sn(t,"twoFactorEnabled"))}}function Te(e){let t=m(e),n=t.membership;return {id:k(t.id),userId:k(t.userId),expiresAt:P(t.expiresAt),...F("activeOrganizationId",E(t,"activeOrganizationId")),...F("activeTeamId",E(t,"activeTeamId")),...F("membership",n==null?n:$o(n)),...F("pendingMfaEnrollment",sn(t,"pendingMfaEnrollment"))}}function f(){throw new TypeError("AuthOwl response does not match its runtime contract.")}function q(e,t=20,n=1e4){return (!e||typeof e!="object"||Array.isArray(e))&&f(),We(e,t,n)}function We(e,t=20,n=1e4){return Ge(e,0,{nodes:0},t,n)}function $o(e){let t=m(e);return {role:k(t.role),...t.roles===void 0?{}:{roles:Q(t.roles)},permissions:Q(t.permissions),...t.teams===void 0?{}:{teams:Q(t.teams)}}}function Ge(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(d=>Ge(d,t+1,n,i,o));(!e||typeof e!="object")&&f();let r=Object.getPrototypeOf(e);r!==Object.prototype&&r!==null&&f();let u={};for(let[d,l]of Object.entries(e))Jo.has(d)&&f(),u[d]=Ge(l,t+1,n,i,o);return u}function F(e,t){return t===void 0?{}:{[e]:t}}function an({http:e,probe:t,tokens:n,channelName:i}){let o=new Set,r=null,u=null,d=null,l=null,h=null,s=null,a,p=O=>{S(O);};a={data:null,isPending:true,isRefetching:false,error:null,refetch:p};function y(O){a=O;for(let T of o)T();}async function w(O){return e.request("/get-session",{query:O?.query,decode:Ye})}function S(O){if(O?.query?.disableCookieCache===true)return g(O);if(l)return l;if(h)return h;let T=g(O).finally(()=>{h===T&&(h=null);});return h=T,T}function c(){if(l)return l;let O=g({query:{disableCookieCache:true}}).finally(()=>{l===O&&(l=null);});return l=O,O}async function g(O){d?.abort();let T=new AbortController;d=T,y({...a,isPending:a.data===null&&a.error===null,isRefetching:a.data!==null});let J=n.beginRead(),te=await e.request("/get-session",{query:O?.query,fetchOptions:{signal:T.signal},decode:Ye});if(d===T&&(d=null,y({data:te.data,error:te.error,isPending:false,isRefetching:false,refetch:p}),te.error===null)){if(te.data===null){J.endIfDead();return}await b(J);}}async function b(O){if(n.needsProbe()){if(!O.carriedToken){O.recordCookieVerdict(true);return}return s||R(O)}}function R(O){let T=t.request("/get-session",{query:{disableCookieCache:true},decode:Ye}).then(J=>{s===T&&J.error===null&&O.recordCookieVerdict(J.data!==null);}).finally(()=>{s===T&&(s=null);});return s=T,T}function v(){r?.postMessage({type:"session-changed"});}function N(){if(typeof window>"u"||u)return;let O=()=>{S();},T=()=>{document.visibilityState==="visible"&&S();};window.addEventListener("focus",O),document.addEventListener("visibilitychange",T),typeof BroadcastChannel<"u"&&(r=new BroadcastChannel(i),r.addEventListener("message",O)),u=()=>{window.removeEventListener("focus",O),document.removeEventListener("visibilitychange",T),r?.close(),r=null,u=null;};}function M(O){return o.add(O),o.size===1&&(N(),S()),()=>{if(o.delete(O),o.size===0){let T=d;d=null,h=null,l=null,T?.abort(),u?.();}}}return n.measureWith(()=>{n.needsProbe()&&R(n.beginRead());}),{store:{subscribe:M,getSnapshot:()=>a,refresh:c},getSession:w,notifyMutation(){v(),s&&s.catch(()=>{}).then(()=>{!n.needsProbe()&&n.hasToken()&&v();}),o.size>0&&S({query:{disableCookieCache:true}});}}}function Ye(e){if(e===null)return null;let t=m(e);return (t.session===void 0||t.user===void 0)&&f(),{session:Te(t.session),user:H(t.user)}}Xe();function Z(){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 cn(e,t){return e.request("/user/metadata",{fetchOptions:t,decode:ln})}async function un(e,t,n){return e.request("/user/metadata",{method:"PATCH",body:{expected_version:t.expectedVersion,unsafe_metadata:t.unsafeMetadata},fetchOptions:n,decode:ln})}function ln(e){let t=m(e),n=q(t.public_metadata),i=q(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 pn(e,t){let{post:n,mutation:i}=X(e,t);return {getMetadata:o=>cn(e,o),updateUnsafeMetadata:(o,r)=>un(e,o,r),updateProfile:(o,r)=>i(n("/update-user",o,r,de)),changeEmail:(o,r)=>i(n("/change-email",o,r,de)),changePassword:(o,r)=>i(n("/change-password",o,r,Go)),listSessions:o=>e.request("/list-sessions",{fetchOptions:o,decode:Wo}),revokeSession:({sessionId:o},r)=>i(n("/revoke-session",{sessionId:o},r,de)),revokeOtherSessions:o=>i(n("/revoke-other-sessions",{},o,de)),listSocialAccounts:async o=>{let r=await e.request("/list-accounts",{fetchOptions:o,decode:Yo});if(!r.data)return {data:null,error:r.error};let u=r.data.length>1;return {...r,data:r.data.filter(d=>d.providerId!=="credential").map(d=>({...d,canUnlink:u}))}},linkSocial:(o,r)=>n("/link-social",o,r,Xo),unlinkSocial:(o,r)=>i(n("/unlink-account",o,r,de)),delete:(o={},r)=>i(n("/delete-user",o,r,Qo))}}function de(e){let t=m(e);return {status:C(t.status)}}function Go(e){let t=m(e);return {user:H(t.user)}}function Wo(e){return Array.isArray(e)||f(),e.map(t=>{let n=m(t);return {id:k(n.id),userId:k(n.userId),createdAt:P(n.createdAt),updatedAt:P(n.updatedAt),expiresAt:P(n.expiresAt),...dn("ipAddress",E(n,"ipAddress")),...dn("userAgent",E(n,"userAgent"))}})}function Yo(e){return Array.isArray(e)||f(),e.map(t=>{let n=m(t);return {id:k(n.id),userId:k(n.userId),providerId:k(n.providerId),accountId:k(n.accountId),scopes:Q(n.scopes),createdAt:P(n.createdAt),updatedAt:P(n.updatedAt)}})}function Xo(e){let t=m(e);return {url:k(t.url),redirect:C(t.redirect)}}function Qo(e){let t=m(e);return {success:C(t.success),message:k(t.message)}}function dn(e,t){return t===void 0?{}:{[e]:t}}function Qe(e,t){return !e||!t?false:e.permissions.includes(t)}function Zo(e,t){return !e||!t?false:e.teams?.includes(t)??false}function er(e,t){return e?e.roles===void 0?e.role===t:e.roles.includes(t):false}function Ze(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&&!er(e,n)||i!==void 0&&!e.permissions.includes(i)||o!==void 0&&!Zo(e,o))}function tr(e){return {has:t=>Ze(e,t),hasPermission:t=>Qe(e,t.permission)}}var nr=new Set(["pending","accepted","rejected","canceled"]),et=1e4;function fn(e){let t=m(e);return t.recipientHint!==null&&t.recipientHint!=="new_user"&&f(),{recipientHint:t.recipientHint}}function oe(e,t,n){let i=m(e),o={id:I(i.id),name:I(i.name),slug:I(i.slug),createdAt:P(i.createdAt),...pe("logo",E(i,"logo")),...pe("metadata",i.metadata===void 0?void 0:We(i.metadata))};return K(o.id,t),K(o.slug,n),o}function gn(e){return B(e,oe)}function tt(e,t,n){return e===null?null:(t===null&&f(),oe(e,t,n))}function mn(e,t,n){if(e===null)return null;let i=m(e),o=oe(i,t,n);return {...o,members:B(i.members,r=>In(r,o.id)),invitations:B(i.invitations,r=>V(r,void 0,o.id))}}function nt(e,t,n=false){let i=B(e,o=>fe(o));return n||me(i.map(o=>o.organizationId),t),i}function hn(e,t){let n=B(e,i=>it(i));return me(n.map(i=>i.teamId),t),n}function it(e,t,n){let i=m(e),o={id:I(i.id),teamId:I(i.teamId),userId:I(i.userId),createdAt:P(i.createdAt)};return K(o.teamId,t),K(o.userId,n),o}function yn(e,t,n){return e===null?null:(t===null&&f(),fe(e,t,n))}function bn(e,t){let n=m(e);return (!Number.isSafeInteger(n.total)||n.total<0)&&f(),{members:ir(n.members,t),total:n.total}}function V(e,t,n){let i=m(e),o=I(i.status);nr.has(o)||f();let r={id:I(i.id),organizationId:I(i.organizationId),email:ge(i.email),role:I(i.role),status:o,inviterId:I(i.inviterId),expiresAt:P(i.expiresAt),createdAt:P(i.createdAt)};return K(r.id,t),K(r.organizationId,n),r}function An(e,t){let n=B(e,i=>V(i));return me(n.map(i=>i.organizationId),t),n}function wn(e){return B(e,t=>{let n=m(t);return {...V(n),organizationName:ge(n.organizationName)}})}function On(e,t){let n=m(e);return {...V(n,t),organizationName:I(n.organizationName),organizationSlug:I(n.organizationSlug),inviterEmail:vn(n.inviterEmail)}}function Sn(e,t){let n=m(e),i=V(n.invitation,t);return {invitation:i,member:re(n.member,void 0,i.organizationId)}}function kn(e,t){let n=m(e);return n.member!==null&&f(),{invitation:n.invitation===null?null:V(n.invitation,t),member:null}}function Rn(e,t){return e===null?null:V(e,t)}function Tn(e,t,n){let i=m(e);return {member:re(i.member,n,t)}}function re(e,t,n){let i=m(e),o={id:I(i.id),organizationId:I(i.organizationId),userId:I(i.userId),role:I(i.role),createdAt:P(i.createdAt),...i.user===void 0?{}:{user:Cn(i.user)}};return K(o.id,t),K(o.organizationId,n),o}function Pn(e,t){let n=B(e,i=>{let o=m(i);return {organizationId:I(o.organizationId),data:{role:I(o.role),...pe("permission",o.permission===void 0?void 0:or(o.permission)),...pe("customPermissionKeys",o.customPermissionKeys===void 0?void 0:Q(o.customPermissionKeys))}}});return me(n.map(i=>i.organizationId),t),n.map(i=>i.data)}function fe(e,t,n){let i=m(e),o=i.updatedAt,r={id:I(i.id),name:ge(i.name),organizationId:I(i.organizationId),createdAt:P(i.createdAt),...o===void 0?{}:{updatedAt:P(o)}};return K(r.id,t),K(r.organizationId,n),r}function ot(e){let t=m(e);return {message:ge(t.message)}}function In(e,t){let n=m(e);return {...re(n,void 0,t),user:Cn(n.user)}}function ir(e,t){let n=B(e,i=>In(i));return me(n.map(i=>i.organizationId),t),n}function or(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>et||!Array.isArray(o))&&f(),n[i]=o.map(r=>I(r));return n}function I(e){let t=k(e);return (t.length===0||t.length>et)&&f(),t}function ge(e){if(e==null)return "";let t=k(e);return t.length>et&&f(),t}function vn(e){return e===null?null:I(e)}function K(e,t){t!==void 0&&e!==t&&f();}function me(e,t){let n=t??e[0];n!==void 0&&e.some(i=>i!==n)&&f();}function Cn(e){let t=m(e);return {id:I(t.id),name:ge(t.name),email:vn(t.email),...pe("image",E(t,"image"))}}function B(e,t){return Array.isArray(e)||f(),e.map(n=>t(n))}function pe(e,t){return t===void 0?{}:{[e]:t}}function En(e,t,n=()=>null){let{post:i,mutation:o}=X(e,t),r=new Set,u=()=>{for(let s of r)try{s();}catch{}},d=new Map,l=(s,a,p,y)=>{if(p)return e.request(s,{query:a,fetchOptions:p,decode:y});let w=`${s}\0${JSON.stringify(a??null)}`,S=d.get(w);if(S)return S;let c=e.request(s,{query:a,decode:y}).finally(()=>{d.delete(w);});return d.set(w,c),c},h=async s=>{let a=await o(s).finally(()=>d.clear());return a.error===null&&u(),a};return {subscribe(s){return r.add(s),()=>r.delete(s)},create:(s,a)=>h(i("/organization/create",s,a,oe)),list:s=>l("/organization/list",void 0,s,gn),get:(s={},a)=>l("/organization/get-full-organization",{organizationId:s.organizationId,organizationSlug:s.organizationSlug,membersLimit:s.membersLimit},a,p=>mn(p,s.organizationId,s.organizationSlug)),setActive:(s,a)=>h(i("/organization/set-active",s,a,p=>tt(p,s.organizationId,s.organizationSlug))),createTeam:(s,a)=>h(i("/organization/create-team",s,a,p=>fe(p,void 0,s.organizationId))),listTeams:(s={},a)=>l("/organization/list-teams",{organizationId:s.organizationId},a,p=>nt(p,s.organizationId)),updateTeam:(s,a)=>h(i("/organization/update-team",s,a,p=>fe(p,s.teamId,s.data.organizationId))),removeTeam:(s,a)=>h(i("/organization/remove-team",s,a,ot)),listUserTeams:s=>l("/organization/list-user-teams",void 0,s,a=>nt(a,void 0,true)),listTeamMembers:(s={},a)=>l("/organization/list-team-members",{teamId:s.teamId},a,p=>hn(p,s.teamId)),addTeamMember:(s,a)=>h(i("/organization/add-team-member",s,a,p=>it(p,s.teamId,s.userId))),removeTeamMember:(s,a)=>h(i("/organization/remove-team-member",s,a,ot)),setActiveTeam:(s,a)=>h(i("/organization/set-active-team",s,a,p=>yn(p,s.teamId))),update:(s,a)=>h(i("/organization/update",s,a,p=>tt(p,s.organizationId))),delete:(s,a)=>h(i("/organization/delete",s,a,p=>oe(p,s.organizationId))),listMembers:(s={},a)=>l("/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},a,p=>bn(p,s.organizationId)),inviteMember:(s,a)=>h(i("/organization/invite-member",s,a,p=>V(p,void 0,s.organizationId))),listInvitations:(s={},a)=>l("/organization/list-invitations",{organizationId:s.organizationId},a,p=>An(p,s.organizationId)),listUserInvitations:s=>l("/organization/list-user-invitations",void 0,s,wn),getInvitation:(s,a)=>l("/organization/get-invitation",{id:s.id},a,p=>On(p,s.id)),getInvitationRecipientHint:(s,a)=>l("/organization/invitation-recipient-hint",{invitationId:s.invitationId},a,fn),acceptInvitation:(s,a)=>h(i("/organization/accept-invitation",s,a,p=>Sn(p,s.invitationId))),rejectInvitation:(s,a)=>h(i("/organization/reject-invitation",s,a,p=>kn(p,s.invitationId))),cancelInvitation:(s,a)=>h(i("/organization/cancel-invitation",s,a,p=>Rn(p,s.invitationId))),removeMember:(s,a)=>h(i("/organization/remove-member",s,a,p=>Tn(p,s.organizationId,s.memberIdOrEmail.includes("@")?void 0:s.memberIdOrEmail))),updateMemberRole:(s,a)=>h(i("/organization/update-member-role",s,a,p=>re(p,s.memberId,s.organizationId))),leave:(s,a)=>h(i("/organization/leave",s,a,p=>re(p,void 0,s.organizationId))),listRoles:(s={},a)=>l("/organization/list-roles",{organizationId:s.organizationId},a,p=>Pn(p,s.organizationId)),has:s=>Ze(n(),s),hasPermission:s=>Qe(n(),s.permission)}}function xn(e){return {listConsentPreferences:t=>e.request("/privacy/consent-decisions",{fetchOptions:t,decode:rr}),recordConsent:(t,n)=>e.request("/privacy/consent-decisions",{method:"POST",body:{...t,correlationId:t.correlationId??Z()},fetchOptions:n,decode:ar}),listRightsRequests:t=>e.request("/privacy/rights",{fetchOptions:t,decode:cr}),createRightsRequest:(t,n)=>e.request("/privacy/rights",{method:"POST",body:t,fetchOptions:n,decode:ur})}}function rr(e){let t=m(e);return Array.isArray(t.preferences)||f(),{preferences:t.preferences.map(sr)}}function sr(e){let t=m(e);return {purposeId:k(t.purposeId),purposeVersionId:k(t.purposeVersionId),code:k(t.code),state:lr(t.state,["granted","refused","withdrawn"]),updatedAt:Pe(t.updatedAt),decidedAt:Pe(t.decidedAt)}}function ar(e){let t=m(e);return t.recorded!==true&&f(),{recorded:true,decision:he(t.decision,["granted","refused","withdrawn"]),decidedAt:Ie(t.decidedAt)}}function cr(e){let t=m(e);return Array.isArray(t.requests)||f(),{requests:t.requests.map(Dn)}}function ur(e){return {request:Dn(m(e).request)}}function Dn(e){let t=m(e);return {id:k(t.id),rightType:he(t.rightType,["access","correction","portability","erasure","restriction","objection","consent_withdrawal"]),state:he(t.state,["received","identity_pending","in_progress","restricted","completed","denied","withdrawn"]),locale:he(t.locale,["en","ar"]),receivedAt:Ie(t.receivedAt),acknowledgedAt:Pe(t.acknowledgedAt),fulfilmentDeadline:Ie(t.fulfilmentDeadline),completedAt:Pe(t.completedAt)}}function Pe(e){return e===null?null:Ie(e)}function Ie(e){if(e instanceof Date)return P(e);typeof e!="string"&&f();let t=new Date(e);return Number.isNaN(t.getTime())&&f(),t}function he(e,t){return (typeof e!="string"||!t.includes(e))&&f(),e}function lr(e,t){return e===null?null:he(e,t)}var _n=4096,dr=4096,pr=100,fr=256,gr=16,mr=64,hr=12;function st(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:Xn(t.twoFactorMethods,gr,mr)}}):(t.twoFactorRedirect!==void 0&&f(),{redirect:C(t.redirect),...Or(t,"url"),user:H(t.user)})}function zn(e){let t=m(e);return {user:H(t.user)}}function Un(e){let t=m(e);return {sessionCreated:C(t.sessionCreated),user:H(t.user)}}function Nn(e,t){let n=m(e),i=C(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:rt(n.url,t)}):(o===r&&f(),o?{redirect:false,user:H(n.user)}:{redirect:false,url:rt(n.url,t)})}function Ln(e,t){let n=m(e);return (n.redirect!==true||n.user!==void 0)&&f(),{redirect:true,url:rt(n.url,t)}}function Mn(e){return {status:C(m(e).status)}}function Fn(e){return {success:C(m(e).success)}}function Hn(e){return m(e).status!=="pending"&&f(),{status:"pending"}}function Kn(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:k(n.siteKey);return {kind:"akedly_shield_v1_2",connectionId:k(t.connectionId),challenge:k(t.challenge),difficulty:yr(t.difficulty),challengeToken:k(t.challengeToken),challengeRequired:C(t.challengeRequired),turnstile:{required:C(n.required),siteKey:i}}}function yr(e){return (!Number.isSafeInteger(e)||Number(e)<0||Number(e)>hr)&&f(),Number(e)}function qn(e){let t=m(e);return (t.status!==true||t.sessionCreated!==true)&&f(),{status:true,sessionCreated:true,user:br(t.user)}}function at(e){return {status:C(m(e).status)}}function Bn(e){return {status:C(m(e).status)}}function Vn(e){let t=m(e);return {status:C(t.status),user:H(t.user)}}function jn(e){return {success:C(m(e).success)}}function Jn(e){let t=m(e);return {totpURI:wr(t.totpURI),backupCodes:Yn(t.backupCodes)}}function $n(e){return {status:C(m(e).status)}}function ve(e){return m(e).status!==true&&f(),{status:true}}function Gn(e){return {status:C(m(e).status)}}function Wn(e){let t=m(e);return t.status!==void 0&&t.status!==true&&f(),{backupCodes:Yn(t.backupCodes)}}function br(e){let t=m(e);return {id:se(t.id,512),...Sr(t,"name",1024),phoneNumber:se(t.phoneNumber,64),phoneNumberVerified:C(t.phoneNumberVerified),...t.createdAt===void 0?{}:{createdAt:P(t.createdAt)},...t.updatedAt===void 0?{}:{updatedAt:P(t.updatedAt)}}}function rt(e,t){let n=se(e,_n);/[\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:"&&Ar(i.hostname)?i.href:f()}function Ar(e){let t=e.toLowerCase();return t==="localhost"||t==="127.0.0.1"||t==="[::1]"}function wr(e){let t=se(e,dr),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 Yn(e){return Xn(e,pr,fr)}function Xn(e,t,n){(!Array.isArray(e)||e.length===0||e.length>t)&&f();let i=e.map(o=>se(o,n));return i.some(o=>o.trim().length===0)&&f(),new Set(i).size!==i.length&&f(),i}function se(e,t){let n=k(e);return (n.length===0||n.length>t)&&f(),n}function Or(e,t){let n=e[t];return n==null?{}:{[t]:se(n,_n)}}function Sr(e,t,n){let i=E(e,t);return i===void 0?{}:(i!==null&&i.length>n&&f(),{[t]:i})}var Qn=new Set([1564,8206,8207,8234,8235,8236,8237,8238,8294,8295,8296,8297]),Ce=new Set([9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288,65279]);function Ee(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||ei(n,i)||Zn(i)||Qn.has(i))return {valid:false}}let t=kr(e);return ct(t)?{valid:true,value:t}:{valid:false}}function ct(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||ei(o,r)||Zn(r)||Qn.has(r))return false;n??=r,i=r;}return t>0&&n!==void 0&&i!==void 0&&!Ce.has(n)&&!Ce.has(i)}function xe(){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 kr(e){let t=0,n=e.length;for(;t<n;){let i=e.codePointAt(t);if(i===void 0||!Ce.has(i))break;t+=i>65535?2:1;}for(;n>t;){let i=e.codePointAt(n-1);if(i===void 0)break;let r=i>=56320&&i<=57343?n-2:n-1,u=e.codePointAt(r);if(u===void 0||!Ce.has(u))break;n=r;}return e.slice(t,n)}function Zn(e){return e>=0&&e<=31||e>=127&&e<=159}function ei(e,t){return e.length===1&&t>=55296&&t<=57343}var ii=12,oi=5e3,Rr=8,Tr=1e3,Pr=16,ti=512,ri=100,si=8192,Ir=32768,ut=1024,ni=256,dt=64,vr=6e5,Cr=/^[A-Za-z0-9_-]+$/u,Er=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u,xr=/[\u0000-\u001f\u007f-\u009f\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/u,Dr=/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$/u,_r=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu,ai=new Set(["discouraged","preferred","required"]),zr=new Set(["singleDevice","multiDevice"]),ci=new Set(["ble","cable","hybrid","internal","nfc","smart-card","usb"]),ui=new Set(["hybrid","security-key","client-device"]),Ur=new Set(["none","indirect","direct","enterprise"]),Nr=new Set(["fido-u2f","packed","android-safetynet","android-key","tpm","apple","none"]),Lr=new Set(["platform","cross-platform"]),Mr=new Set(["discouraged","preferred","required"]),Fr=new Set([-8,-7,-257]);function li(e){let t=q(e,ii,oi);return {challenge:wi(t.challenge),...D("timeout",bi(t.timeout)),...D("rpId",Oi(t.rpId)),...D("allowCredentials",yi(t.allowCredentials)),...D("userVerification",ye(t.userVerification,ai)),...D("hints",De(t.hints,ui)),...D("extensions",Ai(t.extensions))}}function di(e){let t=q(e,ii,oi);return {challenge:wi(t.challenge),rp:Hr(t.rp),user:Kr(t.user),pubKeyCredParams:qr(t.pubKeyCredParams),...D("timeout",bi(t.timeout)),...D("excludeCredentials",yi(t.excludeCredentials)),...D("authenticatorSelection",Br(t.authenticatorSelection)),...D("attestation",ye(t.attestation,Ur)),...D("attestationFormats",De(t.attestationFormats,Nr)),...D("hints",De(t.hints,ui)),...D("extensions",Ai(t.extensions))}}function pi(e){let t=m(e),n=Te(t.session),i=H(t.user);return n.userId!==i.id&&f(),{session:n,user:i}}function pt(e){let t=m(e),n=t.counter;(!Number.isSafeInteger(n)||n<0)&&f();let i=ft(t.deviceType,zr),o=C(t.backedUp);return o&&i!=="multiDevice"&&f(),{id:ae(t.id,ni),...Jr(t),publicKey:Vr(t.publicKey,Ir),userId:ae(t.userId,ni),credentialID:ze(t.credentialID,si),counter:n,deviceType:i,backedUp:o,...$r(t),createdAt:P(t.createdAt),...Gr(t)}}function fi(e,t,n){let i=pt(e);return (i.credentialID!==t||(n===void 0?i.name!==void 0&&i.name!==null:i.name!==n))&&f(),i}function gi(e){(!Array.isArray(e)||e.length>ri)&&f();let t=e.map(pt);return _e(t.map(n=>n.id)),_e(t.map(n=>n.credentialID)),t.length>1&&t.some(n=>n.userId!==t[0]?.userId)&&f(),t}function mi(e,t,n){let i=m(e),o=pt(i.passkey);return (o.id!==t||o.name!==n)&&f(),{passkey:o}}function hi(e){return m(e).status!==true&&f(),{status:true}}function Hr(e){let t=m(e);return {name:lt(t.name,ut),...D("id",Oi(t.id))}}function Kr(e){let t=m(e);return {id:ze(t.id,128,1,64),name:lt(t.name,ut),displayName:lt(t.displayName,ut)}}function qr(e){(!Array.isArray(e)||e.length===0||e.length>dt)&&f();let t=e.map(n=>{let i=m(n);return (i.type!=="public-key"||!Number.isSafeInteger(i.alg)||!Fr.has(i.alg))&&f(),{type:"public-key",alg:i.alg}});return Wr(t.map(n=>n.alg)),t}function yi(e){if(e===void 0)return;(!Array.isArray(e)||e.length>ri)&&f();let t=e.map(n=>{let i=m(n);return i.type!=="public-key"&&f(),{type:"public-key",id:ze(i.id,si),...D("transports",De(i.transports,ci))}});return _e(t.map(n=>n.id)),t}function Br(e){if(e===void 0)return;let t=m(e);t.requireResidentKey!==void 0&&typeof t.requireResidentKey!="boolean"&&f();let n=ye(t.residentKey,Mr);return t.requireResidentKey!==void 0&&n!==void 0&&t.requireResidentKey!==(n==="required")&&f(),{...D("authenticatorAttachment",ye(t.authenticatorAttachment,Lr)),...D("residentKey",n),...D("requireResidentKey",t.requireResidentKey),...D("userVerification",ye(t.userVerification,ai))}}function bi(e){return e!==void 0&&(typeof e!="number"||!Number.isFinite(e)||e<0||e>vr)&&f(),e}function Ai(e){return e===void 0?void 0:q(e,Rr,Tr)}function De(e,t){if(e===void 0)return;(!Array.isArray(e)||e.length>dt)&&f();let n=e.map(i=>ft(i,t));return _e(n),n}function ye(e,t){if(e!==void 0)return ft(e,t)}function wi(e){return ze(e,Math.ceil(ti*4/3),Pr,ti)}function ze(e,t,n=1,i=Number.POSITIVE_INFINITY){let o=ae(e,t),r=o.length%4,u=jr(o.at(-1)??""),d=Math.floor(o.length*3/4);return (!Cr.test(o)||r===1||r===2&&(u&15)!==0||r===3&&(u&3)!==0||d<n||d>i)&&f(),o}function ae(e,t){let n=k(e);return (n.length===0||n.length>t)&&f(),n}function lt(e,t){let n=ae(e,t);return xr.test(n)&&f(),n}function Oi(e){if(e===void 0)return;let t=ae(e,253);return t!=="localhost"&&(t.endsWith(".")||!t.includes(".")||t.split(".").some(n=>!Dr.test(n)))&&f(),t}function Vr(e,t){let n=ae(e,t),i=n.endsWith("=="),o=!i&&n.endsWith("="),r=n.at(i?-3:o?-2:-1)??"",u=Si(r);return (n.length%4!==0||!Er.test(n)||i&&(u&15)!==0||o&&(u&3)!==0)&&f(),n}function jr(e){return Si(e,true)}function Si(e,t=false){return (t?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").indexOf(e)}function Jr(e){let t=E(e,"name");return t===void 0?{}:(t!==null&&!ct(t)&&f(),{name:t})}function $r(e){let t=E(e,"transports");if(t==null||t==="")return t===void 0?{}:{transports:t};let n=t.split(",");return (n.length>dt||n.some(i=>!ci.has(i))||new Set(n).size!==n.length)&&f(),{transports:t}}function Gr(e){let t=E(e,"aaguid");return t==null?t===void 0?{}:{aaguid:null}:(_r.test(t)||f(),{aaguid:t})}function ft(e,t){let n=k(e);return t.has(n)||f(),n}function D(e,t){return t===void 0?{}:{[e]:t}}function _e(e){new Set(e).size!==e.length&&f();}function Wr(e){new Set(e).size!==e.length&&f();}function os(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 vi=new Map;function rs(e,t,n){let i=vi.get(n);if(!i){let o=new URLSearchParams(window.location.hash.slice(1)).get("authowl_code");if(!o)return;i=Promise.resolve().then(()=>(Ne(),Ue)).then(r=>r.completeCrossSiteSignIn(e,t,o)),vi.set(n,i);}return i}function Ci(e){return !le()||e.idToken||e.disableRedirect?"legacy":"first-party"}function ss(e,t=()=>{},n=us){let i=$e(e),o=e.session.tokens,r=le()?rs(i,e.session,e.decoded.projectId):void 0,u=os(i,r),d=an({http:u,probe:$e({...e,fetch:e.session.probe}),tokens:o,channelName:`authowl:${e.decoded.projectId}`});e.session.integration?.connect({authenticatedFetch:e.fetch,sessionStore:d.store,subscribeLifecycle:c=>o.subscribeLifecycle(c)});let l=()=>{d.notifyMutation(),t();},h=async()=>{await e.session.integration?.sessionEstablished(),l();},s=n(u,h),{post:a,mutation:p}=X(u,l),{mutation:y}=X(u,h),w=e.decoded.env==="test",S=c=>e.session.prepareSession({remember:c?.rememberMe!==false});return {sessionStore:d.store,getSession:d.getSession,account:pn(u,l),organization:En(u,l,()=>d.store.getSnapshot().data?.session.membership??null),privacy:xn(u),signIn:{email:async(c,g)=>(await S(c),y(a("/sign-in/email",c,g,st),b=>!("twoFactorRedirect"in b))),username:async(c,g)=>(await S(c),y(a("/sign-in/username",c,g,st),b=>!("twoFactorRedirect"in b))),social:async(c,g)=>{if(await S(),Ci(c)==="first-party"){let{beginCrossSiteSignIn:R}=await Promise.resolve().then(()=>(Ne(),Ue)),v=await R(e,{kind:"social",provider:c.provider,callbackURL:c.callbackURL,errorCallbackURL:c.errorCallbackURL,newUserCallbackURL:c.newUserCallbackURL,scopes:c.scopes,loginHint:c.loginHint,requestSignUp:c.requestSignUp});if(v)return window.location.assign(v),{data:{redirect:true,url:v},error:null}}let b=await y(a("/sign-in/social",c,g,R=>Nn(R,w)),R=>"user"in R);return b.error!==null||b.data===null||"url"in b.data&&b.data.redirect&&!c.disableRedirect&&typeof window<"u"&&window.location.assign(b.data.url),b},sso:async(c,g)=>{if(Ci(c)==="first-party"){let{beginCrossSiteSignIn:R}=await Promise.resolve().then(()=>(Ne(),Ue)),v=await R(e,{kind:"sso",email:c.email,providerId:c.providerId,domain:c.domain,organizationSlug:c.organizationSlug,callbackURL:c.callbackURL,errorCallbackURL:c.errorCallbackURL,newUserCallbackURL:c.newUserCallbackURL});if(v)return window.location.assign(v),{data:{url:v,redirect:true},error:null}}let b=await a("/sign-in/sso",c,g,R=>Ln(R,w));return b.error!==null||b.data===null||typeof window<"u"&&window.location.assign(b.data.url),b},magicLink:(c,g)=>a("/sign-in/magic-link",c,g,Mn),emailOtp:async(c,g)=>(await S(),y(a("/sign-in/email-otp",c,g,zn))),passkey:async(c,g)=>(await S(),s.signIn(c,g))},signUp:{email:async(c,g)=>(await S(),y(a("/sign-up/email",c,g,Un),b=>b.sessionCreated))},emailOtp:{sendVerificationOtp:(c,g)=>a("/email-otp/send-verification-otp",c,g,Fn),verifyEmail:async(c,g)=>(await S(),y(a("/email-otp/verify-email",c,g,Vn)))},phoneOtp:{prepare:c=>a("/phone-otp/challenge",{},c,Kn),start:(c,g)=>a("/phone-otp/start",{...c,idempotencyKey:c.idempotencyKey??Z()},g,Hn),verify:async(c,g)=>(await S(),y(a("/phone-otp/verify",c,g,qn)))},requestPasswordReset:(c,g)=>a("/request-password-reset",c,g,at),resetPassword:(c,g)=>a("/reset-password",c,g,at),sendVerificationEmail:(c,g)=>a("/send-verification-email",c,g,Bn),passkey:{addPasskey:(c,g)=>s.add(c,g),listUserPasskeys:()=>u.request("/passkey/list-user-passkeys",{decode:gi}),updatePasskey:async(c,g)=>{let b=Ee(c.name);if(!b.valid||b.value===void 0)return xe();let R=b.value;return a("/passkey/update-passkey",{...c,name:R},g,v=>mi(v,c.id,R))},deletePasskey:(c,g)=>a("/passkey/delete-passkey",c,g,hi)},twoFactor:{enable:(c,g)=>a("/two-factor/enable",c,g,Jn),disable:(c,g)=>p(a("/two-factor/disable",c,g,$n),b=>b.status),verifyTotp:(c,g)=>y(a("/two-factor/verify-totp",c,g,ve)),verifyBackupCode:(c,g)=>y(a("/two-factor/verify-backup-code",c,g,ve)),sendOtp:(c={},g)=>a("/two-factor/send-otp",c,g,Gn),verifyOtp:(c,g)=>y(a("/two-factor/verify-otp",c,g,ve)),generateBackupCodes:(c,g)=>a("/two-factor/generate-backup-codes",c,g,Wn)},signOut:c=>p(u.request("/sign-out",{method:"POST",body:{},fetchOptions:c,decode:jn}).then(g=>(o.endSession(),e.session.integration?.sessionEnded().then(()=>g)??g)),g=>g.success)}}function ht(e,t=()=>{},n){let i=ss(e,t,n);return n?{...i,signIn:{email:i.signIn.email,username:i.signIn.username,social:Ei(i),magicLink:i.signIn.magicLink,emailOtp:i.signIn.emailOtp,passkey:i.signIn.passkey},passkey:{listUserPasskeys:i.passkey.listUserPasskeys,updatePasskey:i.passkey.updatePasskey,deletePasskey:i.passkey.deletePasskey,addPasskey:i.passkey.addPasskey}}:{...i,signIn:{email:i.signIn.email,username:i.signIn.username,social:Ei(i),magicLink:i.signIn.magicLink,emailOtp:i.signIn.emailOtp},passkey:{listUserPasskeys:i.passkey.listUserPasskeys,updatePasskey:i.passkey.updatePasskey,deletePasskey:i.passkey.deletePasskey}}}function Ei(e){return async(t,n)=>{if(!t?.idToken||typeof t.idToken.token!="string"||t.idToken.token==="")return as();let i=await e.signIn.social({...t,disableRedirect:true},n);return i.data!==null&&"url"in i.data?cs():i}}function as(){return Promise.resolve({data:null,error:{status:400,statusText:"BAD_REQUEST",code:"NATIVE_SOCIAL_ID_TOKEN_REQUIRED",message:"Native social sign-in requires a provider ID token."}})}function cs(){return Promise.resolve({data:null,error:{status:502,statusText:"BAD_GATEWAY",code:"INVALID_NATIVE_SOCIAL_RESPONSE",message:"The server returned a redirect for native ID-token sign-in."}})}function us(){return {signIn:()=>xi(),add:()=>xi()}}function xi(){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 ls(e,t,n){let i=new Map;return {async signIn(o={},r){let u=await e.request("/passkey/generate-authenticate-options");if(!u.data)return zi(u.error);let d;try{d=li(u.data);}catch{return Di()}let l;try{l=await n.authenticate({optionsJSON:d,useBrowserAutofill:o.autoFill});}catch(y){return Ui(n,y,"AUTH_CANCELLED","Passkey authentication was cancelled.")}if(!ds(l))return _i();let{clientExtensionResults:h,...s}=l,a=i.get(l.id);if(a)return a;let p=(async()=>{let y=await e.request("/passkey/verify-authentication",{method:"POST",body:{response:s},fetchOptions:r,decode:pi});return y.data&&await t(),y})();i.set(l.id,p);try{return await p}finally{i.get(l.id)===p&&i.delete(l.id);}},async add(o={},r){let u=Ee(o.name);if(!u.valid)return xe();let d=await e.request("/passkey/generate-register-options",{query:{name:u.value,authenticatorAttachment:o.authenticatorAttachment}});if(!d.data)return zi(d.error);let l;try{l=di(d.data);}catch{return Di()}let h;try{h=await n.register({optionsJSON:l});}catch(y){return Ui(n,y,"REGISTRATION_CANCELLED","Passkey registration was cancelled.")}if(!ps(h))return _i();let{clientExtensionResults:s,...a}=h,p=await e.request("/passkey/verify-registration",{method:"POST",body:{response:a,name:u.value},fetchOptions:r,decode:y=>fi(y,h.id,u.value)});return p.data&&t(),p}}}function Di(){return {data:null,error:{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned invalid WebAuthn options."}}}function _i(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_WEBAUTHN_RESPONSE",message:"The platform returned an invalid passkey response."}}}function Li(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 ds(e){if(!Li(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 ps(e){if(!Li(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.attestationObject=="string"}function zi(e){return {data:null,error:e??{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned no WebAuthn options."}}}function Ui(e,t,n,i){let o=gs(t,"page does not have focus"),r=e.errorCode?.(t),u=r!==void 0?r==="ERROR_CEREMONY_ABORTED":Ni(t)==="AbortError",d=n!=="AUTH_CANCELLED",l=fs(r,Ni(t),d);return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:o?"PASSKEY_PAGE_NOT_FOCUSED":u?n:r??"PASSKEY_BROWSER_ERROR",message:o?"Keep this page focused while completing the passkey prompt.":u?i:l}}}function fs(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 Ni(e){return e&&typeof e=="object"&&"name"in e&&typeof e.name=="string"?e.name:void 0}function gs(e,t){let n=t.toLowerCase(),i=new Set,o=e;for(;o&&typeof o=="object"&&!i.has(o);){if(i.add(o),"message"in o&&typeof o.message=="string"&&o.message.toLowerCase().includes(n))return true;o="cause"in o?o.cause:void 0;}return false}async function ms(e){let t=`${e.apiUrl}/api/projects/${e.decoded.projectId}/public-config`;return tn(await Re(e,t,{init:{method:"GET",credentials:"omit"},maxResponseBytes:256*1024,decode:n=>hs(n,e)}),"public-config")}function hs(e,t){let n=q(e),i=n.environmentId,o=n.environmentType,r=`${t.apiUrl}/api/projects/${t.decoded.projectId}/auth`;if(typeof n.applicationId!="string"||!yt(n.applicationId)||i!==t.decoded.projectId||o!=="development"&&o!=="production"||n.authBaseUrl!==r)throw _();let u=x(n.branding),d=x(n.legal);if(!ee(n.enabledMethods,64)||!ee(n.socialProviders,64)||!Ki(u,["appName","logoUrl","primaryColor"])||u.showAppName!==void 0&&typeof u.showAppName!="boolean"||u.alignment!==void 0&&u.alignment!=="left"&&u.alignment!=="center"&&u.alignment!=="right"||u.theme!==void 0&&u.theme!=="light"&&u.theme!=="dark"&&u.theme!=="system"||!Ki(d,["termsUrl","privacyUrl"])||!Number.isSafeInteger(d.version)||d.version<0||typeof d.required!="boolean")throw _();if(n.socialProviderClientIds!==void 0){let l=x(n.socialProviderClientIds);if(Object.keys(l).length>64||Object.values(l).some(h=>typeof h!="string"||h.length>2048))throw _()}if(!j(n,["requireEmailVerification","twoFactor","mfaRequired","accountDeletion","organizations","sso","badge"])||!Mi(n.turnstileSiteKey)||!Mi(n.authTurnstileSiteKey)||typeof n.locale!="string"||n.locale.length===0||n.locale.length>64||!Number.isSafeInteger(n.configVersion)||n.configVersion<0)throw _();if(n.jwtIssuer!==null){let l=x(n.jwtIssuer),h=new URL(l.issuer),s=`${h.origin}/api/projects/${t.decoded.projectId}/auth`;if(l.issuer!==s||l.jwksUrl!==`${s}/jwks`||l.aud!==t.decoded.projectId||h.protocol!=="https:"&&h.origin!==t.apiUrl)throw _()}if(n.signUp!==void 0){let l=x(n.signUp).mode;if(typeof l!="string"||!["open","restricted","allowlist","waitlist"].includes(l))throw _()}if(n.authentication!==void 0&&ys(n.authentication),n.privacy!==void 0&&bs(n.privacy),n.emailVerification!==void 0){let l=x(n.emailVerification);if(!j(l,["required"])||l.method!=="link"&&l.method!=="code")throw _()}if(n.userModel!==void 0&&!j(x(n.userModel),["requireEmail","firstLastName","emailChange","accountDeletion"]))throw _();if(n.mfa!==void 0){let l=x(n.mfa);if(!j(l,["totp","required","backupCodes"])||l.emailOtpFallback!==void 0&&typeof l.emailOtpFallback!="boolean"||l.trustDevice!==void 0&&typeof l.trustDevice!="boolean"||(l.required===true||l.backupCodes===true)&&l.totp!==true)throw _()}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 l=x(n.captcha);if(typeof l.provider!="string"||l.provider.length===0||l.provider.length>64||typeof l.siteKey!="string"||l.siteKey.length===0||l.siteKey.length>512)throw _();n.captcha={provider:l.provider,siteKey:l.siteKey};}return n}function yt(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 _(){return new TypeError("public-config returned an invalid response")}function x(e){if(!e||typeof e!="object"||Array.isArray(e))throw _();return e}function Mi(e){return e===null||typeof e=="string"&&e.length<=4096}function ys(e){let t=x(e),n=x(t.email),i=x(t.password),o=i.minLength!==void 0||i.maxLength!==void 0;if(!j(n,["signUp"])||!ee(n.signIn,3)||n.signIn.some(r=>r!=="password"&&r!=="magic_link"&&r!=="email_otp")||!j(x(t.phone),["signUp","signIn"])||!j(i,["signUp","add"])||o&&(!Number.isSafeInteger(i.minLength)||!Number.isSafeInteger(i.maxLength)||i.minLength<1||i.maxLength>4096||i.minLength>i.maxLength)||!j(x(t.passkey),["signIn","add"])||!As(x(t.passkey).relyingPartyId)||!j(x(t.username),["collectOnSignUp","signIn"]))throw _()}function bs(e){let t=x(e);if(!Array.isArray(t.notices)||!Array.isArray(t.consentPurposes)||t.notices.length>64||t.consentPurposes.length>64)throw _();for(let n of t.notices){let i=x(n);if(Fi(i,"noticeId","noticeVersionId"),Le(i.title,512),Le(i.body,1e5),Hi(i.digest),!ee(i.activityCodes,128)||!ee(i.purposeCodes,128)||typeof i.effectiveFrom!="string"||!Number.isFinite(Date.parse(i.effectiveFrom)))throw _()}for(let n of t.consentPurposes){let i=x(n);if(Fi(i,"purposeId","purposeVersionId"),Le(i.title,512),Le(i.description,1e4),Hi(i.digest),!ee(i.activityCodes,128)||!ee(i.dataCategories,128))throw _()}}function Fi(e,t,n){if(typeof e[t]!="string"||!yt(e[t])||typeof e[n]!="string"||!yt(e[n])||typeof e.code!="string"||!/^[a-z][a-z0-9_]{0,63}$/.test(e.code)||!Number.isSafeInteger(e.version)||e.version<1)throw _()}function Le(e,t){let n=x(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 _()}function Hi(e){let t=x(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 _()}function As(e){return e==null||typeof e=="string"}function j(e,t){return t.every(n=>typeof e[n]=="boolean")}function Ki(e,t){return t.every(n=>e[n]===void 0||typeof e[n]=="string"&&e[n].length<=4096)}function ee(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 qi=["en","ar"];function ws(e){return e==="ar"?"rtl":"ltr"}function Os(e){return typeof e=="string"&&qi.includes(e)}function Ss(e,t,n,i=Z()){return {locale:t,correlationId:i,noticeVersionIds:e.notices.map(o=>o.noticeVersionId),consentDecisions:e.consentPurposes.flatMap(o=>{let r=e.notices.find(u=>u.purposeCodes.includes(o.code));return r?[{purposeCode:o.code,purposeVersionId:o.purposeVersionId,noticeVersionId:r.noticeVersionId,decision:n.has(o.code)?"granted":"refused",guardianRequired:false,guardianEvidenceId:null}]:[]})}}function ks(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(u=>u==="password"||u==="magic_link"||u==="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}}function Rs(e,t){let n=`p_${e.toLowerCase().replace(/-/g,"")}`;return `${t?.secure?"__Secure-":""}${n}.session_token`}function Qa(e,t){return ht(qe(e),t)}
2
- exports.LOCALES=qi;exports.buildPrivacySignUpEvidence=Ss;exports.createIdempotencyKey=Z;exports.createMembershipHas=tr;exports.createNativeAuthClient=ht;exports.createNativeClient=Qa;exports.createPasskeyClient=ls;exports.decodePublishableKey=Fe;exports.directionFor=ws;exports.getPublicConfig=ms;exports.isLocale=Os;exports.resolveConfig=qe;exports.resolveProjectCapabilities=ks;exports.sessionCookieName=Rs;
1
+ 'use strict';var Vi=Object.defineProperty;var Me=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(i){throw n=[i],i}};var Ot=(e,t)=>{for(var n in t)Vi(e,n,{get:t[n],enumerable:true});};var Jt={};Ot(Jt,{abandonSession:()=>Ft,bindingNonce:()=>Bt,boundedSessionFetch:()=>Oe,clearSessionProofKeyMemoryForTests:()=>fo,cookieCapability:()=>Mt,createSessionProof:()=>jt,createStoredSessionProof:()=>bo,prepareSenderConstrainedSession:()=>lo,sessionProofKey:()=>Se});async function Oe(e,t,n,i){let o=new AbortController,r,l=new Promise((d,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}),l])}finally{clearTimeout(r);}}async function Mt(e,t,n){let i=await Oe(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 Oe(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 l;try{l=JSON.parse(r);}catch{throw new Error("AuthOwl cookie capability response is invalid.")}if(!l||typeof l!="object"||Array.isArray(l)||Object.keys(l).length!==1||typeof l.cookieSupported!="boolean")throw new Error("AuthOwl cookie capability response is invalid.");return l.cookieSupported}async function Ft(e,t,n,i){let o=new Headers(n);o.set("authorization",i),o.set("x-authowl-session-transport","bearer");try{await Oe(e,t,{method:"POST",credentials:"include",headers:o},2e3);}catch{}}async function lo(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 l=await Se(e.clientOrigin);if(l.thumbprint!==r)throw new Error("Session proof key changed.");n=l;}catch{let l=new Headers;t.declareOn(l);let d=l.get("authorization");d&&await Ft(e.fetcher,`${e.projectBaseURL}/session/abandon`,e.headers,d),t.endSession(),t.beginSession(e.start);}}let i;try{i=await Mt(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 Se(e.clientOrigin);return t.useBoundBearerTransport(o.thumbprint,o.persistent),{binding:{key:o,nonce:Bt()},cookieOnly:false}}function ne(e){let t="";for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function we(e){return new TextEncoder().encode(e)}async function Ht(e){return ne(new Uint8Array(await crypto.subtle.digest("SHA-256",we(e))))}function Kt(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 qt(e){return Ht(JSON.stringify({crv:e.crv,kty:e.kty,x:e.x,y:e.y}))}function po(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 fo(){Ae.clear();}async function go(e){if(!e||typeof e!="object")return null;let t=e;if(!po(t.privateKey)||!t.publicJwk||!Kt(t.publicJwk))return null;let n=await qt(t.publicJwk);return t.thumbprint!==n?null:{privateKey:t.privateKey,publicJwk:t.publicJwk,thumbprint:n,persistent:true}}function Vt(){return typeof indexedDB>"u"?Promise.resolve(null):new Promise(e=>{let t;try{t=indexedDB.open(uo,1);}catch{e(null);return}t.onupgradeneeded=()=>{t.result.objectStoreNames.contains(ie)||t.result.createObjectStore(ie,{keyPath:"origin"});},t.onsuccess=()=>e(t.result),t.onerror=()=>e(null),t.onblocked=()=>e(null);})}async function Lt(e){let t=await Vt();if(!t)return null;try{let n=await new Promise(i=>{let o=t.transaction(ie,"readonly").objectStore(ie).get(e);o.onsuccess=()=>i(o.result),o.onerror=()=>i(null);});return await go(n)}finally{t.close();}}async function mo(e,t){let n=await Vt();if(!n)return "unavailable";try{return await new Promise(i=>{let o;try{o=n.transaction(ie,"readwrite"),o.objectStore(ie).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 ho(){let e=await crypto.subtle.generateKey({name:"ECDSA",namedCurve:"P-256"},false,["sign","verify"]),t=await crypto.subtle.exportKey("jwk",e.publicKey);if(!Kt(t))throw new Error("The browser produced an invalid proof key.");return {privateKey:e.privateKey,publicJwk:t,thumbprint:await qt(t),persistent:false}}function Se(e){let t=Ae.get(e);if(t)return t;let n=(async()=>{let i=await Lt(e);if(i)return i;let o=await ho(),r=await mo(e,o);return r==="stored"?{...o,persistent:true}:r==="conflict"?await Lt(e)??o:o})();return Ae.set(e,n),n.catch(()=>Ae.delete(e)),n}function Bt(){return ne(crypto.getRandomValues(new Uint8Array(32)))}function yo(e){let t=new URL(e);return t.search="",t.hash="",t.toString()}async function jt(e){let t=ne(we(JSON.stringify({typ:ao,alg:co,jwk:e.key.publicJwk}))),n=ne(we(JSON.stringify({htm:e.method.toUpperCase(),htu:yo(e.url),iat:Math.floor(Date.now()/1e3),jti:ne(crypto.getRandomValues(new Uint8Array(16))),ath:await Ht(e.token)}))),i=`${t}.${n}`,o=await crypto.subtle.sign({name:"ECDSA",hash:"SHA-256"},e.key.privateKey,we(i));return `${i}.${ne(new Uint8Array(o))}`}async function bo(e){let t=await Se(e.origin);if(t.thumbprint!==e.expectedThumbprint)throw new Error("Session proof key changed.");return jt({key:t,method:e.method,url:e.url,token:e.token})}var ao,co,uo,ie,Ae,$t=Me(()=>{"use strict";ao="pop+jwt",co="ES256",uo="authowl-session-proof",ie="origin-keys",Ae=new Map;});function le(){return typeof window<"u"&&typeof document<"u"&&typeof crypto<"u"&&typeof crypto.subtle?.digest=="function"}var Xe=Me(()=>{"use strict";});var Ue={};Ot(Ue,{beginCrossSiteSignIn:()=>ns,challengeFor:()=>Pi,completeCrossSiteSignIn:()=>is,takeHandoffCode:()=>mt});function Ti(e){let t="";for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function Pi(e){let t=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e));return Ti(new Uint8Array(t))}function Zr(){return Ti(crypto.getRandomValues(new Uint8Array(Yr)))}function Ii(e,t){let n=window.location.protocol==="https:"?"; Secure":"";document.cookie=`${Ri}=${e}; Path=/; Max-Age=${t}; SameSite=Lax${n}`;}function es(){for(let e of document.cookie.split(";")){let t=e.indexOf("=");if(!(t<0)&&e.slice(0,t).trim()===Ri)return e.slice(t+1).trim()||null}return null}function ts(){Ii("",0);}function ki(e){return new URL(e,window.location.href).toString()}async function ns(e,t){let n=t.callbackURL?ki(t.callbackURL):null;if(n&&new URL(n).origin!==window.location.origin)return null;let i=Zr(),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 l of Qr){let d=t[l];d&&o.searchParams.set(l,d);}let r=`${window.location.origin}${window.location.pathname}${window.location.search}`;o.searchParams.set("cb",n??r);for(let[l,d]of [["err",t.errorCallbackURL],["new",t.newUserCallbackURL]])d&&o.searchParams.set(l,ki(d));return o.searchParams.set("challenge",await Pi(i)),Ii(i,Xr),o.toString()}function mt(e){if(typeof window>"u")return null;let t=window.location.hash;if(!t.includes(gt))return null;let n=new URLSearchParams(t.replace(/^#/,"")),i=n.get(gt);if(!i||e!==void 0&&i!==e)return null;n.delete(gt);let o=n.toString();return window.history.replaceState(window.history.state,"",`${window.location.pathname}${window.location.search}${o?`#${o}`:""}`),i}async function is(e,t,n){if(!le())return false;let i=n??mt();if(!i)return false;n&&mt(n);let o=es();if(ts(),!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 Ri,gt,Yr,Xr,Qr,Ne=Me(()=>{"use strict";Xe();Ri="authowl_handoff_verifier",gt="authowl_code",Yr=32,Xr=900,Qr=["email","providerId","domain","organizationSlug"];});var Bi=/^(pk_(live|test))_([0-9a-f-]{36})_([A-Za-z0-9]{20,})$/i,ji=/^sk_/i;function Fe(e){if(typeof e!="string"||e.length===0)throw new Error("publishableKey is required");if(ji.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=Bi.exec(e);if(!t)throw new Error("publishableKey is malformed; expected pk_(live|test)_<uuid>_<base62>");return {prefix:t[1].toLowerCase(),env:t[2].toLowerCase(),projectId:t[3].toLowerCase()}}var St=/^http:\/\/(?:(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*localhost|127\.0\.0\.1|\[::1\])(?::\d+)?(?:\/|$)/i;function He(e,t){throw new Error(`${e}: ${t}`)}function kt(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&&St.test(i)))throw new TypeError("Transport URL must use HTTPS except on approved loopback.");return n}function Rt(e,t){(typeof e!="string"||!/^https?:\/\/[^/?#@\\\s]+\/?$/i.test(e))&&He("apiUrl","origin required");let n;try{n=new URL(e);}catch{He("apiUrl","origin required");}return n.protocol==="http:"&&(!t.allowHttpLoopback||!St.test(e))&&He("apiUrl","HTTPS required except exact loopback"),n.origin}function $(e,t){try{return e?.getItem(t)??null}catch{return null}}function G(e,t,n){try{n===null?e?.removeItem(t):e?.setItem(t,n);}catch{}}function Y(){try{return globalThis.localStorage}catch{return}}function W(){try{return globalThis.sessionStorage}catch{return}}var Ji="authowl.session-challenge",$i=e=>`${Ji}.${e}`,Gi="set-auth-challenge",Tt="x-authowl-challenge";var It="INVALID_TWO_FACTOR_COOKIE",Wi=2048,be=e=>e!==null&&e.length<=Wi,Pt=/^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/;function Yi(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 vt(e){let t=$i(e),n=new Map;function i(){return n.size===0?null:[...n].map(([d,a])=>`${d}=${a}`).join("; ")}function o(){let d=i();G(W(),t,be(d)?d:null);}function r(d){for(let[a,h]of Yi(d))Pt.test(a)&&(h===""?n.delete(a):Pt.test(h)&&n.set(a,h));}let l=$(W(),t);return be(l)&&r(l),{presentOn(d){let a=i();d.delete(Tt),be(a)&&d.set(Tt,a);},observe(d){let a=d.get(Gi);be(a)&&(r(a),o());},clear(){n.clear(),o();}}}var Ct="set-auth-token",Et="x-authowl-session-transport",xt="bearer";var Xi="authowl.session-token",Qi="authowl.session-binding",Zi="authowl.cookie-transport",_t="ok",zt="bearer",eo=e=>`${Xi}.${e}`,to=e=>`${Qi}.${e}`,no=e=>`${Zi}.${e}`;function io(e){return e===_t?"cookies":e===zt?"bearer":"unknown"}function oo(e){return e==="cookies"?_t:e==="bearer"?zt:null}function ro(e){let t=eo(e),n=to(e),i=no(e),o=vt(e),r=new Set;function l(A){for(let z of r)try{z(A);}catch{}}let d=null,a=null,h=null,s=false,c=null,p=io($(Y(),i)),y=()=>p==="unknown",w=0,S=null,u=false;function g(){let A=$(W(),t);if(A!==null)return s=true,A;let z=$(Y(),t);return z!==null?(s=false,z):null}function b(){return $(W(),n)??$(Y(),n)}d=g(),a=d===null?null:b(),d!==null&&y()&&(u=true);function R(){if(!(!u||!S)){u=false;try{S();}catch{}}}function v(){let A=p==="bearer"?d:null,z=A===null?null:a,[ce,wt]=s?[W(),Y()]:[Y(),W()];G(wt,t,null),G(wt,n,null),G(ce,t,A),G(ce,n,z);}function N(A){A!==null&&c!==null&&(s=c,c=null),A!==null&&h!==null?(a=h,h=null):A===null&&(a=null),d=A,v(),A!==null&&y()&&(u=true,R());}function M(A){p=A,G(Y(),i,oo(A));}function O(){M("unknown"),u=false;}function T(){return d===null&&(d=g(),a=d===null?null:b()),d}function J(){let A=g();return A!==null&&(d=A,a=b()),d}function te(A){J()===A&&v();}function bt(){w+=1,c=null,h=null,s=false,N(null),o.clear(),O(),l({type:"endSession"});}let At=()=>p!=="cookies";return {subscribeLifecycle(A){return r.add(A),()=>r.delete(A)},hasToken:()=>T()!==null,bindingThumbprint:()=>(T(),a),declareOn(A){if(A.has("authorization"))return false;let z=T();return !z&&!At()?false:(z&&A.set("authorization",`Bearer ${z}`),A.set(Et,xt),o.presentOn(A),true)},wantsToken:At,needsProbe:y,observe(A){let z=A.get(Ct);z&&N(z),o.observe(A);},dropChallenge:o.clear,measureWith(A){S=A,R();},beginRead(){let A=T(),z=w;return {carriedToken:A!==null,endIfDead(){A!==null&&J()===A&&w===z&&bt();},recordCookieVerdict(ce){if(w===z&&y()){if(M(ce?"cookies":"bearer"),ce){N(null);return}te(A);}}}},beginSession({remember:A}){w+=1,c=!A,o.clear(),O(),l({type:"beginSession",remember:A});},useCookieTransport(){T()===null&&(h=null,M("cookies"));},completeCookieTransport(){M("cookies"),N(null);},useBoundBearerTransport(A,z){if(!A)throw new Error("A session proof thumbprint is required.");h=A,z||(c=true),M("bearer");},endSession:bt}}var Dt=new Map;function Ut(e){let t=Dt.get(e);if(t)return t;let n=ro(e);return Dt.set(e,n),n}var so=Symbol.for("authowl.session-transport-integration.v1");function Nt(e){return e?e[so]??null:null}var Ke="x-authowl-session-proof",Gt="x-authowl-session-binding",Wt="x-authowl-session-binding-proof",ke=()=>Promise.resolve().then(()=>($t(),Jt));function Ao(e,t){return t?.headers?new Headers(t.headers):typeof e=="object"&&e!==null&&"headers"in e?new Headers(e.headers):new Headers}function Yt(e,t){let n=Ut(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,l=false,d=()=>new Headers({"x-publishable-key":e.publishableKey});async function a(p){let y=p.get("authorization");y&&await ke().then(w=>w.abandonSession(i,`${e.projectBaseURL}/session/abandon`,d(),y));}async function h(p){r=null,l=false;let y=await ke().then(w=>w.prepareSenderConstrainedSession({tokens:n,start:p,clientOrigin:o,fetcher:i,projectBaseURL:e.projectBaseURL,headers:d()}));r=y.binding,l=y.cookieOnly;}return {fetch:async(p,y)=>{if(y?.credentials==="omit"||!n.wantsToken())return i(p,y);let w=Ao(p,y),S=n.declareOn(w),u=w.get("authorization"),g=(y?.method??(typeof p=="object"&&p!==null&&"method"in p?p.method:"GET")).toUpperCase(),b=typeof p=="string"?p:p instanceof URL?p.toString():p.url;if(S&&o){let v=!!u;if(u){let N=u.replace(/^Bearer\s+/i,""),M=n.bindingThumbprint();if(M)try{w.set(Ke,await ke().then(O=>O.createStoredSessionProof({origin:o,expectedThumbprint:M,method:g,url:b,token:N})));}catch{await a(w),n.endSession(),w.delete("authorization"),w.delete(Ke),w.delete(Gt),w.delete(Wt),v=false;}}if(r){let N=r;w.set(Gt,N.nonce),w.set(v?Wt:Ke,await ke().then(M=>M.createSessionProof({key:N.key,method:g,url:b,token:N.nonce})));}}let R=await i(p,{...y,headers:w});return S&&(R.status===401&&u&&(new URL(b).pathname.endsWith("/get-session")||new URL(b).pathname.endsWith("/sign-out"))?(await a(w),n.endSession(),r=null,l=false):(n.observe(R.headers),R.headers.has("set-auth-token")&&(l&&n.completeCookieTransport(),r=null,l=false))),R},probe:i,tokens:n,integration:Nt(t),prepareSession:h}}function wo(e){if(!e||typeof e!="object")throw new Error("AuthConfig is required");let t=Fe(e.publishableKey),n=Rt(e.apiUrl,{allowHttpLoopback:t.env==="test"});return {publishableKey:e.publishableKey,apiUrl:n,decoded:t,projectBaseURL:`${n}/api/projects/${t.projectId}/auth`}}function qe(e){let t=wo(e),{fetch:n,...i}=Yt({projectId:t.decoded.projectId,projectBaseURL:t.projectBaseURL,publishableKey:t.publishableKey},e.fetch);return {...e,...t,fetch:n,session:i}}var Oo=1e4,So=1024*1024,U=class extends Error{kind;requestId;constructor(t,n){super(Eo(t)),this.name="TransportError",this.kind=t,this.requestId=n;}},Zt=new WeakSet;function L(e,t){let n=new U(e,t);return Zt.add(n),n}async function en({fetchImpl:e,url:t,init:n={},timeoutMs:i=Oo,maxResponseBytes:o=So,allowHttpLoopback:r=false,decode:l}){Qt(i,"timeoutMs"),Qt(o,"maxResponseBytes");let d=kt(t,{allowHttpLoopback:r}),a=n.signal,h=new AbortController,s=null,c,p=new Promise(u=>{c=u;}),y=u=>{s===null&&(s=u,c({type:"abort",kind:u}),h.abort());},w=()=>y("aborted");a?.addEventListener("abort",w,{once:true});let S=setTimeout(()=>y("timeout"),i);a?.aborted&&w();try{if(s!==null)throw L(s);let u;try{u=await Promise.race([e(d.toString(),{...n,redirect:"error",signal:h.signal}).then(M=>({type:"response",response:M})),p]);}catch{throw L(s??"network")}if(u.type==="abort")throw L(u.kind);if(!ko(u.response))throw L("invalid_response");let g=u.response,b=Co(g.headers),R=await Ro(g,o,p,()=>s,b),v=Io(g,R,b),N;try{N=g.ok&&l?l(v,Object.freeze({status:g.status})):v;}catch{throw L("invalid_response",b)}return {response:g,data:N,...b===void 0?{}:{requestId:b}}}catch(u){throw u instanceof U&&Zt.has(u)?u:L(s??"network")}finally{clearTimeout(S),a?.removeEventListener("abort",w);}}function ko(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 Ro(e,t,n,i,o){let r=e.headers.get("content-length");if(r!==null){if(!/^\d+$/.test(r))throw Xt(e.body),L("invalid_response",o);if(Number(r)>t)throw Xt(e.body),L("response_too_large",o)}if(!e.body)return "";let l;try{l=e.body.getReader();}catch{throw L("network",o)}let d=[],a=0,h=null;try{for(;;){let p;try{p=await Promise.race([l.read(),n]);}catch{h=L(i()??"network",o);break}if(To(p)){h=L(p.kind,o);break}let{done:y,value:w}=p;if(y)break;if(w.byteLength!==0){if(a+=w.byteLength,a>t){h=L("response_too_large",o);break}d.push(w);}}}finally{h&&Po(l);try{l.releaseLock();}catch{}}if(h)throw h;let s=new Uint8Array(a),c=0;for(let p of d)s.set(p,c),c+=p.byteLength;try{return new TextDecoder("utf-8",{fatal:!0}).decode(s)}catch{throw L("invalid_response",o)}}function To(e){return "type"in e&&e.type==="abort"}function Xt(e){if(e)try{e.cancel().catch(()=>{});}catch{}}function Po(e){try{e.cancel().catch(()=>{});}catch{}}function Io(e,t,n){if(e.status===204||e.status===205)return null;let i=vo(e.headers.get("content-type"));if(!e.ok&&(!i||t.length===0))return null;if(!i||t.length===0)throw L("invalid_response",n);try{return JSON.parse(t)}catch{if(!e.ok)return null;throw L("invalid_response",n)}}function vo(e){if(e===null)return false;let t=e.split(";",1)[0]?.trim().toLowerCase();return t==="application/json"||t?.endsWith("+json")===true}function Co(e){let t=e.get("x-request-id")?.trim();if(!(!t||t.length>256||!/^[A-Za-z0-9._:-]+$/.test(t)))return t}function Qt(e,t){if(!Number.isInteger(e)||e<=0)throw new TypeError(`${t} must be a positive integer.`)}function Eo(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 Ve=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 Re(e,t,n={}){let i=new Headers(n.init?.headers);return i.set("x-publishable-key",e.publishableKey),en({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 tn(e,t){if(!e.response.ok)throw new Ve(t,e.response,e.requestId);return e.data}var xo=new Map;function nn(e){return typeof window>"u"?null:xo.get(e)?.at(-1)?.locale??null}var Do="x-authowl-turnstile-token",_o="x-authowl-locale",zo=1e4,Uo=32,No=2e4;function X(e,t){return {post:(n,i,o,r)=>e.request(n,{method:"POST",body:i,fetchOptions:o,decode:r}),mutation:async(n,i)=>{let o=await n;return o.error===null&&(i===void 0||o.data!==null&&i(o.data))&&await t(),o}}}function $e(e,t=e.projectBaseURL){return {async request(n,i={}){let o=Fo(t,n,i.query),r=i.method??(i.body===void 0?"GET":"POST"),l=new Headers(i.fetchOptions?.headers);i.fetchOptions?.authChallengeToken&&l.set(Do,i.fetchOptions.authChallengeToken);let d=nn(e.decoded.projectId);d&&l.set(_o,d),i.body!==void 0&&l.set("content-type","application/json");let a={method:r,headers:l,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=Mo(r,i.fetchOptions),c;try{c=await Lo(e,o,{...a,signal:i.fetchOptions?.signal},s);}catch(g){let b=rn(g);return await i.fetchOptions?.onError?.(Be(h,b,qo(g))),{data:null,error:b}}let{response:p,requestId:y}=c,w=jo(n,c.data),S=w;if(p.ok)try{S=Je(w),i.decode&&(S=i.decode(S));}catch{let g=rn(new U("invalid_response",y));return await i.fetchOptions?.onError?.(Be(h,g,"invalid_response")),{data:null,error:g}}let u=Object.freeze({...h,status:p.status,...y===void 0?{}:{requestId:y}});if(await i.fetchOptions?.onResponse?.(u),!p.ok){let g=Ho(p,w,y);return g.code===It&&e.session.tokens.dropChallenge(),await i.fetchOptions?.onError?.(Be(h,g,"api")),{data:null,error:g}}return await i.fetchOptions?.onSuccess?.(u),{data:S,error:null}}}}async function Lo(e,t,n,i){let o=Date.now()+zo;for(let r=0;r<i;r+=1){let l=o-Date.now();if(l<=0)throw new U("timeout");try{let d=await Re(e,t,{init:n,timeoutMs:Math.max(1,Math.ceil(l))});if(d.response.status<500||r===i-1)return d}catch(d){if(r===i-1||!(d instanceof U)||d.kind!=="network")throw d}await Vo(50*2**r,n.signal,o);}throw new U("network")}function Mo(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 Fo(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 Ho(e,t,n){let i=ue(t)?t:{},o=Ko(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 Ko(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 U?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 U&&e.requestId?{requestId:e.requestId}:{}}}function Be(e,t,n){return Object.freeze({...e,status:t.status??0,...t.requestId===void 0?{}:{requestId:t.requestId},failure:n})}function qo(e){return e instanceof U?e.kind:"network"}function Vo(e,t,n){return new Promise((i,o)=>{if(t?.aborted){o(new U("aborted"));return}let r=n-Date.now();if(r<=0){o(new U("timeout"));return}let l=Math.min(e,r),d=()=>{clearTimeout(a),o(new U("aborted"));},a=setTimeout(()=>{t?.removeEventListener("abort",d),Date.now()>=n?o(new U("timeout")):i();},l);t?.addEventListener("abort",d,{once:true}),t?.aborted&&d();})}function Je(e,t="",n=0,i={nodes:0}){if(i.nodes+=1,n>Uo||i.nodes>No)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=>Je(o,"",n+1,i)):ue(e)?Object.fromEntries(Object.entries(e).map(([o,r])=>[o,Bo(o)?r:Je(r,o,n+1,i)])):e}function Bo(e){return e==="metadata"||e==="public_metadata"||e==="unsafe_metadata"||e==="private_metadata"||e==="publicMetadata"||e==="unsafeMetadata"||e==="privateMetadata"}function jo(e,t){if(e==="/list-sessions"&&Array.isArray(t))return t.map(o=>ue(o)?je(o):o);if(!ue(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-")?je(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")&&ue(i.session)&&(i={...i,session:je(i.session)}),i}function je(e){if(!Object.hasOwn(e,"token"))return e;let t={...e};return delete t.token,t}function ue(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}var Jo=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 k(e){return typeof e!="string"&&f(),e}function C(e){return typeof e!="boolean"&&f(),e}function P(e){return (!(e instanceof Date)||Number.isNaN(e.getTime()))&&f(),e}function Q(e){return (!Array.isArray(e)||!e.every(t=>typeof t=="string"))&&f(),[...e]}function x(e,t){let n=e[t];return n==null||typeof n=="string"?n:f()}function sn(e,t){let n=e[t];return n==null||typeof n=="boolean"?n:f()}function H(e){let t=m(e),n=t.email;return n!==null&&typeof n!="string"&&f(),{id:k(t.id),email:n,emailVerified:C(t.emailVerified),createdAt:P(t.createdAt),updatedAt:P(t.updatedAt),...F("phoneNumber",x(t,"phoneNumber")),...F("username",x(t,"username")),...F("displayUsername",x(t,"displayUsername")),...F("firstName",x(t,"firstName")),...F("lastName",x(t,"lastName")),...F("name",x(t,"name")),...F("image",x(t,"image")),...F("twoFactorEnabled",sn(t,"twoFactorEnabled"))}}function Te(e){let t=m(e),n=t.membership;return {id:k(t.id),userId:k(t.userId),expiresAt:P(t.expiresAt),...F("activeOrganizationId",x(t,"activeOrganizationId")),...F("activeTeamId",x(t,"activeTeamId")),...F("membership",n==null?n:$o(n)),...F("pendingMfaEnrollment",sn(t,"pendingMfaEnrollment"))}}function f(){throw new TypeError("AuthOwl response does not match its runtime contract.")}function q(e,t=20,n=1e4){return (!e||typeof e!="object"||Array.isArray(e))&&f(),We(e,t,n)}function We(e,t=20,n=1e4){return Ge(e,0,{nodes:0},t,n)}function $o(e){let t=m(e);return {role:k(t.role),...t.roles===void 0?{}:{roles:Q(t.roles)},permissions:Q(t.permissions),...t.teams===void 0?{}:{teams:Q(t.teams)}}}function Ge(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(d=>Ge(d,t+1,n,i,o));(!e||typeof e!="object")&&f();let r=Object.getPrototypeOf(e);r!==Object.prototype&&r!==null&&f();let l={};for(let[d,a]of Object.entries(e))Jo.has(d)&&f(),l[d]=Ge(a,t+1,n,i,o);return l}function F(e,t){return t===void 0?{}:{[e]:t}}function an({http:e,probe:t,tokens:n,channelName:i}){let o=new Set,r=null,l=null,d=null,a=null,h=null,s=null,c,p=O=>{S(O);};c={data:null,isPending:true,isRefetching:false,error:null,refetch:p};function y(O){c=O;for(let T of o)T();}async function w(O){return e.request("/get-session",{query:O?.query,decode:Ye})}function S(O){if(O?.query?.disableCookieCache===true)return g(O);if(a)return a;if(h)return h;let T=g(O).finally(()=>{h===T&&(h=null);});return h=T,T}function u(){if(a)return a;let O=g({query:{disableCookieCache:true}}).finally(()=>{a===O&&(a=null);});return a=O,O}async function g(O){d?.abort();let T=new AbortController;d=T,y({...c,isPending:c.data===null&&c.error===null,isRefetching:c.data!==null});let J=n.beginRead(),te=await e.request("/get-session",{query:O?.query,fetchOptions:{signal:T.signal},decode:Ye});if(d===T&&(d=null,y({data:te.data,error:te.error,isPending:false,isRefetching:false,refetch:p}),te.error===null)){if(te.data===null){J.endIfDead();return}await b(J);}}async function b(O){if(n.needsProbe()){if(!O.carriedToken){O.recordCookieVerdict(true);return}return s||R(O)}}function R(O){let T=t.request("/get-session",{query:{disableCookieCache:true},decode:Ye}).then(J=>{s===T&&J.error===null&&O.recordCookieVerdict(J.data!==null);}).finally(()=>{s===T&&(s=null);});return s=T,T}function v(){r?.postMessage({type:"session-changed"});}function N(){if(typeof window>"u"||l)return;let O=()=>{S();},T=()=>{document.visibilityState==="visible"&&S();};window.addEventListener("focus",O),document.addEventListener("visibilitychange",T),typeof BroadcastChannel<"u"&&(r=new BroadcastChannel(i),r.addEventListener("message",O)),l=()=>{window.removeEventListener("focus",O),document.removeEventListener("visibilitychange",T),r?.close(),r=null,l=null;};}function M(O){return o.add(O),o.size===1&&(N(),S()),()=>{if(o.delete(O),o.size===0){let T=d;d=null,h=null,a=null,T?.abort(),l?.();}}}return n.measureWith(()=>{n.needsProbe()&&R(n.beginRead());}),{store:{subscribe:M,getSnapshot:()=>c,refresh:u},getSession:w,notifyMutation(){v(),s&&s.catch(()=>{}).then(()=>{!n.needsProbe()&&n.hasToken()&&v();}),o.size>0&&S({query:{disableCookieCache:true}});}}}function Ye(e){if(e===null)return null;let t=m(e);return (t.session===void 0||t.user===void 0)&&f(),{session:Te(t.session),user:H(t.user)}}Xe();function Z(){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 cn(e,t){return e.request("/user/metadata",{fetchOptions:t,decode:ln})}async function un(e,t,n){return e.request("/user/metadata",{method:"PATCH",body:{expected_version:t.expectedVersion,unsafe_metadata:t.unsafeMetadata},fetchOptions:n,decode:ln})}function ln(e){let t=m(e),n=q(t.public_metadata),i=q(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 pn(e,t){let{post:n,mutation:i}=X(e,t);return {getMetadata:o=>cn(e,o),updateUnsafeMetadata:(o,r)=>un(e,o,r),updateProfile:(o,r)=>i(n("/update-user",o,r,de)),changeEmail:(o,r)=>i(n("/change-email",o,r,de)),changePassword:(o,r)=>i(n("/change-password",o,r,Go)),listSessions:o=>e.request("/list-sessions",{fetchOptions:o,decode:Wo}),revokeSession:({sessionId:o},r)=>i(n("/revoke-session",{sessionId:o},r,de)),revokeOtherSessions:o=>i(n("/revoke-other-sessions",{},o,de)),listSocialAccounts:async o=>{let r=await e.request("/list-accounts",{fetchOptions:o,decode:Yo});if(!r.data)return {data:null,error:r.error};let l=r.data.length>1;return {...r,data:r.data.filter(d=>d.providerId!=="credential").map(d=>({...d,canUnlink:l}))}},linkSocial:(o,r)=>n("/link-social",o,r,Xo),unlinkSocial:(o,r)=>i(n("/unlink-account",o,r,de)),delete:(o={},r)=>i(n("/delete-user",o,r,Qo))}}function de(e){let t=m(e);return {status:C(t.status)}}function Go(e){let t=m(e);return {user:H(t.user)}}function Wo(e){return Array.isArray(e)||f(),e.map(t=>{let n=m(t);return {id:k(n.id),userId:k(n.userId),createdAt:P(n.createdAt),updatedAt:P(n.updatedAt),expiresAt:P(n.expiresAt),...dn("ipAddress",x(n,"ipAddress")),...dn("userAgent",x(n,"userAgent"))}})}function Yo(e){return Array.isArray(e)||f(),e.map(t=>{let n=m(t);return {id:k(n.id),userId:k(n.userId),providerId:k(n.providerId),accountId:k(n.accountId),scopes:Q(n.scopes),createdAt:P(n.createdAt),updatedAt:P(n.updatedAt)}})}function Xo(e){let t=m(e);return {url:k(t.url),redirect:C(t.redirect)}}function Qo(e){let t=m(e);return {success:C(t.success),message:k(t.message)}}function dn(e,t){return t===void 0?{}:{[e]:t}}function Qe(e,t){return !e||!t?false:e.permissions.includes(t)}function Zo(e,t){return !e||!t?false:e.teams?.includes(t)??false}function er(e,t){return e?e.roles===void 0?e.role===t:e.roles.includes(t):false}function Ze(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&&!er(e,n)||i!==void 0&&!e.permissions.includes(i)||o!==void 0&&!Zo(e,o))}function tr(e){return {has:t=>Ze(e,t),hasPermission:t=>Qe(e,t.permission)}}var nr=new Set(["pending","accepted","rejected","canceled"]),et=1e4;function fn(e){let t=m(e);return t.recipientHint!==null&&t.recipientHint!=="new_user"&&f(),{recipientHint:t.recipientHint}}function oe(e,t,n){let i=m(e),o={id:I(i.id),name:I(i.name),slug:I(i.slug),createdAt:P(i.createdAt),...pe("logo",x(i,"logo")),...pe("metadata",i.metadata===void 0?void 0:We(i.metadata))};return K(o.id,t),K(o.slug,n),o}function gn(e){return V(e,oe)}function tt(e,t,n){return e===null?null:(t===null&&f(),oe(e,t,n))}function mn(e,t,n){if(e===null)return null;let i=m(e),o=oe(i,t,n);return {...o,members:V(i.members,r=>In(r,o.id)),invitations:V(i.invitations,r=>B(r,void 0,o.id))}}function nt(e,t,n=false){let i=V(e,o=>fe(o));return n||me(i.map(o=>o.organizationId),t),i}function hn(e,t){let n=V(e,i=>it(i));return me(n.map(i=>i.teamId),t),n}function it(e,t,n){let i=m(e),o={id:I(i.id),teamId:I(i.teamId),userId:I(i.userId),createdAt:P(i.createdAt)};return K(o.teamId,t),K(o.userId,n),o}function yn(e,t,n){return e===null?null:(t===null&&f(),fe(e,t,n))}function bn(e,t){let n=m(e);return (!Number.isSafeInteger(n.total)||n.total<0)&&f(),{members:ir(n.members,t),total:n.total}}function B(e,t,n){let i=m(e),o=I(i.status);nr.has(o)||f();let r={id:I(i.id),organizationId:I(i.organizationId),email:ge(i.email),role:I(i.role),status:o,inviterId:I(i.inviterId),expiresAt:P(i.expiresAt),createdAt:P(i.createdAt)};return K(r.id,t),K(r.organizationId,n),r}function An(e,t){let n=V(e,i=>B(i));return me(n.map(i=>i.organizationId),t),n}function wn(e){return V(e,t=>{let n=m(t);return {...B(n),organizationName:ge(n.organizationName)}})}function On(e,t){let n=m(e);return {...B(n,t),organizationName:I(n.organizationName),organizationSlug:I(n.organizationSlug),inviterEmail:vn(n.inviterEmail)}}function Sn(e,t){let n=m(e),i=B(n.invitation,t);return {invitation:i,member:re(n.member,void 0,i.organizationId)}}function kn(e,t){let n=m(e);return n.member!==null&&f(),{invitation:n.invitation===null?null:B(n.invitation,t),member:null}}function Rn(e,t){return e===null?null:B(e,t)}function Tn(e,t,n){let i=m(e);return {member:re(i.member,n,t)}}function re(e,t,n){let i=m(e),o={id:I(i.id),organizationId:I(i.organizationId),userId:I(i.userId),role:I(i.role),createdAt:P(i.createdAt),...i.user===void 0?{}:{user:Cn(i.user)}};return K(o.id,t),K(o.organizationId,n),o}function Pn(e,t){let n=V(e,i=>{let o=m(i);return {organizationId:I(o.organizationId),data:{role:I(o.role),...pe("permission",o.permission===void 0?void 0:or(o.permission)),...pe("customPermissionKeys",o.customPermissionKeys===void 0?void 0:Q(o.customPermissionKeys))}}});return me(n.map(i=>i.organizationId),t),n.map(i=>i.data)}function fe(e,t,n){let i=m(e),o=i.updatedAt,r={id:I(i.id),name:ge(i.name),organizationId:I(i.organizationId),createdAt:P(i.createdAt),...o===void 0?{}:{updatedAt:P(o)}};return K(r.id,t),K(r.organizationId,n),r}function ot(e){let t=m(e);return {message:ge(t.message)}}function In(e,t){let n=m(e);return {...re(n,void 0,t),user:Cn(n.user)}}function ir(e,t){let n=V(e,i=>In(i));return me(n.map(i=>i.organizationId),t),n}function or(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>et||!Array.isArray(o))&&f(),n[i]=o.map(r=>I(r));return n}function I(e){let t=k(e);return (t.length===0||t.length>et)&&f(),t}function ge(e){if(e==null)return "";let t=k(e);return t.length>et&&f(),t}function vn(e){return e===null?null:I(e)}function K(e,t){t!==void 0&&e!==t&&f();}function me(e,t){let n=t??e[0];n!==void 0&&e.some(i=>i!==n)&&f();}function Cn(e){let t=m(e);return {id:I(t.id),name:ge(t.name),email:vn(t.email),...pe("image",x(t,"image"))}}function V(e,t){return Array.isArray(e)||f(),e.map(n=>t(n))}function pe(e,t){return t===void 0?{}:{[e]:t}}function En(e,t,n=()=>null){let{post:i,mutation:o}=X(e,t),r=new Set,l=()=>{for(let s of r)try{s();}catch{}},d=new Map,a=(s,c,p,y)=>{if(p)return e.request(s,{query:c,fetchOptions:p,decode:y});let w=`${s}\0${JSON.stringify(c??null)}`,S=d.get(w);if(S)return S;let u=e.request(s,{query:c,decode:y}).finally(()=>{d.delete(w);});return d.set(w,u),u},h=async s=>{let c=await o(s).finally(()=>d.clear());return c.error===null&&l(),c};return {subscribe(s){return r.add(s),()=>r.delete(s)},create:(s,c)=>h(i("/organization/create",s,c,oe)),list:s=>a("/organization/list",void 0,s,gn),get:(s={},c)=>a("/organization/get-full-organization",{organizationId:s.organizationId,organizationSlug:s.organizationSlug,membersLimit:s.membersLimit},c,p=>mn(p,s.organizationId,s.organizationSlug)),setActive:(s,c)=>h(i("/organization/set-active",s,c,p=>tt(p,s.organizationId,s.organizationSlug))),createTeam:(s,c)=>h(i("/organization/create-team",s,c,p=>fe(p,void 0,s.organizationId))),listTeams:(s={},c)=>a("/organization/list-teams",{organizationId:s.organizationId},c,p=>nt(p,s.organizationId)),updateTeam:(s,c)=>h(i("/organization/update-team",s,c,p=>fe(p,s.teamId,s.data.organizationId))),removeTeam:(s,c)=>h(i("/organization/remove-team",s,c,ot)),listUserTeams:s=>a("/organization/list-user-teams",void 0,s,c=>nt(c,void 0,true)),listTeamMembers:(s={},c)=>a("/organization/list-team-members",{teamId:s.teamId},c,p=>hn(p,s.teamId)),addTeamMember:(s,c)=>h(i("/organization/add-team-member",s,c,p=>it(p,s.teamId,s.userId))),removeTeamMember:(s,c)=>h(i("/organization/remove-team-member",s,c,ot)),setActiveTeam:(s,c)=>h(i("/organization/set-active-team",s,c,p=>yn(p,s.teamId))),update:(s,c)=>h(i("/organization/update",s,c,p=>tt(p,s.organizationId))),delete:(s,c)=>h(i("/organization/delete",s,c,p=>oe(p,s.organizationId))),listMembers:(s={},c)=>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},c,p=>bn(p,s.organizationId)),inviteMember:(s,c)=>h(i("/organization/invite-member",s,c,p=>B(p,void 0,s.organizationId))),listInvitations:(s={},c)=>a("/organization/list-invitations",{organizationId:s.organizationId},c,p=>An(p,s.organizationId)),listUserInvitations:s=>a("/organization/list-user-invitations",void 0,s,wn),getInvitation:(s,c)=>a("/organization/get-invitation",{id:s.id},c,p=>On(p,s.id)),getInvitationRecipientHint:(s,c)=>a("/organization/invitation-recipient-hint",{invitationId:s.invitationId},c,fn),acceptInvitation:(s,c)=>h(i("/organization/accept-invitation",s,c,p=>Sn(p,s.invitationId))),rejectInvitation:(s,c)=>h(i("/organization/reject-invitation",s,c,p=>kn(p,s.invitationId))),cancelInvitation:(s,c)=>h(i("/organization/cancel-invitation",s,c,p=>Rn(p,s.invitationId))),removeMember:(s,c)=>h(i("/organization/remove-member",s,c,p=>Tn(p,s.organizationId,s.memberIdOrEmail.includes("@")?void 0:s.memberIdOrEmail))),updateMemberRole:(s,c)=>h(i("/organization/update-member-role",s,c,p=>re(p,s.memberId,s.organizationId))),leave:(s,c)=>h(i("/organization/leave",s,c,p=>re(p,void 0,s.organizationId))),listRoles:(s={},c)=>a("/organization/list-roles",{organizationId:s.organizationId},c,p=>Pn(p,s.organizationId)),has:s=>Ze(n(),s),hasPermission:s=>Qe(n(),s.permission)}}function xn(e){return {listConsentPreferences:t=>e.request("/privacy/consent-decisions",{fetchOptions:t,decode:rr}),recordConsent:(t,n)=>e.request("/privacy/consent-decisions",{method:"POST",body:{...t,correlationId:t.correlationId??Z()},fetchOptions:n,decode:ar}),listRightsRequests:t=>e.request("/privacy/rights",{fetchOptions:t,decode:cr}),createRightsRequest:(t,n)=>e.request("/privacy/rights",{method:"POST",body:t,fetchOptions:n,decode:ur})}}function rr(e){let t=m(e);return Array.isArray(t.preferences)||f(),{preferences:t.preferences.map(sr)}}function sr(e){let t=m(e);return {purposeId:k(t.purposeId),purposeVersionId:k(t.purposeVersionId),code:k(t.code),state:lr(t.state,["granted","refused","withdrawn"]),updatedAt:Pe(t.updatedAt),decidedAt:Pe(t.decidedAt)}}function ar(e){let t=m(e);return t.recorded!==true&&f(),{recorded:true,decision:he(t.decision,["granted","refused","withdrawn"]),decidedAt:Ie(t.decidedAt)}}function cr(e){let t=m(e);return Array.isArray(t.requests)||f(),{requests:t.requests.map(Dn)}}function ur(e){return {request:Dn(m(e).request)}}function Dn(e){let t=m(e);return {id:k(t.id),rightType:he(t.rightType,["access","correction","portability","erasure","restriction","objection","consent_withdrawal"]),state:he(t.state,["received","identity_pending","in_progress","restricted","completed","denied","withdrawn"]),locale:he(t.locale,["en","ar"]),receivedAt:Ie(t.receivedAt),acknowledgedAt:Pe(t.acknowledgedAt),fulfilmentDeadline:Ie(t.fulfilmentDeadline),completedAt:Pe(t.completedAt)}}function Pe(e){return e===null?null:Ie(e)}function Ie(e){if(e instanceof Date)return P(e);typeof e!="string"&&f();let t=new Date(e);return Number.isNaN(t.getTime())&&f(),t}function he(e,t){return (typeof e!="string"||!t.includes(e))&&f(),e}function lr(e,t){return e===null?null:he(e,t)}var _n=4096,dr=4096,pr=100,fr=256,gr=16,mr=64,hr=12;function st(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:Xn(t.twoFactorMethods,gr,mr)}}):(t.twoFactorRedirect!==void 0&&f(),{redirect:C(t.redirect),...Or(t,"url"),user:H(t.user)})}function zn(e){let t=m(e);return {user:H(t.user)}}function Un(e){let t=m(e);return {sessionCreated:C(t.sessionCreated),user:H(t.user)}}function Nn(e,t){let n=m(e),i=C(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:rt(n.url,t)}):(o===r&&f(),o?{redirect:false,user:H(n.user)}:{redirect:false,url:rt(n.url,t)})}function Ln(e,t){let n=m(e);return (n.redirect!==true||n.user!==void 0)&&f(),{redirect:true,url:rt(n.url,t)}}function Mn(e){return {status:C(m(e).status)}}function Fn(e){return {success:C(m(e).success)}}function Hn(e){return m(e).status!=="pending"&&f(),{status:"pending"}}function Kn(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:k(n.siteKey);return {kind:"akedly_shield_v1_2",connectionId:k(t.connectionId),challenge:k(t.challenge),difficulty:yr(t.difficulty),challengeToken:k(t.challengeToken),challengeRequired:C(t.challengeRequired),turnstile:{required:C(n.required),siteKey:i}}}function yr(e){return (!Number.isSafeInteger(e)||Number(e)<0||Number(e)>hr)&&f(),Number(e)}function qn(e){let t=m(e);return (t.status!==true||t.sessionCreated!==true)&&f(),{status:true,sessionCreated:true,user:br(t.user)}}function at(e){return {status:C(m(e).status)}}function Vn(e){return {status:C(m(e).status)}}function Bn(e){let t=m(e);return {status:C(t.status),user:H(t.user)}}function jn(e){return {success:C(m(e).success)}}function Jn(e){let t=m(e);return {totpURI:wr(t.totpURI),backupCodes:Yn(t.backupCodes)}}function $n(e){return {status:C(m(e).status)}}function ve(e){return m(e).status!==true&&f(),{status:true}}function Gn(e){return {status:C(m(e).status)}}function Wn(e){let t=m(e);return t.status!==void 0&&t.status!==true&&f(),{backupCodes:Yn(t.backupCodes)}}function br(e){let t=m(e);return {id:se(t.id,512),...Sr(t,"name",1024),phoneNumber:se(t.phoneNumber,64),phoneNumberVerified:C(t.phoneNumberVerified),...t.createdAt===void 0?{}:{createdAt:P(t.createdAt)},...t.updatedAt===void 0?{}:{updatedAt:P(t.updatedAt)}}}function rt(e,t){let n=se(e,_n);/[\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:"&&Ar(i.hostname)?i.href:f()}function Ar(e){let t=e.toLowerCase();return t==="localhost"||t==="127.0.0.1"||t==="[::1]"}function wr(e){let t=se(e,dr),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 Yn(e){return Xn(e,pr,fr)}function Xn(e,t,n){(!Array.isArray(e)||e.length===0||e.length>t)&&f();let i=e.map(o=>se(o,n));return i.some(o=>o.trim().length===0)&&f(),new Set(i).size!==i.length&&f(),i}function se(e,t){let n=k(e);return (n.length===0||n.length>t)&&f(),n}function Or(e,t){let n=e[t];return n==null?{}:{[t]:se(n,_n)}}function Sr(e,t,n){let i=x(e,t);return i===void 0?{}:(i!==null&&i.length>n&&f(),{[t]:i})}var Qn=new Set([1564,8206,8207,8234,8235,8236,8237,8238,8294,8295,8296,8297]),Ce=new Set([9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288,65279]);function Ee(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||ei(n,i)||Zn(i)||Qn.has(i))return {valid:false}}let t=kr(e);return ct(t)?{valid:true,value:t}:{valid:false}}function ct(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||ei(o,r)||Zn(r)||Qn.has(r))return false;n??=r,i=r;}return t>0&&n!==void 0&&i!==void 0&&!Ce.has(n)&&!Ce.has(i)}function xe(){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 kr(e){let t=0,n=e.length;for(;t<n;){let i=e.codePointAt(t);if(i===void 0||!Ce.has(i))break;t+=i>65535?2:1;}for(;n>t;){let i=e.codePointAt(n-1);if(i===void 0)break;let r=i>=56320&&i<=57343?n-2:n-1,l=e.codePointAt(r);if(l===void 0||!Ce.has(l))break;n=r;}return e.slice(t,n)}function Zn(e){return e>=0&&e<=31||e>=127&&e<=159}function ei(e,t){return e.length===1&&t>=55296&&t<=57343}var ii=12,oi=5e3,Rr=8,Tr=1e3,Pr=16,ti=512,ri=100,si=8192,Ir=32768,ut=1024,ni=256,dt=64,vr=6e5,Cr=/^[A-Za-z0-9_-]+$/u,Er=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u,xr=/[\u0000-\u001f\u007f-\u009f\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/u,Dr=/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$/u,_r=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu,ai=new Set(["discouraged","preferred","required"]),zr=new Set(["singleDevice","multiDevice"]),ci=new Set(["ble","cable","hybrid","internal","nfc","smart-card","usb"]),ui=new Set(["hybrid","security-key","client-device"]),Ur=new Set(["none","indirect","direct","enterprise"]),Nr=new Set(["fido-u2f","packed","android-safetynet","android-key","tpm","apple","none"]),Lr=new Set(["platform","cross-platform"]),Mr=new Set(["discouraged","preferred","required"]),Fr=new Set([-8,-7,-257]);function li(e){let t=q(e,ii,oi);return {challenge:wi(t.challenge),...D("timeout",bi(t.timeout)),...D("rpId",Oi(t.rpId)),...D("allowCredentials",yi(t.allowCredentials)),...D("userVerification",ye(t.userVerification,ai)),...D("hints",De(t.hints,ui)),...D("extensions",Ai(t.extensions))}}function di(e){let t=q(e,ii,oi);return {challenge:wi(t.challenge),rp:Hr(t.rp),user:Kr(t.user),pubKeyCredParams:qr(t.pubKeyCredParams),...D("timeout",bi(t.timeout)),...D("excludeCredentials",yi(t.excludeCredentials)),...D("authenticatorSelection",Vr(t.authenticatorSelection)),...D("attestation",ye(t.attestation,Ur)),...D("attestationFormats",De(t.attestationFormats,Nr)),...D("hints",De(t.hints,ui)),...D("extensions",Ai(t.extensions))}}function pi(e){let t=m(e),n=Te(t.session),i=H(t.user);return n.userId!==i.id&&f(),{session:n,user:i}}function pt(e){let t=m(e),n=t.counter;(!Number.isSafeInteger(n)||n<0)&&f();let i=ft(t.deviceType,zr),o=C(t.backedUp);return o&&i!=="multiDevice"&&f(),{id:ae(t.id,ni),...Jr(t),publicKey:Br(t.publicKey,Ir),userId:ae(t.userId,ni),credentialID:ze(t.credentialID,si),counter:n,deviceType:i,backedUp:o,...$r(t),createdAt:P(t.createdAt),...Gr(t)}}function fi(e,t,n){let i=pt(e);return (i.credentialID!==t||(n===void 0?i.name!==void 0&&i.name!==null:i.name!==n))&&f(),i}function gi(e){(!Array.isArray(e)||e.length>ri)&&f();let t=e.map(pt);return _e(t.map(n=>n.id)),_e(t.map(n=>n.credentialID)),t.length>1&&t.some(n=>n.userId!==t[0]?.userId)&&f(),t}function mi(e,t,n){let i=m(e),o=pt(i.passkey);return (o.id!==t||o.name!==n)&&f(),{passkey:o}}function hi(e){return m(e).status!==true&&f(),{status:true}}function Hr(e){let t=m(e);return {name:lt(t.name,ut),...D("id",Oi(t.id))}}function Kr(e){let t=m(e);return {id:ze(t.id,128,1,64),name:lt(t.name,ut),displayName:lt(t.displayName,ut)}}function qr(e){(!Array.isArray(e)||e.length===0||e.length>dt)&&f();let t=e.map(n=>{let i=m(n);return (i.type!=="public-key"||!Number.isSafeInteger(i.alg)||!Fr.has(i.alg))&&f(),{type:"public-key",alg:i.alg}});return Wr(t.map(n=>n.alg)),t}function yi(e){if(e===void 0)return;(!Array.isArray(e)||e.length>ri)&&f();let t=e.map(n=>{let i=m(n);return i.type!=="public-key"&&f(),{type:"public-key",id:ze(i.id,si),...D("transports",De(i.transports,ci))}});return _e(t.map(n=>n.id)),t}function Vr(e){if(e===void 0)return;let t=m(e);t.requireResidentKey!==void 0&&typeof t.requireResidentKey!="boolean"&&f();let n=ye(t.residentKey,Mr);return t.requireResidentKey!==void 0&&n!==void 0&&t.requireResidentKey!==(n==="required")&&f(),{...D("authenticatorAttachment",ye(t.authenticatorAttachment,Lr)),...D("residentKey",n),...D("requireResidentKey",t.requireResidentKey),...D("userVerification",ye(t.userVerification,ai))}}function bi(e){return e!==void 0&&(typeof e!="number"||!Number.isFinite(e)||e<0||e>vr)&&f(),e}function Ai(e){return e===void 0?void 0:q(e,Rr,Tr)}function De(e,t){if(e===void 0)return;(!Array.isArray(e)||e.length>dt)&&f();let n=e.map(i=>ft(i,t));return _e(n),n}function ye(e,t){if(e!==void 0)return ft(e,t)}function wi(e){return ze(e,Math.ceil(ti*4/3),Pr,ti)}function ze(e,t,n=1,i=Number.POSITIVE_INFINITY){let o=ae(e,t),r=o.length%4,l=jr(o.at(-1)??""),d=Math.floor(o.length*3/4);return (!Cr.test(o)||r===1||r===2&&(l&15)!==0||r===3&&(l&3)!==0||d<n||d>i)&&f(),o}function ae(e,t){let n=k(e);return (n.length===0||n.length>t)&&f(),n}function lt(e,t){let n=ae(e,t);return xr.test(n)&&f(),n}function Oi(e){if(e===void 0)return;let t=ae(e,253);return t!=="localhost"&&(t.endsWith(".")||!t.includes(".")||t.split(".").some(n=>!Dr.test(n)))&&f(),t}function Br(e,t){let n=ae(e,t),i=n.endsWith("=="),o=!i&&n.endsWith("="),r=n.at(i?-3:o?-2:-1)??"",l=Si(r);return (n.length%4!==0||!Er.test(n)||i&&(l&15)!==0||o&&(l&3)!==0)&&f(),n}function jr(e){return Si(e,true)}function Si(e,t=false){return (t?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").indexOf(e)}function Jr(e){let t=x(e,"name");return t===void 0?{}:(t!==null&&!ct(t)&&f(),{name:t})}function $r(e){let t=x(e,"transports");if(t==null||t==="")return t===void 0?{}:{transports:t};let n=t.split(",");return (n.length>dt||n.some(i=>!ci.has(i))||new Set(n).size!==n.length)&&f(),{transports:t}}function Gr(e){let t=x(e,"aaguid");return t==null?t===void 0?{}:{aaguid:null}:(_r.test(t)||f(),{aaguid:t})}function ft(e,t){let n=k(e);return t.has(n)||f(),n}function D(e,t){return t===void 0?{}:{[e]:t}}function _e(e){new Set(e).size!==e.length&&f();}function Wr(e){new Set(e).size!==e.length&&f();}function os(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 vi=new Map;function rs(e,t,n){let i=vi.get(n);if(!i){let o=new URLSearchParams(window.location.hash.slice(1)).get("authowl_code");if(!o)return;i=Promise.resolve().then(()=>(Ne(),Ue)).then(r=>r.completeCrossSiteSignIn(e,t,o)),vi.set(n,i);}return i}function Ci(e){return !le()||e.idToken||e.disableRedirect?"legacy":"first-party"}function ss(e,t=()=>{},n=us){let i=$e(e),o=e.session.tokens,r=le()?rs(i,e.session,e.decoded.projectId):void 0,l=os(i,r),d=an({http:l,probe:$e({...e,fetch:e.session.probe}),tokens:o,channelName:`authowl:${e.decoded.projectId}`});e.session.integration?.connect({authenticatedFetch:e.fetch,sessionStore:d.store,subscribeLifecycle:u=>o.subscribeLifecycle(u)});let a=()=>{d.notifyMutation(),t();},h=async()=>{await e.session.integration?.sessionEstablished(),a();},s=n(l,h),{post:c,mutation:p}=X(l,a),{mutation:y}=X(l,h),w=e.decoded.env==="test",S=u=>e.session.prepareSession({remember:u?.rememberMe!==false});return {sessionStore:d.store,getSession:d.getSession,account:pn(l,a),organization:En(l,a,()=>d.store.getSnapshot().data?.session.membership??null),privacy:xn(l),signIn:{email:async(u,g)=>(await S(u),y(c("/sign-in/email",u,g,st),b=>!("twoFactorRedirect"in b))),username:async(u,g)=>(await S(u),y(c("/sign-in/username",u,g,st),b=>!("twoFactorRedirect"in b))),social:async(u,g)=>{if(await S(),Ci(u)==="first-party"){let{beginCrossSiteSignIn:R}=await Promise.resolve().then(()=>(Ne(),Ue)),v=await R(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(v)return window.location.assign(v),{data:{redirect:true,url:v},error:null}}let b=await y(c("/sign-in/social",u,g,R=>Nn(R,w)),R=>"user"in R);return b.error!==null||b.data===null||"url"in b.data&&b.data.redirect&&!u.disableRedirect&&typeof window<"u"&&window.location.assign(b.data.url),b},sso:async(u,g)=>{if(Ci(u)==="first-party"){let{beginCrossSiteSignIn:R}=await Promise.resolve().then(()=>(Ne(),Ue)),v=await R(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(v)return window.location.assign(v),{data:{url:v,redirect:true},error:null}}let b=await c("/sign-in/sso",u,g,R=>Ln(R,w));return b.error!==null||b.data===null||typeof window<"u"&&window.location.assign(b.data.url),b},magicLink:(u,g)=>c("/sign-in/magic-link",u,g,Mn),emailOtp:async(u,g)=>(await S(),y(c("/sign-in/email-otp",u,g,zn))),passkey:async(u,g)=>(await S(),s.signIn(u,g))},signUp:{email:async(u,g)=>(await S(),y(c("/sign-up/email",u,g,Un),b=>b.sessionCreated))},emailOtp:{sendVerificationOtp:(u,g)=>c("/email-otp/send-verification-otp",u,g,Fn),verifyEmail:async(u,g)=>(await S(),y(c("/email-otp/verify-email",u,g,Bn)))},phoneOtp:{prepare:u=>c("/phone-otp/challenge",{},u,Kn),start:(u,g)=>c("/phone-otp/start",{...u,idempotencyKey:u.idempotencyKey??Z()},g,Hn),verify:async(u,g)=>(await S(),y(c("/phone-otp/verify",u,g,qn)))},requestPasswordReset:(u,g)=>c("/request-password-reset",u,g,at),resetPassword:(u,g)=>c("/reset-password",u,g,at),sendVerificationEmail:(u,g)=>c("/send-verification-email",u,g,Vn),passkey:{addPasskey:(u,g)=>s.add(u,g),listUserPasskeys:()=>l.request("/passkey/list-user-passkeys",{decode:gi}),updatePasskey:async(u,g)=>{let b=Ee(u.name);if(!b.valid||b.value===void 0)return xe();let R=b.value;return c("/passkey/update-passkey",{...u,name:R},g,v=>mi(v,u.id,R))},deletePasskey:(u,g)=>c("/passkey/delete-passkey",u,g,hi)},twoFactor:{enable:(u,g)=>c("/two-factor/enable",u,g,Jn),disable:(u,g)=>p(c("/two-factor/disable",u,g,$n),b=>b.status),verifyTotp:(u,g)=>y(c("/two-factor/verify-totp",u,g,ve)),verifyBackupCode:(u,g)=>y(c("/two-factor/verify-backup-code",u,g,ve)),sendOtp:(u={},g)=>c("/two-factor/send-otp",u,g,Gn),verifyOtp:(u,g)=>y(c("/two-factor/verify-otp",u,g,ve)),generateBackupCodes:(u,g)=>c("/two-factor/generate-backup-codes",u,g,Wn)},signOut:u=>p(l.request("/sign-out",{method:"POST",body:{},fetchOptions:u,decode:jn}).then(g=>(o.endSession(),e.session.integration?.sessionEnded().then(()=>g)??g)),g=>g.success)}}function ht(e,t=()=>{},n){let i=ss(e,t,n);return n?{...i,signIn:{email:i.signIn.email,username:i.signIn.username,social:Ei(i),magicLink:i.signIn.magicLink,emailOtp:i.signIn.emailOtp,passkey:i.signIn.passkey},passkey:{listUserPasskeys:i.passkey.listUserPasskeys,updatePasskey:i.passkey.updatePasskey,deletePasskey:i.passkey.deletePasskey,addPasskey:i.passkey.addPasskey}}:{...i,signIn:{email:i.signIn.email,username:i.signIn.username,social:Ei(i),magicLink:i.signIn.magicLink,emailOtp:i.signIn.emailOtp},passkey:{listUserPasskeys:i.passkey.listUserPasskeys,updatePasskey:i.passkey.updatePasskey,deletePasskey:i.passkey.deletePasskey}}}function Ei(e){return async(t,n)=>{if(!t?.idToken||typeof t.idToken.token!="string"||t.idToken.token==="")return as();let i=await e.signIn.social({...t,disableRedirect:true},n);return i.data!==null&&"url"in i.data?cs():i}}function as(){return Promise.resolve({data:null,error:{status:400,statusText:"BAD_REQUEST",code:"NATIVE_SOCIAL_ID_TOKEN_REQUIRED",message:"Native social sign-in requires a provider ID token."}})}function cs(){return Promise.resolve({data:null,error:{status:502,statusText:"BAD_GATEWAY",code:"INVALID_NATIVE_SOCIAL_RESPONSE",message:"The server returned a redirect for native ID-token sign-in."}})}function us(){return {signIn:()=>xi(),add:()=>xi()}}function xi(){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 ls(e,t,n){let i=new Map;return {async signIn(o={},r){let l=await e.request("/passkey/generate-authenticate-options");if(!l.data)return zi(l.error);let d;try{d=li(l.data);}catch{return Di()}let a;try{a=await n.authenticate({optionsJSON:d,useBrowserAutofill:o.autoFill});}catch(y){return Ui(n,y,"AUTH_CANCELLED","Passkey authentication was cancelled.")}if(!ds(a))return _i();let{clientExtensionResults:h,...s}=a,c=i.get(a.id);if(c)return c;let p=(async()=>{let y=await e.request("/passkey/verify-authentication",{method:"POST",body:{response:s},fetchOptions:r,decode:pi});return y.data&&await t(),y})();i.set(a.id,p);try{return await p}finally{i.get(a.id)===p&&i.delete(a.id);}},async add(o={},r){let l=Ee(o.name);if(!l.valid)return xe();let d=await e.request("/passkey/generate-register-options",{query:{name:l.value,authenticatorAttachment:o.authenticatorAttachment}});if(!d.data)return zi(d.error);let a;try{a=di(d.data);}catch{return Di()}let h;try{h=await n.register({optionsJSON:a});}catch(y){return Ui(n,y,"REGISTRATION_CANCELLED","Passkey registration was cancelled.")}if(!ps(h))return _i();let{clientExtensionResults:s,...c}=h,p=await e.request("/passkey/verify-registration",{method:"POST",body:{response:c,name:l.value},fetchOptions:r,decode:y=>fi(y,h.id,l.value)});return p.data&&t(),p}}}function Di(){return {data:null,error:{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned invalid WebAuthn options."}}}function _i(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_WEBAUTHN_RESPONSE",message:"The platform returned an invalid passkey response."}}}function Li(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 ds(e){if(!Li(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 ps(e){if(!Li(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.attestationObject=="string"}function zi(e){return {data:null,error:e??{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned no WebAuthn options."}}}function Ui(e,t,n,i){let o=gs(t,"page does not have focus"),r=e.errorCode?.(t),l=r!==void 0?r==="ERROR_CEREMONY_ABORTED":Ni(t)==="AbortError",d=n!=="AUTH_CANCELLED",a=fs(r,Ni(t),d);return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:o?"PASSKEY_PAGE_NOT_FOCUSED":l?n:r??"PASSKEY_BROWSER_ERROR",message:o?"Keep this page focused while completing the passkey prompt.":l?i:a}}}function fs(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 Ni(e){return e&&typeof e=="object"&&"name"in e&&typeof e.name=="string"?e.name:void 0}function gs(e,t){let n=t.toLowerCase(),i=new Set,o=e;for(;o&&typeof o=="object"&&!i.has(o);){if(i.add(o),"message"in o&&typeof o.message=="string"&&o.message.toLowerCase().includes(n))return true;o="cause"in o?o.cause:void 0;}return false}async function ms(e){let t=`${e.apiUrl}/api/projects/${e.decoded.projectId}/public-config`;return tn(await Re(e,t,{init:{method:"GET",credentials:"omit"},maxResponseBytes:256*1024,decode:n=>hs(n,e)}),"public-config")}function hs(e,t){let n=q(e),i=n.environmentId,o=n.environmentType,r=`${t.apiUrl}/api/projects/${t.decoded.projectId}/auth`;if(typeof n.applicationId!="string"||!yt(n.applicationId)||i!==t.decoded.projectId||o!=="development"&&o!=="production"||n.authBaseUrl!==r)throw _();let l=E(n.branding),d=E(n.legal);if(!ee(n.enabledMethods,64)||!ee(n.socialProviders,64)||!Ki(l,["appName","logoUrl","primaryColor"])||l.showAppName!==void 0&&typeof l.showAppName!="boolean"||l.alignment!==void 0&&l.alignment!=="left"&&l.alignment!=="center"&&l.alignment!=="right"||l.theme!==void 0&&l.theme!=="light"&&l.theme!=="dark"&&l.theme!=="system"||!Ki(d,["termsUrl","privacyUrl"])||!Number.isSafeInteger(d.version)||d.version<0||typeof d.required!="boolean")throw _();if(n.socialProviderClientIds!==void 0){let a=E(n.socialProviderClientIds);if(Object.keys(a).length>64||Object.values(a).some(h=>typeof h!="string"||h.length>2048))throw _()}if(!j(n,["requireEmailVerification","twoFactor","mfaRequired","accountDeletion","organizations","sso","badge"])||!Mi(n.turnstileSiteKey)||!Mi(n.authTurnstileSiteKey)||typeof n.locale!="string"||n.locale.length===0||n.locale.length>64||!Number.isSafeInteger(n.configVersion)||n.configVersion<0)throw _();if(n.jwtIssuer!==null){let a=E(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 _()}if(n.signUp!==void 0){let a=E(n.signUp).mode;if(typeof a!="string"||!["open","restricted","allowlist","waitlist"].includes(a))throw _()}if(n.authentication!==void 0&&ys(n.authentication),n.privacy!==void 0&&bs(n.privacy),n.emailVerification!==void 0){let a=E(n.emailVerification);if(!j(a,["required"])||a.method!=="link"&&a.method!=="code")throw _()}if(n.userModel!==void 0&&!j(E(n.userModel),["requireEmail","firstLastName","emailChange","accountDeletion"]))throw _();if(n.mfa!==void 0){let a=E(n.mfa);if(!j(a,["totp","required","backupCodes"])||a.emailOtpFallback!==void 0&&typeof a.emailOtpFallback!="boolean"||a.trustDevice!==void 0&&typeof a.trustDevice!="boolean"||(a.required===true||a.backupCodes===true)&&a.totp!==true)throw _()}if(n.captcha===void 0||n.captcha===null)n.captcha=typeof n.authTurnstileSiteKey=="string"&&n.authTurnstileSiteKey.length>0?{provider:"turnstile",siteKey:n.authTurnstileSiteKey}:null;else {let a=E(n.captcha);if(typeof a.provider!="string"||a.provider.length===0||a.provider.length>64||typeof a.siteKey!="string"||a.siteKey.length===0||a.siteKey.length>512)throw _();n.captcha={provider:a.provider,siteKey:a.siteKey};}if(n.privacy!==void 0&&n.privacy!==null){let a=E(n.privacy);a.availableRightTypes!==void 0&&(a.availableRightTypes=ws(a.availableRightTypes));}return n}function yt(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 _(){return new TypeError("public-config returned an invalid response")}function E(e){if(!e||typeof e!="object"||Array.isArray(e))throw _();return e}function Mi(e){return e===null||typeof e=="string"&&e.length<=4096}function ys(e){let t=E(e),n=E(t.email),i=E(t.password),o=i.minLength!==void 0||i.maxLength!==void 0;if(!j(n,["signUp"])||!ee(n.signIn,3)||n.signIn.some(r=>r!=="password"&&r!=="magic_link"&&r!=="email_otp")||!j(E(t.phone),["signUp","signIn"])||!j(i,["signUp","add"])||o&&(!Number.isSafeInteger(i.minLength)||!Number.isSafeInteger(i.maxLength)||i.minLength<1||i.maxLength>4096||i.minLength>i.maxLength)||!j(E(t.passkey),["signIn","add"])||!As(E(t.passkey).relyingPartyId)||!j(E(t.username),["collectOnSignUp","signIn"]))throw _()}function bs(e){let t=E(e);if(!Array.isArray(t.notices)||!Array.isArray(t.consentPurposes)||t.notices.length>64||t.consentPurposes.length>64)throw _();for(let n of t.notices){let i=E(n);if(Fi(i,"noticeId","noticeVersionId"),Le(i.title,512),Le(i.body,1e5),Hi(i.digest),!ee(i.activityCodes,128)||!ee(i.purposeCodes,128)||typeof i.effectiveFrom!="string"||!Number.isFinite(Date.parse(i.effectiveFrom)))throw _()}for(let n of t.consentPurposes){let i=E(n);if(Fi(i,"purposeId","purposeVersionId"),Le(i.title,512),Le(i.description,1e4),Hi(i.digest),!ee(i.activityCodes,128)||!ee(i.dataCategories,128))throw _()}}function Fi(e,t,n){if(typeof e[t]!="string"||!yt(e[t])||typeof e[n]!="string"||!yt(e[n])||typeof e.code!="string"||!/^[a-z][a-z0-9_]{0,63}$/.test(e.code)||!Number.isSafeInteger(e.version)||e.version<1)throw _()}function Le(e,t){let n=E(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 _()}function Hi(e){let t=E(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 _()}function As(e){return e==null||typeof e=="string"}function j(e,t){return t.every(n=>typeof e[n]=="boolean")}function Ki(e,t){return t.every(n=>e[n]===void 0||typeof e[n]=="string"&&e[n].length<=4096)}function ws(e){if(!Array.isArray(e)||e.length>64)return;let t=e.filter(n=>typeof n=="string"&&n.length<=128);return t.length===e.length?t:void 0}function ee(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 qi=["en","ar"];function Os(e){return e==="ar"?"rtl":"ltr"}function Ss(e){return typeof e=="string"&&qi.includes(e)}function ks(e,t,n,i=Z()){return {locale:t,correlationId:i,noticeVersionIds:e.notices.map(o=>o.noticeVersionId),consentDecisions:e.consentPurposes.flatMap(o=>{let r=e.notices.find(l=>l.purposeCodes.includes(o.code));return r?[{purposeCode:o.code,purposeVersionId:o.purposeVersionId,noticeVersionId:r.noticeVersionId,decision:n.has(o.code)?"granted":"refused",guardianRequired:false,guardianEvidenceId:null}]:[]})}}function Rs(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(l=>l==="password"||l==="magic_link"||l==="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}}function Ts(e,t){let n=`p_${e.toLowerCase().replace(/-/g,"")}`;return `${t?.secure?"__Secure-":""}${n}.session_token`}function Za(e,t){return ht(qe(e),t)}
2
+ exports.LOCALES=qi;exports.buildPrivacySignUpEvidence=ks;exports.createIdempotencyKey=Z;exports.createMembershipHas=tr;exports.createNativeAuthClient=ht;exports.createNativeClient=Za;exports.createPasskeyClient=ls;exports.decodePublishableKey=Fe;exports.directionFor=Os;exports.getPublicConfig=ms;exports.isLocale=Ss;exports.resolveConfig=qe;exports.resolveProjectCapabilities=Rs;exports.sessionCookieName=Ts;
package/dist/native.d.cts CHANGED
@@ -1,9 +1,9 @@
1
- import { b as AuthOwlClient, S as SocialIdTokenOptions, R as ResolvedAuthConfig, P as PasskeySignInOptions, A as ActionFetchOptions, a as AuthActionResult, c as PasskeyAuthData, d as AddPasskeyOptions, e as AuthPasskey, f as AuthConfig } from './config-ZhNp65dI.cjs';
2
- export { g as AuthClientError, h as AuthSession, i as AuthUser, C as CreatePrivacyRightsRequestOptions, D as DecodedPublishableKey, H as HasParams, O as Organization, j as OrganizationClient, k as OrganizationDetails, l as OrganizationMembership, m as PrivacyClient, n as PrivacyConsentPreference, o as PrivacyConsentState, p as PrivacyLocale, q as PrivacyRightState, r as PrivacyRightType, s as PrivacyRightsRequest, t as RecordPrivacyConsentOptions, u as SessionState, v as SessionStore, w as SetActiveOrganizationOptions, x as SocialAuthData, y as createMembershipHas, z as decodePublishableKey, B as resolveConfig } from './config-ZhNp65dI.cjs';
3
- import { c as createAuthHttpClient, A as AuthHttpClient } from './idempotency-CG0ZpMnW.cjs';
4
- export { P as ProjectCapabilities, a as createIdempotencyKey, r as resolveProjectCapabilities } from './idempotency-CG0ZpMnW.cjs';
1
+ import { b as AuthOwlClient, S as SocialIdTokenOptions, R as ResolvedAuthConfig, P as PasskeySignInOptions, A as ActionFetchOptions, a as AuthActionResult, c as PasskeyAuthData, d as AddPasskeyOptions, e as AuthPasskey, f as AuthConfig } from './config-Chtx47rL.cjs';
2
+ export { g as AuthClientError, h as AuthSession, i as AuthUser, C as CreatePrivacyRightsRequestOptions, D as DecodedPublishableKey, H as HasParams, O as Organization, j as OrganizationClient, k as OrganizationDetails, l as OrganizationMembership, m as PrivacyClient, n as PrivacyConsentPreference, o as PrivacyConsentState, p as PrivacyLocale, q as PrivacyRightState, r as PrivacyRightType, s as PrivacyRightsRequest, t as RecordPrivacyConsentOptions, u as SessionState, v as SessionStore, w as SetActiveOrganizationOptions, x as SocialAuthData, y as createMembershipHas, z as decodePublishableKey, B as resolveConfig } from './config-Chtx47rL.cjs';
3
+ import { c as createAuthHttpClient, A as AuthHttpClient } from './idempotency-rqL0wN3c.cjs';
4
+ export { P as ProjectCapabilities, a as createIdempotencyKey, r as resolveProjectCapabilities } from './idempotency-rqL0wN3c.cjs';
5
5
  import { startAuthentication, startRegistration } from '@simplewebauthn/browser';
6
- export { P as PublicConfig, g as getPublicConfig } from './public-config-DdTDwDF7.cjs';
6
+ export { P as PublicConfig, g as getPublicConfig } from './public-config-DwlH-HqZ.cjs';
7
7
  export { a as LOCALES, L as Locale, d as directionFor, i as isLocale } from './index-DgVPDEYx.cjs';
8
8
  export { buildPrivacySignUpEvidence } from './privacy.cjs';
9
9
  export { s as sessionCookieName } from './cookie-BqcfagTw.cjs';
package/dist/native.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import { b as AuthOwlClient, S as SocialIdTokenOptions, R as ResolvedAuthConfig, P as PasskeySignInOptions, A as ActionFetchOptions, a as AuthActionResult, c as PasskeyAuthData, d as AddPasskeyOptions, e as AuthPasskey, f as AuthConfig } from './config-ZhNp65dI.js';
2
- export { g as AuthClientError, h as AuthSession, i as AuthUser, C as CreatePrivacyRightsRequestOptions, D as DecodedPublishableKey, H as HasParams, O as Organization, j as OrganizationClient, k as OrganizationDetails, l as OrganizationMembership, m as PrivacyClient, n as PrivacyConsentPreference, o as PrivacyConsentState, p as PrivacyLocale, q as PrivacyRightState, r as PrivacyRightType, s as PrivacyRightsRequest, t as RecordPrivacyConsentOptions, u as SessionState, v as SessionStore, w as SetActiveOrganizationOptions, x as SocialAuthData, y as createMembershipHas, z as decodePublishableKey, B as resolveConfig } from './config-ZhNp65dI.js';
3
- import { c as createAuthHttpClient, A as AuthHttpClient } from './idempotency-BbNZaxT8.js';
4
- export { P as ProjectCapabilities, a as createIdempotencyKey, r as resolveProjectCapabilities } from './idempotency-BbNZaxT8.js';
1
+ import { b as AuthOwlClient, S as SocialIdTokenOptions, R as ResolvedAuthConfig, P as PasskeySignInOptions, A as ActionFetchOptions, a as AuthActionResult, c as PasskeyAuthData, d as AddPasskeyOptions, e as AuthPasskey, f as AuthConfig } from './config-Chtx47rL.js';
2
+ export { g as AuthClientError, h as AuthSession, i as AuthUser, C as CreatePrivacyRightsRequestOptions, D as DecodedPublishableKey, H as HasParams, O as Organization, j as OrganizationClient, k as OrganizationDetails, l as OrganizationMembership, m as PrivacyClient, n as PrivacyConsentPreference, o as PrivacyConsentState, p as PrivacyLocale, q as PrivacyRightState, r as PrivacyRightType, s as PrivacyRightsRequest, t as RecordPrivacyConsentOptions, u as SessionState, v as SessionStore, w as SetActiveOrganizationOptions, x as SocialAuthData, y as createMembershipHas, z as decodePublishableKey, B as resolveConfig } from './config-Chtx47rL.js';
3
+ import { c as createAuthHttpClient, A as AuthHttpClient } from './idempotency-Benjy1FL.js';
4
+ export { P as ProjectCapabilities, a as createIdempotencyKey, r as resolveProjectCapabilities } from './idempotency-Benjy1FL.js';
5
5
  import { startAuthentication, startRegistration } from '@simplewebauthn/browser';
6
- export { P as PublicConfig, g as getPublicConfig } from './public-config-BfuiC8Ph.js';
6
+ export { P as PublicConfig, g as getPublicConfig } from './public-config-B7Tth7Cs.js';
7
7
  export { a as LOCALES, L as Locale, d as directionFor, i as isLocale } from './index-DgVPDEYx.js';
8
8
  export { buildPrivacySignUpEvidence } from './privacy.js';
9
9
  export { s as sessionCookieName } from './cookie-BqcfagTw.js';
package/dist/native.js CHANGED
@@ -1 +1 @@
1
- import {l}from'./chunk-LBCOMERN.js';export{l as createNativeAuthClient,m as createPasskeyClient,n as getPublicConfig,a as resolveProjectCapabilities}from'./chunk-LBCOMERN.js';export{a as LOCALES,b as directionFor,c as isLocale}from'./chunk-M4QJVSXT.js';export{a as buildPrivacySignUpEvidence}from'./chunk-MW6RNUTR.js';export{a as createIdempotencyKey}from'./chunk-5NL5GJW6.js';import {o}from'./chunk-YL2FF2VS.js';export{G as createMembershipHas,a as decodePublishableKey,o as resolveConfig,b as sessionCookieName}from'./chunk-YL2FF2VS.js';import'./chunk-T5SH3ZZP.js';function P(i,o$1){return l(o(i),o$1)}export{P as createNativeClient};
1
+ import {n}from'./chunk-QC2AVTUB.js';export{n as createNativeAuthClient,o as createPasskeyClient,p as getPublicConfig,a as resolveProjectCapabilities}from'./chunk-QC2AVTUB.js';export{a as LOCALES,b as directionFor,c as isLocale}from'./chunk-M4QJVSXT.js';export{a as buildPrivacySignUpEvidence}from'./chunk-MW6RNUTR.js';export{a as createIdempotencyKey}from'./chunk-5NL5GJW6.js';import {o}from'./chunk-YL2FF2VS.js';export{G as createMembershipHas,a as decodePublishableKey,o as resolveConfig,b as sessionCookieName}from'./chunk-YL2FF2VS.js';import'./chunk-T5SH3ZZP.js';function P(i,o$1){return n(o(i),o$1)}export{P as createNativeClient};
@@ -1,5 +1,5 @@
1
- import { P as PublicConfig } from './public-config-DdTDwDF7.cjs';
2
- import { p as PrivacyLocale } from './config-ZhNp65dI.cjs';
1
+ import { P as PublicConfig } from './public-config-DwlH-HqZ.cjs';
2
+ import { p as PrivacyLocale } from './config-Chtx47rL.cjs';
3
3
 
4
4
  type PrivacyPublicConfig = NonNullable<PublicConfig['privacy']>;
5
5
  /**
package/dist/privacy.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { P as PublicConfig } from './public-config-BfuiC8Ph.js';
2
- import { p as PrivacyLocale } from './config-ZhNp65dI.js';
1
+ import { P as PublicConfig } from './public-config-B7Tth7Cs.js';
2
+ import { p as PrivacyLocale } from './config-Chtx47rL.js';
3
3
 
4
4
  type PrivacyPublicConfig = NonNullable<PublicConfig['privacy']>;
5
5
  /**
@@ -1,4 +1,4 @@
1
- import { R as ResolvedAuthConfig } from './config-ZhNp65dI.js';
1
+ import { R as ResolvedAuthConfig } from './config-Chtx47rL.js';
2
2
 
3
3
  type EnvironmentType = 'development' | 'production';
4
4
  /**
@@ -161,6 +161,17 @@ type PublicConfig = {
161
161
  purposeCodes: string[];
162
162
  effectiveFrom: string;
163
163
  }>;
164
+ /**
165
+ * Which data rights this project can actually accept.
166
+ *
167
+ * ABSENT MEANS UNKNOWN, NOT NONE. A server released before this field
168
+ * simply does not send it, and treating that as "offer nothing" would
169
+ * blank the rights section for every project on an older deployment. The
170
+ * server stays the enforcement boundary either way.
171
+ * Unknown future wire values may be present and are ignored by consumers
172
+ * that do not yet know how to render them.
173
+ */
174
+ availableRightTypes?: string[];
164
175
  consentPurposes: Array<{
165
176
  purposeId: string;
166
177
  purposeVersionId: string;
@@ -1,4 +1,4 @@
1
- import { R as ResolvedAuthConfig } from './config-ZhNp65dI.cjs';
1
+ import { R as ResolvedAuthConfig } from './config-Chtx47rL.cjs';
2
2
 
3
3
  type EnvironmentType = 'development' | 'production';
4
4
  /**
@@ -161,6 +161,17 @@ type PublicConfig = {
161
161
  purposeCodes: string[];
162
162
  effectiveFrom: string;
163
163
  }>;
164
+ /**
165
+ * Which data rights this project can actually accept.
166
+ *
167
+ * ABSENT MEANS UNKNOWN, NOT NONE. A server released before this field
168
+ * simply does not send it, and treating that as "offer nothing" would
169
+ * blank the rights section for every project on an older deployment. The
170
+ * server stays the enforcement boundary either way.
171
+ * Unknown future wire values may be present and are ignored by consumers
172
+ * that do not yet know how to render them.
173
+ */
174
+ availableRightTypes?: string[];
164
175
  consentPurposes: Array<{
165
176
  purposeId: string;
166
177
  purposeVersionId: string;
package/dist/server.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { l as OrganizationMembership, bg as TransportErrorKind, H as HasParams } from './config-ZhNp65dI.cjs';
2
- export { f as AuthConfig, R as ResolvedAuthConfig, b1 as ResolvedAuthTarget, bO as resolveAuthTarget, B as resolveConfig } from './config-ZhNp65dI.cjs';
1
+ import { l as OrganizationMembership, bh as TransportErrorKind, H as HasParams } from './config-Chtx47rL.cjs';
2
+ export { f as AuthConfig, R as ResolvedAuthConfig, b2 as ResolvedAuthTarget, bQ as resolveAuthTarget, B as resolveConfig } from './config-Chtx47rL.cjs';
3
3
  export { s as sessionCookieName } from './cookie-BqcfagTw.cjs';
4
4
  export { a as SESSION_TRANSPORT_BEARER, b as SESSION_TRANSPORT_HEADER } from './session-transport-contract-HDPYRum8.cjs';
5
5
 
package/dist/server.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { l as OrganizationMembership, bg as TransportErrorKind, H as HasParams } from './config-ZhNp65dI.js';
2
- export { f as AuthConfig, R as ResolvedAuthConfig, b1 as ResolvedAuthTarget, bO as resolveAuthTarget, B as resolveConfig } from './config-ZhNp65dI.js';
1
+ import { l as OrganizationMembership, bh as TransportErrorKind, H as HasParams } from './config-Chtx47rL.js';
2
+ export { f as AuthConfig, R as ResolvedAuthConfig, b2 as ResolvedAuthTarget, bQ as resolveAuthTarget, B as resolveConfig } from './config-Chtx47rL.js';
3
3
  export { s as sessionCookieName } from './cookie-BqcfagTw.js';
4
4
  export { a as SESSION_TRANSPORT_BEARER, b as SESSION_TRANSPORT_HEADER } from './session-transport-contract-HDPYRum8.js';
5
5
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@authowl/core",
3
- "version": "0.24.0",
3
+ "version": "0.24.1",
4
4
  "description": "Framework-agnostic client for AuthOwl, the multi-tenant auth SaaS.",
5
5
  "license": "MIT",
6
6
  "publishConfig": {