@authowl/core 0.11.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # @authowl/core
2
2
 
3
+ **[Complete SDK guide](https://authowl.dev/docs/sdks/core)** ·
4
+ **[Server Admin guide](https://authowl.dev/docs/sdks/admin-server)** ·
5
+ **[Error handling](https://authowl.dev/docs/sdks/errors)**
6
+
3
7
  Framework-agnostic client for [AuthOwl](https://authowl.dev), the multi-tenant
4
8
  auth service. Validates publishable keys, enforces HTTPS off localhost, and
5
9
  exposes typed errors. Most apps use [`@authowl/react`](https://www.npmjs.com/package/@authowl/react)
@@ -81,8 +85,9 @@ try {
81
85
  }
82
86
  ```
83
87
 
84
- See the full [Admin API reference](https://github.com/mstfash/authowl-sdk/blob/main/docs/admin-api.md)
85
- and [webhook signature guide](https://github.com/mstfash/authowl-sdk/blob/main/docs/webhooks.md).
88
+ See the full [Admin API reference](https://github.com/mstfash/authowl-sdk/blob/main/docs/admin-api.md),
89
+ the [phone OTP and Akedly Shield guide](https://github.com/mstfash/authowl-sdk/blob/main/docs/phone-otp.md),
90
+ and the [webhook signature guide](https://github.com/mstfash/authowl-sdk/blob/main/docs/webhooks.md).
86
91
  Webhook receivers import `verifyWebhook` from `@authowl/core/server`; it works
87
92
  in Node and worker Web Crypto runtimes.
88
93
 
@@ -0,0 +1 @@
1
+ var t=["en","ar"];function e(r){return r==="ar"?"rtl":"ltr"}function n(r){return typeof r=="string"&&t.includes(r)}export{t as a,e as b,n as c};
@@ -0,0 +1 @@
1
+ import {f,g,q as q$1,j as j$1,h,p,i,n,s,u,o,k as k$1,r,m as m$1,l}from'./chunk-KPXCQZUX.js';function gi(e){let t=e?.enabledMethods??["password"],n=t.includes("password"),i=t.includes("passkey"),o=e?.authentication,a=e?.mfa;return {emailSignUp:o?.email.signUp??t.some(r=>r==="password"||r==="magic_link"||r==="email_otp"),passwordSignUp:o?.password.signUp??n,phoneSignUp:o?.phone.signUp??t.includes("phone_otp"),passwordSignIn:o?.email.signIn.includes("password")??n,passwordMinLength:o?.password.minLength??8,passwordMaxLength:o?.password.maxLength??128,magicLinkSignIn:o?.email.signIn.includes("magic_link")??t.includes("magic_link"),emailOtpSignIn:o?.email.signIn.includes("email_otp")??t.includes("email_otp"),phoneSignIn:o?.phone.signIn??t.includes("phone_otp"),usernameSignIn:o?.username.signIn??false,collectUsername:o?.username.collectOnSignUp??false,passkeySignIn:o?.passkey.signIn??i,passkeyAdd:o?.passkey.add??i,firstLastName:e?.userModel?.firstLastName??false,emailChange:e===null?false:e.userModel?.emailChange??true,accountDeletion:e?.userModel?.accountDeletion??e?.accountDeletion??false,emailVerificationRequired:e?.emailVerification?.required??e?.requireEmailVerification??false,emailVerificationMethod:e?.emailVerification?.method??"link",totp:a?.totp??e?.twoFactor??false,mfaRequired:a?.required??e?.mfaRequired??false,backupCodes:a?.backupCodes??e?.twoFactor??false,legacyNameField:e?.authentication===void 0}}var Xt="x-authowl-turnstile-token",$t=1e4,Yt=32,Qt=2e4;function E(e,t){return {post:(n,i,o,a)=>e.request(n,{method:"POST",body:i,fetchOptions:o,decode:a}),mutation:async(n,i)=>{let o=await n;return o.error===null&&(i===void 0||o.data!==null&&i(o.data))&&t(),o}}}function we(e,t=e.projectBaseURL){return {async request(n,i={}){let o=tn(t,n,i.query),a=i.method??(i.body===void 0?"GET":"POST"),r=new Headers(i.fetchOptions?.headers);r.set("x-publishable-key",e.publishableKey),i.fetchOptions?.authChallengeToken&&r.set(Xt,i.fetchOptions.authChallengeToken),i.body!==void 0&&r.set("content-type","application/json");let s={method:a,headers:r,credentials:i.credentials??"include",...i.body===void 0?{}:{body:JSON.stringify(i.body)}},u=Object.freeze({method:a,path:n});await i.fetchOptions?.onRequest?.(u);let b=en(a,i.fetchOptions),c;try{c=await Zt(e,o,{...s,signal:i.fetchOptions?.signal},b);}catch(D){let fe=be(D);return await i.fetchOptions?.onError?.(Z(u,fe,rn(D))),{data:null,error:fe}}let{response:l,requestId:g}=c,f$1=un(n,c.data),w=f$1;if(l.ok)try{w=te(f$1),i.decode&&(w=i.decode(w));}catch{let D=be(new f("invalid_response",g));return await i.fetchOptions?.onError?.(Z(u,D,"invalid_response")),{data:null,error:D}}let L=Object.freeze({...u,status:l.status,...g===void 0?{}:{requestId:g}});if(await i.fetchOptions?.onResponse?.(L),!l.ok){let D=nn(l,f$1,g);return await i.fetchOptions?.onError?.(Z(u,D,"api")),{data:null,error:D}}return await i.fetchOptions?.onSuccess?.(L),{data:w,error:null}}}}async function Zt(e,t,n,i){let o=Date.now()+$t;for(let a=0;a<i;a+=1){let r=o-Date.now();if(r<=0)throw new f("timeout");try{let s=await g({fetchImpl:e.fetch??fetch,url:t,init:n,timeoutMs:Math.max(1,Math.ceil(r)),allowHttpLoopback:e.decoded.env==="test"});if(s.response.status<500||a===i-1)return s}catch(s){if(a===i-1||!(s instanceof f)||s.kind!=="network")throw s}await an(50*2**a,n.signal,o);}throw new f("network")}function en(e,t){if(e!=="GET"||t?.authChallengeToken)return 1;let n=t?.retry;return typeof n!="number"||!Number.isFinite(n)?1:Math.min(Math.max(Math.trunc(n),0),3)+1}function tn(e,t,n){let i=new URL(`${e}${t.startsWith("/")?t:`/${t}`}`);for(let[o,a]of Object.entries(n??{}))a!==void 0&&i.searchParams.set(o,String(a));return i.toString()}function nn(e,t,n){let i=F(t)?t:{},o=on(i,e.headers);return {status:e.status,statusText:e.statusText,code:typeof i.code=="string"?i.code:void 0,...n===void 0?{}:{requestId:n},...typeof i.current_version=="number"?{currentVersion:i.current_version}:{},...o!==void 0?{retryAfterSeconds:o}:{},message:typeof i.message=="string"?i.message:typeof i.error=="string"?i.error:typeof i.detail=="string"?i.detail:e.statusText||"Request failed"}}function on(e,t){let n=(typeof e.retryAfterSeconds=="number"&&Number.isFinite(e.retryAfterSeconds)?e.retryAfterSeconds:void 0)??Oe(t.get("retry-after"))??Oe(t.get("x-retry-after"));if(n!==void 0)return Math.min(Math.max(Math.trunc(n),1),86400)}function Oe(e){if(!e)return;let t=e.trim();if(!/^\d+$/.test(t))return;let n=Number(t);return Number.isFinite(n)?n:void 0}function be(e){let t=e instanceof f?e.kind:"network";return {status:0,...{aborted:{statusText:"ABORTED",code:"REQUEST_ABORTED",message:"The request was cancelled."},timeout:{statusText:"TIMEOUT",code:"REQUEST_TIMEOUT",message:"The request timed out."},response_too_large:{statusText:"INVALID_RESPONSE",code:"RESPONSE_TOO_LARGE",message:"The service response was too large."},invalid_response:{statusText:"INVALID_RESPONSE",code:"INVALID_RESPONSE",message:"The service returned an invalid response."},network:{statusText:"FETCH_ERROR",code:"FETCH_ERROR",message:"Network request failed."}}[t],...e instanceof f&&e.requestId?{requestId:e.requestId}:{}}}function Z(e,t,n){return Object.freeze({...e,status:t.status??0,...t.requestId===void 0?{}:{requestId:t.requestId},failure:n})}function rn(e){return e instanceof f?e.kind:"network"}function an(e,t,n){return new Promise((i,o)=>{if(t?.aborted){o(new f("aborted"));return}let a=n-Date.now();if(a<=0){o(new f("timeout"));return}let r=Math.min(e,a),s=()=>{clearTimeout(u),o(new f("aborted"));},u=setTimeout(()=>{t?.removeEventListener("abort",s),Date.now()>=n?o(new f("timeout")):i();},r);t?.addEventListener("abort",s,{once:true}),t?.aborted&&s();})}function te(e,t="",n=0,i={nodes:0}){if(i.nodes+=1,n>Yt||i.nodes>Qt)throw new Error("response traversal limit exceeded");if(typeof e=="string"&&/^(?:createdAt|updatedAt|expiresAt)$/.test(t)){let o=new Date(e);return Number.isNaN(o.getTime())?e:o}return Array.isArray(e)?e.map(o=>te(o,"",n+1,i)):F(e)?Object.fromEntries(Object.entries(e).map(([o,a])=>[o,sn(o)?a:te(a,o,n+1,i)])):e}function sn(e){return e==="metadata"||e==="public_metadata"||e==="unsafe_metadata"||e==="private_metadata"||e==="publicMetadata"||e==="unsafeMetadata"||e==="privateMetadata"}function un(e,t){if(e==="/list-sessions"&&Array.isArray(t))return t.map(o=>F(o)?ee(o):o);if(!F(t))return t;let i=e==="/change-password"||e==="/passkey/verify-authentication"||e==="/phone-otp/verify"||e==="/sign-up/email"||e.startsWith("/sign-in/")||e.startsWith("/two-factor/verify-")?ee(t):t;return e==="/sign-up/email"&&!("sessionCreated"in i)&&(i={...i,sessionCreated:typeof t.token=="string"&&t.token.length>0}),(e==="/get-session"||e==="/passkey/verify-authentication")&&F(i.session)&&(i={...i,session:ee(i.session)}),i}function ee(e){if(!Object.hasOwn(e,"token"))return e;let t={...e};return delete t.token,t}function F(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}function ke(){let e=globalThis.crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=Array.from(e,n=>n.toString(16).padStart(2,"0")).join("");return `${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function Ie(e,t){let n=new Set,i=null,o=null,a=null,r,s=f=>{c(f);};r={data:null,isPending:true,isRefetching:false,error:null,refetch:s};function u(f){r=f;for(let w of n)w();}async function b(f){return e.request("/get-session",{query:f?.query,decode:Se})}async function c(f){a?.abort();let w=new AbortController;a=w,u({...r,isPending:r.data===null&&r.error===null,isRefetching:r.data!==null});let L=await e.request("/get-session",{query:f?.query,fetchOptions:{signal:w.signal},decode:Se});a===w&&(a=null,u({data:L.data,error:L.error,isPending:false,isRefetching:false,refetch:s}));}function l(){if(typeof window>"u"||o)return;let f=()=>{c();},w=()=>{document.visibilityState==="visible"&&c();};window.addEventListener("focus",f),document.addEventListener("visibilitychange",w),typeof BroadcastChannel<"u"&&(i=new BroadcastChannel(`authowl:${t}`),i.addEventListener("message",f)),o=()=>{window.removeEventListener("focus",f),document.removeEventListener("visibilitychange",w),i?.close(),i=null,o=null;};}function g(f){return n.add(f),n.size===1&&(l(),c()),()=>{n.delete(f),n.size===0&&(a?.abort(),a=null,o?.());}}return {store:{subscribe:g,getSnapshot:()=>r},getSession:b,notifyMutation(){i?.postMessage({type:"session-changed"}),n.size>0&&c({query:{disableCookieCache:true}});}}}function Se(e){if(e===null)return null;let t=h(e);return (t.session===void 0||t.user===void 0)&&p(),{session:o(t.session),user:n(t.user)}}async function Re(e,t){return e.request("/user/metadata",{fetchOptions:t,decode:Pe})}async function Te(e,t,n){return e.request("/user/metadata",{method:"PATCH",body:{expected_version:t.expectedVersion,unsafe_metadata:t.unsafeMetadata},fetchOptions:n,decode:Pe})}function Pe(e){let t=h(e),n=q$1(t.public_metadata),i=q$1(t.unsafe_metadata);if(!Number.isSafeInteger(t.metadata_version)||t.metadata_version<0)throw new TypeError("Invalid AuthOwl metadata response");return {publicMetadata:n,unsafeMetadata:i,metadataVersion:t.metadata_version}}function xe(e,t){let{post:n,mutation:i}=E(e,t);return {getMetadata:o=>Re(e,o),updateUnsafeMetadata:(o,a)=>Te(e,o,a),updateProfile:(o,a)=>i(n("/update-user",o,a,q)),changeEmail:(o,a)=>i(n("/change-email",o,a,q)),changePassword:(o,a)=>i(n("/change-password",o,a,cn)),listSessions:o=>e.request("/list-sessions",{fetchOptions:o,decode:dn}),revokeSession:({sessionId:o},a)=>i(n("/revoke-session",{sessionId:o},a,q)),revokeOtherSessions:o=>i(n("/revoke-other-sessions",{},o,q)),listSocialAccounts:async o=>{let a=await e.request("/list-accounts",{fetchOptions:o,decode:ln});if(!a.data)return {data:null,error:a.error};let r=a.data.length>1;return {...a,data:a.data.filter(s=>s.providerId!=="credential").map(s=>({...s,canUnlink:r}))}},linkSocial:(o,a)=>n("/link-social",o,a,pn),unlinkSocial:(o,a)=>i(n("/unlink-account",o,a,q)),delete:(o={},a)=>i(n("/delete-user",o,a,gn))}}function q(e){let t=h(e);return {status:j$1(t.status)}}function cn(e){let t=h(e);return {user:n(t.user)}}function dn(e){return Array.isArray(e)||p(),e.map(t=>{let n=h(t);return {id:i(n.id),userId:i(n.userId),createdAt:k$1(n.createdAt),updatedAt:k$1(n.updatedAt),expiresAt:k$1(n.expiresAt),...ve("ipAddress",m$1(n,"ipAddress")),...ve("userAgent",m$1(n,"userAgent"))}})}function ln(e){return Array.isArray(e)||p(),e.map(t=>{let n=h(t);return {id:i(n.id),userId:i(n.userId),providerId:i(n.providerId),accountId:i(n.accountId),scopes:l(n.scopes),createdAt:k$1(n.createdAt),updatedAt:k$1(n.updatedAt)}})}function pn(e){let t=h(e);return {url:i(t.url),redirect:j$1(t.redirect)}}function gn(e){let t=h(e);return {success:j$1(t.success),message:i(t.message)}}function ve(e,t){return t===void 0?{}:{[e]:t}}var fn=new Set(["pending","accepted","rejected","canceled"]),De=1e4;function N(e,t,n){let i=h(e),o={id:m(i.id),name:m(i.name),slug:m(i.slug),createdAt:k$1(i.createdAt),...B("logo",m$1(i,"logo")),...B("metadata",i.metadata===void 0?void 0:r(i.metadata))};return z(o.id,t),z(o.slug,n),o}function ze(e){return C(e,N)}function ne(e,t,n){return e===null?null:(t===null&&p(),N(e,t,n))}function Ce(e,t,n){if(e===null)return null;let i=h(e),o=N(i,t,n);return {...o,members:C(i.members,a=>je(a,o.id)),invitations:C(i.invitations,a=>v(a,void 0,o.id))}}function Ee(e,t){let n=C(e,i=>Be(i));return j(n.map(i=>i.organizationId),t),n}function Ne(e,t,n){return e===null?null:(t===null&&p(),Be(e,t,n))}function Ue(e,t){let n=h(e);return (!Number.isSafeInteger(n.total)||n.total<0)&&p(),{members:mn(n.members,t),total:n.total}}function v(e,t,n){let i=h(e),o=m(i.status);fn.has(o)||p();let a={id:m(i.id),organizationId:m(i.organizationId),email:m(i.email),role:m(i.role),status:o,inviterId:m(i.inviterId),expiresAt:k$1(i.expiresAt),createdAt:k$1(i.createdAt)};return z(a.id,t),z(a.organizationId,n),a}function Me(e,t){let n=C(e,i=>v(i));return j(n.map(i=>i.organizationId),t),n}function _e(e){return C(e,t=>{let n=h(t);return {...v(n),organizationName:m(n.organizationName)}})}function Le(e,t){let n=h(e);return {...v(n,t),organizationName:m(n.organizationName),organizationSlug:m(n.organizationSlug),inviterEmail:m(n.inviterEmail)}}function Fe(e,t){let n=h(e),i=v(n.invitation,t);return {invitation:i,member:U(n.member,void 0,i.organizationId)}}function qe(e,t){let n=h(e);return n.member!==null&&p(),{invitation:n.invitation===null?null:v(n.invitation,t),member:null}}function Ve(e,t){return e===null?null:v(e,t)}function He(e,t,n){let i=h(e);return {member:U(i.member,n,t)}}function U(e,t,n){let i=h(e),o={id:m(i.id),organizationId:m(i.organizationId),userId:m(i.userId),role:m(i.role),createdAt:k$1(i.createdAt),...i.user===void 0?{}:{user:Je(i.user)}};return z(o.id,t),z(o.organizationId,n),o}function Ke(e,t){let n=C(e,i=>{let o=h(i);return {organizationId:m(o.organizationId),data:{role:m(o.role),...B("permission",o.permission===void 0?void 0:hn(o.permission))}}});return j(n.map(i=>i.organizationId),t),n.map(i=>i.data)}function Be(e,t,n){let i=h(e),o=i.updatedAt,a={id:m(i.id),name:m(i.name),organizationId:m(i.organizationId),createdAt:k$1(i.createdAt),...o===void 0?{}:{updatedAt:k$1(o)}};return z(a.id,t),z(a.organizationId,n),a}function je(e,t){let n=h(e);return {...U(n,void 0,t),user:Je(n.user)}}function mn(e,t){let n=C(e,i=>je(i));return j(n.map(i=>i.organizationId),t),n}function hn(e){let t=h(e),n={};for(let[i,o]of Object.entries(t))(i==="__proto__"||i==="constructor"||i==="prototype"||i.length===0||i.length>De||!Array.isArray(o))&&p(),n[i]=o.map(a=>m(a));return n}function m(e){let t=i(e);return (t.length===0||t.length>De)&&p(),t}function z(e,t){t!==void 0&&e!==t&&p();}function j(e,t){let n=t??e[0];n!==void 0&&e.some(i=>i!==n)&&p();}function Je(e){let t=h(e);return {id:m(t.id),name:m(t.name),email:m(t.email),...B("image",m$1(t,"image"))}}function C(e,t){return Array.isArray(e)||p(),e.map(n=>t(n))}function B(e,t){return t===void 0?{}:{[e]:t}}function Ge(e,t,n=()=>null){let{post:i,mutation:o}=E(e,t),a=(r,s,u,b)=>e.request(r,{query:s,fetchOptions:u,decode:b});return {create:(r,s)=>o(i("/organization/create",r,s,N)),list:r=>a("/organization/list",void 0,r,ze),get:(r={},s)=>a("/organization/get-full-organization",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,membersLimit:r.membersLimit},s,u=>Ce(u,r.organizationId,r.organizationSlug)),setActive:(r,s)=>o(i("/organization/set-active",r,s,u=>ne(u,r.organizationId,r.organizationSlug))),listTeams:(r={},s)=>a("/organization/list-teams",{organizationId:r.organizationId},s,u=>Ee(u,r.organizationId)),setActiveTeam:(r,s)=>o(i("/organization/set-active-team",r,s,u=>Ne(u,r.teamId))),update:(r,s)=>o(i("/organization/update",r,s,u=>ne(u,r.organizationId))),delete:(r,s)=>o(i("/organization/delete",r,s,u=>N(u,r.organizationId))),listMembers:(r={},s)=>a("/organization/list-members",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,limit:r.limit,offset:r.offset,sortBy:r.sortBy,sortDirection:r.sortDirection,filterField:r.filterField,filterValue:r.filterValue,filterOperator:r.filterOperator},s,u=>Ue(u,r.organizationId)),inviteMember:(r,s)=>o(i("/organization/invite-member",r,s,u=>v(u,void 0,r.organizationId))),listInvitations:(r={},s)=>a("/organization/list-invitations",{organizationId:r.organizationId},s,u=>Me(u,r.organizationId)),listUserInvitations:r=>a("/organization/list-user-invitations",void 0,r,_e),getInvitation:(r,s)=>a("/organization/get-invitation",{id:r.id},s,u=>Le(u,r.id)),acceptInvitation:(r,s)=>o(i("/organization/accept-invitation",r,s,u=>Fe(u,r.invitationId))),rejectInvitation:(r,s)=>o(i("/organization/reject-invitation",r,s,u=>qe(u,r.invitationId))),cancelInvitation:(r,s)=>o(i("/organization/cancel-invitation",r,s,u=>Ve(u,r.invitationId))),removeMember:(r,s)=>o(i("/organization/remove-member",r,s,u=>He(u,r.organizationId,r.memberIdOrEmail.includes("@")?void 0:r.memberIdOrEmail))),updateMemberRole:(r,s)=>o(i("/organization/update-member-role",r,s,u=>U(u,r.memberId,r.organizationId))),leave:(r,s)=>o(i("/organization/leave",r,s,u=>U(u,void 0,r.organizationId))),listRoles:(r={},s)=>a("/organization/list-roles",{organizationId:r.organizationId},s,u=>Ke(u,r.organizationId)),has:r=>u(n(),r),hasPermission:r=>s(n(),r.permission)}}var We=4096,An=4096,yn=100,On=256,bn=16,wn=64,kn=12;function oe(e){let t=h(e);return t.twoFactorRedirect===true?((t.user!==void 0||t.redirect!==void 0||t.url!==void 0)&&p(),{twoFactorRedirect:true,...t.twoFactorMethods===void 0?{}:{twoFactorMethods:pt(t.twoFactorMethods,bn,wn)}}):(t.twoFactorRedirect!==void 0&&p(),{redirect:j$1(t.redirect),...Pn(t,"url"),user:n(t.user)})}function Xe(e){let t=h(e);return {user:n(t.user)}}function $e(e){let t=h(e);return {sessionCreated:j$1(t.sessionCreated),user:n(t.user)}}function Ye(e,t){let n$1=h(e),i=j$1(n$1.redirect);n$1.user===null&&p();let o=n$1.user!==void 0&&n$1.user!==null,a=n$1.url!==void 0&&n$1.url!==null;return i?((o||!a)&&p(),{redirect:true,url:ie(n$1.url,t)}):(o===a&&p(),o?{redirect:false,user:n(n$1.user)}:{redirect:false,url:ie(n$1.url,t)})}function Qe(e,t){let n=h(e);return (n.redirect!==true||n.user!==void 0)&&p(),{redirect:true,url:ie(n.url,t)}}function Ze(e){return {status:j$1(h(e).status)}}function et(e){return {success:j$1(h(e).success)}}function tt(e){return h(e).status!=="pending"&&p(),{status:"pending"}}function nt(e){let t=h(e);if(t.kind==="authowl_turnstile")return {kind:"authowl_turnstile"};t.kind!=="akedly_shield_v1_2"&&p();let n=h(t.turnstile),i$1=n.siteKey===null?null:i(n.siteKey);return {kind:"akedly_shield_v1_2",connectionId:i(t.connectionId),challenge:i(t.challenge),difficulty:Sn(t.difficulty),challengeToken:i(t.challengeToken),challengeRequired:j$1(t.challengeRequired),turnstile:{required:j$1(n.required),siteKey:i$1}}}function Sn(e){return (!Number.isSafeInteger(e)||Number(e)<0||Number(e)>kn)&&p(),Number(e)}function it(e){let t=h(e);return (t.status!==true||t.sessionCreated!==true)&&p(),{status:true,sessionCreated:true,user:In(t.user)}}function re(e){return {status:j$1(h(e).status)}}function ot(e){return {status:j$1(h(e).status)}}function rt(e){let t=h(e);return {status:j$1(t.status),user:n(t.user)}}function at(e){return {success:j$1(h(e).success)}}function st(e){let t=h(e);return {totpURI:Tn(t.totpURI),backupCodes:lt(t.backupCodes)}}function ut(e){return {status:j$1(h(e).status)}}function J(e){return h(e).status!==true&&p(),{status:true}}function ct(e){return {status:j$1(h(e).status)}}function dt(e){let t=h(e);return t.status!==void 0&&t.status!==true&&p(),{backupCodes:lt(t.backupCodes)}}function In(e){let t=h(e);return {id:M(t.id,512),...vn(t,"name",1024),phoneNumber:M(t.phoneNumber,64),phoneNumberVerified:j$1(t.phoneNumberVerified),...t.createdAt===void 0?{}:{createdAt:k$1(t.createdAt)},...t.updatedAt===void 0?{}:{updatedAt:k$1(t.updatedAt)}}}function ie(e,t){let n=M(e,We);/[\u0000-\u0020\u007f]/u.test(n)&&p();let i;try{i=new URL(n);}catch{return p()}return (i.username||i.password)&&p(),i.protocol==="https:"||t&&i.protocol==="http:"&&Rn(i.hostname)?i.href:p()}function Rn(e){let t=e.toLowerCase();return t==="localhost"||t==="127.0.0.1"||t==="[::1]"}function Tn(e){let t=M(e,An),n;try{n=new URL(t);}catch{return p()}let i=n.searchParams.get("secret");return (n.protocol!=="otpauth:"||n.hostname.toLowerCase()!=="totp"||n.username||n.password||n.hash||i===null||i.length===0||i.length>512||/\s/u.test(i))&&p(),t}function lt(e){return pt(e,yn,On)}function pt(e,t,n){(!Array.isArray(e)||e.length===0||e.length>t)&&p();let i=e.map(o=>M(o,n));return i.some(o=>o.trim().length===0)&&p(),new Set(i).size!==i.length&&p(),i}function M(e,t){let n=i(e);return (n.length===0||n.length>t)&&p(),n}function Pn(e,t){let n=e[t];return n==null?{}:{[t]:M(n,We)}}function vn(e,t,n){let i=m$1(e,t);return i===void 0?{}:(i!==null&&i.length>n&&p(),{[t]:i})}var gt=new Set([1564,8206,8207,8234,8235,8236,8237,8238,8294,8295,8296,8297]),G=new Set([9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288,65279]);function W(e){if(e===void 0)return {valid:true,value:void 0};for(let n of e){let i=n.codePointAt(0);if(i===void 0||mt(n,i)||ft(i)||gt.has(i))return {valid:false}}let t=xn(e);return ae(t)?{valid:true,value:t}:{valid:false}}function ae(e){let t=0,n,i;for(let o of e){if(t+=1,t>256)return false;let a=o.codePointAt(0);if(a===void 0||mt(o,a)||ft(a)||gt.has(a))return false;n??=a,i=a;}return t>0&&n!==void 0&&i!==void 0&&!G.has(n)&&!G.has(i)}function X(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_PASSKEY_NAME",message:"Passkey names must contain 1 to 256 safe Unicode characters."}}}function xn(e){let t=0,n=e.length;for(;t<n;){let i=e.codePointAt(t);if(i===void 0||!G.has(i))break;t+=i>65535?2:1;}for(;n>t;){let i=e.codePointAt(n-1);if(i===void 0)break;let a=i>=56320&&i<=57343?n-2:n-1,r=e.codePointAt(a);if(r===void 0||!G.has(r))break;n=a;}return e.slice(t,n)}function ft(e){return e>=0&&e<=31||e>=127&&e<=159}function mt(e,t){return e.length===1&&t>=55296&&t<=57343}var yt=12,Ot=5e3,Dn=8,zn=1e3,Cn=16,ht=512,bt=100,wt=8192,En=32768,se=1024,At=256,ce=64,Nn=6e5,Un=/^[A-Za-z0-9_-]+$/u,Mn=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u,_n=/[\u0000-\u001f\u007f-\u009f\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/u,Ln=/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$/u,Fn=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu,kt=new Set(["discouraged","preferred","required"]),qn=new Set(["singleDevice","multiDevice"]),St=new Set(["ble","cable","hybrid","internal","nfc","smart-card","usb"]),It=new Set(["hybrid","security-key","client-device"]),Vn=new Set(["none","indirect","direct","enterprise"]),Hn=new Set(["fido-u2f","packed","android-safetynet","android-key","tpm","apple","none"]),Kn=new Set(["platform","cross-platform"]),Bn=new Set(["discouraged","preferred","required"]),jn=new Set([-8,-7,-257]);function Rt(e){let t=q$1(e,yt,Ot);return {challenge:Ut(t.challenge),...y("timeout",Et(t.timeout)),...y("rpId",Mt(t.rpId)),...y("allowCredentials",Ct(t.allowCredentials)),...y("userVerification",V(t.userVerification,kt)),...y("hints",$(t.hints,It)),...y("extensions",Nt(t.extensions))}}function Tt(e){let t=q$1(e,yt,Ot);return {challenge:Ut(t.challenge),rp:Jn(t.rp),user:Gn(t.user),pubKeyCredParams:Wn(t.pubKeyCredParams),...y("timeout",Et(t.timeout)),...y("excludeCredentials",Ct(t.excludeCredentials)),...y("authenticatorSelection",Xn(t.authenticatorSelection)),...y("attestation",V(t.attestation,Vn)),...y("attestationFormats",$(t.attestationFormats,Hn)),...y("hints",$(t.hints,It)),...y("extensions",Nt(t.extensions))}}function Pt(e){let t=h(e),n$1=o(t.session),i=n(t.user);return n$1.userId!==i.id&&p(),{session:n$1,user:i}}function de(e){let t=h(e),n=t.counter;(!Number.isSafeInteger(n)||n<0)&&p();let i=le(t.deviceType,qn),o=j$1(t.backedUp);return o&&i!=="multiDevice"&&p(),{id:_(t.id,At),...Qn(t),publicKey:$n(t.publicKey,En),userId:_(t.userId,At),credentialID:Q(t.credentialID,wt),counter:n,deviceType:i,backedUp:o,...Zn(t),createdAt:k$1(t.createdAt),...ei(t)}}function vt(e,t,n){let i=de(e);return (i.credentialID!==t||(n===void 0?i.name!==void 0&&i.name!==null:i.name!==n))&&p(),i}function xt(e){(!Array.isArray(e)||e.length>bt)&&p();let t=e.map(de);return Y(t.map(n=>n.id)),Y(t.map(n=>n.credentialID)),t.length>1&&t.some(n=>n.userId!==t[0]?.userId)&&p(),t}function Dt(e,t,n){let i=h(e),o=de(i.passkey);return (o.id!==t||o.name!==n)&&p(),{passkey:o}}function zt(e){return h(e).status!==true&&p(),{status:true}}function Jn(e){let t=h(e);return {name:ue(t.name,se),...y("id",Mt(t.id))}}function Gn(e){let t=h(e);return {id:Q(t.id,128,1,64),name:ue(t.name,se),displayName:ue(t.displayName,se)}}function Wn(e){(!Array.isArray(e)||e.length===0||e.length>ce)&&p();let t=e.map(n=>{let i=h(n);return (i.type!=="public-key"||!Number.isSafeInteger(i.alg)||!jn.has(i.alg))&&p(),{type:"public-key",alg:i.alg}});return ti(t.map(n=>n.alg)),t}function Ct(e){if(e===void 0)return;(!Array.isArray(e)||e.length>bt)&&p();let t=e.map(n=>{let i=h(n);return i.type!=="public-key"&&p(),{type:"public-key",id:Q(i.id,wt),...y("transports",$(i.transports,St))}});return Y(t.map(n=>n.id)),t}function Xn(e){if(e===void 0)return;let t=h(e);t.requireResidentKey!==void 0&&typeof t.requireResidentKey!="boolean"&&p();let n=V(t.residentKey,Bn);return t.requireResidentKey!==void 0&&n!==void 0&&t.requireResidentKey!==(n==="required")&&p(),{...y("authenticatorAttachment",V(t.authenticatorAttachment,Kn)),...y("residentKey",n),...y("requireResidentKey",t.requireResidentKey),...y("userVerification",V(t.userVerification,kt))}}function Et(e){return e!==void 0&&(typeof e!="number"||!Number.isFinite(e)||e<0||e>Nn)&&p(),e}function Nt(e){return e===void 0?void 0:q$1(e,Dn,zn)}function $(e,t){if(e===void 0)return;(!Array.isArray(e)||e.length>ce)&&p();let n=e.map(i=>le(i,t));return Y(n),n}function V(e,t){if(e!==void 0)return le(e,t)}function Ut(e){return Q(e,Math.ceil(ht*4/3),Cn,ht)}function Q(e,t,n=1,i=Number.POSITIVE_INFINITY){let o=_(e,t),a=o.length%4,r=Yn(o.at(-1)??""),s=Math.floor(o.length*3/4);return (!Un.test(o)||a===1||a===2&&(r&15)!==0||a===3&&(r&3)!==0||s<n||s>i)&&p(),o}function _(e,t){let n=i(e);return (n.length===0||n.length>t)&&p(),n}function ue(e,t){let n=_(e,t);return _n.test(n)&&p(),n}function Mt(e){if(e===void 0)return;let t=_(e,253);return t!=="localhost"&&(t.endsWith(".")||!t.includes(".")||t.split(".").some(n=>!Ln.test(n)))&&p(),t}function $n(e,t){let n=_(e,t),i=n.endsWith("=="),o=!i&&n.endsWith("="),a=n.at(i?-3:o?-2:-1)??"",r=_t(a);return (n.length%4!==0||!Mn.test(n)||i&&(r&15)!==0||o&&(r&3)!==0)&&p(),n}function Yn(e){return _t(e,true)}function _t(e,t=false){return (t?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").indexOf(e)}function Qn(e){let t=m$1(e,"name");return t===void 0?{}:(t!==null&&!ae(t)&&p(),{name:t})}function Zn(e){let t=m$1(e,"transports");if(t==null||t==="")return t===void 0?{}:{transports:t};let n=t.split(",");return (n.length>ce||n.some(i=>!St.has(i))||new Set(n).size!==n.length)&&p(),{transports:t}}function ei(e){let t=m$1(e,"aaguid");return t==null?t===void 0?{}:{aaguid:null}:(Fn.test(t)||p(),{aaguid:t})}function le(e,t){let n=i(e);return t.has(n)||p(),n}function y(e,t){return t===void 0?{}:{[e]:t}}function Y(e){new Set(e).size!==e.length&&p();}function ti(e){new Set(e).size!==e.length&&p();}function ni(e,t=()=>{},n=ri){let i=we(e),o=Ie(i,e.decoded.projectId),a=n(i,o.notifyMutation),r=()=>{o.notifyMutation(),t();},{post:s,mutation:u}=E(i,r),b=e.decoded.env==="test";return {sessionStore:o.store,getSession:o.getSession,account:xe(i,r),organization:Ge(i,r,()=>o.store.getSnapshot().data?.session.membership??null),signIn:{email:(c,l)=>u(s("/sign-in/email",c,l,oe),g=>!("twoFactorRedirect"in g)),username:(c,l)=>u(s("/sign-in/username",c,l,oe),g=>!("twoFactorRedirect"in g)),social:async(c,l)=>{let g=await u(s("/sign-in/social",c,l,f=>Ye(f,b)),f=>"user"in f);return g.error!==null||g.data===null||"url"in g.data&&g.data.redirect&&!c.disableRedirect&&typeof window<"u"&&window.location.assign(g.data.url),g},sso:async(c,l)=>{let g=await s("/sign-in/sso",c,l,f=>Qe(f,b));return g.error!==null||g.data===null||typeof window<"u"&&window.location.assign(g.data.url),g},magicLink:(c,l)=>s("/sign-in/magic-link",c,l,Ze),emailOtp:(c,l)=>u(s("/sign-in/email-otp",c,l,Xe)),passkey:(c,l)=>a.signIn(c,l)},signUp:{email:(c,l)=>u(s("/sign-up/email",c,l,$e),g=>g.sessionCreated)},emailOtp:{sendVerificationOtp:(c,l)=>s("/email-otp/send-verification-otp",c,l,et),verifyEmail:(c,l)=>u(s("/email-otp/verify-email",c,l,rt))},phoneOtp:{prepare:c=>s("/phone-otp/challenge",{},c,nt),start:(c,l)=>s("/phone-otp/start",{...c,idempotencyKey:c.idempotencyKey??ke()},l,tt),verify:(c,l)=>u(s("/phone-otp/verify",c,l,it))},requestPasswordReset:(c,l)=>s("/request-password-reset",c,l,re),resetPassword:(c,l)=>s("/reset-password",c,l,re),sendVerificationEmail:(c,l)=>s("/send-verification-email",c,l,ot),passkey:{addPasskey:(c,l)=>a.add(c,l),listUserPasskeys:()=>i.request("/passkey/list-user-passkeys",{decode:xt}),updatePasskey:async(c,l)=>{let g=W(c.name);if(!g.valid||g.value===void 0)return X();let f=g.value;return s("/passkey/update-passkey",{...c,name:f},l,w=>Dt(w,c.id,f))},deletePasskey:(c,l)=>s("/passkey/delete-passkey",c,l,zt)},twoFactor:{enable:(c,l)=>s("/two-factor/enable",c,l,st),disable:(c,l)=>u(s("/two-factor/disable",c,l,ut),g=>g.status),verifyTotp:(c,l)=>u(s("/two-factor/verify-totp",c,l,J)),verifyBackupCode:(c,l)=>u(s("/two-factor/verify-backup-code",c,l,J)),sendOtp:(c={},l)=>s("/two-factor/send-otp",c,l,ct),verifyOtp:(c,l)=>u(s("/two-factor/verify-otp",c,l,J)),generateBackupCodes:(c,l)=>s("/two-factor/generate-backup-codes",c,l,dt)},signOut:c=>u(i.request("/sign-out",{method:"POST",body:{},fetchOptions:c,decode:at}),l=>l.success)}}function Ji(e,t=()=>{},n){let i=ni(e,t,n);return n?{...i,signIn:{email:i.signIn.email,username:i.signIn.username,social:Lt(i),magicLink:i.signIn.magicLink,emailOtp:i.signIn.emailOtp,passkey:i.signIn.passkey},passkey:{listUserPasskeys:i.passkey.listUserPasskeys,updatePasskey:i.passkey.updatePasskey,deletePasskey:i.passkey.deletePasskey,addPasskey:i.passkey.addPasskey}}:{...i,signIn:{email:i.signIn.email,username:i.signIn.username,social:Lt(i),magicLink:i.signIn.magicLink,emailOtp:i.signIn.emailOtp},passkey:{listUserPasskeys:i.passkey.listUserPasskeys,updatePasskey:i.passkey.updatePasskey,deletePasskey:i.passkey.deletePasskey}}}function Lt(e){return async(t,n)=>{if(!t?.idToken||typeof t.idToken.token!="string"||t.idToken.token==="")return ii();let i=await e.signIn.social({...t,disableRedirect:true},n);return i.data!==null&&"url"in i.data?oi():i}}function ii(){return Promise.resolve({data:null,error:{status:400,statusText:"BAD_REQUEST",code:"NATIVE_SOCIAL_ID_TOKEN_REQUIRED",message:"Native social sign-in requires a provider ID token."}})}function oi(){return Promise.resolve({data:null,error:{status:502,statusText:"BAD_GATEWAY",code:"INVALID_NATIVE_SOCIAL_RESPONSE",message:"The server returned a redirect for native ID-token sign-in."}})}function ri(){return {signIn:()=>Ft(),add:()=>Ft()}}function Ft(){return Promise.resolve({data:null,error:{status:400,statusText:"BAD_REQUEST",code:"PASSKEY_BROWSER_REQUIRED",message:"This passkey ceremony requires a browser with WebAuthn."}})}function $i(e,t,n){let i=new Map;return {async signIn(o={},a){let r=await e.request("/passkey/generate-authenticate-options");if(!r.data)return Ht(r.error);let s;try{s=Rt(r.data);}catch{return qt()}let u;try{u=await n.authenticate({optionsJSON:s,useBrowserAutofill:o.autoFill});}catch(f){return Kt(n,f,"AUTH_CANCELLED","Passkey authentication was cancelled.")}if(!ai(u))return Vt();let{clientExtensionResults:b,...c}=u,l=i.get(u.id);if(l)return l;let g=(async()=>{let f=await e.request("/passkey/verify-authentication",{method:"POST",body:{response:c},fetchOptions:a,decode:Pt});return f.data&&t(),f})();i.set(u.id,g);try{return await g}finally{i.get(u.id)===g&&i.delete(u.id);}},async add(o={},a){let r=W(o.name);if(!r.valid)return X();let s=await e.request("/passkey/generate-register-options",{query:{name:r.value,authenticatorAttachment:o.authenticatorAttachment}});if(!s.data)return Ht(s.error);let u;try{u=Tt(s.data);}catch{return qt()}let b;try{b=await n.register({optionsJSON:u});}catch(f){return Kt(n,f,"REGISTRATION_CANCELLED","Passkey registration was cancelled.")}if(!si(b))return Vt();let{clientExtensionResults:c,...l}=b,g=await e.request("/passkey/verify-registration",{method:"POST",body:{response:l,name:r.value},fetchOptions:a,decode:f=>vt(f,b.id,r.value)});return g.data&&t(),g}}}function qt(){return {data:null,error:{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned invalid WebAuthn options."}}}function Vt(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_WEBAUTHN_RESPONSE",message:"The platform returned an invalid passkey response."}}}function Bt(e){if(!e||typeof e!="object")return false;let t=e;return typeof t.id=="string"&&t.id.length>0&&typeof t.rawId=="string"&&t.rawId.length>0&&t.type==="public-key"&&!!t.response&&typeof t.response=="object"}function ai(e){if(!Bt(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.authenticatorData=="string"&&typeof t.signature=="string"&&(t.userHandle===void 0||typeof t.userHandle=="string")}function si(e){if(!Bt(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.attestationObject=="string"}function Ht(e){return {data:null,error:e??{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned no WebAuthn options."}}}function Kt(e,t,n,i){let o=ci(t,"page does not have focus"),a=e.errorCode?.(t),r=a!==void 0?a==="ERROR_CEREMONY_ABORTED":ui(t)==="AbortError";return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:o?"PASSKEY_PAGE_NOT_FOCUSED":r?n:a??"PASSKEY_BROWSER_ERROR",message:o?"Keep this page focused while completing the passkey prompt.":r?i:n==="AUTH_CANCELLED"?"Passkey authentication could not be completed by this browser.":"Passkey registration could not be completed by this browser."}}}function ui(e){return e&&typeof e=="object"&&"name"in e&&typeof e.name=="string"?e.name:void 0}function ci(e,t){let n=t.toLowerCase(),i=new Set,o=e;for(;o&&typeof o=="object"&&!i.has(o);){if(i.add(o),"message"in o&&typeof o.message=="string"&&o.message.toLowerCase().includes(n))return true;o="cause"in o?o.cause:void 0;}return false}var pe=class extends Error{status;requestId;constructor(t,n,i){super(`${t} request failed with status ${n.status}.`),this.name="AuthOwlHttpError",this.status=n.status,this.requestId=i;}};function jt(e,t,n={}){let i=new Headers(n.init?.headers);return i.set("x-publishable-key",e.publishableKey),g({fetchImpl:e.fetch??fetch,url:t,init:{...n.init,headers:i},allowHttpLoopback:e.decoded.env==="test",...n.timeoutMs===void 0?{}:{timeoutMs:n.timeoutMs},...n.maxResponseBytes===void 0?{}:{maxResponseBytes:n.maxResponseBytes},...n.decode===void 0?{}:{decode:n.decode}})}function Jt(e,t){if(!e.response.ok)throw new pe(t,e.response,e.requestId);return e.data}async function no(e){let n=`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/public-config`;return Jt(await jt(e,n,{init:{method:"GET",credentials:"omit"},maxResponseBytes:256*1024,decode:i=>di(i,e)}),"public-config")}function di(e,t){let n=q$1(e),i=n.environmentId,o=n.environmentType,a=`${new URL(t.apiUrl).origin}/api/projects/${t.decoded.projectId}/auth`;if(typeof n.applicationId!="string"||!li(n.applicationId)||i!==t.decoded.projectId||o!=="development"&&o!=="production"||n.authBaseUrl!==a)throw T();let r=k(n.branding),s=k(n.legal);if(!ge(n.enabledMethods,64)||!ge(n.socialProviders,64)||!Wt(r,["appName","logoUrl","primaryColor"])||r.showAppName!==void 0&&typeof r.showAppName!="boolean"||r.alignment!==void 0&&r.alignment!=="left"&&r.alignment!=="center"&&r.alignment!=="right"||r.theme!==void 0&&r.theme!=="light"&&r.theme!=="dark"&&r.theme!=="system"||!Wt(s,["termsUrl","privacyUrl"])||!Number.isSafeInteger(s.version)||s.version<0||typeof s.required!="boolean")throw T();if(n.socialProviderClientIds!==void 0){let u=k(n.socialProviderClientIds);if(Object.keys(u).length>64||Object.values(u).some(b=>typeof b!="string"||b.length>2048))throw T()}if(!x(n,["requireEmailVerification","twoFactor","mfaRequired","accountDeletion","organizations","sso","badge"])||!Gt(n.turnstileSiteKey)||!Gt(n.authTurnstileSiteKey)||typeof n.locale!="string"||n.locale.length===0||n.locale.length>64||!Number.isSafeInteger(n.configVersion)||n.configVersion<0)throw T();if(n.jwtIssuer!==null){let u=k(n.jwtIssuer);if(u.issuer!==a||u.jwksUrl!==`${a}/jwks`||u.aud!==t.decoded.projectId)throw T()}if(n.signUp!==void 0){let u=k(n.signUp).mode;if(typeof u!="string"||!["open","restricted","allowlist","waitlist"].includes(u))throw T()}if(n.authentication!==void 0&&pi(n.authentication),n.emailVerification!==void 0){let u=k(n.emailVerification);if(!x(u,["required"])||u.method!=="link"&&u.method!=="code")throw T()}if(n.userModel!==void 0&&!x(k(n.userModel),["requireEmail","firstLastName","emailChange","accountDeletion"]))throw T();if(n.mfa!==void 0){let u=k(n.mfa);if(!x(u,["totp","required","backupCodes"])||(u.required===true||u.backupCodes===true)&&u.totp!==true)throw T()}return n}function li(e){return /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e)}function T(){return new TypeError("public-config returned an invalid response")}function k(e){if(!e||typeof e!="object"||Array.isArray(e))throw T();return e}function Gt(e){return e===null||typeof e=="string"&&e.length<=4096}function pi(e){let t=k(e),n=k(t.email),i=k(t.password),o=i.minLength!==void 0||i.maxLength!==void 0;if(!x(n,["signUp"])||!ge(n.signIn,3)||n.signIn.some(a=>a!=="password"&&a!=="magic_link"&&a!=="email_otp")||!x(k(t.phone),["signUp","signIn"])||!x(i,["signUp","add"])||o&&(!Number.isSafeInteger(i.minLength)||!Number.isSafeInteger(i.maxLength)||i.minLength<1||i.maxLength>4096||i.minLength>i.maxLength)||!x(k(t.passkey),["signIn","add"])||!x(k(t.username),["collectOnSignUp","signIn"]))throw T()}function x(e,t){return t.every(n=>typeof e[n]=="boolean")}function Wt(e,t){return t.every(n=>e[n]===void 0||typeof e[n]=="string"&&e[n].length<=4096)}function ge(e,t){return Array.isArray(e)&&e.length<=t&&e.every(n=>typeof n=="string"&&n.length<=128)&&new Set(e).size===e.length}export{gi as a,Xt as b,we as c,ke as d,ni as e,Ji as f,$i as g,pe as h,jt as i,Jt as j,no as k};