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