@authowl/core 0.15.0 → 0.15.2

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.
@@ -1 +1 @@
1
- import {h,g,e,r,k as k$1,i,q as q$1,j as j$1,o,t,v,p,l,s,n,m as m$1}from'./chunk-RRP2XNYV.js';import {a}from'./chunk-T5SH3ZZP.js';function Pi(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(r=>r==="password"||r==="magic_link"||r==="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 ae=class extends Error{status;requestId;constructor(t,n,i){super(`${t} request failed with status ${n.status}.`),this.name="AuthOwlHttpError",this.status=n.status,this.requestId=i;}};function X(e,t,n={}){let i=new Headers(n.init?.headers);return i.set("x-publishable-key",e.publishableKey),h({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 Ce(e,t){if(!e.response.ok)throw new ae(t,e.response,e.requestId);return e.data}var sn="x-authowl-turnstile-token",un=1e4,cn=32,dn=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 de(e$1,t=e$1.projectBaseURL){return {async request(n,i={}){let o=gn(t,n,i.query),a=i.method??(i.body===void 0?"GET":"POST"),r=new Headers(i.fetchOptions?.headers);i.fetchOptions?.authChallengeToken&&r.set(sn,i.fetchOptions.authChallengeToken),i.body!==void 0&&r.set("content-type","application/json");let u={method:a,headers:r,credentials:i.credentials??"include",...i.body===void 0?{}:{body:JSON.stringify(i.body)}},c=Object.freeze({method:a,path:n});await i.fetchOptions?.onRequest?.(c);let h=pn(a,i.fetchOptions),g$1;try{g$1=await ln(e$1,o,{...u,signal:i.fetchOptions?.signal},h);}catch(f){let S=xe(f);return await i.fetchOptions?.onError?.(se(c,S,hn(f))),{data:null,error:S}}let{response:A,requestId:I}=g$1,O=On(n,g$1.data),s=O;if(A.ok)try{s=ce(O),i.decode&&(s=i.decode(s));}catch{let f=xe(new g("invalid_response",I));return await i.fetchOptions?.onError?.(se(c,f,"invalid_response")),{data:null,error:f}}let l=Object.freeze({...c,status:A.status,...I===void 0?{}:{requestId:I}});if(await i.fetchOptions?.onResponse?.(l),!A.ok){let f=fn(A,O,I);return f.code===e&&e$1.session.tokens.dropChallenge(),await i.fetchOptions?.onError?.(se(c,f,"api")),{data:null,error:f}}return await i.fetchOptions?.onSuccess?.(l),{data:s,error:null}}}}async function ln(e,t,n,i){let o=Date.now()+un;for(let a=0;a<i;a+=1){let r=o-Date.now();if(r<=0)throw new g("timeout");try{let u=await X(e,t,{init:n,timeoutMs:Math.max(1,Math.ceil(r))});if(u.response.status<500||a===i-1)return u}catch(u){if(a===i-1||!(u instanceof g)||u.kind!=="network")throw u}await An(50*2**a,n.signal,o);}throw new g("network")}function pn(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 gn(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 fn(e,t,n){let i=K(t)?t:{},o=mn(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 mn(e,t){let n=(typeof e.retryAfterSeconds=="number"&&Number.isFinite(e.retryAfterSeconds)?e.retryAfterSeconds:void 0)??De(t.get("retry-after"))??De(t.get("x-retry-after"));if(n!==void 0)return Math.min(Math.max(Math.trunc(n),1),86400)}function De(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 xe(e){let t=e instanceof g?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 g&&e.requestId?{requestId:e.requestId}:{}}}function se(e,t,n){return Object.freeze({...e,status:t.status??0,...t.requestId===void 0?{}:{requestId:t.requestId},failure:n})}function hn(e){return e instanceof g?e.kind:"network"}function An(e,t,n){return new Promise((i,o)=>{if(t?.aborted){o(new g("aborted"));return}let a=n-Date.now();if(a<=0){o(new g("timeout"));return}let r=Math.min(e,a),u=()=>{clearTimeout(c),o(new g("aborted"));},c=setTimeout(()=>{t?.removeEventListener("abort",u),Date.now()>=n?o(new g("timeout")):i();},r);t?.addEventListener("abort",u,{once:true}),t?.aborted&&u();})}function ce(e,t="",n=0,i={nodes:0}){if(i.nodes+=1,n>cn||i.nodes>dn)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=>ce(o,"",n+1,i)):K(e)?Object.fromEntries(Object.entries(e).map(([o,a])=>[o,yn(o)?a:ce(a,o,n+1,i)])):e}function yn(e){return e==="metadata"||e==="public_metadata"||e==="unsafe_metadata"||e==="private_metadata"||e==="publicMetadata"||e==="unsafeMetadata"||e==="privateMetadata"}function On(e,t){if(e==="/list-sessions"&&Array.isArray(t))return t.map(o=>K(o)?ue(o):o);if(!K(t))return t;let i=e==="/change-password"||e==="/passkey/verify-authentication"||e==="/phone-otp/verify"||e==="/sign-up/email"||e.startsWith("/sign-in/")||e.startsWith("/two-factor/verify-")?ue(t):t;return e==="/sign-up/email"&&!("sessionCreated"in i)&&(i={...i,sessionCreated:typeof t.token=="string"&&t.token.length>0}),(e==="/get-session"||e==="/passkey/verify-authentication")&&K(i.session)&&(i={...i,session:ue(i.session)}),i}function ue(e){if(!Object.hasOwn(e,"token"))return e;let t={...e};return delete t.token,t}function K(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}function 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)}`}function Ee({http:e,probe:t,tokens:n,channelName:i}){let o=new Set,a=null,r=null,u=null,c=null,h=null,g,A=y=>{s(y);};g={data:null,isPending:true,isRefetching:false,error:null,refetch:A};function I(y){g=y;for(let P of o)P();}async function O(y){return e.request("/get-session",{query:y?.query,decode:le})}function s(y){if(y?.query?.disableCookieCache===true)return l(y);if(c)return c;let P=l(y).finally(()=>{c===P&&(c=null);});return c=P,P}async function l(y){u?.abort();let P=new AbortController;u=P,I({...g,isPending:g.data===null&&g.error===null,isRefetching:g.data!==null});let B=n.beginRead(),G=await e.request("/get-session",{query:y?.query,fetchOptions:{signal:P.signal},decode:le});if(u===P&&(u=null,I({data:G.data,error:G.error,isPending:false,isRefetching:false,refetch:A}),G.error===null)){if(G.data===null){B.endIfDead();return}await f(B);}}async function f(y){if(n.needsProbe()){if(!y.carriedToken){y.recordCookieVerdict(true);return}return h||S(y)}}function S(y){let P=t.request("/get-session",{query:{disableCookieCache:true},decode:le}).then(B=>{h===P&&B.error===null&&y.recordCookieVerdict(B.data!==null);}).finally(()=>{h===P&&(h=null);});return h=P,P}function v(){a?.postMessage({type:"session-changed"});}function rn(){if(typeof window>"u"||r)return;let y=()=>{s();},P=()=>{document.visibilityState==="visible"&&s();};window.addEventListener("focus",y),document.addEventListener("visibilitychange",P),typeof BroadcastChannel<"u"&&(a=new BroadcastChannel(i),a.addEventListener("message",y)),r=()=>{window.removeEventListener("focus",y),document.removeEventListener("visibilitychange",P),a?.close(),a=null,r=null;};}function an(y){return o.add(y),o.size===1&&(rn(),s()),()=>{o.delete(y),o.size===0&&(u?.abort(),u=null,r?.());}}return n.measureWith(()=>{n.needsProbe()&&S(n.beginRead());}),{store:{subscribe:an,getSnapshot:()=>g},getSession:O,notifyMutation(){v(),h&&h.catch(()=>{}).then(()=>{!n.needsProbe()&&n.hasToken()&&v();}),o.size>0&&s({query:{disableCookieCache:true}});}}}function le(e){if(e===null)return null;let t=i(e);return (t.session===void 0||t.user===void 0)&&q$1(),{session:p(t.session),user:o(t.user)}}async function Ne(e,t){return e.request("/user/metadata",{fetchOptions:t,decode:Me})}async function Ue(e,t,n){return e.request("/user/metadata",{method:"PATCH",body:{expected_version:t.expectedVersion,unsafe_metadata:t.unsafeMetadata},fetchOptions:n,decode:Me})}function Me(e){let t=i(e),n=r(t.public_metadata),i$1=r(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$1,metadataVersion:t.metadata_version}}function Le(e,t){let{post:n,mutation:i}=L(e,t);return {getMetadata:o=>Ne(e,o),updateUnsafeMetadata:(o,a)=>Ue(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,bn)),listSessions:o=>e.request("/list-sessions",{fetchOptions:o,decode:wn}),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:kn});if(!a.data)return {data:null,error:a.error};let r=a.data.length>1;return {...a,data:a.data.filter(u=>u.providerId!=="credential").map(u=>({...u,canUnlink:r}))}},linkSocial:(o,a)=>n("/link-social",o,a,Sn),unlinkSocial:(o,a)=>i(n("/unlink-account",o,a,j)),delete:(o={},a)=>i(n("/delete-user",o,a,Rn))}}function j(e){let t=i(e);return {status:k$1(t.status)}}function bn(e){let t=i(e);return {user:o(t.user)}}function wn(e){return Array.isArray(e)||q$1(),e.map(t=>{let n$1=i(t);return {id:j$1(n$1.id),userId:j$1(n$1.userId),createdAt:l(n$1.createdAt),updatedAt:l(n$1.updatedAt),expiresAt:l(n$1.expiresAt),..._e("ipAddress",n(n$1,"ipAddress")),..._e("userAgent",n(n$1,"userAgent"))}})}function kn(e){return Array.isArray(e)||q$1(),e.map(t=>{let n=i(t);return {id:j$1(n.id),userId:j$1(n.userId),providerId:j$1(n.providerId),accountId:j$1(n.accountId),scopes:m$1(n.scopes),createdAt:l(n.createdAt),updatedAt:l(n.updatedAt)}})}function Sn(e){let t=i(e);return {url:j$1(t.url),redirect:k$1(t.redirect)}}function Rn(e){let t=i(e);return {success:k$1(t.success),message:j$1(t.message)}}function _e(e,t){return t===void 0?{}:{[e]:t}}var In=new Set(["pending","accepted","rejected","canceled"]),Fe=1e4;function F(e,t,n$1){let i$1=i(e),o={id:m(i$1.id),name:m(i$1.name),slug:m(i$1.slug),createdAt:l(i$1.createdAt),...$("logo",n(i$1,"logo")),...$("metadata",i$1.metadata===void 0?void 0:s(i$1.metadata))};return M(o.id,t),M(o.slug,n$1),o}function qe(e){return _(e,F)}function pe(e,t,n){return e===null?null:(t===null&&q$1(),F(e,t,n))}function Ve(e,t,n){if(e===null)return null;let i$1=i(e),o=F(i$1,t,n);return {...o,members:_(i$1.members,a=>et(a,o.id)),invitations:_(i$1.invitations,a=>N(a,void 0,o.id))}}function He(e,t){let n=_(e,i=>Ze(i));return Y(n.map(i=>i.organizationId),t),n}function Be(e,t,n){return e===null?null:(t===null&&q$1(),Ze(e,t,n))}function Ke(e,t){let n=i(e);return (!Number.isSafeInteger(n.total)||n.total<0)&&q$1(),{members:Pn(n.members,t),total:n.total}}function N(e,t,n){let i$1=i(e),o=m(i$1.status);In.has(o)||q$1();let a={id:m(i$1.id),organizationId:m(i$1.organizationId),email:m(i$1.email),role:m(i$1.role),status:o,inviterId:m(i$1.inviterId),expiresAt:l(i$1.expiresAt),createdAt:l(i$1.createdAt)};return M(a.id,t),M(a.organizationId,n),a}function je(e,t){let n=_(e,i=>N(i));return Y(n.map(i=>i.organizationId),t),n}function Je(e){return _(e,t=>{let n=i(t);return {...N(n),organizationName:m(n.organizationName)}})}function Ge(e,t){let n=i(e);return {...N(n,t),organizationName:m(n.organizationName),organizationSlug:m(n.organizationSlug),inviterEmail:m(n.inviterEmail)}}function We(e,t){let n=i(e),i$1=N(n.invitation,t);return {invitation:i$1,member:q(n.member,void 0,i$1.organizationId)}}function Xe(e,t){let n=i(e);return n.member!==null&&q$1(),{invitation:n.invitation===null?null:N(n.invitation,t),member:null}}function $e(e,t){return e===null?null:N(e,t)}function Ye(e,t,n){let i$1=i(e);return {member:q(i$1.member,n,t)}}function q(e,t,n){let i$1=i(e),o={id:m(i$1.id),organizationId:m(i$1.organizationId),userId:m(i$1.userId),role:m(i$1.role),createdAt:l(i$1.createdAt),...i$1.user===void 0?{}:{user:tt(i$1.user)}};return M(o.id,t),M(o.organizationId,n),o}function Qe(e,t){let n=_(e,i$1=>{let o=i(i$1);return {organizationId:m(o.organizationId),data:{role:m(o.role),...$("permission",o.permission===void 0?void 0:Tn(o.permission))}}});return Y(n.map(i=>i.organizationId),t),n.map(i=>i.data)}function Ze(e,t,n){let i$1=i(e),o=i$1.updatedAt,a={id:m(i$1.id),name:m(i$1.name),organizationId:m(i$1.organizationId),createdAt:l(i$1.createdAt),...o===void 0?{}:{updatedAt:l(o)}};return M(a.id,t),M(a.organizationId,n),a}function et(e,t){let n=i(e);return {...q(n,void 0,t),user:tt(n.user)}}function Pn(e,t){let n=_(e,i=>et(i));return Y(n.map(i=>i.organizationId),t),n}function Tn(e){let t=i(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))&&q$1(),n[i]=o.map(a=>m(a));return n}function m(e){let t=j$1(e);return (t.length===0||t.length>Fe)&&q$1(),t}function M(e,t){t!==void 0&&e!==t&&q$1();}function Y(e,t){let n=t??e[0];n!==void 0&&e.some(i=>i!==n)&&q$1();}function tt(e){let t=i(e);return {id:m(t.id),name:m(t.name),email:m(t.email),...$("image",n(t,"image"))}}function _(e,t){return Array.isArray(e)||q$1(),e.map(n=>t(n))}function $(e,t){return t===void 0?{}:{[e]:t}}function nt(e,t$1,n=()=>null){let{post:i,mutation:o}=L(e,t$1),a=(r,u,c,h)=>e.request(r,{query:u,fetchOptions:c,decode:h});return {create:(r,u)=>o(i("/organization/create",r,u,F)),list:r=>a("/organization/list",void 0,r,qe),get:(r={},u)=>a("/organization/get-full-organization",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,membersLimit:r.membersLimit},u,c=>Ve(c,r.organizationId,r.organizationSlug)),setActive:(r,u)=>o(i("/organization/set-active",r,u,c=>pe(c,r.organizationId,r.organizationSlug))),listTeams:(r={},u)=>a("/organization/list-teams",{organizationId:r.organizationId},u,c=>He(c,r.organizationId)),setActiveTeam:(r,u)=>o(i("/organization/set-active-team",r,u,c=>Be(c,r.teamId))),update:(r,u)=>o(i("/organization/update",r,u,c=>pe(c,r.organizationId))),delete:(r,u)=>o(i("/organization/delete",r,u,c=>F(c,r.organizationId))),listMembers:(r={},u)=>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},u,c=>Ke(c,r.organizationId)),inviteMember:(r,u)=>o(i("/organization/invite-member",r,u,c=>N(c,void 0,r.organizationId))),listInvitations:(r={},u)=>a("/organization/list-invitations",{organizationId:r.organizationId},u,c=>je(c,r.organizationId)),listUserInvitations:r=>a("/organization/list-user-invitations",void 0,r,Je),getInvitation:(r,u)=>a("/organization/get-invitation",{id:r.id},u,c=>Ge(c,r.id)),acceptInvitation:(r,u)=>o(i("/organization/accept-invitation",r,u,c=>We(c,r.invitationId))),rejectInvitation:(r,u)=>o(i("/organization/reject-invitation",r,u,c=>Xe(c,r.invitationId))),cancelInvitation:(r,u)=>o(i("/organization/cancel-invitation",r,u,c=>$e(c,r.invitationId))),removeMember:(r,u)=>o(i("/organization/remove-member",r,u,c=>Ye(c,r.organizationId,r.memberIdOrEmail.includes("@")?void 0:r.memberIdOrEmail))),updateMemberRole:(r,u)=>o(i("/organization/update-member-role",r,u,c=>q(c,r.memberId,r.organizationId))),leave:(r,u)=>o(i("/organization/leave",r,u,c=>q(c,void 0,r.organizationId))),listRoles:(r={},u)=>a("/organization/list-roles",{organizationId:r.organizationId},u,c=>Qe(c,r.organizationId)),has:r=>v(n(),r),hasPermission:r=>t(n(),r.permission)}}var it=4096,vn=4096,Cn=100,Dn=256,xn=16,zn=64,En=12;function fe(e){let t=i(e);return t.twoFactorRedirect===true?((t.user!==void 0||t.redirect!==void 0||t.url!==void 0)&&q$1(),{twoFactorRedirect:true,...t.twoFactorMethods===void 0?{}:{twoFactorMethods:wt(t.twoFactorMethods,xn,zn)}}):(t.twoFactorRedirect!==void 0&&q$1(),{redirect:k$1(t.redirect),...Ln(t,"url"),user:o(t.user)})}function ot(e){let t=i(e);return {user:o(t.user)}}function rt(e){let t=i(e);return {sessionCreated:k$1(t.sessionCreated),user:o(t.user)}}function at(e,t){let n=i(e),i$1=k$1(n.redirect);n.user===null&&q$1();let o$1=n.user!==void 0&&n.user!==null,a=n.url!==void 0&&n.url!==null;return i$1?((o$1||!a)&&q$1(),{redirect:true,url:ge(n.url,t)}):(o$1===a&&q$1(),o$1?{redirect:false,user:o(n.user)}:{redirect:false,url:ge(n.url,t)})}function st(e,t){let n=i(e);return (n.redirect!==true||n.user!==void 0)&&q$1(),{redirect:true,url:ge(n.url,t)}}function ut(e){return {status:k$1(i(e).status)}}function ct(e){return {success:k$1(i(e).success)}}function dt(e){return i(e).status!=="pending"&&q$1(),{status:"pending"}}function lt(e){let t=i(e);if(t.kind==="authowl_turnstile")return {kind:"authowl_turnstile"};t.kind!=="akedly_shield_v1_2"&&q$1();let n=i(t.turnstile),i$1=n.siteKey===null?null:j$1(n.siteKey);return {kind:"akedly_shield_v1_2",connectionId:j$1(t.connectionId),challenge:j$1(t.challenge),difficulty:Nn(t.difficulty),challengeToken:j$1(t.challengeToken),challengeRequired:k$1(t.challengeRequired),turnstile:{required:k$1(n.required),siteKey:i$1}}}function Nn(e){return (!Number.isSafeInteger(e)||Number(e)<0||Number(e)>En)&&q$1(),Number(e)}function pt(e){let t=i(e);return (t.status!==true||t.sessionCreated!==true)&&q$1(),{status:true,sessionCreated:true,user:Un(t.user)}}function me(e){return {status:k$1(i(e).status)}}function gt(e){return {status:k$1(i(e).status)}}function ft(e){let t=i(e);return {status:k$1(t.status),user:o(t.user)}}function mt(e){return {success:k$1(i(e).success)}}function ht(e){let t=i(e);return {totpURI:_n(t.totpURI),backupCodes:bt(t.backupCodes)}}function At(e){return {status:k$1(i(e).status)}}function Q(e){return i(e).status!==true&&q$1(),{status:true}}function yt(e){return {status:k$1(i(e).status)}}function Ot(e){let t=i(e);return t.status!==void 0&&t.status!==true&&q$1(),{backupCodes:bt(t.backupCodes)}}function Un(e){let t=i(e);return {id:V(t.id,512),...Fn(t,"name",1024),phoneNumber:V(t.phoneNumber,64),phoneNumberVerified:k$1(t.phoneNumberVerified),...t.createdAt===void 0?{}:{createdAt:l(t.createdAt)},...t.updatedAt===void 0?{}:{updatedAt:l(t.updatedAt)}}}function ge(e,t){let n=V(e,it);/[\u0000-\u0020\u007f]/u.test(n)&&q$1();let i;try{i=new URL(n);}catch{return q$1()}return (i.username||i.password)&&q$1(),i.protocol==="https:"||t&&i.protocol==="http:"&&Mn(i.hostname)?i.href:q$1()}function Mn(e){let t=e.toLowerCase();return t==="localhost"||t==="127.0.0.1"||t==="[::1]"}function _n(e){let t=V(e,vn),n;try{n=new URL(t);}catch{return q$1()}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))&&q$1(),t}function bt(e){return wt(e,Cn,Dn)}function wt(e,t,n){(!Array.isArray(e)||e.length===0||e.length>t)&&q$1();let i=e.map(o=>V(o,n));return i.some(o=>o.trim().length===0)&&q$1(),new Set(i).size!==i.length&&q$1(),i}function V(e,t){let n=j$1(e);return (n.length===0||n.length>t)&&q$1(),n}function Ln(e,t){let n=e[t];return n==null?{}:{[t]:V(n,it)}}function Fn(e,t,n$1){let i=n(e,t);return i===void 0?{}:(i!==null&&i.length>n$1&&q$1(),{[t]:i})}var kt=new Set([1564,8206,8207,8234,8235,8236,8237,8238,8294,8295,8296,8297]),Z=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||Rt(n,i)||St(i)||kt.has(i))return {valid:false}}let t=qn(e);return he(t)?{valid:true,value:t}:{valid:false}}function he(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||Rt(o,a)||St(a)||kt.has(a))return false;n??=a,i=a;}return t>0&&n!==void 0&&i!==void 0&&!Z.has(n)&&!Z.has(i)}function te(){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 qn(e){let t=0,n=e.length;for(;t<n;){let i=e.codePointAt(t);if(i===void 0||!Z.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,r=e.codePointAt(a);if(r===void 0||!Z.has(r))break;n=a;}return e.slice(t,n)}function St(e){return e>=0&&e<=31||e>=127&&e<=159}function Rt(e,t){return e.length===1&&t>=55296&&t<=57343}var Tt=12,vt=5e3,Vn=8,Hn=1e3,Bn=16,It=512,Ct=100,Dt=8192,Kn=32768,Ae=1024,Pt=256,Oe=64,jn=6e5,Jn=/^[A-Za-z0-9_-]+$/u,Gn=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u,Wn=/[\u0000-\u001f\u007f-\u009f\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/u,Xn=/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$/u,$n=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu,xt=new Set(["discouraged","preferred","required"]),Yn=new Set(["singleDevice","multiDevice"]),zt=new Set(["ble","cable","hybrid","internal","nfc","smart-card","usb"]),Et=new Set(["hybrid","security-key","client-device"]),Qn=new Set(["none","indirect","direct","enterprise"]),Zn=new Set(["fido-u2f","packed","android-safetynet","android-key","tpm","apple","none"]),ei=new Set(["platform","cross-platform"]),ti=new Set(["discouraged","preferred","required"]),ni=new Set([-8,-7,-257]);function Nt(e){let t=r(e,Tt,vt);return {challenge:Kt(t.challenge),...k("timeout",Ht(t.timeout)),...k("rpId",jt(t.rpId)),...k("allowCredentials",Vt(t.allowCredentials)),...k("userVerification",J(t.userVerification,xt)),...k("hints",ne(t.hints,Et)),...k("extensions",Bt(t.extensions))}}function Ut(e){let t=r(e,Tt,vt);return {challenge:Kt(t.challenge),rp:ii(t.rp),user:oi(t.user),pubKeyCredParams:ri(t.pubKeyCredParams),...k("timeout",Ht(t.timeout)),...k("excludeCredentials",Vt(t.excludeCredentials)),...k("authenticatorSelection",ai(t.authenticatorSelection)),...k("attestation",J(t.attestation,Qn)),...k("attestationFormats",ne(t.attestationFormats,Zn)),...k("hints",ne(t.hints,Et)),...k("extensions",Bt(t.extensions))}}function Mt(e){let t=i(e),n=p(t.session),i$1=o(t.user);return n.userId!==i$1.id&&q$1(),{session:n,user:i$1}}function be(e){let t=i(e),n=t.counter;(!Number.isSafeInteger(n)||n<0)&&q$1();let i$1=we(t.deviceType,Yn),o=k$1(t.backedUp);return o&&i$1!=="multiDevice"&&q$1(),{id:H(t.id,Pt),...ci(t),publicKey:si(t.publicKey,Kn),userId:H(t.userId,Pt),credentialID:oe(t.credentialID,Dt),counter:n,deviceType:i$1,backedUp:o,...di(t),createdAt:l(t.createdAt),...li(t)}}function _t(e,t,n){let i=be(e);return (i.credentialID!==t||(n===void 0?i.name!==void 0&&i.name!==null:i.name!==n))&&q$1(),i}function Lt(e){(!Array.isArray(e)||e.length>Ct)&&q$1();let t=e.map(be);return ie(t.map(n=>n.id)),ie(t.map(n=>n.credentialID)),t.length>1&&t.some(n=>n.userId!==t[0]?.userId)&&q$1(),t}function Ft(e,t,n){let i$1=i(e),o=be(i$1.passkey);return (o.id!==t||o.name!==n)&&q$1(),{passkey:o}}function qt(e){return i(e).status!==true&&q$1(),{status:true}}function ii(e){let t=i(e);return {name:ye(t.name,Ae),...k("id",jt(t.id))}}function oi(e){let t=i(e);return {id:oe(t.id,128,1,64),name:ye(t.name,Ae),displayName:ye(t.displayName,Ae)}}function ri(e){(!Array.isArray(e)||e.length===0||e.length>Oe)&&q$1();let t=e.map(n=>{let i$1=i(n);return (i$1.type!=="public-key"||!Number.isSafeInteger(i$1.alg)||!ni.has(i$1.alg))&&q$1(),{type:"public-key",alg:i$1.alg}});return pi(t.map(n=>n.alg)),t}function Vt(e){if(e===void 0)return;(!Array.isArray(e)||e.length>Ct)&&q$1();let t=e.map(n=>{let i$1=i(n);return i$1.type!=="public-key"&&q$1(),{type:"public-key",id:oe(i$1.id,Dt),...k("transports",ne(i$1.transports,zt))}});return ie(t.map(n=>n.id)),t}function ai(e){if(e===void 0)return;let t=i(e);t.requireResidentKey!==void 0&&typeof t.requireResidentKey!="boolean"&&q$1();let n=J(t.residentKey,ti);return t.requireResidentKey!==void 0&&n!==void 0&&t.requireResidentKey!==(n==="required")&&q$1(),{...k("authenticatorAttachment",J(t.authenticatorAttachment,ei)),...k("residentKey",n),...k("requireResidentKey",t.requireResidentKey),...k("userVerification",J(t.userVerification,xt))}}function Ht(e){return e!==void 0&&(typeof e!="number"||!Number.isFinite(e)||e<0||e>jn)&&q$1(),e}function Bt(e){return e===void 0?void 0:r(e,Vn,Hn)}function ne(e,t){if(e===void 0)return;(!Array.isArray(e)||e.length>Oe)&&q$1();let n=e.map(i=>we(i,t));return ie(n),n}function J(e,t){if(e!==void 0)return we(e,t)}function Kt(e){return oe(e,Math.ceil(It*4/3),Bn,It)}function oe(e,t,n=1,i=Number.POSITIVE_INFINITY){let o=H(e,t),a=o.length%4,r=ui(o.at(-1)??""),u=Math.floor(o.length*3/4);return (!Jn.test(o)||a===1||a===2&&(r&15)!==0||a===3&&(r&3)!==0||u<n||u>i)&&q$1(),o}function H(e,t){let n=j$1(e);return (n.length===0||n.length>t)&&q$1(),n}function ye(e,t){let n=H(e,t);return Wn.test(n)&&q$1(),n}function jt(e){if(e===void 0)return;let t=H(e,253);return t!=="localhost"&&(t.endsWith(".")||!t.includes(".")||t.split(".").some(n=>!Xn.test(n)))&&q$1(),t}function si(e,t){let n=H(e,t),i=n.endsWith("=="),o=!i&&n.endsWith("="),a=n.at(i?-3:o?-2:-1)??"",r=Jt(a);return (n.length%4!==0||!Gn.test(n)||i&&(r&15)!==0||o&&(r&3)!==0)&&q$1(),n}function ui(e){return Jt(e,true)}function Jt(e,t=false){return (t?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").indexOf(e)}function ci(e){let t=n(e,"name");return t===void 0?{}:(t!==null&&!he(t)&&q$1(),{name:t})}function di(e){let t=n(e,"transports");if(t==null||t==="")return t===void 0?{}:{transports:t};let n$1=t.split(",");return (n$1.length>Oe||n$1.some(i=>!zt.has(i))||new Set(n$1).size!==n$1.length)&&q$1(),{transports:t}}function li(e){let t=n(e,"aaguid");return t==null?t===void 0?{}:{aaguid:null}:($n.test(t)||q$1(),{aaguid:t})}function we(e,t){let n=j$1(e);return t.has(n)||q$1(),n}function k(e,t){return t===void 0?{}:{[e]:t}}function ie(e){new Set(e).size!==e.length&&q$1();}function pi(e){new Set(e).size!==e.length&&q$1();}function gi(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 Gt=new Map;function fi(e,t,n){let i=Gt.get(n);return i||(i=import('./session-handoff-VJI4IXLT.js').then(o=>o.completeCrossSiteSignIn(e,t)),Gt.set(n,i)),i}function Wt(e){return !a()||e.idToken||e.disableRedirect?"legacy":"first-party"}function mi(e,t=()=>{},n=yi){let i=de(e),o=e.session.tokens,a$1=a()?fi(i,o,e.decoded.projectId):void 0,r=gi(i,a$1),u=Ee({http:r,probe:de({...e,fetch:e.session.probe}),tokens:o,channelName:`authowl:${e.decoded.projectId}`}),c=n(r,u.notifyMutation),h=()=>{u.notifyMutation(),t();},{post:g,mutation:A}=L(r,h),I=e.decoded.env==="test",O=s=>{o.beginSession({remember:s?.rememberMe!==false});};return {sessionStore:u.store,getSession:u.getSession,account:Le(r,h),organization:nt(r,h,()=>u.store.getSnapshot().data?.session.membership??null),signIn:{email:(s,l)=>(O(s),A(g("/sign-in/email",s,l,fe),f=>!("twoFactorRedirect"in f))),username:(s,l)=>(O(s),A(g("/sign-in/username",s,l,fe),f=>!("twoFactorRedirect"in f))),social:async(s,l)=>{if(O(),Wt(s)==="first-party"){let{beginCrossSiteSignIn:S}=await import('./session-handoff-VJI4IXLT.js'),v=await S(e,{kind:"social",provider:s.provider,callbackURL:s.callbackURL,errorCallbackURL:s.errorCallbackURL,newUserCallbackURL:s.newUserCallbackURL,scopes:s.scopes,loginHint:s.loginHint,requestSignUp:s.requestSignUp});if(v)return window.location.assign(v),{data:{redirect:true,url:v},error:null}}let f=await A(g("/sign-in/social",s,l,S=>at(S,I)),S=>"user"in S);return f.error!==null||f.data===null||"url"in f.data&&f.data.redirect&&!s.disableRedirect&&typeof window<"u"&&window.location.assign(f.data.url),f},sso:async(s,l)=>{if(Wt(s)==="first-party"){let{beginCrossSiteSignIn:S}=await import('./session-handoff-VJI4IXLT.js'),v=await S(e,{kind:"sso",email:s.email,providerId:s.providerId,domain:s.domain,organizationSlug:s.organizationSlug,callbackURL:s.callbackURL,errorCallbackURL:s.errorCallbackURL,newUserCallbackURL:s.newUserCallbackURL});if(v)return window.location.assign(v),{data:{url:v,redirect:true},error:null}}let f=await g("/sign-in/sso",s,l,S=>st(S,I));return f.error!==null||f.data===null||typeof window<"u"&&window.location.assign(f.data.url),f},magicLink:(s,l)=>g("/sign-in/magic-link",s,l,ut),emailOtp:(s,l)=>(O(),A(g("/sign-in/email-otp",s,l,ot))),passkey:(s,l)=>(O(),c.signIn(s,l))},signUp:{email:(s,l)=>(O(),A(g("/sign-up/email",s,l,rt),f=>f.sessionCreated))},emailOtp:{sendVerificationOtp:(s,l)=>g("/email-otp/send-verification-otp",s,l,ct),verifyEmail:(s,l)=>(O(),A(g("/email-otp/verify-email",s,l,ft)))},phoneOtp:{prepare:s=>g("/phone-otp/challenge",{},s,lt),start:(s,l)=>g("/phone-otp/start",{...s,idempotencyKey:s.idempotencyKey??ze()},l,dt),verify:(s,l)=>(O(),A(g("/phone-otp/verify",s,l,pt)))},requestPasswordReset:(s,l)=>g("/request-password-reset",s,l,me),resetPassword:(s,l)=>g("/reset-password",s,l,me),sendVerificationEmail:(s,l)=>g("/send-verification-email",s,l,gt),passkey:{addPasskey:(s,l)=>c.add(s,l),listUserPasskeys:()=>r.request("/passkey/list-user-passkeys",{decode:Lt}),updatePasskey:async(s,l)=>{let f=ee(s.name);if(!f.valid||f.value===void 0)return te();let S=f.value;return g("/passkey/update-passkey",{...s,name:S},l,v=>Ft(v,s.id,S))},deletePasskey:(s,l)=>g("/passkey/delete-passkey",s,l,qt)},twoFactor:{enable:(s,l)=>g("/two-factor/enable",s,l,ht),disable:(s,l)=>A(g("/two-factor/disable",s,l,At),f=>f.status),verifyTotp:(s,l)=>A(g("/two-factor/verify-totp",s,l,Q)),verifyBackupCode:(s,l)=>A(g("/two-factor/verify-backup-code",s,l,Q)),sendOtp:(s={},l)=>g("/two-factor/send-otp",s,l,yt),verifyOtp:(s,l)=>A(g("/two-factor/verify-otp",s,l,Q)),generateBackupCodes:(s,l)=>g("/two-factor/generate-backup-codes",s,l,Ot)},signOut:s=>A(r.request("/sign-out",{method:"POST",body:{},fetchOptions:s,decode:mt}).then(l=>(o.endSession(),l)),l=>l.success)}}function lo(e,t=()=>{},n){let i=mi(e,t,n);return n?{...i,signIn:{email:i.signIn.email,username:i.signIn.username,social:Xt(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:Xt(i),magicLink:i.signIn.magicLink,emailOtp:i.signIn.emailOtp},passkey:{listUserPasskeys:i.passkey.listUserPasskeys,updatePasskey:i.passkey.updatePasskey,deletePasskey:i.passkey.deletePasskey}}}function Xt(e){return async(t,n)=>{if(!t?.idToken||typeof t.idToken.token!="string"||t.idToken.token==="")return hi();let i=await e.signIn.social({...t,disableRedirect:true},n);return i.data!==null&&"url"in i.data?Ai():i}}function hi(){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 Ai(){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 yi(){return {signIn:()=>$t(),add:()=>$t()}}function $t(){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 mo(e,t,n){let i=new Map;return {async signIn(o={},a){let r=await e.request("/passkey/generate-authenticate-options");if(!r.data)return Zt(r.error);let u;try{u=Nt(r.data);}catch{return Yt()}let c;try{c=await n.authenticate({optionsJSON:u,useBrowserAutofill:o.autoFill});}catch(O){return en(n,O,"AUTH_CANCELLED","Passkey authentication was cancelled.")}if(!Oi(c))return Qt();let{clientExtensionResults:h,...g}=c,A=i.get(c.id);if(A)return A;let I=(async()=>{let O=await e.request("/passkey/verify-authentication",{method:"POST",body:{response:g},fetchOptions:a,decode:Mt});return O.data&&t(),O})();i.set(c.id,I);try{return await I}finally{i.get(c.id)===I&&i.delete(c.id);}},async add(o={},a){let r=ee(o.name);if(!r.valid)return te();let u=await e.request("/passkey/generate-register-options",{query:{name:r.value,authenticatorAttachment:o.authenticatorAttachment}});if(!u.data)return Zt(u.error);let c;try{c=Ut(u.data);}catch{return Yt()}let h;try{h=await n.register({optionsJSON:c});}catch(O){return en(n,O,"REGISTRATION_CANCELLED","Passkey registration was cancelled.")}if(!bi(h))return Qt();let{clientExtensionResults:g,...A}=h,I=await e.request("/passkey/verify-registration",{method:"POST",body:{response:A,name:r.value},fetchOptions:a,decode:O=>_t(O,h.id,r.value)});return I.data&&t(),I}}}function Yt(){return {data:null,error:{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned invalid WebAuthn options."}}}function Qt(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_WEBAUTHN_RESPONSE",message:"The platform returned an invalid passkey response."}}}function tn(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 Oi(e){if(!tn(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 bi(e){if(!tn(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.attestationObject=="string"}function Zt(e){return {data:null,error:e??{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned no WebAuthn options."}}}function en(e,t,n,i){let o=ki(t,"page does not have focus"),a=e.errorCode?.(t),r=a!==void 0?a==="ERROR_CEREMONY_ABORTED":wi(t)==="AbortError";return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:o?"PASSKEY_PAGE_NOT_FOCUSED":r?n:a??"PASSKEY_BROWSER_ERROR",message:o?"Keep this page focused while completing the passkey prompt.":r?i:n==="AUTH_CANCELLED"?"Passkey authentication could not be completed by this browser.":"Passkey registration could not be completed by this browser."}}}function wi(e){return e&&typeof e=="object"&&"name"in e&&typeof e.name=="string"?e.name:void 0}function ki(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 Oo(e){let n=`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/public-config`;return Ce(await X(e,n,{init:{method:"GET",credentials:"omit"},maxResponseBytes:256*1024,decode:i=>Si(i,e)}),"public-config")}function Si(e,t){let n=r(e),i=n.environmentId,o=n.environmentType,a=`${new URL(t.apiUrl).origin}/api/projects/${t.decoded.projectId}/auth`;if(typeof n.applicationId!="string"||!Ri(n.applicationId)||i!==t.decoded.projectId||o!=="development"&&o!=="production"||n.authBaseUrl!==a)throw z();let r$1=T(n.branding),u=T(n.legal);if(!ke(n.enabledMethods,64)||!ke(n.socialProviders,64)||!on(r$1,["appName","logoUrl","primaryColor"])||r$1.showAppName!==void 0&&typeof r$1.showAppName!="boolean"||r$1.alignment!==void 0&&r$1.alignment!=="left"&&r$1.alignment!=="center"&&r$1.alignment!=="right"||r$1.theme!==void 0&&r$1.theme!=="light"&&r$1.theme!=="dark"&&r$1.theme!=="system"||!on(u,["termsUrl","privacyUrl"])||!Number.isSafeInteger(u.version)||u.version<0||typeof u.required!="boolean")throw z();if(n.socialProviderClientIds!==void 0){let c=T(n.socialProviderClientIds);if(Object.keys(c).length>64||Object.values(c).some(h=>typeof h!="string"||h.length>2048))throw z()}if(!U(n,["requireEmailVerification","twoFactor","mfaRequired","accountDeletion","organizations","sso","badge"])||!nn(n.turnstileSiteKey)||!nn(n.authTurnstileSiteKey)||typeof n.locale!="string"||n.locale.length===0||n.locale.length>64||!Number.isSafeInteger(n.configVersion)||n.configVersion<0)throw z();if(n.jwtIssuer!==null){let c=T(n.jwtIssuer);if(c.issuer!==a||c.jwksUrl!==`${a}/jwks`||c.aud!==t.decoded.projectId)throw z()}if(n.signUp!==void 0){let c=T(n.signUp).mode;if(typeof c!="string"||!["open","restricted","allowlist","waitlist"].includes(c))throw z()}if(n.authentication!==void 0&&Ii(n.authentication),n.emailVerification!==void 0){let c=T(n.emailVerification);if(!U(c,["required"])||c.method!=="link"&&c.method!=="code")throw z()}if(n.userModel!==void 0&&!U(T(n.userModel),["requireEmail","firstLastName","emailChange","accountDeletion"]))throw z();if(n.mfa!==void 0){let c=T(n.mfa);if(!U(c,["totp","required","backupCodes"])||(c.required===true||c.backupCodes===true)&&c.totp!==true)throw z()}return n}function Ri(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 z(){return new TypeError("public-config returned an invalid response")}function T(e){if(!e||typeof e!="object"||Array.isArray(e))throw z();return e}function nn(e){return e===null||typeof e=="string"&&e.length<=4096}function Ii(e){let t=T(e),n=T(t.email),i=T(t.password),o=i.minLength!==void 0||i.maxLength!==void 0;if(!U(n,["signUp"])||!ke(n.signIn,3)||n.signIn.some(a=>a!=="password"&&a!=="magic_link"&&a!=="email_otp")||!U(T(t.phone),["signUp","signIn"])||!U(i,["signUp","add"])||o&&(!Number.isSafeInteger(i.minLength)||!Number.isSafeInteger(i.maxLength)||i.minLength<1||i.maxLength>4096||i.minLength>i.maxLength)||!U(T(t.passkey),["signIn","add"])||!U(T(t.username),["collectOnSignUp","signIn"]))throw z()}function U(e,t){return t.every(n=>typeof e[n]=="boolean")}function on(e,t){return t.every(n=>e[n]===void 0||typeof e[n]=="string"&&e[n].length<=4096)}function ke(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{Pi as a,ae as b,X as c,Ce as d,sn as e,de as f,ze as g,mi as h,lo as i,mo as j,Oo as k};
1
+ import {h,g,e,r,k as k$1,i,q as q$1,j as j$1,o,t,v,p,l,s,n,m as m$1}from'./chunk-RRP2XNYV.js';import {a}from'./chunk-T5SH3ZZP.js';function vi(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(r=>r==="password"||r==="magic_link"||r==="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 ae=class extends Error{status;requestId;constructor(t,n,i){super(`${t} request failed with status ${n.status}.`),this.name="AuthOwlHttpError",this.status=n.status,this.requestId=i;}};function X(e,t,n={}){let i=new Headers(n.init?.headers);return i.set("x-publishable-key",e.publishableKey),h({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 Ce(e,t){if(!e.response.ok)throw new ae(t,e.response,e.requestId);return e.data}var un="x-authowl-turnstile-token",cn=1e4,dn=32,ln=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 de(e$1,t=e$1.projectBaseURL){return {async request(n,i={}){let o=fn(t,n,i.query),a=i.method??(i.body===void 0?"GET":"POST"),r=new Headers(i.fetchOptions?.headers);i.fetchOptions?.authChallengeToken&&r.set(un,i.fetchOptions.authChallengeToken),i.body!==void 0&&r.set("content-type","application/json");let u={method:a,headers:r,credentials:i.credentials??"include",...i.body===void 0?{}:{body:JSON.stringify(i.body)}},c=Object.freeze({method:a,path:n});await i.fetchOptions?.onRequest?.(c);let h=gn(a,i.fetchOptions),g$1;try{g$1=await pn(e$1,o,{...u,signal:i.fetchOptions?.signal},h);}catch(f){let S=Ee(f);return await i.fetchOptions?.onError?.(se(c,S,An(f))),{data:null,error:S}}let{response:A,requestId:I}=g$1,O=bn(n,g$1.data),s=O;if(A.ok)try{s=ce(O),i.decode&&(s=i.decode(s));}catch{let f=Ee(new g("invalid_response",I));return await i.fetchOptions?.onError?.(se(c,f,"invalid_response")),{data:null,error:f}}let l=Object.freeze({...c,status:A.status,...I===void 0?{}:{requestId:I}});if(await i.fetchOptions?.onResponse?.(l),!A.ok){let f=mn(A,O,I);return f.code===e&&e$1.session.tokens.dropChallenge(),await i.fetchOptions?.onError?.(se(c,f,"api")),{data:null,error:f}}return await i.fetchOptions?.onSuccess?.(l),{data:s,error:null}}}}async function pn(e,t,n,i){let o=Date.now()+cn;for(let a=0;a<i;a+=1){let r=o-Date.now();if(r<=0)throw new g("timeout");try{let u=await X(e,t,{init:n,timeoutMs:Math.max(1,Math.ceil(r))});if(u.response.status<500||a===i-1)return u}catch(u){if(a===i-1||!(u instanceof g)||u.kind!=="network")throw u}await yn(50*2**a,n.signal,o);}throw new g("network")}function gn(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 fn(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 mn(e,t,n){let i=K(t)?t:{},o=hn(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 hn(e,t){let n=(typeof e.retryAfterSeconds=="number"&&Number.isFinite(e.retryAfterSeconds)?e.retryAfterSeconds:void 0)??De(t.get("retry-after"))??De(t.get("x-retry-after"));if(n!==void 0)return Math.min(Math.max(Math.trunc(n),1),86400)}function De(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 Ee(e){let t=e instanceof g?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 g&&e.requestId?{requestId:e.requestId}:{}}}function se(e,t,n){return Object.freeze({...e,status:t.status??0,...t.requestId===void 0?{}:{requestId:t.requestId},failure:n})}function An(e){return e instanceof g?e.kind:"network"}function yn(e,t,n){return new Promise((i,o)=>{if(t?.aborted){o(new g("aborted"));return}let a=n-Date.now();if(a<=0){o(new g("timeout"));return}let r=Math.min(e,a),u=()=>{clearTimeout(c),o(new g("aborted"));},c=setTimeout(()=>{t?.removeEventListener("abort",u),Date.now()>=n?o(new g("timeout")):i();},r);t?.addEventListener("abort",u,{once:true}),t?.aborted&&u();})}function ce(e,t="",n=0,i={nodes:0}){if(i.nodes+=1,n>dn||i.nodes>ln)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=>ce(o,"",n+1,i)):K(e)?Object.fromEntries(Object.entries(e).map(([o,a])=>[o,On(o)?a:ce(a,o,n+1,i)])):e}function On(e){return e==="metadata"||e==="public_metadata"||e==="unsafe_metadata"||e==="private_metadata"||e==="publicMetadata"||e==="unsafeMetadata"||e==="privateMetadata"}function bn(e,t){if(e==="/list-sessions"&&Array.isArray(t))return t.map(o=>K(o)?ue(o):o);if(!K(t))return t;let i=e==="/change-password"||e==="/passkey/verify-authentication"||e==="/phone-otp/verify"||e==="/sign-up/email"||e.startsWith("/sign-in/")||e.startsWith("/two-factor/verify-")?ue(t):t;return e==="/sign-up/email"&&!("sessionCreated"in i)&&(i={...i,sessionCreated:typeof t.token=="string"&&t.token.length>0}),(e==="/get-session"||e==="/passkey/verify-authentication")&&K(i.session)&&(i={...i,session:ue(i.session)}),i}function ue(e){if(!Object.hasOwn(e,"token"))return e;let t={...e};return delete t.token,t}function K(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}function xe(){let e=globalThis.crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=Array.from(e,n=>n.toString(16).padStart(2,"0")).join("");return `${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function ze({http:e,probe:t,tokens:n,channelName:i}){let o=new Set,a=null,r=null,u=null,c=null,h=null,g,A=y=>{s(y);};g={data:null,isPending:true,isRefetching:false,error:null,refetch:A};function I(y){g=y;for(let T of o)T();}async function O(y){return e.request("/get-session",{query:y?.query,decode:le})}function s(y){if(y?.query?.disableCookieCache===true)return l(y);if(c)return c;let T=l(y).finally(()=>{c===T&&(c=null);});return c=T,T}async function l(y){u?.abort();let T=new AbortController;u=T,I({...g,isPending:g.data===null&&g.error===null,isRefetching:g.data!==null});let B=n.beginRead(),G=await e.request("/get-session",{query:y?.query,fetchOptions:{signal:T.signal},decode:le});if(u===T&&(u=null,I({data:G.data,error:G.error,isPending:false,isRefetching:false,refetch:A}),G.error===null)){if(G.data===null){B.endIfDead();return}await f(B);}}async function f(y){if(n.needsProbe()){if(!y.carriedToken){y.recordCookieVerdict(true);return}return h||S(y)}}function S(y){let T=t.request("/get-session",{query:{disableCookieCache:true},decode:le}).then(B=>{h===T&&B.error===null&&y.recordCookieVerdict(B.data!==null);}).finally(()=>{h===T&&(h=null);});return h=T,T}function v(){a?.postMessage({type:"session-changed"});}function an(){if(typeof window>"u"||r)return;let y=()=>{s();},T=()=>{document.visibilityState==="visible"&&s();};window.addEventListener("focus",y),document.addEventListener("visibilitychange",T),typeof BroadcastChannel<"u"&&(a=new BroadcastChannel(i),a.addEventListener("message",y)),r=()=>{window.removeEventListener("focus",y),document.removeEventListener("visibilitychange",T),a?.close(),a=null,r=null;};}function sn(y){return o.add(y),o.size===1&&(an(),s()),()=>{o.delete(y),o.size===0&&(u?.abort(),u=null,r?.());}}return n.measureWith(()=>{n.needsProbe()&&S(n.beginRead());}),{store:{subscribe:sn,getSnapshot:()=>g},getSession:O,notifyMutation(){v(),h&&h.catch(()=>{}).then(()=>{!n.needsProbe()&&n.hasToken()&&v();}),o.size>0&&s({query:{disableCookieCache:true}});}}}function le(e){if(e===null)return null;let t=i(e);return (t.session===void 0||t.user===void 0)&&q$1(),{session:p(t.session),user:o(t.user)}}async function Ne(e,t){return e.request("/user/metadata",{fetchOptions:t,decode:_e})}async function Ue(e,t,n){return e.request("/user/metadata",{method:"PATCH",body:{expected_version:t.expectedVersion,unsafe_metadata:t.unsafeMetadata},fetchOptions:n,decode:_e})}function _e(e){let t=i(e),n=r(t.public_metadata),i$1=r(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$1,metadataVersion:t.metadata_version}}function Le(e,t){let{post:n,mutation:i}=L(e,t);return {getMetadata:o=>Ne(e,o),updateUnsafeMetadata:(o,a)=>Ue(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,wn)),listSessions:o=>e.request("/list-sessions",{fetchOptions:o,decode:kn}),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:Sn});if(!a.data)return {data:null,error:a.error};let r=a.data.length>1;return {...a,data:a.data.filter(u=>u.providerId!=="credential").map(u=>({...u,canUnlink:r}))}},linkSocial:(o,a)=>n("/link-social",o,a,Rn),unlinkSocial:(o,a)=>i(n("/unlink-account",o,a,j)),delete:(o={},a)=>i(n("/delete-user",o,a,In))}}function j(e){let t=i(e);return {status:k$1(t.status)}}function wn(e){let t=i(e);return {user:o(t.user)}}function kn(e){return Array.isArray(e)||q$1(),e.map(t=>{let n$1=i(t);return {id:j$1(n$1.id),userId:j$1(n$1.userId),createdAt:l(n$1.createdAt),updatedAt:l(n$1.updatedAt),expiresAt:l(n$1.expiresAt),...Me("ipAddress",n(n$1,"ipAddress")),...Me("userAgent",n(n$1,"userAgent"))}})}function Sn(e){return Array.isArray(e)||q$1(),e.map(t=>{let n=i(t);return {id:j$1(n.id),userId:j$1(n.userId),providerId:j$1(n.providerId),accountId:j$1(n.accountId),scopes:m$1(n.scopes),createdAt:l(n.createdAt),updatedAt:l(n.updatedAt)}})}function Rn(e){let t=i(e);return {url:j$1(t.url),redirect:k$1(t.redirect)}}function In(e){let t=i(e);return {success:k$1(t.success),message:j$1(t.message)}}function Me(e,t){return t===void 0?{}:{[e]:t}}var Tn=new Set(["pending","accepted","rejected","canceled"]),Fe=1e4;function F(e,t,n$1){let i$1=i(e),o={id:m(i$1.id),name:m(i$1.name),slug:m(i$1.slug),createdAt:l(i$1.createdAt),...Y("logo",n(i$1,"logo")),...Y("metadata",i$1.metadata===void 0?void 0:s(i$1.metadata))};return _(o.id,t),_(o.slug,n$1),o}function qe(e){return M(e,F)}function pe(e,t,n){return e===null?null:(t===null&&q$1(),F(e,t,n))}function Ve(e,t,n){if(e===null)return null;let i$1=i(e),o=F(i$1,t,n);return {...o,members:M(i$1.members,a=>et(a,o.id)),invitations:M(i$1.invitations,a=>N(a,void 0,o.id))}}function He(e,t){let n=M(e,i=>Ze(i));return $(n.map(i=>i.organizationId),t),n}function Be(e,t,n){return e===null?null:(t===null&&q$1(),Ze(e,t,n))}function Ke(e,t){let n=i(e);return (!Number.isSafeInteger(n.total)||n.total<0)&&q$1(),{members:Pn(n.members,t),total:n.total}}function N(e,t,n){let i$1=i(e),o=m(i$1.status);Tn.has(o)||q$1();let a={id:m(i$1.id),organizationId:m(i$1.organizationId),email:m(i$1.email),role:m(i$1.role),status:o,inviterId:m(i$1.inviterId),expiresAt:l(i$1.expiresAt),createdAt:l(i$1.createdAt)};return _(a.id,t),_(a.organizationId,n),a}function je(e,t){let n=M(e,i=>N(i));return $(n.map(i=>i.organizationId),t),n}function Je(e){return M(e,t=>{let n=i(t);return {...N(n),organizationName:m(n.organizationName)}})}function Ge(e,t){let n=i(e);return {...N(n,t),organizationName:m(n.organizationName),organizationSlug:m(n.organizationSlug),inviterEmail:m(n.inviterEmail)}}function We(e,t){let n=i(e),i$1=N(n.invitation,t);return {invitation:i$1,member:q(n.member,void 0,i$1.organizationId)}}function Xe(e,t){let n=i(e);return n.member!==null&&q$1(),{invitation:n.invitation===null?null:N(n.invitation,t),member:null}}function Ye(e,t){return e===null?null:N(e,t)}function $e(e,t,n){let i$1=i(e);return {member:q(i$1.member,n,t)}}function q(e,t,n){let i$1=i(e),o={id:m(i$1.id),organizationId:m(i$1.organizationId),userId:m(i$1.userId),role:m(i$1.role),createdAt:l(i$1.createdAt),...i$1.user===void 0?{}:{user:tt(i$1.user)}};return _(o.id,t),_(o.organizationId,n),o}function Qe(e,t){let n=M(e,i$1=>{let o=i(i$1);return {organizationId:m(o.organizationId),data:{role:m(o.role),...Y("permission",o.permission===void 0?void 0:vn(o.permission))}}});return $(n.map(i=>i.organizationId),t),n.map(i=>i.data)}function Ze(e,t,n){let i$1=i(e),o=i$1.updatedAt,a={id:m(i$1.id),name:m(i$1.name),organizationId:m(i$1.organizationId),createdAt:l(i$1.createdAt),...o===void 0?{}:{updatedAt:l(o)}};return _(a.id,t),_(a.organizationId,n),a}function et(e,t){let n=i(e);return {...q(n,void 0,t),user:tt(n.user)}}function Pn(e,t){let n=M(e,i=>et(i));return $(n.map(i=>i.organizationId),t),n}function vn(e){let t=i(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))&&q$1(),n[i]=o.map(a=>m(a));return n}function m(e){let t=j$1(e);return (t.length===0||t.length>Fe)&&q$1(),t}function _(e,t){t!==void 0&&e!==t&&q$1();}function $(e,t){let n=t??e[0];n!==void 0&&e.some(i=>i!==n)&&q$1();}function tt(e){let t=i(e);return {id:m(t.id),name:m(t.name),email:m(t.email),...Y("image",n(t,"image"))}}function M(e,t){return Array.isArray(e)||q$1(),e.map(n=>t(n))}function Y(e,t){return t===void 0?{}:{[e]:t}}function nt(e,t$1,n=()=>null){let{post:i,mutation:o}=L(e,t$1),a=(r,u,c,h)=>e.request(r,{query:u,fetchOptions:c,decode:h});return {create:(r,u)=>o(i("/organization/create",r,u,F)),list:r=>a("/organization/list",void 0,r,qe),get:(r={},u)=>a("/organization/get-full-organization",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,membersLimit:r.membersLimit},u,c=>Ve(c,r.organizationId,r.organizationSlug)),setActive:(r,u)=>o(i("/organization/set-active",r,u,c=>pe(c,r.organizationId,r.organizationSlug))),listTeams:(r={},u)=>a("/organization/list-teams",{organizationId:r.organizationId},u,c=>He(c,r.organizationId)),setActiveTeam:(r,u)=>o(i("/organization/set-active-team",r,u,c=>Be(c,r.teamId))),update:(r,u)=>o(i("/organization/update",r,u,c=>pe(c,r.organizationId))),delete:(r,u)=>o(i("/organization/delete",r,u,c=>F(c,r.organizationId))),listMembers:(r={},u)=>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},u,c=>Ke(c,r.organizationId)),inviteMember:(r,u)=>o(i("/organization/invite-member",r,u,c=>N(c,void 0,r.organizationId))),listInvitations:(r={},u)=>a("/organization/list-invitations",{organizationId:r.organizationId},u,c=>je(c,r.organizationId)),listUserInvitations:r=>a("/organization/list-user-invitations",void 0,r,Je),getInvitation:(r,u)=>a("/organization/get-invitation",{id:r.id},u,c=>Ge(c,r.id)),acceptInvitation:(r,u)=>o(i("/organization/accept-invitation",r,u,c=>We(c,r.invitationId))),rejectInvitation:(r,u)=>o(i("/organization/reject-invitation",r,u,c=>Xe(c,r.invitationId))),cancelInvitation:(r,u)=>o(i("/organization/cancel-invitation",r,u,c=>Ye(c,r.invitationId))),removeMember:(r,u)=>o(i("/organization/remove-member",r,u,c=>$e(c,r.organizationId,r.memberIdOrEmail.includes("@")?void 0:r.memberIdOrEmail))),updateMemberRole:(r,u)=>o(i("/organization/update-member-role",r,u,c=>q(c,r.memberId,r.organizationId))),leave:(r,u)=>o(i("/organization/leave",r,u,c=>q(c,void 0,r.organizationId))),listRoles:(r={},u)=>a("/organization/list-roles",{organizationId:r.organizationId},u,c=>Qe(c,r.organizationId)),has:r=>v(n(),r),hasPermission:r=>t(n(),r.permission)}}var it=4096,Cn=4096,Dn=100,En=256,xn=16,zn=64,Nn=12;function fe(e){let t=i(e);return t.twoFactorRedirect===true?((t.user!==void 0||t.redirect!==void 0||t.url!==void 0)&&q$1(),{twoFactorRedirect:true,...t.twoFactorMethods===void 0?{}:{twoFactorMethods:wt(t.twoFactorMethods,xn,zn)}}):(t.twoFactorRedirect!==void 0&&q$1(),{redirect:k$1(t.redirect),...Fn(t,"url"),user:o(t.user)})}function ot(e){let t=i(e);return {user:o(t.user)}}function rt(e){let t=i(e);return {sessionCreated:k$1(t.sessionCreated),user:o(t.user)}}function at(e,t){let n=i(e),i$1=k$1(n.redirect);n.user===null&&q$1();let o$1=n.user!==void 0&&n.user!==null,a=n.url!==void 0&&n.url!==null;return i$1?((o$1||!a)&&q$1(),{redirect:true,url:ge(n.url,t)}):(o$1===a&&q$1(),o$1?{redirect:false,user:o(n.user)}:{redirect:false,url:ge(n.url,t)})}function st(e,t){let n=i(e);return (n.redirect!==true||n.user!==void 0)&&q$1(),{redirect:true,url:ge(n.url,t)}}function ut(e){return {status:k$1(i(e).status)}}function ct(e){return {success:k$1(i(e).success)}}function dt(e){return i(e).status!=="pending"&&q$1(),{status:"pending"}}function lt(e){let t=i(e);if(t.kind==="authowl_turnstile")return {kind:"authowl_turnstile"};t.kind!=="akedly_shield_v1_2"&&q$1();let n=i(t.turnstile),i$1=n.siteKey===null?null:j$1(n.siteKey);return {kind:"akedly_shield_v1_2",connectionId:j$1(t.connectionId),challenge:j$1(t.challenge),difficulty:Un(t.difficulty),challengeToken:j$1(t.challengeToken),challengeRequired:k$1(t.challengeRequired),turnstile:{required:k$1(n.required),siteKey:i$1}}}function Un(e){return (!Number.isSafeInteger(e)||Number(e)<0||Number(e)>Nn)&&q$1(),Number(e)}function pt(e){let t=i(e);return (t.status!==true||t.sessionCreated!==true)&&q$1(),{status:true,sessionCreated:true,user:_n(t.user)}}function me(e){return {status:k$1(i(e).status)}}function gt(e){return {status:k$1(i(e).status)}}function ft(e){let t=i(e);return {status:k$1(t.status),user:o(t.user)}}function mt(e){return {success:k$1(i(e).success)}}function ht(e){let t=i(e);return {totpURI:Ln(t.totpURI),backupCodes:bt(t.backupCodes)}}function At(e){return {status:k$1(i(e).status)}}function Q(e){return i(e).status!==true&&q$1(),{status:true}}function yt(e){return {status:k$1(i(e).status)}}function Ot(e){let t=i(e);return t.status!==void 0&&t.status!==true&&q$1(),{backupCodes:bt(t.backupCodes)}}function _n(e){let t=i(e);return {id:V(t.id,512),...qn(t,"name",1024),phoneNumber:V(t.phoneNumber,64),phoneNumberVerified:k$1(t.phoneNumberVerified),...t.createdAt===void 0?{}:{createdAt:l(t.createdAt)},...t.updatedAt===void 0?{}:{updatedAt:l(t.updatedAt)}}}function ge(e,t){let n=V(e,it);/[\u0000-\u0020\u007f]/u.test(n)&&q$1();let i;try{i=new URL(n);}catch{return q$1()}return (i.username||i.password)&&q$1(),i.protocol==="https:"||t&&i.protocol==="http:"&&Mn(i.hostname)?i.href:q$1()}function Mn(e){let t=e.toLowerCase();return t==="localhost"||t==="127.0.0.1"||t==="[::1]"}function Ln(e){let t=V(e,Cn),n;try{n=new URL(t);}catch{return q$1()}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))&&q$1(),t}function bt(e){return wt(e,Dn,En)}function wt(e,t,n){(!Array.isArray(e)||e.length===0||e.length>t)&&q$1();let i=e.map(o=>V(o,n));return i.some(o=>o.trim().length===0)&&q$1(),new Set(i).size!==i.length&&q$1(),i}function V(e,t){let n=j$1(e);return (n.length===0||n.length>t)&&q$1(),n}function Fn(e,t){let n=e[t];return n==null?{}:{[t]:V(n,it)}}function qn(e,t,n$1){let i=n(e,t);return i===void 0?{}:(i!==null&&i.length>n$1&&q$1(),{[t]:i})}var kt=new Set([1564,8206,8207,8234,8235,8236,8237,8238,8294,8295,8296,8297]),Z=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||Rt(n,i)||St(i)||kt.has(i))return {valid:false}}let t=Vn(e);return he(t)?{valid:true,value:t}:{valid:false}}function he(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||Rt(o,a)||St(a)||kt.has(a))return false;n??=a,i=a;}return t>0&&n!==void 0&&i!==void 0&&!Z.has(n)&&!Z.has(i)}function te(){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 Vn(e){let t=0,n=e.length;for(;t<n;){let i=e.codePointAt(t);if(i===void 0||!Z.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,r=e.codePointAt(a);if(r===void 0||!Z.has(r))break;n=a;}return e.slice(t,n)}function St(e){return e>=0&&e<=31||e>=127&&e<=159}function Rt(e,t){return e.length===1&&t>=55296&&t<=57343}var Pt=12,vt=5e3,Hn=8,Bn=1e3,Kn=16,It=512,Ct=100,Dt=8192,jn=32768,Ae=1024,Tt=256,Oe=64,Jn=6e5,Gn=/^[A-Za-z0-9_-]+$/u,Wn=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u,Xn=/[\u0000-\u001f\u007f-\u009f\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/u,Yn=/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$/u,$n=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu,Et=new Set(["discouraged","preferred","required"]),Qn=new Set(["singleDevice","multiDevice"]),xt=new Set(["ble","cable","hybrid","internal","nfc","smart-card","usb"]),zt=new Set(["hybrid","security-key","client-device"]),Zn=new Set(["none","indirect","direct","enterprise"]),ei=new Set(["fido-u2f","packed","android-safetynet","android-key","tpm","apple","none"]),ti=new Set(["platform","cross-platform"]),ni=new Set(["discouraged","preferred","required"]),ii=new Set([-8,-7,-257]);function Nt(e){let t=r(e,Pt,vt);return {challenge:Kt(t.challenge),...k("timeout",Ht(t.timeout)),...k("rpId",jt(t.rpId)),...k("allowCredentials",Vt(t.allowCredentials)),...k("userVerification",J(t.userVerification,Et)),...k("hints",ne(t.hints,zt)),...k("extensions",Bt(t.extensions))}}function Ut(e){let t=r(e,Pt,vt);return {challenge:Kt(t.challenge),rp:oi(t.rp),user:ri(t.user),pubKeyCredParams:ai(t.pubKeyCredParams),...k("timeout",Ht(t.timeout)),...k("excludeCredentials",Vt(t.excludeCredentials)),...k("authenticatorSelection",si(t.authenticatorSelection)),...k("attestation",J(t.attestation,Zn)),...k("attestationFormats",ne(t.attestationFormats,ei)),...k("hints",ne(t.hints,zt)),...k("extensions",Bt(t.extensions))}}function _t(e){let t=i(e),n=p(t.session),i$1=o(t.user);return n.userId!==i$1.id&&q$1(),{session:n,user:i$1}}function be(e){let t=i(e),n=t.counter;(!Number.isSafeInteger(n)||n<0)&&q$1();let i$1=we(t.deviceType,Qn),o=k$1(t.backedUp);return o&&i$1!=="multiDevice"&&q$1(),{id:H(t.id,Tt),...di(t),publicKey:ui(t.publicKey,jn),userId:H(t.userId,Tt),credentialID:oe(t.credentialID,Dt),counter:n,deviceType:i$1,backedUp:o,...li(t),createdAt:l(t.createdAt),...pi(t)}}function Mt(e,t,n){let i=be(e);return (i.credentialID!==t||(n===void 0?i.name!==void 0&&i.name!==null:i.name!==n))&&q$1(),i}function Lt(e){(!Array.isArray(e)||e.length>Ct)&&q$1();let t=e.map(be);return ie(t.map(n=>n.id)),ie(t.map(n=>n.credentialID)),t.length>1&&t.some(n=>n.userId!==t[0]?.userId)&&q$1(),t}function Ft(e,t,n){let i$1=i(e),o=be(i$1.passkey);return (o.id!==t||o.name!==n)&&q$1(),{passkey:o}}function qt(e){return i(e).status!==true&&q$1(),{status:true}}function oi(e){let t=i(e);return {name:ye(t.name,Ae),...k("id",jt(t.id))}}function ri(e){let t=i(e);return {id:oe(t.id,128,1,64),name:ye(t.name,Ae),displayName:ye(t.displayName,Ae)}}function ai(e){(!Array.isArray(e)||e.length===0||e.length>Oe)&&q$1();let t=e.map(n=>{let i$1=i(n);return (i$1.type!=="public-key"||!Number.isSafeInteger(i$1.alg)||!ii.has(i$1.alg))&&q$1(),{type:"public-key",alg:i$1.alg}});return gi(t.map(n=>n.alg)),t}function Vt(e){if(e===void 0)return;(!Array.isArray(e)||e.length>Ct)&&q$1();let t=e.map(n=>{let i$1=i(n);return i$1.type!=="public-key"&&q$1(),{type:"public-key",id:oe(i$1.id,Dt),...k("transports",ne(i$1.transports,xt))}});return ie(t.map(n=>n.id)),t}function si(e){if(e===void 0)return;let t=i(e);t.requireResidentKey!==void 0&&typeof t.requireResidentKey!="boolean"&&q$1();let n=J(t.residentKey,ni);return t.requireResidentKey!==void 0&&n!==void 0&&t.requireResidentKey!==(n==="required")&&q$1(),{...k("authenticatorAttachment",J(t.authenticatorAttachment,ti)),...k("residentKey",n),...k("requireResidentKey",t.requireResidentKey),...k("userVerification",J(t.userVerification,Et))}}function Ht(e){return e!==void 0&&(typeof e!="number"||!Number.isFinite(e)||e<0||e>Jn)&&q$1(),e}function Bt(e){return e===void 0?void 0:r(e,Hn,Bn)}function ne(e,t){if(e===void 0)return;(!Array.isArray(e)||e.length>Oe)&&q$1();let n=e.map(i=>we(i,t));return ie(n),n}function J(e,t){if(e!==void 0)return we(e,t)}function Kt(e){return oe(e,Math.ceil(It*4/3),Kn,It)}function oe(e,t,n=1,i=Number.POSITIVE_INFINITY){let o=H(e,t),a=o.length%4,r=ci(o.at(-1)??""),u=Math.floor(o.length*3/4);return (!Gn.test(o)||a===1||a===2&&(r&15)!==0||a===3&&(r&3)!==0||u<n||u>i)&&q$1(),o}function H(e,t){let n=j$1(e);return (n.length===0||n.length>t)&&q$1(),n}function ye(e,t){let n=H(e,t);return Xn.test(n)&&q$1(),n}function jt(e){if(e===void 0)return;let t=H(e,253);return t!=="localhost"&&(t.endsWith(".")||!t.includes(".")||t.split(".").some(n=>!Yn.test(n)))&&q$1(),t}function ui(e,t){let n=H(e,t),i=n.endsWith("=="),o=!i&&n.endsWith("="),a=n.at(i?-3:o?-2:-1)??"",r=Jt(a);return (n.length%4!==0||!Wn.test(n)||i&&(r&15)!==0||o&&(r&3)!==0)&&q$1(),n}function ci(e){return Jt(e,true)}function Jt(e,t=false){return (t?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").indexOf(e)}function di(e){let t=n(e,"name");return t===void 0?{}:(t!==null&&!he(t)&&q$1(),{name:t})}function li(e){let t=n(e,"transports");if(t==null||t==="")return t===void 0?{}:{transports:t};let n$1=t.split(",");return (n$1.length>Oe||n$1.some(i=>!xt.has(i))||new Set(n$1).size!==n$1.length)&&q$1(),{transports:t}}function pi(e){let t=n(e,"aaguid");return t==null?t===void 0?{}:{aaguid:null}:($n.test(t)||q$1(),{aaguid:t})}function we(e,t){let n=j$1(e);return t.has(n)||q$1(),n}function k(e,t){return t===void 0?{}:{[e]:t}}function ie(e){new Set(e).size!==e.length&&q$1();}function gi(e){new Set(e).size!==e.length&&q$1();}function fi(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 Gt=new Map;function mi(e,t,n){let i=Gt.get(n);return i||(i=import('./session-handoff-VJI4IXLT.js').then(o=>o.completeCrossSiteSignIn(e,t)),Gt.set(n,i)),i}function Wt(e){return !a()||e.idToken||e.disableRedirect?"legacy":"first-party"}function hi(e,t=()=>{},n=Oi){let i=de(e),o=e.session.tokens,a$1=a()?mi(i,o,e.decoded.projectId):void 0,r=fi(i,a$1),u=ze({http:r,probe:de({...e,fetch:e.session.probe}),tokens:o,channelName:`authowl:${e.decoded.projectId}`}),c=n(r,u.notifyMutation),h=()=>{u.notifyMutation(),t();},{post:g,mutation:A}=L(r,h),I=e.decoded.env==="test",O=s=>{o.beginSession({remember:s?.rememberMe!==false});};return {sessionStore:u.store,getSession:u.getSession,account:Le(r,h),organization:nt(r,h,()=>u.store.getSnapshot().data?.session.membership??null),signIn:{email:(s,l)=>(O(s),A(g("/sign-in/email",s,l,fe),f=>!("twoFactorRedirect"in f))),username:(s,l)=>(O(s),A(g("/sign-in/username",s,l,fe),f=>!("twoFactorRedirect"in f))),social:async(s,l)=>{if(O(),Wt(s)==="first-party"){let{beginCrossSiteSignIn:S}=await import('./session-handoff-VJI4IXLT.js'),v=await S(e,{kind:"social",provider:s.provider,callbackURL:s.callbackURL,errorCallbackURL:s.errorCallbackURL,newUserCallbackURL:s.newUserCallbackURL,scopes:s.scopes,loginHint:s.loginHint,requestSignUp:s.requestSignUp});if(v)return window.location.assign(v),{data:{redirect:true,url:v},error:null}}let f=await A(g("/sign-in/social",s,l,S=>at(S,I)),S=>"user"in S);return f.error!==null||f.data===null||"url"in f.data&&f.data.redirect&&!s.disableRedirect&&typeof window<"u"&&window.location.assign(f.data.url),f},sso:async(s,l)=>{if(Wt(s)==="first-party"){let{beginCrossSiteSignIn:S}=await import('./session-handoff-VJI4IXLT.js'),v=await S(e,{kind:"sso",email:s.email,providerId:s.providerId,domain:s.domain,organizationSlug:s.organizationSlug,callbackURL:s.callbackURL,errorCallbackURL:s.errorCallbackURL,newUserCallbackURL:s.newUserCallbackURL});if(v)return window.location.assign(v),{data:{url:v,redirect:true},error:null}}let f=await g("/sign-in/sso",s,l,S=>st(S,I));return f.error!==null||f.data===null||typeof window<"u"&&window.location.assign(f.data.url),f},magicLink:(s,l)=>g("/sign-in/magic-link",s,l,ut),emailOtp:(s,l)=>(O(),A(g("/sign-in/email-otp",s,l,ot))),passkey:(s,l)=>(O(),c.signIn(s,l))},signUp:{email:(s,l)=>(O(),A(g("/sign-up/email",s,l,rt),f=>f.sessionCreated))},emailOtp:{sendVerificationOtp:(s,l)=>g("/email-otp/send-verification-otp",s,l,ct),verifyEmail:(s,l)=>(O(),A(g("/email-otp/verify-email",s,l,ft)))},phoneOtp:{prepare:s=>g("/phone-otp/challenge",{},s,lt),start:(s,l)=>g("/phone-otp/start",{...s,idempotencyKey:s.idempotencyKey??xe()},l,dt),verify:(s,l)=>(O(),A(g("/phone-otp/verify",s,l,pt)))},requestPasswordReset:(s,l)=>g("/request-password-reset",s,l,me),resetPassword:(s,l)=>g("/reset-password",s,l,me),sendVerificationEmail:(s,l)=>g("/send-verification-email",s,l,gt),passkey:{addPasskey:(s,l)=>c.add(s,l),listUserPasskeys:()=>r.request("/passkey/list-user-passkeys",{decode:Lt}),updatePasskey:async(s,l)=>{let f=ee(s.name);if(!f.valid||f.value===void 0)return te();let S=f.value;return g("/passkey/update-passkey",{...s,name:S},l,v=>Ft(v,s.id,S))},deletePasskey:(s,l)=>g("/passkey/delete-passkey",s,l,qt)},twoFactor:{enable:(s,l)=>g("/two-factor/enable",s,l,ht),disable:(s,l)=>A(g("/two-factor/disable",s,l,At),f=>f.status),verifyTotp:(s,l)=>A(g("/two-factor/verify-totp",s,l,Q)),verifyBackupCode:(s,l)=>A(g("/two-factor/verify-backup-code",s,l,Q)),sendOtp:(s={},l)=>g("/two-factor/send-otp",s,l,yt),verifyOtp:(s,l)=>A(g("/two-factor/verify-otp",s,l,Q)),generateBackupCodes:(s,l)=>g("/two-factor/generate-backup-codes",s,l,Ot)},signOut:s=>A(r.request("/sign-out",{method:"POST",body:{},fetchOptions:s,decode:mt}).then(l=>(o.endSession(),l)),l=>l.success)}}function go(e,t=()=>{},n){let i=hi(e,t,n);return n?{...i,signIn:{email:i.signIn.email,username:i.signIn.username,social:Xt(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:Xt(i),magicLink:i.signIn.magicLink,emailOtp:i.signIn.emailOtp},passkey:{listUserPasskeys:i.passkey.listUserPasskeys,updatePasskey:i.passkey.updatePasskey,deletePasskey:i.passkey.deletePasskey}}}function Xt(e){return async(t,n)=>{if(!t?.idToken||typeof t.idToken.token!="string"||t.idToken.token==="")return Ai();let i=await e.signIn.social({...t,disableRedirect:true},n);return i.data!==null&&"url"in i.data?yi():i}}function Ai(){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 yi(){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 Oi(){return {signIn:()=>Yt(),add:()=>Yt()}}function Yt(){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 Ao(e,t,n){let i=new Map;return {async signIn(o={},a){let r=await e.request("/passkey/generate-authenticate-options");if(!r.data)return Zt(r.error);let u;try{u=Nt(r.data);}catch{return $t()}let c;try{c=await n.authenticate({optionsJSON:u,useBrowserAutofill:o.autoFill});}catch(O){return en(n,O,"AUTH_CANCELLED","Passkey authentication was cancelled.")}if(!bi(c))return Qt();let{clientExtensionResults:h,...g}=c,A=i.get(c.id);if(A)return A;let I=(async()=>{let O=await e.request("/passkey/verify-authentication",{method:"POST",body:{response:g},fetchOptions:a,decode:_t});return O.data&&t(),O})();i.set(c.id,I);try{return await I}finally{i.get(c.id)===I&&i.delete(c.id);}},async add(o={},a){let r=ee(o.name);if(!r.valid)return te();let u=await e.request("/passkey/generate-register-options",{query:{name:r.value,authenticatorAttachment:o.authenticatorAttachment}});if(!u.data)return Zt(u.error);let c;try{c=Ut(u.data);}catch{return $t()}let h;try{h=await n.register({optionsJSON:c});}catch(O){return en(n,O,"REGISTRATION_CANCELLED","Passkey registration was cancelled.")}if(!wi(h))return Qt();let{clientExtensionResults:g,...A}=h,I=await e.request("/passkey/verify-registration",{method:"POST",body:{response:A,name:r.value},fetchOptions:a,decode:O=>Mt(O,h.id,r.value)});return I.data&&t(),I}}}function $t(){return {data:null,error:{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned invalid WebAuthn options."}}}function Qt(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_WEBAUTHN_RESPONSE",message:"The platform returned an invalid passkey response."}}}function nn(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 bi(e){if(!nn(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 wi(e){if(!nn(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.attestationObject=="string"}function Zt(e){return {data:null,error:e??{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned no WebAuthn options."}}}function en(e,t,n,i){let o=Si(t,"page does not have focus"),a=e.errorCode?.(t),r=a!==void 0?a==="ERROR_CEREMONY_ABORTED":tn(t)==="AbortError",u=n!=="AUTH_CANCELLED",c=ki(a,tn(t),u);return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:o?"PASSKEY_PAGE_NOT_FOCUSED":r?n:a??"PASSKEY_BROWSER_ERROR",message:o?"Keep this page focused while completing the passkey prompt.":r?i:c}}}function ki(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 tn(e){return e&&typeof e=="object"&&"name"in e&&typeof e.name=="string"?e.name:void 0}function Si(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 wo(e){let n=`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/public-config`;return Ce(await X(e,n,{init:{method:"GET",credentials:"omit"},maxResponseBytes:256*1024,decode:i=>Ri(i,e)}),"public-config")}function Ri(e,t){let n=r(e),i=n.environmentId,o=n.environmentType,a=`${new URL(t.apiUrl).origin}/api/projects/${t.decoded.projectId}/auth`;if(typeof n.applicationId!="string"||!Ii(n.applicationId)||i!==t.decoded.projectId||o!=="development"&&o!=="production"||n.authBaseUrl!==a)throw x();let r$1=P(n.branding),u=P(n.legal);if(!ke(n.enabledMethods,64)||!ke(n.socialProviders,64)||!rn(r$1,["appName","logoUrl","primaryColor"])||r$1.showAppName!==void 0&&typeof r$1.showAppName!="boolean"||r$1.alignment!==void 0&&r$1.alignment!=="left"&&r$1.alignment!=="center"&&r$1.alignment!=="right"||r$1.theme!==void 0&&r$1.theme!=="light"&&r$1.theme!=="dark"&&r$1.theme!=="system"||!rn(u,["termsUrl","privacyUrl"])||!Number.isSafeInteger(u.version)||u.version<0||typeof u.required!="boolean")throw x();if(n.socialProviderClientIds!==void 0){let c=P(n.socialProviderClientIds);if(Object.keys(c).length>64||Object.values(c).some(h=>typeof h!="string"||h.length>2048))throw x()}if(!U(n,["requireEmailVerification","twoFactor","mfaRequired","accountDeletion","organizations","sso","badge"])||!on(n.turnstileSiteKey)||!on(n.authTurnstileSiteKey)||typeof n.locale!="string"||n.locale.length===0||n.locale.length>64||!Number.isSafeInteger(n.configVersion)||n.configVersion<0)throw x();if(n.jwtIssuer!==null){let c=P(n.jwtIssuer);if(c.issuer!==a||c.jwksUrl!==`${a}/jwks`||c.aud!==t.decoded.projectId)throw x()}if(n.signUp!==void 0){let c=P(n.signUp).mode;if(typeof c!="string"||!["open","restricted","allowlist","waitlist"].includes(c))throw x()}if(n.authentication!==void 0&&Ti(n.authentication),n.emailVerification!==void 0){let c=P(n.emailVerification);if(!U(c,["required"])||c.method!=="link"&&c.method!=="code")throw x()}if(n.userModel!==void 0&&!U(P(n.userModel),["requireEmail","firstLastName","emailChange","accountDeletion"]))throw x();if(n.mfa!==void 0){let c=P(n.mfa);if(!U(c,["totp","required","backupCodes"])||(c.required===true||c.backupCodes===true)&&c.totp!==true)throw x()}return n}function Ii(e){return /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e)}function x(){return new TypeError("public-config returned an invalid response")}function P(e){if(!e||typeof e!="object"||Array.isArray(e))throw x();return e}function on(e){return e===null||typeof e=="string"&&e.length<=4096}function Ti(e){let t=P(e),n=P(t.email),i=P(t.password),o=i.minLength!==void 0||i.maxLength!==void 0;if(!U(n,["signUp"])||!ke(n.signIn,3)||n.signIn.some(a=>a!=="password"&&a!=="magic_link"&&a!=="email_otp")||!U(P(t.phone),["signUp","signIn"])||!U(i,["signUp","add"])||o&&(!Number.isSafeInteger(i.minLength)||!Number.isSafeInteger(i.maxLength)||i.minLength<1||i.maxLength>4096||i.minLength>i.maxLength)||!U(P(t.passkey),["signIn","add"])||!Pi(P(t.passkey).relyingPartyId)||!U(P(t.username),["collectOnSignUp","signIn"]))throw x()}function Pi(e){return e==null||typeof e=="string"}function U(e,t){return t.every(n=>typeof e[n]=="boolean")}function rn(e,t){return t.every(n=>e[n]===void 0||typeof e[n]=="string"&&e[n].length<=4096)}function ke(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{vi as a,ae as b,X as c,Ce as d,un as e,de as f,xe as g,hi as h,go as i,Ao as j,wo as k};
@@ -45,6 +45,13 @@ type PublicConfig = {
45
45
  passkey: {
46
46
  signIn: boolean;
47
47
  add: boolean;
48
+ /**
49
+ * The domain this environment binds passkeys to. Absent or null means the
50
+ * server derives it from the auth host, which is what every server before
51
+ * this field did - so treating both the same keeps a new SDK correct
52
+ * against an older server.
53
+ */
54
+ relyingPartyId?: string | null;
48
55
  };
49
56
  username: {
50
57
  collectOnSignUp: boolean;
@@ -45,6 +45,13 @@ type PublicConfig = {
45
45
  passkey: {
46
46
  signIn: boolean;
47
47
  add: boolean;
48
+ /**
49
+ * The domain this environment binds passkeys to. Absent or null means the
50
+ * server derives it from the auth host, which is what every server before
51
+ * this field did - so treating both the same keeps a new SDK correct
52
+ * against an older server.
53
+ */
54
+ relyingPartyId?: string | null;
48
55
  };
49
56
  username: {
50
57
  collectOnSignUp: boolean;
package/dist/index.cjs CHANGED
@@ -1,3 +1,3 @@
1
- 'use strict';var wo=Object.defineProperty;var ut=(e,t)=>()=>(e&&(t=e(e=0)),t);var ko=(e,t)=>{for(var n in t)wo(e,n,{get:t[n],enumerable:true});};function ae(){return typeof window<"u"&&typeof document<"u"&&typeof crypto<"u"&&typeof crypto.subtle?.digest=="function"}var qe=ut(()=>{});var Ie={};ko(Ie,{beginCrossSiteSignIn:()=>gr,challengeFor:()=>$n,completeCrossSiteSignIn:()=>mr,takeHandoffCode:()=>Xn});function Wn(e){let t="";for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function $n(e){let t=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e));return Wn(new Uint8Array(t))}function dr(){return Wn(crypto.getRandomValues(new Uint8Array(cr)))}function Yn(e,t){let n=window.location.protocol==="https:"?"; Secure":"";document.cookie=`${Gn}=${e}; Path=/; Max-Age=${t}; SameSite=Lax${n}`;}function pr(){for(let e of document.cookie.split(";")){let t=e.indexOf("=");if(!(t<0)&&e.slice(0,t).trim()===Gn)return e.slice(t+1).trim()||null}return null}function fr(){Yn("",0);}function Jn(e){return new URL(e,window.location.href).toString()}async function gr(e,t){let n=t.callbackURL?Jn(t.callbackURL):null;if(n&&new URL(n).origin!==window.location.origin)return null;let o=dr(),i=new URL(`${e.projectBaseURL}/session/start`);if(i.searchParams.set("pk",e.publishableKey),i.searchParams.set("kind",t.kind),t.kind==="social")i.searchParams.set("provider",t.provider),t.scopes?.length&&i.searchParams.set("scopes",t.scopes.join(",")),t.loginHint&&i.searchParams.set("loginHint",t.loginHint),t.requestSignUp!==void 0&&i.searchParams.set("requestSignUp",t.requestSignUp?"1":"0");else for(let r of lr){let a=t[r];a&&i.searchParams.set(r,a);}let s=`${window.location.origin}${window.location.pathname}${window.location.search}`;i.searchParams.set("cb",n??s);for(let[r,a]of [["err",t.errorCallbackURL],["new",t.newUserCallbackURL]])a&&i.searchParams.set(r,Jn(a));return i.searchParams.set("challenge",await $n(o)),Yn(o,ur),i.toString()}function Xn(){if(typeof window>"u")return null;let e=window.location.hash;if(!e.includes(Ze))return null;let t=new URLSearchParams(e.replace(/^#/,"")),n=t.get(Ze);if(!n)return null;t.delete(Ze);let o=t.toString();return window.history.replaceState(window.history.state,"",`${window.location.pathname}${window.location.search}${o?`#${o}`:""}`),n}async function mr(e,t){if(!ae())return false;let n=Xn();if(!n)return false;let o=pr();if(fr(),!o)return false;t.beginSession({remember:true});let{error:i}=await e.request("/session/exchange",{method:"POST",body:{code:n,verifier:o}});return i===null}var Gn,Ze,cr,ur,lr,Pe=ut(()=>{qe();Gn="authowl_handoff_verifier",Ze="authowl_code",cr=32,ur=900,lr=["email","providerId","domain","organizationSlug"];});var Ro=/^(pk_(live|test))_([0-9a-f-]{36})_([A-Za-z0-9]{20,})$/i,So=/^sk_/i;function Ue(e){if(typeof e!="string"||e.length===0)throw new Error("publishableKey is required");if(So.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=Ro.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 To(e,t){let n=`p_${e.toLowerCase().replace(/-/g,"")}`;return `${t?.secure?"__Secure-":""}${n}.session_token`}var lt=/^http:\/\/(?:(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*localhost|127\.0\.0\.1|\[::1\])(?::\d+)?(?:\/|$)/i;function _e(e,t){throw new Error(`${e}: ${t}`)}function dt(e,t){let n;try{n=new URL(String(e));}catch{throw new TypeError("Transport URL must be absolute.")}if(n.username||n.password||n.hash)throw new TypeError("Transport URL must not contain credentials or a fragment.");let o=n.toString();if(n.protocol!=="https:"&&!(n.protocol==="http:"&&t.allowHttpLoopback&&lt.test(o)))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))&&_e("apiUrl","origin required");let n;try{n=new URL(e);}catch{_e("apiUrl","origin required");}return n.protocol==="http:"&&(!t.allowHttpLoopback||!lt.test(e))&&_e("apiUrl","HTTPS required except exact loopback"),n.origin}function X(e,t){try{return e?.getItem(t)??null}catch{return null}}function Q(e,t,n){try{n===null?e?.removeItem(t):e?.setItem(t,n);}catch{}}function Z(){try{return globalThis.localStorage}catch{return}}function G(){try{return globalThis.sessionStorage}catch{return}}var Eo="authowl.session-challenge",Io=e=>`${Eo}.${e}`,Po="set-auth-challenge",ft="x-authowl-challenge",mt="INVALID_TWO_FACTOR_COOKIE",Co=2048,pe=e=>e!==null&&e.length<=Co,gt=/^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/;function xo(e){let t=[];for(let n of e.split(";")){let o=n.trimStart(),i=o.indexOf("=");i<=0||t.push([o.slice(0,i).trimEnd(),o.slice(i+1)]);}return t}function ht(e){let t=Io(e),n=new Map;function o(){return n.size===0?null:[...n].map(([a,c])=>`${a}=${c}`).join("; ")}function i(){let a=o();Q(G(),t,pe(a)?a:null);}function s(a){for(let[c,m]of xo(a))gt.test(c)&&(m===""?n.delete(c):gt.test(m)&&n.set(c,m));}let r=X(G(),t);return pe(r)&&s(r),{presentOn(a){let c=o();a.delete(ft),pe(c)&&a.set(ft,c);},observe(a){let c=a.get(Po);pe(c)&&(s(c),i());},clear(){n.clear(),i();}}}var vo="authowl.session-token",Do="authowl.cookie-transport",At="ok",bt="bearer",Uo=e=>`${vo}.${e}`,_o=e=>`${Do}.${e}`,zo="set-auth-token",No="x-authowl-session-transport",Lo="bearer";function Fo(e){return e===At?"cookies":e===bt?"bearer":"unknown"}function Mo(e){return e==="cookies"?At:e==="bearer"?bt:null}function Vo(e){let t=Uo(e),n=_o(e),o=ht(e),i=null,s=false,r=null,a=Fo(X(Z(),n)),c=()=>a==="unknown",m=0,d=null,h=false;function A(){let y=X(G(),t);if(y!==null)return s=true,y;let x=X(Z(),t);return x!==null?(s=false,x):null}i=A(),i!==null&&c()&&(h=true);function b(){if(!(!h||!d)){h=false;try{d();}catch{}}}function u(){let y=a==="bearer"?i:null,[x,de]=s?[G(),Z()]:[Z(),G()];Q(de,t,null),Q(x,t,y);}function p(y){y!==null&&r!==null&&(s=r,r=null),i=y,u(),y!==null&&c()&&(h=true,b());}function g(y){a=y,Q(Z(),n,Mo(y));}function w(){g("unknown"),h=false;}function k(){return i===null&&(i=A()),i}function z(){let y=A();return y!==null&&(i=y),i}function V(y){z()===y&&u();}function O(){m+=1,r=null,s=false,p(null),o.clear(),w();}let E=()=>a!=="cookies";return {hasToken:()=>k()!==null,declareOn(y){if(y.has("authorization"))return false;let x=k();return !x&&!E()?false:(x&&y.set("authorization",`Bearer ${x}`),y.set(No,Lo),o.presentOn(y),true)},wantsToken:E,needsProbe:c,observe(y){let x=y.get(zo);x&&p(x),o.observe(y);},dropChallenge:o.clear,measureWith(y){d=y,b();},beginRead(){let y=k(),x=m;return {carriedToken:y!==null,endIfDead(){y!==null&&z()===y&&m===x&&O();},recordCookieVerdict(de){if(m===x&&c()){if(g(de?"cookies":"bearer"),de){p(null);return}V(y);}}}},beginSession({remember:y}){m+=1,r=!y,o.clear(),w();},endSession:O}}var yt=new Map;function Ot(e){let t=yt.get(e);if(t)return t;let n=Vo(e);return yt.set(e,n),n}function qo(e,t){return t?.headers?new Headers(t.headers):typeof e=="object"&&e!==null&&"headers"in e?new Headers(e.headers):new Headers}function wt(e,t){let n=Ot(e),o=(r,a)=>(t??globalThis.fetch)(r,a);return {fetch:async(r,a)=>{if(a?.credentials==="omit"||!n.wantsToken())return o(r,a);let c=qo(r,a),m=n.declareOn(c),d=await o(r,{...a,headers:c});return m&&n.observe(d.headers),d},probe:o,tokens:n}}function Ho(e){if(!e||typeof e!="object")throw new Error("AuthConfig is required");let t=Ue(e.publishableKey),n=pt(e.apiUrl,{allowHttpLoopback:t.env==="test"}),o=`${n}/api/projects/${t.projectId}/auth`,{fetch:i,...s}=wt(t.projectId,e.fetch);return {...e,apiUrl:n,decoded:t,projectBaseURL:o,fetch:i,session:s}}function Ko(e){let t=e?.enabledMethods??["password"],n=t.includes("password"),o=t.includes("passkey"),i=e?.authentication,s=e?.mfa;return {emailSignUp:i?.email.signUp??t.some(r=>r==="password"||r==="magic_link"||r==="email_otp"),passwordSignUp:i?.password.signUp??n,phoneSignUp:i?.phone.signUp??t.includes("phone_otp"),passwordSignIn:i?.email.signIn.includes("password")??n,passwordMinLength:i?.password.minLength??8,passwordMaxLength:i?.password.maxLength??128,magicLinkSignIn:i?.email.signIn.includes("magic_link")??t.includes("magic_link"),emailOtpSignIn:i?.email.signIn.includes("email_otp")??t.includes("email_otp"),phoneSignIn:i?.phone.signIn??t.includes("phone_otp"),usernameSignIn:i?.username.signIn??false,collectUsername:i?.username.collectOnSignUp??false,passkeySignIn:i?.passkey.signIn??o,passkeyAdd:i?.passkey.add??o,firstLastName:e?.userModel?.firstLastName??false,emailChange:e===null?false:e.userModel?.emailChange??true,accountDeletion:e?.userModel?.accountDeletion??e?.accountDeletion??false,emailVerificationRequired:e?.emailVerification?.required??e?.requireEmailVerification??false,emailVerificationMethod:e?.emailVerification?.method??"link",totp:s?.totp??e?.twoFactor??false,mfaRequired:s?.required??e?.mfaRequired??false,backupCodes:s?.backupCodes??e?.twoFactor??false,legacyNameField:e?.authentication===void 0}}var Bo=1e4,jo=1024*1024,D=class extends Error{kind;requestId;constructor(t,n){super(Zo(t)),this.name="TransportError",this.kind=t,this.requestId=n;}},St=new WeakSet;function U(e,t){let n=new D(e,t);return St.add(n),n}async function Tt({fetchImpl:e,url:t,init:n={},timeoutMs:o=Bo,maxResponseBytes:i=jo,allowHttpLoopback:s=false,decode:r}){Rt(o,"timeoutMs"),Rt(i,"maxResponseBytes");let a=dt(t,{allowHttpLoopback:s}),c=n.signal,m=new AbortController,d=null,h,A=new Promise(g=>{h=g;}),b=g=>{d===null&&(d=g,h({type:"abort",kind:g}),m.abort());},u=()=>b("aborted");c?.addEventListener("abort",u,{once:true});let p=setTimeout(()=>b("timeout"),o);c?.aborted&&u();try{if(d!==null)throw U(d);let g;try{g=await Promise.race([e(a.toString(),{...n,redirect:"error",signal:m.signal}).then(E=>({type:"response",response:E})),A]);}catch{throw U(d??"network")}if(g.type==="abort")throw U(g.kind);if(!Jo(g.response))throw U("invalid_response");let w=g.response,k=Qo(w.headers),z=await Go(w,i,A,()=>d,k),V=Yo(w,z,k),O;try{O=w.ok&&r?r(V,Object.freeze({status:w.status})):V;}catch{throw U("invalid_response",k)}return {response:w,data:O,...k===void 0?{}:{requestId:k}}}catch(g){throw g instanceof D&&St.has(g)?g:U(d??"network")}finally{clearTimeout(p),c?.removeEventListener("abort",u);}}function Jo(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 Go(e,t,n,o,i){let s=e.headers.get("content-length");if(s!==null){if(!/^\d+$/.test(s))throw kt(e.body),U("invalid_response",i);if(Number(s)>t)throw kt(e.body),U("response_too_large",i)}if(!e.body)return "";let r;try{r=e.body.getReader();}catch{throw U("network",i)}let a=[],c=0,m=null;try{for(;;){let A;try{A=await Promise.race([r.read(),n]);}catch{m=U(o()??"network",i);break}if(Wo(A)){m=U(A.kind,i);break}let{done:b,value:u}=A;if(b)break;if(u.byteLength!==0){if(c+=u.byteLength,c>t){m=U("response_too_large",i);break}a.push(u);}}}finally{m&&$o(r);try{r.releaseLock();}catch{}}if(m)throw m;let d=new Uint8Array(c),h=0;for(let A of a)d.set(A,h),h+=A.byteLength;try{return new TextDecoder("utf-8",{fatal:!0}).decode(d)}catch{throw U("invalid_response",i)}}function Wo(e){return "type"in e&&e.type==="abort"}function kt(e){if(e)try{e.cancel().catch(()=>{});}catch{}}function $o(e){try{e.cancel().catch(()=>{});}catch{}}function Yo(e,t,n){if(e.status===204||e.status===205)return null;let o=Xo(e.headers.get("content-type"));if(!e.ok&&(!o||t.length===0))return null;if(!o||t.length===0)throw U("invalid_response",n);try{return JSON.parse(t)}catch{if(!e.ok)return null;throw U("invalid_response",n)}}function Xo(e){if(e===null)return false;let t=e.split(";",1)[0]?.trim().toLowerCase();return t==="application/json"||t?.endsWith("+json")===true}function Qo(e){let t=e.get("x-request-id")?.trim();if(!(!t||t.length>256||!/^[A-Za-z0-9._:-]+$/.test(t)))return t}function Rt(e,t){if(!Number.isInteger(e)||e<=0)throw new TypeError(`${t} must be a positive integer.`)}function Zo(e){switch(e){case "aborted":return "The request was cancelled.";case "timeout":return "The request timed out.";case "response_too_large":return "The response exceeded the allowed size.";case "invalid_response":return "The service returned an invalid response.";case "network":return "The network request could not be completed."}}var fe=class extends Error{status;requestId;constructor(t,n,o){super(`${t} request failed with status ${n.status}.`),this.name="AuthOwlHttpError",this.status=n.status,this.requestId=o;}};function q(e,t,n={}){let o=new Headers(n.init?.headers);return o.set("x-publishable-key",e.publishableKey),Tt({fetchImpl:e.fetch,url:t,init:{...n.init,headers:o},allowHttpLoopback:e.decoded.env==="test",...n.timeoutMs===void 0?{}:{timeoutMs:n.timeoutMs},...n.maxResponseBytes===void 0?{}:{maxResponseBytes:n.maxResponseBytes},...n.decode===void 0?{}:{decode:n.decode}})}function W(e,t){if(!e.response.ok)throw new fe(t,e.response,e.requestId);return e.data}var Pt="x-authowl-turnstile-token",ei=1e4,ti=32,ni=2e4;function ee(e,t){return {post:(n,o,i,s)=>e.request(n,{method:"POST",body:o,fetchOptions:i,decode:s}),mutation:async(n,o)=>{let i=await n;return i.error===null&&(o===void 0||i.data!==null&&o(i.data))&&t(),i}}}function se(e,t=e.projectBaseURL){return {async request(n,o={}){let i=ri(t,n,o.query),s=o.method??(o.body===void 0?"GET":"POST"),r=new Headers(o.fetchOptions?.headers);o.fetchOptions?.authChallengeToken&&r.set(Pt,o.fetchOptions.authChallengeToken),o.body!==void 0&&r.set("content-type","application/json");let a={method:s,headers:r,credentials:o.credentials??"include",...o.body===void 0?{}:{body:JSON.stringify(o.body)}},c=Object.freeze({method:s,path:n});await o.fetchOptions?.onRequest?.(c);let m=ii(s,o.fetchOptions),d;try{d=await oi(e,i,{...a,signal:o.fetchOptions?.signal},m);}catch(g){let w=It(g);return await o.fetchOptions?.onError?.(ze(c,w,ci(g))),{data:null,error:w}}let{response:h,requestId:A}=d,b=di(n,d.data),u=b;if(h.ok)try{u=Le(b),o.decode&&(u=o.decode(u));}catch{let g=It(new D("invalid_response",A));return await o.fetchOptions?.onError?.(ze(c,g,"invalid_response")),{data:null,error:g}}let p=Object.freeze({...c,status:h.status,...A===void 0?{}:{requestId:A}});if(await o.fetchOptions?.onResponse?.(p),!h.ok){let g=si(h,b,A);return g.code===mt&&e.session.tokens.dropChallenge(),await o.fetchOptions?.onError?.(ze(c,g,"api")),{data:null,error:g}}return await o.fetchOptions?.onSuccess?.(p),{data:u,error:null}}}}async function oi(e,t,n,o){let i=Date.now()+ei;for(let s=0;s<o;s+=1){let r=i-Date.now();if(r<=0)throw new D("timeout");try{let a=await q(e,t,{init:n,timeoutMs:Math.max(1,Math.ceil(r))});if(a.response.status<500||s===o-1)return a}catch(a){if(s===o-1||!(a instanceof D)||a.kind!=="network")throw a}await ui(50*2**s,n.signal,i);}throw new D("network")}function ii(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 ri(e,t,n){let o=new URL(`${e}${t.startsWith("/")?t:`/${t}`}`);for(let[i,s]of Object.entries(n??{}))s!==void 0&&o.searchParams.set(i,String(s));return o.toString()}function si(e,t,n){let o=re(t)?t:{},i=ai(o,e.headers);return {status:e.status,statusText:e.statusText,code:typeof o.code=="string"?o.code:void 0,...n===void 0?{}:{requestId:n},...typeof o.current_version=="number"?{currentVersion:o.current_version}:{},...i!==void 0?{retryAfterSeconds:i}:{},message:typeof o.message=="string"?o.message:typeof o.error=="string"?o.error:typeof o.detail=="string"?o.detail:e.statusText||"Request failed"}}function ai(e,t){let n=(typeof e.retryAfterSeconds=="number"&&Number.isFinite(e.retryAfterSeconds)?e.retryAfterSeconds:void 0)??Et(t.get("retry-after"))??Et(t.get("x-retry-after"));if(n!==void 0)return Math.min(Math.max(Math.trunc(n),1),86400)}function Et(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 It(e){let t=e instanceof D?e.kind:"network";return {status:0,...{aborted:{statusText:"ABORTED",code:"REQUEST_ABORTED",message:"The request was cancelled."},timeout:{statusText:"TIMEOUT",code:"REQUEST_TIMEOUT",message:"The request timed out."},response_too_large:{statusText:"INVALID_RESPONSE",code:"RESPONSE_TOO_LARGE",message:"The service response was too large."},invalid_response:{statusText:"INVALID_RESPONSE",code:"INVALID_RESPONSE",message:"The service returned an invalid response."},network:{statusText:"FETCH_ERROR",code:"FETCH_ERROR",message:"Network request failed."}}[t],...e instanceof D&&e.requestId?{requestId:e.requestId}:{}}}function ze(e,t,n){return Object.freeze({...e,status:t.status??0,...t.requestId===void 0?{}:{requestId:t.requestId},failure:n})}function ci(e){return e instanceof D?e.kind:"network"}function ui(e,t,n){return new Promise((o,i)=>{if(t?.aborted){i(new D("aborted"));return}let s=n-Date.now();if(s<=0){i(new D("timeout"));return}let r=Math.min(e,s),a=()=>{clearTimeout(c),i(new D("aborted"));},c=setTimeout(()=>{t?.removeEventListener("abort",a),Date.now()>=n?i(new D("timeout")):o();},r);t?.addEventListener("abort",a,{once:true}),t?.aborted&&a();})}function Le(e,t="",n=0,o={nodes:0}){if(o.nodes+=1,n>ti||o.nodes>ni)throw new Error("response traversal limit exceeded");if(typeof e=="string"&&/^(?:createdAt|updatedAt|expiresAt)$/.test(t)){let i=new Date(e);return Number.isNaN(i.getTime())?e:i}return Array.isArray(e)?e.map(i=>Le(i,"",n+1,o)):re(e)?Object.fromEntries(Object.entries(e).map(([i,s])=>[i,li(i)?s:Le(s,i,n+1,o)])):e}function li(e){return e==="metadata"||e==="public_metadata"||e==="unsafe_metadata"||e==="private_metadata"||e==="publicMetadata"||e==="unsafeMetadata"||e==="privateMetadata"}function di(e,t){if(e==="/list-sessions"&&Array.isArray(t))return t.map(i=>re(i)?Ne(i):i);if(!re(t))return t;let o=e==="/change-password"||e==="/passkey/verify-authentication"||e==="/phone-otp/verify"||e==="/sign-up/email"||e.startsWith("/sign-in/")||e.startsWith("/two-factor/verify-")?Ne(t):t;return e==="/sign-up/email"&&!("sessionCreated"in o)&&(o={...o,sessionCreated:typeof t.token=="string"&&t.token.length>0}),(e==="/get-session"||e==="/passkey/verify-authentication")&&re(o.session)&&(o={...o,session:Ne(o.session)}),o}function Ne(e){if(!Object.hasOwn(e,"token"))return e;let t={...e};return delete t.token,t}function re(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}var pi=new Set(["__proto__","constructor","prototype"]);function f(e){(!e||typeof e!="object"||Array.isArray(e))&&l();let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null&&l(),e}function R(e){return typeof e!="string"&&l(),e}function T(e){return typeof e!="boolean"&&l(),e}function C(e){return (!(e instanceof Date)||Number.isNaN(e.getTime()))&&l(),e}function ge(e){return (!Array.isArray(e)||!e.every(t=>typeof t=="string"))&&l(),[...e]}function P(e,t){let n=e[t];return n==null||typeof n=="string"?n:l()}function Ct(e,t){let n=e[t];return n==null||typeof n=="boolean"?n:l()}function L(e){let t=f(e),n=t.email;return n!==null&&typeof n!="string"&&l(),{id:R(t.id),email:n,emailVerified:T(t.emailVerified),createdAt:C(t.createdAt),updatedAt:C(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",Ct(t,"twoFactorEnabled"))}}function me(e){let t=f(e),n=t.membership;return {id:R(t.id),userId:R(t.userId),expiresAt:C(t.expiresAt),...N("activeOrganizationId",P(t,"activeOrganizationId")),...N("activeTeamId",P(t,"activeTeamId")),...N("membership",n==null?n:fi(n)),...N("pendingMfaEnrollment",Ct(t,"pendingMfaEnrollment"))}}function l(){throw new TypeError("AuthOwl response does not match its runtime contract.")}function H(e,t=20,n=1e4){return (!e||typeof e!="object"||Array.isArray(e))&&l(),Me(e,t,n)}function Me(e,t=20,n=1e4){return Fe(e,0,{nodes:0},t,n)}function fi(e){let t=f(e);return {role:R(t.role),permissions:ge(t.permissions),...t.teams===void 0?{}:{teams:ge(t.teams)}}}function Fe(e,t,n,o,i){if(n.nodes+=1,(t>o||n.nodes>i)&&l(),e===null||typeof e=="string"||typeof e=="boolean")return e;if(typeof e=="number")return Number.isFinite(e)||l(),e;if(Array.isArray(e))return e.map(a=>Fe(a,t+1,n,o,i));(!e||typeof e!="object")&&l();let s=Object.getPrototypeOf(e);s!==Object.prototype&&s!==null&&l();let r={};for(let[a,c]of Object.entries(e))pi.has(a)&&l(),r[a]=Fe(c,t+1,n,o,i);return r}function N(e,t){return t===void 0?{}:{[e]:t}}function xt({http:e,probe:t,tokens:n,channelName:o}){let i=new Set,s=null,r=null,a=null,c=null,m=null,d,h=O=>{u(O);};d={data:null,isPending:true,isRefetching:false,error:null,refetch:h};function A(O){d=O;for(let E of i)E();}async function b(O){return e.request("/get-session",{query:O?.query,decode:Ve})}function u(O){if(O?.query?.disableCookieCache===true)return p(O);if(c)return c;let E=p(O).finally(()=>{c===E&&(c=null);});return c=E,E}async function p(O){a?.abort();let E=new AbortController;a=E,A({...d,isPending:d.data===null&&d.error===null,isRefetching:d.data!==null});let y=n.beginRead(),x=await e.request("/get-session",{query:O?.query,fetchOptions:{signal:E.signal},decode:Ve});if(a===E&&(a=null,A({data:x.data,error:x.error,isPending:false,isRefetching:false,refetch:h}),x.error===null)){if(x.data===null){y.endIfDead();return}await g(y);}}async function g(O){if(n.needsProbe()){if(!O.carriedToken){O.recordCookieVerdict(true);return}return m||w(O)}}function w(O){let E=t.request("/get-session",{query:{disableCookieCache:true},decode:Ve}).then(y=>{m===E&&y.error===null&&O.recordCookieVerdict(y.data!==null);}).finally(()=>{m===E&&(m=null);});return m=E,E}function k(){s?.postMessage({type:"session-changed"});}function z(){if(typeof window>"u"||r)return;let O=()=>{u();},E=()=>{document.visibilityState==="visible"&&u();};window.addEventListener("focus",O),document.addEventListener("visibilitychange",E),typeof BroadcastChannel<"u"&&(s=new BroadcastChannel(o),s.addEventListener("message",O)),r=()=>{window.removeEventListener("focus",O),document.removeEventListener("visibilitychange",E),s?.close(),s=null,r=null;};}function V(O){return i.add(O),i.size===1&&(z(),u()),()=>{i.delete(O),i.size===0&&(a?.abort(),a=null,r?.());}}return n.measureWith(()=>{n.needsProbe()&&w(n.beginRead());}),{store:{subscribe:V,getSnapshot:()=>d},getSession:b,notifyMutation(){k(),m&&m.catch(()=>{}).then(()=>{!n.needsProbe()&&n.hasToken()&&k();}),i.size>0&&u({query:{disableCookieCache:true}});}}}function Ve(e){if(e===null)return null;let t=f(e);return (t.session===void 0||t.user===void 0)&&l(),{session:me(t.session),user:L(t.user)}}qe();function He(){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 vt(e,t){return e.request("/user/metadata",{fetchOptions:t,decode:Ut})}async function Dt(e,t,n){return e.request("/user/metadata",{method:"PATCH",body:{expected_version:t.expectedVersion,unsafe_metadata:t.unsafeMetadata},fetchOptions:n,decode:Ut})}function Ut(e){let t=f(e),n=H(t.public_metadata),o=H(t.unsafe_metadata);if(!Number.isSafeInteger(t.metadata_version)||t.metadata_version<0)throw new TypeError("Invalid AuthOwl metadata response");return {publicMetadata:n,unsafeMetadata:o,metadataVersion:t.metadata_version}}function zt(e,t){let{post:n,mutation:o}=ee(e,t);return {getMetadata:i=>vt(e,i),updateUnsafeMetadata:(i,s)=>Dt(e,i,s),updateProfile:(i,s)=>o(n("/update-user",i,s,ce)),changeEmail:(i,s)=>o(n("/change-email",i,s,ce)),changePassword:(i,s)=>o(n("/change-password",i,s,gi)),listSessions:i=>e.request("/list-sessions",{fetchOptions:i,decode:mi}),revokeSession:({sessionId:i},s)=>o(n("/revoke-session",{sessionId:i},s,ce)),revokeOtherSessions:i=>o(n("/revoke-other-sessions",{},i,ce)),listSocialAccounts:async i=>{let s=await e.request("/list-accounts",{fetchOptions:i,decode:hi});if(!s.data)return {data:null,error:s.error};let r=s.data.length>1;return {...s,data:s.data.filter(a=>a.providerId!=="credential").map(a=>({...a,canUnlink:r}))}},linkSocial:(i,s)=>n("/link-social",i,s,yi),unlinkSocial:(i,s)=>o(n("/unlink-account",i,s,ce)),delete:(i={},s)=>o(n("/delete-user",i,s,Ai))}}function ce(e){let t=f(e);return {status:T(t.status)}}function gi(e){let t=f(e);return {user:L(t.user)}}function mi(e){return Array.isArray(e)||l(),e.map(t=>{let n=f(t);return {id:R(n.id),userId:R(n.userId),createdAt:C(n.createdAt),updatedAt:C(n.updatedAt),expiresAt:C(n.expiresAt),..._t("ipAddress",P(n,"ipAddress")),..._t("userAgent",P(n,"userAgent"))}})}function hi(e){return Array.isArray(e)||l(),e.map(t=>{let n=f(t);return {id:R(n.id),userId:R(n.userId),providerId:R(n.providerId),accountId:R(n.accountId),scopes:ge(n.scopes),createdAt:C(n.createdAt),updatedAt:C(n.updatedAt)}})}function yi(e){let t=f(e);return {url:R(t.url),redirect:T(t.redirect)}}function Ai(e){let t=f(e);return {success:T(t.success),message:R(t.message)}}function _t(e,t){return t===void 0?{}:{[e]:t}}function he(e,t){return !e||!t?false:e.permissions.includes(t)}function Nt(e,t){return !e||!t?false:e.teams?.includes(t)??false}function ye(e,t){if(!e)return false;let{role:n,permission:o,teamId:i}=t;return !(n===void 0&&o===void 0&&i===void 0||n!==void 0&&e.role!==n||o!==void 0&&!e.permissions.includes(o)||i!==void 0&&!Nt(e,i))}function bi(e){return {has:t=>ye(e,t),hasPermission:t=>he(e,t.permission)}}var Oi=new Set(["pending","accepted","rejected","canceled"]),Lt=1e4;function te(e,t,n){let o=f(e),i={id:S(o.id),name:S(o.name),slug:S(o.slug),createdAt:C(o.createdAt),...Ae("logo",P(o,"logo")),...Ae("metadata",o.metadata===void 0?void 0:Me(o.metadata))};return j(i.id,t),j(i.slug,n),i}function Ft(e){return J(e,te)}function Ke(e,t,n){return e===null?null:(t===null&&l(),te(e,t,n))}function Mt(e,t,n){if(e===null)return null;let o=f(e),i=te(o,t,n);return {...i,members:J(o.members,s=>Qt(s,i.id)),invitations:J(o.invitations,s=>K(s,void 0,i.id))}}function Vt(e,t){let n=J(e,o=>Xt(o));return be(n.map(o=>o.organizationId),t),n}function qt(e,t,n){return e===null?null:(t===null&&l(),Xt(e,t,n))}function Ht(e,t){let n=f(e);return (!Number.isSafeInteger(n.total)||n.total<0)&&l(),{members:wi(n.members,t),total:n.total}}function K(e,t,n){let o=f(e),i=S(o.status);Oi.has(i)||l();let s={id:S(o.id),organizationId:S(o.organizationId),email:S(o.email),role:S(o.role),status:i,inviterId:S(o.inviterId),expiresAt:C(o.expiresAt),createdAt:C(o.createdAt)};return j(s.id,t),j(s.organizationId,n),s}function Kt(e,t){let n=J(e,o=>K(o));return be(n.map(o=>o.organizationId),t),n}function Bt(e){return J(e,t=>{let n=f(t);return {...K(n),organizationName:S(n.organizationName)}})}function jt(e,t){let n=f(e);return {...K(n,t),organizationName:S(n.organizationName),organizationSlug:S(n.organizationSlug),inviterEmail:S(n.inviterEmail)}}function Jt(e,t){let n=f(e),o=K(n.invitation,t);return {invitation:o,member:ne(n.member,void 0,o.organizationId)}}function Gt(e,t){let n=f(e);return n.member!==null&&l(),{invitation:n.invitation===null?null:K(n.invitation,t),member:null}}function Wt(e,t){return e===null?null:K(e,t)}function $t(e,t,n){let o=f(e);return {member:ne(o.member,n,t)}}function ne(e,t,n){let o=f(e),i={id:S(o.id),organizationId:S(o.organizationId),userId:S(o.userId),role:S(o.role),createdAt:C(o.createdAt),...o.user===void 0?{}:{user:Zt(o.user)}};return j(i.id,t),j(i.organizationId,n),i}function Yt(e,t){let n=J(e,o=>{let i=f(o);return {organizationId:S(i.organizationId),data:{role:S(i.role),...Ae("permission",i.permission===void 0?void 0:ki(i.permission))}}});return be(n.map(o=>o.organizationId),t),n.map(o=>o.data)}function Xt(e,t,n){let o=f(e),i=o.updatedAt,s={id:S(o.id),name:S(o.name),organizationId:S(o.organizationId),createdAt:C(o.createdAt),...i===void 0?{}:{updatedAt:C(i)}};return j(s.id,t),j(s.organizationId,n),s}function Qt(e,t){let n=f(e);return {...ne(n,void 0,t),user:Zt(n.user)}}function wi(e,t){let n=J(e,o=>Qt(o));return be(n.map(o=>o.organizationId),t),n}function ki(e){let t=f(e),n={};for(let[o,i]of Object.entries(t))(o==="__proto__"||o==="constructor"||o==="prototype"||o.length===0||o.length>Lt||!Array.isArray(i))&&l(),n[o]=i.map(s=>S(s));return n}function S(e){let t=R(e);return (t.length===0||t.length>Lt)&&l(),t}function j(e,t){t!==void 0&&e!==t&&l();}function be(e,t){let n=t??e[0];n!==void 0&&e.some(o=>o!==n)&&l();}function Zt(e){let t=f(e);return {id:S(t.id),name:S(t.name),email:S(t.email),...Ae("image",P(t,"image"))}}function J(e,t){return Array.isArray(e)||l(),e.map(n=>t(n))}function Ae(e,t){return t===void 0?{}:{[e]:t}}function en(e,t,n=()=>null){let{post:o,mutation:i}=ee(e,t),s=(r,a,c,m)=>e.request(r,{query:a,fetchOptions:c,decode:m});return {create:(r,a)=>i(o("/organization/create",r,a,te)),list:r=>s("/organization/list",void 0,r,Ft),get:(r={},a)=>s("/organization/get-full-organization",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,membersLimit:r.membersLimit},a,c=>Mt(c,r.organizationId,r.organizationSlug)),setActive:(r,a)=>i(o("/organization/set-active",r,a,c=>Ke(c,r.organizationId,r.organizationSlug))),listTeams:(r={},a)=>s("/organization/list-teams",{organizationId:r.organizationId},a,c=>Vt(c,r.organizationId)),setActiveTeam:(r,a)=>i(o("/organization/set-active-team",r,a,c=>qt(c,r.teamId))),update:(r,a)=>i(o("/organization/update",r,a,c=>Ke(c,r.organizationId))),delete:(r,a)=>i(o("/organization/delete",r,a,c=>te(c,r.organizationId))),listMembers:(r={},a)=>s("/organization/list-members",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,limit:r.limit,offset:r.offset,sortBy:r.sortBy,sortDirection:r.sortDirection,filterField:r.filterField,filterValue:r.filterValue,filterOperator:r.filterOperator},a,c=>Ht(c,r.organizationId)),inviteMember:(r,a)=>i(o("/organization/invite-member",r,a,c=>K(c,void 0,r.organizationId))),listInvitations:(r={},a)=>s("/organization/list-invitations",{organizationId:r.organizationId},a,c=>Kt(c,r.organizationId)),listUserInvitations:r=>s("/organization/list-user-invitations",void 0,r,Bt),getInvitation:(r,a)=>s("/organization/get-invitation",{id:r.id},a,c=>jt(c,r.id)),acceptInvitation:(r,a)=>i(o("/organization/accept-invitation",r,a,c=>Jt(c,r.invitationId))),rejectInvitation:(r,a)=>i(o("/organization/reject-invitation",r,a,c=>Gt(c,r.invitationId))),cancelInvitation:(r,a)=>i(o("/organization/cancel-invitation",r,a,c=>Wt(c,r.invitationId))),removeMember:(r,a)=>i(o("/organization/remove-member",r,a,c=>$t(c,r.organizationId,r.memberIdOrEmail.includes("@")?void 0:r.memberIdOrEmail))),updateMemberRole:(r,a)=>i(o("/organization/update-member-role",r,a,c=>ne(c,r.memberId,r.organizationId))),leave:(r,a)=>i(o("/organization/leave",r,a,c=>ne(c,void 0,r.organizationId))),listRoles:(r={},a)=>s("/organization/list-roles",{organizationId:r.organizationId},a,c=>Yt(c,r.organizationId)),has:r=>ye(n(),r),hasPermission:r=>he(n(),r.permission)}}var tn=4096,Ri=4096,Si=100,Ti=256,Ei=16,Ii=64,Pi=12;function je(e){let t=f(e);return t.twoFactorRedirect===true?((t.user!==void 0||t.redirect!==void 0||t.url!==void 0)&&l(),{twoFactorRedirect:true,...t.twoFactorMethods===void 0?{}:{twoFactorMethods:On(t.twoFactorMethods,Ei,Ii)}}):(t.twoFactorRedirect!==void 0&&l(),{redirect:T(t.redirect),...Ui(t,"url"),user:L(t.user)})}function nn(e){let t=f(e);return {user:L(t.user)}}function on(e){let t=f(e);return {sessionCreated:T(t.sessionCreated),user:L(t.user)}}function rn(e,t){let n=f(e),o=T(n.redirect);n.user===null&&l();let i=n.user!==void 0&&n.user!==null,s=n.url!==void 0&&n.url!==null;return o?((i||!s)&&l(),{redirect:true,url:Be(n.url,t)}):(i===s&&l(),i?{redirect:false,user:L(n.user)}:{redirect:false,url:Be(n.url,t)})}function sn(e,t){let n=f(e);return (n.redirect!==true||n.user!==void 0)&&l(),{redirect:true,url:Be(n.url,t)}}function an(e){return {status:T(f(e).status)}}function cn(e){return {success:T(f(e).success)}}function un(e){return f(e).status!=="pending"&&l(),{status:"pending"}}function ln(e){let t=f(e);if(t.kind==="authowl_turnstile")return {kind:"authowl_turnstile"};t.kind!=="akedly_shield_v1_2"&&l();let n=f(t.turnstile),o=n.siteKey===null?null:R(n.siteKey);return {kind:"akedly_shield_v1_2",connectionId:R(t.connectionId),challenge:R(t.challenge),difficulty:Ci(t.difficulty),challengeToken:R(t.challengeToken),challengeRequired:T(t.challengeRequired),turnstile:{required:T(n.required),siteKey:o}}}function Ci(e){return (!Number.isSafeInteger(e)||Number(e)<0||Number(e)>Pi)&&l(),Number(e)}function dn(e){let t=f(e);return (t.status!==true||t.sessionCreated!==true)&&l(),{status:true,sessionCreated:true,user:xi(t.user)}}function Je(e){return {status:T(f(e).status)}}function pn(e){return {status:T(f(e).status)}}function fn(e){let t=f(e);return {status:T(t.status),user:L(t.user)}}function gn(e){return {success:T(f(e).success)}}function mn(e){let t=f(e);return {totpURI:Di(t.totpURI),backupCodes:bn(t.backupCodes)}}function hn(e){return {status:T(f(e).status)}}function Oe(e){return f(e).status!==true&&l(),{status:true}}function yn(e){return {status:T(f(e).status)}}function An(e){let t=f(e);return t.status!==void 0&&t.status!==true&&l(),{backupCodes:bn(t.backupCodes)}}function xi(e){let t=f(e);return {id:oe(t.id,512),..._i(t,"name",1024),phoneNumber:oe(t.phoneNumber,64),phoneNumberVerified:T(t.phoneNumberVerified),...t.createdAt===void 0?{}:{createdAt:C(t.createdAt)},...t.updatedAt===void 0?{}:{updatedAt:C(t.updatedAt)}}}function Be(e,t){let n=oe(e,tn);/[\u0000-\u0020\u007f]/u.test(n)&&l();let o;try{o=new URL(n);}catch{return l()}return (o.username||o.password)&&l(),o.protocol==="https:"||t&&o.protocol==="http:"&&vi(o.hostname)?o.href:l()}function vi(e){let t=e.toLowerCase();return t==="localhost"||t==="127.0.0.1"||t==="[::1]"}function Di(e){let t=oe(e,Ri),n;try{n=new URL(t);}catch{return l()}let o=n.searchParams.get("secret");return (n.protocol!=="otpauth:"||n.hostname.toLowerCase()!=="totp"||n.username||n.password||n.hash||o===null||o.length===0||o.length>512||/\s/u.test(o))&&l(),t}function bn(e){return On(e,Si,Ti)}function On(e,t,n){(!Array.isArray(e)||e.length===0||e.length>t)&&l();let o=e.map(i=>oe(i,n));return o.some(i=>i.trim().length===0)&&l(),new Set(o).size!==o.length&&l(),o}function oe(e,t){let n=R(e);return (n.length===0||n.length>t)&&l(),n}function Ui(e,t){let n=e[t];return n==null?{}:{[t]:oe(n,tn)}}function _i(e,t,n){let o=P(e,t);return o===void 0?{}:(o!==null&&o.length>n&&l(),{[t]:o})}var wn=new Set([1564,8206,8207,8234,8235,8236,8237,8238,8294,8295,8296,8297]),we=new Set([9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288,65279]);function ke(e){if(e===void 0)return {valid:true,value:void 0};for(let n of e){let o=n.codePointAt(0);if(o===void 0||Rn(n,o)||kn(o)||wn.has(o))return {valid:false}}let t=zi(e);return Ge(t)?{valid:true,value:t}:{valid:false}}function Ge(e){let t=0,n,o;for(let i of e){if(t+=1,t>256)return false;let s=i.codePointAt(0);if(s===void 0||Rn(i,s)||kn(s)||wn.has(s))return false;n??=s,o=s;}return t>0&&n!==void 0&&o!==void 0&&!we.has(n)&&!we.has(o)}function Re(){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 zi(e){let t=0,n=e.length;for(;t<n;){let o=e.codePointAt(t);if(o===void 0||!we.has(o))break;t+=o>65535?2:1;}for(;n>t;){let o=e.codePointAt(n-1);if(o===void 0)break;let s=o>=56320&&o<=57343?n-2:n-1,r=e.codePointAt(s);if(r===void 0||!we.has(r))break;n=s;}return e.slice(t,n)}function kn(e){return e>=0&&e<=31||e>=127&&e<=159}function Rn(e,t){return e.length===1&&t>=55296&&t<=57343}var En=12,In=5e3,Ni=8,Li=1e3,Fi=16,Sn=512,Pn=100,Cn=8192,Mi=32768,We=1024,Tn=256,Ye=64,Vi=6e5,qi=/^[A-Za-z0-9_-]+$/u,Hi=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u,Ki=/[\u0000-\u001f\u007f-\u009f\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/u,Bi=/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$/u,ji=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu,xn=new Set(["discouraged","preferred","required"]),Ji=new Set(["singleDevice","multiDevice"]),vn=new Set(["ble","cable","hybrid","internal","nfc","smart-card","usb"]),Dn=new Set(["hybrid","security-key","client-device"]),Gi=new Set(["none","indirect","direct","enterprise"]),Wi=new Set(["fido-u2f","packed","android-safetynet","android-key","tpm","apple","none"]),$i=new Set(["platform","cross-platform"]),Yi=new Set(["discouraged","preferred","required"]),Xi=new Set([-8,-7,-257]);function Un(e){let t=H(e,En,In);return {challenge:Kn(t.challenge),...v("timeout",qn(t.timeout)),...v("rpId",Bn(t.rpId)),...v("allowCredentials",Vn(t.allowCredentials)),...v("userVerification",ue(t.userVerification,xn)),...v("hints",Se(t.hints,Dn)),...v("extensions",Hn(t.extensions))}}function _n(e){let t=H(e,En,In);return {challenge:Kn(t.challenge),rp:Qi(t.rp),user:Zi(t.user),pubKeyCredParams:er(t.pubKeyCredParams),...v("timeout",qn(t.timeout)),...v("excludeCredentials",Vn(t.excludeCredentials)),...v("authenticatorSelection",tr(t.authenticatorSelection)),...v("attestation",ue(t.attestation,Gi)),...v("attestationFormats",Se(t.attestationFormats,Wi)),...v("hints",Se(t.hints,Dn)),...v("extensions",Hn(t.extensions))}}function zn(e){let t=f(e),n=me(t.session),o=L(t.user);return n.userId!==o.id&&l(),{session:n,user:o}}function Xe(e){let t=f(e),n=t.counter;(!Number.isSafeInteger(n)||n<0)&&l();let o=Qe(t.deviceType,Ji),i=T(t.backedUp);return i&&o!=="multiDevice"&&l(),{id:ie(t.id,Tn),...ir(t),publicKey:nr(t.publicKey,Mi),userId:ie(t.userId,Tn),credentialID:Ee(t.credentialID,Cn),counter:n,deviceType:o,backedUp:i,...rr(t),createdAt:C(t.createdAt),...sr(t)}}function Nn(e,t,n){let o=Xe(e);return (o.credentialID!==t||(n===void 0?o.name!==void 0&&o.name!==null:o.name!==n))&&l(),o}function Ln(e){(!Array.isArray(e)||e.length>Pn)&&l();let t=e.map(Xe);return Te(t.map(n=>n.id)),Te(t.map(n=>n.credentialID)),t.length>1&&t.some(n=>n.userId!==t[0]?.userId)&&l(),t}function Fn(e,t,n){let o=f(e),i=Xe(o.passkey);return (i.id!==t||i.name!==n)&&l(),{passkey:i}}function Mn(e){return f(e).status!==true&&l(),{status:true}}function Qi(e){let t=f(e);return {name:$e(t.name,We),...v("id",Bn(t.id))}}function Zi(e){let t=f(e);return {id:Ee(t.id,128,1,64),name:$e(t.name,We),displayName:$e(t.displayName,We)}}function er(e){(!Array.isArray(e)||e.length===0||e.length>Ye)&&l();let t=e.map(n=>{let o=f(n);return (o.type!=="public-key"||!Number.isSafeInteger(o.alg)||!Xi.has(o.alg))&&l(),{type:"public-key",alg:o.alg}});return ar(t.map(n=>n.alg)),t}function Vn(e){if(e===void 0)return;(!Array.isArray(e)||e.length>Pn)&&l();let t=e.map(n=>{let o=f(n);return o.type!=="public-key"&&l(),{type:"public-key",id:Ee(o.id,Cn),...v("transports",Se(o.transports,vn))}});return Te(t.map(n=>n.id)),t}function tr(e){if(e===void 0)return;let t=f(e);t.requireResidentKey!==void 0&&typeof t.requireResidentKey!="boolean"&&l();let n=ue(t.residentKey,Yi);return t.requireResidentKey!==void 0&&n!==void 0&&t.requireResidentKey!==(n==="required")&&l(),{...v("authenticatorAttachment",ue(t.authenticatorAttachment,$i)),...v("residentKey",n),...v("requireResidentKey",t.requireResidentKey),...v("userVerification",ue(t.userVerification,xn))}}function qn(e){return e!==void 0&&(typeof e!="number"||!Number.isFinite(e)||e<0||e>Vi)&&l(),e}function Hn(e){return e===void 0?void 0:H(e,Ni,Li)}function Se(e,t){if(e===void 0)return;(!Array.isArray(e)||e.length>Ye)&&l();let n=e.map(o=>Qe(o,t));return Te(n),n}function ue(e,t){if(e!==void 0)return Qe(e,t)}function Kn(e){return Ee(e,Math.ceil(Sn*4/3),Fi,Sn)}function Ee(e,t,n=1,o=Number.POSITIVE_INFINITY){let i=ie(e,t),s=i.length%4,r=or(i.at(-1)??""),a=Math.floor(i.length*3/4);return (!qi.test(i)||s===1||s===2&&(r&15)!==0||s===3&&(r&3)!==0||a<n||a>o)&&l(),i}function ie(e,t){let n=R(e);return (n.length===0||n.length>t)&&l(),n}function $e(e,t){let n=ie(e,t);return Ki.test(n)&&l(),n}function Bn(e){if(e===void 0)return;let t=ie(e,253);return t!=="localhost"&&(t.endsWith(".")||!t.includes(".")||t.split(".").some(n=>!Bi.test(n)))&&l(),t}function nr(e,t){let n=ie(e,t),o=n.endsWith("=="),i=!o&&n.endsWith("="),s=n.at(o?-3:i?-2:-1)??"",r=jn(s);return (n.length%4!==0||!Hi.test(n)||o&&(r&15)!==0||i&&(r&3)!==0)&&l(),n}function or(e){return jn(e,true)}function jn(e,t=false){return (t?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").indexOf(e)}function ir(e){let t=P(e,"name");return t===void 0?{}:(t!==null&&!Ge(t)&&l(),{name:t})}function rr(e){let t=P(e,"transports");if(t==null||t==="")return t===void 0?{}:{transports:t};let n=t.split(",");return (n.length>Ye||n.some(o=>!vn.has(o))||new Set(n).size!==n.length)&&l(),{transports:t}}function sr(e){let t=P(e,"aaguid");return t==null?t===void 0?{}:{aaguid:null}:(ji.test(t)||l(),{aaguid:t})}function Qe(e,t){let n=R(e);return t.has(n)||l(),n}function v(e,t){return t===void 0?{}:{[e]:t}}function Te(e){new Set(e).size!==e.length&&l();}function ar(e){new Set(e).size!==e.length&&l();}function hr(e,t){if(!t)return e;let n=t.catch(()=>{});return n.then(()=>{n=null;}),{async request(o,i){return n&&await n,e.request(o,i)}}}var Qn=new Map;function yr(e,t,n){let o=Qn.get(n);return o||(o=Promise.resolve().then(()=>(Pe(),Ie)).then(i=>i.completeCrossSiteSignIn(e,t)),Qn.set(n,o)),o}function Zn(e){return !ae()||e.idToken||e.disableRedirect?"legacy":"first-party"}function to(e,t=()=>{},n=Ar){let o=se(e),i=e.session.tokens,s=ae()?yr(o,i,e.decoded.projectId):void 0,r=hr(o,s),a=xt({http:r,probe:se({...e,fetch:e.session.probe}),tokens:i,channelName:`authowl:${e.decoded.projectId}`}),c=n(r,a.notifyMutation),m=()=>{a.notifyMutation(),t();},{post:d,mutation:h}=ee(r,m),A=e.decoded.env==="test",b=u=>{i.beginSession({remember:u?.rememberMe!==false});};return {sessionStore:a.store,getSession:a.getSession,account:zt(r,m),organization:en(r,m,()=>a.store.getSnapshot().data?.session.membership??null),signIn:{email:(u,p)=>(b(u),h(d("/sign-in/email",u,p,je),g=>!("twoFactorRedirect"in g))),username:(u,p)=>(b(u),h(d("/sign-in/username",u,p,je),g=>!("twoFactorRedirect"in g))),social:async(u,p)=>{if(b(),Zn(u)==="first-party"){let{beginCrossSiteSignIn:w}=await Promise.resolve().then(()=>(Pe(),Ie)),k=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(k)return window.location.assign(k),{data:{redirect:true,url:k},error:null}}let g=await h(d("/sign-in/social",u,p,w=>rn(w,A)),w=>"user"in w);return g.error!==null||g.data===null||"url"in g.data&&g.data.redirect&&!u.disableRedirect&&typeof window<"u"&&window.location.assign(g.data.url),g},sso:async(u,p)=>{if(Zn(u)==="first-party"){let{beginCrossSiteSignIn:w}=await Promise.resolve().then(()=>(Pe(),Ie)),k=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(k)return window.location.assign(k),{data:{url:k,redirect:true},error:null}}let g=await d("/sign-in/sso",u,p,w=>sn(w,A));return g.error!==null||g.data===null||typeof window<"u"&&window.location.assign(g.data.url),g},magicLink:(u,p)=>d("/sign-in/magic-link",u,p,an),emailOtp:(u,p)=>(b(),h(d("/sign-in/email-otp",u,p,nn))),passkey:(u,p)=>(b(),c.signIn(u,p))},signUp:{email:(u,p)=>(b(),h(d("/sign-up/email",u,p,on),g=>g.sessionCreated))},emailOtp:{sendVerificationOtp:(u,p)=>d("/email-otp/send-verification-otp",u,p,cn),verifyEmail:(u,p)=>(b(),h(d("/email-otp/verify-email",u,p,fn)))},phoneOtp:{prepare:u=>d("/phone-otp/challenge",{},u,ln),start:(u,p)=>d("/phone-otp/start",{...u,idempotencyKey:u.idempotencyKey??He()},p,un),verify:(u,p)=>(b(),h(d("/phone-otp/verify",u,p,dn)))},requestPasswordReset:(u,p)=>d("/request-password-reset",u,p,Je),resetPassword:(u,p)=>d("/reset-password",u,p,Je),sendVerificationEmail:(u,p)=>d("/send-verification-email",u,p,pn),passkey:{addPasskey:(u,p)=>c.add(u,p),listUserPasskeys:()=>r.request("/passkey/list-user-passkeys",{decode:Ln}),updatePasskey:async(u,p)=>{let g=ke(u.name);if(!g.valid||g.value===void 0)return Re();let w=g.value;return d("/passkey/update-passkey",{...u,name:w},p,k=>Fn(k,u.id,w))},deletePasskey:(u,p)=>d("/passkey/delete-passkey",u,p,Mn)},twoFactor:{enable:(u,p)=>d("/two-factor/enable",u,p,mn),disable:(u,p)=>h(d("/two-factor/disable",u,p,hn),g=>g.status),verifyTotp:(u,p)=>h(d("/two-factor/verify-totp",u,p,Oe)),verifyBackupCode:(u,p)=>h(d("/two-factor/verify-backup-code",u,p,Oe)),sendOtp:(u={},p)=>d("/two-factor/send-otp",u,p,yn),verifyOtp:(u,p)=>h(d("/two-factor/verify-otp",u,p,Oe)),generateBackupCodes:(u,p)=>d("/two-factor/generate-backup-codes",u,p,An)},signOut:u=>h(r.request("/sign-out",{method:"POST",body:{},fetchOptions:u,decode:gn}).then(p=>(i.endSession(),p)),p=>p.success)}}function Ar(){return {signIn:()=>eo(),add:()=>eo()}}function eo(){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 o=new Map;return {async signIn(i={},s){let r=await e.request("/passkey/generate-authenticate-options");if(!r.data)return io(r.error);let a;try{a=Un(r.data);}catch{return no()}let c;try{c=await n.authenticate({optionsJSON:a,useBrowserAutofill:i.autoFill});}catch(b){return ro(n,b,"AUTH_CANCELLED","Passkey authentication was cancelled.")}if(!br(c))return oo();let{clientExtensionResults:m,...d}=c,h=o.get(c.id);if(h)return h;let A=(async()=>{let b=await e.request("/passkey/verify-authentication",{method:"POST",body:{response:d},fetchOptions:s,decode:zn});return b.data&&t(),b})();o.set(c.id,A);try{return await A}finally{o.get(c.id)===A&&o.delete(c.id);}},async add(i={},s){let r=ke(i.name);if(!r.valid)return Re();let a=await e.request("/passkey/generate-register-options",{query:{name:r.value,authenticatorAttachment:i.authenticatorAttachment}});if(!a.data)return io(a.error);let c;try{c=_n(a.data);}catch{return no()}let m;try{m=await n.register({optionsJSON:c});}catch(b){return ro(n,b,"REGISTRATION_CANCELLED","Passkey registration was cancelled.")}if(!Or(m))return oo();let{clientExtensionResults:d,...h}=m,A=await e.request("/passkey/verify-registration",{method:"POST",body:{response:h,name:r.value},fetchOptions:s,decode:b=>Nn(b,m.id,r.value)});return A.data&&t(),A}}}function no(){return {data:null,error:{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned invalid WebAuthn options."}}}function oo(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_WEBAUTHN_RESPONSE",message:"The platform returned an invalid passkey response."}}}function ao(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 br(e){if(!ao(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 Or(e){if(!ao(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.attestationObject=="string"}function io(e){return {data:null,error:e??{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned no WebAuthn options."}}}function ro(e,t,n,o){let i=kr(t,"page does not have focus"),s=e.errorCode?.(t),r=s!==void 0?s==="ERROR_CEREMONY_ABORTED":wr(t)==="AbortError";return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:i?"PASSKEY_PAGE_NOT_FOCUSED":r?n:s??"PASSKEY_BROWSER_ERROR",message:i?"Keep this page focused while completing the passkey prompt.":r?o:n==="AUTH_CANCELLED"?"Passkey authentication could not be completed by this browser.":"Passkey registration could not be completed by this browser."}}}function wr(e){return e&&typeof e=="object"&&"name"in e&&typeof e.name=="string"?e.name:void 0}function kr(e,t){let n=t.toLowerCase(),o=new Set,i=e;for(;i&&typeof i=="object"&&!o.has(i);){if(o.add(i),"message"in i&&typeof i.message=="string"&&i.message.toLowerCase().includes(n))return true;i="cause"in i?i.cause:void 0;}return false}function F(e){let t=new Uint8Array(e),n="";for(let i of t)n+=String.fromCharCode(i);return btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function $(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),n=(4-t.length%4)%4,o=t.padEnd(t.length+n,"="),i=atob(o),s=new ArrayBuffer(i.length),r=new Uint8Array(s);for(let a=0;a<i.length;a++)r[a]=i.charCodeAt(a);return s}function Y(){return Rr.stubThis(globalThis?.PublicKeyCredential!==void 0&&typeof globalThis.PublicKeyCredential=="function")}var Rr={stubThis:e=>e};function Ce(e){let{id:t}=e;return {...e,id:$(t),transports:e.transports}}function xe(e){return e==="localhost"||/^((xn--[a-z0-9-]+|[a-z0-9]+(-[a-z0-9]+)*)\.)+([a-z]{2,}|xn--[a-z0-9-]+)$/i.test(e)}var I=class extends Error{constructor({message:t,code:n,cause:o,name:i}){super(t,{cause:o}),Object.defineProperty(this,"code",{enumerable:true,configurable:true,writable:true,value:void 0}),this.name=i??o.name,this.code=n;}};function co({error:e,options:t}){let{publicKey:n}=t;if(!n)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(t.signal instanceof AbortSignal)return new I({message:"Registration ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else if(e.name==="ConstraintError"){if(n.authenticatorSelection?.requireResidentKey===true)return new I({message:"Discoverable credentials were required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT",cause:e});if(t.mediation==="conditional"&&n.authenticatorSelection?.userVerification==="required")return new I({message:"User verification was required during automatic registration but it could not be performed",code:"ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE",cause:e});if(n.authenticatorSelection?.userVerification==="required")return new I({message:"User verification was required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT",cause:e})}else {if(e.name==="InvalidStateError")return new I({message:"The authenticator was previously registered",code:"ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED",cause:e});if(e.name==="NotAllowedError")return new I({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="NotSupportedError")return n.pubKeyCredParams.filter(i=>i.type==="public-key").length===0?new I({message:'No entry in pubKeyCredParams was of type "public-key"',code:"ERROR_MALFORMED_PUBKEYCREDPARAMS",cause:e}):new I({message:"No available authenticator supported any of the specified pubKeyCredParams algorithms",code:"ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG",cause:e});if(e.name==="SecurityError"){let o=globalThis.location.hostname;if(xe(o)){if(n.rp.id!==o)return new I({message:`The RP ID "${n.rp.id}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new I({message:`${globalThis.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="TypeError"){if(n.user.id.byteLength<1||n.user.id.byteLength>64)return new I({message:"User ID was not between 1 and 64 characters",code:"ERROR_INVALID_USER_ID_LENGTH",cause:e})}else if(e.name==="UnknownError")return new I({message:"The authenticator was unable to process the specified options, or could not create a new credential",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return e}var et=class{constructor(){Object.defineProperty(this,"controller",{enumerable:true,configurable:true,writable:true,value:void 0});}createNewAbortSignal(){if(this.controller){let n=new Error("Cancelling existing WebAuthn API call for new one");n.name="AbortError",this.controller.abort(n);}let t=new AbortController;return this.controller=t,t.signal}cancelCeremony(){if(this.controller){let t=new Error("Manually cancelling existing WebAuthn API call");t.name="AbortError",this.controller.abort(t),this.controller=void 0;}}},ve=new et;var Sr=["cross-platform","platform"];function De(e){if(e&&!(Sr.indexOf(e)<0))return e}async function uo(e){!e.optionsJSON&&e.challenge&&(console.warn("startRegistration() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information."),e={optionsJSON:e});let{optionsJSON:t,useAutoRegister:n=false}=e;if(!Y())throw new Error("WebAuthn is not supported in this browser");let o={...t,challenge:$(t.challenge),user:{...t.user,id:$(t.user.id)},excludeCredentials:t.excludeCredentials?.map(Ce)},i={};n&&(i.mediation="conditional"),i.publicKey=o,i.signal=ve.createNewAbortSignal();let s;try{s=await navigator.credentials.create(i);}catch(u){throw co({error:u,options:i})}if(!s)throw new Error("Registration was not completed");let{id:r,rawId:a,response:c,type:m}=s,d;typeof c.getTransports=="function"&&(d=c.getTransports());let h;if(typeof c.getPublicKeyAlgorithm=="function")try{h=c.getPublicKeyAlgorithm();}catch(u){tt("getPublicKeyAlgorithm()",u);}let A;if(typeof c.getPublicKey=="function")try{let u=c.getPublicKey();u!==null&&(A=F(u));}catch(u){tt("getPublicKey()",u);}let b;if(typeof c.getAuthenticatorData=="function")try{b=F(c.getAuthenticatorData());}catch(u){tt("getAuthenticatorData()",u);}return {id:r,rawId:F(a),response:{attestationObject:F(c.attestationObject),clientDataJSON:F(c.clientDataJSON),transports:d,publicKeyAlgorithm:h,publicKey:A,authenticatorData:b},type:m,clientExtensionResults:s.getClientExtensionResults(),authenticatorAttachment:De(s.authenticatorAttachment)}}function tt(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 lo(){if(!Y())return nt.stubThis(new Promise(t=>t(false)));let e=globalThis.PublicKeyCredential;return e?.isConditionalMediationAvailable===void 0?nt.stubThis(new Promise(t=>t(false))):nt.stubThis(e.isConditionalMediationAvailable())}var nt={stubThis:e=>e};function po({error:e,options:t}){let{publicKey:n}=t;if(!n)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(t.signal instanceof AbortSignal)return new I({message:"Authentication ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else {if(e.name==="NotAllowedError")return new I({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="SecurityError"){let o=globalThis.location.hostname;if(xe(o)){if(n.rpId!==o)return new I({message:`The RP ID "${n.rpId}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new I({message:`${globalThis.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="UnknownError")return new I({message:"The authenticator was unable to process the specified options, or could not create a new assertion signature",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return e}async function fo(e){!e.optionsJSON&&e.challenge&&(console.warn("startAuthentication() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information."),e={optionsJSON:e});let{optionsJSON:t,useBrowserAutofill:n=false,verifyBrowserAutofillInput:o=true}=e;if(!Y())throw new Error("WebAuthn is not supported in this browser");let i;t.allowCredentials?.length!==0&&(i=t.allowCredentials?.map(Ce));let s={...t,challenge:$(t.challenge),allowCredentials:i},r={};if(n){if(!await lo())throw Error("Browser does not support WebAuthn autofill");if(document.querySelectorAll("input[autocomplete$='webauthn']").length<1&&o)throw Error('No <input> with "webauthn" as the only or last value in its `autocomplete` attribute was detected');r.mediation="conditional",s.allowCredentials=[];}r.publicKey=s,r.signal=ve.createNewAbortSignal();let a;try{a=await navigator.credentials.get(r);}catch(b){throw po({error:b,options:r})}if(!a)throw new Error("Authentication was not completed");let{id:c,rawId:m,response:d,type:h}=a,A;return d.userHandle&&(A=F(d.userHandle)),{id:c,rawId:F(m),response:{authenticatorData:F(d.authenticatorData),clientDataJSON:F(d.clientDataJSON),signature:F(d.signature),userHandle:A},type:h,clientExtensionResults:a.getClientExtensionResults(),authenticatorAttachment:De(a.authenticatorAttachment)}}var go={authenticate:e=>fo(e),register:e=>uo(e),errorCode:e=>e instanceof I?e.code:void 0};function ho(e){return `${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/consent`}async function ot(e){let t=await q(e,ho(e),{init:{method:"GET",credentials:"include"},maxResponseBytes:65536,decode:Tr});return t.response.status===401?{required:false}:W(t,"consent status")}async function it(e,t){if(!Number.isSafeInteger(t)||t<1)throw new TypeError("Consent version must be a positive integer.");return W(await q(e,ho(e),{init:{method:"POST",headers:{"content-type":"application/json"},credentials:"include",body:JSON.stringify({version:t})},maxResponseBytes:64*1024,decode:Er}),"consent accept")}function Tr(e){let t=f(e),n=T(t.required),o=Ir(t.needsConsent),i=yo(t.version),s=mo(t.termsUrl),r=mo(t.privacyUrl);return {required:n,...o===void 0?{}:{needsConsent:o},...i===void 0?{}:{version:i},...s===void 0?{}:{termsUrl:s},...r===void 0?{}:{privacyUrl:r}}}function Er(e){let t=f(e),n=yo(t.version);return {ok:T(t.ok),...n===void 0?{}:{version:n}}}function Ir(e){if(e===void 0||typeof e=="boolean")return e;throw new TypeError("Invalid consent response.")}function yo(e){if(e===void 0||Number.isSafeInteger(e)&&e>=1)return e;throw new TypeError("Invalid consent response.")}function mo(e){if(e===void 0||typeof e=="string"&&e.length<=4096)return e;throw new TypeError("Invalid consent response.")}var Pr=30;function Cr(e){return typeof e?.exp=="number"?e.exp:null}function xr(e){let t=e.split(".")[1];if(!t)return null;try{let n=t.replace(/-/g,"+").replace(/_/g,"/"),o=JSON.parse(atob(n));return typeof o=="object"&&o!==null?o:null}catch{return null}}function rt(e){let t=new Map;async function n(s={}){let r=s.template===void 0?null:s.template.trim().toLowerCase();if(r==="")throw new TypeError("Template missing");let a=r??"",c=t.get(a);c||(c={activeKey:null,cachedByKey:new Map,inflight:null,sequence:0},t.set(a,c));let m=s.forceRefresh===true;if(!m){let u=c.activeKey?c.cachedByKey.get(c.activeKey):null;if(u&&u.exp-Date.now()/1e3>Pr)return u.token;if(c.inflight)return c.inflight}let d=++c.sequence,h=()=>t.get(a)===c&&c.sequence===d,A=(async()=>{let u=r?`${e.projectBaseURL}/token/${encodeURIComponent(r)}`:`${e.projectBaseURL}/token`,p=await q(e,u,{init:{method:"GET",credentials:"include"},maxResponseBytes:64*1024,decode:O=>vr(O,r!==null)});if(p.response.status===401)return h()&&o(),null;let g=W(p,"token"),w=g.policyVersion,k=g.token,z=xr(k),V=Cr(z);if(h())if(V!==null){let O=typeof z?.sub=="string"?z.sub:null,E=typeof z?.org_id=="string"?z.org_id:null;if(!r||O){let y=JSON.stringify([e.projectBaseURL,O,E,r,w]);c.cachedByKey.clear(),c.cachedByKey.set(y,{token:k,exp:V}),c.activeKey=y;}else i(c);}else i(c);return k})();if(m)return A;let b=A.finally(()=>{c.inflight===b&&(c.inflight=null);});return c.inflight=b,b}function o(){t.clear();}function i(s){s.cachedByKey.clear(),s.activeKey=null;}return {getToken:n,clear:o}}function vr(e,t){let n=f(e),o=R(n.token);if(o.length===0||o.length>32*1024)throw new TypeError("Invalid token response.");if(!t)return {token:o,policyVersion:0};let i=f(n.template);if(!Number.isSafeInteger(i.policyVersion)||i.policyVersion<1)throw new TypeError("Invalid token response.");return {token:o,policyVersion:i.policyVersion}}function Dr(e){let t=rt(e),n=to(e,t.clear,(r,a)=>so(r,a,go)),o=se(e,`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}`),i=r=>(...a)=>(t.clear(),r(...a)),s={getConsentStatus:()=>ot(e),acceptConsent:r=>it(e,r),getToken:t.getToken,waitlist:{join:(r,a)=>o.request("/waitlist",{method:"POST",body:r,fetchOptions:a,credentials:"omit"})},account:{...n.account,updateUnsafeMetadata:i(n.account.updateUnsafeMetadata),updateProfile:i(n.account.updateProfile),changeEmail:i(n.account.changeEmail),changePassword:i(n.account.changePassword),revokeSession:i(n.account.revokeSession),delete:i(n.account.delete)},signIn:{email:i(n.signIn.email),username:i(n.signIn.username),social:i(n.signIn.social),sso:n.signIn.sso,magicLink:n.signIn.magicLink,emailOtp:i(n.signIn.emailOtp),passkey:i(n.signIn.passkey)},signUp:{email:i(n.signUp.email)},emailOtp:{...n.emailOtp,verifyEmail:i(n.emailOtp.verifyEmail)},twoFactor:{enable:n.twoFactor.enable,disable:i(n.twoFactor.disable),verifyTotp:i(n.twoFactor.verifyTotp),verifyBackupCode:i(n.twoFactor.verifyBackupCode),sendOtp:n.twoFactor.sendOtp,verifyOtp:i(n.twoFactor.verifyOtp),generateBackupCodes:n.twoFactor.generateBackupCodes},phoneOtp:{prepare:n.phoneOtp.prepare,start:n.phoneOtp.start,verify:i(n.phoneOtp.verify)},signOut:i(n.signOut)};return {...n,...s}}async function Ur(e){if(typeof window>"u")throw new Error("Akedly Shield challenges must be solved in a browser.");let t=await _r(),n=e.challengeRequired?await t.solvePow(e.challenge,e.difficulty):null,o=e.turnstile.required?await t.getTurnstileToken(zr(e.turnstile.siteKey)):void 0;return {connectionId:e.connectionId,...n?{challengeToken:e.challengeToken,nonce:n.nonce}:{},...o?{turnstileToken:o}:{}}}async function _r(){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 Nr(e){let n=`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/public-config`;return W(await q(e,n,{init:{method:"GET",credentials:"omit"},maxResponseBytes:256*1024,decode:o=>Lr(o,e)}),"public-config")}function Lr(e,t){let n=H(e),o=n.environmentId,i=n.environmentType,s=`${new URL(t.apiUrl).origin}/api/projects/${t.decoded.projectId}/auth`;if(typeof n.applicationId!="string"||!Fr(n.applicationId)||o!==t.decoded.projectId||i!=="development"&&i!=="production"||n.authBaseUrl!==s)throw M();let r=_(n.branding),a=_(n.legal);if(!st(n.enabledMethods,64)||!st(n.socialProviders,64)||!bo(r,["appName","logoUrl","primaryColor"])||r.showAppName!==void 0&&typeof r.showAppName!="boolean"||r.alignment!==void 0&&r.alignment!=="left"&&r.alignment!=="center"&&r.alignment!=="right"||r.theme!==void 0&&r.theme!=="light"&&r.theme!=="dark"&&r.theme!=="system"||!bo(a,["termsUrl","privacyUrl"])||!Number.isSafeInteger(a.version)||a.version<0||typeof a.required!="boolean")throw M();if(n.socialProviderClientIds!==void 0){let c=_(n.socialProviderClientIds);if(Object.keys(c).length>64||Object.values(c).some(m=>typeof m!="string"||m.length>2048))throw M()}if(!B(n,["requireEmailVerification","twoFactor","mfaRequired","accountDeletion","organizations","sso","badge"])||!Ao(n.turnstileSiteKey)||!Ao(n.authTurnstileSiteKey)||typeof n.locale!="string"||n.locale.length===0||n.locale.length>64||!Number.isSafeInteger(n.configVersion)||n.configVersion<0)throw M();if(n.jwtIssuer!==null){let c=_(n.jwtIssuer);if(c.issuer!==s||c.jwksUrl!==`${s}/jwks`||c.aud!==t.decoded.projectId)throw M()}if(n.signUp!==void 0){let c=_(n.signUp).mode;if(typeof c!="string"||!["open","restricted","allowlist","waitlist"].includes(c))throw M()}if(n.authentication!==void 0&&Mr(n.authentication),n.emailVerification!==void 0){let c=_(n.emailVerification);if(!B(c,["required"])||c.method!=="link"&&c.method!=="code")throw M()}if(n.userModel!==void 0&&!B(_(n.userModel),["requireEmail","firstLastName","emailChange","accountDeletion"]))throw M();if(n.mfa!==void 0){let c=_(n.mfa);if(!B(c,["totp","required","backupCodes"])||(c.required===true||c.backupCodes===true)&&c.totp!==true)throw M()}return n}function Fr(e){return /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e)}function M(){return new TypeError("public-config returned an invalid response")}function _(e){if(!e||typeof e!="object"||Array.isArray(e))throw M();return e}function Ao(e){return e===null||typeof e=="string"&&e.length<=4096}function Mr(e){let t=_(e),n=_(t.email),o=_(t.password),i=o.minLength!==void 0||o.maxLength!==void 0;if(!B(n,["signUp"])||!st(n.signIn,3)||n.signIn.some(s=>s!=="password"&&s!=="magic_link"&&s!=="email_otp")||!B(_(t.phone),["signUp","signIn"])||!B(o,["signUp","add"])||i&&(!Number.isSafeInteger(o.minLength)||!Number.isSafeInteger(o.maxLength)||o.minLength<1||o.maxLength>4096||o.minLength>o.maxLength)||!B(_(t.passkey),["signIn","add"])||!B(_(t.username),["collectOnSignUp","signIn"]))throw M()}function B(e,t){return t.every(n=>typeof e[n]=="boolean")}function bo(e,t){return t.every(n=>e[n]===void 0||typeof e[n]=="string"&&e[n].length<=4096)}function st(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 le=class extends Error{constructor(n,o){super(n);this.cause=o;this.name="AuthOwlError";}cause},at=class extends le{constructor(n,o){super(`Rate limited. Retry after ${n}s.`,o);this.retryAfterSeconds=n;this.name="RateLimitedError";}retryAfterSeconds},ct=class extends le{constructor(t="invalid publishable key",n){super(t,n),this.name="InvalidKeyError";}};var Oo=["en","ar"];function Vr(e){return e==="ar"?"rtl":"ltr"}function qr(e){return typeof e=="string"&&Oo.includes(e)}
3
- exports.AUTH_CHALLENGE_HEADER=Pt;exports.AuthOwlError=le;exports.AuthOwlHttpError=fe;exports.InvalidKeyError=ct;exports.LOCALES=Oo;exports.RateLimitedError=at;exports.TransportError=D;exports.acceptConsent=it;exports.createAuthOwlClient=Dr;exports.createIdempotencyKey=He;exports.createMembershipHas=bi;exports.createTokenClient=rt;exports.decodePublishableKey=Ue;exports.directionFor=Vr;exports.getConsentStatus=ot;exports.getPublicConfig=Nr;exports.isLocale=qr;exports.membershipHas=ye;exports.membershipHasPermission=he;exports.membershipHasTeam=Nt;exports.resolveConfig=Ho;exports.resolveProjectCapabilities=Ko;exports.sessionCookieName=To;exports.solvePhoneOtpChallenge=Ur;
1
+ 'use strict';var ko=Object.defineProperty;var ut=(e,t)=>()=>(e&&(t=e(e=0)),t);var Ro=(e,t)=>{for(var n in t)ko(e,n,{get:t[n],enumerable:true});};function ae(){return typeof window<"u"&&typeof document<"u"&&typeof crypto<"u"&&typeof crypto.subtle?.digest=="function"}var qe=ut(()=>{});var Ie={};Ro(Ie,{beginCrossSiteSignIn:()=>mr,challengeFor:()=>$n,completeCrossSiteSignIn:()=>hr,takeHandoffCode:()=>Xn});function Wn(e){let t="";for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function $n(e){let t=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e));return Wn(new Uint8Array(t))}function pr(){return Wn(crypto.getRandomValues(new Uint8Array(ur)))}function Yn(e,t){let n=window.location.protocol==="https:"?"; Secure":"";document.cookie=`${Gn}=${e}; Path=/; Max-Age=${t}; SameSite=Lax${n}`;}function fr(){for(let e of document.cookie.split(";")){let t=e.indexOf("=");if(!(t<0)&&e.slice(0,t).trim()===Gn)return e.slice(t+1).trim()||null}return null}function gr(){Yn("",0);}function Jn(e){return new URL(e,window.location.href).toString()}async function mr(e,t){let n=t.callbackURL?Jn(t.callbackURL):null;if(n&&new URL(n).origin!==window.location.origin)return null;let o=pr(),i=new URL(`${e.projectBaseURL}/session/start`);if(i.searchParams.set("pk",e.publishableKey),i.searchParams.set("kind",t.kind),t.kind==="social")i.searchParams.set("provider",t.provider),t.scopes?.length&&i.searchParams.set("scopes",t.scopes.join(",")),t.loginHint&&i.searchParams.set("loginHint",t.loginHint),t.requestSignUp!==void 0&&i.searchParams.set("requestSignUp",t.requestSignUp?"1":"0");else for(let r of dr){let a=t[r];a&&i.searchParams.set(r,a);}let s=`${window.location.origin}${window.location.pathname}${window.location.search}`;i.searchParams.set("cb",n??s);for(let[r,a]of [["err",t.errorCallbackURL],["new",t.newUserCallbackURL]])a&&i.searchParams.set(r,Jn(a));return i.searchParams.set("challenge",await $n(o)),Yn(o,lr),i.toString()}function Xn(){if(typeof window>"u")return null;let e=window.location.hash;if(!e.includes(Ze))return null;let t=new URLSearchParams(e.replace(/^#/,"")),n=t.get(Ze);if(!n)return null;t.delete(Ze);let o=t.toString();return window.history.replaceState(window.history.state,"",`${window.location.pathname}${window.location.search}${o?`#${o}`:""}`),n}async function hr(e,t){if(!ae())return false;let n=Xn();if(!n)return false;let o=fr();if(gr(),!o)return false;t.beginSession({remember:true});let{error:i}=await e.request("/session/exchange",{method:"POST",body:{code:n,verifier:o}});return i===null}var Gn,Ze,ur,lr,dr,Pe=ut(()=>{qe();Gn="authowl_handoff_verifier",Ze="authowl_code",ur=32,lr=900,dr=["email","providerId","domain","organizationSlug"];});var So=/^(pk_(live|test))_([0-9a-f-]{36})_([A-Za-z0-9]{20,})$/i,To=/^sk_/i;function Ue(e){if(typeof e!="string"||e.length===0)throw new Error("publishableKey is required");if(To.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=So.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 Eo(e,t){let n=`p_${e.toLowerCase().replace(/-/g,"")}`;return `${t?.secure?"__Secure-":""}${n}.session_token`}var lt=/^http:\/\/(?:(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*localhost|127\.0\.0\.1|\[::1\])(?::\d+)?(?:\/|$)/i;function _e(e,t){throw new Error(`${e}: ${t}`)}function dt(e,t){let n;try{n=new URL(String(e));}catch{throw new TypeError("Transport URL must be absolute.")}if(n.username||n.password||n.hash)throw new TypeError("Transport URL must not contain credentials or a fragment.");let o=n.toString();if(n.protocol!=="https:"&&!(n.protocol==="http:"&&t.allowHttpLoopback&&lt.test(o)))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))&&_e("apiUrl","origin required");let n;try{n=new URL(e);}catch{_e("apiUrl","origin required");}return n.protocol==="http:"&&(!t.allowHttpLoopback||!lt.test(e))&&_e("apiUrl","HTTPS required except exact loopback"),n.origin}function X(e,t){try{return e?.getItem(t)??null}catch{return null}}function Q(e,t,n){try{n===null?e?.removeItem(t):e?.setItem(t,n);}catch{}}function Z(){try{return globalThis.localStorage}catch{return}}function G(){try{return globalThis.sessionStorage}catch{return}}var Io="authowl.session-challenge",Po=e=>`${Io}.${e}`,Co="set-auth-challenge",ft="x-authowl-challenge",mt="INVALID_TWO_FACTOR_COOKIE",xo=2048,pe=e=>e!==null&&e.length<=xo,gt=/^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/;function vo(e){let t=[];for(let n of e.split(";")){let o=n.trimStart(),i=o.indexOf("=");i<=0||t.push([o.slice(0,i).trimEnd(),o.slice(i+1)]);}return t}function ht(e){let t=Po(e),n=new Map;function o(){return n.size===0?null:[...n].map(([a,c])=>`${a}=${c}`).join("; ")}function i(){let a=o();Q(G(),t,pe(a)?a:null);}function s(a){for(let[c,m]of vo(a))gt.test(c)&&(m===""?n.delete(c):gt.test(m)&&n.set(c,m));}let r=X(G(),t);return pe(r)&&s(r),{presentOn(a){let c=o();a.delete(ft),pe(c)&&a.set(ft,c);},observe(a){let c=a.get(Co);pe(c)&&(s(c),i());},clear(){n.clear(),i();}}}var Do="authowl.session-token",Uo="authowl.cookie-transport",At="ok",bt="bearer",_o=e=>`${Do}.${e}`,No=e=>`${Uo}.${e}`,zo="set-auth-token",Lo="x-authowl-session-transport",Fo="bearer";function Mo(e){return e===At?"cookies":e===bt?"bearer":"unknown"}function Vo(e){return e==="cookies"?At:e==="bearer"?bt:null}function qo(e){let t=_o(e),n=No(e),o=ht(e),i=null,s=false,r=null,a=Mo(X(Z(),n)),c=()=>a==="unknown",m=0,d=null,h=false;function A(){let y=X(G(),t);if(y!==null)return s=true,y;let x=X(Z(),t);return x!==null?(s=false,x):null}i=A(),i!==null&&c()&&(h=true);function b(){if(!(!h||!d)){h=false;try{d();}catch{}}}function u(){let y=a==="bearer"?i:null,[x,de]=s?[G(),Z()]:[Z(),G()];Q(de,t,null),Q(x,t,y);}function p(y){y!==null&&r!==null&&(s=r,r=null),i=y,u(),y!==null&&c()&&(h=true,b());}function g(y){a=y,Q(Z(),n,Vo(y));}function w(){g("unknown"),h=false;}function k(){return i===null&&(i=A()),i}function N(){let y=A();return y!==null&&(i=y),i}function V(y){N()===y&&u();}function O(){m+=1,r=null,s=false,p(null),o.clear(),w();}let E=()=>a!=="cookies";return {hasToken:()=>k()!==null,declareOn(y){if(y.has("authorization"))return false;let x=k();return !x&&!E()?false:(x&&y.set("authorization",`Bearer ${x}`),y.set(Lo,Fo),o.presentOn(y),true)},wantsToken:E,needsProbe:c,observe(y){let x=y.get(zo);x&&p(x),o.observe(y);},dropChallenge:o.clear,measureWith(y){d=y,b();},beginRead(){let y=k(),x=m;return {carriedToken:y!==null,endIfDead(){y!==null&&N()===y&&m===x&&O();},recordCookieVerdict(de){if(m===x&&c()){if(g(de?"cookies":"bearer"),de){p(null);return}V(y);}}}},beginSession({remember:y}){m+=1,r=!y,o.clear(),w();},endSession:O}}var yt=new Map;function Ot(e){let t=yt.get(e);if(t)return t;let n=qo(e);return yt.set(e,n),n}function Ho(e,t){return t?.headers?new Headers(t.headers):typeof e=="object"&&e!==null&&"headers"in e?new Headers(e.headers):new Headers}function wt(e,t){let n=Ot(e),o=(r,a)=>(t??globalThis.fetch)(r,a);return {fetch:async(r,a)=>{if(a?.credentials==="omit"||!n.wantsToken())return o(r,a);let c=Ho(r,a),m=n.declareOn(c),d=await o(r,{...a,headers:c});return m&&n.observe(d.headers),d},probe:o,tokens:n}}function Ko(e){if(!e||typeof e!="object")throw new Error("AuthConfig is required");let t=Ue(e.publishableKey),n=pt(e.apiUrl,{allowHttpLoopback:t.env==="test"}),o=`${n}/api/projects/${t.projectId}/auth`,{fetch:i,...s}=wt(t.projectId,e.fetch);return {...e,apiUrl:n,decoded:t,projectBaseURL:o,fetch:i,session:s}}function Bo(e){let t=e?.enabledMethods??["password"],n=t.includes("password"),o=t.includes("passkey"),i=e?.authentication,s=e?.mfa;return {emailSignUp:i?.email.signUp??t.some(r=>r==="password"||r==="magic_link"||r==="email_otp"),passwordSignUp:i?.password.signUp??n,phoneSignUp:i?.phone.signUp??t.includes("phone_otp"),passwordSignIn:i?.email.signIn.includes("password")??n,passwordMinLength:i?.password.minLength??8,passwordMaxLength:i?.password.maxLength??128,magicLinkSignIn:i?.email.signIn.includes("magic_link")??t.includes("magic_link"),emailOtpSignIn:i?.email.signIn.includes("email_otp")??t.includes("email_otp"),phoneSignIn:i?.phone.signIn??t.includes("phone_otp"),usernameSignIn:i?.username.signIn??false,collectUsername:i?.username.collectOnSignUp??false,passkeySignIn:i?.passkey.signIn??o,passkeyAdd:i?.passkey.add??o,firstLastName:e?.userModel?.firstLastName??false,emailChange:e===null?false:e.userModel?.emailChange??true,accountDeletion:e?.userModel?.accountDeletion??e?.accountDeletion??false,emailVerificationRequired:e?.emailVerification?.required??e?.requireEmailVerification??false,emailVerificationMethod:e?.emailVerification?.method??"link",totp:s?.totp??e?.twoFactor??false,mfaRequired:s?.required??e?.mfaRequired??false,backupCodes:s?.backupCodes??e?.twoFactor??false,legacyNameField:e?.authentication===void 0}}var jo=1e4,Jo=1024*1024,D=class extends Error{kind;requestId;constructor(t,n){super(ei(t)),this.name="TransportError",this.kind=t,this.requestId=n;}},St=new WeakSet;function U(e,t){let n=new D(e,t);return St.add(n),n}async function Tt({fetchImpl:e,url:t,init:n={},timeoutMs:o=jo,maxResponseBytes:i=Jo,allowHttpLoopback:s=false,decode:r}){Rt(o,"timeoutMs"),Rt(i,"maxResponseBytes");let a=dt(t,{allowHttpLoopback:s}),c=n.signal,m=new AbortController,d=null,h,A=new Promise(g=>{h=g;}),b=g=>{d===null&&(d=g,h({type:"abort",kind:g}),m.abort());},u=()=>b("aborted");c?.addEventListener("abort",u,{once:true});let p=setTimeout(()=>b("timeout"),o);c?.aborted&&u();try{if(d!==null)throw U(d);let g;try{g=await Promise.race([e(a.toString(),{...n,redirect:"error",signal:m.signal}).then(E=>({type:"response",response:E})),A]);}catch{throw U(d??"network")}if(g.type==="abort")throw U(g.kind);if(!Go(g.response))throw U("invalid_response");let w=g.response,k=Zo(w.headers),N=await Wo(w,i,A,()=>d,k),V=Xo(w,N,k),O;try{O=w.ok&&r?r(V,Object.freeze({status:w.status})):V;}catch{throw U("invalid_response",k)}return {response:w,data:O,...k===void 0?{}:{requestId:k}}}catch(g){throw g instanceof D&&St.has(g)?g:U(d??"network")}finally{clearTimeout(p),c?.removeEventListener("abort",u);}}function Go(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 Wo(e,t,n,o,i){let s=e.headers.get("content-length");if(s!==null){if(!/^\d+$/.test(s))throw kt(e.body),U("invalid_response",i);if(Number(s)>t)throw kt(e.body),U("response_too_large",i)}if(!e.body)return "";let r;try{r=e.body.getReader();}catch{throw U("network",i)}let a=[],c=0,m=null;try{for(;;){let A;try{A=await Promise.race([r.read(),n]);}catch{m=U(o()??"network",i);break}if($o(A)){m=U(A.kind,i);break}let{done:b,value:u}=A;if(b)break;if(u.byteLength!==0){if(c+=u.byteLength,c>t){m=U("response_too_large",i);break}a.push(u);}}}finally{m&&Yo(r);try{r.releaseLock();}catch{}}if(m)throw m;let d=new Uint8Array(c),h=0;for(let A of a)d.set(A,h),h+=A.byteLength;try{return new TextDecoder("utf-8",{fatal:!0}).decode(d)}catch{throw U("invalid_response",i)}}function $o(e){return "type"in e&&e.type==="abort"}function kt(e){if(e)try{e.cancel().catch(()=>{});}catch{}}function Yo(e){try{e.cancel().catch(()=>{});}catch{}}function Xo(e,t,n){if(e.status===204||e.status===205)return null;let o=Qo(e.headers.get("content-type"));if(!e.ok&&(!o||t.length===0))return null;if(!o||t.length===0)throw U("invalid_response",n);try{return JSON.parse(t)}catch{if(!e.ok)return null;throw U("invalid_response",n)}}function Qo(e){if(e===null)return false;let t=e.split(";",1)[0]?.trim().toLowerCase();return t==="application/json"||t?.endsWith("+json")===true}function Zo(e){let t=e.get("x-request-id")?.trim();if(!(!t||t.length>256||!/^[A-Za-z0-9._:-]+$/.test(t)))return t}function Rt(e,t){if(!Number.isInteger(e)||e<=0)throw new TypeError(`${t} must be a positive integer.`)}function ei(e){switch(e){case "aborted":return "The request was cancelled.";case "timeout":return "The request timed out.";case "response_too_large":return "The response exceeded the allowed size.";case "invalid_response":return "The service returned an invalid response.";case "network":return "The network request could not be completed."}}var fe=class extends Error{status;requestId;constructor(t,n,o){super(`${t} request failed with status ${n.status}.`),this.name="AuthOwlHttpError",this.status=n.status,this.requestId=o;}};function q(e,t,n={}){let o=new Headers(n.init?.headers);return o.set("x-publishable-key",e.publishableKey),Tt({fetchImpl:e.fetch,url:t,init:{...n.init,headers:o},allowHttpLoopback:e.decoded.env==="test",...n.timeoutMs===void 0?{}:{timeoutMs:n.timeoutMs},...n.maxResponseBytes===void 0?{}:{maxResponseBytes:n.maxResponseBytes},...n.decode===void 0?{}:{decode:n.decode}})}function W(e,t){if(!e.response.ok)throw new fe(t,e.response,e.requestId);return e.data}var Pt="x-authowl-turnstile-token",ti=1e4,ni=32,oi=2e4;function ee(e,t){return {post:(n,o,i,s)=>e.request(n,{method:"POST",body:o,fetchOptions:i,decode:s}),mutation:async(n,o)=>{let i=await n;return i.error===null&&(o===void 0||i.data!==null&&o(i.data))&&t(),i}}}function se(e,t=e.projectBaseURL){return {async request(n,o={}){let i=si(t,n,o.query),s=o.method??(o.body===void 0?"GET":"POST"),r=new Headers(o.fetchOptions?.headers);o.fetchOptions?.authChallengeToken&&r.set(Pt,o.fetchOptions.authChallengeToken),o.body!==void 0&&r.set("content-type","application/json");let a={method:s,headers:r,credentials:o.credentials??"include",...o.body===void 0?{}:{body:JSON.stringify(o.body)}},c=Object.freeze({method:s,path:n});await o.fetchOptions?.onRequest?.(c);let m=ri(s,o.fetchOptions),d;try{d=await ii(e,i,{...a,signal:o.fetchOptions?.signal},m);}catch(g){let w=It(g);return await o.fetchOptions?.onError?.(Ne(c,w,ui(g))),{data:null,error:w}}let{response:h,requestId:A}=d,b=pi(n,d.data),u=b;if(h.ok)try{u=Le(b),o.decode&&(u=o.decode(u));}catch{let g=It(new D("invalid_response",A));return await o.fetchOptions?.onError?.(Ne(c,g,"invalid_response")),{data:null,error:g}}let p=Object.freeze({...c,status:h.status,...A===void 0?{}:{requestId:A}});if(await o.fetchOptions?.onResponse?.(p),!h.ok){let g=ai(h,b,A);return g.code===mt&&e.session.tokens.dropChallenge(),await o.fetchOptions?.onError?.(Ne(c,g,"api")),{data:null,error:g}}return await o.fetchOptions?.onSuccess?.(p),{data:u,error:null}}}}async function ii(e,t,n,o){let i=Date.now()+ti;for(let s=0;s<o;s+=1){let r=i-Date.now();if(r<=0)throw new D("timeout");try{let a=await q(e,t,{init:n,timeoutMs:Math.max(1,Math.ceil(r))});if(a.response.status<500||s===o-1)return a}catch(a){if(s===o-1||!(a instanceof D)||a.kind!=="network")throw a}await li(50*2**s,n.signal,i);}throw new D("network")}function ri(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 si(e,t,n){let o=new URL(`${e}${t.startsWith("/")?t:`/${t}`}`);for(let[i,s]of Object.entries(n??{}))s!==void 0&&o.searchParams.set(i,String(s));return o.toString()}function ai(e,t,n){let o=re(t)?t:{},i=ci(o,e.headers);return {status:e.status,statusText:e.statusText,code:typeof o.code=="string"?o.code:void 0,...n===void 0?{}:{requestId:n},...typeof o.current_version=="number"?{currentVersion:o.current_version}:{},...i!==void 0?{retryAfterSeconds:i}:{},message:typeof o.message=="string"?o.message:typeof o.error=="string"?o.error:typeof o.detail=="string"?o.detail:e.statusText||"Request failed"}}function ci(e,t){let n=(typeof e.retryAfterSeconds=="number"&&Number.isFinite(e.retryAfterSeconds)?e.retryAfterSeconds:void 0)??Et(t.get("retry-after"))??Et(t.get("x-retry-after"));if(n!==void 0)return Math.min(Math.max(Math.trunc(n),1),86400)}function Et(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 It(e){let t=e instanceof D?e.kind:"network";return {status:0,...{aborted:{statusText:"ABORTED",code:"REQUEST_ABORTED",message:"The request was cancelled."},timeout:{statusText:"TIMEOUT",code:"REQUEST_TIMEOUT",message:"The request timed out."},response_too_large:{statusText:"INVALID_RESPONSE",code:"RESPONSE_TOO_LARGE",message:"The service response was too large."},invalid_response:{statusText:"INVALID_RESPONSE",code:"INVALID_RESPONSE",message:"The service returned an invalid response."},network:{statusText:"FETCH_ERROR",code:"FETCH_ERROR",message:"Network request failed."}}[t],...e instanceof D&&e.requestId?{requestId:e.requestId}:{}}}function Ne(e,t,n){return Object.freeze({...e,status:t.status??0,...t.requestId===void 0?{}:{requestId:t.requestId},failure:n})}function ui(e){return e instanceof D?e.kind:"network"}function li(e,t,n){return new Promise((o,i)=>{if(t?.aborted){i(new D("aborted"));return}let s=n-Date.now();if(s<=0){i(new D("timeout"));return}let r=Math.min(e,s),a=()=>{clearTimeout(c),i(new D("aborted"));},c=setTimeout(()=>{t?.removeEventListener("abort",a),Date.now()>=n?i(new D("timeout")):o();},r);t?.addEventListener("abort",a,{once:true}),t?.aborted&&a();})}function Le(e,t="",n=0,o={nodes:0}){if(o.nodes+=1,n>ni||o.nodes>oi)throw new Error("response traversal limit exceeded");if(typeof e=="string"&&/^(?:createdAt|updatedAt|expiresAt)$/.test(t)){let i=new Date(e);return Number.isNaN(i.getTime())?e:i}return Array.isArray(e)?e.map(i=>Le(i,"",n+1,o)):re(e)?Object.fromEntries(Object.entries(e).map(([i,s])=>[i,di(i)?s:Le(s,i,n+1,o)])):e}function di(e){return e==="metadata"||e==="public_metadata"||e==="unsafe_metadata"||e==="private_metadata"||e==="publicMetadata"||e==="unsafeMetadata"||e==="privateMetadata"}function pi(e,t){if(e==="/list-sessions"&&Array.isArray(t))return t.map(i=>re(i)?ze(i):i);if(!re(t))return t;let o=e==="/change-password"||e==="/passkey/verify-authentication"||e==="/phone-otp/verify"||e==="/sign-up/email"||e.startsWith("/sign-in/")||e.startsWith("/two-factor/verify-")?ze(t):t;return e==="/sign-up/email"&&!("sessionCreated"in o)&&(o={...o,sessionCreated:typeof t.token=="string"&&t.token.length>0}),(e==="/get-session"||e==="/passkey/verify-authentication")&&re(o.session)&&(o={...o,session:ze(o.session)}),o}function ze(e){if(!Object.hasOwn(e,"token"))return e;let t={...e};return delete t.token,t}function re(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}var fi=new Set(["__proto__","constructor","prototype"]);function f(e){(!e||typeof e!="object"||Array.isArray(e))&&l();let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null&&l(),e}function R(e){return typeof e!="string"&&l(),e}function T(e){return typeof e!="boolean"&&l(),e}function C(e){return (!(e instanceof Date)||Number.isNaN(e.getTime()))&&l(),e}function ge(e){return (!Array.isArray(e)||!e.every(t=>typeof t=="string"))&&l(),[...e]}function P(e,t){let n=e[t];return n==null||typeof n=="string"?n:l()}function Ct(e,t){let n=e[t];return n==null||typeof n=="boolean"?n:l()}function L(e){let t=f(e),n=t.email;return n!==null&&typeof n!="string"&&l(),{id:R(t.id),email:n,emailVerified:T(t.emailVerified),createdAt:C(t.createdAt),updatedAt:C(t.updatedAt),...z("phoneNumber",P(t,"phoneNumber")),...z("username",P(t,"username")),...z("displayUsername",P(t,"displayUsername")),...z("firstName",P(t,"firstName")),...z("lastName",P(t,"lastName")),...z("name",P(t,"name")),...z("image",P(t,"image")),...z("twoFactorEnabled",Ct(t,"twoFactorEnabled"))}}function me(e){let t=f(e),n=t.membership;return {id:R(t.id),userId:R(t.userId),expiresAt:C(t.expiresAt),...z("activeOrganizationId",P(t,"activeOrganizationId")),...z("activeTeamId",P(t,"activeTeamId")),...z("membership",n==null?n:gi(n)),...z("pendingMfaEnrollment",Ct(t,"pendingMfaEnrollment"))}}function l(){throw new TypeError("AuthOwl response does not match its runtime contract.")}function H(e,t=20,n=1e4){return (!e||typeof e!="object"||Array.isArray(e))&&l(),Me(e,t,n)}function Me(e,t=20,n=1e4){return Fe(e,0,{nodes:0},t,n)}function gi(e){let t=f(e);return {role:R(t.role),permissions:ge(t.permissions),...t.teams===void 0?{}:{teams:ge(t.teams)}}}function Fe(e,t,n,o,i){if(n.nodes+=1,(t>o||n.nodes>i)&&l(),e===null||typeof e=="string"||typeof e=="boolean")return e;if(typeof e=="number")return Number.isFinite(e)||l(),e;if(Array.isArray(e))return e.map(a=>Fe(a,t+1,n,o,i));(!e||typeof e!="object")&&l();let s=Object.getPrototypeOf(e);s!==Object.prototype&&s!==null&&l();let r={};for(let[a,c]of Object.entries(e))fi.has(a)&&l(),r[a]=Fe(c,t+1,n,o,i);return r}function z(e,t){return t===void 0?{}:{[e]:t}}function xt({http:e,probe:t,tokens:n,channelName:o}){let i=new Set,s=null,r=null,a=null,c=null,m=null,d,h=O=>{u(O);};d={data:null,isPending:true,isRefetching:false,error:null,refetch:h};function A(O){d=O;for(let E of i)E();}async function b(O){return e.request("/get-session",{query:O?.query,decode:Ve})}function u(O){if(O?.query?.disableCookieCache===true)return p(O);if(c)return c;let E=p(O).finally(()=>{c===E&&(c=null);});return c=E,E}async function p(O){a?.abort();let E=new AbortController;a=E,A({...d,isPending:d.data===null&&d.error===null,isRefetching:d.data!==null});let y=n.beginRead(),x=await e.request("/get-session",{query:O?.query,fetchOptions:{signal:E.signal},decode:Ve});if(a===E&&(a=null,A({data:x.data,error:x.error,isPending:false,isRefetching:false,refetch:h}),x.error===null)){if(x.data===null){y.endIfDead();return}await g(y);}}async function g(O){if(n.needsProbe()){if(!O.carriedToken){O.recordCookieVerdict(true);return}return m||w(O)}}function w(O){let E=t.request("/get-session",{query:{disableCookieCache:true},decode:Ve}).then(y=>{m===E&&y.error===null&&O.recordCookieVerdict(y.data!==null);}).finally(()=>{m===E&&(m=null);});return m=E,E}function k(){s?.postMessage({type:"session-changed"});}function N(){if(typeof window>"u"||r)return;let O=()=>{u();},E=()=>{document.visibilityState==="visible"&&u();};window.addEventListener("focus",O),document.addEventListener("visibilitychange",E),typeof BroadcastChannel<"u"&&(s=new BroadcastChannel(o),s.addEventListener("message",O)),r=()=>{window.removeEventListener("focus",O),document.removeEventListener("visibilitychange",E),s?.close(),s=null,r=null;};}function V(O){return i.add(O),i.size===1&&(N(),u()),()=>{i.delete(O),i.size===0&&(a?.abort(),a=null,r?.());}}return n.measureWith(()=>{n.needsProbe()&&w(n.beginRead());}),{store:{subscribe:V,getSnapshot:()=>d},getSession:b,notifyMutation(){k(),m&&m.catch(()=>{}).then(()=>{!n.needsProbe()&&n.hasToken()&&k();}),i.size>0&&u({query:{disableCookieCache:true}});}}}function Ve(e){if(e===null)return null;let t=f(e);return (t.session===void 0||t.user===void 0)&&l(),{session:me(t.session),user:L(t.user)}}qe();function He(){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 vt(e,t){return e.request("/user/metadata",{fetchOptions:t,decode:Ut})}async function Dt(e,t,n){return e.request("/user/metadata",{method:"PATCH",body:{expected_version:t.expectedVersion,unsafe_metadata:t.unsafeMetadata},fetchOptions:n,decode:Ut})}function Ut(e){let t=f(e),n=H(t.public_metadata),o=H(t.unsafe_metadata);if(!Number.isSafeInteger(t.metadata_version)||t.metadata_version<0)throw new TypeError("Invalid AuthOwl metadata response");return {publicMetadata:n,unsafeMetadata:o,metadataVersion:t.metadata_version}}function Nt(e,t){let{post:n,mutation:o}=ee(e,t);return {getMetadata:i=>vt(e,i),updateUnsafeMetadata:(i,s)=>Dt(e,i,s),updateProfile:(i,s)=>o(n("/update-user",i,s,ce)),changeEmail:(i,s)=>o(n("/change-email",i,s,ce)),changePassword:(i,s)=>o(n("/change-password",i,s,mi)),listSessions:i=>e.request("/list-sessions",{fetchOptions:i,decode:hi}),revokeSession:({sessionId:i},s)=>o(n("/revoke-session",{sessionId:i},s,ce)),revokeOtherSessions:i=>o(n("/revoke-other-sessions",{},i,ce)),listSocialAccounts:async i=>{let s=await e.request("/list-accounts",{fetchOptions:i,decode:yi});if(!s.data)return {data:null,error:s.error};let r=s.data.length>1;return {...s,data:s.data.filter(a=>a.providerId!=="credential").map(a=>({...a,canUnlink:r}))}},linkSocial:(i,s)=>n("/link-social",i,s,Ai),unlinkSocial:(i,s)=>o(n("/unlink-account",i,s,ce)),delete:(i={},s)=>o(n("/delete-user",i,s,bi))}}function ce(e){let t=f(e);return {status:T(t.status)}}function mi(e){let t=f(e);return {user:L(t.user)}}function hi(e){return Array.isArray(e)||l(),e.map(t=>{let n=f(t);return {id:R(n.id),userId:R(n.userId),createdAt:C(n.createdAt),updatedAt:C(n.updatedAt),expiresAt:C(n.expiresAt),..._t("ipAddress",P(n,"ipAddress")),..._t("userAgent",P(n,"userAgent"))}})}function yi(e){return Array.isArray(e)||l(),e.map(t=>{let n=f(t);return {id:R(n.id),userId:R(n.userId),providerId:R(n.providerId),accountId:R(n.accountId),scopes:ge(n.scopes),createdAt:C(n.createdAt),updatedAt:C(n.updatedAt)}})}function Ai(e){let t=f(e);return {url:R(t.url),redirect:T(t.redirect)}}function bi(e){let t=f(e);return {success:T(t.success),message:R(t.message)}}function _t(e,t){return t===void 0?{}:{[e]:t}}function he(e,t){return !e||!t?false:e.permissions.includes(t)}function zt(e,t){return !e||!t?false:e.teams?.includes(t)??false}function ye(e,t){if(!e)return false;let{role:n,permission:o,teamId:i}=t;return !(n===void 0&&o===void 0&&i===void 0||n!==void 0&&e.role!==n||o!==void 0&&!e.permissions.includes(o)||i!==void 0&&!zt(e,i))}function Oi(e){return {has:t=>ye(e,t),hasPermission:t=>he(e,t.permission)}}var wi=new Set(["pending","accepted","rejected","canceled"]),Lt=1e4;function te(e,t,n){let o=f(e),i={id:S(o.id),name:S(o.name),slug:S(o.slug),createdAt:C(o.createdAt),...Ae("logo",P(o,"logo")),...Ae("metadata",o.metadata===void 0?void 0:Me(o.metadata))};return j(i.id,t),j(i.slug,n),i}function Ft(e){return J(e,te)}function Ke(e,t,n){return e===null?null:(t===null&&l(),te(e,t,n))}function Mt(e,t,n){if(e===null)return null;let o=f(e),i=te(o,t,n);return {...i,members:J(o.members,s=>Qt(s,i.id)),invitations:J(o.invitations,s=>K(s,void 0,i.id))}}function Vt(e,t){let n=J(e,o=>Xt(o));return be(n.map(o=>o.organizationId),t),n}function qt(e,t,n){return e===null?null:(t===null&&l(),Xt(e,t,n))}function Ht(e,t){let n=f(e);return (!Number.isSafeInteger(n.total)||n.total<0)&&l(),{members:ki(n.members,t),total:n.total}}function K(e,t,n){let o=f(e),i=S(o.status);wi.has(i)||l();let s={id:S(o.id),organizationId:S(o.organizationId),email:S(o.email),role:S(o.role),status:i,inviterId:S(o.inviterId),expiresAt:C(o.expiresAt),createdAt:C(o.createdAt)};return j(s.id,t),j(s.organizationId,n),s}function Kt(e,t){let n=J(e,o=>K(o));return be(n.map(o=>o.organizationId),t),n}function Bt(e){return J(e,t=>{let n=f(t);return {...K(n),organizationName:S(n.organizationName)}})}function jt(e,t){let n=f(e);return {...K(n,t),organizationName:S(n.organizationName),organizationSlug:S(n.organizationSlug),inviterEmail:S(n.inviterEmail)}}function Jt(e,t){let n=f(e),o=K(n.invitation,t);return {invitation:o,member:ne(n.member,void 0,o.organizationId)}}function Gt(e,t){let n=f(e);return n.member!==null&&l(),{invitation:n.invitation===null?null:K(n.invitation,t),member:null}}function Wt(e,t){return e===null?null:K(e,t)}function $t(e,t,n){let o=f(e);return {member:ne(o.member,n,t)}}function ne(e,t,n){let o=f(e),i={id:S(o.id),organizationId:S(o.organizationId),userId:S(o.userId),role:S(o.role),createdAt:C(o.createdAt),...o.user===void 0?{}:{user:Zt(o.user)}};return j(i.id,t),j(i.organizationId,n),i}function Yt(e,t){let n=J(e,o=>{let i=f(o);return {organizationId:S(i.organizationId),data:{role:S(i.role),...Ae("permission",i.permission===void 0?void 0:Ri(i.permission))}}});return be(n.map(o=>o.organizationId),t),n.map(o=>o.data)}function Xt(e,t,n){let o=f(e),i=o.updatedAt,s={id:S(o.id),name:S(o.name),organizationId:S(o.organizationId),createdAt:C(o.createdAt),...i===void 0?{}:{updatedAt:C(i)}};return j(s.id,t),j(s.organizationId,n),s}function Qt(e,t){let n=f(e);return {...ne(n,void 0,t),user:Zt(n.user)}}function ki(e,t){let n=J(e,o=>Qt(o));return be(n.map(o=>o.organizationId),t),n}function Ri(e){let t=f(e),n={};for(let[o,i]of Object.entries(t))(o==="__proto__"||o==="constructor"||o==="prototype"||o.length===0||o.length>Lt||!Array.isArray(i))&&l(),n[o]=i.map(s=>S(s));return n}function S(e){let t=R(e);return (t.length===0||t.length>Lt)&&l(),t}function j(e,t){t!==void 0&&e!==t&&l();}function be(e,t){let n=t??e[0];n!==void 0&&e.some(o=>o!==n)&&l();}function Zt(e){let t=f(e);return {id:S(t.id),name:S(t.name),email:S(t.email),...Ae("image",P(t,"image"))}}function J(e,t){return Array.isArray(e)||l(),e.map(n=>t(n))}function Ae(e,t){return t===void 0?{}:{[e]:t}}function en(e,t,n=()=>null){let{post:o,mutation:i}=ee(e,t),s=(r,a,c,m)=>e.request(r,{query:a,fetchOptions:c,decode:m});return {create:(r,a)=>i(o("/organization/create",r,a,te)),list:r=>s("/organization/list",void 0,r,Ft),get:(r={},a)=>s("/organization/get-full-organization",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,membersLimit:r.membersLimit},a,c=>Mt(c,r.organizationId,r.organizationSlug)),setActive:(r,a)=>i(o("/organization/set-active",r,a,c=>Ke(c,r.organizationId,r.organizationSlug))),listTeams:(r={},a)=>s("/organization/list-teams",{organizationId:r.organizationId},a,c=>Vt(c,r.organizationId)),setActiveTeam:(r,a)=>i(o("/organization/set-active-team",r,a,c=>qt(c,r.teamId))),update:(r,a)=>i(o("/organization/update",r,a,c=>Ke(c,r.organizationId))),delete:(r,a)=>i(o("/organization/delete",r,a,c=>te(c,r.organizationId))),listMembers:(r={},a)=>s("/organization/list-members",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,limit:r.limit,offset:r.offset,sortBy:r.sortBy,sortDirection:r.sortDirection,filterField:r.filterField,filterValue:r.filterValue,filterOperator:r.filterOperator},a,c=>Ht(c,r.organizationId)),inviteMember:(r,a)=>i(o("/organization/invite-member",r,a,c=>K(c,void 0,r.organizationId))),listInvitations:(r={},a)=>s("/organization/list-invitations",{organizationId:r.organizationId},a,c=>Kt(c,r.organizationId)),listUserInvitations:r=>s("/organization/list-user-invitations",void 0,r,Bt),getInvitation:(r,a)=>s("/organization/get-invitation",{id:r.id},a,c=>jt(c,r.id)),acceptInvitation:(r,a)=>i(o("/organization/accept-invitation",r,a,c=>Jt(c,r.invitationId))),rejectInvitation:(r,a)=>i(o("/organization/reject-invitation",r,a,c=>Gt(c,r.invitationId))),cancelInvitation:(r,a)=>i(o("/organization/cancel-invitation",r,a,c=>Wt(c,r.invitationId))),removeMember:(r,a)=>i(o("/organization/remove-member",r,a,c=>$t(c,r.organizationId,r.memberIdOrEmail.includes("@")?void 0:r.memberIdOrEmail))),updateMemberRole:(r,a)=>i(o("/organization/update-member-role",r,a,c=>ne(c,r.memberId,r.organizationId))),leave:(r,a)=>i(o("/organization/leave",r,a,c=>ne(c,void 0,r.organizationId))),listRoles:(r={},a)=>s("/organization/list-roles",{organizationId:r.organizationId},a,c=>Yt(c,r.organizationId)),has:r=>ye(n(),r),hasPermission:r=>he(n(),r.permission)}}var tn=4096,Si=4096,Ti=100,Ei=256,Ii=16,Pi=64,Ci=12;function je(e){let t=f(e);return t.twoFactorRedirect===true?((t.user!==void 0||t.redirect!==void 0||t.url!==void 0)&&l(),{twoFactorRedirect:true,...t.twoFactorMethods===void 0?{}:{twoFactorMethods:On(t.twoFactorMethods,Ii,Pi)}}):(t.twoFactorRedirect!==void 0&&l(),{redirect:T(t.redirect),..._i(t,"url"),user:L(t.user)})}function nn(e){let t=f(e);return {user:L(t.user)}}function on(e){let t=f(e);return {sessionCreated:T(t.sessionCreated),user:L(t.user)}}function rn(e,t){let n=f(e),o=T(n.redirect);n.user===null&&l();let i=n.user!==void 0&&n.user!==null,s=n.url!==void 0&&n.url!==null;return o?((i||!s)&&l(),{redirect:true,url:Be(n.url,t)}):(i===s&&l(),i?{redirect:false,user:L(n.user)}:{redirect:false,url:Be(n.url,t)})}function sn(e,t){let n=f(e);return (n.redirect!==true||n.user!==void 0)&&l(),{redirect:true,url:Be(n.url,t)}}function an(e){return {status:T(f(e).status)}}function cn(e){return {success:T(f(e).success)}}function un(e){return f(e).status!=="pending"&&l(),{status:"pending"}}function ln(e){let t=f(e);if(t.kind==="authowl_turnstile")return {kind:"authowl_turnstile"};t.kind!=="akedly_shield_v1_2"&&l();let n=f(t.turnstile),o=n.siteKey===null?null:R(n.siteKey);return {kind:"akedly_shield_v1_2",connectionId:R(t.connectionId),challenge:R(t.challenge),difficulty:xi(t.difficulty),challengeToken:R(t.challengeToken),challengeRequired:T(t.challengeRequired),turnstile:{required:T(n.required),siteKey:o}}}function xi(e){return (!Number.isSafeInteger(e)||Number(e)<0||Number(e)>Ci)&&l(),Number(e)}function dn(e){let t=f(e);return (t.status!==true||t.sessionCreated!==true)&&l(),{status:true,sessionCreated:true,user:vi(t.user)}}function Je(e){return {status:T(f(e).status)}}function pn(e){return {status:T(f(e).status)}}function fn(e){let t=f(e);return {status:T(t.status),user:L(t.user)}}function gn(e){return {success:T(f(e).success)}}function mn(e){let t=f(e);return {totpURI:Ui(t.totpURI),backupCodes:bn(t.backupCodes)}}function hn(e){return {status:T(f(e).status)}}function Oe(e){return f(e).status!==true&&l(),{status:true}}function yn(e){return {status:T(f(e).status)}}function An(e){let t=f(e);return t.status!==void 0&&t.status!==true&&l(),{backupCodes:bn(t.backupCodes)}}function vi(e){let t=f(e);return {id:oe(t.id,512),...Ni(t,"name",1024),phoneNumber:oe(t.phoneNumber,64),phoneNumberVerified:T(t.phoneNumberVerified),...t.createdAt===void 0?{}:{createdAt:C(t.createdAt)},...t.updatedAt===void 0?{}:{updatedAt:C(t.updatedAt)}}}function Be(e,t){let n=oe(e,tn);/[\u0000-\u0020\u007f]/u.test(n)&&l();let o;try{o=new URL(n);}catch{return l()}return (o.username||o.password)&&l(),o.protocol==="https:"||t&&o.protocol==="http:"&&Di(o.hostname)?o.href:l()}function Di(e){let t=e.toLowerCase();return t==="localhost"||t==="127.0.0.1"||t==="[::1]"}function Ui(e){let t=oe(e,Si),n;try{n=new URL(t);}catch{return l()}let o=n.searchParams.get("secret");return (n.protocol!=="otpauth:"||n.hostname.toLowerCase()!=="totp"||n.username||n.password||n.hash||o===null||o.length===0||o.length>512||/\s/u.test(o))&&l(),t}function bn(e){return On(e,Ti,Ei)}function On(e,t,n){(!Array.isArray(e)||e.length===0||e.length>t)&&l();let o=e.map(i=>oe(i,n));return o.some(i=>i.trim().length===0)&&l(),new Set(o).size!==o.length&&l(),o}function oe(e,t){let n=R(e);return (n.length===0||n.length>t)&&l(),n}function _i(e,t){let n=e[t];return n==null?{}:{[t]:oe(n,tn)}}function Ni(e,t,n){let o=P(e,t);return o===void 0?{}:(o!==null&&o.length>n&&l(),{[t]:o})}var wn=new Set([1564,8206,8207,8234,8235,8236,8237,8238,8294,8295,8296,8297]),we=new Set([9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288,65279]);function ke(e){if(e===void 0)return {valid:true,value:void 0};for(let n of e){let o=n.codePointAt(0);if(o===void 0||Rn(n,o)||kn(o)||wn.has(o))return {valid:false}}let t=zi(e);return Ge(t)?{valid:true,value:t}:{valid:false}}function Ge(e){let t=0,n,o;for(let i of e){if(t+=1,t>256)return false;let s=i.codePointAt(0);if(s===void 0||Rn(i,s)||kn(s)||wn.has(s))return false;n??=s,o=s;}return t>0&&n!==void 0&&o!==void 0&&!we.has(n)&&!we.has(o)}function Re(){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 zi(e){let t=0,n=e.length;for(;t<n;){let o=e.codePointAt(t);if(o===void 0||!we.has(o))break;t+=o>65535?2:1;}for(;n>t;){let o=e.codePointAt(n-1);if(o===void 0)break;let s=o>=56320&&o<=57343?n-2:n-1,r=e.codePointAt(s);if(r===void 0||!we.has(r))break;n=s;}return e.slice(t,n)}function kn(e){return e>=0&&e<=31||e>=127&&e<=159}function Rn(e,t){return e.length===1&&t>=55296&&t<=57343}var En=12,In=5e3,Li=8,Fi=1e3,Mi=16,Sn=512,Pn=100,Cn=8192,Vi=32768,We=1024,Tn=256,Ye=64,qi=6e5,Hi=/^[A-Za-z0-9_-]+$/u,Ki=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u,Bi=/[\u0000-\u001f\u007f-\u009f\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/u,ji=/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$/u,Ji=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu,xn=new Set(["discouraged","preferred","required"]),Gi=new Set(["singleDevice","multiDevice"]),vn=new Set(["ble","cable","hybrid","internal","nfc","smart-card","usb"]),Dn=new Set(["hybrid","security-key","client-device"]),Wi=new Set(["none","indirect","direct","enterprise"]),$i=new Set(["fido-u2f","packed","android-safetynet","android-key","tpm","apple","none"]),Yi=new Set(["platform","cross-platform"]),Xi=new Set(["discouraged","preferred","required"]),Qi=new Set([-8,-7,-257]);function Un(e){let t=H(e,En,In);return {challenge:Kn(t.challenge),...v("timeout",qn(t.timeout)),...v("rpId",Bn(t.rpId)),...v("allowCredentials",Vn(t.allowCredentials)),...v("userVerification",ue(t.userVerification,xn)),...v("hints",Se(t.hints,Dn)),...v("extensions",Hn(t.extensions))}}function _n(e){let t=H(e,En,In);return {challenge:Kn(t.challenge),rp:Zi(t.rp),user:er(t.user),pubKeyCredParams:tr(t.pubKeyCredParams),...v("timeout",qn(t.timeout)),...v("excludeCredentials",Vn(t.excludeCredentials)),...v("authenticatorSelection",nr(t.authenticatorSelection)),...v("attestation",ue(t.attestation,Wi)),...v("attestationFormats",Se(t.attestationFormats,$i)),...v("hints",Se(t.hints,Dn)),...v("extensions",Hn(t.extensions))}}function Nn(e){let t=f(e),n=me(t.session),o=L(t.user);return n.userId!==o.id&&l(),{session:n,user:o}}function Xe(e){let t=f(e),n=t.counter;(!Number.isSafeInteger(n)||n<0)&&l();let o=Qe(t.deviceType,Gi),i=T(t.backedUp);return i&&o!=="multiDevice"&&l(),{id:ie(t.id,Tn),...rr(t),publicKey:or(t.publicKey,Vi),userId:ie(t.userId,Tn),credentialID:Ee(t.credentialID,Cn),counter:n,deviceType:o,backedUp:i,...sr(t),createdAt:C(t.createdAt),...ar(t)}}function zn(e,t,n){let o=Xe(e);return (o.credentialID!==t||(n===void 0?o.name!==void 0&&o.name!==null:o.name!==n))&&l(),o}function Ln(e){(!Array.isArray(e)||e.length>Pn)&&l();let t=e.map(Xe);return Te(t.map(n=>n.id)),Te(t.map(n=>n.credentialID)),t.length>1&&t.some(n=>n.userId!==t[0]?.userId)&&l(),t}function Fn(e,t,n){let o=f(e),i=Xe(o.passkey);return (i.id!==t||i.name!==n)&&l(),{passkey:i}}function Mn(e){return f(e).status!==true&&l(),{status:true}}function Zi(e){let t=f(e);return {name:$e(t.name,We),...v("id",Bn(t.id))}}function er(e){let t=f(e);return {id:Ee(t.id,128,1,64),name:$e(t.name,We),displayName:$e(t.displayName,We)}}function tr(e){(!Array.isArray(e)||e.length===0||e.length>Ye)&&l();let t=e.map(n=>{let o=f(n);return (o.type!=="public-key"||!Number.isSafeInteger(o.alg)||!Qi.has(o.alg))&&l(),{type:"public-key",alg:o.alg}});return cr(t.map(n=>n.alg)),t}function Vn(e){if(e===void 0)return;(!Array.isArray(e)||e.length>Pn)&&l();let t=e.map(n=>{let o=f(n);return o.type!=="public-key"&&l(),{type:"public-key",id:Ee(o.id,Cn),...v("transports",Se(o.transports,vn))}});return Te(t.map(n=>n.id)),t}function nr(e){if(e===void 0)return;let t=f(e);t.requireResidentKey!==void 0&&typeof t.requireResidentKey!="boolean"&&l();let n=ue(t.residentKey,Xi);return t.requireResidentKey!==void 0&&n!==void 0&&t.requireResidentKey!==(n==="required")&&l(),{...v("authenticatorAttachment",ue(t.authenticatorAttachment,Yi)),...v("residentKey",n),...v("requireResidentKey",t.requireResidentKey),...v("userVerification",ue(t.userVerification,xn))}}function qn(e){return e!==void 0&&(typeof e!="number"||!Number.isFinite(e)||e<0||e>qi)&&l(),e}function Hn(e){return e===void 0?void 0:H(e,Li,Fi)}function Se(e,t){if(e===void 0)return;(!Array.isArray(e)||e.length>Ye)&&l();let n=e.map(o=>Qe(o,t));return Te(n),n}function ue(e,t){if(e!==void 0)return Qe(e,t)}function Kn(e){return Ee(e,Math.ceil(Sn*4/3),Mi,Sn)}function Ee(e,t,n=1,o=Number.POSITIVE_INFINITY){let i=ie(e,t),s=i.length%4,r=ir(i.at(-1)??""),a=Math.floor(i.length*3/4);return (!Hi.test(i)||s===1||s===2&&(r&15)!==0||s===3&&(r&3)!==0||a<n||a>o)&&l(),i}function ie(e,t){let n=R(e);return (n.length===0||n.length>t)&&l(),n}function $e(e,t){let n=ie(e,t);return Bi.test(n)&&l(),n}function Bn(e){if(e===void 0)return;let t=ie(e,253);return t!=="localhost"&&(t.endsWith(".")||!t.includes(".")||t.split(".").some(n=>!ji.test(n)))&&l(),t}function or(e,t){let n=ie(e,t),o=n.endsWith("=="),i=!o&&n.endsWith("="),s=n.at(o?-3:i?-2:-1)??"",r=jn(s);return (n.length%4!==0||!Ki.test(n)||o&&(r&15)!==0||i&&(r&3)!==0)&&l(),n}function ir(e){return jn(e,true)}function jn(e,t=false){return (t?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").indexOf(e)}function rr(e){let t=P(e,"name");return t===void 0?{}:(t!==null&&!Ge(t)&&l(),{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>Ye||n.some(o=>!vn.has(o))||new Set(n).size!==n.length)&&l(),{transports:t}}function ar(e){let t=P(e,"aaguid");return t==null?t===void 0?{}:{aaguid:null}:(Ji.test(t)||l(),{aaguid:t})}function Qe(e,t){let n=R(e);return t.has(n)||l(),n}function v(e,t){return t===void 0?{}:{[e]:t}}function Te(e){new Set(e).size!==e.length&&l();}function cr(e){new Set(e).size!==e.length&&l();}function yr(e,t){if(!t)return e;let n=t.catch(()=>{});return n.then(()=>{n=null;}),{async request(o,i){return n&&await n,e.request(o,i)}}}var Qn=new Map;function Ar(e,t,n){let o=Qn.get(n);return o||(o=Promise.resolve().then(()=>(Pe(),Ie)).then(i=>i.completeCrossSiteSignIn(e,t)),Qn.set(n,o)),o}function Zn(e){return !ae()||e.idToken||e.disableRedirect?"legacy":"first-party"}function to(e,t=()=>{},n=br){let o=se(e),i=e.session.tokens,s=ae()?Ar(o,i,e.decoded.projectId):void 0,r=yr(o,s),a=xt({http:r,probe:se({...e,fetch:e.session.probe}),tokens:i,channelName:`authowl:${e.decoded.projectId}`}),c=n(r,a.notifyMutation),m=()=>{a.notifyMutation(),t();},{post:d,mutation:h}=ee(r,m),A=e.decoded.env==="test",b=u=>{i.beginSession({remember:u?.rememberMe!==false});};return {sessionStore:a.store,getSession:a.getSession,account:Nt(r,m),organization:en(r,m,()=>a.store.getSnapshot().data?.session.membership??null),signIn:{email:(u,p)=>(b(u),h(d("/sign-in/email",u,p,je),g=>!("twoFactorRedirect"in g))),username:(u,p)=>(b(u),h(d("/sign-in/username",u,p,je),g=>!("twoFactorRedirect"in g))),social:async(u,p)=>{if(b(),Zn(u)==="first-party"){let{beginCrossSiteSignIn:w}=await Promise.resolve().then(()=>(Pe(),Ie)),k=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(k)return window.location.assign(k),{data:{redirect:true,url:k},error:null}}let g=await h(d("/sign-in/social",u,p,w=>rn(w,A)),w=>"user"in w);return g.error!==null||g.data===null||"url"in g.data&&g.data.redirect&&!u.disableRedirect&&typeof window<"u"&&window.location.assign(g.data.url),g},sso:async(u,p)=>{if(Zn(u)==="first-party"){let{beginCrossSiteSignIn:w}=await Promise.resolve().then(()=>(Pe(),Ie)),k=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(k)return window.location.assign(k),{data:{url:k,redirect:true},error:null}}let g=await d("/sign-in/sso",u,p,w=>sn(w,A));return g.error!==null||g.data===null||typeof window<"u"&&window.location.assign(g.data.url),g},magicLink:(u,p)=>d("/sign-in/magic-link",u,p,an),emailOtp:(u,p)=>(b(),h(d("/sign-in/email-otp",u,p,nn))),passkey:(u,p)=>(b(),c.signIn(u,p))},signUp:{email:(u,p)=>(b(),h(d("/sign-up/email",u,p,on),g=>g.sessionCreated))},emailOtp:{sendVerificationOtp:(u,p)=>d("/email-otp/send-verification-otp",u,p,cn),verifyEmail:(u,p)=>(b(),h(d("/email-otp/verify-email",u,p,fn)))},phoneOtp:{prepare:u=>d("/phone-otp/challenge",{},u,ln),start:(u,p)=>d("/phone-otp/start",{...u,idempotencyKey:u.idempotencyKey??He()},p,un),verify:(u,p)=>(b(),h(d("/phone-otp/verify",u,p,dn)))},requestPasswordReset:(u,p)=>d("/request-password-reset",u,p,Je),resetPassword:(u,p)=>d("/reset-password",u,p,Je),sendVerificationEmail:(u,p)=>d("/send-verification-email",u,p,pn),passkey:{addPasskey:(u,p)=>c.add(u,p),listUserPasskeys:()=>r.request("/passkey/list-user-passkeys",{decode:Ln}),updatePasskey:async(u,p)=>{let g=ke(u.name);if(!g.valid||g.value===void 0)return Re();let w=g.value;return d("/passkey/update-passkey",{...u,name:w},p,k=>Fn(k,u.id,w))},deletePasskey:(u,p)=>d("/passkey/delete-passkey",u,p,Mn)},twoFactor:{enable:(u,p)=>d("/two-factor/enable",u,p,mn),disable:(u,p)=>h(d("/two-factor/disable",u,p,hn),g=>g.status),verifyTotp:(u,p)=>h(d("/two-factor/verify-totp",u,p,Oe)),verifyBackupCode:(u,p)=>h(d("/two-factor/verify-backup-code",u,p,Oe)),sendOtp:(u={},p)=>d("/two-factor/send-otp",u,p,yn),verifyOtp:(u,p)=>h(d("/two-factor/verify-otp",u,p,Oe)),generateBackupCodes:(u,p)=>d("/two-factor/generate-backup-codes",u,p,An)},signOut:u=>h(r.request("/sign-out",{method:"POST",body:{},fetchOptions:u,decode:gn}).then(p=>(i.endSession(),p)),p=>p.success)}}function br(){return {signIn:()=>eo(),add:()=>eo()}}function eo(){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 ao(e,t,n){let o=new Map;return {async signIn(i={},s){let r=await e.request("/passkey/generate-authenticate-options");if(!r.data)return io(r.error);let a;try{a=Un(r.data);}catch{return no()}let c;try{c=await n.authenticate({optionsJSON:a,useBrowserAutofill:i.autoFill});}catch(b){return ro(n,b,"AUTH_CANCELLED","Passkey authentication was cancelled.")}if(!Or(c))return oo();let{clientExtensionResults:m,...d}=c,h=o.get(c.id);if(h)return h;let A=(async()=>{let b=await e.request("/passkey/verify-authentication",{method:"POST",body:{response:d},fetchOptions:s,decode:Nn});return b.data&&t(),b})();o.set(c.id,A);try{return await A}finally{o.get(c.id)===A&&o.delete(c.id);}},async add(i={},s){let r=ke(i.name);if(!r.valid)return Re();let a=await e.request("/passkey/generate-register-options",{query:{name:r.value,authenticatorAttachment:i.authenticatorAttachment}});if(!a.data)return io(a.error);let c;try{c=_n(a.data);}catch{return no()}let m;try{m=await n.register({optionsJSON:c});}catch(b){return ro(n,b,"REGISTRATION_CANCELLED","Passkey registration was cancelled.")}if(!wr(m))return oo();let{clientExtensionResults:d,...h}=m,A=await e.request("/passkey/verify-registration",{method:"POST",body:{response:h,name:r.value},fetchOptions:s,decode:b=>zn(b,m.id,r.value)});return A.data&&t(),A}}}function no(){return {data:null,error:{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned invalid WebAuthn options."}}}function oo(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_WEBAUTHN_RESPONSE",message:"The platform returned an invalid passkey response."}}}function co(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 Or(e){if(!co(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 wr(e){if(!co(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.attestationObject=="string"}function io(e){return {data:null,error:e??{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned no WebAuthn options."}}}function ro(e,t,n,o){let i=Rr(t,"page does not have focus"),s=e.errorCode?.(t),r=s!==void 0?s==="ERROR_CEREMONY_ABORTED":so(t)==="AbortError",a=n!=="AUTH_CANCELLED",c=kr(s,so(t),a);return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:i?"PASSKEY_PAGE_NOT_FOCUSED":r?n:s??"PASSKEY_BROWSER_ERROR",message:i?"Keep this page focused while completing the passkey prompt.":r?o:c}}}function kr(e,t,n){switch(e){case "ERROR_INVALID_DOMAIN":case "ERROR_INVALID_RP_ID":return "Passkeys are not set up for this site\u2019s domain.";case "ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED":return "This device already has a passkey for this account.";case "ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEY_ALGS":case "ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT":case "ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT":return "This device cannot create a passkey for this site.";}return t==="NotAllowedError"?n?"No passkey was created. The prompt was dismissed or timed out.":"No passkey was used. This device may not have one saved for this site yet, or the prompt was dismissed.":t==="SecurityError"?"Passkeys are not set up for this site\u2019s domain.":n?"Passkey registration did not complete.":"Passkey sign-in did not complete."}function so(e){return e&&typeof e=="object"&&"name"in e&&typeof e.name=="string"?e.name:void 0}function Rr(e,t){let n=t.toLowerCase(),o=new Set,i=e;for(;i&&typeof i=="object"&&!o.has(i);){if(o.add(i),"message"in i&&typeof i.message=="string"&&i.message.toLowerCase().includes(n))return true;i="cause"in i?i.cause:void 0;}return false}function F(e){let t=new Uint8Array(e),n="";for(let i of t)n+=String.fromCharCode(i);return btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function $(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),n=(4-t.length%4)%4,o=t.padEnd(t.length+n,"="),i=atob(o),s=new ArrayBuffer(i.length),r=new Uint8Array(s);for(let a=0;a<i.length;a++)r[a]=i.charCodeAt(a);return s}function Y(){return Sr.stubThis(globalThis?.PublicKeyCredential!==void 0&&typeof globalThis.PublicKeyCredential=="function")}var Sr={stubThis:e=>e};function Ce(e){let{id:t}=e;return {...e,id:$(t),transports:e.transports}}function xe(e){return e==="localhost"||/^((xn--[a-z0-9-]+|[a-z0-9]+(-[a-z0-9]+)*)\.)+([a-z]{2,}|xn--[a-z0-9-]+)$/i.test(e)}var I=class extends Error{constructor({message:t,code:n,cause:o,name:i}){super(t,{cause:o}),Object.defineProperty(this,"code",{enumerable:true,configurable:true,writable:true,value:void 0}),this.name=i??o.name,this.code=n;}};function uo({error:e,options:t}){let{publicKey:n}=t;if(!n)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(t.signal instanceof AbortSignal)return new I({message:"Registration ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else if(e.name==="ConstraintError"){if(n.authenticatorSelection?.requireResidentKey===true)return new I({message:"Discoverable credentials were required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT",cause:e});if(t.mediation==="conditional"&&n.authenticatorSelection?.userVerification==="required")return new I({message:"User verification was required during automatic registration but it could not be performed",code:"ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE",cause:e});if(n.authenticatorSelection?.userVerification==="required")return new I({message:"User verification was required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT",cause:e})}else {if(e.name==="InvalidStateError")return new I({message:"The authenticator was previously registered",code:"ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED",cause:e});if(e.name==="NotAllowedError")return new I({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="NotSupportedError")return n.pubKeyCredParams.filter(i=>i.type==="public-key").length===0?new I({message:'No entry in pubKeyCredParams was of type "public-key"',code:"ERROR_MALFORMED_PUBKEYCREDPARAMS",cause:e}):new I({message:"No available authenticator supported any of the specified pubKeyCredParams algorithms",code:"ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG",cause:e});if(e.name==="SecurityError"){let o=globalThis.location.hostname;if(xe(o)){if(n.rp.id!==o)return new I({message:`The RP ID "${n.rp.id}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new I({message:`${globalThis.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="TypeError"){if(n.user.id.byteLength<1||n.user.id.byteLength>64)return new I({message:"User ID was not between 1 and 64 characters",code:"ERROR_INVALID_USER_ID_LENGTH",cause:e})}else if(e.name==="UnknownError")return new I({message:"The authenticator was unable to process the specified options, or could not create a new credential",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return e}var et=class{constructor(){Object.defineProperty(this,"controller",{enumerable:true,configurable:true,writable:true,value:void 0});}createNewAbortSignal(){if(this.controller){let n=new Error("Cancelling existing WebAuthn API call for new one");n.name="AbortError",this.controller.abort(n);}let t=new AbortController;return this.controller=t,t.signal}cancelCeremony(){if(this.controller){let t=new Error("Manually cancelling existing WebAuthn API call");t.name="AbortError",this.controller.abort(t),this.controller=void 0;}}},ve=new et;var Tr=["cross-platform","platform"];function De(e){if(e&&!(Tr.indexOf(e)<0))return e}async function lo(e){!e.optionsJSON&&e.challenge&&(console.warn("startRegistration() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information."),e={optionsJSON:e});let{optionsJSON:t,useAutoRegister:n=false}=e;if(!Y())throw new Error("WebAuthn is not supported in this browser");let o={...t,challenge:$(t.challenge),user:{...t.user,id:$(t.user.id)},excludeCredentials:t.excludeCredentials?.map(Ce)},i={};n&&(i.mediation="conditional"),i.publicKey=o,i.signal=ve.createNewAbortSignal();let s;try{s=await navigator.credentials.create(i);}catch(u){throw uo({error:u,options:i})}if(!s)throw new Error("Registration was not completed");let{id:r,rawId:a,response:c,type:m}=s,d;typeof c.getTransports=="function"&&(d=c.getTransports());let h;if(typeof c.getPublicKeyAlgorithm=="function")try{h=c.getPublicKeyAlgorithm();}catch(u){tt("getPublicKeyAlgorithm()",u);}let A;if(typeof c.getPublicKey=="function")try{let u=c.getPublicKey();u!==null&&(A=F(u));}catch(u){tt("getPublicKey()",u);}let b;if(typeof c.getAuthenticatorData=="function")try{b=F(c.getAuthenticatorData());}catch(u){tt("getAuthenticatorData()",u);}return {id:r,rawId:F(a),response:{attestationObject:F(c.attestationObject),clientDataJSON:F(c.clientDataJSON),transports:d,publicKeyAlgorithm:h,publicKey:A,authenticatorData:b},type:m,clientExtensionResults:s.getClientExtensionResults(),authenticatorAttachment:De(s.authenticatorAttachment)}}function tt(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 po(){if(!Y())return nt.stubThis(new Promise(t=>t(false)));let e=globalThis.PublicKeyCredential;return e?.isConditionalMediationAvailable===void 0?nt.stubThis(new Promise(t=>t(false))):nt.stubThis(e.isConditionalMediationAvailable())}var nt={stubThis:e=>e};function fo({error:e,options:t}){let{publicKey:n}=t;if(!n)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(t.signal instanceof AbortSignal)return new I({message:"Authentication ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else {if(e.name==="NotAllowedError")return new I({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="SecurityError"){let o=globalThis.location.hostname;if(xe(o)){if(n.rpId!==o)return new I({message:`The RP ID "${n.rpId}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new I({message:`${globalThis.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="UnknownError")return new I({message:"The authenticator was unable to process the specified options, or could not create a new assertion signature",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return e}async function go(e){!e.optionsJSON&&e.challenge&&(console.warn("startAuthentication() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information."),e={optionsJSON:e});let{optionsJSON:t,useBrowserAutofill:n=false,verifyBrowserAutofillInput:o=true}=e;if(!Y())throw new Error("WebAuthn is not supported in this browser");let i;t.allowCredentials?.length!==0&&(i=t.allowCredentials?.map(Ce));let s={...t,challenge:$(t.challenge),allowCredentials:i},r={};if(n){if(!await po())throw Error("Browser does not support WebAuthn autofill");if(document.querySelectorAll("input[autocomplete$='webauthn']").length<1&&o)throw Error('No <input> with "webauthn" as the only or last value in its `autocomplete` attribute was detected');r.mediation="conditional",s.allowCredentials=[];}r.publicKey=s,r.signal=ve.createNewAbortSignal();let a;try{a=await navigator.credentials.get(r);}catch(b){throw fo({error:b,options:r})}if(!a)throw new Error("Authentication was not completed");let{id:c,rawId:m,response:d,type:h}=a,A;return d.userHandle&&(A=F(d.userHandle)),{id:c,rawId:F(m),response:{authenticatorData:F(d.authenticatorData),clientDataJSON:F(d.clientDataJSON),signature:F(d.signature),userHandle:A},type:h,clientExtensionResults:a.getClientExtensionResults(),authenticatorAttachment:De(a.authenticatorAttachment)}}var mo={authenticate:e=>go(e),register:e=>lo(e),errorCode:e=>e instanceof I?e.code:void 0};function yo(e){return `${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/consent`}async function ot(e){let t=await q(e,yo(e),{init:{method:"GET",credentials:"include"},maxResponseBytes:65536,decode:Er});return t.response.status===401?{required:false}:W(t,"consent status")}async function it(e,t){if(!Number.isSafeInteger(t)||t<1)throw new TypeError("Consent version must be a positive integer.");return W(await q(e,yo(e),{init:{method:"POST",headers:{"content-type":"application/json"},credentials:"include",body:JSON.stringify({version:t})},maxResponseBytes:64*1024,decode:Ir}),"consent accept")}function Er(e){let t=f(e),n=T(t.required),o=Pr(t.needsConsent),i=Ao(t.version),s=ho(t.termsUrl),r=ho(t.privacyUrl);return {required:n,...o===void 0?{}:{needsConsent:o},...i===void 0?{}:{version:i},...s===void 0?{}:{termsUrl:s},...r===void 0?{}:{privacyUrl:r}}}function Ir(e){let t=f(e),n=Ao(t.version);return {ok:T(t.ok),...n===void 0?{}:{version:n}}}function Pr(e){if(e===void 0||typeof e=="boolean")return e;throw new TypeError("Invalid consent response.")}function Ao(e){if(e===void 0||Number.isSafeInteger(e)&&e>=1)return e;throw new TypeError("Invalid consent response.")}function ho(e){if(e===void 0||typeof e=="string"&&e.length<=4096)return e;throw new TypeError("Invalid consent response.")}var Cr=30;function xr(e){return typeof e?.exp=="number"?e.exp:null}function vr(e){let t=e.split(".")[1];if(!t)return null;try{let n=t.replace(/-/g,"+").replace(/_/g,"/"),o=JSON.parse(atob(n));return typeof o=="object"&&o!==null?o:null}catch{return null}}function rt(e){let t=new Map;async function n(s={}){let r=s.template===void 0?null:s.template.trim().toLowerCase();if(r==="")throw new TypeError("Template missing");let a=r??"",c=t.get(a);c||(c={activeKey:null,cachedByKey:new Map,inflight:null,sequence:0},t.set(a,c));let m=s.forceRefresh===true;if(!m){let u=c.activeKey?c.cachedByKey.get(c.activeKey):null;if(u&&u.exp-Date.now()/1e3>Cr)return u.token;if(c.inflight)return c.inflight}let d=++c.sequence,h=()=>t.get(a)===c&&c.sequence===d,A=(async()=>{let u=r?`${e.projectBaseURL}/token/${encodeURIComponent(r)}`:`${e.projectBaseURL}/token`,p=await q(e,u,{init:{method:"GET",credentials:"include"},maxResponseBytes:64*1024,decode:O=>Dr(O,r!==null)});if(p.response.status===401)return h()&&o(),null;let g=W(p,"token"),w=g.policyVersion,k=g.token,N=vr(k),V=xr(N);if(h())if(V!==null){let O=typeof N?.sub=="string"?N.sub:null,E=typeof N?.org_id=="string"?N.org_id:null;if(!r||O){let y=JSON.stringify([e.projectBaseURL,O,E,r,w]);c.cachedByKey.clear(),c.cachedByKey.set(y,{token:k,exp:V}),c.activeKey=y;}else i(c);}else i(c);return k})();if(m)return A;let b=A.finally(()=>{c.inflight===b&&(c.inflight=null);});return c.inflight=b,b}function o(){t.clear();}function i(s){s.cachedByKey.clear(),s.activeKey=null;}return {getToken:n,clear:o}}function Dr(e,t){let n=f(e),o=R(n.token);if(o.length===0||o.length>32*1024)throw new TypeError("Invalid token response.");if(!t)return {token:o,policyVersion:0};let i=f(n.template);if(!Number.isSafeInteger(i.policyVersion)||i.policyVersion<1)throw new TypeError("Invalid token response.");return {token:o,policyVersion:i.policyVersion}}function Ur(e){let t=rt(e),n=to(e,t.clear,(r,a)=>ao(r,a,mo)),o=se(e,`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}`),i=r=>(...a)=>(t.clear(),r(...a)),s={getConsentStatus:()=>ot(e),acceptConsent:r=>it(e,r),getToken:t.getToken,waitlist:{join:(r,a)=>o.request("/waitlist",{method:"POST",body:r,fetchOptions:a,credentials:"omit"})},account:{...n.account,updateUnsafeMetadata:i(n.account.updateUnsafeMetadata),updateProfile:i(n.account.updateProfile),changeEmail:i(n.account.changeEmail),changePassword:i(n.account.changePassword),revokeSession:i(n.account.revokeSession),delete:i(n.account.delete)},signIn:{email:i(n.signIn.email),username:i(n.signIn.username),social:i(n.signIn.social),sso:n.signIn.sso,magicLink:n.signIn.magicLink,emailOtp:i(n.signIn.emailOtp),passkey:i(n.signIn.passkey)},signUp:{email:i(n.signUp.email)},emailOtp:{...n.emailOtp,verifyEmail:i(n.emailOtp.verifyEmail)},twoFactor:{enable:n.twoFactor.enable,disable:i(n.twoFactor.disable),verifyTotp:i(n.twoFactor.verifyTotp),verifyBackupCode:i(n.twoFactor.verifyBackupCode),sendOtp:n.twoFactor.sendOtp,verifyOtp:i(n.twoFactor.verifyOtp),generateBackupCodes:n.twoFactor.generateBackupCodes},phoneOtp:{prepare:n.phoneOtp.prepare,start:n.phoneOtp.start,verify:i(n.phoneOtp.verify)},signOut:i(n.signOut)};return {...n,...s}}async function _r(e){if(typeof window>"u")throw new Error("Akedly Shield challenges must be solved in a browser.");let t=await Nr(),n=e.challengeRequired?await t.solvePow(e.challenge,e.difficulty):null,o=e.turnstile.required?await t.getTurnstileToken(zr(e.turnstile.siteKey)):void 0;return {connectionId:e.connectionId,...n?{challengeToken:e.challengeToken,nonce:n.nonce}:{},...o?{turnstileToken:o}:{}}}async function Nr(){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 Lr(e){let n=`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/public-config`;return W(await q(e,n,{init:{method:"GET",credentials:"omit"},maxResponseBytes:256*1024,decode:o=>Fr(o,e)}),"public-config")}function Fr(e,t){let n=H(e),o=n.environmentId,i=n.environmentType,s=`${new URL(t.apiUrl).origin}/api/projects/${t.decoded.projectId}/auth`;if(typeof n.applicationId!="string"||!Mr(n.applicationId)||o!==t.decoded.projectId||i!=="development"&&i!=="production"||n.authBaseUrl!==s)throw M();let r=_(n.branding),a=_(n.legal);if(!st(n.enabledMethods,64)||!st(n.socialProviders,64)||!Oo(r,["appName","logoUrl","primaryColor"])||r.showAppName!==void 0&&typeof r.showAppName!="boolean"||r.alignment!==void 0&&r.alignment!=="left"&&r.alignment!=="center"&&r.alignment!=="right"||r.theme!==void 0&&r.theme!=="light"&&r.theme!=="dark"&&r.theme!=="system"||!Oo(a,["termsUrl","privacyUrl"])||!Number.isSafeInteger(a.version)||a.version<0||typeof a.required!="boolean")throw M();if(n.socialProviderClientIds!==void 0){let c=_(n.socialProviderClientIds);if(Object.keys(c).length>64||Object.values(c).some(m=>typeof m!="string"||m.length>2048))throw M()}if(!B(n,["requireEmailVerification","twoFactor","mfaRequired","accountDeletion","organizations","sso","badge"])||!bo(n.turnstileSiteKey)||!bo(n.authTurnstileSiteKey)||typeof n.locale!="string"||n.locale.length===0||n.locale.length>64||!Number.isSafeInteger(n.configVersion)||n.configVersion<0)throw M();if(n.jwtIssuer!==null){let c=_(n.jwtIssuer);if(c.issuer!==s||c.jwksUrl!==`${s}/jwks`||c.aud!==t.decoded.projectId)throw M()}if(n.signUp!==void 0){let c=_(n.signUp).mode;if(typeof c!="string"||!["open","restricted","allowlist","waitlist"].includes(c))throw M()}if(n.authentication!==void 0&&Vr(n.authentication),n.emailVerification!==void 0){let c=_(n.emailVerification);if(!B(c,["required"])||c.method!=="link"&&c.method!=="code")throw M()}if(n.userModel!==void 0&&!B(_(n.userModel),["requireEmail","firstLastName","emailChange","accountDeletion"]))throw M();if(n.mfa!==void 0){let c=_(n.mfa);if(!B(c,["totp","required","backupCodes"])||(c.required===true||c.backupCodes===true)&&c.totp!==true)throw M()}return n}function Mr(e){return /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e)}function M(){return new TypeError("public-config returned an invalid response")}function _(e){if(!e||typeof e!="object"||Array.isArray(e))throw M();return e}function bo(e){return e===null||typeof e=="string"&&e.length<=4096}function Vr(e){let t=_(e),n=_(t.email),o=_(t.password),i=o.minLength!==void 0||o.maxLength!==void 0;if(!B(n,["signUp"])||!st(n.signIn,3)||n.signIn.some(s=>s!=="password"&&s!=="magic_link"&&s!=="email_otp")||!B(_(t.phone),["signUp","signIn"])||!B(o,["signUp","add"])||i&&(!Number.isSafeInteger(o.minLength)||!Number.isSafeInteger(o.maxLength)||o.minLength<1||o.maxLength>4096||o.minLength>o.maxLength)||!B(_(t.passkey),["signIn","add"])||!qr(_(t.passkey).relyingPartyId)||!B(_(t.username),["collectOnSignUp","signIn"]))throw M()}function qr(e){return e==null||typeof e=="string"}function B(e,t){return t.every(n=>typeof e[n]=="boolean")}function Oo(e,t){return t.every(n=>e[n]===void 0||typeof e[n]=="string"&&e[n].length<=4096)}function st(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 le=class extends Error{constructor(n,o){super(n);this.cause=o;this.name="AuthOwlError";}cause},at=class extends le{constructor(n,o){super(`Rate limited. Retry after ${n}s.`,o);this.retryAfterSeconds=n;this.name="RateLimitedError";}retryAfterSeconds},ct=class extends le{constructor(t="invalid publishable key",n){super(t,n),this.name="InvalidKeyError";}};var wo=["en","ar"];function Hr(e){return e==="ar"?"rtl":"ltr"}function Kr(e){return typeof e=="string"&&wo.includes(e)}
3
+ exports.AUTH_CHALLENGE_HEADER=Pt;exports.AuthOwlError=le;exports.AuthOwlHttpError=fe;exports.InvalidKeyError=ct;exports.LOCALES=wo;exports.RateLimitedError=at;exports.TransportError=D;exports.acceptConsent=it;exports.createAuthOwlClient=Ur;exports.createIdempotencyKey=He;exports.createMembershipHas=Oi;exports.createTokenClient=rt;exports.decodePublishableKey=Ue;exports.directionFor=Hr;exports.getConsentStatus=ot;exports.getPublicConfig=Lr;exports.isLocale=Kr;exports.membershipHas=ye;exports.membershipHasPermission=he;exports.membershipHasTeam=zt;exports.resolveConfig=Ko;exports.resolveProjectCapabilities=Bo;exports.sessionCookieName=Eo;exports.solvePhoneOtpChallenge=_r;
package/dist/index.d.cts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { A as AuthConfig, D as DecodedPublishableKey, H as HasParams, O as OrganizationMembership, R as ResolvedAuthConfig, T as TransportError, a as TransportErrorKind, c as createMembershipHas, d as decodePublishableKey, m as membershipHas, b as membershipHasPermission, e as membershipHasTeam, r as resolveConfig, s as sessionCookieName } from './organization-membership--eTrgk_L.cjs';
2
- import { P as PhoneOtpChallengeData, A as AkedlyShieldStartProof } from './client--0Q9VjLt.cjs';
3
- export { a as AUTH_CHALLENGE_HEADER, b as AcceptOrganizationInvitationData, c as AccountClient, d as AccountSession, e as AccountStatusData, f as ActionFetchOptions, g as AddPasskeyOptions, h as AuthActionResult, i as AuthClientError, j as AuthErrorContext, k as AuthOwlClient, l as AuthOwlErrorCode, m as AuthPasskey, n as AuthRequestContext, o as AuthResponseContext, p as AuthSession, q as AuthUser, C as ChangeEmailOptions, r as ChangePasswordData, s as ChangePasswordOptions, t as ConsentAcceptResult, u as ConsentStatus, v as CreateOrganizationOptions, D as DeleteAccountData, w as DeleteAccountOptions, x as DeleteOrganizationOptions, y as DeletePasskeyData, z as DeletePasskeyOptions, B as DisableTwoFactorOptions, E as EmailAuthData, F as EmailOtpAuthData, G as EmailOtpSignInOptions, H as EmailOtpType, I as EmailSignInOptions, J as EmailSignUpData, K as EmailSignUpOptions, L as EnableTwoFactorOptions, M as EnvironmentType, N as GenerateBackupCodesOptions, O as GetOrganizationInvitationOptions, Q as GetOrganizationOptions, R as GetToken, S as GetTokenOptions, T as InviteOrganizationMemberOptions, U as JsonObject, V as JsonPrimitive, W as JsonValue, X as LeaveOrganizationOptions, Y as LinkSocialData, Z as LinkSocialOptions, _ as ListOrganizationInvitationsOptions, $ as ListOrganizationMembersOptions, a0 as ListOrganizationRolesOptions, a1 as ListOrganizationTeamsOptions, a2 as MagicLinkData, a3 as MagicLinkSignInOptions, a4 as Organization, a5 as OrganizationClient, a6 as OrganizationDetails, a7 as OrganizationFilterOperator, a8 as OrganizationInvitation, a9 as OrganizationInvitationActionOptions, aa as OrganizationInvitationDetails, ab as OrganizationInvitationStatus, ac as OrganizationMember, ad as OrganizationMemberUser, ae as OrganizationMemberWithUser, af as OrganizationMembersData, ag as OrganizationRoleSummary, ah as OrganizationSelector, ai as OrganizationTeam, aj as OrganizationUserInvitation, ak as PasskeyAuthData, al as PasskeySignInOptions, am as PasswordResetData, an as PhoneAuthUser, ao as PhoneOtpStartData, ap as PhoneOtpStartOptions, aq as PhoneOtpVerifyData, ar as PhoneOtpVerifyOptions, as as ProjectCapabilities, at as PublicConfig, au as RejectOrganizationInvitationData, av as RemoveOrganizationMemberData, aw as RemoveOrganizationMemberOptions, ax as RequestPasswordResetOptions, ay as ResetPasswordOptions, az as RevokeSessionOptions, aA as SendOtpData, aB as SendTwoFactorOtpData, aC as SendTwoFactorOtpOptions, aD as SendVerificationOtpOptions, aE as SessionState, aF as SessionStore, aG as SetActiveOrganizationOptions, aH as SetActiveTeamOptions, aI as SignOutData, aJ as SocialAccount, aK as SocialAuthData, aL as SocialIdTokenOptions, aM as SocialSignInOptions, aN as TokenClient, aO as TwoFactorBackupCodesData, aP as TwoFactorEnableData, aQ as TwoFactorRedirectData, aR as TwoFactorStatusData, aS as TwoFactorVerifyData, aT as UnlinkSocialOptions, aU as UpdateOrganizationMemberRoleOptions, aV as UpdateOrganizationOptions, aW as UpdatePasskeyData, aX as UpdatePasskeyOptions, aY as UpdateProfileOptions, aZ as UpdateUnsafeMetadataOptions, a_ as UserMetadata, a$ as UsernameSignInOptions, b0 as VerifyBackupCodeOptions, b1 as VerifyEmailOtpData, b2 as VerifyEmailOtpOptions, b3 as VerifyTotpOptions, b4 as VerifyTwoFactorOtpOptions, b5 as WaitlistJoinData, b6 as WaitlistJoinOptions, b7 as acceptConsent, b8 as createAuthOwlClient, b9 as createTokenClient, ba as getConsentStatus, bb as getPublicConfig, bc as resolveProjectCapabilities } from './client--0Q9VjLt.cjs';
2
+ import { P as PhoneOtpChallengeData, A as AkedlyShieldStartProof } from './client-BJ378jdV.cjs';
3
+ export { a as AUTH_CHALLENGE_HEADER, b as AcceptOrganizationInvitationData, c as AccountClient, d as AccountSession, e as AccountStatusData, f as ActionFetchOptions, g as AddPasskeyOptions, h as AuthActionResult, i as AuthClientError, j as AuthErrorContext, k as AuthOwlClient, l as AuthOwlErrorCode, m as AuthPasskey, n as AuthRequestContext, o as AuthResponseContext, p as AuthSession, q as AuthUser, C as ChangeEmailOptions, r as ChangePasswordData, s as ChangePasswordOptions, t as ConsentAcceptResult, u as ConsentStatus, v as CreateOrganizationOptions, D as DeleteAccountData, w as DeleteAccountOptions, x as DeleteOrganizationOptions, y as DeletePasskeyData, z as DeletePasskeyOptions, B as DisableTwoFactorOptions, E as EmailAuthData, F as EmailOtpAuthData, G as EmailOtpSignInOptions, H as EmailOtpType, I as EmailSignInOptions, J as EmailSignUpData, K as EmailSignUpOptions, L as EnableTwoFactorOptions, M as EnvironmentType, N as GenerateBackupCodesOptions, O as GetOrganizationInvitationOptions, Q as GetOrganizationOptions, R as GetToken, S as GetTokenOptions, T as InviteOrganizationMemberOptions, U as JsonObject, V as JsonPrimitive, W as JsonValue, X as LeaveOrganizationOptions, Y as LinkSocialData, Z as LinkSocialOptions, _ as ListOrganizationInvitationsOptions, $ as ListOrganizationMembersOptions, a0 as ListOrganizationRolesOptions, a1 as ListOrganizationTeamsOptions, a2 as MagicLinkData, a3 as MagicLinkSignInOptions, a4 as Organization, a5 as OrganizationClient, a6 as OrganizationDetails, a7 as OrganizationFilterOperator, a8 as OrganizationInvitation, a9 as OrganizationInvitationActionOptions, aa as OrganizationInvitationDetails, ab as OrganizationInvitationStatus, ac as OrganizationMember, ad as OrganizationMemberUser, ae as OrganizationMemberWithUser, af as OrganizationMembersData, ag as OrganizationRoleSummary, ah as OrganizationSelector, ai as OrganizationTeam, aj as OrganizationUserInvitation, ak as PasskeyAuthData, al as PasskeySignInOptions, am as PasswordResetData, an as PhoneAuthUser, ao as PhoneOtpStartData, ap as PhoneOtpStartOptions, aq as PhoneOtpVerifyData, ar as PhoneOtpVerifyOptions, as as ProjectCapabilities, at as PublicConfig, au as RejectOrganizationInvitationData, av as RemoveOrganizationMemberData, aw as RemoveOrganizationMemberOptions, ax as RequestPasswordResetOptions, ay as ResetPasswordOptions, az as RevokeSessionOptions, aA as SendOtpData, aB as SendTwoFactorOtpData, aC as SendTwoFactorOtpOptions, aD as SendVerificationOtpOptions, aE as SessionState, aF as SessionStore, aG as SetActiveOrganizationOptions, aH as SetActiveTeamOptions, aI as SignOutData, aJ as SocialAccount, aK as SocialAuthData, aL as SocialIdTokenOptions, aM as SocialSignInOptions, aN as TokenClient, aO as TwoFactorBackupCodesData, aP as TwoFactorEnableData, aQ as TwoFactorRedirectData, aR as TwoFactorStatusData, aS as TwoFactorVerifyData, aT as UnlinkSocialOptions, aU as UpdateOrganizationMemberRoleOptions, aV as UpdateOrganizationOptions, aW as UpdatePasskeyData, aX as UpdatePasskeyOptions, aY as UpdateProfileOptions, aZ as UpdateUnsafeMetadataOptions, a_ as UserMetadata, a$ as UsernameSignInOptions, b0 as VerifyBackupCodeOptions, b1 as VerifyEmailOtpData, b2 as VerifyEmailOtpOptions, b3 as VerifyTotpOptions, b4 as VerifyTwoFactorOtpOptions, b5 as WaitlistJoinData, b6 as WaitlistJoinOptions, b7 as acceptConsent, b8 as createAuthOwlClient, b9 as createTokenClient, ba as getConsentStatus, bb as getPublicConfig, bc as resolveProjectCapabilities } from './client-BJ378jdV.cjs';
4
4
  export { L as LOCALES, a as Locale, d as directionFor, i as isLocale } from './index-hIdXOzRp.cjs';
5
5
 
6
6
  /**
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { A as AuthConfig, D as DecodedPublishableKey, H as HasParams, O as OrganizationMembership, R as ResolvedAuthConfig, T as TransportError, a as TransportErrorKind, c as createMembershipHas, d as decodePublishableKey, m as membershipHas, b as membershipHasPermission, e as membershipHasTeam, r as resolveConfig, s as sessionCookieName } from './organization-membership--eTrgk_L.js';
2
- import { P as PhoneOtpChallengeData, A as AkedlyShieldStartProof } from './client-DwK6spWA.js';
3
- export { a as AUTH_CHALLENGE_HEADER, b as AcceptOrganizationInvitationData, c as AccountClient, d as AccountSession, e as AccountStatusData, f as ActionFetchOptions, g as AddPasskeyOptions, h as AuthActionResult, i as AuthClientError, j as AuthErrorContext, k as AuthOwlClient, l as AuthOwlErrorCode, m as AuthPasskey, n as AuthRequestContext, o as AuthResponseContext, p as AuthSession, q as AuthUser, C as ChangeEmailOptions, r as ChangePasswordData, s as ChangePasswordOptions, t as ConsentAcceptResult, u as ConsentStatus, v as CreateOrganizationOptions, D as DeleteAccountData, w as DeleteAccountOptions, x as DeleteOrganizationOptions, y as DeletePasskeyData, z as DeletePasskeyOptions, B as DisableTwoFactorOptions, E as EmailAuthData, F as EmailOtpAuthData, G as EmailOtpSignInOptions, H as EmailOtpType, I as EmailSignInOptions, J as EmailSignUpData, K as EmailSignUpOptions, L as EnableTwoFactorOptions, M as EnvironmentType, N as GenerateBackupCodesOptions, O as GetOrganizationInvitationOptions, Q as GetOrganizationOptions, R as GetToken, S as GetTokenOptions, T as InviteOrganizationMemberOptions, U as JsonObject, V as JsonPrimitive, W as JsonValue, X as LeaveOrganizationOptions, Y as LinkSocialData, Z as LinkSocialOptions, _ as ListOrganizationInvitationsOptions, $ as ListOrganizationMembersOptions, a0 as ListOrganizationRolesOptions, a1 as ListOrganizationTeamsOptions, a2 as MagicLinkData, a3 as MagicLinkSignInOptions, a4 as Organization, a5 as OrganizationClient, a6 as OrganizationDetails, a7 as OrganizationFilterOperator, a8 as OrganizationInvitation, a9 as OrganizationInvitationActionOptions, aa as OrganizationInvitationDetails, ab as OrganizationInvitationStatus, ac as OrganizationMember, ad as OrganizationMemberUser, ae as OrganizationMemberWithUser, af as OrganizationMembersData, ag as OrganizationRoleSummary, ah as OrganizationSelector, ai as OrganizationTeam, aj as OrganizationUserInvitation, ak as PasskeyAuthData, al as PasskeySignInOptions, am as PasswordResetData, an as PhoneAuthUser, ao as PhoneOtpStartData, ap as PhoneOtpStartOptions, aq as PhoneOtpVerifyData, ar as PhoneOtpVerifyOptions, as as ProjectCapabilities, at as PublicConfig, au as RejectOrganizationInvitationData, av as RemoveOrganizationMemberData, aw as RemoveOrganizationMemberOptions, ax as RequestPasswordResetOptions, ay as ResetPasswordOptions, az as RevokeSessionOptions, aA as SendOtpData, aB as SendTwoFactorOtpData, aC as SendTwoFactorOtpOptions, aD as SendVerificationOtpOptions, aE as SessionState, aF as SessionStore, aG as SetActiveOrganizationOptions, aH as SetActiveTeamOptions, aI as SignOutData, aJ as SocialAccount, aK as SocialAuthData, aL as SocialIdTokenOptions, aM as SocialSignInOptions, aN as TokenClient, aO as TwoFactorBackupCodesData, aP as TwoFactorEnableData, aQ as TwoFactorRedirectData, aR as TwoFactorStatusData, aS as TwoFactorVerifyData, aT as UnlinkSocialOptions, aU as UpdateOrganizationMemberRoleOptions, aV as UpdateOrganizationOptions, aW as UpdatePasskeyData, aX as UpdatePasskeyOptions, aY as UpdateProfileOptions, aZ as UpdateUnsafeMetadataOptions, a_ as UserMetadata, a$ as UsernameSignInOptions, b0 as VerifyBackupCodeOptions, b1 as VerifyEmailOtpData, b2 as VerifyEmailOtpOptions, b3 as VerifyTotpOptions, b4 as VerifyTwoFactorOtpOptions, b5 as WaitlistJoinData, b6 as WaitlistJoinOptions, b7 as acceptConsent, b8 as createAuthOwlClient, b9 as createTokenClient, ba as getConsentStatus, bb as getPublicConfig, bc as resolveProjectCapabilities } from './client-DwK6spWA.js';
2
+ import { P as PhoneOtpChallengeData, A as AkedlyShieldStartProof } from './client-CDn8-8i0.js';
3
+ export { a as AUTH_CHALLENGE_HEADER, b as AcceptOrganizationInvitationData, c as AccountClient, d as AccountSession, e as AccountStatusData, f as ActionFetchOptions, g as AddPasskeyOptions, h as AuthActionResult, i as AuthClientError, j as AuthErrorContext, k as AuthOwlClient, l as AuthOwlErrorCode, m as AuthPasskey, n as AuthRequestContext, o as AuthResponseContext, p as AuthSession, q as AuthUser, C as ChangeEmailOptions, r as ChangePasswordData, s as ChangePasswordOptions, t as ConsentAcceptResult, u as ConsentStatus, v as CreateOrganizationOptions, D as DeleteAccountData, w as DeleteAccountOptions, x as DeleteOrganizationOptions, y as DeletePasskeyData, z as DeletePasskeyOptions, B as DisableTwoFactorOptions, E as EmailAuthData, F as EmailOtpAuthData, G as EmailOtpSignInOptions, H as EmailOtpType, I as EmailSignInOptions, J as EmailSignUpData, K as EmailSignUpOptions, L as EnableTwoFactorOptions, M as EnvironmentType, N as GenerateBackupCodesOptions, O as GetOrganizationInvitationOptions, Q as GetOrganizationOptions, R as GetToken, S as GetTokenOptions, T as InviteOrganizationMemberOptions, U as JsonObject, V as JsonPrimitive, W as JsonValue, X as LeaveOrganizationOptions, Y as LinkSocialData, Z as LinkSocialOptions, _ as ListOrganizationInvitationsOptions, $ as ListOrganizationMembersOptions, a0 as ListOrganizationRolesOptions, a1 as ListOrganizationTeamsOptions, a2 as MagicLinkData, a3 as MagicLinkSignInOptions, a4 as Organization, a5 as OrganizationClient, a6 as OrganizationDetails, a7 as OrganizationFilterOperator, a8 as OrganizationInvitation, a9 as OrganizationInvitationActionOptions, aa as OrganizationInvitationDetails, ab as OrganizationInvitationStatus, ac as OrganizationMember, ad as OrganizationMemberUser, ae as OrganizationMemberWithUser, af as OrganizationMembersData, ag as OrganizationRoleSummary, ah as OrganizationSelector, ai as OrganizationTeam, aj as OrganizationUserInvitation, ak as PasskeyAuthData, al as PasskeySignInOptions, am as PasswordResetData, an as PhoneAuthUser, ao as PhoneOtpStartData, ap as PhoneOtpStartOptions, aq as PhoneOtpVerifyData, ar as PhoneOtpVerifyOptions, as as ProjectCapabilities, at as PublicConfig, au as RejectOrganizationInvitationData, av as RemoveOrganizationMemberData, aw as RemoveOrganizationMemberOptions, ax as RequestPasswordResetOptions, ay as ResetPasswordOptions, az as RevokeSessionOptions, aA as SendOtpData, aB as SendTwoFactorOtpData, aC as SendTwoFactorOtpOptions, aD as SendVerificationOtpOptions, aE as SessionState, aF as SessionStore, aG as SetActiveOrganizationOptions, aH as SetActiveTeamOptions, aI as SignOutData, aJ as SocialAccount, aK as SocialAuthData, aL as SocialIdTokenOptions, aM as SocialSignInOptions, aN as TokenClient, aO as TwoFactorBackupCodesData, aP as TwoFactorEnableData, aQ as TwoFactorRedirectData, aR as TwoFactorStatusData, aS as TwoFactorVerifyData, aT as UnlinkSocialOptions, aU as UpdateOrganizationMemberRoleOptions, aV as UpdateOrganizationOptions, aW as UpdatePasskeyData, aX as UpdatePasskeyOptions, aY as UpdateProfileOptions, aZ as UpdateUnsafeMetadataOptions, a_ as UserMetadata, a$ as UsernameSignInOptions, b0 as VerifyBackupCodeOptions, b1 as VerifyEmailOtpData, b2 as VerifyEmailOtpOptions, b3 as VerifyTotpOptions, b4 as VerifyTwoFactorOtpOptions, b5 as WaitlistJoinData, b6 as WaitlistJoinOptions, b7 as acceptConsent, b8 as createAuthOwlClient, b9 as createTokenClient, ba as getConsentStatus, bb as getPublicConfig, bc as resolveProjectCapabilities } from './client-CDn8-8i0.js';
4
4
  export { L as LOCALES, a as Locale, d as directionFor, i as isLocale } from './index-hIdXOzRp.js';
5
5
 
6
6
  /**
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- export{a as LOCALES,b as directionFor,c as isLocale}from'./chunk-M4QJVSXT.js';import {c as c$1,d,h,j as j$1,f}from'./chunk-4VJL4WGF.js';export{e as AUTH_CHALLENGE_HEADER,b as AuthOwlHttpError,g as createIdempotencyKey,k as getPublicConfig,a as resolveProjectCapabilities}from'./chunk-4VJL4WGF.js';import {i,k as k$1,j as j$2}from'./chunk-RRP2XNYV.js';export{g as TransportError,w as createMembershipHas,a as decodePublishableKey,v as membershipHas,t as membershipHasPermission,u as membershipHasTeam,f as resolveConfig,b as sessionCookieName}from'./chunk-RRP2XNYV.js';import'./chunk-T5SH3ZZP.js';function u(e){let n=new Uint8Array(e),t="";for(let o of n)t+=String.fromCharCode(o);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function g(e){let n=e.replace(/-/g,"+").replace(/_/g,"/"),t=(4-n.length%4)%4,i=n.padEnd(n.length+t,"="),o=atob(i),s=new ArrayBuffer(o.length),a=new Uint8Array(s);for(let l=0;l<o.length;l++)a[l]=o.charCodeAt(l);return s}function y(){return be.stubThis(globalThis?.PublicKeyCredential!==void 0&&typeof globalThis.PublicKeyCredential=="function")}var be={stubThis:e=>e};function C(e){let{id:n}=e;return {...e,id:g(n),transports:e.transports}}function T(e){return e==="localhost"||/^((xn--[a-z0-9-]+|[a-z0-9]+(-[a-z0-9]+)*)\.)+([a-z]{2,}|xn--[a-z0-9-]+)$/i.test(e)}var c=class extends Error{constructor({message:n,code:t,cause:i,name:o}){super(n,{cause:i}),Object.defineProperty(this,"code",{enumerable:true,configurable:true,writable:true,value:void 0}),this.name=o??i.name,this.code=t;}};function W({error:e,options:n}){let{publicKey:t}=n;if(!t)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(n.signal instanceof AbortSignal)return new c({message:"Registration ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else if(e.name==="ConstraintError"){if(t.authenticatorSelection?.requireResidentKey===true)return new c({message:"Discoverable credentials were required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT",cause:e});if(n.mediation==="conditional"&&t.authenticatorSelection?.userVerification==="required")return new c({message:"User verification was required during automatic registration but it could not be performed",code:"ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE",cause:e});if(t.authenticatorSelection?.userVerification==="required")return new c({message:"User verification was required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT",cause:e})}else {if(e.name==="InvalidStateError")return new c({message:"The authenticator was previously registered",code:"ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED",cause:e});if(e.name==="NotAllowedError")return new c({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="NotSupportedError")return t.pubKeyCredParams.filter(o=>o.type==="public-key").length===0?new c({message:'No entry in pubKeyCredParams was of type "public-key"',code:"ERROR_MALFORMED_PUBKEYCREDPARAMS",cause:e}):new c({message:"No available authenticator supported any of the specified pubKeyCredParams algorithms",code:"ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG",cause:e});if(e.name==="SecurityError"){let i=globalThis.location.hostname;if(T(i)){if(t.rp.id!==i)return new c({message:`The RP ID "${t.rp.id}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new c({message:`${globalThis.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="TypeError"){if(t.user.id.byteLength<1||t.user.id.byteLength>64)return new c({message:"User ID was not between 1 and 64 characters",code:"ERROR_INVALID_USER_ID_LENGTH",cause:e})}else if(e.name==="UnknownError")return new c({message:"The authenticator was unable to process the specified options, or could not create a new credential",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return e}var I=class{constructor(){Object.defineProperty(this,"controller",{enumerable:true,configurable:true,writable:true,value:void 0});}createNewAbortSignal(){if(this.controller){let t=new Error("Cancelling existing WebAuthn API call for new one");t.name="AbortError",this.controller.abort(t);}let n=new AbortController;return this.controller=n,n.signal}cancelCeremony(){if(this.controller){let n=new Error("Manually cancelling existing WebAuthn API call");n.name="AbortError",this.controller.abort(n),this.controller=void 0;}}},k=new I;var Re=["cross-platform","platform"];function P(e){if(e&&!(Re.indexOf(e)<0))return e}async function j(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:n,useAutoRegister:t=false}=e;if(!y())throw new Error("WebAuthn is not supported in this browser");let i={...n,challenge:g(n.challenge),user:{...n.user,id:g(n.user.id)},excludeCredentials:n.excludeCredentials?.map(C)},o={};t&&(o.mediation="conditional"),o.publicKey=i,o.signal=k.createNewAbortSignal();let s;try{s=await navigator.credentials.create(o);}catch(p){throw W({error:p,options:o})}if(!s)throw new Error("Registration was not completed");let{id:a,rawId:l,response:r,type:O}=s,d;typeof r.getTransports=="function"&&(d=r.getTransports());let h;if(typeof r.getPublicKeyAlgorithm=="function")try{h=r.getPublicKeyAlgorithm();}catch(p){U("getPublicKeyAlgorithm()",p);}let f;if(typeof r.getPublicKey=="function")try{let p=r.getPublicKey();p!==null&&(f=u(p));}catch(p){U("getPublicKey()",p);}let m;if(typeof r.getAuthenticatorData=="function")try{m=u(r.getAuthenticatorData());}catch(p){U("getAuthenticatorData()",p);}return {id:a,rawId:u(l),response:{attestationObject:u(r.attestationObject),clientDataJSON:u(r.clientDataJSON),transports:d,publicKeyAlgorithm:h,publicKey:f,authenticatorData:m},type:O,clientExtensionResults:s.getClientExtensionResults(),authenticatorAttachment:P(s.authenticatorAttachment)}}function U(e,n){console.warn(`The browser extension that intercepted this WebAuthn API call incorrectly implemented ${e}. You should report this error to them.
1
+ export{a as LOCALES,b as directionFor,c as isLocale}from'./chunk-M4QJVSXT.js';import {c as c$1,d,h,j as j$1,f}from'./chunk-6CEKG2JL.js';export{e as AUTH_CHALLENGE_HEADER,b as AuthOwlHttpError,g as createIdempotencyKey,k as getPublicConfig,a as resolveProjectCapabilities}from'./chunk-6CEKG2JL.js';import {i,k as k$1,j as j$2}from'./chunk-RRP2XNYV.js';export{g as TransportError,w as createMembershipHas,a as decodePublishableKey,v as membershipHas,t as membershipHasPermission,u as membershipHasTeam,f as resolveConfig,b as sessionCookieName}from'./chunk-RRP2XNYV.js';import'./chunk-T5SH3ZZP.js';function u(e){let n=new Uint8Array(e),t="";for(let o of n)t+=String.fromCharCode(o);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function g(e){let n=e.replace(/-/g,"+").replace(/_/g,"/"),t=(4-n.length%4)%4,i=n.padEnd(n.length+t,"="),o=atob(i),s=new ArrayBuffer(o.length),a=new Uint8Array(s);for(let l=0;l<o.length;l++)a[l]=o.charCodeAt(l);return s}function y(){return be.stubThis(globalThis?.PublicKeyCredential!==void 0&&typeof globalThis.PublicKeyCredential=="function")}var be={stubThis:e=>e};function C(e){let{id:n}=e;return {...e,id:g(n),transports:e.transports}}function T(e){return e==="localhost"||/^((xn--[a-z0-9-]+|[a-z0-9]+(-[a-z0-9]+)*)\.)+([a-z]{2,}|xn--[a-z0-9-]+)$/i.test(e)}var c=class extends Error{constructor({message:n,code:t,cause:i,name:o}){super(n,{cause:i}),Object.defineProperty(this,"code",{enumerable:true,configurable:true,writable:true,value:void 0}),this.name=o??i.name,this.code=t;}};function W({error:e,options:n}){let{publicKey:t}=n;if(!t)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(n.signal instanceof AbortSignal)return new c({message:"Registration ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else if(e.name==="ConstraintError"){if(t.authenticatorSelection?.requireResidentKey===true)return new c({message:"Discoverable credentials were required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT",cause:e});if(n.mediation==="conditional"&&t.authenticatorSelection?.userVerification==="required")return new c({message:"User verification was required during automatic registration but it could not be performed",code:"ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE",cause:e});if(t.authenticatorSelection?.userVerification==="required")return new c({message:"User verification was required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT",cause:e})}else {if(e.name==="InvalidStateError")return new c({message:"The authenticator was previously registered",code:"ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED",cause:e});if(e.name==="NotAllowedError")return new c({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="NotSupportedError")return t.pubKeyCredParams.filter(o=>o.type==="public-key").length===0?new c({message:'No entry in pubKeyCredParams was of type "public-key"',code:"ERROR_MALFORMED_PUBKEYCREDPARAMS",cause:e}):new c({message:"No available authenticator supported any of the specified pubKeyCredParams algorithms",code:"ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG",cause:e});if(e.name==="SecurityError"){let i=globalThis.location.hostname;if(T(i)){if(t.rp.id!==i)return new c({message:`The RP ID "${t.rp.id}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new c({message:`${globalThis.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="TypeError"){if(t.user.id.byteLength<1||t.user.id.byteLength>64)return new c({message:"User ID was not between 1 and 64 characters",code:"ERROR_INVALID_USER_ID_LENGTH",cause:e})}else if(e.name==="UnknownError")return new c({message:"The authenticator was unable to process the specified options, or could not create a new credential",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return e}var I=class{constructor(){Object.defineProperty(this,"controller",{enumerable:true,configurable:true,writable:true,value:void 0});}createNewAbortSignal(){if(this.controller){let t=new Error("Cancelling existing WebAuthn API call for new one");t.name="AbortError",this.controller.abort(t);}let n=new AbortController;return this.controller=n,n.signal}cancelCeremony(){if(this.controller){let n=new Error("Manually cancelling existing WebAuthn API call");n.name="AbortError",this.controller.abort(n),this.controller=void 0;}}},k=new I;var Re=["cross-platform","platform"];function P(e){if(e&&!(Re.indexOf(e)<0))return e}async function j(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:n,useAutoRegister:t=false}=e;if(!y())throw new Error("WebAuthn is not supported in this browser");let i={...n,challenge:g(n.challenge),user:{...n.user,id:g(n.user.id)},excludeCredentials:n.excludeCredentials?.map(C)},o={};t&&(o.mediation="conditional"),o.publicKey=i,o.signal=k.createNewAbortSignal();let s;try{s=await navigator.credentials.create(o);}catch(p){throw W({error:p,options:o})}if(!s)throw new Error("Registration was not completed");let{id:a,rawId:l,response:r,type:O}=s,d;typeof r.getTransports=="function"&&(d=r.getTransports());let h;if(typeof r.getPublicKeyAlgorithm=="function")try{h=r.getPublicKeyAlgorithm();}catch(p){U("getPublicKeyAlgorithm()",p);}let f;if(typeof r.getPublicKey=="function")try{let p=r.getPublicKey();p!==null&&(f=u(p));}catch(p){U("getPublicKey()",p);}let m;if(typeof r.getAuthenticatorData=="function")try{m=u(r.getAuthenticatorData());}catch(p){U("getAuthenticatorData()",p);}return {id:a,rawId:u(l),response:{attestationObject:u(r.attestationObject),clientDataJSON:u(r.clientDataJSON),transports:d,publicKeyAlgorithm:h,publicKey:f,authenticatorData:m},type:O,clientExtensionResults:s.getClientExtensionResults(),authenticatorAttachment:P(s.authenticatorAttachment)}}function U(e,n){console.warn(`The browser extension that intercepted this WebAuthn API call incorrectly implemented ${e}. You should report this error to them.
2
2
  `,n);}function $(){if(!y())return v.stubThis(new Promise(n=>n(false)));let e=globalThis.PublicKeyCredential;return e?.isConditionalMediationAvailable===void 0?v.stubThis(new Promise(n=>n(false))):v.stubThis(e.isConditionalMediationAvailable())}var v={stubThis:e=>e};function Y({error:e,options:n}){let{publicKey:t}=n;if(!t)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(n.signal instanceof AbortSignal)return new c({message:"Authentication ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else {if(e.name==="NotAllowedError")return new c({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="SecurityError"){let i=globalThis.location.hostname;if(T(i)){if(t.rpId!==i)return new c({message:`The RP ID "${t.rpId}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new c({message:`${globalThis.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="UnknownError")return new c({message:"The authenticator was unable to process the specified options, or could not create a new assertion signature",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return e}async function Q(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:n,useBrowserAutofill:t=false,verifyBrowserAutofillInput:i=true}=e;if(!y())throw new Error("WebAuthn is not supported in this browser");let o;n.allowCredentials?.length!==0&&(o=n.allowCredentials?.map(C));let s={...n,challenge:g(n.challenge),allowCredentials:o},a={};if(t){if(!await $())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');a.mediation="conditional",s.allowCredentials=[];}a.publicKey=s,a.signal=k.createNewAbortSignal();let l;try{l=await navigator.credentials.get(a);}catch(m){throw Y({error:m,options:a})}if(!l)throw new Error("Authentication was not completed");let{id:r,rawId:O,response:d,type:h}=l,f;return d.userHandle&&(f=u(d.userHandle)),{id:r,rawId:u(O),response:{authenticatorData:u(d.authenticatorData),clientDataJSON:u(d.clientDataJSON),signature:u(d.signature),userHandle:f},type:h,clientExtensionResults:l.getClientExtensionResults(),authenticatorAttachment:P(l.authenticatorAttachment)}}var Z={authenticate:e=>Q(e),register:e=>j(e),errorCode:e=>e instanceof c?e.code:void 0};function ee(e){return `${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/consent`}async function _(e){let n=await c$1(e,ee(e),{init:{method:"GET",credentials:"include"},maxResponseBytes:65536,decode:we});return n.response.status===401?{required:false}:d(n,"consent status")}async function F(e,n){if(!Number.isSafeInteger(n)||n<1)throw new TypeError("Consent version must be a positive integer.");return d(await c$1(e,ee(e),{init:{method:"POST",headers:{"content-type":"application/json"},credentials:"include",body:JSON.stringify({version:n})},maxResponseBytes:64*1024,decode:Se}),"consent accept")}function we(e){let n=i(e),t=k$1(n.required),i$1=Ee(n.needsConsent),o=te(n.version),s=X(n.termsUrl),a=X(n.privacyUrl);return {required:t,...i$1===void 0?{}:{needsConsent:i$1},...o===void 0?{}:{version:o},...s===void 0?{}:{termsUrl:s},...a===void 0?{}:{privacyUrl:a}}}function Se(e){let n=i(e),t=te(n.version);return {ok:k$1(n.ok),...t===void 0?{}:{version:t}}}function Ee(e){if(e===void 0||typeof e=="boolean")return e;throw new TypeError("Invalid consent response.")}function te(e){if(e===void 0||Number.isSafeInteger(e)&&e>=1)return e;throw new TypeError("Invalid consent response.")}function X(e){if(e===void 0||typeof e=="string"&&e.length<=4096)return e;throw new TypeError("Invalid consent response.")}var Ce=30;function Te(e){return typeof e?.exp=="number"?e.exp:null}function ke(e){let n=e.split(".")[1];if(!n)return null;try{let t=n.replace(/-/g,"+").replace(/_/g,"/"),i=JSON.parse(atob(t));return typeof i=="object"&&i!==null?i:null}catch{return null}}function N(e){let n=new Map;async function t(s={}){let a=s.template===void 0?null:s.template.trim().toLowerCase();if(a==="")throw new TypeError("Template missing");let l=a??"",r=n.get(l);r||(r={activeKey:null,cachedByKey:new Map,inflight:null,sequence:0},n.set(l,r));let O=s.forceRefresh===true;if(!O){let p=r.activeKey?r.cachedByKey.get(r.activeKey):null;if(p&&p.exp-Date.now()/1e3>Ce)return p.token;if(r.inflight)return r.inflight}let d$1=++r.sequence,h=()=>n.get(l)===r&&r.sequence===d$1,f=(async()=>{let p=a?`${e.projectBaseURL}/token/${encodeURIComponent(a)}`:`${e.projectBaseURL}/token`,K=await c$1(e,p,{init:{method:"GET",credentials:"include"},maxResponseBytes:64*1024,decode:E=>Pe(E,a!==null)});if(K.response.status===401)return h()&&i(),null;let z=d(K,"token"),ne=z.policyVersion,x=z.token,b=ke(x),M=Te(b);if(h())if(M!==null){let E=typeof b?.sub=="string"?b.sub:null,oe=typeof b?.org_id=="string"?b.org_id:null;if(!a||E){let B=JSON.stringify([e.projectBaseURL,E,oe,a,ne]);r.cachedByKey.clear(),r.cachedByKey.set(B,{token:x,exp:M}),r.activeKey=B;}else o(r);}else o(r);return x})();if(O)return f;let m=f.finally(()=>{r.inflight===m&&(r.inflight=null);});return r.inflight=m,m}function i(){n.clear();}function o(s){s.cachedByKey.clear(),s.activeKey=null;}return {getToken:t,clear:i}}function Pe(e,n){let t=i(e),i$1=j$2(t.token);if(i$1.length===0||i$1.length>32*1024)throw new TypeError("Invalid token response.");if(!n)return {token:i$1,policyVersion:0};let o=i(t.template);if(!Number.isSafeInteger(o.policyVersion)||o.policyVersion<1)throw new TypeError("Invalid token response.");return {token:i$1,policyVersion:o.policyVersion}}function xe(e){let n=N(e),t=h(e,n.clear,(a,l)=>j$1(a,l,Z)),i=f(e,`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}`),o=a=>(...l)=>(n.clear(),a(...l)),s={getConsentStatus:()=>_(e),acceptConsent:a=>F(e,a),getToken:n.getToken,waitlist:{join:(a,l)=>i.request("/waitlist",{method:"POST",body:a,fetchOptions:l,credentials:"omit"})},account:{...t.account,updateUnsafeMetadata:o(t.account.updateUnsafeMetadata),updateProfile:o(t.account.updateProfile),changeEmail:o(t.account.changeEmail),changePassword:o(t.account.changePassword),revokeSession:o(t.account.revokeSession),delete:o(t.account.delete)},signIn:{email:o(t.signIn.email),username:o(t.signIn.username),social:o(t.signIn.social),sso:t.signIn.sso,magicLink:t.signIn.magicLink,emailOtp:o(t.signIn.emailOtp),passkey:o(t.signIn.passkey)},signUp:{email:o(t.signUp.email)},emailOtp:{...t.emailOtp,verifyEmail:o(t.emailOtp.verifyEmail)},twoFactor:{enable:t.twoFactor.enable,disable:o(t.twoFactor.disable),verifyTotp:o(t.twoFactor.verifyTotp),verifyBackupCode:o(t.twoFactor.verifyBackupCode),sendOtp:t.twoFactor.sendOtp,verifyOtp:o(t.twoFactor.verifyOtp),generateBackupCodes:t.twoFactor.generateBackupCodes},phoneOtp:{prepare:t.phoneOtp.prepare,start:t.phoneOtp.start,verify:o(t.phoneOtp.verify)},signOut:o(t.signOut)};return {...t,...s}}async function De(e){if(typeof window>"u")throw new Error("Akedly Shield challenges must be solved in a browser.");let n=await Ie(),t=e.challengeRequired?await n.solvePow(e.challenge,e.difficulty):null,i=e.turnstile.required?await n.getTurnstileToken(Ue(e.turnstile.siteKey)):void 0;return {connectionId:e.connectionId,...t?{challengeToken:e.challengeToken,nonce:t.nonce}:{},...i?{turnstileToken:i}:{}}}async function Ie(){return import('@akedly/shield')}function Ue(e){if(!e)throw new Error("Akedly Shield did not provide a Turnstile site key.");return e}var S=class extends Error{constructor(t,i){super(t);this.cause=i;this.name="AuthOwlError";}cause},L=class extends S{constructor(t,i){super(`Rate limited. Retry after ${t}s.`,i);this.retryAfterSeconds=t;this.name="RateLimitedError";}retryAfterSeconds},V=class extends S{constructor(n="invalid publishable key",t){super(n,t),this.name="InvalidKeyError";}};
3
3
  export{S as AuthOwlError,V as InvalidKeyError,L as RateLimitedError,F as acceptConsent,xe as createAuthOwlClient,N as createTokenClient,_ as getConsentStatus,De as solvePhoneOtpChallenge};
package/dist/native.cjs CHANGED
@@ -1,2 +1,2 @@
1
- 'use strict';var Jn=Object.defineProperty;var Je=(e,t)=>()=>(e&&(t=e(e=0)),t);var $n=(e,t)=>{for(var n in t)Jn(e,n,{get:t[n],enumerable:true});};function ee(){return typeof window<"u"&&typeof document<"u"&&typeof crypto<"u"&&typeof crypto.subtle?.digest=="function"}var ve=Je(()=>{});var ye={};$n(ye,{beginCrossSiteSignIn:()=>Fi,challengeFor:()=>Dn,completeCrossSiteSignIn:()=>Hi,takeHandoffCode:()=>Un});function En(e){let t="";for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function Dn(e){let t=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e));return En(new Uint8Array(t))}function Ni(){return En(crypto.getRandomValues(new Uint8Array(zi)))}function zn(e,t){let n=window.location.protocol==="https:"?"; Secure":"";document.cookie=`${vn}=${e}; Path=/; Max-Age=${t}; SameSite=Lax${n}`;}function Li(){for(let e of document.cookie.split(";")){let t=e.indexOf("=");if(!(t<0)&&e.slice(0,t).trim()===vn)return e.slice(t+1).trim()||null}return null}function Mi(){zn("",0);}function Cn(e){return new URL(e,window.location.href).toString()}async function Fi(e,t){let n=t.callbackURL?Cn(t.callbackURL):null;if(n&&new URL(n).origin!==window.location.origin)return null;let o=Ni(),i=new URL(`${e.projectBaseURL}/session/start`);if(i.searchParams.set("pk",e.publishableKey),i.searchParams.set("kind",t.kind),t.kind==="social")i.searchParams.set("provider",t.provider),t.scopes?.length&&i.searchParams.set("scopes",t.scopes.join(",")),t.loginHint&&i.searchParams.set("loginHint",t.loginHint),t.requestSignUp!==void 0&&i.searchParams.set("requestSignUp",t.requestSignUp?"1":"0");else for(let r of _i){let a=t[r];a&&i.searchParams.set(r,a);}let s=`${window.location.origin}${window.location.pathname}${window.location.search}`;i.searchParams.set("cb",n??s);for(let[r,a]of [["err",t.errorCallbackURL],["new",t.newUserCallbackURL]])a&&i.searchParams.set(r,Cn(a));return i.searchParams.set("challenge",await Dn(o)),zn(o,Ui),i.toString()}function Un(){if(typeof window>"u")return null;let e=window.location.hash;if(!e.includes(Ke))return null;let t=new URLSearchParams(e.replace(/^#/,"")),n=t.get(Ke);if(!n)return null;t.delete(Ke);let o=t.toString();return window.history.replaceState(window.history.state,"",`${window.location.pathname}${window.location.search}${o?`#${o}`:""}`),n}async function Hi(e,t){if(!ee())return false;let n=Un();if(!n)return false;let o=Li();if(Mi(),!o)return false;t.beginSession({remember:true});let{error:i}=await e.request("/session/exchange",{method:"POST",body:{code:n,verifier:o}});return i===null}var vn,Ke,zi,Ui,_i,be=Je(()=>{ve();vn="authowl_handoff_verifier",Ke="authowl_code",zi=32,Ui=900,_i=["email","providerId","domain","organizationSlug"];});var Gn=/^(pk_(live|test))_([0-9a-f-]{36})_([A-Za-z0-9]{20,})$/i,Wn=/^sk_/i;function Ae(e){if(typeof e!="string"||e.length===0)throw new Error("publishableKey is required");if(Wn.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=Gn.exec(e);if(!t)throw new Error("publishableKey is malformed; expected pk_(live|test)_<uuid>_<base62>");return {prefix:t[1].toLowerCase(),env:t[2].toLowerCase(),projectId:t[3].toLowerCase()}}var $e=/^http:\/\/(?:(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*localhost|127\.0\.0\.1|\[::1\])(?::\d+)?(?:\/|$)/i;function we(e,t){throw new Error(`${e}: ${t}`)}function Ge(e,t){let n;try{n=new URL(String(e));}catch{throw new TypeError("Transport URL must be absolute.")}if(n.username||n.password||n.hash)throw new TypeError("Transport URL must not contain credentials or a fragment.");let o=n.toString();if(n.protocol!=="https:"&&!(n.protocol==="http:"&&t.allowHttpLoopback&&$e.test(o)))throw new TypeError("Transport URL must use HTTPS except on approved loopback.");return n}function We(e,t){(typeof e!="string"||!/^https?:\/\/[^/?#@\\\s]+\/?$/i.test(e))&&we("apiUrl","origin required");let n;try{n=new URL(e);}catch{we("apiUrl","origin required");}return n.protocol==="http:"&&(!t.allowHttpLoopback||!$e.test(e))&&we("apiUrl","HTTPS required except exact loopback"),n.origin}function j(e,t){try{return e?.getItem(t)??null}catch{return null}}function J(e,t,n){try{n===null?e?.removeItem(t):e?.setItem(t,n);}catch{}}function $(){try{return globalThis.localStorage}catch{return}}function V(){try{return globalThis.sessionStorage}catch{return}}var Xn="authowl.session-challenge",Yn=e=>`${Xn}.${e}`,Qn="set-auth-challenge",Xe="x-authowl-challenge",Qe="INVALID_TWO_FACTOR_COOKIE",Zn=2048,ie=e=>e!==null&&e.length<=Zn,Ye=/^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/;function eo(e){let t=[];for(let n of e.split(";")){let o=n.trimStart(),i=o.indexOf("=");i<=0||t.push([o.slice(0,i).trimEnd(),o.slice(i+1)]);}return t}function Ze(e){let t=Yn(e),n=new Map;function o(){return n.size===0?null:[...n].map(([a,u])=>`${a}=${u}`).join("; ")}function i(){let a=o();J(V(),t,ie(a)?a:null);}function s(a){for(let[u,m]of eo(a))Ye.test(u)&&(m===""?n.delete(u):Ye.test(m)&&n.set(u,m));}let r=j(V(),t);return ie(r)&&s(r),{presentOn(a){let u=o();a.delete(Xe),ie(u)&&a.set(Xe,u);},observe(a){let u=a.get(Qn);ie(u)&&(s(u),i());},clear(){n.clear(),i();}}}var to="authowl.session-token",no="authowl.cookie-transport",tt="ok",nt="bearer",oo=e=>`${to}.${e}`,io=e=>`${no}.${e}`,ro="set-auth-token",so="x-authowl-session-transport",ao="bearer";function uo(e){return e===tt?"cookies":e===nt?"bearer":"unknown"}function co(e){return e==="cookies"?tt:e==="bearer"?nt:null}function lo(e){let t=oo(e),n=io(e),o=Ze(e),i=null,s=false,r=null,a=uo(j($(),n)),u=()=>a==="unknown",m=0,f=null,y=false;function b(){let h=j(V(),t);if(h!==null)return s=true,h;let C=j($(),t);return C!==null?(s=false,C):null}i=b(),i!==null&&u()&&(y=true);function A(){if(!(!y||!f)){y=false;try{f();}catch{}}}function c(){let h=a==="bearer"?i:null,[C,oe]=s?[V(),$()]:[$(),V()];J(oe,t,null),J(C,t,h);}function l(h){h!==null&&r!==null&&(s=r,r=null),i=h,c(),h!==null&&u()&&(y=true,A());}function g(h){a=h,J($(),n,co(h));}function O(){g("unknown"),y=false;}function R(){return i===null&&(i=b()),i}function K(){let h=b();return h!==null&&(i=h),i}function B(h){K()===h&&c();}function w(){m+=1,r=null,s=false,l(null),o.clear(),O();}let T=()=>a!=="cookies";return {hasToken:()=>R()!==null,declareOn(h){if(h.has("authorization"))return false;let C=R();return !C&&!T()?false:(C&&h.set("authorization",`Bearer ${C}`),h.set(so,ao),o.presentOn(h),true)},wantsToken:T,needsProbe:u,observe(h){let C=h.get(ro);C&&l(C),o.observe(h);},dropChallenge:o.clear,measureWith(h){f=h,A();},beginRead(){let h=R(),C=m;return {carriedToken:h!==null,endIfDead(){h!==null&&K()===h&&m===C&&w();},recordCookieVerdict(oe){if(m===C&&u()){if(g(oe?"cookies":"bearer"),oe){l(null);return}B(h);}}}},beginSession({remember:h}){m+=1,r=!h,o.clear(),O();},endSession:w}}var et=new Map;function ot(e){let t=et.get(e);if(t)return t;let n=lo(e);return et.set(e,n),n}function po(e,t){return t?.headers?new Headers(t.headers):typeof e=="object"&&e!==null&&"headers"in e?new Headers(e.headers):new Headers}function it(e,t){let n=ot(e),o=(r,a)=>(t??globalThis.fetch)(r,a);return {fetch:async(r,a)=>{if(a?.credentials==="omit"||!n.wantsToken())return o(r,a);let u=po(r,a),m=n.declareOn(u),f=await o(r,{...a,headers:u});return m&&n.observe(f.headers),f},probe:o,tokens:n}}function Oe(e){if(!e||typeof e!="object")throw new Error("AuthConfig is required");let t=Ae(e.publishableKey),n=We(e.apiUrl,{allowHttpLoopback:t.env==="test"}),o=`${n}/api/projects/${t.projectId}/auth`,{fetch:i,...s}=it(t.projectId,e.fetch);return {...e,apiUrl:n,decoded:t,projectBaseURL:o,fetch:i,session:s}}var fo=1e4,go=1024*1024,E=class extends Error{kind;requestId;constructor(t,n){super(ko(t)),this.name="TransportError",this.kind=t,this.requestId=n;}},at=new WeakSet;function D(e,t){let n=new E(e,t);return at.add(n),n}async function ut({fetchImpl:e,url:t,init:n={},timeoutMs:o=fo,maxResponseBytes:i=go,allowHttpLoopback:s=false,decode:r}){st(o,"timeoutMs"),st(i,"maxResponseBytes");let a=Ge(t,{allowHttpLoopback:s}),u=n.signal,m=new AbortController,f=null,y,b=new Promise(g=>{y=g;}),A=g=>{f===null&&(f=g,y({type:"abort",kind:g}),m.abort());},c=()=>A("aborted");u?.addEventListener("abort",c,{once:true});let l=setTimeout(()=>A("timeout"),o);u?.aborted&&c();try{if(f!==null)throw D(f);let g;try{g=await Promise.race([e(a.toString(),{...n,redirect:"error",signal:m.signal}).then(T=>({type:"response",response:T})),b]);}catch{throw D(f??"network")}if(g.type==="abort")throw D(g.kind);if(!mo(g.response))throw D("invalid_response");let O=g.response,R=Oo(O.headers),K=await ho(O,i,b,()=>f,R),B=Ao(O,K,R),w;try{w=O.ok&&r?r(B,Object.freeze({status:O.status})):B;}catch{throw D("invalid_response",R)}return {response:O,data:w,...R===void 0?{}:{requestId:R}}}catch(g){throw g instanceof E&&at.has(g)?g:D(f??"network")}finally{clearTimeout(l),u?.removeEventListener("abort",c);}}function mo(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 ho(e,t,n,o,i){let s=e.headers.get("content-length");if(s!==null){if(!/^\d+$/.test(s))throw rt(e.body),D("invalid_response",i);if(Number(s)>t)throw rt(e.body),D("response_too_large",i)}if(!e.body)return "";let r;try{r=e.body.getReader();}catch{throw D("network",i)}let a=[],u=0,m=null;try{for(;;){let b;try{b=await Promise.race([r.read(),n]);}catch{m=D(o()??"network",i);break}if(yo(b)){m=D(b.kind,i);break}let{done:A,value:c}=b;if(A)break;if(c.byteLength!==0){if(u+=c.byteLength,u>t){m=D("response_too_large",i);break}a.push(c);}}}finally{m&&bo(r);try{r.releaseLock();}catch{}}if(m)throw m;let f=new Uint8Array(u),y=0;for(let b of a)f.set(b,y),y+=b.byteLength;try{return new TextDecoder("utf-8",{fatal:!0}).decode(f)}catch{throw D("invalid_response",i)}}function yo(e){return "type"in e&&e.type==="abort"}function rt(e){if(e)try{e.cancel().catch(()=>{});}catch{}}function bo(e){try{e.cancel().catch(()=>{});}catch{}}function Ao(e,t,n){if(e.status===204||e.status===205)return null;let o=wo(e.headers.get("content-type"));if(!e.ok&&(!o||t.length===0))return null;if(!o||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 wo(e){if(e===null)return false;let t=e.split(";",1)[0]?.trim().toLowerCase();return t==="application/json"||t?.endsWith("+json")===true}function Oo(e){let t=e.get("x-request-id")?.trim();if(!(!t||t.length>256||!/^[A-Za-z0-9._:-]+$/.test(t)))return t}function st(e,t){if(!Number.isInteger(e)||e<=0)throw new TypeError(`${t} must be a positive integer.`)}function ko(e){switch(e){case "aborted":return "The request was cancelled.";case "timeout":return "The request timed out.";case "response_too_large":return "The response exceeded the allowed size.";case "invalid_response":return "The service returned an invalid response.";case "network":return "The network request could not be completed."}}var ke=class extends Error{status;requestId;constructor(t,n,o){super(`${t} request failed with status ${n.status}.`),this.name="AuthOwlHttpError",this.status=n.status,this.requestId=o;}};function re(e,t,n={}){let o=new Headers(n.init?.headers);return o.set("x-publishable-key",e.publishableKey),ut({fetchImpl:e.fetch,url:t,init:{...n.init,headers:o},allowHttpLoopback:e.decoded.env==="test",...n.timeoutMs===void 0?{}:{timeoutMs:n.timeoutMs},...n.maxResponseBytes===void 0?{}:{maxResponseBytes:n.maxResponseBytes},...n.decode===void 0?{}:{decode:n.decode}})}function ct(e,t){if(!e.response.ok)throw new ke(t,e.response,e.requestId);return e.data}var So="x-authowl-turnstile-token",Ro=1e4,To=32,Io=2e4;function G(e,t){return {post:(n,o,i,s)=>e.request(n,{method:"POST",body:o,fetchOptions:i,decode:s}),mutation:async(n,o)=>{let i=await n;return i.error===null&&(o===void 0||i.data!==null&&o(i.data))&&t(),i}}}function Ie(e,t=e.projectBaseURL){return {async request(n,o={}){let i=Co(t,n,o.query),s=o.method??(o.body===void 0?"GET":"POST"),r=new Headers(o.fetchOptions?.headers);o.fetchOptions?.authChallengeToken&&r.set(So,o.fetchOptions.authChallengeToken),o.body!==void 0&&r.set("content-type","application/json");let a={method:s,headers:r,credentials:o.credentials??"include",...o.body===void 0?{}:{body:JSON.stringify(o.body)}},u=Object.freeze({method:s,path:n});await o.fetchOptions?.onRequest?.(u);let m=xo(s,o.fetchOptions),f;try{f=await Po(e,i,{...a,signal:o.fetchOptions?.signal},m);}catch(g){let O=lt(g);return await o.fetchOptions?.onError?.(Se(u,O,Do(g))),{data:null,error:O}}let{response:y,requestId:b}=f,A=_o(n,f.data),c=A;if(y.ok)try{c=Te(A),o.decode&&(c=o.decode(c));}catch{let g=lt(new E("invalid_response",b));return await o.fetchOptions?.onError?.(Se(u,g,"invalid_response")),{data:null,error:g}}let l=Object.freeze({...u,status:y.status,...b===void 0?{}:{requestId:b}});if(await o.fetchOptions?.onResponse?.(l),!y.ok){let g=vo(y,A,b);return g.code===Qe&&e.session.tokens.dropChallenge(),await o.fetchOptions?.onError?.(Se(u,g,"api")),{data:null,error:g}}return await o.fetchOptions?.onSuccess?.(l),{data:c,error:null}}}}async function Po(e,t,n,o){let i=Date.now()+Ro;for(let s=0;s<o;s+=1){let r=i-Date.now();if(r<=0)throw new E("timeout");try{let a=await re(e,t,{init:n,timeoutMs:Math.max(1,Math.ceil(r))});if(a.response.status<500||s===o-1)return a}catch(a){if(s===o-1||!(a instanceof E)||a.kind!=="network")throw a}await zo(50*2**s,n.signal,i);}throw new E("network")}function xo(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 Co(e,t,n){let o=new URL(`${e}${t.startsWith("/")?t:`/${t}`}`);for(let[i,s]of Object.entries(n??{}))s!==void 0&&o.searchParams.set(i,String(s));return o.toString()}function vo(e,t,n){let o=Z(t)?t:{},i=Eo(o,e.headers);return {status:e.status,statusText:e.statusText,code:typeof o.code=="string"?o.code:void 0,...n===void 0?{}:{requestId:n},...typeof o.current_version=="number"?{currentVersion:o.current_version}:{},...i!==void 0?{retryAfterSeconds:i}:{},message:typeof o.message=="string"?o.message:typeof o.error=="string"?o.error:typeof o.detail=="string"?o.detail:e.statusText||"Request failed"}}function Eo(e,t){let n=(typeof e.retryAfterSeconds=="number"&&Number.isFinite(e.retryAfterSeconds)?e.retryAfterSeconds:void 0)??dt(t.get("retry-after"))??dt(t.get("x-retry-after"));if(n!==void 0)return Math.min(Math.max(Math.trunc(n),1),86400)}function dt(e){if(!e)return;let t=e.trim();if(!/^\d+$/.test(t))return;let n=Number(t);return Number.isFinite(n)?n:void 0}function lt(e){let t=e instanceof E?e.kind:"network";return {status:0,...{aborted:{statusText:"ABORTED",code:"REQUEST_ABORTED",message:"The request was cancelled."},timeout:{statusText:"TIMEOUT",code:"REQUEST_TIMEOUT",message:"The request timed out."},response_too_large:{statusText:"INVALID_RESPONSE",code:"RESPONSE_TOO_LARGE",message:"The service response was too large."},invalid_response:{statusText:"INVALID_RESPONSE",code:"INVALID_RESPONSE",message:"The service returned an invalid response."},network:{statusText:"FETCH_ERROR",code:"FETCH_ERROR",message:"Network request failed."}}[t],...e instanceof E&&e.requestId?{requestId:e.requestId}:{}}}function Se(e,t,n){return Object.freeze({...e,status:t.status??0,...t.requestId===void 0?{}:{requestId:t.requestId},failure:n})}function Do(e){return e instanceof E?e.kind:"network"}function zo(e,t,n){return new Promise((o,i)=>{if(t?.aborted){i(new E("aborted"));return}let s=n-Date.now();if(s<=0){i(new E("timeout"));return}let r=Math.min(e,s),a=()=>{clearTimeout(u),i(new E("aborted"));},u=setTimeout(()=>{t?.removeEventListener("abort",a),Date.now()>=n?i(new E("timeout")):o();},r);t?.addEventListener("abort",a,{once:true}),t?.aborted&&a();})}function Te(e,t="",n=0,o={nodes:0}){if(o.nodes+=1,n>To||o.nodes>Io)throw new Error("response traversal limit exceeded");if(typeof e=="string"&&/^(?:createdAt|updatedAt|expiresAt)$/.test(t)){let i=new Date(e);return Number.isNaN(i.getTime())?e:i}return Array.isArray(e)?e.map(i=>Te(i,"",n+1,o)):Z(e)?Object.fromEntries(Object.entries(e).map(([i,s])=>[i,Uo(i)?s:Te(s,i,n+1,o)])):e}function Uo(e){return e==="metadata"||e==="public_metadata"||e==="unsafe_metadata"||e==="private_metadata"||e==="publicMetadata"||e==="unsafeMetadata"||e==="privateMetadata"}function _o(e,t){if(e==="/list-sessions"&&Array.isArray(t))return t.map(i=>Z(i)?Re(i):i);if(!Z(t))return t;let o=e==="/change-password"||e==="/passkey/verify-authentication"||e==="/phone-otp/verify"||e==="/sign-up/email"||e.startsWith("/sign-in/")||e.startsWith("/two-factor/verify-")?Re(t):t;return e==="/sign-up/email"&&!("sessionCreated"in o)&&(o={...o,sessionCreated:typeof t.token=="string"&&t.token.length>0}),(e==="/get-session"||e==="/passkey/verify-authentication")&&Z(o.session)&&(o={...o,session:Re(o.session)}),o}function Re(e){if(!Object.hasOwn(e,"token"))return e;let t={...e};return delete t.token,t}function Z(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}var No=new Set(["__proto__","constructor","prototype"]);function p(e){(!e||typeof e!="object"||Array.isArray(e))&&d();let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null&&d(),e}function S(e){return typeof e!="string"&&d(),e}function I(e){return typeof e!="boolean"&&d(),e}function x(e){return (!(e instanceof Date)||Number.isNaN(e.getTime()))&&d(),e}function se(e){return (!Array.isArray(e)||!e.every(t=>typeof t=="string"))&&d(),[...e]}function P(e,t){let n=e[t];return n==null||typeof n=="string"?n:d()}function pt(e,t){let n=e[t];return n==null||typeof n=="boolean"?n:d()}function _(e){let t=p(e),n=t.email;return n!==null&&typeof n!="string"&&d(),{id:S(t.id),email:n,emailVerified:I(t.emailVerified),createdAt:x(t.createdAt),updatedAt:x(t.updatedAt),...U("phoneNumber",P(t,"phoneNumber")),...U("username",P(t,"username")),...U("displayUsername",P(t,"displayUsername")),...U("firstName",P(t,"firstName")),...U("lastName",P(t,"lastName")),...U("name",P(t,"name")),...U("image",P(t,"image")),...U("twoFactorEnabled",pt(t,"twoFactorEnabled"))}}function ae(e){let t=p(e),n=t.membership;return {id:S(t.id),userId:S(t.userId),expiresAt:x(t.expiresAt),...U("activeOrganizationId",P(t,"activeOrganizationId")),...U("activeTeamId",P(t,"activeTeamId")),...U("membership",n==null?n:Lo(n)),...U("pendingMfaEnrollment",pt(t,"pendingMfaEnrollment"))}}function d(){throw new TypeError("AuthOwl response does not match its runtime contract.")}function L(e,t=20,n=1e4){return (!e||typeof e!="object"||Array.isArray(e))&&d(),xe(e,t,n)}function xe(e,t=20,n=1e4){return Pe(e,0,{nodes:0},t,n)}function Lo(e){let t=p(e);return {role:S(t.role),permissions:se(t.permissions),...t.teams===void 0?{}:{teams:se(t.teams)}}}function Pe(e,t,n,o,i){if(n.nodes+=1,(t>o||n.nodes>i)&&d(),e===null||typeof e=="string"||typeof e=="boolean")return e;if(typeof e=="number")return Number.isFinite(e)||d(),e;if(Array.isArray(e))return e.map(a=>Pe(a,t+1,n,o,i));(!e||typeof e!="object")&&d();let s=Object.getPrototypeOf(e);s!==Object.prototype&&s!==null&&d();let r={};for(let[a,u]of Object.entries(e))No.has(a)&&d(),r[a]=Pe(u,t+1,n,o,i);return r}function U(e,t){return t===void 0?{}:{[e]:t}}function ft({http:e,probe:t,tokens:n,channelName:o}){let i=new Set,s=null,r=null,a=null,u=null,m=null,f,y=w=>{c(w);};f={data:null,isPending:true,isRefetching:false,error:null,refetch:y};function b(w){f=w;for(let T of i)T();}async function A(w){return e.request("/get-session",{query:w?.query,decode:Ce})}function c(w){if(w?.query?.disableCookieCache===true)return l(w);if(u)return u;let T=l(w).finally(()=>{u===T&&(u=null);});return u=T,T}async function l(w){a?.abort();let T=new AbortController;a=T,b({...f,isPending:f.data===null&&f.error===null,isRefetching:f.data!==null});let h=n.beginRead(),C=await e.request("/get-session",{query:w?.query,fetchOptions:{signal:T.signal},decode:Ce});if(a===T&&(a=null,b({data:C.data,error:C.error,isPending:false,isRefetching:false,refetch:y}),C.error===null)){if(C.data===null){h.endIfDead();return}await g(h);}}async function g(w){if(n.needsProbe()){if(!w.carriedToken){w.recordCookieVerdict(true);return}return m||O(w)}}function O(w){let T=t.request("/get-session",{query:{disableCookieCache:true},decode:Ce}).then(h=>{m===T&&h.error===null&&w.recordCookieVerdict(h.data!==null);}).finally(()=>{m===T&&(m=null);});return m=T,T}function R(){s?.postMessage({type:"session-changed"});}function K(){if(typeof window>"u"||r)return;let w=()=>{c();},T=()=>{document.visibilityState==="visible"&&c();};window.addEventListener("focus",w),document.addEventListener("visibilitychange",T),typeof BroadcastChannel<"u"&&(s=new BroadcastChannel(o),s.addEventListener("message",w)),r=()=>{window.removeEventListener("focus",w),document.removeEventListener("visibilitychange",T),s?.close(),s=null,r=null;};}function B(w){return i.add(w),i.size===1&&(K(),c()),()=>{i.delete(w),i.size===0&&(a?.abort(),a=null,r?.());}}return n.measureWith(()=>{n.needsProbe()&&O(n.beginRead());}),{store:{subscribe:B,getSnapshot:()=>f},getSession:A,notifyMutation(){R(),m&&m.catch(()=>{}).then(()=>{!n.needsProbe()&&n.hasToken()&&R();}),i.size>0&&c({query:{disableCookieCache:true}});}}}function Ce(e){if(e===null)return null;let t=p(e);return (t.session===void 0||t.user===void 0)&&d(),{session:ae(t.session),user:_(t.user)}}ve();function gt(){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 mt(e,t){return e.request("/user/metadata",{fetchOptions:t,decode:yt})}async function ht(e,t,n){return e.request("/user/metadata",{method:"PATCH",body:{expected_version:t.expectedVersion,unsafe_metadata:t.unsafeMetadata},fetchOptions:n,decode:yt})}function yt(e){let t=p(e),n=L(t.public_metadata),o=L(t.unsafe_metadata);if(!Number.isSafeInteger(t.metadata_version)||t.metadata_version<0)throw new TypeError("Invalid AuthOwl metadata response");return {publicMetadata:n,unsafeMetadata:o,metadataVersion:t.metadata_version}}function At(e,t){let{post:n,mutation:o}=G(e,t);return {getMetadata:i=>mt(e,i),updateUnsafeMetadata:(i,s)=>ht(e,i,s),updateProfile:(i,s)=>o(n("/update-user",i,s,te)),changeEmail:(i,s)=>o(n("/change-email",i,s,te)),changePassword:(i,s)=>o(n("/change-password",i,s,Mo)),listSessions:i=>e.request("/list-sessions",{fetchOptions:i,decode:Fo}),revokeSession:({sessionId:i},s)=>o(n("/revoke-session",{sessionId:i},s,te)),revokeOtherSessions:i=>o(n("/revoke-other-sessions",{},i,te)),listSocialAccounts:async i=>{let s=await e.request("/list-accounts",{fetchOptions:i,decode:Ho});if(!s.data)return {data:null,error:s.error};let r=s.data.length>1;return {...s,data:s.data.filter(a=>a.providerId!=="credential").map(a=>({...a,canUnlink:r}))}},linkSocial:(i,s)=>n("/link-social",i,s,qo),unlinkSocial:(i,s)=>o(n("/unlink-account",i,s,te)),delete:(i={},s)=>o(n("/delete-user",i,s,Vo))}}function te(e){let t=p(e);return {status:I(t.status)}}function Mo(e){let t=p(e);return {user:_(t.user)}}function Fo(e){return Array.isArray(e)||d(),e.map(t=>{let n=p(t);return {id:S(n.id),userId:S(n.userId),createdAt:x(n.createdAt),updatedAt:x(n.updatedAt),expiresAt:x(n.expiresAt),...bt("ipAddress",P(n,"ipAddress")),...bt("userAgent",P(n,"userAgent"))}})}function Ho(e){return Array.isArray(e)||d(),e.map(t=>{let n=p(t);return {id:S(n.id),userId:S(n.userId),providerId:S(n.providerId),accountId:S(n.accountId),scopes:se(n.scopes),createdAt:x(n.createdAt),updatedAt:x(n.updatedAt)}})}function qo(e){let t=p(e);return {url:S(t.url),redirect:I(t.redirect)}}function Vo(e){let t=p(e);return {success:I(t.success),message:S(t.message)}}function bt(e,t){return t===void 0?{}:{[e]:t}}function Ee(e,t){return !e||!t?false:e.permissions.includes(t)}function Ko(e,t){return !e||!t?false:e.teams?.includes(t)??false}function De(e,t){if(!e)return false;let{role:n,permission:o,teamId:i}=t;return !(n===void 0&&o===void 0&&i===void 0||n!==void 0&&e.role!==n||o!==void 0&&!e.permissions.includes(o)||i!==void 0&&!Ko(e,i))}function Bo(e){return {has:t=>De(e,t),hasPermission:t=>Ee(e,t.permission)}}var jo=new Set(["pending","accepted","rejected","canceled"]),wt=1e4;function W(e,t,n){let o=p(e),i={id:k(o.id),name:k(o.name),slug:k(o.slug),createdAt:x(o.createdAt),...ue("logo",P(o,"logo")),...ue("metadata",o.metadata===void 0?void 0:xe(o.metadata))};return H(i.id,t),H(i.slug,n),i}function Ot(e){return q(e,W)}function ze(e,t,n){return e===null?null:(t===null&&d(),W(e,t,n))}function kt(e,t,n){if(e===null)return null;let o=p(e),i=W(o,t,n);return {...i,members:q(o.members,s=>_t(s,i.id)),invitations:q(o.invitations,s=>M(s,void 0,i.id))}}function St(e,t){let n=q(e,o=>Ut(o));return ce(n.map(o=>o.organizationId),t),n}function Rt(e,t,n){return e===null?null:(t===null&&d(),Ut(e,t,n))}function Tt(e,t){let n=p(e);return (!Number.isSafeInteger(n.total)||n.total<0)&&d(),{members:Jo(n.members,t),total:n.total}}function M(e,t,n){let o=p(e),i=k(o.status);jo.has(i)||d();let s={id:k(o.id),organizationId:k(o.organizationId),email:k(o.email),role:k(o.role),status:i,inviterId:k(o.inviterId),expiresAt:x(o.expiresAt),createdAt:x(o.createdAt)};return H(s.id,t),H(s.organizationId,n),s}function It(e,t){let n=q(e,o=>M(o));return ce(n.map(o=>o.organizationId),t),n}function Pt(e){return q(e,t=>{let n=p(t);return {...M(n),organizationName:k(n.organizationName)}})}function xt(e,t){let n=p(e);return {...M(n,t),organizationName:k(n.organizationName),organizationSlug:k(n.organizationSlug),inviterEmail:k(n.inviterEmail)}}function Ct(e,t){let n=p(e),o=M(n.invitation,t);return {invitation:o,member:X(n.member,void 0,o.organizationId)}}function vt(e,t){let n=p(e);return n.member!==null&&d(),{invitation:n.invitation===null?null:M(n.invitation,t),member:null}}function Et(e,t){return e===null?null:M(e,t)}function Dt(e,t,n){let o=p(e);return {member:X(o.member,n,t)}}function X(e,t,n){let o=p(e),i={id:k(o.id),organizationId:k(o.organizationId),userId:k(o.userId),role:k(o.role),createdAt:x(o.createdAt),...o.user===void 0?{}:{user:Nt(o.user)}};return H(i.id,t),H(i.organizationId,n),i}function zt(e,t){let n=q(e,o=>{let i=p(o);return {organizationId:k(i.organizationId),data:{role:k(i.role),...ue("permission",i.permission===void 0?void 0:$o(i.permission))}}});return ce(n.map(o=>o.organizationId),t),n.map(o=>o.data)}function Ut(e,t,n){let o=p(e),i=o.updatedAt,s={id:k(o.id),name:k(o.name),organizationId:k(o.organizationId),createdAt:x(o.createdAt),...i===void 0?{}:{updatedAt:x(i)}};return H(s.id,t),H(s.organizationId,n),s}function _t(e,t){let n=p(e);return {...X(n,void 0,t),user:Nt(n.user)}}function Jo(e,t){let n=q(e,o=>_t(o));return ce(n.map(o=>o.organizationId),t),n}function $o(e){let t=p(e),n={};for(let[o,i]of Object.entries(t))(o==="__proto__"||o==="constructor"||o==="prototype"||o.length===0||o.length>wt||!Array.isArray(i))&&d(),n[o]=i.map(s=>k(s));return n}function k(e){let t=S(e);return (t.length===0||t.length>wt)&&d(),t}function H(e,t){t!==void 0&&e!==t&&d();}function ce(e,t){let n=t??e[0];n!==void 0&&e.some(o=>o!==n)&&d();}function Nt(e){let t=p(e);return {id:k(t.id),name:k(t.name),email:k(t.email),...ue("image",P(t,"image"))}}function q(e,t){return Array.isArray(e)||d(),e.map(n=>t(n))}function ue(e,t){return t===void 0?{}:{[e]:t}}function Lt(e,t,n=()=>null){let{post:o,mutation:i}=G(e,t),s=(r,a,u,m)=>e.request(r,{query:a,fetchOptions:u,decode:m});return {create:(r,a)=>i(o("/organization/create",r,a,W)),list:r=>s("/organization/list",void 0,r,Ot),get:(r={},a)=>s("/organization/get-full-organization",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,membersLimit:r.membersLimit},a,u=>kt(u,r.organizationId,r.organizationSlug)),setActive:(r,a)=>i(o("/organization/set-active",r,a,u=>ze(u,r.organizationId,r.organizationSlug))),listTeams:(r={},a)=>s("/organization/list-teams",{organizationId:r.organizationId},a,u=>St(u,r.organizationId)),setActiveTeam:(r,a)=>i(o("/organization/set-active-team",r,a,u=>Rt(u,r.teamId))),update:(r,a)=>i(o("/organization/update",r,a,u=>ze(u,r.organizationId))),delete:(r,a)=>i(o("/organization/delete",r,a,u=>W(u,r.organizationId))),listMembers:(r={},a)=>s("/organization/list-members",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,limit:r.limit,offset:r.offset,sortBy:r.sortBy,sortDirection:r.sortDirection,filterField:r.filterField,filterValue:r.filterValue,filterOperator:r.filterOperator},a,u=>Tt(u,r.organizationId)),inviteMember:(r,a)=>i(o("/organization/invite-member",r,a,u=>M(u,void 0,r.organizationId))),listInvitations:(r={},a)=>s("/organization/list-invitations",{organizationId:r.organizationId},a,u=>It(u,r.organizationId)),listUserInvitations:r=>s("/organization/list-user-invitations",void 0,r,Pt),getInvitation:(r,a)=>s("/organization/get-invitation",{id:r.id},a,u=>xt(u,r.id)),acceptInvitation:(r,a)=>i(o("/organization/accept-invitation",r,a,u=>Ct(u,r.invitationId))),rejectInvitation:(r,a)=>i(o("/organization/reject-invitation",r,a,u=>vt(u,r.invitationId))),cancelInvitation:(r,a)=>i(o("/organization/cancel-invitation",r,a,u=>Et(u,r.invitationId))),removeMember:(r,a)=>i(o("/organization/remove-member",r,a,u=>Dt(u,r.organizationId,r.memberIdOrEmail.includes("@")?void 0:r.memberIdOrEmail))),updateMemberRole:(r,a)=>i(o("/organization/update-member-role",r,a,u=>X(u,r.memberId,r.organizationId))),leave:(r,a)=>i(o("/organization/leave",r,a,u=>X(u,void 0,r.organizationId))),listRoles:(r={},a)=>s("/organization/list-roles",{organizationId:r.organizationId},a,u=>zt(u,r.organizationId)),has:r=>De(n(),r),hasPermission:r=>Ee(n(),r.permission)}}var Mt=4096,Go=4096,Wo=100,Xo=256,Yo=16,Qo=64,Zo=12;function _e(e){let t=p(e);return t.twoFactorRedirect===true?((t.user!==void 0||t.redirect!==void 0||t.url!==void 0)&&d(),{twoFactorRedirect:true,...t.twoFactorMethods===void 0?{}:{twoFactorMethods:nn(t.twoFactorMethods,Yo,Qo)}}):(t.twoFactorRedirect!==void 0&&d(),{redirect:I(t.redirect),...ii(t,"url"),user:_(t.user)})}function Ft(e){let t=p(e);return {user:_(t.user)}}function Ht(e){let t=p(e);return {sessionCreated:I(t.sessionCreated),user:_(t.user)}}function qt(e,t){let n=p(e),o=I(n.redirect);n.user===null&&d();let i=n.user!==void 0&&n.user!==null,s=n.url!==void 0&&n.url!==null;return o?((i||!s)&&d(),{redirect:true,url:Ue(n.url,t)}):(i===s&&d(),i?{redirect:false,user:_(n.user)}:{redirect:false,url:Ue(n.url,t)})}function Vt(e,t){let n=p(e);return (n.redirect!==true||n.user!==void 0)&&d(),{redirect:true,url:Ue(n.url,t)}}function Kt(e){return {status:I(p(e).status)}}function Bt(e){return {success:I(p(e).success)}}function jt(e){return p(e).status!=="pending"&&d(),{status:"pending"}}function Jt(e){let t=p(e);if(t.kind==="authowl_turnstile")return {kind:"authowl_turnstile"};t.kind!=="akedly_shield_v1_2"&&d();let n=p(t.turnstile),o=n.siteKey===null?null:S(n.siteKey);return {kind:"akedly_shield_v1_2",connectionId:S(t.connectionId),challenge:S(t.challenge),difficulty:ei(t.difficulty),challengeToken:S(t.challengeToken),challengeRequired:I(t.challengeRequired),turnstile:{required:I(n.required),siteKey:o}}}function ei(e){return (!Number.isSafeInteger(e)||Number(e)<0||Number(e)>Zo)&&d(),Number(e)}function $t(e){let t=p(e);return (t.status!==true||t.sessionCreated!==true)&&d(),{status:true,sessionCreated:true,user:ti(t.user)}}function Ne(e){return {status:I(p(e).status)}}function Gt(e){return {status:I(p(e).status)}}function Wt(e){let t=p(e);return {status:I(t.status),user:_(t.user)}}function Xt(e){return {success:I(p(e).success)}}function Yt(e){let t=p(e);return {totpURI:oi(t.totpURI),backupCodes:tn(t.backupCodes)}}function Qt(e){return {status:I(p(e).status)}}function de(e){return p(e).status!==true&&d(),{status:true}}function Zt(e){return {status:I(p(e).status)}}function en(e){let t=p(e);return t.status!==void 0&&t.status!==true&&d(),{backupCodes:tn(t.backupCodes)}}function ti(e){let t=p(e);return {id:Y(t.id,512),...ri(t,"name",1024),phoneNumber:Y(t.phoneNumber,64),phoneNumberVerified:I(t.phoneNumberVerified),...t.createdAt===void 0?{}:{createdAt:x(t.createdAt)},...t.updatedAt===void 0?{}:{updatedAt:x(t.updatedAt)}}}function Ue(e,t){let n=Y(e,Mt);/[\u0000-\u0020\u007f]/u.test(n)&&d();let o;try{o=new URL(n);}catch{return d()}return (o.username||o.password)&&d(),o.protocol==="https:"||t&&o.protocol==="http:"&&ni(o.hostname)?o.href:d()}function ni(e){let t=e.toLowerCase();return t==="localhost"||t==="127.0.0.1"||t==="[::1]"}function oi(e){let t=Y(e,Go),n;try{n=new URL(t);}catch{return d()}let o=n.searchParams.get("secret");return (n.protocol!=="otpauth:"||n.hostname.toLowerCase()!=="totp"||n.username||n.password||n.hash||o===null||o.length===0||o.length>512||/\s/u.test(o))&&d(),t}function tn(e){return nn(e,Wo,Xo)}function nn(e,t,n){(!Array.isArray(e)||e.length===0||e.length>t)&&d();let o=e.map(i=>Y(i,n));return o.some(i=>i.trim().length===0)&&d(),new Set(o).size!==o.length&&d(),o}function Y(e,t){let n=S(e);return (n.length===0||n.length>t)&&d(),n}function ii(e,t){let n=e[t];return n==null?{}:{[t]:Y(n,Mt)}}function ri(e,t,n){let o=P(e,t);return o===void 0?{}:(o!==null&&o.length>n&&d(),{[t]:o})}var on=new Set([1564,8206,8207,8234,8235,8236,8237,8238,8294,8295,8296,8297]),le=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 pe(e){if(e===void 0)return {valid:true,value:void 0};for(let n of e){let o=n.codePointAt(0);if(o===void 0||sn(n,o)||rn(o)||on.has(o))return {valid:false}}let t=si(e);return Le(t)?{valid:true,value:t}:{valid:false}}function Le(e){let t=0,n,o;for(let i of e){if(t+=1,t>256)return false;let s=i.codePointAt(0);if(s===void 0||sn(i,s)||rn(s)||on.has(s))return false;n??=s,o=s;}return t>0&&n!==void 0&&o!==void 0&&!le.has(n)&&!le.has(o)}function fe(){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 si(e){let t=0,n=e.length;for(;t<n;){let o=e.codePointAt(t);if(o===void 0||!le.has(o))break;t+=o>65535?2:1;}for(;n>t;){let o=e.codePointAt(n-1);if(o===void 0)break;let s=o>=56320&&o<=57343?n-2:n-1,r=e.codePointAt(s);if(r===void 0||!le.has(r))break;n=s;}return e.slice(t,n)}function rn(e){return e>=0&&e<=31||e>=127&&e<=159}function sn(e,t){return e.length===1&&t>=55296&&t<=57343}var cn=12,dn=5e3,ai=8,ui=1e3,ci=16,an=512,ln=100,pn=8192,di=32768,Me=1024,un=256,He=64,li=6e5,pi=/^[A-Za-z0-9_-]+$/u,fi=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u,gi=/[\u0000-\u001f\u007f-\u009f\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/u,mi=/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$/u,hi=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu,fn=new Set(["discouraged","preferred","required"]),yi=new Set(["singleDevice","multiDevice"]),gn=new Set(["ble","cable","hybrid","internal","nfc","smart-card","usb"]),mn=new Set(["hybrid","security-key","client-device"]),bi=new Set(["none","indirect","direct","enterprise"]),Ai=new Set(["fido-u2f","packed","android-safetynet","android-key","tpm","apple","none"]),wi=new Set(["platform","cross-platform"]),Oi=new Set(["discouraged","preferred","required"]),ki=new Set([-8,-7,-257]);function hn(e){let t=L(e,cn,dn);return {challenge:In(t.challenge),...v("timeout",Rn(t.timeout)),...v("rpId",Pn(t.rpId)),...v("allowCredentials",Sn(t.allowCredentials)),...v("userVerification",ne(t.userVerification,fn)),...v("hints",ge(t.hints,mn)),...v("extensions",Tn(t.extensions))}}function yn(e){let t=L(e,cn,dn);return {challenge:In(t.challenge),rp:Si(t.rp),user:Ri(t.user),pubKeyCredParams:Ti(t.pubKeyCredParams),...v("timeout",Rn(t.timeout)),...v("excludeCredentials",Sn(t.excludeCredentials)),...v("authenticatorSelection",Ii(t.authenticatorSelection)),...v("attestation",ne(t.attestation,bi)),...v("attestationFormats",ge(t.attestationFormats,Ai)),...v("hints",ge(t.hints,mn)),...v("extensions",Tn(t.extensions))}}function bn(e){let t=p(e),n=ae(t.session),o=_(t.user);return n.userId!==o.id&&d(),{session:n,user:o}}function qe(e){let t=p(e),n=t.counter;(!Number.isSafeInteger(n)||n<0)&&d();let o=Ve(t.deviceType,yi),i=I(t.backedUp);return i&&o!=="multiDevice"&&d(),{id:Q(t.id,un),...Ci(t),publicKey:Pi(t.publicKey,di),userId:Q(t.userId,un),credentialID:he(t.credentialID,pn),counter:n,deviceType:o,backedUp:i,...vi(t),createdAt:x(t.createdAt),...Ei(t)}}function An(e,t,n){let o=qe(e);return (o.credentialID!==t||(n===void 0?o.name!==void 0&&o.name!==null:o.name!==n))&&d(),o}function wn(e){(!Array.isArray(e)||e.length>ln)&&d();let t=e.map(qe);return me(t.map(n=>n.id)),me(t.map(n=>n.credentialID)),t.length>1&&t.some(n=>n.userId!==t[0]?.userId)&&d(),t}function On(e,t,n){let o=p(e),i=qe(o.passkey);return (i.id!==t||i.name!==n)&&d(),{passkey:i}}function kn(e){return p(e).status!==true&&d(),{status:true}}function Si(e){let t=p(e);return {name:Fe(t.name,Me),...v("id",Pn(t.id))}}function Ri(e){let t=p(e);return {id:he(t.id,128,1,64),name:Fe(t.name,Me),displayName:Fe(t.displayName,Me)}}function Ti(e){(!Array.isArray(e)||e.length===0||e.length>He)&&d();let t=e.map(n=>{let o=p(n);return (o.type!=="public-key"||!Number.isSafeInteger(o.alg)||!ki.has(o.alg))&&d(),{type:"public-key",alg:o.alg}});return Di(t.map(n=>n.alg)),t}function Sn(e){if(e===void 0)return;(!Array.isArray(e)||e.length>ln)&&d();let t=e.map(n=>{let o=p(n);return o.type!=="public-key"&&d(),{type:"public-key",id:he(o.id,pn),...v("transports",ge(o.transports,gn))}});return me(t.map(n=>n.id)),t}function Ii(e){if(e===void 0)return;let t=p(e);t.requireResidentKey!==void 0&&typeof t.requireResidentKey!="boolean"&&d();let n=ne(t.residentKey,Oi);return t.requireResidentKey!==void 0&&n!==void 0&&t.requireResidentKey!==(n==="required")&&d(),{...v("authenticatorAttachment",ne(t.authenticatorAttachment,wi)),...v("residentKey",n),...v("requireResidentKey",t.requireResidentKey),...v("userVerification",ne(t.userVerification,fn))}}function Rn(e){return e!==void 0&&(typeof e!="number"||!Number.isFinite(e)||e<0||e>li)&&d(),e}function Tn(e){return e===void 0?void 0:L(e,ai,ui)}function ge(e,t){if(e===void 0)return;(!Array.isArray(e)||e.length>He)&&d();let n=e.map(o=>Ve(o,t));return me(n),n}function ne(e,t){if(e!==void 0)return Ve(e,t)}function In(e){return he(e,Math.ceil(an*4/3),ci,an)}function he(e,t,n=1,o=Number.POSITIVE_INFINITY){let i=Q(e,t),s=i.length%4,r=xi(i.at(-1)??""),a=Math.floor(i.length*3/4);return (!pi.test(i)||s===1||s===2&&(r&15)!==0||s===3&&(r&3)!==0||a<n||a>o)&&d(),i}function Q(e,t){let n=S(e);return (n.length===0||n.length>t)&&d(),n}function Fe(e,t){let n=Q(e,t);return gi.test(n)&&d(),n}function Pn(e){if(e===void 0)return;let t=Q(e,253);return t!=="localhost"&&(t.endsWith(".")||!t.includes(".")||t.split(".").some(n=>!mi.test(n)))&&d(),t}function Pi(e,t){let n=Q(e,t),o=n.endsWith("=="),i=!o&&n.endsWith("="),s=n.at(o?-3:i?-2:-1)??"",r=xn(s);return (n.length%4!==0||!fi.test(n)||o&&(r&15)!==0||i&&(r&3)!==0)&&d(),n}function xi(e){return xn(e,true)}function xn(e,t=false){return (t?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").indexOf(e)}function Ci(e){let t=P(e,"name");return t===void 0?{}:(t!==null&&!Le(t)&&d(),{name:t})}function vi(e){let t=P(e,"transports");if(t==null||t==="")return t===void 0?{}:{transports:t};let n=t.split(",");return (n.length>He||n.some(o=>!gn.has(o))||new Set(n).size!==n.length)&&d(),{transports:t}}function Ei(e){let t=P(e,"aaguid");return t==null?t===void 0?{}:{aaguid:null}:(hi.test(t)||d(),{aaguid:t})}function Ve(e,t){let n=S(e);return t.has(n)||d(),n}function v(e,t){return t===void 0?{}:{[e]:t}}function me(e){new Set(e).size!==e.length&&d();}function Di(e){new Set(e).size!==e.length&&d();}function qi(e,t){if(!t)return e;let n=t.catch(()=>{});return n.then(()=>{n=null;}),{async request(o,i){return n&&await n,e.request(o,i)}}}var _n=new Map;function Vi(e,t,n){let o=_n.get(n);return o||(o=Promise.resolve().then(()=>(be(),ye)).then(i=>i.completeCrossSiteSignIn(e,t)),_n.set(n,o)),o}function Nn(e){return !ee()||e.idToken||e.disableRedirect?"legacy":"first-party"}function Ki(e,t=()=>{},n=Ji){let o=Ie(e),i=e.session.tokens,s=ee()?Vi(o,i,e.decoded.projectId):void 0,r=qi(o,s),a=ft({http:r,probe:Ie({...e,fetch:e.session.probe}),tokens:i,channelName:`authowl:${e.decoded.projectId}`}),u=n(r,a.notifyMutation),m=()=>{a.notifyMutation(),t();},{post:f,mutation:y}=G(r,m),b=e.decoded.env==="test",A=c=>{i.beginSession({remember:c?.rememberMe!==false});};return {sessionStore:a.store,getSession:a.getSession,account:At(r,m),organization:Lt(r,m,()=>a.store.getSnapshot().data?.session.membership??null),signIn:{email:(c,l)=>(A(c),y(f("/sign-in/email",c,l,_e),g=>!("twoFactorRedirect"in g))),username:(c,l)=>(A(c),y(f("/sign-in/username",c,l,_e),g=>!("twoFactorRedirect"in g))),social:async(c,l)=>{if(A(),Nn(c)==="first-party"){let{beginCrossSiteSignIn:O}=await Promise.resolve().then(()=>(be(),ye)),R=await O(e,{kind:"social",provider:c.provider,callbackURL:c.callbackURL,errorCallbackURL:c.errorCallbackURL,newUserCallbackURL:c.newUserCallbackURL,scopes:c.scopes,loginHint:c.loginHint,requestSignUp:c.requestSignUp});if(R)return window.location.assign(R),{data:{redirect:true,url:R},error:null}}let g=await y(f("/sign-in/social",c,l,O=>qt(O,b)),O=>"user"in O);return g.error!==null||g.data===null||"url"in g.data&&g.data.redirect&&!c.disableRedirect&&typeof window<"u"&&window.location.assign(g.data.url),g},sso:async(c,l)=>{if(Nn(c)==="first-party"){let{beginCrossSiteSignIn:O}=await Promise.resolve().then(()=>(be(),ye)),R=await O(e,{kind:"sso",email:c.email,providerId:c.providerId,domain:c.domain,organizationSlug:c.organizationSlug,callbackURL:c.callbackURL,errorCallbackURL:c.errorCallbackURL,newUserCallbackURL:c.newUserCallbackURL});if(R)return window.location.assign(R),{data:{url:R,redirect:true},error:null}}let g=await f("/sign-in/sso",c,l,O=>Vt(O,b));return g.error!==null||g.data===null||typeof window<"u"&&window.location.assign(g.data.url),g},magicLink:(c,l)=>f("/sign-in/magic-link",c,l,Kt),emailOtp:(c,l)=>(A(),y(f("/sign-in/email-otp",c,l,Ft))),passkey:(c,l)=>(A(),u.signIn(c,l))},signUp:{email:(c,l)=>(A(),y(f("/sign-up/email",c,l,Ht),g=>g.sessionCreated))},emailOtp:{sendVerificationOtp:(c,l)=>f("/email-otp/send-verification-otp",c,l,Bt),verifyEmail:(c,l)=>(A(),y(f("/email-otp/verify-email",c,l,Wt)))},phoneOtp:{prepare:c=>f("/phone-otp/challenge",{},c,Jt),start:(c,l)=>f("/phone-otp/start",{...c,idempotencyKey:c.idempotencyKey??gt()},l,jt),verify:(c,l)=>(A(),y(f("/phone-otp/verify",c,l,$t)))},requestPasswordReset:(c,l)=>f("/request-password-reset",c,l,Ne),resetPassword:(c,l)=>f("/reset-password",c,l,Ne),sendVerificationEmail:(c,l)=>f("/send-verification-email",c,l,Gt),passkey:{addPasskey:(c,l)=>u.add(c,l),listUserPasskeys:()=>r.request("/passkey/list-user-passkeys",{decode:wn}),updatePasskey:async(c,l)=>{let g=pe(c.name);if(!g.valid||g.value===void 0)return fe();let O=g.value;return f("/passkey/update-passkey",{...c,name:O},l,R=>On(R,c.id,O))},deletePasskey:(c,l)=>f("/passkey/delete-passkey",c,l,kn)},twoFactor:{enable:(c,l)=>f("/two-factor/enable",c,l,Yt),disable:(c,l)=>y(f("/two-factor/disable",c,l,Qt),g=>g.status),verifyTotp:(c,l)=>y(f("/two-factor/verify-totp",c,l,de)),verifyBackupCode:(c,l)=>y(f("/two-factor/verify-backup-code",c,l,de)),sendOtp:(c={},l)=>f("/two-factor/send-otp",c,l,Zt),verifyOtp:(c,l)=>y(f("/two-factor/verify-otp",c,l,de)),generateBackupCodes:(c,l)=>f("/two-factor/generate-backup-codes",c,l,en)},signOut:c=>y(r.request("/sign-out",{method:"POST",body:{},fetchOptions:c,decode:Xt}).then(l=>(i.endSession(),l)),l=>l.success)}}function Be(e,t=()=>{},n){let o=Ki(e,t,n);return n?{...o,signIn:{email:o.signIn.email,username:o.signIn.username,social:Ln(o),magicLink:o.signIn.magicLink,emailOtp:o.signIn.emailOtp,passkey:o.signIn.passkey},passkey:{listUserPasskeys:o.passkey.listUserPasskeys,updatePasskey:o.passkey.updatePasskey,deletePasskey:o.passkey.deletePasskey,addPasskey:o.passkey.addPasskey}}:{...o,signIn:{email:o.signIn.email,username:o.signIn.username,social:Ln(o),magicLink:o.signIn.magicLink,emailOtp:o.signIn.emailOtp},passkey:{listUserPasskeys:o.passkey.listUserPasskeys,updatePasskey:o.passkey.updatePasskey,deletePasskey:o.passkey.deletePasskey}}}function Ln(e){return async(t,n)=>{if(!t?.idToken||typeof t.idToken.token!="string"||t.idToken.token==="")return Bi();let o=await e.signIn.social({...t,disableRedirect:true},n);return o.data!==null&&"url"in o.data?ji():o}}function Bi(){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 ji(){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 Ji(){return {signIn:()=>Mn(),add:()=>Mn()}}function Mn(){return Promise.resolve({data:null,error:{status:400,statusText:"BAD_REQUEST",code:"PASSKEY_BROWSER_REQUIRED",message:"This passkey ceremony requires a browser with WebAuthn."}})}function $i(e,t,n){let o=new Map;return {async signIn(i={},s){let r=await e.request("/passkey/generate-authenticate-options");if(!r.data)return qn(r.error);let a;try{a=hn(r.data);}catch{return Fn()}let u;try{u=await n.authenticate({optionsJSON:a,useBrowserAutofill:i.autoFill});}catch(A){return Vn(n,A,"AUTH_CANCELLED","Passkey authentication was cancelled.")}if(!Gi(u))return Hn();let{clientExtensionResults:m,...f}=u,y=o.get(u.id);if(y)return y;let b=(async()=>{let A=await e.request("/passkey/verify-authentication",{method:"POST",body:{response:f},fetchOptions:s,decode:bn});return A.data&&t(),A})();o.set(u.id,b);try{return await b}finally{o.get(u.id)===b&&o.delete(u.id);}},async add(i={},s){let r=pe(i.name);if(!r.valid)return fe();let a=await e.request("/passkey/generate-register-options",{query:{name:r.value,authenticatorAttachment:i.authenticatorAttachment}});if(!a.data)return qn(a.error);let u;try{u=yn(a.data);}catch{return Fn()}let m;try{m=await n.register({optionsJSON:u});}catch(A){return Vn(n,A,"REGISTRATION_CANCELLED","Passkey registration was cancelled.")}if(!Wi(m))return Hn();let{clientExtensionResults:f,...y}=m,b=await e.request("/passkey/verify-registration",{method:"POST",body:{response:y,name:r.value},fetchOptions:s,decode:A=>An(A,m.id,r.value)});return b.data&&t(),b}}}function Fn(){return {data:null,error:{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned invalid WebAuthn options."}}}function Hn(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_WEBAUTHN_RESPONSE",message:"The platform returned an invalid passkey response."}}}function Kn(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 Gi(e){if(!Kn(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 Wi(e){if(!Kn(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.attestationObject=="string"}function qn(e){return {data:null,error:e??{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned no WebAuthn options."}}}function Vn(e,t,n,o){let i=Yi(t,"page does not have focus"),s=e.errorCode?.(t),r=s!==void 0?s==="ERROR_CEREMONY_ABORTED":Xi(t)==="AbortError";return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:i?"PASSKEY_PAGE_NOT_FOCUSED":r?n:s??"PASSKEY_BROWSER_ERROR",message:i?"Keep this page focused while completing the passkey prompt.":r?o:n==="AUTH_CANCELLED"?"Passkey authentication could not be completed by this browser.":"Passkey registration could not be completed by this browser."}}}function Xi(e){return e&&typeof e=="object"&&"name"in e&&typeof e.name=="string"?e.name:void 0}function Yi(e,t){let n=t.toLowerCase(),o=new Set,i=e;for(;i&&typeof i=="object"&&!o.has(i);){if(o.add(i),"message"in i&&typeof i.message=="string"&&i.message.toLowerCase().includes(n))return true;i="cause"in i?i.cause:void 0;}return false}async function Qi(e){let n=`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/public-config`;return ct(await re(e,n,{init:{method:"GET",credentials:"omit"},maxResponseBytes:256*1024,decode:o=>Zi(o,e)}),"public-config")}function Zi(e,t){let n=L(e),o=n.environmentId,i=n.environmentType,s=`${new URL(t.apiUrl).origin}/api/projects/${t.decoded.projectId}/auth`;if(typeof n.applicationId!="string"||!er(n.applicationId)||o!==t.decoded.projectId||i!=="development"&&i!=="production"||n.authBaseUrl!==s)throw N();let r=z(n.branding),a=z(n.legal);if(!je(n.enabledMethods,64)||!je(n.socialProviders,64)||!jn(r,["appName","logoUrl","primaryColor"])||r.showAppName!==void 0&&typeof r.showAppName!="boolean"||r.alignment!==void 0&&r.alignment!=="left"&&r.alignment!=="center"&&r.alignment!=="right"||r.theme!==void 0&&r.theme!=="light"&&r.theme!=="dark"&&r.theme!=="system"||!jn(a,["termsUrl","privacyUrl"])||!Number.isSafeInteger(a.version)||a.version<0||typeof a.required!="boolean")throw N();if(n.socialProviderClientIds!==void 0){let u=z(n.socialProviderClientIds);if(Object.keys(u).length>64||Object.values(u).some(m=>typeof m!="string"||m.length>2048))throw N()}if(!F(n,["requireEmailVerification","twoFactor","mfaRequired","accountDeletion","organizations","sso","badge"])||!Bn(n.turnstileSiteKey)||!Bn(n.authTurnstileSiteKey)||typeof n.locale!="string"||n.locale.length===0||n.locale.length>64||!Number.isSafeInteger(n.configVersion)||n.configVersion<0)throw N();if(n.jwtIssuer!==null){let u=z(n.jwtIssuer);if(u.issuer!==s||u.jwksUrl!==`${s}/jwks`||u.aud!==t.decoded.projectId)throw N()}if(n.signUp!==void 0){let u=z(n.signUp).mode;if(typeof u!="string"||!["open","restricted","allowlist","waitlist"].includes(u))throw N()}if(n.authentication!==void 0&&tr(n.authentication),n.emailVerification!==void 0){let u=z(n.emailVerification);if(!F(u,["required"])||u.method!=="link"&&u.method!=="code")throw N()}if(n.userModel!==void 0&&!F(z(n.userModel),["requireEmail","firstLastName","emailChange","accountDeletion"]))throw N();if(n.mfa!==void 0){let u=z(n.mfa);if(!F(u,["totp","required","backupCodes"])||(u.required===true||u.backupCodes===true)&&u.totp!==true)throw N()}return n}function er(e){return /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e)}function N(){return new TypeError("public-config returned an invalid response")}function z(e){if(!e||typeof e!="object"||Array.isArray(e))throw N();return e}function Bn(e){return e===null||typeof e=="string"&&e.length<=4096}function tr(e){let t=z(e),n=z(t.email),o=z(t.password),i=o.minLength!==void 0||o.maxLength!==void 0;if(!F(n,["signUp"])||!je(n.signIn,3)||n.signIn.some(s=>s!=="password"&&s!=="magic_link"&&s!=="email_otp")||!F(z(t.phone),["signUp","signIn"])||!F(o,["signUp","add"])||i&&(!Number.isSafeInteger(o.minLength)||!Number.isSafeInteger(o.maxLength)||o.minLength<1||o.maxLength>4096||o.minLength>o.maxLength)||!F(z(t.passkey),["signIn","add"])||!F(z(t.username),["collectOnSignUp","signIn"]))throw N()}function F(e,t){return t.every(n=>typeof e[n]=="boolean")}function jn(e,t){return t.every(n=>e[n]===void 0||typeof e[n]=="string"&&e[n].length<=4096)}function je(e,t){return Array.isArray(e)&&e.length<=t&&e.every(n=>typeof n=="string"&&n.length<=128)&&new Set(e).size===e.length}function nr(e){let t=e?.enabledMethods??["password"],n=t.includes("password"),o=t.includes("passkey"),i=e?.authentication,s=e?.mfa;return {emailSignUp:i?.email.signUp??t.some(r=>r==="password"||r==="magic_link"||r==="email_otp"),passwordSignUp:i?.password.signUp??n,phoneSignUp:i?.phone.signUp??t.includes("phone_otp"),passwordSignIn:i?.email.signIn.includes("password")??n,passwordMinLength:i?.password.minLength??8,passwordMaxLength:i?.password.maxLength??128,magicLinkSignIn:i?.email.signIn.includes("magic_link")??t.includes("magic_link"),emailOtpSignIn:i?.email.signIn.includes("email_otp")??t.includes("email_otp"),phoneSignIn:i?.phone.signIn??t.includes("phone_otp"),usernameSignIn:i?.username.signIn??false,collectUsername:i?.username.collectOnSignUp??false,passkeySignIn:i?.passkey.signIn??o,passkeyAdd:i?.passkey.add??o,firstLastName:e?.userModel?.firstLastName??false,emailChange:e===null?false:e.userModel?.emailChange??true,accountDeletion:e?.userModel?.accountDeletion??e?.accountDeletion??false,emailVerificationRequired:e?.emailVerification?.required??e?.requireEmailVerification??false,emailVerificationMethod:e?.emailVerification?.method??"link",totp:s?.totp??e?.twoFactor??false,mfaRequired:s?.required??e?.mfaRequired??false,backupCodes:s?.backupCodes??e?.twoFactor??false,legacyNameField:e?.authentication===void 0}}function or(e,t){let n=`p_${e.toLowerCase().replace(/-/g,"")}`;return `${t?.secure?"__Secure-":""}${n}.session_token`}function bs(e,t){return Be(Oe(e),t)}
2
- exports.createMembershipHas=Bo;exports.createNativeAuthClient=Be;exports.createNativeClient=bs;exports.createPasskeyClient=$i;exports.decodePublishableKey=Ae;exports.getPublicConfig=Qi;exports.resolveConfig=Oe;exports.resolveProjectCapabilities=nr;exports.sessionCookieName=or;
1
+ 'use strict';var $n=Object.defineProperty;var Je=(e,t)=>()=>(e&&(t=e(e=0)),t);var Gn=(e,t)=>{for(var n in t)$n(e,n,{get:t[n],enumerable:true});};function ee(){return typeof window<"u"&&typeof document<"u"&&typeof crypto<"u"&&typeof crypto.subtle?.digest=="function"}var ve=Je(()=>{});var ye={};Gn(ye,{beginCrossSiteSignIn:()=>Ho,challengeFor:()=>Dn,completeCrossSiteSignIn:()=>qo,takeHandoffCode:()=>Un});function En(e){let t="";for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function Dn(e){let t=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e));return En(new Uint8Array(t))}function Lo(){return En(crypto.getRandomValues(new Uint8Array(Uo)))}function zn(e,t){let n=window.location.protocol==="https:"?"; Secure":"";document.cookie=`${vn}=${e}; Path=/; Max-Age=${t}; SameSite=Lax${n}`;}function Mo(){for(let e of document.cookie.split(";")){let t=e.indexOf("=");if(!(t<0)&&e.slice(0,t).trim()===vn)return e.slice(t+1).trim()||null}return null}function Fo(){zn("",0);}function xn(e){return new URL(e,window.location.href).toString()}async function Ho(e,t){let n=t.callbackURL?xn(t.callbackURL):null;if(n&&new URL(n).origin!==window.location.origin)return null;let i=Lo(),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 r of No){let a=t[r];a&&o.searchParams.set(r,a);}let s=`${window.location.origin}${window.location.pathname}${window.location.search}`;o.searchParams.set("cb",n??s);for(let[r,a]of [["err",t.errorCallbackURL],["new",t.newUserCallbackURL]])a&&o.searchParams.set(r,xn(a));return o.searchParams.set("challenge",await Dn(i)),zn(i,_o),o.toString()}function Un(){if(typeof window>"u")return null;let e=window.location.hash;if(!e.includes(Ke))return null;let t=new URLSearchParams(e.replace(/^#/,"")),n=t.get(Ke);if(!n)return null;t.delete(Ke);let i=t.toString();return window.history.replaceState(window.history.state,"",`${window.location.pathname}${window.location.search}${i?`#${i}`:""}`),n}async function qo(e,t){if(!ee())return false;let n=Un();if(!n)return false;let i=Mo();if(Fo(),!i)return false;t.beginSession({remember:true});let{error:o}=await e.request("/session/exchange",{method:"POST",body:{code:n,verifier:i}});return o===null}var vn,Ke,Uo,_o,No,Ae=Je(()=>{ve();vn="authowl_handoff_verifier",Ke="authowl_code",Uo=32,_o=900,No=["email","providerId","domain","organizationSlug"];});var Wn=/^(pk_(live|test))_([0-9a-f-]{36})_([A-Za-z0-9]{20,})$/i,Yn=/^sk_/i;function be(e){if(typeof e!="string"||e.length===0)throw new Error("publishableKey is required");if(Yn.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=Wn.exec(e);if(!t)throw new Error("publishableKey is malformed; expected pk_(live|test)_<uuid>_<base62>");return {prefix:t[1].toLowerCase(),env:t[2].toLowerCase(),projectId:t[3].toLowerCase()}}var $e=/^http:\/\/(?:(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*localhost|127\.0\.0\.1|\[::1\])(?::\d+)?(?:\/|$)/i;function we(e,t){throw new Error(`${e}: ${t}`)}function Ge(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&&$e.test(i)))throw new TypeError("Transport URL must use HTTPS except on approved loopback.");return n}function We(e,t){(typeof e!="string"||!/^https?:\/\/[^/?#@\\\s]+\/?$/i.test(e))&&we("apiUrl","origin required");let n;try{n=new URL(e);}catch{we("apiUrl","origin required");}return n.protocol==="http:"&&(!t.allowHttpLoopback||!$e.test(e))&&we("apiUrl","HTTPS required except exact loopback"),n.origin}function j(e,t){try{return e?.getItem(t)??null}catch{return null}}function J(e,t,n){try{n===null?e?.removeItem(t):e?.setItem(t,n);}catch{}}function $(){try{return globalThis.localStorage}catch{return}}function V(){try{return globalThis.sessionStorage}catch{return}}var Xn="authowl.session-challenge",Qn=e=>`${Xn}.${e}`,Zn="set-auth-challenge",Ye="x-authowl-challenge",Qe="INVALID_TWO_FACTOR_COOKIE",ei=2048,oe=e=>e!==null&&e.length<=ei,Xe=/^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/;function ti(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 Ze(e){let t=Qn(e),n=new Map;function i(){return n.size===0?null:[...n].map(([a,u])=>`${a}=${u}`).join("; ")}function o(){let a=i();J(V(),t,oe(a)?a:null);}function s(a){for(let[u,m]of ti(a))Xe.test(u)&&(m===""?n.delete(u):Xe.test(m)&&n.set(u,m));}let r=j(V(),t);return oe(r)&&s(r),{presentOn(a){let u=i();a.delete(Ye),oe(u)&&a.set(Ye,u);},observe(a){let u=a.get(Zn);oe(u)&&(s(u),o());},clear(){n.clear(),o();}}}var ni="authowl.session-token",ii="authowl.cookie-transport",tt="ok",nt="bearer",oi=e=>`${ni}.${e}`,ri=e=>`${ii}.${e}`,si="set-auth-token",ai="x-authowl-session-transport",ui="bearer";function ci(e){return e===tt?"cookies":e===nt?"bearer":"unknown"}function di(e){return e==="cookies"?tt:e==="bearer"?nt:null}function li(e){let t=oi(e),n=ri(e),i=Ze(e),o=null,s=false,r=null,a=ci(j($(),n)),u=()=>a==="unknown",m=0,f=null,y=false;function A(){let h=j(V(),t);if(h!==null)return s=true,h;let x=j($(),t);return x!==null?(s=false,x):null}o=A(),o!==null&&u()&&(y=true);function b(){if(!(!y||!f)){y=false;try{f();}catch{}}}function c(){let h=a==="bearer"?o:null,[x,ie]=s?[V(),$()]:[$(),V()];J(ie,t,null),J(x,t,h);}function l(h){h!==null&&r!==null&&(s=r,r=null),o=h,c(),h!==null&&u()&&(y=true,b());}function g(h){a=h,J($(),n,di(h));}function O(){g("unknown"),y=false;}function R(){return o===null&&(o=A()),o}function K(){let h=A();return h!==null&&(o=h),o}function B(h){K()===h&&c();}function w(){m+=1,r=null,s=false,l(null),i.clear(),O();}let T=()=>a!=="cookies";return {hasToken:()=>R()!==null,declareOn(h){if(h.has("authorization"))return false;let x=R();return !x&&!T()?false:(x&&h.set("authorization",`Bearer ${x}`),h.set(ai,ui),i.presentOn(h),true)},wantsToken:T,needsProbe:u,observe(h){let x=h.get(si);x&&l(x),i.observe(h);},dropChallenge:i.clear,measureWith(h){f=h,b();},beginRead(){let h=R(),x=m;return {carriedToken:h!==null,endIfDead(){h!==null&&K()===h&&m===x&&w();},recordCookieVerdict(ie){if(m===x&&u()){if(g(ie?"cookies":"bearer"),ie){l(null);return}B(h);}}}},beginSession({remember:h}){m+=1,r=!h,i.clear(),O();},endSession:w}}var et=new Map;function it(e){let t=et.get(e);if(t)return t;let n=li(e);return et.set(e,n),n}function pi(e,t){return t?.headers?new Headers(t.headers):typeof e=="object"&&e!==null&&"headers"in e?new Headers(e.headers):new Headers}function ot(e,t){let n=it(e),i=(r,a)=>(t??globalThis.fetch)(r,a);return {fetch:async(r,a)=>{if(a?.credentials==="omit"||!n.wantsToken())return i(r,a);let u=pi(r,a),m=n.declareOn(u),f=await i(r,{...a,headers:u});return m&&n.observe(f.headers),f},probe:i,tokens:n}}function Oe(e){if(!e||typeof e!="object")throw new Error("AuthConfig is required");let t=be(e.publishableKey),n=We(e.apiUrl,{allowHttpLoopback:t.env==="test"}),i=`${n}/api/projects/${t.projectId}/auth`,{fetch:o,...s}=ot(t.projectId,e.fetch);return {...e,apiUrl:n,decoded:t,projectBaseURL:i,fetch:o,session:s}}var fi=1e4,gi=1024*1024,E=class extends Error{kind;requestId;constructor(t,n){super(ki(t)),this.name="TransportError",this.kind=t,this.requestId=n;}},at=new WeakSet;function D(e,t){let n=new E(e,t);return at.add(n),n}async function ut({fetchImpl:e,url:t,init:n={},timeoutMs:i=fi,maxResponseBytes:o=gi,allowHttpLoopback:s=false,decode:r}){st(i,"timeoutMs"),st(o,"maxResponseBytes");let a=Ge(t,{allowHttpLoopback:s}),u=n.signal,m=new AbortController,f=null,y,A=new Promise(g=>{y=g;}),b=g=>{f===null&&(f=g,y({type:"abort",kind:g}),m.abort());},c=()=>b("aborted");u?.addEventListener("abort",c,{once:true});let l=setTimeout(()=>b("timeout"),i);u?.aborted&&c();try{if(f!==null)throw D(f);let g;try{g=await Promise.race([e(a.toString(),{...n,redirect:"error",signal:m.signal}).then(T=>({type:"response",response:T})),A]);}catch{throw D(f??"network")}if(g.type==="abort")throw D(g.kind);if(!mi(g.response))throw D("invalid_response");let O=g.response,R=Oi(O.headers),K=await hi(O,o,A,()=>f,R),B=bi(O,K,R),w;try{w=O.ok&&r?r(B,Object.freeze({status:O.status})):B;}catch{throw D("invalid_response",R)}return {response:O,data:w,...R===void 0?{}:{requestId:R}}}catch(g){throw g instanceof E&&at.has(g)?g:D(f??"network")}finally{clearTimeout(l),u?.removeEventListener("abort",c);}}function mi(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 hi(e,t,n,i,o){let s=e.headers.get("content-length");if(s!==null){if(!/^\d+$/.test(s))throw rt(e.body),D("invalid_response",o);if(Number(s)>t)throw rt(e.body),D("response_too_large",o)}if(!e.body)return "";let r;try{r=e.body.getReader();}catch{throw D("network",o)}let a=[],u=0,m=null;try{for(;;){let A;try{A=await Promise.race([r.read(),n]);}catch{m=D(i()??"network",o);break}if(yi(A)){m=D(A.kind,o);break}let{done:b,value:c}=A;if(b)break;if(c.byteLength!==0){if(u+=c.byteLength,u>t){m=D("response_too_large",o);break}a.push(c);}}}finally{m&&Ai(r);try{r.releaseLock();}catch{}}if(m)throw m;let f=new Uint8Array(u),y=0;for(let A of a)f.set(A,y),y+=A.byteLength;try{return new TextDecoder("utf-8",{fatal:!0}).decode(f)}catch{throw D("invalid_response",o)}}function yi(e){return "type"in e&&e.type==="abort"}function rt(e){if(e)try{e.cancel().catch(()=>{});}catch{}}function Ai(e){try{e.cancel().catch(()=>{});}catch{}}function bi(e,t,n){if(e.status===204||e.status===205)return null;let i=wi(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 wi(e){if(e===null)return false;let t=e.split(";",1)[0]?.trim().toLowerCase();return t==="application/json"||t?.endsWith("+json")===true}function Oi(e){let t=e.get("x-request-id")?.trim();if(!(!t||t.length>256||!/^[A-Za-z0-9._:-]+$/.test(t)))return t}function st(e,t){if(!Number.isInteger(e)||e<=0)throw new TypeError(`${t} must be a positive integer.`)}function ki(e){switch(e){case "aborted":return "The request was cancelled.";case "timeout":return "The request timed out.";case "response_too_large":return "The response exceeded the allowed size.";case "invalid_response":return "The service returned an invalid response.";case "network":return "The network request could not be completed."}}var ke=class extends Error{status;requestId;constructor(t,n,i){super(`${t} request failed with status ${n.status}.`),this.name="AuthOwlHttpError",this.status=n.status,this.requestId=i;}};function re(e,t,n={}){let i=new Headers(n.init?.headers);return i.set("x-publishable-key",e.publishableKey),ut({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 ct(e,t){if(!e.response.ok)throw new ke(t,e.response,e.requestId);return e.data}var Si="x-authowl-turnstile-token",Ri=1e4,Ti=32,Ii=2e4;function G(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 Ie(e,t=e.projectBaseURL){return {async request(n,i={}){let o=xi(t,n,i.query),s=i.method??(i.body===void 0?"GET":"POST"),r=new Headers(i.fetchOptions?.headers);i.fetchOptions?.authChallengeToken&&r.set(Si,i.fetchOptions.authChallengeToken),i.body!==void 0&&r.set("content-type","application/json");let a={method:s,headers:r,credentials:i.credentials??"include",...i.body===void 0?{}:{body:JSON.stringify(i.body)}},u=Object.freeze({method:s,path:n});await i.fetchOptions?.onRequest?.(u);let m=Ci(s,i.fetchOptions),f;try{f=await Pi(e,o,{...a,signal:i.fetchOptions?.signal},m);}catch(g){let O=lt(g);return await i.fetchOptions?.onError?.(Se(u,O,Di(g))),{data:null,error:O}}let{response:y,requestId:A}=f,b=_i(n,f.data),c=b;if(y.ok)try{c=Te(b),i.decode&&(c=i.decode(c));}catch{let g=lt(new E("invalid_response",A));return await i.fetchOptions?.onError?.(Se(u,g,"invalid_response")),{data:null,error:g}}let l=Object.freeze({...u,status:y.status,...A===void 0?{}:{requestId:A}});if(await i.fetchOptions?.onResponse?.(l),!y.ok){let g=vi(y,b,A);return g.code===Qe&&e.session.tokens.dropChallenge(),await i.fetchOptions?.onError?.(Se(u,g,"api")),{data:null,error:g}}return await i.fetchOptions?.onSuccess?.(l),{data:c,error:null}}}}async function Pi(e,t,n,i){let o=Date.now()+Ri;for(let s=0;s<i;s+=1){let r=o-Date.now();if(r<=0)throw new E("timeout");try{let a=await re(e,t,{init:n,timeoutMs:Math.max(1,Math.ceil(r))});if(a.response.status<500||s===i-1)return a}catch(a){if(s===i-1||!(a instanceof E)||a.kind!=="network")throw a}await zi(50*2**s,n.signal,o);}throw new E("network")}function Ci(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 xi(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 vi(e,t,n){let i=Z(t)?t:{},o=Ei(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 Ei(e,t){let n=(typeof e.retryAfterSeconds=="number"&&Number.isFinite(e.retryAfterSeconds)?e.retryAfterSeconds:void 0)??dt(t.get("retry-after"))??dt(t.get("x-retry-after"));if(n!==void 0)return Math.min(Math.max(Math.trunc(n),1),86400)}function dt(e){if(!e)return;let t=e.trim();if(!/^\d+$/.test(t))return;let n=Number(t);return Number.isFinite(n)?n:void 0}function lt(e){let t=e instanceof E?e.kind:"network";return {status:0,...{aborted:{statusText:"ABORTED",code:"REQUEST_ABORTED",message:"The request was cancelled."},timeout:{statusText:"TIMEOUT",code:"REQUEST_TIMEOUT",message:"The request timed out."},response_too_large:{statusText:"INVALID_RESPONSE",code:"RESPONSE_TOO_LARGE",message:"The service response was too large."},invalid_response:{statusText:"INVALID_RESPONSE",code:"INVALID_RESPONSE",message:"The service returned an invalid response."},network:{statusText:"FETCH_ERROR",code:"FETCH_ERROR",message:"Network request failed."}}[t],...e instanceof E&&e.requestId?{requestId:e.requestId}:{}}}function Se(e,t,n){return Object.freeze({...e,status:t.status??0,...t.requestId===void 0?{}:{requestId:t.requestId},failure:n})}function Di(e){return e instanceof E?e.kind:"network"}function zi(e,t,n){return new Promise((i,o)=>{if(t?.aborted){o(new E("aborted"));return}let s=n-Date.now();if(s<=0){o(new E("timeout"));return}let r=Math.min(e,s),a=()=>{clearTimeout(u),o(new E("aborted"));},u=setTimeout(()=>{t?.removeEventListener("abort",a),Date.now()>=n?o(new E("timeout")):i();},r);t?.addEventListener("abort",a,{once:true}),t?.aborted&&a();})}function Te(e,t="",n=0,i={nodes:0}){if(i.nodes+=1,n>Ti||i.nodes>Ii)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=>Te(o,"",n+1,i)):Z(e)?Object.fromEntries(Object.entries(e).map(([o,s])=>[o,Ui(o)?s:Te(s,o,n+1,i)])):e}function Ui(e){return e==="metadata"||e==="public_metadata"||e==="unsafe_metadata"||e==="private_metadata"||e==="publicMetadata"||e==="unsafeMetadata"||e==="privateMetadata"}function _i(e,t){if(e==="/list-sessions"&&Array.isArray(t))return t.map(o=>Z(o)?Re(o):o);if(!Z(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-")?Re(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")&&Z(i.session)&&(i={...i,session:Re(i.session)}),i}function Re(e){if(!Object.hasOwn(e,"token"))return e;let t={...e};return delete t.token,t}function Z(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}var Ni=new Set(["__proto__","constructor","prototype"]);function p(e){(!e||typeof e!="object"||Array.isArray(e))&&d();let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null&&d(),e}function S(e){return typeof e!="string"&&d(),e}function I(e){return typeof e!="boolean"&&d(),e}function C(e){return (!(e instanceof Date)||Number.isNaN(e.getTime()))&&d(),e}function se(e){return (!Array.isArray(e)||!e.every(t=>typeof t=="string"))&&d(),[...e]}function P(e,t){let n=e[t];return n==null||typeof n=="string"?n:d()}function pt(e,t){let n=e[t];return n==null||typeof n=="boolean"?n:d()}function _(e){let t=p(e),n=t.email;return n!==null&&typeof n!="string"&&d(),{id:S(t.id),email:n,emailVerified:I(t.emailVerified),createdAt:C(t.createdAt),updatedAt:C(t.updatedAt),...U("phoneNumber",P(t,"phoneNumber")),...U("username",P(t,"username")),...U("displayUsername",P(t,"displayUsername")),...U("firstName",P(t,"firstName")),...U("lastName",P(t,"lastName")),...U("name",P(t,"name")),...U("image",P(t,"image")),...U("twoFactorEnabled",pt(t,"twoFactorEnabled"))}}function ae(e){let t=p(e),n=t.membership;return {id:S(t.id),userId:S(t.userId),expiresAt:C(t.expiresAt),...U("activeOrganizationId",P(t,"activeOrganizationId")),...U("activeTeamId",P(t,"activeTeamId")),...U("membership",n==null?n:Li(n)),...U("pendingMfaEnrollment",pt(t,"pendingMfaEnrollment"))}}function d(){throw new TypeError("AuthOwl response does not match its runtime contract.")}function L(e,t=20,n=1e4){return (!e||typeof e!="object"||Array.isArray(e))&&d(),Ce(e,t,n)}function Ce(e,t=20,n=1e4){return Pe(e,0,{nodes:0},t,n)}function Li(e){let t=p(e);return {role:S(t.role),permissions:se(t.permissions),...t.teams===void 0?{}:{teams:se(t.teams)}}}function Pe(e,t,n,i,o){if(n.nodes+=1,(t>i||n.nodes>o)&&d(),e===null||typeof e=="string"||typeof e=="boolean")return e;if(typeof e=="number")return Number.isFinite(e)||d(),e;if(Array.isArray(e))return e.map(a=>Pe(a,t+1,n,i,o));(!e||typeof e!="object")&&d();let s=Object.getPrototypeOf(e);s!==Object.prototype&&s!==null&&d();let r={};for(let[a,u]of Object.entries(e))Ni.has(a)&&d(),r[a]=Pe(u,t+1,n,i,o);return r}function U(e,t){return t===void 0?{}:{[e]:t}}function ft({http:e,probe:t,tokens:n,channelName:i}){let o=new Set,s=null,r=null,a=null,u=null,m=null,f,y=w=>{c(w);};f={data:null,isPending:true,isRefetching:false,error:null,refetch:y};function A(w){f=w;for(let T of o)T();}async function b(w){return e.request("/get-session",{query:w?.query,decode:xe})}function c(w){if(w?.query?.disableCookieCache===true)return l(w);if(u)return u;let T=l(w).finally(()=>{u===T&&(u=null);});return u=T,T}async function l(w){a?.abort();let T=new AbortController;a=T,A({...f,isPending:f.data===null&&f.error===null,isRefetching:f.data!==null});let h=n.beginRead(),x=await e.request("/get-session",{query:w?.query,fetchOptions:{signal:T.signal},decode:xe});if(a===T&&(a=null,A({data:x.data,error:x.error,isPending:false,isRefetching:false,refetch:y}),x.error===null)){if(x.data===null){h.endIfDead();return}await g(h);}}async function g(w){if(n.needsProbe()){if(!w.carriedToken){w.recordCookieVerdict(true);return}return m||O(w)}}function O(w){let T=t.request("/get-session",{query:{disableCookieCache:true},decode:xe}).then(h=>{m===T&&h.error===null&&w.recordCookieVerdict(h.data!==null);}).finally(()=>{m===T&&(m=null);});return m=T,T}function R(){s?.postMessage({type:"session-changed"});}function K(){if(typeof window>"u"||r)return;let w=()=>{c();},T=()=>{document.visibilityState==="visible"&&c();};window.addEventListener("focus",w),document.addEventListener("visibilitychange",T),typeof BroadcastChannel<"u"&&(s=new BroadcastChannel(i),s.addEventListener("message",w)),r=()=>{window.removeEventListener("focus",w),document.removeEventListener("visibilitychange",T),s?.close(),s=null,r=null;};}function B(w){return o.add(w),o.size===1&&(K(),c()),()=>{o.delete(w),o.size===0&&(a?.abort(),a=null,r?.());}}return n.measureWith(()=>{n.needsProbe()&&O(n.beginRead());}),{store:{subscribe:B,getSnapshot:()=>f},getSession:b,notifyMutation(){R(),m&&m.catch(()=>{}).then(()=>{!n.needsProbe()&&n.hasToken()&&R();}),o.size>0&&c({query:{disableCookieCache:true}});}}}function xe(e){if(e===null)return null;let t=p(e);return (t.session===void 0||t.user===void 0)&&d(),{session:ae(t.session),user:_(t.user)}}ve();function gt(){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 mt(e,t){return e.request("/user/metadata",{fetchOptions:t,decode:yt})}async function ht(e,t,n){return e.request("/user/metadata",{method:"PATCH",body:{expected_version:t.expectedVersion,unsafe_metadata:t.unsafeMetadata},fetchOptions:n,decode:yt})}function yt(e){let t=p(e),n=L(t.public_metadata),i=L(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 bt(e,t){let{post:n,mutation:i}=G(e,t);return {getMetadata:o=>mt(e,o),updateUnsafeMetadata:(o,s)=>ht(e,o,s),updateProfile:(o,s)=>i(n("/update-user",o,s,te)),changeEmail:(o,s)=>i(n("/change-email",o,s,te)),changePassword:(o,s)=>i(n("/change-password",o,s,Mi)),listSessions:o=>e.request("/list-sessions",{fetchOptions:o,decode:Fi}),revokeSession:({sessionId:o},s)=>i(n("/revoke-session",{sessionId:o},s,te)),revokeOtherSessions:o=>i(n("/revoke-other-sessions",{},o,te)),listSocialAccounts:async o=>{let s=await e.request("/list-accounts",{fetchOptions:o,decode:Hi});if(!s.data)return {data:null,error:s.error};let r=s.data.length>1;return {...s,data:s.data.filter(a=>a.providerId!=="credential").map(a=>({...a,canUnlink:r}))}},linkSocial:(o,s)=>n("/link-social",o,s,qi),unlinkSocial:(o,s)=>i(n("/unlink-account",o,s,te)),delete:(o={},s)=>i(n("/delete-user",o,s,Vi))}}function te(e){let t=p(e);return {status:I(t.status)}}function Mi(e){let t=p(e);return {user:_(t.user)}}function Fi(e){return Array.isArray(e)||d(),e.map(t=>{let n=p(t);return {id:S(n.id),userId:S(n.userId),createdAt:C(n.createdAt),updatedAt:C(n.updatedAt),expiresAt:C(n.expiresAt),...At("ipAddress",P(n,"ipAddress")),...At("userAgent",P(n,"userAgent"))}})}function Hi(e){return Array.isArray(e)||d(),e.map(t=>{let n=p(t);return {id:S(n.id),userId:S(n.userId),providerId:S(n.providerId),accountId:S(n.accountId),scopes:se(n.scopes),createdAt:C(n.createdAt),updatedAt:C(n.updatedAt)}})}function qi(e){let t=p(e);return {url:S(t.url),redirect:I(t.redirect)}}function Vi(e){let t=p(e);return {success:I(t.success),message:S(t.message)}}function At(e,t){return t===void 0?{}:{[e]:t}}function Ee(e,t){return !e||!t?false:e.permissions.includes(t)}function Ki(e,t){return !e||!t?false:e.teams?.includes(t)??false}function De(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&&e.role!==n||i!==void 0&&!e.permissions.includes(i)||o!==void 0&&!Ki(e,o))}function Bi(e){return {has:t=>De(e,t),hasPermission:t=>Ee(e,t.permission)}}var ji=new Set(["pending","accepted","rejected","canceled"]),wt=1e4;function W(e,t,n){let i=p(e),o={id:k(i.id),name:k(i.name),slug:k(i.slug),createdAt:C(i.createdAt),...ue("logo",P(i,"logo")),...ue("metadata",i.metadata===void 0?void 0:Ce(i.metadata))};return H(o.id,t),H(o.slug,n),o}function Ot(e){return q(e,W)}function ze(e,t,n){return e===null?null:(t===null&&d(),W(e,t,n))}function kt(e,t,n){if(e===null)return null;let i=p(e),o=W(i,t,n);return {...o,members:q(i.members,s=>_t(s,o.id)),invitations:q(i.invitations,s=>M(s,void 0,o.id))}}function St(e,t){let n=q(e,i=>Ut(i));return ce(n.map(i=>i.organizationId),t),n}function Rt(e,t,n){return e===null?null:(t===null&&d(),Ut(e,t,n))}function Tt(e,t){let n=p(e);return (!Number.isSafeInteger(n.total)||n.total<0)&&d(),{members:Ji(n.members,t),total:n.total}}function M(e,t,n){let i=p(e),o=k(i.status);ji.has(o)||d();let s={id:k(i.id),organizationId:k(i.organizationId),email:k(i.email),role:k(i.role),status:o,inviterId:k(i.inviterId),expiresAt:C(i.expiresAt),createdAt:C(i.createdAt)};return H(s.id,t),H(s.organizationId,n),s}function It(e,t){let n=q(e,i=>M(i));return ce(n.map(i=>i.organizationId),t),n}function Pt(e){return q(e,t=>{let n=p(t);return {...M(n),organizationName:k(n.organizationName)}})}function Ct(e,t){let n=p(e);return {...M(n,t),organizationName:k(n.organizationName),organizationSlug:k(n.organizationSlug),inviterEmail:k(n.inviterEmail)}}function xt(e,t){let n=p(e),i=M(n.invitation,t);return {invitation:i,member:Y(n.member,void 0,i.organizationId)}}function vt(e,t){let n=p(e);return n.member!==null&&d(),{invitation:n.invitation===null?null:M(n.invitation,t),member:null}}function Et(e,t){return e===null?null:M(e,t)}function Dt(e,t,n){let i=p(e);return {member:Y(i.member,n,t)}}function Y(e,t,n){let i=p(e),o={id:k(i.id),organizationId:k(i.organizationId),userId:k(i.userId),role:k(i.role),createdAt:C(i.createdAt),...i.user===void 0?{}:{user:Nt(i.user)}};return H(o.id,t),H(o.organizationId,n),o}function zt(e,t){let n=q(e,i=>{let o=p(i);return {organizationId:k(o.organizationId),data:{role:k(o.role),...ue("permission",o.permission===void 0?void 0:$i(o.permission))}}});return ce(n.map(i=>i.organizationId),t),n.map(i=>i.data)}function Ut(e,t,n){let i=p(e),o=i.updatedAt,s={id:k(i.id),name:k(i.name),organizationId:k(i.organizationId),createdAt:C(i.createdAt),...o===void 0?{}:{updatedAt:C(o)}};return H(s.id,t),H(s.organizationId,n),s}function _t(e,t){let n=p(e);return {...Y(n,void 0,t),user:Nt(n.user)}}function Ji(e,t){let n=q(e,i=>_t(i));return ce(n.map(i=>i.organizationId),t),n}function $i(e){let t=p(e),n={};for(let[i,o]of Object.entries(t))(i==="__proto__"||i==="constructor"||i==="prototype"||i.length===0||i.length>wt||!Array.isArray(o))&&d(),n[i]=o.map(s=>k(s));return n}function k(e){let t=S(e);return (t.length===0||t.length>wt)&&d(),t}function H(e,t){t!==void 0&&e!==t&&d();}function ce(e,t){let n=t??e[0];n!==void 0&&e.some(i=>i!==n)&&d();}function Nt(e){let t=p(e);return {id:k(t.id),name:k(t.name),email:k(t.email),...ue("image",P(t,"image"))}}function q(e,t){return Array.isArray(e)||d(),e.map(n=>t(n))}function ue(e,t){return t===void 0?{}:{[e]:t}}function Lt(e,t,n=()=>null){let{post:i,mutation:o}=G(e,t),s=(r,a,u,m)=>e.request(r,{query:a,fetchOptions:u,decode:m});return {create:(r,a)=>o(i("/organization/create",r,a,W)),list:r=>s("/organization/list",void 0,r,Ot),get:(r={},a)=>s("/organization/get-full-organization",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,membersLimit:r.membersLimit},a,u=>kt(u,r.organizationId,r.organizationSlug)),setActive:(r,a)=>o(i("/organization/set-active",r,a,u=>ze(u,r.organizationId,r.organizationSlug))),listTeams:(r={},a)=>s("/organization/list-teams",{organizationId:r.organizationId},a,u=>St(u,r.organizationId)),setActiveTeam:(r,a)=>o(i("/organization/set-active-team",r,a,u=>Rt(u,r.teamId))),update:(r,a)=>o(i("/organization/update",r,a,u=>ze(u,r.organizationId))),delete:(r,a)=>o(i("/organization/delete",r,a,u=>W(u,r.organizationId))),listMembers:(r={},a)=>s("/organization/list-members",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,limit:r.limit,offset:r.offset,sortBy:r.sortBy,sortDirection:r.sortDirection,filterField:r.filterField,filterValue:r.filterValue,filterOperator:r.filterOperator},a,u=>Tt(u,r.organizationId)),inviteMember:(r,a)=>o(i("/organization/invite-member",r,a,u=>M(u,void 0,r.organizationId))),listInvitations:(r={},a)=>s("/organization/list-invitations",{organizationId:r.organizationId},a,u=>It(u,r.organizationId)),listUserInvitations:r=>s("/organization/list-user-invitations",void 0,r,Pt),getInvitation:(r,a)=>s("/organization/get-invitation",{id:r.id},a,u=>Ct(u,r.id)),acceptInvitation:(r,a)=>o(i("/organization/accept-invitation",r,a,u=>xt(u,r.invitationId))),rejectInvitation:(r,a)=>o(i("/organization/reject-invitation",r,a,u=>vt(u,r.invitationId))),cancelInvitation:(r,a)=>o(i("/organization/cancel-invitation",r,a,u=>Et(u,r.invitationId))),removeMember:(r,a)=>o(i("/organization/remove-member",r,a,u=>Dt(u,r.organizationId,r.memberIdOrEmail.includes("@")?void 0:r.memberIdOrEmail))),updateMemberRole:(r,a)=>o(i("/organization/update-member-role",r,a,u=>Y(u,r.memberId,r.organizationId))),leave:(r,a)=>o(i("/organization/leave",r,a,u=>Y(u,void 0,r.organizationId))),listRoles:(r={},a)=>s("/organization/list-roles",{organizationId:r.organizationId},a,u=>zt(u,r.organizationId)),has:r=>De(n(),r),hasPermission:r=>Ee(n(),r.permission)}}var Mt=4096,Gi=4096,Wi=100,Yi=256,Xi=16,Qi=64,Zi=12;function _e(e){let t=p(e);return t.twoFactorRedirect===true?((t.user!==void 0||t.redirect!==void 0||t.url!==void 0)&&d(),{twoFactorRedirect:true,...t.twoFactorMethods===void 0?{}:{twoFactorMethods:nn(t.twoFactorMethods,Xi,Qi)}}):(t.twoFactorRedirect!==void 0&&d(),{redirect:I(t.redirect),...oo(t,"url"),user:_(t.user)})}function Ft(e){let t=p(e);return {user:_(t.user)}}function Ht(e){let t=p(e);return {sessionCreated:I(t.sessionCreated),user:_(t.user)}}function qt(e,t){let n=p(e),i=I(n.redirect);n.user===null&&d();let o=n.user!==void 0&&n.user!==null,s=n.url!==void 0&&n.url!==null;return i?((o||!s)&&d(),{redirect:true,url:Ue(n.url,t)}):(o===s&&d(),o?{redirect:false,user:_(n.user)}:{redirect:false,url:Ue(n.url,t)})}function Vt(e,t){let n=p(e);return (n.redirect!==true||n.user!==void 0)&&d(),{redirect:true,url:Ue(n.url,t)}}function Kt(e){return {status:I(p(e).status)}}function Bt(e){return {success:I(p(e).success)}}function jt(e){return p(e).status!=="pending"&&d(),{status:"pending"}}function Jt(e){let t=p(e);if(t.kind==="authowl_turnstile")return {kind:"authowl_turnstile"};t.kind!=="akedly_shield_v1_2"&&d();let n=p(t.turnstile),i=n.siteKey===null?null:S(n.siteKey);return {kind:"akedly_shield_v1_2",connectionId:S(t.connectionId),challenge:S(t.challenge),difficulty:eo(t.difficulty),challengeToken:S(t.challengeToken),challengeRequired:I(t.challengeRequired),turnstile:{required:I(n.required),siteKey:i}}}function eo(e){return (!Number.isSafeInteger(e)||Number(e)<0||Number(e)>Zi)&&d(),Number(e)}function $t(e){let t=p(e);return (t.status!==true||t.sessionCreated!==true)&&d(),{status:true,sessionCreated:true,user:to(t.user)}}function Ne(e){return {status:I(p(e).status)}}function Gt(e){return {status:I(p(e).status)}}function Wt(e){let t=p(e);return {status:I(t.status),user:_(t.user)}}function Yt(e){return {success:I(p(e).success)}}function Xt(e){let t=p(e);return {totpURI:io(t.totpURI),backupCodes:tn(t.backupCodes)}}function Qt(e){return {status:I(p(e).status)}}function de(e){return p(e).status!==true&&d(),{status:true}}function Zt(e){return {status:I(p(e).status)}}function en(e){let t=p(e);return t.status!==void 0&&t.status!==true&&d(),{backupCodes:tn(t.backupCodes)}}function to(e){let t=p(e);return {id:X(t.id,512),...ro(t,"name",1024),phoneNumber:X(t.phoneNumber,64),phoneNumberVerified:I(t.phoneNumberVerified),...t.createdAt===void 0?{}:{createdAt:C(t.createdAt)},...t.updatedAt===void 0?{}:{updatedAt:C(t.updatedAt)}}}function Ue(e,t){let n=X(e,Mt);/[\u0000-\u0020\u007f]/u.test(n)&&d();let i;try{i=new URL(n);}catch{return d()}return (i.username||i.password)&&d(),i.protocol==="https:"||t&&i.protocol==="http:"&&no(i.hostname)?i.href:d()}function no(e){let t=e.toLowerCase();return t==="localhost"||t==="127.0.0.1"||t==="[::1]"}function io(e){let t=X(e,Gi),n;try{n=new URL(t);}catch{return d()}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))&&d(),t}function tn(e){return nn(e,Wi,Yi)}function nn(e,t,n){(!Array.isArray(e)||e.length===0||e.length>t)&&d();let i=e.map(o=>X(o,n));return i.some(o=>o.trim().length===0)&&d(),new Set(i).size!==i.length&&d(),i}function X(e,t){let n=S(e);return (n.length===0||n.length>t)&&d(),n}function oo(e,t){let n=e[t];return n==null?{}:{[t]:X(n,Mt)}}function ro(e,t,n){let i=P(e,t);return i===void 0?{}:(i!==null&&i.length>n&&d(),{[t]:i})}var on=new Set([1564,8206,8207,8234,8235,8236,8237,8238,8294,8295,8296,8297]),le=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 pe(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||sn(n,i)||rn(i)||on.has(i))return {valid:false}}let t=so(e);return Le(t)?{valid:true,value:t}:{valid:false}}function Le(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||sn(o,s)||rn(s)||on.has(s))return false;n??=s,i=s;}return t>0&&n!==void 0&&i!==void 0&&!le.has(n)&&!le.has(i)}function fe(){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 so(e){let t=0,n=e.length;for(;t<n;){let i=e.codePointAt(t);if(i===void 0||!le.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,r=e.codePointAt(s);if(r===void 0||!le.has(r))break;n=s;}return e.slice(t,n)}function rn(e){return e>=0&&e<=31||e>=127&&e<=159}function sn(e,t){return e.length===1&&t>=55296&&t<=57343}var cn=12,dn=5e3,ao=8,uo=1e3,co=16,an=512,ln=100,pn=8192,lo=32768,Me=1024,un=256,He=64,po=6e5,fo=/^[A-Za-z0-9_-]+$/u,go=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u,mo=/[\u0000-\u001f\u007f-\u009f\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/u,ho=/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$/u,yo=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu,fn=new Set(["discouraged","preferred","required"]),Ao=new Set(["singleDevice","multiDevice"]),gn=new Set(["ble","cable","hybrid","internal","nfc","smart-card","usb"]),mn=new Set(["hybrid","security-key","client-device"]),bo=new Set(["none","indirect","direct","enterprise"]),wo=new Set(["fido-u2f","packed","android-safetynet","android-key","tpm","apple","none"]),Oo=new Set(["platform","cross-platform"]),ko=new Set(["discouraged","preferred","required"]),So=new Set([-8,-7,-257]);function hn(e){let t=L(e,cn,dn);return {challenge:In(t.challenge),...v("timeout",Rn(t.timeout)),...v("rpId",Pn(t.rpId)),...v("allowCredentials",Sn(t.allowCredentials)),...v("userVerification",ne(t.userVerification,fn)),...v("hints",ge(t.hints,mn)),...v("extensions",Tn(t.extensions))}}function yn(e){let t=L(e,cn,dn);return {challenge:In(t.challenge),rp:Ro(t.rp),user:To(t.user),pubKeyCredParams:Io(t.pubKeyCredParams),...v("timeout",Rn(t.timeout)),...v("excludeCredentials",Sn(t.excludeCredentials)),...v("authenticatorSelection",Po(t.authenticatorSelection)),...v("attestation",ne(t.attestation,bo)),...v("attestationFormats",ge(t.attestationFormats,wo)),...v("hints",ge(t.hints,mn)),...v("extensions",Tn(t.extensions))}}function An(e){let t=p(e),n=ae(t.session),i=_(t.user);return n.userId!==i.id&&d(),{session:n,user:i}}function qe(e){let t=p(e),n=t.counter;(!Number.isSafeInteger(n)||n<0)&&d();let i=Ve(t.deviceType,Ao),o=I(t.backedUp);return o&&i!=="multiDevice"&&d(),{id:Q(t.id,un),...vo(t),publicKey:Co(t.publicKey,lo),userId:Q(t.userId,un),credentialID:he(t.credentialID,pn),counter:n,deviceType:i,backedUp:o,...Eo(t),createdAt:C(t.createdAt),...Do(t)}}function bn(e,t,n){let i=qe(e);return (i.credentialID!==t||(n===void 0?i.name!==void 0&&i.name!==null:i.name!==n))&&d(),i}function wn(e){(!Array.isArray(e)||e.length>ln)&&d();let t=e.map(qe);return me(t.map(n=>n.id)),me(t.map(n=>n.credentialID)),t.length>1&&t.some(n=>n.userId!==t[0]?.userId)&&d(),t}function On(e,t,n){let i=p(e),o=qe(i.passkey);return (o.id!==t||o.name!==n)&&d(),{passkey:o}}function kn(e){return p(e).status!==true&&d(),{status:true}}function Ro(e){let t=p(e);return {name:Fe(t.name,Me),...v("id",Pn(t.id))}}function To(e){let t=p(e);return {id:he(t.id,128,1,64),name:Fe(t.name,Me),displayName:Fe(t.displayName,Me)}}function Io(e){(!Array.isArray(e)||e.length===0||e.length>He)&&d();let t=e.map(n=>{let i=p(n);return (i.type!=="public-key"||!Number.isSafeInteger(i.alg)||!So.has(i.alg))&&d(),{type:"public-key",alg:i.alg}});return zo(t.map(n=>n.alg)),t}function Sn(e){if(e===void 0)return;(!Array.isArray(e)||e.length>ln)&&d();let t=e.map(n=>{let i=p(n);return i.type!=="public-key"&&d(),{type:"public-key",id:he(i.id,pn),...v("transports",ge(i.transports,gn))}});return me(t.map(n=>n.id)),t}function Po(e){if(e===void 0)return;let t=p(e);t.requireResidentKey!==void 0&&typeof t.requireResidentKey!="boolean"&&d();let n=ne(t.residentKey,ko);return t.requireResidentKey!==void 0&&n!==void 0&&t.requireResidentKey!==(n==="required")&&d(),{...v("authenticatorAttachment",ne(t.authenticatorAttachment,Oo)),...v("residentKey",n),...v("requireResidentKey",t.requireResidentKey),...v("userVerification",ne(t.userVerification,fn))}}function Rn(e){return e!==void 0&&(typeof e!="number"||!Number.isFinite(e)||e<0||e>po)&&d(),e}function Tn(e){return e===void 0?void 0:L(e,ao,uo)}function ge(e,t){if(e===void 0)return;(!Array.isArray(e)||e.length>He)&&d();let n=e.map(i=>Ve(i,t));return me(n),n}function ne(e,t){if(e!==void 0)return Ve(e,t)}function In(e){return he(e,Math.ceil(an*4/3),co,an)}function he(e,t,n=1,i=Number.POSITIVE_INFINITY){let o=Q(e,t),s=o.length%4,r=xo(o.at(-1)??""),a=Math.floor(o.length*3/4);return (!fo.test(o)||s===1||s===2&&(r&15)!==0||s===3&&(r&3)!==0||a<n||a>i)&&d(),o}function Q(e,t){let n=S(e);return (n.length===0||n.length>t)&&d(),n}function Fe(e,t){let n=Q(e,t);return mo.test(n)&&d(),n}function Pn(e){if(e===void 0)return;let t=Q(e,253);return t!=="localhost"&&(t.endsWith(".")||!t.includes(".")||t.split(".").some(n=>!ho.test(n)))&&d(),t}function Co(e,t){let n=Q(e,t),i=n.endsWith("=="),o=!i&&n.endsWith("="),s=n.at(i?-3:o?-2:-1)??"",r=Cn(s);return (n.length%4!==0||!go.test(n)||i&&(r&15)!==0||o&&(r&3)!==0)&&d(),n}function xo(e){return Cn(e,true)}function Cn(e,t=false){return (t?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").indexOf(e)}function vo(e){let t=P(e,"name");return t===void 0?{}:(t!==null&&!Le(t)&&d(),{name:t})}function Eo(e){let t=P(e,"transports");if(t==null||t==="")return t===void 0?{}:{transports:t};let n=t.split(",");return (n.length>He||n.some(i=>!gn.has(i))||new Set(n).size!==n.length)&&d(),{transports:t}}function Do(e){let t=P(e,"aaguid");return t==null?t===void 0?{}:{aaguid:null}:(yo.test(t)||d(),{aaguid:t})}function Ve(e,t){let n=S(e);return t.has(n)||d(),n}function v(e,t){return t===void 0?{}:{[e]:t}}function me(e){new Set(e).size!==e.length&&d();}function zo(e){new Set(e).size!==e.length&&d();}function Vo(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 _n=new Map;function Ko(e,t,n){let i=_n.get(n);return i||(i=Promise.resolve().then(()=>(Ae(),ye)).then(o=>o.completeCrossSiteSignIn(e,t)),_n.set(n,i)),i}function Nn(e){return !ee()||e.idToken||e.disableRedirect?"legacy":"first-party"}function Bo(e,t=()=>{},n=$o){let i=Ie(e),o=e.session.tokens,s=ee()?Ko(i,o,e.decoded.projectId):void 0,r=Vo(i,s),a=ft({http:r,probe:Ie({...e,fetch:e.session.probe}),tokens:o,channelName:`authowl:${e.decoded.projectId}`}),u=n(r,a.notifyMutation),m=()=>{a.notifyMutation(),t();},{post:f,mutation:y}=G(r,m),A=e.decoded.env==="test",b=c=>{o.beginSession({remember:c?.rememberMe!==false});};return {sessionStore:a.store,getSession:a.getSession,account:bt(r,m),organization:Lt(r,m,()=>a.store.getSnapshot().data?.session.membership??null),signIn:{email:(c,l)=>(b(c),y(f("/sign-in/email",c,l,_e),g=>!("twoFactorRedirect"in g))),username:(c,l)=>(b(c),y(f("/sign-in/username",c,l,_e),g=>!("twoFactorRedirect"in g))),social:async(c,l)=>{if(b(),Nn(c)==="first-party"){let{beginCrossSiteSignIn:O}=await Promise.resolve().then(()=>(Ae(),ye)),R=await O(e,{kind:"social",provider:c.provider,callbackURL:c.callbackURL,errorCallbackURL:c.errorCallbackURL,newUserCallbackURL:c.newUserCallbackURL,scopes:c.scopes,loginHint:c.loginHint,requestSignUp:c.requestSignUp});if(R)return window.location.assign(R),{data:{redirect:true,url:R},error:null}}let g=await y(f("/sign-in/social",c,l,O=>qt(O,A)),O=>"user"in O);return g.error!==null||g.data===null||"url"in g.data&&g.data.redirect&&!c.disableRedirect&&typeof window<"u"&&window.location.assign(g.data.url),g},sso:async(c,l)=>{if(Nn(c)==="first-party"){let{beginCrossSiteSignIn:O}=await Promise.resolve().then(()=>(Ae(),ye)),R=await O(e,{kind:"sso",email:c.email,providerId:c.providerId,domain:c.domain,organizationSlug:c.organizationSlug,callbackURL:c.callbackURL,errorCallbackURL:c.errorCallbackURL,newUserCallbackURL:c.newUserCallbackURL});if(R)return window.location.assign(R),{data:{url:R,redirect:true},error:null}}let g=await f("/sign-in/sso",c,l,O=>Vt(O,A));return g.error!==null||g.data===null||typeof window<"u"&&window.location.assign(g.data.url),g},magicLink:(c,l)=>f("/sign-in/magic-link",c,l,Kt),emailOtp:(c,l)=>(b(),y(f("/sign-in/email-otp",c,l,Ft))),passkey:(c,l)=>(b(),u.signIn(c,l))},signUp:{email:(c,l)=>(b(),y(f("/sign-up/email",c,l,Ht),g=>g.sessionCreated))},emailOtp:{sendVerificationOtp:(c,l)=>f("/email-otp/send-verification-otp",c,l,Bt),verifyEmail:(c,l)=>(b(),y(f("/email-otp/verify-email",c,l,Wt)))},phoneOtp:{prepare:c=>f("/phone-otp/challenge",{},c,Jt),start:(c,l)=>f("/phone-otp/start",{...c,idempotencyKey:c.idempotencyKey??gt()},l,jt),verify:(c,l)=>(b(),y(f("/phone-otp/verify",c,l,$t)))},requestPasswordReset:(c,l)=>f("/request-password-reset",c,l,Ne),resetPassword:(c,l)=>f("/reset-password",c,l,Ne),sendVerificationEmail:(c,l)=>f("/send-verification-email",c,l,Gt),passkey:{addPasskey:(c,l)=>u.add(c,l),listUserPasskeys:()=>r.request("/passkey/list-user-passkeys",{decode:wn}),updatePasskey:async(c,l)=>{let g=pe(c.name);if(!g.valid||g.value===void 0)return fe();let O=g.value;return f("/passkey/update-passkey",{...c,name:O},l,R=>On(R,c.id,O))},deletePasskey:(c,l)=>f("/passkey/delete-passkey",c,l,kn)},twoFactor:{enable:(c,l)=>f("/two-factor/enable",c,l,Xt),disable:(c,l)=>y(f("/two-factor/disable",c,l,Qt),g=>g.status),verifyTotp:(c,l)=>y(f("/two-factor/verify-totp",c,l,de)),verifyBackupCode:(c,l)=>y(f("/two-factor/verify-backup-code",c,l,de)),sendOtp:(c={},l)=>f("/two-factor/send-otp",c,l,Zt),verifyOtp:(c,l)=>y(f("/two-factor/verify-otp",c,l,de)),generateBackupCodes:(c,l)=>f("/two-factor/generate-backup-codes",c,l,en)},signOut:c=>y(r.request("/sign-out",{method:"POST",body:{},fetchOptions:c,decode:Yt}).then(l=>(o.endSession(),l)),l=>l.success)}}function Be(e,t=()=>{},n){let i=Bo(e,t,n);return n?{...i,signIn:{email:i.signIn.email,username:i.signIn.username,social:Ln(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:Ln(i),magicLink:i.signIn.magicLink,emailOtp:i.signIn.emailOtp},passkey:{listUserPasskeys:i.passkey.listUserPasskeys,updatePasskey:i.passkey.updatePasskey,deletePasskey:i.passkey.deletePasskey}}}function Ln(e){return async(t,n)=>{if(!t?.idToken||typeof t.idToken.token!="string"||t.idToken.token==="")return jo();let i=await e.signIn.social({...t,disableRedirect:true},n);return i.data!==null&&"url"in i.data?Jo():i}}function jo(){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 Jo(){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 $o(){return {signIn:()=>Mn(),add:()=>Mn()}}function Mn(){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 Go(e,t,n){let i=new Map;return {async signIn(o={},s){let r=await e.request("/passkey/generate-authenticate-options");if(!r.data)return qn(r.error);let a;try{a=hn(r.data);}catch{return Fn()}let u;try{u=await n.authenticate({optionsJSON:a,useBrowserAutofill:o.autoFill});}catch(b){return Vn(n,b,"AUTH_CANCELLED","Passkey authentication was cancelled.")}if(!Wo(u))return Hn();let{clientExtensionResults:m,...f}=u,y=i.get(u.id);if(y)return y;let A=(async()=>{let b=await e.request("/passkey/verify-authentication",{method:"POST",body:{response:f},fetchOptions:s,decode:An});return b.data&&t(),b})();i.set(u.id,A);try{return await A}finally{i.get(u.id)===A&&i.delete(u.id);}},async add(o={},s){let r=pe(o.name);if(!r.valid)return fe();let a=await e.request("/passkey/generate-register-options",{query:{name:r.value,authenticatorAttachment:o.authenticatorAttachment}});if(!a.data)return qn(a.error);let u;try{u=yn(a.data);}catch{return Fn()}let m;try{m=await n.register({optionsJSON:u});}catch(b){return Vn(n,b,"REGISTRATION_CANCELLED","Passkey registration was cancelled.")}if(!Yo(m))return Hn();let{clientExtensionResults:f,...y}=m,A=await e.request("/passkey/verify-registration",{method:"POST",body:{response:y,name:r.value},fetchOptions:s,decode:b=>bn(b,m.id,r.value)});return A.data&&t(),A}}}function Fn(){return {data:null,error:{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned invalid WebAuthn options."}}}function Hn(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_WEBAUTHN_RESPONSE",message:"The platform returned an invalid passkey response."}}}function Bn(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 Wo(e){if(!Bn(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 Yo(e){if(!Bn(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.attestationObject=="string"}function qn(e){return {data:null,error:e??{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned no WebAuthn options."}}}function Vn(e,t,n,i){let o=Qo(t,"page does not have focus"),s=e.errorCode?.(t),r=s!==void 0?s==="ERROR_CEREMONY_ABORTED":Kn(t)==="AbortError",a=n!=="AUTH_CANCELLED",u=Xo(s,Kn(t),a);return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:o?"PASSKEY_PAGE_NOT_FOCUSED":r?n:s??"PASSKEY_BROWSER_ERROR",message:o?"Keep this page focused while completing the passkey prompt.":r?i:u}}}function Xo(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 Kn(e){return e&&typeof e=="object"&&"name"in e&&typeof e.name=="string"?e.name:void 0}function Qo(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 ct(await re(e,n,{init:{method:"GET",credentials:"omit"},maxResponseBytes:256*1024,decode:i=>er(i,e)}),"public-config")}function er(e,t){let n=L(e),i=n.environmentId,o=n.environmentType,s=`${new URL(t.apiUrl).origin}/api/projects/${t.decoded.projectId}/auth`;if(typeof n.applicationId!="string"||!tr(n.applicationId)||i!==t.decoded.projectId||o!=="development"&&o!=="production"||n.authBaseUrl!==s)throw N();let r=z(n.branding),a=z(n.legal);if(!je(n.enabledMethods,64)||!je(n.socialProviders,64)||!Jn(r,["appName","logoUrl","primaryColor"])||r.showAppName!==void 0&&typeof r.showAppName!="boolean"||r.alignment!==void 0&&r.alignment!=="left"&&r.alignment!=="center"&&r.alignment!=="right"||r.theme!==void 0&&r.theme!=="light"&&r.theme!=="dark"&&r.theme!=="system"||!Jn(a,["termsUrl","privacyUrl"])||!Number.isSafeInteger(a.version)||a.version<0||typeof a.required!="boolean")throw N();if(n.socialProviderClientIds!==void 0){let u=z(n.socialProviderClientIds);if(Object.keys(u).length>64||Object.values(u).some(m=>typeof m!="string"||m.length>2048))throw N()}if(!F(n,["requireEmailVerification","twoFactor","mfaRequired","accountDeletion","organizations","sso","badge"])||!jn(n.turnstileSiteKey)||!jn(n.authTurnstileSiteKey)||typeof n.locale!="string"||n.locale.length===0||n.locale.length>64||!Number.isSafeInteger(n.configVersion)||n.configVersion<0)throw N();if(n.jwtIssuer!==null){let u=z(n.jwtIssuer);if(u.issuer!==s||u.jwksUrl!==`${s}/jwks`||u.aud!==t.decoded.projectId)throw N()}if(n.signUp!==void 0){let u=z(n.signUp).mode;if(typeof u!="string"||!["open","restricted","allowlist","waitlist"].includes(u))throw N()}if(n.authentication!==void 0&&nr(n.authentication),n.emailVerification!==void 0){let u=z(n.emailVerification);if(!F(u,["required"])||u.method!=="link"&&u.method!=="code")throw N()}if(n.userModel!==void 0&&!F(z(n.userModel),["requireEmail","firstLastName","emailChange","accountDeletion"]))throw N();if(n.mfa!==void 0){let u=z(n.mfa);if(!F(u,["totp","required","backupCodes"])||(u.required===true||u.backupCodes===true)&&u.totp!==true)throw N()}return n}function tr(e){return /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e)}function N(){return new TypeError("public-config returned an invalid response")}function z(e){if(!e||typeof e!="object"||Array.isArray(e))throw N();return e}function jn(e){return e===null||typeof e=="string"&&e.length<=4096}function nr(e){let t=z(e),n=z(t.email),i=z(t.password),o=i.minLength!==void 0||i.maxLength!==void 0;if(!F(n,["signUp"])||!je(n.signIn,3)||n.signIn.some(s=>s!=="password"&&s!=="magic_link"&&s!=="email_otp")||!F(z(t.phone),["signUp","signIn"])||!F(i,["signUp","add"])||o&&(!Number.isSafeInteger(i.minLength)||!Number.isSafeInteger(i.maxLength)||i.minLength<1||i.maxLength>4096||i.minLength>i.maxLength)||!F(z(t.passkey),["signIn","add"])||!ir(z(t.passkey).relyingPartyId)||!F(z(t.username),["collectOnSignUp","signIn"]))throw N()}function ir(e){return e==null||typeof e=="string"}function F(e,t){return t.every(n=>typeof e[n]=="boolean")}function Jn(e,t){return t.every(n=>e[n]===void 0||typeof e[n]=="string"&&e[n].length<=4096)}function je(e,t){return Array.isArray(e)&&e.length<=t&&e.every(n=>typeof n=="string"&&n.length<=128)&&new Set(e).size===e.length}function or(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(r=>r==="password"||r==="magic_link"||r==="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}}function rr(e,t){let n=`p_${e.toLowerCase().replace(/-/g,"")}`;return `${t?.secure?"__Secure-":""}${n}.session_token`}function ws(e,t){return Be(Oe(e),t)}
2
+ exports.createMembershipHas=Bi;exports.createNativeAuthClient=Be;exports.createNativeClient=ws;exports.createPasskeyClient=Go;exports.decodePublishableKey=be;exports.getPublicConfig=Zo;exports.resolveConfig=Oe;exports.resolveProjectCapabilities=or;exports.sessionCookieName=rr;
package/dist/native.d.cts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { R as ResolvedAuthConfig, A as AuthConfig } from './organization-membership--eTrgk_L.cjs';
2
2
  export { D as DecodedPublishableKey, H as HasParams, O as OrganizationMembership, c as createMembershipHas, d as decodePublishableKey, r as resolveConfig, s as sessionCookieName } from './organization-membership--eTrgk_L.cjs';
3
- import { k as AuthOwlClient, aL as SocialIdTokenOptions, bd as createAuthHttpClient, be as AuthHttpClient, al as PasskeySignInOptions, f as ActionFetchOptions, h as AuthActionResult, ak as PasskeyAuthData, g as AddPasskeyOptions, m as AuthPasskey } from './client--0Q9VjLt.cjs';
4
- export { i as AuthClientError, p as AuthSession, q as AuthUser, a4 as Organization, a5 as OrganizationClient, a6 as OrganizationDetails, as as ProjectCapabilities, at as PublicConfig, aE as SessionState, aF as SessionStore, aG as SetActiveOrganizationOptions, aK as SocialAuthData, bb as getPublicConfig, bc as resolveProjectCapabilities } from './client--0Q9VjLt.cjs';
3
+ import { k as AuthOwlClient, aL as SocialIdTokenOptions, bd as createAuthHttpClient, be as AuthHttpClient, al as PasskeySignInOptions, f as ActionFetchOptions, h as AuthActionResult, ak as PasskeyAuthData, g as AddPasskeyOptions, m as AuthPasskey } from './client-BJ378jdV.cjs';
4
+ export { i as AuthClientError, p as AuthSession, q as AuthUser, a4 as Organization, a5 as OrganizationClient, a6 as OrganizationDetails, as as ProjectCapabilities, at as PublicConfig, aE as SessionState, aF as SessionStore, aG as SetActiveOrganizationOptions, aK as SocialAuthData, bb as getPublicConfig, bc as resolveProjectCapabilities } from './client-BJ378jdV.cjs';
5
5
  import { startAuthentication, startRegistration } from '@simplewebauthn/browser';
6
6
 
7
7
  type AuthActionClient = Omit<AuthOwlClient, 'getToken' | 'getConsentStatus' | 'acceptConsent' | 'waitlist'>;
package/dist/native.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { R as ResolvedAuthConfig, A as AuthConfig } from './organization-membership--eTrgk_L.js';
2
2
  export { D as DecodedPublishableKey, H as HasParams, O as OrganizationMembership, c as createMembershipHas, d as decodePublishableKey, r as resolveConfig, s as sessionCookieName } from './organization-membership--eTrgk_L.js';
3
- import { k as AuthOwlClient, aL as SocialIdTokenOptions, bd as createAuthHttpClient, be as AuthHttpClient, al as PasskeySignInOptions, f as ActionFetchOptions, h as AuthActionResult, ak as PasskeyAuthData, g as AddPasskeyOptions, m as AuthPasskey } from './client-DwK6spWA.js';
4
- export { i as AuthClientError, p as AuthSession, q as AuthUser, a4 as Organization, a5 as OrganizationClient, a6 as OrganizationDetails, as as ProjectCapabilities, at as PublicConfig, aE as SessionState, aF as SessionStore, aG as SetActiveOrganizationOptions, aK as SocialAuthData, bb as getPublicConfig, bc as resolveProjectCapabilities } from './client-DwK6spWA.js';
3
+ import { k as AuthOwlClient, aL as SocialIdTokenOptions, bd as createAuthHttpClient, be as AuthHttpClient, al as PasskeySignInOptions, f as ActionFetchOptions, h as AuthActionResult, ak as PasskeyAuthData, g as AddPasskeyOptions, m as AuthPasskey } from './client-CDn8-8i0.js';
4
+ export { i as AuthClientError, p as AuthSession, q as AuthUser, a4 as Organization, a5 as OrganizationClient, a6 as OrganizationDetails, as as ProjectCapabilities, at as PublicConfig, aE as SessionState, aF as SessionStore, aG as SetActiveOrganizationOptions, aK as SocialAuthData, bb as getPublicConfig, bc as resolveProjectCapabilities } from './client-CDn8-8i0.js';
5
5
  import { startAuthentication, startRegistration } from '@simplewebauthn/browser';
6
6
 
7
7
  type AuthActionClient = Omit<AuthOwlClient, 'getToken' | 'getConsentStatus' | 'acceptConsent' | 'waitlist'>;
package/dist/native.js CHANGED
@@ -1 +1 @@
1
- import {i}from'./chunk-4VJL4WGF.js';export{i as createNativeAuthClient,j as createPasskeyClient,k as getPublicConfig,a as resolveProjectCapabilities}from'./chunk-4VJL4WGF.js';import {f}from'./chunk-RRP2XNYV.js';export{w as createMembershipHas,a as decodePublishableKey,f as resolveConfig,b as sessionCookieName}from'./chunk-RRP2XNYV.js';import'./chunk-T5SH3ZZP.js';function u(i$1,o){return i(f(i$1),o)}export{u as createNativeClient};
1
+ import {i}from'./chunk-6CEKG2JL.js';export{i as createNativeAuthClient,j as createPasskeyClient,k as getPublicConfig,a as resolveProjectCapabilities}from'./chunk-6CEKG2JL.js';import {f}from'./chunk-RRP2XNYV.js';export{w as createMembershipHas,a as decodePublishableKey,f as resolveConfig,b as sessionCookieName}from'./chunk-RRP2XNYV.js';import'./chunk-T5SH3ZZP.js';function u(i$1,o){return i(f(i$1),o)}export{u as createNativeClient};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@authowl/core",
3
- "version": "0.15.0",
3
+ "version": "0.15.2",
4
4
  "description": "Framework-agnostic client for AuthOwl, the multi-tenant auth SaaS.",
5
5
  "license": "MIT",
6
6
  "publishConfig": {