@authowl/core 0.12.0 → 0.13.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/README.md CHANGED
@@ -85,8 +85,9 @@ try {
85
85
  }
86
86
  ```
87
87
 
88
- See the full [Admin API reference](https://github.com/mstfash/authowl-sdk/blob/main/docs/admin-api.md)
89
- and [webhook signature guide](https://github.com/mstfash/authowl-sdk/blob/main/docs/webhooks.md).
88
+ See the full [Admin API reference](https://github.com/mstfash/authowl-sdk/blob/main/docs/admin-api.md),
89
+ the [phone OTP and Akedly Shield guide](https://github.com/mstfash/authowl-sdk/blob/main/docs/phone-otp.md),
90
+ and the [webhook signature guide](https://github.com/mstfash/authowl-sdk/blob/main/docs/webhooks.md).
90
91
  Webhook receivers import `verifyWebhook` from `@authowl/core/server`; it works
91
92
  in Node and worker Web Crypto runtimes.
92
93
 
@@ -0,0 +1 @@
1
+ import {f,g,q as q$1,j as j$1,h,p,i,n,s,u,o,k as k$1,r,m as m$1,l}from'./chunk-KPXCQZUX.js';function gi(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 Xt="x-authowl-turnstile-token",$t=1e4,Yt=32,Qt=2e4;function E(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 we(e,t=e.projectBaseURL){return {async request(n,i={}){let o=tn(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(Xt,i.fetchOptions.authChallengeToken),i.body!==void 0&&r.set("content-type","application/json");let s={method:a,headers:r,credentials:i.credentials??"include",...i.body===void 0?{}:{body:JSON.stringify(i.body)}},u=Object.freeze({method:a,path:n});await i.fetchOptions?.onRequest?.(u);let b=en(a,i.fetchOptions),c;try{c=await Zt(e,o,{...s,signal:i.fetchOptions?.signal},b);}catch(D){let fe=be(D);return await i.fetchOptions?.onError?.(Z(u,fe,rn(D))),{data:null,error:fe}}let{response:l,requestId:g}=c,f$1=un(n,c.data),w=f$1;if(l.ok)try{w=te(f$1),i.decode&&(w=i.decode(w));}catch{let D=be(new f("invalid_response",g));return await i.fetchOptions?.onError?.(Z(u,D,"invalid_response")),{data:null,error:D}}let L=Object.freeze({...u,status:l.status,...g===void 0?{}:{requestId:g}});if(await i.fetchOptions?.onResponse?.(L),!l.ok){let D=nn(l,f$1,g);return await i.fetchOptions?.onError?.(Z(u,D,"api")),{data:null,error:D}}return await i.fetchOptions?.onSuccess?.(L),{data:w,error:null}}}}async function Zt(e,t,n,i){let o=Date.now()+$t;for(let a=0;a<i;a+=1){let r=o-Date.now();if(r<=0)throw new f("timeout");try{let s=await g({fetchImpl:e.fetch??fetch,url:t,init:n,timeoutMs:Math.max(1,Math.ceil(r)),allowHttpLoopback:e.decoded.env==="test"});if(s.response.status<500||a===i-1)return s}catch(s){if(a===i-1||!(s instanceof f)||s.kind!=="network")throw s}await an(50*2**a,n.signal,o);}throw new f("network")}function en(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 tn(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 nn(e,t,n){let i=F(t)?t:{},o=on(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 on(e,t){let n=(typeof e.retryAfterSeconds=="number"&&Number.isFinite(e.retryAfterSeconds)?e.retryAfterSeconds:void 0)??Oe(t.get("retry-after"))??Oe(t.get("x-retry-after"));if(n!==void 0)return Math.min(Math.max(Math.trunc(n),1),86400)}function Oe(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 be(e){let t=e instanceof f?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 f&&e.requestId?{requestId:e.requestId}:{}}}function Z(e,t,n){return Object.freeze({...e,status:t.status??0,...t.requestId===void 0?{}:{requestId:t.requestId},failure:n})}function rn(e){return e instanceof f?e.kind:"network"}function an(e,t,n){return new Promise((i,o)=>{if(t?.aborted){o(new f("aborted"));return}let a=n-Date.now();if(a<=0){o(new f("timeout"));return}let r=Math.min(e,a),s=()=>{clearTimeout(u),o(new f("aborted"));},u=setTimeout(()=>{t?.removeEventListener("abort",s),Date.now()>=n?o(new f("timeout")):i();},r);t?.addEventListener("abort",s,{once:true}),t?.aborted&&s();})}function te(e,t="",n=0,i={nodes:0}){if(i.nodes+=1,n>Yt||i.nodes>Qt)throw new Error("response traversal limit exceeded");if(typeof e=="string"&&/^(?:createdAt|updatedAt|expiresAt)$/.test(t)){let o=new Date(e);return Number.isNaN(o.getTime())?e:o}return Array.isArray(e)?e.map(o=>te(o,"",n+1,i)):F(e)?Object.fromEntries(Object.entries(e).map(([o,a])=>[o,sn(o)?a:te(a,o,n+1,i)])):e}function sn(e){return e==="metadata"||e==="public_metadata"||e==="unsafe_metadata"||e==="private_metadata"||e==="publicMetadata"||e==="unsafeMetadata"||e==="privateMetadata"}function un(e,t){if(e==="/list-sessions"&&Array.isArray(t))return t.map(o=>F(o)?ee(o):o);if(!F(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-")?ee(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")&&F(i.session)&&(i={...i,session:ee(i.session)}),i}function ee(e){if(!Object.hasOwn(e,"token"))return e;let t={...e};return delete t.token,t}function F(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}function ke(){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 Ie(e,t){let n=new Set,i=null,o=null,a=null,r,s=f=>{c(f);};r={data:null,isPending:true,isRefetching:false,error:null,refetch:s};function u(f){r=f;for(let w of n)w();}async function b(f){return e.request("/get-session",{query:f?.query,decode:Se})}async function c(f){a?.abort();let w=new AbortController;a=w,u({...r,isPending:r.data===null&&r.error===null,isRefetching:r.data!==null});let L=await e.request("/get-session",{query:f?.query,fetchOptions:{signal:w.signal},decode:Se});a===w&&(a=null,u({data:L.data,error:L.error,isPending:false,isRefetching:false,refetch:s}));}function l(){if(typeof window>"u"||o)return;let f=()=>{c();},w=()=>{document.visibilityState==="visible"&&c();};window.addEventListener("focus",f),document.addEventListener("visibilitychange",w),typeof BroadcastChannel<"u"&&(i=new BroadcastChannel(`authowl:${t}`),i.addEventListener("message",f)),o=()=>{window.removeEventListener("focus",f),document.removeEventListener("visibilitychange",w),i?.close(),i=null,o=null;};}function g(f){return n.add(f),n.size===1&&(l(),c()),()=>{n.delete(f),n.size===0&&(a?.abort(),a=null,o?.());}}return {store:{subscribe:g,getSnapshot:()=>r},getSession:b,notifyMutation(){i?.postMessage({type:"session-changed"}),n.size>0&&c({query:{disableCookieCache:true}});}}}function Se(e){if(e===null)return null;let t=h(e);return (t.session===void 0||t.user===void 0)&&p(),{session:o(t.session),user:n(t.user)}}async function Re(e,t){return e.request("/user/metadata",{fetchOptions:t,decode:Pe})}async function Te(e,t,n){return e.request("/user/metadata",{method:"PATCH",body:{expected_version:t.expectedVersion,unsafe_metadata:t.unsafeMetadata},fetchOptions:n,decode:Pe})}function Pe(e){let t=h(e),n=q$1(t.public_metadata),i=q$1(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 xe(e,t){let{post:n,mutation:i}=E(e,t);return {getMetadata:o=>Re(e,o),updateUnsafeMetadata:(o,a)=>Te(e,o,a),updateProfile:(o,a)=>i(n("/update-user",o,a,q)),changeEmail:(o,a)=>i(n("/change-email",o,a,q)),changePassword:(o,a)=>i(n("/change-password",o,a,cn)),listSessions:o=>e.request("/list-sessions",{fetchOptions:o,decode:dn}),revokeSession:({sessionId:o},a)=>i(n("/revoke-session",{sessionId:o},a,q)),revokeOtherSessions:o=>i(n("/revoke-other-sessions",{},o,q)),listSocialAccounts:async o=>{let a=await e.request("/list-accounts",{fetchOptions:o,decode:ln});if(!a.data)return {data:null,error:a.error};let r=a.data.length>1;return {...a,data:a.data.filter(s=>s.providerId!=="credential").map(s=>({...s,canUnlink:r}))}},linkSocial:(o,a)=>n("/link-social",o,a,pn),unlinkSocial:(o,a)=>i(n("/unlink-account",o,a,q)),delete:(o={},a)=>i(n("/delete-user",o,a,gn))}}function q(e){let t=h(e);return {status:j$1(t.status)}}function cn(e){let t=h(e);return {user:n(t.user)}}function dn(e){return Array.isArray(e)||p(),e.map(t=>{let n=h(t);return {id:i(n.id),userId:i(n.userId),createdAt:k$1(n.createdAt),updatedAt:k$1(n.updatedAt),expiresAt:k$1(n.expiresAt),...ve("ipAddress",m$1(n,"ipAddress")),...ve("userAgent",m$1(n,"userAgent"))}})}function ln(e){return Array.isArray(e)||p(),e.map(t=>{let n=h(t);return {id:i(n.id),userId:i(n.userId),providerId:i(n.providerId),accountId:i(n.accountId),scopes:l(n.scopes),createdAt:k$1(n.createdAt),updatedAt:k$1(n.updatedAt)}})}function pn(e){let t=h(e);return {url:i(t.url),redirect:j$1(t.redirect)}}function gn(e){let t=h(e);return {success:j$1(t.success),message:i(t.message)}}function ve(e,t){return t===void 0?{}:{[e]:t}}var fn=new Set(["pending","accepted","rejected","canceled"]),De=1e4;function N(e,t,n){let i=h(e),o={id:m(i.id),name:m(i.name),slug:m(i.slug),createdAt:k$1(i.createdAt),...B("logo",m$1(i,"logo")),...B("metadata",i.metadata===void 0?void 0:r(i.metadata))};return z(o.id,t),z(o.slug,n),o}function ze(e){return C(e,N)}function ne(e,t,n){return e===null?null:(t===null&&p(),N(e,t,n))}function Ce(e,t,n){if(e===null)return null;let i=h(e),o=N(i,t,n);return {...o,members:C(i.members,a=>je(a,o.id)),invitations:C(i.invitations,a=>v(a,void 0,o.id))}}function Ee(e,t){let n=C(e,i=>Be(i));return j(n.map(i=>i.organizationId),t),n}function Ne(e,t,n){return e===null?null:(t===null&&p(),Be(e,t,n))}function Ue(e,t){let n=h(e);return (!Number.isSafeInteger(n.total)||n.total<0)&&p(),{members:mn(n.members,t),total:n.total}}function v(e,t,n){let i=h(e),o=m(i.status);fn.has(o)||p();let a={id:m(i.id),organizationId:m(i.organizationId),email:m(i.email),role:m(i.role),status:o,inviterId:m(i.inviterId),expiresAt:k$1(i.expiresAt),createdAt:k$1(i.createdAt)};return z(a.id,t),z(a.organizationId,n),a}function Me(e,t){let n=C(e,i=>v(i));return j(n.map(i=>i.organizationId),t),n}function _e(e){return C(e,t=>{let n=h(t);return {...v(n),organizationName:m(n.organizationName)}})}function Le(e,t){let n=h(e);return {...v(n,t),organizationName:m(n.organizationName),organizationSlug:m(n.organizationSlug),inviterEmail:m(n.inviterEmail)}}function Fe(e,t){let n=h(e),i=v(n.invitation,t);return {invitation:i,member:U(n.member,void 0,i.organizationId)}}function qe(e,t){let n=h(e);return n.member!==null&&p(),{invitation:n.invitation===null?null:v(n.invitation,t),member:null}}function Ve(e,t){return e===null?null:v(e,t)}function He(e,t,n){let i=h(e);return {member:U(i.member,n,t)}}function U(e,t,n){let i=h(e),o={id:m(i.id),organizationId:m(i.organizationId),userId:m(i.userId),role:m(i.role),createdAt:k$1(i.createdAt),...i.user===void 0?{}:{user:Je(i.user)}};return z(o.id,t),z(o.organizationId,n),o}function Ke(e,t){let n=C(e,i=>{let o=h(i);return {organizationId:m(o.organizationId),data:{role:m(o.role),...B("permission",o.permission===void 0?void 0:hn(o.permission))}}});return j(n.map(i=>i.organizationId),t),n.map(i=>i.data)}function Be(e,t,n){let i=h(e),o=i.updatedAt,a={id:m(i.id),name:m(i.name),organizationId:m(i.organizationId),createdAt:k$1(i.createdAt),...o===void 0?{}:{updatedAt:k$1(o)}};return z(a.id,t),z(a.organizationId,n),a}function je(e,t){let n=h(e);return {...U(n,void 0,t),user:Je(n.user)}}function mn(e,t){let n=C(e,i=>je(i));return j(n.map(i=>i.organizationId),t),n}function hn(e){let t=h(e),n={};for(let[i,o]of Object.entries(t))(i==="__proto__"||i==="constructor"||i==="prototype"||i.length===0||i.length>De||!Array.isArray(o))&&p(),n[i]=o.map(a=>m(a));return n}function m(e){let t=i(e);return (t.length===0||t.length>De)&&p(),t}function z(e,t){t!==void 0&&e!==t&&p();}function j(e,t){let n=t??e[0];n!==void 0&&e.some(i=>i!==n)&&p();}function Je(e){let t=h(e);return {id:m(t.id),name:m(t.name),email:m(t.email),...B("image",m$1(t,"image"))}}function C(e,t){return Array.isArray(e)||p(),e.map(n=>t(n))}function B(e,t){return t===void 0?{}:{[e]:t}}function Ge(e,t,n=()=>null){let{post:i,mutation:o}=E(e,t),a=(r,s,u,b)=>e.request(r,{query:s,fetchOptions:u,decode:b});return {create:(r,s)=>o(i("/organization/create",r,s,N)),list:r=>a("/organization/list",void 0,r,ze),get:(r={},s)=>a("/organization/get-full-organization",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,membersLimit:r.membersLimit},s,u=>Ce(u,r.organizationId,r.organizationSlug)),setActive:(r,s)=>o(i("/organization/set-active",r,s,u=>ne(u,r.organizationId,r.organizationSlug))),listTeams:(r={},s)=>a("/organization/list-teams",{organizationId:r.organizationId},s,u=>Ee(u,r.organizationId)),setActiveTeam:(r,s)=>o(i("/organization/set-active-team",r,s,u=>Ne(u,r.teamId))),update:(r,s)=>o(i("/organization/update",r,s,u=>ne(u,r.organizationId))),delete:(r,s)=>o(i("/organization/delete",r,s,u=>N(u,r.organizationId))),listMembers:(r={},s)=>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},s,u=>Ue(u,r.organizationId)),inviteMember:(r,s)=>o(i("/organization/invite-member",r,s,u=>v(u,void 0,r.organizationId))),listInvitations:(r={},s)=>a("/organization/list-invitations",{organizationId:r.organizationId},s,u=>Me(u,r.organizationId)),listUserInvitations:r=>a("/organization/list-user-invitations",void 0,r,_e),getInvitation:(r,s)=>a("/organization/get-invitation",{id:r.id},s,u=>Le(u,r.id)),acceptInvitation:(r,s)=>o(i("/organization/accept-invitation",r,s,u=>Fe(u,r.invitationId))),rejectInvitation:(r,s)=>o(i("/organization/reject-invitation",r,s,u=>qe(u,r.invitationId))),cancelInvitation:(r,s)=>o(i("/organization/cancel-invitation",r,s,u=>Ve(u,r.invitationId))),removeMember:(r,s)=>o(i("/organization/remove-member",r,s,u=>He(u,r.organizationId,r.memberIdOrEmail.includes("@")?void 0:r.memberIdOrEmail))),updateMemberRole:(r,s)=>o(i("/organization/update-member-role",r,s,u=>U(u,r.memberId,r.organizationId))),leave:(r,s)=>o(i("/organization/leave",r,s,u=>U(u,void 0,r.organizationId))),listRoles:(r={},s)=>a("/organization/list-roles",{organizationId:r.organizationId},s,u=>Ke(u,r.organizationId)),has:r=>u(n(),r),hasPermission:r=>s(n(),r.permission)}}var We=4096,An=4096,yn=100,On=256,bn=16,wn=64,kn=12;function oe(e){let t=h(e);return t.twoFactorRedirect===true?((t.user!==void 0||t.redirect!==void 0||t.url!==void 0)&&p(),{twoFactorRedirect:true,...t.twoFactorMethods===void 0?{}:{twoFactorMethods:pt(t.twoFactorMethods,bn,wn)}}):(t.twoFactorRedirect!==void 0&&p(),{redirect:j$1(t.redirect),...Pn(t,"url"),user:n(t.user)})}function Xe(e){let t=h(e);return {user:n(t.user)}}function $e(e){let t=h(e);return {sessionCreated:j$1(t.sessionCreated),user:n(t.user)}}function Ye(e,t){let n$1=h(e),i=j$1(n$1.redirect);n$1.user===null&&p();let o=n$1.user!==void 0&&n$1.user!==null,a=n$1.url!==void 0&&n$1.url!==null;return i?((o||!a)&&p(),{redirect:true,url:ie(n$1.url,t)}):(o===a&&p(),o?{redirect:false,user:n(n$1.user)}:{redirect:false,url:ie(n$1.url,t)})}function Qe(e,t){let n=h(e);return (n.redirect!==true||n.user!==void 0)&&p(),{redirect:true,url:ie(n.url,t)}}function Ze(e){return {status:j$1(h(e).status)}}function et(e){return {success:j$1(h(e).success)}}function tt(e){return h(e).status!=="pending"&&p(),{status:"pending"}}function nt(e){let t=h(e);if(t.kind==="authowl_turnstile")return {kind:"authowl_turnstile"};t.kind!=="akedly_shield_v1_2"&&p();let n=h(t.turnstile),i$1=n.siteKey===null?null:i(n.siteKey);return {kind:"akedly_shield_v1_2",connectionId:i(t.connectionId),challenge:i(t.challenge),difficulty:Sn(t.difficulty),challengeToken:i(t.challengeToken),challengeRequired:j$1(t.challengeRequired),turnstile:{required:j$1(n.required),siteKey:i$1}}}function Sn(e){return (!Number.isSafeInteger(e)||Number(e)<0||Number(e)>kn)&&p(),Number(e)}function it(e){let t=h(e);return (t.status!==true||t.sessionCreated!==true)&&p(),{status:true,sessionCreated:true,user:In(t.user)}}function re(e){return {status:j$1(h(e).status)}}function ot(e){return {status:j$1(h(e).status)}}function rt(e){let t=h(e);return {status:j$1(t.status),user:n(t.user)}}function at(e){return {success:j$1(h(e).success)}}function st(e){let t=h(e);return {totpURI:Tn(t.totpURI),backupCodes:lt(t.backupCodes)}}function ut(e){return {status:j$1(h(e).status)}}function J(e){return h(e).status!==true&&p(),{status:true}}function ct(e){return {status:j$1(h(e).status)}}function dt(e){let t=h(e);return t.status!==void 0&&t.status!==true&&p(),{backupCodes:lt(t.backupCodes)}}function In(e){let t=h(e);return {id:M(t.id,512),...vn(t,"name",1024),phoneNumber:M(t.phoneNumber,64),phoneNumberVerified:j$1(t.phoneNumberVerified),...t.createdAt===void 0?{}:{createdAt:k$1(t.createdAt)},...t.updatedAt===void 0?{}:{updatedAt:k$1(t.updatedAt)}}}function ie(e,t){let n=M(e,We);/[\u0000-\u0020\u007f]/u.test(n)&&p();let i;try{i=new URL(n);}catch{return p()}return (i.username||i.password)&&p(),i.protocol==="https:"||t&&i.protocol==="http:"&&Rn(i.hostname)?i.href:p()}function Rn(e){let t=e.toLowerCase();return t==="localhost"||t==="127.0.0.1"||t==="[::1]"}function Tn(e){let t=M(e,An),n;try{n=new URL(t);}catch{return p()}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))&&p(),t}function lt(e){return pt(e,yn,On)}function pt(e,t,n){(!Array.isArray(e)||e.length===0||e.length>t)&&p();let i=e.map(o=>M(o,n));return i.some(o=>o.trim().length===0)&&p(),new Set(i).size!==i.length&&p(),i}function M(e,t){let n=i(e);return (n.length===0||n.length>t)&&p(),n}function Pn(e,t){let n=e[t];return n==null?{}:{[t]:M(n,We)}}function vn(e,t,n){let i=m$1(e,t);return i===void 0?{}:(i!==null&&i.length>n&&p(),{[t]:i})}var gt=new Set([1564,8206,8207,8234,8235,8236,8237,8238,8294,8295,8296,8297]),G=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 W(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||mt(n,i)||ft(i)||gt.has(i))return {valid:false}}let t=xn(e);return ae(t)?{valid:true,value:t}:{valid:false}}function ae(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||mt(o,a)||ft(a)||gt.has(a))return false;n??=a,i=a;}return t>0&&n!==void 0&&i!==void 0&&!G.has(n)&&!G.has(i)}function X(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_PASSKEY_NAME",message:"Passkey names must contain 1 to 256 safe Unicode characters."}}}function xn(e){let t=0,n=e.length;for(;t<n;){let i=e.codePointAt(t);if(i===void 0||!G.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||!G.has(r))break;n=a;}return e.slice(t,n)}function ft(e){return e>=0&&e<=31||e>=127&&e<=159}function mt(e,t){return e.length===1&&t>=55296&&t<=57343}var yt=12,Ot=5e3,Dn=8,zn=1e3,Cn=16,ht=512,bt=100,wt=8192,En=32768,se=1024,At=256,ce=64,Nn=6e5,Un=/^[A-Za-z0-9_-]+$/u,Mn=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u,_n=/[\u0000-\u001f\u007f-\u009f\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/u,Ln=/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$/u,Fn=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu,kt=new Set(["discouraged","preferred","required"]),qn=new Set(["singleDevice","multiDevice"]),St=new Set(["ble","cable","hybrid","internal","nfc","smart-card","usb"]),It=new Set(["hybrid","security-key","client-device"]),Vn=new Set(["none","indirect","direct","enterprise"]),Hn=new Set(["fido-u2f","packed","android-safetynet","android-key","tpm","apple","none"]),Kn=new Set(["platform","cross-platform"]),Bn=new Set(["discouraged","preferred","required"]),jn=new Set([-8,-7,-257]);function Rt(e){let t=q$1(e,yt,Ot);return {challenge:Ut(t.challenge),...y("timeout",Et(t.timeout)),...y("rpId",Mt(t.rpId)),...y("allowCredentials",Ct(t.allowCredentials)),...y("userVerification",V(t.userVerification,kt)),...y("hints",$(t.hints,It)),...y("extensions",Nt(t.extensions))}}function Tt(e){let t=q$1(e,yt,Ot);return {challenge:Ut(t.challenge),rp:Jn(t.rp),user:Gn(t.user),pubKeyCredParams:Wn(t.pubKeyCredParams),...y("timeout",Et(t.timeout)),...y("excludeCredentials",Ct(t.excludeCredentials)),...y("authenticatorSelection",Xn(t.authenticatorSelection)),...y("attestation",V(t.attestation,Vn)),...y("attestationFormats",$(t.attestationFormats,Hn)),...y("hints",$(t.hints,It)),...y("extensions",Nt(t.extensions))}}function Pt(e){let t=h(e),n$1=o(t.session),i=n(t.user);return n$1.userId!==i.id&&p(),{session:n$1,user:i}}function de(e){let t=h(e),n=t.counter;(!Number.isSafeInteger(n)||n<0)&&p();let i=le(t.deviceType,qn),o=j$1(t.backedUp);return o&&i!=="multiDevice"&&p(),{id:_(t.id,At),...Qn(t),publicKey:$n(t.publicKey,En),userId:_(t.userId,At),credentialID:Q(t.credentialID,wt),counter:n,deviceType:i,backedUp:o,...Zn(t),createdAt:k$1(t.createdAt),...ei(t)}}function vt(e,t,n){let i=de(e);return (i.credentialID!==t||(n===void 0?i.name!==void 0&&i.name!==null:i.name!==n))&&p(),i}function xt(e){(!Array.isArray(e)||e.length>bt)&&p();let t=e.map(de);return Y(t.map(n=>n.id)),Y(t.map(n=>n.credentialID)),t.length>1&&t.some(n=>n.userId!==t[0]?.userId)&&p(),t}function Dt(e,t,n){let i=h(e),o=de(i.passkey);return (o.id!==t||o.name!==n)&&p(),{passkey:o}}function zt(e){return h(e).status!==true&&p(),{status:true}}function Jn(e){let t=h(e);return {name:ue(t.name,se),...y("id",Mt(t.id))}}function Gn(e){let t=h(e);return {id:Q(t.id,128,1,64),name:ue(t.name,se),displayName:ue(t.displayName,se)}}function Wn(e){(!Array.isArray(e)||e.length===0||e.length>ce)&&p();let t=e.map(n=>{let i=h(n);return (i.type!=="public-key"||!Number.isSafeInteger(i.alg)||!jn.has(i.alg))&&p(),{type:"public-key",alg:i.alg}});return ti(t.map(n=>n.alg)),t}function Ct(e){if(e===void 0)return;(!Array.isArray(e)||e.length>bt)&&p();let t=e.map(n=>{let i=h(n);return i.type!=="public-key"&&p(),{type:"public-key",id:Q(i.id,wt),...y("transports",$(i.transports,St))}});return Y(t.map(n=>n.id)),t}function Xn(e){if(e===void 0)return;let t=h(e);t.requireResidentKey!==void 0&&typeof t.requireResidentKey!="boolean"&&p();let n=V(t.residentKey,Bn);return t.requireResidentKey!==void 0&&n!==void 0&&t.requireResidentKey!==(n==="required")&&p(),{...y("authenticatorAttachment",V(t.authenticatorAttachment,Kn)),...y("residentKey",n),...y("requireResidentKey",t.requireResidentKey),...y("userVerification",V(t.userVerification,kt))}}function Et(e){return e!==void 0&&(typeof e!="number"||!Number.isFinite(e)||e<0||e>Nn)&&p(),e}function Nt(e){return e===void 0?void 0:q$1(e,Dn,zn)}function $(e,t){if(e===void 0)return;(!Array.isArray(e)||e.length>ce)&&p();let n=e.map(i=>le(i,t));return Y(n),n}function V(e,t){if(e!==void 0)return le(e,t)}function Ut(e){return Q(e,Math.ceil(ht*4/3),Cn,ht)}function Q(e,t,n=1,i=Number.POSITIVE_INFINITY){let o=_(e,t),a=o.length%4,r=Yn(o.at(-1)??""),s=Math.floor(o.length*3/4);return (!Un.test(o)||a===1||a===2&&(r&15)!==0||a===3&&(r&3)!==0||s<n||s>i)&&p(),o}function _(e,t){let n=i(e);return (n.length===0||n.length>t)&&p(),n}function ue(e,t){let n=_(e,t);return _n.test(n)&&p(),n}function Mt(e){if(e===void 0)return;let t=_(e,253);return t!=="localhost"&&(t.endsWith(".")||!t.includes(".")||t.split(".").some(n=>!Ln.test(n)))&&p(),t}function $n(e,t){let n=_(e,t),i=n.endsWith("=="),o=!i&&n.endsWith("="),a=n.at(i?-3:o?-2:-1)??"",r=_t(a);return (n.length%4!==0||!Mn.test(n)||i&&(r&15)!==0||o&&(r&3)!==0)&&p(),n}function Yn(e){return _t(e,true)}function _t(e,t=false){return (t?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").indexOf(e)}function Qn(e){let t=m$1(e,"name");return t===void 0?{}:(t!==null&&!ae(t)&&p(),{name:t})}function Zn(e){let t=m$1(e,"transports");if(t==null||t==="")return t===void 0?{}:{transports:t};let n=t.split(",");return (n.length>ce||n.some(i=>!St.has(i))||new Set(n).size!==n.length)&&p(),{transports:t}}function ei(e){let t=m$1(e,"aaguid");return t==null?t===void 0?{}:{aaguid:null}:(Fn.test(t)||p(),{aaguid:t})}function le(e,t){let n=i(e);return t.has(n)||p(),n}function y(e,t){return t===void 0?{}:{[e]:t}}function Y(e){new Set(e).size!==e.length&&p();}function ti(e){new Set(e).size!==e.length&&p();}function ni(e,t=()=>{},n=ri){let i=we(e),o=Ie(i,e.decoded.projectId),a=n(i,o.notifyMutation),r=()=>{o.notifyMutation(),t();},{post:s,mutation:u}=E(i,r),b=e.decoded.env==="test";return {sessionStore:o.store,getSession:o.getSession,account:xe(i,r),organization:Ge(i,r,()=>o.store.getSnapshot().data?.session.membership??null),signIn:{email:(c,l)=>u(s("/sign-in/email",c,l,oe),g=>!("twoFactorRedirect"in g)),username:(c,l)=>u(s("/sign-in/username",c,l,oe),g=>!("twoFactorRedirect"in g)),social:async(c,l)=>{let g=await u(s("/sign-in/social",c,l,f=>Ye(f,b)),f=>"user"in f);return g.error!==null||g.data===null||"url"in g.data&&g.data.redirect&&!c.disableRedirect&&typeof window<"u"&&window.location.assign(g.data.url),g},sso:async(c,l)=>{let g=await s("/sign-in/sso",c,l,f=>Qe(f,b));return g.error!==null||g.data===null||typeof window<"u"&&window.location.assign(g.data.url),g},magicLink:(c,l)=>s("/sign-in/magic-link",c,l,Ze),emailOtp:(c,l)=>u(s("/sign-in/email-otp",c,l,Xe)),passkey:(c,l)=>a.signIn(c,l)},signUp:{email:(c,l)=>u(s("/sign-up/email",c,l,$e),g=>g.sessionCreated)},emailOtp:{sendVerificationOtp:(c,l)=>s("/email-otp/send-verification-otp",c,l,et),verifyEmail:(c,l)=>u(s("/email-otp/verify-email",c,l,rt))},phoneOtp:{prepare:c=>s("/phone-otp/challenge",{},c,nt),start:(c,l)=>s("/phone-otp/start",{...c,idempotencyKey:c.idempotencyKey??ke()},l,tt),verify:(c,l)=>u(s("/phone-otp/verify",c,l,it))},requestPasswordReset:(c,l)=>s("/request-password-reset",c,l,re),resetPassword:(c,l)=>s("/reset-password",c,l,re),sendVerificationEmail:(c,l)=>s("/send-verification-email",c,l,ot),passkey:{addPasskey:(c,l)=>a.add(c,l),listUserPasskeys:()=>i.request("/passkey/list-user-passkeys",{decode:xt}),updatePasskey:async(c,l)=>{let g=W(c.name);if(!g.valid||g.value===void 0)return X();let f=g.value;return s("/passkey/update-passkey",{...c,name:f},l,w=>Dt(w,c.id,f))},deletePasskey:(c,l)=>s("/passkey/delete-passkey",c,l,zt)},twoFactor:{enable:(c,l)=>s("/two-factor/enable",c,l,st),disable:(c,l)=>u(s("/two-factor/disable",c,l,ut),g=>g.status),verifyTotp:(c,l)=>u(s("/two-factor/verify-totp",c,l,J)),verifyBackupCode:(c,l)=>u(s("/two-factor/verify-backup-code",c,l,J)),sendOtp:(c={},l)=>s("/two-factor/send-otp",c,l,ct),verifyOtp:(c,l)=>u(s("/two-factor/verify-otp",c,l,J)),generateBackupCodes:(c,l)=>s("/two-factor/generate-backup-codes",c,l,dt)},signOut:c=>u(i.request("/sign-out",{method:"POST",body:{},fetchOptions:c,decode:at}),l=>l.success)}}function Ji(e,t=()=>{},n){let i=ni(e,t,n);return n?{...i,signIn:{email:i.signIn.email,username:i.signIn.username,social:Lt(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:Lt(i),magicLink:i.signIn.magicLink,emailOtp:i.signIn.emailOtp},passkey:{listUserPasskeys:i.passkey.listUserPasskeys,updatePasskey:i.passkey.updatePasskey,deletePasskey:i.passkey.deletePasskey}}}function Lt(e){return async(t,n)=>{if(!t?.idToken||typeof t.idToken.token!="string"||t.idToken.token==="")return ii();let i=await e.signIn.social({...t,disableRedirect:true},n);return i.data!==null&&"url"in i.data?oi():i}}function ii(){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 oi(){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 ri(){return {signIn:()=>Ft(),add:()=>Ft()}}function Ft(){return Promise.resolve({data:null,error:{status:400,statusText:"BAD_REQUEST",code:"PASSKEY_BROWSER_REQUIRED",message:"This passkey ceremony requires a browser with WebAuthn."}})}function $i(e,t,n){let i=new Map;return {async signIn(o={},a){let r=await e.request("/passkey/generate-authenticate-options");if(!r.data)return Ht(r.error);let s;try{s=Rt(r.data);}catch{return qt()}let u;try{u=await n.authenticate({optionsJSON:s,useBrowserAutofill:o.autoFill});}catch(f){return Kt(n,f,"AUTH_CANCELLED","Passkey authentication was cancelled.")}if(!ai(u))return Vt();let{clientExtensionResults:b,...c}=u,l=i.get(u.id);if(l)return l;let g=(async()=>{let f=await e.request("/passkey/verify-authentication",{method:"POST",body:{response:c},fetchOptions:a,decode:Pt});return f.data&&t(),f})();i.set(u.id,g);try{return await g}finally{i.get(u.id)===g&&i.delete(u.id);}},async add(o={},a){let r=W(o.name);if(!r.valid)return X();let s=await e.request("/passkey/generate-register-options",{query:{name:r.value,authenticatorAttachment:o.authenticatorAttachment}});if(!s.data)return Ht(s.error);let u;try{u=Tt(s.data);}catch{return qt()}let b;try{b=await n.register({optionsJSON:u});}catch(f){return Kt(n,f,"REGISTRATION_CANCELLED","Passkey registration was cancelled.")}if(!si(b))return Vt();let{clientExtensionResults:c,...l}=b,g=await e.request("/passkey/verify-registration",{method:"POST",body:{response:l,name:r.value},fetchOptions:a,decode:f=>vt(f,b.id,r.value)});return g.data&&t(),g}}}function qt(){return {data:null,error:{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned invalid WebAuthn options."}}}function Vt(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_WEBAUTHN_RESPONSE",message:"The platform returned an invalid passkey response."}}}function Bt(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 ai(e){if(!Bt(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.authenticatorData=="string"&&typeof t.signature=="string"&&(t.userHandle===void 0||typeof t.userHandle=="string")}function si(e){if(!Bt(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.attestationObject=="string"}function Ht(e){return {data:null,error:e??{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned no WebAuthn options."}}}function Kt(e,t,n,i){let o=ci(t,"page does not have focus"),a=e.errorCode?.(t),r=a!==void 0?a==="ERROR_CEREMONY_ABORTED":ui(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 ui(e){return e&&typeof e=="object"&&"name"in e&&typeof e.name=="string"?e.name:void 0}function ci(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}var pe=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 jt(e,t,n={}){let i=new Headers(n.init?.headers);return i.set("x-publishable-key",e.publishableKey),g({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 Jt(e,t){if(!e.response.ok)throw new pe(t,e.response,e.requestId);return e.data}async function no(e){let n=`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/public-config`;return Jt(await jt(e,n,{init:{method:"GET",credentials:"omit"},maxResponseBytes:256*1024,decode:i=>di(i,e)}),"public-config")}function di(e,t){let n=q$1(e),i=n.environmentId,o=n.environmentType,a=`${new URL(t.apiUrl).origin}/api/projects/${t.decoded.projectId}/auth`;if(typeof n.applicationId!="string"||!li(n.applicationId)||i!==t.decoded.projectId||o!=="development"&&o!=="production"||n.authBaseUrl!==a)throw T();let r=k(n.branding),s=k(n.legal);if(!ge(n.enabledMethods,64)||!ge(n.socialProviders,64)||!Wt(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"||!Wt(s,["termsUrl","privacyUrl"])||!Number.isSafeInteger(s.version)||s.version<0||typeof s.required!="boolean")throw T();if(n.socialProviderClientIds!==void 0){let u=k(n.socialProviderClientIds);if(Object.keys(u).length>64||Object.values(u).some(b=>typeof b!="string"||b.length>2048))throw T()}if(!x(n,["requireEmailVerification","twoFactor","mfaRequired","accountDeletion","organizations","sso","badge"])||!Gt(n.turnstileSiteKey)||!Gt(n.authTurnstileSiteKey)||typeof n.locale!="string"||n.locale.length===0||n.locale.length>64||!Number.isSafeInteger(n.configVersion)||n.configVersion<0)throw T();if(n.jwtIssuer!==null){let u=k(n.jwtIssuer);if(u.issuer!==a||u.jwksUrl!==`${a}/jwks`||u.aud!==t.decoded.projectId)throw T()}if(n.signUp!==void 0){let u=k(n.signUp).mode;if(typeof u!="string"||!["open","restricted","allowlist","waitlist"].includes(u))throw T()}if(n.authentication!==void 0&&pi(n.authentication),n.emailVerification!==void 0){let u=k(n.emailVerification);if(!x(u,["required"])||u.method!=="link"&&u.method!=="code")throw T()}if(n.userModel!==void 0&&!x(k(n.userModel),["requireEmail","firstLastName","emailChange","accountDeletion"]))throw T();if(n.mfa!==void 0){let u=k(n.mfa);if(!x(u,["totp","required","backupCodes"])||(u.required===true||u.backupCodes===true)&&u.totp!==true)throw T()}return n}function li(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 T(){return new TypeError("public-config returned an invalid response")}function k(e){if(!e||typeof e!="object"||Array.isArray(e))throw T();return e}function Gt(e){return e===null||typeof e=="string"&&e.length<=4096}function pi(e){let t=k(e),n=k(t.email),i=k(t.password),o=i.minLength!==void 0||i.maxLength!==void 0;if(!x(n,["signUp"])||!ge(n.signIn,3)||n.signIn.some(a=>a!=="password"&&a!=="magic_link"&&a!=="email_otp")||!x(k(t.phone),["signUp","signIn"])||!x(i,["signUp","add"])||o&&(!Number.isSafeInteger(i.minLength)||!Number.isSafeInteger(i.maxLength)||i.minLength<1||i.maxLength>4096||i.minLength>i.maxLength)||!x(k(t.passkey),["signIn","add"])||!x(k(t.username),["collectOnSignUp","signIn"]))throw T()}function x(e,t){return t.every(n=>typeof e[n]=="boolean")}function Wt(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}export{gi as a,Xt as b,we as c,ke as d,ni as e,Ji as f,$i as g,pe as h,jt as i,Jt as j,no as k};
@@ -939,12 +939,38 @@ interface VerifyEmailOtpData {
939
939
  status: boolean;
940
940
  user: AuthUser;
941
941
  }
942
+ type PhoneOtpChallengeData = Readonly<{
943
+ kind: 'authowl_turnstile';
944
+ }> | Readonly<{
945
+ kind: 'akedly_shield_v1_2';
946
+ connectionId: string;
947
+ challenge: string;
948
+ difficulty: number;
949
+ challengeToken: string;
950
+ challengeRequired: boolean;
951
+ turnstile: Readonly<{
952
+ required: boolean;
953
+ siteKey: string | null;
954
+ }>;
955
+ }>;
956
+ type AkedlyShieldStartProof = Readonly<{
957
+ connectionId: string;
958
+ challengeToken?: string;
959
+ nonce?: number;
960
+ turnstileToken?: string;
961
+ }>;
942
962
  /** Start an Egyptian phone OTP sign-in. Reuse idempotencyKey after an ambiguous retry. */
943
- interface PhoneOtpStartOptions {
963
+ type PhoneOtpStartOptions = Readonly<{
944
964
  phoneNumber: string;
945
965
  turnstileToken: string;
966
+ akedlyShield?: never;
946
967
  idempotencyKey?: string;
947
- }
968
+ }> | Readonly<{
969
+ phoneNumber: string;
970
+ turnstileToken?: never;
971
+ akedlyShield: AkedlyShieldStartProof;
972
+ idempotencyKey?: string;
973
+ }>;
948
974
  interface PhoneOtpStartData {
949
975
  status: 'pending';
950
976
  }
@@ -1201,6 +1227,8 @@ interface AuthOwlClient {
1201
1227
  };
1202
1228
  /** Managed Egyptian phone OTP. Start sends the code; verify establishes the session. */
1203
1229
  phoneOtp: {
1230
+ /** Discover the server-selected anti-abuse ceremony without exposing provider credentials. */
1231
+ prepare(fetchOptions?: ActionFetchOptions): Promise<AuthActionResult<PhoneOtpChallengeData>>;
1204
1232
  start(params: PhoneOtpStartOptions, fetchOptions?: ActionFetchOptions): Promise<AuthActionResult<PhoneOtpStartData>>;
1205
1233
  verify(params: PhoneOtpVerifyOptions, fetchOptions?: ActionFetchOptions): Promise<AuthActionResult<PhoneOtpVerifyData>>;
1206
1234
  };
@@ -1291,4 +1319,4 @@ interface AuthOwlClient {
1291
1319
  */
1292
1320
  declare function createAuthOwlClient(config: ResolvedAuthConfig): AuthOwlClient;
1293
1321
 
1294
- export { type ListOrganizationTeamsOptions as $, AUTH_CHALLENGE_HEADER as A, type EmailOtpAuthData as B, type ChangeEmailOptions as C, type DeleteAccountData as D, type EmailAuthData as E, type EmailOtpSignInOptions as F, type EmailOtpType as G, type EmailSignInOptions as H, type EmailSignUpData as I, type EmailSignUpOptions as J, type EnableTwoFactorOptions as K, type EnvironmentType as L, type GenerateBackupCodesOptions as M, type GetOrganizationInvitationOptions as N, type GetOrganizationOptions as O, type GetToken as P, type GetTokenOptions as Q, type InviteOrganizationMemberOptions as R, type JsonObject as S, type JsonPrimitive as T, type JsonValue as U, type LeaveOrganizationOptions as V, type LinkSocialData as W, type LinkSocialOptions as X, type ListOrganizationInvitationsOptions as Y, type ListOrganizationMembersOptions as Z, type ListOrganizationRolesOptions as _, type AcceptOrganizationInvitationData as a, type VerifyEmailOtpData as a$, type MagicLinkData as a0, type MagicLinkSignInOptions as a1, type Organization as a2, type OrganizationClient as a3, type OrganizationDetails as a4, type OrganizationFilterOperator as a5, type OrganizationInvitation as a6, type OrganizationInvitationActionOptions as a7, type OrganizationInvitationDetails as a8, type OrganizationInvitationStatus as a9, type SendTwoFactorOtpOptions as aA, type SendVerificationOtpOptions as aB, type SessionState as aC, type SessionStore as aD, type SetActiveOrganizationOptions as aE, type SetActiveTeamOptions as aF, type SignOutData as aG, type SocialAccount as aH, type SocialAuthData as aI, type SocialIdTokenOptions as aJ, type SocialSignInOptions as aK, type TokenClient as aL, type TwoFactorBackupCodesData as aM, type TwoFactorEnableData as aN, type TwoFactorRedirectData as aO, type TwoFactorStatusData as aP, type TwoFactorVerifyData as aQ, type UnlinkSocialOptions as aR, type UpdateOrganizationMemberRoleOptions as aS, type UpdateOrganizationOptions as aT, type UpdatePasskeyData as aU, type UpdatePasskeyOptions as aV, type UpdateProfileOptions as aW, type UpdateUnsafeMetadataOptions as aX, type UserMetadata as aY, type UsernameSignInOptions as aZ, type VerifyBackupCodeOptions as a_, type OrganizationMember as aa, type OrganizationMemberUser as ab, type OrganizationMemberWithUser as ac, type OrganizationMembersData as ad, type OrganizationRoleSummary as ae, type OrganizationSelector as af, type OrganizationTeam as ag, type OrganizationUserInvitation as ah, type PasskeyAuthData as ai, type PasskeySignInOptions as aj, type PasswordResetData as ak, type PhoneAuthUser as al, type PhoneOtpStartData as am, type PhoneOtpStartOptions as an, type PhoneOtpVerifyData as ao, type PhoneOtpVerifyOptions as ap, type ProjectCapabilities as aq, type PublicConfig as ar, type RejectOrganizationInvitationData as as, type RemoveOrganizationMemberData as at, type RemoveOrganizationMemberOptions as au, type RequestPasswordResetOptions as av, type ResetPasswordOptions as aw, type RevokeSessionOptions as ax, type SendOtpData as ay, type SendTwoFactorOtpData as az, type AccountClient as b, type VerifyEmailOtpOptions as b0, type VerifyTotpOptions as b1, type VerifyTwoFactorOtpOptions as b2, type WaitlistJoinData as b3, type WaitlistJoinOptions as b4, acceptConsent as b5, createAuthOwlClient as b6, createTokenClient as b7, getConsentStatus as b8, getPublicConfig as b9, resolveProjectCapabilities as ba, createAuthHttpClient as bb, type AuthHttpClient as bc, type AccountSession as c, type AccountStatusData as d, type ActionFetchOptions as e, type AddPasskeyOptions as f, type AuthActionResult as g, type AuthClientError as h, type AuthErrorContext as i, type AuthOwlClient as j, type AuthOwlErrorCode as k, type AuthPasskey as l, type AuthRequestContext as m, type AuthResponseContext as n, type AuthSession as o, type AuthUser as p, type ChangePasswordData as q, type ChangePasswordOptions as r, type ConsentAcceptResult as s, type ConsentStatus as t, type CreateOrganizationOptions as u, type DeleteAccountOptions as v, type DeleteOrganizationOptions as w, type DeletePasskeyData as x, type DeletePasskeyOptions as y, type DisableTwoFactorOptions as z };
1322
+ export { type ListOrganizationMembersOptions as $, type AkedlyShieldStartProof as A, type DisableTwoFactorOptions as B, type ChangeEmailOptions as C, type DeleteAccountData as D, type EmailAuthData as E, type EmailOtpAuthData as F, type EmailOtpSignInOptions as G, type EmailOtpType as H, type EmailSignInOptions as I, type EmailSignUpData as J, type EmailSignUpOptions as K, type EnableTwoFactorOptions as L, type EnvironmentType as M, type GenerateBackupCodesOptions as N, type GetOrganizationInvitationOptions as O, type PhoneOtpChallengeData as P, type GetOrganizationOptions as Q, type GetToken as R, type GetTokenOptions as S, type InviteOrganizationMemberOptions as T, type JsonObject as U, type JsonPrimitive as V, type JsonValue as W, type LeaveOrganizationOptions as X, type LinkSocialData as Y, type LinkSocialOptions as Z, type ListOrganizationInvitationsOptions as _, AUTH_CHALLENGE_HEADER as a, type UsernameSignInOptions as a$, type ListOrganizationRolesOptions as a0, type ListOrganizationTeamsOptions as a1, type MagicLinkData as a2, type MagicLinkSignInOptions as a3, type Organization as a4, type OrganizationClient as a5, type OrganizationDetails as a6, type OrganizationFilterOperator as a7, type OrganizationInvitation as a8, type OrganizationInvitationActionOptions as a9, type SendOtpData as aA, type SendTwoFactorOtpData as aB, type SendTwoFactorOtpOptions as aC, type SendVerificationOtpOptions as aD, type SessionState as aE, type SessionStore as aF, type SetActiveOrganizationOptions as aG, type SetActiveTeamOptions as aH, type SignOutData as aI, type SocialAccount as aJ, type SocialAuthData as aK, type SocialIdTokenOptions as aL, type SocialSignInOptions as aM, type TokenClient as aN, type TwoFactorBackupCodesData as aO, type TwoFactorEnableData as aP, type TwoFactorRedirectData as aQ, type TwoFactorStatusData as aR, type TwoFactorVerifyData as aS, type UnlinkSocialOptions as aT, type UpdateOrganizationMemberRoleOptions as aU, type UpdateOrganizationOptions as aV, type UpdatePasskeyData as aW, type UpdatePasskeyOptions as aX, type UpdateProfileOptions as aY, type UpdateUnsafeMetadataOptions as aZ, type UserMetadata as a_, type OrganizationInvitationDetails as aa, type OrganizationInvitationStatus as ab, type OrganizationMember as ac, type OrganizationMemberUser as ad, type OrganizationMemberWithUser as ae, type OrganizationMembersData as af, type OrganizationRoleSummary as ag, type OrganizationSelector as ah, type OrganizationTeam as ai, type OrganizationUserInvitation as aj, type PasskeyAuthData as ak, type PasskeySignInOptions as al, type PasswordResetData as am, type PhoneAuthUser as an, type PhoneOtpStartData as ao, type PhoneOtpStartOptions as ap, type PhoneOtpVerifyData as aq, type PhoneOtpVerifyOptions as ar, type ProjectCapabilities as as, type PublicConfig as at, type RejectOrganizationInvitationData as au, type RemoveOrganizationMemberData as av, type RemoveOrganizationMemberOptions as aw, type RequestPasswordResetOptions as ax, type ResetPasswordOptions as ay, type RevokeSessionOptions as az, type AcceptOrganizationInvitationData as b, type VerifyBackupCodeOptions as b0, type VerifyEmailOtpData as b1, type VerifyEmailOtpOptions as b2, type VerifyTotpOptions as b3, type VerifyTwoFactorOtpOptions as b4, type WaitlistJoinData as b5, type WaitlistJoinOptions as b6, acceptConsent as b7, createAuthOwlClient as b8, createTokenClient as b9, getConsentStatus as ba, getPublicConfig as bb, resolveProjectCapabilities as bc, createAuthHttpClient as bd, type AuthHttpClient as be, type AccountClient as c, type AccountSession as d, type AccountStatusData as e, type ActionFetchOptions as f, type AddPasskeyOptions as g, type AuthActionResult as h, type AuthClientError as i, type AuthErrorContext as j, type AuthOwlClient as k, type AuthOwlErrorCode as l, type AuthPasskey as m, type AuthRequestContext as n, type AuthResponseContext as o, type AuthSession as p, type AuthUser as q, type ChangePasswordData as r, type ChangePasswordOptions as s, type ConsentAcceptResult as t, type ConsentStatus as u, type CreateOrganizationOptions as v, type DeleteAccountOptions as w, type DeleteOrganizationOptions as x, type DeletePasskeyData as y, type DeletePasskeyOptions as z };
@@ -939,12 +939,38 @@ interface VerifyEmailOtpData {
939
939
  status: boolean;
940
940
  user: AuthUser;
941
941
  }
942
+ type PhoneOtpChallengeData = Readonly<{
943
+ kind: 'authowl_turnstile';
944
+ }> | Readonly<{
945
+ kind: 'akedly_shield_v1_2';
946
+ connectionId: string;
947
+ challenge: string;
948
+ difficulty: number;
949
+ challengeToken: string;
950
+ challengeRequired: boolean;
951
+ turnstile: Readonly<{
952
+ required: boolean;
953
+ siteKey: string | null;
954
+ }>;
955
+ }>;
956
+ type AkedlyShieldStartProof = Readonly<{
957
+ connectionId: string;
958
+ challengeToken?: string;
959
+ nonce?: number;
960
+ turnstileToken?: string;
961
+ }>;
942
962
  /** Start an Egyptian phone OTP sign-in. Reuse idempotencyKey after an ambiguous retry. */
943
- interface PhoneOtpStartOptions {
963
+ type PhoneOtpStartOptions = Readonly<{
944
964
  phoneNumber: string;
945
965
  turnstileToken: string;
966
+ akedlyShield?: never;
946
967
  idempotencyKey?: string;
947
- }
968
+ }> | Readonly<{
969
+ phoneNumber: string;
970
+ turnstileToken?: never;
971
+ akedlyShield: AkedlyShieldStartProof;
972
+ idempotencyKey?: string;
973
+ }>;
948
974
  interface PhoneOtpStartData {
949
975
  status: 'pending';
950
976
  }
@@ -1201,6 +1227,8 @@ interface AuthOwlClient {
1201
1227
  };
1202
1228
  /** Managed Egyptian phone OTP. Start sends the code; verify establishes the session. */
1203
1229
  phoneOtp: {
1230
+ /** Discover the server-selected anti-abuse ceremony without exposing provider credentials. */
1231
+ prepare(fetchOptions?: ActionFetchOptions): Promise<AuthActionResult<PhoneOtpChallengeData>>;
1204
1232
  start(params: PhoneOtpStartOptions, fetchOptions?: ActionFetchOptions): Promise<AuthActionResult<PhoneOtpStartData>>;
1205
1233
  verify(params: PhoneOtpVerifyOptions, fetchOptions?: ActionFetchOptions): Promise<AuthActionResult<PhoneOtpVerifyData>>;
1206
1234
  };
@@ -1291,4 +1319,4 @@ interface AuthOwlClient {
1291
1319
  */
1292
1320
  declare function createAuthOwlClient(config: ResolvedAuthConfig): AuthOwlClient;
1293
1321
 
1294
- export { type ListOrganizationTeamsOptions as $, AUTH_CHALLENGE_HEADER as A, type EmailOtpAuthData as B, type ChangeEmailOptions as C, type DeleteAccountData as D, type EmailAuthData as E, type EmailOtpSignInOptions as F, type EmailOtpType as G, type EmailSignInOptions as H, type EmailSignUpData as I, type EmailSignUpOptions as J, type EnableTwoFactorOptions as K, type EnvironmentType as L, type GenerateBackupCodesOptions as M, type GetOrganizationInvitationOptions as N, type GetOrganizationOptions as O, type GetToken as P, type GetTokenOptions as Q, type InviteOrganizationMemberOptions as R, type JsonObject as S, type JsonPrimitive as T, type JsonValue as U, type LeaveOrganizationOptions as V, type LinkSocialData as W, type LinkSocialOptions as X, type ListOrganizationInvitationsOptions as Y, type ListOrganizationMembersOptions as Z, type ListOrganizationRolesOptions as _, type AcceptOrganizationInvitationData as a, type VerifyEmailOtpData as a$, type MagicLinkData as a0, type MagicLinkSignInOptions as a1, type Organization as a2, type OrganizationClient as a3, type OrganizationDetails as a4, type OrganizationFilterOperator as a5, type OrganizationInvitation as a6, type OrganizationInvitationActionOptions as a7, type OrganizationInvitationDetails as a8, type OrganizationInvitationStatus as a9, type SendTwoFactorOtpOptions as aA, type SendVerificationOtpOptions as aB, type SessionState as aC, type SessionStore as aD, type SetActiveOrganizationOptions as aE, type SetActiveTeamOptions as aF, type SignOutData as aG, type SocialAccount as aH, type SocialAuthData as aI, type SocialIdTokenOptions as aJ, type SocialSignInOptions as aK, type TokenClient as aL, type TwoFactorBackupCodesData as aM, type TwoFactorEnableData as aN, type TwoFactorRedirectData as aO, type TwoFactorStatusData as aP, type TwoFactorVerifyData as aQ, type UnlinkSocialOptions as aR, type UpdateOrganizationMemberRoleOptions as aS, type UpdateOrganizationOptions as aT, type UpdatePasskeyData as aU, type UpdatePasskeyOptions as aV, type UpdateProfileOptions as aW, type UpdateUnsafeMetadataOptions as aX, type UserMetadata as aY, type UsernameSignInOptions as aZ, type VerifyBackupCodeOptions as a_, type OrganizationMember as aa, type OrganizationMemberUser as ab, type OrganizationMemberWithUser as ac, type OrganizationMembersData as ad, type OrganizationRoleSummary as ae, type OrganizationSelector as af, type OrganizationTeam as ag, type OrganizationUserInvitation as ah, type PasskeyAuthData as ai, type PasskeySignInOptions as aj, type PasswordResetData as ak, type PhoneAuthUser as al, type PhoneOtpStartData as am, type PhoneOtpStartOptions as an, type PhoneOtpVerifyData as ao, type PhoneOtpVerifyOptions as ap, type ProjectCapabilities as aq, type PublicConfig as ar, type RejectOrganizationInvitationData as as, type RemoveOrganizationMemberData as at, type RemoveOrganizationMemberOptions as au, type RequestPasswordResetOptions as av, type ResetPasswordOptions as aw, type RevokeSessionOptions as ax, type SendOtpData as ay, type SendTwoFactorOtpData as az, type AccountClient as b, type VerifyEmailOtpOptions as b0, type VerifyTotpOptions as b1, type VerifyTwoFactorOtpOptions as b2, type WaitlistJoinData as b3, type WaitlistJoinOptions as b4, acceptConsent as b5, createAuthOwlClient as b6, createTokenClient as b7, getConsentStatus as b8, getPublicConfig as b9, resolveProjectCapabilities as ba, createAuthHttpClient as bb, type AuthHttpClient as bc, type AccountSession as c, type AccountStatusData as d, type ActionFetchOptions as e, type AddPasskeyOptions as f, type AuthActionResult as g, type AuthClientError as h, type AuthErrorContext as i, type AuthOwlClient as j, type AuthOwlErrorCode as k, type AuthPasskey as l, type AuthRequestContext as m, type AuthResponseContext as n, type AuthSession as o, type AuthUser as p, type ChangePasswordData as q, type ChangePasswordOptions as r, type ConsentAcceptResult as s, type ConsentStatus as t, type CreateOrganizationOptions as u, type DeleteAccountOptions as v, type DeleteOrganizationOptions as w, type DeletePasskeyData as x, type DeletePasskeyOptions as y, type DisableTwoFactorOptions as z };
1322
+ export { type ListOrganizationMembersOptions as $, type AkedlyShieldStartProof as A, type DisableTwoFactorOptions as B, type ChangeEmailOptions as C, type DeleteAccountData as D, type EmailAuthData as E, type EmailOtpAuthData as F, type EmailOtpSignInOptions as G, type EmailOtpType as H, type EmailSignInOptions as I, type EmailSignUpData as J, type EmailSignUpOptions as K, type EnableTwoFactorOptions as L, type EnvironmentType as M, type GenerateBackupCodesOptions as N, type GetOrganizationInvitationOptions as O, type PhoneOtpChallengeData as P, type GetOrganizationOptions as Q, type GetToken as R, type GetTokenOptions as S, type InviteOrganizationMemberOptions as T, type JsonObject as U, type JsonPrimitive as V, type JsonValue as W, type LeaveOrganizationOptions as X, type LinkSocialData as Y, type LinkSocialOptions as Z, type ListOrganizationInvitationsOptions as _, AUTH_CHALLENGE_HEADER as a, type UsernameSignInOptions as a$, type ListOrganizationRolesOptions as a0, type ListOrganizationTeamsOptions as a1, type MagicLinkData as a2, type MagicLinkSignInOptions as a3, type Organization as a4, type OrganizationClient as a5, type OrganizationDetails as a6, type OrganizationFilterOperator as a7, type OrganizationInvitation as a8, type OrganizationInvitationActionOptions as a9, type SendOtpData as aA, type SendTwoFactorOtpData as aB, type SendTwoFactorOtpOptions as aC, type SendVerificationOtpOptions as aD, type SessionState as aE, type SessionStore as aF, type SetActiveOrganizationOptions as aG, type SetActiveTeamOptions as aH, type SignOutData as aI, type SocialAccount as aJ, type SocialAuthData as aK, type SocialIdTokenOptions as aL, type SocialSignInOptions as aM, type TokenClient as aN, type TwoFactorBackupCodesData as aO, type TwoFactorEnableData as aP, type TwoFactorRedirectData as aQ, type TwoFactorStatusData as aR, type TwoFactorVerifyData as aS, type UnlinkSocialOptions as aT, type UpdateOrganizationMemberRoleOptions as aU, type UpdateOrganizationOptions as aV, type UpdatePasskeyData as aW, type UpdatePasskeyOptions as aX, type UpdateProfileOptions as aY, type UpdateUnsafeMetadataOptions as aZ, type UserMetadata as a_, type OrganizationInvitationDetails as aa, type OrganizationInvitationStatus as ab, type OrganizationMember as ac, type OrganizationMemberUser as ad, type OrganizationMemberWithUser as ae, type OrganizationMembersData as af, type OrganizationRoleSummary as ag, type OrganizationSelector as ah, type OrganizationTeam as ai, type OrganizationUserInvitation as aj, type PasskeyAuthData as ak, type PasskeySignInOptions as al, type PasswordResetData as am, type PhoneAuthUser as an, type PhoneOtpStartData as ao, type PhoneOtpStartOptions as ap, type PhoneOtpVerifyData as aq, type PhoneOtpVerifyOptions as ar, type ProjectCapabilities as as, type PublicConfig as at, type RejectOrganizationInvitationData as au, type RemoveOrganizationMemberData as av, type RemoveOrganizationMemberOptions as aw, type RequestPasswordResetOptions as ax, type ResetPasswordOptions as ay, type RevokeSessionOptions as az, type AcceptOrganizationInvitationData as b, type VerifyBackupCodeOptions as b0, type VerifyEmailOtpData as b1, type VerifyEmailOtpOptions as b2, type VerifyTotpOptions as b3, type VerifyTwoFactorOtpOptions as b4, type WaitlistJoinData as b5, type WaitlistJoinOptions as b6, acceptConsent as b7, createAuthOwlClient as b8, createTokenClient as b9, getConsentStatus as ba, getPublicConfig as bb, resolveProjectCapabilities as bc, createAuthHttpClient as bd, type AuthHttpClient as be, type AccountClient as c, type AccountSession as d, type AccountStatusData as e, type ActionFetchOptions as f, type AddPasskeyOptions as g, type AuthActionResult as h, type AuthClientError as i, type AuthErrorContext as j, type AuthOwlClient as k, type AuthOwlErrorCode as l, type AuthPasskey as m, type AuthRequestContext as n, type AuthResponseContext as o, type AuthSession as p, type AuthUser as q, type ChangePasswordData as r, type ChangePasswordOptions as s, type ConsentAcceptResult as t, type ConsentStatus as u, type CreateOrganizationOptions as v, type DeleteAccountOptions as w, type DeleteOrganizationOptions as x, type DeletePasskeyData as y, type DeletePasskeyOptions as z };
package/dist/index.cjs CHANGED
@@ -1,3 +1,3 @@
1
- 'use strict';var Hn=/^(pk_(live|test))_([0-9a-f-]{36})_([A-Za-z0-9]{20,})$/i,Bn=/^sk_/i;function ke(e){if(typeof e!="string"||e.length===0)throw new Error("publishableKey is required");if(Bn.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=Hn.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 Jn(e){if(!e||typeof e!="object")throw new Error("AuthConfig is required");let t=ke(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 Gn(e){let t=e?.enabledMethods??["password"],n=t.includes("password"),i=t.includes("passkey"),o=e?.authentication,s=e?.mfa;return {emailSignUp:o?.email.signUp??t.some(r=>r==="password"||r==="magic_link"||r==="email_otp"),passwordSignUp:o?.password.signUp??n,phoneSignUp:o?.phone.signUp??t.includes("phone_otp"),passwordSignIn:o?.email.signIn.includes("password")??n,passwordMinLength:o?.password.minLength??8,passwordMaxLength:o?.password.maxLength??128,magicLinkSignIn:o?.email.signIn.includes("magic_link")??t.includes("magic_link"),emailOtpSignIn:o?.email.signIn.includes("email_otp")??t.includes("email_otp"),phoneSignIn:o?.phone.signIn??t.includes("phone_otp"),usernameSignIn:o?.username.signIn??false,collectUsername:o?.username.collectOnSignUp??false,passkeySignIn:o?.passkey.signIn??i,passkeyAdd:o?.passkey.add??i,firstLastName:e?.userModel?.firstLastName??false,emailChange:e===null?false:e.userModel?.emailChange??true,accountDeletion:e?.userModel?.accountDeletion??e?.accountDeletion??false,emailVerificationRequired:e?.emailVerification?.required??e?.requireEmailVerification??false,emailVerificationMethod:e?.emailVerification?.method??"link",totp:s?.totp??e?.twoFactor??false,mfaRequired:s?.required??e?.mfaRequired??false,backupCodes:s?.backupCodes??e?.twoFactor??false,legacyNameField:e?.authentication===void 0}}var Wn=1e4,$n=1024*1024,T=class extends Error{kind;requestId;constructor(t,n){super(ii(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=Wn,maxResponseBytes:o=$n,allowHttpLoopback:s=false,decode:r}){tt(i,"timeoutMs"),tt(o,"maxResponseBytes");let c=Qe(t,{allowHttpLoopback:s}),a=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");a?.addEventListener("abort",m,{once:true});let U=setTimeout(()=>g("timeout"),i);a?.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(Re=>({type:"response",response:Re})),f]);}catch{throw I(u??"network")}if(y.type==="abort")throw I(y.kind);if(!Yn(y.response))throw I("invalid_response");let v=y.response,z=ni(v.headers),V=await Xn(v,o,f,()=>u,z),X=ei(v,V,z),q;try{q=v.ok&&r?r(X,Object.freeze({status:v.status})):X;}catch{throw I("invalid_response",z)}return {response:v,data:q,...z===void 0?{}:{requestId:z}}}catch(y){throw y instanceof T&&nt.has(y)?y:I(u??"network")}finally{clearTimeout(U),a?.removeEventListener("abort",m);}}function Yn(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 Xn(e,t,n,i,o){let s=e.headers.get("content-length");if(s!==null){if(!/^\d+$/.test(s))throw et(e.body),I("invalid_response",o);if(Number(s)>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=[],a=0,h=null;try{for(;;){let f;try{f=await Promise.race([r.read(),n]);}catch{h=I(i()??"network",o);break}if(Qn(f)){h=I(f.kind,o);break}let{done:g,value:m}=f;if(g)break;if(m.byteLength!==0){if(a+=m.byteLength,a>t){h=I("response_too_large",o);break}c.push(m);}}}finally{h&&Zn(r);try{r.releaseLock();}catch{}}if(h)throw h;let u=new Uint8Array(a),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 Qn(e){return "type"in e&&e.type==="abort"}function et(e){if(e)try{e.cancel().catch(()=>{});}catch{}}function Zn(e){try{e.cancel().catch(()=>{});}catch{}}function ei(e,t,n){if(e.status===204||e.status===205)return null;let i=ti(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 ti(e){if(e===null)return false;let t=e.split(";",1)[0]?.trim().toLowerCase();return t==="application/json"||t?.endsWith("+json")===true}function ni(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 ii(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",oi=1e4,ri=32,si=2e4;function J(e,t){return {post:(n,i,o,s)=>e.request(n,{method:"POST",body:i,fetchOptions:o,decode:s}),mutation:async(n,i)=>{let o=await n;return o.error===null&&(i===void 0||o.data!==null&&i(o.data))&&t(),o}}}function ie(e,t=e.projectBaseURL){return {async request(n,i={}){let o=ui(t,n,i.query),s=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:s,headers:r,credentials:i.credentials??"include",...i.body===void 0?{}:{body:JSON.stringify(i.body)}},a=Object.freeze({method:s,path:n});await i.fetchOptions?.onRequest?.(a);let h=ci(s,i.fetchOptions),u;try{u=await ai(e,o,{...c,signal:i.fetchOptions?.signal},h);}catch(y){let v=ot(y);return await i.fetchOptions?.onError?.(Te(a,v,pi(y))),{data:null,error:v}}let{response:d,requestId:f}=u,g=mi(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(a,y,"invalid_response")),{data:null,error:y}}let U=Object.freeze({...a,status:d.status,...f===void 0?{}:{requestId:f}});if(await i.fetchOptions?.onResponse?.(U),!d.ok){let y=li(d,g,f);return await i.fetchOptions?.onError?.(Te(a,y,"api")),{data:null,error:y}}return await i.fetchOptions?.onSuccess?.(U),{data:m,error:null}}}}async function ai(e,t,n,i){let o=Date.now()+oi;for(let s=0;s<i;s+=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||s===i-1)return c}catch(c){if(s===i-1||!(c instanceof T)||c.kind!=="network")throw c}await fi(50*2**s,n.signal,o);}throw new T("network")}function ci(e,t){if(e!=="GET"||t?.authChallengeToken)return 1;let n=t?.retry;return typeof n!="number"||!Number.isFinite(n)?1:Math.min(Math.max(Math.trunc(n),0),3)+1}function ui(e,t,n){let i=new URL(`${e}${t.startsWith("/")?t:`/${t}`}`);for(let[o,s]of Object.entries(n??{}))s!==void 0&&i.searchParams.set(o,String(s));return i.toString()}function li(e,t,n){let i=Q(t)?t:{},o=di(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 di(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 pi(e){return e instanceof T?e.kind:"network"}function fi(e,t,n){return new Promise((i,o)=>{if(t?.aborted){o(new T("aborted"));return}let s=n-Date.now();if(s<=0){o(new T("timeout"));return}let r=Math.min(e,s),c=()=>{clearTimeout(a),o(new T("aborted"));},a=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>ri||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,s])=>[o,gi(o)?s:Pe(s,o,n+1,i)])):e}function gi(e){return e==="metadata"||e==="public_metadata"||e==="unsafe_metadata"||e==="private_metadata"||e==="publicMetadata"||e==="unsafeMetadata"||e==="privateMetadata"}function mi(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 hi=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 w(e){return typeof e!="string"&&l(),e}function O(e){return typeof e!="boolean"&&l(),e}function k(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 R(e,t){let n=e[t];return n==null||typeof n=="string"?n:l()}function st(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:w(t.id),email:n,emailVerified:O(t.emailVerified),createdAt:k(t.createdAt),updatedAt:k(t.updatedAt),...E("phoneNumber",R(t,"phoneNumber")),...E("username",R(t,"username")),...E("displayUsername",R(t,"displayUsername")),...E("firstName",R(t,"firstName")),...E("lastName",R(t,"lastName")),...E("name",R(t,"name")),...E("image",R(t,"image")),...E("twoFactorEnabled",st(t,"twoFactorEnabled"))}}function re(e){let t=p(e),n=t.membership;return {id:w(t.id),userId:w(t.userId),expiresAt:k(t.expiresAt),...E("activeOrganizationId",R(t,"activeOrganizationId")),...E("activeTeamId",R(t,"activeTeamId")),...E("membership",n==null?n:yi(n)),...E("pendingMfaEnrollment",st(t,"pendingMfaEnrollment"))}}function l(){throw new TypeError("AuthOwl response does not match its runtime contract.")}function _(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 yi(e){let t=p(e);return {role:w(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 s=Object.getPrototypeOf(e);s!==Object.prototype&&s!==null&&l();let r={};for(let[c,a]of Object.entries(e))hi.has(c)&&l(),r[c]=Ee(a,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,s=null,r,c=g=>{u(g);};r={data:null,isPending:true,isRefetching:false,error:null,refetch:c};function a(g){r=g;for(let m of n)m();}async function h(g){return e.request("/get-session",{query:g?.query,decode:at})}async function u(g){s?.abort();let m=new AbortController;s=m,a({...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:at});s===m&&(s=null,a({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&&(s?.abort(),s=null,o?.());}}return {store:{subscribe:f,getSnapshot:()=>r},getSession:h,notifyMutation(){i?.postMessage({type:"session-changed"}),n.size>0&&u({query:{disableCookieCache:true}});}}}function at(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=_(t.public_metadata),i=_(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,s)=>lt(e,o,s),updateProfile:(o,s)=>i(n("/update-user",o,s,Z)),changeEmail:(o,s)=>i(n("/change-email",o,s,Z)),changePassword:(o,s)=>i(n("/change-password",o,s,Ai)),listSessions:o=>e.request("/list-sessions",{fetchOptions:o,decode:Oi}),revokeSession:({sessionId:o},s)=>i(n("/revoke-session",{sessionId:o},s,Z)),revokeOtherSessions:o=>i(n("/revoke-other-sessions",{},o,Z)),listSocialAccounts:async o=>{let s=await e.request("/list-accounts",{fetchOptions:o,decode:bi});if(!s.data)return {data:null,error:s.error};let r=s.data.length>1;return {...s,data:s.data.filter(c=>c.providerId!=="credential").map(c=>({...c,canUnlink:r}))}},linkSocial:(o,s)=>n("/link-social",o,s,wi),unlinkSocial:(o,s)=>i(n("/unlink-account",o,s,Z)),delete:(o={},s)=>i(n("/delete-user",o,s,Ri))}}function Z(e){let t=p(e);return {status:O(t.status)}}function Ai(e){let t=p(e);return {user:x(t.user)}}function Oi(e){return Array.isArray(e)||l(),e.map(t=>{let n=p(t);return {id:w(n.id),userId:w(n.userId),createdAt:k(n.createdAt),updatedAt:k(n.updatedAt),expiresAt:k(n.expiresAt),...pt("ipAddress",R(n,"ipAddress")),...pt("userAgent",R(n,"userAgent"))}})}function bi(e){return Array.isArray(e)||l(),e.map(t=>{let n=p(t);return {id:w(n.id),userId:w(n.userId),providerId:w(n.providerId),accountId:w(n.accountId),scopes:oe(n.scopes),createdAt:k(n.createdAt),updatedAt:k(n.updatedAt)}})}function wi(e){let t=p(e);return {url:w(t.url),redirect:O(t.redirect)}}function Ri(e){let t=p(e);return {success:O(t.success),message:w(t.message)}}function pt(e,t){return t===void 0?{}:{[e]:t}}function se(e,t){return !e||!t?false:e.permissions.includes(t)}function gt(e,t){return !e||!t?false:e.teams?.includes(t)??false}function ae(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 ki(e){return {has:t=>ae(e,t),hasPermission:t=>se(e,t.permission)}}var Si=new Set(["pending","accepted","rejected","canceled"]),mt=1e4;function G(e,t,n){let i=p(e),o={id:A(i.id),name:A(i.name),slug:A(i.slug),createdAt:k(i.createdAt),...ce("logo",R(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,s=>Ct(s,o.id)),invitations:F(i.invitations,s=>N(s,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:Ti(n.members,t),total:n.total}}function N(e,t,n){let i=p(e),o=A(i.status);Si.has(o)||l();let s={id:A(i.id),organizationId:A(i.organizationId),email:A(i.email),role:A(i.role),status:o,inviterId:A(i.inviterId),expiresAt:k(i.expiresAt),createdAt:k(i.createdAt)};return M(s.id,t),M(s.organizationId,n),s}function wt(e,t){let n=F(e,i=>N(i));return ue(n.map(i=>i.organizationId),t),n}function Rt(e){return F(e,t=>{let n=p(t);return {...N(n),organizationName:A(n.organizationName)}})}function kt(e,t){let n=p(e);return {...N(n,t),organizationName:A(n.organizationName),organizationSlug:A(n.organizationSlug),inviterEmail:A(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:A(i.id),organizationId:A(i.organizationId),userId:A(i.userId),role:A(i.role),createdAt:k(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:A(o.organizationId),data:{role:A(o.role),...ce("permission",o.permission===void 0?void 0:Ii(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,s={id:A(i.id),name:A(i.name),organizationId:A(i.organizationId),createdAt:k(i.createdAt),...o===void 0?{}:{updatedAt:k(o)}};return M(s.id,t),M(s.organizationId,n),s}function Ct(e,t){let n=p(e);return {...W(n,void 0,t),user:Dt(n.user)}}function Ti(e,t){let n=F(e,i=>Ct(i));return ue(n.map(i=>i.organizationId),t),n}function Ii(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(s=>A(s));return n}function A(e){let t=w(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:A(t.id),name:A(t.name),email:A(t.email),...ce("image",R(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),s=(r,c,a,h)=>e.request(r,{query:c,fetchOptions:a,decode:h});return {create:(r,c)=>o(i("/organization/create",r,c,G)),list:r=>s("/organization/list",void 0,r,ht),get:(r={},c)=>s("/organization/get-full-organization",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,membersLimit:r.membersLimit},c,a=>yt(a,r.organizationId,r.organizationSlug)),setActive:(r,c)=>o(i("/organization/set-active",r,c,a=>De(a,r.organizationId,r.organizationSlug))),listTeams:(r={},c)=>s("/organization/list-teams",{organizationId:r.organizationId},c,a=>At(a,r.organizationId)),setActiveTeam:(r,c)=>o(i("/organization/set-active-team",r,c,a=>Ot(a,r.teamId))),update:(r,c)=>o(i("/organization/update",r,c,a=>De(a,r.organizationId))),delete:(r,c)=>o(i("/organization/delete",r,c,a=>G(a,r.organizationId))),listMembers:(r={},c)=>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},c,a=>bt(a,r.organizationId)),inviteMember:(r,c)=>o(i("/organization/invite-member",r,c,a=>N(a,void 0,r.organizationId))),listInvitations:(r={},c)=>s("/organization/list-invitations",{organizationId:r.organizationId},c,a=>wt(a,r.organizationId)),listUserInvitations:r=>s("/organization/list-user-invitations",void 0,r,Rt),getInvitation:(r,c)=>s("/organization/get-invitation",{id:r.id},c,a=>kt(a,r.id)),acceptInvitation:(r,c)=>o(i("/organization/accept-invitation",r,c,a=>St(a,r.invitationId))),rejectInvitation:(r,c)=>o(i("/organization/reject-invitation",r,c,a=>Tt(a,r.invitationId))),cancelInvitation:(r,c)=>o(i("/organization/cancel-invitation",r,c,a=>It(a,r.invitationId))),removeMember:(r,c)=>o(i("/organization/remove-member",r,c,a=>Pt(a,r.organizationId,r.memberIdOrEmail.includes("@")?void 0:r.memberIdOrEmail))),updateMemberRole:(r,c)=>o(i("/organization/update-member-role",r,c,a=>W(a,r.memberId,r.organizationId))),leave:(r,c)=>o(i("/organization/leave",r,c,a=>W(a,void 0,r.organizationId))),listRoles:(r={},c)=>s("/organization/list-roles",{organizationId:r.organizationId},c,a=>Et(a,r.organizationId)),has:r=>ae(n(),r),hasPermission:r=>se(n(),r.permission)}}var Ut=4096,Pi=4096,Ei=100,xi=256,Ci=16,Di=64;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:Yt(t.twoFactorMethods,Ci,Di)}}):(t.twoFactorRedirect!==void 0&&l(),{redirect:O(t.redirect),..._i(t,"url"),user:x(t.user)})}function zt(e){let t=p(e);return {user:x(t.user)}}function _t(e){let t=p(e);return {sessionCreated:O(t.sessionCreated),user:x(t.user)}}function Nt(e,t){let n=p(e),i=O(n.redirect);n.user===null&&l();let o=n.user!==void 0&&n.user!==null,s=n.url!==void 0&&n.url!==null;return i?((o||!s)&&l(),{redirect:true,url:ve(n.url,t)}):(o===s&&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:O(p(e).status)}}function Ft(e){return {success:O(p(e).success)}}function Vt(e){return p(e).status!=="pending"&&l(),{status:"pending"}}function qt(e){let t=p(e);return (t.status!==true||t.sessionCreated!==true)&&l(),{status:true,sessionCreated:true,user:vi(t.user)}}function ze(e){return {status:O(p(e).status)}}function Kt(e){return {status:O(p(e).status)}}function Ht(e){let t=p(e);return {status:O(t.status),user:x(t.user)}}function Bt(e){return {success:O(p(e).success)}}function jt(e){let t=p(e);return {totpURI:zi(t.totpURI),backupCodes:$t(t.backupCodes)}}function Jt(e){return {status:O(p(e).status)}}function le(e){return p(e).status!==true&&l(),{status:true}}function Gt(e){return {status:O(p(e).status)}}function Wt(e){let t=p(e);return t.status!==void 0&&t.status!==true&&l(),{backupCodes:$t(t.backupCodes)}}function vi(e){let t=p(e);return {id:$(t.id,512),...Ni(t,"name",1024),phoneNumber:$(t.phoneNumber,64),phoneNumberVerified:O(t.phoneNumberVerified),...t.createdAt===void 0?{}:{createdAt:k(t.createdAt)},...t.updatedAt===void 0?{}:{updatedAt:k(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:"&&Ui(i.hostname)?i.href:l()}function Ui(e){let t=e.toLowerCase();return t==="localhost"||t==="127.0.0.1"||t==="[::1]"}function zi(e){let t=$(e,Pi),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 $t(e){return Yt(e,Ei,xi)}function Yt(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=w(e);return (n.length===0||n.length>t)&&l(),n}function _i(e,t){let n=e[t];return n==null?{}:{[t]:$(n,Ut)}}function Ni(e,t,n){let i=R(e,t);return i===void 0?{}:(i!==null&&i.length>n&&l(),{[t]:i})}var Xt=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||Zt(n,i)||Qt(i)||Xt.has(i))return {valid:false}}let t=Li(e);return _e(t)?{valid:true,value:t}:{valid:false}}function _e(e){let t=0,n,i;for(let o of e){if(t+=1,t>256)return false;let s=o.codePointAt(0);if(s===void 0||Zt(o,s)||Qt(s)||Xt.has(s))return false;n??=s,i=s;}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 Li(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 s=i>=56320&&i<=57343?n-2:n-1,r=e.codePointAt(s);if(r===void 0||!de.has(r))break;n=s;}return e.slice(t,n)}function Qt(e){return e>=0&&e<=31||e>=127&&e<=159}function Zt(e,t){return e.length===1&&t>=55296&&t<=57343}var nn=12,on=5e3,Mi=8,Fi=1e3,Vi=16,en=512,rn=100,sn=8192,qi=32768,Ne=1024,tn=256,Me=64,Ki=6e5,Hi=/^[A-Za-z0-9_-]+$/u,Bi=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u,ji=/[\u0000-\u001f\u007f-\u009f\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/u,Ji=/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$/u,Gi=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu,an=new Set(["discouraged","preferred","required"]),Wi=new Set(["singleDevice","multiDevice"]),cn=new Set(["ble","cable","hybrid","internal","nfc","smart-card","usb"]),un=new Set(["hybrid","security-key","client-device"]),$i=new Set(["none","indirect","direct","enterprise"]),Yi=new Set(["fido-u2f","packed","android-safetynet","android-key","tpm","apple","none"]),Xi=new Set(["platform","cross-platform"]),Qi=new Set(["discouraged","preferred","required"]),Zi=new Set([-8,-7,-257]);function ln(e){let t=_(e,nn,on);return {challenge:bn(t.challenge),...S("timeout",An(t.timeout)),...S("rpId",wn(t.rpId)),...S("allowCredentials",yn(t.allowCredentials)),...S("userVerification",ee(t.userVerification,an)),...S("hints",ge(t.hints,un)),...S("extensions",On(t.extensions))}}function dn(e){let t=_(e,nn,on);return {challenge:bn(t.challenge),rp:eo(t.rp),user:to(t.user),pubKeyCredParams:no(t.pubKeyCredParams),...S("timeout",An(t.timeout)),...S("excludeCredentials",yn(t.excludeCredentials)),...S("authenticatorSelection",io(t.authenticatorSelection)),...S("attestation",ee(t.attestation,$i)),...S("attestationFormats",ge(t.attestationFormats,Yi)),...S("hints",ge(t.hints,un)),...S("extensions",On(t.extensions))}}function pn(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,Wi),o=O(t.backedUp);return o&&i!=="multiDevice"&&l(),{id:Y(t.id,tn),...so(t),publicKey:oo(t.publicKey,qi),userId:Y(t.userId,tn),credentialID:he(t.credentialID,sn),counter:n,deviceType:i,backedUp:o,...ao(t),createdAt:k(t.createdAt),...co(t)}}function fn(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 gn(e){(!Array.isArray(e)||e.length>rn)&&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 mn(e,t,n){let i=p(e),o=Fe(i.passkey);return (o.id!==t||o.name!==n)&&l(),{passkey:o}}function hn(e){return p(e).status!==true&&l(),{status:true}}function eo(e){let t=p(e);return {name:Le(t.name,Ne),...S("id",wn(t.id))}}function to(e){let t=p(e);return {id:he(t.id,128,1,64),name:Le(t.name,Ne),displayName:Le(t.displayName,Ne)}}function no(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)||!Zi.has(i.alg))&&l(),{type:"public-key",alg:i.alg}});return uo(t.map(n=>n.alg)),t}function yn(e){if(e===void 0)return;(!Array.isArray(e)||e.length>rn)&&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,cn))}});return me(t.map(n=>n.id)),t}function io(e){if(e===void 0)return;let t=p(e);t.requireResidentKey!==void 0&&typeof t.requireResidentKey!="boolean"&&l();let n=ee(t.residentKey,Qi);return t.requireResidentKey!==void 0&&n!==void 0&&t.requireResidentKey!==(n==="required")&&l(),{...S("authenticatorAttachment",ee(t.authenticatorAttachment,Xi)),...S("residentKey",n),...S("requireResidentKey",t.requireResidentKey),...S("userVerification",ee(t.userVerification,an))}}function An(e){return e!==void 0&&(typeof e!="number"||!Number.isFinite(e)||e<0||e>Ki)&&l(),e}function On(e){return e===void 0?void 0:_(e,Mi,Fi)}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 bn(e){return he(e,Math.ceil(en*4/3),Vi,en)}function he(e,t,n=1,i=Number.POSITIVE_INFINITY){let o=Y(e,t),s=o.length%4,r=ro(o.at(-1)??""),c=Math.floor(o.length*3/4);return (!Hi.test(o)||s===1||s===2&&(r&15)!==0||s===3&&(r&3)!==0||c<n||c>i)&&l(),o}function Y(e,t){let n=w(e);return (n.length===0||n.length>t)&&l(),n}function Le(e,t){let n=Y(e,t);return ji.test(n)&&l(),n}function wn(e){if(e===void 0)return;let t=Y(e,253);return t!=="localhost"&&(t.endsWith(".")||!t.includes(".")||t.split(".").some(n=>!Ji.test(n)))&&l(),t}function oo(e,t){let n=Y(e,t),i=n.endsWith("=="),o=!i&&n.endsWith("="),s=n.at(i?-3:o?-2:-1)??"",r=Rn(s);return (n.length%4!==0||!Bi.test(n)||i&&(r&15)!==0||o&&(r&3)!==0)&&l(),n}function ro(e){return Rn(e,true)}function Rn(e,t=false){return (t?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").indexOf(e)}function so(e){let t=R(e,"name");return t===void 0?{}:(t!==null&&!_e(t)&&l(),{name:t})}function ao(e){let t=R(e,"transports");if(t==null||t==="")return t===void 0?{}:{transports:t};let n=t.split(",");return (n.length>Me||n.some(i=>!cn.has(i))||new Set(n).size!==n.length)&&l(),{transports:t}}function co(e){let t=R(e,"aaguid");return t==null?t===void 0?{}:{aaguid:null}:(Gi.test(t)||l(),{aaguid:t})}function Ve(e,t){let n=w(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 uo(e){new Set(e).size!==e.length&&l();}function Sn(e,t=()=>{},n=lo){let i=ie(e),o=ct(i,e.decoded.projectId),s=n(i,o.notifyMutation),r=()=>{o.notifyMutation(),t();},{post:c,mutation:a}=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)=>a(c("/sign-in/email",u,d,Ue),f=>!("twoFactorRedirect"in f)),username:(u,d)=>a(c("/sign-in/username",u,d,Ue),f=>!("twoFactorRedirect"in f)),social:async(u,d)=>{let f=await a(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)=>a(c("/sign-in/email-otp",u,d,zt)),passkey:(u,d)=>s.signIn(u,d)},signUp:{email:(u,d)=>a(c("/sign-up/email",u,d,_t),f=>f.sessionCreated)},emailOtp:{sendVerificationOtp:(u,d)=>c("/email-otp/send-verification-otp",u,d,Ft),verifyEmail:(u,d)=>a(c("/email-otp/verify-email",u,d,Ht))},phoneOtp:{start:(u,d)=>c("/phone-otp/start",{...u,idempotencyKey:u.idempotencyKey??Ce()},d,Vt),verify:(u,d)=>a(c("/phone-otp/verify",u,d,qt))},requestPasswordReset:(u,d)=>c("/request-password-reset",u,d,ze),resetPassword:(u,d)=>c("/reset-password",u,d,ze),sendVerificationEmail:(u,d)=>c("/send-verification-email",u,d,Kt),passkey:{addPasskey:(u,d)=>s.add(u,d),listUserPasskeys:()=>i.request("/passkey/list-user-passkeys",{decode:gn}),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=>mn(m,u.id,g))},deletePasskey:(u,d)=>c("/passkey/delete-passkey",u,d,hn)},twoFactor:{enable:(u,d)=>c("/two-factor/enable",u,d,jt),disable:(u,d)=>a(c("/two-factor/disable",u,d,Jt),f=>f.status),verifyTotp:(u,d)=>a(c("/two-factor/verify-totp",u,d,le)),verifyBackupCode:(u,d)=>a(c("/two-factor/verify-backup-code",u,d,le)),sendOtp:(u={},d)=>c("/two-factor/send-otp",u,d,Gt),verifyOtp:(u,d)=>a(c("/two-factor/verify-otp",u,d,le)),generateBackupCodes:(u,d)=>c("/two-factor/generate-backup-codes",u,d,Wt)},signOut:u=>a(i.request("/sign-out",{method:"POST",body:{},fetchOptions:u,decode:Bt}),d=>d.success)}}function lo(){return {signIn:()=>kn(),add:()=>kn()}}function kn(){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 xn(e,t,n){let i=new Map;return {async signIn(o={},s){let r=await e.request("/passkey/generate-authenticate-options");if(!r.data)return Pn(r.error);let c;try{c=ln(r.data);}catch{return Tn()}let a;try{a=await n.authenticate({optionsJSON:c,useBrowserAutofill:o.autoFill});}catch(g){return En(n,g,"AUTH_CANCELLED","Passkey authentication was cancelled.")}if(!po(a))return In();let{clientExtensionResults:h,...u}=a,d=i.get(a.id);if(d)return d;let f=(async()=>{let g=await e.request("/passkey/verify-authentication",{method:"POST",body:{response:u},fetchOptions:s,decode:pn});return g.data&&t(),g})();i.set(a.id,f);try{return await f}finally{i.get(a.id)===f&&i.delete(a.id);}},async add(o={},s){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 Pn(c.error);let a;try{a=dn(c.data);}catch{return Tn()}let h;try{h=await n.register({optionsJSON:a});}catch(g){return En(n,g,"REGISTRATION_CANCELLED","Passkey registration was cancelled.")}if(!fo(h))return In();let{clientExtensionResults:u,...d}=h,f=await e.request("/passkey/verify-registration",{method:"POST",body:{response:d,name:r.value},fetchOptions:s,decode:g=>fn(g,h.id,r.value)});return f.data&&t(),f}}}function Tn(){return {data:null,error:{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned invalid WebAuthn options."}}}function In(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_WEBAUTHN_RESPONSE",message:"The platform returned an invalid passkey response."}}}function Cn(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 po(e){if(!Cn(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 fo(e){if(!Cn(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.attestationObject=="string"}function Pn(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=mo(t,"page does not have focus"),s=e.errorCode?.(t),r=s!==void 0?s==="ERROR_CEREMONY_ABORTED":go(t)==="AbortError";return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:o?"PASSKEY_PAGE_NOT_FOCUSED":r?n:s??"PASSKEY_BROWSER_ERROR",message:o?"Keep this page focused while completing the passkey prompt.":r?i:n==="AUTH_CANCELLED"?"Passkey authentication could not be completed by this browser.":"Passkey registration could not be completed by this browser."}}}function go(e){return e&&typeof e=="object"&&"name"in e&&typeof e.name=="string"?e.name:void 0}function mo(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),s=new ArrayBuffer(o.length),r=new Uint8Array(s);for(let c=0;c<o.length;c++)r[c]=o.charCodeAt(c);return s}function H(){return ho.stubThis(globalThis?.PublicKeyCredential!==void 0&&typeof globalThis.PublicKeyCredential=="function")}var ho={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 b=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 Dn({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 b({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 b({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 b({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 b({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 b({message:"The authenticator was previously registered",code:"ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED",cause:e});if(e.name==="NotAllowedError")return new b({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 b({message:'No entry in pubKeyCredParams was of type "public-key"',code:"ERROR_MALFORMED_PUBKEYCREDPARAMS",cause:e}):new b({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 b({message:`The RP ID "${n.rp.id}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new b({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 b({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 b({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 yo=["cross-platform","platform"];function be(e){if(e&&!(yo.indexOf(e)<0))return e}async function vn(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 s;try{s=await navigator.credentials.create(o);}catch(m){throw Dn({error:m,options:o})}if(!s)throw new Error("Registration was not completed");let{id:r,rawId:c,response:a,type:h}=s,u;typeof a.getTransports=="function"&&(u=a.getTransports());let d;if(typeof a.getPublicKeyAlgorithm=="function")try{d=a.getPublicKeyAlgorithm();}catch(m){Ke("getPublicKeyAlgorithm()",m);}let f;if(typeof a.getPublicKey=="function")try{let m=a.getPublicKey();m!==null&&(f=C(m));}catch(m){Ke("getPublicKey()",m);}let g;if(typeof a.getAuthenticatorData=="function")try{g=C(a.getAuthenticatorData());}catch(m){Ke("getAuthenticatorData()",m);}return {id:r,rawId:C(c),response:{attestationObject:C(a.attestationObject),clientDataJSON:C(a.clientDataJSON),transports:u,publicKeyAlgorithm:d,publicKey:f,authenticatorData:g},type:h,clientExtensionResults:s.getClientExtensionResults(),authenticatorAttachment:be(s.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 Un(){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 b({message:"Authentication ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else {if(e.name==="NotAllowedError")return new b({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 b({message:`The RP ID "${n.rpId}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new b({message:`${globalThis.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="UnknownError")return new b({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 _n(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 s={...t,challenge:K(t.challenge),allowCredentials:o},r={};if(n){if(!await Un())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",s.allowCredentials=[];}r.publicKey=s,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:a,rawId:h,response:u,type:d}=c,f;return u.userHandle&&(f=C(u.userHandle)),{id:a,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 Nn={authenticate:e=>_n(e),register:e=>vn(e),errorCode:e=>e instanceof b?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 Mn(e){return `${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/consent`}async function Be(e){let t=await B(e,Mn(e),{init:{method:"GET",credentials:"include"},maxResponseBytes:65536,decode:Ao});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,Mn(e),{init:{method:"POST",headers:{"content-type":"application/json"},credentials:"include",body:JSON.stringify({version:t})},maxResponseBytes:64*1024,decode:Oo}),"consent accept")}function Ao(e){let t=p(e),n=O(t.required),i=bo(t.needsConsent),o=Fn(t.version),s=Ln(t.termsUrl),r=Ln(t.privacyUrl);return {required:n,...i===void 0?{}:{needsConsent:i},...o===void 0?{}:{version:o},...s===void 0?{}:{termsUrl:s},...r===void 0?{}:{privacyUrl:r}}}function Oo(e){let t=p(e),n=Fn(t.version);return {ok:O(t.ok),...n===void 0?{}:{version:n}}}function bo(e){if(e===void 0||typeof e=="boolean")return e;throw new TypeError("Invalid consent response.")}function Fn(e){if(e===void 0||Number.isSafeInteger(e)&&e>=1)return e;throw new TypeError("Invalid consent response.")}function Ln(e){if(e===void 0||typeof e=="string"&&e.length<=4096)return e;throw new TypeError("Invalid consent response.")}var wo=30;function Ro(e){return typeof e?.exp=="number"?e.exp:null}function ko(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(s={}){let r=s.template===void 0?null:s.template.trim().toLowerCase();if(r==="")throw new TypeError("Template missing");let c=r??"",a=t.get(c);a||(a={activeKey:null,cachedByKey:new Map,inflight:null,sequence:0},t.set(c,a));let h=s.forceRefresh===true;if(!h){let m=a.activeKey?a.cachedByKey.get(a.activeKey):null;if(m&&m.exp-Date.now()/1e3>wo)return m.token;if(a.inflight)return a.inflight}let u=++a.sequence,d=()=>t.get(c)===a&&a.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=>So(q,r!==null)});if(U.response.status===401)return d()&&i(),null;let y=j(U,"token"),v=y.policyVersion,z=y.token,V=ko(z),X=Ro(V);if(d())if(X!==null){let q=typeof V?.sub=="string"?V.sub:null,Re=typeof V?.org_id=="string"?V.org_id:null;if(!r||q){let Ye=JSON.stringify([e.projectBaseURL,q,Re,r,v]);a.cachedByKey.clear(),a.cachedByKey.set(Ye,{token:z,exp:X}),a.activeKey=Ye;}else o(a);}else o(a);return z})();if(h)return f;let g=f.finally(()=>{a.inflight===g&&(a.inflight=null);});return a.inflight=g,g}function i(){t.clear();}function o(s){s.cachedByKey.clear(),s.activeKey=null;}return {getToken:n,clear:i}}function So(e,t){let n=p(e),i=w(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 To(e){let t=Je(e),n=Sn(e,t.clear,(r,c)=>xn(r,c,Nn)),i=ie(e,`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}`),o=r=>(...c)=>(t.clear(),r(...c)),s={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:{start:n.phoneOtp.start,verify:o(n.phoneOtp.verify)},signOut:o(n.signOut)};return {...n,...s}}async function Io(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=>Po(i,e)}),"public-config")}function Po(e,t){let n=_(e),i=n.environmentId,o=n.environmentType,s=`${new URL(t.apiUrl).origin}/api/projects/${t.decoded.projectId}/auth`;if(typeof n.applicationId!="string"||!Eo(n.applicationId)||i!==t.decoded.projectId||o!=="development"&&o!=="production"||n.authBaseUrl!==s)throw D();let r=P(n.branding),c=P(n.legal);if(!Ge(n.enabledMethods,64)||!Ge(n.socialProviders,64)||!qn(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"||!qn(c,["termsUrl","privacyUrl"])||!Number.isSafeInteger(c.version)||c.version<0||typeof c.required!="boolean")throw D();if(n.socialProviderClientIds!==void 0){let a=P(n.socialProviderClientIds);if(Object.keys(a).length>64||Object.values(a).some(h=>typeof h!="string"||h.length>2048))throw D()}if(!L(n,["requireEmailVerification","twoFactor","mfaRequired","accountDeletion","organizations","sso","badge"])||!Vn(n.turnstileSiteKey)||!Vn(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 a=P(n.jwtIssuer);if(a.issuer!==s||a.jwksUrl!==`${s}/jwks`||a.aud!==t.decoded.projectId)throw D()}if(n.signUp!==void 0){let a=P(n.signUp).mode;if(typeof a!="string"||!["open","restricted","allowlist","waitlist"].includes(a))throw D()}if(n.authentication!==void 0&&xo(n.authentication),n.emailVerification!==void 0){let a=P(n.emailVerification);if(!L(a,["required"])||a.method!=="link"&&a.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 a=P(n.mfa);if(!L(a,["totp","required","backupCodes"])||(a.required===true||a.backupCodes===true)&&a.totp!==true)throw D()}return n}function Eo(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 Vn(e){return e===null||typeof e=="string"&&e.length<=4096}function xo(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(s=>s!=="password"&&s!=="magic_link"&&s!=="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 qn(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 Kn=["en","ar"];function Co(e){return e==="ar"?"rtl":"ltr"}function Do(e){return typeof e=="string"&&Kn.includes(e)}
3
- exports.AUTH_CHALLENGE_HEADER=rt;exports.AuthOwlError=te;exports.AuthOwlHttpError=we;exports.InvalidKeyError=$e;exports.LOCALES=Kn;exports.RateLimitedError=We;exports.TransportError=T;exports.acceptConsent=je;exports.createAuthOwlClient=To;exports.createIdempotencyKey=Ce;exports.createMembershipHas=ki;exports.createTokenClient=Je;exports.decodePublishableKey=ke;exports.directionFor=Co;exports.getConsentStatus=Be;exports.getPublicConfig=Io;exports.isLocale=Do;exports.membershipHas=ae;exports.membershipHasPermission=se;exports.membershipHasTeam=gt;exports.resolveConfig=Jn;exports.resolveProjectCapabilities=Gn;exports.sessionCookieName=jn;
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=rt;exports.AuthOwlError=te;exports.AuthOwlHttpError=we;exports.InvalidKeyError=$e;exports.LOCALES=Hn;exports.RateLimitedError=We;exports.TransportError=T;exports.acceptConsent=je;exports.createAuthOwlClient=Eo;exports.createIdempotencyKey=Ce;exports.createMembershipHas=Si;exports.createTokenClient=Je;exports.decodePublishableKey=Re;exports.directionFor=No;exports.getConsentStatus=Be;exports.getPublicConfig=vo;exports.isLocale=Lo;exports.membershipHas=se;exports.membershipHasPermission=ae;exports.membershipHasTeam=gt;exports.resolveConfig=Gn;exports.resolveProjectCapabilities=Wn;exports.sessionCookieName=Jn;exports.solvePhoneOtpChallenge=xo;