@dolard.eu/versiq-widget 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +55 -0
- package/README.md +401 -0
- package/dist/config.d.ts +6 -0
- package/dist/index.d.ts +64 -0
- package/dist/loader.d.ts +106 -0
- package/dist/logger.d.ts +26 -0
- package/dist/postmessage.d.ts +47 -0
- package/dist/types.d.ts +185 -0
- package/dist/widget.es.js +3352 -0
- package/dist/widget.umd.js +39 -0
- package/package.json +84 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
(function(k,j){typeof exports=="object"&&typeof module<"u"?j(exports):typeof define=="function"&&define.amd?define(["exports"],j):(k=typeof globalThis<"u"?globalThis:k||self,j(k.VersiqWidget={}))})(this,function(k){Object.defineProperty(k,Symbol.toStringTag,{value:"Module"});var j="[Versiq]";function fe(e,...t){console.error(j,e,...t)}function Ae(e,...t){console.warn(j,e,...t)}function he(e,...t){console.info(j,e,...t)}function G(e,...t){console.debug(j,e,...t)}function Xt(e){return e?G:()=>{}}var Qt="versiq:",Yt=["https://versiq.io","https://www.versiq.io","https://app.versiq.io"];function er(e,t){return t.some(r=>e===r||e.endsWith(`.${new URL(r).host}`))}function tr(e){const t=e.data;return typeof t=="object"&&t!==null&&typeof t.type=="string"&&t.type.startsWith(Qt)}function D(e,t,r){if(!e.contentWindow){Ae("Cannot send command: iframe not ready");return}try{e.contentWindow.postMessage(t,r)}catch{Ae("Failed to post message to iframe")}}function rr(e){const{allowedOrigins:t=Yt,onMessage:r,debug:n,sourceWindow:o}=e,a=i=>{if(!(o&&i.source&&i.source!==o)){if(!er(i.origin,t)){n&&G("Ignored message from untrusted origin:",i.origin);return}if(tr(i)){if(n)try{G("Received message:",JSON.parse(JSON.stringify(i.data)))}catch{G("Received message:",i.data?.type??"[Unserializable]")}r(i.data,i.origin)}}};return window.addEventListener("message",a),()=>{window.removeEventListener("message",a)}}function nr(e){return btoa(JSON.stringify(e))}var es=Object.freeze({status:"aborted"});function c(e,t,r){function n(s,u){if(s._zod||Object.defineProperty(s,"_zod",{value:{def:u,constr:i,traits:new Set},enumerable:!1}),s._zod.traits.has(e))return;s._zod.traits.add(e),t(s,u);const l=i.prototype,d=Object.keys(l);for(let p=0;p<d.length;p++){const h=d[p];h in s||(s[h]=l[h].bind(s))}}const o=r?.Parent??Object;class a extends o{}Object.defineProperty(a,"name",{value:e});function i(s){var u;const l=r?.Parent?new a:this;n(l,s),(u=l._zod).deferred??(u.deferred=[]);for(const d of l._zod.deferred)d();return l}return Object.defineProperty(i,"init",{value:n}),Object.defineProperty(i,Symbol.hasInstance,{value:s=>r?.Parent&&s instanceof r.Parent?!0:s?._zod?.traits?.has(e)}),Object.defineProperty(i,"name",{value:e}),i}var q=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},Ne=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}},pe={};function F(e){return e&&Object.assign(pe,e),pe}function Re(e){const t=Object.values(e).filter(r=>typeof r=="number");return Object.entries(e).filter(([r,n])=>t.indexOf(+r)===-1).map(([r,n])=>n)}function me(e,t){return typeof t=="bigint"?t.toString():t}function ge(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}throw new Error("cached value already set")}}}function ve(e){return e==null}function be(e){const t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}function or(e,t){const r=(e.toString().split(".")[1]||"").length,n=t.toString();let o=(n.split(".")[1]||"").length;if(o===0&&/\d?e-\d?/.test(n)){const i=n.match(/\d?e-(\d?)/);i?.[1]&&(o=Number.parseInt(i[1]))}const a=r>o?r:o;return Number.parseInt(e.toFixed(a).replace(".",""))%Number.parseInt(t.toFixed(a).replace(".",""))/10**a}var je=Symbol("evaluating");function g(e,t,r){let n;Object.defineProperty(e,t,{get(){if(n!==je)return n===void 0&&(n=je,n=r()),n},set(o){Object.defineProperty(e,t,{value:o})},configurable:!0})}function L(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function x(...e){const t={};for(const r of e)Object.assign(t,Object.getOwnPropertyDescriptors(r));return Object.defineProperties({},t)}function xe(e){return JSON.stringify(e)}function ir(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var Me="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function X(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var ar=ge(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch{return!1}});function H(e){if(X(e)===!1)return!1;const t=e.constructor;if(t===void 0||typeof t!="function")return!0;const r=t.prototype;return!(X(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function Ue(e){return H(e)?{...e}:Array.isArray(e)?[...e]:e}var sr=new Set(["string","number","symbol"]);function Q(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function M(e,t,r){const n=new e._zod.constr(t??e._zod.def);return(!t||r?.parent)&&(n._zod.parent=e),n}function f(e){const t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function cr(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}var ur={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function lr(e,t){const r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");return M(e,x(e._zod.def,{get shape(){const o={};for(const a in t){if(!(a in r.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&(o[a]=r.shape[a])}return L(this,"shape",o),o},checks:[]}))}function dr(e,t){const r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");return M(e,x(e._zod.def,{get shape(){const o={...e._zod.def.shape};for(const a in t){if(!(a in r.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&delete o[a]}return L(this,"shape",o),o},checks:[]}))}function fr(e,t){if(!H(t))throw new Error("Invalid input to extend: expected a plain object");const r=e._zod.def.checks;if(r&&r.length>0){const n=e._zod.def.shape;for(const o in t)if(Object.getOwnPropertyDescriptor(n,o)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return M(e,x(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return L(this,"shape",n),n}}))}function hr(e,t){if(!H(t))throw new Error("Invalid input to safeExtend: expected a plain object");return M(e,x(e._zod.def,{get shape(){const r={...e._zod.def.shape,...t};return L(this,"shape",r),r}}))}function pr(e,t){return M(e,x(e._zod.def,{get shape(){const r={...e._zod.def.shape,...t._zod.def.shape};return L(this,"shape",r),r},get catchall(){return t._zod.def.catchall},checks:[]}))}function mr(e,t,r){const n=t._zod.def.checks;if(n&&n.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");return M(t,x(t._zod.def,{get shape(){const o=t._zod.def.shape,a={...o};if(r)for(const i in r){if(!(i in o))throw new Error(`Unrecognized key: "${i}"`);r[i]&&(a[i]=e?new e({type:"optional",innerType:o[i]}):o[i])}else for(const i in o)a[i]=e?new e({type:"optional",innerType:o[i]}):o[i];return L(this,"shape",a),a},checks:[]}))}function gr(e,t,r){return M(t,x(t._zod.def,{get shape(){const n=t._zod.def.shape,o={...n};if(r)for(const a in r){if(!(a in o))throw new Error(`Unrecognized key: "${a}"`);r[a]&&(o[a]=new e({type:"nonoptional",innerType:n[a]}))}else for(const a in n)o[a]=new e({type:"nonoptional",innerType:n[a]});return L(this,"shape",o),o}}))}function W(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue!==!0)return!0;return!1}function De(e,t){return t.map(r=>{var n;return(n=r).path??(n.path=[]),r.path.unshift(e),r})}function Y(e){return typeof e=="string"?e:e?.message}function V(e,t,r){const n={...e,path:e.path??[]};return e.message||(n.message=Y(e.inst?._zod.def?.error?.(e))??Y(t?.error?.(e))??Y(r.customError?.(e))??Y(r.localeError?.(e))??"Invalid input"),delete n.inst,delete n.continue,t?.reportInput||delete n.input,n}function _e(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function K(...e){const[t,r,n]=e;return typeof t=="string"?{message:t,code:"custom",input:r,inst:n}:{...t}}var Fe=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,me,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},Le=c("$ZodError",Fe),I=c("$ZodError",Fe,{Parent:Error});function vr(e,t=r=>r.message){const r={},n=[];for(const o of e.issues)o.path.length>0?(r[o.path[0]]=r[o.path[0]]||[],r[o.path[0]].push(t(o))):n.push(t(o));return{formErrors:n,fieldErrors:r}}function br(e,t=r=>r.message){const r={_errors:[]},n=o=>{for(const a of o.issues)if(a.code==="invalid_union"&&a.errors.length)a.errors.map(i=>n({issues:i}));else if(a.code==="invalid_key")n({issues:a.issues});else if(a.code==="invalid_element")n({issues:a.issues});else if(a.path.length===0)r._errors.push(t(a));else{let i=r,s=0;for(;s<a.path.length;){const u=a.path[s];s!==a.path.length-1?i[u]=i[u]||{_errors:[]}:(i[u]=i[u]||{_errors:[]},i[u]._errors.push(t(a))),i=i[u],s++}}};return n(e),r}var ee=e=>(t,r,n,o)=>{const a=n?Object.assign(n,{async:!1}):{async:!1},i=t._zod.run({value:r,issues:[]},a);if(i instanceof Promise)throw new q;if(i.issues.length){const s=new(o?.Err??e)(i.issues.map(u=>V(u,a,F())));throw Me(s,o?.callee),s}return i.value},ts=ee(I),te=e=>async(t,r,n,o)=>{const a=n?Object.assign(n,{async:!0}):{async:!0};let i=t._zod.run({value:r,issues:[]},a);if(i instanceof Promise&&(i=await i),i.issues.length){const s=new(o?.Err??e)(i.issues.map(u=>V(u,a,F())));throw Me(s,o?.callee),s}return i.value},rs=te(I),re=e=>(t,r,n)=>{const o=n?{...n,async:!1}:{async:!1},a=t._zod.run({value:r,issues:[]},o);if(a instanceof Promise)throw new q;return a.issues.length?{success:!1,error:new(e??Le)(a.issues.map(i=>V(i,o,F())))}:{success:!0,data:a.value}},_r=re(I),ne=e=>async(t,r,n)=>{const o=n?Object.assign(n,{async:!0}):{async:!0};let a=t._zod.run({value:r,issues:[]},o);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new e(a.issues.map(i=>V(i,o,F())))}:{success:!0,data:a.value}},wr=ne(I),Ve=e=>(t,r,n)=>{const o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return ee(e)(t,r,o)},ns=Ve(I),Je=e=>(t,r,n)=>ee(e)(t,r,n),os=Je(I),qe=e=>async(t,r,n)=>{const o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return te(e)(t,r,o)},is=qe(I),We=e=>async(t,r,n)=>te(e)(t,r,n),as=We(I),Be=e=>(t,r,n)=>{const o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return re(e)(t,r,o)},ss=Be(I),He=e=>(t,r,n)=>re(e)(t,r,n),cs=He(I),Ke=e=>async(t,r,n)=>{const o=n?Object.assign(n,{direction:"backward"}):{direction:"backward"};return ne(e)(t,r,o)},us=Ke(I),Ge=e=>async(t,r,n)=>ne(e)(t,r,n),ls=Ge(I),yr=/^[cC][^\s-]{8,}$/,zr=/^[0-9a-z]+$/,kr=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,$r=/^[0-9a-vA-V]{20}$/,Sr=/^[A-Za-z0-9]{27}$/,Or=/^[a-zA-Z0-9_-]{21}$/,Zr=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Er=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Xe=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Ir=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Tr="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function Pr(){return new RegExp(Tr,"u")}var Cr=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Ar=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,Nr=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Rr=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,jr=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Qe=/^[A-Za-z0-9_-]*$/,xr=/^\+[1-9]\d{6,14}$/,Ye="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",Mr=new RegExp(`^${Ye}$`);function et(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function Ur(e){return new RegExp(`^${et(e)}$`)}function Dr(e){const t=et({precision:e.precision}),r=["Z"];e.local&&r.push(""),e.offset&&r.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const n=`${t}(?:${r.join("|")})`;return new RegExp(`^${Ye}T(?:${n})$`)}var Fr=e=>{const t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},Lr=/^-?\d+$/,Vr=/^-?\d+(?:\.\d+)?$/,Jr=/^(?:true|false)$/i,qr=/^[^A-Z]*$/,Wr=/^[^a-z]*$/,S=c("$ZodCheck",(e,t)=>{var r;e._zod??(e._zod={}),e._zod.def=t,(r=e._zod).onattach??(r.onattach=[])}),tt={number:"number",bigint:"bigint",object:"date"},rt=c("$ZodCheckLessThan",(e,t)=>{S.init(e,t);const r=tt[typeof t.value];e._zod.onattach.push(n=>{const o=n._zod.bag,a=(t.inclusive?o.maximum:o.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<a&&(t.inclusive?o.maximum=t.value:o.exclusiveMaximum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value<=t.value:n.value<t.value)||n.issues.push({origin:r,code:"too_big",maximum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),nt=c("$ZodCheckGreaterThan",(e,t)=>{S.init(e,t);const r=tt[typeof t.value];e._zod.onattach.push(n=>{const o=n._zod.bag,a=(t.inclusive?o.minimum:o.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>a&&(t.inclusive?o.minimum=t.value:o.exclusiveMinimum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value>=t.value:n.value>t.value)||n.issues.push({origin:r,code:"too_small",minimum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Br=c("$ZodCheckMultipleOf",(e,t)=>{S.init(e,t),e._zod.onattach.push(r=>{var n;(n=r._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=r=>{if(typeof r.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%t.value===BigInt(0):or(r.value,t.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:t.value,input:r.value,inst:e,continue:!t.abort})}}),Hr=c("$ZodCheckNumberFormat",(e,t)=>{S.init(e,t),t.format=t.format||"float64";const r=t.format?.includes("int"),n=r?"int":"number",[o,a]=ur[t.format];e._zod.onattach.push(i=>{const s=i._zod.bag;s.format=t.format,s.minimum=o,s.maximum=a,r&&(s.pattern=Lr)}),e._zod.check=i=>{const s=i.value;if(r){if(!Number.isInteger(s)){i.issues.push({expected:n,format:t.format,code:"invalid_type",continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?i.issues.push({input:s,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort}):i.issues.push({input:s,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort});return}}s<o&&i.issues.push({origin:"number",input:s,code:"too_small",minimum:o,inclusive:!0,inst:e,continue:!t.abort}),s>a&&i.issues.push({origin:"number",input:s,code:"too_big",maximum:a,inclusive:!0,inst:e,continue:!t.abort})}}),Kr=c("$ZodCheckMaxLength",(e,t)=>{var r;S.init(e,t),(r=e._zod.def).when??(r.when=n=>{const o=n.value;return!ve(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{const o=n._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<o&&(n._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{const o=n.value;if(o.length<=t.maximum)return;const a=_e(o);n.issues.push({origin:a,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Gr=c("$ZodCheckMinLength",(e,t)=>{var r;S.init(e,t),(r=e._zod.def).when??(r.when=n=>{const o=n.value;return!ve(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{const o=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(n._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{const o=n.value;if(o.length>=t.minimum)return;const a=_e(o);n.issues.push({origin:a,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Xr=c("$ZodCheckLengthEquals",(e,t)=>{var r;S.init(e,t),(r=e._zod.def).when??(r.when=n=>{const o=n.value;return!ve(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{const o=n._zod.bag;o.minimum=t.length,o.maximum=t.length,o.length=t.length}),e._zod.check=n=>{const o=n.value,a=o.length;if(a===t.length)return;const i=_e(o),s=a>t.length;n.issues.push({origin:i,...s?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),oe=c("$ZodCheckStringFormat",(e,t)=>{var r,n;S.init(e,t),e._zod.onattach.push(o=>{const a=o._zod.bag;a.format=t.format,t.pattern&&(a.patterns??(a.patterns=new Set),a.patterns.add(t.pattern))}),t.pattern?(r=e._zod).check??(r.check=o=>{t.pattern.lastIndex=0,!t.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:t.format,input:o.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(n=e._zod).check??(n.check=()=>{})}),Qr=c("$ZodCheckRegex",(e,t)=>{oe.init(e,t),e._zod.check=r=>{t.pattern.lastIndex=0,!t.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),Yr=c("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=qr),oe.init(e,t)}),en=c("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=Wr),oe.init(e,t)}),tn=c("$ZodCheckIncludes",(e,t)=>{S.init(e,t);const r=Q(t.includes),n=new RegExp(typeof t.position=="number"?`^.{${t.position}}${r}`:r);t.pattern=n,e._zod.onattach.push(o=>{const a=o._zod.bag;a.patterns??(a.patterns=new Set),a.patterns.add(n)}),e._zod.check=o=>{o.value.includes(t.includes,t.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:o.value,inst:e,continue:!t.abort})}}),rn=c("$ZodCheckStartsWith",(e,t)=>{S.init(e,t);const r=new RegExp(`^${Q(t.prefix)}.*`);t.pattern??(t.pattern=r),e._zod.onattach.push(n=>{const o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),nn=c("$ZodCheckEndsWith",(e,t)=>{S.init(e,t);const r=new RegExp(`.*${Q(t.suffix)}$`);t.pattern??(t.pattern=r),e._zod.onattach.push(n=>{const o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),on=c("$ZodCheckOverwrite",(e,t)=>{S.init(e,t),e._zod.check=r=>{r.value=t.tx(r.value)}}),an=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e=="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}const t=e.split(`
|
|
2
|
+
`).filter(o=>o),r=Math.min(...t.map(o=>o.length-o.trimStart().length)),n=t.map(o=>o.slice(r)).map(o=>" ".repeat(this.indent*2)+o);for(const o of n)this.content.push(o)}compile(){const e=Function,t=this?.args,r=[...(this?.content??[""]).map(n=>` ${n}`)];return new e(...t,r.join(`
|
|
3
|
+
`))}},sn={major:4,minor:3,patch:6},y=c("$ZodType",(e,t)=>{var r;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=sn;const n=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&n.unshift(e);for(const o of n)for(const a of o._zod.onattach)a(e);if(n.length===0)(r=e._zod).deferred??(r.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const o=(i,s,u)=>{let l=W(i),d;for(const p of s){if(p._zod.def.when){if(!p._zod.def.when(i))continue}else if(l)continue;const h=i.issues.length,m=p._zod.check(i);if(m instanceof Promise&&u?.async===!1)throw new q;if(d||m instanceof Promise)d=(d??Promise.resolve()).then(async()=>{await m,i.issues.length!==h&&(l||(l=W(i,h)))});else{if(i.issues.length===h)continue;l||(l=W(i,h))}}return d?d.then(()=>i):i},a=(i,s,u)=>{if(W(i))return i.aborted=!0,i;const l=o(s,n,u);if(l instanceof Promise){if(u.async===!1)throw new q;return l.then(d=>e._zod.parse(d,u))}return e._zod.parse(l,u)};e._zod.run=(i,s)=>{if(s.skipChecks)return e._zod.parse(i,s);if(s.direction==="backward"){const l=e._zod.parse({value:i.value,issues:[]},{...s,skipChecks:!0});return l instanceof Promise?l.then(d=>a(d,i,s)):a(l,i,s)}const u=e._zod.parse(i,s);if(u instanceof Promise){if(s.async===!1)throw new q;return u.then(l=>o(l,n,s))}return o(u,n,s)}}g(e,"~standard",()=>({validate:o=>{try{const a=_r(e,o);return a.success?{value:a.data}:{issues:a.error?.issues}}catch{return wr(e,o).then(i=>i.success?{value:i.data}:{issues:i.error?.issues})}},vendor:"zod",version:1}))}),we=c("$ZodString",(e,t)=>{y.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??Fr(e._zod.bag),e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:e}),r}}),v=c("$ZodStringFormat",(e,t)=>{oe.init(e,t),we.init(e,t)}),cn=c("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Er),v.init(e,t)}),un=c("$ZodUUID",(e,t)=>{if(t.version){const r={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(r===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=Xe(r))}else t.pattern??(t.pattern=Xe());v.init(e,t)}),ln=c("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Ir),v.init(e,t)}),dn=c("$ZodURL",(e,t)=>{v.init(e,t),e._zod.check=r=>{try{const n=r.value.trim(),o=new URL(n);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(o.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:r.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(o.protocol.endsWith(":")?o.protocol.slice(0,-1):o.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:r.value,inst:e,continue:!t.abort})),t.normalize?r.value=o.href:r.value=n;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:e,continue:!t.abort})}}}),fn=c("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=Pr()),v.init(e,t)}),hn=c("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=Or),v.init(e,t)}),pn=c("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=yr),v.init(e,t)}),mn=c("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=zr),v.init(e,t)}),gn=c("$ZodULID",(e,t)=>{t.pattern??(t.pattern=kr),v.init(e,t)}),vn=c("$ZodXID",(e,t)=>{t.pattern??(t.pattern=$r),v.init(e,t)}),bn=c("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=Sr),v.init(e,t)}),_n=c("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=Dr(t)),v.init(e,t)}),wn=c("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=Mr),v.init(e,t)}),yn=c("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=Ur(t)),v.init(e,t)}),zn=c("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=Zr),v.init(e,t)}),kn=c("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=Cr),v.init(e,t),e._zod.bag.format="ipv4"}),$n=c("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=Ar),v.init(e,t),e._zod.bag.format="ipv6",e._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:e,continue:!t.abort})}}}),Sn=c("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=Nr),v.init(e,t)}),On=c("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=Rr),v.init(e,t),e._zod.check=r=>{const n=r.value.split("/");try{if(n.length!==2)throw new Error;const[o,a]=n;if(!a)throw new Error;const i=Number(a);if(`${i}`!==a)throw new Error;if(i<0||i>128)throw new Error;new URL(`http://[${o}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:e,continue:!t.abort})}}});function ot(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}var Zn=c("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=jr),v.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=r=>{ot(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:e,continue:!t.abort})}});function En(e){if(!Qe.test(e))return!1;const t=e.replace(/[-_]/g,r=>r==="-"?"+":"/");return ot(t.padEnd(Math.ceil(t.length/4)*4,"="))}var In=c("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=Qe),v.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=r=>{En(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:e,continue:!t.abort})}}),Tn=c("$ZodE164",(e,t)=>{t.pattern??(t.pattern=xr),v.init(e,t)});function Pn(e,t=null){try{const r=e.split(".");if(r.length!==3)return!1;const[n]=r;if(!n)return!1;const o=JSON.parse(atob(n));return!("typ"in o&&o?.typ!=="JWT"||!o.alg||t&&(!("alg"in o)||o.alg!==t))}catch{return!1}}var Cn=c("$ZodJWT",(e,t)=>{v.init(e,t),e._zod.check=r=>{Pn(r.value,t.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:e,continue:!t.abort})}}),it=c("$ZodNumber",(e,t)=>{y.init(e,t),e._zod.pattern=e._zod.bag.pattern??Vr,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=Number(r.value)}catch{}const o=r.value;if(typeof o=="number"&&!Number.isNaN(o)&&Number.isFinite(o))return r;const a=typeof o=="number"?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...a?{received:a}:{}}),r}}),An=c("$ZodNumberFormat",(e,t)=>{Hr.init(e,t),it.init(e,t)}),Nn=c("$ZodBoolean",(e,t)=>{y.init(e,t),e._zod.pattern=Jr,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=!!r.value}catch{}const o=r.value;return typeof o=="boolean"||r.issues.push({expected:"boolean",code:"invalid_type",input:o,inst:e}),r}}),Rn=c("$ZodUnknown",(e,t)=>{y.init(e,t),e._zod.parse=r=>r}),jn=c("$ZodNever",(e,t)=>{y.init(e,t),e._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:e}),r)});function at(e,t,r){e.issues.length&&t.issues.push(...De(r,e.issues)),t.value[r]=e.value}var xn=c("$ZodArray",(e,t)=>{y.init(e,t),e._zod.parse=(r,n)=>{const o=r.value;if(!Array.isArray(o))return r.issues.push({expected:"array",code:"invalid_type",input:o,inst:e}),r;r.value=Array(o.length);const a=[];for(let i=0;i<o.length;i++){const s=o[i],u=t.element._zod.run({value:s,issues:[]},n);u instanceof Promise?a.push(u.then(l=>at(l,r,i))):at(u,r,i)}return a.length?Promise.all(a).then(()=>r):r}});function ie(e,t,r,n,o){if(e.issues.length){if(o&&!(r in n))return;t.issues.push(...De(r,e.issues))}e.value===void 0?r in n&&(t.value[r]=void 0):t.value[r]=e.value}function st(e){const t=Object.keys(e.shape);for(const n of t)if(!e.shape?.[n]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${n}": expected a Zod schema`);const r=cr(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(r)}}function ct(e,t,r,n,o,a){const i=[],s=o.keySet,u=o.catchall._zod,l=u.def.type,d=u.optout==="optional";for(const p in t){if(s.has(p))continue;if(l==="never"){i.push(p);continue}const h=u.run({value:t[p],issues:[]},n);h instanceof Promise?e.push(h.then(m=>ie(m,r,p,t,d))):ie(h,r,p,t,d)}return i.length&&r.issues.push({code:"unrecognized_keys",keys:i,input:t,inst:a}),e.length?Promise.all(e).then(()=>r):r}var Mn=c("$ZodObject",(e,t)=>{if(y.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){const i=t.shape;Object.defineProperty(t,"shape",{get:()=>{const s={...i};return Object.defineProperty(t,"shape",{value:s}),s}})}const r=ge(()=>st(t));g(e._zod,"propValues",()=>{const i=t.shape,s={};for(const u in i){const l=i[u]._zod;if(l.values){s[u]??(s[u]=new Set);for(const d of l.values)s[u].add(d)}}return s});const n=X,o=t.catchall;let a;e._zod.parse=(i,s)=>{a??(a=r.value);const u=i.value;if(!n(u))return i.issues.push({expected:"object",code:"invalid_type",input:u,inst:e}),i;i.value={};const l=[],d=a.shape;for(const p of a.keys){const h=d[p],m=h._zod.optout==="optional",w=h._zod.run({value:u[p],issues:[]},s);w instanceof Promise?l.push(w.then(Ce=>ie(Ce,i,p,u,m))):ie(w,i,p,u,m)}return o?ct(l,u,i,s,r.value,e):l.length?Promise.all(l).then(()=>i):i}}),Un=c("$ZodObjectJIT",(e,t)=>{Mn.init(e,t);const r=e._zod.parse,n=ge(()=>st(t)),o=h=>{const m=new an(["shape","payload","ctx"]),w=n.value,Ce=N=>{const Z=xe(N);return`shape[${Z}]._zod.run({ value: input[${Z}], issues: [] }, ctx)`};m.write("const input = payload.value;");const Gt=Object.create(null);let Xa=0;for(const N of w.keys)Gt[N]=`key_${Xa++}`;m.write("const newResult = {};");for(const N of w.keys){const Z=Gt[N],P=xe(N),Ya=h[N]?._zod?.optout==="optional";m.write(`const ${Z} = ${Ce(N)};`),Ya?m.write(`
|
|
4
|
+
if (${Z}.issues.length) {
|
|
5
|
+
if (${P} in input) {
|
|
6
|
+
payload.issues = payload.issues.concat(${Z}.issues.map(iss => ({
|
|
7
|
+
...iss,
|
|
8
|
+
path: iss.path ? [${P}, ...iss.path] : [${P}]
|
|
9
|
+
})));
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
if (${Z}.value === undefined) {
|
|
14
|
+
if (${P} in input) {
|
|
15
|
+
newResult[${P}] = undefined;
|
|
16
|
+
}
|
|
17
|
+
} else {
|
|
18
|
+
newResult[${P}] = ${Z}.value;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
`):m.write(`
|
|
22
|
+
if (${Z}.issues.length) {
|
|
23
|
+
payload.issues = payload.issues.concat(${Z}.issues.map(iss => ({
|
|
24
|
+
...iss,
|
|
25
|
+
path: iss.path ? [${P}, ...iss.path] : [${P}]
|
|
26
|
+
})));
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (${Z}.value === undefined) {
|
|
30
|
+
if (${P} in input) {
|
|
31
|
+
newResult[${P}] = undefined;
|
|
32
|
+
}
|
|
33
|
+
} else {
|
|
34
|
+
newResult[${P}] = ${Z}.value;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
`)}m.write("payload.value = newResult;"),m.write("return payload;");const Qa=m.compile();return(N,Z)=>Qa(h,N,Z)};let a;const i=X,s=!pe.jitless,l=s&&ar.value,d=t.catchall;let p;e._zod.parse=(h,m)=>{p??(p=n.value);const w=h.value;return i(w)?s&&l&&m?.async===!1&&m.jitless!==!0?(a||(a=o(t.shape)),h=a(h,m),d?ct([],w,h,m,p,e):h):r(h,m):(h.issues.push({expected:"object",code:"invalid_type",input:w,inst:e}),h)}});function ut(e,t,r,n){for(const a of e)if(a.issues.length===0)return t.value=a.value,t;const o=e.filter(a=>!W(a));return o.length===1?(t.value=o[0].value,o[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(a=>a.issues.map(i=>V(i,n,F())))}),t)}var Dn=c("$ZodUnion",(e,t)=>{y.init(e,t),g(e._zod,"optin",()=>t.options.some(o=>o._zod.optin==="optional")?"optional":void 0),g(e._zod,"optout",()=>t.options.some(o=>o._zod.optout==="optional")?"optional":void 0),g(e._zod,"values",()=>{if(t.options.every(o=>o._zod.values))return new Set(t.options.flatMap(o=>Array.from(o._zod.values)))}),g(e._zod,"pattern",()=>{if(t.options.every(o=>o._zod.pattern)){const o=t.options.map(a=>a._zod.pattern);return new RegExp(`^(${o.map(a=>be(a.source)).join("|")})$`)}});const r=t.options.length===1,n=t.options[0]._zod.run;e._zod.parse=(o,a)=>{if(r)return n(o,a);let i=!1;const s=[];for(const u of t.options){const l=u._zod.run({value:o.value,issues:[]},a);if(l instanceof Promise)s.push(l),i=!0;else{if(l.issues.length===0)return l;s.push(l)}}return i?Promise.all(s).then(u=>ut(u,o,e,a)):ut(s,o,e,a)}}),Fn=c("$ZodIntersection",(e,t)=>{y.init(e,t),e._zod.parse=(r,n)=>{const o=r.value,a=t.left._zod.run({value:o,issues:[]},n),i=t.right._zod.run({value:o,issues:[]},n);return a instanceof Promise||i instanceof Promise?Promise.all([a,i]).then(([s,u])=>lt(r,s,u)):lt(r,a,i)}});function ye(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(H(e)&&H(t)){const r=Object.keys(t),n=Object.keys(e).filter(a=>r.indexOf(a)!==-1),o={...e,...t};for(const a of n){const i=ye(e[a],t[a]);if(!i.valid)return{valid:!1,mergeErrorPath:[a,...i.mergeErrorPath]};o[a]=i.data}return{valid:!0,data:o}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const r=[];for(let n=0;n<e.length;n++){const o=e[n],a=t[n],i=ye(o,a);if(!i.valid)return{valid:!1,mergeErrorPath:[n,...i.mergeErrorPath]};r.push(i.data)}return{valid:!0,data:r}}return{valid:!1,mergeErrorPath:[]}}function lt(e,t,r){const n=new Map;let o;for(const s of t.issues)if(s.code==="unrecognized_keys"){o??(o=s);for(const u of s.keys)n.has(u)||n.set(u,{}),n.get(u).l=!0}else e.issues.push(s);for(const s of r.issues)if(s.code==="unrecognized_keys")for(const u of s.keys)n.has(u)||n.set(u,{}),n.get(u).r=!0;else e.issues.push(s);const a=[...n].filter(([,s])=>s.l&&s.r).map(([s])=>s);if(a.length&&o&&e.issues.push({...o,keys:a}),W(e))return e;const i=ye(t.value,r.value);if(!i.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(i.mergeErrorPath)}`);return e.value=i.data,e}var Ln=c("$ZodEnum",(e,t)=>{y.init(e,t);const r=Re(t.entries),n=new Set(r);e._zod.values=n,e._zod.pattern=new RegExp(`^(${r.filter(o=>sr.has(typeof o)).map(o=>typeof o=="string"?Q(o):o.toString()).join("|")})$`),e._zod.parse=(o,a)=>{const i=o.value;return n.has(i)||o.issues.push({code:"invalid_value",values:r,input:i,inst:e}),o}}),Vn=c("$ZodTransform",(e,t)=>{y.init(e,t),e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Ne(e.constructor.name);const o=t.transform(r.value,r);if(n.async)return(o instanceof Promise?o:Promise.resolve(o)).then(a=>(r.value=a,r));if(o instanceof Promise)throw new q;return r.value=o,r}});function dt(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}var ft=c("$ZodOptional",(e,t)=>{y.init(e,t),e._zod.optin="optional",e._zod.optout="optional",g(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),g(e._zod,"pattern",()=>{const r=t.innerType._zod.pattern;return r?new RegExp(`^(${be(r.source)})?$`):void 0}),e._zod.parse=(r,n)=>{if(t.innerType._zod.optin==="optional"){const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(a=>dt(a,r.value)):dt(o,r.value)}return r.value===void 0?r:t.innerType._zod.run(r,n)}}),Jn=c("$ZodExactOptional",(e,t)=>{ft.init(e,t),g(e._zod,"values",()=>t.innerType._zod.values),g(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(r,n)=>t.innerType._zod.run(r,n)}),qn=c("$ZodNullable",(e,t)=>{y.init(e,t),g(e._zod,"optin",()=>t.innerType._zod.optin),g(e._zod,"optout",()=>t.innerType._zod.optout),g(e._zod,"pattern",()=>{const r=t.innerType._zod.pattern;return r?new RegExp(`^(${be(r.source)}|null)$`):void 0}),g(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(r,n)=>r.value===null?r:t.innerType._zod.run(r,n)}),Wn=c("$ZodDefault",(e,t)=>{y.init(e,t),e._zod.optin="optional",g(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);if(r.value===void 0)return r.value=t.defaultValue,r;const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(a=>ht(a,t)):ht(o,t)}});function ht(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var Bn=c("$ZodPrefault",(e,t)=>{y.init(e,t),e._zod.optin="optional",g(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>(n.direction==="backward"||r.value===void 0&&(r.value=t.defaultValue),t.innerType._zod.run(r,n))}),Hn=c("$ZodNonOptional",(e,t)=>{y.init(e,t),g(e._zod,"values",()=>{const r=t.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),e._zod.parse=(r,n)=>{const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(a=>pt(a,e)):pt(o,e)}});function pt(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}var Kn=c("$ZodCatch",(e,t)=>{y.init(e,t),g(e._zod,"optin",()=>t.innerType._zod.optin),g(e._zod,"optout",()=>t.innerType._zod.optout),g(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(a=>(r.value=a.value,a.issues.length&&(r.value=t.catchValue({...r,error:{issues:a.issues.map(i=>V(i,n,F()))},input:r.value}),r.issues=[]),r)):(r.value=o.value,o.issues.length&&(r.value=t.catchValue({...r,error:{issues:o.issues.map(a=>V(a,n,F()))},input:r.value}),r.issues=[]),r)}}),Gn=c("$ZodPipe",(e,t)=>{y.init(e,t),g(e._zod,"values",()=>t.in._zod.values),g(e._zod,"optin",()=>t.in._zod.optin),g(e._zod,"optout",()=>t.out._zod.optout),g(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(r,n)=>{if(n.direction==="backward"){const a=t.out._zod.run(r,n);return a instanceof Promise?a.then(i=>ae(i,t.in,n)):ae(a,t.in,n)}const o=t.in._zod.run(r,n);return o instanceof Promise?o.then(a=>ae(a,t.out,n)):ae(o,t.out,n)}});function ae(e,t,r){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},r)}var Xn=c("$ZodReadonly",(e,t)=>{y.init(e,t),g(e._zod,"propValues",()=>t.innerType._zod.propValues),g(e._zod,"values",()=>t.innerType._zod.values),g(e._zod,"optin",()=>t.innerType?._zod?.optin),g(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(mt):mt(o)}});function mt(e){return e.value=Object.freeze(e.value),e}var Qn=c("$ZodCustom",(e,t)=>{S.init(e,t),y.init(e,t),e._zod.parse=(r,n)=>r,e._zod.check=r=>{const n=r.value,o=t.fn(n);if(o instanceof Promise)return o.then(a=>gt(a,r,n,e));gt(o,r,n,e)}});function gt(e,t,r,n){if(!e){const o={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(o.params=n._zod.def.params),t.issues.push(K(o))}}var vt,Yn=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){const r=t[0];return this._map.set(e,r),r&&typeof r=="object"&&"id"in r&&this._idmap.set(r.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){const t=this._map.get(e);return t&&typeof t=="object"&&"id"in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){const t=e._zod.parent;if(t){const r={...this.get(t)??{}};delete r.id;const n={...r,...this._map.get(e)};return Object.keys(n).length?n:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function eo(){return new Yn}(vt=globalThis).__zod_globalRegistry??(vt.__zod_globalRegistry=eo());var R=globalThis.__zod_globalRegistry;function to(e,t){return new e({type:"string",...f(t)})}function ro(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...f(t)})}function bt(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...f(t)})}function no(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...f(t)})}function oo(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...f(t)})}function io(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...f(t)})}function ao(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...f(t)})}function so(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...f(t)})}function co(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...f(t)})}function uo(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...f(t)})}function lo(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...f(t)})}function fo(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...f(t)})}function ho(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...f(t)})}function po(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...f(t)})}function mo(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...f(t)})}function go(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...f(t)})}function vo(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...f(t)})}function bo(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...f(t)})}function _o(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...f(t)})}function wo(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...f(t)})}function yo(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...f(t)})}function zo(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...f(t)})}function ko(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...f(t)})}function $o(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...f(t)})}function So(e,t){return new e({type:"string",format:"date",check:"string_format",...f(t)})}function Oo(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...f(t)})}function Zo(e,t){return new e({type:"string",format:"duration",check:"string_format",...f(t)})}function Eo(e,t){return new e({type:"number",checks:[],...f(t)})}function Io(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...f(t)})}function To(e,t){return new e({type:"boolean",...f(t)})}function Po(e){return new e({type:"unknown"})}function Co(e,t){return new e({type:"never",...f(t)})}function _t(e,t){return new rt({check:"less_than",...f(t),value:e,inclusive:!1})}function ze(e,t){return new rt({check:"less_than",...f(t),value:e,inclusive:!0})}function wt(e,t){return new nt({check:"greater_than",...f(t),value:e,inclusive:!1})}function ke(e,t){return new nt({check:"greater_than",...f(t),value:e,inclusive:!0})}function yt(e,t){return new Br({check:"multiple_of",...f(t),value:e})}function zt(e,t){return new Kr({check:"max_length",...f(t),maximum:e})}function se(e,t){return new Gr({check:"min_length",...f(t),minimum:e})}function kt(e,t){return new Xr({check:"length_equals",...f(t),length:e})}function Ao(e,t){return new Qr({check:"string_format",format:"regex",...f(t),pattern:e})}function No(e){return new Yr({check:"string_format",format:"lowercase",...f(e)})}function Ro(e){return new en({check:"string_format",format:"uppercase",...f(e)})}function jo(e,t){return new tn({check:"string_format",format:"includes",...f(t),includes:e})}function xo(e,t){return new rn({check:"string_format",format:"starts_with",...f(t),prefix:e})}function Mo(e,t){return new nn({check:"string_format",format:"ends_with",...f(t),suffix:e})}function B(e){return new on({check:"overwrite",tx:e})}function Uo(e){return B(t=>t.normalize(e))}function Do(){return B(e=>e.trim())}function Fo(){return B(e=>e.toLowerCase())}function Lo(){return B(e=>e.toUpperCase())}function Vo(){return B(e=>ir(e))}function Jo(e,t,r){return new e({type:"array",element:t,...f(r)})}function qo(e,t,r){const n=f(r);return n.abort??(n.abort=!0),new e({type:"custom",check:"custom",fn:t,...n})}function Wo(e,t,r){return new e({type:"custom",check:"custom",fn:t,...f(r)})}function Bo(e){const t=Ho(r=>(r.addIssue=n=>{if(typeof n=="string")r.issues.push(K(n,r.value,t._zod.def));else{const o=n;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=r.value),o.inst??(o.inst=t),o.continue??(o.continue=!t._zod.def.abort),r.issues.push(K(o))}},e(r.value,r)));return t}function Ho(e,t){const r=new S({check:"custom",...f(t)});return r._zod.check=e,r}function Ko(e){const t=new S({check:"describe"});return t._zod.onattach=[r=>{const n=R.get(r)??{};R.add(r,{...n,description:e})}],t._zod.check=()=>{},t}function Go(e){const t=new S({check:"meta"});return t._zod.onattach=[r=>{const n=R.get(r)??{};R.add(r,{...n,...e})}],t._zod.check=()=>{},t}function $t(e){let t=e?.target??"draft-2020-12";return t==="draft-4"&&(t="draft-04"),t==="draft-7"&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??R,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function $(e,t,r={path:[],schemaPath:[]}){var n;const o=e._zod.def,a=t.seen.get(e);if(a)return a.count++,r.schemaPath.includes(e)&&(a.cycle=r.path),a.schema;const i={schema:{},count:1,cycle:void 0,path:r.path};t.seen.set(e,i);const s=e._zod.toJSONSchema?.();if(s)i.schema=s;else{const l={...r,schemaPath:[...r.schemaPath,e],path:r.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,i.schema,l);else{const p=i.schema,h=t.processors[o.type];if(!h)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);h(e,t,p,l)}const d=e._zod.parent;d&&(i.ref||(i.ref=d),$(d,t,l),t.seen.get(d).isParent=!0)}const u=t.metadataRegistry.get(e);return u&&Object.assign(i.schema,u),t.io==="input"&&O(e)&&(delete i.schema.examples,delete i.schema.default),t.io==="input"&&i.schema._prefault&&((n=i.schema).default??(n.default=i.schema._prefault)),delete i.schema._prefault,t.seen.get(e).schema}function St(e,t){const r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");const n=new Map;for(const i of e.seen.entries()){const s=e.metadataRegistry.get(i[0])?.id;if(s){const u=n.get(s);if(u&&u!==i[0])throw new Error(`Duplicate schema id "${s}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);n.set(s,i[0])}}const o=i=>{const s=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){const d=e.external.registry.get(i[0])?.id,p=e.external.uri??(m=>m);if(d)return{ref:p(d)};const h=i[1].defId??i[1].schema.id??`schema${e.counter++}`;return i[1].defId=h,{defId:h,ref:`${p("__shared")}#/${s}/${h}`}}if(i[1]===r)return{ref:"#"};const u=`#/${s}/`,l=i[1].schema.id??`__schema${e.counter++}`;return{defId:l,ref:u+l}},a=i=>{if(i[1].schema.$ref)return;const s=i[1],{ref:u,defId:l}=o(i);s.def={...s.schema},l&&(s.defId=l);const d=s.schema;for(const p in d)delete d[p];d.$ref=u};if(e.cycles==="throw")for(const i of e.seen.entries()){const s=i[1];if(s.cycle)throw new Error(`Cycle detected: #/${s.cycle?.join("/")}/<root>
|
|
38
|
+
|
|
39
|
+
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const i of e.seen.entries()){const s=i[1];if(t===i[0]){a(i);continue}if(e.external){const u=e.external.registry.get(i[0])?.id;if(t!==i[0]&&u){a(i);continue}}if(e.metadataRegistry.get(i[0])?.id){a(i);continue}if(s.cycle){a(i);continue}if(s.count>1&&e.reused==="ref"){a(i);continue}}}function Ot(e,t){const r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");const n=i=>{const s=e.seen.get(i);if(s.ref===null)return;const u=s.def??s.schema,l={...u},d=s.ref;if(s.ref=null,d){n(d);const h=e.seen.get(d),m=h.schema;if(m.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(u.allOf=u.allOf??[],u.allOf.push(m)):Object.assign(u,m),Object.assign(u,l),i._zod.parent===d)for(const w in u)w==="$ref"||w==="allOf"||w in l||delete u[w];if(m.$ref&&h.def)for(const w in u)w==="$ref"||w==="allOf"||w in h.def&&JSON.stringify(u[w])===JSON.stringify(h.def[w])&&delete u[w]}const p=i._zod.parent;if(p&&p!==d){n(p);const h=e.seen.get(p);if(h?.schema.$ref&&(u.$ref=h.schema.$ref,h.def))for(const m in u)m==="$ref"||m==="allOf"||m in h.def&&JSON.stringify(u[m])===JSON.stringify(h.def[m])&&delete u[m]}e.override({zodSchema:i,jsonSchema:u,path:s.path??[]})};for(const i of[...e.seen.entries()].reverse())n(i[0]);const o={};if(e.target==="draft-2020-12"?o.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?o.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?o.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const i=e.external.registry.get(t)?.id;if(!i)throw new Error("Schema is missing an `id` property");o.$id=e.external.uri(i)}Object.assign(o,r.def??r.schema);const a=e.external?.defs??{};for(const i of e.seen.entries()){const s=i[1];s.def&&s.defId&&(a[s.defId]=s.def)}e.external||Object.keys(a).length>0&&(e.target==="draft-2020-12"?o.$defs=a:o.definitions=a);try{const i=JSON.parse(JSON.stringify(o));return Object.defineProperty(i,"~standard",{value:{...t["~standard"],jsonSchema:{input:ce(t,"input",e.processors),output:ce(t,"output",e.processors)}},enumerable:!1,writable:!1}),i}catch{throw new Error("Error converting schema to JSON.")}}function O(e,t){const r=t??{seen:new Set};if(r.seen.has(e))return!1;r.seen.add(e);const n=e._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return O(n.element,r);if(n.type==="set")return O(n.valueType,r);if(n.type==="lazy")return O(n.getter(),r);if(n.type==="promise"||n.type==="optional"||n.type==="nonoptional"||n.type==="nullable"||n.type==="readonly"||n.type==="default"||n.type==="prefault")return O(n.innerType,r);if(n.type==="intersection")return O(n.left,r)||O(n.right,r);if(n.type==="record"||n.type==="map")return O(n.keyType,r)||O(n.valueType,r);if(n.type==="pipe")return O(n.in,r)||O(n.out,r);if(n.type==="object"){for(const o in n.shape)if(O(n.shape[o],r))return!0;return!1}if(n.type==="union"){for(const o of n.options)if(O(o,r))return!0;return!1}if(n.type==="tuple"){for(const o of n.items)if(O(o,r))return!0;return!!(n.rest&&O(n.rest,r))}return!1}var Xo=(e,t={})=>r=>{const n=$t({...r,processors:t});return $(e,n),St(n,e),Ot(n,e)},ce=(e,t,r={})=>n=>{const{libraryOptions:o,target:a}=n??{},i=$t({...o??{},target:a,io:t,processors:r});return $(e,i),St(i,e),Ot(i,e)},Qo={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Yo=(e,t,r,n)=>{const o=r;o.type="string";const{minimum:a,maximum:i,format:s,patterns:u,contentEncoding:l}=e._zod.bag;if(typeof a=="number"&&(o.minLength=a),typeof i=="number"&&(o.maxLength=i),s&&(o.format=Qo[s]??s,o.format===""&&delete o.format,s==="time"&&delete o.format),l&&(o.contentEncoding=l),u&&u.size>0){const d=[...u];d.length===1?o.pattern=d[0].source:d.length>1&&(o.allOf=[...d.map(p=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:p.source}))])}},ei=(e,t,r,n)=>{const o=r,{minimum:a,maximum:i,format:s,multipleOf:u,exclusiveMaximum:l,exclusiveMinimum:d}=e._zod.bag;typeof s=="string"&&s.includes("int")?o.type="integer":o.type="number",typeof d=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(o.minimum=d,o.exclusiveMinimum=!0):o.exclusiveMinimum=d),typeof a=="number"&&(o.minimum=a,typeof d=="number"&&t.target!=="draft-04"&&(d>=a?delete o.minimum:delete o.exclusiveMinimum)),typeof l=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(o.maximum=l,o.exclusiveMaximum=!0):o.exclusiveMaximum=l),typeof i=="number"&&(o.maximum=i,typeof l=="number"&&t.target!=="draft-04"&&(l<=i?delete o.maximum:delete o.exclusiveMaximum)),typeof u=="number"&&(o.multipleOf=u)},ti=(e,t,r,n)=>{r.type="boolean"},ri=(e,t,r,n)=>{r.not={}},ni=(e,t,r,n)=>{},oi=(e,t,r,n)=>{const o=e._zod.def,a=Re(o.entries);a.every(i=>typeof i=="number")&&(r.type="number"),a.every(i=>typeof i=="string")&&(r.type="string"),r.enum=a},ii=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},ai=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},si=(e,t,r,n)=>{const o=r,a=e._zod.def,{minimum:i,maximum:s}=e._zod.bag;typeof i=="number"&&(o.minItems=i),typeof s=="number"&&(o.maxItems=s),o.type="array",o.items=$(a.element,t,{...n,path:[...n.path,"items"]})},ci=(e,t,r,n)=>{const o=r,a=e._zod.def;o.type="object",o.properties={};const i=a.shape;for(const l in i)o.properties[l]=$(i[l],t,{...n,path:[...n.path,"properties",l]});const s=new Set(Object.keys(i)),u=new Set([...s].filter(l=>{const d=a.shape[l]._zod;return t.io==="input"?d.optin===void 0:d.optout===void 0}));u.size>0&&(o.required=Array.from(u)),a.catchall?._zod.def.type==="never"?o.additionalProperties=!1:a.catchall?a.catchall&&(o.additionalProperties=$(a.catchall,t,{...n,path:[...n.path,"additionalProperties"]})):t.io==="output"&&(o.additionalProperties=!1)},ui=(e,t,r,n)=>{const o=e._zod.def,a=o.inclusive===!1,i=o.options.map((s,u)=>$(s,t,{...n,path:[...n.path,a?"oneOf":"anyOf",u]}));a?r.oneOf=i:r.anyOf=i},li=(e,t,r,n)=>{const o=e._zod.def,a=$(o.left,t,{...n,path:[...n.path,"allOf",0]}),i=$(o.right,t,{...n,path:[...n.path,"allOf",1]}),s=u=>"allOf"in u&&Object.keys(u).length===1;r.allOf=[...s(a)?a.allOf:[a],...s(i)?i.allOf:[i]]},di=(e,t,r,n)=>{const o=e._zod.def,a=$(o.innerType,t,n),i=t.seen.get(e);t.target==="openapi-3.0"?(i.ref=o.innerType,r.nullable=!0):r.anyOf=[a,{type:"null"}]},fi=(e,t,r,n)=>{const o=e._zod.def;$(o.innerType,t,n);const a=t.seen.get(e);a.ref=o.innerType},hi=(e,t,r,n)=>{const o=e._zod.def;$(o.innerType,t,n);const a=t.seen.get(e);a.ref=o.innerType,r.default=JSON.parse(JSON.stringify(o.defaultValue))},pi=(e,t,r,n)=>{const o=e._zod.def;$(o.innerType,t,n);const a=t.seen.get(e);a.ref=o.innerType,t.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(o.defaultValue)))},mi=(e,t,r,n)=>{const o=e._zod.def;$(o.innerType,t,n);const a=t.seen.get(e);a.ref=o.innerType;let i;try{i=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=i},gi=(e,t,r,n)=>{const o=e._zod.def,a=t.io==="input"?o.in._zod.def.type==="transform"?o.out:o.in:o.out;$(a,t,n);const i=t.seen.get(e);i.ref=a},vi=(e,t,r,n)=>{const o=e._zod.def;$(o.innerType,t,n);const a=t.seen.get(e);a.ref=o.innerType,r.readOnly=!0},Zt=(e,t,r,n)=>{const o=e._zod.def;$(o.innerType,t,n);const a=t.seen.get(e);a.ref=o.innerType},bi=c("ZodISODateTime",(e,t)=>{_n.init(e,t),_.init(e,t)});function _i(e){return $o(bi,e)}var wi=c("ZodISODate",(e,t)=>{wn.init(e,t),_.init(e,t)});function yi(e){return So(wi,e)}var zi=c("ZodISOTime",(e,t)=>{yn.init(e,t),_.init(e,t)});function ki(e){return Oo(zi,e)}var $i=c("ZodISODuration",(e,t)=>{zn.init(e,t),_.init(e,t)});function Si(e){return Zo($i,e)}var Et=(e,t)=>{Le.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:r=>br(e,r)},flatten:{value:r=>vr(e,r)},addIssue:{value:r=>{e.issues.push(r),e.message=JSON.stringify(e.issues,me,2)}},addIssues:{value:r=>{e.issues.push(...r),e.message=JSON.stringify(e.issues,me,2)}},isEmpty:{get(){return e.issues.length===0}}})},ds=c("ZodError",Et),T=c("ZodError",Et,{Parent:Error}),Oi=ee(T),Zi=te(T),Ei=re(T),Ii=ne(T),Ti=Ve(T),Pi=Je(T),Ci=qe(T),Ai=We(T),Ni=Be(T),Ri=He(T),ji=Ke(T),xi=Ge(T),z=c("ZodType",(e,t)=>(y.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:ce(e,"input"),output:ce(e,"output")}}),e.toJSONSchema=Xo(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...r)=>e.clone(x(t,{checks:[...t.checks??[],...r.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]}),{parent:!0}),e.with=e.check,e.clone=(r,n)=>M(e,r,n),e.brand=()=>e,e.register=((r,n)=>(r.add(e,n),e)),e.parse=(r,n)=>Oi(e,r,n,{callee:e.parse}),e.safeParse=(r,n)=>Ei(e,r,n),e.parseAsync=async(r,n)=>Zi(e,r,n,{callee:e.parseAsync}),e.safeParseAsync=async(r,n)=>Ii(e,r,n),e.spa=e.safeParseAsync,e.encode=(r,n)=>Ti(e,r,n),e.decode=(r,n)=>Pi(e,r,n),e.encodeAsync=async(r,n)=>Ci(e,r,n),e.decodeAsync=async(r,n)=>Ai(e,r,n),e.safeEncode=(r,n)=>Ni(e,r,n),e.safeDecode=(r,n)=>Ri(e,r,n),e.safeEncodeAsync=async(r,n)=>ji(e,r,n),e.safeDecodeAsync=async(r,n)=>xi(e,r,n),e.refine=(r,n)=>e.check(Ea(r,n)),e.superRefine=r=>e.check(Ia(r)),e.overwrite=r=>e.check(B(r)),e.optional=()=>jt(e),e.exactOptional=()=>ma(e),e.nullable=()=>xt(e),e.nullish=()=>jt(xt(e)),e.nonoptional=r=>ya(e,r),e.array=()=>Se(e),e.or=r=>Nt([e,r]),e.and=r=>da(e,r),e.transform=r=>Ut(e,ha(r)),e.default=r=>ba(e,r),e.prefault=r=>wa(e,r),e.catch=r=>ka(e,r),e.pipe=r=>Ut(e,r),e.readonly=()=>Oa(e),e.describe=r=>{const n=e.clone();return R.add(n,{description:r}),n},Object.defineProperty(e,"description",{get(){return R.get(e)?.description},configurable:!0}),e.meta=(...r)=>{if(r.length===0)return R.get(e);const n=e.clone();return R.add(n,r[0]),n},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=r=>r(e),e)),It=c("_ZodString",(e,t)=>{we.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,o,a)=>Yo(e,n,o,a);const r=e._zod.bag;e.format=r.format??null,e.minLength=r.minimum??null,e.maxLength=r.maximum??null,e.regex=(...n)=>e.check(Ao(...n)),e.includes=(...n)=>e.check(jo(...n)),e.startsWith=(...n)=>e.check(xo(...n)),e.endsWith=(...n)=>e.check(Mo(...n)),e.min=(...n)=>e.check(se(...n)),e.max=(...n)=>e.check(zt(...n)),e.length=(...n)=>e.check(kt(...n)),e.nonempty=(...n)=>e.check(se(1,...n)),e.lowercase=n=>e.check(No(n)),e.uppercase=n=>e.check(Ro(n)),e.trim=()=>e.check(Do()),e.normalize=(...n)=>e.check(Uo(...n)),e.toLowerCase=()=>e.check(Fo()),e.toUpperCase=()=>e.check(Lo()),e.slugify=()=>e.check(Vo())}),Mi=c("ZodString",(e,t)=>{we.init(e,t),It.init(e,t),e.email=r=>e.check(ro(Ui,r)),e.url=r=>e.check(so(Di,r)),e.jwt=r=>e.check(ko(ta,r)),e.emoji=r=>e.check(co(Fi,r)),e.guid=r=>e.check(bt(Tt,r)),e.uuid=r=>e.check(no(ue,r)),e.uuidv4=r=>e.check(oo(ue,r)),e.uuidv6=r=>e.check(io(ue,r)),e.uuidv7=r=>e.check(ao(ue,r)),e.nanoid=r=>e.check(uo(Li,r)),e.guid=r=>e.check(bt(Tt,r)),e.cuid=r=>e.check(lo(Vi,r)),e.cuid2=r=>e.check(fo(Ji,r)),e.ulid=r=>e.check(ho(qi,r)),e.base64=r=>e.check(wo(Qi,r)),e.base64url=r=>e.check(yo(Yi,r)),e.xid=r=>e.check(po(Wi,r)),e.ksuid=r=>e.check(mo(Bi,r)),e.ipv4=r=>e.check(go(Hi,r)),e.ipv6=r=>e.check(vo(Ki,r)),e.cidrv4=r=>e.check(bo(Gi,r)),e.cidrv6=r=>e.check(_o(Xi,r)),e.e164=r=>e.check(zo(ea,r)),e.datetime=r=>e.check(_i(r)),e.date=r=>e.check(yi(r)),e.time=r=>e.check(ki(r)),e.duration=r=>e.check(Si(r))});function b(e){return to(Mi,e)}var _=c("ZodStringFormat",(e,t)=>{v.init(e,t),It.init(e,t)}),Ui=c("ZodEmail",(e,t)=>{ln.init(e,t),_.init(e,t)}),Tt=c("ZodGUID",(e,t)=>{cn.init(e,t),_.init(e,t)}),ue=c("ZodUUID",(e,t)=>{un.init(e,t),_.init(e,t)}),Di=c("ZodURL",(e,t)=>{dn.init(e,t),_.init(e,t)}),Fi=c("ZodEmoji",(e,t)=>{fn.init(e,t),_.init(e,t)}),Li=c("ZodNanoID",(e,t)=>{hn.init(e,t),_.init(e,t)}),Vi=c("ZodCUID",(e,t)=>{pn.init(e,t),_.init(e,t)}),Ji=c("ZodCUID2",(e,t)=>{mn.init(e,t),_.init(e,t)}),qi=c("ZodULID",(e,t)=>{gn.init(e,t),_.init(e,t)}),Wi=c("ZodXID",(e,t)=>{vn.init(e,t),_.init(e,t)}),Bi=c("ZodKSUID",(e,t)=>{bn.init(e,t),_.init(e,t)}),Hi=c("ZodIPv4",(e,t)=>{kn.init(e,t),_.init(e,t)}),Ki=c("ZodIPv6",(e,t)=>{$n.init(e,t),_.init(e,t)}),Gi=c("ZodCIDRv4",(e,t)=>{Sn.init(e,t),_.init(e,t)}),Xi=c("ZodCIDRv6",(e,t)=>{On.init(e,t),_.init(e,t)}),Qi=c("ZodBase64",(e,t)=>{Zn.init(e,t),_.init(e,t)}),Yi=c("ZodBase64URL",(e,t)=>{In.init(e,t),_.init(e,t)}),ea=c("ZodE164",(e,t)=>{Tn.init(e,t),_.init(e,t)}),ta=c("ZodJWT",(e,t)=>{Cn.init(e,t),_.init(e,t)}),Pt=c("ZodNumber",(e,t)=>{it.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,o,a)=>ei(e,n,o,a),e.gt=(n,o)=>e.check(wt(n,o)),e.gte=(n,o)=>e.check(ke(n,o)),e.min=(n,o)=>e.check(ke(n,o)),e.lt=(n,o)=>e.check(_t(n,o)),e.lte=(n,o)=>e.check(ze(n,o)),e.max=(n,o)=>e.check(ze(n,o)),e.int=n=>e.check(Ct(n)),e.safe=n=>e.check(Ct(n)),e.positive=n=>e.check(wt(0,n)),e.nonnegative=n=>e.check(ke(0,n)),e.negative=n=>e.check(_t(0,n)),e.nonpositive=n=>e.check(ze(0,n)),e.multipleOf=(n,o)=>e.check(yt(n,o)),e.step=(n,o)=>e.check(yt(n,o)),e.finite=()=>e;const r=e._zod.bag;e.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),e.isFinite=!0,e.format=r.format??null});function $e(e){return Eo(Pt,e)}var ra=c("ZodNumberFormat",(e,t)=>{An.init(e,t),Pt.init(e,t)});function Ct(e){return Io(ra,e)}var na=c("ZodBoolean",(e,t)=>{Nn.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>ti(e,r,n,o)});function U(e){return To(na,e)}var oa=c("ZodUnknown",(e,t)=>{Rn.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>ni(e,r,n,o)});function At(){return Po(oa)}var ia=c("ZodNever",(e,t)=>{jn.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>ri(e,r,n,o)});function aa(e){return Co(ia,e)}var sa=c("ZodArray",(e,t)=>{xn.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>si(e,r,n,o),e.element=t.element,e.min=(r,n)=>e.check(se(r,n)),e.nonempty=r=>e.check(se(1,r)),e.max=(r,n)=>e.check(zt(r,n)),e.length=(r,n)=>e.check(kt(r,n)),e.unwrap=()=>e.element});function Se(e,t){return Jo(sa,e,t)}var ca=c("ZodObject",(e,t)=>{Un.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>ci(e,r,n,o),g(e,"shape",()=>t.shape),e.keyof=()=>E(Object.keys(e._zod.def.shape)),e.catchall=r=>e.clone({...e._zod.def,catchall:r}),e.passthrough=()=>e.clone({...e._zod.def,catchall:At()}),e.loose=()=>e.clone({...e._zod.def,catchall:At()}),e.strict=()=>e.clone({...e._zod.def,catchall:aa()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=r=>fr(e,r),e.safeExtend=r=>hr(e,r),e.merge=r=>pr(e,r),e.pick=r=>lr(e,r),e.omit=r=>dr(e,r),e.partial=(...r)=>mr(Rt,e,r[0]),e.required=(...r)=>gr(Mt,e,r[0])});function C(e,t){return new ca({type:"object",shape:e??{},...f(t)})}var ua=c("ZodUnion",(e,t)=>{Dn.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>ui(e,r,n,o),e.options=t.options});function Nt(e,t){return new ua({type:"union",options:e,...f(t)})}var la=c("ZodIntersection",(e,t)=>{Fn.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>li(e,r,n,o)});function da(e,t){return new la({type:"intersection",left:e,right:t})}var Oe=c("ZodEnum",(e,t)=>{Ln.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,o,a)=>oi(e,n,o,a),e.enum=t.entries,e.options=Object.values(t.entries);const r=new Set(Object.keys(t.entries));e.extract=(n,o)=>{const a={};for(const i of n)if(r.has(i))a[i]=t.entries[i];else throw new Error(`Key ${i} not found in enum`);return new Oe({...t,checks:[],...f(o),entries:a})},e.exclude=(n,o)=>{const a={...t.entries};for(const i of n)if(r.has(i))delete a[i];else throw new Error(`Key ${i} not found in enum`);return new Oe({...t,checks:[],...f(o),entries:a})}});function E(e,t){return new Oe({type:"enum",entries:Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e,...f(t)})}var fa=c("ZodTransform",(e,t)=>{Vn.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>ai(e,r,n,o),e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new Ne(e.constructor.name);r.addIssue=a=>{if(typeof a=="string")r.issues.push(K(a,r.value,t));else{const i=a;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=r.value),i.inst??(i.inst=e),r.issues.push(K(i))}};const o=t.transform(r.value,r);return o instanceof Promise?o.then(a=>(r.value=a,r)):(r.value=o,r)}});function ha(e){return new fa({type:"transform",transform:e})}var Rt=c("ZodOptional",(e,t)=>{ft.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Zt(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function jt(e){return new Rt({type:"optional",innerType:e})}var pa=c("ZodExactOptional",(e,t)=>{Jn.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Zt(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function ma(e){return new pa({type:"optional",innerType:e})}var ga=c("ZodNullable",(e,t)=>{qn.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>di(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function xt(e){return new ga({type:"nullable",innerType:e})}var va=c("ZodDefault",(e,t)=>{Wn.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>hi(e,r,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function ba(e,t){return new va({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():Ue(t)}})}var _a=c("ZodPrefault",(e,t)=>{Bn.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>pi(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function wa(e,t){return new _a({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():Ue(t)}})}var Mt=c("ZodNonOptional",(e,t)=>{Hn.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>fi(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function ya(e,t){return new Mt({type:"nonoptional",innerType:e,...f(t)})}var za=c("ZodCatch",(e,t)=>{Kn.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>mi(e,r,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function ka(e,t){return new za({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}var $a=c("ZodPipe",(e,t)=>{Gn.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>gi(e,r,n,o),e.in=t.in,e.out=t.out});function Ut(e,t){return new $a({type:"pipe",in:e,out:t})}var Sa=c("ZodReadonly",(e,t)=>{Xn.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>vi(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function Oa(e){return new Sa({type:"readonly",innerType:e})}var Dt=c("ZodCustom",(e,t)=>{Qn.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>ii(e,r,n,o)});function Za(e,t){return qo(Dt,e??(()=>!0),t)}function Ea(e,t={}){return Wo(Dt,e,t)}function Ia(e){return Bo(e)}var fs=Ko,hs=Go,Ze=/^#[0-9a-fA-F]{6}$/,Ee="Color must be a 6-digit hex code (e.g. '#3B82F6'). Short hex, rgb(), and named colors are not supported.",le=C({primaryColor:b().max(20).regex(Ze,Ee).describe("Primary brand color (hex format, e.g., '#3B82F6')").optional(),backgroundColor:b().max(20).regex(Ze,Ee).describe("Background color for the widget container").optional(),textColor:b().max(20).regex(Ze,Ee).describe("Text color").optional(),borderRadius:$e().describe("Border radius in pixels").optional(),fontFamily:b().max(100).describe("Font family").optional(),colorScheme:E(["light","dark","auto"]).describe("Widget color scheme: 'light' (default), 'dark', or 'auto' (follows the visitor's prefers-color-scheme).").optional()}),ps=E(["mobile","tablet","desktop"]).describe("Viewport mode: mobile (<480px), tablet (480-768px), desktop (>768px)"),Ie=E(["bottom-right","bottom-left","inline"]).describe("Widget position on the page"),Ta=C({mobile:$e().min(0).max(1e3).describe("Max width for mobile viewport (default: 480)").optional(),tablet:$e().min(0).max(2e3).describe("Max width for tablet viewport (default: 768)").optional()}),Pa=C({enabled:U().describe("Enable responsive behavior (default: true)").optional(),breakpoints:Ta.describe("Custom breakpoint values").optional()}),Ca=C({theme:le.describe("Custom theme configuration").optional(),position:Ie.describe("Widget position (default: 'bottom-right')").optional(),open:U().describe("Initial open state (default: false)").optional(),container:Nt([Za(e=>e instanceof HTMLElement),b().max(200)]).describe("Container element for inline mode").optional(),baseUrl:b().url().max(200).describe("Base URL for the widget embed (default: production URL)").optional(),debug:U().describe("Enable debug logging").optional(),responsive:Pa.describe("Responsive behavior configuration").optional(),showProfile:U().describe("Show profile panel in widget header (default: false)").optional(),language:b().max(10).describe("Language for UI labels (e.g., 'fr', 'en'). Defaults to browser language.").optional(),apiKey:b().max(100).describe("Publishable API key (pk_*) for application authentication"),email:b().email().max(255).describe("Pre-identified user email (host-attested identity)").optional(),userId:b().max(255).describe("Host-side unique user identifier").optional(),userHash:b().max(128).describe("HMAC-SHA256 of email (or userId), signed with identity secret").optional()}),Aa=C({theme:le.describe("Full visual theme palette applied by the widget. Admin-configured, no client-side override.").optional(),position:Ie.describe("Default launcher position. `inline` only applies when integrator supplies `data-container`.").optional(),language:b().max(10).describe("Locale forced for widget UI labels (ISO 639-1). Falls back to browser language when null.").optional(),showProfile:U().describe("Whether the widget header exposes the profile panel to end-users.").optional(),open:U().describe("Default open state on load. Host can still call `window.Versiq.open()` programmatically.").optional(),brand:C({title:b().max(60).describe("Custom widget header title. Falls back to a vertical-specific default (e.g. 'Versiq Chat' for B2B) when unset.").optional(),avatarUrl:b().url().max(2048).describe("Public URL of the custom widget avatar (PNG or JPEG). MUST originate from the branding-upload endpoint — arbitrary external URLs are rejected at the API boundary.").optional()}).strict().describe("White-label branding overrides (issue #1083 Piste 5). Both fields are optional.").optional()}).strict(),Ft=C({applicationId:b().uuid().describe("Application UUID"),applicationSlug:b().max(100).describe("Application slug (kebab-case)"),applicationName:b().max(200).describe("Application display name"),vertical:b().max(50).describe("Vertical resolved from Application config"),theme:le.nullable().describe("Application theme"),allowedOrigins:Se(b().max(200)).max(50).describe("Allowed origins for this application"),monitoring:U().describe("Monitoring enabled flag"),primaryObjective:C({id:b().uuid(),type:b(),label:b(),ctaLabel:b().nullable()}).nullable().describe("Primary conversion objective"),identityVerificationRequired:U().describe("Whether HMAC identity verification is required"),widget:Aa.nullable().describe("Admin-configured widget runtime config (theme, position, language, showProfile, open). Null when the application has not yet persisted a widget_config JSONB.")}),Na=E(["user","assistant"]).describe("Message sender role"),Ra=C({role:Na.describe("Message sender role"),content:b().max(1e4).describe("Message content (max 10000 characters)")}),ja=E(["prospect","partner","unknown"]).describe("Type of user"),xa=E(["ecommerce","real-estate","automotive","travel","recruitment","other"]).describe("Business sector"),Ma=E(["startup","pme","eti","grand-groupe"]).describe("Company size category"),Ua=E(["< 10k","10k-50k","50k-200k","> 200k"]).describe("Monthly website traffic"),Da=E(["lead-qualification","personalization","cart-abandonment","conversion","other"]).describe("Business objective"),Fa=E(["shopify","woocommerce","prestashop","custom","none"]).describe("E-commerce platform"),La=E(["immediate","1-month","3-months","exploring"]).describe("Implementation timeline"),Va=E(["< 500","500-2000","2000-5000","> 5000"]).describe("Monthly budget range in EUR"),Ja=C({userType:ja.optional().describe("User type: prospect, partner, or unknown"),sector:xa.optional().describe("Business sector"),companySize:Ma.optional().describe("Company size range"),monthlyTraffic:Ua.optional().describe("Monthly website traffic"),objectives:Se(Da).max(5).describe("List of business objectives (max 5)").optional(),platform:Fa.optional().describe("E-commerce platform"),timeline:La.optional().describe("Project timeline"),budgetRange:Va.optional().describe("Monthly budget range")}),J=class extends Error{constructor(e,t){super(e),this.code=t,this.name="ConfigFetchError"}},Lt=1e4;async function Vt(e,t,r){const n=t.endsWith("/")?t:`${t}/`,o=new URL("api/application/config",n),a=new AbortController,i=setTimeout(()=>a.abort(),Lt),s=r?AbortSignal.any([a.signal,r]):a.signal;let u;try{u=await fetch(o.toString(),{signal:s,headers:{"x-versiq-key":e}})}catch(p){throw clearTimeout(i),r?.aborted?new J("Config fetch aborted by caller","ABORTED"):p instanceof DOMException&&p.name==="AbortError"?new J(`Config fetch timed out after ${Lt}ms`,"TIMEOUT"):new J(`Network error fetching application config: ${p instanceof Error?p.message:String(p)}`,"NETWORK_ERROR")}if(clearTimeout(i),!u.ok){const p=await u.text().catch(()=>"");throw new J(`HTTP ${u.status} fetching application config: ${p}`,`HTTP_${u.status}`)}const l=await u.json(),d=Ft.safeParse(l);if(!d.success)throw new J(`Invalid application config response: ${d.error.message}`,"PARSE_ERROR");return d.data}var qa="0.1.0",A="https://app.versiq.io",Wa=0,Ba={mobile:480,tablet:768},Jt={mobile:{width:"100vw",height:"100vh"},tablet:{width:"90vw",height:"80vh"},desktop:{width:"380px",height:"600px"}},Ha=100,Ka={position:"fixed",zIndex:"999999",border:"none",overflow:"hidden",transition:"all 0.3s ease-in-out"},de={"bottom-right":{bottom:"20px",right:"20px"},"bottom-left":{bottom:"20px",left:"20px"}},Ga={width:"100%",height:"100%",border:"none",backgroundColor:"transparent"},qt=class{get applicationId(){return this._applicationId}constructor(e){this.version=qa,this.iframe=null,this.container=null,this.skeletonButton=null,this.isOpen=!1,this.isReady=!1,this.isInitialized=!1,this.isDestroyed=!1,this.fetchAbortController=null,this._applicationId="",this.vertical="",this.pendingCommands=[],this.eventHandlers=new Map,this.cleanupListener=null,this.currentViewportMode="desktop",this.mobileMediaQuery=null,this.tabletMediaQuery=null,this.debounceTimer=null,this.viewportChangeHandler=null,this.originalConfig={...e},this.config={position:"bottom-right",open:!1,baseUrl:A,debug:!1,...e},this.instanceId=++Wa,this.debugLog=Xt(this.config.debug??!1),this.renderSkeleton(),this.resolveConfig()}renderSkeleton(){this.config.position!=="inline"&&(this.container=this.createContainer(),this.skeletonButton=document.createElement("button"),this.skeletonButton.type="button",this.skeletonButton.setAttribute("aria-label","Loading widget…"),this.skeletonButton.style.cssText=["width: 100%","height: 100%","border: none","border-radius: 50%","background: #9ca3af","cursor: default","opacity: 0.6","transition: opacity 0.3s ease-in-out, background 0.3s ease-in-out"].join(";"),this.container.appendChild(this.skeletonButton),document.body.appendChild(this.container))}resolveConfig(){const e=this.config.baseUrl??A;this.fetchAbortController=new AbortController;const t=r=>Vt(this.config.apiKey,e,this.fetchAbortController?.signal).then(n=>this.applyServerConfig(n)).catch(n=>{const o=n instanceof J?n.code:"UNKNOWN_ERROR",a=n instanceof Error?n.message:"Unknown config fetch error";if(!(o==="ABORTED"||this.isDestroyed)){if(r===0&&this.isTransientFetchError(o))return he(`Config fetch failed transiently (${o}), retrying after 1s backoff`),new Promise(i=>setTimeout(()=>{this.isDestroyed||i(t(1))},1e3));fe(`Config fetch failed — widget stays in degraded mode: ${a}`),this.emit("error",{code:o,message:a})}});t(0)}isTransientFetchError(e){return e==="NETWORK_ERROR"||e==="TIMEOUT"||e.startsWith("HTTP_5")}applyServerConfig(e){if(this.isDestroyed)return;this._applicationId=e.applicationId,this.vertical=e.vertical;const t=e.widget??{};this.config={...this.config,theme:{...e.theme??{},...t.theme??{},...this.originalConfig.theme??{}},position:this.originalConfig.position??t.position??this.config.position,language:this.originalConfig.language??t.language??this.config.language,showProfile:this.originalConfig.showProfile??t.showProfile??this.config.showProfile,open:this.originalConfig.open??t.open??this.config.open},this.init(),this.flushPendingCommands(),he(`Widget v${this.version} ready (app: ${e.applicationSlug})`)}flushPendingCommands(){const e=this.pendingCommands;this.pendingCommands=[],e.forEach(t=>t())}init(){this.isDestroyed||(this.isInitialized=!0,this.container?.remove(),this.skeletonButton=null,this.container=this.createContainer(),this.iframe=this.createIframe(),this.container.appendChild(this.iframe),this.config.position==="inline"&&this.config.container?(typeof this.config.container=="string"?document.querySelector(this.config.container):this.config.container)?.appendChild(this.container):document.body.appendChild(this.container),this.cleanupListener=rr({onMessage:e=>this.handleMessage(e),debug:this.config.debug,sourceWindow:this.iframe.contentWindow}),this.config.open&&(this.isOpen=!0,this.updateVisibility()),this.setupViewportListener(),this.log("Widget initialized",this.config))}createContainer(){const e=document.createElement("div");if(e.id=`versiq-widget-container-${this.instanceId}`,this.config.position==="inline")Object.assign(e.style,{position:"relative",width:"100%",height:"100%",border:"none",borderRadius:"16px",overflow:"hidden",boxShadow:"0 4px 20px rgba(0, 0, 0, 0.1)"});else{Object.assign(e.style,Ka);const t=de[this.config.position??"bottom-right"];Object.assign(e.style,t),e.style.width="60px",e.style.height="60px",e.style.borderRadius="50%"}return e}createIframe(){const e=document.createElement("iframe");return e.id=`versiq-widget-iframe-${this.instanceId}`,e.src=this.buildIframeUrl(),e.setAttribute("title","Versiq Chat Widget"),e.setAttribute("allow","clipboard-write; geolocation"),Object.assign(e.style,Ga),e}buildIframeUrl(){const e=this.config.baseUrl??A,t=new URL("/app/widget/embed",e);return this.vertical&&t.searchParams.set("vertical",this.vertical),this.config.theme&&t.searchParams.set("theme",nr(this.config.theme)),this.config.position==="inline"&&t.searchParams.set("mode","inline"),this.config.open&&t.searchParams.set("open","true"),this.config.showProfile&&t.searchParams.set("showProfile","true"),this.config.language&&t.searchParams.set("language",this.config.language),this.config.apiKey&&t.searchParams.set("apiKey",this.config.apiKey),t.toString()}setupViewportListener(){if(this.config.position==="inline"||this.config.responsive?.enabled===!1)return;const e={...Ba,...this.config.responsive?.breakpoints};this.mobileMediaQuery=window.matchMedia(`(max-width: ${e.mobile}px)`),this.tabletMediaQuery=window.matchMedia(`(max-width: ${e.tablet}px)`),this.viewportChangeHandler=()=>this.handleViewportChange(),this.mobileMediaQuery.addEventListener("change",this.viewportChangeHandler),this.tabletMediaQuery.addEventListener("change",this.viewportChangeHandler),this.currentViewportMode=this.getViewportMode(),this.log("Initial viewport mode:",this.currentViewportMode)}handleViewportChange(){this.debounceTimer&&clearTimeout(this.debounceTimer),this.debounceTimer=setTimeout(()=>{const e=this.getViewportMode();e!==this.currentViewportMode&&(this.currentViewportMode=e,this.log("Viewport changed:",e),this.isOpen&&this.updateContainerForViewport(e),this.iframe&&this.isReady&&D(this.iframe,{type:"versiq:viewport",mode:e},this.config.baseUrl??A))},Ha)}getViewportMode(){return this.mobileMediaQuery?.matches?"mobile":this.tabletMediaQuery?.matches?"tablet":"desktop"}updateContainerForViewport(e){if(!this.container)return;const t=Jt[e];if(e==="mobile")Object.assign(this.container.style,{width:t.width,height:t.height,inset:"0",bottom:"auto",right:"auto",left:"auto",borderRadius:"0",maxWidth:"none",transform:"none"});else if(e==="tablet"){const r=de[this.config.position??"bottom-right"];Object.assign(this.container.style,{width:t.width,height:t.height,inset:"auto",maxWidth:"500px",borderRadius:"16px",left:"50%",right:"auto",transform:"translateX(-50%)",bottom:r.bottom??"20px"})}else{const r=de[this.config.position??"bottom-right"];Object.assign(this.container.style,{width:t.width,height:t.height,inset:"auto",maxWidth:"none",borderRadius:"16px",transform:"none",...r})}}handleMessage(e){switch(this.log("Received event:",e),e.type){case"versiq:ready":this.isReady=!0,this.sendConfig(),this.emit("ready",void 0);break;case"versiq:profile-update":this.emit("profile-update",e.profile);break;case"versiq:message":this.emit("message",e.message);break;case"versiq:qualified":this.emit("qualified",{profile:e.profile,score:e.score});break;case"versiq:error":this.emit("error",{code:e.code,message:e.message});break;case"versiq:open":this.isOpen=!0,this.updateVisibility(),this.emit("open",void 0);break;case"versiq:close":this.isOpen=!1,this.updateVisibility(),this.emit("close",void 0);break;case"versiq:quota-warning":this.emit("quota-warning",{remaining:e.remaining,limit:e.limit});break;case"versiq:quota-exceeded":this.emit("quota-exceeded",void 0);break;case"versiq:identity-verified":this.emit("identity-verified",{email:e.email,userId:e.userId});break}}sendConfig(){if(!this.iframe||!this.isReady)return;const{container:e,...t}=this.config,r={type:"versiq:init",config:t};D(this.iframe,r,this.config.baseUrl??A)}updateVisibility(){if(this.container&&this.config.position!=="inline")if(this.isOpen){if(this.config.responsive?.enabled!==!1)this.updateContainerForViewport(this.currentViewportMode);else{const e=Jt.desktop;this.container.style.width=e.width,this.container.style.height=e.height,this.container.style.borderRadius="16px"}this.container.style.boxShadow="0 10px 40px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(0, 0, 0, 0.05)"}else{const e=de[this.config.position??"bottom-right"];Object.assign(this.container.style,{width:"60px",height:"60px",borderRadius:"50%",boxShadow:"0 4px 12px rgba(0, 0, 0, 0.15)",inset:"auto",maxWidth:"none",transform:"none",...e})}}emit(e,t){const r=this.eventHandlers.get(e);r&&r.forEach(n=>{try{n(t)}catch(o){fe(`Error in event handler for "${e}":`,o)}})}open(){if(!this.isInitialized){this.pendingCommands.push(()=>this.open());return}this.iframe&&(this.isOpen=!0,this.updateVisibility(),this.isReady&&D(this.iframe,{type:"versiq:open"},this.config.baseUrl??A))}close(){if(!this.isInitialized){this.pendingCommands.push(()=>this.close());return}this.iframe&&(this.isOpen=!1,this.updateVisibility(),this.isReady&&D(this.iframe,{type:"versiq:close"},this.config.baseUrl??A))}reset(){if(!this.isInitialized){this.pendingCommands.push(()=>this.reset());return}!this.iframe||!this.isReady||D(this.iframe,{type:"versiq:reset"},this.config.baseUrl??A)}identify(e){if(this.config={...this.config,email:e.email,userId:e.userId,userHash:e.userHash},!this.isInitialized){this.pendingCommands.push(()=>this.identify(e));return}this.iframe&&this.isReady&&D(this.iframe,{type:"versiq:identify",email:e.email,userId:e.userId,userHash:e.userHash},this.config.baseUrl??A)}setTheme(e){if(this.config.theme={...this.config.theme,...e},!this.isInitialized){this.pendingCommands.push(()=>this.setTheme(e));return}this.iframe&&this.isReady&&D(this.iframe,{type:"versiq:setTheme",theme:this.config.theme},this.config.baseUrl??A)}setColorScheme(e){this.setTheme({colorScheme:e})}on(e,t){this.eventHandlers.has(e)||this.eventHandlers.set(e,new Set),this.eventHandlers.get(e).add(t)}off(e,t){const r=this.eventHandlers.get(e);r&&r.delete(t)}destroy(){this.isDestroyed||(this.isDestroyed=!0,this.fetchAbortController?.abort(),this.fetchAbortController=null,this.cleanupListener?.(),this.viewportChangeHandler&&(this.mobileMediaQuery?.removeEventListener("change",this.viewportChangeHandler),this.tabletMediaQuery?.removeEventListener("change",this.viewportChangeHandler),this.viewportChangeHandler=null),this.debounceTimer&&(clearTimeout(this.debounceTimer),this.debounceTimer=null),this.container?.remove(),this.iframe=null,this.container=null,this.skeletonButton=null,this.mobileMediaQuery=null,this.tabletMediaQuery=null,this.eventHandlers.clear(),this.pendingCommands=[])}log(e,...t){const r=t.map(n=>{if(n==null||typeof n!="object")return n;if(n instanceof HTMLElement)return`[HTMLElement: ${n.tagName}]`;try{const o=new WeakSet;return JSON.parse(JSON.stringify(n,(a,i)=>{if(i instanceof HTMLElement)return`[HTMLElement: ${i.tagName}]`;if(typeof i=="object"&&i!==null){if(o.has(i))return"[Circular]";o.add(i)}return i}))}catch{return"[Unserializable]"}});this.debugLog(e,...r)}};function Wt(e){return new qt(e)}var Te=new WeakSet;function Bt(e){const t=e.getAttribute("data-api-key")??void 0;if(!t)return fe("Missing required data-api-key attribute on script tag"),null;const r=e.dataset.container,n=e.dataset.baseUrl,o=e.dataset.debug==="true",a=e.dataset.email,i=e.getAttribute("data-user-id")??void 0,s=e.getAttribute("data-user-hash")??void 0;return{apiKey:t,container:r,baseUrl:n,debug:o,...a&&{email:a},...i&&{userId:i},...s&&{userHash:s}}}function Ht(){if(document.currentScript instanceof HTMLScriptElement)return document.currentScript;const e=document.querySelectorAll("script[src]");for(const t of e){const r=t.src.toLowerCase();if(r.includes("versiq")||r.includes("widget"))return t}return null}function Pe(){const e=document.querySelectorAll("script[data-api-key]");if(e.length===0){const t=Ht();t&&t.hasAttribute("data-api-key")&&!Te.has(t)&&Kt(t);return}for(const t of e)Kt(t)}function Kt(e){if(Te.has(e))return;Te.add(e);const t=Bt(e);if(!t)return;const r=Wt(t);window.Versiq||(window.Versiq=r),window.VersiqApps||(window.VersiqApps=new Map),r.on("ready",()=>{r.applicationId&&window.VersiqApps&&window.VersiqApps.set(r.applicationId,r)}),he(`Widget v${r.version} initializing...`)}typeof document<"u"&&(document.readyState==="loading"?document.addEventListener("DOMContentLoaded",Pe):Pe()),k.ConfigFetchError=J,k.VersiqWidget=qt,k.__autoInit=Pe,k.__getCurrentScript=Ht,k.__parseScriptAttributes=Bt,k.applicationConfigResponseSchema=Ft,k.b2bProfileSchema=Ja,k.createWidget=Wt,k.fetchApplicationConfig=Vt,k.themeConfigSchema=le,k.widgetConfigSchema=Ca,k.widgetMessageSchema=Ra,k.widgetPositionSchema=Ie});
|
package/package.json
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@dolard.eu/versiq-widget",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Versiq Widget SDK - Embed conversational qualification into your website.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/widget.umd.js",
|
|
7
|
+
"module": "./dist/widget.es.js",
|
|
8
|
+
"unpkg": "./dist/widget.umd.js",
|
|
9
|
+
"jsdelivr": "./dist/widget.umd.js",
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"types": "./dist/index.d.ts",
|
|
14
|
+
"import": "./dist/widget.es.js",
|
|
15
|
+
"require": "./dist/widget.umd.js"
|
|
16
|
+
},
|
|
17
|
+
"./widget.js": "./dist/widget.umd.js"
|
|
18
|
+
},
|
|
19
|
+
"files": [
|
|
20
|
+
"dist",
|
|
21
|
+
"README.md",
|
|
22
|
+
"LICENSE"
|
|
23
|
+
],
|
|
24
|
+
"sideEffects": false,
|
|
25
|
+
"publishConfig": {
|
|
26
|
+
"access": "public"
|
|
27
|
+
},
|
|
28
|
+
"license": "SEE LICENSE IN LICENSE",
|
|
29
|
+
"author": "Sébastien Dolard <admin@dolard.eu>",
|
|
30
|
+
"repository": {
|
|
31
|
+
"type": "git",
|
|
32
|
+
"url": "git+https://github.com/sdolard/Toize.git",
|
|
33
|
+
"directory": "packages/widget"
|
|
34
|
+
},
|
|
35
|
+
"homepage": "https://github.com/sdolard/Toize/tree/main/packages/widget#readme",
|
|
36
|
+
"bugs": {
|
|
37
|
+
"url": "https://github.com/sdolard/Toize/issues"
|
|
38
|
+
},
|
|
39
|
+
"keywords": [
|
|
40
|
+
"widget",
|
|
41
|
+
"versiq",
|
|
42
|
+
"qualification",
|
|
43
|
+
"embed",
|
|
44
|
+
"sdk",
|
|
45
|
+
"conversational"
|
|
46
|
+
],
|
|
47
|
+
"engines": {
|
|
48
|
+
"node": ">=18.0.0"
|
|
49
|
+
},
|
|
50
|
+
"size-limit": [
|
|
51
|
+
{
|
|
52
|
+
"path": "dist/widget.umd.js",
|
|
53
|
+
"limit": "50 KB",
|
|
54
|
+
"gzip": true
|
|
55
|
+
}
|
|
56
|
+
],
|
|
57
|
+
"dependencies": {
|
|
58
|
+
"zod": "^4.2.0",
|
|
59
|
+
"@dolard.eu/versiq-core-types": "0.1.0"
|
|
60
|
+
},
|
|
61
|
+
"devDependencies": {
|
|
62
|
+
"@size-limit/file": "^11.0.0",
|
|
63
|
+
"@types/node": "^22.16.0",
|
|
64
|
+
"@vitest/coverage-v8": "^4.0.15",
|
|
65
|
+
"jsdom": "^26.0.0",
|
|
66
|
+
"size-limit": "^11.0.0",
|
|
67
|
+
"typescript": "^6.0.2",
|
|
68
|
+
"vite": "^8.0.5",
|
|
69
|
+
"vitest": "^4.0.15"
|
|
70
|
+
},
|
|
71
|
+
"scripts": {
|
|
72
|
+
"clean": "rm -rf dist",
|
|
73
|
+
"build": "pnpm clean && vite build && tsc -p tsconfig.build.json",
|
|
74
|
+
"dev": "vite build --watch",
|
|
75
|
+
"serve": "npx serve . -p 5500",
|
|
76
|
+
"typecheck": "tsc --noEmit",
|
|
77
|
+
"typecheck:ci": "pnpm typecheck",
|
|
78
|
+
"test": "vitest",
|
|
79
|
+
"test:ci": "vitest run",
|
|
80
|
+
"test:coverage": "vitest run --coverage",
|
|
81
|
+
"size": "size-limit",
|
|
82
|
+
"size:check": "size-limit"
|
|
83
|
+
}
|
|
84
|
+
}
|