@authowl/core 0.17.0 → 0.18.1
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 +12 -0
- package/dist/chunk-PYXM7X2H.js +1 -0
- package/dist/{client-BkPncYVH.d.ts → client-BfXYqxAr.d.ts} +82 -1
- package/dist/{client-CEqVpSLs.d.cts → client-C1rudBpQ.d.cts} +82 -1
- package/dist/index.cjs +3 -3
- package/dist/index.d.cts +3 -40
- package/dist/index.d.ts +3 -40
- package/dist/index.js +3 -3
- package/dist/native.cjs +2 -2
- package/dist/native.d.cts +2 -2
- package/dist/native.d.ts +2 -2
- package/dist/native.js +1 -1
- package/package.json +2 -2
- package/dist/chunk-55HRM7WA.js +0 -1
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export{a as LOCALES,b as directionFor,c as isLocale}from'./chunk-M4QJVSXT.js';import {c as c$1,d,h,j,f as f$1}from'./chunk-
|
|
2
|
-
`,n);}function ie(){if(!O())return M.stubThis(new Promise(n=>n(false)));let e=globalThis.PublicKeyCredential;return e?.isConditionalMediationAvailable===void 0?M.stubThis(new Promise(n=>n(false))):M.stubThis(e.isConditionalMediationAvailable())}var M={stubThis:e=>e};function re({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(I(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 ae(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(!O())throw new Error("WebAuthn is not supported in this browser");let o;n.allowCredentials?.length!==0&&(o=n.allowCredentials?.map(k));let s={...n,challenge:g(n.challenge),allowCredentials:o},a={};if(t){if(!await ie())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=x.createNewAbortSignal();let l;try{l=await navigator.credentials.get(a);}catch(m){throw re({error:m,options:a})}if(!l)throw new Error("Authentication was not completed");let{id:r,rawId:y,response:d,type:h}=l,f;return d.userHandle&&(f=u(d.userHandle)),{id:r,rawId:u(y),response:{authenticatorData:u(d.authenticatorData),clientDataJSON:u(d.clientDataJSON),signature:u(d.signature),userHandle:f},type:h,clientExtensionResults:l.getClientExtensionResults(),authenticatorAttachment:D(l.authenticatorAttachment)}}var se={authenticate:e=>ae(e),register:e=>oe(e),errorCode:e=>e instanceof c?e.code:void 0};function le(e){return `${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/consent`}async function K(e){let n=await c$1(e,le(e),{init:{method:"GET",credentials:"include"},maxResponseBytes:65536,decode:Ve});return n.response.status===401?{required:false}:d(n,"consent status")}async function z(e,n){if(!Number.isSafeInteger(n)||n<1)throw new TypeError("Consent version must be a positive integer.");return d(await c$1(e,le(e),{init:{method:"POST",headers:{"content-type":"application/json"},credentials:"include",body:JSON.stringify({version:n})},maxResponseBytes:64*1024,decode:Me}),"consent accept")}function Ve(e){let n=q$1(e),t=s(n.required),i=Ke(n.needsConsent),o=pe(n.version),s$1=ce(n.termsUrl),a=ce(n.privacyUrl);return {required:t,...i===void 0?{}:{needsConsent:i},...o===void 0?{}:{version:o},...s$1===void 0?{}:{termsUrl:s$1},...a===void 0?{}:{privacyUrl:a}}}function Me(e){let n=q$1(e),t=pe(n.version);return {ok:s(n.ok),...t===void 0?{}:{version:t}}}function Ke(e){if(e===void 0||typeof e=="boolean")return e;throw new TypeError("Invalid consent response.")}function pe(e){if(e===void 0||Number.isSafeInteger(e)&&e>=1)return e;throw new TypeError("Invalid consent response.")}function ce(e){if(e===void 0||typeof e=="string"&&e.length<=4096)return e;throw new TypeError("Invalid consent response.")}var ze=30;function Be(e){return typeof e?.exp=="number"?e.exp:null}function qe(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 B(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 y=s.forceRefresh===true;if(!y){let p=r.activeKey?r.cachedByKey.get(r.activeKey):null;if(p&&p.exp-Date.now()/1e3>ze)return p.token;if(r.inflight)return r.inflight}let d$1=++r.sequence,h=()=>n.get(l)===r&&r.sequence===d$1,f=(async()=>{let p=a?`${e.projectBaseURL}/token/${encodeURIComponent(a)}`:`${e.projectBaseURL}/token`,
|
|
3
|
-
export{T as AuthOwlError,te as INVITATION_CLAIM_MAX_AGE_MS,N as INVITATION_QUERY_PARAM,
|
|
1
|
+
export{a as LOCALES,b as directionFor,c as isLocale}from'./chunk-M4QJVSXT.js';import {c as c$1,d,h,j,f as f$1}from'./chunk-PYXM7X2H.js';export{e as AUTH_CHALLENGE_HEADER,b as AuthOwlHttpError,g as createIdempotencyKey,k as getPublicConfig,a as resolveProjectCapabilities}from'./chunk-PYXM7X2H.js';import {f,g as g$1,e,q as q$1,s,r}from'./chunk-V3MSLXXB.js';export{j as SESSION_TOKEN_HEADER,l as SESSION_TRANSPORT_BEARER,k as SESSION_TRANSPORT_HEADER,o as TransportError,F as createMembershipHas,a as decodePublishableKey,E as membershipHas,B as membershipHasPermission,D as membershipHasRole,C as membershipHasTeam,m as resolveAuthTarget,n as resolveConfig,h as sessionChallengeIsEphemeral,b as sessionCookieName}from'./chunk-V3MSLXXB.js';import'./chunk-T5SH3ZZP.js';var N="authowl_invitation",F="authowl.invitation-claim",ee=/^[A-Za-z0-9_-]{1,128}$/,te=10080*60*1e3;function Ne(e=Date.now()){if(typeof window>"u")return S(e);let n;try{n=new URL(window.location.href);}catch{return S(e)}let t=n.searchParams.get(N);if(t===null)return S(e);n.searchParams.delete(N);try{window.history.replaceState(window.history.state,"",n.toString());}catch{}if(!ee.test(t))return S(e);let i={id:t,capturedAt:e};return f(g$1(),F,JSON.stringify(i)),i}function S(e$1=Date.now()){let n=e(g$1(),F);if(n===null)return null;let t;try{t=JSON.parse(n);}catch{return E(),null}if(typeof t!="object"||t===null)return E(),null;let{id:i,capturedAt:o}=t;return typeof i!="string"||!ee.test(i)||typeof o!="number"||e$1-o>te?(E(),null):{id:i,capturedAt:o}}function E(){f(g$1(),F,null);}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 O(){return Fe.stubThis(globalThis?.PublicKeyCredential!==void 0&&typeof globalThis.PublicKeyCredential=="function")}var Fe={stubThis:e=>e};function k(e){let{id:n}=e;return {...e,id:g(n),transports:e.transports}}function I(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 ne({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(I(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 L=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;}}},x=new L;var Le=["cross-platform","platform"];function D(e){if(e&&!(Le.indexOf(e)<0))return e}async function oe(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(!O())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(k)},o={};t&&(o.mediation="conditional"),o.publicKey=i,o.signal=x.createNewAbortSignal();let s;try{s=await navigator.credentials.create(o);}catch(p){throw ne({error:p,options:o})}if(!s)throw new Error("Registration was not completed");let{id:a,rawId:l,response:r,type:y}=s,d;typeof r.getTransports=="function"&&(d=r.getTransports());let h;if(typeof r.getPublicKeyAlgorithm=="function")try{h=r.getPublicKeyAlgorithm();}catch(p){V("getPublicKeyAlgorithm()",p);}let f;if(typeof r.getPublicKey=="function")try{let p=r.getPublicKey();p!==null&&(f=u(p));}catch(p){V("getPublicKey()",p);}let m;if(typeof r.getAuthenticatorData=="function")try{m=u(r.getAuthenticatorData());}catch(p){V("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:y,clientExtensionResults:s.getClientExtensionResults(),authenticatorAttachment:D(s.authenticatorAttachment)}}function V(e,n){console.warn(`The browser extension that intercepted this WebAuthn API call incorrectly implemented ${e}. You should report this error to them.
|
|
2
|
+
`,n);}function ie(){if(!O())return M.stubThis(new Promise(n=>n(false)));let e=globalThis.PublicKeyCredential;return e?.isConditionalMediationAvailable===void 0?M.stubThis(new Promise(n=>n(false))):M.stubThis(e.isConditionalMediationAvailable())}var M={stubThis:e=>e};function re({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(I(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 ae(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(!O())throw new Error("WebAuthn is not supported in this browser");let o;n.allowCredentials?.length!==0&&(o=n.allowCredentials?.map(k));let s={...n,challenge:g(n.challenge),allowCredentials:o},a={};if(t){if(!await ie())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=x.createNewAbortSignal();let l;try{l=await navigator.credentials.get(a);}catch(m){throw re({error:m,options:a})}if(!l)throw new Error("Authentication was not completed");let{id:r,rawId:y,response:d,type:h}=l,f;return d.userHandle&&(f=u(d.userHandle)),{id:r,rawId:u(y),response:{authenticatorData:u(d.authenticatorData),clientDataJSON:u(d.clientDataJSON),signature:u(d.signature),userHandle:f},type:h,clientExtensionResults:l.getClientExtensionResults(),authenticatorAttachment:D(l.authenticatorAttachment)}}var se={authenticate:e=>ae(e),register:e=>oe(e),errorCode:e=>e instanceof c?e.code:void 0};function le(e){return `${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/consent`}async function K(e){let n=await c$1(e,le(e),{init:{method:"GET",credentials:"include"},maxResponseBytes:65536,decode:Ve});return n.response.status===401?{required:false}:d(n,"consent status")}async function z(e,n){if(!Number.isSafeInteger(n)||n<1)throw new TypeError("Consent version must be a positive integer.");return d(await c$1(e,le(e),{init:{method:"POST",headers:{"content-type":"application/json"},credentials:"include",body:JSON.stringify({version:n})},maxResponseBytes:64*1024,decode:Me}),"consent accept")}function Ve(e){let n=q$1(e),t=s(n.required),i=Ke(n.needsConsent),o=pe(n.version),s$1=ce(n.termsUrl),a=ce(n.privacyUrl);return {required:t,...i===void 0?{}:{needsConsent:i},...o===void 0?{}:{version:o},...s$1===void 0?{}:{termsUrl:s$1},...a===void 0?{}:{privacyUrl:a}}}function Me(e){let n=q$1(e),t=pe(n.version);return {ok:s(n.ok),...t===void 0?{}:{version:t}}}function Ke(e){if(e===void 0||typeof e=="boolean")return e;throw new TypeError("Invalid consent response.")}function pe(e){if(e===void 0||Number.isSafeInteger(e)&&e>=1)return e;throw new TypeError("Invalid consent response.")}function ce(e){if(e===void 0||typeof e=="string"&&e.length<=4096)return e;throw new TypeError("Invalid consent response.")}var ze=30;function Be(e){return typeof e?.exp=="number"?e.exp:null}function qe(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 B(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 y=s.forceRefresh===true;if(!y){let p=r.activeKey?r.cachedByKey.get(r.activeKey):null;if(p&&p.exp-Date.now()/1e3>ze)return p.token;if(r.inflight)return r.inflight}let d$1=++r.sequence,h=()=>n.get(l)===r&&r.sequence===d$1,f=(async()=>{let p=a?`${e.projectBaseURL}/token/${encodeURIComponent(a)}`:`${e.projectBaseURL}/token`,G=await c$1(e,p,{init:{method:"GET",credentials:"include"},maxResponseBytes:64*1024,decode:C=>He(C,a!==null)});if(G.response.status===401)return h()&&i(),null;let J=d(G,"token"),ue=J.policyVersion,v=J.token,b=qe(v),W=Be(b);if(h())if(W!==null){let C=typeof b?.sub=="string"?b.sub:null,de=typeof b?.org_id=="string"?b.org_id:null;if(!a||C){let j=JSON.stringify([e.projectBaseURL,C,de,a,ue]);r.cachedByKey.clear(),r.cachedByKey.set(j,{token:v,exp:W}),r.activeKey=j;}else o(r);}else o(r);return v})();if(y)return f;let m=f.finally(()=>{r.inflight===m&&(r.inflight=null);});return r.inflight=m,m}function i(){n.clear();}function o(s){s.cachedByKey.clear(),s.activeKey=null;}return {getToken:t,clear:i}}function He(e,n){let t=q$1(e),i=r(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=q$1(t.template);if(!Number.isSafeInteger(o.policyVersion)||o.policyVersion<1)throw new TypeError("Invalid token response.");return {token:i,policyVersion:o.policyVersion}}function Ge(e){let n=B(e),t=h(e,n.clear,(a,l)=>j(a,l,se)),i=f$1(e,`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}`),o=a=>(...l)=>(n.clear(),a(...l)),s={getConsentStatus:()=>K(e),acceptConsent:a=>z(e,a),getToken:n.getToken,waitlist:{join:(a,l)=>i.request("/waitlist",{method:"POST",body:a,fetchOptions:l,credentials:"omit"})},account:{...t.account,updateUnsafeMetadata:o(t.account.updateUnsafeMetadata),updateProfile:o(t.account.updateProfile),changeEmail:o(t.account.changeEmail),changePassword:o(t.account.changePassword),revokeSession:o(t.account.revokeSession),delete:o(t.account.delete)},signIn:{email:o(t.signIn.email),username:o(t.signIn.username),social:o(t.signIn.social),sso:t.signIn.sso,magicLink:t.signIn.magicLink,emailOtp:o(t.signIn.emailOtp),passkey:o(t.signIn.passkey)},signUp:{email:o(t.signUp.email)},emailOtp:{...t.emailOtp,verifyEmail:o(t.emailOtp.verifyEmail)},twoFactor:{enable:t.twoFactor.enable,disable:o(t.twoFactor.disable),verifyTotp:o(t.twoFactor.verifyTotp),verifyBackupCode:o(t.twoFactor.verifyBackupCode),sendOtp:t.twoFactor.sendOtp,verifyOtp:o(t.twoFactor.verifyOtp),generateBackupCodes:t.twoFactor.generateBackupCodes},phoneOtp:{prepare:t.phoneOtp.prepare,start:t.phoneOtp.start,verify:o(t.phoneOtp.verify)},signOut:o(t.signOut)};return {...t,...s}}async function Je(e){if(typeof window>"u")throw new Error("Akedly Shield challenges must be solved in a browser.");let n=await We(),t=e.challengeRequired?await n.solvePow(e.challenge,e.difficulty):null,i=e.turnstile.required?await n.getTurnstileToken(je(e.turnstile.siteKey)):void 0;return {connectionId:e.connectionId,...t?{challengeToken:e.challengeToken,nonce:t.nonce}:{},...i?{turnstileToken:i}:{}}}async function We(){return import('@akedly/shield')}function je(e){if(!e)throw new Error("Akedly Shield did not provide a Turnstile site key.");return e}var T=class extends Error{constructor(t,i){super(t);this.cause=i;this.name="AuthOwlError";}cause},q=class extends T{constructor(t,i){super(`Rate limited. Retry after ${t}s.`,i);this.retryAfterSeconds=t;this.name="RateLimitedError";}retryAfterSeconds},H=class extends T{constructor(n="invalid publishable key",t){super(n,t),this.name="InvalidKeyError";}};
|
|
3
|
+
export{T as AuthOwlError,te as INVITATION_CLAIM_MAX_AGE_MS,N as INVITATION_QUERY_PARAM,H as InvalidKeyError,q as RateLimitedError,z as acceptConsent,Ne as captureInvitationClaim,E as clearInvitationClaim,Ge as createAuthOwlClient,B as createTokenClient,K as getConsentStatus,S as readInvitationClaim,Je as solvePhoneOtpChallenge};
|
package/dist/native.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var ni=Object.defineProperty;var et=(e,t)=>()=>(e&&(t=e(e=0)),t);var ii=(e,t)=>{for(var n in t)ni(e,n,{get:t[n],enumerable:true});};function ne(){return typeof window<"u"&&typeof document<"u"&&typeof crypto<"u"&&typeof crypto.subtle?.digest=="function"}var De=et(()=>{});var Oe={};ii(Oe,{beginCrossSiteSignIn:()=>Go,challengeFor:()=>Vn,completeCrossSiteSignIn:()=>Wo,takeHandoffCode:()=>Xe});function qn(e){let t="";for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function Vn(e){let t=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e));return qn(new Uint8Array(t))}function jo(){return qn(crypto.getRandomValues(new Uint8Array(Vo)))}function Kn(e,t){let n=window.location.protocol==="https:"?"; Secure":"";document.cookie=`${Hn}=${e}; Path=/; Max-Age=${t}; SameSite=Lax${n}`;}function Jo(){for(let e of document.cookie.split(";")){let t=e.indexOf("=");if(!(t<0)&&e.slice(0,t).trim()===Hn)return e.slice(t+1).trim()||null}return null}function $o(){Kn("",0);}function Fn(e){return new URL(e,window.location.href).toString()}async function Go(e,t){let n=t.callbackURL?Fn(t.callbackURL):null;if(n&&new URL(n).origin!==window.location.origin)return null;let i=jo(),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 c of Bo){let d=t[c];d&&o.searchParams.set(c,d);}let s=`${window.location.origin}${window.location.pathname}${window.location.search}`;o.searchParams.set("cb",n??s);for(let[c,d]of [["err",t.errorCallbackURL],["new",t.newUserCallbackURL]])d&&o.searchParams.set(c,Fn(d));return o.searchParams.set("challenge",await Vn(i)),Kn(i,Ko),o.toString()}function Xe(e){if(typeof window>"u")return null;let t=window.location.hash;if(!t.includes(Ye))return null;let n=new URLSearchParams(t.replace(/^#/,"")),i=n.get(Ye);if(!i||e!==void 0&&i!==e)return null;n.delete(Ye);let o=n.toString();return window.history.replaceState(window.history.state,"",`${window.location.pathname}${window.location.search}${o?`#${o}`:""}`),i}async function Wo(e,t,n){if(!ne())return false;let i=n??Xe();if(!i)return false;n&&Xe(n);let o=Jo();if($o(),!o)return false;t.beginSession({remember:true});let{error:s}=await e.request("/session/exchange",{method:"POST",body:{code:i,verifier:o}});return s===null}var Hn,Ye,Vo,Ko,Bo,we=et(()=>{De();Hn="authowl_handoff_verifier",Ye="authowl_code",Vo=32,Ko=900,Bo=["email","providerId","domain","organizationSlug"];});var oi=/^(pk_(live|test))_([0-9a-f-]{36})_([A-Za-z0-9]{20,})$/i,ri=/^sk_/i;function ke(e){if(typeof e!="string"||e.length===0)throw new Error("publishableKey is required");if(ri.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=oi.exec(e);if(!t)throw new Error("publishableKey is malformed; expected pk_(live|test)_<uuid>_<base62>");return {prefix:t[1].toLowerCase(),env:t[2].toLowerCase(),projectId:t[3].toLowerCase()}}var tt=/^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 nt(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&&tt.test(i)))throw new TypeError("Transport URL must use HTTPS except on approved loopback.");return n}function it(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||!tt.test(e))&&Se("apiUrl","HTTPS required except exact loopback"),n.origin}function J(e,t){try{return e?.getItem(t)??null}catch{return null}}function $(e,t,n){try{n===null?e?.removeItem(t):e?.setItem(t,n);}catch{}}function G(){try{return globalThis.localStorage}catch{return}}function B(){try{return globalThis.sessionStorage}catch{return}}var si="authowl.session-challenge",ai=e=>`${si}.${e}`,ui="set-auth-challenge",ot="x-authowl-challenge";var st="INVALID_TWO_FACTOR_COOKIE",ci=2048,ce=e=>e!==null&&e.length<=ci,rt=/^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/;function di(e){let t=[];for(let n of e.split(";")){let i=n.trimStart(),o=i.indexOf("=");o<=0||t.push([i.slice(0,o).trimEnd(),i.slice(o+1)]);}return t}function at(e){let t=ai(e),n=new Map;function i(){return n.size===0?null:[...n].map(([d,l])=>`${d}=${l}`).join("; ")}function o(){let d=i();$(B(),t,ce(d)?d:null);}function s(d){for(let[l,y]of di(d))rt.test(l)&&(y===""?n.delete(l):rt.test(y)&&n.set(l,y));}let c=J(B(),t);return ce(c)&&s(c),{presentOn(d){let l=i();d.delete(ot),ce(l)&&d.set(ot,l);},observe(d){let l=d.get(ui);ce(l)&&(s(l),o());},clear(){n.clear(),o();}}}var ut="set-auth-token",ct="x-authowl-session-transport",dt="bearer";var li="authowl.session-token",pi="authowl.cookie-transport",pt="ok",ft="bearer",fi=e=>`${li}.${e}`,gi=e=>`${pi}.${e}`;function mi(e){return e===pt?"cookies":e===ft?"bearer":"unknown"}function hi(e){return e==="cookies"?pt:e==="bearer"?ft:null}function yi(e){let t=fi(e),n=gi(e),i=at(e),o=null,s=false,c=null,d=mi(J(G(),n)),l=()=>d==="unknown",y=0,r=null,a=false;function f(){let h=J(B(),t);if(h!==null)return s=true,h;let O=J(G(),t);return O!==null?(s=false,O):null}o=f(),o!==null&&l()&&(a=true);function b(){if(!(!a||!r)){a=false;try{r();}catch{}}}function u(){let h=d==="bearer"?o:null,[O,_]=s?[B(),G()]:[G(),B()];$(_,t,null),$(O,t,h);}function g(h){h!==null&&c!==null&&(s=c,c=null),o=h,u(),h!==null&&l()&&(a=true,b());}function A(h){d=h,$(G(),n,hi(h));}function w(){A("unknown"),a=false;}function I(){return o===null&&(o=f()),o}function q(){let h=f();return h!==null&&(o=h),o}function V(h){q()===h&&u();}function K(){y+=1,c=null,s=false,g(null),i.clear(),w();}let j=()=>d!=="cookies";return {hasToken:()=>I()!==null,declareOn(h){if(h.has("authorization"))return false;let O=I();return !O&&!j()?false:(O&&h.set("authorization",`Bearer ${O}`),h.set(ct,dt),i.presentOn(h),true)},wantsToken:j,needsProbe:l,observe(h){let O=h.get(ut);O&&g(O),i.observe(h);},dropChallenge:i.clear,measureWith(h){r=h,b();},beginRead(){let h=I(),O=y;return {carriedToken:h!==null,endIfDead(){h!==null&&q()===h&&y===O&&K();},recordCookieVerdict(_){if(y===O&&l()){if(A(_?"cookies":"bearer"),_){g(null);return}V(h);}}}},beginSession({remember:h}){y+=1,c=!h,i.clear(),w();},endSession:K}}var lt=new Map;function gt(e){let t=lt.get(e);if(t)return t;let n=yi(e);return lt.set(e,n),n}function Ai(e,t){return t?.headers?new Headers(t.headers):typeof e=="object"&&e!==null&&"headers"in e?new Headers(e.headers):new Headers}function mt(e,t){let n=gt(e),i=(c,d)=>(t??globalThis.fetch)(c,d);return {fetch:async(c,d)=>{if(d?.credentials==="omit"||!n.wantsToken())return i(c,d);let l=Ai(c,d),y=n.declareOn(l),r=await i(c,{...d,headers:l});return y&&n.observe(r.headers),r},probe:i,tokens:n}}function bi(e){if(!e||typeof e!="object")throw new Error("AuthConfig is required");let t=ke(e.publishableKey),n=it(e.apiUrl,{allowHttpLoopback:t.env==="test"});return {publishableKey:e.publishableKey,apiUrl:n,decoded:t,projectBaseURL:`${n}/api/projects/${t.projectId}/auth`}}function Re(e){let t=bi(e),{fetch:n,...i}=mt(t.decoded.projectId,e.fetch);return {...e,...t,fetch:n,session:i}}var Oi=1e4,wi=1024*1024,E=class extends Error{kind;requestId;constructor(t,n){super(Ei(t)),this.name="TransportError",this.kind=t,this.requestId=n;}},At=new WeakSet;function v(e,t){let n=new E(e,t);return At.add(n),n}async function bt({fetchImpl:e,url:t,init:n={},timeoutMs:i=Oi,maxResponseBytes:o=wi,allowHttpLoopback:s=false,decode:c}){yt(i,"timeoutMs"),yt(o,"maxResponseBytes");let d=nt(t,{allowHttpLoopback:s}),l=n.signal,y=new AbortController,r=null,a,f=new Promise(A=>{a=A;}),b=A=>{r===null&&(r=A,a({type:"abort",kind:A}),y.abort());},u=()=>b("aborted");l?.addEventListener("abort",u,{once:true});let g=setTimeout(()=>b("timeout"),i);l?.aborted&&u();try{if(r!==null)throw v(r);let A;try{A=await Promise.race([e(d.toString(),{...n,redirect:"error",signal:y.signal}).then(j=>({type:"response",response:j})),f]);}catch{throw v(r??"network")}if(A.type==="abort")throw v(A.kind);if(!ki(A.response))throw v("invalid_response");let w=A.response,I=xi(w.headers),q=await Si(w,o,f,()=>r,I),V=Ii(w,q,I),K;try{K=w.ok&&c?c(V,Object.freeze({status:w.status})):V;}catch{throw v("invalid_response",I)}return {response:w,data:K,...I===void 0?{}:{requestId:I}}}catch(A){throw A instanceof E&&At.has(A)?A:v(r??"network")}finally{clearTimeout(g),l?.removeEventListener("abort",u);}}function ki(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 Si(e,t,n,i,o){let s=e.headers.get("content-length");if(s!==null){if(!/^\d+$/.test(s))throw ht(e.body),v("invalid_response",o);if(Number(s)>t)throw ht(e.body),v("response_too_large",o)}if(!e.body)return "";let c;try{c=e.body.getReader();}catch{throw v("network",o)}let d=[],l=0,y=null;try{for(;;){let f;try{f=await Promise.race([c.read(),n]);}catch{y=v(i()??"network",o);break}if(Ri(f)){y=v(f.kind,o);break}let{done:b,value:u}=f;if(b)break;if(u.byteLength!==0){if(l+=u.byteLength,l>t){y=v("response_too_large",o);break}d.push(u);}}}finally{y&&Ti(c);try{c.releaseLock();}catch{}}if(y)throw y;let r=new Uint8Array(l),a=0;for(let f of d)r.set(f,a),a+=f.byteLength;try{return new TextDecoder("utf-8",{fatal:!0}).decode(r)}catch{throw v("invalid_response",o)}}function Ri(e){return "type"in e&&e.type==="abort"}function ht(e){if(e)try{e.cancel().catch(()=>{});}catch{}}function Ti(e){try{e.cancel().catch(()=>{});}catch{}}function Ii(e,t,n){if(e.status===204||e.status===205)return null;let i=Pi(e.headers.get("content-type"));if(!e.ok&&(!i||t.length===0))return null;if(!i||t.length===0)throw v("invalid_response",n);try{return JSON.parse(t)}catch{if(!e.ok)return null;throw v("invalid_response",n)}}function Pi(e){if(e===null)return false;let t=e.split(";",1)[0]?.trim().toLowerCase();return t==="application/json"||t?.endsWith("+json")===true}function xi(e){let t=e.get("x-request-id")?.trim();if(!(!t||t.length>256||!/^[A-Za-z0-9._:-]+$/.test(t)))return t}function yt(e,t){if(!Number.isInteger(e)||e<=0)throw new TypeError(`${t} must be a positive integer.`)}function Ei(e){switch(e){case "aborted":return "The request was cancelled.";case "timeout":return "The request timed out.";case "response_too_large":return "The response exceeded the allowed size.";case "invalid_response":return "The service returned an invalid response.";case "network":return "The network request could not be completed."}}var Te=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 de(e,t,n={}){let i=new Headers(n.init?.headers);return i.set("x-publishable-key",e.publishableKey),bt({fetchImpl:e.fetch,url:t,init:{...n.init,headers:i},allowHttpLoopback:e.decoded.env==="test",...n.timeoutMs===void 0?{}:{timeoutMs:n.timeoutMs},...n.maxResponseBytes===void 0?{}:{maxResponseBytes:n.maxResponseBytes},...n.decode===void 0?{}:{decode:n.decode}})}function Ot(e,t){if(!e.response.ok)throw new Te(t,e.response,e.requestId);return e.data}var vi="x-authowl-turnstile-token",Ci=1e4,zi=32,Di=2e4;function W(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 Ee(e,t=e.projectBaseURL){return {async request(n,i={}){let o=Ni(t,n,i.query),s=i.method??(i.body===void 0?"GET":"POST"),c=new Headers(i.fetchOptions?.headers);i.fetchOptions?.authChallengeToken&&c.set(vi,i.fetchOptions.authChallengeToken),i.body!==void 0&&c.set("content-type","application/json");let d={method:s,headers:c,credentials:i.credentials??"include",...i.body===void 0?{}:{body:JSON.stringify(i.body)}},l=Object.freeze({method:s,path:n});await i.fetchOptions?.onRequest?.(l);let y=_i(s,i.fetchOptions),r;try{r=await Ui(e,o,{...d,signal:i.fetchOptions?.signal},y);}catch(A){let w=kt(A);return await i.fetchOptions?.onError?.(Ie(l,w,Fi(A))),{data:null,error:w}}let{response:a,requestId:f}=r,b=Vi(n,r.data),u=b;if(a.ok)try{u=xe(b),i.decode&&(u=i.decode(u));}catch{let A=kt(new E("invalid_response",f));return await i.fetchOptions?.onError?.(Ie(l,A,"invalid_response")),{data:null,error:A}}let g=Object.freeze({...l,status:a.status,...f===void 0?{}:{requestId:f}});if(await i.fetchOptions?.onResponse?.(g),!a.ok){let A=Mi(a,b,f);return A.code===st&&e.session.tokens.dropChallenge(),await i.fetchOptions?.onError?.(Ie(l,A,"api")),{data:null,error:A}}return await i.fetchOptions?.onSuccess?.(g),{data:u,error:null}}}}async function Ui(e,t,n,i){let o=Date.now()+Ci;for(let s=0;s<i;s+=1){let c=o-Date.now();if(c<=0)throw new E("timeout");try{let d=await de(e,t,{init:n,timeoutMs:Math.max(1,Math.ceil(c))});if(d.response.status<500||s===i-1)return d}catch(d){if(s===i-1||!(d instanceof E)||d.kind!=="network")throw d}await Hi(50*2**s,n.signal,o);}throw new E("network")}function _i(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 Ni(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 Mi(e,t,n){let i=ee(t)?t:{},o=Li(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 Li(e,t){let n=(typeof e.retryAfterSeconds=="number"&&Number.isFinite(e.retryAfterSeconds)?e.retryAfterSeconds:void 0)??wt(t.get("retry-after"))??wt(t.get("x-retry-after"));if(n!==void 0)return Math.min(Math.max(Math.trunc(n),1),86400)}function wt(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 kt(e){let t=e instanceof E?e.kind:"network";return {status:0,...{aborted:{statusText:"ABORTED",code:"REQUEST_ABORTED",message:"The request was cancelled."},timeout:{statusText:"TIMEOUT",code:"REQUEST_TIMEOUT",message:"The request timed out."},response_too_large:{statusText:"INVALID_RESPONSE",code:"RESPONSE_TOO_LARGE",message:"The service response was too large."},invalid_response:{statusText:"INVALID_RESPONSE",code:"INVALID_RESPONSE",message:"The service returned an invalid response."},network:{statusText:"FETCH_ERROR",code:"FETCH_ERROR",message:"Network request failed."}}[t],...e instanceof E&&e.requestId?{requestId:e.requestId}:{}}}function Ie(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 E?e.kind:"network"}function Hi(e,t,n){return new Promise((i,o)=>{if(t?.aborted){o(new E("aborted"));return}let s=n-Date.now();if(s<=0){o(new E("timeout"));return}let c=Math.min(e,s),d=()=>{clearTimeout(l),o(new E("aborted"));},l=setTimeout(()=>{t?.removeEventListener("abort",d),Date.now()>=n?o(new E("timeout")):i();},c);t?.addEventListener("abort",d,{once:true}),t?.aborted&&d();})}function xe(e,t="",n=0,i={nodes:0}){if(i.nodes+=1,n>zi||i.nodes>Di)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=>xe(o,"",n+1,i)):ee(e)?Object.fromEntries(Object.entries(e).map(([o,s])=>[o,qi(o)?s:xe(s,o,n+1,i)])):e}function qi(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=>ee(o)?Pe(o):o);if(!ee(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-")?Pe(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")&&ee(i.session)&&(i={...i,session:Pe(i.session)}),i}function Pe(e){if(!Object.hasOwn(e,"token"))return e;let t={...e};return delete t.token,t}function ee(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}var Ki=new Set(["__proto__","constructor","prototype"]);function m(e){(!e||typeof e!="object"||Array.isArray(e))&&p();let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null&&p(),e}function k(e){return typeof e!="string"&&p(),e}function T(e){return typeof e!="boolean"&&p(),e}function R(e){return (!(e instanceof Date)||Number.isNaN(e.getTime()))&&p(),e}function te(e){return (!Array.isArray(e)||!e.every(t=>typeof t=="string"))&&p(),[...e]}function P(e,t){let n=e[t];return n==null||typeof n=="string"?n:p()}function St(e,t){let n=e[t];return n==null||typeof n=="boolean"?n:p()}function D(e){let t=m(e),n=t.email;return n!==null&&typeof n!="string"&&p(),{id:k(t.id),email:n,emailVerified:T(t.emailVerified),createdAt:R(t.createdAt),updatedAt:R(t.updatedAt),...z("phoneNumber",P(t,"phoneNumber")),...z("username",P(t,"username")),...z("displayUsername",P(t,"displayUsername")),...z("firstName",P(t,"firstName")),...z("lastName",P(t,"lastName")),...z("name",P(t,"name")),...z("image",P(t,"image")),...z("twoFactorEnabled",St(t,"twoFactorEnabled"))}}function le(e){let t=m(e),n=t.membership;return {id:k(t.id),userId:k(t.userId),expiresAt:R(t.expiresAt),...z("activeOrganizationId",P(t,"activeOrganizationId")),...z("activeTeamId",P(t,"activeTeamId")),...z("membership",n==null?n:Bi(n)),...z("pendingMfaEnrollment",St(t,"pendingMfaEnrollment"))}}function p(){throw new TypeError("AuthOwl response does not match its runtime contract.")}function M(e,t=20,n=1e4){return (!e||typeof e!="object"||Array.isArray(e))&&p(),Ce(e,t,n)}function Ce(e,t=20,n=1e4){return ve(e,0,{nodes:0},t,n)}function Bi(e){let t=m(e);return {role:k(t.role),...t.roles===void 0?{}:{roles:te(t.roles)},permissions:te(t.permissions),...t.teams===void 0?{}:{teams:te(t.teams)}}}function ve(e,t,n,i,o){if(n.nodes+=1,(t>i||n.nodes>o)&&p(),e===null||typeof e=="string"||typeof e=="boolean")return e;if(typeof e=="number")return Number.isFinite(e)||p(),e;if(Array.isArray(e))return e.map(d=>ve(d,t+1,n,i,o));(!e||typeof e!="object")&&p();let s=Object.getPrototypeOf(e);s!==Object.prototype&&s!==null&&p();let c={};for(let[d,l]of Object.entries(e))Ki.has(d)&&p(),c[d]=ve(l,t+1,n,i,o);return c}function z(e,t){return t===void 0?{}:{[e]:t}}function Rt({http:e,probe:t,tokens:n,channelName:i}){let o=new Set,s=null,c=null,d=null,l=null,y=null,r=null,a,f=h=>{g(h);};a={data:null,isPending:true,isRefetching:false,error:null,refetch:f};function b(h){a=h;for(let O of o)O();}async function u(h){return e.request("/get-session",{query:h?.query,decode:ze})}function g(h){if(h?.query?.disableCookieCache===true)return w(h);if(l)return l;if(y)return y;let O=w(h).finally(()=>{y===O&&(y=null);});return y=O,O}function A(){if(l)return l;let h=w({query:{disableCookieCache:true}}).finally(()=>{l===h&&(l=null);});return l=h,h}async function w(h){d?.abort();let O=new AbortController;d=O,b({...a,isPending:a.data===null&&a.error===null,isRefetching:a.data!==null});let _=n.beginRead(),ue=await e.request("/get-session",{query:h?.query,fetchOptions:{signal:O.signal},decode:ze});if(d===O&&(d=null,b({data:ue.data,error:ue.error,isPending:false,isRefetching:false,refetch:f}),ue.error===null)){if(ue.data===null){_.endIfDead();return}await I(_);}}async function I(h){if(n.needsProbe()){if(!h.carriedToken){h.recordCookieVerdict(true);return}return r||q(h)}}function q(h){let O=t.request("/get-session",{query:{disableCookieCache:true},decode:ze}).then(_=>{r===O&&_.error===null&&h.recordCookieVerdict(_.data!==null);}).finally(()=>{r===O&&(r=null);});return r=O,O}function V(){s?.postMessage({type:"session-changed"});}function K(){if(typeof window>"u"||c)return;let h=()=>{g();},O=()=>{document.visibilityState==="visible"&&g();};window.addEventListener("focus",h),document.addEventListener("visibilitychange",O),typeof BroadcastChannel<"u"&&(s=new BroadcastChannel(i),s.addEventListener("message",h)),c=()=>{window.removeEventListener("focus",h),document.removeEventListener("visibilitychange",O),s?.close(),s=null,c=null;};}function j(h){return o.add(h),o.size===1&&(K(),g()),()=>{if(o.delete(h),o.size===0){let O=d;d=null,y=null,l=null,O?.abort(),c?.();}}}return n.measureWith(()=>{n.needsProbe()&&q(n.beginRead());}),{store:{subscribe:j,getSnapshot:()=>a,refresh:A},getSession:u,notifyMutation(){V(),r&&r.catch(()=>{}).then(()=>{!n.needsProbe()&&n.hasToken()&&V();}),o.size>0&&g({query:{disableCookieCache:true}});}}}function ze(e){if(e===null)return null;let t=m(e);return (t.session===void 0||t.user===void 0)&&p(),{session:le(t.session),user:D(t.user)}}De();function Tt(){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 It(e,t){return e.request("/user/metadata",{fetchOptions:t,decode:xt})}async function Pt(e,t,n){return e.request("/user/metadata",{method:"PATCH",body:{expected_version:t.expectedVersion,unsafe_metadata:t.unsafeMetadata},fetchOptions:n,decode:xt})}function xt(e){let t=m(e),n=M(t.public_metadata),i=M(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 vt(e,t){let{post:n,mutation:i}=W(e,t);return {getMetadata:o=>It(e,o),updateUnsafeMetadata:(o,s)=>Pt(e,o,s),updateProfile:(o,s)=>i(n("/update-user",o,s,ie)),changeEmail:(o,s)=>i(n("/change-email",o,s,ie)),changePassword:(o,s)=>i(n("/change-password",o,s,ji)),listSessions:o=>e.request("/list-sessions",{fetchOptions:o,decode:Ji}),revokeSession:({sessionId:o},s)=>i(n("/revoke-session",{sessionId:o},s,ie)),revokeOtherSessions:o=>i(n("/revoke-other-sessions",{},o,ie)),listSocialAccounts:async o=>{let s=await e.request("/list-accounts",{fetchOptions:o,decode:$i});if(!s.data)return {data:null,error:s.error};let c=s.data.length>1;return {...s,data:s.data.filter(d=>d.providerId!=="credential").map(d=>({...d,canUnlink:c}))}},linkSocial:(o,s)=>n("/link-social",o,s,Gi),unlinkSocial:(o,s)=>i(n("/unlink-account",o,s,ie)),delete:(o={},s)=>i(n("/delete-user",o,s,Wi))}}function ie(e){let t=m(e);return {status:T(t.status)}}function ji(e){let t=m(e);return {user:D(t.user)}}function Ji(e){return Array.isArray(e)||p(),e.map(t=>{let n=m(t);return {id:k(n.id),userId:k(n.userId),createdAt:R(n.createdAt),updatedAt:R(n.updatedAt),expiresAt:R(n.expiresAt),...Et("ipAddress",P(n,"ipAddress")),...Et("userAgent",P(n,"userAgent"))}})}function $i(e){return Array.isArray(e)||p(),e.map(t=>{let n=m(t);return {id:k(n.id),userId:k(n.userId),providerId:k(n.providerId),accountId:k(n.accountId),scopes:te(n.scopes),createdAt:R(n.createdAt),updatedAt:R(n.updatedAt)}})}function Gi(e){let t=m(e);return {url:k(t.url),redirect:T(t.redirect)}}function Wi(e){let t=m(e);return {success:T(t.success),message:k(t.message)}}function Et(e,t){return t===void 0?{}:{[e]:t}}function Ue(e,t){return !e||!t?false:e.permissions.includes(t)}function Yi(e,t){return !e||!t?false:e.teams?.includes(t)??false}function Xi(e,t){return e?e.roles===void 0?e.role===t:e.roles.includes(t):false}function _e(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&&!Xi(e,n)||i!==void 0&&!e.permissions.includes(i)||o!==void 0&&!Yi(e,o))}function Qi(e){return {has:t=>_e(e,t),hasPermission:t=>Ue(e,t.permission)}}var Zi=new Set(["pending","accepted","rejected","canceled"]),Ne=1e4;function Y(e,t,n){let i=m(e),o={id:S(i.id),name:S(i.name),slug:S(i.slug),createdAt:R(i.createdAt),...pe("logo",P(i,"logo")),...pe("metadata",i.metadata===void 0?void 0:Ce(i.metadata))};return N(o.id,t),N(o.slug,n),o}function Ct(e){return L(e,Y)}function Me(e,t,n){return e===null?null:(t===null&&p(),Y(e,t,n))}function zt(e,t,n){if(e===null)return null;let i=m(e),o=Y(i,t,n);return {...o,members:L(i.members,s=>Bt(s,o.id)),invitations:L(i.invitations,s=>F(s,void 0,o.id))}}function Le(e,t,n=false){let i=L(e,o=>oe(o));return n||se(i.map(o=>o.organizationId),t),i}function Dt(e,t){let n=L(e,i=>Fe(i));return se(n.map(i=>i.teamId),t),n}function Fe(e,t,n){let i=m(e),o={id:S(i.id),teamId:S(i.teamId),userId:S(i.userId),createdAt:R(i.createdAt)};return N(o.teamId,t),N(o.userId,n),o}function Ut(e,t,n){return e===null?null:(t===null&&p(),oe(e,t,n))}function _t(e,t){let n=m(e);return (!Number.isSafeInteger(n.total)||n.total<0)&&p(),{members:eo(n.members,t),total:n.total}}function F(e,t,n){let i=m(e),o=S(i.status);Zi.has(o)||p();let s={id:S(i.id),organizationId:S(i.organizationId),email:re(i.email),role:S(i.role),status:o,inviterId:S(i.inviterId),expiresAt:R(i.expiresAt),createdAt:R(i.createdAt)};return N(s.id,t),N(s.organizationId,n),s}function Nt(e,t){let n=L(e,i=>F(i));return se(n.map(i=>i.organizationId),t),n}function Mt(e){return L(e,t=>{let n=m(t);return {...F(n),organizationName:re(n.organizationName)}})}function Lt(e,t){let n=m(e);return {...F(n,t),organizationName:S(n.organizationName),organizationSlug:S(n.organizationSlug),inviterEmail:jt(n.inviterEmail)}}function Ft(e,t){let n=m(e),i=F(n.invitation,t);return {invitation:i,member:X(n.member,void 0,i.organizationId)}}function Ht(e,t){let n=m(e);return n.member!==null&&p(),{invitation:n.invitation===null?null:F(n.invitation,t),member:null}}function qt(e,t){return e===null?null:F(e,t)}function Vt(e,t,n){let i=m(e);return {member:X(i.member,n,t)}}function X(e,t,n){let i=m(e),o={id:S(i.id),organizationId:S(i.organizationId),userId:S(i.userId),role:S(i.role),createdAt:R(i.createdAt),...i.user===void 0?{}:{user:Jt(i.user)}};return N(o.id,t),N(o.organizationId,n),o}function Kt(e,t){let n=L(e,i=>{let o=m(i);return {organizationId:S(o.organizationId),data:{role:S(o.role),...pe("permission",o.permission===void 0?void 0:to(o.permission))}}});return se(n.map(i=>i.organizationId),t),n.map(i=>i.data)}function oe(e,t,n){let i=m(e),o=i.updatedAt,s={id:S(i.id),name:re(i.name),organizationId:S(i.organizationId),createdAt:R(i.createdAt),...o===void 0?{}:{updatedAt:R(o)}};return N(s.id,t),N(s.organizationId,n),s}function He(e){let t=m(e);return {message:re(t.message)}}function Bt(e,t){let n=m(e);return {...X(n,void 0,t),user:Jt(n.user)}}function eo(e,t){let n=L(e,i=>Bt(i));return se(n.map(i=>i.organizationId),t),n}function to(e){let t=m(e),n={};for(let[i,o]of Object.entries(t))(i==="__proto__"||i==="constructor"||i==="prototype"||i.length===0||i.length>Ne||!Array.isArray(o))&&p(),n[i]=o.map(s=>S(s));return n}function S(e){let t=k(e);return (t.length===0||t.length>Ne)&&p(),t}function re(e){if(e==null)return "";let t=k(e);return t.length>Ne&&p(),t}function jt(e){return e===null?null:S(e)}function N(e,t){t!==void 0&&e!==t&&p();}function se(e,t){let n=t??e[0];n!==void 0&&e.some(i=>i!==n)&&p();}function Jt(e){let t=m(e);return {id:S(t.id),name:re(t.name),email:jt(t.email),...pe("image",P(t,"image"))}}function L(e,t){return Array.isArray(e)||p(),e.map(n=>t(n))}function pe(e,t){return t===void 0?{}:{[e]:t}}function $t(e,t,n=()=>null){let{post:i,mutation:o}=W(e,t),s=new Set,c=()=>{for(let r of s)try{r();}catch{}},d=new Map,l=(r,a,f,b)=>{if(f)return e.request(r,{query:a,fetchOptions:f,decode:b});let u=`${r}\0${JSON.stringify(a??null)}`,g=d.get(u);if(g)return g;let A=e.request(r,{query:a,decode:b}).finally(()=>{d.delete(u);});return d.set(u,A),A},y=async r=>{let a=await o(r).finally(()=>d.clear());return a.error===null&&c(),a};return {subscribe(r){return s.add(r),()=>s.delete(r)},create:(r,a)=>y(i("/organization/create",r,a,Y)),list:r=>l("/organization/list",void 0,r,Ct),get:(r={},a)=>l("/organization/get-full-organization",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,membersLimit:r.membersLimit},a,f=>zt(f,r.organizationId,r.organizationSlug)),setActive:(r,a)=>y(i("/organization/set-active",r,a,f=>Me(f,r.organizationId,r.organizationSlug))),createTeam:(r,a)=>y(i("/organization/create-team",r,a,f=>oe(f,void 0,r.organizationId))),listTeams:(r={},a)=>l("/organization/list-teams",{organizationId:r.organizationId},a,f=>Le(f,r.organizationId)),updateTeam:(r,a)=>y(i("/organization/update-team",r,a,f=>oe(f,r.teamId,r.data.organizationId))),removeTeam:(r,a)=>y(i("/organization/remove-team",r,a,He)),listUserTeams:r=>l("/organization/list-user-teams",void 0,r,a=>Le(a,void 0,true)),listTeamMembers:(r={},a)=>l("/organization/list-team-members",{teamId:r.teamId},a,f=>Dt(f,r.teamId)),addTeamMember:(r,a)=>y(i("/organization/add-team-member",r,a,f=>Fe(f,r.teamId,r.userId))),removeTeamMember:(r,a)=>y(i("/organization/remove-team-member",r,a,He)),setActiveTeam:(r,a)=>y(i("/organization/set-active-team",r,a,f=>Ut(f,r.teamId))),update:(r,a)=>y(i("/organization/update",r,a,f=>Me(f,r.organizationId))),delete:(r,a)=>y(i("/organization/delete",r,a,f=>Y(f,r.organizationId))),listMembers:(r={},a)=>l("/organization/list-members",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,limit:r.limit,offset:r.offset,sortBy:r.sortBy,sortDirection:r.sortDirection,filterField:r.filterField,filterValue:r.filterValue,filterOperator:r.filterOperator},a,f=>_t(f,r.organizationId)),inviteMember:(r,a)=>y(i("/organization/invite-member",r,a,f=>F(f,void 0,r.organizationId))),listInvitations:(r={},a)=>l("/organization/list-invitations",{organizationId:r.organizationId},a,f=>Nt(f,r.organizationId)),listUserInvitations:r=>l("/organization/list-user-invitations",void 0,r,Mt),getInvitation:(r,a)=>l("/organization/get-invitation",{id:r.id},a,f=>Lt(f,r.id)),acceptInvitation:(r,a)=>y(i("/organization/accept-invitation",r,a,f=>Ft(f,r.invitationId))),rejectInvitation:(r,a)=>y(i("/organization/reject-invitation",r,a,f=>Ht(f,r.invitationId))),cancelInvitation:(r,a)=>y(i("/organization/cancel-invitation",r,a,f=>qt(f,r.invitationId))),removeMember:(r,a)=>y(i("/organization/remove-member",r,a,f=>Vt(f,r.organizationId,r.memberIdOrEmail.includes("@")?void 0:r.memberIdOrEmail))),updateMemberRole:(r,a)=>y(i("/organization/update-member-role",r,a,f=>X(f,r.memberId,r.organizationId))),leave:(r,a)=>y(i("/organization/leave",r,a,f=>X(f,void 0,r.organizationId))),listRoles:(r={},a)=>l("/organization/list-roles",{organizationId:r.organizationId},a,f=>Kt(f,r.organizationId)),has:r=>_e(n(),r),hasPermission:r=>Ue(n(),r.permission)}}var Gt=4096,no=4096,io=100,oo=256,ro=16,so=64,ao=12;function Ve(e){let t=m(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:fn(t.twoFactorMethods,ro,so)}}):(t.twoFactorRedirect!==void 0&&p(),{redirect:T(t.redirect),...fo(t,"url"),user:D(t.user)})}function Wt(e){let t=m(e);return {user:D(t.user)}}function Yt(e){let t=m(e);return {sessionCreated:T(t.sessionCreated),user:D(t.user)}}function Xt(e,t){let n=m(e),i=T(n.redirect);n.user===null&&p();let o=n.user!==void 0&&n.user!==null,s=n.url!==void 0&&n.url!==null;return i?((o||!s)&&p(),{redirect:true,url:qe(n.url,t)}):(o===s&&p(),o?{redirect:false,user:D(n.user)}:{redirect:false,url:qe(n.url,t)})}function Qt(e,t){let n=m(e);return (n.redirect!==true||n.user!==void 0)&&p(),{redirect:true,url:qe(n.url,t)}}function Zt(e){return {status:T(m(e).status)}}function en(e){return {success:T(m(e).success)}}function tn(e){return m(e).status!=="pending"&&p(),{status:"pending"}}function nn(e){let t=m(e);if(t.kind==="authowl_turnstile")return {kind:"authowl_turnstile"};t.kind!=="akedly_shield_v1_2"&&p();let n=m(t.turnstile),i=n.siteKey===null?null:k(n.siteKey);return {kind:"akedly_shield_v1_2",connectionId:k(t.connectionId),challenge:k(t.challenge),difficulty:uo(t.difficulty),challengeToken:k(t.challengeToken),challengeRequired:T(t.challengeRequired),turnstile:{required:T(n.required),siteKey:i}}}function uo(e){return (!Number.isSafeInteger(e)||Number(e)<0||Number(e)>ao)&&p(),Number(e)}function on(e){let t=m(e);return (t.status!==true||t.sessionCreated!==true)&&p(),{status:true,sessionCreated:true,user:co(t.user)}}function Ke(e){return {status:T(m(e).status)}}function rn(e){return {status:T(m(e).status)}}function sn(e){let t=m(e);return {status:T(t.status),user:D(t.user)}}function an(e){return {success:T(m(e).success)}}function un(e){let t=m(e);return {totpURI:po(t.totpURI),backupCodes:pn(t.backupCodes)}}function cn(e){return {status:T(m(e).status)}}function fe(e){return m(e).status!==true&&p(),{status:true}}function dn(e){return {status:T(m(e).status)}}function ln(e){let t=m(e);return t.status!==void 0&&t.status!==true&&p(),{backupCodes:pn(t.backupCodes)}}function co(e){let t=m(e);return {id:Q(t.id,512),...go(t,"name",1024),phoneNumber:Q(t.phoneNumber,64),phoneNumberVerified:T(t.phoneNumberVerified),...t.createdAt===void 0?{}:{createdAt:R(t.createdAt)},...t.updatedAt===void 0?{}:{updatedAt:R(t.updatedAt)}}}function qe(e,t){let n=Q(e,Gt);/[\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:"&&lo(i.hostname)?i.href:p()}function lo(e){let t=e.toLowerCase();return t==="localhost"||t==="127.0.0.1"||t==="[::1]"}function po(e){let t=Q(e,no),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 pn(e){return fn(e,io,oo)}function fn(e,t,n){(!Array.isArray(e)||e.length===0||e.length>t)&&p();let i=e.map(o=>Q(o,n));return i.some(o=>o.trim().length===0)&&p(),new Set(i).size!==i.length&&p(),i}function Q(e,t){let n=k(e);return (n.length===0||n.length>t)&&p(),n}function fo(e,t){let n=e[t];return n==null?{}:{[t]:Q(n,Gt)}}function go(e,t,n){let i=P(e,t);return i===void 0?{}:(i!==null&&i.length>n&&p(),{[t]:i})}var gn=new Set([1564,8206,8207,8234,8235,8236,8237,8238,8294,8295,8296,8297]),ge=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 me(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||hn(n,i)||mn(i)||gn.has(i))return {valid:false}}let t=mo(e);return Be(t)?{valid:true,value:t}:{valid:false}}function Be(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||hn(o,s)||mn(s)||gn.has(s))return false;n??=s,i=s;}return t>0&&n!==void 0&&i!==void 0&&!ge.has(n)&&!ge.has(i)}function he(){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 mo(e){let t=0,n=e.length;for(;t<n;){let i=e.codePointAt(t);if(i===void 0||!ge.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,c=e.codePointAt(s);if(c===void 0||!ge.has(c))break;n=s;}return e.slice(t,n)}function mn(e){return e>=0&&e<=31||e>=127&&e<=159}function hn(e,t){return e.length===1&&t>=55296&&t<=57343}var bn=12,On=5e3,ho=8,yo=1e3,Ao=16,yn=512,wn=100,kn=8192,bo=32768,je=1024,An=256,$e=64,Oo=6e5,wo=/^[A-Za-z0-9_-]+$/u,ko=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u,So=/[\u0000-\u001f\u007f-\u009f\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/u,Ro=/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$/u,To=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu,Sn=new Set(["discouraged","preferred","required"]),Io=new Set(["singleDevice","multiDevice"]),Rn=new Set(["ble","cable","hybrid","internal","nfc","smart-card","usb"]),Tn=new Set(["hybrid","security-key","client-device"]),Po=new Set(["none","indirect","direct","enterprise"]),xo=new Set(["fido-u2f","packed","android-safetynet","android-key","tpm","apple","none"]),Eo=new Set(["platform","cross-platform"]),vo=new Set(["discouraged","preferred","required"]),Co=new Set([-8,-7,-257]);function In(e){let t=M(e,bn,On);return {challenge:Nn(t.challenge),...x("timeout",Un(t.timeout)),...x("rpId",Mn(t.rpId)),...x("allowCredentials",Dn(t.allowCredentials)),...x("userVerification",ae(t.userVerification,Sn)),...x("hints",ye(t.hints,Tn)),...x("extensions",_n(t.extensions))}}function Pn(e){let t=M(e,bn,On);return {challenge:Nn(t.challenge),rp:zo(t.rp),user:Do(t.user),pubKeyCredParams:Uo(t.pubKeyCredParams),...x("timeout",Un(t.timeout)),...x("excludeCredentials",Dn(t.excludeCredentials)),...x("authenticatorSelection",_o(t.authenticatorSelection)),...x("attestation",ae(t.attestation,Po)),...x("attestationFormats",ye(t.attestationFormats,xo)),...x("hints",ye(t.hints,Tn)),...x("extensions",_n(t.extensions))}}function xn(e){let t=m(e),n=le(t.session),i=D(t.user);return n.userId!==i.id&&p(),{session:n,user:i}}function Ge(e){let t=m(e),n=t.counter;(!Number.isSafeInteger(n)||n<0)&&p();let i=We(t.deviceType,Io),o=T(t.backedUp);return o&&i!=="multiDevice"&&p(),{id:Z(t.id,An),...Lo(t),publicKey:No(t.publicKey,bo),userId:Z(t.userId,An),credentialID:be(t.credentialID,kn),counter:n,deviceType:i,backedUp:o,...Fo(t),createdAt:R(t.createdAt),...Ho(t)}}function En(e,t,n){let i=Ge(e);return (i.credentialID!==t||(n===void 0?i.name!==void 0&&i.name!==null:i.name!==n))&&p(),i}function vn(e){(!Array.isArray(e)||e.length>wn)&&p();let t=e.map(Ge);return Ae(t.map(n=>n.id)),Ae(t.map(n=>n.credentialID)),t.length>1&&t.some(n=>n.userId!==t[0]?.userId)&&p(),t}function Cn(e,t,n){let i=m(e),o=Ge(i.passkey);return (o.id!==t||o.name!==n)&&p(),{passkey:o}}function zn(e){return m(e).status!==true&&p(),{status:true}}function zo(e){let t=m(e);return {name:Je(t.name,je),...x("id",Mn(t.id))}}function Do(e){let t=m(e);return {id:be(t.id,128,1,64),name:Je(t.name,je),displayName:Je(t.displayName,je)}}function Uo(e){(!Array.isArray(e)||e.length===0||e.length>$e)&&p();let t=e.map(n=>{let i=m(n);return (i.type!=="public-key"||!Number.isSafeInteger(i.alg)||!Co.has(i.alg))&&p(),{type:"public-key",alg:i.alg}});return qo(t.map(n=>n.alg)),t}function Dn(e){if(e===void 0)return;(!Array.isArray(e)||e.length>wn)&&p();let t=e.map(n=>{let i=m(n);return i.type!=="public-key"&&p(),{type:"public-key",id:be(i.id,kn),...x("transports",ye(i.transports,Rn))}});return Ae(t.map(n=>n.id)),t}function _o(e){if(e===void 0)return;let t=m(e);t.requireResidentKey!==void 0&&typeof t.requireResidentKey!="boolean"&&p();let n=ae(t.residentKey,vo);return t.requireResidentKey!==void 0&&n!==void 0&&t.requireResidentKey!==(n==="required")&&p(),{...x("authenticatorAttachment",ae(t.authenticatorAttachment,Eo)),...x("residentKey",n),...x("requireResidentKey",t.requireResidentKey),...x("userVerification",ae(t.userVerification,Sn))}}function Un(e){return e!==void 0&&(typeof e!="number"||!Number.isFinite(e)||e<0||e>Oo)&&p(),e}function _n(e){return e===void 0?void 0:M(e,ho,yo)}function ye(e,t){if(e===void 0)return;(!Array.isArray(e)||e.length>$e)&&p();let n=e.map(i=>We(i,t));return Ae(n),n}function ae(e,t){if(e!==void 0)return We(e,t)}function Nn(e){return be(e,Math.ceil(yn*4/3),Ao,yn)}function be(e,t,n=1,i=Number.POSITIVE_INFINITY){let o=Z(e,t),s=o.length%4,c=Mo(o.at(-1)??""),d=Math.floor(o.length*3/4);return (!wo.test(o)||s===1||s===2&&(c&15)!==0||s===3&&(c&3)!==0||d<n||d>i)&&p(),o}function Z(e,t){let n=k(e);return (n.length===0||n.length>t)&&p(),n}function Je(e,t){let n=Z(e,t);return So.test(n)&&p(),n}function Mn(e){if(e===void 0)return;let t=Z(e,253);return t!=="localhost"&&(t.endsWith(".")||!t.includes(".")||t.split(".").some(n=>!Ro.test(n)))&&p(),t}function No(e,t){let n=Z(e,t),i=n.endsWith("=="),o=!i&&n.endsWith("="),s=n.at(i?-3:o?-2:-1)??"",c=Ln(s);return (n.length%4!==0||!ko.test(n)||i&&(c&15)!==0||o&&(c&3)!==0)&&p(),n}function Mo(e){return Ln(e,true)}function Ln(e,t=false){return (t?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").indexOf(e)}function Lo(e){let t=P(e,"name");return t===void 0?{}:(t!==null&&!Be(t)&&p(),{name:t})}function Fo(e){let t=P(e,"transports");if(t==null||t==="")return t===void 0?{}:{transports:t};let n=t.split(",");return (n.length>$e||n.some(i=>!Rn.has(i))||new Set(n).size!==n.length)&&p(),{transports:t}}function Ho(e){let t=P(e,"aaguid");return t==null?t===void 0?{}:{aaguid:null}:(To.test(t)||p(),{aaguid:t})}function We(e,t){let n=k(e);return t.has(n)||p(),n}function x(e,t){return t===void 0?{}:{[e]:t}}function Ae(e){new Set(e).size!==e.length&&p();}function qo(e){new Set(e).size!==e.length&&p();}function Yo(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 Bn=new Map;function Xo(e,t,n){let i=Bn.get(n);if(!i){let o=new URLSearchParams(window.location.hash.slice(1)).get("authowl_code");if(!o)return;i=Promise.resolve().then(()=>(we(),Oe)).then(s=>s.completeCrossSiteSignIn(e,t,o)),Bn.set(n,i);}return i}function jn(e){return !ne()||e.idToken||e.disableRedirect?"legacy":"first-party"}function Qo(e,t=()=>{},n=tr){let i=Ee(e),o=e.session.tokens,s=ne()?Xo(i,o,e.decoded.projectId):void 0,c=Yo(i,s),d=Rt({http:c,probe:Ee({...e,fetch:e.session.probe}),tokens:o,channelName:`authowl:${e.decoded.projectId}`}),l=n(c,d.notifyMutation),y=()=>{d.notifyMutation(),t();},{post:r,mutation:a}=W(c,y),f=e.decoded.env==="test",b=u=>{o.beginSession({remember:u?.rememberMe!==false});};return {sessionStore:d.store,getSession:d.getSession,account:vt(c,y),organization:$t(c,y,()=>d.store.getSnapshot().data?.session.membership??null),signIn:{email:(u,g)=>(b(u),a(r("/sign-in/email",u,g,Ve),A=>!("twoFactorRedirect"in A))),username:(u,g)=>(b(u),a(r("/sign-in/username",u,g,Ve),A=>!("twoFactorRedirect"in A))),social:async(u,g)=>{if(b(),jn(u)==="first-party"){let{beginCrossSiteSignIn:w}=await Promise.resolve().then(()=>(we(),Oe)),I=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(I)return window.location.assign(I),{data:{redirect:true,url:I},error:null}}let A=await a(r("/sign-in/social",u,g,w=>Xt(w,f)),w=>"user"in w);return A.error!==null||A.data===null||"url"in A.data&&A.data.redirect&&!u.disableRedirect&&typeof window<"u"&&window.location.assign(A.data.url),A},sso:async(u,g)=>{if(jn(u)==="first-party"){let{beginCrossSiteSignIn:w}=await Promise.resolve().then(()=>(we(),Oe)),I=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(I)return window.location.assign(I),{data:{url:I,redirect:true},error:null}}let A=await r("/sign-in/sso",u,g,w=>Qt(w,f));return A.error!==null||A.data===null||typeof window<"u"&&window.location.assign(A.data.url),A},magicLink:(u,g)=>r("/sign-in/magic-link",u,g,Zt),emailOtp:(u,g)=>(b(),a(r("/sign-in/email-otp",u,g,Wt))),passkey:(u,g)=>(b(),l.signIn(u,g))},signUp:{email:(u,g)=>(b(),a(r("/sign-up/email",u,g,Yt),A=>A.sessionCreated))},emailOtp:{sendVerificationOtp:(u,g)=>r("/email-otp/send-verification-otp",u,g,en),verifyEmail:(u,g)=>(b(),a(r("/email-otp/verify-email",u,g,sn)))},phoneOtp:{prepare:u=>r("/phone-otp/challenge",{},u,nn),start:(u,g)=>r("/phone-otp/start",{...u,idempotencyKey:u.idempotencyKey??Tt()},g,tn),verify:(u,g)=>(b(),a(r("/phone-otp/verify",u,g,on)))},requestPasswordReset:(u,g)=>r("/request-password-reset",u,g,Ke),resetPassword:(u,g)=>r("/reset-password",u,g,Ke),sendVerificationEmail:(u,g)=>r("/send-verification-email",u,g,rn),passkey:{addPasskey:(u,g)=>l.add(u,g),listUserPasskeys:()=>c.request("/passkey/list-user-passkeys",{decode:vn}),updatePasskey:async(u,g)=>{let A=me(u.name);if(!A.valid||A.value===void 0)return he();let w=A.value;return r("/passkey/update-passkey",{...u,name:w},g,I=>Cn(I,u.id,w))},deletePasskey:(u,g)=>r("/passkey/delete-passkey",u,g,zn)},twoFactor:{enable:(u,g)=>r("/two-factor/enable",u,g,un),disable:(u,g)=>a(r("/two-factor/disable",u,g,cn),A=>A.status),verifyTotp:(u,g)=>a(r("/two-factor/verify-totp",u,g,fe)),verifyBackupCode:(u,g)=>a(r("/two-factor/verify-backup-code",u,g,fe)),sendOtp:(u={},g)=>r("/two-factor/send-otp",u,g,dn),verifyOtp:(u,g)=>a(r("/two-factor/verify-otp",u,g,fe)),generateBackupCodes:(u,g)=>r("/two-factor/generate-backup-codes",u,g,ln)},signOut:u=>a(c.request("/sign-out",{method:"POST",body:{},fetchOptions:u,decode:an}).then(g=>(o.endSession(),g)),g=>g.success)}}function Qe(e,t=()=>{},n){let i=Qo(e,t,n);return n?{...i,signIn:{email:i.signIn.email,username:i.signIn.username,social:Jn(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:Jn(i),magicLink:i.signIn.magicLink,emailOtp:i.signIn.emailOtp},passkey:{listUserPasskeys:i.passkey.listUserPasskeys,updatePasskey:i.passkey.updatePasskey,deletePasskey:i.passkey.deletePasskey}}}function Jn(e){return async(t,n)=>{if(!t?.idToken||typeof t.idToken.token!="string"||t.idToken.token==="")return Zo();let i=await e.signIn.social({...t,disableRedirect:true},n);return i.data!==null&&"url"in i.data?er():i}}function Zo(){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 er(){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 tr(){return {signIn:()=>$n(),add:()=>$n()}}function $n(){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 nr(e,t,n){let i=new Map;return {async signIn(o={},s){let c=await e.request("/passkey/generate-authenticate-options");if(!c.data)return Yn(c.error);let d;try{d=In(c.data);}catch{return Gn()}let l;try{l=await n.authenticate({optionsJSON:d,useBrowserAutofill:o.autoFill});}catch(b){return Xn(n,b,"AUTH_CANCELLED","Passkey authentication was cancelled.")}if(!ir(l))return Wn();let{clientExtensionResults:y,...r}=l,a=i.get(l.id);if(a)return a;let f=(async()=>{let b=await e.request("/passkey/verify-authentication",{method:"POST",body:{response:r},fetchOptions:s,decode:xn});return b.data&&t(),b})();i.set(l.id,f);try{return await f}finally{i.get(l.id)===f&&i.delete(l.id);}},async add(o={},s){let c=me(o.name);if(!c.valid)return he();let d=await e.request("/passkey/generate-register-options",{query:{name:c.value,authenticatorAttachment:o.authenticatorAttachment}});if(!d.data)return Yn(d.error);let l;try{l=Pn(d.data);}catch{return Gn()}let y;try{y=await n.register({optionsJSON:l});}catch(b){return Xn(n,b,"REGISTRATION_CANCELLED","Passkey registration was cancelled.")}if(!or(y))return Wn();let{clientExtensionResults:r,...a}=y,f=await e.request("/passkey/verify-registration",{method:"POST",body:{response:a,name:c.value},fetchOptions:s,decode:b=>En(b,y.id,c.value)});return f.data&&t(),f}}}function Gn(){return {data:null,error:{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned invalid WebAuthn options."}}}function Wn(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_WEBAUTHN_RESPONSE",message:"The platform returned an invalid passkey response."}}}function Zn(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 ir(e){if(!Zn(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.authenticatorData=="string"&&typeof t.signature=="string"&&(t.userHandle===void 0||typeof t.userHandle=="string")}function or(e){if(!Zn(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.attestationObject=="string"}function Yn(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=sr(t,"page does not have focus"),s=e.errorCode?.(t),c=s!==void 0?s==="ERROR_CEREMONY_ABORTED":Qn(t)==="AbortError",d=n!=="AUTH_CANCELLED",l=rr(s,Qn(t),d);return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:o?"PASSKEY_PAGE_NOT_FOCUSED":c?n:s??"PASSKEY_BROWSER_ERROR",message:o?"Keep this page focused while completing the passkey prompt.":c?i:l}}}function rr(e,t,n){switch(e){case "ERROR_INVALID_DOMAIN":case "ERROR_INVALID_RP_ID":return "Passkeys are not set up for this site\u2019s domain.";case "ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED":return "This device already has a passkey for this account.";case "ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEY_ALGS":case "ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT":case "ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT":return "This device cannot create a passkey for this site.";}return t==="NotAllowedError"?n?"No passkey was created. The prompt was dismissed or timed out.":"No passkey was used. This device may not have one saved for this site yet, or the prompt was dismissed.":t==="SecurityError"?"Passkeys are not set up for this site\u2019s domain.":n?"Passkey registration did not complete.":"Passkey sign-in did not complete."}function Qn(e){return e&&typeof e=="object"&&"name"in e&&typeof e.name=="string"?e.name:void 0}function sr(e,t){let n=t.toLowerCase(),i=new Set,o=e;for(;o&&typeof o=="object"&&!i.has(o);){if(i.add(o),"message"in o&&typeof o.message=="string"&&o.message.toLowerCase().includes(n))return true;o="cause"in o?o.cause:void 0;}return false}async function ar(e){let n=`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/public-config`;return Ot(await de(e,n,{init:{method:"GET",credentials:"omit"},maxResponseBytes:256*1024,decode:i=>ur(i,e)}),"public-config")}function ur(e,t){let n=M(e),i=n.environmentId,o=n.environmentType,s=`${new URL(t.apiUrl).origin}/api/projects/${t.decoded.projectId}/auth`;if(typeof n.applicationId!="string"||!cr(n.applicationId)||i!==t.decoded.projectId||o!=="development"&&o!=="production"||n.authBaseUrl!==s)throw U();let c=C(n.branding),d=C(n.legal);if(!Ze(n.enabledMethods,64)||!Ze(n.socialProviders,64)||!ti(c,["appName","logoUrl","primaryColor"])||c.showAppName!==void 0&&typeof c.showAppName!="boolean"||c.alignment!==void 0&&c.alignment!=="left"&&c.alignment!=="center"&&c.alignment!=="right"||c.theme!==void 0&&c.theme!=="light"&&c.theme!=="dark"&&c.theme!=="system"||!ti(d,["termsUrl","privacyUrl"])||!Number.isSafeInteger(d.version)||d.version<0||typeof d.required!="boolean")throw U();if(n.socialProviderClientIds!==void 0){let l=C(n.socialProviderClientIds);if(Object.keys(l).length>64||Object.values(l).some(y=>typeof y!="string"||y.length>2048))throw U()}if(!H(n,["requireEmailVerification","twoFactor","mfaRequired","accountDeletion","organizations","sso","badge"])||!ei(n.turnstileSiteKey)||!ei(n.authTurnstileSiteKey)||typeof n.locale!="string"||n.locale.length===0||n.locale.length>64||!Number.isSafeInteger(n.configVersion)||n.configVersion<0)throw U();if(n.jwtIssuer!==null){let l=C(n.jwtIssuer);if(l.issuer!==s||l.jwksUrl!==`${s}/jwks`||l.aud!==t.decoded.projectId)throw U()}if(n.signUp!==void 0){let l=C(n.signUp).mode;if(typeof l!="string"||!["open","restricted","allowlist","waitlist"].includes(l))throw U()}if(n.authentication!==void 0&&dr(n.authentication),n.emailVerification!==void 0){let l=C(n.emailVerification);if(!H(l,["required"])||l.method!=="link"&&l.method!=="code")throw U()}if(n.userModel!==void 0&&!H(C(n.userModel),["requireEmail","firstLastName","emailChange","accountDeletion"]))throw U();if(n.mfa!==void 0){let l=C(n.mfa);if(!H(l,["totp","required","backupCodes"])||(l.required===true||l.backupCodes===true)&&l.totp!==true)throw U()}return n}function cr(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 U(){return new TypeError("public-config returned an invalid response")}function C(e){if(!e||typeof e!="object"||Array.isArray(e))throw U();return e}function ei(e){return e===null||typeof e=="string"&&e.length<=4096}function dr(e){let t=C(e),n=C(t.email),i=C(t.password),o=i.minLength!==void 0||i.maxLength!==void 0;if(!H(n,["signUp"])||!Ze(n.signIn,3)||n.signIn.some(s=>s!=="password"&&s!=="magic_link"&&s!=="email_otp")||!H(C(t.phone),["signUp","signIn"])||!H(i,["signUp","add"])||o&&(!Number.isSafeInteger(i.minLength)||!Number.isSafeInteger(i.maxLength)||i.minLength<1||i.maxLength>4096||i.minLength>i.maxLength)||!H(C(t.passkey),["signIn","add"])||!lr(C(t.passkey).relyingPartyId)||!H(C(t.username),["collectOnSignUp","signIn"]))throw U()}function lr(e){return e==null||typeof e=="string"}function H(e,t){return t.every(n=>typeof e[n]=="boolean")}function ti(e,t){return t.every(n=>e[n]===void 0||typeof e[n]=="string"&&e[n].length<=4096)}function Ze(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 pr(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(c=>c==="password"||c==="magic_link"||c==="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 fr(e,t){let n=`p_${e.toLowerCase().replace(/-/g,"")}`;return `${t?.secure?"__Secure-":""}${n}.session_token`}function vs(e,t){return Qe(Re(e),t)}
|
|
2
|
-
exports.createMembershipHas=
|
|
1
|
+
'use strict';var ii=Object.defineProperty;var et=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(i){throw n=[i],i}};var oi=(e,t)=>{for(var n in t)ii(e,n,{get:t[n],enumerable:true});};function ne(){return typeof window<"u"&&typeof document<"u"&&typeof crypto<"u"&&typeof crypto.subtle?.digest=="function"}var De=et(()=>{"use strict";});var Oe={};oi(Oe,{beginCrossSiteSignIn:()=>Wo,challengeFor:()=>Kn,completeCrossSiteSignIn:()=>Yo,takeHandoffCode:()=>Xe});function Vn(e){let t="";for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function Kn(e){let t=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e));return Vn(new Uint8Array(t))}function Jo(){return Vn(crypto.getRandomValues(new Uint8Array(Ko)))}function Bn(e,t){let n=window.location.protocol==="https:"?"; Secure":"";document.cookie=`${qn}=${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()===qn)return e.slice(t+1).trim()||null}return null}function Go(){Bn("",0);}function Hn(e){return new URL(e,window.location.href).toString()}async function Wo(e,t){let n=t.callbackURL?Hn(t.callbackURL):null;if(n&&new URL(n).origin!==window.location.origin)return null;let i=Jo(),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 c of jo){let l=t[c];l&&o.searchParams.set(c,l);}let s=`${window.location.origin}${window.location.pathname}${window.location.search}`;o.searchParams.set("cb",n??s);for(let[c,l]of [["err",t.errorCallbackURL],["new",t.newUserCallbackURL]])l&&o.searchParams.set(c,Hn(l));return o.searchParams.set("challenge",await Kn(i)),Bn(i,Bo),o.toString()}function Xe(e){if(typeof window>"u")return null;let t=window.location.hash;if(!t.includes(Ye))return null;let n=new URLSearchParams(t.replace(/^#/,"")),i=n.get(Ye);if(!i||e!==void 0&&i!==e)return null;n.delete(Ye);let o=n.toString();return window.history.replaceState(window.history.state,"",`${window.location.pathname}${window.location.search}${o?`#${o}`:""}`),i}async function Yo(e,t,n){if(!ne())return false;let i=n??Xe();if(!i)return false;n&&Xe(n);let o=$o();if(Go(),!o)return false;t.beginSession({remember:true});let{error:s}=await e.request("/session/exchange",{method:"POST",body:{code:i,verifier:o}});return s===null}var qn,Ye,Ko,Bo,jo,we=et(()=>{"use strict";De();qn="authowl_handoff_verifier",Ye="authowl_code",Ko=32,Bo=900,jo=["email","providerId","domain","organizationSlug"];});var ri=/^(pk_(live|test))_([0-9a-f-]{36})_([A-Za-z0-9]{20,})$/i,si=/^sk_/i;function ke(e){if(typeof e!="string"||e.length===0)throw new Error("publishableKey is required");if(si.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=ri.exec(e);if(!t)throw new Error("publishableKey is malformed; expected pk_(live|test)_<uuid>_<base62>");return {prefix:t[1].toLowerCase(),env:t[2].toLowerCase(),projectId:t[3].toLowerCase()}}var tt=/^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 nt(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&&tt.test(i)))throw new TypeError("Transport URL must use HTTPS except on approved loopback.");return n}function it(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||!tt.test(e))&&Re("apiUrl","HTTPS required except exact loopback"),n.origin}function $(e,t){try{return e?.getItem(t)??null}catch{return null}}function G(e,t,n){try{n===null?e?.removeItem(t):e?.setItem(t,n);}catch{}}function W(){try{return globalThis.localStorage}catch{return}}function B(){try{return globalThis.sessionStorage}catch{return}}var ai="authowl.session-challenge",ui=e=>`${ai}.${e}`,ci="set-auth-challenge",ot="x-authowl-challenge";var st="INVALID_TWO_FACTOR_COOKIE",di=2048,de=e=>e!==null&&e.length<=di,rt=/^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/;function li(e){let t=[];for(let n of e.split(";")){let i=n.trimStart(),o=i.indexOf("=");o<=0||t.push([i.slice(0,o).trimEnd(),i.slice(o+1)]);}return t}function at(e){let t=ui(e),n=new Map;function i(){return n.size===0?null:[...n].map(([l,d])=>`${l}=${d}`).join("; ")}function o(){let l=i();G(B(),t,de(l)?l:null);}function s(l){for(let[d,y]of li(l))rt.test(d)&&(y===""?n.delete(d):rt.test(y)&&n.set(d,y));}let c=$(B(),t);return de(c)&&s(c),{presentOn(l){let d=i();l.delete(ot),de(d)&&l.set(ot,d);},observe(l){let d=l.get(ci);de(d)&&(s(d),o());},clear(){n.clear(),o();}}}var ut="set-auth-token",ct="x-authowl-session-transport",dt="bearer";var pi="authowl.session-token",fi="authowl.cookie-transport",pt="ok",ft="bearer",gi=e=>`${pi}.${e}`,mi=e=>`${fi}.${e}`;function hi(e){return e===pt?"cookies":e===ft?"bearer":"unknown"}function yi(e){return e==="cookies"?pt:e==="bearer"?ft:null}function Ai(e){let t=gi(e),n=mi(e),i=at(e),o=null,s=false,c=null,l=hi($(W(),n)),d=()=>l==="unknown",y=0,r=null,a=false;function f(){let h=$(B(),t);if(h!==null)return s=true,h;let O=$(W(),t);return O!==null?(s=false,O):null}o=f(),o!==null&&d()&&(a=true);function b(){if(!(!a||!r)){a=false;try{r();}catch{}}}function u(){let h=l==="bearer"?o:null,[O,_]=s?[B(),W()]:[W(),B()];G(_,t,null),G(O,t,h);}function g(h){h!==null&&c!==null&&(s=c,c=null),o=h,u(),h!==null&&d()&&(a=true,b());}function A(h){l=h,G(W(),n,yi(h));}function w(){A("unknown"),a=false;}function I(){return o===null&&(o=f()),o}function q(){let h=f();return h!==null&&(o=h),o}function V(h){q()===h&&u();}function K(){y+=1,c=null,s=false,g(null),i.clear(),w();}let J=()=>l!=="cookies";return {hasToken:()=>I()!==null,declareOn(h){if(h.has("authorization"))return false;let O=I();return !O&&!J()?false:(O&&h.set("authorization",`Bearer ${O}`),h.set(ct,dt),i.presentOn(h),true)},wantsToken:J,needsProbe:d,observe(h){let O=h.get(ut);O&&g(O),i.observe(h);},dropChallenge:i.clear,measureWith(h){r=h,b();},beginRead(){let h=I(),O=y;return {carriedToken:h!==null,endIfDead(){h!==null&&q()===h&&y===O&&K();},recordCookieVerdict(_){if(y===O&&d()){if(A(_?"cookies":"bearer"),_){g(null);return}V(h);}}}},beginSession({remember:h}){y+=1,c=!h,i.clear(),w();},endSession:K}}var lt=new Map;function gt(e){let t=lt.get(e);if(t)return t;let n=Ai(e);return lt.set(e,n),n}function bi(e,t){return t?.headers?new Headers(t.headers):typeof e=="object"&&e!==null&&"headers"in e?new Headers(e.headers):new Headers}function mt(e,t){let n=gt(e),i=(c,l)=>(t??globalThis.fetch)(c,l);return {fetch:async(c,l)=>{if(l?.credentials==="omit"||!n.wantsToken())return i(c,l);let d=bi(c,l),y=n.declareOn(d),r=await i(c,{...l,headers:d});return y&&n.observe(r.headers),r},probe:i,tokens:n}}function Oi(e){if(!e||typeof e!="object")throw new Error("AuthConfig is required");let t=ke(e.publishableKey),n=it(e.apiUrl,{allowHttpLoopback:t.env==="test"});return {publishableKey:e.publishableKey,apiUrl:n,decoded:t,projectBaseURL:`${n}/api/projects/${t.projectId}/auth`}}function Se(e){let t=Oi(e),{fetch:n,...i}=mt(t.decoded.projectId,e.fetch);return {...e,...t,fetch:n,session:i}}var wi=1e4,ki=1024*1024,x=class extends Error{kind;requestId;constructor(t,n){super(Ei(t)),this.name="TransportError",this.kind=t,this.requestId=n;}},At=new WeakSet;function E(e,t){let n=new x(e,t);return At.add(n),n}async function bt({fetchImpl:e,url:t,init:n={},timeoutMs:i=wi,maxResponseBytes:o=ki,allowHttpLoopback:s=false,decode:c}){yt(i,"timeoutMs"),yt(o,"maxResponseBytes");let l=nt(t,{allowHttpLoopback:s}),d=n.signal,y=new AbortController,r=null,a,f=new Promise(A=>{a=A;}),b=A=>{r===null&&(r=A,a({type:"abort",kind:A}),y.abort());},u=()=>b("aborted");d?.addEventListener("abort",u,{once:true});let g=setTimeout(()=>b("timeout"),i);d?.aborted&&u();try{if(r!==null)throw E(r);let A;try{A=await Promise.race([e(l.toString(),{...n,redirect:"error",signal:y.signal}).then(J=>({type:"response",response:J})),f]);}catch{throw E(r??"network")}if(A.type==="abort")throw E(A.kind);if(!Ri(A.response))throw E("invalid_response");let w=A.response,I=xi(w.headers),q=await Si(w,o,f,()=>r,I),V=Pi(w,q,I),K;try{K=w.ok&&c?c(V,Object.freeze({status:w.status})):V;}catch{throw E("invalid_response",I)}return {response:w,data:K,...I===void 0?{}:{requestId:I}}}catch(A){throw A instanceof x&&At.has(A)?A:E(r??"network")}finally{clearTimeout(g),d?.removeEventListener("abort",u);}}function Ri(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 Si(e,t,n,i,o){let s=e.headers.get("content-length");if(s!==null){if(!/^\d+$/.test(s))throw ht(e.body),E("invalid_response",o);if(Number(s)>t)throw ht(e.body),E("response_too_large",o)}if(!e.body)return "";let c;try{c=e.body.getReader();}catch{throw E("network",o)}let l=[],d=0,y=null;try{for(;;){let f;try{f=await Promise.race([c.read(),n]);}catch{y=E(i()??"network",o);break}if(Ti(f)){y=E(f.kind,o);break}let{done:b,value:u}=f;if(b)break;if(u.byteLength!==0){if(d+=u.byteLength,d>t){y=E("response_too_large",o);break}l.push(u);}}}finally{y&&Ii(c);try{c.releaseLock();}catch{}}if(y)throw y;let r=new Uint8Array(d),a=0;for(let f of l)r.set(f,a),a+=f.byteLength;try{return new TextDecoder("utf-8",{fatal:!0}).decode(r)}catch{throw E("invalid_response",o)}}function Ti(e){return "type"in e&&e.type==="abort"}function ht(e){if(e)try{e.cancel().catch(()=>{});}catch{}}function Ii(e){try{e.cancel().catch(()=>{});}catch{}}function Pi(e,t,n){if(e.status===204||e.status===205)return null;let i=vi(e.headers.get("content-type"));if(!e.ok&&(!i||t.length===0))return null;if(!i||t.length===0)throw E("invalid_response",n);try{return JSON.parse(t)}catch{if(!e.ok)return null;throw E("invalid_response",n)}}function vi(e){if(e===null)return false;let t=e.split(";",1)[0]?.trim().toLowerCase();return t==="application/json"||t?.endsWith("+json")===true}function xi(e){let t=e.get("x-request-id")?.trim();if(!(!t||t.length>256||!/^[A-Za-z0-9._:-]+$/.test(t)))return t}function yt(e,t){if(!Number.isInteger(e)||e<=0)throw new TypeError(`${t} must be a positive integer.`)}function Ei(e){switch(e){case "aborted":return "The request was cancelled.";case "timeout":return "The request timed out.";case "response_too_large":return "The response exceeded the allowed size.";case "invalid_response":return "The service returned an invalid response.";case "network":return "The network request could not be completed."}}var Te=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 le(e,t,n={}){let i=new Headers(n.init?.headers);return i.set("x-publishable-key",e.publishableKey),bt({fetchImpl:e.fetch,url:t,init:{...n.init,headers:i},allowHttpLoopback:e.decoded.env==="test",...n.timeoutMs===void 0?{}:{timeoutMs:n.timeoutMs},...n.maxResponseBytes===void 0?{}:{maxResponseBytes:n.maxResponseBytes},...n.decode===void 0?{}:{decode:n.decode}})}function Ot(e,t){if(!e.response.ok)throw new Te(t,e.response,e.requestId);return e.data}var Ci="x-authowl-turnstile-token",zi=1e4,Di=32,Ui=2e4;function Y(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 xe(e,t=e.projectBaseURL){return {async request(n,i={}){let o=Mi(t,n,i.query),s=i.method??(i.body===void 0?"GET":"POST"),c=new Headers(i.fetchOptions?.headers);i.fetchOptions?.authChallengeToken&&c.set(Ci,i.fetchOptions.authChallengeToken),i.body!==void 0&&c.set("content-type","application/json");let l={method:s,headers:c,credentials:i.credentials??"include",...i.body===void 0?{}:{body:JSON.stringify(i.body)}},d=Object.freeze({method:s,path:n});await i.fetchOptions?.onRequest?.(d);let y=Ni(s,i.fetchOptions),r;try{r=await _i(e,o,{...l,signal:i.fetchOptions?.signal},y);}catch(A){let w=kt(A);return await i.fetchOptions?.onError?.(Ie(d,w,Hi(A))),{data:null,error:w}}let{response:a,requestId:f}=r,b=Ki(n,r.data),u=b;if(a.ok)try{u=ve(b),i.decode&&(u=i.decode(u));}catch{let A=kt(new x("invalid_response",f));return await i.fetchOptions?.onError?.(Ie(d,A,"invalid_response")),{data:null,error:A}}let g=Object.freeze({...d,status:a.status,...f===void 0?{}:{requestId:f}});if(await i.fetchOptions?.onResponse?.(g),!a.ok){let A=Li(a,b,f);return A.code===st&&e.session.tokens.dropChallenge(),await i.fetchOptions?.onError?.(Ie(d,A,"api")),{data:null,error:A}}return await i.fetchOptions?.onSuccess?.(g),{data:u,error:null}}}}async function _i(e,t,n,i){let o=Date.now()+zi;for(let s=0;s<i;s+=1){let c=o-Date.now();if(c<=0)throw new x("timeout");try{let l=await le(e,t,{init:n,timeoutMs:Math.max(1,Math.ceil(c))});if(l.response.status<500||s===i-1)return l}catch(l){if(s===i-1||!(l instanceof x)||l.kind!=="network")throw l}await qi(50*2**s,n.signal,o);}throw new x("network")}function Ni(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 Mi(e,t,n){let i=new URL(`${e}${t.startsWith("/")?t:`/${t}`}`);for(let[o,s]of Object.entries(n??{}))s!==void 0&&i.searchParams.set(o,String(s));return i.toString()}function Li(e,t,n){let i=te(t)?t:{},o=Fi(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 Fi(e,t){let n=(typeof e.retryAfterSeconds=="number"&&Number.isFinite(e.retryAfterSeconds)?e.retryAfterSeconds:void 0)??wt(t.get("retry-after"))??wt(t.get("x-retry-after"));if(n!==void 0)return Math.min(Math.max(Math.trunc(n),1),86400)}function wt(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 kt(e){let t=e instanceof x?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 x&&e.requestId?{requestId:e.requestId}:{}}}function Ie(e,t,n){return Object.freeze({...e,status:t.status??0,...t.requestId===void 0?{}:{requestId:t.requestId},failure:n})}function Hi(e){return e instanceof x?e.kind:"network"}function qi(e,t,n){return new Promise((i,o)=>{if(t?.aborted){o(new x("aborted"));return}let s=n-Date.now();if(s<=0){o(new x("timeout"));return}let c=Math.min(e,s),l=()=>{clearTimeout(d),o(new x("aborted"));},d=setTimeout(()=>{t?.removeEventListener("abort",l),Date.now()>=n?o(new x("timeout")):i();},c);t?.addEventListener("abort",l,{once:true}),t?.aborted&&l();})}function ve(e,t="",n=0,i={nodes:0}){if(i.nodes+=1,n>Di||i.nodes>Ui)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=>ve(o,"",n+1,i)):te(e)?Object.fromEntries(Object.entries(e).map(([o,s])=>[o,Vi(o)?s:ve(s,o,n+1,i)])):e}function Vi(e){return e==="metadata"||e==="public_metadata"||e==="unsafe_metadata"||e==="private_metadata"||e==="publicMetadata"||e==="unsafeMetadata"||e==="privateMetadata"}function Ki(e,t){if(e==="/list-sessions"&&Array.isArray(t))return t.map(o=>te(o)?Pe(o):o);if(!te(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-")?Pe(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")&&te(i.session)&&(i={...i,session:Pe(i.session)}),i}function Pe(e){if(!Object.hasOwn(e,"token"))return e;let t={...e};return delete t.token,t}function te(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}var Bi=new Set(["__proto__","constructor","prototype"]);function m(e){(!e||typeof e!="object"||Array.isArray(e))&&p();let t=Object.getPrototypeOf(e);return t!==Object.prototype&&t!==null&&p(),e}function k(e){return typeof e!="string"&&p(),e}function T(e){return typeof e!="boolean"&&p(),e}function S(e){return (!(e instanceof Date)||Number.isNaN(e.getTime()))&&p(),e}function j(e){return (!Array.isArray(e)||!e.every(t=>typeof t=="string"))&&p(),[...e]}function P(e,t){let n=e[t];return n==null||typeof n=="string"?n:p()}function Rt(e,t){let n=e[t];return n==null||typeof n=="boolean"?n:p()}function D(e){let t=m(e),n=t.email;return n!==null&&typeof n!="string"&&p(),{id:k(t.id),email:n,emailVerified:T(t.emailVerified),createdAt:S(t.createdAt),updatedAt:S(t.updatedAt),...z("phoneNumber",P(t,"phoneNumber")),...z("username",P(t,"username")),...z("displayUsername",P(t,"displayUsername")),...z("firstName",P(t,"firstName")),...z("lastName",P(t,"lastName")),...z("name",P(t,"name")),...z("image",P(t,"image")),...z("twoFactorEnabled",Rt(t,"twoFactorEnabled"))}}function pe(e){let t=m(e),n=t.membership;return {id:k(t.id),userId:k(t.userId),expiresAt:S(t.expiresAt),...z("activeOrganizationId",P(t,"activeOrganizationId")),...z("activeTeamId",P(t,"activeTeamId")),...z("membership",n==null?n:ji(n)),...z("pendingMfaEnrollment",Rt(t,"pendingMfaEnrollment"))}}function p(){throw new TypeError("AuthOwl response does not match its runtime contract.")}function M(e,t=20,n=1e4){return (!e||typeof e!="object"||Array.isArray(e))&&p(),Ce(e,t,n)}function Ce(e,t=20,n=1e4){return Ee(e,0,{nodes:0},t,n)}function ji(e){let t=m(e);return {role:k(t.role),...t.roles===void 0?{}:{roles:j(t.roles)},permissions:j(t.permissions),...t.teams===void 0?{}:{teams:j(t.teams)}}}function Ee(e,t,n,i,o){if(n.nodes+=1,(t>i||n.nodes>o)&&p(),e===null||typeof e=="string"||typeof e=="boolean")return e;if(typeof e=="number")return Number.isFinite(e)||p(),e;if(Array.isArray(e))return e.map(l=>Ee(l,t+1,n,i,o));(!e||typeof e!="object")&&p();let s=Object.getPrototypeOf(e);s!==Object.prototype&&s!==null&&p();let c={};for(let[l,d]of Object.entries(e))Bi.has(l)&&p(),c[l]=Ee(d,t+1,n,i,o);return c}function z(e,t){return t===void 0?{}:{[e]:t}}function St({http:e,probe:t,tokens:n,channelName:i}){let o=new Set,s=null,c=null,l=null,d=null,y=null,r=null,a,f=h=>{g(h);};a={data:null,isPending:true,isRefetching:false,error:null,refetch:f};function b(h){a=h;for(let O of o)O();}async function u(h){return e.request("/get-session",{query:h?.query,decode:ze})}function g(h){if(h?.query?.disableCookieCache===true)return w(h);if(d)return d;if(y)return y;let O=w(h).finally(()=>{y===O&&(y=null);});return y=O,O}function A(){if(d)return d;let h=w({query:{disableCookieCache:true}}).finally(()=>{d===h&&(d=null);});return d=h,h}async function w(h){l?.abort();let O=new AbortController;l=O,b({...a,isPending:a.data===null&&a.error===null,isRefetching:a.data!==null});let _=n.beginRead(),ce=await e.request("/get-session",{query:h?.query,fetchOptions:{signal:O.signal},decode:ze});if(l===O&&(l=null,b({data:ce.data,error:ce.error,isPending:false,isRefetching:false,refetch:f}),ce.error===null)){if(ce.data===null){_.endIfDead();return}await I(_);}}async function I(h){if(n.needsProbe()){if(!h.carriedToken){h.recordCookieVerdict(true);return}return r||q(h)}}function q(h){let O=t.request("/get-session",{query:{disableCookieCache:true},decode:ze}).then(_=>{r===O&&_.error===null&&h.recordCookieVerdict(_.data!==null);}).finally(()=>{r===O&&(r=null);});return r=O,O}function V(){s?.postMessage({type:"session-changed"});}function K(){if(typeof window>"u"||c)return;let h=()=>{g();},O=()=>{document.visibilityState==="visible"&&g();};window.addEventListener("focus",h),document.addEventListener("visibilitychange",O),typeof BroadcastChannel<"u"&&(s=new BroadcastChannel(i),s.addEventListener("message",h)),c=()=>{window.removeEventListener("focus",h),document.removeEventListener("visibilitychange",O),s?.close(),s=null,c=null;};}function J(h){return o.add(h),o.size===1&&(K(),g()),()=>{if(o.delete(h),o.size===0){let O=l;l=null,y=null,d=null,O?.abort(),c?.();}}}return n.measureWith(()=>{n.needsProbe()&&q(n.beginRead());}),{store:{subscribe:J,getSnapshot:()=>a,refresh:A},getSession:u,notifyMutation(){V(),r&&r.catch(()=>{}).then(()=>{!n.needsProbe()&&n.hasToken()&&V();}),o.size>0&&g({query:{disableCookieCache:true}});}}}function ze(e){if(e===null)return null;let t=m(e);return (t.session===void 0||t.user===void 0)&&p(),{session:pe(t.session),user:D(t.user)}}De();function Tt(){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 It(e,t){return e.request("/user/metadata",{fetchOptions:t,decode:vt})}async function Pt(e,t,n){return e.request("/user/metadata",{method:"PATCH",body:{expected_version:t.expectedVersion,unsafe_metadata:t.unsafeMetadata},fetchOptions:n,decode:vt})}function vt(e){let t=m(e),n=M(t.public_metadata),i=M(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 Et(e,t){let{post:n,mutation:i}=Y(e,t);return {getMetadata:o=>It(e,o),updateUnsafeMetadata:(o,s)=>Pt(e,o,s),updateProfile:(o,s)=>i(n("/update-user",o,s,ie)),changeEmail:(o,s)=>i(n("/change-email",o,s,ie)),changePassword:(o,s)=>i(n("/change-password",o,s,Ji)),listSessions:o=>e.request("/list-sessions",{fetchOptions:o,decode:$i}),revokeSession:({sessionId:o},s)=>i(n("/revoke-session",{sessionId:o},s,ie)),revokeOtherSessions:o=>i(n("/revoke-other-sessions",{},o,ie)),listSocialAccounts:async o=>{let s=await e.request("/list-accounts",{fetchOptions:o,decode:Gi});if(!s.data)return {data:null,error:s.error};let c=s.data.length>1;return {...s,data:s.data.filter(l=>l.providerId!=="credential").map(l=>({...l,canUnlink:c}))}},linkSocial:(o,s)=>n("/link-social",o,s,Wi),unlinkSocial:(o,s)=>i(n("/unlink-account",o,s,ie)),delete:(o={},s)=>i(n("/delete-user",o,s,Yi))}}function ie(e){let t=m(e);return {status:T(t.status)}}function Ji(e){let t=m(e);return {user:D(t.user)}}function $i(e){return Array.isArray(e)||p(),e.map(t=>{let n=m(t);return {id:k(n.id),userId:k(n.userId),createdAt:S(n.createdAt),updatedAt:S(n.updatedAt),expiresAt:S(n.expiresAt),...xt("ipAddress",P(n,"ipAddress")),...xt("userAgent",P(n,"userAgent"))}})}function Gi(e){return Array.isArray(e)||p(),e.map(t=>{let n=m(t);return {id:k(n.id),userId:k(n.userId),providerId:k(n.providerId),accountId:k(n.accountId),scopes:j(n.scopes),createdAt:S(n.createdAt),updatedAt:S(n.updatedAt)}})}function Wi(e){let t=m(e);return {url:k(t.url),redirect:T(t.redirect)}}function Yi(e){let t=m(e);return {success:T(t.success),message:k(t.message)}}function xt(e,t){return t===void 0?{}:{[e]:t}}function Ue(e,t){return !e||!t?false:e.permissions.includes(t)}function Xi(e,t){return !e||!t?false:e.teams?.includes(t)??false}function Qi(e,t){return e?e.roles===void 0?e.role===t:e.roles.includes(t):false}function _e(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&&!Qi(e,n)||i!==void 0&&!e.permissions.includes(i)||o!==void 0&&!Xi(e,o))}function Zi(e){return {has:t=>_e(e,t),hasPermission:t=>Ue(e,t.permission)}}var eo=new Set(["pending","accepted","rejected","canceled"]),Ne=1e4;function Ct(e){let t=m(e);return t.recipientHint!==null&&t.recipientHint!=="new_user"&&p(),{recipientHint:t.recipientHint}}function X(e,t,n){let i=m(e),o={id:R(i.id),name:R(i.name),slug:R(i.slug),createdAt:S(i.createdAt),...oe("logo",P(i,"logo")),...oe("metadata",i.metadata===void 0?void 0:Ce(i.metadata))};return N(o.id,t),N(o.slug,n),o}function zt(e){return L(e,X)}function Me(e,t,n){return e===null?null:(t===null&&p(),X(e,t,n))}function Dt(e,t,n){if(e===null)return null;let i=m(e),o=X(i,t,n);return {...o,members:L(i.members,s=>jt(s,o.id)),invitations:L(i.invitations,s=>F(s,void 0,o.id))}}function Le(e,t,n=false){let i=L(e,o=>re(o));return n||ae(i.map(o=>o.organizationId),t),i}function Ut(e,t){let n=L(e,i=>Fe(i));return ae(n.map(i=>i.teamId),t),n}function Fe(e,t,n){let i=m(e),o={id:R(i.id),teamId:R(i.teamId),userId:R(i.userId),createdAt:S(i.createdAt)};return N(o.teamId,t),N(o.userId,n),o}function _t(e,t,n){return e===null?null:(t===null&&p(),re(e,t,n))}function Nt(e,t){let n=m(e);return (!Number.isSafeInteger(n.total)||n.total<0)&&p(),{members:to(n.members,t),total:n.total}}function F(e,t,n){let i=m(e),o=R(i.status);eo.has(o)||p();let s={id:R(i.id),organizationId:R(i.organizationId),email:se(i.email),role:R(i.role),status:o,inviterId:R(i.inviterId),expiresAt:S(i.expiresAt),createdAt:S(i.createdAt)};return N(s.id,t),N(s.organizationId,n),s}function Mt(e,t){let n=L(e,i=>F(i));return ae(n.map(i=>i.organizationId),t),n}function Lt(e){return L(e,t=>{let n=m(t);return {...F(n),organizationName:se(n.organizationName)}})}function Ft(e,t){let n=m(e);return {...F(n,t),organizationName:R(n.organizationName),organizationSlug:R(n.organizationSlug),inviterEmail:Jt(n.inviterEmail)}}function Ht(e,t){let n=m(e),i=F(n.invitation,t);return {invitation:i,member:Q(n.member,void 0,i.organizationId)}}function qt(e,t){let n=m(e);return n.member!==null&&p(),{invitation:n.invitation===null?null:F(n.invitation,t),member:null}}function Vt(e,t){return e===null?null:F(e,t)}function Kt(e,t,n){let i=m(e);return {member:Q(i.member,n,t)}}function Q(e,t,n){let i=m(e),o={id:R(i.id),organizationId:R(i.organizationId),userId:R(i.userId),role:R(i.role),createdAt:S(i.createdAt),...i.user===void 0?{}:{user:$t(i.user)}};return N(o.id,t),N(o.organizationId,n),o}function Bt(e,t){let n=L(e,i=>{let o=m(i);return {organizationId:R(o.organizationId),data:{role:R(o.role),...oe("permission",o.permission===void 0?void 0:no(o.permission)),...oe("customPermissionKeys",o.customPermissionKeys===void 0?void 0:j(o.customPermissionKeys))}}});return ae(n.map(i=>i.organizationId),t),n.map(i=>i.data)}function re(e,t,n){let i=m(e),o=i.updatedAt,s={id:R(i.id),name:se(i.name),organizationId:R(i.organizationId),createdAt:S(i.createdAt),...o===void 0?{}:{updatedAt:S(o)}};return N(s.id,t),N(s.organizationId,n),s}function He(e){let t=m(e);return {message:se(t.message)}}function jt(e,t){let n=m(e);return {...Q(n,void 0,t),user:$t(n.user)}}function to(e,t){let n=L(e,i=>jt(i));return ae(n.map(i=>i.organizationId),t),n}function no(e){let t=m(e),n={};for(let[i,o]of Object.entries(t))(i==="__proto__"||i==="constructor"||i==="prototype"||i.length===0||i.length>Ne||!Array.isArray(o))&&p(),n[i]=o.map(s=>R(s));return n}function R(e){let t=k(e);return (t.length===0||t.length>Ne)&&p(),t}function se(e){if(e==null)return "";let t=k(e);return t.length>Ne&&p(),t}function Jt(e){return e===null?null:R(e)}function N(e,t){t!==void 0&&e!==t&&p();}function ae(e,t){let n=t??e[0];n!==void 0&&e.some(i=>i!==n)&&p();}function $t(e){let t=m(e);return {id:R(t.id),name:se(t.name),email:Jt(t.email),...oe("image",P(t,"image"))}}function L(e,t){return Array.isArray(e)||p(),e.map(n=>t(n))}function oe(e,t){return t===void 0?{}:{[e]:t}}function Gt(e,t,n=()=>null){let{post:i,mutation:o}=Y(e,t),s=new Set,c=()=>{for(let r of s)try{r();}catch{}},l=new Map,d=(r,a,f,b)=>{if(f)return e.request(r,{query:a,fetchOptions:f,decode:b});let u=`${r}\0${JSON.stringify(a??null)}`,g=l.get(u);if(g)return g;let A=e.request(r,{query:a,decode:b}).finally(()=>{l.delete(u);});return l.set(u,A),A},y=async r=>{let a=await o(r).finally(()=>l.clear());return a.error===null&&c(),a};return {subscribe(r){return s.add(r),()=>s.delete(r)},create:(r,a)=>y(i("/organization/create",r,a,X)),list:r=>d("/organization/list",void 0,r,zt),get:(r={},a)=>d("/organization/get-full-organization",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,membersLimit:r.membersLimit},a,f=>Dt(f,r.organizationId,r.organizationSlug)),setActive:(r,a)=>y(i("/organization/set-active",r,a,f=>Me(f,r.organizationId,r.organizationSlug))),createTeam:(r,a)=>y(i("/organization/create-team",r,a,f=>re(f,void 0,r.organizationId))),listTeams:(r={},a)=>d("/organization/list-teams",{organizationId:r.organizationId},a,f=>Le(f,r.organizationId)),updateTeam:(r,a)=>y(i("/organization/update-team",r,a,f=>re(f,r.teamId,r.data.organizationId))),removeTeam:(r,a)=>y(i("/organization/remove-team",r,a,He)),listUserTeams:r=>d("/organization/list-user-teams",void 0,r,a=>Le(a,void 0,true)),listTeamMembers:(r={},a)=>d("/organization/list-team-members",{teamId:r.teamId},a,f=>Ut(f,r.teamId)),addTeamMember:(r,a)=>y(i("/organization/add-team-member",r,a,f=>Fe(f,r.teamId,r.userId))),removeTeamMember:(r,a)=>y(i("/organization/remove-team-member",r,a,He)),setActiveTeam:(r,a)=>y(i("/organization/set-active-team",r,a,f=>_t(f,r.teamId))),update:(r,a)=>y(i("/organization/update",r,a,f=>Me(f,r.organizationId))),delete:(r,a)=>y(i("/organization/delete",r,a,f=>X(f,r.organizationId))),listMembers:(r={},a)=>d("/organization/list-members",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,limit:r.limit,offset:r.offset,sortBy:r.sortBy,sortDirection:r.sortDirection,filterField:r.filterField,filterValue:r.filterValue,filterOperator:r.filterOperator},a,f=>Nt(f,r.organizationId)),inviteMember:(r,a)=>y(i("/organization/invite-member",r,a,f=>F(f,void 0,r.organizationId))),listInvitations:(r={},a)=>d("/organization/list-invitations",{organizationId:r.organizationId},a,f=>Mt(f,r.organizationId)),listUserInvitations:r=>d("/organization/list-user-invitations",void 0,r,Lt),getInvitation:(r,a)=>d("/organization/get-invitation",{id:r.id},a,f=>Ft(f,r.id)),getInvitationRecipientHint:(r,a)=>d("/organization/invitation-recipient-hint",{invitationId:r.invitationId},a,Ct),acceptInvitation:(r,a)=>y(i("/organization/accept-invitation",r,a,f=>Ht(f,r.invitationId))),rejectInvitation:(r,a)=>y(i("/organization/reject-invitation",r,a,f=>qt(f,r.invitationId))),cancelInvitation:(r,a)=>y(i("/organization/cancel-invitation",r,a,f=>Vt(f,r.invitationId))),removeMember:(r,a)=>y(i("/organization/remove-member",r,a,f=>Kt(f,r.organizationId,r.memberIdOrEmail.includes("@")?void 0:r.memberIdOrEmail))),updateMemberRole:(r,a)=>y(i("/organization/update-member-role",r,a,f=>Q(f,r.memberId,r.organizationId))),leave:(r,a)=>y(i("/organization/leave",r,a,f=>Q(f,void 0,r.organizationId))),listRoles:(r={},a)=>d("/organization/list-roles",{organizationId:r.organizationId},a,f=>Bt(f,r.organizationId)),has:r=>_e(n(),r),hasPermission:r=>Ue(n(),r.permission)}}var Wt=4096,io=4096,oo=100,ro=256,so=16,ao=64,uo=12;function Ve(e){let t=m(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:gn(t.twoFactorMethods,so,ao)}}):(t.twoFactorRedirect!==void 0&&p(),{redirect:T(t.redirect),...go(t,"url"),user:D(t.user)})}function Yt(e){let t=m(e);return {user:D(t.user)}}function Xt(e){let t=m(e);return {sessionCreated:T(t.sessionCreated),user:D(t.user)}}function Qt(e,t){let n=m(e),i=T(n.redirect);n.user===null&&p();let o=n.user!==void 0&&n.user!==null,s=n.url!==void 0&&n.url!==null;return i?((o||!s)&&p(),{redirect:true,url:qe(n.url,t)}):(o===s&&p(),o?{redirect:false,user:D(n.user)}:{redirect:false,url:qe(n.url,t)})}function Zt(e,t){let n=m(e);return (n.redirect!==true||n.user!==void 0)&&p(),{redirect:true,url:qe(n.url,t)}}function en(e){return {status:T(m(e).status)}}function tn(e){return {success:T(m(e).success)}}function nn(e){return m(e).status!=="pending"&&p(),{status:"pending"}}function on(e){let t=m(e);if(t.kind==="authowl_turnstile")return {kind:"authowl_turnstile"};t.kind!=="akedly_shield_v1_2"&&p();let n=m(t.turnstile),i=n.siteKey===null?null:k(n.siteKey);return {kind:"akedly_shield_v1_2",connectionId:k(t.connectionId),challenge:k(t.challenge),difficulty:co(t.difficulty),challengeToken:k(t.challengeToken),challengeRequired:T(t.challengeRequired),turnstile:{required:T(n.required),siteKey:i}}}function co(e){return (!Number.isSafeInteger(e)||Number(e)<0||Number(e)>uo)&&p(),Number(e)}function rn(e){let t=m(e);return (t.status!==true||t.sessionCreated!==true)&&p(),{status:true,sessionCreated:true,user:lo(t.user)}}function Ke(e){return {status:T(m(e).status)}}function sn(e){return {status:T(m(e).status)}}function an(e){let t=m(e);return {status:T(t.status),user:D(t.user)}}function un(e){return {success:T(m(e).success)}}function cn(e){let t=m(e);return {totpURI:fo(t.totpURI),backupCodes:fn(t.backupCodes)}}function dn(e){return {status:T(m(e).status)}}function fe(e){return m(e).status!==true&&p(),{status:true}}function ln(e){return {status:T(m(e).status)}}function pn(e){let t=m(e);return t.status!==void 0&&t.status!==true&&p(),{backupCodes:fn(t.backupCodes)}}function lo(e){let t=m(e);return {id:Z(t.id,512),...mo(t,"name",1024),phoneNumber:Z(t.phoneNumber,64),phoneNumberVerified:T(t.phoneNumberVerified),...t.createdAt===void 0?{}:{createdAt:S(t.createdAt)},...t.updatedAt===void 0?{}:{updatedAt:S(t.updatedAt)}}}function qe(e,t){let n=Z(e,Wt);/[\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:"&&po(i.hostname)?i.href:p()}function po(e){let t=e.toLowerCase();return t==="localhost"||t==="127.0.0.1"||t==="[::1]"}function fo(e){let t=Z(e,io),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 fn(e){return gn(e,oo,ro)}function gn(e,t,n){(!Array.isArray(e)||e.length===0||e.length>t)&&p();let i=e.map(o=>Z(o,n));return i.some(o=>o.trim().length===0)&&p(),new Set(i).size!==i.length&&p(),i}function Z(e,t){let n=k(e);return (n.length===0||n.length>t)&&p(),n}function go(e,t){let n=e[t];return n==null?{}:{[t]:Z(n,Wt)}}function mo(e,t,n){let i=P(e,t);return i===void 0?{}:(i!==null&&i.length>n&&p(),{[t]:i})}var mn=new Set([1564,8206,8207,8234,8235,8236,8237,8238,8294,8295,8296,8297]),ge=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 me(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||yn(n,i)||hn(i)||mn.has(i))return {valid:false}}let t=ho(e);return Be(t)?{valid:true,value:t}:{valid:false}}function Be(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||yn(o,s)||hn(s)||mn.has(s))return false;n??=s,i=s;}return t>0&&n!==void 0&&i!==void 0&&!ge.has(n)&&!ge.has(i)}function he(){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 ho(e){let t=0,n=e.length;for(;t<n;){let i=e.codePointAt(t);if(i===void 0||!ge.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,c=e.codePointAt(s);if(c===void 0||!ge.has(c))break;n=s;}return e.slice(t,n)}function hn(e){return e>=0&&e<=31||e>=127&&e<=159}function yn(e,t){return e.length===1&&t>=55296&&t<=57343}var On=12,wn=5e3,yo=8,Ao=1e3,bo=16,An=512,kn=100,Rn=8192,Oo=32768,je=1024,bn=256,$e=64,wo=6e5,ko=/^[A-Za-z0-9_-]+$/u,Ro=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u,So=/[\u0000-\u001f\u007f-\u009f\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/u,To=/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$/u,Io=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/iu,Sn=new Set(["discouraged","preferred","required"]),Po=new Set(["singleDevice","multiDevice"]),Tn=new Set(["ble","cable","hybrid","internal","nfc","smart-card","usb"]),In=new Set(["hybrid","security-key","client-device"]),vo=new Set(["none","indirect","direct","enterprise"]),xo=new Set(["fido-u2f","packed","android-safetynet","android-key","tpm","apple","none"]),Eo=new Set(["platform","cross-platform"]),Co=new Set(["discouraged","preferred","required"]),zo=new Set([-8,-7,-257]);function Pn(e){let t=M(e,On,wn);return {challenge:Mn(t.challenge),...v("timeout",_n(t.timeout)),...v("rpId",Ln(t.rpId)),...v("allowCredentials",Un(t.allowCredentials)),...v("userVerification",ue(t.userVerification,Sn)),...v("hints",ye(t.hints,In)),...v("extensions",Nn(t.extensions))}}function vn(e){let t=M(e,On,wn);return {challenge:Mn(t.challenge),rp:Do(t.rp),user:Uo(t.user),pubKeyCredParams:_o(t.pubKeyCredParams),...v("timeout",_n(t.timeout)),...v("excludeCredentials",Un(t.excludeCredentials)),...v("authenticatorSelection",No(t.authenticatorSelection)),...v("attestation",ue(t.attestation,vo)),...v("attestationFormats",ye(t.attestationFormats,xo)),...v("hints",ye(t.hints,In)),...v("extensions",Nn(t.extensions))}}function xn(e){let t=m(e),n=pe(t.session),i=D(t.user);return n.userId!==i.id&&p(),{session:n,user:i}}function Ge(e){let t=m(e),n=t.counter;(!Number.isSafeInteger(n)||n<0)&&p();let i=We(t.deviceType,Po),o=T(t.backedUp);return o&&i!=="multiDevice"&&p(),{id:ee(t.id,bn),...Fo(t),publicKey:Mo(t.publicKey,Oo),userId:ee(t.userId,bn),credentialID:be(t.credentialID,Rn),counter:n,deviceType:i,backedUp:o,...Ho(t),createdAt:S(t.createdAt),...qo(t)}}function En(e,t,n){let i=Ge(e);return (i.credentialID!==t||(n===void 0?i.name!==void 0&&i.name!==null:i.name!==n))&&p(),i}function Cn(e){(!Array.isArray(e)||e.length>kn)&&p();let t=e.map(Ge);return Ae(t.map(n=>n.id)),Ae(t.map(n=>n.credentialID)),t.length>1&&t.some(n=>n.userId!==t[0]?.userId)&&p(),t}function zn(e,t,n){let i=m(e),o=Ge(i.passkey);return (o.id!==t||o.name!==n)&&p(),{passkey:o}}function Dn(e){return m(e).status!==true&&p(),{status:true}}function Do(e){let t=m(e);return {name:Je(t.name,je),...v("id",Ln(t.id))}}function Uo(e){let t=m(e);return {id:be(t.id,128,1,64),name:Je(t.name,je),displayName:Je(t.displayName,je)}}function _o(e){(!Array.isArray(e)||e.length===0||e.length>$e)&&p();let t=e.map(n=>{let i=m(n);return (i.type!=="public-key"||!Number.isSafeInteger(i.alg)||!zo.has(i.alg))&&p(),{type:"public-key",alg:i.alg}});return Vo(t.map(n=>n.alg)),t}function Un(e){if(e===void 0)return;(!Array.isArray(e)||e.length>kn)&&p();let t=e.map(n=>{let i=m(n);return i.type!=="public-key"&&p(),{type:"public-key",id:be(i.id,Rn),...v("transports",ye(i.transports,Tn))}});return Ae(t.map(n=>n.id)),t}function No(e){if(e===void 0)return;let t=m(e);t.requireResidentKey!==void 0&&typeof t.requireResidentKey!="boolean"&&p();let n=ue(t.residentKey,Co);return t.requireResidentKey!==void 0&&n!==void 0&&t.requireResidentKey!==(n==="required")&&p(),{...v("authenticatorAttachment",ue(t.authenticatorAttachment,Eo)),...v("residentKey",n),...v("requireResidentKey",t.requireResidentKey),...v("userVerification",ue(t.userVerification,Sn))}}function _n(e){return e!==void 0&&(typeof e!="number"||!Number.isFinite(e)||e<0||e>wo)&&p(),e}function Nn(e){return e===void 0?void 0:M(e,yo,Ao)}function ye(e,t){if(e===void 0)return;(!Array.isArray(e)||e.length>$e)&&p();let n=e.map(i=>We(i,t));return Ae(n),n}function ue(e,t){if(e!==void 0)return We(e,t)}function Mn(e){return be(e,Math.ceil(An*4/3),bo,An)}function be(e,t,n=1,i=Number.POSITIVE_INFINITY){let o=ee(e,t),s=o.length%4,c=Lo(o.at(-1)??""),l=Math.floor(o.length*3/4);return (!ko.test(o)||s===1||s===2&&(c&15)!==0||s===3&&(c&3)!==0||l<n||l>i)&&p(),o}function ee(e,t){let n=k(e);return (n.length===0||n.length>t)&&p(),n}function Je(e,t){let n=ee(e,t);return So.test(n)&&p(),n}function Ln(e){if(e===void 0)return;let t=ee(e,253);return t!=="localhost"&&(t.endsWith(".")||!t.includes(".")||t.split(".").some(n=>!To.test(n)))&&p(),t}function Mo(e,t){let n=ee(e,t),i=n.endsWith("=="),o=!i&&n.endsWith("="),s=n.at(i?-3:o?-2:-1)??"",c=Fn(s);return (n.length%4!==0||!Ro.test(n)||i&&(c&15)!==0||o&&(c&3)!==0)&&p(),n}function Lo(e){return Fn(e,true)}function Fn(e,t=false){return (t?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").indexOf(e)}function Fo(e){let t=P(e,"name");return t===void 0?{}:(t!==null&&!Be(t)&&p(),{name:t})}function Ho(e){let t=P(e,"transports");if(t==null||t==="")return t===void 0?{}:{transports:t};let n=t.split(",");return (n.length>$e||n.some(i=>!Tn.has(i))||new Set(n).size!==n.length)&&p(),{transports:t}}function qo(e){let t=P(e,"aaguid");return t==null?t===void 0?{}:{aaguid:null}:(Io.test(t)||p(),{aaguid:t})}function We(e,t){let n=k(e);return t.has(n)||p(),n}function v(e,t){return t===void 0?{}:{[e]:t}}function Ae(e){new Set(e).size!==e.length&&p();}function Vo(e){new Set(e).size!==e.length&&p();}function Xo(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 jn=new Map;function Qo(e,t,n){let i=jn.get(n);if(!i){let o=new URLSearchParams(window.location.hash.slice(1)).get("authowl_code");if(!o)return;i=Promise.resolve().then(()=>(we(),Oe)).then(s=>s.completeCrossSiteSignIn(e,t,o)),jn.set(n,i);}return i}function Jn(e){return !ne()||e.idToken||e.disableRedirect?"legacy":"first-party"}function Zo(e,t=()=>{},n=nr){let i=xe(e),o=e.session.tokens,s=ne()?Qo(i,o,e.decoded.projectId):void 0,c=Xo(i,s),l=St({http:c,probe:xe({...e,fetch:e.session.probe}),tokens:o,channelName:`authowl:${e.decoded.projectId}`}),d=n(c,l.notifyMutation),y=()=>{l.notifyMutation(),t();},{post:r,mutation:a}=Y(c,y),f=e.decoded.env==="test",b=u=>{o.beginSession({remember:u?.rememberMe!==false});};return {sessionStore:l.store,getSession:l.getSession,account:Et(c,y),organization:Gt(c,y,()=>l.store.getSnapshot().data?.session.membership??null),signIn:{email:(u,g)=>(b(u),a(r("/sign-in/email",u,g,Ve),A=>!("twoFactorRedirect"in A))),username:(u,g)=>(b(u),a(r("/sign-in/username",u,g,Ve),A=>!("twoFactorRedirect"in A))),social:async(u,g)=>{if(b(),Jn(u)==="first-party"){let{beginCrossSiteSignIn:w}=await Promise.resolve().then(()=>(we(),Oe)),I=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(I)return window.location.assign(I),{data:{redirect:true,url:I},error:null}}let A=await a(r("/sign-in/social",u,g,w=>Qt(w,f)),w=>"user"in w);return A.error!==null||A.data===null||"url"in A.data&&A.data.redirect&&!u.disableRedirect&&typeof window<"u"&&window.location.assign(A.data.url),A},sso:async(u,g)=>{if(Jn(u)==="first-party"){let{beginCrossSiteSignIn:w}=await Promise.resolve().then(()=>(we(),Oe)),I=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(I)return window.location.assign(I),{data:{url:I,redirect:true},error:null}}let A=await r("/sign-in/sso",u,g,w=>Zt(w,f));return A.error!==null||A.data===null||typeof window<"u"&&window.location.assign(A.data.url),A},magicLink:(u,g)=>r("/sign-in/magic-link",u,g,en),emailOtp:(u,g)=>(b(),a(r("/sign-in/email-otp",u,g,Yt))),passkey:(u,g)=>(b(),d.signIn(u,g))},signUp:{email:(u,g)=>(b(),a(r("/sign-up/email",u,g,Xt),A=>A.sessionCreated))},emailOtp:{sendVerificationOtp:(u,g)=>r("/email-otp/send-verification-otp",u,g,tn),verifyEmail:(u,g)=>(b(),a(r("/email-otp/verify-email",u,g,an)))},phoneOtp:{prepare:u=>r("/phone-otp/challenge",{},u,on),start:(u,g)=>r("/phone-otp/start",{...u,idempotencyKey:u.idempotencyKey??Tt()},g,nn),verify:(u,g)=>(b(),a(r("/phone-otp/verify",u,g,rn)))},requestPasswordReset:(u,g)=>r("/request-password-reset",u,g,Ke),resetPassword:(u,g)=>r("/reset-password",u,g,Ke),sendVerificationEmail:(u,g)=>r("/send-verification-email",u,g,sn),passkey:{addPasskey:(u,g)=>d.add(u,g),listUserPasskeys:()=>c.request("/passkey/list-user-passkeys",{decode:Cn}),updatePasskey:async(u,g)=>{let A=me(u.name);if(!A.valid||A.value===void 0)return he();let w=A.value;return r("/passkey/update-passkey",{...u,name:w},g,I=>zn(I,u.id,w))},deletePasskey:(u,g)=>r("/passkey/delete-passkey",u,g,Dn)},twoFactor:{enable:(u,g)=>r("/two-factor/enable",u,g,cn),disable:(u,g)=>a(r("/two-factor/disable",u,g,dn),A=>A.status),verifyTotp:(u,g)=>a(r("/two-factor/verify-totp",u,g,fe)),verifyBackupCode:(u,g)=>a(r("/two-factor/verify-backup-code",u,g,fe)),sendOtp:(u={},g)=>r("/two-factor/send-otp",u,g,ln),verifyOtp:(u,g)=>a(r("/two-factor/verify-otp",u,g,fe)),generateBackupCodes:(u,g)=>r("/two-factor/generate-backup-codes",u,g,pn)},signOut:u=>a(c.request("/sign-out",{method:"POST",body:{},fetchOptions:u,decode:un}).then(g=>(o.endSession(),g)),g=>g.success)}}function Qe(e,t=()=>{},n){let i=Zo(e,t,n);return n?{...i,signIn:{email:i.signIn.email,username:i.signIn.username,social:$n(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:$n(i),magicLink:i.signIn.magicLink,emailOtp:i.signIn.emailOtp},passkey:{listUserPasskeys:i.passkey.listUserPasskeys,updatePasskey:i.passkey.updatePasskey,deletePasskey:i.passkey.deletePasskey}}}function $n(e){return async(t,n)=>{if(!t?.idToken||typeof t.idToken.token!="string"||t.idToken.token==="")return er();let i=await e.signIn.social({...t,disableRedirect:true},n);return i.data!==null&&"url"in i.data?tr():i}}function er(){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 tr(){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 nr(){return {signIn:()=>Gn(),add:()=>Gn()}}function Gn(){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 ir(e,t,n){let i=new Map;return {async signIn(o={},s){let c=await e.request("/passkey/generate-authenticate-options");if(!c.data)return Xn(c.error);let l;try{l=Pn(c.data);}catch{return Wn()}let d;try{d=await n.authenticate({optionsJSON:l,useBrowserAutofill:o.autoFill});}catch(b){return Qn(n,b,"AUTH_CANCELLED","Passkey authentication was cancelled.")}if(!or(d))return Yn();let{clientExtensionResults:y,...r}=d,a=i.get(d.id);if(a)return a;let f=(async()=>{let b=await e.request("/passkey/verify-authentication",{method:"POST",body:{response:r},fetchOptions:s,decode:xn});return b.data&&t(),b})();i.set(d.id,f);try{return await f}finally{i.get(d.id)===f&&i.delete(d.id);}},async add(o={},s){let c=me(o.name);if(!c.valid)return he();let l=await e.request("/passkey/generate-register-options",{query:{name:c.value,authenticatorAttachment:o.authenticatorAttachment}});if(!l.data)return Xn(l.error);let d;try{d=vn(l.data);}catch{return Wn()}let y;try{y=await n.register({optionsJSON:d});}catch(b){return Qn(n,b,"REGISTRATION_CANCELLED","Passkey registration was cancelled.")}if(!rr(y))return Yn();let{clientExtensionResults:r,...a}=y,f=await e.request("/passkey/verify-registration",{method:"POST",body:{response:a,name:c.value},fetchOptions:s,decode:b=>En(b,y.id,c.value)});return f.data&&t(),f}}}function Wn(){return {data:null,error:{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned invalid WebAuthn options."}}}function Yn(){return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:"INVALID_WEBAUTHN_RESPONSE",message:"The platform returned an invalid passkey response."}}}function ei(e){if(!e||typeof e!="object")return false;let t=e;return typeof t.id=="string"&&t.id.length>0&&typeof t.rawId=="string"&&t.rawId.length>0&&t.type==="public-key"&&!!t.response&&typeof t.response=="object"}function or(e){if(!ei(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 rr(e){if(!ei(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.attestationObject=="string"}function Xn(e){return {data:null,error:e??{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned no WebAuthn options."}}}function Qn(e,t,n,i){let o=ar(t,"page does not have focus"),s=e.errorCode?.(t),c=s!==void 0?s==="ERROR_CEREMONY_ABORTED":Zn(t)==="AbortError",l=n!=="AUTH_CANCELLED",d=sr(s,Zn(t),l);return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:o?"PASSKEY_PAGE_NOT_FOCUSED":c?n:s??"PASSKEY_BROWSER_ERROR",message:o?"Keep this page focused while completing the passkey prompt.":c?i:d}}}function sr(e,t,n){switch(e){case "ERROR_INVALID_DOMAIN":case "ERROR_INVALID_RP_ID":return "Passkeys are not set up for this site\u2019s domain.";case "ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED":return "This device already has a passkey for this account.";case "ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEY_ALGS":case "ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT":case "ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT":return "This device cannot create a passkey for this site.";}return t==="NotAllowedError"?n?"No passkey was created. The prompt was dismissed or timed out.":"No passkey was used. This device may not have one saved for this site yet, or the prompt was dismissed.":t==="SecurityError"?"Passkeys are not set up for this site\u2019s domain.":n?"Passkey registration did not complete.":"Passkey sign-in did not complete."}function Zn(e){return e&&typeof e=="object"&&"name"in e&&typeof e.name=="string"?e.name:void 0}function ar(e,t){let n=t.toLowerCase(),i=new Set,o=e;for(;o&&typeof o=="object"&&!i.has(o);){if(i.add(o),"message"in o&&typeof o.message=="string"&&o.message.toLowerCase().includes(n))return true;o="cause"in o?o.cause:void 0;}return false}async function ur(e){let n=`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/public-config`;return Ot(await le(e,n,{init:{method:"GET",credentials:"omit"},maxResponseBytes:256*1024,decode:i=>cr(i,e)}),"public-config")}function cr(e,t){let n=M(e),i=n.environmentId,o=n.environmentType,s=`${new URL(t.apiUrl).origin}/api/projects/${t.decoded.projectId}/auth`;if(typeof n.applicationId!="string"||!dr(n.applicationId)||i!==t.decoded.projectId||o!=="development"&&o!=="production"||n.authBaseUrl!==s)throw U();let c=C(n.branding),l=C(n.legal);if(!Ze(n.enabledMethods,64)||!Ze(n.socialProviders,64)||!ni(c,["appName","logoUrl","primaryColor"])||c.showAppName!==void 0&&typeof c.showAppName!="boolean"||c.alignment!==void 0&&c.alignment!=="left"&&c.alignment!=="center"&&c.alignment!=="right"||c.theme!==void 0&&c.theme!=="light"&&c.theme!=="dark"&&c.theme!=="system"||!ni(l,["termsUrl","privacyUrl"])||!Number.isSafeInteger(l.version)||l.version<0||typeof l.required!="boolean")throw U();if(n.socialProviderClientIds!==void 0){let d=C(n.socialProviderClientIds);if(Object.keys(d).length>64||Object.values(d).some(y=>typeof y!="string"||y.length>2048))throw U()}if(!H(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 U();if(n.jwtIssuer!==null){let d=C(n.jwtIssuer);if(d.issuer!==s||d.jwksUrl!==`${s}/jwks`||d.aud!==t.decoded.projectId)throw U()}if(n.signUp!==void 0){let d=C(n.signUp).mode;if(typeof d!="string"||!["open","restricted","allowlist","waitlist"].includes(d))throw U()}if(n.authentication!==void 0&&lr(n.authentication),n.emailVerification!==void 0){let d=C(n.emailVerification);if(!H(d,["required"])||d.method!=="link"&&d.method!=="code")throw U()}if(n.userModel!==void 0&&!H(C(n.userModel),["requireEmail","firstLastName","emailChange","accountDeletion"]))throw U();if(n.mfa!==void 0){let d=C(n.mfa);if(!H(d,["totp","required","backupCodes"])||(d.required===true||d.backupCodes===true)&&d.totp!==true)throw U()}return n}function dr(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 U(){return new TypeError("public-config returned an invalid response")}function C(e){if(!e||typeof e!="object"||Array.isArray(e))throw U();return e}function ti(e){return e===null||typeof e=="string"&&e.length<=4096}function lr(e){let t=C(e),n=C(t.email),i=C(t.password),o=i.minLength!==void 0||i.maxLength!==void 0;if(!H(n,["signUp"])||!Ze(n.signIn,3)||n.signIn.some(s=>s!=="password"&&s!=="magic_link"&&s!=="email_otp")||!H(C(t.phone),["signUp","signIn"])||!H(i,["signUp","add"])||o&&(!Number.isSafeInteger(i.minLength)||!Number.isSafeInteger(i.maxLength)||i.minLength<1||i.maxLength>4096||i.minLength>i.maxLength)||!H(C(t.passkey),["signIn","add"])||!pr(C(t.passkey).relyingPartyId)||!H(C(t.username),["collectOnSignUp","signIn"]))throw U()}function pr(e){return e==null||typeof e=="string"}function H(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 Ze(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 fr(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(c=>c==="password"||c==="magic_link"||c==="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 gr(e,t){let n=`p_${e.toLowerCase().replace(/-/g,"")}`;return `${t?.secure?"__Secure-":""}${n}.session_token`}function Cs(e,t){return Qe(Se(e),t)}
|
|
2
|
+
exports.createMembershipHas=Zi;exports.createNativeAuthClient=Qe;exports.createNativeClient=Cs;exports.createPasskeyClient=ir;exports.decodePublishableKey=ke;exports.getPublicConfig=ur;exports.resolveConfig=Se;exports.resolveProjectCapabilities=fr;exports.sessionCookieName=gr;
|
package/dist/native.d.cts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { R as ResolvedAuthConfig, A as AuthConfig } from './organization-membership-B05mzhtA.cjs';
|
|
2
2
|
export { D as DecodedPublishableKey, H as HasParams, O as OrganizationMembership, c as createMembershipHas, d as decodePublishableKey, h as resolveConfig, s as sessionCookieName } from './organization-membership-B05mzhtA.cjs';
|
|
3
|
-
import { l as AuthOwlClient,
|
|
4
|
-
export { j as AuthClientError, q as AuthSession, r as AuthUser,
|
|
3
|
+
import { l as AuthOwlClient, aX as SocialIdTokenOptions, bt as createAuthHttpClient, bu as AuthHttpClient, at as PasskeySignInOptions, f as ActionFetchOptions, i as AuthActionResult, as as PasskeyAuthData, h as AddPasskeyOptions, n as AuthPasskey } from './client-C1rudBpQ.cjs';
|
|
4
|
+
export { j as AuthClientError, q as AuthSession, r as AuthUser, ab as Organization, ac as OrganizationClient, ad as OrganizationDetails, aA as ProjectCapabilities, aB as PublicConfig, aQ as SessionState, aR as SessionStore, aS as SetActiveOrganizationOptions, aW as SocialAuthData, bq as getPublicConfig, bs as resolveProjectCapabilities } from './client-C1rudBpQ.cjs';
|
|
5
5
|
import { startAuthentication, startRegistration } from '@simplewebauthn/browser';
|
|
6
6
|
|
|
7
7
|
type AuthActionClient = Omit<AuthOwlClient, 'getToken' | 'getConsentStatus' | 'acceptConsent' | 'waitlist'>;
|
package/dist/native.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { R as ResolvedAuthConfig, A as AuthConfig } from './organization-membership-B05mzhtA.js';
|
|
2
2
|
export { D as DecodedPublishableKey, H as HasParams, O as OrganizationMembership, c as createMembershipHas, d as decodePublishableKey, h as resolveConfig, s as sessionCookieName } from './organization-membership-B05mzhtA.js';
|
|
3
|
-
import { l as AuthOwlClient,
|
|
4
|
-
export { j as AuthClientError, q as AuthSession, r as AuthUser,
|
|
3
|
+
import { l as AuthOwlClient, aX as SocialIdTokenOptions, bt as createAuthHttpClient, bu as AuthHttpClient, at as PasskeySignInOptions, f as ActionFetchOptions, i as AuthActionResult, as as PasskeyAuthData, h as AddPasskeyOptions, n as AuthPasskey } from './client-BfXYqxAr.js';
|
|
4
|
+
export { j as AuthClientError, q as AuthSession, r as AuthUser, ab as Organization, ac as OrganizationClient, ad as OrganizationDetails, aA as ProjectCapabilities, aB as PublicConfig, aQ as SessionState, aR as SessionStore, aS as SetActiveOrganizationOptions, aW as SocialAuthData, bq as getPublicConfig, bs as resolveProjectCapabilities } from './client-BfXYqxAr.js';
|
|
5
5
|
import { startAuthentication, startRegistration } from '@simplewebauthn/browser';
|
|
6
6
|
|
|
7
7
|
type AuthActionClient = Omit<AuthOwlClient, 'getToken' | 'getConsentStatus' | 'acceptConsent' | 'waitlist'>;
|
package/dist/native.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import {i}from'./chunk-
|
|
1
|
+
import {i}from'./chunk-PYXM7X2H.js';export{i as createNativeAuthClient,j as createPasskeyClient,k as getPublicConfig,a as resolveProjectCapabilities}from'./chunk-PYXM7X2H.js';import {n}from'./chunk-V3MSLXXB.js';export{F as createMembershipHas,a as decodePublishableKey,n as resolveConfig,b as sessionCookieName}from'./chunk-V3MSLXXB.js';import'./chunk-T5SH3ZZP.js';function u(i$1,o){return i(n(i$1),o)}export{u as createNativeClient};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@authowl/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.18.1",
|
|
4
4
|
"description": "Framework-agnostic client for AuthOwl, the multi-tenant auth SaaS.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
"LICENSE"
|
|
74
74
|
],
|
|
75
75
|
"dependencies": {
|
|
76
|
-
"@akedly/shield": "1.0
|
|
76
|
+
"@akedly/shield": "1.1.0"
|
|
77
77
|
},
|
|
78
78
|
"devDependencies": {
|
|
79
79
|
"jsdom": "26.1.0",
|
package/dist/chunk-55HRM7WA.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import {p,o,i,z,s,q as q$1,y,r,w,B,E as E$1,x,t,A,v,u}from'./chunk-V3MSLXXB.js';import {a}from'./chunk-T5SH3ZZP.js';function Ui(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(l=>l==="password"||l==="magic_link"||l==="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 ue=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 Q(e,t,n={}){let i=new Headers(n.init?.headers);return i.set("x-publishable-key",e.publishableKey),p({fetchImpl:e.fetch,url:t,init:{...n.init,headers:i},allowHttpLoopback:e.decoded.env==="test",...n.timeoutMs===void 0?{}:{timeoutMs:n.timeoutMs},...n.maxResponseBytes===void 0?{}:{maxResponseBytes:n.maxResponseBytes},...n.decode===void 0?{}:{decode:n.decode}})}function _e(e,t){if(!e.response.ok)throw new ue(t,e.response,e.requestId);return e.data}var fn="x-authowl-turnstile-token",hn=1e4,An=32,On=2e4;function L(e,t){return {post:(n,i,o,a)=>e.request(n,{method:"POST",body:i,fetchOptions:o,decode:a}),mutation:async(n,i)=>{let o=await n;return o.error===null&&(i===void 0||o.data!==null&&i(o.data))&&t(),o}}}function pe(e,t=e.projectBaseURL){return {async request(n,i$1={}){let o$1=wn(t,n,i$1.query),a=i$1.method??(i$1.body===void 0?"GET":"POST"),l=new Headers(i$1.fetchOptions?.headers);i$1.fetchOptions?.authChallengeToken&&l.set(fn,i$1.fetchOptions.authChallengeToken),i$1.body!==void 0&&l.set("content-type","application/json");let f={method:a,headers:l,credentials:i$1.credentials??"include",...i$1.body===void 0?{}:{body:JSON.stringify(i$1.body)}},p=Object.freeze({method:a,path:n});await i$1.fetchOptions?.onRequest?.(p);let A=bn(a,i$1.fetchOptions),r;try{r=await yn(e,o$1,{...f,signal:i$1.fetchOptions?.signal},A);}catch(h){let R=Fe(h);return await i$1.fetchOptions?.onError?.(ce(p,R,Sn(h))),{data:null,error:R}}let{response:u,requestId:g}=r,y=Pn(n,r.data),s=y;if(u.ok)try{s=le(y),i$1.decode&&(s=i$1.decode(s));}catch{let h=Fe(new o("invalid_response",g));return await i$1.fetchOptions?.onError?.(ce(p,h,"invalid_response")),{data:null,error:h}}let d=Object.freeze({...p,status:u.status,...g===void 0?{}:{requestId:g}});if(await i$1.fetchOptions?.onResponse?.(d),!u.ok){let h=kn(u,y,g);return h.code===i&&e.session.tokens.dropChallenge(),await i$1.fetchOptions?.onError?.(ce(p,h,"api")),{data:null,error:h}}return await i$1.fetchOptions?.onSuccess?.(d),{data:s,error:null}}}}async function yn(e,t,n,i){let o$1=Date.now()+hn;for(let a=0;a<i;a+=1){let l=o$1-Date.now();if(l<=0)throw new o("timeout");try{let f=await Q(e,t,{init:n,timeoutMs:Math.max(1,Math.ceil(l))});if(f.response.status<500||a===i-1)return f}catch(f){if(a===i-1||!(f instanceof o)||f.kind!=="network")throw f}await In(50*2**a,n.signal,o$1);}throw new o("network")}function bn(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 wn(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 kn(e,t,n){let i=K(t)?t:{},o=Rn(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 Rn(e,t){let n=(typeof e.retryAfterSeconds=="number"&&Number.isFinite(e.retryAfterSeconds)?e.retryAfterSeconds:void 0)??Le(t.get("retry-after"))??Le(t.get("x-retry-after"));if(n!==void 0)return Math.min(Math.max(Math.trunc(n),1),86400)}function Le(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 Fe(e){let t=e instanceof o?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 o&&e.requestId?{requestId:e.requestId}:{}}}function ce(e,t,n){return Object.freeze({...e,status:t.status??0,...t.requestId===void 0?{}:{requestId:t.requestId},failure:n})}function Sn(e){return e instanceof o?e.kind:"network"}function In(e,t,n){return new Promise((i,o$1)=>{if(t?.aborted){o$1(new o("aborted"));return}let a=n-Date.now();if(a<=0){o$1(new o("timeout"));return}let l=Math.min(e,a),f=()=>{clearTimeout(p),o$1(new o("aborted"));},p=setTimeout(()=>{t?.removeEventListener("abort",f),Date.now()>=n?o$1(new o("timeout")):i();},l);t?.addEventListener("abort",f,{once:true}),t?.aborted&&f();})}function le(e,t="",n=0,i={nodes:0}){if(i.nodes+=1,n>An||i.nodes>On)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=>le(o,"",n+1,i)):K(e)?Object.fromEntries(Object.entries(e).map(([o,a])=>[o,Tn(o)?a:le(a,o,n+1,i)])):e}function Tn(e){return e==="metadata"||e==="public_metadata"||e==="unsafe_metadata"||e==="private_metadata"||e==="publicMetadata"||e==="unsafeMetadata"||e==="privateMetadata"}function Pn(e,t){if(e==="/list-sessions"&&Array.isArray(t))return t.map(o=>K(o)?de(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-")?de(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:de(i.session)}),i}function de(e){if(!Object.hasOwn(e,"token"))return e;let t={...e};return delete t.token,t}function K(e){return !!e&&typeof e=="object"&&!Array.isArray(e)}function qe(){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 Ve({http:e,probe:t,tokens:n,channelName:i}){let o=new Set,a=null,l=null,f=null,p=null,A=null,r=null,u,g=O=>{d(O);};u={data:null,isPending:true,isRefetching:false,error:null,refetch:g};function y(O){u=O;for(let S of o)S();}async function s(O){return e.request("/get-session",{query:O?.query,decode:ge})}function d(O){if(O?.query?.disableCookieCache===true)return R(O);if(p)return p;if(A)return A;let S=R(O).finally(()=>{A===S&&(A=null);});return A=S,S}function h(){if(p)return p;let O=R({query:{disableCookieCache:true}}).finally(()=>{p===O&&(p=null);});return p=O,O}async function R(O){f?.abort();let S=new AbortController;f=S,y({...u,isPending:u.data===null&&u.error===null,isRefetching:u.data!==null});let B=n.beginRead(),$=await e.request("/get-session",{query:O?.query,fetchOptions:{signal:S.signal},decode:ge});if(f===S&&(f=null,y({data:$.data,error:$.error,isPending:false,isRefetching:false,refetch:g}),$.error===null)){if($.data===null){B.endIfDead();return}await x(B);}}async function x(O){if(n.needsProbe()){if(!O.carriedToken){O.recordCookieVerdict(true);return}return r||ze(O)}}function ze(O){let S=t.request("/get-session",{query:{disableCookieCache:true},decode:ge}).then(B=>{r===S&&B.error===null&&O.recordCookieVerdict(B.data!==null);}).finally(()=>{r===S&&(r=null);});return r=S,S}function Ce(){a?.postMessage({type:"session-changed"});}function gn(){if(typeof window>"u"||l)return;let O=()=>{d();},S=()=>{document.visibilityState==="visible"&&d();};window.addEventListener("focus",O),document.addEventListener("visibilitychange",S),typeof BroadcastChannel<"u"&&(a=new BroadcastChannel(i),a.addEventListener("message",O)),l=()=>{window.removeEventListener("focus",O),document.removeEventListener("visibilitychange",S),a?.close(),a=null,l=null;};}function mn(O){return o.add(O),o.size===1&&(gn(),d()),()=>{if(o.delete(O),o.size===0){let S=f;f=null,A=null,p=null,S?.abort(),l?.();}}}return n.measureWith(()=>{n.needsProbe()&&ze(n.beginRead());}),{store:{subscribe:mn,getSnapshot:()=>u,refresh:h},getSession:s,notifyMutation(){Ce(),r&&r.catch(()=>{}).then(()=>{!n.needsProbe()&&n.hasToken()&&Ce();}),o.size>0&&d({query:{disableCookieCache:true}});}}}function ge(e){if(e===null)return null;let t=q$1(e);return (t.session===void 0||t.user===void 0)&&y(),{session:x(t.session),user:w(t.user)}}async function He(e,t){return e.request("/user/metadata",{fetchOptions:t,decode:Ke})}async function Be(e,t,n){return e.request("/user/metadata",{method:"PATCH",body:{expected_version:t.expectedVersion,unsafe_metadata:t.unsafeMetadata},fetchOptions:n,decode:Ke})}function Ke(e){let t=q$1(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 Je(e,t){let{post:n,mutation:i}=L(e,t);return {getMetadata:o=>He(e,o),updateUnsafeMetadata:(o,a)=>Be(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:zn}),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:Cn});if(!a.data)return {data:null,error:a.error};let l=a.data.length>1;return {...a,data:a.data.filter(f=>f.providerId!=="credential").map(f=>({...f,canUnlink:l}))}},linkSocial:(o,a)=>n("/link-social",o,a,Dn),unlinkSocial:(o,a)=>i(n("/unlink-account",o,a,j)),delete:(o={},a)=>i(n("/delete-user",o,a,xn))}}function j(e){let t=q$1(e);return {status:s(t.status)}}function vn(e){let t=q$1(e);return {user:w(t.user)}}function zn(e){return Array.isArray(e)||y(),e.map(t$1=>{let n=q$1(t$1);return {id:r(n.id),userId:r(n.userId),createdAt:t(n.createdAt),updatedAt:t(n.updatedAt),expiresAt:t(n.expiresAt),...je("ipAddress",v(n,"ipAddress")),...je("userAgent",v(n,"userAgent"))}})}function Cn(e){return Array.isArray(e)||y(),e.map(t$1=>{let n=q$1(t$1);return {id:r(n.id),userId:r(n.userId),providerId:r(n.providerId),accountId:r(n.accountId),scopes:u(n.scopes),createdAt:t(n.createdAt),updatedAt:t(n.updatedAt)}})}function Dn(e){let t=q$1(e);return {url:r(t.url),redirect:s(t.redirect)}}function xn(e){let t=q$1(e);return {success:s(t.success),message:r(t.message)}}function je(e,t){return t===void 0?{}:{[e]:t}}var En=new Set(["pending","accepted","rejected","canceled"]),me=1e4;function F(e,t$1,n){let i=q$1(e),o={id:b(i.id),name:b(i.name),slug:b(i.slug),createdAt:t(i.createdAt),...Z("logo",v(i,"logo")),...Z("metadata",i.metadata===void 0?void 0:A(i.metadata))};return E(o.id,t$1),E(o.slug,n),o}function Ge(e){return U(e,F)}function fe(e,t,n){return e===null?null:(t===null&&y(),F(e,t,n))}function We(e,t,n){if(e===null)return null;let i=q$1(e),o=F(i,t,n);return {...o,members:U(i.members,a=>at(a,o.id)),invitations:U(i.invitations,a=>M(a,void 0,o.id))}}function he(e,t,n=false){let i=U(e,o=>J(o));return n||W(i.map(o=>o.organizationId),t),i}function Xe(e,t){let n=U(e,i=>Ae(i));return W(n.map(i=>i.teamId),t),n}function Ae(e,t$1,n){let i=q$1(e),o={id:b(i.id),teamId:b(i.teamId),userId:b(i.userId),createdAt:t(i.createdAt)};return E(o.teamId,t$1),E(o.userId,n),o}function $e(e,t,n){return e===null?null:(t===null&&y(),J(e,t,n))}function Ye(e,t){let n=q$1(e);return (!Number.isSafeInteger(n.total)||n.total<0)&&y(),{members:Nn(n.members,t),total:n.total}}function M(e,t$1,n){let i=q$1(e),o=b(i.status);En.has(o)||y();let a={id:b(i.id),organizationId:b(i.organizationId),email:G(i.email),role:b(i.role),status:o,inviterId:b(i.inviterId),expiresAt:t(i.expiresAt),createdAt:t(i.createdAt)};return E(a.id,t$1),E(a.organizationId,n),a}function Qe(e,t){let n=U(e,i=>M(i));return W(n.map(i=>i.organizationId),t),n}function Ze(e){return U(e,t=>{let n=q$1(t);return {...M(n),organizationName:G(n.organizationName)}})}function et(e,t){let n=q$1(e);return {...M(n,t),organizationName:b(n.organizationName),organizationSlug:b(n.organizationSlug),inviterEmail:st(n.inviterEmail)}}function tt(e,t){let n=q$1(e),i=M(n.invitation,t);return {invitation:i,member:q(n.member,void 0,i.organizationId)}}function nt(e,t){let n=q$1(e);return n.member!==null&&y(),{invitation:n.invitation===null?null:M(n.invitation,t),member:null}}function it(e,t){return e===null?null:M(e,t)}function ot(e,t,n){let i=q$1(e);return {member:q(i.member,n,t)}}function q(e,t$1,n){let i=q$1(e),o={id:b(i.id),organizationId:b(i.organizationId),userId:b(i.userId),role:b(i.role),createdAt:t(i.createdAt),...i.user===void 0?{}:{user:ut(i.user)}};return E(o.id,t$1),E(o.organizationId,n),o}function rt(e,t){let n=U(e,i=>{let o=q$1(i);return {organizationId:b(o.organizationId),data:{role:b(o.role),...Z("permission",o.permission===void 0?void 0:Un(o.permission))}}});return W(n.map(i=>i.organizationId),t),n.map(i=>i.data)}function J(e,t$1,n){let i=q$1(e),o=i.updatedAt,a={id:b(i.id),name:G(i.name),organizationId:b(i.organizationId),createdAt:t(i.createdAt),...o===void 0?{}:{updatedAt:t(o)}};return E(a.id,t$1),E(a.organizationId,n),a}function Oe(e){let t=q$1(e);return {message:G(t.message)}}function at(e,t){let n=q$1(e);return {...q(n,void 0,t),user:ut(n.user)}}function Nn(e,t){let n=U(e,i=>at(i));return W(n.map(i=>i.organizationId),t),n}function Un(e){let t=q$1(e),n={};for(let[i,o]of Object.entries(t))(i==="__proto__"||i==="constructor"||i==="prototype"||i.length===0||i.length>me||!Array.isArray(o))&&y(),n[i]=o.map(a=>b(a));return n}function b(e){let t=r(e);return (t.length===0||t.length>me)&&y(),t}function G(e){if(e==null)return "";let t=r(e);return t.length>me&&y(),t}function st(e){return e===null?null:b(e)}function E(e,t){t!==void 0&&e!==t&&y();}function W(e,t){let n=t??e[0];n!==void 0&&e.some(i=>i!==n)&&y();}function ut(e){let t=q$1(e);return {id:b(t.id),name:G(t.name),email:st(t.email),...Z("image",v(t,"image"))}}function U(e,t){return Array.isArray(e)||y(),e.map(n=>t(n))}function Z(e,t){return t===void 0?{}:{[e]:t}}function ct(e,t,n=()=>null){let{post:i,mutation:o}=L(e,t),a=new Set,l=()=>{for(let r of a)try{r();}catch{}},f=new Map,p=(r,u,g,y)=>{if(g)return e.request(r,{query:u,fetchOptions:g,decode:y});let s=`${r}\0${JSON.stringify(u??null)}`,d=f.get(s);if(d)return d;let h=e.request(r,{query:u,decode:y}).finally(()=>{f.delete(s);});return f.set(s,h),h},A=async r=>{let u=await o(r).finally(()=>f.clear());return u.error===null&&l(),u};return {subscribe(r){return a.add(r),()=>a.delete(r)},create:(r,u)=>A(i("/organization/create",r,u,F)),list:r=>p("/organization/list",void 0,r,Ge),get:(r={},u)=>p("/organization/get-full-organization",{organizationId:r.organizationId,organizationSlug:r.organizationSlug,membersLimit:r.membersLimit},u,g=>We(g,r.organizationId,r.organizationSlug)),setActive:(r,u)=>A(i("/organization/set-active",r,u,g=>fe(g,r.organizationId,r.organizationSlug))),createTeam:(r,u)=>A(i("/organization/create-team",r,u,g=>J(g,void 0,r.organizationId))),listTeams:(r={},u)=>p("/organization/list-teams",{organizationId:r.organizationId},u,g=>he(g,r.organizationId)),updateTeam:(r,u)=>A(i("/organization/update-team",r,u,g=>J(g,r.teamId,r.data.organizationId))),removeTeam:(r,u)=>A(i("/organization/remove-team",r,u,Oe)),listUserTeams:r=>p("/organization/list-user-teams",void 0,r,u=>he(u,void 0,true)),listTeamMembers:(r={},u)=>p("/organization/list-team-members",{teamId:r.teamId},u,g=>Xe(g,r.teamId)),addTeamMember:(r,u)=>A(i("/organization/add-team-member",r,u,g=>Ae(g,r.teamId,r.userId))),removeTeamMember:(r,u)=>A(i("/organization/remove-team-member",r,u,Oe)),setActiveTeam:(r,u)=>A(i("/organization/set-active-team",r,u,g=>$e(g,r.teamId))),update:(r,u)=>A(i("/organization/update",r,u,g=>fe(g,r.organizationId))),delete:(r,u)=>A(i("/organization/delete",r,u,g=>F(g,r.organizationId))),listMembers:(r={},u)=>p("/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,g=>Ye(g,r.organizationId)),inviteMember:(r,u)=>A(i("/organization/invite-member",r,u,g=>M(g,void 0,r.organizationId))),listInvitations:(r={},u)=>p("/organization/list-invitations",{organizationId:r.organizationId},u,g=>Qe(g,r.organizationId)),listUserInvitations:r=>p("/organization/list-user-invitations",void 0,r,Ze),getInvitation:(r,u)=>p("/organization/get-invitation",{id:r.id},u,g=>et(g,r.id)),acceptInvitation:(r,u)=>A(i("/organization/accept-invitation",r,u,g=>tt(g,r.invitationId))),rejectInvitation:(r,u)=>A(i("/organization/reject-invitation",r,u,g=>nt(g,r.invitationId))),cancelInvitation:(r,u)=>A(i("/organization/cancel-invitation",r,u,g=>it(g,r.invitationId))),removeMember:(r,u)=>A(i("/organization/remove-member",r,u,g=>ot(g,r.organizationId,r.memberIdOrEmail.includes("@")?void 0:r.memberIdOrEmail))),updateMemberRole:(r,u)=>A(i("/organization/update-member-role",r,u,g=>q(g,r.memberId,r.organizationId))),leave:(r,u)=>A(i("/organization/leave",r,u,g=>q(g,void 0,r.organizationId))),listRoles:(r={},u)=>p("/organization/list-roles",{organizationId:r.organizationId},u,g=>rt(g,r.organizationId)),has:r=>E$1(n(),r),hasPermission:r=>B(n(),r.permission)}}var dt=4096,Mn=4096,_n=100,Ln=256,Fn=16,qn=64,Vn=12;function be(e){let t=q$1(e);return t.twoFactorRedirect===true?((t.user!==void 0||t.redirect!==void 0||t.url!==void 0)&&y(),{twoFactorRedirect:true,...t.twoFactorMethods===void 0?{}:{twoFactorMethods:vt(t.twoFactorMethods,Fn,qn)}}):(t.twoFactorRedirect!==void 0&&y(),{redirect:s(t.redirect),...Jn(t,"url"),user:w(t.user)})}function lt(e){let t=q$1(e);return {user:w(t.user)}}function pt(e){let t=q$1(e);return {sessionCreated:s(t.sessionCreated),user:w(t.user)}}function gt(e,t){let n=q$1(e),i=s(n.redirect);n.user===null&&y();let o=n.user!==void 0&&n.user!==null,a=n.url!==void 0&&n.url!==null;return i?((o||!a)&&y(),{redirect:true,url:ye(n.url,t)}):(o===a&&y(),o?{redirect:false,user:w(n.user)}:{redirect:false,url:ye(n.url,t)})}function mt(e,t){let n=q$1(e);return (n.redirect!==true||n.user!==void 0)&&y(),{redirect:true,url:ye(n.url,t)}}function ft(e){return {status:s(q$1(e).status)}}function ht(e){return {success:s(q$1(e).success)}}function At(e){return q$1(e).status!=="pending"&&y(),{status:"pending"}}function Ot(e){let t=q$1(e);if(t.kind==="authowl_turnstile")return {kind:"authowl_turnstile"};t.kind!=="akedly_shield_v1_2"&&y();let n=q$1(t.turnstile),i=n.siteKey===null?null:r(n.siteKey);return {kind:"akedly_shield_v1_2",connectionId:r(t.connectionId),challenge:r(t.challenge),difficulty:Hn(t.difficulty),challengeToken:r(t.challengeToken),challengeRequired:s(t.challengeRequired),turnstile:{required:s(n.required),siteKey:i}}}function Hn(e){return (!Number.isSafeInteger(e)||Number(e)<0||Number(e)>Vn)&&y(),Number(e)}function yt(e){let t=q$1(e);return (t.status!==true||t.sessionCreated!==true)&&y(),{status:true,sessionCreated:true,user:Bn(t.user)}}function we(e){return {status:s(q$1(e).status)}}function bt(e){return {status:s(q$1(e).status)}}function wt(e){let t=q$1(e);return {status:s(t.status),user:w(t.user)}}function kt(e){return {success:s(q$1(e).success)}}function Rt(e){let t=q$1(e);return {totpURI:jn(t.totpURI),backupCodes:Pt(t.backupCodes)}}function St(e){return {status:s(q$1(e).status)}}function ee(e){return q$1(e).status!==true&&y(),{status:true}}function It(e){return {status:s(q$1(e).status)}}function Tt(e){let t=q$1(e);return t.status!==void 0&&t.status!==true&&y(),{backupCodes:Pt(t.backupCodes)}}function Bn(e){let t$1=q$1(e);return {id:V(t$1.id,512),...Gn(t$1,"name",1024),phoneNumber:V(t$1.phoneNumber,64),phoneNumberVerified:s(t$1.phoneNumberVerified),...t$1.createdAt===void 0?{}:{createdAt:t(t$1.createdAt)},...t$1.updatedAt===void 0?{}:{updatedAt:t(t$1.updatedAt)}}}function ye(e,t){let n=V(e,dt);/[\u0000-\u0020\u007f]/u.test(n)&&y();let i;try{i=new URL(n);}catch{return y()}return (i.username||i.password)&&y(),i.protocol==="https:"||t&&i.protocol==="http:"&&Kn(i.hostname)?i.href:y()}function Kn(e){let t=e.toLowerCase();return t==="localhost"||t==="127.0.0.1"||t==="[::1]"}function jn(e){let t=V(e,Mn),n;try{n=new URL(t);}catch{return y()}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))&&y(),t}function Pt(e){return vt(e,_n,Ln)}function vt(e,t,n){(!Array.isArray(e)||e.length===0||e.length>t)&&y();let i=e.map(o=>V(o,n));return i.some(o=>o.trim().length===0)&&y(),new Set(i).size!==i.length&&y(),i}function V(e,t){let n=r(e);return (n.length===0||n.length>t)&&y(),n}function Jn(e,t){let n=e[t];return n==null?{}:{[t]:V(n,dt)}}function Gn(e,t,n){let i=v(e,t);return i===void 0?{}:(i!==null&&i.length>n&&y(),{[t]:i})}var zt=new Set([1564,8206,8207,8234,8235,8236,8237,8238,8294,8295,8296,8297]),te=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 ne(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||Dt(n,i)||Ct(i)||zt.has(i))return {valid:false}}let t=Wn(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 a=o.codePointAt(0);if(a===void 0||Dt(o,a)||Ct(a)||zt.has(a))return false;n??=a,i=a;}return t>0&&n!==void 0&&i!==void 0&&!te.has(n)&&!te.has(i)}function ie(){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 Wn(e){let t=0,n=e.length;for(;t<n;){let i=e.codePointAt(t);if(i===void 0||!te.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,l=e.codePointAt(a);if(l===void 0||!te.has(l))break;n=a;}return e.slice(t,n)}function Ct(e){return e>=0&&e<=31||e>=127&&e<=159}function Dt(e,t){return e.length===1&&t>=55296&&t<=57343}var Nt=12,Ut=5e3,Xn=8,$n=1e3,Yn=16,xt=512,Mt=100,_t=8192,Qn=32768,Re=1024,Et=256,Ie=64,Zn=6e5,ei=/^[A-Za-z0-9_-]+$/u,ti=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u,ni=/[\u0000-\u001f\u007f-\u009f\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/u,ii=/^[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,Lt=new Set(["discouraged","preferred","required"]),ri=new Set(["singleDevice","multiDevice"]),Ft=new Set(["ble","cable","hybrid","internal","nfc","smart-card","usb"]),qt=new Set(["hybrid","security-key","client-device"]),ai=new Set(["none","indirect","direct","enterprise"]),si=new Set(["fido-u2f","packed","android-safetynet","android-key","tpm","apple","none"]),ui=new Set(["platform","cross-platform"]),ci=new Set(["discouraged","preferred","required"]),di=new Set([-8,-7,-257]);function Vt(e){let t=z(e,Nt,Ut);return {challenge:Yt(t.challenge),...T("timeout",Xt(t.timeout)),...T("rpId",Qt(t.rpId)),...T("allowCredentials",Wt(t.allowCredentials)),...T("userVerification",X(t.userVerification,Lt)),...T("hints",oe(t.hints,qt)),...T("extensions",$t(t.extensions))}}function Ht(e){let t=z(e,Nt,Ut);return {challenge:Yt(t.challenge),rp:li(t.rp),user:pi(t.user),pubKeyCredParams:gi(t.pubKeyCredParams),...T("timeout",Xt(t.timeout)),...T("excludeCredentials",Wt(t.excludeCredentials)),...T("authenticatorSelection",mi(t.authenticatorSelection)),...T("attestation",X(t.attestation,ai)),...T("attestationFormats",oe(t.attestationFormats,si)),...T("hints",oe(t.hints,qt)),...T("extensions",$t(t.extensions))}}function Bt(e){let t=q$1(e),n=x(t.session),i=w(t.user);return n.userId!==i.id&&y(),{session:n,user:i}}function Te(e){let t$1=q$1(e),n=t$1.counter;(!Number.isSafeInteger(n)||n<0)&&y();let i=Pe(t$1.deviceType,ri),o=s(t$1.backedUp);return o&&i!=="multiDevice"&&y(),{id:H(t$1.id,Et),...Ai(t$1),publicKey:fi(t$1.publicKey,Qn),userId:H(t$1.userId,Et),credentialID:ae(t$1.credentialID,_t),counter:n,deviceType:i,backedUp:o,...Oi(t$1),createdAt:t(t$1.createdAt),...yi(t$1)}}function Kt(e,t,n){let i=Te(e);return (i.credentialID!==t||(n===void 0?i.name!==void 0&&i.name!==null:i.name!==n))&&y(),i}function jt(e){(!Array.isArray(e)||e.length>Mt)&&y();let t=e.map(Te);return re(t.map(n=>n.id)),re(t.map(n=>n.credentialID)),t.length>1&&t.some(n=>n.userId!==t[0]?.userId)&&y(),t}function Jt(e,t,n){let i=q$1(e),o=Te(i.passkey);return (o.id!==t||o.name!==n)&&y(),{passkey:o}}function Gt(e){return q$1(e).status!==true&&y(),{status:true}}function li(e){let t=q$1(e);return {name:Se(t.name,Re),...T("id",Qt(t.id))}}function pi(e){let t=q$1(e);return {id:ae(t.id,128,1,64),name:Se(t.name,Re),displayName:Se(t.displayName,Re)}}function gi(e){(!Array.isArray(e)||e.length===0||e.length>Ie)&&y();let t=e.map(n=>{let i=q$1(n);return (i.type!=="public-key"||!Number.isSafeInteger(i.alg)||!di.has(i.alg))&&y(),{type:"public-key",alg:i.alg}});return bi(t.map(n=>n.alg)),t}function Wt(e){if(e===void 0)return;(!Array.isArray(e)||e.length>Mt)&&y();let t=e.map(n=>{let i=q$1(n);return i.type!=="public-key"&&y(),{type:"public-key",id:ae(i.id,_t),...T("transports",oe(i.transports,Ft))}});return re(t.map(n=>n.id)),t}function mi(e){if(e===void 0)return;let t=q$1(e);t.requireResidentKey!==void 0&&typeof t.requireResidentKey!="boolean"&&y();let n=X(t.residentKey,ci);return t.requireResidentKey!==void 0&&n!==void 0&&t.requireResidentKey!==(n==="required")&&y(),{...T("authenticatorAttachment",X(t.authenticatorAttachment,ui)),...T("residentKey",n),...T("requireResidentKey",t.requireResidentKey),...T("userVerification",X(t.userVerification,Lt))}}function Xt(e){return e!==void 0&&(typeof e!="number"||!Number.isFinite(e)||e<0||e>Zn)&&y(),e}function $t(e){return e===void 0?void 0:z(e,Xn,$n)}function oe(e,t){if(e===void 0)return;(!Array.isArray(e)||e.length>Ie)&&y();let n=e.map(i=>Pe(i,t));return re(n),n}function X(e,t){if(e!==void 0)return Pe(e,t)}function Yt(e){return ae(e,Math.ceil(xt*4/3),Yn,xt)}function ae(e,t,n=1,i=Number.POSITIVE_INFINITY){let o=H(e,t),a=o.length%4,l=hi(o.at(-1)??""),f=Math.floor(o.length*3/4);return (!ei.test(o)||a===1||a===2&&(l&15)!==0||a===3&&(l&3)!==0||f<n||f>i)&&y(),o}function H(e,t){let n=r(e);return (n.length===0||n.length>t)&&y(),n}function Se(e,t){let n=H(e,t);return ni.test(n)&&y(),n}function Qt(e){if(e===void 0)return;let t=H(e,253);return t!=="localhost"&&(t.endsWith(".")||!t.includes(".")||t.split(".").some(n=>!ii.test(n)))&&y(),t}function fi(e,t){let n=H(e,t),i=n.endsWith("=="),o=!i&&n.endsWith("="),a=n.at(i?-3:o?-2:-1)??"",l=Zt(a);return (n.length%4!==0||!ti.test(n)||i&&(l&15)!==0||o&&(l&3)!==0)&&y(),n}function hi(e){return Zt(e,true)}function Zt(e,t=false){return (t?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").indexOf(e)}function Ai(e){let t=v(e,"name");return t===void 0?{}:(t!==null&&!ke(t)&&y(),{name:t})}function Oi(e){let t=v(e,"transports");if(t==null||t==="")return t===void 0?{}:{transports:t};let n=t.split(",");return (n.length>Ie||n.some(i=>!Ft.has(i))||new Set(n).size!==n.length)&&y(),{transports:t}}function yi(e){let t=v(e,"aaguid");return t==null?t===void 0?{}:{aaguid:null}:(oi.test(t)||y(),{aaguid:t})}function Pe(e,t){let n=r(e);return t.has(n)||y(),n}function T(e,t){return t===void 0?{}:{[e]:t}}function re(e){new Set(e).size!==e.length&&y();}function bi(e){new Set(e).size!==e.length&&y();}function wi(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 en=new Map;function ki(e,t,n){let i=en.get(n);if(!i){let o=new URLSearchParams(window.location.hash.slice(1)).get("authowl_code");if(!o)return;i=import('./session-handoff-6FBH3GFJ.js').then(a=>a.completeCrossSiteSignIn(e,t,o)),en.set(n,i);}return i}function tn(e){return !a()||e.idToken||e.disableRedirect?"legacy":"first-party"}function Ri(e,t=()=>{},n=Ti){let i=pe(e),o=e.session.tokens,a$1=a()?ki(i,o,e.decoded.projectId):void 0,l=wi(i,a$1),f=Ve({http:l,probe:pe({...e,fetch:e.session.probe}),tokens:o,channelName:`authowl:${e.decoded.projectId}`}),p=n(l,f.notifyMutation),A=()=>{f.notifyMutation(),t();},{post:r,mutation:u}=L(l,A),g=e.decoded.env==="test",y=s=>{o.beginSession({remember:s?.rememberMe!==false});};return {sessionStore:f.store,getSession:f.getSession,account:Je(l,A),organization:ct(l,A,()=>f.store.getSnapshot().data?.session.membership??null),signIn:{email:(s,d)=>(y(s),u(r("/sign-in/email",s,d,be),h=>!("twoFactorRedirect"in h))),username:(s,d)=>(y(s),u(r("/sign-in/username",s,d,be),h=>!("twoFactorRedirect"in h))),social:async(s,d)=>{if(y(),tn(s)==="first-party"){let{beginCrossSiteSignIn:R}=await import('./session-handoff-6FBH3GFJ.js'),x=await R(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(x)return window.location.assign(x),{data:{redirect:true,url:x},error:null}}let h=await u(r("/sign-in/social",s,d,R=>gt(R,g)),R=>"user"in R);return h.error!==null||h.data===null||"url"in h.data&&h.data.redirect&&!s.disableRedirect&&typeof window<"u"&&window.location.assign(h.data.url),h},sso:async(s,d)=>{if(tn(s)==="first-party"){let{beginCrossSiteSignIn:R}=await import('./session-handoff-6FBH3GFJ.js'),x=await R(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(x)return window.location.assign(x),{data:{url:x,redirect:true},error:null}}let h=await r("/sign-in/sso",s,d,R=>mt(R,g));return h.error!==null||h.data===null||typeof window<"u"&&window.location.assign(h.data.url),h},magicLink:(s,d)=>r("/sign-in/magic-link",s,d,ft),emailOtp:(s,d)=>(y(),u(r("/sign-in/email-otp",s,d,lt))),passkey:(s,d)=>(y(),p.signIn(s,d))},signUp:{email:(s,d)=>(y(),u(r("/sign-up/email",s,d,pt),h=>h.sessionCreated))},emailOtp:{sendVerificationOtp:(s,d)=>r("/email-otp/send-verification-otp",s,d,ht),verifyEmail:(s,d)=>(y(),u(r("/email-otp/verify-email",s,d,wt)))},phoneOtp:{prepare:s=>r("/phone-otp/challenge",{},s,Ot),start:(s,d)=>r("/phone-otp/start",{...s,idempotencyKey:s.idempotencyKey??qe()},d,At),verify:(s,d)=>(y(),u(r("/phone-otp/verify",s,d,yt)))},requestPasswordReset:(s,d)=>r("/request-password-reset",s,d,we),resetPassword:(s,d)=>r("/reset-password",s,d,we),sendVerificationEmail:(s,d)=>r("/send-verification-email",s,d,bt),passkey:{addPasskey:(s,d)=>p.add(s,d),listUserPasskeys:()=>l.request("/passkey/list-user-passkeys",{decode:jt}),updatePasskey:async(s,d)=>{let h=ne(s.name);if(!h.valid||h.value===void 0)return ie();let R=h.value;return r("/passkey/update-passkey",{...s,name:R},d,x=>Jt(x,s.id,R))},deletePasskey:(s,d)=>r("/passkey/delete-passkey",s,d,Gt)},twoFactor:{enable:(s,d)=>r("/two-factor/enable",s,d,Rt),disable:(s,d)=>u(r("/two-factor/disable",s,d,St),h=>h.status),verifyTotp:(s,d)=>u(r("/two-factor/verify-totp",s,d,ee)),verifyBackupCode:(s,d)=>u(r("/two-factor/verify-backup-code",s,d,ee)),sendOtp:(s={},d)=>r("/two-factor/send-otp",s,d,It),verifyOtp:(s,d)=>u(r("/two-factor/verify-otp",s,d,ee)),generateBackupCodes:(s,d)=>r("/two-factor/generate-backup-codes",s,d,Tt)},signOut:s=>u(l.request("/sign-out",{method:"POST",body:{},fetchOptions:s,decode:kt}).then(d=>(o.endSession(),d)),d=>d.success)}}function bo(e,t=()=>{},n){let i=Ri(e,t,n);return n?{...i,signIn:{email:i.signIn.email,username:i.signIn.username,social:nn(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:nn(i),magicLink:i.signIn.magicLink,emailOtp:i.signIn.emailOtp},passkey:{listUserPasskeys:i.passkey.listUserPasskeys,updatePasskey:i.passkey.updatePasskey,deletePasskey:i.passkey.deletePasskey}}}function nn(e){return async(t,n)=>{if(!t?.idToken||typeof t.idToken.token!="string"||t.idToken.token==="")return Si();let i=await e.signIn.social({...t,disableRedirect:true},n);return i.data!==null&&"url"in i.data?Ii():i}}function Si(){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 Ii(){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 Ti(){return {signIn:()=>on(),add:()=>on()}}function on(){return Promise.resolve({data:null,error:{status:400,statusText:"BAD_REQUEST",code:"PASSKEY_BROWSER_REQUIRED",message:"This passkey ceremony requires a browser with WebAuthn."}})}function So(e,t,n){let i=new Map;return {async signIn(o={},a){let l=await e.request("/passkey/generate-authenticate-options");if(!l.data)return sn(l.error);let f;try{f=Vt(l.data);}catch{return rn()}let p;try{p=await n.authenticate({optionsJSON:f,useBrowserAutofill:o.autoFill});}catch(y){return un(n,y,"AUTH_CANCELLED","Passkey authentication was cancelled.")}if(!Pi(p))return an();let{clientExtensionResults:A,...r}=p,u=i.get(p.id);if(u)return u;let g=(async()=>{let y=await e.request("/passkey/verify-authentication",{method:"POST",body:{response:r},fetchOptions:a,decode:Bt});return y.data&&t(),y})();i.set(p.id,g);try{return await g}finally{i.get(p.id)===g&&i.delete(p.id);}},async add(o={},a){let l=ne(o.name);if(!l.valid)return ie();let f=await e.request("/passkey/generate-register-options",{query:{name:l.value,authenticatorAttachment:o.authenticatorAttachment}});if(!f.data)return sn(f.error);let p;try{p=Ht(f.data);}catch{return rn()}let A;try{A=await n.register({optionsJSON:p});}catch(y){return un(n,y,"REGISTRATION_CANCELLED","Passkey registration was cancelled.")}if(!vi(A))return an();let{clientExtensionResults:r,...u}=A,g=await e.request("/passkey/verify-registration",{method:"POST",body:{response:u,name:l.value},fetchOptions:a,decode:y=>Kt(y,A.id,l.value)});return g.data&&t(),g}}}function rn(){return {data:null,error:{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned invalid WebAuthn options."}}}function an(){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 Pi(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 vi(e){if(!dn(e))return false;let t=e.response;return typeof t.clientDataJSON=="string"&&typeof t.attestationObject=="string"}function sn(e){return {data:null,error:e??{status:502,statusText:"BAD_GATEWAY",code:"INVALID_WEBAUTHN_OPTIONS",message:"The server returned no WebAuthn options."}}}function un(e,t,n,i){let o=Ci(t,"page does not have focus"),a=e.errorCode?.(t),l=a!==void 0?a==="ERROR_CEREMONY_ABORTED":cn(t)==="AbortError",f=n!=="AUTH_CANCELLED",p=zi(a,cn(t),f);return {data:null,error:{status:400,statusText:"BAD_REQUEST",code:o?"PASSKEY_PAGE_NOT_FOCUSED":l?n:a??"PASSKEY_BROWSER_ERROR",message:o?"Keep this page focused while completing the passkey prompt.":l?i:p}}}function zi(e,t,n){switch(e){case "ERROR_INVALID_DOMAIN":case "ERROR_INVALID_RP_ID":return "Passkeys are not set up for this site\u2019s domain.";case "ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED":return "This device already has a passkey for this account.";case "ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEY_ALGS":case "ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT":case "ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT":return "This device cannot create a passkey for this site.";}return t==="NotAllowedError"?n?"No passkey was created. The prompt was dismissed or timed out.":"No passkey was used. This device may not have one saved for this site yet, or the prompt was dismissed.":t==="SecurityError"?"Passkeys are not set up for this site\u2019s domain.":n?"Passkey registration did not complete.":"Passkey sign-in did not complete."}function cn(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}async function vo(e){let n=`${new URL(e.apiUrl).origin}/api/projects/${e.decoded.projectId}/public-config`;return _e(await Q(e,n,{init:{method:"GET",credentials:"omit"},maxResponseBytes:256*1024,decode:i=>Di(i,e)}),"public-config")}function Di(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"||!xi(n.applicationId)||i!==t.decoded.projectId||o!=="development"&&o!=="production"||n.authBaseUrl!==a)throw D();let l=P(n.branding),f=P(n.legal);if(!ve(n.enabledMethods,64)||!ve(n.socialProviders,64)||!pn(l,["appName","logoUrl","primaryColor"])||l.showAppName!==void 0&&typeof l.showAppName!="boolean"||l.alignment!==void 0&&l.alignment!=="left"&&l.alignment!=="center"&&l.alignment!=="right"||l.theme!==void 0&&l.theme!=="light"&&l.theme!=="dark"&&l.theme!=="system"||!pn(f,["termsUrl","privacyUrl"])||!Number.isSafeInteger(f.version)||f.version<0||typeof f.required!="boolean")throw D();if(n.socialProviderClientIds!==void 0){let p=P(n.socialProviderClientIds);if(Object.keys(p).length>64||Object.values(p).some(A=>typeof A!="string"||A.length>2048))throw D()}if(!_(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 D();if(n.jwtIssuer!==null){let p=P(n.jwtIssuer);if(p.issuer!==a||p.jwksUrl!==`${a}/jwks`||p.aud!==t.decoded.projectId)throw D()}if(n.signUp!==void 0){let p=P(n.signUp).mode;if(typeof p!="string"||!["open","restricted","allowlist","waitlist"].includes(p))throw D()}if(n.authentication!==void 0&&Ei(n.authentication),n.emailVerification!==void 0){let p=P(n.emailVerification);if(!_(p,["required"])||p.method!=="link"&&p.method!=="code")throw D()}if(n.userModel!==void 0&&!_(P(n.userModel),["requireEmail","firstLastName","emailChange","accountDeletion"]))throw D();if(n.mfa!==void 0){let p=P(n.mfa);if(!_(p,["totp","required","backupCodes"])||(p.required===true||p.backupCodes===true)&&p.totp!==true)throw D()}return n}function xi(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 ln(e){return e===null||typeof e=="string"&&e.length<=4096}function Ei(e){let t=P(e),n=P(t.email),i=P(t.password),o=i.minLength!==void 0||i.maxLength!==void 0;if(!_(n,["signUp"])||!ve(n.signIn,3)||n.signIn.some(a=>a!=="password"&&a!=="magic_link"&&a!=="email_otp")||!_(P(t.phone),["signUp","signIn"])||!_(i,["signUp","add"])||o&&(!Number.isSafeInteger(i.minLength)||!Number.isSafeInteger(i.maxLength)||i.minLength<1||i.maxLength>4096||i.minLength>i.maxLength)||!_(P(t.passkey),["signIn","add"])||!Ni(P(t.passkey).relyingPartyId)||!_(P(t.username),["collectOnSignUp","signIn"]))throw D()}function Ni(e){return e==null||typeof e=="string"}function _(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 ve(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{Ui as a,ue as b,Q as c,_e as d,fn as e,pe as f,qe as g,Ri as h,bo as i,So as j,vo as k};
|