@authowl/core 0.15.6 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-5REZDJ26.js +2 -0
- package/dist/chunk-QQA645UM.js +1 -0
- package/dist/{client-CmEFSonw.d.ts → client-BebgV6Rp.d.cts} +10 -3
- package/dist/{client-BMcV537r.d.cts → client-FwJ8dBsF.d.ts} +10 -3
- package/dist/index.cjs +3 -3
- package/dist/index.d.cts +41 -4
- package/dist/index.d.ts +41 -4
- package/dist/index.js +3 -3
- package/dist/messages.cjs +1 -1
- package/dist/messages.d.cts +11 -0
- package/dist/messages.d.ts +11 -0
- package/dist/messages.js +1 -1
- package/dist/native.cjs +2 -2
- package/dist/native.d.cts +4 -4
- package/dist/native.d.ts +4 -4
- package/dist/native.js +1 -1
- package/dist/{organization-membership-CaaUep5j.d.cts → organization-membership-B05mzhtA.d.cts} +21 -2
- package/dist/{organization-membership-CaaUep5j.d.ts → organization-membership-B05mzhtA.d.ts} +21 -2
- package/dist/server.cjs +2 -2
- package/dist/server.d.cts +2 -2
- package/dist/server.d.ts +2 -2
- package/dist/server.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-6D4A36HU.js +0 -2
- package/dist/chunk-RJSDI5ZI.js +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var le=/^(pk_(live|test))_([0-9a-f-]{36})_([A-Za-z0-9]{20,})$/i,de=/^sk_/i;function q(e){if(typeof e!="string"||e.length===0)throw new Error("publishableKey is required");if(de.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=le.exec(e);if(!t)throw new Error("publishableKey is malformed; expected pk_(live|test)_<uuid>_<base62>");return {prefix:t[1].toLowerCase(),env:t[2].toLowerCase(),projectId:t[3].toLowerCase()}}function $e(e,t){let n=`p_${e.toLowerCase().replace(/-/g,"")}`;return `${t?.secure?"__Secure-":""}${n}.session_token`}function O(e,t){try{return e?.getItem(t)??null}catch{return null}}function A(e,t,n){try{n===null?e?.removeItem(t):e?.setItem(t,n);}catch{}}function _(){try{return globalThis.localStorage}catch{return}}function x(){try{return globalThis.sessionStorage}catch{return}}var pe="authowl.session-challenge",fe=e=>`${pe}.${e}`,he="set-auth-challenge",D="x-authowl-challenge";function Ge(e){let t=e.get(D);return H(t)?$(t).some(([n,r])=>n.endsWith(".dont_remember")&&r.length>0):false}var Ye="INVALID_TWO_FACTOR_COOKIE",be=2048,H=e=>e!==null&&e.length<=be,J=/^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/;function $(e){let t=[];for(let n of e.split(";")){let r=n.trimStart(),o=r.indexOf("=");o<=0||t.push([r.slice(0,o).trimEnd(),r.slice(o+1)]);}return t}function z(e){let t=fe(e),n=new Map;function r(){return n.size===0?null:[...n].map(([s,a])=>`${s}=${a}`).join("; ")}function o(){let s=r();A(x(),t,H(s)?s:null);}function l(s){for(let[a,c]of $(s))J.test(a)&&(c===""?n.delete(a):J.test(c)&&n.set(a,c));}let u=O(x(),t);return H(u)&&l(u),{presentOn(s){let a=r();s.delete(D),H(a)&&s.set(D,a);},observe(s){let a=s.get(he);H(a)&&(l(a),o());},clear(){n.clear(),o();}}}var M="set-auth-token",W="x-authowl-session-transport",G="bearer";var j=/^http:\/\/(?:(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*localhost|127\.0\.0\.1|\[::1\])(?::\d+)?(?:\/|$)/i;function m(e,t){throw new Error(`${e}: ${t}`)}function ge(e){return /^https?:\/\/[^/?#]*(\/[^?#]*)?$/i.exec(e)?.[1]??""}function Y(e,{label:t,allowHttpLoopback:n}){(typeof e!="string"||e.length===0)&&m(t,"required"),e!==e.trim()&&m(t,"surrounding whitespace"),(e.includes("?")||e.includes("#"))&&m(t,"query or fragment forbidden"),(e.includes("\\")||/%[0-9a-f]{2}/i.test(e))&&m(t,"path must be unencoded");let r;try{r=new URL(e);}catch{m(t,"absolute URL required");}return (r.username||r.password)&&m(t,"credentials forbidden"),r.protocol!=="https:"&&r.protocol!=="http:"&&m(t,"HTTPS required"),r.protocol==="http:"&&(!n||!j.test(e))&&m(t,"HTTPS required except exact loopback"),r}function X(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 r=n.toString();if(n.protocol!=="https:"&&!(n.protocol==="http:"&&t.allowHttpLoopback&&j.test(r)))throw new TypeError("Transport URL must use HTTPS except on approved loopback.");return n}function Q(e,t,n){let r=ge(e);(r.includes("//")||r.split("/").some(o=>o==="."||o==="..")||r!==""&&r!==t.pathname)&&m(n,"path traversal or duplicate separator");}function Z(e,t){(typeof e!="string"||!/^https?:\/\/[^/?#@\\\s]+\/?$/i.test(e))&&m("apiUrl","origin required");let n;try{n=new URL(e);}catch{m("apiUrl","origin required");}return n.protocol==="http:"&&(!t.allowHttpLoopback||!j.test(e))&&m("apiUrl","HTTPS required except exact loopback"),n.origin}function Ze(e,t,n={allowHttpLoopback:false}){let r=Y(e,{label:"issuer",allowHttpLoopback:n.allowHttpLoopback}),o=Y(t,{label:"jwksUri",allowHttpLoopback:n.allowHttpLoopback});return Q(e,r,"issuer"),Q(t,o,"jwksUri"),r.pathname!=="/"&&r.pathname.endsWith("/")&&m("issuer","trailing slash forbidden"),{issuer:r.toString().replace(/\/$/,""),jwksUri:o.toString()}}var me="authowl.session-token",ye="authowl.cookie-transport",te="ok",ne="bearer",we=e=>`${me}.${e}`,Re=e=>`${ye}.${e}`;function Te(e){return e===te?"cookies":e===ne?"bearer":"unknown"}function ke(e){return e==="cookies"?te:e==="bearer"?ne:null}function Se(e){let t=we(e),n=Re(e),r=z(e),o=null,l=false,u=null,s=Te(O(_(),n)),a=()=>s==="unknown",c=0,d=null,w=false;function b(){let i=O(x(),t);if(i!==null)return l=true,i;let g=O(_(),t);return g!==null?(l=false,g):null}o=b(),o!==null&&a()&&(w=true);function E(){if(!(!w||!d)){w=false;try{d();}catch{}}}function R(){let i=s==="bearer"?o:null,[g,K]=l?[x(),_()]:[_(),x()];A(K,t,null),A(g,t,i);}function L(i){i!==null&&u!==null&&(l=u,u=null),o=i,R(),i!==null&&a()&&(w=true,E());}function p(i){s=i,A(_(),n,ke(i));}function T(){p("unknown"),w=false;}function k(){return o===null&&(o=b()),o}function P(){let i=b();return i!==null&&(o=i),o}function C(i){P()===i&&R();}function U(){c+=1,u=null,l=false,L(null),r.clear(),T();}let v=()=>s!=="cookies";return {hasToken:()=>k()!==null,declareOn(i){if(i.has("authorization"))return false;let g=k();return !g&&!v()?false:(g&&i.set("authorization",`Bearer ${g}`),i.set(W,G),r.presentOn(i),true)},wantsToken:v,needsProbe:a,observe(i){let g=i.get(M);g&&L(g),r.observe(i);},dropChallenge:r.clear,measureWith(i){d=i,E();},beginRead(){let i=k(),g=c;return {carriedToken:i!==null,endIfDead(){i!==null&&P()===i&&c===g&&U();},recordCookieVerdict(K){if(c===g&&a()){if(p(K?"cookies":"bearer"),K){L(null);return}C(i);}}}},beginSession({remember:i}){c+=1,u=!i,r.clear(),T();},endSession:U}}var ee=new Map;function re(e){let t=ee.get(e);if(t)return t;let n=Se(e);return ee.set(e,n),n}function Ee(e,t){return t?.headers?new Headers(t.headers):typeof e=="object"&&e!==null&&"headers"in e?new Headers(e.headers):new Headers}function oe(e,t){let n=re(e),r=(u,s)=>(t??globalThis.fetch)(u,s);return {fetch:async(u,s)=>{if(s?.credentials==="omit"||!n.wantsToken())return r(u,s);let a=Ee(u,s),c=n.declareOn(a),d=await r(u,{...s,headers:a});return c&&n.observe(d.headers),d},probe:r,tokens:n}}function xe(e){if(!e||typeof e!="object")throw new Error("AuthConfig is required");let t=q(e.publishableKey),n=Z(e.apiUrl,{allowHttpLoopback:t.env==="test"});return {publishableKey:e.publishableKey,apiUrl:n,decoded:t,projectBaseURL:`${n}/api/projects/${t.projectId}/auth`}}function lt(e){let t=xe(e),{fetch:n,...r}=oe(t.decoded.projectId,e.fetch);return {...e,...t,fetch:n,session:r}}var Oe=1e4,Ae=1024*1024,N=class extends Error{kind;requestId;constructor(t,n){super(Ke(t)),this.name="TransportError",this.kind=t,this.requestId=n;}},ae=new WeakSet;function f(e,t){let n=new N(e,t);return ae.add(n),n}async function ft({fetchImpl:e,url:t,init:n={},timeoutMs:r=Oe,maxResponseBytes:o=Ae,allowHttpLoopback:l=false,decode:u}){ie(r,"timeoutMs"),ie(o,"maxResponseBytes");let s=X(t,{allowHttpLoopback:l}),a=n.signal,c=new AbortController,d=null,w,b=new Promise(p=>{w=p;}),E=p=>{d===null&&(d=p,w({type:"abort",kind:p}),c.abort());},R=()=>E("aborted");a?.addEventListener("abort",R,{once:true});let L=setTimeout(()=>E("timeout"),r);a?.aborted&&R();try{if(d!==null)throw f(d);let p;try{p=await Promise.race([e(s.toString(),{...n,redirect:"error",signal:c.signal}).then(v=>({type:"response",response:v})),b]);}catch{throw f(d??"network")}if(p.type==="abort")throw f(p.kind);if(!_e(p.response))throw f("invalid_response");let T=p.response,k=ve(T.headers),P=await Le(T,o,b,()=>d,k),C=Pe(T,P,k),U;try{U=T.ok&&u?u(C,Object.freeze({status:T.status})):C;}catch{throw f("invalid_response",k)}return {response:T,data:U,...k===void 0?{}:{requestId:k}}}catch(p){throw p instanceof N&&ae.has(p)?p:f(d??"network")}finally{clearTimeout(L),a?.removeEventListener("abort",R);}}function _e(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 Le(e,t,n,r,o){let l=e.headers.get("content-length");if(l!==null){if(!/^\d+$/.test(l))throw se(e.body),f("invalid_response",o);if(Number(l)>t)throw se(e.body),f("response_too_large",o)}if(!e.body)return "";let u;try{u=e.body.getReader();}catch{throw f("network",o)}let s=[],a=0,c=null;try{for(;;){let b;try{b=await Promise.race([u.read(),n]);}catch{c=f(r()??"network",o);break}if(Ue(b)){c=f(b.kind,o);break}let{done:E,value:R}=b;if(E)break;if(R.byteLength!==0){if(a+=R.byteLength,a>t){c=f("response_too_large",o);break}s.push(R);}}}finally{c&&He(u);try{u.releaseLock();}catch{}}if(c)throw c;let d=new Uint8Array(a),w=0;for(let b of s)d.set(b,w),w+=b.byteLength;try{return new TextDecoder("utf-8",{fatal:!0}).decode(d)}catch{throw f("invalid_response",o)}}function Ue(e){return "type"in e&&e.type==="abort"}function se(e){if(e)try{e.cancel().catch(()=>{});}catch{}}function He(e){try{e.cancel().catch(()=>{});}catch{}}function Pe(e,t,n){if(e.status===204||e.status===205)return null;let r=Ce(e.headers.get("content-type"));if(!e.ok&&(!r||t.length===0))return null;if(!r||t.length===0)throw f("invalid_response",n);try{return JSON.parse(t)}catch{if(!e.ok)return null;throw f("invalid_response",n)}}function Ce(e){if(e===null)return false;let t=e.split(";",1)[0]?.trim().toLowerCase();return t==="application/json"||t?.endsWith("+json")===true}function ve(e){let t=e.get("x-request-id")?.trim();if(!(!t||t.length>256||!/^[A-Za-z0-9._:-]+$/.test(t)))return t}function ie(e,t){if(!Number.isInteger(e)||e<=0)throw new TypeError(`${t} must be a positive integer.`)}function Ke(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."}}function Ne(e,t){return !e||!t?false:e.permissions.includes(t)}function Ie(e,t){return !e||!t?false:e.teams?.includes(t)??false}function De(e,t){return e?e.roles===void 0?e.role===t:e.roles.includes(t):false}function je(e,t){if(!e)return false;let{role:n,permission:r,teamId:o}=t;return !(n===void 0&&r===void 0&&o===void 0||n!==void 0&&!De(e,n)||r!==void 0&&!e.permissions.includes(r)||o!==void 0&&!Ie(e,o))}function bt(e){return {has:t=>je(e,t),hasPermission:t=>Ne(e,t.permission)}}var Be=new Set(["__proto__","constructor","prototype"]);function F(e){(!e||typeof e!="object"||Array.isArray(e))&&h();let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null&&h(),e}function I(e){return typeof e!="string"&&h(),e}function Ve(e){return typeof e!="boolean"&&h(),e}function B(e){return (!(e instanceof Date)||Number.isNaN(e.getTime()))&&h(),e}function ue(e){return (!Array.isArray(e)||!e.every(t=>typeof t=="string"))&&h(),[...e]}function S(e,t){let n=e[t];return n==null||typeof n=="string"?n:h()}function ce(e,t){let n=e[t];return n==null||typeof n=="boolean"?n:h()}function mt(e){let t=F(e),n=t.email;return n!==null&&typeof n!="string"&&h(),{id:I(t.id),email:n,emailVerified:Ve(t.emailVerified),createdAt:B(t.createdAt),updatedAt:B(t.updatedAt),...y("phoneNumber",S(t,"phoneNumber")),...y("username",S(t,"username")),...y("displayUsername",S(t,"displayUsername")),...y("firstName",S(t,"firstName")),...y("lastName",S(t,"lastName")),...y("name",S(t,"name")),...y("image",S(t,"image")),...y("twoFactorEnabled",ce(t,"twoFactorEnabled"))}}function yt(e){let t=F(e),n=t.membership;return {id:I(t.id),userId:I(t.userId),expiresAt:B(t.expiresAt),...y("activeOrganizationId",S(t,"activeOrganizationId")),...y("activeTeamId",S(t,"activeTeamId")),...y("membership",n==null?n:qe(n)),...y("pendingMfaEnrollment",ce(t,"pendingMfaEnrollment"))}}function h(){throw new TypeError("AuthOwl response does not match its runtime contract.")}function wt(e,t=20,n=1e4){return (!e||typeof e!="object"||Array.isArray(e))&&h(),Fe(e,t,n)}function Fe(e,t=20,n=1e4){return V(e,0,{nodes:0},t,n)}function qe(e){let t=F(e);return {role:I(t.role),permissions:ue(t.permissions),...t.teams===void 0?{}:{teams:ue(t.teams)}}}function V(e,t,n,r,o){if(n.nodes+=1,(t>r||n.nodes>o)&&h(),e===null||typeof e=="string"||typeof e=="boolean")return e;if(typeof e=="number")return Number.isFinite(e)||h(),e;if(Array.isArray(e))return e.map(s=>V(s,t+1,n,r,o));(!e||typeof e!="object")&&h();let l=Object.getPrototypeOf(e);l!==Object.prototype&&l!==null&&h();let u={};for(let[s,a]of Object.entries(e))Be.has(s)&&h(),u[s]=V(a,t+1,n,r,o);return u}function y(e,t){return t===void 0?{}:{[e]:t}}
|
|
2
|
+
export{Fe as A,Ne as B,Ie as C,De as D,je as E,bt as F,q as a,$e as b,X as c,Ze as d,O as e,A as f,_ as g,Ge as h,Ye as i,M as j,W as k,G as l,xe as m,lt as n,N as o,ft as p,F as q,I as r,Ve as s,B as t,ue as u,S as v,mt as w,yt as x,h as y,wt as z};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {p,o,i,z,s,q as q$1,y,r,w,B,E,x as x$1,t,A,v,u}from'./chunk-5REZDJ26.js';import {a}from'./chunk-T5SH3ZZP.js';function Di(e){let t=e?.enabledMethods??["password"],n=t.includes("password"),i=t.includes("passkey"),o=e?.authentication,a=e?.mfa;return {emailSignUp:o?.email.signUp??t.some(c=>c==="password"||c==="magic_link"||c==="email_otp"),passwordSignUp:o?.password.signUp??n,phoneSignUp:o?.phone.signUp??t.includes("phone_otp"),passwordSignIn:o?.email.signIn.includes("password")??n,passwordMinLength:o?.password.minLength??8,passwordMaxLength:o?.password.maxLength??128,magicLinkSignIn:o?.email.signIn.includes("magic_link")??t.includes("magic_link"),emailOtpSignIn:o?.email.signIn.includes("email_otp")??t.includes("email_otp"),phoneSignIn:o?.phone.signIn??t.includes("phone_otp"),usernameSignIn:o?.username.signIn??false,collectUsername:o?.username.collectOnSignUp??false,passkeySignIn:o?.passkey.signIn??i,passkeyAdd:o?.passkey.add??i,firstLastName:e?.userModel?.firstLastName??false,emailChange:e===null?false:e.userModel?.emailChange??true,accountDeletion:e?.userModel?.accountDeletion??e?.accountDeletion??false,emailVerificationRequired:e?.emailVerification?.required??e?.requireEmailVerification??false,emailVerificationMethod:e?.emailVerification?.method??"link",totp:a?.totp??e?.twoFactor??false,mfaRequired:a?.required??e?.mfaRequired??false,backupCodes:a?.backupCodes??e?.twoFactor??false,legacyNameField:e?.authentication===void 0}}var se=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 X(e,t,n={}){let i=new Headers(n.init?.headers);return i.set("x-publishable-key",e.publishableKey),p({fetchImpl:e.fetch,url:t,init:{...n.init,headers:i},allowHttpLoopback:e.decoded.env==="test",...n.timeoutMs===void 0?{}:{timeoutMs:n.timeoutMs},...n.maxResponseBytes===void 0?{}:{maxResponseBytes:n.maxResponseBytes},...n.decode===void 0?{}:{decode:n.decode}})}function Ee(e,t){if(!e.response.ok)throw new se(t,e.response,e.requestId);return e.data}var dn="x-authowl-turnstile-token",ln=1e4,pn=32,gn=2e4;function L(e,t){return {post:(n,i,o,a)=>e.request(n,{method:"POST",body:i,fetchOptions:o,decode:a}),mutation:async(n,i)=>{let o=await n;return o.error===null&&(i===void 0||o.data!==null&&i(o.data))&&t(),o}}}function le(e,t=e.projectBaseURL){return {async request(n,i$1={}){let o$1=hn(t,n,i$1.query),a=i$1.method??(i$1.body===void 0?"GET":"POST"),c=new Headers(i$1.fetchOptions?.headers);i$1.fetchOptions?.authChallengeToken&&c.set(dn,i$1.fetchOptions.authChallengeToken),i$1.body!==void 0&&c.set("content-type","application/json");let p={method:a,headers:c,credentials:i$1.credentials??"include",...i$1.body===void 0?{}:{body:JSON.stringify(i$1.body)}},r=Object.freeze({method:a,path:n});await i$1.fetchOptions?.onRequest?.(r);let l=mn(a,i$1.fetchOptions),u;try{u=await fn(e,o$1,{...p,signal:i$1.fetchOptions?.signal},l);}catch(m){let I=ze(m);return await i$1.fetchOptions?.onError?.(ue(r,I,On(m))),{data:null,error:I}}let{response:h,requestId:O}=u,A=kn(n,u.data),s=A;if(h.ok)try{s=de(A),i$1.decode&&(s=i$1.decode(s));}catch{let m=ze(new o("invalid_response",O));return await i$1.fetchOptions?.onError?.(ue(r,m,"invalid_response")),{data:null,error:m}}let g=Object.freeze({...r,status:h.status,...O===void 0?{}:{requestId:O}});if(await i$1.fetchOptions?.onResponse?.(g),!h.ok){let m=An(h,A,O);return m.code===i&&e.session.tokens.dropChallenge(),await i$1.fetchOptions?.onError?.(ue(r,m,"api")),{data:null,error:m}}return await i$1.fetchOptions?.onSuccess?.(g),{data:s,error:null}}}}async function fn(e,t,n,i){let o$1=Date.now()+ln;for(let a=0;a<i;a+=1){let c=o$1-Date.now();if(c<=0)throw new o("timeout");try{let p=await X(e,t,{init:n,timeoutMs:Math.max(1,Math.ceil(c))});if(p.response.status<500||a===i-1)return p}catch(p){if(a===i-1||!(p instanceof o)||p.kind!=="network")throw p}await bn(50*2**a,n.signal,o$1);}throw new o("network")}function mn(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 hn(e,t,n){let i=new URL(`${e}${t.startsWith("/")?t:`/${t}`}`);for(let[o,a]of Object.entries(n??{}))a!==void 0&&i.searchParams.set(o,String(a));return i.toString()}function An(e,t,n){let i=K(t)?t:{},o=yn(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 yn(e,t){let n=(typeof e.retryAfterSeconds=="number"&&Number.isFinite(e.retryAfterSeconds)?e.retryAfterSeconds:void 0)??xe(t.get("retry-after"))??xe(t.get("x-retry-after"));if(n!==void 0)return Math.min(Math.max(Math.trunc(n),1),86400)}function xe(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 ze(e){let t=e instanceof o?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 o&&e.requestId?{requestId:e.requestId}:{}}}function ue(e,t,n){return Object.freeze({...e,status:t.status??0,...t.requestId===void 0?{}:{requestId:t.requestId},failure:n})}function On(e){return e instanceof o?e.kind:"network"}function bn(e,t,n){return new Promise((i,o$1)=>{if(t?.aborted){o$1(new o("aborted"));return}let a=n-Date.now();if(a<=0){o$1(new o("timeout"));return}let c=Math.min(e,a),p=()=>{clearTimeout(r),o$1(new o("aborted"));},r=setTimeout(()=>{t?.removeEventListener("abort",p),Date.now()>=n?o$1(new o("timeout")):i();},c);t?.addEventListener("abort",p,{once:true}),t?.aborted&&p();})}function de(e,t="",n=0,i={nodes:0}){if(i.nodes+=1,n>pn||i.nodes>gn)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=>de(o,"",n+1,i)):K(e)?Object.fromEntries(Object.entries(e).map(([o,a])=>[o,wn(o)?a:de(a,o,n+1,i)])):e}function wn(e){return e==="metadata"||e==="public_metadata"||e==="unsafe_metadata"||e==="private_metadata"||e==="publicMetadata"||e==="unsafeMetadata"||e==="privateMetadata"}function kn(e,t){if(e==="/list-sessions"&&Array.isArray(t))return t.map(o=>K(o)?ce(o):o);if(!K(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-")?ce(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")&&K(i.session)&&(i={...i,session:ce(i.session)}),i}function ce(e){if(!Object.hasOwn(e,"token"))return e;let t={...e};return delete t.token,t}function K(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}function Ne(){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)}`}function Ue({http:e,probe:t,tokens:n,channelName:i}){let o=new Set,a=null,c=null,p=null,r=null,l=null,u,h=y=>{s(y);};u={data:null,isPending:true,isRefetching:false,error:null,refetch:h};function O(y){u=y;for(let S of o)S();}async function A(y){return e.request("/get-session",{query:y?.query,decode:pe})}function s(y){if(y?.query?.disableCookieCache===true)return g(y);if(r)return r;let S=g(y).finally(()=>{r===S&&(r=null);});return r=S,S}async function g(y){p?.abort();let S=new AbortController;p=S,O({...u,isPending:u.data===null&&u.error===null,isRefetching:u.data!==null});let B=n.beginRead(),G=await e.request("/get-session",{query:y?.query,fetchOptions:{signal:S.signal},decode:pe});if(p===S&&(p=null,O({data:G.data,error:G.error,isPending:false,isRefetching:false,refetch:h}),G.error===null)){if(G.data===null){B.endIfDead();return}await m(B);}}async function m(y){if(n.needsProbe()){if(!y.carriedToken){y.recordCookieVerdict(true);return}return l||I(y)}}function I(y){let S=t.request("/get-session",{query:{disableCookieCache:true},decode:pe}).then(B=>{l===S&&B.error===null&&y.recordCookieVerdict(B.data!==null);}).finally(()=>{l===S&&(l=null);});return l=S,S}function v(){a?.postMessage({type:"session-changed"});}function un(){if(typeof window>"u"||c)return;let y=()=>{s();},S=()=>{document.visibilityState==="visible"&&s();};window.addEventListener("focus",y),document.addEventListener("visibilitychange",S),typeof BroadcastChannel<"u"&&(a=new BroadcastChannel(i),a.addEventListener("message",y)),c=()=>{window.removeEventListener("focus",y),document.removeEventListener("visibilitychange",S),a?.close(),a=null,c=null;};}function cn(y){return o.add(y),o.size===1&&(un(),s()),()=>{if(o.delete(y),o.size===0){let S=p;p=null,r=null,S?.abort(),c?.();}}}return n.measureWith(()=>{n.needsProbe()&&I(n.beginRead());}),{store:{subscribe:cn,getSnapshot:()=>u},getSession:A,notifyMutation(){v(),l&&l.catch(()=>{}).then(()=>{!n.needsProbe()&&n.hasToken()&&v();}),o.size>0&&s({query:{disableCookieCache:true}});}}}function pe(e){if(e===null)return null;let t=q$1(e);return (t.session===void 0||t.user===void 0)&&y(),{session:x$1(t.session),user:w(t.user)}}async function _e(e,t){return e.request("/user/metadata",{fetchOptions:t,decode:Le})}async function Me(e,t,n){return e.request("/user/metadata",{method:"PATCH",body:{expected_version:t.expectedVersion,unsafe_metadata:t.unsafeMetadata},fetchOptions:n,decode:Le})}function Le(e){let t=q$1(e),n=z(t.public_metadata),i=z(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 qe(e,t){let{post:n,mutation:i}=L(e,t);return {getMetadata:o=>_e(e,o),updateUnsafeMetadata:(o,a)=>Me(e,o,a),updateProfile:(o,a)=>i(n("/update-user",o,a,j)),changeEmail:(o,a)=>i(n("/change-email",o,a,j)),changePassword:(o,a)=>i(n("/change-password",o,a,Sn)),listSessions:o=>e.request("/list-sessions",{fetchOptions:o,decode:Rn}),revokeSession:({sessionId:o},a)=>i(n("/revoke-session",{sessionId:o},a,j)),revokeOtherSessions:o=>i(n("/revoke-other-sessions",{},o,j)),listSocialAccounts:async o=>{let a=await e.request("/list-accounts",{fetchOptions:o,decode:In});if(!a.data)return {data:null,error:a.error};let c=a.data.length>1;return {...a,data:a.data.filter(p=>p.providerId!=="credential").map(p=>({...p,canUnlink:c}))}},linkSocial:(o,a)=>n("/link-social",o,a,Tn),unlinkSocial:(o,a)=>i(n("/unlink-account",o,a,j)),delete:(o={},a)=>i(n("/delete-user",o,a,Pn))}}function j(e){let t=q$1(e);return {status:s(t.status)}}function Sn(e){let t=q$1(e);return {user:w(t.user)}}function Rn(e){return Array.isArray(e)||y(),e.map(t$1=>{let n=q$1(t$1);return {id:r(n.id),userId:r(n.userId),createdAt:t(n.createdAt),updatedAt:t(n.updatedAt),expiresAt:t(n.expiresAt),...Fe("ipAddress",v(n,"ipAddress")),...Fe("userAgent",v(n,"userAgent"))}})}function In(e){return Array.isArray(e)||y(),e.map(t$1=>{let n=q$1(t$1);return {id:r(n.id),userId:r(n.userId),providerId:r(n.providerId),accountId:r(n.accountId),scopes:u(n.scopes),createdAt:t(n.createdAt),updatedAt:t(n.updatedAt)}})}function Tn(e){let t=q$1(e);return {url:r(t.url),redirect:s(t.redirect)}}function Pn(e){let t=q$1(e);return {success:s(t.success),message:r(t.message)}}function Fe(e,t){return t===void 0?{}:{[e]:t}}var vn=new Set(["pending","accepted","rejected","canceled"]),ge=1e4;function F(e,t$1,n){let i=q$1(e),o={id:k(i.id),name:k(i.name),slug:k(i.slug),createdAt:t(i.createdAt),...$("logo",v(i,"logo")),...$("metadata",i.metadata===void 0?void 0:A(i.metadata))};return _(o.id,t$1),_(o.slug,n),o}function Ve(e){return M(e,F)}function fe(e,t,n){return e===null?null:(t===null&&y(),F(e,t,n))}function He(e,t,n){if(e===null)return null;let i=q$1(e),o=F(i,t,n);return {...o,members:M(i.members,a=>tt(a,o.id)),invitations:M(i.invitations,a=>N(a,void 0,o.id))}}function Be(e,t){let n=M(e,i=>et(i));return Q(n.map(i=>i.organizationId),t),n}function Ke(e,t,n){return e===null?null:(t===null&&y(),et(e,t,n))}function je(e,t){let n=q$1(e);return (!Number.isSafeInteger(n.total)||n.total<0)&&y(),{members:Cn(n.members,t),total:n.total}}function N(e,t$1,n){let i=q$1(e),o=k(i.status);vn.has(o)||y();let a={id:k(i.id),organizationId:k(i.organizationId),email:Y(i.email),role:k(i.role),status:o,inviterId:k(i.inviterId),expiresAt:t(i.expiresAt),createdAt:t(i.createdAt)};return _(a.id,t$1),_(a.organizationId,n),a}function Je(e,t){let n=M(e,i=>N(i));return Q(n.map(i=>i.organizationId),t),n}function Ge(e){return M(e,t=>{let n=q$1(t);return {...N(n),organizationName:Y(n.organizationName)}})}function We(e,t){let n=q$1(e);return {...N(n,t),organizationName:k(n.organizationName),organizationSlug:k(n.organizationSlug),inviterEmail:nt(n.inviterEmail)}}function Xe(e,t){let n=q$1(e),i=N(n.invitation,t);return {invitation:i,member:q(n.member,void 0,i.organizationId)}}function $e(e,t){let n=q$1(e);return n.member!==null&&y(),{invitation:n.invitation===null?null:N(n.invitation,t),member:null}}function Ye(e,t){return e===null?null:N(e,t)}function Qe(e,t,n){let i=q$1(e);return {member:q(i.member,n,t)}}function q(e,t$1,n){let i=q$1(e),o={id:k(i.id),organizationId:k(i.organizationId),userId:k(i.userId),role:k(i.role),createdAt:t(i.createdAt),...i.user===void 0?{}:{user:it(i.user)}};return _(o.id,t$1),_(o.organizationId,n),o}function Ze(e,t){let n=M(e,i=>{let o=q$1(i);return {organizationId:k(o.organizationId),data:{role:k(o.role),...$("permission",o.permission===void 0?void 0:Dn(o.permission))}}});return Q(n.map(i=>i.organizationId),t),n.map(i=>i.data)}function et(e,t$1,n){let i=q$1(e),o=i.updatedAt,a={id:k(i.id),name:Y(i.name),organizationId:k(i.organizationId),createdAt:t(i.createdAt),...o===void 0?{}:{updatedAt:t(o)}};return _(a.id,t$1),_(a.organizationId,n),a}function tt(e,t){let n=q$1(e);return {...q(n,void 0,t),user:it(n.user)}}function Cn(e,t){let n=M(e,i=>tt(i));return Q(n.map(i=>i.organizationId),t),n}function Dn(e){let t=q$1(e),n={};for(let[i,o]of Object.entries(t))(i==="__proto__"||i==="constructor"||i==="prototype"||i.length===0||i.length>ge||!Array.isArray(o))&&y(),n[i]=o.map(a=>k(a));return n}function k(e){let t=r(e);return (t.length===0||t.length>ge)&&y(),t}function Y(e){if(e==null)return "";let t=r(e);return t.length>ge&&y(),t}function nt(e){return e===null?null:k(e)}function _(e,t){t!==void 0&&e!==t&&y();}function Q(e,t){let n=t??e[0];n!==void 0&&e.some(i=>i!==n)&&y();}function it(e){let t=q$1(e);return {id:k(t.id),name:Y(t.name),email:nt(t.email),...$("image",v(t,"image"))}}function M(e,t){return Array.isArray(e)||y(),e.map(n=>t(n))}function $(e,t){return t===void 0?{}:{[e]:t}}function ot(e,t,n=()=>null){let{post:i,mutation:o}=L(e,t),a=new Map,c=(r,l,u,h)=>{if(u)return e.request(r,{query:l,fetchOptions:u,decode:h});let O=`${r}\0${JSON.stringify(l??null)}`,A=a.get(O);if(A)return A;let s=e.request(r,{query:l,decode:h}).finally(()=>{a.delete(O);});return a.set(O,s),s},p=r=>o(r).finally(()=>a.clear());return {create:(r,l)=>p(i("/organization/create",r,l,F)),list:r=>c("/organization/list",void 0,r,Ve),get:(r={},l)=>c("/organization/get-full-organization",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,membersLimit:r.membersLimit},l,u=>He(u,r.organizationId,r.organizationSlug)),setActive:(r,l)=>p(i("/organization/set-active",r,l,u=>fe(u,r.organizationId,r.organizationSlug))),listTeams:(r={},l)=>c("/organization/list-teams",{organizationId:r.organizationId},l,u=>Be(u,r.organizationId)),setActiveTeam:(r,l)=>p(i("/organization/set-active-team",r,l,u=>Ke(u,r.teamId))),update:(r,l)=>p(i("/organization/update",r,l,u=>fe(u,r.organizationId))),delete:(r,l)=>p(i("/organization/delete",r,l,u=>F(u,r.organizationId))),listMembers:(r={},l)=>c("/organization/list-members",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,limit:r.limit,offset:r.offset,sortBy:r.sortBy,sortDirection:r.sortDirection,filterField:r.filterField,filterValue:r.filterValue,filterOperator:r.filterOperator},l,u=>je(u,r.organizationId)),inviteMember:(r,l)=>p(i("/organization/invite-member",r,l,u=>N(u,void 0,r.organizationId))),listInvitations:(r={},l)=>c("/organization/list-invitations",{organizationId:r.organizationId},l,u=>Je(u,r.organizationId)),listUserInvitations:r=>c("/organization/list-user-invitations",void 0,r,Ge),getInvitation:(r,l)=>c("/organization/get-invitation",{id:r.id},l,u=>We(u,r.id)),acceptInvitation:(r,l)=>p(i("/organization/accept-invitation",r,l,u=>Xe(u,r.invitationId))),rejectInvitation:(r,l)=>p(i("/organization/reject-invitation",r,l,u=>$e(u,r.invitationId))),cancelInvitation:(r,l)=>p(i("/organization/cancel-invitation",r,l,u=>Ye(u,r.invitationId))),removeMember:(r,l)=>p(i("/organization/remove-member",r,l,u=>Qe(u,r.organizationId,r.memberIdOrEmail.includes("@")?void 0:r.memberIdOrEmail))),updateMemberRole:(r,l)=>p(i("/organization/update-member-role",r,l,u=>q(u,r.memberId,r.organizationId))),leave:(r,l)=>p(i("/organization/leave",r,l,u=>q(u,void 0,r.organizationId))),listRoles:(r={},l)=>c("/organization/list-roles",{organizationId:r.organizationId},l,u=>Ze(u,r.organizationId)),has:r=>E(n(),r),hasPermission:r=>B(n(),r.permission)}}var rt=4096,En=4096,xn=100,zn=256,Nn=16,Un=64,_n=12;function he(e){let t=q$1(e);return t.twoFactorRedirect===true?((t.user!==void 0||t.redirect!==void 0||t.url!==void 0)&&y(),{twoFactorRedirect:true,...t.twoFactorMethods===void 0?{}:{twoFactorMethods:St(t.twoFactorMethods,Nn,Un)}}):(t.twoFactorRedirect!==void 0&&y(),{redirect:s(t.redirect),...Vn(t,"url"),user:w(t.user)})}function at(e){let t=q$1(e);return {user:w(t.user)}}function st(e){let t=q$1(e);return {sessionCreated:s(t.sessionCreated),user:w(t.user)}}function ut(e,t){let n=q$1(e),i=s(n.redirect);n.user===null&&y();let o=n.user!==void 0&&n.user!==null,a=n.url!==void 0&&n.url!==null;return i?((o||!a)&&y(),{redirect:true,url:me(n.url,t)}):(o===a&&y(),o?{redirect:false,user:w(n.user)}:{redirect:false,url:me(n.url,t)})}function ct(e,t){let n=q$1(e);return (n.redirect!==true||n.user!==void 0)&&y(),{redirect:true,url:me(n.url,t)}}function dt(e){return {status:s(q$1(e).status)}}function lt(e){return {success:s(q$1(e).success)}}function pt(e){return q$1(e).status!=="pending"&&y(),{status:"pending"}}function gt(e){let t=q$1(e);if(t.kind==="authowl_turnstile")return {kind:"authowl_turnstile"};t.kind!=="akedly_shield_v1_2"&&y();let n=q$1(t.turnstile),i=n.siteKey===null?null:r(n.siteKey);return {kind:"akedly_shield_v1_2",connectionId:r(t.connectionId),challenge:r(t.challenge),difficulty:Mn(t.difficulty),challengeToken:r(t.challengeToken),challengeRequired:s(t.challengeRequired),turnstile:{required:s(n.required),siteKey:i}}}function Mn(e){return (!Number.isSafeInteger(e)||Number(e)<0||Number(e)>_n)&&y(),Number(e)}function ft(e){let t=q$1(e);return (t.status!==true||t.sessionCreated!==true)&&y(),{status:true,sessionCreated:true,user:Ln(t.user)}}function Ae(e){return {status:s(q$1(e).status)}}function mt(e){return {status:s(q$1(e).status)}}function ht(e){let t=q$1(e);return {status:s(t.status),user:w(t.user)}}function At(e){return {success:s(q$1(e).success)}}function yt(e){let t=q$1(e);return {totpURI:qn(t.totpURI),backupCodes:kt(t.backupCodes)}}function Ot(e){return {status:s(q$1(e).status)}}function Z(e){return q$1(e).status!==true&&y(),{status:true}}function bt(e){return {status:s(q$1(e).status)}}function wt(e){let t=q$1(e);return t.status!==void 0&&t.status!==true&&y(),{backupCodes:kt(t.backupCodes)}}function Ln(e){let t$1=q$1(e);return {id:V(t$1.id,512),...Hn(t$1,"name",1024),phoneNumber:V(t$1.phoneNumber,64),phoneNumberVerified:s(t$1.phoneNumberVerified),...t$1.createdAt===void 0?{}:{createdAt:t(t$1.createdAt)},...t$1.updatedAt===void 0?{}:{updatedAt:t(t$1.updatedAt)}}}function me(e,t){let n=V(e,rt);/[\u0000-\u0020\u007f]/u.test(n)&&y();let i;try{i=new URL(n);}catch{return y()}return (i.username||i.password)&&y(),i.protocol==="https:"||t&&i.protocol==="http:"&&Fn(i.hostname)?i.href:y()}function Fn(e){let t=e.toLowerCase();return t==="localhost"||t==="127.0.0.1"||t==="[::1]"}function qn(e){let t=V(e,En),n;try{n=new URL(t);}catch{return y()}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))&&y(),t}function kt(e){return St(e,xn,zn)}function St(e,t,n){(!Array.isArray(e)||e.length===0||e.length>t)&&y();let i=e.map(o=>V(o,n));return i.some(o=>o.trim().length===0)&&y(),new Set(i).size!==i.length&&y(),i}function V(e,t){let n=r(e);return (n.length===0||n.length>t)&&y(),n}function Vn(e,t){let n=e[t];return n==null?{}:{[t]:V(n,rt)}}function Hn(e,t,n){let i=v(e,t);return i===void 0?{}:(i!==null&&i.length>n&&y(),{[t]:i})}var Rt=new Set([1564,8206,8207,8234,8235,8236,8237,8238,8294,8295,8296,8297]),ee=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 te(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||Tt(n,i)||It(i)||Rt.has(i))return {valid:false}}let t=Bn(e);return ye(t)?{valid:true,value:t}:{valid:false}}function ye(e){let t=0,n,i;for(let o of e){if(t+=1,t>256)return false;let a=o.codePointAt(0);if(a===void 0||Tt(o,a)||It(a)||Rt.has(a))return false;n??=a,i=a;}return t>0&&n!==void 0&&i!==void 0&&!ee.has(n)&&!ee.has(i)}function ne(){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 Bn(e){let t=0,n=e.length;for(;t<n;){let i=e.codePointAt(t);if(i===void 0||!ee.has(i))break;t+=i>65535?2:1;}for(;n>t;){let i=e.codePointAt(n-1);if(i===void 0)break;let a=i>=56320&&i<=57343?n-2:n-1,c=e.codePointAt(a);if(c===void 0||!ee.has(c))break;n=a;}return e.slice(t,n)}function It(e){return e>=0&&e<=31||e>=127&&e<=159}function Tt(e,t){return e.length===1&&t>=55296&&t<=57343}var Ct=12,Dt=5e3,Kn=8,jn=1e3,Jn=16,Pt=512,Et=100,xt=8192,Gn=32768,Oe=1024,vt=256,we=64,Wn=6e5,Xn=/^[A-Za-z0-9_-]+$/u,$n=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u,Yn=/[\u0000-\u001f\u007f-\u009f\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/u,Qn=/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$/u,Zn=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu,zt=new Set(["discouraged","preferred","required"]),ei=new Set(["singleDevice","multiDevice"]),Nt=new Set(["ble","cable","hybrid","internal","nfc","smart-card","usb"]),Ut=new Set(["hybrid","security-key","client-device"]),ti=new Set(["none","indirect","direct","enterprise"]),ni=new Set(["fido-u2f","packed","android-safetynet","android-key","tpm","apple","none"]),ii=new Set(["platform","cross-platform"]),oi=new Set(["discouraged","preferred","required"]),ri=new Set([-8,-7,-257]);function _t(e){let t=z(e,Ct,Dt);return {challenge:Jt(t.challenge),...R("timeout",Kt(t.timeout)),...R("rpId",Gt(t.rpId)),...R("allowCredentials",Bt(t.allowCredentials)),...R("userVerification",J(t.userVerification,zt)),...R("hints",ie(t.hints,Ut)),...R("extensions",jt(t.extensions))}}function Mt(e){let t=z(e,Ct,Dt);return {challenge:Jt(t.challenge),rp:ai(t.rp),user:si(t.user),pubKeyCredParams:ui(t.pubKeyCredParams),...R("timeout",Kt(t.timeout)),...R("excludeCredentials",Bt(t.excludeCredentials)),...R("authenticatorSelection",ci(t.authenticatorSelection)),...R("attestation",J(t.attestation,ti)),...R("attestationFormats",ie(t.attestationFormats,ni)),...R("hints",ie(t.hints,Ut)),...R("extensions",jt(t.extensions))}}function Lt(e){let t=q$1(e),n=x$1(t.session),i=w(t.user);return n.userId!==i.id&&y(),{session:n,user:i}}function ke(e){let t$1=q$1(e),n=t$1.counter;(!Number.isSafeInteger(n)||n<0)&&y();let i=Se(t$1.deviceType,ei),o=s(t$1.backedUp);return o&&i!=="multiDevice"&&y(),{id:H(t$1.id,vt),...pi(t$1),publicKey:di(t$1.publicKey,Gn),userId:H(t$1.userId,vt),credentialID:re(t$1.credentialID,xt),counter:n,deviceType:i,backedUp:o,...gi(t$1),createdAt:t(t$1.createdAt),...fi(t$1)}}function Ft(e,t,n){let i=ke(e);return (i.credentialID!==t||(n===void 0?i.name!==void 0&&i.name!==null:i.name!==n))&&y(),i}function qt(e){(!Array.isArray(e)||e.length>Et)&&y();let t=e.map(ke);return oe(t.map(n=>n.id)),oe(t.map(n=>n.credentialID)),t.length>1&&t.some(n=>n.userId!==t[0]?.userId)&&y(),t}function Vt(e,t,n){let i=q$1(e),o=ke(i.passkey);return (o.id!==t||o.name!==n)&&y(),{passkey:o}}function Ht(e){return q$1(e).status!==true&&y(),{status:true}}function ai(e){let t=q$1(e);return {name:be(t.name,Oe),...R("id",Gt(t.id))}}function si(e){let t=q$1(e);return {id:re(t.id,128,1,64),name:be(t.name,Oe),displayName:be(t.displayName,Oe)}}function ui(e){(!Array.isArray(e)||e.length===0||e.length>we)&&y();let t=e.map(n=>{let i=q$1(n);return (i.type!=="public-key"||!Number.isSafeInteger(i.alg)||!ri.has(i.alg))&&y(),{type:"public-key",alg:i.alg}});return mi(t.map(n=>n.alg)),t}function Bt(e){if(e===void 0)return;(!Array.isArray(e)||e.length>Et)&&y();let t=e.map(n=>{let i=q$1(n);return i.type!=="public-key"&&y(),{type:"public-key",id:re(i.id,xt),...R("transports",ie(i.transports,Nt))}});return oe(t.map(n=>n.id)),t}function ci(e){if(e===void 0)return;let t=q$1(e);t.requireResidentKey!==void 0&&typeof t.requireResidentKey!="boolean"&&y();let n=J(t.residentKey,oi);return t.requireResidentKey!==void 0&&n!==void 0&&t.requireResidentKey!==(n==="required")&&y(),{...R("authenticatorAttachment",J(t.authenticatorAttachment,ii)),...R("residentKey",n),...R("requireResidentKey",t.requireResidentKey),...R("userVerification",J(t.userVerification,zt))}}function Kt(e){return e!==void 0&&(typeof e!="number"||!Number.isFinite(e)||e<0||e>Wn)&&y(),e}function jt(e){return e===void 0?void 0:z(e,Kn,jn)}function ie(e,t){if(e===void 0)return;(!Array.isArray(e)||e.length>we)&&y();let n=e.map(i=>Se(i,t));return oe(n),n}function J(e,t){if(e!==void 0)return Se(e,t)}function Jt(e){return re(e,Math.ceil(Pt*4/3),Jn,Pt)}function re(e,t,n=1,i=Number.POSITIVE_INFINITY){let o=H(e,t),a=o.length%4,c=li(o.at(-1)??""),p=Math.floor(o.length*3/4);return (!Xn.test(o)||a===1||a===2&&(c&15)!==0||a===3&&(c&3)!==0||p<n||p>i)&&y(),o}function H(e,t){let n=r(e);return (n.length===0||n.length>t)&&y(),n}function be(e,t){let n=H(e,t);return Yn.test(n)&&y(),n}function Gt(e){if(e===void 0)return;let t=H(e,253);return t!=="localhost"&&(t.endsWith(".")||!t.includes(".")||t.split(".").some(n=>!Qn.test(n)))&&y(),t}function di(e,t){let n=H(e,t),i=n.endsWith("=="),o=!i&&n.endsWith("="),a=n.at(i?-3:o?-2:-1)??"",c=Wt(a);return (n.length%4!==0||!$n.test(n)||i&&(c&15)!==0||o&&(c&3)!==0)&&y(),n}function li(e){return Wt(e,true)}function Wt(e,t=false){return (t?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").indexOf(e)}function pi(e){let t=v(e,"name");return t===void 0?{}:(t!==null&&!ye(t)&&y(),{name:t})}function gi(e){let t=v(e,"transports");if(t==null||t==="")return t===void 0?{}:{transports:t};let n=t.split(",");return (n.length>we||n.some(i=>!Nt.has(i))||new Set(n).size!==n.length)&&y(),{transports:t}}function fi(e){let t=v(e,"aaguid");return t==null?t===void 0?{}:{aaguid:null}:(Zn.test(t)||y(),{aaguid:t})}function Se(e,t){let n=r(e);return t.has(n)||y(),n}function R(e,t){return t===void 0?{}:{[e]:t}}function oe(e){new Set(e).size!==e.length&&y();}function mi(e){new Set(e).size!==e.length&&y();}function hi(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 Xt=new Map;function Ai(e,t,n){let i=Xt.get(n);if(!i){let o=new URLSearchParams(window.location.hash.slice(1)).get("authowl_code");if(!o)return;i=import('./session-handoff-6FBH3GFJ.js').then(a=>a.completeCrossSiteSignIn(e,t,o)),Xt.set(n,i);}return i}function $t(e){return !a()||e.idToken||e.disableRedirect?"legacy":"first-party"}function yi(e,t=()=>{},n=wi){let i=le(e),o=e.session.tokens,a$1=a()?Ai(i,o,e.decoded.projectId):void 0,c=hi(i,a$1),p=Ue({http:c,probe:le({...e,fetch:e.session.probe}),tokens:o,channelName:`authowl:${e.decoded.projectId}`}),r=n(c,p.notifyMutation),l=()=>{p.notifyMutation(),t();},{post:u,mutation:h}=L(c,l),O=e.decoded.env==="test",A=s=>{o.beginSession({remember:s?.rememberMe!==false});};return {sessionStore:p.store,getSession:p.getSession,account:qe(c,l),organization:ot(c,l,()=>p.store.getSnapshot().data?.session.membership??null),signIn:{email:(s,g)=>(A(s),h(u("/sign-in/email",s,g,he),m=>!("twoFactorRedirect"in m))),username:(s,g)=>(A(s),h(u("/sign-in/username",s,g,he),m=>!("twoFactorRedirect"in m))),social:async(s,g)=>{if(A(),$t(s)==="first-party"){let{beginCrossSiteSignIn:I}=await import('./session-handoff-6FBH3GFJ.js'),v=await I(e,{kind:"social",provider:s.provider,callbackURL:s.callbackURL,errorCallbackURL:s.errorCallbackURL,newUserCallbackURL:s.newUserCallbackURL,scopes:s.scopes,loginHint:s.loginHint,requestSignUp:s.requestSignUp});if(v)return window.location.assign(v),{data:{redirect:true,url:v},error:null}}let m=await h(u("/sign-in/social",s,g,I=>ut(I,O)),I=>"user"in I);return m.error!==null||m.data===null||"url"in m.data&&m.data.redirect&&!s.disableRedirect&&typeof window<"u"&&window.location.assign(m.data.url),m},sso:async(s,g)=>{if($t(s)==="first-party"){let{beginCrossSiteSignIn:I}=await import('./session-handoff-6FBH3GFJ.js'),v=await I(e,{kind:"sso",email:s.email,providerId:s.providerId,domain:s.domain,organizationSlug:s.organizationSlug,callbackURL:s.callbackURL,errorCallbackURL:s.errorCallbackURL,newUserCallbackURL:s.newUserCallbackURL});if(v)return window.location.assign(v),{data:{url:v,redirect:true},error:null}}let m=await u("/sign-in/sso",s,g,I=>ct(I,O));return m.error!==null||m.data===null||typeof window<"u"&&window.location.assign(m.data.url),m},magicLink:(s,g)=>u("/sign-in/magic-link",s,g,dt),emailOtp:(s,g)=>(A(),h(u("/sign-in/email-otp",s,g,at))),passkey:(s,g)=>(A(),r.signIn(s,g))},signUp:{email:(s,g)=>(A(),h(u("/sign-up/email",s,g,st),m=>m.sessionCreated))},emailOtp:{sendVerificationOtp:(s,g)=>u("/email-otp/send-verification-otp",s,g,lt),verifyEmail:(s,g)=>(A(),h(u("/email-otp/verify-email",s,g,ht)))},phoneOtp:{prepare:s=>u("/phone-otp/challenge",{},s,gt),start:(s,g)=>u("/phone-otp/start",{...s,idempotencyKey:s.idempotencyKey??Ne()},g,pt),verify:(s,g)=>(A(),h(u("/phone-otp/verify",s,g,ft)))},requestPasswordReset:(s,g)=>u("/request-password-reset",s,g,Ae),resetPassword:(s,g)=>u("/reset-password",s,g,Ae),sendVerificationEmail:(s,g)=>u("/send-verification-email",s,g,mt),passkey:{addPasskey:(s,g)=>r.add(s,g),listUserPasskeys:()=>c.request("/passkey/list-user-passkeys",{decode:qt}),updatePasskey:async(s,g)=>{let m=te(s.name);if(!m.valid||m.value===void 0)return ne();let I=m.value;return u("/passkey/update-passkey",{...s,name:I},g,v=>Vt(v,s.id,I))},deletePasskey:(s,g)=>u("/passkey/delete-passkey",s,g,Ht)},twoFactor:{enable:(s,g)=>u("/two-factor/enable",s,g,yt),disable:(s,g)=>h(u("/two-factor/disable",s,g,Ot),m=>m.status),verifyTotp:(s,g)=>h(u("/two-factor/verify-totp",s,g,Z)),verifyBackupCode:(s,g)=>h(u("/two-factor/verify-backup-code",s,g,Z)),sendOtp:(s={},g)=>u("/two-factor/send-otp",s,g,bt),verifyOtp:(s,g)=>h(u("/two-factor/verify-otp",s,g,Z)),generateBackupCodes:(s,g)=>u("/two-factor/generate-backup-codes",s,g,wt)},signOut:s=>h(c.request("/sign-out",{method:"POST",body:{},fetchOptions:s,decode:At}).then(g=>(o.endSession(),g)),g=>g.success)}}function mo(e,t=()=>{},n){let i=yi(e,t,n);return n?{...i,signIn:{email:i.signIn.email,username:i.signIn.username,social:Yt(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:Yt(i),magicLink:i.signIn.magicLink,emailOtp:i.signIn.emailOtp},passkey:{listUserPasskeys:i.passkey.listUserPasskeys,updatePasskey:i.passkey.updatePasskey,deletePasskey:i.passkey.deletePasskey}}}function Yt(e){return async(t,n)=>{if(!t?.idToken||typeof t.idToken.token!="string"||t.idToken.token==="")return Oi();let i=await e.signIn.social({...t,disableRedirect:true},n);return i.data!==null&&"url"in i.data?bi():i}}function Oi(){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 bi(){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 wi(){return {signIn:()=>Qt(),add:()=>Qt()}}function Qt(){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 Oo(e,t,n){let i=new Map;return {async signIn(o={},a){let c=await e.request("/passkey/generate-authenticate-options");if(!c.data)return tn(c.error);let p;try{p=_t(c.data);}catch{return Zt()}let r;try{r=await n.authenticate({optionsJSON:p,useBrowserAutofill:o.autoFill});}catch(A){return nn(n,A,"AUTH_CANCELLED","Passkey authentication was cancelled.")}if(!ki(r))return en();let{clientExtensionResults:l,...u}=r,h=i.get(r.id);if(h)return h;let O=(async()=>{let A=await e.request("/passkey/verify-authentication",{method:"POST",body:{response:u},fetchOptions:a,decode:Lt});return A.data&&t(),A})();i.set(r.id,O);try{return await O}finally{i.get(r.id)===O&&i.delete(r.id);}},async add(o={},a){let c=te(o.name);if(!c.valid)return ne();let p=await e.request("/passkey/generate-register-options",{query:{name:c.value,authenticatorAttachment:o.authenticatorAttachment}});if(!p.data)return tn(p.error);let r;try{r=Mt(p.data);}catch{return Zt()}let l;try{l=await n.register({optionsJSON:r});}catch(A){return nn(n,A,"REGISTRATION_CANCELLED","Passkey registration was cancelled.")}if(!Si(l))return en();let{clientExtensionResults:u,...h}=l,O=await e.request("/passkey/verify-registration",{method:"POST",body:{response:h,name:c.value},fetchOptions:a,decode:A=>Ft(A,l.id,c.value)});return O.data&&t(),O}}}function Zt(){return {data:null,error:{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned invalid WebAuthn options."}}}function en(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_WEBAUTHN_RESPONSE",message:"The platform returned an invalid passkey response."}}}function rn(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 ki(e){if(!rn(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 Si(e){if(!rn(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.attestationObject=="string"}function tn(e){return {data:null,error:e??{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned no WebAuthn options."}}}function nn(e,t,n,i){let o=Ii(t,"page does not have focus"),a=e.errorCode?.(t),c=a!==void 0?a==="ERROR_CEREMONY_ABORTED":on(t)==="AbortError",p=n!=="AUTH_CANCELLED",r=Ri(a,on(t),p);return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:o?"PASSKEY_PAGE_NOT_FOCUSED":c?n:a??"PASSKEY_BROWSER_ERROR",message:o?"Keep this page focused while completing the passkey prompt.":c?i:r}}}function Ri(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 on(e){return e&&typeof e=="object"&&"name"in e&&typeof e.name=="string"?e.name:void 0}function Ii(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 So(e){let n=`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/public-config`;return Ee(await X(e,n,{init:{method:"GET",credentials:"omit"},maxResponseBytes:256*1024,decode:i=>Ti(i,e)}),"public-config")}function Ti(e,t){let n=z(e),i=n.environmentId,o=n.environmentType,a=`${new URL(t.apiUrl).origin}/api/projects/${t.decoded.projectId}/auth`;if(typeof n.applicationId!="string"||!Pi(n.applicationId)||i!==t.decoded.projectId||o!=="development"&&o!=="production"||n.authBaseUrl!==a)throw x();let c=P(n.branding),p=P(n.legal);if(!Re(n.enabledMethods,64)||!Re(n.socialProviders,64)||!sn(c,["appName","logoUrl","primaryColor"])||c.showAppName!==void 0&&typeof c.showAppName!="boolean"||c.alignment!==void 0&&c.alignment!=="left"&&c.alignment!=="center"&&c.alignment!=="right"||c.theme!==void 0&&c.theme!=="light"&&c.theme!=="dark"&&c.theme!=="system"||!sn(p,["termsUrl","privacyUrl"])||!Number.isSafeInteger(p.version)||p.version<0||typeof p.required!="boolean")throw x();if(n.socialProviderClientIds!==void 0){let r=P(n.socialProviderClientIds);if(Object.keys(r).length>64||Object.values(r).some(l=>typeof l!="string"||l.length>2048))throw x()}if(!U(n,["requireEmailVerification","twoFactor","mfaRequired","accountDeletion","organizations","sso","badge"])||!an(n.turnstileSiteKey)||!an(n.authTurnstileSiteKey)||typeof n.locale!="string"||n.locale.length===0||n.locale.length>64||!Number.isSafeInteger(n.configVersion)||n.configVersion<0)throw x();if(n.jwtIssuer!==null){let r=P(n.jwtIssuer);if(r.issuer!==a||r.jwksUrl!==`${a}/jwks`||r.aud!==t.decoded.projectId)throw x()}if(n.signUp!==void 0){let r=P(n.signUp).mode;if(typeof r!="string"||!["open","restricted","allowlist","waitlist"].includes(r))throw x()}if(n.authentication!==void 0&&vi(n.authentication),n.emailVerification!==void 0){let r=P(n.emailVerification);if(!U(r,["required"])||r.method!=="link"&&r.method!=="code")throw x()}if(n.userModel!==void 0&&!U(P(n.userModel),["requireEmail","firstLastName","emailChange","accountDeletion"]))throw x();if(n.mfa!==void 0){let r=P(n.mfa);if(!U(r,["totp","required","backupCodes"])||(r.required===true||r.backupCodes===true)&&r.totp!==true)throw x()}return n}function Pi(e){return /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e)}function x(){return new TypeError("public-config returned an invalid response")}function P(e){if(!e||typeof e!="object"||Array.isArray(e))throw x();return e}function an(e){return e===null||typeof e=="string"&&e.length<=4096}function vi(e){let t=P(e),n=P(t.email),i=P(t.password),o=i.minLength!==void 0||i.maxLength!==void 0;if(!U(n,["signUp"])||!Re(n.signIn,3)||n.signIn.some(a=>a!=="password"&&a!=="magic_link"&&a!=="email_otp")||!U(P(t.phone),["signUp","signIn"])||!U(i,["signUp","add"])||o&&(!Number.isSafeInteger(i.minLength)||!Number.isSafeInteger(i.maxLength)||i.minLength<1||i.maxLength>4096||i.minLength>i.maxLength)||!U(P(t.passkey),["signIn","add"])||!Ci(P(t.passkey).relyingPartyId)||!U(P(t.username),["collectOnSignUp","signIn"]))throw x()}function Ci(e){return e==null||typeof e=="string"}function U(e,t){return t.every(n=>typeof e[n]=="boolean")}function sn(e,t){return t.every(n=>e[n]===void 0||typeof e[n]=="string"&&e[n].length<=4096)}function Re(e,t){return Array.isArray(e)&&e.length<=t&&e.every(n=>typeof n=="string"&&n.length<=128)&&new Set(e).size===e.length}export{Di as a,se as b,X as c,Ee as d,dn as e,le as f,Ne as g,yi as h,mo as i,Oo as j,So as k};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { R as ResolvedAuthConfig, H as HasParams, O as OrganizationMembership } from './organization-membership-
|
|
1
|
+
import { R as ResolvedAuthConfig, H as HasParams, O as OrganizationMembership } from './organization-membership-B05mzhtA.cjs';
|
|
2
2
|
|
|
3
3
|
type EnvironmentType = 'development' | 'production';
|
|
4
4
|
/**
|
|
@@ -412,8 +412,14 @@ interface Organization {
|
|
|
412
412
|
}
|
|
413
413
|
interface OrganizationMemberUser {
|
|
414
414
|
id: string;
|
|
415
|
+
/**
|
|
416
|
+
* Display name. Empty when the member never supplied one - the store column is
|
|
417
|
+
* nullable and the sign-up form posts `''` by default - so render it with a
|
|
418
|
+
* fallback rather than assuming it is populated.
|
|
419
|
+
*/
|
|
415
420
|
name: string;
|
|
416
|
-
|
|
421
|
+
/** `null` when the server withholds the address (for example a phone-only member). */
|
|
422
|
+
email: string | null;
|
|
417
423
|
image?: string | null;
|
|
418
424
|
}
|
|
419
425
|
interface OrganizationMember {
|
|
@@ -441,7 +447,8 @@ interface OrganizationInvitation {
|
|
|
441
447
|
interface OrganizationInvitationDetails extends OrganizationInvitation {
|
|
442
448
|
organizationName: string;
|
|
443
449
|
organizationSlug: string;
|
|
444
|
-
|
|
450
|
+
/** `null` when the server withholds the inviter's address. */
|
|
451
|
+
inviterEmail: string | null;
|
|
445
452
|
}
|
|
446
453
|
interface OrganizationUserInvitation extends OrganizationInvitation {
|
|
447
454
|
organizationName: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { R as ResolvedAuthConfig, H as HasParams, O as OrganizationMembership } from './organization-membership-
|
|
1
|
+
import { R as ResolvedAuthConfig, H as HasParams, O as OrganizationMembership } from './organization-membership-B05mzhtA.js';
|
|
2
2
|
|
|
3
3
|
type EnvironmentType = 'development' | 'production';
|
|
4
4
|
/**
|
|
@@ -412,8 +412,14 @@ interface Organization {
|
|
|
412
412
|
}
|
|
413
413
|
interface OrganizationMemberUser {
|
|
414
414
|
id: string;
|
|
415
|
+
/**
|
|
416
|
+
* Display name. Empty when the member never supplied one - the store column is
|
|
417
|
+
* nullable and the sign-up form posts `''` by default - so render it with a
|
|
418
|
+
* fallback rather than assuming it is populated.
|
|
419
|
+
*/
|
|
415
420
|
name: string;
|
|
416
|
-
|
|
421
|
+
/** `null` when the server withholds the address (for example a phone-only member). */
|
|
422
|
+
email: string | null;
|
|
417
423
|
image?: string | null;
|
|
418
424
|
}
|
|
419
425
|
interface OrganizationMember {
|
|
@@ -441,7 +447,8 @@ interface OrganizationInvitation {
|
|
|
441
447
|
interface OrganizationInvitationDetails extends OrganizationInvitation {
|
|
442
448
|
organizationName: string;
|
|
443
449
|
organizationSlug: string;
|
|
444
|
-
|
|
450
|
+
/** `null` when the server withholds the inviter's address. */
|
|
451
|
+
inviterEmail: string | null;
|
|
445
452
|
}
|
|
446
453
|
interface OrganizationUserInvitation extends OrganizationInvitation {
|
|
447
454
|
organizationName: string;
|
package/dist/index.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
'use strict';var Io=Object.defineProperty;var gt=(e,t)=>()=>(e&&(t=e(e=0)),t);var Po=(e,t)=>{for(var n in t)Io(e,n,{get:t[n],enumerable:true});};function ce(){return typeof window<"u"&&typeof document<"u"&&typeof crypto<"u"&&typeof crypto.subtle?.digest=="function"}var je=gt(()=>{});var Ie={};Po(Ie,{beginCrossSiteSignIn:()=>yr,challengeFor:()=>to,completeCrossSiteSignIn:()=>Ar,takeHandoffCode:()=>it});function eo(e){let t="";for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function to(e){let t=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e));return eo(new Uint8Array(t))}function gr(){return eo(crypto.getRandomValues(new Uint8Array(dr)))}function no(e,t){let n=window.location.protocol==="https:"?"; Secure":"";document.cookie=`${Zn}=${e}; Path=/; Max-Age=${t}; SameSite=Lax${n}`;}function mr(){for(let e of document.cookie.split(";")){let t=e.indexOf("=");if(!(t<0)&&e.slice(0,t).trim()===Zn)return e.slice(t+1).trim()||null}return null}function hr(){no("",0);}function Qn(e){return new URL(e,window.location.href).toString()}async function yr(e,t){let n=t.callbackURL?Qn(t.callbackURL):null;if(n&&new URL(n).origin!==window.location.origin)return null;let o=gr(),i=new URL(`${e.projectBaseURL}/session/start`);if(i.searchParams.set("pk",e.publishableKey),i.searchParams.set("kind",t.kind),t.kind==="social")i.searchParams.set("provider",t.provider),t.scopes?.length&&i.searchParams.set("scopes",t.scopes.join(",")),t.loginHint&&i.searchParams.set("loginHint",t.loginHint),t.requestSignUp!==void 0&&i.searchParams.set("requestSignUp",t.requestSignUp?"1":"0");else for(let r of fr){let a=t[r];a&&i.searchParams.set(r,a);}let s=`${window.location.origin}${window.location.pathname}${window.location.search}`;i.searchParams.set("cb",n??s);for(let[r,a]of [["err",t.errorCallbackURL],["new",t.newUserCallbackURL]])a&&i.searchParams.set(r,Qn(a));return i.searchParams.set("challenge",await to(o)),no(o,pr),i.toString()}function it(e){if(typeof window>"u")return null;let t=window.location.hash;if(!t.includes(ot))return null;let n=new URLSearchParams(t.replace(/^#/,"")),o=n.get(ot);if(!o||e!==void 0&&o!==e)return null;n.delete(ot);let i=n.toString();return window.history.replaceState(window.history.state,"",`${window.location.pathname}${window.location.search}${i?`#${i}`:""}`),o}async function Ar(e,t,n){if(!ce())return false;let o=n??it();if(!o)return false;n&&it(n);let i=mr();if(hr(),!i)return false;t.beginSession({remember:true});let{error:s}=await e.request("/session/exchange",{method:"POST",body:{code:o,verifier:i}});return s===null}var Zn,ot,dr,pr,fr,Pe=gt(()=>{je();Zn="authowl_handoff_verifier",ot="authowl_code",dr=32,pr=900,fr=["email","providerId","domain","organizationSlug"];});var Co=/^(pk_(live|test))_([0-9a-f-]{36})_([A-Za-z0-9]{20,})$/i,xo=/^sk_/i;function Ue(e){if(typeof e!="string"||e.length===0)throw new Error("publishableKey is required");if(xo.test(e))throw new Error("A secret key was passed where a publishable key was expected. Never embed secret keys in client code.");let t=Co.exec(e);if(!t)throw new Error("publishableKey is malformed; expected pk_(live|test)_<uuid>_<base62>");return {prefix:t[1].toLowerCase(),env:t[2].toLowerCase(),projectId:t[3].toLowerCase()}}function vo(e,t){let n=`p_${e.toLowerCase().replace(/-/g,"")}`;return `${t?.secure?"__Secure-":""}${n}.session_token`}var mt=/^http:\/\/(?:(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*localhost|127\.0\.0\.1|\[::1\])(?::\d+)?(?:\/|$)/i;function _e(e,t){throw new Error(`${e}: ${t}`)}function ht(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 o=n.toString();if(n.protocol!=="https:"&&!(n.protocol==="http:"&&t.allowHttpLoopback&&mt.test(o)))throw new TypeError("Transport URL must use HTTPS except on approved loopback.");return n}function yt(e,t){(typeof e!="string"||!/^https?:\/\/[^/?#@\\\s]+\/?$/i.test(e))&&_e("apiUrl","origin required");let n;try{n=new URL(e);}catch{_e("apiUrl","origin required");}return n.protocol==="http:"&&(!t.allowHttpLoopback||!mt.test(e))&&_e("apiUrl","HTTPS required except exact loopback"),n.origin}function X(e,t){try{return e?.getItem(t)??null}catch{return null}}function Q(e,t,n){try{n===null?e?.removeItem(t):e?.setItem(t,n);}catch{}}function Z(){try{return globalThis.localStorage}catch{return}}function G(){try{return globalThis.sessionStorage}catch{return}}var Do="authowl.session-challenge",Uo=e=>`${Do}.${e}`,_o="set-auth-challenge",Ne="x-authowl-challenge";function No(e){let t=e.get(Ne);return re(t)?bt(t).some(([n,o])=>n.endsWith(".dont_remember")&&o.length>0):false}var Ot="INVALID_TWO_FACTOR_COOKIE",zo=2048,re=e=>e!==null&&e.length<=zo,At=/^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/;function bt(e){let t=[];for(let n of e.split(";")){let o=n.trimStart(),i=o.indexOf("=");i<=0||t.push([o.slice(0,i).trimEnd(),o.slice(i+1)]);}return t}function wt(e){let t=Uo(e),n=new Map;function o(){return n.size===0?null:[...n].map(([a,c])=>`${a}=${c}`).join("; ")}function i(){let a=o();Q(G(),t,re(a)?a:null);}function s(a){for(let[c,m]of bt(a))At.test(c)&&(m===""?n.delete(c):At.test(m)&&n.set(c,m));}let r=X(G(),t);return re(r)&&s(r),{presentOn(a){let c=o();a.delete(Ne),re(c)&&a.set(Ne,c);},observe(a){let c=a.get(_o);re(c)&&(s(c),i());},clear(){n.clear(),i();}}}var ze="set-auth-token",Le="x-authowl-session-transport",Fe="bearer";var Lo="authowl.session-token",Fo="authowl.cookie-transport",St="ok",kt="bearer",Mo=e=>`${Lo}.${e}`,Vo=e=>`${Fo}.${e}`;function Ho(e){return e===St?"cookies":e===kt?"bearer":"unknown"}function qo(e){return e==="cookies"?St:e==="bearer"?kt:null}function Ko(e){let t=Mo(e),n=Vo(e),o=wt(e),i=null,s=false,r=null,a=Ho(X(Z(),n)),c=()=>a==="unknown",m=0,d=null,h=false;function A(){let y=X(G(),t);if(y!==null)return s=true,y;let x=X(Z(),t);return x!==null?(s=false,x):null}i=A(),i!==null&&c()&&(h=true);function O(){if(!(!h||!d)){h=false;try{d();}catch{}}}function u(){let y=a==="bearer"?i:null,[x,pe]=s?[G(),Z()]:[Z(),G()];Q(pe,t,null),Q(x,t,y);}function p(y){y!==null&&r!==null&&(s=r,r=null),i=y,u(),y!==null&&c()&&(h=true,O());}function g(y){a=y,Q(Z(),n,qo(y));}function w(){g("unknown"),h=false;}function R(){return i===null&&(i=A()),i}function N(){let y=A();return y!==null&&(i=y),i}function V(y){N()===y&&u();}function b(){m+=1,r=null,s=false,p(null),o.clear(),w();}let S=()=>a!=="cookies";return {hasToken:()=>R()!==null,declareOn(y){if(y.has("authorization"))return false;let x=R();return !x&&!S()?false:(x&&y.set("authorization",`Bearer ${x}`),y.set(Le,Fe),o.presentOn(y),true)},wantsToken:S,needsProbe:c,observe(y){let x=y.get(ze);x&&p(x),o.observe(y);},dropChallenge:o.clear,measureWith(y){d=y,O();},beginRead(){let y=R(),x=m;return {carriedToken:y!==null,endIfDead(){y!==null&&N()===y&&m===x&&b();},recordCookieVerdict(pe){if(m===x&&c()){if(g(pe?"cookies":"bearer"),pe){p(null);return}V(y);}}}},beginSession({remember:y}){m+=1,r=!y,o.clear(),w();},endSession:b}}var Rt=new Map;function Tt(e){let t=Rt.get(e);if(t)return t;let n=Ko(e);return Rt.set(e,n),n}function Bo(e,t){return t?.headers?new Headers(t.headers):typeof e=="object"&&e!==null&&"headers"in e?new Headers(e.headers):new Headers}function Et(e,t){let n=Tt(e),o=(r,a)=>(t??globalThis.fetch)(r,a);return {fetch:async(r,a)=>{if(a?.credentials==="omit"||!n.wantsToken())return o(r,a);let c=Bo(r,a),m=n.declareOn(c),d=await o(r,{...a,headers:c});return m&&n.observe(d.headers),d},probe:o,tokens:n}}function It(e){if(!e||typeof e!="object")throw new Error("AuthConfig is required");let t=Ue(e.publishableKey),n=yt(e.apiUrl,{allowHttpLoopback:t.env==="test"});return {publishableKey:e.publishableKey,apiUrl:n,decoded:t,projectBaseURL:`${n}/api/projects/${t.projectId}/auth`}}function jo(e){let t=It(e),{fetch:n,...o}=Et(t.decoded.projectId,e.fetch);return {...e,...t,fetch:n,session:o}}function Jo(e){let t=e?.enabledMethods??["password"],n=t.includes("password"),o=t.includes("passkey"),i=e?.authentication,s=e?.mfa;return {emailSignUp:i?.email.signUp??t.some(r=>r==="password"||r==="magic_link"||r==="email_otp"),passwordSignUp:i?.password.signUp??n,phoneSignUp:i?.phone.signUp??t.includes("phone_otp"),passwordSignIn:i?.email.signIn.includes("password")??n,passwordMinLength:i?.password.minLength??8,passwordMaxLength:i?.password.maxLength??128,magicLinkSignIn:i?.email.signIn.includes("magic_link")??t.includes("magic_link"),emailOtpSignIn:i?.email.signIn.includes("email_otp")??t.includes("email_otp"),phoneSignIn:i?.phone.signIn??t.includes("phone_otp"),usernameSignIn:i?.username.signIn??false,collectUsername:i?.username.collectOnSignUp??false,passkeySignIn:i?.passkey.signIn??o,passkeyAdd:i?.passkey.add??o,firstLastName:e?.userModel?.firstLastName??false,emailChange:e===null?false:e.userModel?.emailChange??true,accountDeletion:e?.userModel?.accountDeletion??e?.accountDeletion??false,emailVerificationRequired:e?.emailVerification?.required??e?.requireEmailVerification??false,emailVerificationMethod:e?.emailVerification?.method??"link",totp:s?.totp??e?.twoFactor??false,mfaRequired:s?.required??e?.mfaRequired??false,backupCodes:s?.backupCodes??e?.twoFactor??false,legacyNameField:e?.authentication===void 0}}var Go=1e4,Wo=1024*1024,D=class extends Error{kind;requestId;constructor(t,n){super(ni(t)),this.name="TransportError",this.kind=t,this.requestId=n;}},xt=new WeakSet;function U(e,t){let n=new D(e,t);return xt.add(n),n}async function vt({fetchImpl:e,url:t,init:n={},timeoutMs:o=Go,maxResponseBytes:i=Wo,allowHttpLoopback:s=false,decode:r}){Ct(o,"timeoutMs"),Ct(i,"maxResponseBytes");let a=ht(t,{allowHttpLoopback:s}),c=n.signal,m=new AbortController,d=null,h,A=new Promise(g=>{h=g;}),O=g=>{d===null&&(d=g,h({type:"abort",kind:g}),m.abort());},u=()=>O("aborted");c?.addEventListener("abort",u,{once:true});let p=setTimeout(()=>O("timeout"),o);c?.aborted&&u();try{if(d!==null)throw U(d);let g;try{g=await Promise.race([e(a.toString(),{...n,redirect:"error",signal:m.signal}).then(S=>({type:"response",response:S})),A]);}catch{throw U(d??"network")}if(g.type==="abort")throw U(g.kind);if(!$o(g.response))throw U("invalid_response");let w=g.response,R=ti(w.headers),N=await Yo(w,i,A,()=>d,R),V=Zo(w,N,R),b;try{b=w.ok&&r?r(V,Object.freeze({status:w.status})):V;}catch{throw U("invalid_response",R)}return {response:w,data:b,...R===void 0?{}:{requestId:R}}}catch(g){throw g instanceof D&&xt.has(g)?g:U(d??"network")}finally{clearTimeout(p),c?.removeEventListener("abort",u);}}function $o(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 Yo(e,t,n,o,i){let s=e.headers.get("content-length");if(s!==null){if(!/^\d+$/.test(s))throw Pt(e.body),U("invalid_response",i);if(Number(s)>t)throw Pt(e.body),U("response_too_large",i)}if(!e.body)return "";let r;try{r=e.body.getReader();}catch{throw U("network",i)}let a=[],c=0,m=null;try{for(;;){let A;try{A=await Promise.race([r.read(),n]);}catch{m=U(o()??"network",i);break}if(Xo(A)){m=U(A.kind,i);break}let{done:O,value:u}=A;if(O)break;if(u.byteLength!==0){if(c+=u.byteLength,c>t){m=U("response_too_large",i);break}a.push(u);}}}finally{m&&Qo(r);try{r.releaseLock();}catch{}}if(m)throw m;let d=new Uint8Array(c),h=0;for(let A of a)d.set(A,h),h+=A.byteLength;try{return new TextDecoder("utf-8",{fatal:!0}).decode(d)}catch{throw U("invalid_response",i)}}function Xo(e){return "type"in e&&e.type==="abort"}function Pt(e){if(e)try{e.cancel().catch(()=>{});}catch{}}function Qo(e){try{e.cancel().catch(()=>{});}catch{}}function Zo(e,t,n){if(e.status===204||e.status===205)return null;let o=ei(e.headers.get("content-type"));if(!e.ok&&(!o||t.length===0))return null;if(!o||t.length===0)throw U("invalid_response",n);try{return JSON.parse(t)}catch{if(!e.ok)return null;throw U("invalid_response",n)}}function ei(e){if(e===null)return false;let t=e.split(";",1)[0]?.trim().toLowerCase();return t==="application/json"||t?.endsWith("+json")===true}function ti(e){let t=e.get("x-request-id")?.trim();if(!(!t||t.length>256||!/^[A-Za-z0-9._:-]+$/.test(t)))return t}function Ct(e,t){if(!Number.isInteger(e)||e<=0)throw new TypeError(`${t} must be a positive integer.`)}function ni(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 fe=class extends Error{status;requestId;constructor(t,n,o){super(`${t} request failed with status ${n.status}.`),this.name="AuthOwlHttpError",this.status=n.status,this.requestId=o;}};function H(e,t,n={}){let o=new Headers(n.init?.headers);return o.set("x-publishable-key",e.publishableKey),vt({fetchImpl:e.fetch,url:t,init:{...n.init,headers:o},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 W(e,t){if(!e.response.ok)throw new fe(t,e.response,e.requestId);return e.data}var _t="x-authowl-turnstile-token",oi=1e4,ii=32,ri=2e4;function ee(e,t){return {post:(n,o,i,s)=>e.request(n,{method:"POST",body:o,fetchOptions:i,decode:s}),mutation:async(n,o)=>{let i=await n;return i.error===null&&(o===void 0||i.data!==null&&o(i.data))&&t(),i}}}function ae(e,t=e.projectBaseURL){return {async request(n,o={}){let i=ci(t,n,o.query),s=o.method??(o.body===void 0?"GET":"POST"),r=new Headers(o.fetchOptions?.headers);o.fetchOptions?.authChallengeToken&&r.set(_t,o.fetchOptions.authChallengeToken),o.body!==void 0&&r.set("content-type","application/json");let a={method:s,headers:r,credentials:o.credentials??"include",...o.body===void 0?{}:{body:JSON.stringify(o.body)}},c=Object.freeze({method:s,path:n});await o.fetchOptions?.onRequest?.(c);let m=ai(s,o.fetchOptions),d;try{d=await si(e,i,{...a,signal:o.fetchOptions?.signal},m);}catch(g){let w=Ut(g);return await o.fetchOptions?.onError?.(Me(c,w,di(g))),{data:null,error:w}}let{response:h,requestId:A}=d,O=gi(n,d.data),u=O;if(h.ok)try{u=He(O),o.decode&&(u=o.decode(u));}catch{let g=Ut(new D("invalid_response",A));return await o.fetchOptions?.onError?.(Me(c,g,"invalid_response")),{data:null,error:g}}let p=Object.freeze({...c,status:h.status,...A===void 0?{}:{requestId:A}});if(await o.fetchOptions?.onResponse?.(p),!h.ok){let g=ui(h,O,A);return g.code===Ot&&e.session.tokens.dropChallenge(),await o.fetchOptions?.onError?.(Me(c,g,"api")),{data:null,error:g}}return await o.fetchOptions?.onSuccess?.(p),{data:u,error:null}}}}async function si(e,t,n,o){let i=Date.now()+oi;for(let s=0;s<o;s+=1){let r=i-Date.now();if(r<=0)throw new D("timeout");try{let a=await H(e,t,{init:n,timeoutMs:Math.max(1,Math.ceil(r))});if(a.response.status<500||s===o-1)return a}catch(a){if(s===o-1||!(a instanceof D)||a.kind!=="network")throw a}await pi(50*2**s,n.signal,i);}throw new D("network")}function ai(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 ci(e,t,n){let o=new URL(`${e}${t.startsWith("/")?t:`/${t}`}`);for(let[i,s]of Object.entries(n??{}))s!==void 0&&o.searchParams.set(i,String(s));return o.toString()}function ui(e,t,n){let o=se(t)?t:{},i=li(o,e.headers);return {status:e.status,statusText:e.statusText,code:typeof o.code=="string"?o.code:void 0,...n===void 0?{}:{requestId:n},...typeof o.current_version=="number"?{currentVersion:o.current_version}:{},...i!==void 0?{retryAfterSeconds:i}:{},message:typeof o.message=="string"?o.message:typeof o.error=="string"?o.error:typeof o.detail=="string"?o.detail:e.statusText||"Request failed"}}function li(e,t){let n=(typeof e.retryAfterSeconds=="number"&&Number.isFinite(e.retryAfterSeconds)?e.retryAfterSeconds:void 0)??Dt(t.get("retry-after"))??Dt(t.get("x-retry-after"));if(n!==void 0)return Math.min(Math.max(Math.trunc(n),1),86400)}function Dt(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 Ut(e){let t=e instanceof D?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 D&&e.requestId?{requestId:e.requestId}:{}}}function Me(e,t,n){return Object.freeze({...e,status:t.status??0,...t.requestId===void 0?{}:{requestId:t.requestId},failure:n})}function di(e){return e instanceof D?e.kind:"network"}function pi(e,t,n){return new Promise((o,i)=>{if(t?.aborted){i(new D("aborted"));return}let s=n-Date.now();if(s<=0){i(new D("timeout"));return}let r=Math.min(e,s),a=()=>{clearTimeout(c),i(new D("aborted"));},c=setTimeout(()=>{t?.removeEventListener("abort",a),Date.now()>=n?i(new D("timeout")):o();},r);t?.addEventListener("abort",a,{once:true}),t?.aborted&&a();})}function He(e,t="",n=0,o={nodes:0}){if(o.nodes+=1,n>ii||o.nodes>ri)throw new Error("response traversal limit exceeded");if(typeof e=="string"&&/^(?:createdAt|updatedAt|expiresAt)$/.test(t)){let i=new Date(e);return Number.isNaN(i.getTime())?e:i}return Array.isArray(e)?e.map(i=>He(i,"",n+1,o)):se(e)?Object.fromEntries(Object.entries(e).map(([i,s])=>[i,fi(i)?s:He(s,i,n+1,o)])):e}function fi(e){return e==="metadata"||e==="public_metadata"||e==="unsafe_metadata"||e==="private_metadata"||e==="publicMetadata"||e==="unsafeMetadata"||e==="privateMetadata"}function gi(e,t){if(e==="/list-sessions"&&Array.isArray(t))return t.map(i=>se(i)?Ve(i):i);if(!se(t))return t;let o=e==="/change-password"||e==="/passkey/verify-authentication"||e==="/phone-otp/verify"||e==="/sign-up/email"||e.startsWith("/sign-in/")||e.startsWith("/two-factor/verify-")?Ve(t):t;return e==="/sign-up/email"&&!("sessionCreated"in o)&&(o={...o,sessionCreated:typeof t.token=="string"&&t.token.length>0}),(e==="/get-session"||e==="/passkey/verify-authentication")&&se(o.session)&&(o={...o,session:Ve(o.session)}),o}function Ve(e){if(!Object.hasOwn(e,"token"))return e;let t={...e};return delete t.token,t}function se(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}var mi=new Set(["__proto__","constructor","prototype"]);function f(e){(!e||typeof e!="object"||Array.isArray(e))&&l();let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null&&l(),e}function k(e){return typeof e!="string"&&l(),e}function E(e){return typeof e!="boolean"&&l(),e}function C(e){return (!(e instanceof Date)||Number.isNaN(e.getTime()))&&l(),e}function ge(e){return (!Array.isArray(e)||!e.every(t=>typeof t=="string"))&&l(),[...e]}function P(e,t){let n=e[t];return n==null||typeof n=="string"?n:l()}function Nt(e,t){let n=e[t];return n==null||typeof n=="boolean"?n:l()}function L(e){let t=f(e),n=t.email;return n!==null&&typeof n!="string"&&l(),{id:k(t.id),email:n,emailVerified:E(t.emailVerified),createdAt:C(t.createdAt),updatedAt:C(t.updatedAt),...z("phoneNumber",P(t,"phoneNumber")),...z("username",P(t,"username")),...z("displayUsername",P(t,"displayUsername")),...z("firstName",P(t,"firstName")),...z("lastName",P(t,"lastName")),...z("name",P(t,"name")),...z("image",P(t,"image")),...z("twoFactorEnabled",Nt(t,"twoFactorEnabled"))}}function me(e){let t=f(e),n=t.membership;return {id:k(t.id),userId:k(t.userId),expiresAt:C(t.expiresAt),...z("activeOrganizationId",P(t,"activeOrganizationId")),...z("activeTeamId",P(t,"activeTeamId")),...z("membership",n==null?n:hi(n)),...z("pendingMfaEnrollment",Nt(t,"pendingMfaEnrollment"))}}function l(){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))&&l(),Ke(e,t,n)}function Ke(e,t=20,n=1e4){return qe(e,0,{nodes:0},t,n)}function hi(e){let t=f(e);return {role:k(t.role),permissions:ge(t.permissions),...t.teams===void 0?{}:{teams:ge(t.teams)}}}function qe(e,t,n,o,i){if(n.nodes+=1,(t>o||n.nodes>i)&&l(),e===null||typeof e=="string"||typeof e=="boolean")return e;if(typeof e=="number")return Number.isFinite(e)||l(),e;if(Array.isArray(e))return e.map(a=>qe(a,t+1,n,o,i));(!e||typeof e!="object")&&l();let s=Object.getPrototypeOf(e);s!==Object.prototype&&s!==null&&l();let r={};for(let[a,c]of Object.entries(e))mi.has(a)&&l(),r[a]=qe(c,t+1,n,o,i);return r}function z(e,t){return t===void 0?{}:{[e]:t}}function zt({http:e,probe:t,tokens:n,channelName:o}){let i=new Set,s=null,r=null,a=null,c=null,m=null,d,h=b=>{u(b);};d={data:null,isPending:true,isRefetching:false,error:null,refetch:h};function A(b){d=b;for(let S of i)S();}async function O(b){return e.request("/get-session",{query:b?.query,decode:Be})}function u(b){if(b?.query?.disableCookieCache===true)return p(b);if(c)return c;let S=p(b).finally(()=>{c===S&&(c=null);});return c=S,S}async function p(b){a?.abort();let S=new AbortController;a=S,A({...d,isPending:d.data===null&&d.error===null,isRefetching:d.data!==null});let y=n.beginRead(),x=await e.request("/get-session",{query:b?.query,fetchOptions:{signal:S.signal},decode:Be});if(a===S&&(a=null,A({data:x.data,error:x.error,isPending:false,isRefetching:false,refetch:h}),x.error===null)){if(x.data===null){y.endIfDead();return}await g(y);}}async function g(b){if(n.needsProbe()){if(!b.carriedToken){b.recordCookieVerdict(true);return}return m||w(b)}}function w(b){let S=t.request("/get-session",{query:{disableCookieCache:true},decode:Be}).then(y=>{m===S&&y.error===null&&b.recordCookieVerdict(y.data!==null);}).finally(()=>{m===S&&(m=null);});return m=S,S}function R(){s?.postMessage({type:"session-changed"});}function N(){if(typeof window>"u"||r)return;let b=()=>{u();},S=()=>{document.visibilityState==="visible"&&u();};window.addEventListener("focus",b),document.addEventListener("visibilitychange",S),typeof BroadcastChannel<"u"&&(s=new BroadcastChannel(o),s.addEventListener("message",b)),r=()=>{window.removeEventListener("focus",b),document.removeEventListener("visibilitychange",S),s?.close(),s=null,r=null;};}function V(b){return i.add(b),i.size===1&&(N(),u()),()=>{if(i.delete(b),i.size===0){let S=a;a=null,c=null,S?.abort(),r?.();}}}return n.measureWith(()=>{n.needsProbe()&&w(n.beginRead());}),{store:{subscribe:V,getSnapshot:()=>d},getSession:O,notifyMutation(){R(),m&&m.catch(()=>{}).then(()=>{!n.needsProbe()&&n.hasToken()&&R();}),i.size>0&&u({query:{disableCookieCache:true}});}}}function Be(e){if(e===null)return null;let t=f(e);return (t.session===void 0||t.user===void 0)&&l(),{session:me(t.session),user:L(t.user)}}je();function Je(){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 Lt(e,t){return e.request("/user/metadata",{fetchOptions:t,decode:Mt})}async function Ft(e,t,n){return e.request("/user/metadata",{method:"PATCH",body:{expected_version:t.expectedVersion,unsafe_metadata:t.unsafeMetadata},fetchOptions:n,decode:Mt})}function Mt(e){let t=f(e),n=q(t.public_metadata),o=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:o,metadataVersion:t.metadata_version}}function Ht(e,t){let{post:n,mutation:o}=ee(e,t);return {getMetadata:i=>Lt(e,i),updateUnsafeMetadata:(i,s)=>Ft(e,i,s),updateProfile:(i,s)=>o(n("/update-user",i,s,ue)),changeEmail:(i,s)=>o(n("/change-email",i,s,ue)),changePassword:(i,s)=>o(n("/change-password",i,s,yi)),listSessions:i=>e.request("/list-sessions",{fetchOptions:i,decode:Ai}),revokeSession:({sessionId:i},s)=>o(n("/revoke-session",{sessionId:i},s,ue)),revokeOtherSessions:i=>o(n("/revoke-other-sessions",{},i,ue)),listSocialAccounts:async i=>{let s=await e.request("/list-accounts",{fetchOptions:i,decode:Oi});if(!s.data)return {data:null,error:s.error};let r=s.data.length>1;return {...s,data:s.data.filter(a=>a.providerId!=="credential").map(a=>({...a,canUnlink:r}))}},linkSocial:(i,s)=>n("/link-social",i,s,bi),unlinkSocial:(i,s)=>o(n("/unlink-account",i,s,ue)),delete:(i={},s)=>o(n("/delete-user",i,s,wi))}}function ue(e){let t=f(e);return {status:E(t.status)}}function yi(e){let t=f(e);return {user:L(t.user)}}function Ai(e){return Array.isArray(e)||l(),e.map(t=>{let n=f(t);return {id:k(n.id),userId:k(n.userId),createdAt:C(n.createdAt),updatedAt:C(n.updatedAt),expiresAt:C(n.expiresAt),...Vt("ipAddress",P(n,"ipAddress")),...Vt("userAgent",P(n,"userAgent"))}})}function Oi(e){return Array.isArray(e)||l(),e.map(t=>{let n=f(t);return {id:k(n.id),userId:k(n.userId),providerId:k(n.providerId),accountId:k(n.accountId),scopes:ge(n.scopes),createdAt:C(n.createdAt),updatedAt:C(n.updatedAt)}})}function bi(e){let t=f(e);return {url:k(t.url),redirect:E(t.redirect)}}function wi(e){let t=f(e);return {success:E(t.success),message:k(t.message)}}function Vt(e,t){return t===void 0?{}:{[e]:t}}function he(e,t){return !e||!t?false:e.permissions.includes(t)}function qt(e,t){return !e||!t?false:e.teams?.includes(t)??false}function ye(e,t){if(!e)return false;let{role:n,permission:o,teamId:i}=t;return !(n===void 0&&o===void 0&&i===void 0||n!==void 0&&e.role!==n||o!==void 0&&!e.permissions.includes(o)||i!==void 0&&!qt(e,i))}function Ri(e){return {has:t=>ye(e,t),hasPermission:t=>he(e,t.permission)}}var Si=new Set(["pending","accepted","rejected","canceled"]),Kt=1e4;function te(e,t,n){let o=f(e),i={id:T(o.id),name:T(o.name),slug:T(o.slug),createdAt:C(o.createdAt),...Ae("logo",P(o,"logo")),...Ae("metadata",o.metadata===void 0?void 0:Ke(o.metadata))};return j(i.id,t),j(i.slug,n),i}function Bt(e){return J(e,te)}function Ge(e,t,n){return e===null?null:(t===null&&l(),te(e,t,n))}function jt(e,t,n){if(e===null)return null;let o=f(e),i=te(o,t,n);return {...i,members:J(o.members,s=>rn(s,i.id)),invitations:J(o.invitations,s=>K(s,void 0,i.id))}}function Jt(e,t){let n=J(e,o=>on(o));return Oe(n.map(o=>o.organizationId),t),n}function Gt(e,t,n){return e===null?null:(t===null&&l(),on(e,t,n))}function Wt(e,t){let n=f(e);return (!Number.isSafeInteger(n.total)||n.total<0)&&l(),{members:ki(n.members,t),total:n.total}}function K(e,t,n){let o=f(e),i=T(o.status);Si.has(i)||l();let s={id:T(o.id),organizationId:T(o.organizationId),email:T(o.email),role:T(o.role),status:i,inviterId:T(o.inviterId),expiresAt:C(o.expiresAt),createdAt:C(o.createdAt)};return j(s.id,t),j(s.organizationId,n),s}function $t(e,t){let n=J(e,o=>K(o));return Oe(n.map(o=>o.organizationId),t),n}function Yt(e){return J(e,t=>{let n=f(t);return {...K(n),organizationName:T(n.organizationName)}})}function Xt(e,t){let n=f(e);return {...K(n,t),organizationName:T(n.organizationName),organizationSlug:T(n.organizationSlug),inviterEmail:T(n.inviterEmail)}}function Qt(e,t){let n=f(e),o=K(n.invitation,t);return {invitation:o,member:ne(n.member,void 0,o.organizationId)}}function Zt(e,t){let n=f(e);return n.member!==null&&l(),{invitation:n.invitation===null?null:K(n.invitation,t),member:null}}function en(e,t){return e===null?null:K(e,t)}function tn(e,t,n){let o=f(e);return {member:ne(o.member,n,t)}}function ne(e,t,n){let o=f(e),i={id:T(o.id),organizationId:T(o.organizationId),userId:T(o.userId),role:T(o.role),createdAt:C(o.createdAt),...o.user===void 0?{}:{user:sn(o.user)}};return j(i.id,t),j(i.organizationId,n),i}function nn(e,t){let n=J(e,o=>{let i=f(o);return {organizationId:T(i.organizationId),data:{role:T(i.role),...Ae("permission",i.permission===void 0?void 0:Ti(i.permission))}}});return Oe(n.map(o=>o.organizationId),t),n.map(o=>o.data)}function on(e,t,n){let o=f(e),i=o.updatedAt,s={id:T(o.id),name:T(o.name),organizationId:T(o.organizationId),createdAt:C(o.createdAt),...i===void 0?{}:{updatedAt:C(i)}};return j(s.id,t),j(s.organizationId,n),s}function rn(e,t){let n=f(e);return {...ne(n,void 0,t),user:sn(n.user)}}function ki(e,t){let n=J(e,o=>rn(o));return Oe(n.map(o=>o.organizationId),t),n}function Ti(e){let t=f(e),n={};for(let[o,i]of Object.entries(t))(o==="__proto__"||o==="constructor"||o==="prototype"||o.length===0||o.length>Kt||!Array.isArray(i))&&l(),n[o]=i.map(s=>T(s));return n}function T(e){let t=k(e);return (t.length===0||t.length>Kt)&&l(),t}function j(e,t){t!==void 0&&e!==t&&l();}function Oe(e,t){let n=t??e[0];n!==void 0&&e.some(o=>o!==n)&&l();}function sn(e){let t=f(e);return {id:T(t.id),name:T(t.name),email:T(t.email),...Ae("image",P(t,"image"))}}function J(e,t){return Array.isArray(e)||l(),e.map(n=>t(n))}function Ae(e,t){return t===void 0?{}:{[e]:t}}function an(e,t,n=()=>null){let{post:o,mutation:i}=ee(e,t),s=(r,a,c,m)=>e.request(r,{query:a,fetchOptions:c,decode:m});return {create:(r,a)=>i(o("/organization/create",r,a,te)),list:r=>s("/organization/list",void 0,r,Bt),get:(r={},a)=>s("/organization/get-full-organization",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,membersLimit:r.membersLimit},a,c=>jt(c,r.organizationId,r.organizationSlug)),setActive:(r,a)=>i(o("/organization/set-active",r,a,c=>Ge(c,r.organizationId,r.organizationSlug))),listTeams:(r={},a)=>s("/organization/list-teams",{organizationId:r.organizationId},a,c=>Jt(c,r.organizationId)),setActiveTeam:(r,a)=>i(o("/organization/set-active-team",r,a,c=>Gt(c,r.teamId))),update:(r,a)=>i(o("/organization/update",r,a,c=>Ge(c,r.organizationId))),delete:(r,a)=>i(o("/organization/delete",r,a,c=>te(c,r.organizationId))),listMembers:(r={},a)=>s("/organization/list-members",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,limit:r.limit,offset:r.offset,sortBy:r.sortBy,sortDirection:r.sortDirection,filterField:r.filterField,filterValue:r.filterValue,filterOperator:r.filterOperator},a,c=>Wt(c,r.organizationId)),inviteMember:(r,a)=>i(o("/organization/invite-member",r,a,c=>K(c,void 0,r.organizationId))),listInvitations:(r={},a)=>s("/organization/list-invitations",{organizationId:r.organizationId},a,c=>$t(c,r.organizationId)),listUserInvitations:r=>s("/organization/list-user-invitations",void 0,r,Yt),getInvitation:(r,a)=>s("/organization/get-invitation",{id:r.id},a,c=>Xt(c,r.id)),acceptInvitation:(r,a)=>i(o("/organization/accept-invitation",r,a,c=>Qt(c,r.invitationId))),rejectInvitation:(r,a)=>i(o("/organization/reject-invitation",r,a,c=>Zt(c,r.invitationId))),cancelInvitation:(r,a)=>i(o("/organization/cancel-invitation",r,a,c=>en(c,r.invitationId))),removeMember:(r,a)=>i(o("/organization/remove-member",r,a,c=>tn(c,r.organizationId,r.memberIdOrEmail.includes("@")?void 0:r.memberIdOrEmail))),updateMemberRole:(r,a)=>i(o("/organization/update-member-role",r,a,c=>ne(c,r.memberId,r.organizationId))),leave:(r,a)=>i(o("/organization/leave",r,a,c=>ne(c,void 0,r.organizationId))),listRoles:(r={},a)=>s("/organization/list-roles",{organizationId:r.organizationId},a,c=>nn(c,r.organizationId)),has:r=>ye(n(),r),hasPermission:r=>he(n(),r.permission)}}var cn=4096,Ei=4096,Ii=100,Pi=256,Ci=16,xi=64,vi=12;function $e(e){let t=f(e);return t.twoFactorRedirect===true?((t.user!==void 0||t.redirect!==void 0||t.url!==void 0)&&l(),{twoFactorRedirect:true,...t.twoFactorMethods===void 0?{}:{twoFactorMethods:En(t.twoFactorMethods,Ci,xi)}}):(t.twoFactorRedirect!==void 0&&l(),{redirect:E(t.redirect),...zi(t,"url"),user:L(t.user)})}function un(e){let t=f(e);return {user:L(t.user)}}function ln(e){let t=f(e);return {sessionCreated:E(t.sessionCreated),user:L(t.user)}}function dn(e,t){let n=f(e),o=E(n.redirect);n.user===null&&l();let i=n.user!==void 0&&n.user!==null,s=n.url!==void 0&&n.url!==null;return o?((i||!s)&&l(),{redirect:true,url:We(n.url,t)}):(i===s&&l(),i?{redirect:false,user:L(n.user)}:{redirect:false,url:We(n.url,t)})}function pn(e,t){let n=f(e);return (n.redirect!==true||n.user!==void 0)&&l(),{redirect:true,url:We(n.url,t)}}function fn(e){return {status:E(f(e).status)}}function gn(e){return {success:E(f(e).success)}}function mn(e){return f(e).status!=="pending"&&l(),{status:"pending"}}function hn(e){let t=f(e);if(t.kind==="authowl_turnstile")return {kind:"authowl_turnstile"};t.kind!=="akedly_shield_v1_2"&&l();let n=f(t.turnstile),o=n.siteKey===null?null:k(n.siteKey);return {kind:"akedly_shield_v1_2",connectionId:k(t.connectionId),challenge:k(t.challenge),difficulty:Di(t.difficulty),challengeToken:k(t.challengeToken),challengeRequired:E(t.challengeRequired),turnstile:{required:E(n.required),siteKey:o}}}function Di(e){return (!Number.isSafeInteger(e)||Number(e)<0||Number(e)>vi)&&l(),Number(e)}function yn(e){let t=f(e);return (t.status!==true||t.sessionCreated!==true)&&l(),{status:true,sessionCreated:true,user:Ui(t.user)}}function Ye(e){return {status:E(f(e).status)}}function An(e){return {status:E(f(e).status)}}function On(e){let t=f(e);return {status:E(t.status),user:L(t.user)}}function bn(e){return {success:E(f(e).success)}}function wn(e){let t=f(e);return {totpURI:Ni(t.totpURI),backupCodes:Tn(t.backupCodes)}}function Rn(e){return {status:E(f(e).status)}}function be(e){return f(e).status!==true&&l(),{status:true}}function Sn(e){return {status:E(f(e).status)}}function kn(e){let t=f(e);return t.status!==void 0&&t.status!==true&&l(),{backupCodes:Tn(t.backupCodes)}}function Ui(e){let t=f(e);return {id:oe(t.id,512),...Li(t,"name",1024),phoneNumber:oe(t.phoneNumber,64),phoneNumberVerified:E(t.phoneNumberVerified),...t.createdAt===void 0?{}:{createdAt:C(t.createdAt)},...t.updatedAt===void 0?{}:{updatedAt:C(t.updatedAt)}}}function We(e,t){let n=oe(e,cn);/[\u0000-\u0020\u007f]/u.test(n)&&l();let o;try{o=new URL(n);}catch{return l()}return (o.username||o.password)&&l(),o.protocol==="https:"||t&&o.protocol==="http:"&&_i(o.hostname)?o.href:l()}function _i(e){let t=e.toLowerCase();return t==="localhost"||t==="127.0.0.1"||t==="[::1]"}function Ni(e){let t=oe(e,Ei),n;try{n=new URL(t);}catch{return l()}let o=n.searchParams.get("secret");return (n.protocol!=="otpauth:"||n.hostname.toLowerCase()!=="totp"||n.username||n.password||n.hash||o===null||o.length===0||o.length>512||/\s/u.test(o))&&l(),t}function Tn(e){return En(e,Ii,Pi)}function En(e,t,n){(!Array.isArray(e)||e.length===0||e.length>t)&&l();let o=e.map(i=>oe(i,n));return o.some(i=>i.trim().length===0)&&l(),new Set(o).size!==o.length&&l(),o}function oe(e,t){let n=k(e);return (n.length===0||n.length>t)&&l(),n}function zi(e,t){let n=e[t];return n==null?{}:{[t]:oe(n,cn)}}function Li(e,t,n){let o=P(e,t);return o===void 0?{}:(o!==null&&o.length>n&&l(),{[t]:o})}var In=new Set([1564,8206,8207,8234,8235,8236,8237,8238,8294,8295,8296,8297]),we=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 Re(e){if(e===void 0)return {valid:true,value:void 0};for(let n of e){let o=n.codePointAt(0);if(o===void 0||Cn(n,o)||Pn(o)||In.has(o))return {valid:false}}let t=Fi(e);return Xe(t)?{valid:true,value:t}:{valid:false}}function Xe(e){let t=0,n,o;for(let i of e){if(t+=1,t>256)return false;let s=i.codePointAt(0);if(s===void 0||Cn(i,s)||Pn(s)||In.has(s))return false;n??=s,o=s;}return t>0&&n!==void 0&&o!==void 0&&!we.has(n)&&!we.has(o)}function Se(){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 Fi(e){let t=0,n=e.length;for(;t<n;){let o=e.codePointAt(t);if(o===void 0||!we.has(o))break;t+=o>65535?2:1;}for(;n>t;){let o=e.codePointAt(n-1);if(o===void 0)break;let s=o>=56320&&o<=57343?n-2:n-1,r=e.codePointAt(s);if(r===void 0||!we.has(r))break;n=s;}return e.slice(t,n)}function Pn(e){return e>=0&&e<=31||e>=127&&e<=159}function Cn(e,t){return e.length===1&&t>=55296&&t<=57343}var Dn=12,Un=5e3,Mi=8,Vi=1e3,Hi=16,xn=512,_n=100,Nn=8192,qi=32768,Qe=1024,vn=256,et=64,Ki=6e5,Bi=/^[A-Za-z0-9_-]+$/u,ji=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u,Ji=/[\u0000-\u001f\u007f-\u009f\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/u,Gi=/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$/u,Wi=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu,zn=new Set(["discouraged","preferred","required"]),$i=new Set(["singleDevice","multiDevice"]),Ln=new Set(["ble","cable","hybrid","internal","nfc","smart-card","usb"]),Fn=new Set(["hybrid","security-key","client-device"]),Yi=new Set(["none","indirect","direct","enterprise"]),Xi=new Set(["fido-u2f","packed","android-safetynet","android-key","tpm","apple","none"]),Qi=new Set(["platform","cross-platform"]),Zi=new Set(["discouraged","preferred","required"]),er=new Set([-8,-7,-257]);function Mn(e){let t=q(e,Dn,Un);return {challenge:$n(t.challenge),...v("timeout",Gn(t.timeout)),...v("rpId",Yn(t.rpId)),...v("allowCredentials",Jn(t.allowCredentials)),...v("userVerification",le(t.userVerification,zn)),...v("hints",ke(t.hints,Fn)),...v("extensions",Wn(t.extensions))}}function Vn(e){let t=q(e,Dn,Un);return {challenge:$n(t.challenge),rp:tr(t.rp),user:nr(t.user),pubKeyCredParams:or(t.pubKeyCredParams),...v("timeout",Gn(t.timeout)),...v("excludeCredentials",Jn(t.excludeCredentials)),...v("authenticatorSelection",ir(t.authenticatorSelection)),...v("attestation",le(t.attestation,Yi)),...v("attestationFormats",ke(t.attestationFormats,Xi)),...v("hints",ke(t.hints,Fn)),...v("extensions",Wn(t.extensions))}}function Hn(e){let t=f(e),n=me(t.session),o=L(t.user);return n.userId!==o.id&&l(),{session:n,user:o}}function tt(e){let t=f(e),n=t.counter;(!Number.isSafeInteger(n)||n<0)&&l();let o=nt(t.deviceType,$i),i=E(t.backedUp);return i&&o!=="multiDevice"&&l(),{id:ie(t.id,vn),...ar(t),publicKey:rr(t.publicKey,qi),userId:ie(t.userId,vn),credentialID:Ee(t.credentialID,Nn),counter:n,deviceType:o,backedUp:i,...cr(t),createdAt:C(t.createdAt),...ur(t)}}function qn(e,t,n){let o=tt(e);return (o.credentialID!==t||(n===void 0?o.name!==void 0&&o.name!==null:o.name!==n))&&l(),o}function Kn(e){(!Array.isArray(e)||e.length>_n)&&l();let t=e.map(tt);return Te(t.map(n=>n.id)),Te(t.map(n=>n.credentialID)),t.length>1&&t.some(n=>n.userId!==t[0]?.userId)&&l(),t}function Bn(e,t,n){let o=f(e),i=tt(o.passkey);return (i.id!==t||i.name!==n)&&l(),{passkey:i}}function jn(e){return f(e).status!==true&&l(),{status:true}}function tr(e){let t=f(e);return {name:Ze(t.name,Qe),...v("id",Yn(t.id))}}function nr(e){let t=f(e);return {id:Ee(t.id,128,1,64),name:Ze(t.name,Qe),displayName:Ze(t.displayName,Qe)}}function or(e){(!Array.isArray(e)||e.length===0||e.length>et)&&l();let t=e.map(n=>{let o=f(n);return (o.type!=="public-key"||!Number.isSafeInteger(o.alg)||!er.has(o.alg))&&l(),{type:"public-key",alg:o.alg}});return lr(t.map(n=>n.alg)),t}function Jn(e){if(e===void 0)return;(!Array.isArray(e)||e.length>_n)&&l();let t=e.map(n=>{let o=f(n);return o.type!=="public-key"&&l(),{type:"public-key",id:Ee(o.id,Nn),...v("transports",ke(o.transports,Ln))}});return Te(t.map(n=>n.id)),t}function ir(e){if(e===void 0)return;let t=f(e);t.requireResidentKey!==void 0&&typeof t.requireResidentKey!="boolean"&&l();let n=le(t.residentKey,Zi);return t.requireResidentKey!==void 0&&n!==void 0&&t.requireResidentKey!==(n==="required")&&l(),{...v("authenticatorAttachment",le(t.authenticatorAttachment,Qi)),...v("residentKey",n),...v("requireResidentKey",t.requireResidentKey),...v("userVerification",le(t.userVerification,zn))}}function Gn(e){return e!==void 0&&(typeof e!="number"||!Number.isFinite(e)||e<0||e>Ki)&&l(),e}function Wn(e){return e===void 0?void 0:q(e,Mi,Vi)}function ke(e,t){if(e===void 0)return;(!Array.isArray(e)||e.length>et)&&l();let n=e.map(o=>nt(o,t));return Te(n),n}function le(e,t){if(e!==void 0)return nt(e,t)}function $n(e){return Ee(e,Math.ceil(xn*4/3),Hi,xn)}function Ee(e,t,n=1,o=Number.POSITIVE_INFINITY){let i=ie(e,t),s=i.length%4,r=sr(i.at(-1)??""),a=Math.floor(i.length*3/4);return (!Bi.test(i)||s===1||s===2&&(r&15)!==0||s===3&&(r&3)!==0||a<n||a>o)&&l(),i}function ie(e,t){let n=k(e);return (n.length===0||n.length>t)&&l(),n}function Ze(e,t){let n=ie(e,t);return Ji.test(n)&&l(),n}function Yn(e){if(e===void 0)return;let t=ie(e,253);return t!=="localhost"&&(t.endsWith(".")||!t.includes(".")||t.split(".").some(n=>!Gi.test(n)))&&l(),t}function rr(e,t){let n=ie(e,t),o=n.endsWith("=="),i=!o&&n.endsWith("="),s=n.at(o?-3:i?-2:-1)??"",r=Xn(s);return (n.length%4!==0||!ji.test(n)||o&&(r&15)!==0||i&&(r&3)!==0)&&l(),n}function sr(e){return Xn(e,true)}function Xn(e,t=false){return (t?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").indexOf(e)}function ar(e){let t=P(e,"name");return t===void 0?{}:(t!==null&&!Xe(t)&&l(),{name:t})}function cr(e){let t=P(e,"transports");if(t==null||t==="")return t===void 0?{}:{transports:t};let n=t.split(",");return (n.length>et||n.some(o=>!Ln.has(o))||new Set(n).size!==n.length)&&l(),{transports:t}}function ur(e){let t=P(e,"aaguid");return t==null?t===void 0?{}:{aaguid:null}:(Wi.test(t)||l(),{aaguid:t})}function nt(e,t){let n=k(e);return t.has(n)||l(),n}function v(e,t){return t===void 0?{}:{[e]:t}}function Te(e){new Set(e).size!==e.length&&l();}function lr(e){new Set(e).size!==e.length&&l();}function Or(e,t){if(!t)return e;let n=t.catch(()=>{});return n.then(()=>{n=null;}),{async request(o,i){return n&&await n,e.request(o,i)}}}var oo=new Map;function br(e,t,n){let o=oo.get(n);if(!o){let i=new URLSearchParams(window.location.hash.slice(1)).get("authowl_code");if(!i)return;o=Promise.resolve().then(()=>(Pe(),Ie)).then(s=>s.completeCrossSiteSignIn(e,t,i)),oo.set(n,o);}return o}function io(e){return !ce()||e.idToken||e.disableRedirect?"legacy":"first-party"}function so(e,t=()=>{},n=wr){let o=ae(e),i=e.session.tokens,s=ce()?br(o,i,e.decoded.projectId):void 0,r=Or(o,s),a=zt({http:r,probe:ae({...e,fetch:e.session.probe}),tokens:i,channelName:`authowl:${e.decoded.projectId}`}),c=n(r,a.notifyMutation),m=()=>{a.notifyMutation(),t();},{post:d,mutation:h}=ee(r,m),A=e.decoded.env==="test",O=u=>{i.beginSession({remember:u?.rememberMe!==false});};return {sessionStore:a.store,getSession:a.getSession,account:Ht(r,m),organization:an(r,m,()=>a.store.getSnapshot().data?.session.membership??null),signIn:{email:(u,p)=>(O(u),h(d("/sign-in/email",u,p,$e),g=>!("twoFactorRedirect"in g))),username:(u,p)=>(O(u),h(d("/sign-in/username",u,p,$e),g=>!("twoFactorRedirect"in g))),social:async(u,p)=>{if(O(),io(u)==="first-party"){let{beginCrossSiteSignIn:w}=await Promise.resolve().then(()=>(Pe(),Ie)),R=await w(e,{kind:"social",provider:u.provider,callbackURL:u.callbackURL,errorCallbackURL:u.errorCallbackURL,newUserCallbackURL:u.newUserCallbackURL,scopes:u.scopes,loginHint:u.loginHint,requestSignUp:u.requestSignUp});if(R)return window.location.assign(R),{data:{redirect:true,url:R},error:null}}let g=await h(d("/sign-in/social",u,p,w=>dn(w,A)),w=>"user"in w);return g.error!==null||g.data===null||"url"in g.data&&g.data.redirect&&!u.disableRedirect&&typeof window<"u"&&window.location.assign(g.data.url),g},sso:async(u,p)=>{if(io(u)==="first-party"){let{beginCrossSiteSignIn:w}=await Promise.resolve().then(()=>(Pe(),Ie)),R=await w(e,{kind:"sso",email:u.email,providerId:u.providerId,domain:u.domain,organizationSlug:u.organizationSlug,callbackURL:u.callbackURL,errorCallbackURL:u.errorCallbackURL,newUserCallbackURL:u.newUserCallbackURL});if(R)return window.location.assign(R),{data:{url:R,redirect:true},error:null}}let g=await d("/sign-in/sso",u,p,w=>pn(w,A));return g.error!==null||g.data===null||typeof window<"u"&&window.location.assign(g.data.url),g},magicLink:(u,p)=>d("/sign-in/magic-link",u,p,fn),emailOtp:(u,p)=>(O(),h(d("/sign-in/email-otp",u,p,un))),passkey:(u,p)=>(O(),c.signIn(u,p))},signUp:{email:(u,p)=>(O(),h(d("/sign-up/email",u,p,ln),g=>g.sessionCreated))},emailOtp:{sendVerificationOtp:(u,p)=>d("/email-otp/send-verification-otp",u,p,gn),verifyEmail:(u,p)=>(O(),h(d("/email-otp/verify-email",u,p,On)))},phoneOtp:{prepare:u=>d("/phone-otp/challenge",{},u,hn),start:(u,p)=>d("/phone-otp/start",{...u,idempotencyKey:u.idempotencyKey??Je()},p,mn),verify:(u,p)=>(O(),h(d("/phone-otp/verify",u,p,yn)))},requestPasswordReset:(u,p)=>d("/request-password-reset",u,p,Ye),resetPassword:(u,p)=>d("/reset-password",u,p,Ye),sendVerificationEmail:(u,p)=>d("/send-verification-email",u,p,An),passkey:{addPasskey:(u,p)=>c.add(u,p),listUserPasskeys:()=>r.request("/passkey/list-user-passkeys",{decode:Kn}),updatePasskey:async(u,p)=>{let g=Re(u.name);if(!g.valid||g.value===void 0)return Se();let w=g.value;return d("/passkey/update-passkey",{...u,name:w},p,R=>Bn(R,u.id,w))},deletePasskey:(u,p)=>d("/passkey/delete-passkey",u,p,jn)},twoFactor:{enable:(u,p)=>d("/two-factor/enable",u,p,wn),disable:(u,p)=>h(d("/two-factor/disable",u,p,Rn),g=>g.status),verifyTotp:(u,p)=>h(d("/two-factor/verify-totp",u,p,be)),verifyBackupCode:(u,p)=>h(d("/two-factor/verify-backup-code",u,p,be)),sendOtp:(u={},p)=>d("/two-factor/send-otp",u,p,Sn),verifyOtp:(u,p)=>h(d("/two-factor/verify-otp",u,p,be)),generateBackupCodes:(u,p)=>d("/two-factor/generate-backup-codes",u,p,kn)},signOut:u=>h(r.request("/sign-out",{method:"POST",body:{},fetchOptions:u,decode:bn}).then(p=>(i.endSession(),p)),p=>p.success)}}function wr(){return {signIn:()=>ro(),add:()=>ro()}}function ro(){return Promise.resolve({data:null,error:{status:400,statusText:"BAD_REQUEST",code:"PASSKEY_BROWSER_REQUIRED",message:"This passkey ceremony requires a browser with WebAuthn."}})}function fo(e,t,n){let o=new Map;return {async signIn(i={},s){let r=await e.request("/passkey/generate-authenticate-options");if(!r.data)return uo(r.error);let a;try{a=Mn(r.data);}catch{return ao()}let c;try{c=await n.authenticate({optionsJSON:a,useBrowserAutofill:i.autoFill});}catch(O){return lo(n,O,"AUTH_CANCELLED","Passkey authentication was cancelled.")}if(!Rr(c))return co();let{clientExtensionResults:m,...d}=c,h=o.get(c.id);if(h)return h;let A=(async()=>{let O=await e.request("/passkey/verify-authentication",{method:"POST",body:{response:d},fetchOptions:s,decode:Hn});return O.data&&t(),O})();o.set(c.id,A);try{return await A}finally{o.get(c.id)===A&&o.delete(c.id);}},async add(i={},s){let r=Re(i.name);if(!r.valid)return Se();let a=await e.request("/passkey/generate-register-options",{query:{name:r.value,authenticatorAttachment:i.authenticatorAttachment}});if(!a.data)return uo(a.error);let c;try{c=Vn(a.data);}catch{return ao()}let m;try{m=await n.register({optionsJSON:c});}catch(O){return lo(n,O,"REGISTRATION_CANCELLED","Passkey registration was cancelled.")}if(!Sr(m))return co();let{clientExtensionResults:d,...h}=m,A=await e.request("/passkey/verify-registration",{method:"POST",body:{response:h,name:r.value},fetchOptions:s,decode:O=>qn(O,m.id,r.value)});return A.data&&t(),A}}}function ao(){return {data:null,error:{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned invalid WebAuthn options."}}}function co(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_WEBAUTHN_RESPONSE",message:"The platform returned an invalid passkey response."}}}function go(e){if(!e||typeof e!="object")return false;let t=e;return typeof t.id=="string"&&t.id.length>0&&typeof t.rawId=="string"&&t.rawId.length>0&&t.type==="public-key"&&!!t.response&&typeof t.response=="object"}function Rr(e){if(!go(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.authenticatorData=="string"&&typeof t.signature=="string"&&(t.userHandle===void 0||typeof t.userHandle=="string")}function Sr(e){if(!go(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.attestationObject=="string"}function uo(e){return {data:null,error:e??{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned no WebAuthn options."}}}function lo(e,t,n,o){let i=Tr(t,"page does not have focus"),s=e.errorCode?.(t),r=s!==void 0?s==="ERROR_CEREMONY_ABORTED":po(t)==="AbortError",a=n!=="AUTH_CANCELLED",c=kr(s,po(t),a);return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:i?"PASSKEY_PAGE_NOT_FOCUSED":r?n:s??"PASSKEY_BROWSER_ERROR",message:i?"Keep this page focused while completing the passkey prompt.":r?o:c}}}function kr(e,t,n){switch(e){case "ERROR_INVALID_DOMAIN":case "ERROR_INVALID_RP_ID":return "Passkeys are not set up for this site\u2019s domain.";case "ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED":return "This device already has a passkey for this account.";case "ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEY_ALGS":case "ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT":case "ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT":return "This device cannot create a passkey for this site.";}return t==="NotAllowedError"?n?"No passkey was created. The prompt was dismissed or timed out.":"No passkey was used. This device may not have one saved for this site yet, or the prompt was dismissed.":t==="SecurityError"?"Passkeys are not set up for this site\u2019s domain.":n?"Passkey registration did not complete.":"Passkey sign-in did not complete."}function po(e){return e&&typeof e=="object"&&"name"in e&&typeof e.name=="string"?e.name:void 0}function Tr(e,t){let n=t.toLowerCase(),o=new Set,i=e;for(;i&&typeof i=="object"&&!o.has(i);){if(o.add(i),"message"in i&&typeof i.message=="string"&&i.message.toLowerCase().includes(n))return true;i="cause"in i?i.cause:void 0;}return false}function F(e){let t=new Uint8Array(e),n="";for(let i of t)n+=String.fromCharCode(i);return btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function $(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),n=(4-t.length%4)%4,o=t.padEnd(t.length+n,"="),i=atob(o),s=new ArrayBuffer(i.length),r=new Uint8Array(s);for(let a=0;a<i.length;a++)r[a]=i.charCodeAt(a);return s}function Y(){return Er.stubThis(globalThis?.PublicKeyCredential!==void 0&&typeof globalThis.PublicKeyCredential=="function")}var Er={stubThis:e=>e};function Ce(e){let{id:t}=e;return {...e,id:$(t),transports:e.transports}}function xe(e){return e==="localhost"||/^((xn--[a-z0-9-]+|[a-z0-9]+(-[a-z0-9]+)*)\.)+([a-z]{2,}|xn--[a-z0-9-]+)$/i.test(e)}var I=class extends Error{constructor({message:t,code:n,cause:o,name:i}){super(t,{cause:o}),Object.defineProperty(this,"code",{enumerable:true,configurable:true,writable:true,value:void 0}),this.name=i??o.name,this.code=n;}};function mo({error:e,options:t}){let{publicKey:n}=t;if(!n)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(t.signal instanceof AbortSignal)return new I({message:"Registration ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else if(e.name==="ConstraintError"){if(n.authenticatorSelection?.requireResidentKey===true)return new I({message:"Discoverable credentials were required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT",cause:e});if(t.mediation==="conditional"&&n.authenticatorSelection?.userVerification==="required")return new I({message:"User verification was required during automatic registration but it could not be performed",code:"ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE",cause:e});if(n.authenticatorSelection?.userVerification==="required")return new I({message:"User verification was required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT",cause:e})}else {if(e.name==="InvalidStateError")return new I({message:"The authenticator was previously registered",code:"ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED",cause:e});if(e.name==="NotAllowedError")return new I({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="NotSupportedError")return n.pubKeyCredParams.filter(i=>i.type==="public-key").length===0?new I({message:'No entry in pubKeyCredParams was of type "public-key"',code:"ERROR_MALFORMED_PUBKEYCREDPARAMS",cause:e}):new I({message:"No available authenticator supported any of the specified pubKeyCredParams algorithms",code:"ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG",cause:e});if(e.name==="SecurityError"){let o=globalThis.location.hostname;if(xe(o)){if(n.rp.id!==o)return new I({message:`The RP ID "${n.rp.id}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new I({message:`${globalThis.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="TypeError"){if(n.user.id.byteLength<1||n.user.id.byteLength>64)return new I({message:"User ID was not between 1 and 64 characters",code:"ERROR_INVALID_USER_ID_LENGTH",cause:e})}else if(e.name==="UnknownError")return new I({message:"The authenticator was unable to process the specified options, or could not create a new credential",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return e}var rt=class{constructor(){Object.defineProperty(this,"controller",{enumerable:true,configurable:true,writable:true,value:void 0});}createNewAbortSignal(){if(this.controller){let n=new Error("Cancelling existing WebAuthn API call for new one");n.name="AbortError",this.controller.abort(n);}let t=new AbortController;return this.controller=t,t.signal}cancelCeremony(){if(this.controller){let t=new Error("Manually cancelling existing WebAuthn API call");t.name="AbortError",this.controller.abort(t),this.controller=void 0;}}},ve=new rt;var Ir=["cross-platform","platform"];function De(e){if(e&&!(Ir.indexOf(e)<0))return e}async function ho(e){!e.optionsJSON&&e.challenge&&(console.warn("startRegistration() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information."),e={optionsJSON:e});let{optionsJSON:t,useAutoRegister:n=false}=e;if(!Y())throw new Error("WebAuthn is not supported in this browser");let o={...t,challenge:$(t.challenge),user:{...t.user,id:$(t.user.id)},excludeCredentials:t.excludeCredentials?.map(Ce)},i={};n&&(i.mediation="conditional"),i.publicKey=o,i.signal=ve.createNewAbortSignal();let s;try{s=await navigator.credentials.create(i);}catch(u){throw mo({error:u,options:i})}if(!s)throw new Error("Registration was not completed");let{id:r,rawId:a,response:c,type:m}=s,d;typeof c.getTransports=="function"&&(d=c.getTransports());let h;if(typeof c.getPublicKeyAlgorithm=="function")try{h=c.getPublicKeyAlgorithm();}catch(u){st("getPublicKeyAlgorithm()",u);}let A;if(typeof c.getPublicKey=="function")try{let u=c.getPublicKey();u!==null&&(A=F(u));}catch(u){st("getPublicKey()",u);}let O;if(typeof c.getAuthenticatorData=="function")try{O=F(c.getAuthenticatorData());}catch(u){st("getAuthenticatorData()",u);}return {id:r,rawId:F(a),response:{attestationObject:F(c.attestationObject),clientDataJSON:F(c.clientDataJSON),transports:d,publicKeyAlgorithm:h,publicKey:A,authenticatorData:O},type:m,clientExtensionResults:s.getClientExtensionResults(),authenticatorAttachment:De(s.authenticatorAttachment)}}function st(e,t){console.warn(`The browser extension that intercepted this WebAuthn API call incorrectly implemented ${e}. You should report this error to them.
|
|
2
|
-
`,t);}function yo(){if(!Y())return at.stubThis(new Promise(t=>t(false)));let e=globalThis.PublicKeyCredential;return e?.isConditionalMediationAvailable===void 0?at.stubThis(new Promise(t=>t(false))):at.stubThis(e.isConditionalMediationAvailable())}var at={stubThis:e=>e};function Ao({error:e,options:t}){let{publicKey:n}=t;if(!n)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(t.signal instanceof AbortSignal)return new I({message:"Authentication ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else {if(e.name==="NotAllowedError")return new I({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="SecurityError"){let o=globalThis.location.hostname;if(xe(o)){if(n.rpId!==o)return new I({message:`The RP ID "${n.rpId}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new I({message:`${globalThis.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="UnknownError")return new I({message:"The authenticator was unable to process the specified options, or could not create a new assertion signature",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return e}async function Oo(e){!e.optionsJSON&&e.challenge&&(console.warn("startAuthentication() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information."),e={optionsJSON:e});let{optionsJSON:t,useBrowserAutofill:n=false,verifyBrowserAutofillInput:o=true}=e;if(!Y())throw new Error("WebAuthn is not supported in this browser");let i;t.allowCredentials?.length!==0&&(i=t.allowCredentials?.map(Ce));let s={...t,challenge:$(t.challenge),allowCredentials:i},r={};if(n){if(!await yo())throw Error("Browser does not support WebAuthn autofill");if(document.querySelectorAll("input[autocomplete$='webauthn']").length<1&&o)throw Error('No <input> with "webauthn" as the only or last value in its `autocomplete` attribute was detected');r.mediation="conditional",s.allowCredentials=[];}r.publicKey=s,r.signal=ve.createNewAbortSignal();let a;try{a=await navigator.credentials.get(r);}catch(O){throw Ao({error:O,options:r})}if(!a)throw new Error("Authentication was not completed");let{id:c,rawId:m,response:d,type:h}=a,A;return d.userHandle&&(A=F(d.userHandle)),{id:c,rawId:F(m),response:{authenticatorData:F(d.authenticatorData),clientDataJSON:F(d.clientDataJSON),signature:F(d.signature),userHandle:A},type:h,clientExtensionResults:a.getClientExtensionResults(),authenticatorAttachment:De(a.authenticatorAttachment)}}var bo={authenticate:e=>Oo(e),register:e=>ho(e),errorCode:e=>e instanceof I?e.code:void 0};function Ro(e){return `${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/consent`}async function ct(e){let t=await H(e,Ro(e),{init:{method:"GET",credentials:"include"},maxResponseBytes:65536,decode:Pr});return t.response.status===401?{required:false}:W(t,"consent status")}async function ut(e,t){if(!Number.isSafeInteger(t)||t<1)throw new TypeError("Consent version must be a positive integer.");return W(await H(e,Ro(e),{init:{method:"POST",headers:{"content-type":"application/json"},credentials:"include",body:JSON.stringify({version:t})},maxResponseBytes:64*1024,decode:Cr}),"consent accept")}function Pr(e){let t=f(e),n=E(t.required),o=xr(t.needsConsent),i=So(t.version),s=wo(t.termsUrl),r=wo(t.privacyUrl);return {required:n,...o===void 0?{}:{needsConsent:o},...i===void 0?{}:{version:i},...s===void 0?{}:{termsUrl:s},...r===void 0?{}:{privacyUrl:r}}}function Cr(e){let t=f(e),n=So(t.version);return {ok:E(t.ok),...n===void 0?{}:{version:n}}}function xr(e){if(e===void 0||typeof e=="boolean")return e;throw new TypeError("Invalid consent response.")}function So(e){if(e===void 0||Number.isSafeInteger(e)&&e>=1)return e;throw new TypeError("Invalid consent response.")}function wo(e){if(e===void 0||typeof e=="string"&&e.length<=4096)return e;throw new TypeError("Invalid consent response.")}var vr=30;function Dr(e){return typeof e?.exp=="number"?e.exp:null}function Ur(e){let t=e.split(".")[1];if(!t)return null;try{let n=t.replace(/-/g,"+").replace(/_/g,"/"),o=JSON.parse(atob(n));return typeof o=="object"&&o!==null?o:null}catch{return null}}function lt(e){let t=new Map;async function n(s={}){let r=s.template===void 0?null:s.template.trim().toLowerCase();if(r==="")throw new TypeError("Template missing");let a=r??"",c=t.get(a);c||(c={activeKey:null,cachedByKey:new Map,inflight:null,sequence:0},t.set(a,c));let m=s.forceRefresh===true;if(!m){let u=c.activeKey?c.cachedByKey.get(c.activeKey):null;if(u&&u.exp-Date.now()/1e3>vr)return u.token;if(c.inflight)return c.inflight}let d=++c.sequence,h=()=>t.get(a)===c&&c.sequence===d,A=(async()=>{let u=r?`${e.projectBaseURL}/token/${encodeURIComponent(r)}`:`${e.projectBaseURL}/token`,p=await H(e,u,{init:{method:"GET",credentials:"include"},maxResponseBytes:64*1024,decode:b=>_r(b,r!==null)});if(p.response.status===401)return h()&&o(),null;let g=W(p,"token"),w=g.policyVersion,R=g.token,N=Ur(R),V=Dr(N);if(h())if(V!==null){let b=typeof N?.sub=="string"?N.sub:null,S=typeof N?.org_id=="string"?N.org_id:null;if(!r||b){let y=JSON.stringify([e.projectBaseURL,b,S,r,w]);c.cachedByKey.clear(),c.cachedByKey.set(y,{token:R,exp:V}),c.activeKey=y;}else i(c);}else i(c);return R})();if(m)return A;let O=A.finally(()=>{c.inflight===O&&(c.inflight=null);});return c.inflight=O,O}function o(){t.clear();}function i(s){s.cachedByKey.clear(),s.activeKey=null;}return {getToken:n,clear:o}}function _r(e,t){let n=f(e),o=k(n.token);if(o.length===0||o.length>32*1024)throw new TypeError("Invalid token response.");if(!t)return {token:o,policyVersion:0};let i=f(n.template);if(!Number.isSafeInteger(i.policyVersion)||i.policyVersion<1)throw new TypeError("Invalid token response.");return {token:o,policyVersion:i.policyVersion}}function Nr(e){let t=lt(e),n=so(e,t.clear,(r,a)=>fo(r,a,bo)),o=ae(e,`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}`),i=r=>(...a)=>(t.clear(),r(...a)),s={getConsentStatus:()=>ct(e),acceptConsent:r=>ut(e,r),getToken:t.getToken,waitlist:{join:(r,a)=>o.request("/waitlist",{method:"POST",body:r,fetchOptions:a,credentials:"omit"})},account:{...n.account,updateUnsafeMetadata:i(n.account.updateUnsafeMetadata),updateProfile:i(n.account.updateProfile),changeEmail:i(n.account.changeEmail),changePassword:i(n.account.changePassword),revokeSession:i(n.account.revokeSession),delete:i(n.account.delete)},signIn:{email:i(n.signIn.email),username:i(n.signIn.username),social:i(n.signIn.social),sso:n.signIn.sso,magicLink:n.signIn.magicLink,emailOtp:i(n.signIn.emailOtp),passkey:i(n.signIn.passkey)},signUp:{email:i(n.signUp.email)},emailOtp:{...n.emailOtp,verifyEmail:i(n.emailOtp.verifyEmail)},twoFactor:{enable:n.twoFactor.enable,disable:i(n.twoFactor.disable),verifyTotp:i(n.twoFactor.verifyTotp),verifyBackupCode:i(n.twoFactor.verifyBackupCode),sendOtp:n.twoFactor.sendOtp,verifyOtp:i(n.twoFactor.verifyOtp),generateBackupCodes:n.twoFactor.generateBackupCodes},phoneOtp:{prepare:n.phoneOtp.prepare,start:n.phoneOtp.start,verify:i(n.phoneOtp.verify)},signOut:i(n.signOut)};return {...n,...s}}async function zr(e){if(typeof window>"u")throw new Error("Akedly Shield challenges must be solved in a browser.");let t=await Lr(),n=e.challengeRequired?await t.solvePow(e.challenge,e.difficulty):null,o=e.turnstile.required?await t.getTurnstileToken(Fr(e.turnstile.siteKey)):void 0;return {connectionId:e.connectionId,...n?{challengeToken:e.challengeToken,nonce:n.nonce}:{},...o?{turnstileToken:o}:{}}}async function Lr(){return import('@akedly/shield')}function Fr(e){if(!e)throw new Error("Akedly Shield did not provide a Turnstile site key.");return e}async function Mr(e){let n=`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/public-config`;return W(await H(e,n,{init:{method:"GET",credentials:"omit"},maxResponseBytes:256*1024,decode:o=>Vr(o,e)}),"public-config")}function Vr(e,t){let n=q(e),o=n.environmentId,i=n.environmentType,s=`${new URL(t.apiUrl).origin}/api/projects/${t.decoded.projectId}/auth`;if(typeof n.applicationId!="string"||!Hr(n.applicationId)||o!==t.decoded.projectId||i!=="development"&&i!=="production"||n.authBaseUrl!==s)throw M();let r=_(n.branding),a=_(n.legal);if(!dt(n.enabledMethods,64)||!dt(n.socialProviders,64)||!To(r,["appName","logoUrl","primaryColor"])||r.showAppName!==void 0&&typeof r.showAppName!="boolean"||r.alignment!==void 0&&r.alignment!=="left"&&r.alignment!=="center"&&r.alignment!=="right"||r.theme!==void 0&&r.theme!=="light"&&r.theme!=="dark"&&r.theme!=="system"||!To(a,["termsUrl","privacyUrl"])||!Number.isSafeInteger(a.version)||a.version<0||typeof a.required!="boolean")throw M();if(n.socialProviderClientIds!==void 0){let c=_(n.socialProviderClientIds);if(Object.keys(c).length>64||Object.values(c).some(m=>typeof m!="string"||m.length>2048))throw M()}if(!B(n,["requireEmailVerification","twoFactor","mfaRequired","accountDeletion","organizations","sso","badge"])||!ko(n.turnstileSiteKey)||!ko(n.authTurnstileSiteKey)||typeof n.locale!="string"||n.locale.length===0||n.locale.length>64||!Number.isSafeInteger(n.configVersion)||n.configVersion<0)throw M();if(n.jwtIssuer!==null){let c=_(n.jwtIssuer);if(c.issuer!==s||c.jwksUrl!==`${s}/jwks`||c.aud!==t.decoded.projectId)throw M()}if(n.signUp!==void 0){let c=_(n.signUp).mode;if(typeof c!="string"||!["open","restricted","allowlist","waitlist"].includes(c))throw M()}if(n.authentication!==void 0&&qr(n.authentication),n.emailVerification!==void 0){let c=_(n.emailVerification);if(!B(c,["required"])||c.method!=="link"&&c.method!=="code")throw M()}if(n.userModel!==void 0&&!B(_(n.userModel),["requireEmail","firstLastName","emailChange","accountDeletion"]))throw M();if(n.mfa!==void 0){let c=_(n.mfa);if(!B(c,["totp","required","backupCodes"])||(c.required===true||c.backupCodes===true)&&c.totp!==true)throw M()}return n}function Hr(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 M(){return new TypeError("public-config returned an invalid response")}function _(e){if(!e||typeof e!="object"||Array.isArray(e))throw M();return e}function ko(e){return e===null||typeof e=="string"&&e.length<=4096}function qr(e){let t=_(e),n=_(t.email),o=_(t.password),i=o.minLength!==void 0||o.maxLength!==void 0;if(!B(n,["signUp"])||!dt(n.signIn,3)||n.signIn.some(s=>s!=="password"&&s!=="magic_link"&&s!=="email_otp")||!B(_(t.phone),["signUp","signIn"])||!B(o,["signUp","add"])||i&&(!Number.isSafeInteger(o.minLength)||!Number.isSafeInteger(o.maxLength)||o.minLength<1||o.maxLength>4096||o.minLength>o.maxLength)||!B(_(t.passkey),["signIn","add"])||!Kr(_(t.passkey).relyingPartyId)||!B(_(t.username),["collectOnSignUp","signIn"]))throw M()}function Kr(e){return e==null||typeof e=="string"}function B(e,t){return t.every(n=>typeof e[n]=="boolean")}function To(e,t){return t.every(n=>e[n]===void 0||typeof e[n]=="string"&&e[n].length<=4096)}function dt(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 de=class extends Error{constructor(n,o){super(n);this.cause=o;this.name="AuthOwlError";}cause},pt=class extends de{constructor(n,o){super(`Rate limited. Retry after ${n}s.`,o);this.retryAfterSeconds=n;this.name="RateLimitedError";}retryAfterSeconds},ft=class extends de{constructor(t="invalid publishable key",n){super(t,n),this.name="InvalidKeyError";}};var Eo=["en","ar"];function Br(e){return e==="ar"?"rtl":"ltr"}function jr(e){return typeof e=="string"&&Eo.includes(e)}
|
|
3
|
-
exports.AUTH_CHALLENGE_HEADER=
|
|
1
|
+
'use strict';var zo=Object.defineProperty;var bt=(e,t)=>()=>(e&&(t=e(e=0)),t);var Lo=(e,t)=>{for(var n in t)zo(e,n,{get:t[n],enumerable:true});};function le(){return typeof window<"u"&&typeof document<"u"&&typeof crypto<"u"&&typeof crypto.subtle?.digest=="function"}var Ye=bt(()=>{});var xe={};Lo(xe,{beginCrossSiteSignIn:()=>Ir,challengeFor:()=>lo,completeCrossSiteSignIn:()=>Pr,takeHandoffCode:()=>lt});function uo(e){let t="";for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function lo(e){let t=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e));return uo(new Uint8Array(t))}function kr(){return uo(crypto.getRandomValues(new Uint8Array(wr)))}function po(e,t){let n=window.location.protocol==="https:"?"; Secure":"";document.cookie=`${co}=${e}; Path=/; Max-Age=${t}; SameSite=Lax${n}`;}function Tr(){for(let e of document.cookie.split(";")){let t=e.indexOf("=");if(!(t<0)&&e.slice(0,t).trim()===co)return e.slice(t+1).trim()||null}return null}function Er(){po("",0);}function ao(e){return new URL(e,window.location.href).toString()}async function Ir(e,t){let n=t.callbackURL?ao(t.callbackURL):null;if(n&&new URL(n).origin!==window.location.origin)return null;let o=kr(),i=new URL(`${e.projectBaseURL}/session/start`);if(i.searchParams.set("pk",e.publishableKey),i.searchParams.set("kind",t.kind),t.kind==="social")i.searchParams.set("provider",t.provider),t.scopes?.length&&i.searchParams.set("scopes",t.scopes.join(",")),t.loginHint&&i.searchParams.set("loginHint",t.loginHint),t.requestSignUp!==void 0&&i.searchParams.set("requestSignUp",t.requestSignUp?"1":"0");else for(let a of Sr){let c=t[a];c&&i.searchParams.set(a,c);}let s=`${window.location.origin}${window.location.pathname}${window.location.search}`;i.searchParams.set("cb",n??s);for(let[a,c]of [["err",t.errorCallbackURL],["new",t.newUserCallbackURL]])c&&i.searchParams.set(a,ao(c));return i.searchParams.set("challenge",await lo(o)),po(o,Rr),i.toString()}function lt(e){if(typeof window>"u")return null;let t=window.location.hash;if(!t.includes(ut))return null;let n=new URLSearchParams(t.replace(/^#/,"")),o=n.get(ut);if(!o||e!==void 0&&o!==e)return null;n.delete(ut);let i=n.toString();return window.history.replaceState(window.history.state,"",`${window.location.pathname}${window.location.search}${i?`#${i}`:""}`),o}async function Pr(e,t,n){if(!le())return false;let o=n??lt();if(!o)return false;n&<(n);let i=Tr();if(Er(),!i)return false;t.beginSession({remember:true});let{error:s}=await e.request("/session/exchange",{method:"POST",body:{code:o,verifier:i}});return s===null}var co,ut,wr,Rr,Sr,ve=bt(()=>{Ye();co="authowl_handoff_verifier",ut="authowl_code",wr=32,Rr=900,Sr=["email","providerId","domain","organizationSlug"];});var Mo=/^(pk_(live|test))_([0-9a-f-]{36})_([A-Za-z0-9]{20,})$/i,Fo=/^sk_/i;function ze(e){if(typeof e!="string"||e.length===0)throw new Error("publishableKey is required");if(Fo.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=Mo.exec(e);if(!t)throw new Error("publishableKey is malformed; expected pk_(live|test)_<uuid>_<base62>");return {prefix:t[1].toLowerCase(),env:t[2].toLowerCase(),projectId:t[3].toLowerCase()}}function Vo(e,t){let n=`p_${e.toLowerCase().replace(/-/g,"")}`;return `${t?.secure?"__Secure-":""}${n}.session_token`}var wt=/^http:\/\/(?:(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*localhost|127\.0\.0\.1|\[::1\])(?::\d+)?(?:\/|$)/i;function Le(e,t){throw new Error(`${e}: ${t}`)}function Rt(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 o=n.toString();if(n.protocol!=="https:"&&!(n.protocol==="http:"&&t.allowHttpLoopback&&wt.test(o)))throw new TypeError("Transport URL must use HTTPS except on approved loopback.");return n}function St(e,t){(typeof e!="string"||!/^https?:\/\/[^/?#@\\\s]+\/?$/i.test(e))&&Le("apiUrl","origin required");let n;try{n=new URL(e);}catch{Le("apiUrl","origin required");}return n.protocol==="http:"&&(!t.allowHttpLoopback||!wt.test(e))&&Le("apiUrl","HTTPS required except exact loopback"),n.origin}function G(e,t){try{return e?.getItem(t)??null}catch{return null}}function q(e,t,n){try{n===null?e?.removeItem(t):e?.setItem(t,n);}catch{}}function V(){try{return globalThis.localStorage}catch{return}}function Y(){try{return globalThis.sessionStorage}catch{return}}var Ho="authowl.session-challenge",qo=e=>`${Ho}.${e}`,Ko="set-auth-challenge",Me="x-authowl-challenge";function Bo(e){let t=e.get(Me);return re(t)?Et(t).some(([n,o])=>n.endsWith(".dont_remember")&&o.length>0):false}var Tt="INVALID_TWO_FACTOR_COOKIE",jo=2048,re=e=>e!==null&&e.length<=jo,kt=/^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/;function Et(e){let t=[];for(let n of e.split(";")){let o=n.trimStart(),i=o.indexOf("=");i<=0||t.push([o.slice(0,i).trimEnd(),o.slice(i+1)]);}return t}function It(e){let t=qo(e),n=new Map;function o(){return n.size===0?null:[...n].map(([c,r])=>`${c}=${r}`).join("; ")}function i(){let c=o();q(Y(),t,re(c)?c:null);}function s(c){for(let[r,d]of Et(c))kt.test(r)&&(d===""?n.delete(r):kt.test(d)&&n.set(r,d));}let a=G(Y(),t);return re(a)&&s(a),{presentOn(c){let r=o();c.delete(Me),re(r)&&c.set(Me,r);},observe(c){let r=c.get(Ko);re(r)&&(s(r),i());},clear(){n.clear(),i();}}}var Fe="set-auth-token",Ve="x-authowl-session-transport",He="bearer";var Jo="authowl.session-token",Go="authowl.cookie-transport",Ct="ok",xt="bearer",$o=e=>`${Jo}.${e}`,Wo=e=>`${Go}.${e}`;function Yo(e){return e===Ct?"cookies":e===xt?"bearer":"unknown"}function Xo(e){return e==="cookies"?Ct:e==="bearer"?xt:null}function Qo(e){let t=$o(e),n=Wo(e),o=It(e),i=null,s=false,a=null,c=Yo(G(V(),n)),r=()=>c==="unknown",d=0,l=null,h=false;function y(){let O=G(Y(),t);if(O!==null)return s=true,O;let x=G(V(),t);return x!==null?(s=false,x):null}i=y(),i!==null&&r()&&(h=true);function A(){if(!(!h||!l)){h=false;try{l();}catch{}}}function u(){let O=c==="bearer"?i:null,[x,ge]=s?[Y(),V()]:[V(),Y()];q(ge,t,null),q(x,t,O);}function f(O){O!==null&&a!==null&&(s=a,a=null),i=O,u(),O!==null&&r()&&(h=true,A());}function m(O){c=O,q(V(),n,Xo(O));}function w(){m("unknown"),h=false;}function S(){return i===null&&(i=y()),i}function N(){let O=y();return O!==null&&(i=O),i}function H(O){N()===O&&u();}function b(){d+=1,a=null,s=false,f(null),o.clear(),w();}let k=()=>c!=="cookies";return {hasToken:()=>S()!==null,declareOn(O){if(O.has("authorization"))return false;let x=S();return !x&&!k()?false:(x&&O.set("authorization",`Bearer ${x}`),O.set(Ve,He),o.presentOn(O),true)},wantsToken:k,needsProbe:r,observe(O){let x=O.get(Fe);x&&f(x),o.observe(O);},dropChallenge:o.clear,measureWith(O){l=O,A();},beginRead(){let O=S(),x=d;return {carriedToken:O!==null,endIfDead(){O!==null&&N()===O&&d===x&&b();},recordCookieVerdict(ge){if(d===x&&r()){if(m(ge?"cookies":"bearer"),ge){f(null);return}H(O);}}}},beginSession({remember:O}){d+=1,a=!O,o.clear(),w();},endSession:b}}var Pt=new Map;function vt(e){let t=Pt.get(e);if(t)return t;let n=Qo(e);return Pt.set(e,n),n}function Zo(e,t){return t?.headers?new Headers(t.headers):typeof e=="object"&&e!==null&&"headers"in e?new Headers(e.headers):new Headers}function Dt(e,t){let n=vt(e),o=(a,c)=>(t??globalThis.fetch)(a,c);return {fetch:async(a,c)=>{if(c?.credentials==="omit"||!n.wantsToken())return o(a,c);let r=Zo(a,c),d=n.declareOn(r),l=await o(a,{...c,headers:r});return d&&n.observe(l.headers),l},probe:o,tokens:n}}function _t(e){if(!e||typeof e!="object")throw new Error("AuthConfig is required");let t=ze(e.publishableKey),n=St(e.apiUrl,{allowHttpLoopback:t.env==="test"});return {publishableKey:e.publishableKey,apiUrl:n,decoded:t,projectBaseURL:`${n}/api/projects/${t.projectId}/auth`}}function ei(e){let t=_t(e),{fetch:n,...o}=Dt(t.decoded.projectId,e.fetch);return {...e,...t,fetch:n,session:o}}var qe="authowl_invitation",Ke="authowl.invitation-claim",Ut=/^[A-Za-z0-9_-]{1,128}$/,Nt=10080*60*1e3;function ti(e=Date.now()){if(typeof window>"u")return se(e);let t;try{t=new URL(window.location.href);}catch{return se(e)}let n=t.searchParams.get(qe);if(n===null)return se(e);t.searchParams.delete(qe);try{window.history.replaceState(window.history.state,"",t.toString());}catch{}if(!Ut.test(n))return se(e);let o={id:n,capturedAt:e};return q(V(),Ke,JSON.stringify(o)),o}function se(e=Date.now()){let t=G(V(),Ke);if(t===null)return null;let n;try{n=JSON.parse(t);}catch{return ae(),null}if(typeof n!="object"||n===null)return ae(),null;let{id:o,capturedAt:i}=n;return typeof o!="string"||!Ut.test(o)||typeof i!="number"||e-i>Nt?(ae(),null):{id:o,capturedAt:i}}function ae(){q(V(),Ke,null);}function ni(e){let t=e?.enabledMethods??["password"],n=t.includes("password"),o=t.includes("passkey"),i=e?.authentication,s=e?.mfa;return {emailSignUp:i?.email.signUp??t.some(a=>a==="password"||a==="magic_link"||a==="email_otp"),passwordSignUp:i?.password.signUp??n,phoneSignUp:i?.phone.signUp??t.includes("phone_otp"),passwordSignIn:i?.email.signIn.includes("password")??n,passwordMinLength:i?.password.minLength??8,passwordMaxLength:i?.password.maxLength??128,magicLinkSignIn:i?.email.signIn.includes("magic_link")??t.includes("magic_link"),emailOtpSignIn:i?.email.signIn.includes("email_otp")??t.includes("email_otp"),phoneSignIn:i?.phone.signIn??t.includes("phone_otp"),usernameSignIn:i?.username.signIn??false,collectUsername:i?.username.collectOnSignUp??false,passkeySignIn:i?.passkey.signIn??o,passkeyAdd:i?.passkey.add??o,firstLastName:e?.userModel?.firstLastName??false,emailChange:e===null?false:e.userModel?.emailChange??true,accountDeletion:e?.userModel?.accountDeletion??e?.accountDeletion??false,emailVerificationRequired:e?.emailVerification?.required??e?.requireEmailVerification??false,emailVerificationMethod:e?.emailVerification?.method??"link",totp:s?.totp??e?.twoFactor??false,mfaRequired:s?.required??e?.mfaRequired??false,backupCodes:s?.backupCodes??e?.twoFactor??false,legacyNameField:e?.authentication===void 0}}var oi=1e4,ii=1024*1024,D=class extends Error{kind;requestId;constructor(t,n){super(pi(t)),this.name="TransportError",this.kind=t,this.requestId=n;}},Mt=new WeakSet;function _(e,t){let n=new D(e,t);return Mt.add(n),n}async function Ft({fetchImpl:e,url:t,init:n={},timeoutMs:o=oi,maxResponseBytes:i=ii,allowHttpLoopback:s=false,decode:a}){Lt(o,"timeoutMs"),Lt(i,"maxResponseBytes");let c=Rt(t,{allowHttpLoopback:s}),r=n.signal,d=new AbortController,l=null,h,y=new Promise(m=>{h=m;}),A=m=>{l===null&&(l=m,h({type:"abort",kind:m}),d.abort());},u=()=>A("aborted");r?.addEventListener("abort",u,{once:true});let f=setTimeout(()=>A("timeout"),o);r?.aborted&&u();try{if(l!==null)throw _(l);let m;try{m=await Promise.race([e(c.toString(),{...n,redirect:"error",signal:d.signal}).then(k=>({type:"response",response:k})),y]);}catch{throw _(l??"network")}if(m.type==="abort")throw _(m.kind);if(!ri(m.response))throw _("invalid_response");let w=m.response,S=di(w.headers),N=await si(w,i,y,()=>l,S),H=ui(w,N,S),b;try{b=w.ok&&a?a(H,Object.freeze({status:w.status})):H;}catch{throw _("invalid_response",S)}return {response:w,data:b,...S===void 0?{}:{requestId:S}}}catch(m){throw m instanceof D&&Mt.has(m)?m:_(l??"network")}finally{clearTimeout(f),r?.removeEventListener("abort",u);}}function ri(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 si(e,t,n,o,i){let s=e.headers.get("content-length");if(s!==null){if(!/^\d+$/.test(s))throw zt(e.body),_("invalid_response",i);if(Number(s)>t)throw zt(e.body),_("response_too_large",i)}if(!e.body)return "";let a;try{a=e.body.getReader();}catch{throw _("network",i)}let c=[],r=0,d=null;try{for(;;){let y;try{y=await Promise.race([a.read(),n]);}catch{d=_(o()??"network",i);break}if(ai(y)){d=_(y.kind,i);break}let{done:A,value:u}=y;if(A)break;if(u.byteLength!==0){if(r+=u.byteLength,r>t){d=_("response_too_large",i);break}c.push(u);}}}finally{d&&ci(a);try{a.releaseLock();}catch{}}if(d)throw d;let l=new Uint8Array(r),h=0;for(let y of c)l.set(y,h),h+=y.byteLength;try{return new TextDecoder("utf-8",{fatal:!0}).decode(l)}catch{throw _("invalid_response",i)}}function ai(e){return "type"in e&&e.type==="abort"}function zt(e){if(e)try{e.cancel().catch(()=>{});}catch{}}function ci(e){try{e.cancel().catch(()=>{});}catch{}}function ui(e,t,n){if(e.status===204||e.status===205)return null;let o=li(e.headers.get("content-type"));if(!e.ok&&(!o||t.length===0))return null;if(!o||t.length===0)throw _("invalid_response",n);try{return JSON.parse(t)}catch{if(!e.ok)return null;throw _("invalid_response",n)}}function li(e){if(e===null)return false;let t=e.split(";",1)[0]?.trim().toLowerCase();return t==="application/json"||t?.endsWith("+json")===true}function di(e){let t=e.get("x-request-id")?.trim();if(!(!t||t.length>256||!/^[A-Za-z0-9._:-]+$/.test(t)))return t}function Lt(e,t){if(!Number.isInteger(e)||e<=0)throw new TypeError(`${t} must be a positive integer.`)}function pi(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 me=class extends Error{status;requestId;constructor(t,n,o){super(`${t} request failed with status ${n.status}.`),this.name="AuthOwlHttpError",this.status=n.status,this.requestId=o;}};function K(e,t,n={}){let o=new Headers(n.init?.headers);return o.set("x-publishable-key",e.publishableKey),Ft({fetchImpl:e.fetch,url:t,init:{...n.init,headers:o},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 X(e,t){if(!e.response.ok)throw new me(t,e.response,e.requestId);return e.data}var qt="x-authowl-turnstile-token",fi=1e4,gi=32,mi=2e4;function ee(e,t){return {post:(n,o,i,s)=>e.request(n,{method:"POST",body:o,fetchOptions:i,decode:s}),mutation:async(n,o)=>{let i=await n;return i.error===null&&(o===void 0||i.data!==null&&o(i.data))&&t(),i}}}function ue(e,t=e.projectBaseURL){return {async request(n,o={}){let i=Ai(t,n,o.query),s=o.method??(o.body===void 0?"GET":"POST"),a=new Headers(o.fetchOptions?.headers);o.fetchOptions?.authChallengeToken&&a.set(qt,o.fetchOptions.authChallengeToken),o.body!==void 0&&a.set("content-type","application/json");let c={method:s,headers:a,credentials:o.credentials??"include",...o.body===void 0?{}:{body:JSON.stringify(o.body)}},r=Object.freeze({method:s,path:n});await o.fetchOptions?.onRequest?.(r);let d=yi(s,o.fetchOptions),l;try{l=await hi(e,i,{...c,signal:o.fetchOptions?.signal},d);}catch(m){let w=Ht(m);return await o.fetchOptions?.onError?.(Be(r,w,wi(m))),{data:null,error:w}}let{response:h,requestId:y}=l,A=ki(n,l.data),u=A;if(h.ok)try{u=Je(A),o.decode&&(u=o.decode(u));}catch{let m=Ht(new D("invalid_response",y));return await o.fetchOptions?.onError?.(Be(r,m,"invalid_response")),{data:null,error:m}}let f=Object.freeze({...r,status:h.status,...y===void 0?{}:{requestId:y}});if(await o.fetchOptions?.onResponse?.(f),!h.ok){let m=Oi(h,A,y);return m.code===Tt&&e.session.tokens.dropChallenge(),await o.fetchOptions?.onError?.(Be(r,m,"api")),{data:null,error:m}}return await o.fetchOptions?.onSuccess?.(f),{data:u,error:null}}}}async function hi(e,t,n,o){let i=Date.now()+fi;for(let s=0;s<o;s+=1){let a=i-Date.now();if(a<=0)throw new D("timeout");try{let c=await K(e,t,{init:n,timeoutMs:Math.max(1,Math.ceil(a))});if(c.response.status<500||s===o-1)return c}catch(c){if(s===o-1||!(c instanceof D)||c.kind!=="network")throw c}await Ri(50*2**s,n.signal,i);}throw new D("network")}function yi(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 Ai(e,t,n){let o=new URL(`${e}${t.startsWith("/")?t:`/${t}`}`);for(let[i,s]of Object.entries(n??{}))s!==void 0&&o.searchParams.set(i,String(s));return o.toString()}function Oi(e,t,n){let o=ce(t)?t:{},i=bi(o,e.headers);return {status:e.status,statusText:e.statusText,code:typeof o.code=="string"?o.code:void 0,...n===void 0?{}:{requestId:n},...typeof o.current_version=="number"?{currentVersion:o.current_version}:{},...i!==void 0?{retryAfterSeconds:i}:{},message:typeof o.message=="string"?o.message:typeof o.error=="string"?o.error:typeof o.detail=="string"?o.detail:e.statusText||"Request failed"}}function bi(e,t){let n=(typeof e.retryAfterSeconds=="number"&&Number.isFinite(e.retryAfterSeconds)?e.retryAfterSeconds:void 0)??Vt(t.get("retry-after"))??Vt(t.get("x-retry-after"));if(n!==void 0)return Math.min(Math.max(Math.trunc(n),1),86400)}function Vt(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 Ht(e){let t=e instanceof D?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 D&&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 wi(e){return e instanceof D?e.kind:"network"}function Ri(e,t,n){return new Promise((o,i)=>{if(t?.aborted){i(new D("aborted"));return}let s=n-Date.now();if(s<=0){i(new D("timeout"));return}let a=Math.min(e,s),c=()=>{clearTimeout(r),i(new D("aborted"));},r=setTimeout(()=>{t?.removeEventListener("abort",c),Date.now()>=n?i(new D("timeout")):o();},a);t?.addEventListener("abort",c,{once:true}),t?.aborted&&c();})}function Je(e,t="",n=0,o={nodes:0}){if(o.nodes+=1,n>gi||o.nodes>mi)throw new Error("response traversal limit exceeded");if(typeof e=="string"&&/^(?:createdAt|updatedAt|expiresAt)$/.test(t)){let i=new Date(e);return Number.isNaN(i.getTime())?e:i}return Array.isArray(e)?e.map(i=>Je(i,"",n+1,o)):ce(e)?Object.fromEntries(Object.entries(e).map(([i,s])=>[i,Si(i)?s:Je(s,i,n+1,o)])):e}function Si(e){return e==="metadata"||e==="public_metadata"||e==="unsafe_metadata"||e==="private_metadata"||e==="publicMetadata"||e==="unsafeMetadata"||e==="privateMetadata"}function ki(e,t){if(e==="/list-sessions"&&Array.isArray(t))return t.map(i=>ce(i)?je(i):i);if(!ce(t))return t;let o=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 o)&&(o={...o,sessionCreated:typeof t.token=="string"&&t.token.length>0}),(e==="/get-session"||e==="/passkey/verify-authentication")&&ce(o.session)&&(o={...o,session:je(o.session)}),o}function je(e){if(!Object.hasOwn(e,"token"))return e;let t={...e};return delete t.token,t}function ce(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}var Ti=new Set(["__proto__","constructor","prototype"]);function g(e){(!e||typeof e!="object"||Array.isArray(e))&&p();let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null&&p(),e}function R(e){return typeof e!="string"&&p(),e}function T(e){return typeof e!="boolean"&&p(),e}function P(e){return (!(e instanceof Date)||Number.isNaN(e.getTime()))&&p(),e}function he(e){return (!Array.isArray(e)||!e.every(t=>typeof t=="string"))&&p(),[...e]}function I(e,t){let n=e[t];return n==null||typeof n=="string"?n:p()}function Kt(e,t){let n=e[t];return n==null||typeof n=="boolean"?n:p()}function L(e){let t=g(e),n=t.email;return n!==null&&typeof n!="string"&&p(),{id:R(t.id),email:n,emailVerified:T(t.emailVerified),createdAt:P(t.createdAt),updatedAt:P(t.updatedAt),...z("phoneNumber",I(t,"phoneNumber")),...z("username",I(t,"username")),...z("displayUsername",I(t,"displayUsername")),...z("firstName",I(t,"firstName")),...z("lastName",I(t,"lastName")),...z("name",I(t,"name")),...z("image",I(t,"image")),...z("twoFactorEnabled",Kt(t,"twoFactorEnabled"))}}function ye(e){let t=g(e),n=t.membership;return {id:R(t.id),userId:R(t.userId),expiresAt:P(t.expiresAt),...z("activeOrganizationId",I(t,"activeOrganizationId")),...z("activeTeamId",I(t,"activeTeamId")),...z("membership",n==null?n:Ei(n)),...z("pendingMfaEnrollment",Kt(t,"pendingMfaEnrollment"))}}function p(){throw new TypeError("AuthOwl response does not match its runtime contract.")}function B(e,t=20,n=1e4){return (!e||typeof e!="object"||Array.isArray(e))&&p(),$e(e,t,n)}function $e(e,t=20,n=1e4){return Ge(e,0,{nodes:0},t,n)}function Ei(e){let t=g(e);return {role:R(t.role),permissions:he(t.permissions),...t.teams===void 0?{}:{teams:he(t.teams)}}}function Ge(e,t,n,o,i){if(n.nodes+=1,(t>o||n.nodes>i)&&p(),e===null||typeof e=="string"||typeof e=="boolean")return e;if(typeof e=="number")return Number.isFinite(e)||p(),e;if(Array.isArray(e))return e.map(c=>Ge(c,t+1,n,o,i));(!e||typeof e!="object")&&p();let s=Object.getPrototypeOf(e);s!==Object.prototype&&s!==null&&p();let a={};for(let[c,r]of Object.entries(e))Ti.has(c)&&p(),a[c]=Ge(r,t+1,n,o,i);return a}function z(e,t){return t===void 0?{}:{[e]:t}}function Bt({http:e,probe:t,tokens:n,channelName:o}){let i=new Set,s=null,a=null,c=null,r=null,d=null,l,h=b=>{u(b);};l={data:null,isPending:true,isRefetching:false,error:null,refetch:h};function y(b){l=b;for(let k of i)k();}async function A(b){return e.request("/get-session",{query:b?.query,decode:We})}function u(b){if(b?.query?.disableCookieCache===true)return f(b);if(r)return r;let k=f(b).finally(()=>{r===k&&(r=null);});return r=k,k}async function f(b){c?.abort();let k=new AbortController;c=k,y({...l,isPending:l.data===null&&l.error===null,isRefetching:l.data!==null});let O=n.beginRead(),x=await e.request("/get-session",{query:b?.query,fetchOptions:{signal:k.signal},decode:We});if(c===k&&(c=null,y({data:x.data,error:x.error,isPending:false,isRefetching:false,refetch:h}),x.error===null)){if(x.data===null){O.endIfDead();return}await m(O);}}async function m(b){if(n.needsProbe()){if(!b.carriedToken){b.recordCookieVerdict(true);return}return d||w(b)}}function w(b){let k=t.request("/get-session",{query:{disableCookieCache:true},decode:We}).then(O=>{d===k&&O.error===null&&b.recordCookieVerdict(O.data!==null);}).finally(()=>{d===k&&(d=null);});return d=k,k}function S(){s?.postMessage({type:"session-changed"});}function N(){if(typeof window>"u"||a)return;let b=()=>{u();},k=()=>{document.visibilityState==="visible"&&u();};window.addEventListener("focus",b),document.addEventListener("visibilitychange",k),typeof BroadcastChannel<"u"&&(s=new BroadcastChannel(o),s.addEventListener("message",b)),a=()=>{window.removeEventListener("focus",b),document.removeEventListener("visibilitychange",k),s?.close(),s=null,a=null;};}function H(b){return i.add(b),i.size===1&&(N(),u()),()=>{if(i.delete(b),i.size===0){let k=c;c=null,r=null,k?.abort(),a?.();}}}return n.measureWith(()=>{n.needsProbe()&&w(n.beginRead());}),{store:{subscribe:H,getSnapshot:()=>l},getSession:A,notifyMutation(){S(),d&&d.catch(()=>{}).then(()=>{!n.needsProbe()&&n.hasToken()&&S();}),i.size>0&&u({query:{disableCookieCache:true}});}}}function We(e){if(e===null)return null;let t=g(e);return (t.session===void 0||t.user===void 0)&&p(),{session:ye(t.session),user:L(t.user)}}Ye();function Xe(){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 jt(e,t){return e.request("/user/metadata",{fetchOptions:t,decode:Gt})}async function Jt(e,t,n){return e.request("/user/metadata",{method:"PATCH",body:{expected_version:t.expectedVersion,unsafe_metadata:t.unsafeMetadata},fetchOptions:n,decode:Gt})}function Gt(e){let t=g(e),n=B(t.public_metadata),o=B(t.unsafe_metadata);if(!Number.isSafeInteger(t.metadata_version)||t.metadata_version<0)throw new TypeError("Invalid AuthOwl metadata response");return {publicMetadata:n,unsafeMetadata:o,metadataVersion:t.metadata_version}}function Wt(e,t){let{post:n,mutation:o}=ee(e,t);return {getMetadata:i=>jt(e,i),updateUnsafeMetadata:(i,s)=>Jt(e,i,s),updateProfile:(i,s)=>o(n("/update-user",i,s,de)),changeEmail:(i,s)=>o(n("/change-email",i,s,de)),changePassword:(i,s)=>o(n("/change-password",i,s,Ii)),listSessions:i=>e.request("/list-sessions",{fetchOptions:i,decode:Pi}),revokeSession:({sessionId:i},s)=>o(n("/revoke-session",{sessionId:i},s,de)),revokeOtherSessions:i=>o(n("/revoke-other-sessions",{},i,de)),listSocialAccounts:async i=>{let s=await e.request("/list-accounts",{fetchOptions:i,decode:Ci});if(!s.data)return {data:null,error:s.error};let a=s.data.length>1;return {...s,data:s.data.filter(c=>c.providerId!=="credential").map(c=>({...c,canUnlink:a}))}},linkSocial:(i,s)=>n("/link-social",i,s,xi),unlinkSocial:(i,s)=>o(n("/unlink-account",i,s,de)),delete:(i={},s)=>o(n("/delete-user",i,s,vi))}}function de(e){let t=g(e);return {status:T(t.status)}}function Ii(e){let t=g(e);return {user:L(t.user)}}function Pi(e){return Array.isArray(e)||p(),e.map(t=>{let n=g(t);return {id:R(n.id),userId:R(n.userId),createdAt:P(n.createdAt),updatedAt:P(n.updatedAt),expiresAt:P(n.expiresAt),...$t("ipAddress",I(n,"ipAddress")),...$t("userAgent",I(n,"userAgent"))}})}function Ci(e){return Array.isArray(e)||p(),e.map(t=>{let n=g(t);return {id:R(n.id),userId:R(n.userId),providerId:R(n.providerId),accountId:R(n.accountId),scopes:he(n.scopes),createdAt:P(n.createdAt),updatedAt:P(n.updatedAt)}})}function xi(e){let t=g(e);return {url:R(t.url),redirect:T(t.redirect)}}function vi(e){let t=g(e);return {success:T(t.success),message:R(t.message)}}function $t(e,t){return t===void 0?{}:{[e]:t}}function Ae(e,t){return !e||!t?false:e.permissions.includes(t)}function Yt(e,t){return !e||!t?false:e.teams?.includes(t)??false}function Xt(e,t){return e?e.roles===void 0?e.role===t:e.roles.includes(t):false}function Oe(e,t){if(!e)return false;let{role:n,permission:o,teamId:i}=t;return !(n===void 0&&o===void 0&&i===void 0||n!==void 0&&!Xt(e,n)||o!==void 0&&!e.permissions.includes(o)||i!==void 0&&!Yt(e,i))}function Di(e){return {has:t=>Oe(e,t),hasPermission:t=>Ae(e,t.permission)}}var _i=new Set(["pending","accepted","rejected","canceled"]),Qe=1e4;function te(e,t,n){let o=g(e),i={id:C(o.id),name:C(o.name),slug:C(o.slug),createdAt:P(o.createdAt),...be("logo",I(o,"logo")),...be("metadata",o.metadata===void 0?void 0:$e(o.metadata))};return $(i.id,t),$(i.slug,n),i}function Qt(e){return W(e,te)}function Ze(e,t,n){return e===null?null:(t===null&&p(),te(e,t,n))}function Zt(e,t,n){if(e===null)return null;let o=g(e),i=te(o,t,n);return {...i,members:W(o.members,s=>fn(s,i.id)),invitations:W(o.invitations,s=>j(s,void 0,i.id))}}function en(e,t){let n=W(e,o=>pn(o));return Re(n.map(o=>o.organizationId),t),n}function tn(e,t,n){return e===null?null:(t===null&&p(),pn(e,t,n))}function nn(e,t){let n=g(e);return (!Number.isSafeInteger(n.total)||n.total<0)&&p(),{members:Ui(n.members,t),total:n.total}}function j(e,t,n){let o=g(e),i=C(o.status);_i.has(i)||p();let s={id:C(o.id),organizationId:C(o.organizationId),email:we(o.email),role:C(o.role),status:i,inviterId:C(o.inviterId),expiresAt:P(o.expiresAt),createdAt:P(o.createdAt)};return $(s.id,t),$(s.organizationId,n),s}function on(e,t){let n=W(e,o=>j(o));return Re(n.map(o=>o.organizationId),t),n}function rn(e){return W(e,t=>{let n=g(t);return {...j(n),organizationName:we(n.organizationName)}})}function sn(e,t){let n=g(e);return {...j(n,t),organizationName:C(n.organizationName),organizationSlug:C(n.organizationSlug),inviterEmail:gn(n.inviterEmail)}}function an(e,t){let n=g(e),o=j(n.invitation,t);return {invitation:o,member:ne(n.member,void 0,o.organizationId)}}function cn(e,t){let n=g(e);return n.member!==null&&p(),{invitation:n.invitation===null?null:j(n.invitation,t),member:null}}function un(e,t){return e===null?null:j(e,t)}function ln(e,t,n){let o=g(e);return {member:ne(o.member,n,t)}}function ne(e,t,n){let o=g(e),i={id:C(o.id),organizationId:C(o.organizationId),userId:C(o.userId),role:C(o.role),createdAt:P(o.createdAt),...o.user===void 0?{}:{user:mn(o.user)}};return $(i.id,t),$(i.organizationId,n),i}function dn(e,t){let n=W(e,o=>{let i=g(o);return {organizationId:C(i.organizationId),data:{role:C(i.role),...be("permission",i.permission===void 0?void 0:Ni(i.permission))}}});return Re(n.map(o=>o.organizationId),t),n.map(o=>o.data)}function pn(e,t,n){let o=g(e),i=o.updatedAt,s={id:C(o.id),name:we(o.name),organizationId:C(o.organizationId),createdAt:P(o.createdAt),...i===void 0?{}:{updatedAt:P(i)}};return $(s.id,t),$(s.organizationId,n),s}function fn(e,t){let n=g(e);return {...ne(n,void 0,t),user:mn(n.user)}}function Ui(e,t){let n=W(e,o=>fn(o));return Re(n.map(o=>o.organizationId),t),n}function Ni(e){let t=g(e),n={};for(let[o,i]of Object.entries(t))(o==="__proto__"||o==="constructor"||o==="prototype"||o.length===0||o.length>Qe||!Array.isArray(i))&&p(),n[o]=i.map(s=>C(s));return n}function C(e){let t=R(e);return (t.length===0||t.length>Qe)&&p(),t}function we(e){if(e==null)return "";let t=R(e);return t.length>Qe&&p(),t}function gn(e){return e===null?null:C(e)}function $(e,t){t!==void 0&&e!==t&&p();}function Re(e,t){let n=t??e[0];n!==void 0&&e.some(o=>o!==n)&&p();}function mn(e){let t=g(e);return {id:C(t.id),name:we(t.name),email:gn(t.email),...be("image",I(t,"image"))}}function W(e,t){return Array.isArray(e)||p(),e.map(n=>t(n))}function be(e,t){return t===void 0?{}:{[e]:t}}function hn(e,t,n=()=>null){let{post:o,mutation:i}=ee(e,t),s=new Map,a=(r,d,l,h)=>{if(l)return e.request(r,{query:d,fetchOptions:l,decode:h});let y=`${r}\0${JSON.stringify(d??null)}`,A=s.get(y);if(A)return A;let u=e.request(r,{query:d,decode:h}).finally(()=>{s.delete(y);});return s.set(y,u),u},c=r=>i(r).finally(()=>s.clear());return {create:(r,d)=>c(o("/organization/create",r,d,te)),list:r=>a("/organization/list",void 0,r,Qt),get:(r={},d)=>a("/organization/get-full-organization",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,membersLimit:r.membersLimit},d,l=>Zt(l,r.organizationId,r.organizationSlug)),setActive:(r,d)=>c(o("/organization/set-active",r,d,l=>Ze(l,r.organizationId,r.organizationSlug))),listTeams:(r={},d)=>a("/organization/list-teams",{organizationId:r.organizationId},d,l=>en(l,r.organizationId)),setActiveTeam:(r,d)=>c(o("/organization/set-active-team",r,d,l=>tn(l,r.teamId))),update:(r,d)=>c(o("/organization/update",r,d,l=>Ze(l,r.organizationId))),delete:(r,d)=>c(o("/organization/delete",r,d,l=>te(l,r.organizationId))),listMembers:(r={},d)=>a("/organization/list-members",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,limit:r.limit,offset:r.offset,sortBy:r.sortBy,sortDirection:r.sortDirection,filterField:r.filterField,filterValue:r.filterValue,filterOperator:r.filterOperator},d,l=>nn(l,r.organizationId)),inviteMember:(r,d)=>c(o("/organization/invite-member",r,d,l=>j(l,void 0,r.organizationId))),listInvitations:(r={},d)=>a("/organization/list-invitations",{organizationId:r.organizationId},d,l=>on(l,r.organizationId)),listUserInvitations:r=>a("/organization/list-user-invitations",void 0,r,rn),getInvitation:(r,d)=>a("/organization/get-invitation",{id:r.id},d,l=>sn(l,r.id)),acceptInvitation:(r,d)=>c(o("/organization/accept-invitation",r,d,l=>an(l,r.invitationId))),rejectInvitation:(r,d)=>c(o("/organization/reject-invitation",r,d,l=>cn(l,r.invitationId))),cancelInvitation:(r,d)=>c(o("/organization/cancel-invitation",r,d,l=>un(l,r.invitationId))),removeMember:(r,d)=>c(o("/organization/remove-member",r,d,l=>ln(l,r.organizationId,r.memberIdOrEmail.includes("@")?void 0:r.memberIdOrEmail))),updateMemberRole:(r,d)=>c(o("/organization/update-member-role",r,d,l=>ne(l,r.memberId,r.organizationId))),leave:(r,d)=>c(o("/organization/leave",r,d,l=>ne(l,void 0,r.organizationId))),listRoles:(r={},d)=>a("/organization/list-roles",{organizationId:r.organizationId},d,l=>dn(l,r.organizationId)),has:r=>Oe(n(),r),hasPermission:r=>Ae(n(),r.permission)}}var yn=4096,zi=4096,Li=100,Mi=256,Fi=16,Vi=64,Hi=12;function tt(e){let t=g(e);return t.twoFactorRedirect===true?((t.user!==void 0||t.redirect!==void 0||t.url!==void 0)&&p(),{twoFactorRedirect:true,...t.twoFactorMethods===void 0?{}:{twoFactorMethods:Nn(t.twoFactorMethods,Fi,Vi)}}):(t.twoFactorRedirect!==void 0&&p(),{redirect:T(t.redirect),...Ji(t,"url"),user:L(t.user)})}function An(e){let t=g(e);return {user:L(t.user)}}function On(e){let t=g(e);return {sessionCreated:T(t.sessionCreated),user:L(t.user)}}function bn(e,t){let n=g(e),o=T(n.redirect);n.user===null&&p();let i=n.user!==void 0&&n.user!==null,s=n.url!==void 0&&n.url!==null;return o?((i||!s)&&p(),{redirect:true,url:et(n.url,t)}):(i===s&&p(),i?{redirect:false,user:L(n.user)}:{redirect:false,url:et(n.url,t)})}function wn(e,t){let n=g(e);return (n.redirect!==true||n.user!==void 0)&&p(),{redirect:true,url:et(n.url,t)}}function Rn(e){return {status:T(g(e).status)}}function Sn(e){return {success:T(g(e).success)}}function kn(e){return g(e).status!=="pending"&&p(),{status:"pending"}}function Tn(e){let t=g(e);if(t.kind==="authowl_turnstile")return {kind:"authowl_turnstile"};t.kind!=="akedly_shield_v1_2"&&p();let n=g(t.turnstile),o=n.siteKey===null?null:R(n.siteKey);return {kind:"akedly_shield_v1_2",connectionId:R(t.connectionId),challenge:R(t.challenge),difficulty:qi(t.difficulty),challengeToken:R(t.challengeToken),challengeRequired:T(t.challengeRequired),turnstile:{required:T(n.required),siteKey:o}}}function qi(e){return (!Number.isSafeInteger(e)||Number(e)<0||Number(e)>Hi)&&p(),Number(e)}function En(e){let t=g(e);return (t.status!==true||t.sessionCreated!==true)&&p(),{status:true,sessionCreated:true,user:Ki(t.user)}}function nt(e){return {status:T(g(e).status)}}function In(e){return {status:T(g(e).status)}}function Pn(e){let t=g(e);return {status:T(t.status),user:L(t.user)}}function Cn(e){return {success:T(g(e).success)}}function xn(e){let t=g(e);return {totpURI:ji(t.totpURI),backupCodes:Un(t.backupCodes)}}function vn(e){return {status:T(g(e).status)}}function Se(e){return g(e).status!==true&&p(),{status:true}}function Dn(e){return {status:T(g(e).status)}}function _n(e){let t=g(e);return t.status!==void 0&&t.status!==true&&p(),{backupCodes:Un(t.backupCodes)}}function Ki(e){let t=g(e);return {id:oe(t.id,512),...Gi(t,"name",1024),phoneNumber:oe(t.phoneNumber,64),phoneNumberVerified:T(t.phoneNumberVerified),...t.createdAt===void 0?{}:{createdAt:P(t.createdAt)},...t.updatedAt===void 0?{}:{updatedAt:P(t.updatedAt)}}}function et(e,t){let n=oe(e,yn);/[\u0000-\u0020\u007f]/u.test(n)&&p();let o;try{o=new URL(n);}catch{return p()}return (o.username||o.password)&&p(),o.protocol==="https:"||t&&o.protocol==="http:"&&Bi(o.hostname)?o.href:p()}function Bi(e){let t=e.toLowerCase();return t==="localhost"||t==="127.0.0.1"||t==="[::1]"}function ji(e){let t=oe(e,zi),n;try{n=new URL(t);}catch{return p()}let o=n.searchParams.get("secret");return (n.protocol!=="otpauth:"||n.hostname.toLowerCase()!=="totp"||n.username||n.password||n.hash||o===null||o.length===0||o.length>512||/\s/u.test(o))&&p(),t}function Un(e){return Nn(e,Li,Mi)}function Nn(e,t,n){(!Array.isArray(e)||e.length===0||e.length>t)&&p();let o=e.map(i=>oe(i,n));return o.some(i=>i.trim().length===0)&&p(),new Set(o).size!==o.length&&p(),o}function oe(e,t){let n=R(e);return (n.length===0||n.length>t)&&p(),n}function Ji(e,t){let n=e[t];return n==null?{}:{[t]:oe(n,yn)}}function Gi(e,t,n){let o=I(e,t);return o===void 0?{}:(o!==null&&o.length>n&&p(),{[t]:o})}var zn=new Set([1564,8206,8207,8234,8235,8236,8237,8238,8294,8295,8296,8297]),ke=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 Te(e){if(e===void 0)return {valid:true,value:void 0};for(let n of e){let o=n.codePointAt(0);if(o===void 0||Mn(n,o)||Ln(o)||zn.has(o))return {valid:false}}let t=$i(e);return ot(t)?{valid:true,value:t}:{valid:false}}function ot(e){let t=0,n,o;for(let i of e){if(t+=1,t>256)return false;let s=i.codePointAt(0);if(s===void 0||Mn(i,s)||Ln(s)||zn.has(s))return false;n??=s,o=s;}return t>0&&n!==void 0&&o!==void 0&&!ke.has(n)&&!ke.has(o)}function Ee(){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 $i(e){let t=0,n=e.length;for(;t<n;){let o=e.codePointAt(t);if(o===void 0||!ke.has(o))break;t+=o>65535?2:1;}for(;n>t;){let o=e.codePointAt(n-1);if(o===void 0)break;let s=o>=56320&&o<=57343?n-2:n-1,a=e.codePointAt(s);if(a===void 0||!ke.has(a))break;n=s;}return e.slice(t,n)}function Ln(e){return e>=0&&e<=31||e>=127&&e<=159}function Mn(e,t){return e.length===1&&t>=55296&&t<=57343}var Hn=12,qn=5e3,Wi=8,Yi=1e3,Xi=16,Fn=512,Kn=100,Bn=8192,Qi=32768,it=1024,Vn=256,st=64,Zi=6e5,er=/^[A-Za-z0-9_-]+$/u,tr=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u,nr=/[\u0000-\u001f\u007f-\u009f\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/u,or=/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$/u,ir=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu,jn=new Set(["discouraged","preferred","required"]),rr=new Set(["singleDevice","multiDevice"]),Jn=new Set(["ble","cable","hybrid","internal","nfc","smart-card","usb"]),Gn=new Set(["hybrid","security-key","client-device"]),sr=new Set(["none","indirect","direct","enterprise"]),ar=new Set(["fido-u2f","packed","android-safetynet","android-key","tpm","apple","none"]),cr=new Set(["platform","cross-platform"]),ur=new Set(["discouraged","preferred","required"]),lr=new Set([-8,-7,-257]);function $n(e){let t=B(e,Hn,qn);return {challenge:io(t.challenge),...v("timeout",no(t.timeout)),...v("rpId",ro(t.rpId)),...v("allowCredentials",to(t.allowCredentials)),...v("userVerification",pe(t.userVerification,jn)),...v("hints",Ie(t.hints,Gn)),...v("extensions",oo(t.extensions))}}function Wn(e){let t=B(e,Hn,qn);return {challenge:io(t.challenge),rp:dr(t.rp),user:pr(t.user),pubKeyCredParams:fr(t.pubKeyCredParams),...v("timeout",no(t.timeout)),...v("excludeCredentials",to(t.excludeCredentials)),...v("authenticatorSelection",gr(t.authenticatorSelection)),...v("attestation",pe(t.attestation,sr)),...v("attestationFormats",Ie(t.attestationFormats,ar)),...v("hints",Ie(t.hints,Gn)),...v("extensions",oo(t.extensions))}}function Yn(e){let t=g(e),n=ye(t.session),o=L(t.user);return n.userId!==o.id&&p(),{session:n,user:o}}function at(e){let t=g(e),n=t.counter;(!Number.isSafeInteger(n)||n<0)&&p();let o=ct(t.deviceType,rr),i=T(t.backedUp);return i&&o!=="multiDevice"&&p(),{id:ie(t.id,Vn),...yr(t),publicKey:mr(t.publicKey,Qi),userId:ie(t.userId,Vn),credentialID:Ce(t.credentialID,Bn),counter:n,deviceType:o,backedUp:i,...Ar(t),createdAt:P(t.createdAt),...Or(t)}}function Xn(e,t,n){let o=at(e);return (o.credentialID!==t||(n===void 0?o.name!==void 0&&o.name!==null:o.name!==n))&&p(),o}function Qn(e){(!Array.isArray(e)||e.length>Kn)&&p();let t=e.map(at);return Pe(t.map(n=>n.id)),Pe(t.map(n=>n.credentialID)),t.length>1&&t.some(n=>n.userId!==t[0]?.userId)&&p(),t}function Zn(e,t,n){let o=g(e),i=at(o.passkey);return (i.id!==t||i.name!==n)&&p(),{passkey:i}}function eo(e){return g(e).status!==true&&p(),{status:true}}function dr(e){let t=g(e);return {name:rt(t.name,it),...v("id",ro(t.id))}}function pr(e){let t=g(e);return {id:Ce(t.id,128,1,64),name:rt(t.name,it),displayName:rt(t.displayName,it)}}function fr(e){(!Array.isArray(e)||e.length===0||e.length>st)&&p();let t=e.map(n=>{let o=g(n);return (o.type!=="public-key"||!Number.isSafeInteger(o.alg)||!lr.has(o.alg))&&p(),{type:"public-key",alg:o.alg}});return br(t.map(n=>n.alg)),t}function to(e){if(e===void 0)return;(!Array.isArray(e)||e.length>Kn)&&p();let t=e.map(n=>{let o=g(n);return o.type!=="public-key"&&p(),{type:"public-key",id:Ce(o.id,Bn),...v("transports",Ie(o.transports,Jn))}});return Pe(t.map(n=>n.id)),t}function gr(e){if(e===void 0)return;let t=g(e);t.requireResidentKey!==void 0&&typeof t.requireResidentKey!="boolean"&&p();let n=pe(t.residentKey,ur);return t.requireResidentKey!==void 0&&n!==void 0&&t.requireResidentKey!==(n==="required")&&p(),{...v("authenticatorAttachment",pe(t.authenticatorAttachment,cr)),...v("residentKey",n),...v("requireResidentKey",t.requireResidentKey),...v("userVerification",pe(t.userVerification,jn))}}function no(e){return e!==void 0&&(typeof e!="number"||!Number.isFinite(e)||e<0||e>Zi)&&p(),e}function oo(e){return e===void 0?void 0:B(e,Wi,Yi)}function Ie(e,t){if(e===void 0)return;(!Array.isArray(e)||e.length>st)&&p();let n=e.map(o=>ct(o,t));return Pe(n),n}function pe(e,t){if(e!==void 0)return ct(e,t)}function io(e){return Ce(e,Math.ceil(Fn*4/3),Xi,Fn)}function Ce(e,t,n=1,o=Number.POSITIVE_INFINITY){let i=ie(e,t),s=i.length%4,a=hr(i.at(-1)??""),c=Math.floor(i.length*3/4);return (!er.test(i)||s===1||s===2&&(a&15)!==0||s===3&&(a&3)!==0||c<n||c>o)&&p(),i}function ie(e,t){let n=R(e);return (n.length===0||n.length>t)&&p(),n}function rt(e,t){let n=ie(e,t);return nr.test(n)&&p(),n}function ro(e){if(e===void 0)return;let t=ie(e,253);return t!=="localhost"&&(t.endsWith(".")||!t.includes(".")||t.split(".").some(n=>!or.test(n)))&&p(),t}function mr(e,t){let n=ie(e,t),o=n.endsWith("=="),i=!o&&n.endsWith("="),s=n.at(o?-3:i?-2:-1)??"",a=so(s);return (n.length%4!==0||!tr.test(n)||o&&(a&15)!==0||i&&(a&3)!==0)&&p(),n}function hr(e){return so(e,true)}function so(e,t=false){return (t?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").indexOf(e)}function yr(e){let t=I(e,"name");return t===void 0?{}:(t!==null&&!ot(t)&&p(),{name:t})}function Ar(e){let t=I(e,"transports");if(t==null||t==="")return t===void 0?{}:{transports:t};let n=t.split(",");return (n.length>st||n.some(o=>!Jn.has(o))||new Set(n).size!==n.length)&&p(),{transports:t}}function Or(e){let t=I(e,"aaguid");return t==null?t===void 0?{}:{aaguid:null}:(ir.test(t)||p(),{aaguid:t})}function ct(e,t){let n=R(e);return t.has(n)||p(),n}function v(e,t){return t===void 0?{}:{[e]:t}}function Pe(e){new Set(e).size!==e.length&&p();}function br(e){new Set(e).size!==e.length&&p();}function Cr(e,t){if(!t)return e;let n=t.catch(()=>{});return n.then(()=>{n=null;}),{async request(o,i){return n&&await n,e.request(o,i)}}}var fo=new Map;function xr(e,t,n){let o=fo.get(n);if(!o){let i=new URLSearchParams(window.location.hash.slice(1)).get("authowl_code");if(!i)return;o=Promise.resolve().then(()=>(ve(),xe)).then(s=>s.completeCrossSiteSignIn(e,t,i)),fo.set(n,o);}return o}function go(e){return !le()||e.idToken||e.disableRedirect?"legacy":"first-party"}function ho(e,t=()=>{},n=vr){let o=ue(e),i=e.session.tokens,s=le()?xr(o,i,e.decoded.projectId):void 0,a=Cr(o,s),c=Bt({http:a,probe:ue({...e,fetch:e.session.probe}),tokens:i,channelName:`authowl:${e.decoded.projectId}`}),r=n(a,c.notifyMutation),d=()=>{c.notifyMutation(),t();},{post:l,mutation:h}=ee(a,d),y=e.decoded.env==="test",A=u=>{i.beginSession({remember:u?.rememberMe!==false});};return {sessionStore:c.store,getSession:c.getSession,account:Wt(a,d),organization:hn(a,d,()=>c.store.getSnapshot().data?.session.membership??null),signIn:{email:(u,f)=>(A(u),h(l("/sign-in/email",u,f,tt),m=>!("twoFactorRedirect"in m))),username:(u,f)=>(A(u),h(l("/sign-in/username",u,f,tt),m=>!("twoFactorRedirect"in m))),social:async(u,f)=>{if(A(),go(u)==="first-party"){let{beginCrossSiteSignIn:w}=await Promise.resolve().then(()=>(ve(),xe)),S=await w(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(S)return window.location.assign(S),{data:{redirect:true,url:S},error:null}}let m=await h(l("/sign-in/social",u,f,w=>bn(w,y)),w=>"user"in w);return m.error!==null||m.data===null||"url"in m.data&&m.data.redirect&&!u.disableRedirect&&typeof window<"u"&&window.location.assign(m.data.url),m},sso:async(u,f)=>{if(go(u)==="first-party"){let{beginCrossSiteSignIn:w}=await Promise.resolve().then(()=>(ve(),xe)),S=await w(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(S)return window.location.assign(S),{data:{url:S,redirect:true},error:null}}let m=await l("/sign-in/sso",u,f,w=>wn(w,y));return m.error!==null||m.data===null||typeof window<"u"&&window.location.assign(m.data.url),m},magicLink:(u,f)=>l("/sign-in/magic-link",u,f,Rn),emailOtp:(u,f)=>(A(),h(l("/sign-in/email-otp",u,f,An))),passkey:(u,f)=>(A(),r.signIn(u,f))},signUp:{email:(u,f)=>(A(),h(l("/sign-up/email",u,f,On),m=>m.sessionCreated))},emailOtp:{sendVerificationOtp:(u,f)=>l("/email-otp/send-verification-otp",u,f,Sn),verifyEmail:(u,f)=>(A(),h(l("/email-otp/verify-email",u,f,Pn)))},phoneOtp:{prepare:u=>l("/phone-otp/challenge",{},u,Tn),start:(u,f)=>l("/phone-otp/start",{...u,idempotencyKey:u.idempotencyKey??Xe()},f,kn),verify:(u,f)=>(A(),h(l("/phone-otp/verify",u,f,En)))},requestPasswordReset:(u,f)=>l("/request-password-reset",u,f,nt),resetPassword:(u,f)=>l("/reset-password",u,f,nt),sendVerificationEmail:(u,f)=>l("/send-verification-email",u,f,In),passkey:{addPasskey:(u,f)=>r.add(u,f),listUserPasskeys:()=>a.request("/passkey/list-user-passkeys",{decode:Qn}),updatePasskey:async(u,f)=>{let m=Te(u.name);if(!m.valid||m.value===void 0)return Ee();let w=m.value;return l("/passkey/update-passkey",{...u,name:w},f,S=>Zn(S,u.id,w))},deletePasskey:(u,f)=>l("/passkey/delete-passkey",u,f,eo)},twoFactor:{enable:(u,f)=>l("/two-factor/enable",u,f,xn),disable:(u,f)=>h(l("/two-factor/disable",u,f,vn),m=>m.status),verifyTotp:(u,f)=>h(l("/two-factor/verify-totp",u,f,Se)),verifyBackupCode:(u,f)=>h(l("/two-factor/verify-backup-code",u,f,Se)),sendOtp:(u={},f)=>l("/two-factor/send-otp",u,f,Dn),verifyOtp:(u,f)=>h(l("/two-factor/verify-otp",u,f,Se)),generateBackupCodes:(u,f)=>l("/two-factor/generate-backup-codes",u,f,_n)},signOut:u=>h(a.request("/sign-out",{method:"POST",body:{},fetchOptions:u,decode:Cn}).then(f=>(i.endSession(),f)),f=>f.success)}}function vr(){return {signIn:()=>mo(),add:()=>mo()}}function mo(){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 Ro(e,t,n){let o=new Map;return {async signIn(i={},s){let a=await e.request("/passkey/generate-authenticate-options");if(!a.data)return Oo(a.error);let c;try{c=$n(a.data);}catch{return yo()}let r;try{r=await n.authenticate({optionsJSON:c,useBrowserAutofill:i.autoFill});}catch(A){return bo(n,A,"AUTH_CANCELLED","Passkey authentication was cancelled.")}if(!Dr(r))return Ao();let{clientExtensionResults:d,...l}=r,h=o.get(r.id);if(h)return h;let y=(async()=>{let A=await e.request("/passkey/verify-authentication",{method:"POST",body:{response:l},fetchOptions:s,decode:Yn});return A.data&&t(),A})();o.set(r.id,y);try{return await y}finally{o.get(r.id)===y&&o.delete(r.id);}},async add(i={},s){let a=Te(i.name);if(!a.valid)return Ee();let c=await e.request("/passkey/generate-register-options",{query:{name:a.value,authenticatorAttachment:i.authenticatorAttachment}});if(!c.data)return Oo(c.error);let r;try{r=Wn(c.data);}catch{return yo()}let d;try{d=await n.register({optionsJSON:r});}catch(A){return bo(n,A,"REGISTRATION_CANCELLED","Passkey registration was cancelled.")}if(!_r(d))return Ao();let{clientExtensionResults:l,...h}=d,y=await e.request("/passkey/verify-registration",{method:"POST",body:{response:h,name:a.value},fetchOptions:s,decode:A=>Xn(A,d.id,a.value)});return y.data&&t(),y}}}function yo(){return {data:null,error:{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned invalid WebAuthn options."}}}function Ao(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_WEBAUTHN_RESPONSE",message:"The platform returned an invalid passkey response."}}}function So(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 Dr(e){if(!So(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 _r(e){if(!So(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.attestationObject=="string"}function Oo(e){return {data:null,error:e??{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned no WebAuthn options."}}}function bo(e,t,n,o){let i=Nr(t,"page does not have focus"),s=e.errorCode?.(t),a=s!==void 0?s==="ERROR_CEREMONY_ABORTED":wo(t)==="AbortError",c=n!=="AUTH_CANCELLED",r=Ur(s,wo(t),c);return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:i?"PASSKEY_PAGE_NOT_FOCUSED":a?n:s??"PASSKEY_BROWSER_ERROR",message:i?"Keep this page focused while completing the passkey prompt.":a?o:r}}}function Ur(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 wo(e){return e&&typeof e=="object"&&"name"in e&&typeof e.name=="string"?e.name:void 0}function Nr(e,t){let n=t.toLowerCase(),o=new Set,i=e;for(;i&&typeof i=="object"&&!o.has(i);){if(o.add(i),"message"in i&&typeof i.message=="string"&&i.message.toLowerCase().includes(n))return true;i="cause"in i?i.cause:void 0;}return false}function M(e){let t=new Uint8Array(e),n="";for(let i of t)n+=String.fromCharCode(i);return btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function Q(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),n=(4-t.length%4)%4,o=t.padEnd(t.length+n,"="),i=atob(o),s=new ArrayBuffer(i.length),a=new Uint8Array(s);for(let c=0;c<i.length;c++)a[c]=i.charCodeAt(c);return s}function Z(){return zr.stubThis(globalThis?.PublicKeyCredential!==void 0&&typeof globalThis.PublicKeyCredential=="function")}var zr={stubThis:e=>e};function De(e){let{id:t}=e;return {...e,id:Q(t),transports:e.transports}}function _e(e){return e==="localhost"||/^((xn--[a-z0-9-]+|[a-z0-9]+(-[a-z0-9]+)*)\.)+([a-z]{2,}|xn--[a-z0-9-]+)$/i.test(e)}var E=class extends Error{constructor({message:t,code:n,cause:o,name:i}){super(t,{cause:o}),Object.defineProperty(this,"code",{enumerable:true,configurable:true,writable:true,value:void 0}),this.name=i??o.name,this.code=n;}};function ko({error:e,options:t}){let{publicKey:n}=t;if(!n)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(t.signal instanceof AbortSignal)return new E({message:"Registration ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else if(e.name==="ConstraintError"){if(n.authenticatorSelection?.requireResidentKey===true)return new E({message:"Discoverable credentials were required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT",cause:e});if(t.mediation==="conditional"&&n.authenticatorSelection?.userVerification==="required")return new E({message:"User verification was required during automatic registration but it could not be performed",code:"ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE",cause:e});if(n.authenticatorSelection?.userVerification==="required")return new E({message:"User verification was required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT",cause:e})}else {if(e.name==="InvalidStateError")return new E({message:"The authenticator was previously registered",code:"ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED",cause:e});if(e.name==="NotAllowedError")return new E({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="NotSupportedError")return n.pubKeyCredParams.filter(i=>i.type==="public-key").length===0?new E({message:'No entry in pubKeyCredParams was of type "public-key"',code:"ERROR_MALFORMED_PUBKEYCREDPARAMS",cause:e}):new E({message:"No available authenticator supported any of the specified pubKeyCredParams algorithms",code:"ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG",cause:e});if(e.name==="SecurityError"){let o=globalThis.location.hostname;if(_e(o)){if(n.rp.id!==o)return new E({message:`The RP ID "${n.rp.id}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new E({message:`${globalThis.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="TypeError"){if(n.user.id.byteLength<1||n.user.id.byteLength>64)return new E({message:"User ID was not between 1 and 64 characters",code:"ERROR_INVALID_USER_ID_LENGTH",cause:e})}else if(e.name==="UnknownError")return new E({message:"The authenticator was unable to process the specified options, or could not create a new credential",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return e}var dt=class{constructor(){Object.defineProperty(this,"controller",{enumerable:true,configurable:true,writable:true,value:void 0});}createNewAbortSignal(){if(this.controller){let n=new Error("Cancelling existing WebAuthn API call for new one");n.name="AbortError",this.controller.abort(n);}let t=new AbortController;return this.controller=t,t.signal}cancelCeremony(){if(this.controller){let t=new Error("Manually cancelling existing WebAuthn API call");t.name="AbortError",this.controller.abort(t),this.controller=void 0;}}},Ue=new dt;var Lr=["cross-platform","platform"];function Ne(e){if(e&&!(Lr.indexOf(e)<0))return e}async function To(e){!e.optionsJSON&&e.challenge&&(console.warn("startRegistration() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information."),e={optionsJSON:e});let{optionsJSON:t,useAutoRegister:n=false}=e;if(!Z())throw new Error("WebAuthn is not supported in this browser");let o={...t,challenge:Q(t.challenge),user:{...t.user,id:Q(t.user.id)},excludeCredentials:t.excludeCredentials?.map(De)},i={};n&&(i.mediation="conditional"),i.publicKey=o,i.signal=Ue.createNewAbortSignal();let s;try{s=await navigator.credentials.create(i);}catch(u){throw ko({error:u,options:i})}if(!s)throw new Error("Registration was not completed");let{id:a,rawId:c,response:r,type:d}=s,l;typeof r.getTransports=="function"&&(l=r.getTransports());let h;if(typeof r.getPublicKeyAlgorithm=="function")try{h=r.getPublicKeyAlgorithm();}catch(u){pt("getPublicKeyAlgorithm()",u);}let y;if(typeof r.getPublicKey=="function")try{let u=r.getPublicKey();u!==null&&(y=M(u));}catch(u){pt("getPublicKey()",u);}let A;if(typeof r.getAuthenticatorData=="function")try{A=M(r.getAuthenticatorData());}catch(u){pt("getAuthenticatorData()",u);}return {id:a,rawId:M(c),response:{attestationObject:M(r.attestationObject),clientDataJSON:M(r.clientDataJSON),transports:l,publicKeyAlgorithm:h,publicKey:y,authenticatorData:A},type:d,clientExtensionResults:s.getClientExtensionResults(),authenticatorAttachment:Ne(s.authenticatorAttachment)}}function pt(e,t){console.warn(`The browser extension that intercepted this WebAuthn API call incorrectly implemented ${e}. You should report this error to them.
|
|
2
|
+
`,t);}function Eo(){if(!Z())return ft.stubThis(new Promise(t=>t(false)));let e=globalThis.PublicKeyCredential;return e?.isConditionalMediationAvailable===void 0?ft.stubThis(new Promise(t=>t(false))):ft.stubThis(e.isConditionalMediationAvailable())}var ft={stubThis:e=>e};function Io({error:e,options:t}){let{publicKey:n}=t;if(!n)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(t.signal instanceof AbortSignal)return new E({message:"Authentication ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else {if(e.name==="NotAllowedError")return new E({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="SecurityError"){let o=globalThis.location.hostname;if(_e(o)){if(n.rpId!==o)return new E({message:`The RP ID "${n.rpId}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new E({message:`${globalThis.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="UnknownError")return new E({message:"The authenticator was unable to process the specified options, or could not create a new assertion signature",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return e}async function Po(e){!e.optionsJSON&&e.challenge&&(console.warn("startAuthentication() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information."),e={optionsJSON:e});let{optionsJSON:t,useBrowserAutofill:n=false,verifyBrowserAutofillInput:o=true}=e;if(!Z())throw new Error("WebAuthn is not supported in this browser");let i;t.allowCredentials?.length!==0&&(i=t.allowCredentials?.map(De));let s={...t,challenge:Q(t.challenge),allowCredentials:i},a={};if(n){if(!await Eo())throw Error("Browser does not support WebAuthn autofill");if(document.querySelectorAll("input[autocomplete$='webauthn']").length<1&&o)throw Error('No <input> with "webauthn" as the only or last value in its `autocomplete` attribute was detected');a.mediation="conditional",s.allowCredentials=[];}a.publicKey=s,a.signal=Ue.createNewAbortSignal();let c;try{c=await navigator.credentials.get(a);}catch(A){throw Io({error:A,options:a})}if(!c)throw new Error("Authentication was not completed");let{id:r,rawId:d,response:l,type:h}=c,y;return l.userHandle&&(y=M(l.userHandle)),{id:r,rawId:M(d),response:{authenticatorData:M(l.authenticatorData),clientDataJSON:M(l.clientDataJSON),signature:M(l.signature),userHandle:y},type:h,clientExtensionResults:c.getClientExtensionResults(),authenticatorAttachment:Ne(c.authenticatorAttachment)}}var Co={authenticate:e=>Po(e),register:e=>To(e),errorCode:e=>e instanceof E?e.code:void 0};function vo(e){return `${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/consent`}async function gt(e){let t=await K(e,vo(e),{init:{method:"GET",credentials:"include"},maxResponseBytes:65536,decode:Mr});return t.response.status===401?{required:false}:X(t,"consent status")}async function mt(e,t){if(!Number.isSafeInteger(t)||t<1)throw new TypeError("Consent version must be a positive integer.");return X(await K(e,vo(e),{init:{method:"POST",headers:{"content-type":"application/json"},credentials:"include",body:JSON.stringify({version:t})},maxResponseBytes:64*1024,decode:Fr}),"consent accept")}function Mr(e){let t=g(e),n=T(t.required),o=Vr(t.needsConsent),i=Do(t.version),s=xo(t.termsUrl),a=xo(t.privacyUrl);return {required:n,...o===void 0?{}:{needsConsent:o},...i===void 0?{}:{version:i},...s===void 0?{}:{termsUrl:s},...a===void 0?{}:{privacyUrl:a}}}function Fr(e){let t=g(e),n=Do(t.version);return {ok:T(t.ok),...n===void 0?{}:{version:n}}}function Vr(e){if(e===void 0||typeof e=="boolean")return e;throw new TypeError("Invalid consent response.")}function Do(e){if(e===void 0||Number.isSafeInteger(e)&&e>=1)return e;throw new TypeError("Invalid consent response.")}function xo(e){if(e===void 0||typeof e=="string"&&e.length<=4096)return e;throw new TypeError("Invalid consent response.")}var Hr=30;function qr(e){return typeof e?.exp=="number"?e.exp:null}function Kr(e){let t=e.split(".")[1];if(!t)return null;try{let n=t.replace(/-/g,"+").replace(/_/g,"/"),o=JSON.parse(atob(n));return typeof o=="object"&&o!==null?o:null}catch{return null}}function ht(e){let t=new Map;async function n(s={}){let a=s.template===void 0?null:s.template.trim().toLowerCase();if(a==="")throw new TypeError("Template missing");let c=a??"",r=t.get(c);r||(r={activeKey:null,cachedByKey:new Map,inflight:null,sequence:0},t.set(c,r));let d=s.forceRefresh===true;if(!d){let u=r.activeKey?r.cachedByKey.get(r.activeKey):null;if(u&&u.exp-Date.now()/1e3>Hr)return u.token;if(r.inflight)return r.inflight}let l=++r.sequence,h=()=>t.get(c)===r&&r.sequence===l,y=(async()=>{let u=a?`${e.projectBaseURL}/token/${encodeURIComponent(a)}`:`${e.projectBaseURL}/token`,f=await K(e,u,{init:{method:"GET",credentials:"include"},maxResponseBytes:64*1024,decode:b=>Br(b,a!==null)});if(f.response.status===401)return h()&&o(),null;let m=X(f,"token"),w=m.policyVersion,S=m.token,N=Kr(S),H=qr(N);if(h())if(H!==null){let b=typeof N?.sub=="string"?N.sub:null,k=typeof N?.org_id=="string"?N.org_id:null;if(!a||b){let O=JSON.stringify([e.projectBaseURL,b,k,a,w]);r.cachedByKey.clear(),r.cachedByKey.set(O,{token:S,exp:H}),r.activeKey=O;}else i(r);}else i(r);return S})();if(d)return y;let A=y.finally(()=>{r.inflight===A&&(r.inflight=null);});return r.inflight=A,A}function o(){t.clear();}function i(s){s.cachedByKey.clear(),s.activeKey=null;}return {getToken:n,clear:o}}function Br(e,t){let n=g(e),o=R(n.token);if(o.length===0||o.length>32*1024)throw new TypeError("Invalid token response.");if(!t)return {token:o,policyVersion:0};let i=g(n.template);if(!Number.isSafeInteger(i.policyVersion)||i.policyVersion<1)throw new TypeError("Invalid token response.");return {token:o,policyVersion:i.policyVersion}}function jr(e){let t=ht(e),n=ho(e,t.clear,(a,c)=>Ro(a,c,Co)),o=ue(e,`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}`),i=a=>(...c)=>(t.clear(),a(...c)),s={getConsentStatus:()=>gt(e),acceptConsent:a=>mt(e,a),getToken:t.getToken,waitlist:{join:(a,c)=>o.request("/waitlist",{method:"POST",body:a,fetchOptions:c,credentials:"omit"})},account:{...n.account,updateUnsafeMetadata:i(n.account.updateUnsafeMetadata),updateProfile:i(n.account.updateProfile),changeEmail:i(n.account.changeEmail),changePassword:i(n.account.changePassword),revokeSession:i(n.account.revokeSession),delete:i(n.account.delete)},signIn:{email:i(n.signIn.email),username:i(n.signIn.username),social:i(n.signIn.social),sso:n.signIn.sso,magicLink:n.signIn.magicLink,emailOtp:i(n.signIn.emailOtp),passkey:i(n.signIn.passkey)},signUp:{email:i(n.signUp.email)},emailOtp:{...n.emailOtp,verifyEmail:i(n.emailOtp.verifyEmail)},twoFactor:{enable:n.twoFactor.enable,disable:i(n.twoFactor.disable),verifyTotp:i(n.twoFactor.verifyTotp),verifyBackupCode:i(n.twoFactor.verifyBackupCode),sendOtp:n.twoFactor.sendOtp,verifyOtp:i(n.twoFactor.verifyOtp),generateBackupCodes:n.twoFactor.generateBackupCodes},phoneOtp:{prepare:n.phoneOtp.prepare,start:n.phoneOtp.start,verify:i(n.phoneOtp.verify)},signOut:i(n.signOut)};return {...n,...s}}async function Jr(e){if(typeof window>"u")throw new Error("Akedly Shield challenges must be solved in a browser.");let t=await Gr(),n=e.challengeRequired?await t.solvePow(e.challenge,e.difficulty):null,o=e.turnstile.required?await t.getTurnstileToken($r(e.turnstile.siteKey)):void 0;return {connectionId:e.connectionId,...n?{challengeToken:e.challengeToken,nonce:n.nonce}:{},...o?{turnstileToken:o}:{}}}async function Gr(){return import('@akedly/shield')}function $r(e){if(!e)throw new Error("Akedly Shield did not provide a Turnstile site key.");return e}async function Wr(e){let n=`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/public-config`;return X(await K(e,n,{init:{method:"GET",credentials:"omit"},maxResponseBytes:256*1024,decode:o=>Yr(o,e)}),"public-config")}function Yr(e,t){let n=B(e),o=n.environmentId,i=n.environmentType,s=`${new URL(t.apiUrl).origin}/api/projects/${t.decoded.projectId}/auth`;if(typeof n.applicationId!="string"||!Xr(n.applicationId)||o!==t.decoded.projectId||i!=="development"&&i!=="production"||n.authBaseUrl!==s)throw F();let a=U(n.branding),c=U(n.legal);if(!yt(n.enabledMethods,64)||!yt(n.socialProviders,64)||!Uo(a,["appName","logoUrl","primaryColor"])||a.showAppName!==void 0&&typeof a.showAppName!="boolean"||a.alignment!==void 0&&a.alignment!=="left"&&a.alignment!=="center"&&a.alignment!=="right"||a.theme!==void 0&&a.theme!=="light"&&a.theme!=="dark"&&a.theme!=="system"||!Uo(c,["termsUrl","privacyUrl"])||!Number.isSafeInteger(c.version)||c.version<0||typeof c.required!="boolean")throw F();if(n.socialProviderClientIds!==void 0){let r=U(n.socialProviderClientIds);if(Object.keys(r).length>64||Object.values(r).some(d=>typeof d!="string"||d.length>2048))throw F()}if(!J(n,["requireEmailVerification","twoFactor","mfaRequired","accountDeletion","organizations","sso","badge"])||!_o(n.turnstileSiteKey)||!_o(n.authTurnstileSiteKey)||typeof n.locale!="string"||n.locale.length===0||n.locale.length>64||!Number.isSafeInteger(n.configVersion)||n.configVersion<0)throw F();if(n.jwtIssuer!==null){let r=U(n.jwtIssuer);if(r.issuer!==s||r.jwksUrl!==`${s}/jwks`||r.aud!==t.decoded.projectId)throw F()}if(n.signUp!==void 0){let r=U(n.signUp).mode;if(typeof r!="string"||!["open","restricted","allowlist","waitlist"].includes(r))throw F()}if(n.authentication!==void 0&&Qr(n.authentication),n.emailVerification!==void 0){let r=U(n.emailVerification);if(!J(r,["required"])||r.method!=="link"&&r.method!=="code")throw F()}if(n.userModel!==void 0&&!J(U(n.userModel),["requireEmail","firstLastName","emailChange","accountDeletion"]))throw F();if(n.mfa!==void 0){let r=U(n.mfa);if(!J(r,["totp","required","backupCodes"])||(r.required===true||r.backupCodes===true)&&r.totp!==true)throw F()}return n}function Xr(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 F(){return new TypeError("public-config returned an invalid response")}function U(e){if(!e||typeof e!="object"||Array.isArray(e))throw F();return e}function _o(e){return e===null||typeof e=="string"&&e.length<=4096}function Qr(e){let t=U(e),n=U(t.email),o=U(t.password),i=o.minLength!==void 0||o.maxLength!==void 0;if(!J(n,["signUp"])||!yt(n.signIn,3)||n.signIn.some(s=>s!=="password"&&s!=="magic_link"&&s!=="email_otp")||!J(U(t.phone),["signUp","signIn"])||!J(o,["signUp","add"])||i&&(!Number.isSafeInteger(o.minLength)||!Number.isSafeInteger(o.maxLength)||o.minLength<1||o.maxLength>4096||o.minLength>o.maxLength)||!J(U(t.passkey),["signIn","add"])||!Zr(U(t.passkey).relyingPartyId)||!J(U(t.username),["collectOnSignUp","signIn"]))throw F()}function Zr(e){return e==null||typeof e=="string"}function J(e,t){return t.every(n=>typeof e[n]=="boolean")}function Uo(e,t){return t.every(n=>e[n]===void 0||typeof e[n]=="string"&&e[n].length<=4096)}function yt(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 fe=class extends Error{constructor(n,o){super(n);this.cause=o;this.name="AuthOwlError";}cause},At=class extends fe{constructor(n,o){super(`Rate limited. Retry after ${n}s.`,o);this.retryAfterSeconds=n;this.name="RateLimitedError";}retryAfterSeconds},Ot=class extends fe{constructor(t="invalid publishable key",n){super(t,n),this.name="InvalidKeyError";}};var No=["en","ar"];function es(e){return e==="ar"?"rtl":"ltr"}function ts(e){return typeof e=="string"&&No.includes(e)}
|
|
3
|
+
exports.AUTH_CHALLENGE_HEADER=qt;exports.AuthOwlError=fe;exports.AuthOwlHttpError=me;exports.INVITATION_CLAIM_MAX_AGE_MS=Nt;exports.INVITATION_QUERY_PARAM=qe;exports.InvalidKeyError=Ot;exports.LOCALES=No;exports.RateLimitedError=At;exports.SESSION_TOKEN_HEADER=Fe;exports.SESSION_TRANSPORT_BEARER=He;exports.SESSION_TRANSPORT_HEADER=Ve;exports.TransportError=D;exports.acceptConsent=mt;exports.captureInvitationClaim=ti;exports.clearInvitationClaim=ae;exports.createAuthOwlClient=jr;exports.createIdempotencyKey=Xe;exports.createMembershipHas=Di;exports.createTokenClient=ht;exports.decodePublishableKey=ze;exports.directionFor=es;exports.getConsentStatus=gt;exports.getPublicConfig=Wr;exports.isLocale=ts;exports.membershipHas=Oe;exports.membershipHasPermission=Ae;exports.membershipHasRole=Xt;exports.membershipHasTeam=Yt;exports.readInvitationClaim=se;exports.resolveAuthTarget=_t;exports.resolveConfig=ei;exports.resolveProjectCapabilities=ni;exports.sessionChallengeIsEphemeral=Bo;exports.sessionCookieName=Vo;exports.solvePhoneOtpChallenge=Jr;
|