@authowl/core 0.13.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-4VJL4WGF.js +1 -0
- package/dist/chunk-RRP2XNYV.js +2 -0
- package/dist/chunk-T5SH3ZZP.js +1 -0
- package/dist/{client-jpaYv3wu.d.ts → client--0Q9VjLt.d.cts} +10 -1
- package/dist/{client-DOOkDLWg.d.cts → client-DwK6spWA.d.ts} +10 -1
- package/dist/index.cjs +3 -3
- package/dist/index.d.cts +3 -4
- package/dist/index.d.ts +3 -4
- package/dist/index.js +2 -2
- package/dist/native.cjs +2 -1
- package/dist/native.d.cts +4 -4
- package/dist/native.d.ts +4 -4
- package/dist/native.js +1 -1
- package/dist/organization-membership--eTrgk_L.d.cts +442 -0
- package/dist/organization-membership--eTrgk_L.d.ts +442 -0
- package/dist/server.cjs +2 -2
- package/dist/server.d.cts +2 -3
- package/dist/server.d.ts +2 -3
- package/dist/server.js +1 -1
- package/dist/session-handoff-VJI4IXLT.js +2 -0
- package/package.json +2 -1
- package/dist/chunk-KPXCQZUX.js +0 -2
- package/dist/chunk-VZTAYWAD.js +0 -1
- package/dist/organization-membership-B3m6PbmO.d.cts +0 -117
- package/dist/organization-membership-B3m6PbmO.d.ts +0 -117
- package/dist/transport-DcWDTRd4.d.cts +0 -15
- package/dist/transport-DcWDTRd4.d.ts +0 -15
|
@@ -0,0 +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};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var ie=/^(pk_(live|test))_([0-9a-f-]{36})_([A-Za-z0-9]{20,})$/i,ae=/^sk_/i;function B(e){if(typeof e!="string"||e.length===0)throw new Error("publishableKey is required");if(ae.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=ie.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 qe(e,t){let n=`p_${e.toLowerCase().replace(/-/g,"")}`;return `${t?.secure?"__Secure-":""}${n}.session_token`}var j=/^http:\/\/(?:(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*localhost|127\.0\.0\.1|\[::1\])(?::\d+)?(?:\/|$)/i;function g(e,t){throw new Error(`${e}: ${t}`)}function ue(e){return /^https?:\/\/[^/?#]*(\/[^?#]*)?$/i.exec(e)?.[1]??""}function q(e,{label:t,allowHttpLoopback:n}){(typeof e!="string"||e.length===0)&&g(t,"required"),e!==e.trim()&&g(t,"surrounding whitespace"),(e.includes("?")||e.includes("#"))&&g(t,"query or fragment forbidden"),(e.includes("\\")||/%[0-9a-f]{2}/i.test(e))&&g(t,"path must be unencoded");let r;try{r=new URL(e);}catch{g(t,"absolute URL required");}return (r.username||r.password)&&g(t,"credentials forbidden"),r.protocol!=="https:"&&r.protocol!=="http:"&&g(t,"HTTPS required"),r.protocol==="http:"&&(!n||!j.test(e))&&g(t,"HTTPS required except exact loopback"),r}function $(e,t){let n;try{n=new URL(String(e));}catch{throw new TypeError("Transport URL must be absolute.")}if(n.username||n.password||n.hash)throw new TypeError("Transport URL must not contain credentials or a fragment.");let r=n.toString();if(n.protocol!=="https:"&&!(n.protocol==="http:"&&t.allowHttpLoopback&&j.test(r)))throw new TypeError("Transport URL must use HTTPS except on approved loopback.");return n}function J(e,t,n){let r=ue(e);(r.includes("//")||r.split("/").some(o=>o==="."||o==="..")||r!==""&&r!==t.pathname)&&g(n,"path traversal or duplicate separator");}function z(e,t){(typeof e!="string"||!/^https?:\/\/[^/?#@\\\s]+\/?$/i.test(e))&&g("apiUrl","origin required");let n;try{n=new URL(e);}catch{g("apiUrl","origin required");}return n.protocol==="http:"&&(!t.allowHttpLoopback||!j.test(e))&&g("apiUrl","HTTPS required except exact loopback"),n.origin}function $e(e,t,n={allowHttpLoopback:false}){let r=q(e,{label:"issuer",allowHttpLoopback:n.allowHttpLoopback}),o=q(t,{label:"jwksUri",allowHttpLoopback:n.allowHttpLoopback});return J(e,r,"issuer"),J(t,o,"jwksUri"),r.pathname!=="/"&&r.pathname.endsWith("/")&&g("issuer","trailing slash forbidden"),{issuer:r.toString().replace(/\/$/,""),jwksUri:o.toString()}}function O(e,t){try{return e?.getItem(t)??null}catch{return null}}function A(e,t,n){try{n===null?e?.removeItem(t):e?.setItem(t,n);}catch{}}function _(){try{return globalThis.localStorage}catch{return}}function x(){try{return globalThis.sessionStorage}catch{return}}var ce="authowl.session-challenge",le=e=>`${ce}.${e}`,de="set-auth-challenge",M="x-authowl-challenge",Ge="INVALID_TWO_FACTOR_COOKIE",pe=2048,K=e=>e!==null&&e.length<=pe,W=/^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/;function fe(e){let t=[];for(let n of e.split(";")){let r=n.trimStart(),o=r.indexOf("=");o<=0||t.push([r.slice(0,o).trimEnd(),r.slice(o+1)]);}return t}function G(e){let t=le(e),n=new Map;function r(){return n.size===0?null:[...n].map(([s,a])=>`${s}=${a}`).join("; ")}function o(){let s=r();A(x(),t,K(s)?s:null);}function l(s){for(let[a,c]of fe(s))W.test(a)&&(c===""?n.delete(a):W.test(c)&&n.set(a,c));}let u=O(x(),t);return K(u)&&l(u),{presentOn(s){let a=r();s.delete(M),K(a)&&s.set(M,a);},observe(s){let a=s.get(de);K(a)&&(l(a),o());},clear(){n.clear(),o();}}}var he="authowl.session-token",me="authowl.cookie-transport",Q="ok",X="bearer",be=e=>`${he}.${e}`,ge=e=>`${me}.${e}`,ye="set-auth-token",we="x-authowl-session-transport",ke="bearer";function Te(e){return e===Q?"cookies":e===X?"bearer":"unknown"}function Re(e){return e==="cookies"?Q:e==="bearer"?X:null}function Se(e){let t=be(e),n=ge(e),r=G(e),o=null,l=false,u=null,s=Te(O(_(),n)),a=()=>s==="unknown",c=0,d=null,w=false;function m(){let i=O(x(),t);if(i!==null)return l=true,i;let b=O(_(),t);return b!==null?(l=false,b):null}o=m(),o!==null&&a()&&(w=true);function E(){if(!(!w||!d)){w=false;try{d();}catch{}}}function k(){let i=s==="bearer"?o:null,[b,v]=l?[x(),_()]:[_(),x()];A(v,t,null),A(b,t,i);}function L(i){i!==null&&u!==null&&(l=u,u=null),o=i,k(),i!==null&&a()&&(w=true,E());}function p(i){s=i,A(_(),n,Re(i));}function T(){p("unknown"),w=false;}function R(){return o===null&&(o=m()),o}function C(){let i=m();return i!==null&&(o=i),o}function H(i){C()===i&&k();}function U(){c+=1,u=null,l=false,L(null),r.clear(),T();}let P=()=>s!=="cookies";return {hasToken:()=>R()!==null,declareOn(i){if(i.has("authorization"))return false;let b=R();return !b&&!P()?false:(b&&i.set("authorization",`Bearer ${b}`),i.set(we,ke),r.presentOn(i),true)},wantsToken:P,needsProbe:a,observe(i){let b=i.get(ye);b&&L(b),r.observe(i);},dropChallenge:r.clear,measureWith(i){d=i,E();},beginRead(){let i=R(),b=c;return {carriedToken:i!==null,endIfDead(){i!==null&&C()===i&&c===b&&U();},recordCookieVerdict(v){if(c===b&&a()){if(p(v?"cookies":"bearer"),v){L(null);return}H(i);}}}},beginSession({remember:i}){c+=1,u=!i,r.clear(),T();},endSession:U}}var Y=new Map;function Z(e){let t=Y.get(e);if(t)return t;let n=Se(e);return Y.set(e,n),n}function Ee(e,t){return t?.headers?new Headers(t.headers):typeof e=="object"&&e!==null&&"headers"in e?new Headers(e.headers):new Headers}function ee(e,t){let n=Z(e),r=(u,s)=>(t??globalThis.fetch)(u,s);return {fetch:async(u,s)=>{if(s?.credentials==="omit"||!n.wantsToken())return r(u,s);let a=Ee(u,s),c=n.declareOn(a),d=await r(u,{...s,headers:a});return c&&n.observe(d.headers),d},probe:r,tokens:n}}function st(e){if(!e||typeof e!="object")throw new Error("AuthConfig is required");let t=B(e.publishableKey),n=z(e.apiUrl,{allowHttpLoopback:t.env==="test"}),r=`${n}/api/projects/${t.projectId}/auth`,{fetch:o,...l}=ee(t.projectId,e.fetch);return {...e,apiUrl:n,decoded:t,projectBaseURL:r,fetch:o,session:l}}var xe=1e4,Oe=1024*1024,N=class extends Error{kind;requestId;constructor(t,n){super(ve(t)),this.name="TransportError",this.kind=t,this.requestId=n;}},re=new WeakSet;function f(e,t){let n=new N(e,t);return re.add(n),n}async function ut({fetchImpl:e,url:t,init:n={},timeoutMs:r=xe,maxResponseBytes:o=Oe,allowHttpLoopback:l=false,decode:u}){ne(r,"timeoutMs"),ne(o,"maxResponseBytes");let s=$(t,{allowHttpLoopback:l}),a=n.signal,c=new AbortController,d=null,w,m=new Promise(p=>{w=p;}),E=p=>{d===null&&(d=p,w({type:"abort",kind:p}),c.abort());},k=()=>E("aborted");a?.addEventListener("abort",k,{once:true});let L=setTimeout(()=>E("timeout"),r);a?.aborted&&k();try{if(d!==null)throw f(d);let p;try{p=await Promise.race([e(s.toString(),{...n,redirect:"error",signal:c.signal}).then(P=>({type:"response",response:P})),m]);}catch{throw f(d??"network")}if(p.type==="abort")throw f(p.kind);if(!Ae(p.response))throw f("invalid_response");let T=p.response,R=Pe(T.headers),C=await _e(T,o,m,()=>d,R),H=Ce(T,C,R),U;try{U=T.ok&&u?u(H,Object.freeze({status:T.status})):H;}catch{throw f("invalid_response",R)}return {response:T,data:U,...R===void 0?{}:{requestId:R}}}catch(p){throw p instanceof N&&re.has(p)?p:f(d??"network")}finally{clearTimeout(L),a?.removeEventListener("abort",k);}}function Ae(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 _e(e,t,n,r,o){let l=e.headers.get("content-length");if(l!==null){if(!/^\d+$/.test(l))throw te(e.body),f("invalid_response",o);if(Number(l)>t)throw te(e.body),f("response_too_large",o)}if(!e.body)return "";let u;try{u=e.body.getReader();}catch{throw f("network",o)}let s=[],a=0,c=null;try{for(;;){let m;try{m=await Promise.race([u.read(),n]);}catch{c=f(r()??"network",o);break}if(Le(m)){c=f(m.kind,o);break}let{done:E,value:k}=m;if(E)break;if(k.byteLength!==0){if(a+=k.byteLength,a>t){c=f("response_too_large",o);break}s.push(k);}}}finally{c&&Ue(u);try{u.releaseLock();}catch{}}if(c)throw c;let d=new Uint8Array(a),w=0;for(let m of s)d.set(m,w),w+=m.byteLength;try{return new TextDecoder("utf-8",{fatal:!0}).decode(d)}catch{throw f("invalid_response",o)}}function Le(e){return "type"in e&&e.type==="abort"}function te(e){if(e)try{e.cancel().catch(()=>{});}catch{}}function Ue(e){try{e.cancel().catch(()=>{});}catch{}}function Ce(e,t,n){if(e.status===204||e.status===205)return null;let r=He(e.headers.get("content-type"));if(!e.ok&&(!r||t.length===0))return null;if(!r||t.length===0)throw f("invalid_response",n);try{return JSON.parse(t)}catch{if(!e.ok)return null;throw f("invalid_response",n)}}function He(e){if(e===null)return false;let t=e.split(";",1)[0]?.trim().toLowerCase();return t==="application/json"||t?.endsWith("+json")===true}function Pe(e){let t=e.get("x-request-id")?.trim();if(!(!t||t.length>256||!/^[A-Za-z0-9._:-]+$/.test(t)))return t}function ne(e,t){if(!Number.isInteger(e)||e<=0)throw new TypeError(`${t} must be a positive integer.`)}function ve(e){switch(e){case "aborted":return "The request was cancelled.";case "timeout":return "The request timed out.";case "response_too_large":return "The response exceeded the allowed size.";case "invalid_response":return "The service returned an invalid response.";case "network":return "The network request could not be completed."}}function Ke(e,t){return !e||!t?false:e.permissions.includes(t)}function Ne(e,t){return !e||!t?false:e.teams?.includes(t)??false}function Ie(e,t){if(!e)return false;let{role:n,permission:r,teamId:o}=t;return !(n===void 0&&r===void 0&&o===void 0||n!==void 0&&e.role!==n||r!==void 0&&!e.permissions.includes(r)||o!==void 0&&!Ne(e,o))}function lt(e){return {has:t=>Ie(e,t),hasPermission:t=>Ke(e,t.permission)}}var je=new Set(["__proto__","constructor","prototype"]);function F(e){(!e||typeof e!="object"||Array.isArray(e))&&h();let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null&&h(),e}function I(e){return typeof e!="string"&&h(),e}function De(e){return typeof e!="boolean"&&h(),e}function D(e){return (!(e instanceof Date)||Number.isNaN(e.getTime()))&&h(),e}function oe(e){return (!Array.isArray(e)||!e.every(t=>typeof t=="string"))&&h(),[...e]}function S(e,t){let n=e[t];return n==null||typeof n=="string"?n:h()}function se(e,t){let n=e[t];return n==null||typeof n=="boolean"?n:h()}function pt(e){let t=F(e),n=t.email;return n!==null&&typeof n!="string"&&h(),{id:I(t.id),email:n,emailVerified:De(t.emailVerified),createdAt:D(t.createdAt),updatedAt:D(t.updatedAt),...y("phoneNumber",S(t,"phoneNumber")),...y("username",S(t,"username")),...y("displayUsername",S(t,"displayUsername")),...y("firstName",S(t,"firstName")),...y("lastName",S(t,"lastName")),...y("name",S(t,"name")),...y("image",S(t,"image")),...y("twoFactorEnabled",se(t,"twoFactorEnabled"))}}function ft(e){let t=F(e),n=t.membership;return {id:I(t.id),userId:I(t.userId),expiresAt:D(t.expiresAt),...y("activeOrganizationId",S(t,"activeOrganizationId")),...y("activeTeamId",S(t,"activeTeamId")),...y("membership",n==null?n:Fe(n)),...y("pendingMfaEnrollment",se(t,"pendingMfaEnrollment"))}}function h(){throw new TypeError("AuthOwl response does not match its runtime contract.")}function ht(e,t=20,n=1e4){return (!e||typeof e!="object"||Array.isArray(e))&&h(),Ve(e,t,n)}function Ve(e,t=20,n=1e4){return V(e,0,{nodes:0},t,n)}function Fe(e){let t=F(e);return {role:I(t.role),permissions:oe(t.permissions),...t.teams===void 0?{}:{teams:oe(t.teams)}}}function V(e,t,n,r,o){if(n.nodes+=1,(t>r||n.nodes>o)&&h(),e===null||typeof e=="string"||typeof e=="boolean")return e;if(typeof e=="number")return Number.isFinite(e)||h(),e;if(Array.isArray(e))return e.map(s=>V(s,t+1,n,r,o));(!e||typeof e!="object")&&h();let l=Object.getPrototypeOf(e);l!==Object.prototype&&l!==null&&h();let u={};for(let[s,a]of Object.entries(e))je.has(s)&&h(),u[s]=V(a,t+1,n,r,o);return u}function y(e,t){return t===void 0?{}:{[e]:t}}
|
|
2
|
+
export{B as a,qe as b,$ as c,$e as d,Ge as e,st as f,N as g,ut as h,F as i,I as j,De as k,D as l,oe as m,S as n,pt as o,ft as p,h as q,ht as r,Ve as s,Ke as t,Ne as u,Ie as v,lt as w};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(){return typeof window<"u"&&typeof document<"u"&&typeof crypto<"u"&&typeof crypto.subtle?.digest=="function"}export{e as a};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { R as ResolvedAuthConfig, H as HasParams, O as OrganizationMembership } from './organization-membership
|
|
1
|
+
import { R as ResolvedAuthConfig, H as HasParams, O as OrganizationMembership } from './organization-membership--eTrgk_L.cjs';
|
|
2
2
|
|
|
3
3
|
type EnvironmentType = 'development' | 'production';
|
|
4
4
|
/**
|
|
@@ -365,6 +365,15 @@ interface DeleteAccountOptions {
|
|
|
365
365
|
token?: string;
|
|
366
366
|
}
|
|
367
367
|
interface DeleteAccountData {
|
|
368
|
+
/**
|
|
369
|
+
* The request was accepted - which is NOT the same as "the account is gone".
|
|
370
|
+
* When deletion is confirmation-gated, `true` means only that a confirmation
|
|
371
|
+
* email went out and the session is still live.
|
|
372
|
+
*
|
|
373
|
+
* That ambiguity is why this call deliberately does not end the local session
|
|
374
|
+
* the way `signOut` does; a real deletion is caught instead by the session read
|
|
375
|
+
* that finds the token dead. See the ending catch in `session-store.ts`.
|
|
376
|
+
*/
|
|
368
377
|
success: boolean;
|
|
369
378
|
message: string;
|
|
370
379
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { R as ResolvedAuthConfig, H as HasParams, O as OrganizationMembership } from './organization-membership
|
|
1
|
+
import { R as ResolvedAuthConfig, H as HasParams, O as OrganizationMembership } from './organization-membership--eTrgk_L.js';
|
|
2
2
|
|
|
3
3
|
type EnvironmentType = 'development' | 'production';
|
|
4
4
|
/**
|
|
@@ -365,6 +365,15 @@ interface DeleteAccountOptions {
|
|
|
365
365
|
token?: string;
|
|
366
366
|
}
|
|
367
367
|
interface DeleteAccountData {
|
|
368
|
+
/**
|
|
369
|
+
* The request was accepted - which is NOT the same as "the account is gone".
|
|
370
|
+
* When deletion is confirmation-gated, `true` means only that a confirmation
|
|
371
|
+
* email went out and the session is still live.
|
|
372
|
+
*
|
|
373
|
+
* That ambiguity is why this call deliberately does not end the local session
|
|
374
|
+
* the way `signOut` does; a real deletion is caught instead by the session read
|
|
375
|
+
* that finds the token dead. See the ending catch in `session-store.ts`.
|
|
376
|
+
*/
|
|
368
377
|
success: boolean;
|
|
369
378
|
message: string;
|
|
370
379
|
}
|
package/dist/index.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
'use strict';var Bn=/^(pk_(live|test))_([0-9a-f-]{36})_([A-Za-z0-9]{20,})$/i,jn=/^sk_/i;function Re(e){if(typeof e!="string"||e.length===0)throw new Error("publishableKey is required");if(jn.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=Bn.exec(e);if(!t)throw new Error("publishableKey is malformed; expected pk_(live|test)_<uuid>_<base62>");return {prefix:t[1],env:t[2],projectId:t[3]}}function Jn(e,t){let n=`p_${e.replace(/-/g,"")}`;return `${t?.secure?"__Secure-":""}${n}.session_token`}var Xe=/^http:\/\/(?:(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*localhost|127\.0\.0\.1|\[::1\])(?::\d+)?(?:\/|$)/i;function Se(e,t){throw new Error(`${e}: ${t}`)}function Qe(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&&Xe.test(i)))throw new TypeError("Transport URL must use HTTPS except on approved loopback.");return n}function Ze(e,t){(typeof e!="string"||!/^https?:\/\/[^/?#@\\\s]+\/?$/i.test(e))&&Se("apiUrl","origin required");let n;try{n=new URL(e);}catch{Se("apiUrl","origin required");}return n.protocol==="http:"&&(!t.allowHttpLoopback||!Xe.test(e))&&Se("apiUrl","HTTPS required except exact loopback"),n.origin}function Gn(e){if(!e||typeof e!="object")throw new Error("AuthConfig is required");let t=Re(e.publishableKey),n=Ze(e.apiUrl,{allowHttpLoopback:t.env==="test"}),i=`${n}/api/projects/${t.projectId}/auth`;return {...e,apiUrl:n,decoded:t,projectBaseURL:i}}function Wn(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 $n=1e4,Yn=1024*1024,T=class extends Error{kind;requestId;constructor(t,n){super(oi(t)),this.name="TransportError",this.kind=t,this.requestId=n;}},nt=new WeakSet;function I(e,t){let n=new T(e,t);return nt.add(n),n}async function ne({fetchImpl:e,url:t,init:n={},timeoutMs:i=$n,maxResponseBytes:o=Yn,allowHttpLoopback:a=false,decode:r}){tt(i,"timeoutMs"),tt(o,"maxResponseBytes");let c=Qe(t,{allowHttpLoopback:a}),s=n.signal,h=new AbortController,u=null,d,f=new Promise(y=>{d=y;}),g=y=>{u===null&&(u=y,d({type:"abort",kind:y}),h.abort());},m=()=>g("aborted");s?.addEventListener("abort",m,{once:true});let U=setTimeout(()=>g("timeout"),i);s?.aborted&&m();try{if(u!==null)throw I(u);let y;try{y=await Promise.race([e(c.toString(),{...n,redirect:"error",signal:h.signal}).then(ke=>({type:"response",response:ke})),f]);}catch{throw I(u??"network")}if(y.type==="abort")throw I(y.kind);if(!Xn(y.response))throw I("invalid_response");let v=y.response,_=ii(v.headers),V=await Qn(v,o,f,()=>u,_),X=ti(v,V,_),q;try{q=v.ok&&r?r(X,Object.freeze({status:v.status})):X;}catch{throw I("invalid_response",_)}return {response:v,data:q,..._===void 0?{}:{requestId:_}}}catch(y){throw y instanceof T&&nt.has(y)?y:I(u??"network")}finally{clearTimeout(U),s?.removeEventListener("abort",m);}}function Xn(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 Qn(e,t,n,i,o){let a=e.headers.get("content-length");if(a!==null){if(!/^\d+$/.test(a))throw et(e.body),I("invalid_response",o);if(Number(a)>t)throw et(e.body),I("response_too_large",o)}if(!e.body)return "";let r;try{r=e.body.getReader();}catch{throw I("network",o)}let c=[],s=0,h=null;try{for(;;){let f;try{f=await Promise.race([r.read(),n]);}catch{h=I(i()??"network",o);break}if(Zn(f)){h=I(f.kind,o);break}let{done:g,value:m}=f;if(g)break;if(m.byteLength!==0){if(s+=m.byteLength,s>t){h=I("response_too_large",o);break}c.push(m);}}}finally{h&&ei(r);try{r.releaseLock();}catch{}}if(h)throw h;let u=new Uint8Array(s),d=0;for(let f of c)u.set(f,d),d+=f.byteLength;try{return new TextDecoder("utf-8",{fatal:!0}).decode(u)}catch{throw I("invalid_response",o)}}function Zn(e){return "type"in e&&e.type==="abort"}function et(e){if(e)try{e.cancel().catch(()=>{});}catch{}}function ei(e){try{e.cancel().catch(()=>{});}catch{}}function ti(e,t,n){if(e.status===204||e.status===205)return null;let i=ni(e.headers.get("content-type"));if(!e.ok&&(!i||t.length===0))return null;if(!i||t.length===0)throw I("invalid_response",n);try{return JSON.parse(t)}catch{if(!e.ok)return null;throw I("invalid_response",n)}}function ni(e){if(e===null)return false;let t=e.split(";",1)[0]?.trim().toLowerCase();return t==="application/json"||t?.endsWith("+json")===true}function ii(e){let t=e.get("x-request-id")?.trim();if(!(!t||t.length>256||!/^[A-Za-z0-9._:-]+$/.test(t)))return t}function tt(e,t){if(!Number.isInteger(e)||e<=0)throw new TypeError(`${t} must be a positive integer.`)}function oi(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 rt="x-authowl-turnstile-token",ri=1e4,ai=32,si=2e4;function J(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 ie(e,t=e.projectBaseURL){return {async request(n,i={}){let o=li(t,n,i.query),a=i.method??(i.body===void 0?"GET":"POST"),r=new Headers(i.fetchOptions?.headers);r.set("x-publishable-key",e.publishableKey),i.fetchOptions?.authChallengeToken&&r.set(rt,i.fetchOptions.authChallengeToken),i.body!==void 0&&r.set("content-type","application/json");let c={method:a,headers:r,credentials:i.credentials??"include",...i.body===void 0?{}:{body:JSON.stringify(i.body)}},s=Object.freeze({method:a,path:n});await i.fetchOptions?.onRequest?.(s);let h=ui(a,i.fetchOptions),u;try{u=await ci(e,o,{...c,signal:i.fetchOptions?.signal},h);}catch(y){let v=ot(y);return await i.fetchOptions?.onError?.(Te(s,v,fi(y))),{data:null,error:v}}let{response:d,requestId:f}=u,g=hi(n,u.data),m=g;if(d.ok)try{m=Pe(g),i.decode&&(m=i.decode(m));}catch{let y=ot(new T("invalid_response",f));return await i.fetchOptions?.onError?.(Te(s,y,"invalid_response")),{data:null,error:y}}let U=Object.freeze({...s,status:d.status,...f===void 0?{}:{requestId:f}});if(await i.fetchOptions?.onResponse?.(U),!d.ok){let y=di(d,g,f);return await i.fetchOptions?.onError?.(Te(s,y,"api")),{data:null,error:y}}return await i.fetchOptions?.onSuccess?.(U),{data:m,error:null}}}}async function ci(e,t,n,i){let o=Date.now()+ri;for(let a=0;a<i;a+=1){let r=o-Date.now();if(r<=0)throw new T("timeout");try{let c=await ne({fetchImpl:e.fetch??fetch,url:t,init:n,timeoutMs:Math.max(1,Math.ceil(r)),allowHttpLoopback:e.decoded.env==="test"});if(c.response.status<500||a===i-1)return c}catch(c){if(a===i-1||!(c instanceof T)||c.kind!=="network")throw c}await gi(50*2**a,n.signal,o);}throw new T("network")}function ui(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 li(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 di(e,t,n){let i=Q(t)?t:{},o=pi(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 pi(e,t){let n=(typeof e.retryAfterSeconds=="number"&&Number.isFinite(e.retryAfterSeconds)?e.retryAfterSeconds:void 0)??it(t.get("retry-after"))??it(t.get("x-retry-after"));if(n!==void 0)return Math.min(Math.max(Math.trunc(n),1),86400)}function it(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 ot(e){let t=e instanceof T?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 T&&e.requestId?{requestId:e.requestId}:{}}}function Te(e,t,n){return Object.freeze({...e,status:t.status??0,...t.requestId===void 0?{}:{requestId:t.requestId},failure:n})}function fi(e){return e instanceof T?e.kind:"network"}function gi(e,t,n){return new Promise((i,o)=>{if(t?.aborted){o(new T("aborted"));return}let a=n-Date.now();if(a<=0){o(new T("timeout"));return}let r=Math.min(e,a),c=()=>{clearTimeout(s),o(new T("aborted"));},s=setTimeout(()=>{t?.removeEventListener("abort",c),Date.now()>=n?o(new T("timeout")):i();},r);t?.addEventListener("abort",c,{once:true}),t?.aborted&&c();})}function Pe(e,t="",n=0,i={nodes:0}){if(i.nodes+=1,n>ai||i.nodes>si)throw new Error("response traversal limit exceeded");if(typeof e=="string"&&/^(?:createdAt|updatedAt|expiresAt)$/.test(t)){let o=new Date(e);return Number.isNaN(o.getTime())?e:o}return Array.isArray(e)?e.map(o=>Pe(o,"",n+1,i)):Q(e)?Object.fromEntries(Object.entries(e).map(([o,a])=>[o,mi(o)?a:Pe(a,o,n+1,i)])):e}function mi(e){return e==="metadata"||e==="public_metadata"||e==="unsafe_metadata"||e==="private_metadata"||e==="publicMetadata"||e==="unsafeMetadata"||e==="privateMetadata"}function hi(e,t){if(e==="/list-sessions"&&Array.isArray(t))return t.map(o=>Q(o)?Ie(o):o);if(!Q(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-")?Ie(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")&&Q(i.session)&&(i={...i,session:Ie(i.session)}),i}function Ie(e){if(!Object.hasOwn(e,"token"))return e;let t={...e};return delete t.token,t}function Q(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}var yi=new Set(["__proto__","constructor","prototype"]);function p(e){(!e||typeof e!="object"||Array.isArray(e))&&l();let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null&&l(),e}function A(e){return typeof e!="string"&&l(),e}function b(e){return typeof e!="boolean"&&l(),e}function R(e){return (!(e instanceof Date)||Number.isNaN(e.getTime()))&&l(),e}function oe(e){return (!Array.isArray(e)||!e.every(t=>typeof t=="string"))&&l(),[...e]}function k(e,t){let n=e[t];return n==null||typeof n=="string"?n:l()}function at(e,t){let n=e[t];return n==null||typeof n=="boolean"?n:l()}function x(e){let t=p(e),n=t.email;return n!==null&&typeof n!="string"&&l(),{id:A(t.id),email:n,emailVerified:b(t.emailVerified),createdAt:R(t.createdAt),updatedAt:R(t.updatedAt),...E("phoneNumber",k(t,"phoneNumber")),...E("username",k(t,"username")),...E("displayUsername",k(t,"displayUsername")),...E("firstName",k(t,"firstName")),...E("lastName",k(t,"lastName")),...E("name",k(t,"name")),...E("image",k(t,"image")),...E("twoFactorEnabled",at(t,"twoFactorEnabled"))}}function re(e){let t=p(e),n=t.membership;return {id:A(t.id),userId:A(t.userId),expiresAt:R(t.expiresAt),...E("activeOrganizationId",k(t,"activeOrganizationId")),...E("activeTeamId",k(t,"activeTeamId")),...E("membership",n==null?n:Ai(n)),...E("pendingMfaEnrollment",at(t,"pendingMfaEnrollment"))}}function l(){throw new TypeError("AuthOwl response does not match its runtime contract.")}function z(e,t=20,n=1e4){return (!e||typeof e!="object"||Array.isArray(e))&&l(),xe(e,t,n)}function xe(e,t=20,n=1e4){return Ee(e,0,{nodes:0},t,n)}function Ai(e){let t=p(e);return {role:A(t.role),permissions:oe(t.permissions),...t.teams===void 0?{}:{teams:oe(t.teams)}}}function Ee(e,t,n,i,o){if(n.nodes+=1,(t>i||n.nodes>o)&&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(c=>Ee(c,t+1,n,i,o));(!e||typeof e!="object")&&l();let a=Object.getPrototypeOf(e);a!==Object.prototype&&a!==null&&l();let r={};for(let[c,s]of Object.entries(e))yi.has(c)&&l(),r[c]=Ee(s,t+1,n,i,o);return r}function E(e,t){return t===void 0?{}:{[e]:t}}function ct(e,t){let n=new Set,i=null,o=null,a=null,r,c=g=>{u(g);};r={data:null,isPending:true,isRefetching:false,error:null,refetch:c};function s(g){r=g;for(let m of n)m();}async function h(g){return e.request("/get-session",{query:g?.query,decode:st})}async function u(g){a?.abort();let m=new AbortController;a=m,s({...r,isPending:r.data===null&&r.error===null,isRefetching:r.data!==null});let U=await e.request("/get-session",{query:g?.query,fetchOptions:{signal:m.signal},decode:st});a===m&&(a=null,s({data:U.data,error:U.error,isPending:false,isRefetching:false,refetch:c}));}function d(){if(typeof window>"u"||o)return;let g=()=>{u();},m=()=>{document.visibilityState==="visible"&&u();};window.addEventListener("focus",g),document.addEventListener("visibilitychange",m),typeof BroadcastChannel<"u"&&(i=new BroadcastChannel(`authowl:${t}`),i.addEventListener("message",g)),o=()=>{window.removeEventListener("focus",g),document.removeEventListener("visibilitychange",m),i?.close(),i=null,o=null;};}function f(g){return n.add(g),n.size===1&&(d(),u()),()=>{n.delete(g),n.size===0&&(a?.abort(),a=null,o?.());}}return {store:{subscribe:f,getSnapshot:()=>r},getSession:h,notifyMutation(){i?.postMessage({type:"session-changed"}),n.size>0&&u({query:{disableCookieCache:true}});}}}function st(e){if(e===null)return null;let t=p(e);return (t.session===void 0||t.user===void 0)&&l(),{session:re(t.session),user:x(t.user)}}function Ce(){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 ut(e,t){return e.request("/user/metadata",{fetchOptions:t,decode:dt})}async function lt(e,t,n){return e.request("/user/metadata",{method:"PATCH",body:{expected_version:t.expectedVersion,unsafe_metadata:t.unsafeMetadata},fetchOptions:n,decode:dt})}function dt(e){let t=p(e),n=z(t.public_metadata),i=z(t.unsafe_metadata);if(!Number.isSafeInteger(t.metadata_version)||t.metadata_version<0)throw new TypeError("Invalid AuthOwl metadata response");return {publicMetadata:n,unsafeMetadata:i,metadataVersion:t.metadata_version}}function ft(e,t){let{post:n,mutation:i}=J(e,t);return {getMetadata:o=>ut(e,o),updateUnsafeMetadata:(o,a)=>lt(e,o,a),updateProfile:(o,a)=>i(n("/update-user",o,a,Z)),changeEmail:(o,a)=>i(n("/change-email",o,a,Z)),changePassword:(o,a)=>i(n("/change-password",o,a,Oi)),listSessions:o=>e.request("/list-sessions",{fetchOptions:o,decode:bi}),revokeSession:({sessionId:o},a)=>i(n("/revoke-session",{sessionId:o},a,Z)),revokeOtherSessions:o=>i(n("/revoke-other-sessions",{},o,Z)),listSocialAccounts:async o=>{let a=await e.request("/list-accounts",{fetchOptions:o,decode:wi});if(!a.data)return {data:null,error:a.error};let r=a.data.length>1;return {...a,data:a.data.filter(c=>c.providerId!=="credential").map(c=>({...c,canUnlink:r}))}},linkSocial:(o,a)=>n("/link-social",o,a,ki),unlinkSocial:(o,a)=>i(n("/unlink-account",o,a,Z)),delete:(o={},a)=>i(n("/delete-user",o,a,Ri))}}function Z(e){let t=p(e);return {status:b(t.status)}}function Oi(e){let t=p(e);return {user:x(t.user)}}function bi(e){return Array.isArray(e)||l(),e.map(t=>{let n=p(t);return {id:A(n.id),userId:A(n.userId),createdAt:R(n.createdAt),updatedAt:R(n.updatedAt),expiresAt:R(n.expiresAt),...pt("ipAddress",k(n,"ipAddress")),...pt("userAgent",k(n,"userAgent"))}})}function wi(e){return Array.isArray(e)||l(),e.map(t=>{let n=p(t);return {id:A(n.id),userId:A(n.userId),providerId:A(n.providerId),accountId:A(n.accountId),scopes:oe(n.scopes),createdAt:R(n.createdAt),updatedAt:R(n.updatedAt)}})}function ki(e){let t=p(e);return {url:A(t.url),redirect:b(t.redirect)}}function Ri(e){let t=p(e);return {success:b(t.success),message:A(t.message)}}function pt(e,t){return t===void 0?{}:{[e]:t}}function ae(e,t){return !e||!t?false:e.permissions.includes(t)}function gt(e,t){return !e||!t?false:e.teams?.includes(t)??false}function se(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&&!gt(e,o))}function Si(e){return {has:t=>se(e,t),hasPermission:t=>ae(e,t.permission)}}var Ti=new Set(["pending","accepted","rejected","canceled"]),mt=1e4;function G(e,t,n){let i=p(e),o={id:O(i.id),name:O(i.name),slug:O(i.slug),createdAt:R(i.createdAt),...ce("logo",k(i,"logo")),...ce("metadata",i.metadata===void 0?void 0:xe(i.metadata))};return M(o.id,t),M(o.slug,n),o}function ht(e){return F(e,G)}function De(e,t,n){return e===null?null:(t===null&&l(),G(e,t,n))}function yt(e,t,n){if(e===null)return null;let i=p(e),o=G(i,t,n);return {...o,members:F(i.members,a=>Ct(a,o.id)),invitations:F(i.invitations,a=>N(a,void 0,o.id))}}function At(e,t){let n=F(e,i=>xt(i));return ue(n.map(i=>i.organizationId),t),n}function Ot(e,t,n){return e===null?null:(t===null&&l(),xt(e,t,n))}function bt(e,t){let n=p(e);return (!Number.isSafeInteger(n.total)||n.total<0)&&l(),{members:Ii(n.members,t),total:n.total}}function N(e,t,n){let i=p(e),o=O(i.status);Ti.has(o)||l();let a={id:O(i.id),organizationId:O(i.organizationId),email:O(i.email),role:O(i.role),status:o,inviterId:O(i.inviterId),expiresAt:R(i.expiresAt),createdAt:R(i.createdAt)};return M(a.id,t),M(a.organizationId,n),a}function wt(e,t){let n=F(e,i=>N(i));return ue(n.map(i=>i.organizationId),t),n}function kt(e){return F(e,t=>{let n=p(t);return {...N(n),organizationName:O(n.organizationName)}})}function Rt(e,t){let n=p(e);return {...N(n,t),organizationName:O(n.organizationName),organizationSlug:O(n.organizationSlug),inviterEmail:O(n.inviterEmail)}}function St(e,t){let n=p(e),i=N(n.invitation,t);return {invitation:i,member:W(n.member,void 0,i.organizationId)}}function Tt(e,t){let n=p(e);return n.member!==null&&l(),{invitation:n.invitation===null?null:N(n.invitation,t),member:null}}function It(e,t){return e===null?null:N(e,t)}function Pt(e,t,n){let i=p(e);return {member:W(i.member,n,t)}}function W(e,t,n){let i=p(e),o={id:O(i.id),organizationId:O(i.organizationId),userId:O(i.userId),role:O(i.role),createdAt:R(i.createdAt),...i.user===void 0?{}:{user:Dt(i.user)}};return M(o.id,t),M(o.organizationId,n),o}function Et(e,t){let n=F(e,i=>{let o=p(i);return {organizationId:O(o.organizationId),data:{role:O(o.role),...ce("permission",o.permission===void 0?void 0:Pi(o.permission))}}});return ue(n.map(i=>i.organizationId),t),n.map(i=>i.data)}function xt(e,t,n){let i=p(e),o=i.updatedAt,a={id:O(i.id),name:O(i.name),organizationId:O(i.organizationId),createdAt:R(i.createdAt),...o===void 0?{}:{updatedAt:R(o)}};return M(a.id,t),M(a.organizationId,n),a}function Ct(e,t){let n=p(e);return {...W(n,void 0,t),user:Dt(n.user)}}function Ii(e,t){let n=F(e,i=>Ct(i));return ue(n.map(i=>i.organizationId),t),n}function Pi(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>mt||!Array.isArray(o))&&l(),n[i]=o.map(a=>O(a));return n}function O(e){let t=A(e);return (t.length===0||t.length>mt)&&l(),t}function M(e,t){t!==void 0&&e!==t&&l();}function ue(e,t){let n=t??e[0];n!==void 0&&e.some(i=>i!==n)&&l();}function Dt(e){let t=p(e);return {id:O(t.id),name:O(t.name),email:O(t.email),...ce("image",k(t,"image"))}}function F(e,t){return Array.isArray(e)||l(),e.map(n=>t(n))}function ce(e,t){return t===void 0?{}:{[e]:t}}function vt(e,t,n=()=>null){let{post:i,mutation:o}=J(e,t),a=(r,c,s,h)=>e.request(r,{query:c,fetchOptions:s,decode:h});return {create:(r,c)=>o(i("/organization/create",r,c,G)),list:r=>a("/organization/list",void 0,r,ht),get:(r={},c)=>a("/organization/get-full-organization",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,membersLimit:r.membersLimit},c,s=>yt(s,r.organizationId,r.organizationSlug)),setActive:(r,c)=>o(i("/organization/set-active",r,c,s=>De(s,r.organizationId,r.organizationSlug))),listTeams:(r={},c)=>a("/organization/list-teams",{organizationId:r.organizationId},c,s=>At(s,r.organizationId)),setActiveTeam:(r,c)=>o(i("/organization/set-active-team",r,c,s=>Ot(s,r.teamId))),update:(r,c)=>o(i("/organization/update",r,c,s=>De(s,r.organizationId))),delete:(r,c)=>o(i("/organization/delete",r,c,s=>G(s,r.organizationId))),listMembers:(r={},c)=>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},c,s=>bt(s,r.organizationId)),inviteMember:(r,c)=>o(i("/organization/invite-member",r,c,s=>N(s,void 0,r.organizationId))),listInvitations:(r={},c)=>a("/organization/list-invitations",{organizationId:r.organizationId},c,s=>wt(s,r.organizationId)),listUserInvitations:r=>a("/organization/list-user-invitations",void 0,r,kt),getInvitation:(r,c)=>a("/organization/get-invitation",{id:r.id},c,s=>Rt(s,r.id)),acceptInvitation:(r,c)=>o(i("/organization/accept-invitation",r,c,s=>St(s,r.invitationId))),rejectInvitation:(r,c)=>o(i("/organization/reject-invitation",r,c,s=>Tt(s,r.invitationId))),cancelInvitation:(r,c)=>o(i("/organization/cancel-invitation",r,c,s=>It(s,r.invitationId))),removeMember:(r,c)=>o(i("/organization/remove-member",r,c,s=>Pt(s,r.organizationId,r.memberIdOrEmail.includes("@")?void 0:r.memberIdOrEmail))),updateMemberRole:(r,c)=>o(i("/organization/update-member-role",r,c,s=>W(s,r.memberId,r.organizationId))),leave:(r,c)=>o(i("/organization/leave",r,c,s=>W(s,void 0,r.organizationId))),listRoles:(r={},c)=>a("/organization/list-roles",{organizationId:r.organizationId},c,s=>Et(s,r.organizationId)),has:r=>se(n(),r),hasPermission:r=>ae(n(),r.permission)}}var Ut=4096,Ei=4096,xi=100,Ci=256,Di=16,vi=64,Ui=12;function Ue(e){let t=p(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:Xt(t.twoFactorMethods,Di,vi)}}):(t.twoFactorRedirect!==void 0&&l(),{redirect:b(t.redirect),...Mi(t,"url"),user:x(t.user)})}function _t(e){let t=p(e);return {user:x(t.user)}}function zt(e){let t=p(e);return {sessionCreated:b(t.sessionCreated),user:x(t.user)}}function Nt(e,t){let n=p(e),i=b(n.redirect);n.user===null&&l();let o=n.user!==void 0&&n.user!==null,a=n.url!==void 0&&n.url!==null;return i?((o||!a)&&l(),{redirect:true,url:ve(n.url,t)}):(o===a&&l(),o?{redirect:false,user:x(n.user)}:{redirect:false,url:ve(n.url,t)})}function Lt(e,t){let n=p(e);return (n.redirect!==true||n.user!==void 0)&&l(),{redirect:true,url:ve(n.url,t)}}function Mt(e){return {status:b(p(e).status)}}function Ft(e){return {success:b(p(e).success)}}function Vt(e){return p(e).status!=="pending"&&l(),{status:"pending"}}function qt(e){let t=p(e);if(t.kind==="authowl_turnstile")return {kind:"authowl_turnstile"};t.kind!=="akedly_shield_v1_2"&&l();let n=p(t.turnstile),i=n.siteKey===null?null:A(n.siteKey);return {kind:"akedly_shield_v1_2",connectionId:A(t.connectionId),challenge:A(t.challenge),difficulty:_i(t.difficulty),challengeToken:A(t.challengeToken),challengeRequired:b(t.challengeRequired),turnstile:{required:b(n.required),siteKey:i}}}function _i(e){return (!Number.isSafeInteger(e)||Number(e)<0||Number(e)>Ui)&&l(),Number(e)}function Kt(e){let t=p(e);return (t.status!==true||t.sessionCreated!==true)&&l(),{status:true,sessionCreated:true,user:zi(t.user)}}function _e(e){return {status:b(p(e).status)}}function Ht(e){return {status:b(p(e).status)}}function Bt(e){let t=p(e);return {status:b(t.status),user:x(t.user)}}function jt(e){return {success:b(p(e).success)}}function Jt(e){let t=p(e);return {totpURI:Li(t.totpURI),backupCodes:Yt(t.backupCodes)}}function Gt(e){return {status:b(p(e).status)}}function le(e){return p(e).status!==true&&l(),{status:true}}function Wt(e){return {status:b(p(e).status)}}function $t(e){let t=p(e);return t.status!==void 0&&t.status!==true&&l(),{backupCodes:Yt(t.backupCodes)}}function zi(e){let t=p(e);return {id:$(t.id,512),...Fi(t,"name",1024),phoneNumber:$(t.phoneNumber,64),phoneNumberVerified:b(t.phoneNumberVerified),...t.createdAt===void 0?{}:{createdAt:R(t.createdAt)},...t.updatedAt===void 0?{}:{updatedAt:R(t.updatedAt)}}}function ve(e,t){let n=$(e,Ut);/[\u0000-\u0020\u007f]/u.test(n)&&l();let i;try{i=new URL(n);}catch{return l()}return (i.username||i.password)&&l(),i.protocol==="https:"||t&&i.protocol==="http:"&&Ni(i.hostname)?i.href:l()}function Ni(e){let t=e.toLowerCase();return t==="localhost"||t==="127.0.0.1"||t==="[::1]"}function Li(e){let t=$(e,Ei),n;try{n=new URL(t);}catch{return l()}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))&&l(),t}function Yt(e){return Xt(e,xi,Ci)}function Xt(e,t,n){(!Array.isArray(e)||e.length===0||e.length>t)&&l();let i=e.map(o=>$(o,n));return i.some(o=>o.trim().length===0)&&l(),new Set(i).size!==i.length&&l(),i}function $(e,t){let n=A(e);return (n.length===0||n.length>t)&&l(),n}function Mi(e,t){let n=e[t];return n==null?{}:{[t]:$(n,Ut)}}function Fi(e,t,n){let i=k(e,t);return i===void 0?{}:(i!==null&&i.length>n&&l(),{[t]:i})}var Qt=new Set([1564,8206,8207,8234,8235,8236,8237,8238,8294,8295,8296,8297]),de=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||en(n,i)||Zt(i)||Qt.has(i))return {valid:false}}let t=Vi(e);return ze(t)?{valid:true,value:t}:{valid:false}}function ze(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||en(o,a)||Zt(a)||Qt.has(a))return false;n??=a,i=a;}return t>0&&n!==void 0&&i!==void 0&&!de.has(n)&&!de.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 Vi(e){let t=0,n=e.length;for(;t<n;){let i=e.codePointAt(t);if(i===void 0||!de.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||!de.has(r))break;n=a;}return e.slice(t,n)}function Zt(e){return e>=0&&e<=31||e>=127&&e<=159}function en(e,t){return e.length===1&&t>=55296&&t<=57343}var on=12,rn=5e3,qi=8,Ki=1e3,Hi=16,tn=512,an=100,sn=8192,Bi=32768,Ne=1024,nn=256,Me=64,ji=6e5,Ji=/^[A-Za-z0-9_-]+$/u,Gi=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u,Wi=/[\u0000-\u001f\u007f-\u009f\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/u,$i=/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$/u,Yi=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu,cn=new Set(["discouraged","preferred","required"]),Xi=new Set(["singleDevice","multiDevice"]),un=new Set(["ble","cable","hybrid","internal","nfc","smart-card","usb"]),ln=new Set(["hybrid","security-key","client-device"]),Qi=new Set(["none","indirect","direct","enterprise"]),Zi=new Set(["fido-u2f","packed","android-safetynet","android-key","tpm","apple","none"]),eo=new Set(["platform","cross-platform"]),to=new Set(["discouraged","preferred","required"]),no=new Set([-8,-7,-257]);function dn(e){let t=z(e,on,rn);return {challenge:wn(t.challenge),...S("timeout",On(t.timeout)),...S("rpId",kn(t.rpId)),...S("allowCredentials",An(t.allowCredentials)),...S("userVerification",ee(t.userVerification,cn)),...S("hints",ge(t.hints,ln)),...S("extensions",bn(t.extensions))}}function pn(e){let t=z(e,on,rn);return {challenge:wn(t.challenge),rp:io(t.rp),user:oo(t.user),pubKeyCredParams:ro(t.pubKeyCredParams),...S("timeout",On(t.timeout)),...S("excludeCredentials",An(t.excludeCredentials)),...S("authenticatorSelection",ao(t.authenticatorSelection)),...S("attestation",ee(t.attestation,Qi)),...S("attestationFormats",ge(t.attestationFormats,Zi)),...S("hints",ge(t.hints,ln)),...S("extensions",bn(t.extensions))}}function fn(e){let t=p(e),n=re(t.session),i=x(t.user);return n.userId!==i.id&&l(),{session:n,user:i}}function Fe(e){let t=p(e),n=t.counter;(!Number.isSafeInteger(n)||n<0)&&l();let i=Ve(t.deviceType,Xi),o=b(t.backedUp);return o&&i!=="multiDevice"&&l(),{id:Y(t.id,nn),...uo(t),publicKey:so(t.publicKey,Bi),userId:Y(t.userId,nn),credentialID:he(t.credentialID,sn),counter:n,deviceType:i,backedUp:o,...lo(t),createdAt:R(t.createdAt),...po(t)}}function gn(e,t,n){let i=Fe(e);return (i.credentialID!==t||(n===void 0?i.name!==void 0&&i.name!==null:i.name!==n))&&l(),i}function mn(e){(!Array.isArray(e)||e.length>an)&&l();let t=e.map(Fe);return me(t.map(n=>n.id)),me(t.map(n=>n.credentialID)),t.length>1&&t.some(n=>n.userId!==t[0]?.userId)&&l(),t}function hn(e,t,n){let i=p(e),o=Fe(i.passkey);return (o.id!==t||o.name!==n)&&l(),{passkey:o}}function yn(e){return p(e).status!==true&&l(),{status:true}}function io(e){let t=p(e);return {name:Le(t.name,Ne),...S("id",kn(t.id))}}function oo(e){let t=p(e);return {id:he(t.id,128,1,64),name:Le(t.name,Ne),displayName:Le(t.displayName,Ne)}}function ro(e){(!Array.isArray(e)||e.length===0||e.length>Me)&&l();let t=e.map(n=>{let i=p(n);return (i.type!=="public-key"||!Number.isSafeInteger(i.alg)||!no.has(i.alg))&&l(),{type:"public-key",alg:i.alg}});return fo(t.map(n=>n.alg)),t}function An(e){if(e===void 0)return;(!Array.isArray(e)||e.length>an)&&l();let t=e.map(n=>{let i=p(n);return i.type!=="public-key"&&l(),{type:"public-key",id:he(i.id,sn),...S("transports",ge(i.transports,un))}});return me(t.map(n=>n.id)),t}function ao(e){if(e===void 0)return;let t=p(e);t.requireResidentKey!==void 0&&typeof t.requireResidentKey!="boolean"&&l();let n=ee(t.residentKey,to);return t.requireResidentKey!==void 0&&n!==void 0&&t.requireResidentKey!==(n==="required")&&l(),{...S("authenticatorAttachment",ee(t.authenticatorAttachment,eo)),...S("residentKey",n),...S("requireResidentKey",t.requireResidentKey),...S("userVerification",ee(t.userVerification,cn))}}function On(e){return e!==void 0&&(typeof e!="number"||!Number.isFinite(e)||e<0||e>ji)&&l(),e}function bn(e){return e===void 0?void 0:z(e,qi,Ki)}function ge(e,t){if(e===void 0)return;(!Array.isArray(e)||e.length>Me)&&l();let n=e.map(i=>Ve(i,t));return me(n),n}function ee(e,t){if(e!==void 0)return Ve(e,t)}function wn(e){return he(e,Math.ceil(tn*4/3),Hi,tn)}function he(e,t,n=1,i=Number.POSITIVE_INFINITY){let o=Y(e,t),a=o.length%4,r=co(o.at(-1)??""),c=Math.floor(o.length*3/4);return (!Ji.test(o)||a===1||a===2&&(r&15)!==0||a===3&&(r&3)!==0||c<n||c>i)&&l(),o}function Y(e,t){let n=A(e);return (n.length===0||n.length>t)&&l(),n}function Le(e,t){let n=Y(e,t);return Wi.test(n)&&l(),n}function kn(e){if(e===void 0)return;let t=Y(e,253);return t!=="localhost"&&(t.endsWith(".")||!t.includes(".")||t.split(".").some(n=>!$i.test(n)))&&l(),t}function so(e,t){let n=Y(e,t),i=n.endsWith("=="),o=!i&&n.endsWith("="),a=n.at(i?-3:o?-2:-1)??"",r=Rn(a);return (n.length%4!==0||!Gi.test(n)||i&&(r&15)!==0||o&&(r&3)!==0)&&l(),n}function co(e){return Rn(e,true)}function Rn(e,t=false){return (t?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").indexOf(e)}function uo(e){let t=k(e,"name");return t===void 0?{}:(t!==null&&!ze(t)&&l(),{name:t})}function lo(e){let t=k(e,"transports");if(t==null||t==="")return t===void 0?{}:{transports:t};let n=t.split(",");return (n.length>Me||n.some(i=>!un.has(i))||new Set(n).size!==n.length)&&l(),{transports:t}}function po(e){let t=k(e,"aaguid");return t==null?t===void 0?{}:{aaguid:null}:(Yi.test(t)||l(),{aaguid:t})}function Ve(e,t){let n=A(e);return t.has(n)||l(),n}function S(e,t){return t===void 0?{}:{[e]:t}}function me(e){new Set(e).size!==e.length&&l();}function fo(e){new Set(e).size!==e.length&&l();}function Tn(e,t=()=>{},n=go){let i=ie(e),o=ct(i,e.decoded.projectId),a=n(i,o.notifyMutation),r=()=>{o.notifyMutation(),t();},{post:c,mutation:s}=J(i,r),h=e.decoded.env==="test";return {sessionStore:o.store,getSession:o.getSession,account:ft(i,r),organization:vt(i,r,()=>o.store.getSnapshot().data?.session.membership??null),signIn:{email:(u,d)=>s(c("/sign-in/email",u,d,Ue),f=>!("twoFactorRedirect"in f)),username:(u,d)=>s(c("/sign-in/username",u,d,Ue),f=>!("twoFactorRedirect"in f)),social:async(u,d)=>{let f=await s(c("/sign-in/social",u,d,g=>Nt(g,h)),g=>"user"in g);return f.error!==null||f.data===null||"url"in f.data&&f.data.redirect&&!u.disableRedirect&&typeof window<"u"&&window.location.assign(f.data.url),f},sso:async(u,d)=>{let f=await c("/sign-in/sso",u,d,g=>Lt(g,h));return f.error!==null||f.data===null||typeof window<"u"&&window.location.assign(f.data.url),f},magicLink:(u,d)=>c("/sign-in/magic-link",u,d,Mt),emailOtp:(u,d)=>s(c("/sign-in/email-otp",u,d,_t)),passkey:(u,d)=>a.signIn(u,d)},signUp:{email:(u,d)=>s(c("/sign-up/email",u,d,zt),f=>f.sessionCreated)},emailOtp:{sendVerificationOtp:(u,d)=>c("/email-otp/send-verification-otp",u,d,Ft),verifyEmail:(u,d)=>s(c("/email-otp/verify-email",u,d,Bt))},phoneOtp:{prepare:u=>c("/phone-otp/challenge",{},u,qt),start:(u,d)=>c("/phone-otp/start",{...u,idempotencyKey:u.idempotencyKey??Ce()},d,Vt),verify:(u,d)=>s(c("/phone-otp/verify",u,d,Kt))},requestPasswordReset:(u,d)=>c("/request-password-reset",u,d,_e),resetPassword:(u,d)=>c("/reset-password",u,d,_e),sendVerificationEmail:(u,d)=>c("/send-verification-email",u,d,Ht),passkey:{addPasskey:(u,d)=>a.add(u,d),listUserPasskeys:()=>i.request("/passkey/list-user-passkeys",{decode:mn}),updatePasskey:async(u,d)=>{let f=pe(u.name);if(!f.valid||f.value===void 0)return fe();let g=f.value;return c("/passkey/update-passkey",{...u,name:g},d,m=>hn(m,u.id,g))},deletePasskey:(u,d)=>c("/passkey/delete-passkey",u,d,yn)},twoFactor:{enable:(u,d)=>c("/two-factor/enable",u,d,Jt),disable:(u,d)=>s(c("/two-factor/disable",u,d,Gt),f=>f.status),verifyTotp:(u,d)=>s(c("/two-factor/verify-totp",u,d,le)),verifyBackupCode:(u,d)=>s(c("/two-factor/verify-backup-code",u,d,le)),sendOtp:(u={},d)=>c("/two-factor/send-otp",u,d,Wt),verifyOtp:(u,d)=>s(c("/two-factor/verify-otp",u,d,le)),generateBackupCodes:(u,d)=>c("/two-factor/generate-backup-codes",u,d,$t)},signOut:u=>s(i.request("/sign-out",{method:"POST",body:{},fetchOptions:u,decode:jt}),d=>d.success)}}function go(){return {signIn:()=>Sn(),add:()=>Sn()}}function Sn(){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 Cn(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 En(r.error);let c;try{c=dn(r.data);}catch{return In()}let s;try{s=await n.authenticate({optionsJSON:c,useBrowserAutofill:o.autoFill});}catch(g){return xn(n,g,"AUTH_CANCELLED","Passkey authentication was cancelled.")}if(!mo(s))return Pn();let{clientExtensionResults:h,...u}=s,d=i.get(s.id);if(d)return d;let f=(async()=>{let g=await e.request("/passkey/verify-authentication",{method:"POST",body:{response:u},fetchOptions:a,decode:fn});return g.data&&t(),g})();i.set(s.id,f);try{return await f}finally{i.get(s.id)===f&&i.delete(s.id);}},async add(o={},a){let r=pe(o.name);if(!r.valid)return fe();let c=await e.request("/passkey/generate-register-options",{query:{name:r.value,authenticatorAttachment:o.authenticatorAttachment}});if(!c.data)return En(c.error);let s;try{s=pn(c.data);}catch{return In()}let h;try{h=await n.register({optionsJSON:s});}catch(g){return xn(n,g,"REGISTRATION_CANCELLED","Passkey registration was cancelled.")}if(!ho(h))return Pn();let{clientExtensionResults:u,...d}=h,f=await e.request("/passkey/verify-registration",{method:"POST",body:{response:d,name:r.value},fetchOptions:a,decode:g=>gn(g,h.id,r.value)});return f.data&&t(),f}}}function In(){return {data:null,error:{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned invalid WebAuthn options."}}}function Pn(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_WEBAUTHN_RESPONSE",message:"The platform returned an invalid passkey response."}}}function Dn(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 mo(e){if(!Dn(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 ho(e){if(!Dn(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.attestationObject=="string"}function En(e){return {data:null,error:e??{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned no WebAuthn options."}}}function xn(e,t,n,i){let o=Ao(t,"page does not have focus"),a=e.errorCode?.(t),r=a!==void 0?a==="ERROR_CEREMONY_ABORTED":yo(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 yo(e){return e&&typeof e=="object"&&"name"in e&&typeof e.name=="string"?e.name:void 0}function Ao(e,t){let n=t.toLowerCase(),i=new Set,o=e;for(;o&&typeof o=="object"&&!i.has(o);){if(i.add(o),"message"in o&&typeof o.message=="string"&&o.message.toLowerCase().includes(n))return true;o="cause"in o?o.cause:void 0;}return false}function C(e){let t=new Uint8Array(e),n="";for(let o of t)n+=String.fromCharCode(o);return btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function K(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),n=(4-t.length%4)%4,i=t.padEnd(t.length+n,"="),o=atob(i),a=new ArrayBuffer(o.length),r=new Uint8Array(a);for(let c=0;c<o.length;c++)r[c]=o.charCodeAt(c);return a}function H(){return Oo.stubThis(globalThis?.PublicKeyCredential!==void 0&&typeof globalThis.PublicKeyCredential=="function")}var Oo={stubThis:e=>e};function ye(e){let{id:t}=e;return {...e,id:K(t),transports:e.transports}}function Ae(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 w=class extends Error{constructor({message:t,code:n,cause:i,name:o}){super(t,{cause:i}),Object.defineProperty(this,"code",{enumerable:true,configurable:true,writable:true,value:void 0}),this.name=o??i.name,this.code=n;}};function vn({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 w({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 w({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 w({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 w({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 w({message:"The authenticator was previously registered",code:"ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED",cause:e});if(e.name==="NotAllowedError")return new w({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="NotSupportedError")return n.pubKeyCredParams.filter(o=>o.type==="public-key").length===0?new w({message:'No entry in pubKeyCredParams was of type "public-key"',code:"ERROR_MALFORMED_PUBKEYCREDPARAMS",cause:e}):new w({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(Ae(i)){if(n.rp.id!==i)return new w({message:`The RP ID "${n.rp.id}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new w({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 w({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 w({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 qe=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;}}},Oe=new qe;var bo=["cross-platform","platform"];function be(e){if(e&&!(bo.indexOf(e)<0))return e}async function Un(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(!H())throw new Error("WebAuthn is not supported in this browser");let i={...t,challenge:K(t.challenge),user:{...t.user,id:K(t.user.id)},excludeCredentials:t.excludeCredentials?.map(ye)},o={};n&&(o.mediation="conditional"),o.publicKey=i,o.signal=Oe.createNewAbortSignal();let a;try{a=await navigator.credentials.create(o);}catch(m){throw vn({error:m,options:o})}if(!a)throw new Error("Registration was not completed");let{id:r,rawId:c,response:s,type:h}=a,u;typeof s.getTransports=="function"&&(u=s.getTransports());let d;if(typeof s.getPublicKeyAlgorithm=="function")try{d=s.getPublicKeyAlgorithm();}catch(m){Ke("getPublicKeyAlgorithm()",m);}let f;if(typeof s.getPublicKey=="function")try{let m=s.getPublicKey();m!==null&&(f=C(m));}catch(m){Ke("getPublicKey()",m);}let g;if(typeof s.getAuthenticatorData=="function")try{g=C(s.getAuthenticatorData());}catch(m){Ke("getAuthenticatorData()",m);}return {id:r,rawId:C(c),response:{attestationObject:C(s.attestationObject),clientDataJSON:C(s.clientDataJSON),transports:u,publicKeyAlgorithm:d,publicKey:f,authenticatorData:g},type:h,clientExtensionResults:a.getClientExtensionResults(),authenticatorAttachment:be(a.authenticatorAttachment)}}function Ke(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 _n(){if(!H())return He.stubThis(new Promise(t=>t(false)));let e=globalThis.PublicKeyCredential;return e?.isConditionalMediationAvailable===void 0?He.stubThis(new Promise(t=>t(false))):He.stubThis(e.isConditionalMediationAvailable())}var He={stubThis:e=>e};function zn({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 w({message:"Authentication ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else {if(e.name==="NotAllowedError")return new w({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="SecurityError"){let i=globalThis.location.hostname;if(Ae(i)){if(n.rpId!==i)return new w({message:`The RP ID "${n.rpId}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new w({message:`${globalThis.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="UnknownError")return new w({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 Nn(e){!e.optionsJSON&&e.challenge&&(console.warn("startAuthentication() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information."),e={optionsJSON:e});let{optionsJSON:t,useBrowserAutofill:n=false,verifyBrowserAutofillInput:i=true}=e;if(!H())throw new Error("WebAuthn is not supported in this browser");let o;t.allowCredentials?.length!==0&&(o=t.allowCredentials?.map(ye));let a={...t,challenge:K(t.challenge),allowCredentials:o},r={};if(n){if(!await _n())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');r.mediation="conditional",a.allowCredentials=[];}r.publicKey=a,r.signal=Oe.createNewAbortSignal();let c;try{c=await navigator.credentials.get(r);}catch(g){throw zn({error:g,options:r})}if(!c)throw new Error("Authentication was not completed");let{id:s,rawId:h,response:u,type:d}=c,f;return u.userHandle&&(f=C(u.userHandle)),{id:s,rawId:C(h),response:{authenticatorData:C(u.authenticatorData),clientDataJSON:C(u.clientDataJSON),signature:C(u.signature),userHandle:f},type:d,clientExtensionResults:c.getClientExtensionResults(),authenticatorAttachment:be(c.authenticatorAttachment)}}var Ln={authenticate:e=>Nn(e),register:e=>Un(e),errorCode:e=>e instanceof w?e.code:void 0};var we=class extends Error{status;requestId;constructor(t,n,i){super(`${t} request failed with status ${n.status}.`),this.name="AuthOwlHttpError",this.status=n.status,this.requestId=i;}};function B(e,t,n={}){let i=new Headers(n.init?.headers);return i.set("x-publishable-key",e.publishableKey),ne({fetchImpl:e.fetch??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 j(e,t){if(!e.response.ok)throw new we(t,e.response,e.requestId);return e.data}function Fn(e){return `${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/consent`}async function Be(e){let t=await B(e,Fn(e),{init:{method:"GET",credentials:"include"},maxResponseBytes:65536,decode:wo});return t.response.status===401?{required:false}:j(t,"consent status")}async function je(e,t){if(!Number.isSafeInteger(t)||t<1)throw new TypeError("Consent version must be a positive integer.");return j(await B(e,Fn(e),{init:{method:"POST",headers:{"content-type":"application/json"},credentials:"include",body:JSON.stringify({version:t})},maxResponseBytes:64*1024,decode:ko}),"consent accept")}function wo(e){let t=p(e),n=b(t.required),i=Ro(t.needsConsent),o=Vn(t.version),a=Mn(t.termsUrl),r=Mn(t.privacyUrl);return {required:n,...i===void 0?{}:{needsConsent:i},...o===void 0?{}:{version:o},...a===void 0?{}:{termsUrl:a},...r===void 0?{}:{privacyUrl:r}}}function ko(e){let t=p(e),n=Vn(t.version);return {ok:b(t.ok),...n===void 0?{}:{version:n}}}function Ro(e){if(e===void 0||typeof e=="boolean")return e;throw new TypeError("Invalid consent response.")}function Vn(e){if(e===void 0||Number.isSafeInteger(e)&&e>=1)return e;throw new TypeError("Invalid consent response.")}function Mn(e){if(e===void 0||typeof e=="string"&&e.length<=4096)return e;throw new TypeError("Invalid consent response.")}var So=30;function To(e){return typeof e?.exp=="number"?e.exp:null}function Io(e){let t=e.split(".")[1];if(!t)return null;try{let n=t.replace(/-/g,"+").replace(/_/g,"/"),i=JSON.parse(atob(n));return typeof i=="object"&&i!==null?i:null}catch{return null}}function Je(e){let t=new Map;async function n(a={}){let r=a.template===void 0?null:a.template.trim().toLowerCase();if(r==="")throw new TypeError("Template missing");let c=r??"",s=t.get(c);s||(s={activeKey:null,cachedByKey:new Map,inflight:null,sequence:0},t.set(c,s));let h=a.forceRefresh===true;if(!h){let m=s.activeKey?s.cachedByKey.get(s.activeKey):null;if(m&&m.exp-Date.now()/1e3>So)return m.token;if(s.inflight)return s.inflight}let u=++s.sequence,d=()=>t.get(c)===s&&s.sequence===u,f=(async()=>{let m=r?`${e.projectBaseURL}/token/${encodeURIComponent(r)}`:`${e.projectBaseURL}/token`,U=await B(e,m,{init:{method:"GET",credentials:"include"},maxResponseBytes:64*1024,decode:q=>Po(q,r!==null)});if(U.response.status===401)return d()&&i(),null;let y=j(U,"token"),v=y.policyVersion,_=y.token,V=Io(_),X=To(V);if(d())if(X!==null){let q=typeof V?.sub=="string"?V.sub:null,ke=typeof V?.org_id=="string"?V.org_id:null;if(!r||q){let Ye=JSON.stringify([e.projectBaseURL,q,ke,r,v]);s.cachedByKey.clear(),s.cachedByKey.set(Ye,{token:_,exp:X}),s.activeKey=Ye;}else o(s);}else o(s);return _})();if(h)return f;let g=f.finally(()=>{s.inflight===g&&(s.inflight=null);});return s.inflight=g,g}function i(){t.clear();}function o(a){a.cachedByKey.clear(),a.activeKey=null;}return {getToken:n,clear:i}}function Po(e,t){let n=p(e),i=A(n.token);if(i.length===0||i.length>32*1024)throw new TypeError("Invalid token response.");if(!t)return {token:i,policyVersion:0};let o=p(n.template);if(!Number.isSafeInteger(o.policyVersion)||o.policyVersion<1)throw new TypeError("Invalid token response.");return {token:i,policyVersion:o.policyVersion}}function Eo(e){let t=Je(e),n=Tn(e,t.clear,(r,c)=>Cn(r,c,Ln)),i=ie(e,`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}`),o=r=>(...c)=>(t.clear(),r(...c)),a={getConsentStatus:()=>Be(e),acceptConsent:r=>je(e,r),getToken:t.getToken,waitlist:{join:(r,c)=>i.request("/waitlist",{method:"POST",body:r,fetchOptions:c,credentials:"omit"})},account:{...n.account,updateUnsafeMetadata:o(n.account.updateUnsafeMetadata),updateProfile:o(n.account.updateProfile),changeEmail:o(n.account.changeEmail),changePassword:o(n.account.changePassword),revokeSession:o(n.account.revokeSession),delete:o(n.account.delete)},signIn:{email:o(n.signIn.email),username:o(n.signIn.username),social:o(n.signIn.social),sso:n.signIn.sso,magicLink:n.signIn.magicLink,emailOtp:o(n.signIn.emailOtp),passkey:o(n.signIn.passkey)},signUp:{email:o(n.signUp.email)},emailOtp:{...n.emailOtp,verifyEmail:o(n.emailOtp.verifyEmail)},twoFactor:{enable:n.twoFactor.enable,disable:o(n.twoFactor.disable),verifyTotp:o(n.twoFactor.verifyTotp),verifyBackupCode:o(n.twoFactor.verifyBackupCode),sendOtp:n.twoFactor.sendOtp,verifyOtp:o(n.twoFactor.verifyOtp),generateBackupCodes:n.twoFactor.generateBackupCodes},phoneOtp:{prepare:n.phoneOtp.prepare,start:n.phoneOtp.start,verify:o(n.phoneOtp.verify)},signOut:o(n.signOut)};return {...n,...a}}async function xo(e){if(typeof window>"u")throw new Error("Akedly Shield challenges must be solved in a browser.");let t=await Co(),n=e.challengeRequired?await t.solvePow(e.challenge,e.difficulty):null,i=e.turnstile.required?await t.getTurnstileToken(Do(e.turnstile.siteKey)):void 0;return {connectionId:e.connectionId,...n?{challengeToken:e.challengeToken,nonce:n.nonce}:{},...i?{turnstileToken:i}:{}}}async function Co(){return import('@akedly/shield')}function Do(e){if(!e)throw new Error("Akedly Shield did not provide a Turnstile site key.");return e}async function vo(e){let n=`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/public-config`;return j(await B(e,n,{init:{method:"GET",credentials:"omit"},maxResponseBytes:256*1024,decode:i=>Uo(i,e)}),"public-config")}function Uo(e,t){let n=z(e),i=n.environmentId,o=n.environmentType,a=`${new URL(t.apiUrl).origin}/api/projects/${t.decoded.projectId}/auth`;if(typeof n.applicationId!="string"||!_o(n.applicationId)||i!==t.decoded.projectId||o!=="development"&&o!=="production"||n.authBaseUrl!==a)throw D();let r=P(n.branding),c=P(n.legal);if(!Ge(n.enabledMethods,64)||!Ge(n.socialProviders,64)||!Kn(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"||!Kn(c,["termsUrl","privacyUrl"])||!Number.isSafeInteger(c.version)||c.version<0||typeof c.required!="boolean")throw D();if(n.socialProviderClientIds!==void 0){let s=P(n.socialProviderClientIds);if(Object.keys(s).length>64||Object.values(s).some(h=>typeof h!="string"||h.length>2048))throw D()}if(!L(n,["requireEmailVerification","twoFactor","mfaRequired","accountDeletion","organizations","sso","badge"])||!qn(n.turnstileSiteKey)||!qn(n.authTurnstileSiteKey)||typeof n.locale!="string"||n.locale.length===0||n.locale.length>64||!Number.isSafeInteger(n.configVersion)||n.configVersion<0)throw D();if(n.jwtIssuer!==null){let s=P(n.jwtIssuer);if(s.issuer!==a||s.jwksUrl!==`${a}/jwks`||s.aud!==t.decoded.projectId)throw D()}if(n.signUp!==void 0){let s=P(n.signUp).mode;if(typeof s!="string"||!["open","restricted","allowlist","waitlist"].includes(s))throw D()}if(n.authentication!==void 0&&zo(n.authentication),n.emailVerification!==void 0){let s=P(n.emailVerification);if(!L(s,["required"])||s.method!=="link"&&s.method!=="code")throw D()}if(n.userModel!==void 0&&!L(P(n.userModel),["requireEmail","firstLastName","emailChange","accountDeletion"]))throw D();if(n.mfa!==void 0){let s=P(n.mfa);if(!L(s,["totp","required","backupCodes"])||(s.required===true||s.backupCodes===true)&&s.totp!==true)throw D()}return n}function _o(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 D(){return new TypeError("public-config returned an invalid response")}function P(e){if(!e||typeof e!="object"||Array.isArray(e))throw D();return e}function qn(e){return e===null||typeof e=="string"&&e.length<=4096}function zo(e){let t=P(e),n=P(t.email),i=P(t.password),o=i.minLength!==void 0||i.maxLength!==void 0;if(!L(n,["signUp"])||!Ge(n.signIn,3)||n.signIn.some(a=>a!=="password"&&a!=="magic_link"&&a!=="email_otp")||!L(P(t.phone),["signUp","signIn"])||!L(i,["signUp","add"])||o&&(!Number.isSafeInteger(i.minLength)||!Number.isSafeInteger(i.maxLength)||i.minLength<1||i.maxLength>4096||i.minLength>i.maxLength)||!L(P(t.passkey),["signIn","add"])||!L(P(t.username),["collectOnSignUp","signIn"]))throw D()}function L(e,t){return t.every(n=>typeof e[n]=="boolean")}function Kn(e,t){return t.every(n=>e[n]===void 0||typeof e[n]=="string"&&e[n].length<=4096)}function Ge(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 te=class extends Error{constructor(n,i){super(n);this.cause=i;this.name="AuthOwlError";}cause},We=class extends te{constructor(n,i){super(`Rate limited. Retry after ${n}s.`,i);this.retryAfterSeconds=n;this.name="RateLimitedError";}retryAfterSeconds},$e=class extends te{constructor(t="invalid publishable key",n){super(t,n),this.name="InvalidKeyError";}};var Hn=["en","ar"];function No(e){return e==="ar"?"rtl":"ltr"}function Lo(e){return typeof e=="string"&&Hn.includes(e)}
|
|
3
|
-
exports.AUTH_CHALLENGE_HEADER=
|
|
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&<.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;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
export { A as AuthConfig, D as DecodedPublishableKey, H as HasParams, O as OrganizationMembership, R as ResolvedAuthConfig, c as createMembershipHas, d as decodePublishableKey, m as membershipHas,
|
|
2
|
-
import { P as PhoneOtpChallengeData, A as AkedlyShieldStartProof } from './client
|
|
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
|
|
4
|
-
export { T as TransportError, a as TransportErrorKind } from './transport-DcWDTRd4.cjs';
|
|
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';
|
|
5
4
|
export { L as LOCALES, a as Locale, d as directionFor, i as isLocale } from './index-hIdXOzRp.cjs';
|
|
6
5
|
|
|
7
6
|
/**
|