@authowl/core 0.13.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-MX7KKUAW.js +1 -0
- package/dist/chunk-T5SH3ZZP.js +1 -0
- package/dist/index.cjs +3 -3
- package/dist/index.js +1 -1
- package/dist/native.cjs +2 -1
- package/dist/native.js +1 -1
- package/dist/session-handoff-6B5KZXQV.js +2 -0
- package/package.json +2 -1
- package/dist/chunk-VZTAYWAD.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {f,g,q as q$1,j as j$1,h,p,i,n,s,u,o,k,r,m as m$1,l}from'./chunk-KPXCQZUX.js';import {a}from'./chunk-T5SH3ZZP.js';function yi(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 Qt="x-authowl-turnstile-token",Zt=1e4,en=32,tn=2e4;function N(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 ke(e,t=e.projectBaseURL){return {async request(n,i={}){let o=rn(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(Qt,i.fetchOptions.authChallengeToken),i.body!==void 0&&r.set("content-type","application/json");let d={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 f$1=on(a,i.fetchOptions),h;try{h=await nn(e,o,{...d,signal:i.fetchOptions?.signal},f$1);}catch(w){let me=we(w);return await i.fetchOptions?.onError?.(ee(u,me,un(w))),{data:null,error:me}}let{response:S,requestId:s}=h,c=ln(n,h.data),g=c;if(S.ok)try{g=ne(c),i.decode&&(g=i.decode(g));}catch{let w=we(new f("invalid_response",s));return await i.fetchOptions?.onError?.(ee(u,w,"invalid_response")),{data:null,error:w}}let b=Object.freeze({...u,status:S.status,...s===void 0?{}:{requestId:s}});if(await i.fetchOptions?.onResponse?.(b),!S.ok){let w=an(S,c,s);return await i.fetchOptions?.onError?.(ee(u,w,"api")),{data:null,error:w}}return await i.fetchOptions?.onSuccess?.(b),{data:g,error:null}}}}async function nn(e,t,n,i){let o=Date.now()+Zt;for(let a=0;a<i;a+=1){let r=o-Date.now();if(r<=0)throw new f("timeout");try{let d=await g({fetchImpl:e.fetch??fetch,url:t,init:n,timeoutMs:Math.max(1,Math.ceil(r)),allowHttpLoopback:e.decoded.env==="test"});if(d.response.status<500||a===i-1)return d}catch(d){if(a===i-1||!(d instanceof f)||d.kind!=="network")throw d}await cn(50*2**a,n.signal,o);}throw new f("network")}function on(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 rn(e,t,n){let i=new URL(`${e}${t.startsWith("/")?t:`/${t}`}`);for(let[o,a]of Object.entries(n??{}))a!==void 0&&i.searchParams.set(o,String(a));return i.toString()}function an(e,t,n){let i=F(t)?t:{},o=sn(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 sn(e,t){let n=(typeof e.retryAfterSeconds=="number"&&Number.isFinite(e.retryAfterSeconds)?e.retryAfterSeconds:void 0)??be(t.get("retry-after"))??be(t.get("x-retry-after"));if(n!==void 0)return Math.min(Math.max(Math.trunc(n),1),86400)}function be(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 we(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 ee(e,t,n){return Object.freeze({...e,status:t.status??0,...t.requestId===void 0?{}:{requestId:t.requestId},failure:n})}function un(e){return e instanceof f?e.kind:"network"}function cn(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),d=()=>{clearTimeout(u),o(new f("aborted"));},u=setTimeout(()=>{t?.removeEventListener("abort",d),Date.now()>=n?o(new f("timeout")):i();},r);t?.addEventListener("abort",d,{once:true}),t?.aborted&&d();})}function ne(e,t="",n=0,i={nodes:0}){if(i.nodes+=1,n>en||i.nodes>tn)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=>ne(o,"",n+1,i)):F(e)?Object.fromEntries(Object.entries(e).map(([o,a])=>[o,dn(o)?a:ne(a,o,n+1,i)])):e}function dn(e){return e==="metadata"||e==="public_metadata"||e==="unsafe_metadata"||e==="private_metadata"||e==="publicMetadata"||e==="unsafeMetadata"||e==="privateMetadata"}function ln(e,t){if(e==="/list-sessions"&&Array.isArray(t))return t.map(o=>F(o)?te(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-")?te(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:te(i.session)}),i}function te(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 Se(){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,d=c=>{h(c);};r={data:null,isPending:true,isRefetching:false,error:null,refetch:d};function u(c){r=c;for(let g of n)g();}async function f(c){return e.request("/get-session",{query:c?.query,decode:Re})}async function h(c){a?.abort();let g=new AbortController;a=g,u({...r,isPending:r.data===null&&r.error===null,isRefetching:r.data!==null});let b=await e.request("/get-session",{query:c?.query,fetchOptions:{signal:g.signal},decode:Re});a===g&&(a=null,u({data:b.data,error:b.error,isPending:false,isRefetching:false,refetch:d}));}function S(){if(typeof window>"u"||o)return;let c=()=>{h();},g=()=>{document.visibilityState==="visible"&&h();};window.addEventListener("focus",c),document.addEventListener("visibilitychange",g),typeof BroadcastChannel<"u"&&(i=new BroadcastChannel(`authowl:${t}`),i.addEventListener("message",c)),o=()=>{window.removeEventListener("focus",c),document.removeEventListener("visibilitychange",g),i?.close(),i=null,o=null;};}function s(c){return n.add(c),n.size===1&&(S(),h()),()=>{n.delete(c),n.size===0&&(a?.abort(),a=null,o?.());}}return {store:{subscribe:s,getSnapshot:()=>r},getSession:f,notifyMutation(){i?.postMessage({type:"session-changed"}),n.size>0&&h({query:{disableCookieCache:true}});}}}function Re(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 Pe(e,t){return e.request("/user/metadata",{fetchOptions:t,decode:ve})}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:ve})}function ve(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}=N(e,t);return {getMetadata:o=>Pe(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,pn)),listSessions:o=>e.request("/list-sessions",{fetchOptions:o,decode:gn}),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:fn});if(!a.data)return {data:null,error:a.error};let r=a.data.length>1;return {...a,data:a.data.filter(d=>d.providerId!=="credential").map(d=>({...d,canUnlink:r}))}},linkSocial:(o,a)=>n("/link-social",o,a,mn),unlinkSocial:(o,a)=>i(n("/unlink-account",o,a,q)),delete:(o={},a)=>i(n("/delete-user",o,a,hn))}}function q(e){let t=h(e);return {status:j$1(t.status)}}function pn(e){let t=h(e);return {user:n(t.user)}}function gn(e){return Array.isArray(e)||p(),e.map(t=>{let n=h(t);return {id:i(n.id),userId:i(n.userId),createdAt:k(n.createdAt),updatedAt:k(n.updatedAt),expiresAt:k(n.expiresAt),...Ce("ipAddress",m$1(n,"ipAddress")),...Ce("userAgent",m$1(n,"userAgent"))}})}function fn(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(n.createdAt),updatedAt:k(n.updatedAt)}})}function mn(e){let t=h(e);return {url:i(t.url),redirect:j$1(t.redirect)}}function hn(e){let t=h(e);return {success:j$1(t.success),message:i(t.message)}}function Ce(e,t){return t===void 0?{}:{[e]:t}}var An=new Set(["pending","accepted","rejected","canceled"]),De=1e4;function U(e,t,n){let i=h(e),o={id:m(i.id),name:m(i.name),slug:m(i.slug),createdAt:k(i.createdAt),...K("logo",m$1(i,"logo")),...K("metadata",i.metadata===void 0?void 0:r(i.metadata))};return z(o.id,t),z(o.slug,n),o}function ze(e){return E(e,U)}function ie(e,t,n){return e===null?null:(t===null&&p(),U(e,t,n))}function Ee(e,t,n){if(e===null)return null;let i=h(e),o=U(i,t,n);return {...o,members:E(i.members,a=>Je(a,o.id)),invitations:E(i.invitations,a=>x(a,void 0,o.id))}}function Ne(e,t){let n=E(e,i=>je(i));return j(n.map(i=>i.organizationId),t),n}function Ue(e,t,n){return e===null?null:(t===null&&p(),je(e,t,n))}function Me(e,t){let n=h(e);return (!Number.isSafeInteger(n.total)||n.total<0)&&p(),{members:yn(n.members,t),total:n.total}}function x(e,t,n){let i=h(e),o=m(i.status);An.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(i.expiresAt),createdAt:k(i.createdAt)};return z(a.id,t),z(a.organizationId,n),a}function _e(e,t){let n=E(e,i=>x(i));return j(n.map(i=>i.organizationId),t),n}function Le(e){return E(e,t=>{let n=h(t);return {...x(n),organizationName:m(n.organizationName)}})}function Fe(e,t){let n=h(e);return {...x(n,t),organizationName:m(n.organizationName),organizationSlug:m(n.organizationSlug),inviterEmail:m(n.inviterEmail)}}function qe(e,t){let n=h(e),i=x(n.invitation,t);return {invitation:i,member:M(n.member,void 0,i.organizationId)}}function Ve(e,t){let n=h(e);return n.member!==null&&p(),{invitation:n.invitation===null?null:x(n.invitation,t),member:null}}function He(e,t){return e===null?null:x(e,t)}function Be(e,t,n){let i=h(e);return {member:M(i.member,n,t)}}function M(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(i.createdAt),...i.user===void 0?{}:{user:Ge(i.user)}};return z(o.id,t),z(o.organizationId,n),o}function Ke(e,t){let n=E(e,i=>{let o=h(i);return {organizationId:m(o.organizationId),data:{role:m(o.role),...K("permission",o.permission===void 0?void 0:On(o.permission))}}});return j(n.map(i=>i.organizationId),t),n.map(i=>i.data)}function je(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(i.createdAt),...o===void 0?{}:{updatedAt:k(o)}};return z(a.id,t),z(a.organizationId,n),a}function Je(e,t){let n=h(e);return {...M(n,void 0,t),user:Ge(n.user)}}function yn(e,t){let n=E(e,i=>Je(i));return j(n.map(i=>i.organizationId),t),n}function On(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 Ge(e){let t=h(e);return {id:m(t.id),name:m(t.name),email:m(t.email),...K("image",m$1(t,"image"))}}function E(e,t){return Array.isArray(e)||p(),e.map(n=>t(n))}function K(e,t){return t===void 0?{}:{[e]:t}}function We(e,t,n=()=>null){let{post:i,mutation:o}=N(e,t),a=(r,d,u,f)=>e.request(r,{query:d,fetchOptions:u,decode:f});return {create:(r,d)=>o(i("/organization/create",r,d,U)),list:r=>a("/organization/list",void 0,r,ze),get:(r={},d)=>a("/organization/get-full-organization",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,membersLimit:r.membersLimit},d,u=>Ee(u,r.organizationId,r.organizationSlug)),setActive:(r,d)=>o(i("/organization/set-active",r,d,u=>ie(u,r.organizationId,r.organizationSlug))),listTeams:(r={},d)=>a("/organization/list-teams",{organizationId:r.organizationId},d,u=>Ne(u,r.organizationId)),setActiveTeam:(r,d)=>o(i("/organization/set-active-team",r,d,u=>Ue(u,r.teamId))),update:(r,d)=>o(i("/organization/update",r,d,u=>ie(u,r.organizationId))),delete:(r,d)=>o(i("/organization/delete",r,d,u=>U(u,r.organizationId))),listMembers:(r={},d)=>a("/organization/list-members",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,limit:r.limit,offset:r.offset,sortBy:r.sortBy,sortDirection:r.sortDirection,filterField:r.filterField,filterValue:r.filterValue,filterOperator:r.filterOperator},d,u=>Me(u,r.organizationId)),inviteMember:(r,d)=>o(i("/organization/invite-member",r,d,u=>x(u,void 0,r.organizationId))),listInvitations:(r={},d)=>a("/organization/list-invitations",{organizationId:r.organizationId},d,u=>_e(u,r.organizationId)),listUserInvitations:r=>a("/organization/list-user-invitations",void 0,r,Le),getInvitation:(r,d)=>a("/organization/get-invitation",{id:r.id},d,u=>Fe(u,r.id)),acceptInvitation:(r,d)=>o(i("/organization/accept-invitation",r,d,u=>qe(u,r.invitationId))),rejectInvitation:(r,d)=>o(i("/organization/reject-invitation",r,d,u=>Ve(u,r.invitationId))),cancelInvitation:(r,d)=>o(i("/organization/cancel-invitation",r,d,u=>He(u,r.invitationId))),removeMember:(r,d)=>o(i("/organization/remove-member",r,d,u=>Be(u,r.organizationId,r.memberIdOrEmail.includes("@")?void 0:r.memberIdOrEmail))),updateMemberRole:(r,d)=>o(i("/organization/update-member-role",r,d,u=>M(u,r.memberId,r.organizationId))),leave:(r,d)=>o(i("/organization/leave",r,d,u=>M(u,void 0,r.organizationId))),listRoles:(r={},d)=>a("/organization/list-roles",{organizationId:r.organizationId},d,u=>Ke(u,r.organizationId)),has:r=>u(n(),r),hasPermission:r=>s(n(),r.permission)}}var Xe=4096,bn=4096,wn=100,kn=256,Sn=16,Rn=64,In=12;function re(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:gt(t.twoFactorMethods,Sn,Rn)}}):(t.twoFactorRedirect!==void 0&&p(),{redirect:j$1(t.redirect),...xn(t,"url"),user:n(t.user)})}function $e(e){let t=h(e);return {user:n(t.user)}}function Ye(e){let t=h(e);return {sessionCreated:j$1(t.sessionCreated),user:n(t.user)}}function Qe(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:oe(n$1.url,t)}):(o===a&&p(),o?{redirect:false,user:n(n$1.user)}:{redirect:false,url:oe(n$1.url,t)})}function Ze(e,t){let n=h(e);return (n.redirect!==true||n.user!==void 0)&&p(),{redirect:true,url:oe(n.url,t)}}function et(e){return {status:j$1(h(e).status)}}function tt(e){return {success:j$1(h(e).success)}}function nt(e){return h(e).status!=="pending"&&p(),{status:"pending"}}function it(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:Pn(t.difficulty),challengeToken:i(t.challengeToken),challengeRequired:j$1(t.challengeRequired),turnstile:{required:j$1(n.required),siteKey:i$1}}}function Pn(e){return (!Number.isSafeInteger(e)||Number(e)<0||Number(e)>In)&&p(),Number(e)}function ot(e){let t=h(e);return (t.status!==true||t.sessionCreated!==true)&&p(),{status:true,sessionCreated:true,user:Tn(t.user)}}function ae(e){return {status:j$1(h(e).status)}}function rt(e){return {status:j$1(h(e).status)}}function at(e){let t=h(e);return {status:j$1(t.status),user:n(t.user)}}function st(e){return {success:j$1(h(e).success)}}function ut(e){let t=h(e);return {totpURI:Cn(t.totpURI),backupCodes:pt(t.backupCodes)}}function ct(e){return {status:j$1(h(e).status)}}function J(e){return h(e).status!==true&&p(),{status:true}}function dt(e){return {status:j$1(h(e).status)}}function lt(e){let t=h(e);return t.status!==void 0&&t.status!==true&&p(),{backupCodes:pt(t.backupCodes)}}function Tn(e){let t=h(e);return {id:_(t.id,512),...Dn(t,"name",1024),phoneNumber:_(t.phoneNumber,64),phoneNumberVerified:j$1(t.phoneNumberVerified),...t.createdAt===void 0?{}:{createdAt:k(t.createdAt)},...t.updatedAt===void 0?{}:{updatedAt:k(t.updatedAt)}}}function oe(e,t){let n=_(e,Xe);/[\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:"&&vn(i.hostname)?i.href:p()}function vn(e){let t=e.toLowerCase();return t==="localhost"||t==="127.0.0.1"||t==="[::1]"}function Cn(e){let t=_(e,bn),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 pt(e){return gt(e,wn,kn)}function gt(e,t,n){(!Array.isArray(e)||e.length===0||e.length>t)&&p();let i=e.map(o=>_(o,n));return i.some(o=>o.trim().length===0)&&p(),new Set(i).size!==i.length&&p(),i}function _(e,t){let n=i(e);return (n.length===0||n.length>t)&&p(),n}function xn(e,t){let n=e[t];return n==null?{}:{[t]:_(n,Xe)}}function Dn(e,t,n){let i=m$1(e,t);return i===void 0?{}:(i!==null&&i.length>n&&p(),{[t]:i})}var ft=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||ht(n,i)||mt(i)||ft.has(i))return {valid:false}}let t=zn(e);return se(t)?{valid:true,value:t}:{valid:false}}function se(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||ht(o,a)||mt(a)||ft.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 zn(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 mt(e){return e>=0&&e<=31||e>=127&&e<=159}function ht(e,t){return e.length===1&&t>=55296&&t<=57343}var Ot=12,bt=5e3,En=8,Nn=1e3,Un=16,At=512,wt=100,kt=8192,Mn=32768,ue=1024,yt=256,de=64,_n=6e5,Ln=/^[A-Za-z0-9_-]+$/u,Fn=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u,qn=/[\u0000-\u001f\u007f-\u009f\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/u,Vn=/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$/u,Hn=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu,St=new Set(["discouraged","preferred","required"]),Bn=new Set(["singleDevice","multiDevice"]),Rt=new Set(["ble","cable","hybrid","internal","nfc","smart-card","usb"]),It=new Set(["hybrid","security-key","client-device"]),Kn=new Set(["none","indirect","direct","enterprise"]),jn=new Set(["fido-u2f","packed","android-safetynet","android-key","tpm","apple","none"]),Jn=new Set(["platform","cross-platform"]),Gn=new Set(["discouraged","preferred","required"]),Wn=new Set([-8,-7,-257]);function Pt(e){let t=q$1(e,Ot,bt);return {challenge:Mt(t.challenge),...O("timeout",Nt(t.timeout)),...O("rpId",_t(t.rpId)),...O("allowCredentials",Et(t.allowCredentials)),...O("userVerification",V(t.userVerification,St)),...O("hints",$(t.hints,It)),...O("extensions",Ut(t.extensions))}}function Tt(e){let t=q$1(e,Ot,bt);return {challenge:Mt(t.challenge),rp:Xn(t.rp),user:$n(t.user),pubKeyCredParams:Yn(t.pubKeyCredParams),...O("timeout",Nt(t.timeout)),...O("excludeCredentials",Et(t.excludeCredentials)),...O("authenticatorSelection",Qn(t.authenticatorSelection)),...O("attestation",V(t.attestation,Kn)),...O("attestationFormats",$(t.attestationFormats,jn)),...O("hints",$(t.hints,It)),...O("extensions",Ut(t.extensions))}}function vt(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 le(e){let t=h(e),n=t.counter;(!Number.isSafeInteger(n)||n<0)&&p();let i=pe(t.deviceType,Bn),o=j$1(t.backedUp);return o&&i!=="multiDevice"&&p(),{id:L(t.id,yt),...ti(t),publicKey:Zn(t.publicKey,Mn),userId:L(t.userId,yt),credentialID:Q(t.credentialID,kt),counter:n,deviceType:i,backedUp:o,...ni(t),createdAt:k(t.createdAt),...ii(t)}}function Ct(e,t,n){let i=le(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>wt)&&p();let t=e.map(le);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=le(i.passkey);return (o.id!==t||o.name!==n)&&p(),{passkey:o}}function zt(e){return h(e).status!==true&&p(),{status:true}}function Xn(e){let t=h(e);return {name:ce(t.name,ue),...O("id",_t(t.id))}}function $n(e){let t=h(e);return {id:Q(t.id,128,1,64),name:ce(t.name,ue),displayName:ce(t.displayName,ue)}}function Yn(e){(!Array.isArray(e)||e.length===0||e.length>de)&&p();let t=e.map(n=>{let i=h(n);return (i.type!=="public-key"||!Number.isSafeInteger(i.alg)||!Wn.has(i.alg))&&p(),{type:"public-key",alg:i.alg}});return oi(t.map(n=>n.alg)),t}function Et(e){if(e===void 0)return;(!Array.isArray(e)||e.length>wt)&&p();let t=e.map(n=>{let i=h(n);return i.type!=="public-key"&&p(),{type:"public-key",id:Q(i.id,kt),...O("transports",$(i.transports,Rt))}});return Y(t.map(n=>n.id)),t}function Qn(e){if(e===void 0)return;let t=h(e);t.requireResidentKey!==void 0&&typeof t.requireResidentKey!="boolean"&&p();let n=V(t.residentKey,Gn);return t.requireResidentKey!==void 0&&n!==void 0&&t.requireResidentKey!==(n==="required")&&p(),{...O("authenticatorAttachment",V(t.authenticatorAttachment,Jn)),...O("residentKey",n),...O("requireResidentKey",t.requireResidentKey),...O("userVerification",V(t.userVerification,St))}}function Nt(e){return e!==void 0&&(typeof e!="number"||!Number.isFinite(e)||e<0||e>_n)&&p(),e}function Ut(e){return e===void 0?void 0:q$1(e,En,Nn)}function $(e,t){if(e===void 0)return;(!Array.isArray(e)||e.length>de)&&p();let n=e.map(i=>pe(i,t));return Y(n),n}function V(e,t){if(e!==void 0)return pe(e,t)}function Mt(e){return Q(e,Math.ceil(At*4/3),Un,At)}function Q(e,t,n=1,i=Number.POSITIVE_INFINITY){let o=L(e,t),a=o.length%4,r=ei(o.at(-1)??""),d=Math.floor(o.length*3/4);return (!Ln.test(o)||a===1||a===2&&(r&15)!==0||a===3&&(r&3)!==0||d<n||d>i)&&p(),o}function L(e,t){let n=i(e);return (n.length===0||n.length>t)&&p(),n}function ce(e,t){let n=L(e,t);return qn.test(n)&&p(),n}function _t(e){if(e===void 0)return;let t=L(e,253);return t!=="localhost"&&(t.endsWith(".")||!t.includes(".")||t.split(".").some(n=>!Vn.test(n)))&&p(),t}function Zn(e,t){let n=L(e,t),i=n.endsWith("=="),o=!i&&n.endsWith("="),a=n.at(i?-3:o?-2:-1)??"",r=Lt(a);return (n.length%4!==0||!Fn.test(n)||i&&(r&15)!==0||o&&(r&3)!==0)&&p(),n}function ei(e){return Lt(e,true)}function Lt(e,t=false){return (t?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").indexOf(e)}function ti(e){let t=m$1(e,"name");return t===void 0?{}:(t!==null&&!se(t)&&p(),{name:t})}function ni(e){let t=m$1(e,"transports");if(t==null||t==="")return t===void 0?{}:{transports:t};let n=t.split(",");return (n.length>de||n.some(i=>!Rt.has(i))||new Set(n).size!==n.length)&&p(),{transports:t}}function ii(e){let t=m$1(e,"aaguid");return t==null?t===void 0?{}:{aaguid:null}:(Hn.test(t)||p(),{aaguid:t})}function pe(e,t){let n=i(e);return t.has(n)||p(),n}function O(e,t){return t===void 0?{}:{[e]:t}}function Y(e){new Set(e).size!==e.length&&p();}function oi(e){new Set(e).size!==e.length&&p();}function ri(e,t){if(!t)return e;let n=t.catch(()=>{});return n.then(()=>{n=null;}),{async request(i,o){return n&&await n,e.request(i,o)}}}var Ft=new Map;function ai(e,t){let n=Ft.get(t);return n||(n=import('./session-handoff-6B5KZXQV.js').then(i=>i.completeCrossSiteSignIn(e)),Ft.set(t,n)),n}function qt(e){return !a()||e.idToken||e.disableRedirect?"legacy":"first-party"}function si(e,t=()=>{},n=di){let i=ke(e),o=a()?ai(i,e.decoded.projectId):void 0,a$1=ri(i,o),r=Ie(a$1,e.decoded.projectId),d=n(a$1,r.notifyMutation),u=()=>{r.notifyMutation(),t();},{post:f,mutation:h}=N(a$1,u),S=e.decoded.env==="test";return {sessionStore:r.store,getSession:r.getSession,account:xe(a$1,u),organization:We(a$1,u,()=>r.store.getSnapshot().data?.session.membership??null),signIn:{email:(s,c)=>h(f("/sign-in/email",s,c,re),g=>!("twoFactorRedirect"in g)),username:(s,c)=>h(f("/sign-in/username",s,c,re),g=>!("twoFactorRedirect"in g)),social:async(s,c)=>{if(qt(s)==="first-party"){let{beginCrossSiteSignIn:b}=await import('./session-handoff-6B5KZXQV.js'),w=await b(e,{kind:"social",provider:s.provider,callbackURL:s.callbackURL,errorCallbackURL:s.errorCallbackURL,newUserCallbackURL:s.newUserCallbackURL,scopes:s.scopes,loginHint:s.loginHint,requestSignUp:s.requestSignUp});if(w)return window.location.assign(w),{data:{redirect:true,url:w},error:null}}let g=await h(f("/sign-in/social",s,c,b=>Qe(b,S)),b=>"user"in b);return g.error!==null||g.data===null||"url"in g.data&&g.data.redirect&&!s.disableRedirect&&typeof window<"u"&&window.location.assign(g.data.url),g},sso:async(s,c)=>{if(qt(s)==="first-party"){let{beginCrossSiteSignIn:b}=await import('./session-handoff-6B5KZXQV.js'),w=await b(e,{kind:"sso",email:s.email,providerId:s.providerId,domain:s.domain,organizationSlug:s.organizationSlug,callbackURL:s.callbackURL,errorCallbackURL:s.errorCallbackURL,newUserCallbackURL:s.newUserCallbackURL});if(w)return window.location.assign(w),{data:{url:w,redirect:true},error:null}}let g=await f("/sign-in/sso",s,c,b=>Ze(b,S));return g.error!==null||g.data===null||typeof window<"u"&&window.location.assign(g.data.url),g},magicLink:(s,c)=>f("/sign-in/magic-link",s,c,et),emailOtp:(s,c)=>h(f("/sign-in/email-otp",s,c,$e)),passkey:(s,c)=>d.signIn(s,c)},signUp:{email:(s,c)=>h(f("/sign-up/email",s,c,Ye),g=>g.sessionCreated)},emailOtp:{sendVerificationOtp:(s,c)=>f("/email-otp/send-verification-otp",s,c,tt),verifyEmail:(s,c)=>h(f("/email-otp/verify-email",s,c,at))},phoneOtp:{prepare:s=>f("/phone-otp/challenge",{},s,it),start:(s,c)=>f("/phone-otp/start",{...s,idempotencyKey:s.idempotencyKey??Se()},c,nt),verify:(s,c)=>h(f("/phone-otp/verify",s,c,ot))},requestPasswordReset:(s,c)=>f("/request-password-reset",s,c,ae),resetPassword:(s,c)=>f("/reset-password",s,c,ae),sendVerificationEmail:(s,c)=>f("/send-verification-email",s,c,rt),passkey:{addPasskey:(s,c)=>d.add(s,c),listUserPasskeys:()=>a$1.request("/passkey/list-user-passkeys",{decode:xt}),updatePasskey:async(s,c)=>{let g=W(s.name);if(!g.valid||g.value===void 0)return X();let b=g.value;return f("/passkey/update-passkey",{...s,name:b},c,w=>Dt(w,s.id,b))},deletePasskey:(s,c)=>f("/passkey/delete-passkey",s,c,zt)},twoFactor:{enable:(s,c)=>f("/two-factor/enable",s,c,ut),disable:(s,c)=>h(f("/two-factor/disable",s,c,ct),g=>g.status),verifyTotp:(s,c)=>h(f("/two-factor/verify-totp",s,c,J)),verifyBackupCode:(s,c)=>h(f("/two-factor/verify-backup-code",s,c,J)),sendOtp:(s={},c)=>f("/two-factor/send-otp",s,c,dt),verifyOtp:(s,c)=>h(f("/two-factor/verify-otp",s,c,J)),generateBackupCodes:(s,c)=>f("/two-factor/generate-backup-codes",s,c,lt)},signOut:s=>h(a$1.request("/sign-out",{method:"POST",body:{},fetchOptions:s,decode:st}),c=>c.success)}}function Qi(e,t=()=>{},n){let i=si(e,t,n);return n?{...i,signIn:{email:i.signIn.email,username:i.signIn.username,social:Vt(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:Vt(i),magicLink:i.signIn.magicLink,emailOtp:i.signIn.emailOtp},passkey:{listUserPasskeys:i.passkey.listUserPasskeys,updatePasskey:i.passkey.updatePasskey,deletePasskey:i.passkey.deletePasskey}}}function Vt(e){return async(t,n)=>{if(!t?.idToken||typeof t.idToken.token!="string"||t.idToken.token==="")return ui();let i=await e.signIn.social({...t,disableRedirect:true},n);return i.data!==null&&"url"in i.data?ci():i}}function ui(){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 ci(){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 di(){return {signIn:()=>Ht(),add:()=>Ht()}}function Ht(){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 no(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 jt(r.error);let d;try{d=Pt(r.data);}catch{return Bt()}let u;try{u=await n.authenticate({optionsJSON:d,useBrowserAutofill:o.autoFill});}catch(c){return Jt(n,c,"AUTH_CANCELLED","Passkey authentication was cancelled.")}if(!li(u))return Kt();let{clientExtensionResults:f,...h}=u,S=i.get(u.id);if(S)return S;let s=(async()=>{let c=await e.request("/passkey/verify-authentication",{method:"POST",body:{response:h},fetchOptions:a,decode:vt});return c.data&&t(),c})();i.set(u.id,s);try{return await s}finally{i.get(u.id)===s&&i.delete(u.id);}},async add(o={},a){let r=W(o.name);if(!r.valid)return X();let d=await e.request("/passkey/generate-register-options",{query:{name:r.value,authenticatorAttachment:o.authenticatorAttachment}});if(!d.data)return jt(d.error);let u;try{u=Tt(d.data);}catch{return Bt()}let f;try{f=await n.register({optionsJSON:u});}catch(c){return Jt(n,c,"REGISTRATION_CANCELLED","Passkey registration was cancelled.")}if(!pi(f))return Kt();let{clientExtensionResults:h,...S}=f,s=await e.request("/passkey/verify-registration",{method:"POST",body:{response:S,name:r.value},fetchOptions:a,decode:c=>Ct(c,f.id,r.value)});return s.data&&t(),s}}}function Bt(){return {data:null,error:{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned invalid WebAuthn options."}}}function Kt(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_WEBAUTHN_RESPONSE",message:"The platform returned an invalid passkey response."}}}function Gt(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 li(e){if(!Gt(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 pi(e){if(!Gt(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.attestationObject=="string"}function jt(e){return {data:null,error:e??{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned no WebAuthn options."}}}function Jt(e,t,n,i){let o=fi(t,"page does not have focus"),a=e.errorCode?.(t),r=a!==void 0?a==="ERROR_CEREMONY_ABORTED":gi(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 gi(e){return e&&typeof e=="object"&&"name"in e&&typeof e.name=="string"?e.name:void 0}function fi(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 ge=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 Wt(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 Xt(e,t){if(!e.response.ok)throw new ge(t,e.response,e.requestId);return e.data}async function uo(e){let n=`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/public-config`;return Xt(await Wt(e,n,{init:{method:"GET",credentials:"omit"},maxResponseBytes:256*1024,decode:i=>mi(i,e)}),"public-config")}function mi(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"||!hi(n.applicationId)||i!==t.decoded.projectId||o!=="development"&&o!=="production"||n.authBaseUrl!==a)throw v();let r=R(n.branding),d=R(n.legal);if(!fe(n.enabledMethods,64)||!fe(n.socialProviders,64)||!Yt(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"||!Yt(d,["termsUrl","privacyUrl"])||!Number.isSafeInteger(d.version)||d.version<0||typeof d.required!="boolean")throw v();if(n.socialProviderClientIds!==void 0){let u=R(n.socialProviderClientIds);if(Object.keys(u).length>64||Object.values(u).some(f=>typeof f!="string"||f.length>2048))throw v()}if(!D(n,["requireEmailVerification","twoFactor","mfaRequired","accountDeletion","organizations","sso","badge"])||!$t(n.turnstileSiteKey)||!$t(n.authTurnstileSiteKey)||typeof n.locale!="string"||n.locale.length===0||n.locale.length>64||!Number.isSafeInteger(n.configVersion)||n.configVersion<0)throw v();if(n.jwtIssuer!==null){let u=R(n.jwtIssuer);if(u.issuer!==a||u.jwksUrl!==`${a}/jwks`||u.aud!==t.decoded.projectId)throw v()}if(n.signUp!==void 0){let u=R(n.signUp).mode;if(typeof u!="string"||!["open","restricted","allowlist","waitlist"].includes(u))throw v()}if(n.authentication!==void 0&&Ai(n.authentication),n.emailVerification!==void 0){let u=R(n.emailVerification);if(!D(u,["required"])||u.method!=="link"&&u.method!=="code")throw v()}if(n.userModel!==void 0&&!D(R(n.userModel),["requireEmail","firstLastName","emailChange","accountDeletion"]))throw v();if(n.mfa!==void 0){let u=R(n.mfa);if(!D(u,["totp","required","backupCodes"])||(u.required===true||u.backupCodes===true)&&u.totp!==true)throw v()}return n}function hi(e){return /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e)}function v(){return new TypeError("public-config returned an invalid response")}function R(e){if(!e||typeof e!="object"||Array.isArray(e))throw v();return e}function $t(e){return e===null||typeof e=="string"&&e.length<=4096}function Ai(e){let t=R(e),n=R(t.email),i=R(t.password),o=i.minLength!==void 0||i.maxLength!==void 0;if(!D(n,["signUp"])||!fe(n.signIn,3)||n.signIn.some(a=>a!=="password"&&a!=="magic_link"&&a!=="email_otp")||!D(R(t.phone),["signUp","signIn"])||!D(i,["signUp","add"])||o&&(!Number.isSafeInteger(i.minLength)||!Number.isSafeInteger(i.maxLength)||i.minLength<1||i.maxLength>4096||i.minLength>i.maxLength)||!D(R(t.passkey),["signIn","add"])||!D(R(t.username),["collectOnSignUp","signIn"]))throw v()}function D(e,t){return t.every(n=>typeof e[n]=="boolean")}function Yt(e,t){return t.every(n=>e[n]===void 0||typeof e[n]=="string"&&e[n].length<=4096)}function fe(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{yi as a,Qt as b,ke as c,Se as d,si as e,Qi as f,no as g,ge as h,Wt as i,Xt as j,uo as k};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(){return typeof window<"u"&&typeof document<"u"&&typeof crypto<"u"&&typeof crypto.subtle?.digest=="function"}export{e as a};
|
package/dist/index.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
'use strict';var Bn=/^(pk_(live|test))_([0-9a-f-]{36})_([A-Za-z0-9]{20,})$/i,jn=/^sk_/i;function Re(e){if(typeof e!="string"||e.length===0)throw new Error("publishableKey is required");if(jn.test(e))throw new Error("A secret key was passed where a publishable key was expected. Never embed secret keys in client code.");let t=Bn.exec(e);if(!t)throw new Error("publishableKey is malformed; expected pk_(live|test)_<uuid>_<base62>");return {prefix:t[1],env:t[2],projectId:t[3]}}function Jn(e,t){let n=`p_${e.replace(/-/g,"")}`;return `${t?.secure?"__Secure-":""}${n}.session_token`}var Xe=/^http:\/\/(?:(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*localhost|127\.0\.0\.1|\[::1\])(?::\d+)?(?:\/|$)/i;function Se(e,t){throw new Error(`${e}: ${t}`)}function Qe(e,t){let n;try{n=new URL(String(e));}catch{throw new TypeError("Transport URL must be absolute.")}if(n.username||n.password||n.hash)throw new TypeError("Transport URL must not contain credentials or a fragment.");let i=n.toString();if(n.protocol!=="https:"&&!(n.protocol==="http:"&&t.allowHttpLoopback&&Xe.test(i)))throw new TypeError("Transport URL must use HTTPS except on approved loopback.");return n}function Ze(e,t){(typeof e!="string"||!/^https?:\/\/[^/?#@\\\s]+\/?$/i.test(e))&&Se("apiUrl","origin required");let n;try{n=new URL(e);}catch{Se("apiUrl","origin required");}return n.protocol==="http:"&&(!t.allowHttpLoopback||!Xe.test(e))&&Se("apiUrl","HTTPS required except exact loopback"),n.origin}function Gn(e){if(!e||typeof e!="object")throw new Error("AuthConfig is required");let t=Re(e.publishableKey),n=Ze(e.apiUrl,{allowHttpLoopback:t.env==="test"}),i=`${n}/api/projects/${t.projectId}/auth`;return {...e,apiUrl:n,decoded:t,projectBaseURL:i}}function Wn(e){let t=e?.enabledMethods??["password"],n=t.includes("password"),i=t.includes("passkey"),o=e?.authentication,a=e?.mfa;return {emailSignUp:o?.email.signUp??t.some(r=>r==="password"||r==="magic_link"||r==="email_otp"),passwordSignUp:o?.password.signUp??n,phoneSignUp:o?.phone.signUp??t.includes("phone_otp"),passwordSignIn:o?.email.signIn.includes("password")??n,passwordMinLength:o?.password.minLength??8,passwordMaxLength:o?.password.maxLength??128,magicLinkSignIn:o?.email.signIn.includes("magic_link")??t.includes("magic_link"),emailOtpSignIn:o?.email.signIn.includes("email_otp")??t.includes("email_otp"),phoneSignIn:o?.phone.signIn??t.includes("phone_otp"),usernameSignIn:o?.username.signIn??false,collectUsername:o?.username.collectOnSignUp??false,passkeySignIn:o?.passkey.signIn??i,passkeyAdd:o?.passkey.add??i,firstLastName:e?.userModel?.firstLastName??false,emailChange:e===null?false:e.userModel?.emailChange??true,accountDeletion:e?.userModel?.accountDeletion??e?.accountDeletion??false,emailVerificationRequired:e?.emailVerification?.required??e?.requireEmailVerification??false,emailVerificationMethod:e?.emailVerification?.method??"link",totp:a?.totp??e?.twoFactor??false,mfaRequired:a?.required??e?.mfaRequired??false,backupCodes:a?.backupCodes??e?.twoFactor??false,legacyNameField:e?.authentication===void 0}}var $n=1e4,Yn=1024*1024,T=class extends Error{kind;requestId;constructor(t,n){super(oi(t)),this.name="TransportError",this.kind=t,this.requestId=n;}},nt=new WeakSet;function I(e,t){let n=new T(e,t);return nt.add(n),n}async function ne({fetchImpl:e,url:t,init:n={},timeoutMs:i=$n,maxResponseBytes:o=Yn,allowHttpLoopback:a=false,decode:r}){tt(i,"timeoutMs"),tt(o,"maxResponseBytes");let c=Qe(t,{allowHttpLoopback:a}),s=n.signal,h=new AbortController,u=null,d,f=new Promise(y=>{d=y;}),g=y=>{u===null&&(u=y,d({type:"abort",kind:y}),h.abort());},m=()=>g("aborted");s?.addEventListener("abort",m,{once:true});let U=setTimeout(()=>g("timeout"),i);s?.aborted&&m();try{if(u!==null)throw I(u);let y;try{y=await Promise.race([e(c.toString(),{...n,redirect:"error",signal:h.signal}).then(ke=>({type:"response",response:ke})),f]);}catch{throw I(u??"network")}if(y.type==="abort")throw I(y.kind);if(!Xn(y.response))throw I("invalid_response");let v=y.response,_=ii(v.headers),V=await Qn(v,o,f,()=>u,_),X=ti(v,V,_),q;try{q=v.ok&&r?r(X,Object.freeze({status:v.status})):X;}catch{throw I("invalid_response",_)}return {response:v,data:q,..._===void 0?{}:{requestId:_}}}catch(y){throw y instanceof T&&nt.has(y)?y:I(u??"network")}finally{clearTimeout(U),s?.removeEventListener("abort",m);}}function Xn(e){if(!e||typeof e!="object")return false;let t=e;return Number.isInteger(t.status)&&t.status>=0&&t.status<=599&&typeof t.statusText=="string"&&typeof t.ok=="boolean"&&typeof t.headers?.get=="function"&&(t.body===null||typeof t.body=="object"&&typeof t.body?.getReader=="function"&&typeof t.body.cancel=="function")}async function Qn(e,t,n,i,o){let a=e.headers.get("content-length");if(a!==null){if(!/^\d+$/.test(a))throw et(e.body),I("invalid_response",o);if(Number(a)>t)throw et(e.body),I("response_too_large",o)}if(!e.body)return "";let r;try{r=e.body.getReader();}catch{throw I("network",o)}let c=[],s=0,h=null;try{for(;;){let f;try{f=await Promise.race([r.read(),n]);}catch{h=I(i()??"network",o);break}if(Zn(f)){h=I(f.kind,o);break}let{done:g,value:m}=f;if(g)break;if(m.byteLength!==0){if(s+=m.byteLength,s>t){h=I("response_too_large",o);break}c.push(m);}}}finally{h&&ei(r);try{r.releaseLock();}catch{}}if(h)throw h;let u=new Uint8Array(s),d=0;for(let f of c)u.set(f,d),d+=f.byteLength;try{return new TextDecoder("utf-8",{fatal:!0}).decode(u)}catch{throw I("invalid_response",o)}}function Zn(e){return "type"in e&&e.type==="abort"}function et(e){if(e)try{e.cancel().catch(()=>{});}catch{}}function ei(e){try{e.cancel().catch(()=>{});}catch{}}function ti(e,t,n){if(e.status===204||e.status===205)return null;let i=ni(e.headers.get("content-type"));if(!e.ok&&(!i||t.length===0))return null;if(!i||t.length===0)throw I("invalid_response",n);try{return JSON.parse(t)}catch{if(!e.ok)return null;throw I("invalid_response",n)}}function ni(e){if(e===null)return false;let t=e.split(";",1)[0]?.trim().toLowerCase();return t==="application/json"||t?.endsWith("+json")===true}function ii(e){let t=e.get("x-request-id")?.trim();if(!(!t||t.length>256||!/^[A-Za-z0-9._:-]+$/.test(t)))return t}function tt(e,t){if(!Number.isInteger(e)||e<=0)throw new TypeError(`${t} must be a positive integer.`)}function oi(e){switch(e){case "aborted":return "The request was cancelled.";case "timeout":return "The request timed out.";case "response_too_large":return "The response exceeded the allowed size.";case "invalid_response":return "The service returned an invalid response.";case "network":return "The network request could not be completed."}}var rt="x-authowl-turnstile-token",ri=1e4,ai=32,si=2e4;function J(e,t){return {post:(n,i,o,a)=>e.request(n,{method:"POST",body:i,fetchOptions:o,decode:a}),mutation:async(n,i)=>{let o=await n;return o.error===null&&(i===void 0||o.data!==null&&i(o.data))&&t(),o}}}function ie(e,t=e.projectBaseURL){return {async request(n,i={}){let o=li(t,n,i.query),a=i.method??(i.body===void 0?"GET":"POST"),r=new Headers(i.fetchOptions?.headers);r.set("x-publishable-key",e.publishableKey),i.fetchOptions?.authChallengeToken&&r.set(rt,i.fetchOptions.authChallengeToken),i.body!==void 0&&r.set("content-type","application/json");let c={method:a,headers:r,credentials:i.credentials??"include",...i.body===void 0?{}:{body:JSON.stringify(i.body)}},s=Object.freeze({method:a,path:n});await i.fetchOptions?.onRequest?.(s);let h=ui(a,i.fetchOptions),u;try{u=await ci(e,o,{...c,signal:i.fetchOptions?.signal},h);}catch(y){let v=ot(y);return await i.fetchOptions?.onError?.(Te(s,v,fi(y))),{data:null,error:v}}let{response:d,requestId:f}=u,g=hi(n,u.data),m=g;if(d.ok)try{m=Pe(g),i.decode&&(m=i.decode(m));}catch{let y=ot(new T("invalid_response",f));return await i.fetchOptions?.onError?.(Te(s,y,"invalid_response")),{data:null,error:y}}let U=Object.freeze({...s,status:d.status,...f===void 0?{}:{requestId:f}});if(await i.fetchOptions?.onResponse?.(U),!d.ok){let y=di(d,g,f);return await i.fetchOptions?.onError?.(Te(s,y,"api")),{data:null,error:y}}return await i.fetchOptions?.onSuccess?.(U),{data:m,error:null}}}}async function ci(e,t,n,i){let o=Date.now()+ri;for(let a=0;a<i;a+=1){let r=o-Date.now();if(r<=0)throw new T("timeout");try{let c=await ne({fetchImpl:e.fetch??fetch,url:t,init:n,timeoutMs:Math.max(1,Math.ceil(r)),allowHttpLoopback:e.decoded.env==="test"});if(c.response.status<500||a===i-1)return c}catch(c){if(a===i-1||!(c instanceof T)||c.kind!=="network")throw c}await gi(50*2**a,n.signal,o);}throw new T("network")}function ui(e,t){if(e!=="GET"||t?.authChallengeToken)return 1;let n=t?.retry;return typeof n!="number"||!Number.isFinite(n)?1:Math.min(Math.max(Math.trunc(n),0),3)+1}function li(e,t,n){let i=new URL(`${e}${t.startsWith("/")?t:`/${t}`}`);for(let[o,a]of Object.entries(n??{}))a!==void 0&&i.searchParams.set(o,String(a));return i.toString()}function di(e,t,n){let i=Q(t)?t:{},o=pi(i,e.headers);return {status:e.status,statusText:e.statusText,code:typeof i.code=="string"?i.code:void 0,...n===void 0?{}:{requestId:n},...typeof i.current_version=="number"?{currentVersion:i.current_version}:{},...o!==void 0?{retryAfterSeconds:o}:{},message:typeof i.message=="string"?i.message:typeof i.error=="string"?i.error:typeof i.detail=="string"?i.detail:e.statusText||"Request failed"}}function pi(e,t){let n=(typeof e.retryAfterSeconds=="number"&&Number.isFinite(e.retryAfterSeconds)?e.retryAfterSeconds:void 0)??it(t.get("retry-after"))??it(t.get("x-retry-after"));if(n!==void 0)return Math.min(Math.max(Math.trunc(n),1),86400)}function it(e){if(!e)return;let t=e.trim();if(!/^\d+$/.test(t))return;let n=Number(t);return Number.isFinite(n)?n:void 0}function ot(e){let t=e instanceof T?e.kind:"network";return {status:0,...{aborted:{statusText:"ABORTED",code:"REQUEST_ABORTED",message:"The request was cancelled."},timeout:{statusText:"TIMEOUT",code:"REQUEST_TIMEOUT",message:"The request timed out."},response_too_large:{statusText:"INVALID_RESPONSE",code:"RESPONSE_TOO_LARGE",message:"The service response was too large."},invalid_response:{statusText:"INVALID_RESPONSE",code:"INVALID_RESPONSE",message:"The service returned an invalid response."},network:{statusText:"FETCH_ERROR",code:"FETCH_ERROR",message:"Network request failed."}}[t],...e instanceof T&&e.requestId?{requestId:e.requestId}:{}}}function Te(e,t,n){return Object.freeze({...e,status:t.status??0,...t.requestId===void 0?{}:{requestId:t.requestId},failure:n})}function fi(e){return e instanceof T?e.kind:"network"}function gi(e,t,n){return new Promise((i,o)=>{if(t?.aborted){o(new T("aborted"));return}let a=n-Date.now();if(a<=0){o(new T("timeout"));return}let r=Math.min(e,a),c=()=>{clearTimeout(s),o(new T("aborted"));},s=setTimeout(()=>{t?.removeEventListener("abort",c),Date.now()>=n?o(new T("timeout")):i();},r);t?.addEventListener("abort",c,{once:true}),t?.aborted&&c();})}function Pe(e,t="",n=0,i={nodes:0}){if(i.nodes+=1,n>ai||i.nodes>si)throw new Error("response traversal limit exceeded");if(typeof e=="string"&&/^(?:createdAt|updatedAt|expiresAt)$/.test(t)){let o=new Date(e);return Number.isNaN(o.getTime())?e:o}return Array.isArray(e)?e.map(o=>Pe(o,"",n+1,i)):Q(e)?Object.fromEntries(Object.entries(e).map(([o,a])=>[o,mi(o)?a:Pe(a,o,n+1,i)])):e}function mi(e){return e==="metadata"||e==="public_metadata"||e==="unsafe_metadata"||e==="private_metadata"||e==="publicMetadata"||e==="unsafeMetadata"||e==="privateMetadata"}function hi(e,t){if(e==="/list-sessions"&&Array.isArray(t))return t.map(o=>Q(o)?Ie(o):o);if(!Q(t))return t;let i=e==="/change-password"||e==="/passkey/verify-authentication"||e==="/phone-otp/verify"||e==="/sign-up/email"||e.startsWith("/sign-in/")||e.startsWith("/two-factor/verify-")?Ie(t):t;return e==="/sign-up/email"&&!("sessionCreated"in i)&&(i={...i,sessionCreated:typeof t.token=="string"&&t.token.length>0}),(e==="/get-session"||e==="/passkey/verify-authentication")&&Q(i.session)&&(i={...i,session:Ie(i.session)}),i}function Ie(e){if(!Object.hasOwn(e,"token"))return e;let t={...e};return delete t.token,t}function Q(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}var yi=new Set(["__proto__","constructor","prototype"]);function p(e){(!e||typeof e!="object"||Array.isArray(e))&&l();let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null&&l(),e}function A(e){return typeof e!="string"&&l(),e}function b(e){return typeof e!="boolean"&&l(),e}function R(e){return (!(e instanceof Date)||Number.isNaN(e.getTime()))&&l(),e}function oe(e){return (!Array.isArray(e)||!e.every(t=>typeof t=="string"))&&l(),[...e]}function k(e,t){let n=e[t];return n==null||typeof n=="string"?n:l()}function at(e,t){let n=e[t];return n==null||typeof n=="boolean"?n:l()}function x(e){let t=p(e),n=t.email;return n!==null&&typeof n!="string"&&l(),{id:A(t.id),email:n,emailVerified:b(t.emailVerified),createdAt:R(t.createdAt),updatedAt:R(t.updatedAt),...E("phoneNumber",k(t,"phoneNumber")),...E("username",k(t,"username")),...E("displayUsername",k(t,"displayUsername")),...E("firstName",k(t,"firstName")),...E("lastName",k(t,"lastName")),...E("name",k(t,"name")),...E("image",k(t,"image")),...E("twoFactorEnabled",at(t,"twoFactorEnabled"))}}function re(e){let t=p(e),n=t.membership;return {id:A(t.id),userId:A(t.userId),expiresAt:R(t.expiresAt),...E("activeOrganizationId",k(t,"activeOrganizationId")),...E("activeTeamId",k(t,"activeTeamId")),...E("membership",n==null?n:Ai(n)),...E("pendingMfaEnrollment",at(t,"pendingMfaEnrollment"))}}function l(){throw new TypeError("AuthOwl response does not match its runtime contract.")}function z(e,t=20,n=1e4){return (!e||typeof e!="object"||Array.isArray(e))&&l(),xe(e,t,n)}function xe(e,t=20,n=1e4){return Ee(e,0,{nodes:0},t,n)}function Ai(e){let t=p(e);return {role:A(t.role),permissions:oe(t.permissions),...t.teams===void 0?{}:{teams:oe(t.teams)}}}function Ee(e,t,n,i,o){if(n.nodes+=1,(t>i||n.nodes>o)&&l(),e===null||typeof e=="string"||typeof e=="boolean")return e;if(typeof e=="number")return Number.isFinite(e)||l(),e;if(Array.isArray(e))return e.map(c=>Ee(c,t+1,n,i,o));(!e||typeof e!="object")&&l();let a=Object.getPrototypeOf(e);a!==Object.prototype&&a!==null&&l();let r={};for(let[c,s]of Object.entries(e))yi.has(c)&&l(),r[c]=Ee(s,t+1,n,i,o);return r}function E(e,t){return t===void 0?{}:{[e]:t}}function ct(e,t){let n=new Set,i=null,o=null,a=null,r,c=g=>{u(g);};r={data:null,isPending:true,isRefetching:false,error:null,refetch:c};function s(g){r=g;for(let m of n)m();}async function h(g){return e.request("/get-session",{query:g?.query,decode:st})}async function u(g){a?.abort();let m=new AbortController;a=m,s({...r,isPending:r.data===null&&r.error===null,isRefetching:r.data!==null});let U=await e.request("/get-session",{query:g?.query,fetchOptions:{signal:m.signal},decode:st});a===m&&(a=null,s({data:U.data,error:U.error,isPending:false,isRefetching:false,refetch:c}));}function d(){if(typeof window>"u"||o)return;let g=()=>{u();},m=()=>{document.visibilityState==="visible"&&u();};window.addEventListener("focus",g),document.addEventListener("visibilitychange",m),typeof BroadcastChannel<"u"&&(i=new BroadcastChannel(`authowl:${t}`),i.addEventListener("message",g)),o=()=>{window.removeEventListener("focus",g),document.removeEventListener("visibilitychange",m),i?.close(),i=null,o=null;};}function f(g){return n.add(g),n.size===1&&(d(),u()),()=>{n.delete(g),n.size===0&&(a?.abort(),a=null,o?.());}}return {store:{subscribe:f,getSnapshot:()=>r},getSession:h,notifyMutation(){i?.postMessage({type:"session-changed"}),n.size>0&&u({query:{disableCookieCache:true}});}}}function st(e){if(e===null)return null;let t=p(e);return (t.session===void 0||t.user===void 0)&&l(),{session:re(t.session),user:x(t.user)}}function Ce(){let e=globalThis.crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=Array.from(e,n=>n.toString(16).padStart(2,"0")).join("");return `${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}async function ut(e,t){return e.request("/user/metadata",{fetchOptions:t,decode:dt})}async function lt(e,t,n){return e.request("/user/metadata",{method:"PATCH",body:{expected_version:t.expectedVersion,unsafe_metadata:t.unsafeMetadata},fetchOptions:n,decode:dt})}function dt(e){let t=p(e),n=z(t.public_metadata),i=z(t.unsafe_metadata);if(!Number.isSafeInteger(t.metadata_version)||t.metadata_version<0)throw new TypeError("Invalid AuthOwl metadata response");return {publicMetadata:n,unsafeMetadata:i,metadataVersion:t.metadata_version}}function ft(e,t){let{post:n,mutation:i}=J(e,t);return {getMetadata:o=>ut(e,o),updateUnsafeMetadata:(o,a)=>lt(e,o,a),updateProfile:(o,a)=>i(n("/update-user",o,a,Z)),changeEmail:(o,a)=>i(n("/change-email",o,a,Z)),changePassword:(o,a)=>i(n("/change-password",o,a,Oi)),listSessions:o=>e.request("/list-sessions",{fetchOptions:o,decode:bi}),revokeSession:({sessionId:o},a)=>i(n("/revoke-session",{sessionId:o},a,Z)),revokeOtherSessions:o=>i(n("/revoke-other-sessions",{},o,Z)),listSocialAccounts:async o=>{let a=await e.request("/list-accounts",{fetchOptions:o,decode:wi});if(!a.data)return {data:null,error:a.error};let r=a.data.length>1;return {...a,data:a.data.filter(c=>c.providerId!=="credential").map(c=>({...c,canUnlink:r}))}},linkSocial:(o,a)=>n("/link-social",o,a,ki),unlinkSocial:(o,a)=>i(n("/unlink-account",o,a,Z)),delete:(o={},a)=>i(n("/delete-user",o,a,Ri))}}function Z(e){let t=p(e);return {status:b(t.status)}}function Oi(e){let t=p(e);return {user:x(t.user)}}function bi(e){return Array.isArray(e)||l(),e.map(t=>{let n=p(t);return {id:A(n.id),userId:A(n.userId),createdAt:R(n.createdAt),updatedAt:R(n.updatedAt),expiresAt:R(n.expiresAt),...pt("ipAddress",k(n,"ipAddress")),...pt("userAgent",k(n,"userAgent"))}})}function wi(e){return Array.isArray(e)||l(),e.map(t=>{let n=p(t);return {id:A(n.id),userId:A(n.userId),providerId:A(n.providerId),accountId:A(n.accountId),scopes:oe(n.scopes),createdAt:R(n.createdAt),updatedAt:R(n.updatedAt)}})}function ki(e){let t=p(e);return {url:A(t.url),redirect:b(t.redirect)}}function Ri(e){let t=p(e);return {success:b(t.success),message:A(t.message)}}function pt(e,t){return t===void 0?{}:{[e]:t}}function ae(e,t){return !e||!t?false:e.permissions.includes(t)}function gt(e,t){return !e||!t?false:e.teams?.includes(t)??false}function se(e,t){if(!e)return false;let{role:n,permission:i,teamId:o}=t;return !(n===void 0&&i===void 0&&o===void 0||n!==void 0&&e.role!==n||i!==void 0&&!e.permissions.includes(i)||o!==void 0&&!gt(e,o))}function Si(e){return {has:t=>se(e,t),hasPermission:t=>ae(e,t.permission)}}var Ti=new Set(["pending","accepted","rejected","canceled"]),mt=1e4;function G(e,t,n){let i=p(e),o={id:O(i.id),name:O(i.name),slug:O(i.slug),createdAt:R(i.createdAt),...ce("logo",k(i,"logo")),...ce("metadata",i.metadata===void 0?void 0:xe(i.metadata))};return M(o.id,t),M(o.slug,n),o}function ht(e){return F(e,G)}function De(e,t,n){return e===null?null:(t===null&&l(),G(e,t,n))}function yt(e,t,n){if(e===null)return null;let i=p(e),o=G(i,t,n);return {...o,members:F(i.members,a=>Ct(a,o.id)),invitations:F(i.invitations,a=>N(a,void 0,o.id))}}function At(e,t){let n=F(e,i=>xt(i));return ue(n.map(i=>i.organizationId),t),n}function Ot(e,t,n){return e===null?null:(t===null&&l(),xt(e,t,n))}function bt(e,t){let n=p(e);return (!Number.isSafeInteger(n.total)||n.total<0)&&l(),{members:Ii(n.members,t),total:n.total}}function N(e,t,n){let i=p(e),o=O(i.status);Ti.has(o)||l();let a={id:O(i.id),organizationId:O(i.organizationId),email:O(i.email),role:O(i.role),status:o,inviterId:O(i.inviterId),expiresAt:R(i.expiresAt),createdAt:R(i.createdAt)};return M(a.id,t),M(a.organizationId,n),a}function wt(e,t){let n=F(e,i=>N(i));return ue(n.map(i=>i.organizationId),t),n}function kt(e){return F(e,t=>{let n=p(t);return {...N(n),organizationName:O(n.organizationName)}})}function Rt(e,t){let n=p(e);return {...N(n,t),organizationName:O(n.organizationName),organizationSlug:O(n.organizationSlug),inviterEmail:O(n.inviterEmail)}}function St(e,t){let n=p(e),i=N(n.invitation,t);return {invitation:i,member:W(n.member,void 0,i.organizationId)}}function Tt(e,t){let n=p(e);return n.member!==null&&l(),{invitation:n.invitation===null?null:N(n.invitation,t),member:null}}function It(e,t){return e===null?null:N(e,t)}function Pt(e,t,n){let i=p(e);return {member:W(i.member,n,t)}}function W(e,t,n){let i=p(e),o={id:O(i.id),organizationId:O(i.organizationId),userId:O(i.userId),role:O(i.role),createdAt:R(i.createdAt),...i.user===void 0?{}:{user:Dt(i.user)}};return M(o.id,t),M(o.organizationId,n),o}function Et(e,t){let n=F(e,i=>{let o=p(i);return {organizationId:O(o.organizationId),data:{role:O(o.role),...ce("permission",o.permission===void 0?void 0:Pi(o.permission))}}});return ue(n.map(i=>i.organizationId),t),n.map(i=>i.data)}function xt(e,t,n){let i=p(e),o=i.updatedAt,a={id:O(i.id),name:O(i.name),organizationId:O(i.organizationId),createdAt:R(i.createdAt),...o===void 0?{}:{updatedAt:R(o)}};return M(a.id,t),M(a.organizationId,n),a}function Ct(e,t){let n=p(e);return {...W(n,void 0,t),user:Dt(n.user)}}function Ii(e,t){let n=F(e,i=>Ct(i));return ue(n.map(i=>i.organizationId),t),n}function Pi(e){let t=p(e),n={};for(let[i,o]of Object.entries(t))(i==="__proto__"||i==="constructor"||i==="prototype"||i.length===0||i.length>mt||!Array.isArray(o))&&l(),n[i]=o.map(a=>O(a));return n}function O(e){let t=A(e);return (t.length===0||t.length>mt)&&l(),t}function M(e,t){t!==void 0&&e!==t&&l();}function ue(e,t){let n=t??e[0];n!==void 0&&e.some(i=>i!==n)&&l();}function Dt(e){let t=p(e);return {id:O(t.id),name:O(t.name),email:O(t.email),...ce("image",k(t,"image"))}}function F(e,t){return Array.isArray(e)||l(),e.map(n=>t(n))}function ce(e,t){return t===void 0?{}:{[e]:t}}function vt(e,t,n=()=>null){let{post:i,mutation:o}=J(e,t),a=(r,c,s,h)=>e.request(r,{query:c,fetchOptions:s,decode:h});return {create:(r,c)=>o(i("/organization/create",r,c,G)),list:r=>a("/organization/list",void 0,r,ht),get:(r={},c)=>a("/organization/get-full-organization",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,membersLimit:r.membersLimit},c,s=>yt(s,r.organizationId,r.organizationSlug)),setActive:(r,c)=>o(i("/organization/set-active",r,c,s=>De(s,r.organizationId,r.organizationSlug))),listTeams:(r={},c)=>a("/organization/list-teams",{organizationId:r.organizationId},c,s=>At(s,r.organizationId)),setActiveTeam:(r,c)=>o(i("/organization/set-active-team",r,c,s=>Ot(s,r.teamId))),update:(r,c)=>o(i("/organization/update",r,c,s=>De(s,r.organizationId))),delete:(r,c)=>o(i("/organization/delete",r,c,s=>G(s,r.organizationId))),listMembers:(r={},c)=>a("/organization/list-members",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,limit:r.limit,offset:r.offset,sortBy:r.sortBy,sortDirection:r.sortDirection,filterField:r.filterField,filterValue:r.filterValue,filterOperator:r.filterOperator},c,s=>bt(s,r.organizationId)),inviteMember:(r,c)=>o(i("/organization/invite-member",r,c,s=>N(s,void 0,r.organizationId))),listInvitations:(r={},c)=>a("/organization/list-invitations",{organizationId:r.organizationId},c,s=>wt(s,r.organizationId)),listUserInvitations:r=>a("/organization/list-user-invitations",void 0,r,kt),getInvitation:(r,c)=>a("/organization/get-invitation",{id:r.id},c,s=>Rt(s,r.id)),acceptInvitation:(r,c)=>o(i("/organization/accept-invitation",r,c,s=>St(s,r.invitationId))),rejectInvitation:(r,c)=>o(i("/organization/reject-invitation",r,c,s=>Tt(s,r.invitationId))),cancelInvitation:(r,c)=>o(i("/organization/cancel-invitation",r,c,s=>It(s,r.invitationId))),removeMember:(r,c)=>o(i("/organization/remove-member",r,c,s=>Pt(s,r.organizationId,r.memberIdOrEmail.includes("@")?void 0:r.memberIdOrEmail))),updateMemberRole:(r,c)=>o(i("/organization/update-member-role",r,c,s=>W(s,r.memberId,r.organizationId))),leave:(r,c)=>o(i("/organization/leave",r,c,s=>W(s,void 0,r.organizationId))),listRoles:(r={},c)=>a("/organization/list-roles",{organizationId:r.organizationId},c,s=>Et(s,r.organizationId)),has:r=>se(n(),r),hasPermission:r=>ae(n(),r.permission)}}var Ut=4096,Ei=4096,xi=100,Ci=256,Di=16,vi=64,Ui=12;function Ue(e){let t=p(e);return t.twoFactorRedirect===true?((t.user!==void 0||t.redirect!==void 0||t.url!==void 0)&&l(),{twoFactorRedirect:true,...t.twoFactorMethods===void 0?{}:{twoFactorMethods:Xt(t.twoFactorMethods,Di,vi)}}):(t.twoFactorRedirect!==void 0&&l(),{redirect:b(t.redirect),...Mi(t,"url"),user:x(t.user)})}function _t(e){let t=p(e);return {user:x(t.user)}}function zt(e){let t=p(e);return {sessionCreated:b(t.sessionCreated),user:x(t.user)}}function Nt(e,t){let n=p(e),i=b(n.redirect);n.user===null&&l();let o=n.user!==void 0&&n.user!==null,a=n.url!==void 0&&n.url!==null;return i?((o||!a)&&l(),{redirect:true,url:ve(n.url,t)}):(o===a&&l(),o?{redirect:false,user:x(n.user)}:{redirect:false,url:ve(n.url,t)})}function Lt(e,t){let n=p(e);return (n.redirect!==true||n.user!==void 0)&&l(),{redirect:true,url:ve(n.url,t)}}function Mt(e){return {status:b(p(e).status)}}function Ft(e){return {success:b(p(e).success)}}function Vt(e){return p(e).status!=="pending"&&l(),{status:"pending"}}function qt(e){let t=p(e);if(t.kind==="authowl_turnstile")return {kind:"authowl_turnstile"};t.kind!=="akedly_shield_v1_2"&&l();let n=p(t.turnstile),i=n.siteKey===null?null:A(n.siteKey);return {kind:"akedly_shield_v1_2",connectionId:A(t.connectionId),challenge:A(t.challenge),difficulty:_i(t.difficulty),challengeToken:A(t.challengeToken),challengeRequired:b(t.challengeRequired),turnstile:{required:b(n.required),siteKey:i}}}function _i(e){return (!Number.isSafeInteger(e)||Number(e)<0||Number(e)>Ui)&&l(),Number(e)}function Kt(e){let t=p(e);return (t.status!==true||t.sessionCreated!==true)&&l(),{status:true,sessionCreated:true,user:zi(t.user)}}function _e(e){return {status:b(p(e).status)}}function Ht(e){return {status:b(p(e).status)}}function Bt(e){let t=p(e);return {status:b(t.status),user:x(t.user)}}function jt(e){return {success:b(p(e).success)}}function Jt(e){let t=p(e);return {totpURI:Li(t.totpURI),backupCodes:Yt(t.backupCodes)}}function Gt(e){return {status:b(p(e).status)}}function le(e){return p(e).status!==true&&l(),{status:true}}function Wt(e){return {status:b(p(e).status)}}function $t(e){let t=p(e);return t.status!==void 0&&t.status!==true&&l(),{backupCodes:Yt(t.backupCodes)}}function zi(e){let t=p(e);return {id:$(t.id,512),...Fi(t,"name",1024),phoneNumber:$(t.phoneNumber,64),phoneNumberVerified:b(t.phoneNumberVerified),...t.createdAt===void 0?{}:{createdAt:R(t.createdAt)},...t.updatedAt===void 0?{}:{updatedAt:R(t.updatedAt)}}}function ve(e,t){let n=$(e,Ut);/[\u0000-\u0020\u007f]/u.test(n)&&l();let i;try{i=new URL(n);}catch{return l()}return (i.username||i.password)&&l(),i.protocol==="https:"||t&&i.protocol==="http:"&&Ni(i.hostname)?i.href:l()}function Ni(e){let t=e.toLowerCase();return t==="localhost"||t==="127.0.0.1"||t==="[::1]"}function Li(e){let t=$(e,Ei),n;try{n=new URL(t);}catch{return l()}let i=n.searchParams.get("secret");return (n.protocol!=="otpauth:"||n.hostname.toLowerCase()!=="totp"||n.username||n.password||n.hash||i===null||i.length===0||i.length>512||/\s/u.test(i))&&l(),t}function Yt(e){return Xt(e,xi,Ci)}function Xt(e,t,n){(!Array.isArray(e)||e.length===0||e.length>t)&&l();let i=e.map(o=>$(o,n));return i.some(o=>o.trim().length===0)&&l(),new Set(i).size!==i.length&&l(),i}function $(e,t){let n=A(e);return (n.length===0||n.length>t)&&l(),n}function Mi(e,t){let n=e[t];return n==null?{}:{[t]:$(n,Ut)}}function Fi(e,t,n){let i=k(e,t);return i===void 0?{}:(i!==null&&i.length>n&&l(),{[t]:i})}var Qt=new Set([1564,8206,8207,8234,8235,8236,8237,8238,8294,8295,8296,8297]),de=new Set([9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288,65279]);function pe(e){if(e===void 0)return {valid:true,value:void 0};for(let n of e){let i=n.codePointAt(0);if(i===void 0||en(n,i)||Zt(i)||Qt.has(i))return {valid:false}}let t=Vi(e);return ze(t)?{valid:true,value:t}:{valid:false}}function ze(e){let t=0,n,i;for(let o of e){if(t+=1,t>256)return false;let a=o.codePointAt(0);if(a===void 0||en(o,a)||Zt(a)||Qt.has(a))return false;n??=a,i=a;}return t>0&&n!==void 0&&i!==void 0&&!de.has(n)&&!de.has(i)}function fe(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_PASSKEY_NAME",message:"Passkey names must contain 1 to 256 safe Unicode characters."}}}function Vi(e){let t=0,n=e.length;for(;t<n;){let i=e.codePointAt(t);if(i===void 0||!de.has(i))break;t+=i>65535?2:1;}for(;n>t;){let i=e.codePointAt(n-1);if(i===void 0)break;let a=i>=56320&&i<=57343?n-2:n-1,r=e.codePointAt(a);if(r===void 0||!de.has(r))break;n=a;}return e.slice(t,n)}function Zt(e){return e>=0&&e<=31||e>=127&&e<=159}function en(e,t){return e.length===1&&t>=55296&&t<=57343}var on=12,rn=5e3,qi=8,Ki=1e3,Hi=16,tn=512,an=100,sn=8192,Bi=32768,Ne=1024,nn=256,Me=64,ji=6e5,Ji=/^[A-Za-z0-9_-]+$/u,Gi=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u,Wi=/[\u0000-\u001f\u007f-\u009f\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/u,$i=/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$/u,Yi=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu,cn=new Set(["discouraged","preferred","required"]),Xi=new Set(["singleDevice","multiDevice"]),un=new Set(["ble","cable","hybrid","internal","nfc","smart-card","usb"]),ln=new Set(["hybrid","security-key","client-device"]),Qi=new Set(["none","indirect","direct","enterprise"]),Zi=new Set(["fido-u2f","packed","android-safetynet","android-key","tpm","apple","none"]),eo=new Set(["platform","cross-platform"]),to=new Set(["discouraged","preferred","required"]),no=new Set([-8,-7,-257]);function dn(e){let t=z(e,on,rn);return {challenge:wn(t.challenge),...S("timeout",On(t.timeout)),...S("rpId",kn(t.rpId)),...S("allowCredentials",An(t.allowCredentials)),...S("userVerification",ee(t.userVerification,cn)),...S("hints",ge(t.hints,ln)),...S("extensions",bn(t.extensions))}}function pn(e){let t=z(e,on,rn);return {challenge:wn(t.challenge),rp:io(t.rp),user:oo(t.user),pubKeyCredParams:ro(t.pubKeyCredParams),...S("timeout",On(t.timeout)),...S("excludeCredentials",An(t.excludeCredentials)),...S("authenticatorSelection",ao(t.authenticatorSelection)),...S("attestation",ee(t.attestation,Qi)),...S("attestationFormats",ge(t.attestationFormats,Zi)),...S("hints",ge(t.hints,ln)),...S("extensions",bn(t.extensions))}}function fn(e){let t=p(e),n=re(t.session),i=x(t.user);return n.userId!==i.id&&l(),{session:n,user:i}}function Fe(e){let t=p(e),n=t.counter;(!Number.isSafeInteger(n)||n<0)&&l();let i=Ve(t.deviceType,Xi),o=b(t.backedUp);return o&&i!=="multiDevice"&&l(),{id:Y(t.id,nn),...uo(t),publicKey:so(t.publicKey,Bi),userId:Y(t.userId,nn),credentialID:he(t.credentialID,sn),counter:n,deviceType:i,backedUp:o,...lo(t),createdAt:R(t.createdAt),...po(t)}}function gn(e,t,n){let i=Fe(e);return (i.credentialID!==t||(n===void 0?i.name!==void 0&&i.name!==null:i.name!==n))&&l(),i}function mn(e){(!Array.isArray(e)||e.length>an)&&l();let t=e.map(Fe);return me(t.map(n=>n.id)),me(t.map(n=>n.credentialID)),t.length>1&&t.some(n=>n.userId!==t[0]?.userId)&&l(),t}function hn(e,t,n){let i=p(e),o=Fe(i.passkey);return (o.id!==t||o.name!==n)&&l(),{passkey:o}}function yn(e){return p(e).status!==true&&l(),{status:true}}function io(e){let t=p(e);return {name:Le(t.name,Ne),...S("id",kn(t.id))}}function oo(e){let t=p(e);return {id:he(t.id,128,1,64),name:Le(t.name,Ne),displayName:Le(t.displayName,Ne)}}function ro(e){(!Array.isArray(e)||e.length===0||e.length>Me)&&l();let t=e.map(n=>{let i=p(n);return (i.type!=="public-key"||!Number.isSafeInteger(i.alg)||!no.has(i.alg))&&l(),{type:"public-key",alg:i.alg}});return fo(t.map(n=>n.alg)),t}function An(e){if(e===void 0)return;(!Array.isArray(e)||e.length>an)&&l();let t=e.map(n=>{let i=p(n);return i.type!=="public-key"&&l(),{type:"public-key",id:he(i.id,sn),...S("transports",ge(i.transports,un))}});return me(t.map(n=>n.id)),t}function ao(e){if(e===void 0)return;let t=p(e);t.requireResidentKey!==void 0&&typeof t.requireResidentKey!="boolean"&&l();let n=ee(t.residentKey,to);return t.requireResidentKey!==void 0&&n!==void 0&&t.requireResidentKey!==(n==="required")&&l(),{...S("authenticatorAttachment",ee(t.authenticatorAttachment,eo)),...S("residentKey",n),...S("requireResidentKey",t.requireResidentKey),...S("userVerification",ee(t.userVerification,cn))}}function On(e){return e!==void 0&&(typeof e!="number"||!Number.isFinite(e)||e<0||e>ji)&&l(),e}function bn(e){return e===void 0?void 0:z(e,qi,Ki)}function ge(e,t){if(e===void 0)return;(!Array.isArray(e)||e.length>Me)&&l();let n=e.map(i=>Ve(i,t));return me(n),n}function ee(e,t){if(e!==void 0)return Ve(e,t)}function wn(e){return he(e,Math.ceil(tn*4/3),Hi,tn)}function he(e,t,n=1,i=Number.POSITIVE_INFINITY){let o=Y(e,t),a=o.length%4,r=co(o.at(-1)??""),c=Math.floor(o.length*3/4);return (!Ji.test(o)||a===1||a===2&&(r&15)!==0||a===3&&(r&3)!==0||c<n||c>i)&&l(),o}function Y(e,t){let n=A(e);return (n.length===0||n.length>t)&&l(),n}function Le(e,t){let n=Y(e,t);return Wi.test(n)&&l(),n}function kn(e){if(e===void 0)return;let t=Y(e,253);return t!=="localhost"&&(t.endsWith(".")||!t.includes(".")||t.split(".").some(n=>!$i.test(n)))&&l(),t}function so(e,t){let n=Y(e,t),i=n.endsWith("=="),o=!i&&n.endsWith("="),a=n.at(i?-3:o?-2:-1)??"",r=Rn(a);return (n.length%4!==0||!Gi.test(n)||i&&(r&15)!==0||o&&(r&3)!==0)&&l(),n}function co(e){return Rn(e,true)}function Rn(e,t=false){return (t?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").indexOf(e)}function uo(e){let t=k(e,"name");return t===void 0?{}:(t!==null&&!ze(t)&&l(),{name:t})}function lo(e){let t=k(e,"transports");if(t==null||t==="")return t===void 0?{}:{transports:t};let n=t.split(",");return (n.length>Me||n.some(i=>!un.has(i))||new Set(n).size!==n.length)&&l(),{transports:t}}function po(e){let t=k(e,"aaguid");return t==null?t===void 0?{}:{aaguid:null}:(Yi.test(t)||l(),{aaguid:t})}function Ve(e,t){let n=A(e);return t.has(n)||l(),n}function S(e,t){return t===void 0?{}:{[e]:t}}function me(e){new Set(e).size!==e.length&&l();}function fo(e){new Set(e).size!==e.length&&l();}function Tn(e,t=()=>{},n=go){let i=ie(e),o=ct(i,e.decoded.projectId),a=n(i,o.notifyMutation),r=()=>{o.notifyMutation(),t();},{post:c,mutation:s}=J(i,r),h=e.decoded.env==="test";return {sessionStore:o.store,getSession:o.getSession,account:ft(i,r),organization:vt(i,r,()=>o.store.getSnapshot().data?.session.membership??null),signIn:{email:(u,d)=>s(c("/sign-in/email",u,d,Ue),f=>!("twoFactorRedirect"in f)),username:(u,d)=>s(c("/sign-in/username",u,d,Ue),f=>!("twoFactorRedirect"in f)),social:async(u,d)=>{let f=await s(c("/sign-in/social",u,d,g=>Nt(g,h)),g=>"user"in g);return f.error!==null||f.data===null||"url"in f.data&&f.data.redirect&&!u.disableRedirect&&typeof window<"u"&&window.location.assign(f.data.url),f},sso:async(u,d)=>{let f=await c("/sign-in/sso",u,d,g=>Lt(g,h));return f.error!==null||f.data===null||typeof window<"u"&&window.location.assign(f.data.url),f},magicLink:(u,d)=>c("/sign-in/magic-link",u,d,Mt),emailOtp:(u,d)=>s(c("/sign-in/email-otp",u,d,_t)),passkey:(u,d)=>a.signIn(u,d)},signUp:{email:(u,d)=>s(c("/sign-up/email",u,d,zt),f=>f.sessionCreated)},emailOtp:{sendVerificationOtp:(u,d)=>c("/email-otp/send-verification-otp",u,d,Ft),verifyEmail:(u,d)=>s(c("/email-otp/verify-email",u,d,Bt))},phoneOtp:{prepare:u=>c("/phone-otp/challenge",{},u,qt),start:(u,d)=>c("/phone-otp/start",{...u,idempotencyKey:u.idempotencyKey??Ce()},d,Vt),verify:(u,d)=>s(c("/phone-otp/verify",u,d,Kt))},requestPasswordReset:(u,d)=>c("/request-password-reset",u,d,_e),resetPassword:(u,d)=>c("/reset-password",u,d,_e),sendVerificationEmail:(u,d)=>c("/send-verification-email",u,d,Ht),passkey:{addPasskey:(u,d)=>a.add(u,d),listUserPasskeys:()=>i.request("/passkey/list-user-passkeys",{decode:mn}),updatePasskey:async(u,d)=>{let f=pe(u.name);if(!f.valid||f.value===void 0)return fe();let g=f.value;return c("/passkey/update-passkey",{...u,name:g},d,m=>hn(m,u.id,g))},deletePasskey:(u,d)=>c("/passkey/delete-passkey",u,d,yn)},twoFactor:{enable:(u,d)=>c("/two-factor/enable",u,d,Jt),disable:(u,d)=>s(c("/two-factor/disable",u,d,Gt),f=>f.status),verifyTotp:(u,d)=>s(c("/two-factor/verify-totp",u,d,le)),verifyBackupCode:(u,d)=>s(c("/two-factor/verify-backup-code",u,d,le)),sendOtp:(u={},d)=>c("/two-factor/send-otp",u,d,Wt),verifyOtp:(u,d)=>s(c("/two-factor/verify-otp",u,d,le)),generateBackupCodes:(u,d)=>c("/two-factor/generate-backup-codes",u,d,$t)},signOut:u=>s(i.request("/sign-out",{method:"POST",body:{},fetchOptions:u,decode:jt}),d=>d.success)}}function go(){return {signIn:()=>Sn(),add:()=>Sn()}}function Sn(){return Promise.resolve({data:null,error:{status:400,statusText:"BAD_REQUEST",code:"PASSKEY_BROWSER_REQUIRED",message:"This passkey ceremony requires a browser with WebAuthn."}})}function Cn(e,t,n){let i=new Map;return {async signIn(o={},a){let r=await e.request("/passkey/generate-authenticate-options");if(!r.data)return En(r.error);let c;try{c=dn(r.data);}catch{return In()}let s;try{s=await n.authenticate({optionsJSON:c,useBrowserAutofill:o.autoFill});}catch(g){return xn(n,g,"AUTH_CANCELLED","Passkey authentication was cancelled.")}if(!mo(s))return Pn();let{clientExtensionResults:h,...u}=s,d=i.get(s.id);if(d)return d;let f=(async()=>{let g=await e.request("/passkey/verify-authentication",{method:"POST",body:{response:u},fetchOptions:a,decode:fn});return g.data&&t(),g})();i.set(s.id,f);try{return await f}finally{i.get(s.id)===f&&i.delete(s.id);}},async add(o={},a){let r=pe(o.name);if(!r.valid)return fe();let c=await e.request("/passkey/generate-register-options",{query:{name:r.value,authenticatorAttachment:o.authenticatorAttachment}});if(!c.data)return En(c.error);let s;try{s=pn(c.data);}catch{return In()}let h;try{h=await n.register({optionsJSON:s});}catch(g){return xn(n,g,"REGISTRATION_CANCELLED","Passkey registration was cancelled.")}if(!ho(h))return Pn();let{clientExtensionResults:u,...d}=h,f=await e.request("/passkey/verify-registration",{method:"POST",body:{response:d,name:r.value},fetchOptions:a,decode:g=>gn(g,h.id,r.value)});return f.data&&t(),f}}}function In(){return {data:null,error:{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned invalid WebAuthn options."}}}function Pn(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_WEBAUTHN_RESPONSE",message:"The platform returned an invalid passkey response."}}}function Dn(e){if(!e||typeof e!="object")return false;let t=e;return typeof t.id=="string"&&t.id.length>0&&typeof t.rawId=="string"&&t.rawId.length>0&&t.type==="public-key"&&!!t.response&&typeof t.response=="object"}function mo(e){if(!Dn(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.authenticatorData=="string"&&typeof t.signature=="string"&&(t.userHandle===void 0||typeof t.userHandle=="string")}function ho(e){if(!Dn(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.attestationObject=="string"}function En(e){return {data:null,error:e??{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned no WebAuthn options."}}}function xn(e,t,n,i){let o=Ao(t,"page does not have focus"),a=e.errorCode?.(t),r=a!==void 0?a==="ERROR_CEREMONY_ABORTED":yo(t)==="AbortError";return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:o?"PASSKEY_PAGE_NOT_FOCUSED":r?n:a??"PASSKEY_BROWSER_ERROR",message:o?"Keep this page focused while completing the passkey prompt.":r?i:n==="AUTH_CANCELLED"?"Passkey authentication could not be completed by this browser.":"Passkey registration could not be completed by this browser."}}}function yo(e){return e&&typeof e=="object"&&"name"in e&&typeof e.name=="string"?e.name:void 0}function Ao(e,t){let n=t.toLowerCase(),i=new Set,o=e;for(;o&&typeof o=="object"&&!i.has(o);){if(i.add(o),"message"in o&&typeof o.message=="string"&&o.message.toLowerCase().includes(n))return true;o="cause"in o?o.cause:void 0;}return false}function C(e){let t=new Uint8Array(e),n="";for(let o of t)n+=String.fromCharCode(o);return btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function K(e){let t=e.replace(/-/g,"+").replace(/_/g,"/"),n=(4-t.length%4)%4,i=t.padEnd(t.length+n,"="),o=atob(i),a=new ArrayBuffer(o.length),r=new Uint8Array(a);for(let c=0;c<o.length;c++)r[c]=o.charCodeAt(c);return a}function H(){return Oo.stubThis(globalThis?.PublicKeyCredential!==void 0&&typeof globalThis.PublicKeyCredential=="function")}var Oo={stubThis:e=>e};function ye(e){let{id:t}=e;return {...e,id:K(t),transports:e.transports}}function Ae(e){return e==="localhost"||/^((xn--[a-z0-9-]+|[a-z0-9]+(-[a-z0-9]+)*)\.)+([a-z]{2,}|xn--[a-z0-9-]+)$/i.test(e)}var w=class extends Error{constructor({message:t,code:n,cause:i,name:o}){super(t,{cause:i}),Object.defineProperty(this,"code",{enumerable:true,configurable:true,writable:true,value:void 0}),this.name=o??i.name,this.code=n;}};function vn({error:e,options:t}){let{publicKey:n}=t;if(!n)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(t.signal instanceof AbortSignal)return new w({message:"Registration ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else if(e.name==="ConstraintError"){if(n.authenticatorSelection?.requireResidentKey===true)return new w({message:"Discoverable credentials were required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT",cause:e});if(t.mediation==="conditional"&&n.authenticatorSelection?.userVerification==="required")return new w({message:"User verification was required during automatic registration but it could not be performed",code:"ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE",cause:e});if(n.authenticatorSelection?.userVerification==="required")return new w({message:"User verification was required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT",cause:e})}else {if(e.name==="InvalidStateError")return new w({message:"The authenticator was previously registered",code:"ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED",cause:e});if(e.name==="NotAllowedError")return new w({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="NotSupportedError")return n.pubKeyCredParams.filter(o=>o.type==="public-key").length===0?new w({message:'No entry in pubKeyCredParams was of type "public-key"',code:"ERROR_MALFORMED_PUBKEYCREDPARAMS",cause:e}):new w({message:"No available authenticator supported any of the specified pubKeyCredParams algorithms",code:"ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG",cause:e});if(e.name==="SecurityError"){let i=globalThis.location.hostname;if(Ae(i)){if(n.rp.id!==i)return new w({message:`The RP ID "${n.rp.id}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new w({message:`${globalThis.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="TypeError"){if(n.user.id.byteLength<1||n.user.id.byteLength>64)return new w({message:"User ID was not between 1 and 64 characters",code:"ERROR_INVALID_USER_ID_LENGTH",cause:e})}else if(e.name==="UnknownError")return new w({message:"The authenticator was unable to process the specified options, or could not create a new credential",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return e}var qe=class{constructor(){Object.defineProperty(this,"controller",{enumerable:true,configurable:true,writable:true,value:void 0});}createNewAbortSignal(){if(this.controller){let n=new Error("Cancelling existing WebAuthn API call for new one");n.name="AbortError",this.controller.abort(n);}let t=new AbortController;return this.controller=t,t.signal}cancelCeremony(){if(this.controller){let t=new Error("Manually cancelling existing WebAuthn API call");t.name="AbortError",this.controller.abort(t),this.controller=void 0;}}},Oe=new qe;var bo=["cross-platform","platform"];function be(e){if(e&&!(bo.indexOf(e)<0))return e}async function Un(e){!e.optionsJSON&&e.challenge&&(console.warn("startRegistration() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information."),e={optionsJSON:e});let{optionsJSON:t,useAutoRegister:n=false}=e;if(!H())throw new Error("WebAuthn is not supported in this browser");let i={...t,challenge:K(t.challenge),user:{...t.user,id:K(t.user.id)},excludeCredentials:t.excludeCredentials?.map(ye)},o={};n&&(o.mediation="conditional"),o.publicKey=i,o.signal=Oe.createNewAbortSignal();let a;try{a=await navigator.credentials.create(o);}catch(m){throw vn({error:m,options:o})}if(!a)throw new Error("Registration was not completed");let{id:r,rawId:c,response:s,type:h}=a,u;typeof s.getTransports=="function"&&(u=s.getTransports());let d;if(typeof s.getPublicKeyAlgorithm=="function")try{d=s.getPublicKeyAlgorithm();}catch(m){Ke("getPublicKeyAlgorithm()",m);}let f;if(typeof s.getPublicKey=="function")try{let m=s.getPublicKey();m!==null&&(f=C(m));}catch(m){Ke("getPublicKey()",m);}let g;if(typeof s.getAuthenticatorData=="function")try{g=C(s.getAuthenticatorData());}catch(m){Ke("getAuthenticatorData()",m);}return {id:r,rawId:C(c),response:{attestationObject:C(s.attestationObject),clientDataJSON:C(s.clientDataJSON),transports:u,publicKeyAlgorithm:d,publicKey:f,authenticatorData:g},type:h,clientExtensionResults:a.getClientExtensionResults(),authenticatorAttachment:be(a.authenticatorAttachment)}}function Ke(e,t){console.warn(`The browser extension that intercepted this WebAuthn API call incorrectly implemented ${e}. You should report this error to them.
|
|
2
|
-
`,t);}function _n(){if(!H())return He.stubThis(new Promise(t=>t(false)));let e=globalThis.PublicKeyCredential;return e?.isConditionalMediationAvailable===void 0?He.stubThis(new Promise(t=>t(false))):He.stubThis(e.isConditionalMediationAvailable())}var He={stubThis:e=>e};function zn({error:e,options:t}){let{publicKey:n}=t;if(!n)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(t.signal instanceof AbortSignal)return new w({message:"Authentication ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else {if(e.name==="NotAllowedError")return new w({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="SecurityError"){let i=globalThis.location.hostname;if(Ae(i)){if(n.rpId!==i)return new w({message:`The RP ID "${n.rpId}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new w({message:`${globalThis.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="UnknownError")return new w({message:"The authenticator was unable to process the specified options, or could not create a new assertion signature",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return e}async function Nn(e){!e.optionsJSON&&e.challenge&&(console.warn("startAuthentication() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information."),e={optionsJSON:e});let{optionsJSON:t,useBrowserAutofill:n=false,verifyBrowserAutofillInput:i=true}=e;if(!H())throw new Error("WebAuthn is not supported in this browser");let o;t.allowCredentials?.length!==0&&(o=t.allowCredentials?.map(ye));let a={...t,challenge:K(t.challenge),allowCredentials:o},r={};if(n){if(!await _n())throw Error("Browser does not support WebAuthn autofill");if(document.querySelectorAll("input[autocomplete$='webauthn']").length<1&&i)throw Error('No <input> with "webauthn" as the only or last value in its `autocomplete` attribute was detected');r.mediation="conditional",a.allowCredentials=[];}r.publicKey=a,r.signal=Oe.createNewAbortSignal();let c;try{c=await navigator.credentials.get(r);}catch(g){throw zn({error:g,options:r})}if(!c)throw new Error("Authentication was not completed");let{id:s,rawId:h,response:u,type:d}=c,f;return u.userHandle&&(f=C(u.userHandle)),{id:s,rawId:C(h),response:{authenticatorData:C(u.authenticatorData),clientDataJSON:C(u.clientDataJSON),signature:C(u.signature),userHandle:f},type:d,clientExtensionResults:c.getClientExtensionResults(),authenticatorAttachment:be(c.authenticatorAttachment)}}var Ln={authenticate:e=>Nn(e),register:e=>Un(e),errorCode:e=>e instanceof w?e.code:void 0};var we=class extends Error{status;requestId;constructor(t,n,i){super(`${t} request failed with status ${n.status}.`),this.name="AuthOwlHttpError",this.status=n.status,this.requestId=i;}};function B(e,t,n={}){let i=new Headers(n.init?.headers);return i.set("x-publishable-key",e.publishableKey),ne({fetchImpl:e.fetch??fetch,url:t,init:{...n.init,headers:i},allowHttpLoopback:e.decoded.env==="test",...n.timeoutMs===void 0?{}:{timeoutMs:n.timeoutMs},...n.maxResponseBytes===void 0?{}:{maxResponseBytes:n.maxResponseBytes},...n.decode===void 0?{}:{decode:n.decode}})}function j(e,t){if(!e.response.ok)throw new we(t,e.response,e.requestId);return e.data}function Fn(e){return `${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/consent`}async function Be(e){let t=await B(e,Fn(e),{init:{method:"GET",credentials:"include"},maxResponseBytes:65536,decode:wo});return t.response.status===401?{required:false}:j(t,"consent status")}async function je(e,t){if(!Number.isSafeInteger(t)||t<1)throw new TypeError("Consent version must be a positive integer.");return j(await B(e,Fn(e),{init:{method:"POST",headers:{"content-type":"application/json"},credentials:"include",body:JSON.stringify({version:t})},maxResponseBytes:64*1024,decode:ko}),"consent accept")}function wo(e){let t=p(e),n=b(t.required),i=Ro(t.needsConsent),o=Vn(t.version),a=Mn(t.termsUrl),r=Mn(t.privacyUrl);return {required:n,...i===void 0?{}:{needsConsent:i},...o===void 0?{}:{version:o},...a===void 0?{}:{termsUrl:a},...r===void 0?{}:{privacyUrl:r}}}function ko(e){let t=p(e),n=Vn(t.version);return {ok:b(t.ok),...n===void 0?{}:{version:n}}}function Ro(e){if(e===void 0||typeof e=="boolean")return e;throw new TypeError("Invalid consent response.")}function Vn(e){if(e===void 0||Number.isSafeInteger(e)&&e>=1)return e;throw new TypeError("Invalid consent response.")}function Mn(e){if(e===void 0||typeof e=="string"&&e.length<=4096)return e;throw new TypeError("Invalid consent response.")}var So=30;function To(e){return typeof e?.exp=="number"?e.exp:null}function Io(e){let t=e.split(".")[1];if(!t)return null;try{let n=t.replace(/-/g,"+").replace(/_/g,"/"),i=JSON.parse(atob(n));return typeof i=="object"&&i!==null?i:null}catch{return null}}function Je(e){let t=new Map;async function n(a={}){let r=a.template===void 0?null:a.template.trim().toLowerCase();if(r==="")throw new TypeError("Template missing");let c=r??"",s=t.get(c);s||(s={activeKey:null,cachedByKey:new Map,inflight:null,sequence:0},t.set(c,s));let h=a.forceRefresh===true;if(!h){let m=s.activeKey?s.cachedByKey.get(s.activeKey):null;if(m&&m.exp-Date.now()/1e3>So)return m.token;if(s.inflight)return s.inflight}let u=++s.sequence,d=()=>t.get(c)===s&&s.sequence===u,f=(async()=>{let m=r?`${e.projectBaseURL}/token/${encodeURIComponent(r)}`:`${e.projectBaseURL}/token`,U=await B(e,m,{init:{method:"GET",credentials:"include"},maxResponseBytes:64*1024,decode:q=>Po(q,r!==null)});if(U.response.status===401)return d()&&i(),null;let y=j(U,"token"),v=y.policyVersion,_=y.token,V=Io(_),X=To(V);if(d())if(X!==null){let q=typeof V?.sub=="string"?V.sub:null,ke=typeof V?.org_id=="string"?V.org_id:null;if(!r||q){let Ye=JSON.stringify([e.projectBaseURL,q,ke,r,v]);s.cachedByKey.clear(),s.cachedByKey.set(Ye,{token:_,exp:X}),s.activeKey=Ye;}else o(s);}else o(s);return _})();if(h)return f;let g=f.finally(()=>{s.inflight===g&&(s.inflight=null);});return s.inflight=g,g}function i(){t.clear();}function o(a){a.cachedByKey.clear(),a.activeKey=null;}return {getToken:n,clear:i}}function Po(e,t){let n=p(e),i=A(n.token);if(i.length===0||i.length>32*1024)throw new TypeError("Invalid token response.");if(!t)return {token:i,policyVersion:0};let o=p(n.template);if(!Number.isSafeInteger(o.policyVersion)||o.policyVersion<1)throw new TypeError("Invalid token response.");return {token:i,policyVersion:o.policyVersion}}function Eo(e){let t=Je(e),n=Tn(e,t.clear,(r,c)=>Cn(r,c,Ln)),i=ie(e,`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}`),o=r=>(...c)=>(t.clear(),r(...c)),a={getConsentStatus:()=>Be(e),acceptConsent:r=>je(e,r),getToken:t.getToken,waitlist:{join:(r,c)=>i.request("/waitlist",{method:"POST",body:r,fetchOptions:c,credentials:"omit"})},account:{...n.account,updateUnsafeMetadata:o(n.account.updateUnsafeMetadata),updateProfile:o(n.account.updateProfile),changeEmail:o(n.account.changeEmail),changePassword:o(n.account.changePassword),revokeSession:o(n.account.revokeSession),delete:o(n.account.delete)},signIn:{email:o(n.signIn.email),username:o(n.signIn.username),social:o(n.signIn.social),sso:n.signIn.sso,magicLink:n.signIn.magicLink,emailOtp:o(n.signIn.emailOtp),passkey:o(n.signIn.passkey)},signUp:{email:o(n.signUp.email)},emailOtp:{...n.emailOtp,verifyEmail:o(n.emailOtp.verifyEmail)},twoFactor:{enable:n.twoFactor.enable,disable:o(n.twoFactor.disable),verifyTotp:o(n.twoFactor.verifyTotp),verifyBackupCode:o(n.twoFactor.verifyBackupCode),sendOtp:n.twoFactor.sendOtp,verifyOtp:o(n.twoFactor.verifyOtp),generateBackupCodes:n.twoFactor.generateBackupCodes},phoneOtp:{prepare:n.phoneOtp.prepare,start:n.phoneOtp.start,verify:o(n.phoneOtp.verify)},signOut:o(n.signOut)};return {...n,...a}}async function xo(e){if(typeof window>"u")throw new Error("Akedly Shield challenges must be solved in a browser.");let t=await Co(),n=e.challengeRequired?await t.solvePow(e.challenge,e.difficulty):null,i=e.turnstile.required?await t.getTurnstileToken(Do(e.turnstile.siteKey)):void 0;return {connectionId:e.connectionId,...n?{challengeToken:e.challengeToken,nonce:n.nonce}:{},...i?{turnstileToken:i}:{}}}async function Co(){return import('@akedly/shield')}function Do(e){if(!e)throw new Error("Akedly Shield did not provide a Turnstile site key.");return e}async function vo(e){let n=`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/public-config`;return j(await B(e,n,{init:{method:"GET",credentials:"omit"},maxResponseBytes:256*1024,decode:i=>Uo(i,e)}),"public-config")}function Uo(e,t){let n=z(e),i=n.environmentId,o=n.environmentType,a=`${new URL(t.apiUrl).origin}/api/projects/${t.decoded.projectId}/auth`;if(typeof n.applicationId!="string"||!_o(n.applicationId)||i!==t.decoded.projectId||o!=="development"&&o!=="production"||n.authBaseUrl!==a)throw D();let r=P(n.branding),c=P(n.legal);if(!Ge(n.enabledMethods,64)||!Ge(n.socialProviders,64)||!Kn(r,["appName","logoUrl","primaryColor"])||r.showAppName!==void 0&&typeof r.showAppName!="boolean"||r.alignment!==void 0&&r.alignment!=="left"&&r.alignment!=="center"&&r.alignment!=="right"||r.theme!==void 0&&r.theme!=="light"&&r.theme!=="dark"&&r.theme!=="system"||!Kn(c,["termsUrl","privacyUrl"])||!Number.isSafeInteger(c.version)||c.version<0||typeof c.required!="boolean")throw D();if(n.socialProviderClientIds!==void 0){let s=P(n.socialProviderClientIds);if(Object.keys(s).length>64||Object.values(s).some(h=>typeof h!="string"||h.length>2048))throw D()}if(!L(n,["requireEmailVerification","twoFactor","mfaRequired","accountDeletion","organizations","sso","badge"])||!qn(n.turnstileSiteKey)||!qn(n.authTurnstileSiteKey)||typeof n.locale!="string"||n.locale.length===0||n.locale.length>64||!Number.isSafeInteger(n.configVersion)||n.configVersion<0)throw D();if(n.jwtIssuer!==null){let s=P(n.jwtIssuer);if(s.issuer!==a||s.jwksUrl!==`${a}/jwks`||s.aud!==t.decoded.projectId)throw D()}if(n.signUp!==void 0){let s=P(n.signUp).mode;if(typeof s!="string"||!["open","restricted","allowlist","waitlist"].includes(s))throw D()}if(n.authentication!==void 0&&zo(n.authentication),n.emailVerification!==void 0){let s=P(n.emailVerification);if(!L(s,["required"])||s.method!=="link"&&s.method!=="code")throw D()}if(n.userModel!==void 0&&!L(P(n.userModel),["requireEmail","firstLastName","emailChange","accountDeletion"]))throw D();if(n.mfa!==void 0){let s=P(n.mfa);if(!L(s,["totp","required","backupCodes"])||(s.required===true||s.backupCodes===true)&&s.totp!==true)throw D()}return n}function _o(e){return /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e)}function D(){return new TypeError("public-config returned an invalid response")}function P(e){if(!e||typeof e!="object"||Array.isArray(e))throw D();return e}function qn(e){return e===null||typeof e=="string"&&e.length<=4096}function zo(e){let t=P(e),n=P(t.email),i=P(t.password),o=i.minLength!==void 0||i.maxLength!==void 0;if(!L(n,["signUp"])||!Ge(n.signIn,3)||n.signIn.some(a=>a!=="password"&&a!=="magic_link"&&a!=="email_otp")||!L(P(t.phone),["signUp","signIn"])||!L(i,["signUp","add"])||o&&(!Number.isSafeInteger(i.minLength)||!Number.isSafeInteger(i.maxLength)||i.minLength<1||i.maxLength>4096||i.minLength>i.maxLength)||!L(P(t.passkey),["signIn","add"])||!L(P(t.username),["collectOnSignUp","signIn"]))throw D()}function L(e,t){return t.every(n=>typeof e[n]=="boolean")}function Kn(e,t){return t.every(n=>e[n]===void 0||typeof e[n]=="string"&&e[n].length<=4096)}function Ge(e,t){return Array.isArray(e)&&e.length<=t&&e.every(n=>typeof n=="string"&&n.length<=128)&&new Set(e).size===e.length}var te=class extends Error{constructor(n,i){super(n);this.cause=i;this.name="AuthOwlError";}cause},We=class extends te{constructor(n,i){super(`Rate limited. Retry after ${n}s.`,i);this.retryAfterSeconds=n;this.name="RateLimitedError";}retryAfterSeconds},$e=class extends te{constructor(t="invalid publishable key",n){super(t,n),this.name="InvalidKeyError";}};var Hn=["en","ar"];function No(e){return e==="ar"?"rtl":"ltr"}function Lo(e){return typeof e=="string"&&Hn.includes(e)}
|
|
3
|
-
exports.AUTH_CHALLENGE_HEADER=
|
|
1
|
+
'use strict';var oi=Object.defineProperty;var nt=(e,t)=>()=>(e&&(t=e(e=0)),t);var ri=(e,t)=>{for(var n in t)oi(e,n,{get:t[n],enumerable:true});};function Z(){return typeof window<"u"&&typeof document<"u"&&typeof crypto<"u"&&typeof crypto.subtle?.digest=="function"}var Ue=nt(()=>{});var Ae={};ri(Ae,{beginCrossSiteSignIn:()=>No,challengeFor:()=>Un,completeCrossSiteSignIn:()=>Lo,takeHandoffCode:()=>zn});function vn(e){let t="";for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function Un(e){let t=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e));return vn(new Uint8Array(t))}function Uo(){return vn(crypto.getRandomValues(new Uint8Array(Co)))}function _n(e,t){let n=window.location.protocol==="https:"?"; Secure":"";document.cookie=`${Dn}=${e}; Path=/; Max-Age=${t}; SameSite=Lax${n}`;}function _o(){for(let e of document.cookie.split(";")){let t=e.indexOf("=");if(!(t<0)&&e.slice(0,t).trim()===Dn)return e.slice(t+1).trim()||null}return null}function zo(){_n("",0);}function Cn(e){return new URL(e,window.location.href).toString()}async function No(e,t){let n=t.callbackURL?Cn(t.callbackURL):null;if(n&&new URL(n).origin!==window.location.origin)return null;let i=Uo(),o=new URL(`${e.projectBaseURL}/session/start`);if(o.searchParams.set("pk",e.publishableKey),o.searchParams.set("kind",t.kind),t.kind==="social")o.searchParams.set("provider",t.provider),t.scopes?.length&&o.searchParams.set("scopes",t.scopes.join(",")),t.loginHint&&o.searchParams.set("loginHint",t.loginHint),t.requestSignUp!==void 0&&o.searchParams.set("requestSignUp",t.requestSignUp?"1":"0");else for(let r of vo){let c=t[r];c&&o.searchParams.set(r,c);}let s=`${window.location.origin}${window.location.pathname}${window.location.search}`;o.searchParams.set("cb",n??s);for(let[r,c]of [["err",t.errorCallbackURL],["new",t.newUserCallbackURL]])c&&o.searchParams.set(r,Cn(c));return o.searchParams.set("challenge",await Un(i)),_n(i,Do),o.toString()}function zn(){if(typeof window>"u")return null;let e=window.location.hash;if(!e.includes(je))return null;let t=new URLSearchParams(e.replace(/^#/,"")),n=t.get(je);if(!n)return null;t.delete(je);let i=t.toString();return window.history.replaceState(window.history.state,"",`${window.location.pathname}${window.location.search}${i?`#${i}`:""}`),n}async function Lo(e){if(!Z())return false;let t=zn();if(!t)return false;let n=_o();if(zo(),!n)return false;let{error:i}=await e.request("/session/exchange",{method:"POST",body:{code:t,verifier:n}});return i===null}var Dn,je,Co,Do,vo,Oe=nt(()=>{Ue();Dn="authowl_handoff_verifier",je="authowl_code",Co=32,Do=900,vo=["email","providerId","domain","organizationSlug"];});var si=/^(pk_(live|test))_([0-9a-f-]{36})_([A-Za-z0-9]{20,})$/i,ai=/^sk_/i;function Pe(e){if(typeof e!="string"||e.length===0)throw new Error("publishableKey is required");if(ai.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=si.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 ci(e,t){let n=`p_${e.replace(/-/g,"")}`;return `${t?.secure?"__Secure-":""}${n}.session_token`}var it=/^http:\/\/(?:(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*localhost|127\.0\.0\.1|\[::1\])(?::\d+)?(?:\/|$)/i;function Ie(e,t){throw new Error(`${e}: ${t}`)}function ot(e,t){let n;try{n=new URL(String(e));}catch{throw new TypeError("Transport URL must be absolute.")}if(n.username||n.password||n.hash)throw new TypeError("Transport URL must not contain credentials or a fragment.");let i=n.toString();if(n.protocol!=="https:"&&!(n.protocol==="http:"&&t.allowHttpLoopback&&it.test(i)))throw new TypeError("Transport URL must use HTTPS except on approved loopback.");return n}function rt(e,t){(typeof e!="string"||!/^https?:\/\/[^/?#@\\\s]+\/?$/i.test(e))&&Ie("apiUrl","origin required");let n;try{n=new URL(e);}catch{Ie("apiUrl","origin required");}return n.protocol==="http:"&&(!t.allowHttpLoopback||!it.test(e))&&Ie("apiUrl","HTTPS required except exact loopback"),n.origin}function ui(e){if(!e||typeof e!="object")throw new Error("AuthConfig is required");let t=Pe(e.publishableKey),n=rt(e.apiUrl,{allowHttpLoopback:t.env==="test"}),i=`${n}/api/projects/${t.projectId}/auth`;return {...e,apiUrl:n,decoded:t,projectBaseURL:i}}function li(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 di=1e4,pi=1024*1024,P=class extends Error{kind;requestId;constructor(t,n){super(bi(t)),this.name="TransportError",this.kind=t,this.requestId=n;}},ct=new WeakSet;function I(e,t){let n=new P(e,t);return ct.add(n),n}async function ie({fetchImpl:e,url:t,init:n={},timeoutMs:i=di,maxResponseBytes:o=pi,allowHttpLoopback:s=false,decode:r}){at(i,"timeoutMs"),at(o,"maxResponseBytes");let c=ot(t,{allowHttpLoopback:s}),a=n.signal,g=new AbortController,m=null,y,u=new Promise(h=>{y=h;}),l=h=>{m===null&&(m=h,y({type:"abort",kind:h}),g.abort());},f=()=>l("aborted");a?.addEventListener("abort",f,{once:true});let w=setTimeout(()=>l("timeout"),i);a?.aborted&&f();try{if(m!==null)throw I(m);let h;try{h=await Promise.race([e(c.toString(),{...n,redirect:"error",signal:g.signal}).then(Te=>({type:"response",response:Te})),u]);}catch{throw I(m??"network")}if(h.type==="abort")throw I(h.kind);if(!fi(h.response))throw I("invalid_response");let U=h.response,_=Oi(U.headers),V=await gi(U,o,u,()=>m,_),X=yi(U,V,_),q;try{q=U.ok&&r?r(X,Object.freeze({status:U.status})):X;}catch{throw I("invalid_response",_)}return {response:U,data:q,..._===void 0?{}:{requestId:_}}}catch(h){throw h instanceof P&&ct.has(h)?h:I(m??"network")}finally{clearTimeout(w),a?.removeEventListener("abort",f);}}function fi(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 gi(e,t,n,i,o){let s=e.headers.get("content-length");if(s!==null){if(!/^\d+$/.test(s))throw st(e.body),I("invalid_response",o);if(Number(s)>t)throw st(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,g=null;try{for(;;){let u;try{u=await Promise.race([r.read(),n]);}catch{g=I(i()??"network",o);break}if(mi(u)){g=I(u.kind,o);break}let{done:l,value:f}=u;if(l)break;if(f.byteLength!==0){if(a+=f.byteLength,a>t){g=I("response_too_large",o);break}c.push(f);}}}finally{g&&hi(r);try{r.releaseLock();}catch{}}if(g)throw g;let m=new Uint8Array(a),y=0;for(let u of c)m.set(u,y),y+=u.byteLength;try{return new TextDecoder("utf-8",{fatal:!0}).decode(m)}catch{throw I("invalid_response",o)}}function mi(e){return "type"in e&&e.type==="abort"}function st(e){if(e)try{e.cancel().catch(()=>{});}catch{}}function hi(e){try{e.cancel().catch(()=>{});}catch{}}function yi(e,t,n){if(e.status===204||e.status===205)return null;let i=Ai(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 Ai(e){if(e===null)return false;let t=e.split(";",1)[0]?.trim().toLowerCase();return t==="application/json"||t?.endsWith("+json")===true}function Oi(e){let t=e.get("x-request-id")?.trim();if(!(!t||t.length>256||!/^[A-Za-z0-9._:-]+$/.test(t)))return t}function at(e,t){if(!Number.isInteger(e)||e<=0)throw new TypeError(`${t} must be a positive integer.`)}function bi(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 dt="x-authowl-turnstile-token",wi=1e4,ki=32,Ri=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 oe(e,t=e.projectBaseURL){return {async request(n,i={}){let o=Pi(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(dt,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 g=Ti(s,i.fetchOptions),m;try{m=await Si(e,o,{...c,signal:i.fetchOptions?.signal},g);}catch(h){let U=lt(h);return await i.fetchOptions?.onError?.(Ee(a,U,xi(h))),{data:null,error:U}}let{response:y,requestId:u}=m,l=vi(n,m.data),f=l;if(y.ok)try{f=Ce(l),i.decode&&(f=i.decode(f));}catch{let h=lt(new P("invalid_response",u));return await i.fetchOptions?.onError?.(Ee(a,h,"invalid_response")),{data:null,error:h}}let w=Object.freeze({...a,status:y.status,...u===void 0?{}:{requestId:u}});if(await i.fetchOptions?.onResponse?.(w),!y.ok){let h=Ii(y,l,u);return await i.fetchOptions?.onError?.(Ee(a,h,"api")),{data:null,error:h}}return await i.fetchOptions?.onSuccess?.(w),{data:f,error:null}}}}async function Si(e,t,n,i){let o=Date.now()+wi;for(let s=0;s<i;s+=1){let r=o-Date.now();if(r<=0)throw new P("timeout");try{let c=await ie({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 P)||c.kind!=="network")throw c}await Ci(50*2**s,n.signal,o);}throw new P("network")}function Ti(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 Pi(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 Ii(e,t,n){let i=Q(t)?t:{},o=Ei(i,e.headers);return {status:e.status,statusText:e.statusText,code:typeof i.code=="string"?i.code:void 0,...n===void 0?{}:{requestId:n},...typeof i.current_version=="number"?{currentVersion:i.current_version}:{},...o!==void 0?{retryAfterSeconds:o}:{},message:typeof i.message=="string"?i.message:typeof i.error=="string"?i.error:typeof i.detail=="string"?i.detail:e.statusText||"Request failed"}}function Ei(e,t){let n=(typeof e.retryAfterSeconds=="number"&&Number.isFinite(e.retryAfterSeconds)?e.retryAfterSeconds:void 0)??ut(t.get("retry-after"))??ut(t.get("x-retry-after"));if(n!==void 0)return Math.min(Math.max(Math.trunc(n),1),86400)}function ut(e){if(!e)return;let t=e.trim();if(!/^\d+$/.test(t))return;let n=Number(t);return Number.isFinite(n)?n:void 0}function lt(e){let t=e instanceof P?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 P&&e.requestId?{requestId:e.requestId}:{}}}function Ee(e,t,n){return Object.freeze({...e,status:t.status??0,...t.requestId===void 0?{}:{requestId:t.requestId},failure:n})}function xi(e){return e instanceof P?e.kind:"network"}function Ci(e,t,n){return new Promise((i,o)=>{if(t?.aborted){o(new P("aborted"));return}let s=n-Date.now();if(s<=0){o(new P("timeout"));return}let r=Math.min(e,s),c=()=>{clearTimeout(a),o(new P("aborted"));},a=setTimeout(()=>{t?.removeEventListener("abort",c),Date.now()>=n?o(new P("timeout")):i();},r);t?.addEventListener("abort",c,{once:true}),t?.aborted&&c();})}function Ce(e,t="",n=0,i={nodes:0}){if(i.nodes+=1,n>ki||i.nodes>Ri)throw new Error("response traversal limit exceeded");if(typeof e=="string"&&/^(?:createdAt|updatedAt|expiresAt)$/.test(t)){let o=new Date(e);return Number.isNaN(o.getTime())?e:o}return Array.isArray(e)?e.map(o=>Ce(o,"",n+1,i)):Q(e)?Object.fromEntries(Object.entries(e).map(([o,s])=>[o,Di(o)?s:Ce(s,o,n+1,i)])):e}function Di(e){return e==="metadata"||e==="public_metadata"||e==="unsafe_metadata"||e==="private_metadata"||e==="publicMetadata"||e==="unsafeMetadata"||e==="privateMetadata"}function vi(e,t){if(e==="/list-sessions"&&Array.isArray(t))return t.map(o=>Q(o)?xe(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-")?xe(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:xe(i.session)}),i}function xe(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 Ui=new Set(["__proto__","constructor","prototype"]);function p(e){(!e||typeof e!="object"||Array.isArray(e))&&d();let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null&&d(),e}function A(e){return typeof e!="string"&&d(),e}function b(e){return typeof e!="boolean"&&d(),e}function S(e){return (!(e instanceof Date)||Number.isNaN(e.getTime()))&&d(),e}function re(e){return (!Array.isArray(e)||!e.every(t=>typeof t=="string"))&&d(),[...e]}function R(e,t){let n=e[t];return n==null||typeof n=="string"?n:d()}function pt(e,t){let n=e[t];return n==null||typeof n=="boolean"?n:d()}function C(e){let t=p(e),n=t.email;return n!==null&&typeof n!="string"&&d(),{id:A(t.id),email:n,emailVerified:b(t.emailVerified),createdAt:S(t.createdAt),updatedAt:S(t.updatedAt),...x("phoneNumber",R(t,"phoneNumber")),...x("username",R(t,"username")),...x("displayUsername",R(t,"displayUsername")),...x("firstName",R(t,"firstName")),...x("lastName",R(t,"lastName")),...x("name",R(t,"name")),...x("image",R(t,"image")),...x("twoFactorEnabled",pt(t,"twoFactorEnabled"))}}function se(e){let t=p(e),n=t.membership;return {id:A(t.id),userId:A(t.userId),expiresAt:S(t.expiresAt),...x("activeOrganizationId",R(t,"activeOrganizationId")),...x("activeTeamId",R(t,"activeTeamId")),...x("membership",n==null?n:_i(n)),...x("pendingMfaEnrollment",pt(t,"pendingMfaEnrollment"))}}function d(){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))&&d(),ve(e,t,n)}function ve(e,t=20,n=1e4){return De(e,0,{nodes:0},t,n)}function _i(e){let t=p(e);return {role:A(t.role),permissions:re(t.permissions),...t.teams===void 0?{}:{teams:re(t.teams)}}}function De(e,t,n,i,o){if(n.nodes+=1,(t>i||n.nodes>o)&&d(),e===null||typeof e=="string"||typeof e=="boolean")return e;if(typeof e=="number")return Number.isFinite(e)||d(),e;if(Array.isArray(e))return e.map(c=>De(c,t+1,n,i,o));(!e||typeof e!="object")&&d();let s=Object.getPrototypeOf(e);s!==Object.prototype&&s!==null&&d();let r={};for(let[c,a]of Object.entries(e))Ui.has(c)&&d(),r[c]=De(a,t+1,n,i,o);return r}function x(e,t){return t===void 0?{}:{[e]:t}}function gt(e,t){let n=new Set,i=null,o=null,s=null,r,c=l=>{m(l);};r={data:null,isPending:true,isRefetching:false,error:null,refetch:c};function a(l){r=l;for(let f of n)f();}async function g(l){return e.request("/get-session",{query:l?.query,decode:ft})}async function m(l){s?.abort();let f=new AbortController;s=f,a({...r,isPending:r.data===null&&r.error===null,isRefetching:r.data!==null});let w=await e.request("/get-session",{query:l?.query,fetchOptions:{signal:f.signal},decode:ft});s===f&&(s=null,a({data:w.data,error:w.error,isPending:false,isRefetching:false,refetch:c}));}function y(){if(typeof window>"u"||o)return;let l=()=>{m();},f=()=>{document.visibilityState==="visible"&&m();};window.addEventListener("focus",l),document.addEventListener("visibilitychange",f),typeof BroadcastChannel<"u"&&(i=new BroadcastChannel(`authowl:${t}`),i.addEventListener("message",l)),o=()=>{window.removeEventListener("focus",l),document.removeEventListener("visibilitychange",f),i?.close(),i=null,o=null;};}function u(l){return n.add(l),n.size===1&&(y(),m()),()=>{n.delete(l),n.size===0&&(s?.abort(),s=null,o?.());}}return {store:{subscribe:u,getSnapshot:()=>r},getSession:g,notifyMutation(){i?.postMessage({type:"session-changed"}),n.size>0&&m({query:{disableCookieCache:true}});}}}function ft(e){if(e===null)return null;let t=p(e);return (t.session===void 0||t.user===void 0)&&d(),{session:se(t.session),user:C(t.user)}}Ue();function _e(){let e=globalThis.crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=Array.from(e,n=>n.toString(16).padStart(2,"0")).join("");return `${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}async function mt(e,t){return e.request("/user/metadata",{fetchOptions:t,decode:yt})}async function ht(e,t,n){return e.request("/user/metadata",{method:"PATCH",body:{expected_version:t.expectedVersion,unsafe_metadata:t.unsafeMetadata},fetchOptions:n,decode:yt})}function yt(e){let t=p(e),n=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 Ot(e,t){let{post:n,mutation:i}=J(e,t);return {getMetadata:o=>mt(e,o),updateUnsafeMetadata:(o,s)=>ht(e,o,s),updateProfile:(o,s)=>i(n("/update-user",o,s,ee)),changeEmail:(o,s)=>i(n("/change-email",o,s,ee)),changePassword:(o,s)=>i(n("/change-password",o,s,zi)),listSessions:o=>e.request("/list-sessions",{fetchOptions:o,decode:Ni}),revokeSession:({sessionId:o},s)=>i(n("/revoke-session",{sessionId:o},s,ee)),revokeOtherSessions:o=>i(n("/revoke-other-sessions",{},o,ee)),listSocialAccounts:async o=>{let s=await e.request("/list-accounts",{fetchOptions:o,decode:Li});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,Mi),unlinkSocial:(o,s)=>i(n("/unlink-account",o,s,ee)),delete:(o={},s)=>i(n("/delete-user",o,s,Fi))}}function ee(e){let t=p(e);return {status:b(t.status)}}function zi(e){let t=p(e);return {user:C(t.user)}}function Ni(e){return Array.isArray(e)||d(),e.map(t=>{let n=p(t);return {id:A(n.id),userId:A(n.userId),createdAt:S(n.createdAt),updatedAt:S(n.updatedAt),expiresAt:S(n.expiresAt),...At("ipAddress",R(n,"ipAddress")),...At("userAgent",R(n,"userAgent"))}})}function Li(e){return Array.isArray(e)||d(),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:re(n.scopes),createdAt:S(n.createdAt),updatedAt:S(n.updatedAt)}})}function Mi(e){let t=p(e);return {url:A(t.url),redirect:b(t.redirect)}}function Fi(e){let t=p(e);return {success:b(t.success),message:A(t.message)}}function At(e,t){return t===void 0?{}:{[e]:t}}function ae(e,t){return !e||!t?false:e.permissions.includes(t)}function bt(e,t){return !e||!t?false:e.teams?.includes(t)??false}function ce(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&&!bt(e,o))}function Vi(e){return {has:t=>ce(e,t),hasPermission:t=>ae(e,t.permission)}}var qi=new Set(["pending","accepted","rejected","canceled"]),wt=1e4;function G(e,t,n){let i=p(e),o={id:O(i.id),name:O(i.name),slug:O(i.slug),createdAt:S(i.createdAt),...ue("logo",R(i,"logo")),...ue("metadata",i.metadata===void 0?void 0:ve(i.metadata))};return M(o.id,t),M(o.slug,n),o}function kt(e){return F(e,G)}function ze(e,t,n){return e===null?null:(t===null&&d(),G(e,t,n))}function Rt(e,t,n){if(e===null)return null;let i=p(e),o=G(i,t,n);return {...o,members:F(i.members,s=>Nt(s,o.id)),invitations:F(i.invitations,s=>N(s,void 0,o.id))}}function St(e,t){let n=F(e,i=>zt(i));return le(n.map(i=>i.organizationId),t),n}function Tt(e,t,n){return e===null?null:(t===null&&d(),zt(e,t,n))}function Pt(e,t){let n=p(e);return (!Number.isSafeInteger(n.total)||n.total<0)&&d(),{members:Ki(n.members,t),total:n.total}}function N(e,t,n){let i=p(e),o=O(i.status);qi.has(o)||d();let s={id:O(i.id),organizationId:O(i.organizationId),email:O(i.email),role:O(i.role),status:o,inviterId:O(i.inviterId),expiresAt:S(i.expiresAt),createdAt:S(i.createdAt)};return M(s.id,t),M(s.organizationId,n),s}function It(e,t){let n=F(e,i=>N(i));return le(n.map(i=>i.organizationId),t),n}function Et(e){return F(e,t=>{let n=p(t);return {...N(n),organizationName:O(n.organizationName)}})}function xt(e,t){let n=p(e);return {...N(n,t),organizationName:O(n.organizationName),organizationSlug:O(n.organizationSlug),inviterEmail:O(n.inviterEmail)}}function Ct(e,t){let n=p(e),i=N(n.invitation,t);return {invitation:i,member:W(n.member,void 0,i.organizationId)}}function Dt(e,t){let n=p(e);return n.member!==null&&d(),{invitation:n.invitation===null?null:N(n.invitation,t),member:null}}function vt(e,t){return e===null?null:N(e,t)}function Ut(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:S(i.createdAt),...i.user===void 0?{}:{user:Lt(i.user)}};return M(o.id,t),M(o.organizationId,n),o}function _t(e,t){let n=F(e,i=>{let o=p(i);return {organizationId:O(o.organizationId),data:{role:O(o.role),...ue("permission",o.permission===void 0?void 0:Hi(o.permission))}}});return le(n.map(i=>i.organizationId),t),n.map(i=>i.data)}function zt(e,t,n){let i=p(e),o=i.updatedAt,s={id:O(i.id),name:O(i.name),organizationId:O(i.organizationId),createdAt:S(i.createdAt),...o===void 0?{}:{updatedAt:S(o)}};return M(s.id,t),M(s.organizationId,n),s}function Nt(e,t){let n=p(e);return {...W(n,void 0,t),user:Lt(n.user)}}function Ki(e,t){let n=F(e,i=>Nt(i));return le(n.map(i=>i.organizationId),t),n}function Hi(e){let t=p(e),n={};for(let[i,o]of Object.entries(t))(i==="__proto__"||i==="constructor"||i==="prototype"||i.length===0||i.length>wt||!Array.isArray(o))&&d(),n[i]=o.map(s=>O(s));return n}function O(e){let t=A(e);return (t.length===0||t.length>wt)&&d(),t}function M(e,t){t!==void 0&&e!==t&&d();}function le(e,t){let n=t??e[0];n!==void 0&&e.some(i=>i!==n)&&d();}function Lt(e){let t=p(e);return {id:O(t.id),name:O(t.name),email:O(t.email),...ue("image",R(t,"image"))}}function F(e,t){return Array.isArray(e)||d(),e.map(n=>t(n))}function ue(e,t){return t===void 0?{}:{[e]:t}}function Mt(e,t,n=()=>null){let{post:i,mutation:o}=J(e,t),s=(r,c,a,g)=>e.request(r,{query:c,fetchOptions:a,decode:g});return {create:(r,c)=>o(i("/organization/create",r,c,G)),list:r=>s("/organization/list",void 0,r,kt),get:(r={},c)=>s("/organization/get-full-organization",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,membersLimit:r.membersLimit},c,a=>Rt(a,r.organizationId,r.organizationSlug)),setActive:(r,c)=>o(i("/organization/set-active",r,c,a=>ze(a,r.organizationId,r.organizationSlug))),listTeams:(r={},c)=>s("/organization/list-teams",{organizationId:r.organizationId},c,a=>St(a,r.organizationId)),setActiveTeam:(r,c)=>o(i("/organization/set-active-team",r,c,a=>Tt(a,r.teamId))),update:(r,c)=>o(i("/organization/update",r,c,a=>ze(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=>Pt(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=>It(a,r.organizationId)),listUserInvitations:r=>s("/organization/list-user-invitations",void 0,r,Et),getInvitation:(r,c)=>s("/organization/get-invitation",{id:r.id},c,a=>xt(a,r.id)),acceptInvitation:(r,c)=>o(i("/organization/accept-invitation",r,c,a=>Ct(a,r.invitationId))),rejectInvitation:(r,c)=>o(i("/organization/reject-invitation",r,c,a=>Dt(a,r.invitationId))),cancelInvitation:(r,c)=>o(i("/organization/cancel-invitation",r,c,a=>vt(a,r.invitationId))),removeMember:(r,c)=>o(i("/organization/remove-member",r,c,a=>Ut(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=>_t(a,r.organizationId)),has:r=>ce(n(),r),hasPermission:r=>ae(n(),r.permission)}}var Ft=4096,Bi=4096,ji=100,Ji=256,Gi=16,Wi=64,$i=12;function Le(e){let t=p(e);return t.twoFactorRedirect===true?((t.user!==void 0||t.redirect!==void 0||t.url!==void 0)&&d(),{twoFactorRedirect:true,...t.twoFactorMethods===void 0?{}:{twoFactorMethods:on(t.twoFactorMethods,Gi,Wi)}}):(t.twoFactorRedirect!==void 0&&d(),{redirect:b(t.redirect),...eo(t,"url"),user:C(t.user)})}function Vt(e){let t=p(e);return {user:C(t.user)}}function qt(e){let t=p(e);return {sessionCreated:b(t.sessionCreated),user:C(t.user)}}function Kt(e,t){let n=p(e),i=b(n.redirect);n.user===null&&d();let o=n.user!==void 0&&n.user!==null,s=n.url!==void 0&&n.url!==null;return i?((o||!s)&&d(),{redirect:true,url:Ne(n.url,t)}):(o===s&&d(),o?{redirect:false,user:C(n.user)}:{redirect:false,url:Ne(n.url,t)})}function Ht(e,t){let n=p(e);return (n.redirect!==true||n.user!==void 0)&&d(),{redirect:true,url:Ne(n.url,t)}}function Bt(e){return {status:b(p(e).status)}}function jt(e){return {success:b(p(e).success)}}function Jt(e){return p(e).status!=="pending"&&d(),{status:"pending"}}function Gt(e){let t=p(e);if(t.kind==="authowl_turnstile")return {kind:"authowl_turnstile"};t.kind!=="akedly_shield_v1_2"&&d();let n=p(t.turnstile),i=n.siteKey===null?null:A(n.siteKey);return {kind:"akedly_shield_v1_2",connectionId:A(t.connectionId),challenge:A(t.challenge),difficulty:Yi(t.difficulty),challengeToken:A(t.challengeToken),challengeRequired:b(t.challengeRequired),turnstile:{required:b(n.required),siteKey:i}}}function Yi(e){return (!Number.isSafeInteger(e)||Number(e)<0||Number(e)>$i)&&d(),Number(e)}function Wt(e){let t=p(e);return (t.status!==true||t.sessionCreated!==true)&&d(),{status:true,sessionCreated:true,user:Xi(t.user)}}function Me(e){return {status:b(p(e).status)}}function $t(e){return {status:b(p(e).status)}}function Yt(e){let t=p(e);return {status:b(t.status),user:C(t.user)}}function Xt(e){return {success:b(p(e).success)}}function Qt(e){let t=p(e);return {totpURI:Zi(t.totpURI),backupCodes:nn(t.backupCodes)}}function Zt(e){return {status:b(p(e).status)}}function de(e){return p(e).status!==true&&d(),{status:true}}function en(e){return {status:b(p(e).status)}}function tn(e){let t=p(e);return t.status!==void 0&&t.status!==true&&d(),{backupCodes:nn(t.backupCodes)}}function Xi(e){let t=p(e);return {id:$(t.id,512),...to(t,"name",1024),phoneNumber:$(t.phoneNumber,64),phoneNumberVerified:b(t.phoneNumberVerified),...t.createdAt===void 0?{}:{createdAt:S(t.createdAt)},...t.updatedAt===void 0?{}:{updatedAt:S(t.updatedAt)}}}function Ne(e,t){let n=$(e,Ft);/[\u0000-\u0020\u007f]/u.test(n)&&d();let i;try{i=new URL(n);}catch{return d()}return (i.username||i.password)&&d(),i.protocol==="https:"||t&&i.protocol==="http:"&&Qi(i.hostname)?i.href:d()}function Qi(e){let t=e.toLowerCase();return t==="localhost"||t==="127.0.0.1"||t==="[::1]"}function Zi(e){let t=$(e,Bi),n;try{n=new URL(t);}catch{return d()}let i=n.searchParams.get("secret");return (n.protocol!=="otpauth:"||n.hostname.toLowerCase()!=="totp"||n.username||n.password||n.hash||i===null||i.length===0||i.length>512||/\s/u.test(i))&&d(),t}function nn(e){return on(e,ji,Ji)}function on(e,t,n){(!Array.isArray(e)||e.length===0||e.length>t)&&d();let i=e.map(o=>$(o,n));return i.some(o=>o.trim().length===0)&&d(),new Set(i).size!==i.length&&d(),i}function $(e,t){let n=A(e);return (n.length===0||n.length>t)&&d(),n}function eo(e,t){let n=e[t];return n==null?{}:{[t]:$(n,Ft)}}function to(e,t,n){let i=R(e,t);return i===void 0?{}:(i!==null&&i.length>n&&d(),{[t]:i})}var rn=new Set([1564,8206,8207,8234,8235,8236,8237,8238,8294,8295,8296,8297]),pe=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 fe(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||an(n,i)||sn(i)||rn.has(i))return {valid:false}}let t=no(e);return Fe(t)?{valid:true,value:t}:{valid:false}}function Fe(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||an(o,s)||sn(s)||rn.has(s))return false;n??=s,i=s;}return t>0&&n!==void 0&&i!==void 0&&!pe.has(n)&&!pe.has(i)}function ge(){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 no(e){let t=0,n=e.length;for(;t<n;){let i=e.codePointAt(t);if(i===void 0||!pe.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||!pe.has(r))break;n=s;}return e.slice(t,n)}function sn(e){return e>=0&&e<=31||e>=127&&e<=159}function an(e,t){return e.length===1&&t>=55296&&t<=57343}var ln=12,dn=5e3,io=8,oo=1e3,ro=16,cn=512,pn=100,fn=8192,so=32768,Ve=1024,un=256,Ke=64,ao=6e5,co=/^[A-Za-z0-9_-]+$/u,uo=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u,lo=/[\u0000-\u001f\u007f-\u009f\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/u,po=/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$/u,fo=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu,gn=new Set(["discouraged","preferred","required"]),go=new Set(["singleDevice","multiDevice"]),mn=new Set(["ble","cable","hybrid","internal","nfc","smart-card","usb"]),hn=new Set(["hybrid","security-key","client-device"]),mo=new Set(["none","indirect","direct","enterprise"]),ho=new Set(["fido-u2f","packed","android-safetynet","android-key","tpm","apple","none"]),yo=new Set(["platform","cross-platform"]),Ao=new Set(["discouraged","preferred","required"]),Oo=new Set([-8,-7,-257]);function yn(e){let t=z(e,ln,dn);return {challenge:In(t.challenge),...T("timeout",Tn(t.timeout)),...T("rpId",En(t.rpId)),...T("allowCredentials",Sn(t.allowCredentials)),...T("userVerification",te(t.userVerification,gn)),...T("hints",me(t.hints,hn)),...T("extensions",Pn(t.extensions))}}function An(e){let t=z(e,ln,dn);return {challenge:In(t.challenge),rp:bo(t.rp),user:wo(t.user),pubKeyCredParams:ko(t.pubKeyCredParams),...T("timeout",Tn(t.timeout)),...T("excludeCredentials",Sn(t.excludeCredentials)),...T("authenticatorSelection",Ro(t.authenticatorSelection)),...T("attestation",te(t.attestation,mo)),...T("attestationFormats",me(t.attestationFormats,ho)),...T("hints",me(t.hints,hn)),...T("extensions",Pn(t.extensions))}}function On(e){let t=p(e),n=se(t.session),i=C(t.user);return n.userId!==i.id&&d(),{session:n,user:i}}function He(e){let t=p(e),n=t.counter;(!Number.isSafeInteger(n)||n<0)&&d();let i=Be(t.deviceType,go),o=b(t.backedUp);return o&&i!=="multiDevice"&&d(),{id:Y(t.id,un),...Po(t),publicKey:So(t.publicKey,so),userId:Y(t.userId,un),credentialID:ye(t.credentialID,fn),counter:n,deviceType:i,backedUp:o,...Io(t),createdAt:S(t.createdAt),...Eo(t)}}function bn(e,t,n){let i=He(e);return (i.credentialID!==t||(n===void 0?i.name!==void 0&&i.name!==null:i.name!==n))&&d(),i}function wn(e){(!Array.isArray(e)||e.length>pn)&&d();let t=e.map(He);return he(t.map(n=>n.id)),he(t.map(n=>n.credentialID)),t.length>1&&t.some(n=>n.userId!==t[0]?.userId)&&d(),t}function kn(e,t,n){let i=p(e),o=He(i.passkey);return (o.id!==t||o.name!==n)&&d(),{passkey:o}}function Rn(e){return p(e).status!==true&&d(),{status:true}}function bo(e){let t=p(e);return {name:qe(t.name,Ve),...T("id",En(t.id))}}function wo(e){let t=p(e);return {id:ye(t.id,128,1,64),name:qe(t.name,Ve),displayName:qe(t.displayName,Ve)}}function ko(e){(!Array.isArray(e)||e.length===0||e.length>Ke)&&d();let t=e.map(n=>{let i=p(n);return (i.type!=="public-key"||!Number.isSafeInteger(i.alg)||!Oo.has(i.alg))&&d(),{type:"public-key",alg:i.alg}});return xo(t.map(n=>n.alg)),t}function Sn(e){if(e===void 0)return;(!Array.isArray(e)||e.length>pn)&&d();let t=e.map(n=>{let i=p(n);return i.type!=="public-key"&&d(),{type:"public-key",id:ye(i.id,fn),...T("transports",me(i.transports,mn))}});return he(t.map(n=>n.id)),t}function Ro(e){if(e===void 0)return;let t=p(e);t.requireResidentKey!==void 0&&typeof t.requireResidentKey!="boolean"&&d();let n=te(t.residentKey,Ao);return t.requireResidentKey!==void 0&&n!==void 0&&t.requireResidentKey!==(n==="required")&&d(),{...T("authenticatorAttachment",te(t.authenticatorAttachment,yo)),...T("residentKey",n),...T("requireResidentKey",t.requireResidentKey),...T("userVerification",te(t.userVerification,gn))}}function Tn(e){return e!==void 0&&(typeof e!="number"||!Number.isFinite(e)||e<0||e>ao)&&d(),e}function Pn(e){return e===void 0?void 0:z(e,io,oo)}function me(e,t){if(e===void 0)return;(!Array.isArray(e)||e.length>Ke)&&d();let n=e.map(i=>Be(i,t));return he(n),n}function te(e,t){if(e!==void 0)return Be(e,t)}function In(e){return ye(e,Math.ceil(cn*4/3),ro,cn)}function ye(e,t,n=1,i=Number.POSITIVE_INFINITY){let o=Y(e,t),s=o.length%4,r=To(o.at(-1)??""),c=Math.floor(o.length*3/4);return (!co.test(o)||s===1||s===2&&(r&15)!==0||s===3&&(r&3)!==0||c<n||c>i)&&d(),o}function Y(e,t){let n=A(e);return (n.length===0||n.length>t)&&d(),n}function qe(e,t){let n=Y(e,t);return lo.test(n)&&d(),n}function En(e){if(e===void 0)return;let t=Y(e,253);return t!=="localhost"&&(t.endsWith(".")||!t.includes(".")||t.split(".").some(n=>!po.test(n)))&&d(),t}function So(e,t){let n=Y(e,t),i=n.endsWith("=="),o=!i&&n.endsWith("="),s=n.at(i?-3:o?-2:-1)??"",r=xn(s);return (n.length%4!==0||!uo.test(n)||i&&(r&15)!==0||o&&(r&3)!==0)&&d(),n}function To(e){return xn(e,true)}function xn(e,t=false){return (t?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").indexOf(e)}function Po(e){let t=R(e,"name");return t===void 0?{}:(t!==null&&!Fe(t)&&d(),{name:t})}function Io(e){let t=R(e,"transports");if(t==null||t==="")return t===void 0?{}:{transports:t};let n=t.split(",");return (n.length>Ke||n.some(i=>!mn.has(i))||new Set(n).size!==n.length)&&d(),{transports:t}}function Eo(e){let t=R(e,"aaguid");return t==null?t===void 0?{}:{aaguid:null}:(fo.test(t)||d(),{aaguid:t})}function Be(e,t){let n=A(e);return t.has(n)||d(),n}function T(e,t){return t===void 0?{}:{[e]:t}}function he(e){new Set(e).size!==e.length&&d();}function xo(e){new Set(e).size!==e.length&&d();}function Mo(e,t){if(!t)return e;let n=t.catch(()=>{});return n.then(()=>{n=null;}),{async request(i,o){return n&&await n,e.request(i,o)}}}var Nn=new Map;function Fo(e,t){let n=Nn.get(t);return n||(n=Promise.resolve().then(()=>(Oe(),Ae)).then(i=>i.completeCrossSiteSignIn(e)),Nn.set(t,n)),n}function Ln(e){return !Z()||e.idToken||e.disableRedirect?"legacy":"first-party"}function Fn(e,t=()=>{},n=Vo){let i=oe(e),o=Z()?Fo(i,e.decoded.projectId):void 0,s=Mo(i,o),r=gt(s,e.decoded.projectId),c=n(s,r.notifyMutation),a=()=>{r.notifyMutation(),t();},{post:g,mutation:m}=J(s,a),y=e.decoded.env==="test";return {sessionStore:r.store,getSession:r.getSession,account:Ot(s,a),organization:Mt(s,a,()=>r.store.getSnapshot().data?.session.membership??null),signIn:{email:(u,l)=>m(g("/sign-in/email",u,l,Le),f=>!("twoFactorRedirect"in f)),username:(u,l)=>m(g("/sign-in/username",u,l,Le),f=>!("twoFactorRedirect"in f)),social:async(u,l)=>{if(Ln(u)==="first-party"){let{beginCrossSiteSignIn:w}=await Promise.resolve().then(()=>(Oe(),Ae)),h=await w(e,{kind:"social",provider:u.provider,callbackURL:u.callbackURL,errorCallbackURL:u.errorCallbackURL,newUserCallbackURL:u.newUserCallbackURL,scopes:u.scopes,loginHint:u.loginHint,requestSignUp:u.requestSignUp});if(h)return window.location.assign(h),{data:{redirect:true,url:h},error:null}}let f=await m(g("/sign-in/social",u,l,w=>Kt(w,y)),w=>"user"in w);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,l)=>{if(Ln(u)==="first-party"){let{beginCrossSiteSignIn:w}=await Promise.resolve().then(()=>(Oe(),Ae)),h=await w(e,{kind:"sso",email:u.email,providerId:u.providerId,domain:u.domain,organizationSlug:u.organizationSlug,callbackURL:u.callbackURL,errorCallbackURL:u.errorCallbackURL,newUserCallbackURL:u.newUserCallbackURL});if(h)return window.location.assign(h),{data:{url:h,redirect:true},error:null}}let f=await g("/sign-in/sso",u,l,w=>Ht(w,y));return f.error!==null||f.data===null||typeof window<"u"&&window.location.assign(f.data.url),f},magicLink:(u,l)=>g("/sign-in/magic-link",u,l,Bt),emailOtp:(u,l)=>m(g("/sign-in/email-otp",u,l,Vt)),passkey:(u,l)=>c.signIn(u,l)},signUp:{email:(u,l)=>m(g("/sign-up/email",u,l,qt),f=>f.sessionCreated)},emailOtp:{sendVerificationOtp:(u,l)=>g("/email-otp/send-verification-otp",u,l,jt),verifyEmail:(u,l)=>m(g("/email-otp/verify-email",u,l,Yt))},phoneOtp:{prepare:u=>g("/phone-otp/challenge",{},u,Gt),start:(u,l)=>g("/phone-otp/start",{...u,idempotencyKey:u.idempotencyKey??_e()},l,Jt),verify:(u,l)=>m(g("/phone-otp/verify",u,l,Wt))},requestPasswordReset:(u,l)=>g("/request-password-reset",u,l,Me),resetPassword:(u,l)=>g("/reset-password",u,l,Me),sendVerificationEmail:(u,l)=>g("/send-verification-email",u,l,$t),passkey:{addPasskey:(u,l)=>c.add(u,l),listUserPasskeys:()=>s.request("/passkey/list-user-passkeys",{decode:wn}),updatePasskey:async(u,l)=>{let f=fe(u.name);if(!f.valid||f.value===void 0)return ge();let w=f.value;return g("/passkey/update-passkey",{...u,name:w},l,h=>kn(h,u.id,w))},deletePasskey:(u,l)=>g("/passkey/delete-passkey",u,l,Rn)},twoFactor:{enable:(u,l)=>g("/two-factor/enable",u,l,Qt),disable:(u,l)=>m(g("/two-factor/disable",u,l,Zt),f=>f.status),verifyTotp:(u,l)=>m(g("/two-factor/verify-totp",u,l,de)),verifyBackupCode:(u,l)=>m(g("/two-factor/verify-backup-code",u,l,de)),sendOtp:(u={},l)=>g("/two-factor/send-otp",u,l,en),verifyOtp:(u,l)=>m(g("/two-factor/verify-otp",u,l,de)),generateBackupCodes:(u,l)=>g("/two-factor/generate-backup-codes",u,l,tn)},signOut:u=>m(s.request("/sign-out",{method:"POST",body:{},fetchOptions:u,decode:Xt}),l=>l.success)}}function Vo(){return {signIn:()=>Mn(),add:()=>Mn()}}function Mn(){return Promise.resolve({data:null,error:{status:400,statusText:"BAD_REQUEST",code:"PASSKEY_BROWSER_REQUIRED",message:"This passkey ceremony requires a browser with WebAuthn."}})}function Bn(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 Kn(r.error);let c;try{c=yn(r.data);}catch{return Vn()}let a;try{a=await n.authenticate({optionsJSON:c,useBrowserAutofill:o.autoFill});}catch(l){return Hn(n,l,"AUTH_CANCELLED","Passkey authentication was cancelled.")}if(!qo(a))return qn();let{clientExtensionResults:g,...m}=a,y=i.get(a.id);if(y)return y;let u=(async()=>{let l=await e.request("/passkey/verify-authentication",{method:"POST",body:{response:m},fetchOptions:s,decode:On});return l.data&&t(),l})();i.set(a.id,u);try{return await u}finally{i.get(a.id)===u&&i.delete(a.id);}},async add(o={},s){let r=fe(o.name);if(!r.valid)return ge();let c=await e.request("/passkey/generate-register-options",{query:{name:r.value,authenticatorAttachment:o.authenticatorAttachment}});if(!c.data)return Kn(c.error);let a;try{a=An(c.data);}catch{return Vn()}let g;try{g=await n.register({optionsJSON:a});}catch(l){return Hn(n,l,"REGISTRATION_CANCELLED","Passkey registration was cancelled.")}if(!Ko(g))return qn();let{clientExtensionResults:m,...y}=g,u=await e.request("/passkey/verify-registration",{method:"POST",body:{response:y,name:r.value},fetchOptions:s,decode:l=>bn(l,g.id,r.value)});return u.data&&t(),u}}}function Vn(){return {data:null,error:{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned invalid WebAuthn options."}}}function qn(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_WEBAUTHN_RESPONSE",message:"The platform returned an invalid passkey response."}}}function jn(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 qo(e){if(!jn(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 Ko(e){if(!jn(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.attestationObject=="string"}function Kn(e){return {data:null,error:e??{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned no WebAuthn options."}}}function Hn(e,t,n,i){let o=Bo(t,"page does not have focus"),s=e.errorCode?.(t),r=s!==void 0?s==="ERROR_CEREMONY_ABORTED":Ho(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 Ho(e){return e&&typeof e=="object"&&"name"in e&&typeof e.name=="string"?e.name:void 0}function Bo(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 D(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 jo.stubThis(globalThis?.PublicKeyCredential!==void 0&&typeof globalThis.PublicKeyCredential=="function")}var jo={stubThis:e=>e};function be(e){let{id:t}=e;return {...e,id:K(t),transports:e.transports}}function we(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 k=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 Jn({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 k({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 k({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 k({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 k({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 k({message:"The authenticator was previously registered",code:"ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED",cause:e});if(e.name==="NotAllowedError")return new k({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 k({message:'No entry in pubKeyCredParams was of type "public-key"',code:"ERROR_MALFORMED_PUBKEYCREDPARAMS",cause:e}):new k({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(we(i)){if(n.rp.id!==i)return new k({message:`The RP ID "${n.rp.id}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new k({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 k({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 k({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 Je=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;}}},ke=new Je;var Jo=["cross-platform","platform"];function Re(e){if(e&&!(Jo.indexOf(e)<0))return e}async function Gn(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(be)},o={};n&&(o.mediation="conditional"),o.publicKey=i,o.signal=ke.createNewAbortSignal();let s;try{s=await navigator.credentials.create(o);}catch(f){throw Jn({error:f,options:o})}if(!s)throw new Error("Registration was not completed");let{id:r,rawId:c,response:a,type:g}=s,m;typeof a.getTransports=="function"&&(m=a.getTransports());let y;if(typeof a.getPublicKeyAlgorithm=="function")try{y=a.getPublicKeyAlgorithm();}catch(f){Ge("getPublicKeyAlgorithm()",f);}let u;if(typeof a.getPublicKey=="function")try{let f=a.getPublicKey();f!==null&&(u=D(f));}catch(f){Ge("getPublicKey()",f);}let l;if(typeof a.getAuthenticatorData=="function")try{l=D(a.getAuthenticatorData());}catch(f){Ge("getAuthenticatorData()",f);}return {id:r,rawId:D(c),response:{attestationObject:D(a.attestationObject),clientDataJSON:D(a.clientDataJSON),transports:m,publicKeyAlgorithm:y,publicKey:u,authenticatorData:l},type:g,clientExtensionResults:s.getClientExtensionResults(),authenticatorAttachment:Re(s.authenticatorAttachment)}}function Ge(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 Wn(){if(!H())return We.stubThis(new Promise(t=>t(false)));let e=globalThis.PublicKeyCredential;return e?.isConditionalMediationAvailable===void 0?We.stubThis(new Promise(t=>t(false))):We.stubThis(e.isConditionalMediationAvailable())}var We={stubThis:e=>e};function $n({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 k({message:"Authentication ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else {if(e.name==="NotAllowedError")return new k({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="SecurityError"){let i=globalThis.location.hostname;if(we(i)){if(n.rpId!==i)return new k({message:`The RP ID "${n.rpId}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new k({message:`${globalThis.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="UnknownError")return new k({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 Yn(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(be));let s={...t,challenge:K(t.challenge),allowCredentials:o},r={};if(n){if(!await Wn())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=ke.createNewAbortSignal();let c;try{c=await navigator.credentials.get(r);}catch(l){throw $n({error:l,options:r})}if(!c)throw new Error("Authentication was not completed");let{id:a,rawId:g,response:m,type:y}=c,u;return m.userHandle&&(u=D(m.userHandle)),{id:a,rawId:D(g),response:{authenticatorData:D(m.authenticatorData),clientDataJSON:D(m.clientDataJSON),signature:D(m.signature),userHandle:u},type:y,clientExtensionResults:c.getClientExtensionResults(),authenticatorAttachment:Re(c.authenticatorAttachment)}}var Xn={authenticate:e=>Yn(e),register:e=>Gn(e),errorCode:e=>e instanceof k?e.code:void 0};var Se=class extends Error{status;requestId;constructor(t,n,i){super(`${t} request failed with status ${n.status}.`),this.name="AuthOwlHttpError",this.status=n.status,this.requestId=i;}};function B(e,t,n={}){let i=new Headers(n.init?.headers);return i.set("x-publishable-key",e.publishableKey),ie({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 Se(t,e.response,e.requestId);return e.data}function Zn(e){return `${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/consent`}async function $e(e){let t=await B(e,Zn(e),{init:{method:"GET",credentials:"include"},maxResponseBytes:65536,decode:Go});return t.response.status===401?{required:false}:j(t,"consent status")}async function Ye(e,t){if(!Number.isSafeInteger(t)||t<1)throw new TypeError("Consent version must be a positive integer.");return j(await B(e,Zn(e),{init:{method:"POST",headers:{"content-type":"application/json"},credentials:"include",body:JSON.stringify({version:t})},maxResponseBytes:64*1024,decode:Wo}),"consent accept")}function Go(e){let t=p(e),n=b(t.required),i=$o(t.needsConsent),o=ei(t.version),s=Qn(t.termsUrl),r=Qn(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 Wo(e){let t=p(e),n=ei(t.version);return {ok:b(t.ok),...n===void 0?{}:{version:n}}}function $o(e){if(e===void 0||typeof e=="boolean")return e;throw new TypeError("Invalid consent response.")}function ei(e){if(e===void 0||Number.isSafeInteger(e)&&e>=1)return e;throw new TypeError("Invalid consent response.")}function Qn(e){if(e===void 0||typeof e=="string"&&e.length<=4096)return e;throw new TypeError("Invalid consent response.")}var Yo=30;function Xo(e){return typeof e?.exp=="number"?e.exp:null}function Qo(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 Xe(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 g=s.forceRefresh===true;if(!g){let f=a.activeKey?a.cachedByKey.get(a.activeKey):null;if(f&&f.exp-Date.now()/1e3>Yo)return f.token;if(a.inflight)return a.inflight}let m=++a.sequence,y=()=>t.get(c)===a&&a.sequence===m,u=(async()=>{let f=r?`${e.projectBaseURL}/token/${encodeURIComponent(r)}`:`${e.projectBaseURL}/token`,w=await B(e,f,{init:{method:"GET",credentials:"include"},maxResponseBytes:64*1024,decode:q=>Zo(q,r!==null)});if(w.response.status===401)return y()&&i(),null;let h=j(w,"token"),U=h.policyVersion,_=h.token,V=Qo(_),X=Xo(V);if(y())if(X!==null){let q=typeof V?.sub=="string"?V.sub:null,Te=typeof V?.org_id=="string"?V.org_id:null;if(!r||q){let tt=JSON.stringify([e.projectBaseURL,q,Te,r,U]);a.cachedByKey.clear(),a.cachedByKey.set(tt,{token:_,exp:X}),a.activeKey=tt;}else o(a);}else o(a);return _})();if(g)return u;let l=u.finally(()=>{a.inflight===l&&(a.inflight=null);});return a.inflight=l,l}function i(){t.clear();}function o(s){s.cachedByKey.clear(),s.activeKey=null;}return {getToken:n,clear:i}}function Zo(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 er(e){let t=Xe(e),n=Fn(e,t.clear,(r,c)=>Bn(r,c,Xn)),i=oe(e,`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}`),o=r=>(...c)=>(t.clear(),r(...c)),s={getConsentStatus:()=>$e(e),acceptConsent:r=>Ye(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,...s}}async function tr(e){if(typeof window>"u")throw new Error("Akedly Shield challenges must be solved in a browser.");let t=await nr(),n=e.challengeRequired?await t.solvePow(e.challenge,e.difficulty):null,i=e.turnstile.required?await t.getTurnstileToken(ir(e.turnstile.siteKey)):void 0;return {connectionId:e.connectionId,...n?{challengeToken:e.challengeToken,nonce:n.nonce}:{},...i?{turnstileToken:i}:{}}}async function nr(){return import('@akedly/shield')}function ir(e){if(!e)throw new Error("Akedly Shield did not provide a Turnstile site key.");return e}async function or(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=>rr(i,e)}),"public-config")}function rr(e,t){let n=z(e),i=n.environmentId,o=n.environmentType,s=`${new URL(t.apiUrl).origin}/api/projects/${t.decoded.projectId}/auth`;if(typeof n.applicationId!="string"||!sr(n.applicationId)||i!==t.decoded.projectId||o!=="development"&&o!=="production"||n.authBaseUrl!==s)throw v();let r=E(n.branding),c=E(n.legal);if(!Qe(n.enabledMethods,64)||!Qe(n.socialProviders,64)||!ni(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"||!ni(c,["termsUrl","privacyUrl"])||!Number.isSafeInteger(c.version)||c.version<0||typeof c.required!="boolean")throw v();if(n.socialProviderClientIds!==void 0){let a=E(n.socialProviderClientIds);if(Object.keys(a).length>64||Object.values(a).some(g=>typeof g!="string"||g.length>2048))throw v()}if(!L(n,["requireEmailVerification","twoFactor","mfaRequired","accountDeletion","organizations","sso","badge"])||!ti(n.turnstileSiteKey)||!ti(n.authTurnstileSiteKey)||typeof n.locale!="string"||n.locale.length===0||n.locale.length>64||!Number.isSafeInteger(n.configVersion)||n.configVersion<0)throw v();if(n.jwtIssuer!==null){let a=E(n.jwtIssuer);if(a.issuer!==s||a.jwksUrl!==`${s}/jwks`||a.aud!==t.decoded.projectId)throw v()}if(n.signUp!==void 0){let a=E(n.signUp).mode;if(typeof a!="string"||!["open","restricted","allowlist","waitlist"].includes(a))throw v()}if(n.authentication!==void 0&&ar(n.authentication),n.emailVerification!==void 0){let a=E(n.emailVerification);if(!L(a,["required"])||a.method!=="link"&&a.method!=="code")throw v()}if(n.userModel!==void 0&&!L(E(n.userModel),["requireEmail","firstLastName","emailChange","accountDeletion"]))throw v();if(n.mfa!==void 0){let a=E(n.mfa);if(!L(a,["totp","required","backupCodes"])||(a.required===true||a.backupCodes===true)&&a.totp!==true)throw v()}return n}function sr(e){return /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e)}function v(){return new TypeError("public-config returned an invalid response")}function E(e){if(!e||typeof e!="object"||Array.isArray(e))throw v();return e}function ti(e){return e===null||typeof e=="string"&&e.length<=4096}function ar(e){let t=E(e),n=E(t.email),i=E(t.password),o=i.minLength!==void 0||i.maxLength!==void 0;if(!L(n,["signUp"])||!Qe(n.signIn,3)||n.signIn.some(s=>s!=="password"&&s!=="magic_link"&&s!=="email_otp")||!L(E(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(E(t.passkey),["signIn","add"])||!L(E(t.username),["collectOnSignUp","signIn"]))throw v()}function L(e,t){return t.every(n=>typeof e[n]=="boolean")}function ni(e,t){return t.every(n=>e[n]===void 0||typeof e[n]=="string"&&e[n].length<=4096)}function Qe(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 ne=class extends Error{constructor(n,i){super(n);this.cause=i;this.name="AuthOwlError";}cause},Ze=class extends ne{constructor(n,i){super(`Rate limited. Retry after ${n}s.`,i);this.retryAfterSeconds=n;this.name="RateLimitedError";}retryAfterSeconds},et=class extends ne{constructor(t="invalid publishable key",n){super(t,n),this.name="InvalidKeyError";}};var ii=["en","ar"];function cr(e){return e==="ar"?"rtl":"ltr"}function ur(e){return typeof e=="string"&&ii.includes(e)}
|
|
3
|
+
exports.AUTH_CHALLENGE_HEADER=dt;exports.AuthOwlError=ne;exports.AuthOwlHttpError=Se;exports.InvalidKeyError=et;exports.LOCALES=ii;exports.RateLimitedError=Ze;exports.TransportError=P;exports.acceptConsent=Ye;exports.createAuthOwlClient=er;exports.createIdempotencyKey=_e;exports.createMembershipHas=Vi;exports.createTokenClient=Xe;exports.decodePublishableKey=Pe;exports.directionFor=cr;exports.getConsentStatus=$e;exports.getPublicConfig=or;exports.isLocale=ur;exports.membershipHas=ce;exports.membershipHasPermission=ae;exports.membershipHasTeam=bt;exports.resolveConfig=ui;exports.resolveProjectCapabilities=li;exports.sessionCookieName=ci;exports.solvePhoneOtpChallenge=tr;
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export{a as LOCALES,b as directionFor,c as isLocale}from'./chunk-M4QJVSXT.js';import {i,j as j$1,e,g as g$1,c as c$1}from'./chunk-
|
|
1
|
+
export{a as LOCALES,b as directionFor,c as isLocale}from'./chunk-M4QJVSXT.js';import {i,j as j$1,e,g as g$1,c as c$1}from'./chunk-MX7KKUAW.js';export{b as AUTH_CHALLENGE_HEADER,h as AuthOwlHttpError,d as createIdempotencyKey,k as getPublicConfig,a as resolveProjectCapabilities}from'./chunk-MX7KKUAW.js';import {h,j as j$2,i as i$1}from'./chunk-KPXCQZUX.js';export{f as TransportError,v as createMembershipHas,a as decodePublishableKey,u as membershipHas,s as membershipHasPermission,t as membershipHasTeam,e as resolveConfig,b as sessionCookieName}from'./chunk-KPXCQZUX.js';import'./chunk-T5SH3ZZP.js';function u(e){let n=new Uint8Array(e),t="";for(let o of n)t+=String.fromCharCode(o);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function g(e){let n=e.replace(/-/g,"+").replace(/_/g,"/"),t=(4-n.length%4)%4,i=n.padEnd(n.length+t,"="),o=atob(i),s=new ArrayBuffer(o.length),a=new Uint8Array(s);for(let l=0;l<o.length;l++)a[l]=o.charCodeAt(l);return s}function y(){return be.stubThis(globalThis?.PublicKeyCredential!==void 0&&typeof globalThis.PublicKeyCredential=="function")}var be={stubThis:e=>e};function C(e){let{id:n}=e;return {...e,id:g(n),transports:e.transports}}function T(e){return e==="localhost"||/^((xn--[a-z0-9-]+|[a-z0-9]+(-[a-z0-9]+)*)\.)+([a-z]{2,}|xn--[a-z0-9-]+)$/i.test(e)}var c=class extends Error{constructor({message:n,code:t,cause:i,name:o}){super(n,{cause:i}),Object.defineProperty(this,"code",{enumerable:true,configurable:true,writable:true,value:void 0}),this.name=o??i.name,this.code=t;}};function W({error:e,options:n}){let{publicKey:t}=n;if(!t)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(n.signal instanceof AbortSignal)return new c({message:"Registration ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else if(e.name==="ConstraintError"){if(t.authenticatorSelection?.requireResidentKey===true)return new c({message:"Discoverable credentials were required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT",cause:e});if(n.mediation==="conditional"&&t.authenticatorSelection?.userVerification==="required")return new c({message:"User verification was required during automatic registration but it could not be performed",code:"ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE",cause:e});if(t.authenticatorSelection?.userVerification==="required")return new c({message:"User verification was required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT",cause:e})}else {if(e.name==="InvalidStateError")return new c({message:"The authenticator was previously registered",code:"ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED",cause:e});if(e.name==="NotAllowedError")return new c({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="NotSupportedError")return t.pubKeyCredParams.filter(o=>o.type==="public-key").length===0?new c({message:'No entry in pubKeyCredParams was of type "public-key"',code:"ERROR_MALFORMED_PUBKEYCREDPARAMS",cause:e}):new c({message:"No available authenticator supported any of the specified pubKeyCredParams algorithms",code:"ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG",cause:e});if(e.name==="SecurityError"){let i=globalThis.location.hostname;if(T(i)){if(t.rp.id!==i)return new c({message:`The RP ID "${t.rp.id}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new c({message:`${globalThis.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="TypeError"){if(t.user.id.byteLength<1||t.user.id.byteLength>64)return new c({message:"User ID was not between 1 and 64 characters",code:"ERROR_INVALID_USER_ID_LENGTH",cause:e})}else if(e.name==="UnknownError")return new c({message:"The authenticator was unable to process the specified options, or could not create a new credential",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return e}var I=class{constructor(){Object.defineProperty(this,"controller",{enumerable:true,configurable:true,writable:true,value:void 0});}createNewAbortSignal(){if(this.controller){let t=new Error("Cancelling existing WebAuthn API call for new one");t.name="AbortError",this.controller.abort(t);}let n=new AbortController;return this.controller=n,n.signal}cancelCeremony(){if(this.controller){let n=new Error("Manually cancelling existing WebAuthn API call");n.name="AbortError",this.controller.abort(n),this.controller=void 0;}}},k=new I;var Re=["cross-platform","platform"];function P(e){if(e&&!(Re.indexOf(e)<0))return e}async function j(e){!e.optionsJSON&&e.challenge&&(console.warn("startRegistration() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information."),e={optionsJSON:e});let{optionsJSON:n,useAutoRegister:t=false}=e;if(!y())throw new Error("WebAuthn is not supported in this browser");let i={...n,challenge:g(n.challenge),user:{...n.user,id:g(n.user.id)},excludeCredentials:n.excludeCredentials?.map(C)},o={};t&&(o.mediation="conditional"),o.publicKey=i,o.signal=k.createNewAbortSignal();let s;try{s=await navigator.credentials.create(o);}catch(p){throw W({error:p,options:o})}if(!s)throw new Error("Registration was not completed");let{id:a,rawId:l,response:r,type:O}=s,d;typeof r.getTransports=="function"&&(d=r.getTransports());let h;if(typeof r.getPublicKeyAlgorithm=="function")try{h=r.getPublicKeyAlgorithm();}catch(p){U("getPublicKeyAlgorithm()",p);}let f;if(typeof r.getPublicKey=="function")try{let p=r.getPublicKey();p!==null&&(f=u(p));}catch(p){U("getPublicKey()",p);}let m;if(typeof r.getAuthenticatorData=="function")try{m=u(r.getAuthenticatorData());}catch(p){U("getAuthenticatorData()",p);}return {id:a,rawId:u(l),response:{attestationObject:u(r.attestationObject),clientDataJSON:u(r.clientDataJSON),transports:d,publicKeyAlgorithm:h,publicKey:f,authenticatorData:m},type:O,clientExtensionResults:s.getClientExtensionResults(),authenticatorAttachment:P(s.authenticatorAttachment)}}function U(e,n){console.warn(`The browser extension that intercepted this WebAuthn API call incorrectly implemented ${e}. You should report this error to them.
|
|
2
2
|
`,n);}function $(){if(!y())return v.stubThis(new Promise(n=>n(false)));let e=globalThis.PublicKeyCredential;return e?.isConditionalMediationAvailable===void 0?v.stubThis(new Promise(n=>n(false))):v.stubThis(e.isConditionalMediationAvailable())}var v={stubThis:e=>e};function Y({error:e,options:n}){let{publicKey:t}=n;if(!t)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(n.signal instanceof AbortSignal)return new c({message:"Authentication ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else {if(e.name==="NotAllowedError")return new c({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="SecurityError"){let i=globalThis.location.hostname;if(T(i)){if(t.rpId!==i)return new c({message:`The RP ID "${t.rpId}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new c({message:`${globalThis.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="UnknownError")return new c({message:"The authenticator was unable to process the specified options, or could not create a new assertion signature",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return e}async function Q(e){!e.optionsJSON&&e.challenge&&(console.warn("startAuthentication() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information."),e={optionsJSON:e});let{optionsJSON:n,useBrowserAutofill:t=false,verifyBrowserAutofillInput:i=true}=e;if(!y())throw new Error("WebAuthn is not supported in this browser");let o;n.allowCredentials?.length!==0&&(o=n.allowCredentials?.map(C));let s={...n,challenge:g(n.challenge),allowCredentials:o},a={};if(t){if(!await $())throw Error("Browser does not support WebAuthn autofill");if(document.querySelectorAll("input[autocomplete$='webauthn']").length<1&&i)throw Error('No <input> with "webauthn" as the only or last value in its `autocomplete` attribute was detected');a.mediation="conditional",s.allowCredentials=[];}a.publicKey=s,a.signal=k.createNewAbortSignal();let l;try{l=await navigator.credentials.get(a);}catch(m){throw Y({error:m,options:a})}if(!l)throw new Error("Authentication was not completed");let{id:r,rawId:O,response:d,type:h}=l,f;return d.userHandle&&(f=u(d.userHandle)),{id:r,rawId:u(O),response:{authenticatorData:u(d.authenticatorData),clientDataJSON:u(d.clientDataJSON),signature:u(d.signature),userHandle:f},type:h,clientExtensionResults:l.getClientExtensionResults(),authenticatorAttachment:P(l.authenticatorAttachment)}}var Z={authenticate:e=>Q(e),register:e=>j(e),errorCode:e=>e instanceof c?e.code:void 0};function ee(e){return `${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/consent`}async function _(e){let n=await i(e,ee(e),{init:{method:"GET",credentials:"include"},maxResponseBytes:65536,decode:we});return n.response.status===401?{required:false}:j$1(n,"consent status")}async function F(e,n){if(!Number.isSafeInteger(n)||n<1)throw new TypeError("Consent version must be a positive integer.");return j$1(await i(e,ee(e),{init:{method:"POST",headers:{"content-type":"application/json"},credentials:"include",body:JSON.stringify({version:n})},maxResponseBytes:64*1024,decode:Se}),"consent accept")}function we(e){let n=h(e),t=j$2(n.required),i=Ee(n.needsConsent),o=te(n.version),s=X(n.termsUrl),a=X(n.privacyUrl);return {required:t,...i===void 0?{}:{needsConsent:i},...o===void 0?{}:{version:o},...s===void 0?{}:{termsUrl:s},...a===void 0?{}:{privacyUrl:a}}}function Se(e){let n=h(e),t=te(n.version);return {ok:j$2(n.ok),...t===void 0?{}:{version:t}}}function Ee(e){if(e===void 0||typeof e=="boolean")return e;throw new TypeError("Invalid consent response.")}function te(e){if(e===void 0||Number.isSafeInteger(e)&&e>=1)return e;throw new TypeError("Invalid consent response.")}function X(e){if(e===void 0||typeof e=="string"&&e.length<=4096)return e;throw new TypeError("Invalid consent response.")}var Ce=30;function Te(e){return typeof e?.exp=="number"?e.exp:null}function ke(e){let n=e.split(".")[1];if(!n)return null;try{let t=n.replace(/-/g,"+").replace(/_/g,"/"),i=JSON.parse(atob(t));return typeof i=="object"&&i!==null?i:null}catch{return null}}function N(e){let n=new Map;async function t(s={}){let a=s.template===void 0?null:s.template.trim().toLowerCase();if(a==="")throw new TypeError("Template missing");let l=a??"",r=n.get(l);r||(r={activeKey:null,cachedByKey:new Map,inflight:null,sequence:0},n.set(l,r));let O=s.forceRefresh===true;if(!O){let p=r.activeKey?r.cachedByKey.get(r.activeKey):null;if(p&&p.exp-Date.now()/1e3>Ce)return p.token;if(r.inflight)return r.inflight}let d=++r.sequence,h=()=>n.get(l)===r&&r.sequence===d,f=(async()=>{let p=a?`${e.projectBaseURL}/token/${encodeURIComponent(a)}`:`${e.projectBaseURL}/token`,K=await i(e,p,{init:{method:"GET",credentials:"include"},maxResponseBytes:64*1024,decode:E=>Pe(E,a!==null)});if(K.response.status===401)return h()&&i$1(),null;let z=j$1(K,"token"),ne=z.policyVersion,x=z.token,b=ke(x),M=Te(b);if(h())if(M!==null){let E=typeof b?.sub=="string"?b.sub:null,oe=typeof b?.org_id=="string"?b.org_id:null;if(!a||E){let B=JSON.stringify([e.projectBaseURL,E,oe,a,ne]);r.cachedByKey.clear(),r.cachedByKey.set(B,{token:x,exp:M}),r.activeKey=B;}else o(r);}else o(r);return x})();if(O)return f;let m=f.finally(()=>{r.inflight===m&&(r.inflight=null);});return r.inflight=m,m}function i$1(){n.clear();}function o(s){s.cachedByKey.clear(),s.activeKey=null;}return {getToken:t,clear:i$1}}function Pe(e,n){let t=h(e),i=i$1(t.token);if(i.length===0||i.length>32*1024)throw new TypeError("Invalid token response.");if(!n)return {token:i,policyVersion:0};let o=h(t.template);if(!Number.isSafeInteger(o.policyVersion)||o.policyVersion<1)throw new TypeError("Invalid token response.");return {token:i,policyVersion:o.policyVersion}}function xe(e$1){let n=N(e$1),t=e(e$1,n.clear,(a,l)=>g$1(a,l,Z)),i=c$1(e$1,`${new URL(e$1.apiUrl).origin}/api/projects/${e$1.decoded.projectId}`),o=a=>(...l)=>(n.clear(),a(...l)),s={getConsentStatus:()=>_(e$1),acceptConsent:a=>F(e$1,a),getToken:n.getToken,waitlist:{join:(a,l)=>i.request("/waitlist",{method:"POST",body:a,fetchOptions:l,credentials:"omit"})},account:{...t.account,updateUnsafeMetadata:o(t.account.updateUnsafeMetadata),updateProfile:o(t.account.updateProfile),changeEmail:o(t.account.changeEmail),changePassword:o(t.account.changePassword),revokeSession:o(t.account.revokeSession),delete:o(t.account.delete)},signIn:{email:o(t.signIn.email),username:o(t.signIn.username),social:o(t.signIn.social),sso:t.signIn.sso,magicLink:t.signIn.magicLink,emailOtp:o(t.signIn.emailOtp),passkey:o(t.signIn.passkey)},signUp:{email:o(t.signUp.email)},emailOtp:{...t.emailOtp,verifyEmail:o(t.emailOtp.verifyEmail)},twoFactor:{enable:t.twoFactor.enable,disable:o(t.twoFactor.disable),verifyTotp:o(t.twoFactor.verifyTotp),verifyBackupCode:o(t.twoFactor.verifyBackupCode),sendOtp:t.twoFactor.sendOtp,verifyOtp:o(t.twoFactor.verifyOtp),generateBackupCodes:t.twoFactor.generateBackupCodes},phoneOtp:{prepare:t.phoneOtp.prepare,start:t.phoneOtp.start,verify:o(t.phoneOtp.verify)},signOut:o(t.signOut)};return {...t,...s}}async function De(e){if(typeof window>"u")throw new Error("Akedly Shield challenges must be solved in a browser.");let n=await Ie(),t=e.challengeRequired?await n.solvePow(e.challenge,e.difficulty):null,i=e.turnstile.required?await n.getTurnstileToken(Ue(e.turnstile.siteKey)):void 0;return {connectionId:e.connectionId,...t?{challengeToken:e.challengeToken,nonce:t.nonce}:{},...i?{turnstileToken:i}:{}}}async function Ie(){return import('@akedly/shield')}function Ue(e){if(!e)throw new Error("Akedly Shield did not provide a Turnstile site key.");return e}var S=class extends Error{constructor(t,i){super(t);this.cause=i;this.name="AuthOwlError";}cause},L=class extends S{constructor(t,i){super(`Rate limited. Retry after ${t}s.`,i);this.retryAfterSeconds=t;this.name="RateLimitedError";}retryAfterSeconds},V=class extends S{constructor(n="invalid publishable key",t){super(n,t),this.name="InvalidKeyError";}};
|
|
3
3
|
export{S as AuthOwlError,V as InvalidKeyError,L as RateLimitedError,F as acceptConsent,xe as createAuthOwlClient,N as createTokenClient,_ as getConsentStatus,De as solvePhoneOtpChallenge};
|
package/dist/native.cjs
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
'use strict';var mn=/^(pk_(live|test))_([0-9a-f-]{36})_([A-Za-z0-9]{20,})$/i,hn=/^sk_/i;function oe(e){if(typeof e!="string"||e.length===0)throw new Error("publishableKey is required");if(hn.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=mn.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]}}var ve=/^http:\/\/(?:(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*localhost|127\.0\.0\.1|\[::1\])(?::\d+)?(?:\/|$)/i;function re(e,t){throw new Error(`${e}: ${t}`)}function Ce(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&&ve.test(i)))throw new TypeError("Transport URL must use HTTPS except on approved loopback.");return n}function De(e,t){(typeof e!="string"||!/^https?:\/\/[^/?#@\\\s]+\/?$/i.test(e))&&re("apiUrl","origin required");let n;try{n=new URL(e);}catch{re("apiUrl","origin required");}return n.protocol==="http:"&&(!t.allowHttpLoopback||!ve.test(e))&&re("apiUrl","HTTPS required except exact loopback"),n.origin}function ae(e){if(!e||typeof e!="object")throw new Error("AuthConfig is required");let t=oe(e.publishableKey),n=De(e.apiUrl,{allowHttpLoopback:t.env==="test"}),i=`${n}/api/projects/${t.projectId}/auth`;return {...e,apiUrl:n,decoded:t,projectBaseURL:i}}var yn=1e4,An=1024*1024,S=class extends Error{kind;requestId;constructor(t,n){super(Tn(t)),this.name="TransportError",this.kind=t,this.requestId=n;}},Ue=new WeakSet;function I(e,t){let n=new S(e,t);return Ue.add(n),n}async function J({fetchImpl:e,url:t,init:n={},timeoutMs:i=yn,maxResponseBytes:o=An,allowHttpLoopback:a=false,decode:r}){Ee(i,"timeoutMs"),Ee(o,"maxResponseBytes");let s=Ce(t,{allowHttpLoopback:a}),u=n.signal,m=new AbortController,d=null,l,f=new Promise(b=>{l=b;}),g=b=>{d===null&&(d=b,l({type:"abort",kind:b}),m.abort());},A=()=>g("aborted");u?.addEventListener("abort",A,{once:true});let _=setTimeout(()=>g("timeout"),i);u?.aborted&&A();try{if(d!==null)throw I(d);let b;try{b=await Promise.race([e(s.toString(),{...n,redirect:"error",signal:m.signal}).then(gn=>({type:"response",response:gn})),f]);}catch{throw I(d??"network")}if(b.type==="abort")throw I(b.kind);if(!bn(b.response))throw I("invalid_response");let C=b.response,V=In(C.headers),fn=await On(C,o,f,()=>d,V),Pe=Rn(C,fn,V),xe;try{xe=C.ok&&r?r(Pe,Object.freeze({status:C.status})):Pe;}catch{throw I("invalid_response",V)}return {response:C,data:xe,...V===void 0?{}:{requestId:V}}}catch(b){throw b instanceof S&&Ue.has(b)?b:I(d??"network")}finally{clearTimeout(_),u?.removeEventListener("abort",A);}}function bn(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 On(e,t,n,i,o){let a=e.headers.get("content-length");if(a!==null){if(!/^\d+$/.test(a))throw ze(e.body),I("invalid_response",o);if(Number(a)>t)throw ze(e.body),I("response_too_large",o)}if(!e.body)return "";let r;try{r=e.body.getReader();}catch{throw I("network",o)}let s=[],u=0,m=null;try{for(;;){let f;try{f=await Promise.race([r.read(),n]);}catch{m=I(i()??"network",o);break}if(wn(f)){m=I(f.kind,o);break}let{done:g,value:A}=f;if(g)break;if(A.byteLength!==0){if(u+=A.byteLength,u>t){m=I("response_too_large",o);break}s.push(A);}}}finally{m&&kn(r);try{r.releaseLock();}catch{}}if(m)throw m;let d=new Uint8Array(u),l=0;for(let f of s)d.set(f,l),l+=f.byteLength;try{return new TextDecoder("utf-8",{fatal:!0}).decode(d)}catch{throw I("invalid_response",o)}}function wn(e){return "type"in e&&e.type==="abort"}function ze(e){if(e)try{e.cancel().catch(()=>{});}catch{}}function kn(e){try{e.cancel().catch(()=>{});}catch{}}function Rn(e,t,n){if(e.status===204||e.status===205)return null;let i=Sn(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 Sn(e){if(e===null)return false;let t=e.split(";",1)[0]?.trim().toLowerCase();return t==="application/json"||t?.endsWith("+json")===true}function In(e){let t=e.get("x-request-id")?.trim();if(!(!t||t.length>256||!/^[A-Za-z0-9._:-]+$/.test(t)))return t}function Ee(e,t){if(!Number.isInteger(e)||e<=0)throw new TypeError(`${t} must be a positive integer.`)}function Tn(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 Pn="x-authowl-turnstile-token",xn=1e4,vn=32,Cn=2e4;function M(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 Me(e,t=e.projectBaseURL){return {async request(n,i={}){let o=En(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(Pn,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 m=zn(a,i.fetchOptions),d;try{d=await Dn(e,o,{...s,signal:i.fetchOptions?.signal},m);}catch(b){let C=_e(b);return await i.fetchOptions?.onError?.(se(u,C,_n(b))),{data:null,error:C}}let{response:l,requestId:f}=d,g=Fn(n,d.data),A=g;if(l.ok)try{A=ce(g),i.decode&&(A=i.decode(A));}catch{let b=_e(new S("invalid_response",f));return await i.fetchOptions?.onError?.(se(u,b,"invalid_response")),{data:null,error:b}}let _=Object.freeze({...u,status:l.status,...f===void 0?{}:{requestId:f}});if(await i.fetchOptions?.onResponse?.(_),!l.ok){let b=Un(l,g,f);return await i.fetchOptions?.onError?.(se(u,b,"api")),{data:null,error:b}}return await i.fetchOptions?.onSuccess?.(_),{data:A,error:null}}}}async function Dn(e,t,n,i){let o=Date.now()+xn;for(let a=0;a<i;a+=1){let r=o-Date.now();if(r<=0)throw new S("timeout");try{let s=await J({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 S)||s.kind!=="network")throw s}await Mn(50*2**a,n.signal,o);}throw new S("network")}function zn(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 En(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 Un(e,t,n){let i=K(t)?t:{},o=Nn(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 Nn(e,t){let n=(typeof e.retryAfterSeconds=="number"&&Number.isFinite(e.retryAfterSeconds)?e.retryAfterSeconds:void 0)??Ne(t.get("retry-after"))??Ne(t.get("x-retry-after"));if(n!==void 0)return Math.min(Math.max(Math.trunc(n),1),86400)}function Ne(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 _e(e){let t=e instanceof S?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 S&&e.requestId?{requestId:e.requestId}:{}}}function se(e,t,n){return Object.freeze({...e,status:t.status??0,...t.requestId===void 0?{}:{requestId:t.requestId},failure:n})}function _n(e){return e instanceof S?e.kind:"network"}function Mn(e,t,n){return new Promise((i,o)=>{if(t?.aborted){o(new S("aborted"));return}let a=n-Date.now();if(a<=0){o(new S("timeout"));return}let r=Math.min(e,a),s=()=>{clearTimeout(u),o(new S("aborted"));},u=setTimeout(()=>{t?.removeEventListener("abort",s),Date.now()>=n?o(new S("timeout")):i();},r);t?.addEventListener("abort",s,{once:true}),t?.aborted&&s();})}function ce(e,t="",n=0,i={nodes:0}){if(i.nodes+=1,n>vn||i.nodes>Cn)throw new Error("response traversal limit exceeded");if(typeof e=="string"&&/^(?:createdAt|updatedAt|expiresAt)$/.test(t)){let o=new Date(e);return Number.isNaN(o.getTime())?e:o}return Array.isArray(e)?e.map(o=>ce(o,"",n+1,i)):K(e)?Object.fromEntries(Object.entries(e).map(([o,a])=>[o,Ln(o)?a:ce(a,o,n+1,i)])):e}function Ln(e){return e==="metadata"||e==="public_metadata"||e==="unsafe_metadata"||e==="private_metadata"||e==="publicMetadata"||e==="unsafeMetadata"||e==="privateMetadata"}function Fn(e,t){if(e==="/list-sessions"&&Array.isArray(t))return t.map(o=>K(o)?ue(o):o);if(!K(t))return t;let i=e==="/change-password"||e==="/passkey/verify-authentication"||e==="/phone-otp/verify"||e==="/sign-up/email"||e.startsWith("/sign-in/")||e.startsWith("/two-factor/verify-")?ue(t):t;return e==="/sign-up/email"&&!("sessionCreated"in i)&&(i={...i,sessionCreated:typeof t.token=="string"&&t.token.length>0}),(e==="/get-session"||e==="/passkey/verify-authentication")&&K(i.session)&&(i={...i,session:ue(i.session)}),i}function ue(e){if(!Object.hasOwn(e,"token"))return e;let t={...e};return delete t.token,t}function K(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}var qn=new Set(["__proto__","constructor","prototype"]);function p(e){(!e||typeof e!="object"||Array.isArray(e))&&c();let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null&&c(),e}function y(e){return typeof e!="string"&&c(),e}function O(e){return typeof e!="boolean"&&c(),e}function k(e){return (!(e instanceof Date)||Number.isNaN(e.getTime()))&&c(),e}function W(e){return (!Array.isArray(e)||!e.every(t=>typeof t=="string"))&&c(),[...e]}function w(e,t){let n=e[t];return n==null||typeof n=="string"?n:c()}function Le(e,t){let n=e[t];return n==null||typeof n=="boolean"?n:c()}function x(e){let t=p(e),n=t.email;return n!==null&&typeof n!="string"&&c(),{id:y(t.id),email:n,emailVerified:O(t.emailVerified),createdAt:k(t.createdAt),updatedAt:k(t.updatedAt),...P("phoneNumber",w(t,"phoneNumber")),...P("username",w(t,"username")),...P("displayUsername",w(t,"displayUsername")),...P("firstName",w(t,"firstName")),...P("lastName",w(t,"lastName")),...P("name",w(t,"name")),...P("image",w(t,"image")),...P("twoFactorEnabled",Le(t,"twoFactorEnabled"))}}function $(e){let t=p(e),n=t.membership;return {id:y(t.id),userId:y(t.userId),expiresAt:k(t.expiresAt),...P("activeOrganizationId",w(t,"activeOrganizationId")),...P("activeTeamId",w(t,"activeTeamId")),...P("membership",n==null?n:Hn(n)),...P("pendingMfaEnrollment",Le(t,"pendingMfaEnrollment"))}}function c(){throw new TypeError("AuthOwl response does not match its runtime contract.")}function D(e,t=20,n=1e4){return (!e||typeof e!="object"||Array.isArray(e))&&c(),le(e,t,n)}function le(e,t=20,n=1e4){return de(e,0,{nodes:0},t,n)}function Hn(e){let t=p(e);return {role:y(t.role),permissions:W(t.permissions),...t.teams===void 0?{}:{teams:W(t.teams)}}}function de(e,t,n,i,o){if(n.nodes+=1,(t>i||n.nodes>o)&&c(),e===null||typeof e=="string"||typeof e=="boolean")return e;if(typeof e=="number")return Number.isFinite(e)||c(),e;if(Array.isArray(e))return e.map(s=>de(s,t+1,n,i,o));(!e||typeof e!="object")&&c();let a=Object.getPrototypeOf(e);a!==Object.prototype&&a!==null&&c();let r={};for(let[s,u]of Object.entries(e))qn.has(s)&&c(),r[s]=de(u,t+1,n,i,o);return r}function P(e,t){return t===void 0?{}:{[e]:t}}function qe(e,t){let n=new Set,i=null,o=null,a=null,r,s=g=>{d(g);};r={data:null,isPending:true,isRefetching:false,error:null,refetch:s};function u(g){r=g;for(let A of n)A();}async function m(g){return e.request("/get-session",{query:g?.query,decode:Fe})}async function d(g){a?.abort();let A=new AbortController;a=A,u({...r,isPending:r.data===null&&r.error===null,isRefetching:r.data!==null});let _=await e.request("/get-session",{query:g?.query,fetchOptions:{signal:A.signal},decode:Fe});a===A&&(a=null,u({data:_.data,error:_.error,isPending:false,isRefetching:false,refetch:s}));}function l(){if(typeof window>"u"||o)return;let g=()=>{d();},A=()=>{document.visibilityState==="visible"&&d();};window.addEventListener("focus",g),document.addEventListener("visibilitychange",A),typeof BroadcastChannel<"u"&&(i=new BroadcastChannel(`authowl:${t}`),i.addEventListener("message",g)),o=()=>{window.removeEventListener("focus",g),document.removeEventListener("visibilitychange",A),i?.close(),i=null,o=null;};}function f(g){return n.add(g),n.size===1&&(l(),d()),()=>{n.delete(g),n.size===0&&(a?.abort(),a=null,o?.());}}return {store:{subscribe:f,getSnapshot:()=>r},getSession:m,notifyMutation(){i?.postMessage({type:"session-changed"}),n.size>0&&d({query:{disableCookieCache:true}});}}}function Fe(e){if(e===null)return null;let t=p(e);return (t.session===void 0||t.user===void 0)&&c(),{session:$(t.session),user:x(t.user)}}function He(){let e=globalThis.crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=Array.from(e,n=>n.toString(16).padStart(2,"0")).join("");return `${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}async function Ve(e,t){return e.request("/user/metadata",{fetchOptions:t,decode:je})}async function Ke(e,t,n){return e.request("/user/metadata",{method:"PATCH",body:{expected_version:t.expectedVersion,unsafe_metadata:t.unsafeMetadata},fetchOptions:n,decode:je})}function je(e){let t=p(e),n=D(t.public_metadata),i=D(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 Je(e,t){let{post:n,mutation:i}=M(e,t);return {getMetadata:o=>Ve(e,o),updateUnsafeMetadata:(o,a)=>Ke(e,o,a),updateProfile:(o,a)=>i(n("/update-user",o,a,j)),changeEmail:(o,a)=>i(n("/change-email",o,a,j)),changePassword:(o,a)=>i(n("/change-password",o,a,Vn)),listSessions:o=>e.request("/list-sessions",{fetchOptions:o,decode:Kn}),revokeSession:({sessionId:o},a)=>i(n("/revoke-session",{sessionId:o},a,j)),revokeOtherSessions:o=>i(n("/revoke-other-sessions",{},o,j)),listSocialAccounts:async o=>{let a=await e.request("/list-accounts",{fetchOptions:o,decode:jn});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,Bn),unlinkSocial:(o,a)=>i(n("/unlink-account",o,a,j)),delete:(o={},a)=>i(n("/delete-user",o,a,Jn))}}function j(e){let t=p(e);return {status:O(t.status)}}function Vn(e){let t=p(e);return {user:x(t.user)}}function Kn(e){return Array.isArray(e)||c(),e.map(t=>{let n=p(t);return {id:y(n.id),userId:y(n.userId),createdAt:k(n.createdAt),updatedAt:k(n.updatedAt),expiresAt:k(n.expiresAt),...Be("ipAddress",w(n,"ipAddress")),...Be("userAgent",w(n,"userAgent"))}})}function jn(e){return Array.isArray(e)||c(),e.map(t=>{let n=p(t);return {id:y(n.id),userId:y(n.userId),providerId:y(n.providerId),accountId:y(n.accountId),scopes:W(n.scopes),createdAt:k(n.createdAt),updatedAt:k(n.updatedAt)}})}function Bn(e){let t=p(e);return {url:y(t.url),redirect:O(t.redirect)}}function Jn(e){let t=p(e);return {success:O(t.success),message:y(t.message)}}function Be(e,t){return t===void 0?{}:{[e]:t}}function pe(e,t){return !e||!t?false:e.permissions.includes(t)}function Wn(e,t){return !e||!t?false:e.teams?.includes(t)??false}function fe(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&&!Wn(e,o))}function $n(e){return {has:t=>fe(e,t),hasPermission:t=>pe(e,t.permission)}}var Gn=new Set(["pending","accepted","rejected","canceled"]),We=1e4;function L(e,t,n){let i=p(e),o={id:h(i.id),name:h(i.name),slug:h(i.slug),createdAt:k(i.createdAt),...G("logo",w(i,"logo")),...G("metadata",i.metadata===void 0?void 0:le(i.metadata))};return U(o.id,t),U(o.slug,n),o}function $e(e){return N(e,L)}function ge(e,t,n){return e===null?null:(t===null&&c(),L(e,t,n))}function Ge(e,t,n){if(e===null)return null;let i=p(e),o=L(i,t,n);return {...o,members:N(i.members,a=>ut(a,o.id)),invitations:N(i.invitations,a=>z(a,void 0,o.id))}}function Xe(e,t){let n=N(e,i=>st(i));return X(n.map(i=>i.organizationId),t),n}function Ye(e,t,n){return e===null?null:(t===null&&c(),st(e,t,n))}function Qe(e,t){let n=p(e);return (!Number.isSafeInteger(n.total)||n.total<0)&&c(),{members:Xn(n.members,t),total:n.total}}function z(e,t,n){let i=p(e),o=h(i.status);Gn.has(o)||c();let a={id:h(i.id),organizationId:h(i.organizationId),email:h(i.email),role:h(i.role),status:o,inviterId:h(i.inviterId),expiresAt:k(i.expiresAt),createdAt:k(i.createdAt)};return U(a.id,t),U(a.organizationId,n),a}function Ze(e,t){let n=N(e,i=>z(i));return X(n.map(i=>i.organizationId),t),n}function et(e){return N(e,t=>{let n=p(t);return {...z(n),organizationName:h(n.organizationName)}})}function tt(e,t){let n=p(e);return {...z(n,t),organizationName:h(n.organizationName),organizationSlug:h(n.organizationSlug),inviterEmail:h(n.inviterEmail)}}function nt(e,t){let n=p(e),i=z(n.invitation,t);return {invitation:i,member:F(n.member,void 0,i.organizationId)}}function it(e,t){let n=p(e);return n.member!==null&&c(),{invitation:n.invitation===null?null:z(n.invitation,t),member:null}}function ot(e,t){return e===null?null:z(e,t)}function rt(e,t,n){let i=p(e);return {member:F(i.member,n,t)}}function F(e,t,n){let i=p(e),o={id:h(i.id),organizationId:h(i.organizationId),userId:h(i.userId),role:h(i.role),createdAt:k(i.createdAt),...i.user===void 0?{}:{user:ct(i.user)}};return U(o.id,t),U(o.organizationId,n),o}function at(e,t){let n=N(e,i=>{let o=p(i);return {organizationId:h(o.organizationId),data:{role:h(o.role),...G("permission",o.permission===void 0?void 0:Yn(o.permission))}}});return X(n.map(i=>i.organizationId),t),n.map(i=>i.data)}function st(e,t,n){let i=p(e),o=i.updatedAt,a={id:h(i.id),name:h(i.name),organizationId:h(i.organizationId),createdAt:k(i.createdAt),...o===void 0?{}:{updatedAt:k(o)}};return U(a.id,t),U(a.organizationId,n),a}function ut(e,t){let n=p(e);return {...F(n,void 0,t),user:ct(n.user)}}function Xn(e,t){let n=N(e,i=>ut(i));return X(n.map(i=>i.organizationId),t),n}function Yn(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>We||!Array.isArray(o))&&c(),n[i]=o.map(a=>h(a));return n}function h(e){let t=y(e);return (t.length===0||t.length>We)&&c(),t}function U(e,t){t!==void 0&&e!==t&&c();}function X(e,t){let n=t??e[0];n!==void 0&&e.some(i=>i!==n)&&c();}function ct(e){let t=p(e);return {id:h(t.id),name:h(t.name),email:h(t.email),...G("image",w(t,"image"))}}function N(e,t){return Array.isArray(e)||c(),e.map(n=>t(n))}function G(e,t){return t===void 0?{}:{[e]:t}}function dt(e,t,n=()=>null){let{post:i,mutation:o}=M(e,t),a=(r,s,u,m)=>e.request(r,{query:s,fetchOptions:u,decode:m});return {create:(r,s)=>o(i("/organization/create",r,s,L)),list:r=>a("/organization/list",void 0,r,$e),get:(r={},s)=>a("/organization/get-full-organization",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,membersLimit:r.membersLimit},s,u=>Ge(u,r.organizationId,r.organizationSlug)),setActive:(r,s)=>o(i("/organization/set-active",r,s,u=>ge(u,r.organizationId,r.organizationSlug))),listTeams:(r={},s)=>a("/organization/list-teams",{organizationId:r.organizationId},s,u=>Xe(u,r.organizationId)),setActiveTeam:(r,s)=>o(i("/organization/set-active-team",r,s,u=>Ye(u,r.teamId))),update:(r,s)=>o(i("/organization/update",r,s,u=>ge(u,r.organizationId))),delete:(r,s)=>o(i("/organization/delete",r,s,u=>L(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=>Qe(u,r.organizationId)),inviteMember:(r,s)=>o(i("/organization/invite-member",r,s,u=>z(u,void 0,r.organizationId))),listInvitations:(r={},s)=>a("/organization/list-invitations",{organizationId:r.organizationId},s,u=>Ze(u,r.organizationId)),listUserInvitations:r=>a("/organization/list-user-invitations",void 0,r,et),getInvitation:(r,s)=>a("/organization/get-invitation",{id:r.id},s,u=>tt(u,r.id)),acceptInvitation:(r,s)=>o(i("/organization/accept-invitation",r,s,u=>nt(u,r.invitationId))),rejectInvitation:(r,s)=>o(i("/organization/reject-invitation",r,s,u=>it(u,r.invitationId))),cancelInvitation:(r,s)=>o(i("/organization/cancel-invitation",r,s,u=>ot(u,r.invitationId))),removeMember:(r,s)=>o(i("/organization/remove-member",r,s,u=>rt(u,r.organizationId,r.memberIdOrEmail.includes("@")?void 0:r.memberIdOrEmail))),updateMemberRole:(r,s)=>o(i("/organization/update-member-role",r,s,u=>F(u,r.memberId,r.organizationId))),leave:(r,s)=>o(i("/organization/leave",r,s,u=>F(u,void 0,r.organizationId))),listRoles:(r={},s)=>a("/organization/list-roles",{organizationId:r.organizationId},s,u=>at(u,r.organizationId)),has:r=>fe(n(),r),hasPermission:r=>pe(n(),r.permission)}}var lt=4096,Qn=4096,Zn=100,ei=256,ti=16,ni=64,ii=12;function he(e){let t=p(e);return t.twoFactorRedirect===true?((t.user!==void 0||t.redirect!==void 0||t.url!==void 0)&&c(),{twoFactorRedirect:true,...t.twoFactorMethods===void 0?{}:{twoFactorMethods:vt(t.twoFactorMethods,ti,ni)}}):(t.twoFactorRedirect!==void 0&&c(),{redirect:O(t.redirect),...ui(t,"url"),user:x(t.user)})}function pt(e){let t=p(e);return {user:x(t.user)}}function ft(e){let t=p(e);return {sessionCreated:O(t.sessionCreated),user:x(t.user)}}function gt(e,t){let n=p(e),i=O(n.redirect);n.user===null&&c();let o=n.user!==void 0&&n.user!==null,a=n.url!==void 0&&n.url!==null;return i?((o||!a)&&c(),{redirect:true,url:me(n.url,t)}):(o===a&&c(),o?{redirect:false,user:x(n.user)}:{redirect:false,url:me(n.url,t)})}function mt(e,t){let n=p(e);return (n.redirect!==true||n.user!==void 0)&&c(),{redirect:true,url:me(n.url,t)}}function ht(e){return {status:O(p(e).status)}}function yt(e){return {success:O(p(e).success)}}function At(e){return p(e).status!=="pending"&&c(),{status:"pending"}}function bt(e){let t=p(e);if(t.kind==="authowl_turnstile")return {kind:"authowl_turnstile"};t.kind!=="akedly_shield_v1_2"&&c();let n=p(t.turnstile),i=n.siteKey===null?null:y(n.siteKey);return {kind:"akedly_shield_v1_2",connectionId:y(t.connectionId),challenge:y(t.challenge),difficulty:oi(t.difficulty),challengeToken:y(t.challengeToken),challengeRequired:O(t.challengeRequired),turnstile:{required:O(n.required),siteKey:i}}}function oi(e){return (!Number.isSafeInteger(e)||Number(e)<0||Number(e)>ii)&&c(),Number(e)}function Ot(e){let t=p(e);return (t.status!==true||t.sessionCreated!==true)&&c(),{status:true,sessionCreated:true,user:ri(t.user)}}function ye(e){return {status:O(p(e).status)}}function wt(e){return {status:O(p(e).status)}}function kt(e){let t=p(e);return {status:O(t.status),user:x(t.user)}}function Rt(e){return {success:O(p(e).success)}}function St(e){let t=p(e);return {totpURI:si(t.totpURI),backupCodes:xt(t.backupCodes)}}function It(e){return {status:O(p(e).status)}}function Y(e){return p(e).status!==true&&c(),{status:true}}function Tt(e){return {status:O(p(e).status)}}function Pt(e){let t=p(e);return t.status!==void 0&&t.status!==true&&c(),{backupCodes:xt(t.backupCodes)}}function ri(e){let t=p(e);return {id:q(t.id,512),...ci(t,"name",1024),phoneNumber:q(t.phoneNumber,64),phoneNumberVerified:O(t.phoneNumberVerified),...t.createdAt===void 0?{}:{createdAt:k(t.createdAt)},...t.updatedAt===void 0?{}:{updatedAt:k(t.updatedAt)}}}function me(e,t){let n=q(e,lt);/[\u0000-\u0020\u007f]/u.test(n)&&c();let i;try{i=new URL(n);}catch{return c()}return (i.username||i.password)&&c(),i.protocol==="https:"||t&&i.protocol==="http:"&&ai(i.hostname)?i.href:c()}function ai(e){let t=e.toLowerCase();return t==="localhost"||t==="127.0.0.1"||t==="[::1]"}function si(e){let t=q(e,Qn),n;try{n=new URL(t);}catch{return c()}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))&&c(),t}function xt(e){return vt(e,Zn,ei)}function vt(e,t,n){(!Array.isArray(e)||e.length===0||e.length>t)&&c();let i=e.map(o=>q(o,n));return i.some(o=>o.trim().length===0)&&c(),new Set(i).size!==i.length&&c(),i}function q(e,t){let n=y(e);return (n.length===0||n.length>t)&&c(),n}function ui(e,t){let n=e[t];return n==null?{}:{[t]:q(n,lt)}}function ci(e,t,n){let i=w(e,t);return i===void 0?{}:(i!==null&&i.length>n&&c(),{[t]:i})}var Ct=new Set([1564,8206,8207,8234,8235,8236,8237,8238,8294,8295,8296,8297]),Q=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 Z(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)||Dt(i)||Ct.has(i))return {valid:false}}let t=di(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||zt(o,a)||Dt(a)||Ct.has(a))return false;n??=a,i=a;}return t>0&&n!==void 0&&i!==void 0&&!Q.has(n)&&!Q.has(i)}function ee(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_PASSKEY_NAME",message:"Passkey names must contain 1 to 256 safe Unicode characters."}}}function di(e){let t=0,n=e.length;for(;t<n;){let i=e.codePointAt(t);if(i===void 0||!Q.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||!Q.has(r))break;n=a;}return e.slice(t,n)}function Dt(e){return e>=0&&e<=31||e>=127&&e<=159}function zt(e,t){return e.length===1&&t>=55296&&t<=57343}var Nt=12,_t=5e3,li=8,pi=1e3,fi=16,Et=512,Mt=100,Lt=8192,gi=32768,be=1024,Ut=256,we=64,mi=6e5,hi=/^[A-Za-z0-9_-]+$/u,yi=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u,Ai=/[\u0000-\u001f\u007f-\u009f\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/u,bi=/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$/u,Oi=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu,Ft=new Set(["discouraged","preferred","required"]),wi=new Set(["singleDevice","multiDevice"]),qt=new Set(["ble","cable","hybrid","internal","nfc","smart-card","usb"]),Ht=new Set(["hybrid","security-key","client-device"]),ki=new Set(["none","indirect","direct","enterprise"]),Ri=new Set(["fido-u2f","packed","android-safetynet","android-key","tpm","apple","none"]),Si=new Set(["platform","cross-platform"]),Ii=new Set(["discouraged","preferred","required"]),Ti=new Set([-8,-7,-257]);function Vt(e){let t=D(e,Nt,_t);return {challenge:Qt(t.challenge),...R("timeout",Xt(t.timeout)),...R("rpId",Zt(t.rpId)),...R("allowCredentials",Gt(t.allowCredentials)),...R("userVerification",B(t.userVerification,Ft)),...R("hints",te(t.hints,Ht)),...R("extensions",Yt(t.extensions))}}function Kt(e){let t=D(e,Nt,_t);return {challenge:Qt(t.challenge),rp:Pi(t.rp),user:xi(t.user),pubKeyCredParams:vi(t.pubKeyCredParams),...R("timeout",Xt(t.timeout)),...R("excludeCredentials",Gt(t.excludeCredentials)),...R("authenticatorSelection",Ci(t.authenticatorSelection)),...R("attestation",B(t.attestation,ki)),...R("attestationFormats",te(t.attestationFormats,Ri)),...R("hints",te(t.hints,Ht)),...R("extensions",Yt(t.extensions))}}function jt(e){let t=p(e),n=$(t.session),i=x(t.user);return n.userId!==i.id&&c(),{session:n,user:i}}function ke(e){let t=p(e),n=t.counter;(!Number.isSafeInteger(n)||n<0)&&c();let i=Re(t.deviceType,wi),o=O(t.backedUp);return o&&i!=="multiDevice"&&c(),{id:H(t.id,Ut),...Ei(t),publicKey:Di(t.publicKey,gi),userId:H(t.userId,Ut),credentialID:ie(t.credentialID,Lt),counter:n,deviceType:i,backedUp:o,...Ui(t),createdAt:k(t.createdAt),...Ni(t)}}function Bt(e,t,n){let i=ke(e);return (i.credentialID!==t||(n===void 0?i.name!==void 0&&i.name!==null:i.name!==n))&&c(),i}function Jt(e){(!Array.isArray(e)||e.length>Mt)&&c();let t=e.map(ke);return ne(t.map(n=>n.id)),ne(t.map(n=>n.credentialID)),t.length>1&&t.some(n=>n.userId!==t[0]?.userId)&&c(),t}function Wt(e,t,n){let i=p(e),o=ke(i.passkey);return (o.id!==t||o.name!==n)&&c(),{passkey:o}}function $t(e){return p(e).status!==true&&c(),{status:true}}function Pi(e){let t=p(e);return {name:Oe(t.name,be),...R("id",Zt(t.id))}}function xi(e){let t=p(e);return {id:ie(t.id,128,1,64),name:Oe(t.name,be),displayName:Oe(t.displayName,be)}}function vi(e){(!Array.isArray(e)||e.length===0||e.length>we)&&c();let t=e.map(n=>{let i=p(n);return (i.type!=="public-key"||!Number.isSafeInteger(i.alg)||!Ti.has(i.alg))&&c(),{type:"public-key",alg:i.alg}});return _i(t.map(n=>n.alg)),t}function Gt(e){if(e===void 0)return;(!Array.isArray(e)||e.length>Mt)&&c();let t=e.map(n=>{let i=p(n);return i.type!=="public-key"&&c(),{type:"public-key",id:ie(i.id,Lt),...R("transports",te(i.transports,qt))}});return ne(t.map(n=>n.id)),t}function Ci(e){if(e===void 0)return;let t=p(e);t.requireResidentKey!==void 0&&typeof t.requireResidentKey!="boolean"&&c();let n=B(t.residentKey,Ii);return t.requireResidentKey!==void 0&&n!==void 0&&t.requireResidentKey!==(n==="required")&&c(),{...R("authenticatorAttachment",B(t.authenticatorAttachment,Si)),...R("residentKey",n),...R("requireResidentKey",t.requireResidentKey),...R("userVerification",B(t.userVerification,Ft))}}function Xt(e){return e!==void 0&&(typeof e!="number"||!Number.isFinite(e)||e<0||e>mi)&&c(),e}function Yt(e){return e===void 0?void 0:D(e,li,pi)}function te(e,t){if(e===void 0)return;(!Array.isArray(e)||e.length>we)&&c();let n=e.map(i=>Re(i,t));return ne(n),n}function B(e,t){if(e!==void 0)return Re(e,t)}function Qt(e){return ie(e,Math.ceil(Et*4/3),fi,Et)}function ie(e,t,n=1,i=Number.POSITIVE_INFINITY){let o=H(e,t),a=o.length%4,r=zi(o.at(-1)??""),s=Math.floor(o.length*3/4);return (!hi.test(o)||a===1||a===2&&(r&15)!==0||a===3&&(r&3)!==0||s<n||s>i)&&c(),o}function H(e,t){let n=y(e);return (n.length===0||n.length>t)&&c(),n}function Oe(e,t){let n=H(e,t);return Ai.test(n)&&c(),n}function Zt(e){if(e===void 0)return;let t=H(e,253);return t!=="localhost"&&(t.endsWith(".")||!t.includes(".")||t.split(".").some(n=>!bi.test(n)))&&c(),t}function Di(e,t){let n=H(e,t),i=n.endsWith("=="),o=!i&&n.endsWith("="),a=n.at(i?-3:o?-2:-1)??"",r=en(a);return (n.length%4!==0||!yi.test(n)||i&&(r&15)!==0||o&&(r&3)!==0)&&c(),n}function zi(e){return en(e,true)}function en(e,t=false){return (t?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").indexOf(e)}function Ei(e){let t=w(e,"name");return t===void 0?{}:(t!==null&&!Ae(t)&&c(),{name:t})}function Ui(e){let t=w(e,"transports");if(t==null||t==="")return t===void 0?{}:{transports:t};let n=t.split(",");return (n.length>we||n.some(i=>!qt.has(i))||new Set(n).size!==n.length)&&c(),{transports:t}}function Ni(e){let t=w(e,"aaguid");return t==null?t===void 0?{}:{aaguid:null}:(Oi.test(t)||c(),{aaguid:t})}function Re(e,t){let n=y(e);return t.has(n)||c(),n}function R(e,t){return t===void 0?{}:{[e]:t}}function ne(e){new Set(e).size!==e.length&&c();}function _i(e){new Set(e).size!==e.length&&c();}function Mi(e,t=()=>{},n=qi){let i=Me(e),o=qe(i,e.decoded.projectId),a=n(i,o.notifyMutation),r=()=>{o.notifyMutation(),t();},{post:s,mutation:u}=M(i,r),m=e.decoded.env==="test";return {sessionStore:o.store,getSession:o.getSession,account:Je(i,r),organization:dt(i,r,()=>o.store.getSnapshot().data?.session.membership??null),signIn:{email:(d,l)=>u(s("/sign-in/email",d,l,he),f=>!("twoFactorRedirect"in f)),username:(d,l)=>u(s("/sign-in/username",d,l,he),f=>!("twoFactorRedirect"in f)),social:async(d,l)=>{let f=await u(s("/sign-in/social",d,l,g=>gt(g,m)),g=>"user"in g);return f.error!==null||f.data===null||"url"in f.data&&f.data.redirect&&!d.disableRedirect&&typeof window<"u"&&window.location.assign(f.data.url),f},sso:async(d,l)=>{let f=await s("/sign-in/sso",d,l,g=>mt(g,m));return f.error!==null||f.data===null||typeof window<"u"&&window.location.assign(f.data.url),f},magicLink:(d,l)=>s("/sign-in/magic-link",d,l,ht),emailOtp:(d,l)=>u(s("/sign-in/email-otp",d,l,pt)),passkey:(d,l)=>a.signIn(d,l)},signUp:{email:(d,l)=>u(s("/sign-up/email",d,l,ft),f=>f.sessionCreated)},emailOtp:{sendVerificationOtp:(d,l)=>s("/email-otp/send-verification-otp",d,l,yt),verifyEmail:(d,l)=>u(s("/email-otp/verify-email",d,l,kt))},phoneOtp:{prepare:d=>s("/phone-otp/challenge",{},d,bt),start:(d,l)=>s("/phone-otp/start",{...d,idempotencyKey:d.idempotencyKey??He()},l,At),verify:(d,l)=>u(s("/phone-otp/verify",d,l,Ot))},requestPasswordReset:(d,l)=>s("/request-password-reset",d,l,ye),resetPassword:(d,l)=>s("/reset-password",d,l,ye),sendVerificationEmail:(d,l)=>s("/send-verification-email",d,l,wt),passkey:{addPasskey:(d,l)=>a.add(d,l),listUserPasskeys:()=>i.request("/passkey/list-user-passkeys",{decode:Jt}),updatePasskey:async(d,l)=>{let f=Z(d.name);if(!f.valid||f.value===void 0)return ee();let g=f.value;return s("/passkey/update-passkey",{...d,name:g},l,A=>Wt(A,d.id,g))},deletePasskey:(d,l)=>s("/passkey/delete-passkey",d,l,$t)},twoFactor:{enable:(d,l)=>s("/two-factor/enable",d,l,St),disable:(d,l)=>u(s("/two-factor/disable",d,l,It),f=>f.status),verifyTotp:(d,l)=>u(s("/two-factor/verify-totp",d,l,Y)),verifyBackupCode:(d,l)=>u(s("/two-factor/verify-backup-code",d,l,Y)),sendOtp:(d={},l)=>s("/two-factor/send-otp",d,l,Tt),verifyOtp:(d,l)=>u(s("/two-factor/verify-otp",d,l,Y)),generateBackupCodes:(d,l)=>s("/two-factor/generate-backup-codes",d,l,Pt)},signOut:d=>u(i.request("/sign-out",{method:"POST",body:{},fetchOptions:d,decode:Rt}),l=>l.success)}}function Se(e,t=()=>{},n){let i=Mi(e,t,n);return n?{...i,signIn:{email:i.signIn.email,username:i.signIn.username,social:tn(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:tn(i),magicLink:i.signIn.magicLink,emailOtp:i.signIn.emailOtp},passkey:{listUserPasskeys:i.passkey.listUserPasskeys,updatePasskey:i.passkey.updatePasskey,deletePasskey:i.passkey.deletePasskey}}}function tn(e){return async(t,n)=>{if(!t?.idToken||typeof t.idToken.token!="string"||t.idToken.token==="")return Li();let i=await e.signIn.social({...t,disableRedirect:true},n);return i.data!==null&&"url"in i.data?Fi():i}}function Li(){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 Fi(){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 qi(){return {signIn:()=>nn(),add:()=>nn()}}function nn(){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 Hi(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 an(r.error);let s;try{s=Vt(r.data);}catch{return on()}let u;try{u=await n.authenticate({optionsJSON:s,useBrowserAutofill:o.autoFill});}catch(g){return sn(n,g,"AUTH_CANCELLED","Passkey authentication was cancelled.")}if(!Vi(u))return rn();let{clientExtensionResults:m,...d}=u,l=i.get(u.id);if(l)return l;let f=(async()=>{let g=await e.request("/passkey/verify-authentication",{method:"POST",body:{response:d},fetchOptions:a,decode:jt});return g.data&&t(),g})();i.set(u.id,f);try{return await f}finally{i.get(u.id)===f&&i.delete(u.id);}},async add(o={},a){let r=Z(o.name);if(!r.valid)return ee();let s=await e.request("/passkey/generate-register-options",{query:{name:r.value,authenticatorAttachment:o.authenticatorAttachment}});if(!s.data)return an(s.error);let u;try{u=Kt(s.data);}catch{return on()}let m;try{m=await n.register({optionsJSON:u});}catch(g){return sn(n,g,"REGISTRATION_CANCELLED","Passkey registration was cancelled.")}if(!Ki(m))return rn();let{clientExtensionResults:d,...l}=m,f=await e.request("/passkey/verify-registration",{method:"POST",body:{response:l,name:r.value},fetchOptions:a,decode:g=>Bt(g,m.id,r.value)});return f.data&&t(),f}}}function on(){return {data:null,error:{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned invalid WebAuthn options."}}}function rn(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_WEBAUTHN_RESPONSE",message:"The platform returned an invalid passkey response."}}}function un(e){if(!e||typeof e!="object")return false;let t=e;return typeof t.id=="string"&&t.id.length>0&&typeof t.rawId=="string"&&t.rawId.length>0&&t.type==="public-key"&&!!t.response&&typeof t.response=="object"}function Vi(e){if(!un(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 Ki(e){if(!un(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.attestationObject=="string"}function an(e){return {data:null,error:e??{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned no WebAuthn options."}}}function sn(e,t,n,i){let o=Bi(t,"page does not have focus"),a=e.errorCode?.(t),r=a!==void 0?a==="ERROR_CEREMONY_ABORTED":ji(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 ji(e){return e&&typeof e=="object"&&"name"in e&&typeof e.name=="string"?e.name:void 0}function Bi(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 Ie=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 cn(e,t,n={}){let i=new Headers(n.init?.headers);return i.set("x-publishable-key",e.publishableKey),J({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 dn(e,t){if(!e.response.ok)throw new Ie(t,e.response,e.requestId);return e.data}async function Ji(e){let n=`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/public-config`;return dn(await cn(e,n,{init:{method:"GET",credentials:"omit"},maxResponseBytes:256*1024,decode:i=>Wi(i,e)}),"public-config")}function Wi(e,t){let n=D(e),i=n.environmentId,o=n.environmentType,a=`${new URL(t.apiUrl).origin}/api/projects/${t.decoded.projectId}/auth`;if(typeof n.applicationId!="string"||!$i(n.applicationId)||i!==t.decoded.projectId||o!=="development"&&o!=="production"||n.authBaseUrl!==a)throw v();let r=T(n.branding),s=T(n.legal);if(!Te(n.enabledMethods,64)||!Te(n.socialProviders,64)||!pn(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"||!pn(s,["termsUrl","privacyUrl"])||!Number.isSafeInteger(s.version)||s.version<0||typeof s.required!="boolean")throw v();if(n.socialProviderClientIds!==void 0){let u=T(n.socialProviderClientIds);if(Object.keys(u).length>64||Object.values(u).some(m=>typeof m!="string"||m.length>2048))throw v()}if(!E(n,["requireEmailVerification","twoFactor","mfaRequired","accountDeletion","organizations","sso","badge"])||!ln(n.turnstileSiteKey)||!ln(n.authTurnstileSiteKey)||typeof n.locale!="string"||n.locale.length===0||n.locale.length>64||!Number.isSafeInteger(n.configVersion)||n.configVersion<0)throw v();if(n.jwtIssuer!==null){let u=T(n.jwtIssuer);if(u.issuer!==a||u.jwksUrl!==`${a}/jwks`||u.aud!==t.decoded.projectId)throw v()}if(n.signUp!==void 0){let u=T(n.signUp).mode;if(typeof u!="string"||!["open","restricted","allowlist","waitlist"].includes(u))throw v()}if(n.authentication!==void 0&&Gi(n.authentication),n.emailVerification!==void 0){let u=T(n.emailVerification);if(!E(u,["required"])||u.method!=="link"&&u.method!=="code")throw v()}if(n.userModel!==void 0&&!E(T(n.userModel),["requireEmail","firstLastName","emailChange","accountDeletion"]))throw v();if(n.mfa!==void 0){let u=T(n.mfa);if(!E(u,["totp","required","backupCodes"])||(u.required===true||u.backupCodes===true)&&u.totp!==true)throw v()}return n}function $i(e){return /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e)}function v(){return new TypeError("public-config returned an invalid response")}function T(e){if(!e||typeof e!="object"||Array.isArray(e))throw v();return e}function ln(e){return e===null||typeof e=="string"&&e.length<=4096}function Gi(e){let t=T(e),n=T(t.email),i=T(t.password),o=i.minLength!==void 0||i.maxLength!==void 0;if(!E(n,["signUp"])||!Te(n.signIn,3)||n.signIn.some(a=>a!=="password"&&a!=="magic_link"&&a!=="email_otp")||!E(T(t.phone),["signUp","signIn"])||!E(i,["signUp","add"])||o&&(!Number.isSafeInteger(i.minLength)||!Number.isSafeInteger(i.maxLength)||i.minLength<1||i.maxLength>4096||i.minLength>i.maxLength)||!E(T(t.passkey),["signIn","add"])||!E(T(t.username),["collectOnSignUp","signIn"]))throw v()}function E(e,t){return t.every(n=>typeof e[n]=="boolean")}function pn(e,t){return t.every(n=>e[n]===void 0||typeof e[n]=="string"&&e[n].length<=4096)}function Te(e,t){return Array.isArray(e)&&e.length<=t&&e.every(n=>typeof n=="string"&&n.length<=128)&&new Set(e).size===e.length}function Xi(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}}function Yi(e,t){let n=`p_${e.replace(/-/g,"")}`;return `${t?.secure?"__Secure-":""}${n}.session_token`}function Qo(e,t){return Se(ae(e),t)}exports.createMembershipHas=$n;exports.createNativeAuthClient=Se;exports.createNativeClient=Qo;exports.createPasskeyClient=Hi;exports.decodePublishableKey=oe;exports.getPublicConfig=Ji;exports.resolveConfig=ae;exports.resolveProjectCapabilities=Xi;exports.sessionCookieName=Yi;
|
|
1
|
+
'use strict';var vn=Object.defineProperty;var Ue=(e,t)=>()=>(e&&(t=e(e=0)),t);var Cn=(e,t)=>{for(var n in t)vn(e,n,{get:t[n],enumerable:true});};function j(){return typeof window<"u"&&typeof document<"u"&&typeof crypto<"u"&&typeof crypto.subtle?.digest=="function"}var me=Ue(()=>{});var re={};Cn(re,{beginCrossSiteSignIn:()=>ro,challengeFor:()=>ln,completeCrossSiteSignIn:()=>so,takeHandoffCode:()=>fn});function dn(e){let t="";for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function ln(e){let t=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e));return dn(new Uint8Array(t))}function no(){return dn(crypto.getRandomValues(new Uint8Array(Zi)))}function pn(e,t){let n=window.location.protocol==="https:"?"; Secure":"";document.cookie=`${cn}=${e}; Path=/; Max-Age=${t}; SameSite=Lax${n}`;}function io(){for(let e of document.cookie.split(";")){let t=e.indexOf("=");if(!(t<0)&&e.slice(0,t).trim()===cn)return e.slice(t+1).trim()||null}return null}function oo(){pn("",0);}function un(e){return new URL(e,window.location.href).toString()}async function ro(e,t){let n=t.callbackURL?un(t.callbackURL):null;if(n&&new URL(n).origin!==window.location.origin)return null;let i=no(),o=new URL(`${e.projectBaseURL}/session/start`);if(o.searchParams.set("pk",e.publishableKey),o.searchParams.set("kind",t.kind),t.kind==="social")o.searchParams.set("provider",t.provider),t.scopes?.length&&o.searchParams.set("scopes",t.scopes.join(",")),t.loginHint&&o.searchParams.set("loginHint",t.loginHint),t.requestSignUp!==void 0&&o.searchParams.set("requestSignUp",t.requestSignUp?"1":"0");else for(let r of to){let u=t[r];u&&o.searchParams.set(r,u);}let s=`${window.location.origin}${window.location.pathname}${window.location.search}`;o.searchParams.set("cb",n??s);for(let[r,u]of [["err",t.errorCallbackURL],["new",t.newUserCallbackURL]])u&&o.searchParams.set(r,un(u));return o.searchParams.set("challenge",await ln(i)),pn(i,eo),o.toString()}function fn(){if(typeof window>"u")return null;let e=window.location.hash;if(!e.includes(xe))return null;let t=new URLSearchParams(e.replace(/^#/,"")),n=t.get(xe);if(!n)return null;t.delete(xe);let i=t.toString();return window.history.replaceState(window.history.state,"",`${window.location.pathname}${window.location.search}${i?`#${i}`:""}`),n}async function so(e){if(!j())return false;let t=fn();if(!t)return false;let n=io();if(oo(),!n)return false;let{error:i}=await e.request("/session/exchange",{method:"POST",body:{code:t,verifier:n}});return i===null}var cn,xe,Zi,eo,to,se=Ue(()=>{me();cn="authowl_handoff_verifier",xe="authowl_code",Zi=32,eo=900,to=["email","providerId","domain","organizationSlug"];});var En=/^(pk_(live|test))_([0-9a-f-]{36})_([A-Za-z0-9]{20,})$/i,Dn=/^sk_/i;function ae(e){if(typeof e!="string"||e.length===0)throw new Error("publishableKey is required");if(Dn.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=En.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]}}var Ne=/^http:\/\/(?:(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*localhost|127\.0\.0\.1|\[::1\])(?::\d+)?(?:\/|$)/i;function ue(e,t){throw new Error(`${e}: ${t}`)}function _e(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&&Ne.test(i)))throw new TypeError("Transport URL must use HTTPS except on approved loopback.");return n}function Le(e,t){(typeof e!="string"||!/^https?:\/\/[^/?#@\\\s]+\/?$/i.test(e))&&ue("apiUrl","origin required");let n;try{n=new URL(e);}catch{ue("apiUrl","origin required");}return n.protocol==="http:"&&(!t.allowHttpLoopback||!Ne.test(e))&&ue("apiUrl","HTTPS required except exact loopback"),n.origin}function ce(e){if(!e||typeof e!="object")throw new Error("AuthConfig is required");let t=ae(e.publishableKey),n=Le(e.apiUrl,{allowHttpLoopback:t.env==="test"}),i=`${n}/api/projects/${t.projectId}/auth`;return {...e,apiUrl:n,decoded:t,projectBaseURL:i}}var zn=1e4,Un=1024*1024,I=class extends Error{kind;requestId;constructor(t,n){super(Vn(t)),this.name="TransportError",this.kind=t,this.requestId=n;}},qe=new WeakSet;function P(e,t){let n=new I(e,t);return qe.add(n),n}async function $({fetchImpl:e,url:t,init:n={},timeoutMs:i=zn,maxResponseBytes:o=Un,allowHttpLoopback:s=false,decode:r}){Fe(i,"timeoutMs"),Fe(o,"maxResponseBytes");let u=_e(t,{allowHttpLoopback:s}),c=n.signal,f=new AbortController,m=null,k,a=new Promise(h=>{k=h;}),d=h=>{m===null&&(m=h,k({type:"abort",kind:h}),f.abort());},g=()=>d("aborted");c?.addEventListener("abort",g,{once:true});let R=setTimeout(()=>d("timeout"),i);c?.aborted&&g();try{if(m!==null)throw P(m);let h;try{h=await Promise.race([e(u.toString(),{...n,redirect:"error",signal:f.signal}).then(xn=>({type:"response",response:xn})),a]);}catch{throw P(m??"network")}if(h.type==="abort")throw P(h.kind);if(!Nn(h.response))throw P("invalid_response");let E=h.response,V=Hn(E.headers),Tn=await _n(E,o,a,()=>m,V),De=Fn(E,Tn,V),ze;try{ze=E.ok&&r?r(De,Object.freeze({status:E.status})):De;}catch{throw P("invalid_response",V)}return {response:E,data:ze,...V===void 0?{}:{requestId:V}}}catch(h){throw h instanceof I&&qe.has(h)?h:P(m??"network")}finally{clearTimeout(R),c?.removeEventListener("abort",g);}}function Nn(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 _n(e,t,n,i,o){let s=e.headers.get("content-length");if(s!==null){if(!/^\d+$/.test(s))throw Me(e.body),P("invalid_response",o);if(Number(s)>t)throw Me(e.body),P("response_too_large",o)}if(!e.body)return "";let r;try{r=e.body.getReader();}catch{throw P("network",o)}let u=[],c=0,f=null;try{for(;;){let a;try{a=await Promise.race([r.read(),n]);}catch{f=P(i()??"network",o);break}if(Ln(a)){f=P(a.kind,o);break}let{done:d,value:g}=a;if(d)break;if(g.byteLength!==0){if(c+=g.byteLength,c>t){f=P("response_too_large",o);break}u.push(g);}}}finally{f&&Mn(r);try{r.releaseLock();}catch{}}if(f)throw f;let m=new Uint8Array(c),k=0;for(let a of u)m.set(a,k),k+=a.byteLength;try{return new TextDecoder("utf-8",{fatal:!0}).decode(m)}catch{throw P("invalid_response",o)}}function Ln(e){return "type"in e&&e.type==="abort"}function Me(e){if(e)try{e.cancel().catch(()=>{});}catch{}}function Mn(e){try{e.cancel().catch(()=>{});}catch{}}function Fn(e,t,n){if(e.status===204||e.status===205)return null;let i=qn(e.headers.get("content-type"));if(!e.ok&&(!i||t.length===0))return null;if(!i||t.length===0)throw P("invalid_response",n);try{return JSON.parse(t)}catch{if(!e.ok)return null;throw P("invalid_response",n)}}function qn(e){if(e===null)return false;let t=e.split(";",1)[0]?.trim().toLowerCase();return t==="application/json"||t?.endsWith("+json")===true}function Hn(e){let t=e.get("x-request-id")?.trim();if(!(!t||t.length>256||!/^[A-Za-z0-9._:-]+$/.test(t)))return t}function Fe(e,t){if(!Number.isInteger(e)||e<=0)throw new TypeError(`${t} must be a positive integer.`)}function Vn(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 Kn="x-authowl-turnstile-token",jn=1e4,Bn=32,Jn=2e4;function L(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 Ke(e,t=e.projectBaseURL){return {async request(n,i={}){let o=Gn(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(Kn,i.fetchOptions.authChallengeToken),i.body!==void 0&&r.set("content-type","application/json");let u={method:s,headers:r,credentials:i.credentials??"include",...i.body===void 0?{}:{body:JSON.stringify(i.body)}},c=Object.freeze({method:s,path:n});await i.fetchOptions?.onRequest?.(c);let f=Wn(s,i.fetchOptions),m;try{m=await $n(e,o,{...u,signal:i.fetchOptions?.signal},f);}catch(h){let E=Ve(h);return await i.fetchOptions?.onError?.(de(c,E,Qn(h))),{data:null,error:E}}let{response:k,requestId:a}=m,d=ti(n,m.data),g=d;if(k.ok)try{g=pe(d),i.decode&&(g=i.decode(g));}catch{let h=Ve(new I("invalid_response",a));return await i.fetchOptions?.onError?.(de(c,h,"invalid_response")),{data:null,error:h}}let R=Object.freeze({...c,status:k.status,...a===void 0?{}:{requestId:a}});if(await i.fetchOptions?.onResponse?.(R),!k.ok){let h=Xn(k,d,a);return await i.fetchOptions?.onError?.(de(c,h,"api")),{data:null,error:h}}return await i.fetchOptions?.onSuccess?.(R),{data:g,error:null}}}}async function $n(e,t,n,i){let o=Date.now()+jn;for(let s=0;s<i;s+=1){let r=o-Date.now();if(r<=0)throw new I("timeout");try{let u=await $({fetchImpl:e.fetch??fetch,url:t,init:n,timeoutMs:Math.max(1,Math.ceil(r)),allowHttpLoopback:e.decoded.env==="test"});if(u.response.status<500||s===i-1)return u}catch(u){if(s===i-1||!(u instanceof I)||u.kind!=="network")throw u}await Zn(50*2**s,n.signal,o);}throw new I("network")}function Wn(e,t){if(e!=="GET"||t?.authChallengeToken)return 1;let n=t?.retry;return typeof n!="number"||!Number.isFinite(n)?1:Math.min(Math.max(Math.trunc(n),0),3)+1}function Gn(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 Xn(e,t,n){let i=K(t)?t:{},o=Yn(i,e.headers);return {status:e.status,statusText:e.statusText,code:typeof i.code=="string"?i.code:void 0,...n===void 0?{}:{requestId:n},...typeof i.current_version=="number"?{currentVersion:i.current_version}:{},...o!==void 0?{retryAfterSeconds:o}:{},message:typeof i.message=="string"?i.message:typeof i.error=="string"?i.error:typeof i.detail=="string"?i.detail:e.statusText||"Request failed"}}function Yn(e,t){let n=(typeof e.retryAfterSeconds=="number"&&Number.isFinite(e.retryAfterSeconds)?e.retryAfterSeconds:void 0)??He(t.get("retry-after"))??He(t.get("x-retry-after"));if(n!==void 0)return Math.min(Math.max(Math.trunc(n),1),86400)}function He(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 Ve(e){let t=e instanceof I?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 I&&e.requestId?{requestId:e.requestId}:{}}}function de(e,t,n){return Object.freeze({...e,status:t.status??0,...t.requestId===void 0?{}:{requestId:t.requestId},failure:n})}function Qn(e){return e instanceof I?e.kind:"network"}function Zn(e,t,n){return new Promise((i,o)=>{if(t?.aborted){o(new I("aborted"));return}let s=n-Date.now();if(s<=0){o(new I("timeout"));return}let r=Math.min(e,s),u=()=>{clearTimeout(c),o(new I("aborted"));},c=setTimeout(()=>{t?.removeEventListener("abort",u),Date.now()>=n?o(new I("timeout")):i();},r);t?.addEventListener("abort",u,{once:true}),t?.aborted&&u();})}function pe(e,t="",n=0,i={nodes:0}){if(i.nodes+=1,n>Bn||i.nodes>Jn)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)):K(e)?Object.fromEntries(Object.entries(e).map(([o,s])=>[o,ei(o)?s:pe(s,o,n+1,i)])):e}function ei(e){return e==="metadata"||e==="public_metadata"||e==="unsafe_metadata"||e==="private_metadata"||e==="publicMetadata"||e==="unsafeMetadata"||e==="privateMetadata"}function ti(e,t){if(e==="/list-sessions"&&Array.isArray(t))return t.map(o=>K(o)?le(o):o);if(!K(t))return t;let i=e==="/change-password"||e==="/passkey/verify-authentication"||e==="/phone-otp/verify"||e==="/sign-up/email"||e.startsWith("/sign-in/")||e.startsWith("/two-factor/verify-")?le(t):t;return e==="/sign-up/email"&&!("sessionCreated"in i)&&(i={...i,sessionCreated:typeof t.token=="string"&&t.token.length>0}),(e==="/get-session"||e==="/passkey/verify-authentication")&&K(i.session)&&(i={...i,session:le(i.session)}),i}function le(e){if(!Object.hasOwn(e,"token"))return e;let t={...e};return delete t.token,t}function K(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}var ni=new Set(["__proto__","constructor","prototype"]);function p(e){(!e||typeof e!="object"||Array.isArray(e))&&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 O(e){return (!(e instanceof Date)||Number.isNaN(e.getTime()))&&l(),e}function W(e){return (!Array.isArray(e)||!e.every(t=>typeof t=="string"))&&l(),[...e]}function w(e,t){let n=e[t];return n==null||typeof n=="string"?n:l()}function je(e,t){let n=e[t];return n==null||typeof n=="boolean"?n:l()}function v(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:O(t.createdAt),updatedAt:O(t.updatedAt),...x("phoneNumber",w(t,"phoneNumber")),...x("username",w(t,"username")),...x("displayUsername",w(t,"displayUsername")),...x("firstName",w(t,"firstName")),...x("lastName",w(t,"lastName")),...x("name",w(t,"name")),...x("image",w(t,"image")),...x("twoFactorEnabled",je(t,"twoFactorEnabled"))}}function G(e){let t=p(e),n=t.membership;return {id:A(t.id),userId:A(t.userId),expiresAt:O(t.expiresAt),...x("activeOrganizationId",w(t,"activeOrganizationId")),...x("activeTeamId",w(t,"activeTeamId")),...x("membership",n==null?n:ii(n)),...x("pendingMfaEnrollment",je(t,"pendingMfaEnrollment"))}}function l(){throw new TypeError("AuthOwl response does not match its runtime contract.")}function D(e,t=20,n=1e4){return (!e||typeof e!="object"||Array.isArray(e))&&l(),ge(e,t,n)}function ge(e,t=20,n=1e4){return fe(e,0,{nodes:0},t,n)}function ii(e){let t=p(e);return {role:A(t.role),permissions:W(t.permissions),...t.teams===void 0?{}:{teams:W(t.teams)}}}function fe(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(u=>fe(u,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[u,c]of Object.entries(e))ni.has(u)&&l(),r[u]=fe(c,t+1,n,i,o);return r}function x(e,t){return t===void 0?{}:{[e]:t}}function Je(e,t){let n=new Set,i=null,o=null,s=null,r,u=d=>{m(d);};r={data:null,isPending:true,isRefetching:false,error:null,refetch:u};function c(d){r=d;for(let g of n)g();}async function f(d){return e.request("/get-session",{query:d?.query,decode:Be})}async function m(d){s?.abort();let g=new AbortController;s=g,c({...r,isPending:r.data===null&&r.error===null,isRefetching:r.data!==null});let R=await e.request("/get-session",{query:d?.query,fetchOptions:{signal:g.signal},decode:Be});s===g&&(s=null,c({data:R.data,error:R.error,isPending:false,isRefetching:false,refetch:u}));}function k(){if(typeof window>"u"||o)return;let d=()=>{m();},g=()=>{document.visibilityState==="visible"&&m();};window.addEventListener("focus",d),document.addEventListener("visibilitychange",g),typeof BroadcastChannel<"u"&&(i=new BroadcastChannel(`authowl:${t}`),i.addEventListener("message",d)),o=()=>{window.removeEventListener("focus",d),document.removeEventListener("visibilitychange",g),i?.close(),i=null,o=null;};}function a(d){return n.add(d),n.size===1&&(k(),m()),()=>{n.delete(d),n.size===0&&(s?.abort(),s=null,o?.());}}return {store:{subscribe:a,getSnapshot:()=>r},getSession:f,notifyMutation(){i?.postMessage({type:"session-changed"}),n.size>0&&m({query:{disableCookieCache:true}});}}}function Be(e){if(e===null)return null;let t=p(e);return (t.session===void 0||t.user===void 0)&&l(),{session:G(t.session),user:v(t.user)}}me();function $e(){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 We(e,t){return e.request("/user/metadata",{fetchOptions:t,decode:Xe})}async function Ge(e,t,n){return e.request("/user/metadata",{method:"PATCH",body:{expected_version:t.expectedVersion,unsafe_metadata:t.unsafeMetadata},fetchOptions:n,decode:Xe})}function Xe(e){let t=p(e),n=D(t.public_metadata),i=D(t.unsafe_metadata);if(!Number.isSafeInteger(t.metadata_version)||t.metadata_version<0)throw new TypeError("Invalid AuthOwl metadata response");return {publicMetadata:n,unsafeMetadata:i,metadataVersion:t.metadata_version}}function Qe(e,t){let{post:n,mutation:i}=L(e,t);return {getMetadata:o=>We(e,o),updateUnsafeMetadata:(o,s)=>Ge(e,o,s),updateProfile:(o,s)=>i(n("/update-user",o,s,B)),changeEmail:(o,s)=>i(n("/change-email",o,s,B)),changePassword:(o,s)=>i(n("/change-password",o,s,oi)),listSessions:o=>e.request("/list-sessions",{fetchOptions:o,decode:ri}),revokeSession:({sessionId:o},s)=>i(n("/revoke-session",{sessionId:o},s,B)),revokeOtherSessions:o=>i(n("/revoke-other-sessions",{},o,B)),listSocialAccounts:async o=>{let s=await e.request("/list-accounts",{fetchOptions:o,decode:si});if(!s.data)return {data:null,error:s.error};let r=s.data.length>1;return {...s,data:s.data.filter(u=>u.providerId!=="credential").map(u=>({...u,canUnlink:r}))}},linkSocial:(o,s)=>n("/link-social",o,s,ai),unlinkSocial:(o,s)=>i(n("/unlink-account",o,s,B)),delete:(o={},s)=>i(n("/delete-user",o,s,ui))}}function B(e){let t=p(e);return {status:b(t.status)}}function oi(e){let t=p(e);return {user:v(t.user)}}function ri(e){return Array.isArray(e)||l(),e.map(t=>{let n=p(t);return {id:A(n.id),userId:A(n.userId),createdAt:O(n.createdAt),updatedAt:O(n.updatedAt),expiresAt:O(n.expiresAt),...Ye("ipAddress",w(n,"ipAddress")),...Ye("userAgent",w(n,"userAgent"))}})}function si(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:W(n.scopes),createdAt:O(n.createdAt),updatedAt:O(n.updatedAt)}})}function ai(e){let t=p(e);return {url:A(t.url),redirect:b(t.redirect)}}function ui(e){let t=p(e);return {success:b(t.success),message:A(t.message)}}function Ye(e,t){return t===void 0?{}:{[e]:t}}function he(e,t){return !e||!t?false:e.permissions.includes(t)}function ci(e,t){return !e||!t?false:e.teams?.includes(t)??false}function ye(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&&!ci(e,o))}function di(e){return {has:t=>ye(e,t),hasPermission:t=>he(e,t.permission)}}var li=new Set(["pending","accepted","rejected","canceled"]),Ze=1e4;function M(e,t,n){let i=p(e),o={id:y(i.id),name:y(i.name),slug:y(i.slug),createdAt:O(i.createdAt),...X("logo",w(i,"logo")),...X("metadata",i.metadata===void 0?void 0:ge(i.metadata))};return N(o.id,t),N(o.slug,n),o}function et(e){return _(e,M)}function Ae(e,t,n){return e===null?null:(t===null&&l(),M(e,t,n))}function tt(e,t,n){if(e===null)return null;let i=p(e),o=M(i,t,n);return {...o,members:_(i.members,s=>gt(s,o.id)),invitations:_(i.invitations,s=>z(s,void 0,o.id))}}function nt(e,t){let n=_(e,i=>ft(i));return Y(n.map(i=>i.organizationId),t),n}function it(e,t,n){return e===null?null:(t===null&&l(),ft(e,t,n))}function ot(e,t){let n=p(e);return (!Number.isSafeInteger(n.total)||n.total<0)&&l(),{members:pi(n.members,t),total:n.total}}function z(e,t,n){let i=p(e),o=y(i.status);li.has(o)||l();let s={id:y(i.id),organizationId:y(i.organizationId),email:y(i.email),role:y(i.role),status:o,inviterId:y(i.inviterId),expiresAt:O(i.expiresAt),createdAt:O(i.createdAt)};return N(s.id,t),N(s.organizationId,n),s}function rt(e,t){let n=_(e,i=>z(i));return Y(n.map(i=>i.organizationId),t),n}function st(e){return _(e,t=>{let n=p(t);return {...z(n),organizationName:y(n.organizationName)}})}function at(e,t){let n=p(e);return {...z(n,t),organizationName:y(n.organizationName),organizationSlug:y(n.organizationSlug),inviterEmail:y(n.inviterEmail)}}function ut(e,t){let n=p(e),i=z(n.invitation,t);return {invitation:i,member:F(n.member,void 0,i.organizationId)}}function ct(e,t){let n=p(e);return n.member!==null&&l(),{invitation:n.invitation===null?null:z(n.invitation,t),member:null}}function dt(e,t){return e===null?null:z(e,t)}function lt(e,t,n){let i=p(e);return {member:F(i.member,n,t)}}function F(e,t,n){let i=p(e),o={id:y(i.id),organizationId:y(i.organizationId),userId:y(i.userId),role:y(i.role),createdAt:O(i.createdAt),...i.user===void 0?{}:{user:mt(i.user)}};return N(o.id,t),N(o.organizationId,n),o}function pt(e,t){let n=_(e,i=>{let o=p(i);return {organizationId:y(o.organizationId),data:{role:y(o.role),...X("permission",o.permission===void 0?void 0:fi(o.permission))}}});return Y(n.map(i=>i.organizationId),t),n.map(i=>i.data)}function ft(e,t,n){let i=p(e),o=i.updatedAt,s={id:y(i.id),name:y(i.name),organizationId:y(i.organizationId),createdAt:O(i.createdAt),...o===void 0?{}:{updatedAt:O(o)}};return N(s.id,t),N(s.organizationId,n),s}function gt(e,t){let n=p(e);return {...F(n,void 0,t),user:mt(n.user)}}function pi(e,t){let n=_(e,i=>gt(i));return Y(n.map(i=>i.organizationId),t),n}function fi(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>Ze||!Array.isArray(o))&&l(),n[i]=o.map(s=>y(s));return n}function y(e){let t=A(e);return (t.length===0||t.length>Ze)&&l(),t}function N(e,t){t!==void 0&&e!==t&&l();}function Y(e,t){let n=t??e[0];n!==void 0&&e.some(i=>i!==n)&&l();}function mt(e){let t=p(e);return {id:y(t.id),name:y(t.name),email:y(t.email),...X("image",w(t,"image"))}}function _(e,t){return Array.isArray(e)||l(),e.map(n=>t(n))}function X(e,t){return t===void 0?{}:{[e]:t}}function ht(e,t,n=()=>null){let{post:i,mutation:o}=L(e,t),s=(r,u,c,f)=>e.request(r,{query:u,fetchOptions:c,decode:f});return {create:(r,u)=>o(i("/organization/create",r,u,M)),list:r=>s("/organization/list",void 0,r,et),get:(r={},u)=>s("/organization/get-full-organization",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,membersLimit:r.membersLimit},u,c=>tt(c,r.organizationId,r.organizationSlug)),setActive:(r,u)=>o(i("/organization/set-active",r,u,c=>Ae(c,r.organizationId,r.organizationSlug))),listTeams:(r={},u)=>s("/organization/list-teams",{organizationId:r.organizationId},u,c=>nt(c,r.organizationId)),setActiveTeam:(r,u)=>o(i("/organization/set-active-team",r,u,c=>it(c,r.teamId))),update:(r,u)=>o(i("/organization/update",r,u,c=>Ae(c,r.organizationId))),delete:(r,u)=>o(i("/organization/delete",r,u,c=>M(c,r.organizationId))),listMembers:(r={},u)=>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},u,c=>ot(c,r.organizationId)),inviteMember:(r,u)=>o(i("/organization/invite-member",r,u,c=>z(c,void 0,r.organizationId))),listInvitations:(r={},u)=>s("/organization/list-invitations",{organizationId:r.organizationId},u,c=>rt(c,r.organizationId)),listUserInvitations:r=>s("/organization/list-user-invitations",void 0,r,st),getInvitation:(r,u)=>s("/organization/get-invitation",{id:r.id},u,c=>at(c,r.id)),acceptInvitation:(r,u)=>o(i("/organization/accept-invitation",r,u,c=>ut(c,r.invitationId))),rejectInvitation:(r,u)=>o(i("/organization/reject-invitation",r,u,c=>ct(c,r.invitationId))),cancelInvitation:(r,u)=>o(i("/organization/cancel-invitation",r,u,c=>dt(c,r.invitationId))),removeMember:(r,u)=>o(i("/organization/remove-member",r,u,c=>lt(c,r.organizationId,r.memberIdOrEmail.includes("@")?void 0:r.memberIdOrEmail))),updateMemberRole:(r,u)=>o(i("/organization/update-member-role",r,u,c=>F(c,r.memberId,r.organizationId))),leave:(r,u)=>o(i("/organization/leave",r,u,c=>F(c,void 0,r.organizationId))),listRoles:(r={},u)=>s("/organization/list-roles",{organizationId:r.organizationId},u,c=>pt(c,r.organizationId)),has:r=>ye(n(),r),hasPermission:r=>he(n(),r.permission)}}var yt=4096,gi=4096,mi=100,hi=256,yi=16,Ai=64,bi=12;function we(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:Nt(t.twoFactorMethods,yi,Ai)}}):(t.twoFactorRedirect!==void 0&&l(),{redirect:b(t.redirect),...Si(t,"url"),user:v(t.user)})}function At(e){let t=p(e);return {user:v(t.user)}}function bt(e){let t=p(e);return {sessionCreated:b(t.sessionCreated),user:v(t.user)}}function wt(e,t){let n=p(e),i=b(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:be(n.url,t)}):(o===s&&l(),o?{redirect:false,user:v(n.user)}:{redirect:false,url:be(n.url,t)})}function Ot(e,t){let n=p(e);return (n.redirect!==true||n.user!==void 0)&&l(),{redirect:true,url:be(n.url,t)}}function kt(e){return {status:b(p(e).status)}}function Rt(e){return {success:b(p(e).success)}}function St(e){return p(e).status!=="pending"&&l(),{status:"pending"}}function It(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:wi(t.difficulty),challengeToken:A(t.challengeToken),challengeRequired:b(t.challengeRequired),turnstile:{required:b(n.required),siteKey:i}}}function wi(e){return (!Number.isSafeInteger(e)||Number(e)<0||Number(e)>bi)&&l(),Number(e)}function Pt(e){let t=p(e);return (t.status!==true||t.sessionCreated!==true)&&l(),{status:true,sessionCreated:true,user:Oi(t.user)}}function Oe(e){return {status:b(p(e).status)}}function Tt(e){return {status:b(p(e).status)}}function xt(e){let t=p(e);return {status:b(t.status),user:v(t.user)}}function vt(e){return {success:b(p(e).success)}}function Ct(e){let t=p(e);return {totpURI:Ri(t.totpURI),backupCodes:Ut(t.backupCodes)}}function Et(e){return {status:b(p(e).status)}}function Q(e){return p(e).status!==true&&l(),{status:true}}function Dt(e){return {status:b(p(e).status)}}function zt(e){let t=p(e);return t.status!==void 0&&t.status!==true&&l(),{backupCodes:Ut(t.backupCodes)}}function Oi(e){let t=p(e);return {id:q(t.id,512),...Ii(t,"name",1024),phoneNumber:q(t.phoneNumber,64),phoneNumberVerified:b(t.phoneNumberVerified),...t.createdAt===void 0?{}:{createdAt:O(t.createdAt)},...t.updatedAt===void 0?{}:{updatedAt:O(t.updatedAt)}}}function be(e,t){let n=q(e,yt);/[\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:"&&ki(i.hostname)?i.href:l()}function ki(e){let t=e.toLowerCase();return t==="localhost"||t==="127.0.0.1"||t==="[::1]"}function Ri(e){let t=q(e,gi),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 Ut(e){return Nt(e,mi,hi)}function Nt(e,t,n){(!Array.isArray(e)||e.length===0||e.length>t)&&l();let i=e.map(o=>q(o,n));return i.some(o=>o.trim().length===0)&&l(),new Set(i).size!==i.length&&l(),i}function q(e,t){let n=A(e);return (n.length===0||n.length>t)&&l(),n}function Si(e,t){let n=e[t];return n==null?{}:{[t]:q(n,yt)}}function Ii(e,t,n){let i=w(e,t);return i===void 0?{}:(i!==null&&i.length>n&&l(),{[t]:i})}var _t=new Set([1564,8206,8207,8234,8235,8236,8237,8238,8294,8295,8296,8297]),Z=new Set([9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288,65279]);function ee(e){if(e===void 0)return {valid:true,value:void 0};for(let n of e){let i=n.codePointAt(0);if(i===void 0||Mt(n,i)||Lt(i)||_t.has(i))return {valid:false}}let t=Pi(e);return ke(t)?{valid:true,value:t}:{valid:false}}function ke(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||Mt(o,s)||Lt(s)||_t.has(s))return false;n??=s,i=s;}return t>0&&n!==void 0&&i!==void 0&&!Z.has(n)&&!Z.has(i)}function te(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_PASSKEY_NAME",message:"Passkey names must contain 1 to 256 safe Unicode characters."}}}function Pi(e){let t=0,n=e.length;for(;t<n;){let i=e.codePointAt(t);if(i===void 0||!Z.has(i))break;t+=i>65535?2:1;}for(;n>t;){let i=e.codePointAt(n-1);if(i===void 0)break;let s=i>=56320&&i<=57343?n-2:n-1,r=e.codePointAt(s);if(r===void 0||!Z.has(r))break;n=s;}return e.slice(t,n)}function Lt(e){return e>=0&&e<=31||e>=127&&e<=159}function Mt(e,t){return e.length===1&&t>=55296&&t<=57343}var Ht=12,Vt=5e3,Ti=8,xi=1e3,vi=16,Ft=512,Kt=100,jt=8192,Ci=32768,Re=1024,qt=256,Ie=64,Ei=6e5,Di=/^[A-Za-z0-9_-]+$/u,zi=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u,Ui=/[\u0000-\u001f\u007f-\u009f\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/u,Ni=/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$/u,_i=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu,Bt=new Set(["discouraged","preferred","required"]),Li=new Set(["singleDevice","multiDevice"]),Jt=new Set(["ble","cable","hybrid","internal","nfc","smart-card","usb"]),$t=new Set(["hybrid","security-key","client-device"]),Mi=new Set(["none","indirect","direct","enterprise"]),Fi=new Set(["fido-u2f","packed","android-safetynet","android-key","tpm","apple","none"]),qi=new Set(["platform","cross-platform"]),Hi=new Set(["discouraged","preferred","required"]),Vi=new Set([-8,-7,-257]);function Wt(e){let t=D(e,Ht,Vt);return {challenge:rn(t.challenge),...S("timeout",nn(t.timeout)),...S("rpId",sn(t.rpId)),...S("allowCredentials",tn(t.allowCredentials)),...S("userVerification",J(t.userVerification,Bt)),...S("hints",ne(t.hints,$t)),...S("extensions",on(t.extensions))}}function Gt(e){let t=D(e,Ht,Vt);return {challenge:rn(t.challenge),rp:Ki(t.rp),user:ji(t.user),pubKeyCredParams:Bi(t.pubKeyCredParams),...S("timeout",nn(t.timeout)),...S("excludeCredentials",tn(t.excludeCredentials)),...S("authenticatorSelection",Ji(t.authenticatorSelection)),...S("attestation",J(t.attestation,Mi)),...S("attestationFormats",ne(t.attestationFormats,Fi)),...S("hints",ne(t.hints,$t)),...S("extensions",on(t.extensions))}}function Xt(e){let t=p(e),n=G(t.session),i=v(t.user);return n.userId!==i.id&&l(),{session:n,user:i}}function Pe(e){let t=p(e),n=t.counter;(!Number.isSafeInteger(n)||n<0)&&l();let i=Te(t.deviceType,Li),o=b(t.backedUp);return o&&i!=="multiDevice"&&l(),{id:H(t.id,qt),...Gi(t),publicKey:$i(t.publicKey,Ci),userId:H(t.userId,qt),credentialID:oe(t.credentialID,jt),counter:n,deviceType:i,backedUp:o,...Xi(t),createdAt:O(t.createdAt),...Yi(t)}}function Yt(e,t,n){let i=Pe(e);return (i.credentialID!==t||(n===void 0?i.name!==void 0&&i.name!==null:i.name!==n))&&l(),i}function Qt(e){(!Array.isArray(e)||e.length>Kt)&&l();let t=e.map(Pe);return ie(t.map(n=>n.id)),ie(t.map(n=>n.credentialID)),t.length>1&&t.some(n=>n.userId!==t[0]?.userId)&&l(),t}function Zt(e,t,n){let i=p(e),o=Pe(i.passkey);return (o.id!==t||o.name!==n)&&l(),{passkey:o}}function en(e){return p(e).status!==true&&l(),{status:true}}function Ki(e){let t=p(e);return {name:Se(t.name,Re),...S("id",sn(t.id))}}function ji(e){let t=p(e);return {id:oe(t.id,128,1,64),name:Se(t.name,Re),displayName:Se(t.displayName,Re)}}function Bi(e){(!Array.isArray(e)||e.length===0||e.length>Ie)&&l();let t=e.map(n=>{let i=p(n);return (i.type!=="public-key"||!Number.isSafeInteger(i.alg)||!Vi.has(i.alg))&&l(),{type:"public-key",alg:i.alg}});return Qi(t.map(n=>n.alg)),t}function tn(e){if(e===void 0)return;(!Array.isArray(e)||e.length>Kt)&&l();let t=e.map(n=>{let i=p(n);return i.type!=="public-key"&&l(),{type:"public-key",id:oe(i.id,jt),...S("transports",ne(i.transports,Jt))}});return ie(t.map(n=>n.id)),t}function Ji(e){if(e===void 0)return;let t=p(e);t.requireResidentKey!==void 0&&typeof t.requireResidentKey!="boolean"&&l();let n=J(t.residentKey,Hi);return t.requireResidentKey!==void 0&&n!==void 0&&t.requireResidentKey!==(n==="required")&&l(),{...S("authenticatorAttachment",J(t.authenticatorAttachment,qi)),...S("residentKey",n),...S("requireResidentKey",t.requireResidentKey),...S("userVerification",J(t.userVerification,Bt))}}function nn(e){return e!==void 0&&(typeof e!="number"||!Number.isFinite(e)||e<0||e>Ei)&&l(),e}function on(e){return e===void 0?void 0:D(e,Ti,xi)}function ne(e,t){if(e===void 0)return;(!Array.isArray(e)||e.length>Ie)&&l();let n=e.map(i=>Te(i,t));return ie(n),n}function J(e,t){if(e!==void 0)return Te(e,t)}function rn(e){return oe(e,Math.ceil(Ft*4/3),vi,Ft)}function oe(e,t,n=1,i=Number.POSITIVE_INFINITY){let o=H(e,t),s=o.length%4,r=Wi(o.at(-1)??""),u=Math.floor(o.length*3/4);return (!Di.test(o)||s===1||s===2&&(r&15)!==0||s===3&&(r&3)!==0||u<n||u>i)&&l(),o}function H(e,t){let n=A(e);return (n.length===0||n.length>t)&&l(),n}function Se(e,t){let n=H(e,t);return Ui.test(n)&&l(),n}function sn(e){if(e===void 0)return;let t=H(e,253);return t!=="localhost"&&(t.endsWith(".")||!t.includes(".")||t.split(".").some(n=>!Ni.test(n)))&&l(),t}function $i(e,t){let n=H(e,t),i=n.endsWith("=="),o=!i&&n.endsWith("="),s=n.at(i?-3:o?-2:-1)??"",r=an(s);return (n.length%4!==0||!zi.test(n)||i&&(r&15)!==0||o&&(r&3)!==0)&&l(),n}function Wi(e){return an(e,true)}function an(e,t=false){return (t?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").indexOf(e)}function Gi(e){let t=w(e,"name");return t===void 0?{}:(t!==null&&!ke(t)&&l(),{name:t})}function Xi(e){let t=w(e,"transports");if(t==null||t==="")return t===void 0?{}:{transports:t};let n=t.split(",");return (n.length>Ie||n.some(i=>!Jt.has(i))||new Set(n).size!==n.length)&&l(),{transports:t}}function Yi(e){let t=w(e,"aaguid");return t==null?t===void 0?{}:{aaguid:null}:(_i.test(t)||l(),{aaguid:t})}function Te(e,t){let n=A(e);return t.has(n)||l(),n}function S(e,t){return t===void 0?{}:{[e]:t}}function ie(e){new Set(e).size!==e.length&&l();}function Qi(e){new Set(e).size!==e.length&&l();}function ao(e,t){if(!t)return e;let n=t.catch(()=>{});return n.then(()=>{n=null;}),{async request(i,o){return n&&await n,e.request(i,o)}}}var gn=new Map;function uo(e,t){let n=gn.get(t);return n||(n=Promise.resolve().then(()=>(se(),re)).then(i=>i.completeCrossSiteSignIn(e)),gn.set(t,n)),n}function mn(e){return !j()||e.idToken||e.disableRedirect?"legacy":"first-party"}function co(e,t=()=>{},n=fo){let i=Ke(e),o=j()?uo(i,e.decoded.projectId):void 0,s=ao(i,o),r=Je(s,e.decoded.projectId),u=n(s,r.notifyMutation),c=()=>{r.notifyMutation(),t();},{post:f,mutation:m}=L(s,c),k=e.decoded.env==="test";return {sessionStore:r.store,getSession:r.getSession,account:Qe(s,c),organization:ht(s,c,()=>r.store.getSnapshot().data?.session.membership??null),signIn:{email:(a,d)=>m(f("/sign-in/email",a,d,we),g=>!("twoFactorRedirect"in g)),username:(a,d)=>m(f("/sign-in/username",a,d,we),g=>!("twoFactorRedirect"in g)),social:async(a,d)=>{if(mn(a)==="first-party"){let{beginCrossSiteSignIn:R}=await Promise.resolve().then(()=>(se(),re)),h=await R(e,{kind:"social",provider:a.provider,callbackURL:a.callbackURL,errorCallbackURL:a.errorCallbackURL,newUserCallbackURL:a.newUserCallbackURL,scopes:a.scopes,loginHint:a.loginHint,requestSignUp:a.requestSignUp});if(h)return window.location.assign(h),{data:{redirect:true,url:h},error:null}}let g=await m(f("/sign-in/social",a,d,R=>wt(R,k)),R=>"user"in R);return g.error!==null||g.data===null||"url"in g.data&&g.data.redirect&&!a.disableRedirect&&typeof window<"u"&&window.location.assign(g.data.url),g},sso:async(a,d)=>{if(mn(a)==="first-party"){let{beginCrossSiteSignIn:R}=await Promise.resolve().then(()=>(se(),re)),h=await R(e,{kind:"sso",email:a.email,providerId:a.providerId,domain:a.domain,organizationSlug:a.organizationSlug,callbackURL:a.callbackURL,errorCallbackURL:a.errorCallbackURL,newUserCallbackURL:a.newUserCallbackURL});if(h)return window.location.assign(h),{data:{url:h,redirect:true},error:null}}let g=await f("/sign-in/sso",a,d,R=>Ot(R,k));return g.error!==null||g.data===null||typeof window<"u"&&window.location.assign(g.data.url),g},magicLink:(a,d)=>f("/sign-in/magic-link",a,d,kt),emailOtp:(a,d)=>m(f("/sign-in/email-otp",a,d,At)),passkey:(a,d)=>u.signIn(a,d)},signUp:{email:(a,d)=>m(f("/sign-up/email",a,d,bt),g=>g.sessionCreated)},emailOtp:{sendVerificationOtp:(a,d)=>f("/email-otp/send-verification-otp",a,d,Rt),verifyEmail:(a,d)=>m(f("/email-otp/verify-email",a,d,xt))},phoneOtp:{prepare:a=>f("/phone-otp/challenge",{},a,It),start:(a,d)=>f("/phone-otp/start",{...a,idempotencyKey:a.idempotencyKey??$e()},d,St),verify:(a,d)=>m(f("/phone-otp/verify",a,d,Pt))},requestPasswordReset:(a,d)=>f("/request-password-reset",a,d,Oe),resetPassword:(a,d)=>f("/reset-password",a,d,Oe),sendVerificationEmail:(a,d)=>f("/send-verification-email",a,d,Tt),passkey:{addPasskey:(a,d)=>u.add(a,d),listUserPasskeys:()=>s.request("/passkey/list-user-passkeys",{decode:Qt}),updatePasskey:async(a,d)=>{let g=ee(a.name);if(!g.valid||g.value===void 0)return te();let R=g.value;return f("/passkey/update-passkey",{...a,name:R},d,h=>Zt(h,a.id,R))},deletePasskey:(a,d)=>f("/passkey/delete-passkey",a,d,en)},twoFactor:{enable:(a,d)=>f("/two-factor/enable",a,d,Ct),disable:(a,d)=>m(f("/two-factor/disable",a,d,Et),g=>g.status),verifyTotp:(a,d)=>m(f("/two-factor/verify-totp",a,d,Q)),verifyBackupCode:(a,d)=>m(f("/two-factor/verify-backup-code",a,d,Q)),sendOtp:(a={},d)=>f("/two-factor/send-otp",a,d,Dt),verifyOtp:(a,d)=>m(f("/two-factor/verify-otp",a,d,Q)),generateBackupCodes:(a,d)=>f("/two-factor/generate-backup-codes",a,d,zt)},signOut:a=>m(s.request("/sign-out",{method:"POST",body:{},fetchOptions:a,decode:vt}),d=>d.success)}}function ve(e,t=()=>{},n){let i=co(e,t,n);return n?{...i,signIn:{email:i.signIn.email,username:i.signIn.username,social:hn(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:hn(i),magicLink:i.signIn.magicLink,emailOtp:i.signIn.emailOtp},passkey:{listUserPasskeys:i.passkey.listUserPasskeys,updatePasskey:i.passkey.updatePasskey,deletePasskey:i.passkey.deletePasskey}}}function hn(e){return async(t,n)=>{if(!t?.idToken||typeof t.idToken.token!="string"||t.idToken.token==="")return lo();let i=await e.signIn.social({...t,disableRedirect:true},n);return i.data!==null&&"url"in i.data?po():i}}function lo(){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 po(){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 fo(){return {signIn:()=>yn(),add:()=>yn()}}function yn(){return Promise.resolve({data:null,error:{status:400,statusText:"BAD_REQUEST",code:"PASSKEY_BROWSER_REQUIRED",message:"This passkey ceremony requires a browser with WebAuthn."}})}function go(e,t,n){let i=new Map;return {async signIn(o={},s){let r=await e.request("/passkey/generate-authenticate-options");if(!r.data)return wn(r.error);let u;try{u=Wt(r.data);}catch{return An()}let c;try{c=await n.authenticate({optionsJSON:u,useBrowserAutofill:o.autoFill});}catch(d){return On(n,d,"AUTH_CANCELLED","Passkey authentication was cancelled.")}if(!mo(c))return bn();let{clientExtensionResults:f,...m}=c,k=i.get(c.id);if(k)return k;let a=(async()=>{let d=await e.request("/passkey/verify-authentication",{method:"POST",body:{response:m},fetchOptions:s,decode:Xt});return d.data&&t(),d})();i.set(c.id,a);try{return await a}finally{i.get(c.id)===a&&i.delete(c.id);}},async add(o={},s){let r=ee(o.name);if(!r.valid)return te();let u=await e.request("/passkey/generate-register-options",{query:{name:r.value,authenticatorAttachment:o.authenticatorAttachment}});if(!u.data)return wn(u.error);let c;try{c=Gt(u.data);}catch{return An()}let f;try{f=await n.register({optionsJSON:c});}catch(d){return On(n,d,"REGISTRATION_CANCELLED","Passkey registration was cancelled.")}if(!ho(f))return bn();let{clientExtensionResults:m,...k}=f,a=await e.request("/passkey/verify-registration",{method:"POST",body:{response:k,name:r.value},fetchOptions:s,decode:d=>Yt(d,f.id,r.value)});return a.data&&t(),a}}}function An(){return {data:null,error:{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned invalid WebAuthn options."}}}function bn(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_WEBAUTHN_RESPONSE",message:"The platform returned an invalid passkey response."}}}function kn(e){if(!e||typeof e!="object")return false;let t=e;return typeof t.id=="string"&&t.id.length>0&&typeof t.rawId=="string"&&t.rawId.length>0&&t.type==="public-key"&&!!t.response&&typeof t.response=="object"}function mo(e){if(!kn(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.authenticatorData=="string"&&typeof t.signature=="string"&&(t.userHandle===void 0||typeof t.userHandle=="string")}function ho(e){if(!kn(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.attestationObject=="string"}function wn(e){return {data:null,error:e??{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned no WebAuthn options."}}}function On(e,t,n,i){let o=Ao(t,"page does not have focus"),s=e.errorCode?.(t),r=s!==void 0?s==="ERROR_CEREMONY_ABORTED":yo(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 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}var Ce=class extends Error{status;requestId;constructor(t,n,i){super(`${t} request failed with status ${n.status}.`),this.name="AuthOwlHttpError",this.status=n.status,this.requestId=i;}};function Rn(e,t,n={}){let i=new Headers(n.init?.headers);return i.set("x-publishable-key",e.publishableKey),$({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 Sn(e,t){if(!e.response.ok)throw new Ce(t,e.response,e.requestId);return e.data}async function bo(e){let n=`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/public-config`;return Sn(await Rn(e,n,{init:{method:"GET",credentials:"omit"},maxResponseBytes:256*1024,decode:i=>wo(i,e)}),"public-config")}function wo(e,t){let n=D(e),i=n.environmentId,o=n.environmentType,s=`${new URL(t.apiUrl).origin}/api/projects/${t.decoded.projectId}/auth`;if(typeof n.applicationId!="string"||!Oo(n.applicationId)||i!==t.decoded.projectId||o!=="development"&&o!=="production"||n.authBaseUrl!==s)throw C();let r=T(n.branding),u=T(n.legal);if(!Ee(n.enabledMethods,64)||!Ee(n.socialProviders,64)||!Pn(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"||!Pn(u,["termsUrl","privacyUrl"])||!Number.isSafeInteger(u.version)||u.version<0||typeof u.required!="boolean")throw C();if(n.socialProviderClientIds!==void 0){let c=T(n.socialProviderClientIds);if(Object.keys(c).length>64||Object.values(c).some(f=>typeof f!="string"||f.length>2048))throw C()}if(!U(n,["requireEmailVerification","twoFactor","mfaRequired","accountDeletion","organizations","sso","badge"])||!In(n.turnstileSiteKey)||!In(n.authTurnstileSiteKey)||typeof n.locale!="string"||n.locale.length===0||n.locale.length>64||!Number.isSafeInteger(n.configVersion)||n.configVersion<0)throw C();if(n.jwtIssuer!==null){let c=T(n.jwtIssuer);if(c.issuer!==s||c.jwksUrl!==`${s}/jwks`||c.aud!==t.decoded.projectId)throw C()}if(n.signUp!==void 0){let c=T(n.signUp).mode;if(typeof c!="string"||!["open","restricted","allowlist","waitlist"].includes(c))throw C()}if(n.authentication!==void 0&&ko(n.authentication),n.emailVerification!==void 0){let c=T(n.emailVerification);if(!U(c,["required"])||c.method!=="link"&&c.method!=="code")throw C()}if(n.userModel!==void 0&&!U(T(n.userModel),["requireEmail","firstLastName","emailChange","accountDeletion"]))throw C();if(n.mfa!==void 0){let c=T(n.mfa);if(!U(c,["totp","required","backupCodes"])||(c.required===true||c.backupCodes===true)&&c.totp!==true)throw C()}return n}function Oo(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 C(){return new TypeError("public-config returned an invalid response")}function T(e){if(!e||typeof e!="object"||Array.isArray(e))throw C();return e}function In(e){return e===null||typeof e=="string"&&e.length<=4096}function ko(e){let t=T(e),n=T(t.email),i=T(t.password),o=i.minLength!==void 0||i.maxLength!==void 0;if(!U(n,["signUp"])||!Ee(n.signIn,3)||n.signIn.some(s=>s!=="password"&&s!=="magic_link"&&s!=="email_otp")||!U(T(t.phone),["signUp","signIn"])||!U(i,["signUp","add"])||o&&(!Number.isSafeInteger(i.minLength)||!Number.isSafeInteger(i.maxLength)||i.minLength<1||i.maxLength>4096||i.minLength>i.maxLength)||!U(T(t.passkey),["signIn","add"])||!U(T(t.username),["collectOnSignUp","signIn"]))throw C()}function U(e,t){return t.every(n=>typeof e[n]=="boolean")}function Pn(e,t){return t.every(n=>e[n]===void 0||typeof e[n]=="string"&&e[n].length<=4096)}function Ee(e,t){return Array.isArray(e)&&e.length<=t&&e.every(n=>typeof n=="string"&&n.length<=128)&&new Set(e).size===e.length}function Ro(e){let t=e?.enabledMethods??["password"],n=t.includes("password"),i=t.includes("passkey"),o=e?.authentication,s=e?.mfa;return {emailSignUp:o?.email.signUp??t.some(r=>r==="password"||r==="magic_link"||r==="email_otp"),passwordSignUp:o?.password.signUp??n,phoneSignUp:o?.phone.signUp??t.includes("phone_otp"),passwordSignIn:o?.email.signIn.includes("password")??n,passwordMinLength:o?.password.minLength??8,passwordMaxLength:o?.password.maxLength??128,magicLinkSignIn:o?.email.signIn.includes("magic_link")??t.includes("magic_link"),emailOtpSignIn:o?.email.signIn.includes("email_otp")??t.includes("email_otp"),phoneSignIn:o?.phone.signIn??t.includes("phone_otp"),usernameSignIn:o?.username.signIn??false,collectUsername:o?.username.collectOnSignUp??false,passkeySignIn:o?.passkey.signIn??i,passkeyAdd:o?.passkey.add??i,firstLastName:e?.userModel?.firstLastName??false,emailChange:e===null?false:e.userModel?.emailChange??true,accountDeletion:e?.userModel?.accountDeletion??e?.accountDeletion??false,emailVerificationRequired:e?.emailVerification?.required??e?.requireEmailVerification??false,emailVerificationMethod:e?.emailVerification?.method??"link",totp:s?.totp??e?.twoFactor??false,mfaRequired:s?.required??e?.mfaRequired??false,backupCodes:s?.backupCodes??e?.twoFactor??false,legacyNameField:e?.authentication===void 0}}function So(e,t){let n=`p_${e.replace(/-/g,"")}`;return `${t?.secure?"__Secure-":""}${n}.session_token`}function xr(e,t){return ve(ce(e),t)}
|
|
2
|
+
exports.createMembershipHas=di;exports.createNativeAuthClient=ve;exports.createNativeClient=xr;exports.createPasskeyClient=go;exports.decodePublishableKey=ae;exports.getPublicConfig=bo;exports.resolveConfig=ce;exports.resolveProjectCapabilities=Ro;exports.sessionCookieName=So;
|
package/dist/native.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import {f}from'./chunk-
|
|
1
|
+
import {f}from'./chunk-MX7KKUAW.js';export{f as createNativeAuthClient,g as createPasskeyClient,k as getPublicConfig,a as resolveProjectCapabilities}from'./chunk-MX7KKUAW.js';import {e}from'./chunk-KPXCQZUX.js';export{v as createMembershipHas,a as decodePublishableKey,e as resolveConfig,b as sessionCookieName}from'./chunk-KPXCQZUX.js';import'./chunk-T5SH3ZZP.js';function u(i,o){return f(e(i),o)}export{u as createNativeClient};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {a as a$1}from'./chunk-T5SH3ZZP.js';var u="authowl_handoff_verifier",a="authowl_code",g=32,S=900,m=["email","providerId","domain","organizationSlug"];function f(n){let e="";for(let i of n)e+=String.fromCharCode(i);return btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function w(n){let e=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(n));return f(new Uint8Array(e))}function h(){return f(crypto.getRandomValues(new Uint8Array(g)))}function p(n,e){let i=window.location.protocol==="https:"?"; Secure":"";document.cookie=`${u}=${n}; Path=/; Max-Age=${e}; SameSite=Lax${i}`;}function R(){for(let n of document.cookie.split(";")){let e=n.indexOf("=");if(!(e<0)&&n.slice(0,e).trim()===u)return n.slice(e+1).trim()||null}return null}function y(){p("",0);}function l(n){return new URL(n,window.location.href).toString()}async function b(n,e){let i=e.callbackURL?l(e.callbackURL):null;if(i&&new URL(i).origin!==window.location.origin)return null;let t=h(),o=new URL(`${n.projectBaseURL}/session/start`);if(o.searchParams.set("pk",n.publishableKey),o.searchParams.set("kind",e.kind),e.kind==="social")o.searchParams.set("provider",e.provider),e.scopes?.length&&o.searchParams.set("scopes",e.scopes.join(",")),e.loginHint&&o.searchParams.set("loginHint",e.loginHint),e.requestSignUp!==void 0&&o.searchParams.set("requestSignUp",e.requestSignUp?"1":"0");else for(let s of m){let r=e[s];r&&o.searchParams.set(s,r);}let d=`${window.location.origin}${window.location.pathname}${window.location.search}`;o.searchParams.set("cb",i??d);for(let[s,r]of [["err",e.errorCallbackURL],["new",e.newUserCallbackURL]])r&&o.searchParams.set(s,l(r));return o.searchParams.set("challenge",await w(t)),p(t,S),o.toString()}function U(){if(typeof window>"u")return null;let n=window.location.hash;if(!n.includes(a))return null;let e=new URLSearchParams(n.replace(/^#/,"")),i=e.get(a);if(!i)return null;e.delete(a);let t=e.toString();return window.history.replaceState(window.history.state,"",`${window.location.pathname}${window.location.search}${t?`#${t}`:""}`),i}async function k(n){if(!a$1())return false;let e=U();if(!e)return false;let i=R();if(y(),!i)return false;let{error:t}=await n.request("/session/exchange",{method:"POST",body:{code:e,verifier:i}});return t===null}
|
|
2
|
+
export{b as beginCrossSiteSignIn,w as challengeFor,k as completeCrossSiteSignIn,U as takeHandoffCode};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@authowl/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.0",
|
|
4
4
|
"description": "Framework-agnostic client for AuthOwl, the multi-tenant auth SaaS.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
@@ -76,6 +76,7 @@
|
|
|
76
76
|
"@akedly/shield": "1.0.2"
|
|
77
77
|
},
|
|
78
78
|
"devDependencies": {
|
|
79
|
+
"jsdom": "26.1.0",
|
|
79
80
|
"tsup": "^8.3.5",
|
|
80
81
|
"typescript": "^5.7.2",
|
|
81
82
|
"vitest": "^4.1.10"
|
package/dist/chunk-VZTAYWAD.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
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};
|