@shoppexio/storefront 1.0.22 → 1.0.24

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.
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).shoppex={})}(this,function(e){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var t=new Map,n=new Map,o={hits:0,misses:0};function i(){t.clear(),n.clear()}function r(e,n,o){const i=Date.now();t.set(e,{data:n,ttl:o,updatedAt:i,expiresAt:i+o})}async function a(e,i,a,s=()=>!0){const u=function(e){const n=t.get(e);return n||null}(e);if(u&&!function(e){return Date.now()>e.expiresAt}(u))return o.hits+=1,u.data;if(u&&a.staleWhileRevalidate){if(o.hits+=1,!n.has(e)){const t=(async()=>{try{const t=await i();return s(t)&&r(e,t,a.ttl),t}finally{n.delete(e)}})();n.set(e,t)}return u.data}if(n.has(e))return n.get(e);o.misses+=1;const l=(async()=>{try{const t=await i();return s(t)&&r(e,t,a.ttl),t}finally{n.delete(e)}})();return n.set(e,l),l}var s=class e extends Error{constructor(t,n,o){super(t),this.name="ShoppexError",this.code=n,this.statusCode=o,Object.setPrototypeOf(this,e.prototype)}},u=class e extends s{constructor(){super("SDK not initialized. Call shoppex.init() first.","NOT_INITIALIZED"),this.name="NotInitializedError",Object.setPrototypeOf(this,e.prototype)}},l=class e extends s{constructor(t,n){super(t,"NETWORK_ERROR",n),this.name="NetworkError",Object.setPrototypeOf(this,e.prototype)}},c=class e extends s{constructor(t){super(t,"BASKET_ERROR"),this.name="CartError",Object.setPrototypeOf(this,e.prototype)}},d=/\{[^{}]+\}/g;function p(e){let{baseUrl:t="",Request:n=globalThis.Request,fetch:o=globalThis.fetch,querySerializer:i,bodySerializer:r,pathSerializer:a,headers:s,requestInitExt:u,...l}={...e};u="object"==typeof process&&Number.parseInt(process?.versions?.node?.substring(0,2))>=18&&process.versions.undici?u:void 0,t=v(t);const c=[];async function d(e,d){const{baseUrl:p,fetch:f=o,Request:m=n,headers:_,params:w={},parseAs:S="json",querySerializer:k,bodySerializer:z=r??g,pathSerializer:O,body:x,middleware:E=[],...T}=d||{};let A=t;p&&(A=v(p)??t);let I="function"==typeof i?i:h(i);k&&(I="function"==typeof k?k:h({..."object"==typeof i?i:{},...k}));const $=O||a||y,C=void 0===x?void 0:z(x,b(s,_,w.header)),N=b(void 0===C||C instanceof FormData?{}:{"Content-Type":"application/json"},s,_,w.header),P=[...c,...E],R={redirect:"follow",...l,...T,body:C,headers:N};let U,q,j,D=new m(function(e,t){let n=`${t.baseUrl}${e}`;t.params?.path&&(n=t.pathSerializer(n,t.params.path));let o=t.querySerializer(t.params.query??{});o.startsWith("?")&&(o=o.substring(1));o&&(n+=`?${o}`);return n}(e,{baseUrl:A,params:w,querySerializer:I,pathSerializer:$}),R);for(const t in T)t in D||(D[t]=T[t]);if(P.length){U=Math.random().toString(36).slice(2,11),q=Object.freeze({baseUrl:A,fetch:f,parseAs:S,querySerializer:I,bodySerializer:z,pathSerializer:$});for(const t of P)if(t&&"object"==typeof t&&"function"==typeof t.onRequest){const n=await t.onRequest({request:D,schemaPath:e,params:w,options:q,id:U});if(n){if(!(n instanceof m)){if(n instanceof Response){j=n;break}throw new Error("onRequest: must return new Request() or Response() when modifying the request")}D=n}}}if(!j){try{j=await f(D,u)}catch(M){let t=M;if(P.length)for(let n=P.length-1;n>=0;n--){const o=P[n];if(o&&"object"==typeof o&&"function"==typeof o.onError){const n=await o.onError({request:D,error:t,schemaPath:e,params:w,options:q,id:U});if(n){if(n instanceof Response){t=void 0,j=n;break}if(n instanceof Error){t=n;continue}throw new Error("onError: must return new Response() or instance of Error")}}}if(t)throw t}if(P.length)for(let t=P.length-1;t>=0;t--){const n=P[t];if(n&&"object"==typeof n&&"function"==typeof n.onResponse){const t=await n.onResponse({request:D,response:j,schemaPath:e,params:w,options:q,id:U});if(t){if(!(t instanceof Response))throw new Error("onResponse: must return new Response() when modifying the response");j=t}}}}const Z=j.headers.get("Content-Length");if(204===j.status||"HEAD"===D.method||"0"===Z&&!j.headers.get("Transfer-Encoding")?.includes("chunked"))return j.ok?{data:void 0,response:j}:{error:void 0,response:j};if(j.ok){const e=async()=>{if("stream"===S)return j.body;if("json"===S&&!Z){const e=await j.text();return e?JSON.parse(e):void 0}return await j[S]()};return{data:await e(),response:j}}let L=await j.text();try{L=JSON.parse(L)}catch{}return{error:L,response:j}}return{request:(e,t,n)=>d(t,{...n,method:e.toUpperCase()}),GET:(e,t)=>d(e,{...t,method:"GET"}),PUT:(e,t)=>d(e,{...t,method:"PUT"}),POST:(e,t)=>d(e,{...t,method:"POST"}),DELETE:(e,t)=>d(e,{...t,method:"DELETE"}),OPTIONS:(e,t)=>d(e,{...t,method:"OPTIONS"}),HEAD:(e,t)=>d(e,{...t,method:"HEAD"}),PATCH:(e,t)=>d(e,{...t,method:"PATCH"}),TRACE:(e,t)=>d(e,{...t,method:"TRACE"}),use(...e){for(const t of e)if(t){if("object"!=typeof t||!("onRequest"in t||"onResponse"in t||"onError"in t))throw new Error("Middleware must be an object with one of `onRequest()`, `onResponse() or `onError()`");c.push(t)}},eject(...e){for(const t of e){const e=c.indexOf(t);-1!==e&&c.splice(e,1)}}}}function f(e,t,n){if(null==t)return"";if("object"==typeof t)throw new Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");return`${e}=${!0===n?.allowReserved?t:encodeURIComponent(t)}`}function m(e,t,n){if(!t||"object"!=typeof t)return"";const o=[],i={simple:",",label:".",matrix:";"}[n.style]||"&";if("deepObject"!==n.style&&!1===n.explode){for(const e in t)o.push(e,!0===n.allowReserved?t[e]:encodeURIComponent(t[e]));const i=o.join(",");switch(n.style){case"form":return`${e}=${i}`;case"label":return`.${i}`;case"matrix":return`;${e}=${i}`;default:return i}}for(const a in t){const i="deepObject"===n.style?`${e}[${a}]`:a;o.push(f(i,t[a],n))}const r=o.join(i);return"label"===n.style||"matrix"===n.style?`${i}${r}`:r}function _(e,t,n){if(!Array.isArray(t))return"";if(!1===n.explode){const o={form:",",spaceDelimited:"%20",pipeDelimited:"|"}[n.style]||",",i=(!0===n.allowReserved?t:t.map(e=>encodeURIComponent(e))).join(o);switch(n.style){case"simple":return i;case"label":return`.${i}`;case"matrix":return`;${e}=${i}`;default:return`${e}=${i}`}}const o={simple:",",label:".",matrix:";"}[n.style]||"&",i=[];for(const r of t)"simple"===n.style||"label"===n.style?i.push(!0===n.allowReserved?r:encodeURIComponent(r)):i.push(f(e,r,n));return"label"===n.style||"matrix"===n.style?`${o}${i.join(o)}`:i.join(o)}function h(e){return function(t){const n=[];if(t&&"object"==typeof t)for(const o in t){const i=t[o];if(null!=i)if(Array.isArray(i)){if(0===i.length)continue;n.push(_(o,i,{style:"form",explode:!0,...e?.array,allowReserved:e?.allowReserved||!1}))}else"object"!=typeof i?n.push(f(o,i,e)):n.push(m(o,i,{style:"deepObject",explode:!0,...e?.object,allowReserved:e?.allowReserved||!1}))}return n.join("&")}}function y(e,t){let n=e;for(const o of e.match(d)??[]){let e=o.substring(1,o.length-1),i=!1,r="simple";if(e.endsWith("*")&&(i=!0,e=e.substring(0,e.length-1)),e.startsWith(".")?(r="label",e=e.substring(1)):e.startsWith(";")&&(r="matrix",e=e.substring(1)),!t||void 0===t[e]||null===t[e])continue;const a=t[e];Array.isArray(a)?n=n.replace(o,_(e,a,{style:r,explode:i})):n="object"!=typeof a?"matrix"!==r?n.replace(o,"label"===r?`.${encodeURIComponent(a)}`:encodeURIComponent(a)):n.replace(o,`;${f(e,a)}`):n.replace(o,m(e,a,{style:r,explode:i}))}return n}function g(e,t){return e instanceof FormData?e:t&&"application/x-www-form-urlencoded"===(t.get instanceof Function?t.get("Content-Type")??t.get("content-type"):t["Content-Type"]??t["content-type"])?new URLSearchParams(e).toString():JSON.stringify(e)}function b(...e){const t=new Headers;for(const n of e){if(!n||"object"!=typeof n)continue;const e=n instanceof Headers?n.entries():Object.entries(n);for(const[n,o]of e)if(null===o)t.delete(n);else if(Array.isArray(o))for(const e of o)t.append(n,e);else void 0!==o&&t.set(n,o)}return t}function v(e){return e.endsWith("/")?e.substring(0,e.length-1):e}var w={header:{title:"Header",aliases:["Header Menu"]},footer:{title:"Footer",aliases:["Footer Links","Legal Links"]}};var S;Object.keys(w);function k(e,t,n){function o(n,o){if(n._zod||Object.defineProperty(n,"_zod",{value:{def:o,constr:a,traits:new Set},enumerable:!1}),n._zod.traits.has(e))return;n._zod.traits.add(e),t(n,o);const i=a.prototype,r=Object.keys(i);for(let e=0;e<r.length;e++){const t=r[e];t in n||(n[t]=i[t].bind(n))}}const i=n?.Parent??Object;class r extends i{}function a(e){var t;const i=n?.Parent?new r:this;o(i,e),(t=i._zod).deferred??(t.deferred=[]);for(const n of i._zod.deferred)n();return i}return Object.defineProperty(r,"name",{value:e}),Object.defineProperty(a,"init",{value:o}),Object.defineProperty(a,Symbol.hasInstance,{value:t=>!!(n?.Parent&&t instanceof n.Parent)||t?._zod?.traits?.has(e)}),Object.defineProperty(a,"name",{value:e}),a}var z=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},O=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}};(S=globalThis).__zod_globalConfig??(S.__zod_globalConfig={});var x=globalThis.__zod_globalConfig;function E(e){return e&&Object.assign(x,e),x}function T(e){const t=Object.values(e).filter(e=>"number"==typeof e);return Object.entries(e).filter(([e,n])=>-1===t.indexOf(+e)).map(([e,t])=>t)}function A(e,t){return"bigint"==typeof t?t.toString():t}function I(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function $(e){return null==e}function C(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}var N=Symbol("evaluating");function P(e,t,n){let o;Object.defineProperty(e,t,{get(){if(o!==N)return void 0===o&&(o=N,o=n()),o},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function R(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function U(...e){const t={};for(const n of e){const e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}function q(e){return JSON.stringify(e)}var j="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function D(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}var Z=I(()=>{if(x.jitless)return!1;if("undefined"!=typeof navigator&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch(e){return!1}});function L(e){if(!1===D(e))return!1;const t=e.constructor;if(void 0===t)return!0;if("function"!=typeof t)return!0;const n=t.prototype;return!1!==D(n)&&!1!==Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")}function M(e){return L(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}var F=new Set(["string","number","symbol"]);function B(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Y(e,t,n){const o=new e._zod.constr(t??e._zod.def);return t&&!n?.parent||(o._zod.parent=e),o}function J(e){const t=e;if(!t)return{};if("string"==typeof t)return{error:()=>t};if(void 0!==t?.message){if(void 0!==t?.error)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,"string"==typeof t.error?{...t,error:()=>t.error}:t}var W={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 V(e,t=0){if(!0===e.aborted)return!0;for(let n=t;n<e.issues.length;n++)if(!0!==e.issues[n]?.continue)return!0;return!1}function G(e,t=0){if(!0===e.aborted)return!0;for(let n=t;n<e.issues.length;n++)if(!1===e.issues[n]?.continue)return!0;return!1}function H(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function K(e){return"string"==typeof e?e:e?.message}function X(e,t,n){const o=e.message?e.message:K(e.inst?._zod.def?.error?.(e))??K(t?.error?.(e))??K(n.customError?.(e))??K(n.localeError?.(e))??"Invalid input",{inst:i,continue:r,input:a,...s}=e;return s.path??(s.path=[]),s.message=o,t?.reportInput&&(s.input=a),s}function Q(e){return Array.isArray(e)?"array":"string"==typeof e?"string":"unknown"}function ee(...e){const[t,n,o]=e;return"string"==typeof t?{message:t,code:"custom",input:n,inst:o}:{...t}}var te=(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,A,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},ne=k("$ZodError",te),oe=k("$ZodError",te,{Parent:Error});var ie=e=>(t,n,o,i)=>{const r=o?{...o,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},r);if(a instanceof Promise)throw new z;if(a.issues.length){const t=new(i?.Err??e)(a.issues.map(e=>X(e,r,E())));throw j(t,i?.callee),t}return a.value},re=e=>async(t,n,o,i)=>{const r=o?{...o,async:!0}:{async:!0};let a=t._zod.run({value:n,issues:[]},r);if(a instanceof Promise&&(a=await a),a.issues.length){const t=new(i?.Err??e)(a.issues.map(e=>X(e,r,E())));throw j(t,i?.callee),t}return a.value},ae=e=>(t,n,o)=>{const i=o?{...o,async:!1}:{async:!1},r=t._zod.run({value:n,issues:[]},i);if(r instanceof Promise)throw new z;return r.issues.length?{success:!1,error:new(e??ne)(r.issues.map(e=>X(e,i,E())))}:{success:!0,data:r.value}},se=ae(oe),ue=e=>async(t,n,o)=>{const i=o?{...o,async:!0}:{async:!0};let r=t._zod.run({value:n,issues:[]},i);return r instanceof Promise&&(r=await r),r.issues.length?{success:!1,error:new e(r.issues.map(e=>X(e,i,E())))}:{success:!0,data:r.value}},le=ue(oe),ce=e=>(t,n,o)=>{const i=o?{...o,direction:"backward"}:{direction:"backward"};return ie(e)(t,n,i)},de=e=>(t,n,o)=>ie(e)(t,n,o),pe=e=>async(t,n,o)=>{const i=o?{...o,direction:"backward"}:{direction:"backward"};return re(e)(t,n,i)},fe=e=>async(t,n,o)=>re(e)(t,n,o),me=e=>(t,n,o)=>{const i=o?{...o,direction:"backward"}:{direction:"backward"};return ae(e)(t,n,i)},_e=e=>(t,n,o)=>ae(e)(t,n,o),he=e=>async(t,n,o)=>{const i=o?{...o,direction:"backward"}:{direction:"backward"};return ue(e)(t,n,i)},ye=e=>async(t,n,o)=>ue(e)(t,n,o),ge=/^[cC][0-9a-z]{6,}$/,be=/^[0-9a-z]+$/,ve=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,we=/^[0-9a-vA-V]{20}$/,Se=/^[A-Za-z0-9]{27}$/,ke=/^[a-zA-Z0-9_-]{21}$/,ze=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Oe=/^([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)$/,Ee=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var Te=/^(?:(?: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])$/,Ae=/^(([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}|:))$/,Ie=/^((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])$/,$e=/^(([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])$/,Ce=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Ne=/^[A-Za-z0-9_-]*$/,Pe=/^https?$/,Re=/^\+[1-9]\d{6,14}$/,Ue="(?:(?:\\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])))",qe=new RegExp(`^${Ue}$`);function je(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return"number"==typeof e.precision?-1===e.precision?`${t}`:0===e.precision?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}var De=/^-?\d+$/,Ze=/^-?\d+(?:\.\d+)?$/,Le=/^(?:true|false)$/i,Me=/^[^A-Z]*$/,Fe=/^[^a-z]*$/,Be=k("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),Ye={number:"number",bigint:"bigint",object:"date"},Je=k("$ZodCheckLessThan",(e,t)=>{Be.init(e,t);const n=Ye[typeof t.value];e._zod.onattach.push(e=>{const n=e._zod.bag,o=(t.inclusive?n.maximum:n.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<o&&(t.inclusive?n.maximum=t.value:n.exclusiveMaximum=t.value)}),e._zod.check=o=>{(t.inclusive?o.value<=t.value:o.value<t.value)||o.issues.push({origin:n,code:"too_big",maximum:"object"==typeof t.value?t.value.getTime():t.value,input:o.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),We=k("$ZodCheckGreaterThan",(e,t)=>{Be.init(e,t);const n=Ye[typeof t.value];e._zod.onattach.push(e=>{const n=e._zod.bag,o=(t.inclusive?n.minimum:n.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>o&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=o=>{(t.inclusive?o.value>=t.value:o.value>t.value)||o.issues.push({origin:n,code:"too_small",minimum:"object"==typeof t.value?t.value.getTime():t.value,input:o.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Ve=k("$ZodCheckMultipleOf",(e,t)=>{Be.init(e,t),e._zod.onattach.push(e=>{var n;(n=e._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");("bigint"==typeof n.value?n.value%t.value!==BigInt(0):0!==function(e,t){const n=e/t,o=Math.round(n),i=Number.EPSILON*Math.max(Math.abs(n),1);return Math.abs(n-o)<i?0:n-o}(n.value,t.value))&&n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),Ge=k("$ZodCheckNumberFormat",(e,t)=>{Be.init(e,t),t.format=t.format||"float64";const n=t.format?.includes("int"),o=n?"int":"number",[i,r]=W[t.format];e._zod.onattach.push(e=>{const o=e._zod.bag;o.format=t.format,o.minimum=i,o.maximum=r,n&&(o.pattern=De)}),e._zod.check=a=>{const s=a.value;if(n){if(!Number.isInteger(s))return void a.issues.push({expected:o,format:t.format,code:"invalid_type",continue:!1,input:s,inst:e});if(!Number.isSafeInteger(s))return void(s>0?a.issues.push({input:s,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:o,inclusive:!0,continue:!t.abort}):a.issues.push({input:s,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:o,inclusive:!0,continue:!t.abort}))}s<i&&a.issues.push({origin:"number",input:s,code:"too_small",minimum:i,inclusive:!0,inst:e,continue:!t.abort}),s>r&&a.issues.push({origin:"number",input:s,code:"too_big",maximum:r,inclusive:!0,inst:e,continue:!t.abort})}}),He=k("$ZodCheckMaxLength",(e,t)=>{var n;Be.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!$(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<n&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{const o=n.value;if(o.length<=t.maximum)return;const i=Q(o);n.issues.push({origin:i,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Ke=k("$ZodCheckMinLength",(e,t)=>{var n;Be.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!$(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{const o=n.value;if(o.length>=t.minimum)return;const i=Q(o);n.issues.push({origin:i,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Xe=k("$ZodCheckLengthEquals",(e,t)=>{var n;Be.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!$(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=n=>{const o=n.value,i=o.length;if(i===t.length)return;const r=Q(o),a=i>t.length;n.issues.push({origin:r,...a?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),Qe=k("$ZodCheckStringFormat",(e,t)=>{var n,o;Be.init(e,t),e._zod.onattach.push(e=>{const n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??(n.patterns=new Set),n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,t.pattern.test(n.value)||n.issues.push({origin:"string",code:"invalid_format",format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(o=e._zod).check??(o.check=()=>{})}),et=k("$ZodCheckRegex",(e,t)=>{Qe.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,t.pattern.test(n.value)||n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),tt=k("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Me),Qe.init(e,t)}),nt=k("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=Fe),Qe.init(e,t)}),ot=k("$ZodCheckIncludes",(e,t)=>{Be.init(e,t);const n=B(t.includes),o=new RegExp("number"==typeof t.position?`^.{${t.position}}${n}`:n);t.pattern=o,e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(o)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),it=k("$ZodCheckStartsWith",(e,t)=>{Be.init(e,t);const n=new RegExp(`^${B(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(n)}),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})}}),rt=k("$ZodCheckEndsWith",(e,t)=>{Be.init(e,t);const n=new RegExp(`.*${B(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(n)}),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})}}),at=k("$ZodCheckOverwrite",(e,t)=>{Be.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}),st=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("function"==typeof e)return e(this,{execution:"sync"}),void e(this,{execution:"async"});const t=e.split("\n").filter(e=>e),n=Math.min(...t.map(e=>e.length-e.trimStart().length)),o=t.map(e=>e.slice(n)).map(e=>" ".repeat(2*this.indent)+e);for(const i of o)this.content.push(i)}compile(){const e=Function,t=this?.args;return new e(...t,[...(this?.content??[""]).map(e=>` ${e}`)].join("\n"))}},ut={major:4,minor:4,patch:3},lt=k("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=ut;const o=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&o.unshift(e);for(const i of o)for(const t of i._zod.onattach)t(e);if(0===o.length)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const t=(e,t,n)=>{let o,i=V(e);for(const r of t){if(r._zod.def.when){if(G(e))continue;if(!r._zod.def.when(e))continue}else if(i)continue;const t=e.issues.length,a=r._zod.check(e);if(a instanceof Promise&&!1===n?.async)throw new z;if(o||a instanceof Promise)o=(o??Promise.resolve()).then(async()=>{await a,e.issues.length!==t&&(i||(i=V(e,t)))});else{if(e.issues.length===t)continue;i||(i=V(e,t))}}return o?o.then(()=>e):e},n=(n,i,r)=>{if(V(n))return n.aborted=!0,n;const a=t(i,o,r);if(a instanceof Promise){if(!1===r.async)throw new z;return a.then(t=>e._zod.parse(t,r))}return e._zod.parse(a,r)};e._zod.run=(i,r)=>{if(r.skipChecks)return e._zod.parse(i,r);if("backward"===r.direction){const t=e._zod.parse({value:i.value,issues:[]},{...r,skipChecks:!0});return t instanceof Promise?t.then(e=>n(e,i,r)):n(t,i,r)}const a=e._zod.parse(i,r);if(a instanceof Promise){if(!1===r.async)throw new z;return a.then(e=>t(e,o,r))}return t(a,o,r)}}P(e,"~standard",()=>({validate:t=>{try{const n=se(e,t);return n.success?{value:n.data}:{issues:n.error?.issues}}catch(n){return le(e,t).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:"zod",version:1}))}),ct=k("$ZodString",(e,t)=>{var n;lt.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??(n=e._zod.bag,new RegExp(`^${n?`[\\s\\S]{${n?.minimum??0},${n?.maximum??""}}`:"[\\s\\S]*"}$`)),e._zod.parse=(n,o)=>{if(t.coerce)try{n.value=String(n.value)}catch(o){}return"string"==typeof n.value||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),dt=k("$ZodStringFormat",(e,t)=>{Qe.init(e,t),ct.init(e,t)}),pt=k("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Oe),dt.init(e,t)}),ft=k("$ZodUUID",(e,t)=>{if(t.version){const e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(void 0===e)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=xe(e))}else t.pattern??(t.pattern=xe());dt.init(e,t)}),mt=k("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Ee),dt.init(e,t)}),_t=k("$ZodURL",(e,t)=>{dt.init(e,t),e._zod.check=n=>{try{const o=n.value.trim();if(!t.normalize&&t.protocol?.source===Pe.source&&!/^https?:\/\//i.test(o))return void n.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:n.value,inst:e,continue:!t.abort});const i=new URL(o);return t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(":")?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),void(t.normalize?n.value=i.href:n.value=o)}catch(o){n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),ht=k("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),dt.init(e,t)}),yt=k("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=ke),dt.init(e,t)}),gt=k("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=ge),dt.init(e,t)}),bt=k("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=be),dt.init(e,t)}),vt=k("$ZodULID",(e,t)=>{t.pattern??(t.pattern=ve),dt.init(e,t)}),wt=k("$ZodXID",(e,t)=>{t.pattern??(t.pattern=we),dt.init(e,t)}),St=k("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=Se),dt.init(e,t)}),kt=k("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=function(e){const t=je({precision:e.precision}),n=["Z"];e.local&&n.push(""),e.offset&&n.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const o=`${t}(?:${n.join("|")})`;return new RegExp(`^${Ue}T(?:${o})$`)}(t)),dt.init(e,t)}),zt=k("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=qe),dt.init(e,t)}),Ot=k("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=new RegExp(`^${je(t)}$`)),dt.init(e,t)}),xt=k("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=ze),dt.init(e,t)}),Et=k("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=Te),dt.init(e,t),e._zod.bag.format="ipv4"}),Tt=k("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=Ae),dt.init(e,t),e._zod.bag.format="ipv6",e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:e,continue:!t.abort})}}}),At=k("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=Ie),dt.init(e,t)}),It=k("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=$e),dt.init(e,t),e._zod.check=n=>{const o=n.value.split("/");try{if(2!==o.length)throw new Error;const[e,t]=o;if(!t)throw new Error;const n=Number(t);if(`${n}`!==t)throw new Error;if(n<0||n>128)throw new Error;new URL(`http://[${e}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});function $t(e){if(""===e)return!0;if(/\s/.test(e))return!1;if(e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}var Ct=k("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=Ce),dt.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=n=>{$t(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});var Nt=k("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=Ne),dt.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=n=>{(function(e){if(!Ne.test(e))return!1;const t=e.replace(/[-_]/g,e=>"-"===e?"+":"/");return $t(t.padEnd(4*Math.ceil(t.length/4),"="))})(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),Pt=k("$ZodE164",(e,t)=>{t.pattern??(t.pattern=Re),dt.init(e,t)});var Rt=k("$ZodJWT",(e,t)=>{dt.init(e,t),e._zod.check=n=>{(function(e,t=null){try{const n=e.split(".");if(3!==n.length)return!1;const[o]=n;if(!o)return!1;const i=JSON.parse(atob(o));return!("typ"in i&&"JWT"!==i?.typ||!i.alg||t&&(!("alg"in i)||i.alg!==t))}catch{return!1}})(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),Ut=k("$ZodNumber",(e,t)=>{lt.init(e,t),e._zod.pattern=e._zod.bag.pattern??Ze,e._zod.parse=(n,o)=>{if(t.coerce)try{n.value=Number(n.value)}catch(a){}const i=n.value;if("number"==typeof i&&!Number.isNaN(i)&&Number.isFinite(i))return n;const r="number"==typeof i?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:i,inst:e,...r?{received:r}:{}}),n}}),qt=k("$ZodNumberFormat",(e,t)=>{Ge.init(e,t),Ut.init(e,t)}),jt=k("$ZodBoolean",(e,t)=>{lt.init(e,t),e._zod.pattern=Le,e._zod.parse=(n,o)=>{if(t.coerce)try{n.value=Boolean(n.value)}catch(r){}const i=n.value;return"boolean"==typeof i||n.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:e}),n}}),Dt=k("$ZodUnknown",(e,t)=>{lt.init(e,t),e._zod.parse=e=>e}),Zt=k("$ZodNever",(e,t)=>{lt.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:"never",code:"invalid_type",input:t.value,inst:e}),t)});function Lt(e,t,n){e.issues.length&&t.issues.push(...H(n,e.issues)),t.value[n]=e.value}var Mt=k("$ZodArray",(e,t)=>{lt.init(e,t),e._zod.parse=(n,o)=>{const i=n.value;if(!Array.isArray(i))return n.issues.push({expected:"array",code:"invalid_type",input:i,inst:e}),n;n.value=Array(i.length);const r=[];for(let e=0;e<i.length;e++){const a=i[e],s=t.element._zod.run({value:a,issues:[]},o);s instanceof Promise?r.push(s.then(t=>Lt(t,n,e))):Lt(s,n,e)}return r.length?Promise.all(r).then(()=>n):n}});function Ft(e,t,n,o,i,r){const a=n in o;if(e.issues.length){if(i&&r&&!a)return;t.issues.push(...H(n,e.issues))}a||i?void 0===e.value?a&&(t.value[n]=void 0):t.value[n]=e.value:e.issues.length||t.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[n]})}function Bt(e){const t=Object.keys(e.shape);for(const i of t)if(!e.shape?.[i]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${i}": expected a Zod schema`);const n=(o=e.shape,Object.keys(o).filter(e=>"optional"===o[e]._zod.optin&&"optional"===o[e]._zod.optout));var o;return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function Yt(e,t,n,o,i,r){const a=[],s=i.keySet,u=i.catchall._zod,l=u.def.type,c="optional"===u.optin,d="optional"===u.optout;for(const p in t){if("__proto__"===p)continue;if(s.has(p))continue;if("never"===l){a.push(p);continue}const i=u.run({value:t[p],issues:[]},o);i instanceof Promise?e.push(i.then(e=>Ft(e,n,p,t,c,d))):Ft(i,n,p,t,c,d)}return a.length&&n.issues.push({code:"unrecognized_keys",keys:a,input:t,inst:r}),e.length?Promise.all(e).then(()=>n):n}var Jt=k("$ZodObject",(e,t)=>{if(lt.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){const e=t.shape;Object.defineProperty(t,"shape",{get:()=>{const n={...e};return Object.defineProperty(t,"shape",{value:n}),n}})}const n=I(()=>Bt(t));P(e._zod,"propValues",()=>{const e=t.shape,n={};for(const t in e){const o=e[t]._zod;if(o.values){n[t]??(n[t]=new Set);for(const e of o.values)n[t].add(e)}}return n});const o=D,i=t.catchall;let r;e._zod.parse=(t,a)=>{r??(r=n.value);const s=t.value;if(!o(s))return t.issues.push({expected:"object",code:"invalid_type",input:s,inst:e}),t;t.value={};const u=[],l=r.shape;for(const e of r.keys){const n=l[e],o="optional"===n._zod.optin,i="optional"===n._zod.optout,r=n._zod.run({value:s[e],issues:[]},a);r instanceof Promise?u.push(r.then(n=>Ft(n,t,e,s,o,i))):Ft(r,t,e,s,o,i)}return i?Yt(u,s,t,a,n.value,e):u.length?Promise.all(u).then(()=>t):t}}),Wt=k("$ZodObjectJIT",(e,t)=>{Jt.init(e,t);const n=e._zod.parse,o=I(()=>Bt(t));let i;const r=D,a=!x.jitless,s=a&&Z.value,u=t.catchall;let l;e._zod.parse=(c,d)=>{l??(l=o.value);const p=c.value;return r(p)?a&&s&&!1===d?.async&&!0!==d.jitless?(i||(i=(e=>{const t=new st(["shape","payload","ctx"]),n=o.value,i=e=>{const t=q(e);return`shape[${t}]._zod.run({ value: input[${t}], issues: [] }, ctx)`};t.write("const input = payload.value;");const r=Object.create(null);let a=0;for(const o of n.keys)r[o]="key_"+a++;t.write("const newResult = {};");for(const o of n.keys){const n=r[o],a=q(o),s=e[o],u="optional"===s?._zod?.optin,l="optional"===s?._zod?.optout;t.write(`const ${n} = ${i(o)};`),u&&l?t.write(`\n if (${n}.issues.length) {\n if (${a} in input) {\n payload.issues = payload.issues.concat(${n}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${a}, ...iss.path] : [${a}]\n })));\n }\n }\n \n if (${n}.value === undefined) {\n if (${a} in input) {\n newResult[${a}] = undefined;\n }\n } else {\n newResult[${a}] = ${n}.value;\n }\n \n `):u?t.write(`\n if (${n}.issues.length) {\n payload.issues = payload.issues.concat(${n}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${a}, ...iss.path] : [${a}]\n })));\n }\n \n if (${n}.value === undefined) {\n if (${a} in input) {\n newResult[${a}] = undefined;\n }\n } else {\n newResult[${a}] = ${n}.value;\n }\n \n `):t.write(`\n const ${n}_present = ${a} in input;\n if (${n}.issues.length) {\n payload.issues = payload.issues.concat(${n}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${a}, ...iss.path] : [${a}]\n })));\n }\n if (!${n}_present && !${n}.issues.length) {\n payload.issues.push({\n code: "invalid_type",\n expected: "nonoptional",\n input: undefined,\n path: [${a}]\n });\n }\n\n if (${n}_present) {\n if (${n}.value === undefined) {\n newResult[${a}] = undefined;\n } else {\n newResult[${a}] = ${n}.value;\n }\n }\n\n `)}t.write("payload.value = newResult;"),t.write("return payload;");const s=t.compile();return(t,n)=>s(e,t,n)})(t.shape)),c=i(c,d),u?Yt([],p,c,d,l,e):c):n(c,d):(c.issues.push({expected:"object",code:"invalid_type",input:p,inst:e}),c)}});function Vt(e,t,n,o){for(const r of e)if(0===r.issues.length)return t.value=r.value,t;const i=e.filter(e=>!V(e));return 1===i.length?(t.value=i[0].value,i[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>X(e,o,E())))}),t)}var Gt=k("$ZodUnion",(e,t)=>{lt.init(e,t),P(e._zod,"optin",()=>t.options.some(e=>"optional"===e._zod.optin)?"optional":void 0),P(e._zod,"optout",()=>t.options.some(e=>"optional"===e._zod.optout)?"optional":void 0),P(e._zod,"values",()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),P(e._zod,"pattern",()=>{if(t.options.every(e=>e._zod.pattern)){const e=t.options.map(e=>e._zod.pattern);return new RegExp(`^(${e.map(e=>C(e.source)).join("|")})$`)}});const n=1===t.options.length?t.options[0]._zod.run:null;e._zod.parse=(o,i)=>{if(n)return n(o,i);let r=!1;const a=[];for(const e of t.options){const t=e._zod.run({value:o.value,issues:[]},i);if(t instanceof Promise)a.push(t),r=!0;else{if(0===t.issues.length)return t;a.push(t)}}return r?Promise.all(a).then(t=>Vt(t,o,e,i)):Vt(a,o,e,i)}}),Ht=k("$ZodDiscriminatedUnion",(e,t)=>{t.inclusive=!1,Gt.init(e,t);const n=e._zod.parse;P(e._zod,"propValues",()=>{const e={};for(const n of t.options){const o=n._zod.propValues;if(!o||0===Object.keys(o).length)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(n)}"`);for(const[t,n]of Object.entries(o)){e[t]||(e[t]=new Set);for(const o of n)e[t].add(o)}}return e});const o=I(()=>{const e=t.options,n=new Map;for(const o of e){const e=o._zod.propValues?.[t.discriminator];if(!e||0===e.size)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(o)}"`);for(const t of e){if(n.has(t))throw new Error(`Duplicate discriminator value "${String(t)}"`);n.set(t,o)}}return n});e._zod.parse=(i,r)=>{const a=i.value;if(!D(a))return i.issues.push({code:"invalid_type",expected:"object",input:a,inst:e}),i;const s=o.value.get(a?.[t.discriminator]);return s?s._zod.run(i,r):t.unionFallback||"backward"===r.direction?n(i,r):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:t.discriminator,options:Array.from(o.value.keys()),input:a,path:[t.discriminator],inst:e}),i)}}),Kt=k("$ZodIntersection",(e,t)=>{lt.init(e,t),e._zod.parse=(e,n)=>{const o=e.value,i=t.left._zod.run({value:o,issues:[]},n),r=t.right._zod.run({value:o,issues:[]},n);return i instanceof Promise||r instanceof Promise?Promise.all([i,r]).then(([t,n])=>Qt(e,t,n)):Qt(e,i,r)}});function Xt(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(L(e)&&L(t)){const n=Object.keys(t),o=Object.keys(e).filter(e=>-1!==n.indexOf(e)),i={...e,...t};for(const r of o){const n=Xt(e[r],t[r]);if(!n.valid)return{valid:!1,mergeErrorPath:[r,...n.mergeErrorPath]};i[r]=n.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const n=[];for(let o=0;o<e.length;o++){const i=Xt(e[o],t[o]);if(!i.valid)return{valid:!1,mergeErrorPath:[o,...i.mergeErrorPath]};n.push(i.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function Qt(e,t,n){const o=new Map;let i;for(const s of t.issues)if("unrecognized_keys"===s.code){i??(i=s);for(const e of s.keys)o.has(e)||o.set(e,{}),o.get(e).l=!0}else e.issues.push(s);for(const s of n.issues)if("unrecognized_keys"===s.code)for(const e of s.keys)o.has(e)||o.set(e,{}),o.get(e).r=!0;else e.issues.push(s);const r=[...o].filter(([,e])=>e.l&&e.r).map(([e])=>e);if(r.length&&i&&e.issues.push({...i,keys:r}),V(e))return e;const a=Xt(t.value,n.value);if(!a.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(a.mergeErrorPath)}`);return e.value=a.data,e}var en=k("$ZodRecord",(e,t)=>{lt.init(e,t),e._zod.parse=(n,o)=>{const i=n.value;if(!L(i))return n.issues.push({expected:"record",code:"invalid_type",input:i,inst:e}),n;const r=[],a=t.keyType._zod.values;if(a){n.value={};const s=new Set;for(const l of a)if("string"==typeof l||"number"==typeof l||"symbol"==typeof l){s.add("number"==typeof l?l.toString():l);const a=t.keyType._zod.run({value:l,issues:[]},o);if(a instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(a.issues.length){n.issues.push({code:"invalid_key",origin:"record",issues:a.issues.map(e=>X(e,o,E())),input:l,path:[l],inst:e});continue}const u=a.value,c=t.valueType._zod.run({value:i[l],issues:[]},o);c instanceof Promise?r.push(c.then(e=>{e.issues.length&&n.issues.push(...H(l,e.issues)),n.value[u]=e.value})):(c.issues.length&&n.issues.push(...H(l,c.issues)),n.value[u]=c.value)}let u;for(const e in i)s.has(e)||(u=u??[],u.push(e));u&&u.length>0&&n.issues.push({code:"unrecognized_keys",input:i,inst:e,keys:u})}else{n.value={};for(const a of Reflect.ownKeys(i)){if("__proto__"===a)continue;if(!Object.prototype.propertyIsEnumerable.call(i,a))continue;let s=t.keyType._zod.run({value:a,issues:[]},o);if(s instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if("string"==typeof a&&Ze.test(a)&&s.issues.length){const e=t.keyType._zod.run({value:Number(a),issues:[]},o);if(e instanceof Promise)throw new Error("Async schemas not supported in object keys currently");0===e.issues.length&&(s=e)}if(s.issues.length){"loose"===t.mode?n.value[a]=i[a]:n.issues.push({code:"invalid_key",origin:"record",issues:s.issues.map(e=>X(e,o,E())),input:a,path:[a],inst:e});continue}const u=t.valueType._zod.run({value:i[a],issues:[]},o);u instanceof Promise?r.push(u.then(e=>{e.issues.length&&n.issues.push(...H(a,e.issues)),n.value[s.value]=e.value})):(u.issues.length&&n.issues.push(...H(a,u.issues)),n.value[s.value]=u.value)}}return r.length?Promise.all(r).then(()=>n):n}}),tn=k("$ZodEnum",(e,t)=>{lt.init(e,t);const n=T(t.entries),o=new Set(n);e._zod.values=o,e._zod.pattern=new RegExp(`^(${n.filter(e=>F.has(typeof e)).map(e=>"string"==typeof e?B(e):e.toString()).join("|")})$`),e._zod.parse=(t,i)=>{const r=t.value;return o.has(r)||t.issues.push({code:"invalid_value",values:n,input:r,inst:e}),t}}),nn=k("$ZodLiteral",(e,t)=>{if(lt.init(e,t),0===t.values.length)throw new Error("Cannot create literal schema with no valid values");const n=new Set(t.values);e._zod.values=n,e._zod.pattern=new RegExp(`^(${t.values.map(e=>"string"==typeof e?B(e):e?B(e.toString()):String(e)).join("|")})$`),e._zod.parse=(o,i)=>{const r=o.value;return n.has(r)||o.issues.push({code:"invalid_value",values:t.values,input:r,inst:e}),o}}),on=k("$ZodTransform",(e,t)=>{lt.init(e,t),e._zod.optin="optional",e._zod.parse=(n,o)=>{if("backward"===o.direction)throw new O(e.constructor.name);const i=t.transform(n.value,n);if(o.async)return(i instanceof Promise?i:Promise.resolve(i)).then(e=>(n.value=e,n.fallback=!0,n));if(i instanceof Promise)throw new z;return n.value=i,n.fallback=!0,n}});function rn(e,t){return void 0===t&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}var an=k("$ZodOptional",(e,t)=>{lt.init(e,t),e._zod.optin="optional",e._zod.optout="optional",P(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),P(e._zod,"pattern",()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${C(e.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if("optional"===t.innerType._zod.optin){const o=e.value,i=t.innerType._zod.run(e,n);return i instanceof Promise?i.then(e=>rn(e,o)):rn(i,o)}return void 0===e.value?e:t.innerType._zod.run(e,n)}}),sn=k("$ZodExactOptional",(e,t)=>{an.init(e,t),P(e._zod,"values",()=>t.innerType._zod.values),P(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(e,n)=>t.innerType._zod.run(e,n)}),un=k("$ZodNullable",(e,t)=>{lt.init(e,t),P(e._zod,"optin",()=>t.innerType._zod.optin),P(e._zod,"optout",()=>t.innerType._zod.optout),P(e._zod,"pattern",()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${C(e.source)}|null)$`):void 0}),P(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>null===e.value?e:t.innerType._zod.run(e,n)}),ln=k("$ZodDefault",(e,t)=>{lt.init(e,t),e._zod.optin="optional",P(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);if(void 0===e.value)return e.value=t.defaultValue,e;const o=t.innerType._zod.run(e,n);return o instanceof Promise?o.then(e=>cn(e,t)):cn(o,t)}});function cn(e,t){return void 0===e.value&&(e.value=t.defaultValue),e}var dn=k("$ZodPrefault",(e,t)=>{lt.init(e,t),e._zod.optin="optional",P(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>("backward"===n.direction||void 0===e.value&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),pn=k("$ZodNonOptional",(e,t)=>{lt.init(e,t),P(e._zod,"values",()=>{const e=t.innerType._zod.values;return e?new Set([...e].filter(e=>void 0!==e)):void 0}),e._zod.parse=(n,o)=>{const i=t.innerType._zod.run(n,o);return i instanceof Promise?i.then(t=>fn(t,e)):fn(i,e)}});function fn(e,t){return e.issues.length||void 0!==e.value||e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}var mn=k("$ZodCatch",(e,t)=>{lt.init(e,t),e._zod.optin="optional",P(e._zod,"optout",()=>t.innerType._zod.optout),P(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);const o=t.innerType._zod.run(e,n);return o instanceof Promise?o.then(o=>(e.value=o.value,o.issues.length&&(e.value=t.catchValue({...e,error:{issues:o.issues.map(e=>X(e,n,E()))},input:e.value}),e.issues=[],e.fallback=!0),e)):(e.value=o.value,o.issues.length&&(e.value=t.catchValue({...e,error:{issues:o.issues.map(e=>X(e,n,E()))},input:e.value}),e.issues=[],e.fallback=!0),e)}}),_n=k("$ZodPipe",(e,t)=>{lt.init(e,t),P(e._zod,"values",()=>t.in._zod.values),P(e._zod,"optin",()=>t.in._zod.optin),P(e._zod,"optout",()=>t.out._zod.optout),P(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if("backward"===n.direction){const o=t.out._zod.run(e,n);return o instanceof Promise?o.then(e=>hn(e,t.in,n)):hn(o,t.in,n)}const o=t.in._zod.run(e,n);return o instanceof Promise?o.then(e=>hn(e,t.out,n)):hn(o,t.out,n)}});function hn(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues,fallback:e.fallback},n)}var yn=k("$ZodReadonly",(e,t)=>{lt.init(e,t),P(e._zod,"propValues",()=>t.innerType._zod.propValues),P(e._zod,"values",()=>t.innerType._zod.values),P(e._zod,"optin",()=>t.innerType?._zod?.optin),P(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);const o=t.innerType._zod.run(e,n);return o instanceof Promise?o.then(gn):gn(o)}});function gn(e){return e.value=Object.freeze(e.value),e}var bn,vn=k("$ZodCustom",(e,t)=>{Be.init(e,t),lt.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{const o=n.value,i=t.fn(o);if(i instanceof Promise)return i.then(t=>wn(t,n,o,e));wn(i,n,o,e)}});function wn(e,t,n,o){if(!e){const e={code:"custom",input:n,inst:o,path:[...o._zod.def.path??[]],continue:!o._zod.def.abort};o._zod.def.params&&(e.params=o._zod.def.params),t.issues.push(ee(e))}}var Sn=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){const n=t[0];return this._map.set(e,n),n&&"object"==typeof n&&"id"in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){const t=this._map.get(e);return t&&"object"==typeof t&&"id"in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){const t=e._zod.parent;if(t){const n={...this.get(t)??{}};delete n.id;const o={...n,...this._map.get(e)};return Object.keys(o).length?o:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};(bn=globalThis).__zod_globalRegistry??(bn.__zod_globalRegistry=new Sn);var kn=globalThis.__zod_globalRegistry;function zn(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...J(t)})}function On(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...J(t)})}function xn(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...J(t)})}function En(e,t){return new Je({check:"less_than",...J(t),value:e,inclusive:!1})}function Tn(e,t){return new Je({check:"less_than",...J(t),value:e,inclusive:!0})}function An(e,t){return new We({check:"greater_than",...J(t),value:e,inclusive:!1})}function In(e,t){return new We({check:"greater_than",...J(t),value:e,inclusive:!0})}function $n(e,t){return new Ve({check:"multiple_of",...J(t),value:e})}function Cn(e,t){return new He({check:"max_length",...J(t),maximum:e})}function Nn(e,t){return new Ke({check:"min_length",...J(t),minimum:e})}function Pn(e,t){return new Xe({check:"length_equals",...J(t),length:e})}function Rn(e){return new at({check:"overwrite",tx:e})}function Un(e,t){const n=new Be({check:"custom",...J(t)});return n._zod.check=e,n}function qn(e){let t=e?.target??"draft-2020-12";return"draft-4"===t&&(t="draft-04"),"draft-7"===t&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??kn,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 jn(e,t,n={path:[],schemaPath:[]}){var o;const i=e._zod.def,r=t.seen.get(e);if(r)return r.count++,n.schemaPath.includes(e)&&(r.cycle=n.path),r.schema;const a={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,a);const s=e._zod.toJSONSchema?.();if(s)a.schema=s;else{const o={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,a.schema,o);else{const n=a.schema,r=t.processors[i.type];if(!r)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);r(e,t,n,o)}const r=e._zod.parent;r&&(a.ref||(a.ref=r),jn(r,t,o),t.seen.get(r).isParent=!0)}const u=t.metadataRegistry.get(e);return u&&Object.assign(a.schema,u),"input"===t.io&&Ln(e)&&(delete a.schema.examples,delete a.schema.default),"input"===t.io&&"_prefault"in a.schema&&((o=a.schema).default??(o.default=a.schema._prefault)),delete a.schema._prefault,t.seen.get(e).schema}function Dn(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const o=new Map;for(const r of e.seen.entries()){const t=e.metadataRegistry.get(r[0])?.id;if(t){const e=o.get(t);if(e&&e!==r[0])throw new Error(`Duplicate schema id "${t}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);o.set(t,r[0])}}const i=t=>{if(t[1].schema.$ref)return;const o=t[1],{ref:i,defId:r}=(t=>{const o="draft-2020-12"===e.target?"$defs":"definitions";if(e.external){const n=e.external.registry.get(t[0])?.id,i=e.external.uri??(e=>e);if(n)return{ref:i(n)};const r=t[1].defId??t[1].schema.id??"schema"+e.counter++;return t[1].defId=r,{defId:r,ref:`${i("__shared")}#/${o}/${r}`}}if(t[1]===n)return{ref:"#"};const i=`#/${o}/`,r=t[1].schema.id??"__schema"+e.counter++;return{defId:r,ref:i+r}})(t);o.def={...o.schema},r&&(o.defId=r);const a=o.schema;for(const e in a)delete a[e];a.$ref=i};if("throw"===e.cycles)for(const r of e.seen.entries()){const e=r[1];if(e.cycle)throw new Error(`Cycle detected: #/${e.cycle?.join("/")}/<root>\n\nSet the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const r of e.seen.entries()){const n=r[1];if(t!==r[0]){if(e.external){const n=e.external.registry.get(r[0])?.id;if(t!==r[0]&&n){i(r);continue}}(e.metadataRegistry.get(r[0])?.id||n.cycle||n.count>1&&"ref"===e.reused)&&i(r)}else i(r)}}function Zn(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const o=t=>{const n=e.seen.get(t);if(null===n.ref)return;const i=n.def??n.schema,r={...i},a=n.ref;if(n.ref=null,a){o(a);const n=e.seen.get(a),s=n.schema;if(!s.$ref||"draft-07"!==e.target&&"draft-04"!==e.target&&"openapi-3.0"!==e.target?Object.assign(i,s):(i.allOf=i.allOf??[],i.allOf.push(s)),Object.assign(i,r),t._zod.parent===a)for(const e in i)"$ref"!==e&&"allOf"!==e&&(e in r||delete i[e]);if(s.$ref&&n.def)for(const e in i)"$ref"!==e&&"allOf"!==e&&e in n.def&&JSON.stringify(i[e])===JSON.stringify(n.def[e])&&delete i[e]}const s=t._zod.parent;if(s&&s!==a){o(s);const t=e.seen.get(s);if(t?.schema.$ref&&(i.$ref=t.schema.$ref,t.def))for(const e in i)"$ref"!==e&&"allOf"!==e&&e in t.def&&JSON.stringify(i[e])===JSON.stringify(t.def[e])&&delete i[e]}e.override({zodSchema:t,jsonSchema:i,path:n.path??[]})};for(const u of[...e.seen.entries()].reverse())o(u[0]);const i={};if("draft-2020-12"===e.target?i.$schema="https://json-schema.org/draft/2020-12/schema":"draft-07"===e.target?i.$schema="http://json-schema.org/draft-07/schema#":"draft-04"===e.target?i.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const n=e.external.registry.get(t)?.id;if(!n)throw new Error("Schema is missing an `id` property");i.$id=e.external.uri(n)}Object.assign(i,n.def??n.schema);const r=e.metadataRegistry.get(t)?.id;void 0!==r&&i.id===r&&delete i.id;const a=e.external?.defs??{};for(const u of e.seen.entries()){const e=u[1];e.def&&e.defId&&(e.def.id===e.defId&&delete e.def.id,a[e.defId]=e.def)}e.external||Object.keys(a).length>0&&("draft-2020-12"===e.target?i.$defs=a:i.definitions=a);try{const n=JSON.parse(JSON.stringify(i));return Object.defineProperty(n,"~standard",{value:{...t["~standard"],jsonSchema:{input:Mn(t,"input",e.processors),output:Mn(t,"output",e.processors)}},enumerable:!1,writable:!1}),n}catch(s){throw new Error("Error converting schema to JSON.")}}function Ln(e,t){const n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);const o=e._zod.def;if("transform"===o.type)return!0;if("array"===o.type)return Ln(o.element,n);if("set"===o.type)return Ln(o.valueType,n);if("lazy"===o.type)return Ln(o.getter(),n);if("promise"===o.type||"optional"===o.type||"nonoptional"===o.type||"nullable"===o.type||"readonly"===o.type||"default"===o.type||"prefault"===o.type)return Ln(o.innerType,n);if("intersection"===o.type)return Ln(o.left,n)||Ln(o.right,n);if("record"===o.type||"map"===o.type)return Ln(o.keyType,n)||Ln(o.valueType,n);if("pipe"===o.type)return!!e._zod.traits.has("$ZodCodec")||(Ln(o.in,n)||Ln(o.out,n));if("object"===o.type){for(const e in o.shape)if(Ln(o.shape[e],n))return!0;return!1}if("union"===o.type){for(const e of o.options)if(Ln(e,n))return!0;return!1}if("tuple"===o.type){for(const e of o.items)if(Ln(e,n))return!0;return!(!o.rest||!Ln(o.rest,n))}return!1}var Mn=(e,t,n={})=>o=>{const{libraryOptions:i,target:r}=o??{},a=qn({...i??{},target:r,io:t,processors:n});return jn(e,a),Dn(a,e),Zn(a,e)},Fn={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Bn=(e,t,n,o)=>{const i=e._zod.def;jn(i.innerType,t,o);t.seen.get(e).ref=i.innerType},Yn=k("ZodISODateTime",(e,t)=>{kt.init(e,t),vo.init(e,t)});function Jn(e){return function(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...J(t)})}(Yn,e)}var Wn=k("ZodISODate",(e,t)=>{zt.init(e,t),vo.init(e,t)});function Vn(e){return function(e,t){return new e({type:"string",format:"date",check:"string_format",...J(t)})}(Wn,e)}var Gn=k("ZodISOTime",(e,t)=>{Ot.init(e,t),vo.init(e,t)});function Hn(e){return function(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...J(t)})}(Gn,e)}var Kn=k("ZodISODuration",(e,t)=>{xt.init(e,t),vo.init(e,t)});function Xn(e){return function(e,t){return new e({type:"string",format:"duration",check:"string_format",...J(t)})}(Kn,e)}var Qn=(e,t)=>{ne.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:t=>function(e,t=e=>e.message){const n={_errors:[]},o=(e,i=[])=>{for(const r of e.issues)if("invalid_union"===r.code&&r.errors.length)r.errors.map(e=>o({issues:e},[...i,...r.path]));else if("invalid_key"===r.code)o({issues:r.issues},[...i,...r.path]);else if("invalid_element"===r.code)o({issues:r.issues},[...i,...r.path]);else{const e=[...i,...r.path];if(0===e.length)n._errors.push(t(r));else{let o=n,i=0;for(;i<e.length;){const n=e[i];i!==e.length-1?o[n]=o[n]||{_errors:[]}:(o[n]=o[n]||{_errors:[]},o[n]._errors.push(t(r))),o=o[n],i++}}}};return o(e),n}(e,t)},flatten:{value:t=>function(e,t=e=>e.message){const n={},o=[];for(const i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):o.push(t(i));return{formErrors:o,fieldErrors:n}}(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,A,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,A,2)}},isEmpty:{get:()=>0===e.issues.length}})},eo=k("ZodError",Qn,{Parent:Error}),to=ie(eo),no=re(eo),oo=ae(eo),io=ue(eo),ro=ce(eo),ao=de(eo),so=pe(eo),uo=fe(eo),lo=me(eo),co=_e(eo),po=he(eo),fo=ye(eo),mo=new WeakMap;function _o(e,t,n){const o=Object.getPrototypeOf(e);let i=mo.get(o);if(i||(i=new Set,mo.set(o,i)),!i.has(t)){i.add(t);for(const e in n){const t=n[e];Object.defineProperty(o,e,{configurable:!0,enumerable:!1,get(){const n=t.bind(this);return Object.defineProperty(this,e,{configurable:!0,writable:!0,enumerable:!0,value:n}),n},set(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,enumerable:!0,value:t})}})}}}var ho=k("ZodType",(e,t)=>(lt.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:Mn(e,"input"),output:Mn(e,"output")}}),e.toJSONSchema=((e,t={})=>n=>{const o=qn({...n,processors:t});return jn(e,o),Dn(o,e),Zn(o,e)})(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.parse=(t,n)=>to(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>oo(e,t,n),e.parseAsync=async(t,n)=>no(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>io(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>ro(e,t,n),e.decode=(t,n)=>ao(e,t,n),e.encodeAsync=async(t,n)=>so(e,t,n),e.decodeAsync=async(t,n)=>uo(e,t,n),e.safeEncode=(t,n)=>lo(e,t,n),e.safeDecode=(t,n)=>co(e,t,n),e.safeEncodeAsync=async(t,n)=>po(e,t,n),e.safeDecodeAsync=async(t,n)=>fo(e,t,n),_o(e,"ZodType",{check(...e){const t=this.def;return this.clone(U(t,{checks:[...t.checks??[],...e.map(e=>"function"==typeof e?{_zod:{check:e,def:{check:"custom"},onattach:[]}}:e)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return Y(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(function(e,t={}){return function(e,t,n){return new e({type:"custom",check:"custom",fn:t,...J(n)})}(Oi,e,t)}(e,t))},superRefine(e,t){return this.check(function(e,t){return function(e,t){const n=Un(t=>(t.addIssue=e=>{if("string"==typeof e)t.issues.push(ee(e,t.value,n._zod.def));else{const o=e;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=t.value),o.inst??(o.inst=n),o.continue??(o.continue=!n._zod.def.abort),t.issues.push(ee(o))}},e(t.value,t)),t);return n}(e,t)}(e,t))},overwrite(e){return this.check(Rn(e))},optional(){return mi(this)},exactOptional(){return new _i({type:"optional",innerType:this})},nullable(){return yi(this)},nullish(){return mi(yi(this))},nonoptional(e){return function(e,t){return new vi({type:"nonoptional",innerType:e,...J(t)})}(this,e)},array(){return Xo(this)},or(e){return ni([this,e])},and(e){return new ri({type:"intersection",left:this,right:e})},transform(e){return ki(this,new pi({type:"transform",transform:e}))},default(e){return t=e,new gi({type:"default",innerType:this,get defaultValue(){return"function"==typeof t?t():M(t)}});var t},prefault(e){return t=e,new bi({type:"prefault",innerType:this,get defaultValue(){return"function"==typeof t?t():M(t)}});var t},catch(e){return new wi({type:"catch",innerType:this,catchValue:"function"==typeof(t=e)?t:()=>t});var t},pipe(e){return ki(this,e)},readonly(){return new zi({type:"readonly",innerType:this})},describe(e){const t=this.clone();return kn.add(t,{description:e}),t},meta(...e){if(0===e.length)return kn.get(this);const t=this.clone();return kn.add(t,e[0]),t},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e){return e(this)}}),Object.defineProperty(e,"description",{get:()=>kn.get(e)?.description,configurable:!0}),e)),yo=k("_ZodString",(e,t)=>{ct.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n)=>{const o=n;o.type="string";const{minimum:i,maximum:r,format:a,patterns:s,contentEncoding:u}=e._zod.bag;if("number"==typeof i&&(o.minLength=i),"number"==typeof r&&(o.maxLength=r),a&&(o.format=Fn[a]??a,""===o.format&&delete o.format,"time"===a&&delete o.format),u&&(o.contentEncoding=u),s&&s.size>0){const e=[...s];1===e.length?o.pattern=e[0].source:e.length>1&&(o.allOf=[...e.map(e=>({..."draft-07"===t.target||"draft-04"===t.target||"openapi-3.0"===t.target?{type:"string"}:{},pattern:e.source}))])}})(e,t,n);const n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,_o(e,"_ZodString",{regex(...e){return this.check(function(e,t){return new et({check:"string_format",format:"regex",...J(t),pattern:e})}(...e))},includes(...e){return this.check(function(e,t){return new ot({check:"string_format",format:"includes",...J(t),includes:e})}(...e))},startsWith(...e){return this.check(function(e,t){return new it({check:"string_format",format:"starts_with",...J(t),prefix:e})}(...e))},endsWith(...e){return this.check(function(e,t){return new rt({check:"string_format",format:"ends_with",...J(t),suffix:e})}(...e))},min(...e){return this.check(Nn(...e))},max(...e){return this.check(Cn(...e))},length(...e){return this.check(Pn(...e))},nonempty(...e){return this.check(Nn(1,...e))},lowercase(e){return this.check(function(e){return new tt({check:"string_format",format:"lowercase",...J(e)})}(e))},uppercase(e){return this.check(function(e){return new nt({check:"string_format",format:"uppercase",...J(e)})}(e))},trim(){return this.check(Rn(e=>e.trim()))},normalize(...e){return this.check(function(e){return Rn(t=>t.normalize(e))}(...e))},toLowerCase(){return this.check(Rn(e=>e.toLowerCase()))},toUpperCase(){return this.check(Rn(e=>e.toUpperCase()))},slugify(){return this.check(Rn(e=>function(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}(e)))}})}),go=k("ZodString",(e,t)=>{ct.init(e,t),yo.init(e,t),e.email=t=>e.check(zn(wo,t)),e.url=t=>e.check(xn(Oo,t)),e.jwt=t=>e.check(function(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...J(t)})}(Zo,t)),e.emoji=t=>e.check(function(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...J(t)})}(xo,t)),e.guid=t=>e.check(On(ko,t)),e.uuid=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...J(t)})}(zo,t)),e.uuidv4=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...J(t)})}(zo,t)),e.uuidv6=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...J(t)})}(zo,t)),e.uuidv7=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...J(t)})}(zo,t)),e.nanoid=t=>e.check(function(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...J(t)})}(Eo,t)),e.guid=t=>e.check(On(ko,t)),e.cuid=t=>e.check(function(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...J(t)})}(To,t)),e.cuid2=t=>e.check(function(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...J(t)})}(Ao,t)),e.ulid=t=>e.check(function(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...J(t)})}(Io,t)),e.base64=t=>e.check(function(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...J(t)})}(qo,t)),e.base64url=t=>e.check(function(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...J(t)})}(jo,t)),e.xid=t=>e.check(function(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...J(t)})}($o,t)),e.ksuid=t=>e.check(function(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...J(t)})}(Co,t)),e.ipv4=t=>e.check(function(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...J(t)})}(No,t)),e.ipv6=t=>e.check(function(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...J(t)})}(Po,t)),e.cidrv4=t=>e.check(function(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...J(t)})}(Ro,t)),e.cidrv6=t=>e.check(function(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...J(t)})}(Uo,t)),e.e164=t=>e.check(function(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...J(t)})}(Do,t)),e.datetime=t=>e.check(Jn(t)),e.date=t=>e.check(Vn(t)),e.time=t=>e.check(Hn(t)),e.duration=t=>e.check(Xn(t))});function bo(e){return function(e,t){return new e({type:"string",...J(t)})}(go,e)}var vo=k("ZodStringFormat",(e,t)=>{dt.init(e,t),yo.init(e,t)}),wo=k("ZodEmail",(e,t)=>{mt.init(e,t),vo.init(e,t)});function So(e){return zn(wo,e)}var ko=k("ZodGUID",(e,t)=>{pt.init(e,t),vo.init(e,t)}),zo=k("ZodUUID",(e,t)=>{ft.init(e,t),vo.init(e,t)}),Oo=k("ZodURL",(e,t)=>{_t.init(e,t),vo.init(e,t)});var xo=k("ZodEmoji",(e,t)=>{ht.init(e,t),vo.init(e,t)}),Eo=k("ZodNanoID",(e,t)=>{yt.init(e,t),vo.init(e,t)}),To=k("ZodCUID",(e,t)=>{gt.init(e,t),vo.init(e,t)}),Ao=k("ZodCUID2",(e,t)=>{bt.init(e,t),vo.init(e,t)}),Io=k("ZodULID",(e,t)=>{vt.init(e,t),vo.init(e,t)}),$o=k("ZodXID",(e,t)=>{wt.init(e,t),vo.init(e,t)}),Co=k("ZodKSUID",(e,t)=>{St.init(e,t),vo.init(e,t)}),No=k("ZodIPv4",(e,t)=>{Et.init(e,t),vo.init(e,t)}),Po=k("ZodIPv6",(e,t)=>{Tt.init(e,t),vo.init(e,t)}),Ro=k("ZodCIDRv4",(e,t)=>{At.init(e,t),vo.init(e,t)}),Uo=k("ZodCIDRv6",(e,t)=>{It.init(e,t),vo.init(e,t)}),qo=k("ZodBase64",(e,t)=>{Ct.init(e,t),vo.init(e,t)}),jo=k("ZodBase64URL",(e,t)=>{Nt.init(e,t),vo.init(e,t)}),Do=k("ZodE164",(e,t)=>{Pt.init(e,t),vo.init(e,t)}),Zo=k("ZodJWT",(e,t)=>{Rt.init(e,t),vo.init(e,t)}),Lo=k("ZodNumber",(e,t)=>{Ut.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n)=>{const o=n,{minimum:i,maximum:r,format:a,multipleOf:s,exclusiveMaximum:u,exclusiveMinimum:l}=e._zod.bag;"string"==typeof a&&a.includes("int")?o.type="integer":o.type="number";const c="number"==typeof l&&l>=(i??Number.NEGATIVE_INFINITY),d="number"==typeof u&&u<=(r??Number.POSITIVE_INFINITY),p="draft-04"===t.target||"openapi-3.0"===t.target;c?p?(o.minimum=l,o.exclusiveMinimum=!0):o.exclusiveMinimum=l:"number"==typeof i&&(o.minimum=i),d?p?(o.maximum=u,o.exclusiveMaximum=!0):o.exclusiveMaximum=u:"number"==typeof r&&(o.maximum=r),"number"==typeof s&&(o.multipleOf=s)})(e,t,n),_o(e,"ZodNumber",{gt(e,t){return this.check(An(e,t))},gte(e,t){return this.check(In(e,t))},min(e,t){return this.check(In(e,t))},lt(e,t){return this.check(En(e,t))},lte(e,t){return this.check(Tn(e,t))},max(e,t){return this.check(Tn(e,t))},int(e){return this.check(Bo(e))},safe(e){return this.check(Bo(e))},positive(e){return this.check(An(0,e))},nonnegative(e){return this.check(In(0,e))},negative(e){return this.check(En(0,e))},nonpositive(e){return this.check(Tn(0,e))},multipleOf(e,t){return this.check($n(e,t))},step(e,t){return this.check($n(e,t))},finite(){return this}});const n=e._zod.bag;e.minValue=Math.max(n.minimum??Number.NEGATIVE_INFINITY,n.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(n.maximum??Number.POSITIVE_INFINITY,n.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(n.format??"").includes("int")||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function Mo(e){return function(e,t){return new e({type:"number",checks:[],...J(t)})}(Lo,e)}var Fo=k("ZodNumberFormat",(e,t)=>{qt.init(e,t),Lo.init(e,t)});function Bo(e){return function(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...J(t)})}(Fo,e)}var Yo=k("ZodBoolean",(e,t)=>{jt.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(e,t,n)=>((e,t,n)=>{n.type="boolean"})(0,0,t)});function Jo(e){return function(e,t){return new e({type:"boolean",...J(t)})}(Yo,e)}var Wo=k("ZodUnknown",(e,t)=>{Dt.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(e,t,n)=>{}});function Vo(){return new Wo({type:"unknown"})}var Go=k("ZodNever",(e,t)=>{Zt.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(e,t,n)=>((e,t,n)=>{n.not={}})(0,0,t)});function Ho(e){return function(e,t){return new e({type:"never",...J(t)})}(Go,e)}var Ko=k("ZodArray",(e,t)=>{Mt.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=n,r=e._zod.def,{minimum:a,maximum:s}=e._zod.bag;"number"==typeof a&&(i.minItems=a),"number"==typeof s&&(i.maxItems=s),i.type="array",i.items=jn(r.element,t,{...o,path:[...o.path,"items"]})})(e,t,n,o),e.element=t.element,_o(e,"ZodArray",{min(e,t){return this.check(Nn(e,t))},nonempty(e){return this.check(Nn(1,e))},max(e,t){return this.check(Cn(e,t))},length(e,t){return this.check(Pn(e,t))},unwrap(){return this.element}})});function Xo(e,t){return function(e,t,n){return new e({type:"array",element:t,...J(n)})}(Ko,e,t)}var Qo=k("ZodObject",(e,t)=>{Wt.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=n,r=e._zod.def;i.type="object",i.properties={};const a=r.shape;for(const l in a)i.properties[l]=jn(a[l],t,{...o,path:[...o.path,"properties",l]});const s=new Set(Object.keys(a)),u=new Set([...s].filter(e=>{const n=r.shape[e]._zod;return"input"===t.io?void 0===n.optin:void 0===n.optout}));u.size>0&&(i.required=Array.from(u)),"never"===r.catchall?._zod.def.type?i.additionalProperties=!1:r.catchall?r.catchall&&(i.additionalProperties=jn(r.catchall,t,{...o,path:[...o.path,"additionalProperties"]})):"output"===t.io&&(i.additionalProperties=!1)})(e,t,n,o),P(e,"shape",()=>t.shape),_o(e,"ZodObject",{keyof(){return li(Object.keys(this._zod.def.shape))},catchall(e){return this.clone({...this._zod.def,catchall:e})},passthrough(){return this.clone({...this._zod.def,catchall:Vo()})},loose(){return this.clone({...this._zod.def,catchall:Vo()})},strict(){return this.clone({...this._zod.def,catchall:Ho()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(e){return function(e,t){if(!L(t))throw new Error("Invalid input to extend: expected a plain object");const n=e._zod.def.checks;if(n&&n.length>0){const n=e._zod.def.shape;for(const e in t)if(void 0!==Object.getOwnPropertyDescriptor(n,e))throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return Y(e,U(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return R(this,"shape",n),n}}))}(this,e)},safeExtend(e){return function(e,t){if(!L(t))throw new Error("Invalid input to safeExtend: expected a plain object");return Y(e,U(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return R(this,"shape",n),n}}))}(this,e)},merge(e){return function(e,t){if(e._zod.def.checks?.length)throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");return Y(e,U(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t._zod.def.shape};return R(this,"shape",n),n},get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]}))}(this,e)},pick(e){return function(e,t){const n=e._zod.def,o=n.checks;if(o&&o.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");return Y(e,U(e._zod.def,{get shape(){const e={};for(const o in t){if(!(o in n.shape))throw new Error(`Unrecognized key: "${o}"`);t[o]&&(e[o]=n.shape[o])}return R(this,"shape",e),e},checks:[]}))}(this,e)},omit(e){return function(e,t){const n=e._zod.def,o=n.checks;if(o&&o.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");return Y(e,U(e._zod.def,{get shape(){const o={...e._zod.def.shape};for(const e in t){if(!(e in n.shape))throw new Error(`Unrecognized key: "${e}"`);t[e]&&delete o[e]}return R(this,"shape",o),o},checks:[]}))}(this,e)},partial(...e){return function(e,t,n){const o=t._zod.def.checks;if(o&&o.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");return Y(t,U(t._zod.def,{get shape(){const o=t._zod.def.shape,i={...o};if(n)for(const t in n){if(!(t in o))throw new Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=e?new e({type:"optional",innerType:o[t]}):o[t])}else for(const t in o)i[t]=e?new e({type:"optional",innerType:o[t]}):o[t];return R(this,"shape",i),i},checks:[]}))}(fi,this,e[0])},required(...e){return t=vi,n=this,o=e[0],Y(n,U(n._zod.def,{get shape(){const e=n._zod.def.shape,i={...e};if(o)for(const n in o){if(!(n in i))throw new Error(`Unrecognized key: "${n}"`);o[n]&&(i[n]=new t({type:"nonoptional",innerType:e[n]}))}else for(const n in e)i[n]=new t({type:"nonoptional",innerType:e[n]});return R(this,"shape",i),i}}));var t,n,o}})});function ei(e,t){return new Qo({type:"object",shape:e??{},...J(t)})}var ti=k("ZodUnion",(e,t)=>{Gt.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def,r=!1===i.inclusive,a=i.options.map((e,n)=>jn(e,t,{...o,path:[...o.path,r?"oneOf":"anyOf",n]}));r?n.oneOf=a:n.anyOf=a})(e,t,n,o),e.options=t.options});function ni(e,t){return new ti({type:"union",options:e,...J(t)})}var oi=k("ZodDiscriminatedUnion",(e,t)=>{ti.init(e,t),Ht.init(e,t)});function ii(e,t,n){return new oi({type:"union",options:t,discriminator:e,...J(n)})}var ri=k("ZodIntersection",(e,t)=>{Kt.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def,r=jn(i.left,t,{...o,path:[...o.path,"allOf",0]}),a=jn(i.right,t,{...o,path:[...o.path,"allOf",1]}),s=e=>"allOf"in e&&1===Object.keys(e).length;n.allOf=[...s(r)?r.allOf:[r],...s(a)?a.allOf:[a]]})(e,t,n,o)});var ai=k("ZodRecord",(e,t)=>{en.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=n,r=e._zod.def;i.type="object";const a=r.keyType,s=a._zod.bag?.patterns;if("loose"===r.mode&&s&&s.size>0){const e=jn(r.valueType,t,{...o,path:[...o.path,"patternProperties","*"]});i.patternProperties={};for(const t of s)i.patternProperties[t.source]=e}else"draft-07"!==t.target&&"draft-2020-12"!==t.target||(i.propertyNames=jn(r.keyType,t,{...o,path:[...o.path,"propertyNames"]})),i.additionalProperties=jn(r.valueType,t,{...o,path:[...o.path,"additionalProperties"]});const u=a._zod.values;if(u){const e=[...u].filter(e=>"string"==typeof e||"number"==typeof e);e.length>0&&(i.required=e)}})(e,t,n,o),e.keyType=t.keyType,e.valueType=t.valueType});function si(e,t,n){return t&&t._zod?new ai({type:"record",keyType:e,valueType:t,...J(n)}):new ai({type:"record",keyType:bo(),valueType:e,...J(t)})}var ui=k("ZodEnum",(e,t)=>{tn.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n)=>{const o=T(e._zod.def.entries);o.every(e=>"number"==typeof e)&&(n.type="number"),o.every(e=>"string"==typeof e)&&(n.type="string"),n.enum=o})(e,0,n),e.enum=t.entries,e.options=Object.values(t.entries);const n=new Set(Object.keys(t.entries));e.extract=(e,o)=>{const i={};for(const r of e){if(!n.has(r))throw new Error(`Key ${r} not found in enum`);i[r]=t.entries[r]}return new ui({...t,checks:[],...J(o),entries:i})},e.exclude=(e,o)=>{const i={...t.entries};for(const t of e){if(!n.has(t))throw new Error(`Key ${t} not found in enum`);delete i[t]}return new ui({...t,checks:[],...J(o),entries:i})}});function li(e,t){return new ui({type:"enum",entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...J(t)})}var ci=k("ZodLiteral",(e,t)=>{nn.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n)=>{const o=e._zod.def,i=[];for(const r of o.values)if(void 0===r){if("throw"===t.unrepresentable)throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if("bigint"==typeof r){if("throw"===t.unrepresentable)throw new Error("BigInt literals cannot be represented in JSON Schema");i.push(Number(r))}else i.push(r);if(0===i.length);else if(1===i.length){const e=i[0];n.type=null===e?"null":typeof e,"draft-04"===t.target||"openapi-3.0"===t.target?n.enum=[e]:n.const=e}else i.every(e=>"number"==typeof e)&&(n.type="number"),i.every(e=>"string"==typeof e)&&(n.type="string"),i.every(e=>"boolean"==typeof e)&&(n.type="boolean"),i.every(e=>null===e)&&(n.type="null"),n.enum=i})(e,t,n),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function di(e,t){return new ci({type:"literal",values:Array.isArray(e)?e:[e],...J(t)})}var pi=k("ZodTransform",(e,t)=>{on.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(e,t,n)=>((e,t)=>{if("throw"===t.unrepresentable)throw new Error("Transforms cannot be represented in JSON Schema")})(0,e),e._zod.parse=(n,o)=>{if("backward"===o.direction)throw new O(e.constructor.name);n.addIssue=o=>{if("string"==typeof o)n.issues.push(ee(o,n.value,t));else{const t=o;t.fatal&&(t.continue=!1),t.code??(t.code="custom"),t.input??(t.input=n.value),t.inst??(t.inst=e),n.issues.push(ee(t))}};const i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n.fallback=!0,n)):(n.value=i,n.fallback=!0,n)}});var fi=k("ZodOptional",(e,t)=>{an.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>Bn(e,t,0,o),e.unwrap=()=>e._zod.def.innerType});function mi(e){return new fi({type:"optional",innerType:e})}var _i=k("ZodExactOptional",(e,t)=>{sn.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>Bn(e,t,0,o),e.unwrap=()=>e._zod.def.innerType});var hi=k("ZodNullable",(e,t)=>{un.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def,r=jn(i.innerType,t,o),a=t.seen.get(e);"openapi-3.0"===t.target?(a.ref=i.innerType,n.nullable=!0):n.anyOf=[r,{type:"null"}]})(e,t,n,o),e.unwrap=()=>e._zod.def.innerType});function yi(e){return new hi({type:"nullable",innerType:e})}var gi=k("ZodDefault",(e,t)=>{ln.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def;jn(i.innerType,t,o),t.seen.get(e).ref=i.innerType,n.default=JSON.parse(JSON.stringify(i.defaultValue))})(e,t,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});var bi=k("ZodPrefault",(e,t)=>{dn.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def;jn(i.innerType,t,o),t.seen.get(e).ref=i.innerType,"input"===t.io&&(n._prefault=JSON.parse(JSON.stringify(i.defaultValue)))})(e,t,n,o),e.unwrap=()=>e._zod.def.innerType});var vi=k("ZodNonOptional",(e,t)=>{pn.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def;jn(i.innerType,t,o),t.seen.get(e).ref=i.innerType})(e,t,0,o),e.unwrap=()=>e._zod.def.innerType});var wi=k("ZodCatch",(e,t)=>{mn.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def;let r;jn(i.innerType,t,o),t.seen.get(e).ref=i.innerType;try{r=i.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}n.default=r})(e,t,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});var Si=k("ZodPipe",(e,t)=>{_n.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def,r=i.in._zod.traits.has("$ZodTransform"),a="input"===t.io?r?i.out:i.in:i.out;jn(a,t,o),t.seen.get(e).ref=a})(e,t,0,o),e.in=t.in,e.out=t.out});function ki(e,t){return new Si({type:"pipe",in:e,out:t})}var zi=k("ZodReadonly",(e,t)=>{yn.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def;jn(i.innerType,t,o),t.seen.get(e).ref=i.innerType,n.readOnly=!0})(e,t,n,o),e.unwrap=()=>e._zod.def.innerType});var Oi=k("ZodCustom",(e,t)=>{vn.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(e,t,n)=>((e,t)=>{if("throw"===t.unrepresentable)throw new Error("Custom types cannot be represented in JSON Schema")})(0,e)});var xi,Ei=li(["CONSENT","SOFT_OPT_IN","TRANSACTIONAL_ONLY","UNKNOWN"]),Ti=li(["MANUAL_UNSUB","ONE_CLICK_UNSUB","HARD_BOUNCE","COMPLAINT","ADMIN_BLOCK"]),Ai=li(["BROADCAST","AUTOMATION"]),Ii=li(["ABANDONED_CART","POST_PURCHASE","WELCOME","WIN_BACK","RE_ENGAGEMENT","TAG_ADDED"]),$i=(ei({email:So(),name:bo().trim().min(1).nullable().optional(),customer_id:bo().uuid().nullable().optional(),tags:Xo(bo().trim().min(1)).default([]),consent_basis:Ei.default("UNKNOWN"),source:bo().trim().min(1).default("dashboard")}),ei({name:bo().trim().min(1),subject:bo().trim().min(1),preheader:bo().nullable().optional(),mjml_source:bo().trim().min(1),builder_project_json:si(bo(),Vo()).nullable().optional(),thumbnail_url:xn(Oo,xi).nullable().optional()}),ei({mjml_source:bo().trim().min(1),sample_variables:si(bo(),Vo()).optional()}),ei({recipient_email:So(),sample_variables:si(bo(),Vo()).optional()}),ei({marketing_enabled:Jo().optional(),default_from_name:bo().trim().min(1).nullable().optional(),default_from_email:So().nullable().optional(),default_reply_to_email:So().nullable().optional(),physical_address:bo().trim().min(1).nullable().optional(),physical_address_line2:bo().trim().min(1).nullable().optional(),physical_city:bo().trim().min(1).nullable().optional(),physical_postal_code:bo().trim().min(1).nullable().optional(),physical_country:bo().trim().length(2).nullable().optional(),daily_limit:Mo().int().positive().optional(),monthly_soft_cap:Mo().int().positive().optional()}),ei({type:Ai.default("BROADCAST"),name:bo().trim().min(1),subject:bo().trim().min(1),template_id:bo().uuid(),list_id:bo().uuid().nullable().optional(),segment_id:bo().uuid().nullable().optional(),from_name:bo().trim().min(1),from_email:So(),reply_to_email:So().nullable().optional(),schedule_at:bo().datetime().nullable().optional(),target_emails:Xo(So()).max(0,"Direct recipient entry is disabled. Use lists or segments built from Shoppex customers and paid order buyers.").default([]),idempotency_key:bo().trim().min(1).nullable().optional()}),ei({name:bo().trim().min(1),subject:bo().trim().min(1),template_id:bo().uuid(),from_name:bo().trim().min(1),from_email:So(),reply_to_email:So().nullable().optional(),trigger:Ii,delay_seconds:Mo().int().min(0).default(0),conditions:si(bo(),Vo()).default({})}),ei({trigger:Ii,email:So(),customer_id:bo().uuid().nullable().optional(),name:bo().trim().min(1).nullable().optional(),consent_basis:Ei.default("UNKNOWN"),variables:si(bo(),Vo()).default({}),idempotency_key:bo().trim().min(1).nullable().optional()}),ei({email:So(),reason:Ti.default("ADMIN_BLOCK"),notes:bo().nullable().optional()}),["BITCOIN","LITECOIN","ETHEREUM","BITCOIN_CASH","MONERO","RIPPLE","TRON","SOLANA","POLYGON","BINANCE_COIN","CRONOS","CONCORDIUM","NANO","DOGECOIN","DASH"]),Ci=["NOWPAYMENTS","CRYPTOMUS","OXAPAY"],Ni=["NOWPAYMENTS_WHITELABEL"],Pi={USDT:["USDT_TRC20","USDT_ERC20","USDT_BEP20","USDT_POLYGON","USDT_SOL"],USDC:["USDC_ERC20","USDC_TRC20","USDC_BEP20","USDC_POLYGON","USDC_SOL"],DAI:["DAI_ERC20"]},Ri=Object.keys(Pi),Ui=[...Pi.USDT,...Pi.USDC,...Pi.DAI],qi=[...$i,...Ui],ji=["BITCOIN_LN"],Di=[...Ci,...Ni],Zi=[...qi,...ji],Li=qi,Mi=new Set($i),Fi=new Set(Ui),Bi=(new Set(qi),new Set(ji),new Set(Ci),new Set(Ni),new Set(Di),new Set(Zi),new Set(Ri),new Set(["STRIPE","PAYPAL","PAYPAL_FF","MOLLIE","AUTHORIZENET","NMI","SQUARE","SUMUP","SHOPIFY","SUBY","PANDABASE","STORRIK","DEBLOMASSI","MONEYMOTION","OVGC","WHOP","DODO","MAVERICK","CASHAPP","VENMO","CRYPTO","CUSTOMER_BALANCE","MANUAL"]),{CASHAPP:"CASH_APP",PAYPAL_CREDIT_CARD:"PAYPAL",EUTHEREUM:"ETHEREUM",USDT_MATIC:"USDT_POLYGON",USDC_MATIC:"USDC_POLYGON"});function Yi(e,t){if(new Set(t).size!==t.length)throw new Error(`${e} contains duplicate entries`)}Yi("COIN_GATEWAY_KEYS",$i),Yi("TOKEN_GATEWAY_KEYS",Ui),Yi("CRYPTO_GATEWAY_KEYS",qi),Yi("LEGACY_CRYPTO_GATEWAY_KEYS",ji),Yi("CRYPTO_PROVIDER_KEYS",Ci),Yi("MANAGED_CRYPTO_PROVIDER_KEYS",Ni),Yi("CRYPTO_PROVIDER_GATEWAY_KEYS",Di),Yi("DEFAULT_NOWPAYMENTS_CRYPTO_GATEWAY_KEYS",Li),Yi("DEFAULT_CRYPTOMUS_CRYPTO_GATEWAY_KEYS",["BITCOIN","LITECOIN","ETHEREUM","TRON","SOLANA","POLYGON","BINANCE_COIN","BITCOIN_CASH","MONERO","RIPPLE","DOGECOIN","USDT_TRC20","USDT_ERC20","USDT_BEP20","USDT_POLYGON","USDT_SOL","USDC_ERC20","USDC_BEP20","USDC_POLYGON","DAI_ERC20"]),Yi("DEFAULT_OXAPAY_CRYPTO_GATEWAY_KEYS",["BITCOIN","LITECOIN","ETHEREUM","TRON","SOLANA","POLYGON","BINANCE_COIN","BITCOIN_CASH","MONERO","RIPPLE","DOGECOIN","USDT_TRC20","USDT_ERC20","USDT_BEP20","USDT_POLYGON","USDC_ERC20"]);for(const Yu of qi)if(!Mi.has(Yu)&&!Fi.has(Yu))throw new Error(`CRYPTO_GATEWAY_KEYS contains an unclassified gateway: ${Yu}`);new Set(["STRIPE","PAYPAL","PAYPAL_FF","SKRILL","CASHAPP","CASH_APP","PERFECT_MONEY","SQUARE","SUMUP","SHOPIFY","SUBY","PANDABASE","STORRIK","DEBLOMASSI","MONEYMOTION","OVGC","WHOP","DODO","MAVERICK","VENMO","MOLLIE","AUTHORIZENET","NMI"].map(e=>function(e){const t=e.trim();if(!t)return"";if(/^manual:/i.test(t)){const e=t.slice(t.indexOf(":")+1).trim();return e?`MANUAL:${e}`:"MANUAL"}let n=t.toUpperCase();const o=n.match(/^(USDT|USDC|DAI):([A-Z0-9_]+)$/);if(o){const[,e,t]=o;n=`${e}_${"MATIC"===t?"POLYGON":t}`}return Bi[n]??n}(e))),new Set(["WHITE_LABEL","NATIVE"]);var Ji=[...Di,"NATIVE"],Wi=(new Set(Ji),ei({set:Jo()})),Vi=ei({status:li(["READY","NEEDS_ATTENTION"]).optional(),code:bo().optional(),message:bo().optional(),checked_at:bo().optional()}),Gi=(ei({provider:bo(),type:bo(),enabled:Jo(),connected:Jo(),credentials:si(bo(),Wi),public_config:si(bo(),Vo()),webhook:si(bo(),Vo()).optional(),health:Vi.optional()}),"#8639eb"),Hi=["comfortable","compact"],Ki=["top","side","background"],Xi=li(["checkout","payment_link","embed"]),Qi=li(["current","clean-light","clean-dark","v2","v3"]),er=li(Hi),tr=li(["light","dark","system"]),nr=li(Ki),or=li(["ghost","outlined","filled"]),ir=li(["sheet","fullscreen","center"]),rr=li(["visible","hidden"]),ar=(li(["checkout.shell","checkout.panel","checkout.header","brand.logo","product.card","product.image","product.title","product.description","product.price","product.quantity","product.addon","paymentLink.hero","summary.panel","summary.line","summary.total","form.field","form.label","form.help","coupon.input","input.base","input.error","button.primary","button.secondary","payment.methods","payment.method","payment.method.icon","payment.method.label","payment.method.meta","payment.method.fee","payment.method.indicator","payment.provider_widget","payment.loading","payment.error","payment.warning","legal.terms","status.success","status.processing","embed.launcher","embed.launcher.icon","embed.productCard","embed.productCard.image","embed.productCard.title","embed.productCard.price","embed.cart","embed.cart.row","embed.cart.summary","embed.modal","embed.modal.header","embed.modal.close","embed.skeleton","embed.loader","embed.branding"]),li(["product.title","product.price","summary.total","payment.method.label","payment.provider_widget","payment.loading","payment.error","payment.warning","legal.terms","status.success","status.processing","embed.modal.close","embed.branding"]),bo().regex(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/,"Use a valid hex color")),sr=bo().trim().min(1).max(200).refine(e=>!/[;{}]|@import|expression\s*\(/i.test(e),"Use a valid CSS color or gradient"),ur=bo().trim().min(1).max(400).refine(e=>!/[;{}]|@import|expression\s*\(/i.test(e),"Use a valid CSS box-shadow value"),lr=li(["Inter","Geist","Manrope","Plus Jakarta Sans","DM Sans","Space Grotesk","Sora","IBM Plex Sans","JetBrains Mono","Arial","System UI"]),cr=bo().trim().min(1).max(60).regex(/^[A-Za-z0-9 +\-_]+$/,"Use a Google Fonts family name"),dr=bo().url(),pr=ei({brand:ei({logoUrl:dr.optional().nullable(),logoDarkUrl:dr.optional().nullable(),logoMaxHeight:Mo().int().min(16).max(80).optional(),faviconUrl:dr.optional().nullable()}).strict().optional(),color:ei({brand:ar.optional(),brandContrast:ar.optional(),background:ar.optional(),panel:ar.optional(),surface:ar.optional(),surfaceRaised:ar.optional(),surfaceControl:ar.optional(),text:ar.optional(),textMuted:ar.optional(),border:ar.optional(),controlBorder:ar.optional(),focus:ar.optional(),success:ar.optional(),warning:ar.optional(),error:ar.optional()}).strict().optional(),typography:ei({fontFamily:lr.optional(),googleFontFamily:cr.optional(),baseSize:Mo().int().min(12).max(18).optional()}).strict().optional(),shape:ei({buttonRadius:Mo().int().min(0).max(24).optional(),inputRadius:Mo().int().min(0).max(24).optional(),cardRadius:Mo().int().min(0).max(28).optional()}).strict().optional(),spacing:ei({density:er.optional(),controlHeight:Mo().int().min(36).max(56).optional()}).strict().optional(),component:ei({primaryButton:ei({background:ar.optional(),text:ar.optional()}).strict().optional(),input:ei({background:ar.optional(),border:ar.optional(),focusRing:sr.optional()}).strict().optional(),summary:ei({background:ar.optional()}).strict().optional(),paymentMethod:ei({background:sr.optional(),cardBackground:sr.optional(),border:sr.optional(),selectedBackground:sr.optional()}).strict().optional(),productCard:ei({background:sr.optional(),border:sr.optional(),shadow:ur.optional()}).strict().optional(),productImage:ei({background:sr.optional(),border:sr.optional(),icon:sr.optional()}).strict().optional(),brandAvatar:ei({background:sr.optional(),text:ar.optional(),border:sr.optional()}).strict().optional(),pill:ei({background:sr.optional(),border:sr.optional(),text:ar.optional()}).strict().optional(),errorBanner:ei({background:sr.optional(),border:sr.optional(),text:ar.optional()}).strict().optional(),warningBanner:ei({background:sr.optional(),border:sr.optional(),text:ar.optional()}).strict().optional(),radio:ei({idleRing:sr.optional(),checkedFill:ar.optional(),checkedIcon:ar.optional()}).strict().optional(),divider:ei({color:sr.optional()}).strict().optional()}).strict().optional(),paymentLink:ei({heroImageUrl:dr.optional().nullable(),heroPosition:nr.optional()}).strict().optional(),embed:ei({launcher:ei({background:sr.optional(),text:ar.optional(),radius:Mo().int().min(0).max(28).optional(),paddingX:Mo().int().min(8).max(32).optional(),paddingY:Mo().int().min(6).max(24).optional(),shadow:ur.optional()}).strict().optional(),productCard:ei({background:sr.optional(),border:sr.optional(),imageRadius:Mo().int().min(0).max(24).optional(),padding:Mo().int().min(8).max(32).optional()}).strict().optional(),cart:ei({background:sr.optional(),rowBorder:sr.optional(),itemSpacing:Mo().int().min(4).max(28).optional()}).strict().optional(),modal:ei({background:sr.optional(),radius:Mo().int().min(0).max(32).optional(),maxWidth:Mo().int().min(360).max(960).optional(),shadow:ur.optional()}).strict().optional(),backdrop:ei({color:sr.optional(),blur:Mo().int().min(0).max(24).optional(),opacity:Mo().min(0).max(1).optional()}).strict().optional(),skeleton:ei({background:sr.optional(),shimmer:sr.optional()}).strict().optional(),spinner:ei({color:sr.optional()}).strict().optional(),closeButton:ei({style:or.optional()}).strict().optional(),mobile:ei({layout:ir.optional()}).strict().optional(),content:ei({productDescription:rr.optional(),termsShortcut:rr.optional()}).strict().optional()}).strict().optional()}).strict(),fr=ei({mode:tr.default("system"),fontSource:li(["curated"]).default("curated")}).strict(),mr=li(["standalone","bundle","pointer"]),_r=ei({name:bo().trim().min(1).max(80),fingerprint:bo().trim().min(1).max(128)}).strict(),hr=ei({type:di("shoppex.style_theme"),surface:di("checkout"),format_version:ni([di(1),di(2)]),name:bo().trim().min(1).max(80),description:bo().trim().max(240).optional(),embed_design:Qi.default("current"),token_schema_version:di(1),tokens:pr.default({}),custom_css:bo().max(2e4).default(""),settings:fr.default({mode:"system",fontSource:"curated"}),_meta:si(bo(),Vo()).optional()}).strict(),yr=(ei({type:di("shoppex.style_theme"),surface:Xi,format_version:ni([di(1),di(2)]),name:bo().trim().min(1).max(80),description:bo().trim().max(240).optional(),embed_design:Qi.default("current"),token_schema_version:di(1),tokens:pr.default({}),custom_css:bo().max(2e4).default(""),settings:fr.default({mode:"system",fontSource:"curated"}),share_mode:mr.default("standalone"),parent_hint:_r.optional(),bundled_parent:hr.optional(),_meta:si(bo(),Vo()).optional()}).strict(),ei({theme_id:bo().uuid().nullable(),surface:Xi,embed_design:Qi,token_schema_version:di(1),revision:Mo().int().min(1),tokens:pr,custom_css:bo(),css_variables:si(bo(),bo())}).strict(),ei({theme_id:bo().uuid().nullable(),parent_theme_id:bo().uuid().nullable(),surface:di("embed"),embed_design:Qi,token_schema_version:di(1),revision:Mo().int().min(1),parent_revision:Mo().int().min(1).nullable(),tokens:pr,custom_css:bo(),css_variables:si(bo(),bo())}).strict(),ei({shop_id:bo().uuid(),product_id:bo().uuid().nullable(),product_group_id:bo().uuid().nullable(),payment_link_id:bo().uuid().nullable(),invoice_id:bo().nullable()}).strict(),ei({embed_runtime:bo().min(16).max(128),embed_design:Qi,revision:Mo().int().min(1),parent_revision:Mo().int().min(1).nullable(),theme_id:bo().uuid().nullable(),css_variables:si(bo(),bo()),custom_css:bo()}).strict(),ei({embed_design:Qi.optional(),embed_style_revision:function(e){return function(e,t){return new e({type:"number",coerce:!0,checks:[],...J(t)})}(Lo,e)}().int().min(1).optional(),embed_runtime:bo().min(16).max(128).optional(),preview:Jo().optional()}).strict(),li(["announcement_bar","countdown_bar","promo_info_card","recent_purchase_popup","coupon_popup_modal","live_chat"]),li(["layout.header.before","layout.header.after","layout.overlay","home.hero.after","home.grid.before","product.buybox.after","layout.footer.before","floating.bottom_right"])),gr=(li(["announcement_bar","countdown_bar","promo_info_card","recent_purchase_popup","coupon_popup_modal","live_chat"]),bo().regex(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/,"Use a valid hex color")),br=li(["static","marquee"]),vr=li(["brand_blue","emerald","sunset","rose","charcoal","custom"]),wr=li(["hide","message"]),Sr=li(["compact","comfortable"]),kr=li(["subtle","outline","solid"]),zr=li(["minimal","boxed"]),Or=li(["indigo","emerald","amber","rose","slate","custom"]),xr=li(["compact","feature","alert"]),Er=li(["compact","comfortable"]),Tr=li(["subtle","outline","solid"]),Ar=li(["sparkles","megaphone","gift","truck","shield","support","none"]),Ir=li(["show","hide"]),$r=li(["midnight","ocean","ember","forest","custom"]),Cr=li(["delay","exit_intent"]),Nr=bo().trim().refine(e=>{if(e.startsWith("/"))return!0;try{const t=new URL(e);return"http:"===t.protocol||"https:"===t.protocol}catch{return!1}},'Use a valid absolute URL or a path starting with "/"'),Pr=bo().trim().refine(e=>{const t=new Date(e);return!Number.isNaN(t.getTime())},"Use a valid date and time"),Rr=ei({text:bo().trim().min(1,"Text is required").max(160,"Text must be 160 characters or fewer"),linkLabel:bo().trim().max(32,"Link label must be 32 characters or fewer").optional().nullable(),linkUrl:Nr.optional().nullable(),dismissible:Jo().default(!1),displayMode:br.default("marquee"),themePreset:vr.default("custom"),animationSpeedSeconds:Mo().int().min(8).max(40).default(30),backgroundColor:gr.default("#111827"),textColor:gr.default("#f9fafb")}),Ur=ei({text:bo().trim().min(1,"Text is required").max(120,"Text must be 120 characters or fewer"),endAt:Pr,linkLabel:bo().trim().max(32,"Link label must be 32 characters or fewer").optional().nullable(),linkUrl:Nr.optional().nullable(),dismissible:Jo().default(!1),themePreset:vr.default("brand_blue"),expiredBehavior:wr.default("hide"),expiredMessage:bo().trim().max(120,"Expired message must be 120 characters or fewer").optional().nullable(),density:Sr.default("compact"),ctaStyle:kr.default("subtle"),timerStyle:zr.default("boxed"),backgroundColor:gr.default("#111827"),textColor:gr.default("#f9fafb")}),qr=ei({eyebrow:bo().trim().max(32,"Eyebrow must be 32 characters or fewer").optional().nullable(),title:bo().trim().min(1,"Title is required").max(80,"Title must be 80 characters or fewer"),body:bo().trim().min(1,"Body is required").max(240,"Body must be 240 characters or fewer"),linkLabel:bo().trim().max(32,"Link label must be 32 characters or fewer").optional().nullable(),linkUrl:Nr.optional().nullable(),themePreset:Or.default("indigo"),layoutStyle:xr.default("feature"),density:Er.default("comfortable"),ctaStyle:Tr.default("outline"),icon:Ar.default("sparkles"),iconVisibility:Ir.default("show"),backgroundColor:gr.default("#111827"),textColor:gr.default("#f9fafb"),accentColor:gr.default("#818cf8")}),jr=ei({title:bo().trim().min(1,"Title is required").max(80,"Title must be 80 characters or fewer").default("Recent purchases"),lookbackHours:Mo().int().min(1).max(168).default(24),cooldownSeconds:Mo().int().min(5).max(300).default(20),maxItems:Mo().int().min(1).max(20).default(8),anonymizeMode:li(["first_name_city","first_name_country","initial_country","anonymous"]).default("first_name_city"),includedProductIds:Xo(bo().min(1)).max(50).default([])}),Dr=ei({eyebrow:bo().trim().max(32,"Eyebrow must be 32 characters or fewer").optional().nullable(),title:bo().trim().min(1,"Title is required").max(80,"Title must be 80 characters or fewer"),body:bo().trim().min(1,"Body is required").max(240,"Body must be 240 characters or fewer"),couponCode:bo().trim().min(2,"Coupon code is required").max(40,"Coupon code must be 40 characters or fewer"),primaryButtonLabel:bo().trim().min(1,"Primary button label is required").max(24,"Primary button label must be 24 characters or fewer").default("Copy code"),secondaryButtonLabel:bo().trim().min(1,"Secondary button label is required").max(24,"Secondary button label must be 24 characters or fewer").default("Maybe later"),disclaimer:bo().trim().max(100,"Disclaimer must be 100 characters or fewer").optional().nullable(),themePreset:$r.default("midnight"),trigger:Cr.default("delay"),delaySeconds:Mo().int().min(0).max(60).default(6),showOncePerSession:Jo().default(!0),reminderHours:Mo().int().min(1).max(720).default(24),backgroundColor:gr.default("#111827"),textColor:gr.default("#f8fafc"),accentColor:gr.default("#7c9cff"),heroImageUrl:Nr.optional().nullable(),discountDisplay:bo().trim().max(24,"Discount display must be 24 characters or fewer").optional().nullable(),expiresAt:Pr.optional().nullable()}),Zr=li(["hidden","optional"]),Lr=ei({headline:bo().trim().min(1,"Headline is required").max(60,"Headline must be 60 characters or fewer").default("Chat with us"),greeting:bo().trim().min(1,"Greeting is required").max(240,"Greeting must be 240 characters or fewer").default("Hi! Send us a message and we will reply as soon as possible."),inputPlaceholder:bo().trim().min(1,"Placeholder is required").max(80,"Placeholder must be 80 characters or fewer").default("Type your message…"),contactFields:Zr.default("optional"),accentColor:gr.default("#111827"),launcherIconColor:gr.default("#f9fafb")}),Mr=ei({type:di("announcement_bar"),slot:yr,enabled:Jo().default(!0),sortOrder:Mo().int().min(0).max(999).default(0),config:Rr}),Fr=ei({type:di("recent_purchase_popup"),slot:yr,enabled:Jo().default(!0),sortOrder:Mo().int().min(0).max(999).default(0),config:jr}),Br=ei({type:di("countdown_bar"),slot:yr,enabled:Jo().default(!0),sortOrder:Mo().int().min(0).max(999).default(0),config:Ur}),Yr=ei({type:di("promo_info_card"),slot:yr,enabled:Jo().default(!0),sortOrder:Mo().int().min(0).max(999).default(0),config:qr}),Jr=ei({type:di("coupon_popup_modal"),slot:yr,enabled:Jo().default(!0),sortOrder:Mo().int().min(0).max(999).default(0),config:Dr}),Wr=ei({type:di("live_chat"),slot:yr,enabled:Jo().default(!0),sortOrder:Mo().int().min(0).max(999).default(0),config:Lr}),Vr=(ii("type",[Mr,Br,Yr,Fr,Jr,Wr]),ii("type",[Mr.extend({id:bo().min(1)}),Br.extend({id:bo().min(1)}),Yr.extend({id:bo().min(1)}),Fr.extend({id:bo().min(1)}),Jr.extend({id:bo().min(1)}),Wr.extend({id:bo().min(1)})]),new Set(["amount","currency","invoice_id","customer_email","id","email","price","price_usd","product_name","quantity"].map(e=>e.toLowerCase())),si(bo(),Vo())),Gr=ni([bo(),Mo()]),Hr=ei({kind:li(["address","redirect","embed_pending"]),gateway:bo(),checkout_url:bo().nullable().optional(),address:bo().optional(),amount:bo().optional(),qr_code:bo().optional(),expires_at:bo().optional(),payment_id:bo().optional(),confirmations_needed:Mo().optional()}).passthrough(),Kr=(ei({data:ei({invoice:ei({uniqid:bo().uuid()}).passthrough(),invoice_url:bo().nullable(),checkout_url:bo().nullable(),selected_gateway:bo().nullable(),session_started:Jo(),payment_session:Hr.nullable(),completion_access_grant:bo().nullable()}).passthrough()}).passthrough(),ei({default_value:bo().optional(),min_length:Mo().optional(),name:bo(),placeholder:bo().optional(),regex:bo().optional(),required:Jo(),type:bo()})),Xr=ei({id:bo(),price:Mo(),quantity:Mo(),title:bo()}),Qr=ei({addons:Xo(Xr).optional(),available_addons:Xo(Vo()).optional(),cloudflare_image_id:bo().nullable(),created_at:bo().optional(),currency:bo(),custom_fields:Vr.nullable().optional(),custom_fields_config:Xo(Kr).nullable().optional(),delivery_instruction:Vo().optional(),delivery_instruction_config:Vo().optional(),delivery_instruction_label:Vo().optional(),delivery_text:bo().nullable().optional(),delivery_time:Mo().optional(),description:bo().nullable(),discount_percent:Mo().optional(),discount_display:Mo().optional(),discounted_total_display:Mo().optional(),gateways:Xo(bo()).nullable().optional(),id:bo().optional(),image_name:bo().nullable(),image_storage:bo().optional(),line_item_id:bo().nullable().optional(),pay_what_you_want:Jo().optional(),price:bo().optional(),price_display:Gr,quantity:Mo(),quantity_max:Mo().optional(),quantity_min:Mo().optional(),recurring_interval:bo().nullable().optional(),recurring_interval_count:Mo().nullable().optional(),redirect_link:bo().nullable().optional(),redirect_time:Mo().nullable().optional(),service_text:bo().nullable().optional(),setup_cost:bo().optional(),slug:bo().nullable().optional(),storefront_url:bo().nullable().optional(),status:bo().nullable().optional(),subtype:bo().nullable().optional(),terms_of_service:bo().nullable().optional(),title:bo(),total:Mo(),trial_period:Mo().nullable().optional(),type:bo().nullable().optional(),uniqid:bo().nullable(),unit_price:Mo().optional(),unit_price_display:Gr.optional(),unit_quantity:Mo(),updated_at:bo().optional(),variant_title:bo().nullable().optional(),video_link:bo().nullable().optional(),volume_discounts:Vo().optional(),warranty_days:Mo().nullable().optional(),warranty_text:bo().nullable().optional()}),ea=ei({amount:Mo(),gateway:bo()}),ta=ei({custom_tip_enabled:Jo().optional(),enabled:Jo(),preset_percentages:Xo(Mo()).optional()}),na=ei({allow_partial_payment:Jo().optional(),auto_apply:Jo().optional(),available:bo(),currency:bo()}),oa=ei({affiliate_code:bo().nullable().optional(),already_paid:Gr.nullable().optional(),amount_due:Gr.nullable().optional(),currency:bo().nullable().optional(),discount:Gr.nullable().optional(),discount_label:bo().nullable().optional(),gateway_fee:Gr.nullable().optional(),platform_fee:Gr.nullable().optional(),subtotal:Gr.nullable().optional(),tip:Gr.nullable().optional(),total:Gr.nullable().optional()}),ia=ei({active:Jo(),expires_at:bo()}),ra=ei({faq_url:bo().nullable(),support_email:bo().nullable(),support_url:bo().nullable(),telegram_invite:bo().nullable()}),aa=ei({currency:bo().nullable().optional(),enabled:Jo(),max_amount:Mo().nullable().optional(),min_amount:Mo().nullable().optional(),reason:li(["BELOW_MIN_AMOUNT","ABOVE_MAX_AMOUNT"]).nullable().optional()}),sa=ei({delivered_items:Xo(Vo()),downloads:Xo(Vo()),external_urls:Xo(Vo()),license_keys:Xo(Vo()),tracking_codes:Xo(Vo())}),ua=ei({active:Jo().optional(),attempt_id:bo().optional(),buyer_actionable:Jo().nullable().optional(),crypto_currency:bo().nullable().optional(),currency:bo().optional(),expected_amount:bo().nullable().optional(),expected_crypto_amount:bo().nullable().optional(),last_checked_at:bo().optional(),missing_amount:bo().nullable().optional(),missing_crypto_amount:bo().nullable().optional(),provider_reference:bo().nullable().optional(),provider_status:bo().nullable().optional(),received_amount:bo().nullable().optional(),received_crypto_amount:bo().nullable().optional(),shortfall_percent:bo().nullable().optional()}),la=ei({created_at:bo().nullable(),details:bo().nullable(),id:bo(),invoice_id:bo(),status:bo().nullable()}),ca=ei({billing_address_mode:li(["INHERIT","REQUIRED","DISABLED"]).optional(),button_label:bo().nullable().optional(),display_name:bo().nullable().optional(),gateway:bo(),hide_provider_attribution:Jo().optional(),icon_url:bo().nullable().optional(),terms_mode:li(["INHERIT","REQUIRED","DISABLED"]).optional()}),da=ei({custom_fields:Xo(Vo()).optional(),description:bo().nullable(),display_order:Mo(),icon_preset:bo().nullable(),icon_url:bo().nullable(),id:bo(),instructions:bo().nullable(),is_active:Jo().optional(),name:bo(),payment_type:li(["INSTRUCTIONS","REDIRECT"]),redirect_url:bo().nullable(),require_proof:Jo(),proof_type:li(["TEXT","IMAGE","BOTH"]).optional(),void_after_hours:Mo()}),pa=ei({email:ei({masked:bo().nullable(),persisted:Jo(),required_for_provider_session:Jo().optional()})}),fa=ei({amount:bo().nullable(),confirmations:Mo().nullable(),created_at:Mo().optional(),hash:bo().nullable(),status:bo().optional()}),ma=ei({conf:ei({partial:Mo().optional(),void:Mo(),waiting_for_confirmations:Mo().optional()}),gateways:Xo(bo())}),_a=ei({invoice_payable:Jo(),resumable:Jo(),resumable_gateway:bo().nullable(),gateway:bo().nullable().optional(),crypto_gateway:bo().nullable().optional(),processor:bo().nullable().optional(),flow_type:bo().nullable().optional(),status:bo().nullable().optional(),provider_reference:bo().nullable().optional(),provider_reference_type:bo().nullable().optional(),capture_id:bo().nullable().optional(),manual_confirmation_pending:Jo().optional(),payment_method_switch_locked:Jo().optional(),awaiting_payment_method:Jo().optional(),started_at:Mo().nullable().optional(),completed_at:Mo().nullable().optional()}),ha=(ei({already_paid_amount:Gr.nullable().optional(),apm_method:bo().nullable().optional(),blockchain:bo().nullable(),buyer_identity:pa.nullable().optional(),checkout_tipping:ta.nullable().optional(),country_regulations:bo().nullable().optional(),coupon_applied:Jo().optional(),crypto_mode:bo().nullable().optional(),crypto_transactions:Xo(fa).optional(),currency:bo().nullable(),custom_fields:Vr.nullable().optional(),custom_gateways:Xo(da).optional(),customer_balance:na.nullable().optional(),customer_email_masked:bo().nullable().optional(),dark_mode:ni([di(0),di(1)]).optional(),delivery:sa.optional(),delivery_info:sa.optional(),discount:Mo().optional(),discount_display:Gr.optional(),eligible_gateways:Xo(bo()).optional(),environment:bo().optional(),fee_breakdown:Vr.nullable().optional(),gateway:bo().nullable(),gateway_data:Vr.nullable().optional(),gateway_eligibility:si(bo(),aa).optional(),gateway_fee_previews:Xo(ea).optional(),gateways_available:Xo(bo()),license:ni([Vr,di(!1)]).optional(),name:bo().nullable(),paddle_token:bo().nullable().optional(),paddle_transaction_id:Vo().optional(),payment_link_id:bo().nullable().optional(),payment_method_overrides:Xo(ca).optional(),payment_session_state:_a.nullable().optional(),polling:ia,pricing_breakdown:oa.nullable().optional(),product:Xo(Qr).optional(),quantity:Mo().nullable(),rates_snapshot:si(bo(),Mo()).optional(),remaining_amount:Gr.nullable().optional(),selected_gateway:bo().nullable().optional(),shop_checkout_ambient_color:bo().nullable().optional(),shop_cloudflare_image_id:bo().nullable(),shop_domain:bo().nullable().optional(),shop_force_paypal_email_delivery:ni([di(0),di(1)]).optional(),shop_image_name:bo().nullable(),shop_image_storage:bo().nullable().optional(),shop_payment_gateways_fees:Xo(Vr).optional(),shop_paypal_credit_card:ni([di(0),di(1)]).optional(),shop_return_url:bo().nullable().optional(),shop_slug:bo().nullable().optional(),shop_terms_enabled:Jo().optional(),shop_terms_of_service:bo().nullable().optional(),shop_terms_url:bo().nullable().optional(),shop_privacy_policy_url:bo().nullable().optional(),shop_refund_policy_url:bo().nullable().optional(),shop_walletconnect_id:bo().nullable().optional(),status:bo().nullable(),status_history:Xo(la).optional(),status_history_legacy:Xo(la).optional(),status_history_raw:Xo(la).optional(),stripe_publishable_key:bo().nullable().optional(),stripe_user_id:bo().nullable().optional(),subtotal:Mo().optional(),subtype:bo().nullable().optional(),support:ra.optional(),theme:bo().optional(),tip_amount:Gr.nullable().optional(),tip_amount_display:Gr.nullable().optional(),tip_metadata:Vo().optional(),total:Gr,total_conversions:Vr.optional(),total_display:Gr,type:bo().nullable(),underpayment:ua.nullable().optional(),underpayment_status:bo().nullable().optional(),uniqid:bo(),void_times:Xo(ma).optional(),addons:Vo().optional(),affiliate_data:Vo().optional(),affiliate_revenue_customer_id:bo().nullable().optional(),bill_info:Vo().optional(),binance_checkout_url:bo().nullable().optional(),binance_invoice_id:bo().nullable().optional(),binance_qrcode:bo().nullable().optional(),bundle_config:Vo().optional(),bundles:Vo().optional(),cashapp_cashtag:bo().nullable().optional(),cashapp_note:bo().nullable().optional(),cashapp_qrcode:bo().nullable().optional(),created_at:bo().optional(),crypto_address:bo().nullable().optional(),crypto_amount:Gr.optional(),crypto_confirmations_needed:Mo().nullable().optional(),crypto_exchange_rate:Gr.nullable().optional(),crypto_received:Gr.optional(),crypto_uri:bo().nullable().optional(),developer_invoice:Vo().optional(),developer_return_url:bo().nullable().optional(),developer_title:bo().nullable().optional(),exchange_rate:Gr.nullable().optional(),external_order_id:bo().nullable().optional(),lex_order_id:bo().nullable().optional(),lex_payment_method:bo().nullable().optional(),paydash_payment_id:bo().nullable().optional(),paypal_apm:bo().nullable().optional(),paypal_email_delivery:Jo().optional(),paypal_fee:Gr.nullable().optional(),paypal_order_id:bo().nullable().optional(),paypal_payer_email:bo().nullable().optional(),paypal_subscription_id:bo().nullable().optional(),paypal_subscription_link:bo().nullable().optional(),perfectmoney_id:bo().nullable().optional(),product_addons:Vo().optional(),product_id:bo().nullable().optional(),product_title:bo().nullable().optional(),product_type:bo().nullable().optional(),product_variants:Vo().optional(),recurring_billing_id:bo().nullable().optional(),skrill_link:bo().nullable().optional(),skrill_sid:bo().nullable().optional(),status_details:Vo().optional(),stripe_apm:bo().nullable().optional(),stripe_client_secret:bo().nullable().optional(),stripe_id:bo().nullable().optional(),stripe_price_id:bo().nullable().optional(),subscription:Vo().optional(),subscription_id:bo().nullable().optional(),sumup_id:bo().nullable().optional(),telegram_stars_payment_link:bo().nullable().optional(),telegram_stars_payment_note:bo().nullable().optional(),updated_at:bo().optional(),virtual_payments_id:bo().nullable().optional(),void_details:Vo().optional()}).catchall(Vo()),bo().nullable()),ya=si(bo(),Vo()),ga=ei({logo_url:ha,primary_color:bo(),secondary_color:bo(),accent_color:bo()}),ba=ei({attachment_image_id:ei({cloudflare_image_id:ha}).nullable()}),va=ei({attachment_imageId:ei({cloudflareImageId:ha}).nullable()}),wa=ei({uniqid:bo(),status:bo(),total:bo(),total_display:ha,currency:bo(),created_at:bo(),line_items:Xo(ei({product_title:ha,quantity:Mo(),product:ba.nullable()}))}),Sa=ei({uniqid:bo(),status:bo(),total:bo(),totalDisplay:ha,currency:bo(),createdAt:bo(),lineItems:Xo(ei({productTitle:ha,quantity:Mo(),product:va.nullable()}))}),ka=(ei({invoices:Xo(Sa),pagination:ei({page:Mo(),limit:Mo(),total:Mo(),has_more:Jo()})}),ei({gateway:bo(),blockchain:ha,cryptoAddress:ha,apmMethod:ha})),za=(ei({id:bo(),uniqid:bo(),status:bo(),statusDetails:ha,total:bo(),totalDisplay:ha,subtotal:bo(),discount:bo(),discountDisplay:ha,tax:bo(),taxPercentage:bo(),currency:bo(),createdAt:bo(),updatedAt:bo(),gatewayUpdatedAt:ha,customFields:ya.nullable(),balancePaidAmount:bo(),currentPaymentAttemptId:ha,lineItems:Xo(ei({id:bo(),productTitle:bo(),productType:bo(),variantTitle:ha,unitPrice:bo(),quantity:Mo(),total:bo(),deliveryText:ha,deliverySummary:ei({codes:Xo(bo()),links:Xo(ei({label:bo(),value:bo(),href:ha.optional()})),notes:Xo(bo()),serials:Xo(ei({value:bo(),is_replacement:Jo(),is_replaced:Jo()}))}).nullable(),deliveredAt:ha,customFields:ya.nullable(),product:ei({uniqid:bo(),slug:ha,serviceText:ha,attachment_imageId:ei({cloudflareImageId:ha}).nullable()}).nullable()})),currentPayment:ka.nullable(),payments:Xo(ka)}),ei({quote:ei({enabled:Jo(),currency:bo(),min_amount:bo(),max_amount:ha,bonus_tiers:Xo(ei({min_amount:bo(),bonus_percent:Mo()}))})}),ei({invoice_id:bo(),url:bo()}),ei({id:bo(),type:bo(),status:bo(),amount:ha,currency:ha,coupon_code:ha,reason:bo(),trigger_reference_type:bo(),trigger_reference_id:bo(),created_at:Mo(),fulfilled_at:Mo().nullable(),expires_at:Mo().nullable()})),Oa=ei({summary:ei({available:bo(),pending:bo(),lifetime_earned:bo(),redeemed:ha,currency:bo()}),activity:Xo(za),earned_after_invoice:Xo(za),pending_after_invoice:Xo(za)}),xa=ei({id:bo(),uniqid:bo(),label:ha,code:bo(),url:ha,status:li(["pending","active","inactive","rejected"]),is_primary:Jo(),total_clicks:Mo(),total_sales:Mo(),total_revenue:bo(),is_active:Jo(),is_approved:Jo(),requested_affiliate_revenue_percent:Mo().nullable(),requested_affiliate_customer_discount_percent:Mo().nullable(),affiliate_revenue_percent_override:Mo().nullable(),affiliate_customer_discount_percent_override:Mo().nullable(),effective_commission_percent:Mo(),effective_customer_discount_percent:Mo(),commission_shareback_percent:Mo(),commission_shareback_enabled:Jo(),max_commission_shareback_percent:Mo(),created_at:ha,updated_at:ha}),Ea=ei({customer:ei({id:bo(),email:bo(),name:ha}).nullable(),state:bo(),can_create_custom_links:Jo(),custom_link_request_disabled_reason:ha,custom_links_require_approval:Jo(),affiliate_codes_accepted_at_checkout:Jo(),cash_payout_enabled:Jo(),links:Xo(xa),preferred_payout:ei({asset:bo(),network:bo(),address:bo()}).nullable(),balance_currency:bo(),balances:ei({pending:bo(),available:bo(),requested:bo(),converted:bo(),paid:bo(),approved_total:bo()}),commissions:Xo(ei({id:bo(),invoice_id:bo(),commission_amount:bo(),base_amount:bo(),discount_amount:bo(),status:bo(),created_at:ha,paid_at:ha,converted_at:ha})),claims:Xo(ei({id:bo(),type:bo(),status:bo(),amount:bo(),currency:bo(),allocations:Xo(ei({source_type:bo(),commission_id:ha,adjustment_id:ha,amount:bo()})),wallet_transaction_id:ha,payout_asset:ha,payout_network:ha,payout_address:ha,note:ha,metadata:Vo(),completed_at:ha,rejected_at:ha,cancelled_at:ha,created_at:ha,updated_at:ha}))}),Ta=ei({uniqid:bo(),status:bo(),gateway:bo(),current_period_start:bo(),current_period_end:bo(),trial_end:ha,cancel_at_period_end:Jo(),canceled_at:ha,created_at:bo(),plan:ei({id:bo(),uniqid:bo(),name:bo(),price:bo(),currency:bo(),interval:bo(),interval_count:Mo(),trial_days:Mo()}).nullable(),payment_method:ei({id:bo(),gateway:bo(),type:bo(),card_brand:ha,card_last4:ha,card_exp_month:Mo().nullable(),card_exp_year:Mo().nullable(),is_default:Jo()}).nullable(),actions:ei({can_pause:Jo(),can_resume:Jo(),can_cancel:Jo(),can_manage_payment_method:Jo()})});ei({shop:ei({id:bo(),slug:bo(),name:bo(),currency:bo(),branding:ga}),customer:ei({email:bo(),name:bo()}),stats:ei({invoices_count:Mo(),licenses_count:Mo(),deliverables_count:Mo(),tickets_count:Mo()}),wallet:ei({available:bo(),total:bo(),hold:bo(),currency:bo(),enabled:Jo()}).nullable(),rewards:Oa,affiliate:Ea,invoices:Xo(wa),subscriptions:Xo(Ta),licenses:Xo(ei({uniqid:bo(),license_key:bo(),hardware_id:ha,expires_at:Mo().nullable(),product:ei({title:bo().optional()}).optional()})),deliverables:Xo(ei({id:bo(),invoice_uniqid:bo(),product_title:bo(),kind:li(["file","serial","license"]),label:bo(),value:bo(),href:ha,created_at:bo()})),tickets:Xo(ei({uniqid:bo(),title:bo(),status:bo(),updated_at:bo(),created_at:ha}))});var Aa=null,Ia=null;var $a=null,Ca=null;function Na(e,t){const n=t?.shopId?.trim();Ca=n||null;const o=$a?.locale;return o!==($a={storeSlug:e,locale:t?.locale,currency:t?.currency,apiBaseUrl:t?.apiBaseUrl??"https://api.shoppex.io",checkoutBaseUrl:t?.checkoutBaseUrl??"https://checkout.shoppex.io"}).locale&&i(),Aa=null,Ia=null,$a}function Pa(){if(!$a)throw new u;return $a}function Ra(){return null!==$a}function Ua(e){Ca=e}function qa(){return Ca}function ja(e){const t=e?.trim().toLowerCase()??"";return"true"===t||"1"===t||"yes"===t||"on"===t}var Da=-1;function Za(e,t,n){return!0!==t?e:!0===n?Da:0!==e?e:Da}function La(e){return"number"==typeof e&&Number.isFinite(e)?Math.trunc(e):null}function Ma(e){if(!0===e)return!0;if("number"==typeof e&&Number.isFinite(e))return 0!==e;if("string"==typeof e){const t=e.trim().toLowerCase();return"true"===t||"1"===t}return!1}function Fa(e){return Za(La(e?.stock)??Da,e?.orderable,e?.supplier_backed)}function Ba(e){if(!e)return Da;if("string"==typeof e.type&&"SERIALS"===e.type.toUpperCase())return Za(La(e.stock)??Da,e.orderable,e.supplier_backed);const t=function(e){const t=Array.isArray(e.price_variants)?e.price_variants:[];return t.length>0?t.map(e=>Fa(e)):(Array.isArray(e.variants)?e.variants:[]).map(e=>Fa(e))}(e);return t.length>0?t.some(e=>e<0)?Da:Za(t.reduce((e,t)=>e+Math.max(t,0),0),e.orderable,e.supplier_backed):Za(La(e.stock)??Da,e.orderable,e.supplier_backed)}function Ya(e){return!!function(e){return!!e&&(Ma(e.on_hold)||Ma(e.onHold)||Ma(e.is_on_hold)||Ma(e.isOnHold))}(e)||0===Ba(e)}function Ja(e){return!Ya(e)}function Wa(e=[]){const t=new Map;for(const n of e)n?.uniqid&&!t.has(n.uniqid)&&t.set(n.uniqid,n);return t}function Va(e,t=[]){const n=t instanceof Map?t:Wa(t);return(e.product_uniqids??[]).flatMap(e=>{const t=n.get(e);return t?[t]:[]})}function Ga(e=[]){return Array.from(Wa(e).values())}function Ha(e){return e?e.replace(/<[^>]*>/g," ").replace(/\s+/g," ").trim():""}function Ka(e){return e.trim().toLowerCase()}function Xa(e,t){const n=Ha(t).toLowerCase();n&&e.push(n)}function Qa(e){const t=[];Xa(t,e.title),Xa(t,e.slug??void 0),Xa(t,e.description);for(const n of e.product_highlights??[])Xa(t,n);for(const n of e.variants??[])Xa(t,n.title);for(const n of e.price_variants??[])Xa(t,n.title??n.label);return t}function es(e,t){const n=Ka(t);return!!n&&Qa(e).some(e=>e.includes(n))}function ts(e,t){const n=Ka(t);if(!n)return!1;const o=Ha(e.title).toLowerCase(),i=Ha(e.slug??e.name??void 0).toLowerCase(),r=Ha(e.description).toLowerCase();return o.includes(n)||i.includes(n)||r.includes(n)}function ns(e,t){return 0!==e.length&&(!t||e.some(e=>Ja(e)))}function os(e,t,n,o){const i=Ka(n);if(!i)return[];const r=!0===o?.hideOutOfStock,a=new Set,s=new Set,u=[],l=Wa(e);for(const d of t){const e=d.uniqid??d.id;if(!e||s.has(e))continue;if(!ts(d,i))continue;const t=Va(d,l);if(ns(t,r)){s.add(e);for(const e of t)e?.uniqid&&a.add(e.uniqid);u.push({type:"group",group:d,products:t})}}const c=Ga(e);for(const d of c)d?.uniqid&&!a.has(d.uniqid)&&es(d,i)&&(r&&!Ja(d)||(a.add(d.uniqid),u.push({type:"product",product:d})));return null!=o?.maxResults?u.slice(0,o.maxResults):u}function is(e,t,n,o){const i=os(e,t,n,o),r=new Set,a=[],s=e=>{e?.uniqid&&!r.has(e.uniqid)&&(o?.hideOutOfStock&&!Ja(e)||(r.add(e.uniqid),a.push(e)))};for(const u of i)if("product"!==u.type)for(const e of u.products)s(e);else s(u.product);return null!=o?.maxResults?a.slice(0,o.maxResults):a}function rs(e){if(e?.apiBaseUrl?.trim())return e.apiBaseUrl.replace(/\/+$/,"");const t=e?.hostname??("undefined"!=typeof window?window.location.hostname:"");if(t&&!function(e){if("localhost"===e||"127.0.0.1"===e||"::1"===e||e.endsWith(".localhost"))return!0;if(/^10\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(e))return!0;if(/^192\.168\.\d{1,3}\.\d{1,3}$/.test(e))return!0;const t=e.match(/^172\.(\d{1,2})\.\d{1,3}\.\d{1,3}$/);if(t){const e=Number(t[1]);return e>=16&&e<=31}return!1}(t))return"https://api.shoppex.io";if("undefined"!=typeof window){const e=window.apiBaseUrl;if("string"==typeof e&&e.trim())return e.replace(/\/+$/,"")}return"http://localhost:3001".replace(/\/+$/,"")}function as(e){const t=e.name?.trim()??"",n=`${t?`Name: ${t}\n\n`:""}${e.message.trim()}`,o=e.maxLength??2e3;return n.slice(0,o)}var ss=/:([A-Za-z0-9_]+)/g;function us(e,t){return e.replace(ss,(e,n)=>{const o=t[n];if(null==o)throw new Error(`Missing endpoint param: ${n}`);const i=String(o).trim();if(!i)throw new Error(`Endpoint param "${n}" must not be empty`);return encodeURIComponent(i)})}function ls(e){return`shoppex_${e}`}function cs(e){try{const t=localStorage.getItem(ls(e));return t?JSON.parse(t):null}catch{return null}}function ds(e,t){try{localStorage.setItem(ls(e),JSON.stringify(t))}catch{console.warn("[shoppex] Failed to save to localStorage")}}function ps(e){try{localStorage.removeItem(ls(e))}catch{}}function fs(e){if("undefined"==typeof window)return null;const t=`presence_connection_${e}`,n=cs(t);if(n&&n.trim())return n;const o="undefined"!=typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`spx_${Math.random().toString(36).slice(2)}${Date.now().toString(36)}`;return ds(t,o),o}async function ms(e){if(!Ra())return;if("undefined"==typeof window)return;if(function(e){const t=`client_error_${function(e){return[e.method,e.endpoint,e.statusCode??"none",e.message.trim().toLowerCase(),e.responseReceived?"response":"no-response"].join("|")}(e)}`,n=Date.now(),o=cs(t);return"number"==typeof o&&n-o<15e3||(ds(t,n),!1)}(e))return;const t=Pa(),n=qa(),o=n?us("/v1/storefront/shops/id/:id/ping",{id:n}):us("/v1/storefront/shops/:storeSlug/ping",{storeSlug:t.storeSlug}),i=JSON.stringify({event_type:"client_error",referer:document.referrer||void 0,connection_id:fs(t.storeSlug)??void 0,client_error:{source:e.source??"sdk",phase:e.phase??"request",endpoint:e.endpoint,method:e.method,message:e.message,status_code:e.statusCode,attempt_count:e.attemptCount,response_received:e.responseReceived??!1,page_url:e.pageUrl??window.location.href,request_url:e.requestUrl,online:e.online??("undefined"!=typeof navigator?navigator.onLine:void 0),visibility_state:e.visibilityState??("undefined"!=typeof document?document.visibilityState:void 0)}}),r=`${t.apiBaseUrl}${o}`;try{if("undefined"!=typeof navigator&&"function"==typeof navigator.sendBeacon){const e=new Blob([i],{type:"application/json"});if(navigator.sendBeacon(r,e))return}await fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},body:i,keepalive:!0})}catch{}}var _s=1e4;async function hs(e){return new Promise(t=>setTimeout(t,e))}async function ys(e,t={}){const n=t.baseUrl?null:Pa(),o=n??(Ra()?Pa():null),{method:i="GET",body:r,timeout:s=_s,retries:u,baseUrl:c,cache:d}=t,p=u??("GET"===i?2:0),f=`${c??n?.apiBaseUrl??""}${e}`,m={"Content-Type":"application/json",Accept:"application/json"};"string"==typeof o?.locale&&o.locale.trim()&&(m["x-shoppex-locale"]=o.locale.trim());let _=null;const h=async()=>{for(let t=0;t<=p;t++)try{const e=new AbortController,t=setTimeout(()=>e.abort(),s),n=await fetch(f,{method:i,headers:m,body:r?JSON.stringify(r):void 0,signal:e.signal});clearTimeout(t);const o=await gs(n);if(!n.ok){const e=n.statusText?`HTTP ${n.status}: ${n.statusText}`:`HTTP ${n.status}`;throw new l((o.data&&"object"==typeof o.data&&"error"in o.data&&"string"==typeof o.data.error?o.data.error:null)??(o.data&&"object"==typeof o.data&&"message"in o.data&&"string"==typeof o.data.message?o.data.message:null)??o.rawText??e,n.status)}if(204===n.status&&null===o.data)return{success:!0};if(!o.data||"object"!=typeof o.data||!("status"in o.data))throw new l("Invalid API response",n.status);return bs(o.data)}catch(e){let n=e instanceof Error?e:new Error(String(e));e instanceof DOMException&&"AbortError"===e.name&&(n=new l("Request timeout",408));const o=n instanceof l?n.statusCode:void 0;if(_={message:n.message,statusCode:o,isTransport:void 0===o||408===o},t<p){await hs(500*Math.pow(2,t));continue}}return{success:!1,message:_?.message??"Unknown error"}},y="GET"===i&&d&&d.ttl>0?await a(d.key??`GET:${f}`,h,{ttl:d.ttl,staleWhileRevalidate:d.staleWhileRevalidate},e=>e.success):await h(),g=_;return!y.success&&g?.isTransport&&await ms({endpoint:e,method:i,message:y.message??g.message,statusCode:g.statusCode,attemptCount:p+1,requestUrl:f,responseReceived:void 0!==g.statusCode&&408!==g.statusCode}),y}async function gs(e){const t=e;if("function"!=typeof t.text){if("function"==typeof t.json)try{return{data:await t.json(),rawText:null}}catch{return{data:null,rawText:null}}return{data:null,rawText:null}}try{const e=await t.text();if(!e)return{data:null,rawText:null};try{return{data:JSON.parse(e),rawText:null}}catch{const t=e.trim();return{data:null,rawText:t.length>0?t:null}}}catch{return{data:null,rawText:null}}}function bs(e){return e.status>=200&&e.status<300?{success:!0,data:e.data,...e.message?{message:e.message}:{}}:{success:!1,message:e.error??e.message??`Request failed with status ${e.status}`}}async function vs(e,t){return ys(e,{...t,method:"GET"})}async function ws(e,t,n){return ys(e,{...n,method:"POST",body:t})}var Ss=3e5;async function ks(){const e=Pa(),t=await vs(us("/v1/storefront/shops/name/:storeSlug",{storeSlug:e.storeSlug}),{cache:{key:`store:${e.storeSlug}`,ttl:Ss,staleWhileRevalidate:!0}});return t.success&&t.data?(t.data.shop?.id&&Ua(t.data.shop.id),{success:!0,data:t.data.shop}):{success:!1,message:t.message}}async function zs(e){const t=Pa(),n=new URLSearchParams;Number.isFinite(e?.productsLimit)&&n.set("products_limit",String(Math.max(1,Math.floor(e?.productsLimit??0)))),"string"==typeof e?.productsCursor&&e.productsCursor.trim().length>0&&n.set("products_cursor",e.productsCursor);const o=n.size>0?`?${n.toString()}`:"",i=await vs(`${us("/v1/storefront/shops/name/:storeSlug",{storeSlug:t.storeSlug})}${o}`,{cache:{key:`storefront:${t.storeSlug}:${e?.productsLimit??"full"}:${e?.productsCursor??"start"}`,ttl:Ss,staleWhileRevalidate:!0}});return i.success&&i.data?(i.data.shop?.id&&Ua(i.data.shop.id),{success:!0,data:{shop:i.data.shop,products:i.data.products??[],products_pagination:i.data.products_pagination??null,groups:i.data.groups??[],items:i.data.items??[],categories:i.data.categories??[],addons:i.data.addons??{items:[]}}}):{success:!1,message:i.message}}var Os=12e4;function xs(e){if(e.variants&&e.variants.length>0)return e;const t=e.price_variants;return Array.isArray(t)&&0!==t.length?{...e,variants:t.map(e=>function(e){return{id:e.id,title:e.title??e.label??"",price:"number"==typeof e.price?e.price:Number(e.price)||0,stock:"number"==typeof e.stock?e.stock:void 0,orderable:"boolean"==typeof e.orderable?e.orderable:void 0,supplier_backed:"boolean"==typeof e.supplier_backed?e.supplier_backed:void 0,quantity_min:e.quantity_min,quantity_max:e.quantity_max,quantityMin:e.quantityMin,quantityMax:e.quantityMax,image_id:e.image_id,imageId:e.imageId,cloudflare_image_id:e.cloudflare_image_id,cloudflareImageId:e.cloudflareImageId,image_url:e.image_url,imageUrl:e.imageUrl}}(e))}:e}async function Es(){const e=Pa(),t=await vs(us("/v1/storefront/products/public/:storeSlug",{storeSlug:e.storeSlug}),{cache:{key:`products:${e.storeSlug}`,ttl:Os,staleWhileRevalidate:!0}});return t.success&&t.data?{success:!0,data:Ga(t.data.products.map(xs))}:{success:!1,message:t.message,data:[]}}function Ts(e){if(!e)return{};const t=Object.entries(e).filter(([,e])=>"string"==typeof e).sort(([e],[t])=>e.localeCompare(t));return Object.fromEntries(t)}function As(e){const t={product_id:e.product_id,variant_id:e.variant_id,price_variant_id:e.price_variant_id??null,addons:(n=e.addons,n?.length?[...n].map(e=>({id:e.id,quantity:e.quantity??1})).sort((e,t)=>e.id.localeCompare(t.id)):[]),custom_fields:Ts(e.custom_fields),unit_price:"number"==typeof e.price_data?.unit_price&&Number.isFinite(e.price_data.unit_price)?e.price_data.unit_price:null,pay_what_you_want_price:"number"==typeof e.pay_what_you_want_price&&Number.isFinite(e.pay_what_you_want_price)?e.pay_what_you_want_price:null};var n;return function(e){let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24);return(t>>>0).toString(16)}(JSON.stringify(t))}function Is(e){return"string"==typeof e.line_id&&e.line_id.trim()?e:{...e,line_id:As(e)}}function $s(e){const t=e?.trim().toUpperCase();return t&&/^[A-Z]{3}$/.test(t)?t:null}function Cs(){if("undefined"==typeof window||!window.location)return null;const e="string"==typeof window.location.search?window.location.search:"";if(e)return $s(new URLSearchParams(e).get("currency"));const t="string"==typeof window.location.href?window.location.href:"";if(!t)return null;try{return $s(new URL(t,"https://storefront.shoppex.local").searchParams.get("currency"))}catch{return null}}var Ns={cart:"cart",cartBackup:"cart_backup",meta:"cart_meta",metaBackup:"cart_backup_meta",coupon:"cart_coupon",couponBackup:"cart_coupon_backup"};function Ps(e){return`${Ns[e]}_${Pa().storeSlug}`}function Rs(e){return function(e){let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24);return(t>>>0).toString(16)}(JSON.stringify(e))}function Us(e){if(!Number.isFinite(e))throw new c("quantity must be a finite number");return Math.floor(e)}function qs(e){const t=e?.trim().toUpperCase();return t||null}function js(){const e=cs(Ps("coupon"));if(!e||"object"!=typeof e||Array.isArray(e))return null;const t=e,n="string"==typeof t.code?qs(t.code):null,o="COUPON"===t.source||"AFFILIATE"===t.source?t.source:null;return n&&o?{code:n,source:o}:null}function Ds(e){if(!Array.isArray(e))return[];const t=[];for(const n of e){if(!n||"object"!=typeof n)continue;const e=n,o="string"==typeof e.product_id?e.product_id.trim():"",i="string"==typeof e.variant_id?e.variant_id.trim():"",r=Number(e.quantity);if(!o||!i||!Number.isFinite(r)||r<1)continue;const a={line_id:"",product_id:o,variant_id:i,quantity:Math.floor(r)};if("string"==typeof e.price_variant_id&&(a.price_variant_id=e.price_variant_id),e.price_data&&"object"==typeof e.price_data){const t=e.price_data;"number"==typeof t.unit_price&&Number.isFinite(t.unit_price)&&(a.price_data={unit_price:t.unit_price})}"number"==typeof e.pay_what_you_want_price&&Number.isFinite(e.pay_what_you_want_price)&&(a.pay_what_you_want_price=e.pay_what_you_want_price),Array.isArray(e.addons)&&(a.addons=e.addons),e.custom_fields&&"object"==typeof e.custom_fields&&!Array.isArray(e.custom_fields)&&(a.custom_fields=e.custom_fields),"string"==typeof e.title&&(a.title=e.title),"string"==typeof e.variant_title&&(a.variant_title=e.variant_title),"string"==typeof e.image_url&&(a.image_url=e.image_url),Array.isArray(e.addon_labels)&&(a.addon_labels=e.addon_labels.filter(e=>"string"==typeof e)),"number"==typeof e.max_quantity&&Number.isFinite(e.max_quantity)&&(a.max_quantity=e.max_quantity),"number"==typeof e.min_quantity&&Number.isFinite(e.min_quantity)&&(a.min_quantity=e.min_quantity),Vs(a),a.line_id=("string"==typeof e.line_id?e.line_id.trim():"")||As(a),t.push(Is(a))}return t}function Zs(){return cs(Ps("meta"))}function Ls(){return js()?.code??null}function Ms(){return js()?.source??null}function Fs(e,t="COUPON"){const n=qs(e);return n?(ds(Ps("coupon"),{code:n,source:t}),n):(ps(Ps("coupon")),null)}function Bs(){ps(Ps("coupon"))}function Ys(e){const t=Ds(e);ds(Ps("cart"),t);const n=Date.now(),o=Zs(),i={created_at:o?.created_at??n,last_modified:n,version:(o?.version??0)+1,checksum:Rs(t)};ds(Ps("meta"),i),0===t.length&&Bs()}function Js(e,t){const n=Ds(e);ds(Ps("cart"),n);const o=Date.now(),i=t??Zs(),r={created_at:i?.created_at??o,last_modified:o,version:i?.version??1,checksum:Rs(n)};ds(Ps("meta"),r)}function Ws(){return Ds(cs(Ps("cart")))}function Vs(e){const t=e.min_quantity;"number"==typeof t&&Number.isFinite(t)&&e.quantity<t&&(e.quantity=Math.floor(t));const n=e.max_quantity;"number"==typeof n&&Number.isFinite(n)&&e.quantity>n&&(e.quantity=Math.floor(n)),e.quantity<1&&(e.quantity=1)}function Gs(){ps(Ps("cart")),ps(Ps("meta")),Bs()}function Hs(){const e=Ws();ds(Ps("cartBackup"),e);const t=js();t?ds(Ps("couponBackup"),t):ps(Ps("couponBackup"));const n=Zs();if(n)ds(Ps("metaBackup"),n);else{const t=Date.now();ds(Ps("metaBackup"),{created_at:t,last_modified:t,version:1,checksum:Rs(e)})}}function Ks(){const e=Ws(),t=Zs(),n=Rs(e);return t?t.checksum===n:(Js(e,null),!0)}var Xs="shoppex:affiliate_code:v1";function Qs(){return Date.now()}function eu(e){const t=e?.trim().toLowerCase();return t||null}function tu(e,t=30){const n=eu(e);return n?(function(e){if("undefined"!=typeof window)try{window.localStorage.setItem(Xs,JSON.stringify(e))}catch{}}({code:n,expiresAt:Qs()+(o=t,24*Math.max(1,o)*60*60*1e3)}),n):(nu(),null);var o}function nu(){if("undefined"!=typeof window)try{window.localStorage.removeItem(Xs)}catch{}}function ou(){const e=function(){if("undefined"==typeof window)return null;try{const e=window.localStorage.getItem(Xs);if(!e)return null;const t=JSON.parse(e);return t&&"string"==typeof t.code&&"number"==typeof t.expiresAt?t:null}catch{return null}}();return e?e.expiresAt<=Qs()?(nu(),null):eu(e.code):null}async function iu(e){const t=eu(e);if(!t)return{success:!1,data:{valid:!1,affiliate_code:null,discount_active:!1,discount_percent:0},message:"Affiliate code is required"};const n=await ws("/v1/storefront/affiliates/resolve",{shop_slug:Pa().storeSlug,code:t},{retries:0});if(!n.success)return n;if(!n.data?.valid||!n.data.affiliate_code){const e=!1===n.data?.program_enabled;return{success:!1,data:{valid:!1,...void 0!==n.data?.program_enabled?{program_enabled:n.data.program_enabled}:{},affiliate_code:null,discount_active:!1,discount_percent:0},message:n.message??(e?"Affiliate program is disabled for this shop.":"Invalid affiliate code.")}}return{success:!0,data:{valid:!0,...void 0!==n.data.program_enabled?{program_enabled:n.data.program_enabled}:{},affiliate_code:eu(n.data.affiliate_code),discount_active:Boolean(n.data.discount_active),discount_percent:Number(n.data.discount_percent??0)},...n.message?{message:n.message}:{}}}function ru(e){const t=e?.trim();return t||null}function au(e){const t=e?.trim();return t||null}function su(e){return"/dashboard/api/checkout"===e.customerCheckoutPath&&"undefined"!=typeof window&&"string"==typeof window.location?.origin?{endpoint:e.customerCheckoutPath,baseUrl:window.location.origin}:{endpoint:"/v1/storefront/invoices/from-cart"}}function uu(e){return $s(e.currency)??Cs()}function lu(e){const t=e?.trim()??"";if(!t)return"Checkout failed. Please try again.";if(cu(t))return"Your cart is outdated. Please add the products again.";const n=t.match(/^HTTP\s+(\d{3})(?::\s*(.*))?$/i);if(n){const e=Number(n[1]),t=n[2]?.trim();return t&&t.length>0?`Checkout failed: ${t}`:e>=500?"Checkout is temporarily unavailable. Please try again.":400===e?"Checkout failed. Please check your details and try again.":401===e||403===e?"Checkout is currently unavailable for this request.":"Checkout failed. Please try again."}return/^internal server error$/i.test(t)?"Checkout is temporarily unavailable. Please try again.":t}function cu(e){const t=e?.trim().toLowerCase()??"";return!!t&&(t.includes("product not found")||t.includes("product not available")||t.includes("products are no longer available")||t.includes("outdated product"))}function du(e,t,n){const o=t?.trim();if(!o)return null;try{const t=new URL(e),i=new URL(o);if(t.origin!==i.origin)return null;const r=t.pathname.replace(/\/+$/,""),a=`${i.pathname.replace(/\/+$/,"")}/invoice/`.replace(/\/{2,}/g,"/");if(!r.startsWith(a))return null;const s=r.slice(a.length);if(!s||s.includes("/"))return null;if(n){const e=n.trim();if(!e||decodeURIComponent(s)!==e)return null}return t.toString()}catch{return null}}function pu(e,t){const n=au(t.email),o="string"==typeof t.locale?t.locale.trim():"";if(!n&&!o)return e;try{const t=new URL(e);if(o&&t.searchParams.set("locale",o),n){const e=new URLSearchParams(t.hash.startsWith("#")?t.hash.slice(1):t.hash);e.set("shoppex_prefill_email",n),t.hash=e.toString()}return t.toString()}catch{return e}}function fu(e,t){const n=e?.invoice,o=e?.invoiceId?.trim()||e?.invoice_id?.trim()||e?.uniqid?.trim()||n?.invoiceId?.trim()||n?.invoice_id?.trim()||n?.uniqid?.trim();let i=e?.checkoutUrl?.trim()||e?.checkout_url?.trim()||e?.url_branded?.trim()||e?.url?.trim()||n?.checkoutUrl?.trim()||n?.checkout_url?.trim()||n?.url_branded?.trim()||n?.url?.trim();return!i&&o&&n&&(i=function(e,t){const n=e?.trim();if(!n)return null;try{const e=new URL(n);return e.pathname=`${e.pathname.replace(/\/+$/,"")}/invoice/${encodeURIComponent(t)}`.replace(/\/{2,}/g,"/"),e.search="",e.hash="",e.toString()}catch{return null}}(t,o)??void 0),o&&i?{invoiceId:o,checkoutUrl:i,rewards:e?.rewards??n?.rewards??null}:null}function mu(e,t){return"string"==typeof e?{...t,coupon:e}:e??t??{}}function _u(e,t){const n=e.affiliateCode??e.referralCode;return"string"==typeof n&&n.trim().length>0?n.trim().toLowerCase():t?.trim().toLowerCase()??ou()}function hu(e){const t=Ls(),n=Ms();return{coupon:void 0===e.coupon?"COUPON"===n?t:null:ru(e.coupon),affiliateCode:_u(e,void 0===e.coupon&&"AFFILIATE"===n?t:null)}}function yu(e){const t=e=>{const t=e?.trim();return t?"default"===t.toLowerCase()?null:t:null};return e.map(e=>({product_id:e.product_id,variant_id:t(e.variant_id),quantity:e.quantity,addons:e.addons?.map(e=>({id:e.id,quantity:e.quantity??1})),custom_fields:e.custom_fields,price_variant_id:e.price_variant_id||null,pay_what_you_want_price:e.pay_what_you_want_price}))}function gu(e){if("number"==typeof e&&Number.isFinite(e))return e;if("string"==typeof e&&""!==e.trim()){const t=Number(e);return Number.isFinite(t)?t:null}return null}function bu(...e){for(const t of e)if("string"==typeof t&&t.length>0)return t}function vu(e,t){const n=e,o=gu(n.rating)??gu(n.score)??0,i=bu(n.comment,n.message),r=bu(n.author,n.customer_name),a=n.created_at??n.createdAt,s="number"==typeof a||"string"==typeof a?String(a):"",u=bu(n.id,n.uniqid)??`review:${s||t}`;return{...n,id:u,rating:o,...i?{comment:i}:{},...r?{author:r}:{},created_at:s}}async function wu(e){const t=Pa(),n=new URLSearchParams;n.set("limit",String(100)),"string"==typeof e&&e.trim().length>0&&n.set("cursor",e);const o=`?${n.toString()}`,i=await vs(`${us("/v1/storefront/feedback/shop/:storeSlug",{storeSlug:t.storeSlug})}${o}`,{cache:{key:`reviews:${t.storeSlug}:${e??"start"}:100`,ttl:12e4,staleWhileRevalidate:!0}});return i.success&&i.data?{success:!0,data:i.data}:{success:!1,message:i.message}}function Su(e){const t=e.trim();return t||null}var ku=3e5;var zu=3e5;async function Ou(){const e=Pa(),t=await vs(us("/v1/storefront/shops/name/:storeSlug/menus",{storeSlug:e.storeSlug}),{cache:{key:`menus:${e.storeSlug}`,ttl:zu,staleWhileRevalidate:!0}});return t.success&&t.data?{success:!0,data:t.data.menus}:{success:!1,message:t.message}}async function xu(e){const t=Pa(),n=await vs(us("/v1/storefront/shops/name/:storeSlug/menus/:title",{storeSlug:t.storeSlug,title:e}),{cache:{key:`menu:${t.storeSlug}:${e}`,ttl:zu,staleWhileRevalidate:!0}});return n.success&&n.data?{success:!0,data:n.data.menu}:{success:!1,message:n.message}}async function Eu(e){return xu(e)}async function Tu(e){const t=Pa(),n=await vs(us("/v1/storefront/shops/name/:storeSlug/menus/:title",{storeSlug:t.storeSlug,title:e}),{cache:{key:`menu-slot:${t.storeSlug}:${e}`,ttl:zu,staleWhileRevalidate:!0}});return n.success&&n.data?{success:!0,data:n.data.menu}:{success:!1,message:n.message}}function Au(e){return function(e){const t=w[e];return[t.title,...t.aliases]}(e)}var Iu=["utm_source","utm_medium","utm_campaign","utm_term","utm_content"];function $u(e){return`shoppex:utm:${e}`}function Cu(e){if("undefined"==typeof window||void 0===window.location)return;const t=function(e){let t;try{t=new URLSearchParams(e)}catch{return{}}const n={};for(const o of Iu){const e=t.get(o)?.trim();e&&(n[o]=e.slice(0,255))}return n}(window.location.search);if(Object.keys(t).length>0)return function(e,t){try{const n={utm:t,at:Date.now()};window.localStorage.setItem($u(e),JSON.stringify(n))}catch{}}(e,t),t;const n=function(e){try{const t=window.localStorage.getItem($u(e));if(!t)return{};const n=JSON.parse(t);if(!n||"number"!=typeof n.at||"object"!=typeof n.utm)return{};if(Date.now()-n.at>2592e6)return window.localStorage.removeItem($u(e)),{};const o={};for(const e of Iu){const t=n.utm?.[e];"string"==typeof t&&t.length>0&&(o[e]=t.slice(0,255))}return o}catch{return{}}}(e);return Object.keys(n).length>0?n:void 0}async function Nu(e,t){if(!Ra())return;if("undefined"==typeof document)return;const n=Pa(),o=fs(n.storeSlug);try{const i=us("/v1/storefront/shops/:storeSlug/ping",{storeSlug:n.storeSlug});await fetch(`${n.apiBaseUrl}${i}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({referer:document.referrer||void 0,cart_value:e??void 0,item_count:t??void 0,connection_id:o??void 0,utm:Cu(n.storeSlug)})})}catch{}}async function Pu(){if(!Ra())return{success:!1,message:"SDK not initialized"};const e=Pa(),t=qa();return vs(t?us("/v1/storefront/shops/id/:id/recent-sales",{id:t}):us("/v1/storefront/shops/:storeSlug/recent-sales",{storeSlug:e.storeSlug}),{cache:!1,retries:0,timeout:5e3})}async function Ru(){if(!Ra())return{success:!1,message:"SDK not initialized"};const e=Pa(),t=qa();return vs(t?us("/v1/storefront/shops/id/:id/online-users",{id:t}):us("/v1/storefront/shops/:storeSlug/online-users",{storeSlug:e.storeSlug}),{cache:!1,retries:0,timeout:5e3})}async function Uu(){if(!Ra())return{success:!1,message:"SDK not initialized"};if("undefined"==typeof document)return{success:!1,message:"Document is not available"};const e=Pa(),t=qa();return ws(t?us("/v1/storefront/shops/id/:id/ping",{id:t}):us("/v1/storefront/shops/:storeSlug/ping",{storeSlug:e.storeSlug}),{referer:document.referrer||void 0,connection_id:fs(e.storeSlug)??void 0,utm:Cu(e.storeSlug)},{retries:0,timeout:5e3})}function qu(e,t){const n=Pa();return new Intl.NumberFormat(t??n.locale??"en-US",{style:"currency",currency:e??n.currency??"USD"})}function ju(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function Du(e){return ju(e)&&ju(e.theme)?{...e,version:"number"==typeof e.version?e.version:0,revision:"number"==typeof e.revision?e.revision:0,theme:{...e.theme,content:ju(e.theme.content)?e.theme.content:{},layout:ju(e.theme.layout)?e.theme.layout:{},style_slots:ju(e.theme.style_slots)?e.theme.style_slots:{},...Array.isArray(e.theme.pages)?{pages:e.theme.pages}:{},...ju(e.theme.terms)?{terms:e.theme.terms}:{}}}:null}async function Zu(e){const t=await vs(us("/v1/storefront/themes/builder/published/:shopSlug",{shopSlug:e}));return t.success&&t.data?ju(n=t.data)?{settings:ju(n.settings)?n.settings:{},builder_settings:Du(n.builder_settings),content:ju(n.content)?n.content:{},style_slots:ju(n.style_slots)?n.style_slots:{}}:null:null;var n}async function Lu(e){const t=await Zu(e);return t?t.settings:null}function Mu(e){const t={};for(const[n,o]of Object.entries(e.settings)){t[n]={};for(const[e,i]of Object.entries(o))t[n][e]=i.default}return t}function Fu(e,t){const n={...e};for(const[o,i]of Object.entries(t))i&&(n[o]={...n[o],...i});return n}var Bu={init:function(e,t){"string"==typeof e?Na(e,t):Na(e.storeId,e)},isInitialized:Ra,getConfig:Pa,client:function(e){const t=Pa().apiBaseUrl??"https://api.shoppex.io";if(Aa&&Ia===t&&!e)return Aa;const n=function(e,t){return p({baseUrl:e,headers:t?{Authorization:`Bearer ${t}`}:void 0})}(t,e);return e||(Aa=n,Ia=t),n},getStore:ks,getStorefront:zs,getStoreLogoUrl:async function(){const e=await ks();return e.success&&e.data?.logo?e.data.logo:null},getStoreBannerUrl:async function(){const e=await ks();return e.success&&e.data?.banner?e.data.banner:null},resolveStoreByDomain:async function(e,t){const n=e??("undefined"!=typeof window?window.location.hostname:"");if(!n)return{success:!1,message:"Domain is required to resolve store"};const o=n.replace(/^https?:\/\//,"").split("/")[0].trim(),i=t??(Ra()?Pa().apiBaseUrl:"https://api.shoppex.io"),r=await vs(us("/v1/storefront/shops/domain/:domain",{domain:o}),{baseUrl:i,cache:{key:`store:domain:${o}`,ttl:Ss,staleWhileRevalidate:!0}});return r.success&&r.data?.shop?(r.data.shop.id&&Ua(r.data.shop.id),{success:!0,data:r.data.shop}):{success:!1,message:r.message??"Failed to resolve store"}},getProducts:Es,getStorefrontProductsPage:async function(e){const t=Pa(),n=new URLSearchParams;"string"==typeof e?.cursor&&e.cursor.trim().length>0&&n.set("cursor",e.cursor),Number.isFinite(e?.limit)&&n.set("limit",String(Math.max(1,Math.floor(e?.limit??0)))),"string"==typeof e?.sort&&e.sort.trim().length>0&&n.set("sort",e.sort.trim()),"string"==typeof e?.category&&e.category.trim().length>0&&n.set("category",e.category.trim()),!0===e?.hideOutOfStock&&n.set("hide_out_of_stock","true");const o=n.size>0?`?${n.toString()}`:"",i=await vs(`${us("/v1/storefront/products/shop/:storeSlug",{storeSlug:t.storeSlug})}${o}`,{cache:{key:`products:page:${t.storeSlug}:${e?.limit??"default"}:${e?.cursor??"start"}:${e?.sort??"featured"}:${r=e?.category,void 0===r?"category:unset":null===r?"category:null":`category:${r}`}:${!0===e?.hideOutOfStock?"in-stock":"all-stock"}`,ttl:Os,staleWhileRevalidate:!0}});var r;return i.success&&i.data?{success:!0,data:{products:i.data.products.map(xs),pagination:i.data.pagination??null}}:{success:!1,message:i.message}},getProduct:async function(e){let t=qa();if(!t){const e=await ks();t=e.success?e.data?.id??null:null}const n=t?`?slug_shop_id=${encodeURIComponent(t)}`:"",o=await vs(`${us("/v1/storefront/products/unique/:idOrSlug",{idOrSlug:e})}${n}`,{cache:{key:`product:${e}:${t??"no-shop"}`,ttl:Os,staleWhileRevalidate:!0}});return o.success&&o.data?.product?{success:!0,data:xs(o.data.product)}:{success:!1,message:o.message}},getCategories:async function(){const e=await Es();if(!e.success||!e.data)return{success:!1,message:e.message};const t=new Set;for(const n of e.data)if(n.categories)for(const e of n.categories)"string"==typeof e?t.add(e):e&&"object"==typeof e&&"uniqid"in e&&t.add(e.uniqid);return{success:!0,data:Array.from(t)}},getCart:Ws,getCartItemCount:function(){return Ws().reduce((e,t)=>e+t.quantity,0)},getCartCoupon:Ls,getCartCouponSource:Ms,setCartCoupon:Fs,clearCartCoupon:Bs,addToCart:function(e,t,n=1,o){if(!e||!t)throw new c("product_id and variant_id are required");const i=Us(n);if(i<1)throw new c("quantity must be at least 1");const r=Ws(),a=As({product_id:e,variant_id:t,addons:o?.addons,custom_fields:o?.custom_fields,price_variant_id:o?.price_variant_id,price_data:o?.price_data,pay_what_you_want_price:o?.pay_what_you_want_price}),s=r.findIndex(e=>e.line_id===a);if(s>=0)r[s].quantity+=i,o?.addons&&(r[s].addons=o.addons),o?.custom_fields&&(r[s].custom_fields=o.custom_fields),o?.price_variant_id&&(r[s].price_variant_id=o.price_variant_id),o?.price_data&&(r[s].price_data=o.price_data),void 0!==o?.pay_what_you_want_price&&(r[s].pay_what_you_want_price=o.pay_what_you_want_price),function(e,t){if(t?.replace_display_snapshot)return e.title=t.title,e.variant_title=t.variant_title,e.image_url=t.image_url,e.addon_labels=t.addon_labels,e.max_quantity=t.max_quantity,void(e.min_quantity=t.min_quantity);void 0!==t?.title&&(e.title=t.title);void 0!==t?.variant_title&&(e.variant_title=t.variant_title);void 0!==t?.image_url&&(e.image_url=t.image_url);void 0!==t?.addon_labels&&(e.addon_labels=t.addon_labels);void 0!==t?.max_quantity&&(e.max_quantity=t.max_quantity);void 0!==t?.min_quantity&&(e.min_quantity=t.min_quantity)}(r[s],o),Vs(r[s]);else{const n={line_id:a,product_id:e,variant_id:t,quantity:i,addons:o?.addons,custom_fields:o?.custom_fields,price_variant_id:o?.price_variant_id,price_data:o?.price_data,pay_what_you_want_price:o?.pay_what_you_want_price,title:o?.title,variant_title:o?.variant_title,image_url:o?.image_url,addon_labels:o?.addon_labels,max_quantity:o?.max_quantity,min_quantity:o?.min_quantity};Vs(n),r.push(n)}Ys(r)},setCartItem:function(e,t,n=1,o){if(!e||!t)throw new c("product_id and variant_id are required");const i=Us(n);if(i<1)throw new c("quantity must be at least 1");const r=Ws(),a=As({product_id:e,variant_id:t,addons:o?.addons,custom_fields:o?.custom_fields,price_variant_id:o?.price_variant_id,price_data:o?.price_data,pay_what_you_want_price:o?.pay_what_you_want_price});for(let u=r.length-1;u>=0;u-=1)r[u].product_id===e&&r[u].variant_id===t&&r.splice(u,1);const s={line_id:a,product_id:e,variant_id:t,quantity:i,addons:o?.addons,custom_fields:o?.custom_fields,price_variant_id:o?.price_variant_id,price_data:o?.price_data,pay_what_you_want_price:o?.pay_what_you_want_price,title:o?.title,variant_title:o?.variant_title,image_url:o?.image_url,addon_labels:o?.addon_labels,max_quantity:o?.max_quantity,min_quantity:o?.min_quantity};Vs(s),r.push(s),Ys(r)},updateCartItem:function(e,t){const n=Ws(),o=e.trim();if(!o)throw new c("line_id is required");const i=n.findIndex(e=>e.line_id===o);if(i<0)throw new c("Item not found in cart");if(void 0!==t.quantity){const e=Us(t.quantity);if(e<1)return n.splice(i,1),void Ys(n);n[i].quantity=e}void 0!==t.addons&&(n[i].addons=t.addons),void 0!==t.custom_fields&&(n[i].custom_fields=t.custom_fields),void 0!==t.price_variant_id&&(n[i].price_variant_id=t.price_variant_id),void 0!==t.price_data&&(n[i].price_data=t.price_data),void 0!==t.pay_what_you_want_price&&(n[i].pay_what_you_want_price=t.pay_what_you_want_price),void 0!==t.max_quantity&&(n[i].max_quantity=t.max_quantity),void 0!==t.min_quantity&&(n[i].min_quantity=t.min_quantity),Vs(n[i]);const r=As(n[i]),a=n.findIndex((e,t)=>t!==i&&e.line_id===r);a>=0?(n[a].quantity+=n[i].quantity,Vs(n[a]),n.splice(i,1)):n[i].line_id=r,Ys(n)},removeFromCart:function(e){const t=e.trim();if(!t)throw new c("line_id is required");Ys(Ws().filter(e=>e.line_id!==t))},clearCart:Gs,createCartBackup:Hs,restoreCartFromBackup:function(){const e=Ds(cs(Ps("cartBackup"))),t=cs(Ps("metaBackup")),n=cs(Ps("couponBackup"));if(e&&e.length>0){if(Js(e,t),n&&"object"==typeof n&&!Array.isArray(n)){const e=n,t="COUPON"===e.source||"AFFILIATE"===e.source?e.source:null;"string"==typeof e.code&&t?Fs(e.code,t):Bs()}else Bs();return!0}return!1},mergeBaskets:function(e){const t=Ws();for(const n of e){const e="string"==typeof n.product_id?n.product_id.trim():"",o="string"==typeof n.variant_id?n.variant_id.trim():"";if(!e||!o)continue;let i;try{i=Us(n.quantity)}catch{continue}if(i<1)continue;const r=Is({...n,line_id:n.line_id??As(n),product_id:e,variant_id:o,quantity:i}),a=t.findIndex(e=>e.line_id===r.line_id);a>=0?(t[a].quantity=Math.max(t[a].quantity,i),Vs(t[a])):(Vs(r),t.push(r))}return Ys(t),t},moveBasketItem:function(e,t,n,o){const i=Ws(),r=i.findIndex(n=>n.product_id===e&&n.variant_id===t);if(r<0)throw new c("Item not found in cart");const[a]=i.splice(r,1),s=As({...a,product_id:n,variant_id:o}),u=i.findIndex(e=>e.line_id===s);if(u>=0)i[u].quantity+=a.quantity,Vs(i[u]);else{const e=Is({...a,product_id:n,variant_id:o,line_id:s});Vs(e),i.push(e)}Ys(i)},getCartStats:function(){const e=Ws(),t=Ks(),n=Zs(),o=cs(Ps("cartBackup"))??[],i=e.length>0&&e.every(e=>"number"==typeof e.price_data?.unit_price),r=e.reduce((e,t)=>e+(t.price_data?.unit_price??0)*t.quantity,0);return{item_count:e.length,total_quantity:e.reduce((e,t)=>e+t.quantity,0),last_modified:n?.last_modified??0,version:n?.version??0,has_backup:o.length>0,integrity_valid:t,total_price:r,total_price_is_estimate:e.length>0&&!i}},validateCartIntegrity:Ks,quoteCart:async function(e,t){const n=function(e){const t=Pa(),n=qs(e)??Ls()??void 0;return{store_slug:t.storeSlug,items:Ws(),coupon:n}}(e),o=$s(t)??Cs();return ws("/v1/storefront/cart/quote",{shop_slug:n.store_slug,cart:n.items,coupon:n.coupon,currency:o??void 0})},resolveCartLineId:function(e,t,n=Ws()){const o=n.filter(n=>n.product_id===e&&n.variant_id===t);if(0===o.length)throw new c(`No cart line found for ${e}/${t}`);return o[0].line_id},checkout:async function(e,t){const n=mu(e,t),{autoRedirect:o=!0,email:i}=n,r=hu(n),a=r.coupon,s=au(i),u=r.affiliateCode,l=uu(n),c=Ws();if(0===c.length)return{success:!1,message:"Cart is empty"};Hs();const d=Pa(),p=su(n),f=await ws(p.endpoint,{shop_slug:d.storeSlug,cart:yu(c),email:s,coupon:a,currency:l,affiliate_code:u},{retries:0,baseUrl:p.baseUrl});if(!f.success||!f.data)return cu(f.message)&&Gs(),{success:!1,message:lu(f.message)};const m=fu(f.data,d.checkoutBaseUrl);if(!m)return{success:!1,message:"Failed to create invoice"};const{invoiceId:_}=m,h=du(m.checkoutUrl,d.checkoutBaseUrl,_);if(!h)return{success:!1,message:"Failed to create invoice"};const y=pu(h,{email:s,locale:n.locale??d.locale});return o&&"undefined"!=typeof window&&window?.location&&(window.location.href=y,Gs()),{success:!0,redirectUrl:y,invoiceId:_,rewards:m.rewards}},buildCheckoutUrl:async function(e,t){const n=mu(e,t),{email:o}=n,i=hu(n),r=i.coupon,a=au(o),s=i.affiliateCode,u=uu(n),l=Ws();if(0===l.length)throw new Error("Cart is empty");const c=Pa(),d=su(n),p=await ws(d.endpoint,{shop_slug:c.storeSlug,cart:yu(l),email:a,coupon:r,currency:u,affiliate_code:s},{retries:0,baseUrl:d.baseUrl});if(!p.success||!p.data)throw cu(p.message)&&Gs(),new Error(lu(p.message));const f=fu(p.data,c.checkoutBaseUrl);if(!f)throw new Error("Failed to create invoice");const m=du(f.checkoutUrl,c.checkoutBaseUrl,f.invoiceId);if(!m)throw new Error("Failed to create invoice");return pu(m,{email:a,locale:n.locale??c.locale})},buildCheckoutUrlSync:function(){throw new Error("buildCheckoutUrlSync is deprecated. Use buildCheckoutUrl (async) instead.")},captureAffiliateFromUrl:async function(e="ref"){if("undefined"==typeof window)return null;let t=null;try{const n=new URL(window.location.href).searchParams.get(e);t=n?n.trim():null}catch{t=null}if(t=eu(t),!t)return null;if(tu(t),Ra())try{const e=await ws("/v1/storefront/affiliates/attribution",{shop_slug:Pa().storeSlug,code:t},{retries:0});return e.success&&e.data?.accepted&&e.data?.affiliate_code?(tu(e.data.affiliate_code),e.data.affiliate_code):(nu(),null)}catch{return t}return t},validateAffiliateCode:iu,applyAffiliateCode:async function(e){const t=await iu(e);return t.success&&t.data?.affiliate_code&&tu(t.data.affiliate_code),t},getAffiliateCode:ou,setAffiliateCode:tu,clearAffiliateCode:nu,validateCoupon:async function(e,t){const n=e.trim();if(!n)return{success:!1,message:"Coupon code is required"};const o={code:n},i="string"==typeof t?t:t?.productId,r="string"==typeof t?void 0:t?.variantId;if(r&&!i)return{success:!1,message:"productId is required when variantId is provided"};if(i)o.product_id=i,r&&(o.variant_id=r);else{const e=Ws();if(0===e.length)return{success:!1,message:"Cart is empty"};const t=await async function(){const e=qa();if(e)return e;const t=await ks();return t.success&&t.data?.id?t.data.id:null}();if(!t)return{success:!1,message:"Failed to resolve store"};o.cart=JSON.stringify({shop_id:t,products:e.map(e=>({uniqid:e.product_id,quantity:e.quantity,variant_id:e.variant_id,price_variant_id:e.price_variant_id,addons:e.addons?.map(e=>({id:e.id,quantity:e.quantity??1}))}))})}return await ws("/v1/storefront/coupons/check",o)},getShopReviews:async function(){const e=[],t=new Set;let n=null;for(;;){const o=await wu(n);if(!o.success||!o.data)return{success:!1,message:o.message,data:[]};e.push(...(o.data.feedback??[]).map((t,n)=>vu(t,e.length+n)));const i=o.data.pagination;if(!i?.has_more||!i.next_cursor)break;if(t.has(i.next_cursor))break;t.add(i.next_cursor),n=i.next_cursor}return{success:!0,data:e}},searchProducts:async function(e,t){if(!Ra())return{success:!1,message:"SDK not initialized"};const n=e.trim();if(!n)return{success:!0,data:[]};const o=await zs();return o.success&&o.data?{success:!0,data:is(o.data.products??[],o.data.groups??[],n,{hideOutOfStock:t?.hideOutOfStock,maxResults:t?.maxResults})}:{success:!1,message:o.message??"Failed to fetch storefront catalog"}},searchCatalogItems:async function(e,t){if(!Ra())return{success:!1,message:"SDK not initialized"};const n=e.trim();if(!n)return{success:!0,data:[]};const o=await zs();return o.success&&o.data?{success:!0,data:os(o.data.products??[],o.data.groups??[],n,{hideOutOfStock:t?.hideOutOfStock,maxResults:t?.maxResults})}:{success:!1,message:o.message??"Failed to fetch storefront catalog"}},getInvoice:async function(e){const t=Su(e);if(!t)return{success:!1,message:"Invoice ID is required"};const n=await vs(us("/v1/storefront/invoices/unique/:invoiceId",{invoiceId:t}));return n.success?n.data?.invoice?{success:!0,data:n.data.invoice}:{success:!1,message:"Invalid invoice response"}:{success:!1,message:n.message}},getInvoiceStatus:async function(e){const t=Su(e);if(!t)return{success:!1,message:"Invoice ID is required"};const n=await vs(us("/v1/storefront/invoices/status/:invoiceId",{invoiceId:t}));return n.success?n.data?.invoice?.status?{success:!0,data:{status:n.data.invoice.status}}:{success:!1,message:"Invalid invoice status response"}:{success:!1,message:n.message}},getPages:async function(){const e=Pa(),t=await vs(us("/v1/storefront/shops/name/:storeSlug/pages",{storeSlug:e.storeSlug}),{cache:{key:`pages:${e.storeSlug}`,ttl:ku,staleWhileRevalidate:!0}});return t.success&&t.data?{success:!0,data:t.data.pages}:{success:!1,message:t.message}},getPage:async function(e){const t=Pa(),n=await vs(us("/v1/storefront/shops/name/:storeSlug/pages/:slug",{storeSlug:t.storeSlug,slug:e}),{cache:{key:`page:${t.storeSlug}:${e}`,ttl:ku,staleWhileRevalidate:!0}});return n.success&&n.data?{success:!0,data:n.data.page}:{success:!1,message:n.message}},getMenus:Ou,getMenu:Eu,getMenuBySlot:Tu,getMenuByTitle:xu,getMenuSlotTitles:Au,trackPageView:Nu,getStorefrontOnlineUsers:Ru,getStorefrontRecentSales:Pu,touchStorefrontPresence:Uu,createFormatter:qu,formatPrice:function(e,t,n){const o="string"==typeof e?parseFloat(e):e;return Number.isNaN(o)?qu(t,n).format(0):qu(t,n).format(o)},clearCache:i,invalidateCache:function(e){for(const n of t.keys())(n===e||n.startsWith(e))&&t.delete(n)},getCacheStats:function(){return{hits:o.hits,misses:o.misses,pendingRequests:n.size,entries:t.size}},fetchPublishedBuilderSettings:Zu,fetchPublishedThemeSettings:Lu,resolveDefaults:Mu,mergeSettings:Fu};if("undefined"!=typeof window){const e=window;e.shoppex?.isInitialized?.()||(e.shoppex=Bu)}e.CartError=c,e.NetworkError=l,e.NotInitializedError=u,e.ShoppexError=s,e.ValidationError=class e extends s{constructor(t,n){super(t,"VALIDATION_ERROR"),this.name="ValidationError",this.invalidFields=n,Object.setPrototypeOf(this,e.prototype)}},e.buildStorefrontContactMessage=as,e.buildStorefrontCustomFieldPayload=function(e,t){const n={};return e.forEach(e=>{const o=t[e.name]??e.defaultValue??"";if("checkbox"===e.type)return void(ja(o)&&(n[e.name]="true"));const i=o.trim();i.length>0&&(n[e.name]=i)}),n},e.buildStorefrontProductLookup=Wa,e.collectProductSearchHaystack=Qa,e.computeCartLineId=As,e.default=Bu,e.shoppex=Bu,e.ensureCartLineId=Is,e.fetchPublishedBuilderSettings=Zu,e.fetchPublishedThemeSettings=Lu,e.filterProductsBySearchQuery=function(e,t,n){const o=Ka(t);if(!o)return[];let i=e.filter(e=>es(e,o));return n?.hideOutOfStock&&(i=i.filter(e=>Ja(e))),null!=n?.maxResults?i.slice(0,n.maxResults):i},e.getMenu=Eu,e.getMenuBySlot=Tu,e.getMenuByTitle=xu,e.getMenuSlotTitles=Au,e.getMenus=Ou,e.getMergedStorefrontProducts=Ga,e.getStorefrontGroupProducts=Va,e.getStorefrontOnlineUsers=Ru,e.getStorefrontRecentSales=Pu,e.groupMatchesSearchQuery=ts,e.isProductInStock=Ja,e.isProductOutOfStock=Ya,e.isStorefrontCheckboxCustomFieldValueChecked=ja,e.isVariantOutOfStock=function(e){return 0===Fa(e)},e.mergeSettings=Fu,e.normalizeSearchQuery=Ka,e.normalizeStorefrontCustomFields=function(e){return function(e){if(Array.isArray(e))return e;if("string"==typeof e){try{const t=JSON.parse(e);if(Array.isArray(t))return t;if(t&&"object"==typeof t){const e=t.custom_fields??t.customFields;return Array.isArray(e)?e:[]}}catch{return[]}return[]}if(e&&"object"==typeof e){const t=e.custom_fields??e.customFields;return Array.isArray(t)?t:[]}return[]}(e).filter(e=>!!e&&"object"==typeof e&&!Array.isArray(e)).map(e=>{const t="string"==typeof e.type?e.type.trim().toLowerCase():"text",n=t.length>0?t:"text",o=[e.default_value,e.default,e.value].find(e=>"string"==typeof e&&e.trim().length>0);return{name:"string"==typeof e.name?e.name.trim():"",type:n,required:!0===e.required||"true"===e.required||1===e.required||"1"===e.required,defaultValue:"string"==typeof o?o:"",placeholder:"string"==typeof e.placeholder?e.placeholder:"",regex:"string"==typeof e.regex?e.regex:void 0}}).filter(e=>e.name.length>0&&"hidden"!==e.type)},e.productMatchesSearchQuery=es,e.resolveDefaults=Mu,e.resolveDisplayStock=Ba,e.resolveStorefrontApiBaseUrl=rs,e.resolveStorefrontSocialLinks=function(e){return{discord:e?.discord_link??e?.social?.discord??null,telegram:e?.telegram_link??e?.social?.telegram??null}},e.resolveVariantStockValue=Fa,e.searchMergedStorefrontCatalog=is,e.searchMergedStorefrontCatalogItems=os,e.stripHtmlFromText=Ha,e.submitStorefrontContactTicket=async function(e){const t=e.shopSlug.trim();if(!t)throw new Error("Store data is not ready yet. Please try again in a moment.");const n=e.email.trim().toLowerCase(),o=e.title?.trim()??"",i=o.length>=2?o.slice(0,30):"Contact Request",r=as({name:e.name,message:e.message}),a=e.invoiceId?.trim()||void 0,s=rs({apiBaseUrl:e.apiBaseUrl}),u=await fetch(`${s}/v1/storefront/shops/name/${encodeURIComponent(t)}/tickets`,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({email:n,title:i,message:r,...a?{invoice_id:a}:{}})}),l=await u.json().catch(()=>null);if(!u.ok)throw new Error(l?.message||l?.error||"Failed to send your message.");const c=l?.data?.uniqid;if(!c)throw new Error("Ticket created, but the response was incomplete.");return{uniqid:c}},e.touchStorefrontPresence=Uu,e.trackPageView=Nu,e.validateStorefrontCustomFieldValue=function(e,t){if("checkbox"===e.type)return e.required&&!ja(t)?`${e.name} is required.`:null;const n=t.trim();if(e.required&&!n)return`${e.name} is required.`;if(e.regex&&n)try{if(!new RegExp(e.regex).test(n))return`${e.name} has an invalid format.`}catch{return null}return null}});
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).shoppex={})}(this,function(e){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var t=new Map,n=new Map,o={hits:0,misses:0};function i(){t.clear(),n.clear()}function r(e,n,o){const i=Date.now();t.set(e,{data:n,ttl:o,updatedAt:i,expiresAt:i+o})}async function a(e,i,a,s=()=>!0){const u=function(e){const n=t.get(e);return n||null}(e);if(u&&!function(e){return Date.now()>e.expiresAt}(u))return o.hits+=1,u.data;if(u&&a.staleWhileRevalidate){if(o.hits+=1,!n.has(e)){const t=(async()=>{try{const t=await i();return s(t)&&r(e,t,a.ttl),t}finally{n.delete(e)}})();n.set(e,t)}return u.data}if(n.has(e))return n.get(e);o.misses+=1;const l=(async()=>{try{const t=await i();return s(t)&&r(e,t,a.ttl),t}finally{n.delete(e)}})();return n.set(e,l),l}var s=class e extends Error{constructor(t,n,o){super(t),this.name="ShoppexError",this.code=n,this.statusCode=o,Object.setPrototypeOf(this,e.prototype)}},u=class e extends s{constructor(){super("SDK not initialized. Call shoppex.init() first.","NOT_INITIALIZED"),this.name="NotInitializedError",Object.setPrototypeOf(this,e.prototype)}},l=class e extends s{constructor(t,n){super(t,"NETWORK_ERROR",n),this.name="NetworkError",Object.setPrototypeOf(this,e.prototype)}},c=class e extends s{constructor(t,n,o,i){super(t,n,o),this.name="ApiError",this.errorParams=i,Object.setPrototypeOf(this,e.prototype)}},d=class e extends s{constructor(t){super(t,"BASKET_ERROR"),this.name="CartError",Object.setPrototypeOf(this,e.prototype)}},p=/\{[^{}]+\}/g;function f(e){let{baseUrl:t="",Request:n=globalThis.Request,fetch:o=globalThis.fetch,querySerializer:i,bodySerializer:r,pathSerializer:a,headers:s,requestInitExt:u,...l}={...e};u="object"==typeof process&&Number.parseInt(process?.versions?.node?.substring(0,2))>=18&&process.versions.undici?u:void 0,t=w(t);const c=[];async function d(e,d){const{baseUrl:p,fetch:f=o,Request:m=n,headers:_,params:h={},parseAs:S="json",querySerializer:k,bodySerializer:O=r??b,pathSerializer:z,body:x,middleware:E=[],...T}=d||{};let A=t;p&&(A=w(p)??t);let I="function"==typeof i?i:y(i);k&&(I="function"==typeof k?k:y({..."object"==typeof i?i:{},...k}));const $=z||a||g,C=void 0===x?void 0:O(x,v(s,_,h.header)),N=v(void 0===C||C instanceof FormData?{}:{"Content-Type":"application/json"},s,_,h.header),P=[...c,...E],R={redirect:"follow",...l,...T,body:C,headers:N};let U,q,j,D=new m(function(e,t){let n=`${t.baseUrl}${e}`;t.params?.path&&(n=t.pathSerializer(n,t.params.path));let o=t.querySerializer(t.params.query??{});o.startsWith("?")&&(o=o.substring(1));o&&(n+=`?${o}`);return n}(e,{baseUrl:A,params:h,querySerializer:I,pathSerializer:$}),R);for(const t in T)t in D||(D[t]=T[t]);if(P.length){U=Math.random().toString(36).slice(2,11),q=Object.freeze({baseUrl:A,fetch:f,parseAs:S,querySerializer:I,bodySerializer:O,pathSerializer:$});for(const t of P)if(t&&"object"==typeof t&&"function"==typeof t.onRequest){const n=await t.onRequest({request:D,schemaPath:e,params:h,options:q,id:U});if(n){if(!(n instanceof m)){if(n instanceof Response){j=n;break}throw new Error("onRequest: must return new Request() or Response() when modifying the request")}D=n}}}if(!j){try{j=await f(D,u)}catch(M){let t=M;if(P.length)for(let n=P.length-1;n>=0;n--){const o=P[n];if(o&&"object"==typeof o&&"function"==typeof o.onError){const n=await o.onError({request:D,error:t,schemaPath:e,params:h,options:q,id:U});if(n){if(n instanceof Response){t=void 0,j=n;break}if(n instanceof Error){t=n;continue}throw new Error("onError: must return new Response() or instance of Error")}}}if(t)throw t}if(P.length)for(let t=P.length-1;t>=0;t--){const n=P[t];if(n&&"object"==typeof n&&"function"==typeof n.onResponse){const t=await n.onResponse({request:D,response:j,schemaPath:e,params:h,options:q,id:U});if(t){if(!(t instanceof Response))throw new Error("onResponse: must return new Response() when modifying the response");j=t}}}}const Z=j.headers.get("Content-Length");if(204===j.status||"HEAD"===D.method||"0"===Z&&!j.headers.get("Transfer-Encoding")?.includes("chunked"))return j.ok?{data:void 0,response:j}:{error:void 0,response:j};if(j.ok){const e=async()=>{if("stream"===S)return j.body;if("json"===S&&!Z){const e=await j.text();return e?JSON.parse(e):void 0}return await j[S]()};return{data:await e(),response:j}}let L=await j.text();try{L=JSON.parse(L)}catch{}return{error:L,response:j}}return{request:(e,t,n)=>d(t,{...n,method:e.toUpperCase()}),GET:(e,t)=>d(e,{...t,method:"GET"}),PUT:(e,t)=>d(e,{...t,method:"PUT"}),POST:(e,t)=>d(e,{...t,method:"POST"}),DELETE:(e,t)=>d(e,{...t,method:"DELETE"}),OPTIONS:(e,t)=>d(e,{...t,method:"OPTIONS"}),HEAD:(e,t)=>d(e,{...t,method:"HEAD"}),PATCH:(e,t)=>d(e,{...t,method:"PATCH"}),TRACE:(e,t)=>d(e,{...t,method:"TRACE"}),use(...e){for(const t of e)if(t){if("object"!=typeof t||!("onRequest"in t||"onResponse"in t||"onError"in t))throw new Error("Middleware must be an object with one of `onRequest()`, `onResponse() or `onError()`");c.push(t)}},eject(...e){for(const t of e){const e=c.indexOf(t);-1!==e&&c.splice(e,1)}}}}function m(e,t,n){if(null==t)return"";if("object"==typeof t)throw new Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");return`${e}=${!0===n?.allowReserved?t:encodeURIComponent(t)}`}function _(e,t,n){if(!t||"object"!=typeof t)return"";const o=[],i={simple:",",label:".",matrix:";"}[n.style]||"&";if("deepObject"!==n.style&&!1===n.explode){for(const e in t)o.push(e,!0===n.allowReserved?t[e]:encodeURIComponent(t[e]));const i=o.join(",");switch(n.style){case"form":return`${e}=${i}`;case"label":return`.${i}`;case"matrix":return`;${e}=${i}`;default:return i}}for(const a in t){const i="deepObject"===n.style?`${e}[${a}]`:a;o.push(m(i,t[a],n))}const r=o.join(i);return"label"===n.style||"matrix"===n.style?`${i}${r}`:r}function h(e,t,n){if(!Array.isArray(t))return"";if(!1===n.explode){const o={form:",",spaceDelimited:"%20",pipeDelimited:"|"}[n.style]||",",i=(!0===n.allowReserved?t:t.map(e=>encodeURIComponent(e))).join(o);switch(n.style){case"simple":return i;case"label":return`.${i}`;case"matrix":return`;${e}=${i}`;default:return`${e}=${i}`}}const o={simple:",",label:".",matrix:";"}[n.style]||"&",i=[];for(const r of t)"simple"===n.style||"label"===n.style?i.push(!0===n.allowReserved?r:encodeURIComponent(r)):i.push(m(e,r,n));return"label"===n.style||"matrix"===n.style?`${o}${i.join(o)}`:i.join(o)}function y(e){return function(t){const n=[];if(t&&"object"==typeof t)for(const o in t){const i=t[o];if(null!=i)if(Array.isArray(i)){if(0===i.length)continue;n.push(h(o,i,{style:"form",explode:!0,...e?.array,allowReserved:e?.allowReserved||!1}))}else"object"!=typeof i?n.push(m(o,i,e)):n.push(_(o,i,{style:"deepObject",explode:!0,...e?.object,allowReserved:e?.allowReserved||!1}))}return n.join("&")}}function g(e,t){let n=e;for(const o of e.match(p)??[]){let e=o.substring(1,o.length-1),i=!1,r="simple";if(e.endsWith("*")&&(i=!0,e=e.substring(0,e.length-1)),e.startsWith(".")?(r="label",e=e.substring(1)):e.startsWith(";")&&(r="matrix",e=e.substring(1)),!t||void 0===t[e]||null===t[e])continue;const a=t[e];Array.isArray(a)?n=n.replace(o,h(e,a,{style:r,explode:i})):n="object"!=typeof a?"matrix"!==r?n.replace(o,"label"===r?`.${encodeURIComponent(a)}`:encodeURIComponent(a)):n.replace(o,`;${m(e,a)}`):n.replace(o,_(e,a,{style:r,explode:i}))}return n}function b(e,t){return e instanceof FormData?e:t&&"application/x-www-form-urlencoded"===(t.get instanceof Function?t.get("Content-Type")??t.get("content-type"):t["Content-Type"]??t["content-type"])?new URLSearchParams(e).toString():JSON.stringify(e)}function v(...e){const t=new Headers;for(const n of e){if(!n||"object"!=typeof n)continue;const e=n instanceof Headers?n.entries():Object.entries(n);for(const[n,o]of e)if(null===o)t.delete(n);else if(Array.isArray(o))for(const e of o)t.append(n,e);else void 0!==o&&t.set(n,o)}return t}function w(e){return e.endsWith("/")?e.substring(0,e.length-1):e}var S={header:{title:"Header",aliases:["Header Menu"]},footer:{title:"Footer",aliases:["Footer Links","Legal Links"]}};var k;Object.keys(S);function O(e,t,n){function o(n,o){if(n._zod||Object.defineProperty(n,"_zod",{value:{def:o,constr:a,traits:new Set},enumerable:!1}),n._zod.traits.has(e))return;n._zod.traits.add(e),t(n,o);const i=a.prototype,r=Object.keys(i);for(let e=0;e<r.length;e++){const t=r[e];t in n||(n[t]=i[t].bind(n))}}const i=n?.Parent??Object;class r extends i{}function a(e){var t;const i=n?.Parent?new r:this;o(i,e),(t=i._zod).deferred??(t.deferred=[]);for(const n of i._zod.deferred)n();return i}return Object.defineProperty(r,"name",{value:e}),Object.defineProperty(a,"init",{value:o}),Object.defineProperty(a,Symbol.hasInstance,{value:t=>!!(n?.Parent&&t instanceof n.Parent)||t?._zod?.traits?.has(e)}),Object.defineProperty(a,"name",{value:e}),a}var z=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},x=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}};(k=globalThis).__zod_globalConfig??(k.__zod_globalConfig={});var E=globalThis.__zod_globalConfig;function T(e){return e&&Object.assign(E,e),E}function A(e){const t=Object.values(e).filter(e=>"number"==typeof e);return Object.entries(e).filter(([e,n])=>-1===t.indexOf(+e)).map(([e,t])=>t)}function I(e,t){return"bigint"==typeof t?t.toString():t}function $(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function C(e){return null==e}function N(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}var P=Symbol("evaluating");function R(e,t,n){let o;Object.defineProperty(e,t,{get(){if(o!==P)return void 0===o&&(o=P,o=n()),o},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function U(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function q(...e){const t={};for(const n of e){const e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}function j(e){return JSON.stringify(e)}var D="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function Z(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}var L=$(()=>{if(E.jitless)return!1;if("undefined"!=typeof navigator&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch(e){return!1}});function M(e){if(!1===Z(e))return!1;const t=e.constructor;if(void 0===t)return!0;if("function"!=typeof t)return!0;const n=t.prototype;return!1!==Z(n)&&!1!==Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")}function F(e){return M(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}var B=new Set(["string","number","symbol"]);function Y(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function J(e,t,n){const o=new e._zod.constr(t??e._zod.def);return t&&!n?.parent||(o._zod.parent=e),o}function W(e){const t=e;if(!t)return{};if("string"==typeof t)return{error:()=>t};if(void 0!==t?.message){if(void 0!==t?.error)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,"string"==typeof t.error?{...t,error:()=>t.error}:t}var V={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 G(e,t=0){if(!0===e.aborted)return!0;for(let n=t;n<e.issues.length;n++)if(!0!==e.issues[n]?.continue)return!0;return!1}function H(e,t=0){if(!0===e.aborted)return!0;for(let n=t;n<e.issues.length;n++)if(!1===e.issues[n]?.continue)return!0;return!1}function K(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function X(e){return"string"==typeof e?e:e?.message}function Q(e,t,n){const o=e.message?e.message:X(e.inst?._zod.def?.error?.(e))??X(t?.error?.(e))??X(n.customError?.(e))??X(n.localeError?.(e))??"Invalid input",{inst:i,continue:r,input:a,...s}=e;return s.path??(s.path=[]),s.message=o,t?.reportInput&&(s.input=a),s}function ee(e){return Array.isArray(e)?"array":"string"==typeof e?"string":"unknown"}function te(...e){const[t,n,o]=e;return"string"==typeof t?{message:t,code:"custom",input:n,inst:o}:{...t}}var ne=(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,I,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},oe=O("$ZodError",ne),ie=O("$ZodError",ne,{Parent:Error});var re=e=>(t,n,o,i)=>{const r=o?{...o,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},r);if(a instanceof Promise)throw new z;if(a.issues.length){const t=new(i?.Err??e)(a.issues.map(e=>Q(e,r,T())));throw D(t,i?.callee),t}return a.value},ae=e=>async(t,n,o,i)=>{const r=o?{...o,async:!0}:{async:!0};let a=t._zod.run({value:n,issues:[]},r);if(a instanceof Promise&&(a=await a),a.issues.length){const t=new(i?.Err??e)(a.issues.map(e=>Q(e,r,T())));throw D(t,i?.callee),t}return a.value},se=e=>(t,n,o)=>{const i=o?{...o,async:!1}:{async:!1},r=t._zod.run({value:n,issues:[]},i);if(r instanceof Promise)throw new z;return r.issues.length?{success:!1,error:new(e??oe)(r.issues.map(e=>Q(e,i,T())))}:{success:!0,data:r.value}},ue=se(ie),le=e=>async(t,n,o)=>{const i=o?{...o,async:!0}:{async:!0};let r=t._zod.run({value:n,issues:[]},i);return r instanceof Promise&&(r=await r),r.issues.length?{success:!1,error:new e(r.issues.map(e=>Q(e,i,T())))}:{success:!0,data:r.value}},ce=le(ie),de=e=>(t,n,o)=>{const i=o?{...o,direction:"backward"}:{direction:"backward"};return re(e)(t,n,i)},pe=e=>(t,n,o)=>re(e)(t,n,o),fe=e=>async(t,n,o)=>{const i=o?{...o,direction:"backward"}:{direction:"backward"};return ae(e)(t,n,i)},me=e=>async(t,n,o)=>ae(e)(t,n,o),_e=e=>(t,n,o)=>{const i=o?{...o,direction:"backward"}:{direction:"backward"};return se(e)(t,n,i)},he=e=>(t,n,o)=>se(e)(t,n,o),ye=e=>async(t,n,o)=>{const i=o?{...o,direction:"backward"}:{direction:"backward"};return le(e)(t,n,i)},ge=e=>async(t,n,o)=>le(e)(t,n,o),be=/^[cC][0-9a-z]{6,}$/,ve=/^[0-9a-z]+$/,we=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Se=/^[0-9a-vA-V]{20}$/,ke=/^[A-Za-z0-9]{27}$/,Oe=/^[a-zA-Z0-9_-]{21}$/,ze=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,xe=/^([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})$/,Ee=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)$/,Te=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var Ae=/^(?:(?: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])$/,Ie=/^(([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}|:))$/,$e=/^((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])$/,Ce=/^(([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])$/,Ne=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Pe=/^[A-Za-z0-9_-]*$/,Re=/^https?$/,Ue=/^\+[1-9]\d{6,14}$/,qe="(?:(?:\\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])))",je=new RegExp(`^${qe}$`);function De(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return"number"==typeof e.precision?-1===e.precision?`${t}`:0===e.precision?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}var Ze=/^-?\d+$/,Le=/^-?\d+(?:\.\d+)?$/,Me=/^(?:true|false)$/i,Fe=/^[^A-Z]*$/,Be=/^[^a-z]*$/,Ye=O("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),Je={number:"number",bigint:"bigint",object:"date"},We=O("$ZodCheckLessThan",(e,t)=>{Ye.init(e,t);const n=Je[typeof t.value];e._zod.onattach.push(e=>{const n=e._zod.bag,o=(t.inclusive?n.maximum:n.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<o&&(t.inclusive?n.maximum=t.value:n.exclusiveMaximum=t.value)}),e._zod.check=o=>{(t.inclusive?o.value<=t.value:o.value<t.value)||o.issues.push({origin:n,code:"too_big",maximum:"object"==typeof t.value?t.value.getTime():t.value,input:o.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Ve=O("$ZodCheckGreaterThan",(e,t)=>{Ye.init(e,t);const n=Je[typeof t.value];e._zod.onattach.push(e=>{const n=e._zod.bag,o=(t.inclusive?n.minimum:n.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>o&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=o=>{(t.inclusive?o.value>=t.value:o.value>t.value)||o.issues.push({origin:n,code:"too_small",minimum:"object"==typeof t.value?t.value.getTime():t.value,input:o.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Ge=O("$ZodCheckMultipleOf",(e,t)=>{Ye.init(e,t),e._zod.onattach.push(e=>{var n;(n=e._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");("bigint"==typeof n.value?n.value%t.value!==BigInt(0):0!==function(e,t){const n=e/t,o=Math.round(n),i=Number.EPSILON*Math.max(Math.abs(n),1);return Math.abs(n-o)<i?0:n-o}(n.value,t.value))&&n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),He=O("$ZodCheckNumberFormat",(e,t)=>{Ye.init(e,t),t.format=t.format||"float64";const n=t.format?.includes("int"),o=n?"int":"number",[i,r]=V[t.format];e._zod.onattach.push(e=>{const o=e._zod.bag;o.format=t.format,o.minimum=i,o.maximum=r,n&&(o.pattern=Ze)}),e._zod.check=a=>{const s=a.value;if(n){if(!Number.isInteger(s))return void a.issues.push({expected:o,format:t.format,code:"invalid_type",continue:!1,input:s,inst:e});if(!Number.isSafeInteger(s))return void(s>0?a.issues.push({input:s,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:o,inclusive:!0,continue:!t.abort}):a.issues.push({input:s,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:o,inclusive:!0,continue:!t.abort}))}s<i&&a.issues.push({origin:"number",input:s,code:"too_small",minimum:i,inclusive:!0,inst:e,continue:!t.abort}),s>r&&a.issues.push({origin:"number",input:s,code:"too_big",maximum:r,inclusive:!0,inst:e,continue:!t.abort})}}),Ke=O("$ZodCheckMaxLength",(e,t)=>{var n;Ye.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!C(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<n&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{const o=n.value;if(o.length<=t.maximum)return;const i=ee(o);n.issues.push({origin:i,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Xe=O("$ZodCheckMinLength",(e,t)=>{var n;Ye.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!C(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{const o=n.value;if(o.length>=t.minimum)return;const i=ee(o);n.issues.push({origin:i,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Qe=O("$ZodCheckLengthEquals",(e,t)=>{var n;Ye.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!C(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=n=>{const o=n.value,i=o.length;if(i===t.length)return;const r=ee(o),a=i>t.length;n.issues.push({origin:r,...a?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),et=O("$ZodCheckStringFormat",(e,t)=>{var n,o;Ye.init(e,t),e._zod.onattach.push(e=>{const n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??(n.patterns=new Set),n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,t.pattern.test(n.value)||n.issues.push({origin:"string",code:"invalid_format",format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(o=e._zod).check??(o.check=()=>{})}),tt=O("$ZodCheckRegex",(e,t)=>{et.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,t.pattern.test(n.value)||n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),nt=O("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Fe),et.init(e,t)}),ot=O("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=Be),et.init(e,t)}),it=O("$ZodCheckIncludes",(e,t)=>{Ye.init(e,t);const n=Y(t.includes),o=new RegExp("number"==typeof t.position?`^.{${t.position}}${n}`:n);t.pattern=o,e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(o)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),rt=O("$ZodCheckStartsWith",(e,t)=>{Ye.init(e,t);const n=new RegExp(`^${Y(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(n)}),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})}}),at=O("$ZodCheckEndsWith",(e,t)=>{Ye.init(e,t);const n=new RegExp(`.*${Y(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(n)}),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})}}),st=O("$ZodCheckOverwrite",(e,t)=>{Ye.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}),ut=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("function"==typeof e)return e(this,{execution:"sync"}),void e(this,{execution:"async"});const t=e.split("\n").filter(e=>e),n=Math.min(...t.map(e=>e.length-e.trimStart().length)),o=t.map(e=>e.slice(n)).map(e=>" ".repeat(2*this.indent)+e);for(const i of o)this.content.push(i)}compile(){const e=Function,t=this?.args;return new e(...t,[...(this?.content??[""]).map(e=>` ${e}`)].join("\n"))}},lt={major:4,minor:4,patch:3},ct=O("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=lt;const o=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&o.unshift(e);for(const i of o)for(const t of i._zod.onattach)t(e);if(0===o.length)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const t=(e,t,n)=>{let o,i=G(e);for(const r of t){if(r._zod.def.when){if(H(e))continue;if(!r._zod.def.when(e))continue}else if(i)continue;const t=e.issues.length,a=r._zod.check(e);if(a instanceof Promise&&!1===n?.async)throw new z;if(o||a instanceof Promise)o=(o??Promise.resolve()).then(async()=>{await a,e.issues.length!==t&&(i||(i=G(e,t)))});else{if(e.issues.length===t)continue;i||(i=G(e,t))}}return o?o.then(()=>e):e},n=(n,i,r)=>{if(G(n))return n.aborted=!0,n;const a=t(i,o,r);if(a instanceof Promise){if(!1===r.async)throw new z;return a.then(t=>e._zod.parse(t,r))}return e._zod.parse(a,r)};e._zod.run=(i,r)=>{if(r.skipChecks)return e._zod.parse(i,r);if("backward"===r.direction){const t=e._zod.parse({value:i.value,issues:[]},{...r,skipChecks:!0});return t instanceof Promise?t.then(e=>n(e,i,r)):n(t,i,r)}const a=e._zod.parse(i,r);if(a instanceof Promise){if(!1===r.async)throw new z;return a.then(e=>t(e,o,r))}return t(a,o,r)}}R(e,"~standard",()=>({validate:t=>{try{const n=ue(e,t);return n.success?{value:n.data}:{issues:n.error?.issues}}catch(n){return ce(e,t).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:"zod",version:1}))}),dt=O("$ZodString",(e,t)=>{var n;ct.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??(n=e._zod.bag,new RegExp(`^${n?`[\\s\\S]{${n?.minimum??0},${n?.maximum??""}}`:"[\\s\\S]*"}$`)),e._zod.parse=(n,o)=>{if(t.coerce)try{n.value=String(n.value)}catch(o){}return"string"==typeof n.value||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),pt=O("$ZodStringFormat",(e,t)=>{et.init(e,t),dt.init(e,t)}),ft=O("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=xe),pt.init(e,t)}),mt=O("$ZodUUID",(e,t)=>{if(t.version){const e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(void 0===e)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=Ee(e))}else t.pattern??(t.pattern=Ee());pt.init(e,t)}),_t=O("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Te),pt.init(e,t)}),ht=O("$ZodURL",(e,t)=>{pt.init(e,t),e._zod.check=n=>{try{const o=n.value.trim();if(!t.normalize&&t.protocol?.source===Re.source&&!/^https?:\/\//i.test(o))return void n.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:n.value,inst:e,continue:!t.abort});const i=new URL(o);return t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(":")?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),void(t.normalize?n.value=i.href:n.value=o)}catch(o){n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),yt=O("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),pt.init(e,t)}),gt=O("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=Oe),pt.init(e,t)}),bt=O("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=be),pt.init(e,t)}),vt=O("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=ve),pt.init(e,t)}),wt=O("$ZodULID",(e,t)=>{t.pattern??(t.pattern=we),pt.init(e,t)}),St=O("$ZodXID",(e,t)=>{t.pattern??(t.pattern=Se),pt.init(e,t)}),kt=O("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=ke),pt.init(e,t)}),Ot=O("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=function(e){const t=De({precision:e.precision}),n=["Z"];e.local&&n.push(""),e.offset&&n.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const o=`${t}(?:${n.join("|")})`;return new RegExp(`^${qe}T(?:${o})$`)}(t)),pt.init(e,t)}),zt=O("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=je),pt.init(e,t)}),xt=O("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=new RegExp(`^${De(t)}$`)),pt.init(e,t)}),Et=O("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=ze),pt.init(e,t)}),Tt=O("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=Ae),pt.init(e,t),e._zod.bag.format="ipv4"}),At=O("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=Ie),pt.init(e,t),e._zod.bag.format="ipv6",e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:e,continue:!t.abort})}}}),It=O("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=$e),pt.init(e,t)}),$t=O("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=Ce),pt.init(e,t),e._zod.check=n=>{const o=n.value.split("/");try{if(2!==o.length)throw new Error;const[e,t]=o;if(!t)throw new Error;const n=Number(t);if(`${n}`!==t)throw new Error;if(n<0||n>128)throw new Error;new URL(`http://[${e}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});function Ct(e){if(""===e)return!0;if(/\s/.test(e))return!1;if(e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}var Nt=O("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=Ne),pt.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=n=>{Ct(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});var Pt=O("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=Pe),pt.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=n=>{(function(e){if(!Pe.test(e))return!1;const t=e.replace(/[-_]/g,e=>"-"===e?"+":"/");return Ct(t.padEnd(4*Math.ceil(t.length/4),"="))})(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),Rt=O("$ZodE164",(e,t)=>{t.pattern??(t.pattern=Ue),pt.init(e,t)});var Ut=O("$ZodJWT",(e,t)=>{pt.init(e,t),e._zod.check=n=>{(function(e,t=null){try{const n=e.split(".");if(3!==n.length)return!1;const[o]=n;if(!o)return!1;const i=JSON.parse(atob(o));return!("typ"in i&&"JWT"!==i?.typ||!i.alg||t&&(!("alg"in i)||i.alg!==t))}catch{return!1}})(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),qt=O("$ZodNumber",(e,t)=>{ct.init(e,t),e._zod.pattern=e._zod.bag.pattern??Le,e._zod.parse=(n,o)=>{if(t.coerce)try{n.value=Number(n.value)}catch(a){}const i=n.value;if("number"==typeof i&&!Number.isNaN(i)&&Number.isFinite(i))return n;const r="number"==typeof i?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:i,inst:e,...r?{received:r}:{}}),n}}),jt=O("$ZodNumberFormat",(e,t)=>{He.init(e,t),qt.init(e,t)}),Dt=O("$ZodBoolean",(e,t)=>{ct.init(e,t),e._zod.pattern=Me,e._zod.parse=(n,o)=>{if(t.coerce)try{n.value=Boolean(n.value)}catch(r){}const i=n.value;return"boolean"==typeof i||n.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:e}),n}}),Zt=O("$ZodUnknown",(e,t)=>{ct.init(e,t),e._zod.parse=e=>e}),Lt=O("$ZodNever",(e,t)=>{ct.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:"never",code:"invalid_type",input:t.value,inst:e}),t)});function Mt(e,t,n){e.issues.length&&t.issues.push(...K(n,e.issues)),t.value[n]=e.value}var Ft=O("$ZodArray",(e,t)=>{ct.init(e,t),e._zod.parse=(n,o)=>{const i=n.value;if(!Array.isArray(i))return n.issues.push({expected:"array",code:"invalid_type",input:i,inst:e}),n;n.value=Array(i.length);const r=[];for(let e=0;e<i.length;e++){const a=i[e],s=t.element._zod.run({value:a,issues:[]},o);s instanceof Promise?r.push(s.then(t=>Mt(t,n,e))):Mt(s,n,e)}return r.length?Promise.all(r).then(()=>n):n}});function Bt(e,t,n,o,i,r){const a=n in o;if(e.issues.length){if(i&&r&&!a)return;t.issues.push(...K(n,e.issues))}a||i?void 0===e.value?a&&(t.value[n]=void 0):t.value[n]=e.value:e.issues.length||t.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[n]})}function Yt(e){const t=Object.keys(e.shape);for(const i of t)if(!e.shape?.[i]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${i}": expected a Zod schema`);const n=(o=e.shape,Object.keys(o).filter(e=>"optional"===o[e]._zod.optin&&"optional"===o[e]._zod.optout));var o;return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function Jt(e,t,n,o,i,r){const a=[],s=i.keySet,u=i.catchall._zod,l=u.def.type,c="optional"===u.optin,d="optional"===u.optout;for(const p in t){if("__proto__"===p)continue;if(s.has(p))continue;if("never"===l){a.push(p);continue}const i=u.run({value:t[p],issues:[]},o);i instanceof Promise?e.push(i.then(e=>Bt(e,n,p,t,c,d))):Bt(i,n,p,t,c,d)}return a.length&&n.issues.push({code:"unrecognized_keys",keys:a,input:t,inst:r}),e.length?Promise.all(e).then(()=>n):n}var Wt=O("$ZodObject",(e,t)=>{if(ct.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){const e=t.shape;Object.defineProperty(t,"shape",{get:()=>{const n={...e};return Object.defineProperty(t,"shape",{value:n}),n}})}const n=$(()=>Yt(t));R(e._zod,"propValues",()=>{const e=t.shape,n={};for(const t in e){const o=e[t]._zod;if(o.values){n[t]??(n[t]=new Set);for(const e of o.values)n[t].add(e)}}return n});const o=Z,i=t.catchall;let r;e._zod.parse=(t,a)=>{r??(r=n.value);const s=t.value;if(!o(s))return t.issues.push({expected:"object",code:"invalid_type",input:s,inst:e}),t;t.value={};const u=[],l=r.shape;for(const e of r.keys){const n=l[e],o="optional"===n._zod.optin,i="optional"===n._zod.optout,r=n._zod.run({value:s[e],issues:[]},a);r instanceof Promise?u.push(r.then(n=>Bt(n,t,e,s,o,i))):Bt(r,t,e,s,o,i)}return i?Jt(u,s,t,a,n.value,e):u.length?Promise.all(u).then(()=>t):t}}),Vt=O("$ZodObjectJIT",(e,t)=>{Wt.init(e,t);const n=e._zod.parse,o=$(()=>Yt(t));let i;const r=Z,a=!E.jitless,s=a&&L.value,u=t.catchall;let l;e._zod.parse=(c,d)=>{l??(l=o.value);const p=c.value;return r(p)?a&&s&&!1===d?.async&&!0!==d.jitless?(i||(i=(e=>{const t=new ut(["shape","payload","ctx"]),n=o.value,i=e=>{const t=j(e);return`shape[${t}]._zod.run({ value: input[${t}], issues: [] }, ctx)`};t.write("const input = payload.value;");const r=Object.create(null);let a=0;for(const o of n.keys)r[o]="key_"+a++;t.write("const newResult = {};");for(const o of n.keys){const n=r[o],a=j(o),s=e[o],u="optional"===s?._zod?.optin,l="optional"===s?._zod?.optout;t.write(`const ${n} = ${i(o)};`),u&&l?t.write(`\n if (${n}.issues.length) {\n if (${a} in input) {\n payload.issues = payload.issues.concat(${n}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${a}, ...iss.path] : [${a}]\n })));\n }\n }\n \n if (${n}.value === undefined) {\n if (${a} in input) {\n newResult[${a}] = undefined;\n }\n } else {\n newResult[${a}] = ${n}.value;\n }\n \n `):u?t.write(`\n if (${n}.issues.length) {\n payload.issues = payload.issues.concat(${n}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${a}, ...iss.path] : [${a}]\n })));\n }\n \n if (${n}.value === undefined) {\n if (${a} in input) {\n newResult[${a}] = undefined;\n }\n } else {\n newResult[${a}] = ${n}.value;\n }\n \n `):t.write(`\n const ${n}_present = ${a} in input;\n if (${n}.issues.length) {\n payload.issues = payload.issues.concat(${n}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${a}, ...iss.path] : [${a}]\n })));\n }\n if (!${n}_present && !${n}.issues.length) {\n payload.issues.push({\n code: "invalid_type",\n expected: "nonoptional",\n input: undefined,\n path: [${a}]\n });\n }\n\n if (${n}_present) {\n if (${n}.value === undefined) {\n newResult[${a}] = undefined;\n } else {\n newResult[${a}] = ${n}.value;\n }\n }\n\n `)}t.write("payload.value = newResult;"),t.write("return payload;");const s=t.compile();return(t,n)=>s(e,t,n)})(t.shape)),c=i(c,d),u?Jt([],p,c,d,l,e):c):n(c,d):(c.issues.push({expected:"object",code:"invalid_type",input:p,inst:e}),c)}});function Gt(e,t,n,o){for(const r of e)if(0===r.issues.length)return t.value=r.value,t;const i=e.filter(e=>!G(e));return 1===i.length?(t.value=i[0].value,i[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>Q(e,o,T())))}),t)}var Ht=O("$ZodUnion",(e,t)=>{ct.init(e,t),R(e._zod,"optin",()=>t.options.some(e=>"optional"===e._zod.optin)?"optional":void 0),R(e._zod,"optout",()=>t.options.some(e=>"optional"===e._zod.optout)?"optional":void 0),R(e._zod,"values",()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),R(e._zod,"pattern",()=>{if(t.options.every(e=>e._zod.pattern)){const e=t.options.map(e=>e._zod.pattern);return new RegExp(`^(${e.map(e=>N(e.source)).join("|")})$`)}});const n=1===t.options.length?t.options[0]._zod.run:null;e._zod.parse=(o,i)=>{if(n)return n(o,i);let r=!1;const a=[];for(const e of t.options){const t=e._zod.run({value:o.value,issues:[]},i);if(t instanceof Promise)a.push(t),r=!0;else{if(0===t.issues.length)return t;a.push(t)}}return r?Promise.all(a).then(t=>Gt(t,o,e,i)):Gt(a,o,e,i)}}),Kt=O("$ZodDiscriminatedUnion",(e,t)=>{t.inclusive=!1,Ht.init(e,t);const n=e._zod.parse;R(e._zod,"propValues",()=>{const e={};for(const n of t.options){const o=n._zod.propValues;if(!o||0===Object.keys(o).length)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(n)}"`);for(const[t,n]of Object.entries(o)){e[t]||(e[t]=new Set);for(const o of n)e[t].add(o)}}return e});const o=$(()=>{const e=t.options,n=new Map;for(const o of e){const e=o._zod.propValues?.[t.discriminator];if(!e||0===e.size)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(o)}"`);for(const t of e){if(n.has(t))throw new Error(`Duplicate discriminator value "${String(t)}"`);n.set(t,o)}}return n});e._zod.parse=(i,r)=>{const a=i.value;if(!Z(a))return i.issues.push({code:"invalid_type",expected:"object",input:a,inst:e}),i;const s=o.value.get(a?.[t.discriminator]);return s?s._zod.run(i,r):t.unionFallback||"backward"===r.direction?n(i,r):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:t.discriminator,options:Array.from(o.value.keys()),input:a,path:[t.discriminator],inst:e}),i)}}),Xt=O("$ZodIntersection",(e,t)=>{ct.init(e,t),e._zod.parse=(e,n)=>{const o=e.value,i=t.left._zod.run({value:o,issues:[]},n),r=t.right._zod.run({value:o,issues:[]},n);return i instanceof Promise||r instanceof Promise?Promise.all([i,r]).then(([t,n])=>en(e,t,n)):en(e,i,r)}});function Qt(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(M(e)&&M(t)){const n=Object.keys(t),o=Object.keys(e).filter(e=>-1!==n.indexOf(e)),i={...e,...t};for(const r of o){const n=Qt(e[r],t[r]);if(!n.valid)return{valid:!1,mergeErrorPath:[r,...n.mergeErrorPath]};i[r]=n.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const n=[];for(let o=0;o<e.length;o++){const i=Qt(e[o],t[o]);if(!i.valid)return{valid:!1,mergeErrorPath:[o,...i.mergeErrorPath]};n.push(i.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function en(e,t,n){const o=new Map;let i;for(const s of t.issues)if("unrecognized_keys"===s.code){i??(i=s);for(const e of s.keys)o.has(e)||o.set(e,{}),o.get(e).l=!0}else e.issues.push(s);for(const s of n.issues)if("unrecognized_keys"===s.code)for(const e of s.keys)o.has(e)||o.set(e,{}),o.get(e).r=!0;else e.issues.push(s);const r=[...o].filter(([,e])=>e.l&&e.r).map(([e])=>e);if(r.length&&i&&e.issues.push({...i,keys:r}),G(e))return e;const a=Qt(t.value,n.value);if(!a.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(a.mergeErrorPath)}`);return e.value=a.data,e}var tn=O("$ZodRecord",(e,t)=>{ct.init(e,t),e._zod.parse=(n,o)=>{const i=n.value;if(!M(i))return n.issues.push({expected:"record",code:"invalid_type",input:i,inst:e}),n;const r=[],a=t.keyType._zod.values;if(a){n.value={};const s=new Set;for(const l of a)if("string"==typeof l||"number"==typeof l||"symbol"==typeof l){s.add("number"==typeof l?l.toString():l);const a=t.keyType._zod.run({value:l,issues:[]},o);if(a instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(a.issues.length){n.issues.push({code:"invalid_key",origin:"record",issues:a.issues.map(e=>Q(e,o,T())),input:l,path:[l],inst:e});continue}const u=a.value,c=t.valueType._zod.run({value:i[l],issues:[]},o);c instanceof Promise?r.push(c.then(e=>{e.issues.length&&n.issues.push(...K(l,e.issues)),n.value[u]=e.value})):(c.issues.length&&n.issues.push(...K(l,c.issues)),n.value[u]=c.value)}let u;for(const e in i)s.has(e)||(u=u??[],u.push(e));u&&u.length>0&&n.issues.push({code:"unrecognized_keys",input:i,inst:e,keys:u})}else{n.value={};for(const a of Reflect.ownKeys(i)){if("__proto__"===a)continue;if(!Object.prototype.propertyIsEnumerable.call(i,a))continue;let s=t.keyType._zod.run({value:a,issues:[]},o);if(s instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if("string"==typeof a&&Le.test(a)&&s.issues.length){const e=t.keyType._zod.run({value:Number(a),issues:[]},o);if(e instanceof Promise)throw new Error("Async schemas not supported in object keys currently");0===e.issues.length&&(s=e)}if(s.issues.length){"loose"===t.mode?n.value[a]=i[a]:n.issues.push({code:"invalid_key",origin:"record",issues:s.issues.map(e=>Q(e,o,T())),input:a,path:[a],inst:e});continue}const u=t.valueType._zod.run({value:i[a],issues:[]},o);u instanceof Promise?r.push(u.then(e=>{e.issues.length&&n.issues.push(...K(a,e.issues)),n.value[s.value]=e.value})):(u.issues.length&&n.issues.push(...K(a,u.issues)),n.value[s.value]=u.value)}}return r.length?Promise.all(r).then(()=>n):n}}),nn=O("$ZodEnum",(e,t)=>{ct.init(e,t);const n=A(t.entries),o=new Set(n);e._zod.values=o,e._zod.pattern=new RegExp(`^(${n.filter(e=>B.has(typeof e)).map(e=>"string"==typeof e?Y(e):e.toString()).join("|")})$`),e._zod.parse=(t,i)=>{const r=t.value;return o.has(r)||t.issues.push({code:"invalid_value",values:n,input:r,inst:e}),t}}),on=O("$ZodLiteral",(e,t)=>{if(ct.init(e,t),0===t.values.length)throw new Error("Cannot create literal schema with no valid values");const n=new Set(t.values);e._zod.values=n,e._zod.pattern=new RegExp(`^(${t.values.map(e=>"string"==typeof e?Y(e):e?Y(e.toString()):String(e)).join("|")})$`),e._zod.parse=(o,i)=>{const r=o.value;return n.has(r)||o.issues.push({code:"invalid_value",values:t.values,input:r,inst:e}),o}}),rn=O("$ZodTransform",(e,t)=>{ct.init(e,t),e._zod.optin="optional",e._zod.parse=(n,o)=>{if("backward"===o.direction)throw new x(e.constructor.name);const i=t.transform(n.value,n);if(o.async)return(i instanceof Promise?i:Promise.resolve(i)).then(e=>(n.value=e,n.fallback=!0,n));if(i instanceof Promise)throw new z;return n.value=i,n.fallback=!0,n}});function an(e,t){return void 0===t&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}var sn=O("$ZodOptional",(e,t)=>{ct.init(e,t),e._zod.optin="optional",e._zod.optout="optional",R(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),R(e._zod,"pattern",()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${N(e.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if("optional"===t.innerType._zod.optin){const o=e.value,i=t.innerType._zod.run(e,n);return i instanceof Promise?i.then(e=>an(e,o)):an(i,o)}return void 0===e.value?e:t.innerType._zod.run(e,n)}}),un=O("$ZodExactOptional",(e,t)=>{sn.init(e,t),R(e._zod,"values",()=>t.innerType._zod.values),R(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(e,n)=>t.innerType._zod.run(e,n)}),ln=O("$ZodNullable",(e,t)=>{ct.init(e,t),R(e._zod,"optin",()=>t.innerType._zod.optin),R(e._zod,"optout",()=>t.innerType._zod.optout),R(e._zod,"pattern",()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${N(e.source)}|null)$`):void 0}),R(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>null===e.value?e:t.innerType._zod.run(e,n)}),cn=O("$ZodDefault",(e,t)=>{ct.init(e,t),e._zod.optin="optional",R(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);if(void 0===e.value)return e.value=t.defaultValue,e;const o=t.innerType._zod.run(e,n);return o instanceof Promise?o.then(e=>dn(e,t)):dn(o,t)}});function dn(e,t){return void 0===e.value&&(e.value=t.defaultValue),e}var pn=O("$ZodPrefault",(e,t)=>{ct.init(e,t),e._zod.optin="optional",R(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>("backward"===n.direction||void 0===e.value&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),fn=O("$ZodNonOptional",(e,t)=>{ct.init(e,t),R(e._zod,"values",()=>{const e=t.innerType._zod.values;return e?new Set([...e].filter(e=>void 0!==e)):void 0}),e._zod.parse=(n,o)=>{const i=t.innerType._zod.run(n,o);return i instanceof Promise?i.then(t=>mn(t,e)):mn(i,e)}});function mn(e,t){return e.issues.length||void 0!==e.value||e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}var _n=O("$ZodCatch",(e,t)=>{ct.init(e,t),e._zod.optin="optional",R(e._zod,"optout",()=>t.innerType._zod.optout),R(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);const o=t.innerType._zod.run(e,n);return o instanceof Promise?o.then(o=>(e.value=o.value,o.issues.length&&(e.value=t.catchValue({...e,error:{issues:o.issues.map(e=>Q(e,n,T()))},input:e.value}),e.issues=[],e.fallback=!0),e)):(e.value=o.value,o.issues.length&&(e.value=t.catchValue({...e,error:{issues:o.issues.map(e=>Q(e,n,T()))},input:e.value}),e.issues=[],e.fallback=!0),e)}}),hn=O("$ZodPipe",(e,t)=>{ct.init(e,t),R(e._zod,"values",()=>t.in._zod.values),R(e._zod,"optin",()=>t.in._zod.optin),R(e._zod,"optout",()=>t.out._zod.optout),R(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if("backward"===n.direction){const o=t.out._zod.run(e,n);return o instanceof Promise?o.then(e=>yn(e,t.in,n)):yn(o,t.in,n)}const o=t.in._zod.run(e,n);return o instanceof Promise?o.then(e=>yn(e,t.out,n)):yn(o,t.out,n)}});function yn(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues,fallback:e.fallback},n)}var gn=O("$ZodReadonly",(e,t)=>{ct.init(e,t),R(e._zod,"propValues",()=>t.innerType._zod.propValues),R(e._zod,"values",()=>t.innerType._zod.values),R(e._zod,"optin",()=>t.innerType?._zod?.optin),R(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);const o=t.innerType._zod.run(e,n);return o instanceof Promise?o.then(bn):bn(o)}});function bn(e){return e.value=Object.freeze(e.value),e}var vn,wn=O("$ZodCustom",(e,t)=>{Ye.init(e,t),ct.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{const o=n.value,i=t.fn(o);if(i instanceof Promise)return i.then(t=>Sn(t,n,o,e));Sn(i,n,o,e)}});function Sn(e,t,n,o){if(!e){const e={code:"custom",input:n,inst:o,path:[...o._zod.def.path??[]],continue:!o._zod.def.abort};o._zod.def.params&&(e.params=o._zod.def.params),t.issues.push(te(e))}}var kn=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){const n=t[0];return this._map.set(e,n),n&&"object"==typeof n&&"id"in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){const t=this._map.get(e);return t&&"object"==typeof t&&"id"in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){const t=e._zod.parent;if(t){const n={...this.get(t)??{}};delete n.id;const o={...n,...this._map.get(e)};return Object.keys(o).length?o:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};(vn=globalThis).__zod_globalRegistry??(vn.__zod_globalRegistry=new kn);var On=globalThis.__zod_globalRegistry;function zn(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...W(t)})}function xn(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...W(t)})}function En(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...W(t)})}function Tn(e,t){return new We({check:"less_than",...W(t),value:e,inclusive:!1})}function An(e,t){return new We({check:"less_than",...W(t),value:e,inclusive:!0})}function In(e,t){return new Ve({check:"greater_than",...W(t),value:e,inclusive:!1})}function $n(e,t){return new Ve({check:"greater_than",...W(t),value:e,inclusive:!0})}function Cn(e,t){return new Ge({check:"multiple_of",...W(t),value:e})}function Nn(e,t){return new Ke({check:"max_length",...W(t),maximum:e})}function Pn(e,t){return new Xe({check:"min_length",...W(t),minimum:e})}function Rn(e,t){return new Qe({check:"length_equals",...W(t),length:e})}function Un(e){return new st({check:"overwrite",tx:e})}function qn(e,t){const n=new Ye({check:"custom",...W(t)});return n._zod.check=e,n}function jn(e){let t=e?.target??"draft-2020-12";return"draft-4"===t&&(t="draft-04"),"draft-7"===t&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??On,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 Dn(e,t,n={path:[],schemaPath:[]}){var o;const i=e._zod.def,r=t.seen.get(e);if(r)return r.count++,n.schemaPath.includes(e)&&(r.cycle=n.path),r.schema;const a={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,a);const s=e._zod.toJSONSchema?.();if(s)a.schema=s;else{const o={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,a.schema,o);else{const n=a.schema,r=t.processors[i.type];if(!r)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);r(e,t,n,o)}const r=e._zod.parent;r&&(a.ref||(a.ref=r),Dn(r,t,o),t.seen.get(r).isParent=!0)}const u=t.metadataRegistry.get(e);return u&&Object.assign(a.schema,u),"input"===t.io&&Mn(e)&&(delete a.schema.examples,delete a.schema.default),"input"===t.io&&"_prefault"in a.schema&&((o=a.schema).default??(o.default=a.schema._prefault)),delete a.schema._prefault,t.seen.get(e).schema}function Zn(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const o=new Map;for(const r of e.seen.entries()){const t=e.metadataRegistry.get(r[0])?.id;if(t){const e=o.get(t);if(e&&e!==r[0])throw new Error(`Duplicate schema id "${t}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);o.set(t,r[0])}}const i=t=>{if(t[1].schema.$ref)return;const o=t[1],{ref:i,defId:r}=(t=>{const o="draft-2020-12"===e.target?"$defs":"definitions";if(e.external){const n=e.external.registry.get(t[0])?.id,i=e.external.uri??(e=>e);if(n)return{ref:i(n)};const r=t[1].defId??t[1].schema.id??"schema"+e.counter++;return t[1].defId=r,{defId:r,ref:`${i("__shared")}#/${o}/${r}`}}if(t[1]===n)return{ref:"#"};const i=`#/${o}/`,r=t[1].schema.id??"__schema"+e.counter++;return{defId:r,ref:i+r}})(t);o.def={...o.schema},r&&(o.defId=r);const a=o.schema;for(const e in a)delete a[e];a.$ref=i};if("throw"===e.cycles)for(const r of e.seen.entries()){const e=r[1];if(e.cycle)throw new Error(`Cycle detected: #/${e.cycle?.join("/")}/<root>\n\nSet the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const r of e.seen.entries()){const n=r[1];if(t!==r[0]){if(e.external){const n=e.external.registry.get(r[0])?.id;if(t!==r[0]&&n){i(r);continue}}(e.metadataRegistry.get(r[0])?.id||n.cycle||n.count>1&&"ref"===e.reused)&&i(r)}else i(r)}}function Ln(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const o=t=>{const n=e.seen.get(t);if(null===n.ref)return;const i=n.def??n.schema,r={...i},a=n.ref;if(n.ref=null,a){o(a);const n=e.seen.get(a),s=n.schema;if(!s.$ref||"draft-07"!==e.target&&"draft-04"!==e.target&&"openapi-3.0"!==e.target?Object.assign(i,s):(i.allOf=i.allOf??[],i.allOf.push(s)),Object.assign(i,r),t._zod.parent===a)for(const e in i)"$ref"!==e&&"allOf"!==e&&(e in r||delete i[e]);if(s.$ref&&n.def)for(const e in i)"$ref"!==e&&"allOf"!==e&&e in n.def&&JSON.stringify(i[e])===JSON.stringify(n.def[e])&&delete i[e]}const s=t._zod.parent;if(s&&s!==a){o(s);const t=e.seen.get(s);if(t?.schema.$ref&&(i.$ref=t.schema.$ref,t.def))for(const e in i)"$ref"!==e&&"allOf"!==e&&e in t.def&&JSON.stringify(i[e])===JSON.stringify(t.def[e])&&delete i[e]}e.override({zodSchema:t,jsonSchema:i,path:n.path??[]})};for(const u of[...e.seen.entries()].reverse())o(u[0]);const i={};if("draft-2020-12"===e.target?i.$schema="https://json-schema.org/draft/2020-12/schema":"draft-07"===e.target?i.$schema="http://json-schema.org/draft-07/schema#":"draft-04"===e.target?i.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const n=e.external.registry.get(t)?.id;if(!n)throw new Error("Schema is missing an `id` property");i.$id=e.external.uri(n)}Object.assign(i,n.def??n.schema);const r=e.metadataRegistry.get(t)?.id;void 0!==r&&i.id===r&&delete i.id;const a=e.external?.defs??{};for(const u of e.seen.entries()){const e=u[1];e.def&&e.defId&&(e.def.id===e.defId&&delete e.def.id,a[e.defId]=e.def)}e.external||Object.keys(a).length>0&&("draft-2020-12"===e.target?i.$defs=a:i.definitions=a);try{const n=JSON.parse(JSON.stringify(i));return Object.defineProperty(n,"~standard",{value:{...t["~standard"],jsonSchema:{input:Fn(t,"input",e.processors),output:Fn(t,"output",e.processors)}},enumerable:!1,writable:!1}),n}catch(s){throw new Error("Error converting schema to JSON.")}}function Mn(e,t){const n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);const o=e._zod.def;if("transform"===o.type)return!0;if("array"===o.type)return Mn(o.element,n);if("set"===o.type)return Mn(o.valueType,n);if("lazy"===o.type)return Mn(o.getter(),n);if("promise"===o.type||"optional"===o.type||"nonoptional"===o.type||"nullable"===o.type||"readonly"===o.type||"default"===o.type||"prefault"===o.type)return Mn(o.innerType,n);if("intersection"===o.type)return Mn(o.left,n)||Mn(o.right,n);if("record"===o.type||"map"===o.type)return Mn(o.keyType,n)||Mn(o.valueType,n);if("pipe"===o.type)return!!e._zod.traits.has("$ZodCodec")||(Mn(o.in,n)||Mn(o.out,n));if("object"===o.type){for(const e in o.shape)if(Mn(o.shape[e],n))return!0;return!1}if("union"===o.type){for(const e of o.options)if(Mn(e,n))return!0;return!1}if("tuple"===o.type){for(const e of o.items)if(Mn(e,n))return!0;return!(!o.rest||!Mn(o.rest,n))}return!1}var Fn=(e,t,n={})=>o=>{const{libraryOptions:i,target:r}=o??{},a=jn({...i??{},target:r,io:t,processors:n});return Dn(e,a),Zn(a,e),Ln(a,e)},Bn={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Yn=(e,t,n,o)=>{const i=e._zod.def;Dn(i.innerType,t,o);t.seen.get(e).ref=i.innerType},Jn=O("ZodISODateTime",(e,t)=>{Ot.init(e,t),wo.init(e,t)});function Wn(e){return function(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...W(t)})}(Jn,e)}var Vn=O("ZodISODate",(e,t)=>{zt.init(e,t),wo.init(e,t)});function Gn(e){return function(e,t){return new e({type:"string",format:"date",check:"string_format",...W(t)})}(Vn,e)}var Hn=O("ZodISOTime",(e,t)=>{xt.init(e,t),wo.init(e,t)});function Kn(e){return function(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...W(t)})}(Hn,e)}var Xn=O("ZodISODuration",(e,t)=>{Et.init(e,t),wo.init(e,t)});function Qn(e){return function(e,t){return new e({type:"string",format:"duration",check:"string_format",...W(t)})}(Xn,e)}var eo=(e,t)=>{oe.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:t=>function(e,t=e=>e.message){const n={_errors:[]},o=(e,i=[])=>{for(const r of e.issues)if("invalid_union"===r.code&&r.errors.length)r.errors.map(e=>o({issues:e},[...i,...r.path]));else if("invalid_key"===r.code)o({issues:r.issues},[...i,...r.path]);else if("invalid_element"===r.code)o({issues:r.issues},[...i,...r.path]);else{const e=[...i,...r.path];if(0===e.length)n._errors.push(t(r));else{let o=n,i=0;for(;i<e.length;){const n=e[i];i!==e.length-1?o[n]=o[n]||{_errors:[]}:(o[n]=o[n]||{_errors:[]},o[n]._errors.push(t(r))),o=o[n],i++}}}};return o(e),n}(e,t)},flatten:{value:t=>function(e,t=e=>e.message){const n={},o=[];for(const i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):o.push(t(i));return{formErrors:o,fieldErrors:n}}(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,I,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,I,2)}},isEmpty:{get:()=>0===e.issues.length}})},to=O("ZodError",eo,{Parent:Error}),no=re(to),oo=ae(to),io=se(to),ro=le(to),ao=de(to),so=pe(to),uo=fe(to),lo=me(to),co=_e(to),po=he(to),fo=ye(to),mo=ge(to),_o=new WeakMap;function ho(e,t,n){const o=Object.getPrototypeOf(e);let i=_o.get(o);if(i||(i=new Set,_o.set(o,i)),!i.has(t)){i.add(t);for(const e in n){const t=n[e];Object.defineProperty(o,e,{configurable:!0,enumerable:!1,get(){const n=t.bind(this);return Object.defineProperty(this,e,{configurable:!0,writable:!0,enumerable:!0,value:n}),n},set(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,enumerable:!0,value:t})}})}}}var yo=O("ZodType",(e,t)=>(ct.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:Fn(e,"input"),output:Fn(e,"output")}}),e.toJSONSchema=((e,t={})=>n=>{const o=jn({...n,processors:t});return Dn(e,o),Zn(o,e),Ln(o,e)})(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.parse=(t,n)=>no(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>io(e,t,n),e.parseAsync=async(t,n)=>oo(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>ro(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>ao(e,t,n),e.decode=(t,n)=>so(e,t,n),e.encodeAsync=async(t,n)=>uo(e,t,n),e.decodeAsync=async(t,n)=>lo(e,t,n),e.safeEncode=(t,n)=>co(e,t,n),e.safeDecode=(t,n)=>po(e,t,n),e.safeEncodeAsync=async(t,n)=>fo(e,t,n),e.safeDecodeAsync=async(t,n)=>mo(e,t,n),ho(e,"ZodType",{check(...e){const t=this.def;return this.clone(q(t,{checks:[...t.checks??[],...e.map(e=>"function"==typeof e?{_zod:{check:e,def:{check:"custom"},onattach:[]}}:e)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return J(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(function(e,t={}){return function(e,t,n){return new e({type:"custom",check:"custom",fn:t,...W(n)})}(xi,e,t)}(e,t))},superRefine(e,t){return this.check(function(e,t){return function(e,t){const n=qn(t=>(t.addIssue=e=>{if("string"==typeof e)t.issues.push(te(e,t.value,n._zod.def));else{const o=e;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=t.value),o.inst??(o.inst=n),o.continue??(o.continue=!n._zod.def.abort),t.issues.push(te(o))}},e(t.value,t)),t);return n}(e,t)}(e,t))},overwrite(e){return this.check(Un(e))},optional(){return _i(this)},exactOptional(){return new hi({type:"optional",innerType:this})},nullable(){return gi(this)},nullish(){return _i(gi(this))},nonoptional(e){return function(e,t){return new wi({type:"nonoptional",innerType:e,...W(t)})}(this,e)},array(){return Qo(this)},or(e){return oi([this,e])},and(e){return new ai({type:"intersection",left:this,right:e})},transform(e){return Oi(this,new fi({type:"transform",transform:e}))},default(e){return t=e,new bi({type:"default",innerType:this,get defaultValue(){return"function"==typeof t?t():F(t)}});var t},prefault(e){return t=e,new vi({type:"prefault",innerType:this,get defaultValue(){return"function"==typeof t?t():F(t)}});var t},catch(e){return new Si({type:"catch",innerType:this,catchValue:"function"==typeof(t=e)?t:()=>t});var t},pipe(e){return Oi(this,e)},readonly(){return new zi({type:"readonly",innerType:this})},describe(e){const t=this.clone();return On.add(t,{description:e}),t},meta(...e){if(0===e.length)return On.get(this);const t=this.clone();return On.add(t,e[0]),t},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e){return e(this)}}),Object.defineProperty(e,"description",{get:()=>On.get(e)?.description,configurable:!0}),e)),go=O("_ZodString",(e,t)=>{dt.init(e,t),yo.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n)=>{const o=n;o.type="string";const{minimum:i,maximum:r,format:a,patterns:s,contentEncoding:u}=e._zod.bag;if("number"==typeof i&&(o.minLength=i),"number"==typeof r&&(o.maxLength=r),a&&(o.format=Bn[a]??a,""===o.format&&delete o.format,"time"===a&&delete o.format),u&&(o.contentEncoding=u),s&&s.size>0){const e=[...s];1===e.length?o.pattern=e[0].source:e.length>1&&(o.allOf=[...e.map(e=>({..."draft-07"===t.target||"draft-04"===t.target||"openapi-3.0"===t.target?{type:"string"}:{},pattern:e.source}))])}})(e,t,n);const n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,ho(e,"_ZodString",{regex(...e){return this.check(function(e,t){return new tt({check:"string_format",format:"regex",...W(t),pattern:e})}(...e))},includes(...e){return this.check(function(e,t){return new it({check:"string_format",format:"includes",...W(t),includes:e})}(...e))},startsWith(...e){return this.check(function(e,t){return new rt({check:"string_format",format:"starts_with",...W(t),prefix:e})}(...e))},endsWith(...e){return this.check(function(e,t){return new at({check:"string_format",format:"ends_with",...W(t),suffix:e})}(...e))},min(...e){return this.check(Pn(...e))},max(...e){return this.check(Nn(...e))},length(...e){return this.check(Rn(...e))},nonempty(...e){return this.check(Pn(1,...e))},lowercase(e){return this.check(function(e){return new nt({check:"string_format",format:"lowercase",...W(e)})}(e))},uppercase(e){return this.check(function(e){return new ot({check:"string_format",format:"uppercase",...W(e)})}(e))},trim(){return this.check(Un(e=>e.trim()))},normalize(...e){return this.check(function(e){return Un(t=>t.normalize(e))}(...e))},toLowerCase(){return this.check(Un(e=>e.toLowerCase()))},toUpperCase(){return this.check(Un(e=>e.toUpperCase()))},slugify(){return this.check(Un(e=>function(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}(e)))}})}),bo=O("ZodString",(e,t)=>{dt.init(e,t),go.init(e,t),e.email=t=>e.check(zn(So,t)),e.url=t=>e.check(En(xo,t)),e.jwt=t=>e.check(function(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...W(t)})}(Lo,t)),e.emoji=t=>e.check(function(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...W(t)})}(Eo,t)),e.guid=t=>e.check(xn(Oo,t)),e.uuid=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...W(t)})}(zo,t)),e.uuidv4=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...W(t)})}(zo,t)),e.uuidv6=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...W(t)})}(zo,t)),e.uuidv7=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...W(t)})}(zo,t)),e.nanoid=t=>e.check(function(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...W(t)})}(To,t)),e.guid=t=>e.check(xn(Oo,t)),e.cuid=t=>e.check(function(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...W(t)})}(Ao,t)),e.cuid2=t=>e.check(function(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...W(t)})}(Io,t)),e.ulid=t=>e.check(function(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...W(t)})}($o,t)),e.base64=t=>e.check(function(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...W(t)})}(jo,t)),e.base64url=t=>e.check(function(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...W(t)})}(Do,t)),e.xid=t=>e.check(function(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...W(t)})}(Co,t)),e.ksuid=t=>e.check(function(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...W(t)})}(No,t)),e.ipv4=t=>e.check(function(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...W(t)})}(Po,t)),e.ipv6=t=>e.check(function(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...W(t)})}(Ro,t)),e.cidrv4=t=>e.check(function(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...W(t)})}(Uo,t)),e.cidrv6=t=>e.check(function(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...W(t)})}(qo,t)),e.e164=t=>e.check(function(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...W(t)})}(Zo,t)),e.datetime=t=>e.check(Wn(t)),e.date=t=>e.check(Gn(t)),e.time=t=>e.check(Kn(t)),e.duration=t=>e.check(Qn(t))});function vo(e){return function(e,t){return new e({type:"string",...W(t)})}(bo,e)}var wo=O("ZodStringFormat",(e,t)=>{pt.init(e,t),go.init(e,t)}),So=O("ZodEmail",(e,t)=>{_t.init(e,t),wo.init(e,t)});function ko(e){return zn(So,e)}var Oo=O("ZodGUID",(e,t)=>{ft.init(e,t),wo.init(e,t)}),zo=O("ZodUUID",(e,t)=>{mt.init(e,t),wo.init(e,t)}),xo=O("ZodURL",(e,t)=>{ht.init(e,t),wo.init(e,t)});var Eo=O("ZodEmoji",(e,t)=>{yt.init(e,t),wo.init(e,t)}),To=O("ZodNanoID",(e,t)=>{gt.init(e,t),wo.init(e,t)}),Ao=O("ZodCUID",(e,t)=>{bt.init(e,t),wo.init(e,t)}),Io=O("ZodCUID2",(e,t)=>{vt.init(e,t),wo.init(e,t)}),$o=O("ZodULID",(e,t)=>{wt.init(e,t),wo.init(e,t)}),Co=O("ZodXID",(e,t)=>{St.init(e,t),wo.init(e,t)}),No=O("ZodKSUID",(e,t)=>{kt.init(e,t),wo.init(e,t)}),Po=O("ZodIPv4",(e,t)=>{Tt.init(e,t),wo.init(e,t)}),Ro=O("ZodIPv6",(e,t)=>{At.init(e,t),wo.init(e,t)}),Uo=O("ZodCIDRv4",(e,t)=>{It.init(e,t),wo.init(e,t)}),qo=O("ZodCIDRv6",(e,t)=>{$t.init(e,t),wo.init(e,t)}),jo=O("ZodBase64",(e,t)=>{Nt.init(e,t),wo.init(e,t)}),Do=O("ZodBase64URL",(e,t)=>{Pt.init(e,t),wo.init(e,t)}),Zo=O("ZodE164",(e,t)=>{Rt.init(e,t),wo.init(e,t)}),Lo=O("ZodJWT",(e,t)=>{Ut.init(e,t),wo.init(e,t)}),Mo=O("ZodNumber",(e,t)=>{qt.init(e,t),yo.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n)=>{const o=n,{minimum:i,maximum:r,format:a,multipleOf:s,exclusiveMaximum:u,exclusiveMinimum:l}=e._zod.bag;"string"==typeof a&&a.includes("int")?o.type="integer":o.type="number";const c="number"==typeof l&&l>=(i??Number.NEGATIVE_INFINITY),d="number"==typeof u&&u<=(r??Number.POSITIVE_INFINITY),p="draft-04"===t.target||"openapi-3.0"===t.target;c?p?(o.minimum=l,o.exclusiveMinimum=!0):o.exclusiveMinimum=l:"number"==typeof i&&(o.minimum=i),d?p?(o.maximum=u,o.exclusiveMaximum=!0):o.exclusiveMaximum=u:"number"==typeof r&&(o.maximum=r),"number"==typeof s&&(o.multipleOf=s)})(e,t,n),ho(e,"ZodNumber",{gt(e,t){return this.check(In(e,t))},gte(e,t){return this.check($n(e,t))},min(e,t){return this.check($n(e,t))},lt(e,t){return this.check(Tn(e,t))},lte(e,t){return this.check(An(e,t))},max(e,t){return this.check(An(e,t))},int(e){return this.check(Yo(e))},safe(e){return this.check(Yo(e))},positive(e){return this.check(In(0,e))},nonnegative(e){return this.check($n(0,e))},negative(e){return this.check(Tn(0,e))},nonpositive(e){return this.check(An(0,e))},multipleOf(e,t){return this.check(Cn(e,t))},step(e,t){return this.check(Cn(e,t))},finite(){return this}});const n=e._zod.bag;e.minValue=Math.max(n.minimum??Number.NEGATIVE_INFINITY,n.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(n.maximum??Number.POSITIVE_INFINITY,n.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(n.format??"").includes("int")||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function Fo(e){return function(e,t){return new e({type:"number",checks:[],...W(t)})}(Mo,e)}var Bo=O("ZodNumberFormat",(e,t)=>{jt.init(e,t),Mo.init(e,t)});function Yo(e){return function(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...W(t)})}(Bo,e)}var Jo=O("ZodBoolean",(e,t)=>{Dt.init(e,t),yo.init(e,t),e._zod.processJSONSchema=(e,t,n)=>((e,t,n)=>{n.type="boolean"})(0,0,t)});function Wo(e){return function(e,t){return new e({type:"boolean",...W(t)})}(Jo,e)}var Vo=O("ZodUnknown",(e,t)=>{Zt.init(e,t),yo.init(e,t),e._zod.processJSONSchema=(e,t,n)=>{}});function Go(){return new Vo({type:"unknown"})}var Ho=O("ZodNever",(e,t)=>{Lt.init(e,t),yo.init(e,t),e._zod.processJSONSchema=(e,t,n)=>((e,t,n)=>{n.not={}})(0,0,t)});function Ko(e){return function(e,t){return new e({type:"never",...W(t)})}(Ho,e)}var Xo=O("ZodArray",(e,t)=>{Ft.init(e,t),yo.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=n,r=e._zod.def,{minimum:a,maximum:s}=e._zod.bag;"number"==typeof a&&(i.minItems=a),"number"==typeof s&&(i.maxItems=s),i.type="array",i.items=Dn(r.element,t,{...o,path:[...o.path,"items"]})})(e,t,n,o),e.element=t.element,ho(e,"ZodArray",{min(e,t){return this.check(Pn(e,t))},nonempty(e){return this.check(Pn(1,e))},max(e,t){return this.check(Nn(e,t))},length(e,t){return this.check(Rn(e,t))},unwrap(){return this.element}})});function Qo(e,t){return function(e,t,n){return new e({type:"array",element:t,...W(n)})}(Xo,e,t)}var ei=O("ZodObject",(e,t)=>{Vt.init(e,t),yo.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=n,r=e._zod.def;i.type="object",i.properties={};const a=r.shape;for(const l in a)i.properties[l]=Dn(a[l],t,{...o,path:[...o.path,"properties",l]});const s=new Set(Object.keys(a)),u=new Set([...s].filter(e=>{const n=r.shape[e]._zod;return"input"===t.io?void 0===n.optin:void 0===n.optout}));u.size>0&&(i.required=Array.from(u)),"never"===r.catchall?._zod.def.type?i.additionalProperties=!1:r.catchall?r.catchall&&(i.additionalProperties=Dn(r.catchall,t,{...o,path:[...o.path,"additionalProperties"]})):"output"===t.io&&(i.additionalProperties=!1)})(e,t,n,o),R(e,"shape",()=>t.shape),ho(e,"ZodObject",{keyof(){return ci(Object.keys(this._zod.def.shape))},catchall(e){return this.clone({...this._zod.def,catchall:e})},passthrough(){return this.clone({...this._zod.def,catchall:Go()})},loose(){return this.clone({...this._zod.def,catchall:Go()})},strict(){return this.clone({...this._zod.def,catchall:Ko()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(e){return function(e,t){if(!M(t))throw new Error("Invalid input to extend: expected a plain object");const n=e._zod.def.checks;if(n&&n.length>0){const n=e._zod.def.shape;for(const e in t)if(void 0!==Object.getOwnPropertyDescriptor(n,e))throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return J(e,q(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return U(this,"shape",n),n}}))}(this,e)},safeExtend(e){return function(e,t){if(!M(t))throw new Error("Invalid input to safeExtend: expected a plain object");return J(e,q(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return U(this,"shape",n),n}}))}(this,e)},merge(e){return function(e,t){if(e._zod.def.checks?.length)throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");return J(e,q(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t._zod.def.shape};return U(this,"shape",n),n},get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]}))}(this,e)},pick(e){return function(e,t){const n=e._zod.def,o=n.checks;if(o&&o.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");return J(e,q(e._zod.def,{get shape(){const e={};for(const o in t){if(!(o in n.shape))throw new Error(`Unrecognized key: "${o}"`);t[o]&&(e[o]=n.shape[o])}return U(this,"shape",e),e},checks:[]}))}(this,e)},omit(e){return function(e,t){const n=e._zod.def,o=n.checks;if(o&&o.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");return J(e,q(e._zod.def,{get shape(){const o={...e._zod.def.shape};for(const e in t){if(!(e in n.shape))throw new Error(`Unrecognized key: "${e}"`);t[e]&&delete o[e]}return U(this,"shape",o),o},checks:[]}))}(this,e)},partial(...e){return function(e,t,n){const o=t._zod.def.checks;if(o&&o.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");return J(t,q(t._zod.def,{get shape(){const o=t._zod.def.shape,i={...o};if(n)for(const t in n){if(!(t in o))throw new Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=e?new e({type:"optional",innerType:o[t]}):o[t])}else for(const t in o)i[t]=e?new e({type:"optional",innerType:o[t]}):o[t];return U(this,"shape",i),i},checks:[]}))}(mi,this,e[0])},required(...e){return t=wi,n=this,o=e[0],J(n,q(n._zod.def,{get shape(){const e=n._zod.def.shape,i={...e};if(o)for(const n in o){if(!(n in i))throw new Error(`Unrecognized key: "${n}"`);o[n]&&(i[n]=new t({type:"nonoptional",innerType:e[n]}))}else for(const n in e)i[n]=new t({type:"nonoptional",innerType:e[n]});return U(this,"shape",i),i}}));var t,n,o}})});function ti(e,t){return new ei({type:"object",shape:e??{},...W(t)})}var ni=O("ZodUnion",(e,t)=>{Ht.init(e,t),yo.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def,r=!1===i.inclusive,a=i.options.map((e,n)=>Dn(e,t,{...o,path:[...o.path,r?"oneOf":"anyOf",n]}));r?n.oneOf=a:n.anyOf=a})(e,t,n,o),e.options=t.options});function oi(e,t){return new ni({type:"union",options:e,...W(t)})}var ii=O("ZodDiscriminatedUnion",(e,t)=>{ni.init(e,t),Kt.init(e,t)});function ri(e,t,n){return new ii({type:"union",options:t,discriminator:e,...W(n)})}var ai=O("ZodIntersection",(e,t)=>{Xt.init(e,t),yo.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def,r=Dn(i.left,t,{...o,path:[...o.path,"allOf",0]}),a=Dn(i.right,t,{...o,path:[...o.path,"allOf",1]}),s=e=>"allOf"in e&&1===Object.keys(e).length;n.allOf=[...s(r)?r.allOf:[r],...s(a)?a.allOf:[a]]})(e,t,n,o)});var si=O("ZodRecord",(e,t)=>{tn.init(e,t),yo.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=n,r=e._zod.def;i.type="object";const a=r.keyType,s=a._zod.bag?.patterns;if("loose"===r.mode&&s&&s.size>0){const e=Dn(r.valueType,t,{...o,path:[...o.path,"patternProperties","*"]});i.patternProperties={};for(const t of s)i.patternProperties[t.source]=e}else"draft-07"!==t.target&&"draft-2020-12"!==t.target||(i.propertyNames=Dn(r.keyType,t,{...o,path:[...o.path,"propertyNames"]})),i.additionalProperties=Dn(r.valueType,t,{...o,path:[...o.path,"additionalProperties"]});const u=a._zod.values;if(u){const e=[...u].filter(e=>"string"==typeof e||"number"==typeof e);e.length>0&&(i.required=e)}})(e,t,n,o),e.keyType=t.keyType,e.valueType=t.valueType});function ui(e,t,n){return t&&t._zod?new si({type:"record",keyType:e,valueType:t,...W(n)}):new si({type:"record",keyType:vo(),valueType:e,...W(t)})}var li=O("ZodEnum",(e,t)=>{nn.init(e,t),yo.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n)=>{const o=A(e._zod.def.entries);o.every(e=>"number"==typeof e)&&(n.type="number"),o.every(e=>"string"==typeof e)&&(n.type="string"),n.enum=o})(e,0,n),e.enum=t.entries,e.options=Object.values(t.entries);const n=new Set(Object.keys(t.entries));e.extract=(e,o)=>{const i={};for(const r of e){if(!n.has(r))throw new Error(`Key ${r} not found in enum`);i[r]=t.entries[r]}return new li({...t,checks:[],...W(o),entries:i})},e.exclude=(e,o)=>{const i={...t.entries};for(const t of e){if(!n.has(t))throw new Error(`Key ${t} not found in enum`);delete i[t]}return new li({...t,checks:[],...W(o),entries:i})}});function ci(e,t){return new li({type:"enum",entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...W(t)})}var di=O("ZodLiteral",(e,t)=>{on.init(e,t),yo.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n)=>{const o=e._zod.def,i=[];for(const r of o.values)if(void 0===r){if("throw"===t.unrepresentable)throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if("bigint"==typeof r){if("throw"===t.unrepresentable)throw new Error("BigInt literals cannot be represented in JSON Schema");i.push(Number(r))}else i.push(r);if(0===i.length);else if(1===i.length){const e=i[0];n.type=null===e?"null":typeof e,"draft-04"===t.target||"openapi-3.0"===t.target?n.enum=[e]:n.const=e}else i.every(e=>"number"==typeof e)&&(n.type="number"),i.every(e=>"string"==typeof e)&&(n.type="string"),i.every(e=>"boolean"==typeof e)&&(n.type="boolean"),i.every(e=>null===e)&&(n.type="null"),n.enum=i})(e,t,n),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function pi(e,t){return new di({type:"literal",values:Array.isArray(e)?e:[e],...W(t)})}var fi=O("ZodTransform",(e,t)=>{rn.init(e,t),yo.init(e,t),e._zod.processJSONSchema=(e,t,n)=>((e,t)=>{if("throw"===t.unrepresentable)throw new Error("Transforms cannot be represented in JSON Schema")})(0,e),e._zod.parse=(n,o)=>{if("backward"===o.direction)throw new x(e.constructor.name);n.addIssue=o=>{if("string"==typeof o)n.issues.push(te(o,n.value,t));else{const t=o;t.fatal&&(t.continue=!1),t.code??(t.code="custom"),t.input??(t.input=n.value),t.inst??(t.inst=e),n.issues.push(te(t))}};const i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n.fallback=!0,n)):(n.value=i,n.fallback=!0,n)}});var mi=O("ZodOptional",(e,t)=>{sn.init(e,t),yo.init(e,t),e._zod.processJSONSchema=(t,n,o)=>Yn(e,t,0,o),e.unwrap=()=>e._zod.def.innerType});function _i(e){return new mi({type:"optional",innerType:e})}var hi=O("ZodExactOptional",(e,t)=>{un.init(e,t),yo.init(e,t),e._zod.processJSONSchema=(t,n,o)=>Yn(e,t,0,o),e.unwrap=()=>e._zod.def.innerType});var yi=O("ZodNullable",(e,t)=>{ln.init(e,t),yo.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def,r=Dn(i.innerType,t,o),a=t.seen.get(e);"openapi-3.0"===t.target?(a.ref=i.innerType,n.nullable=!0):n.anyOf=[r,{type:"null"}]})(e,t,n,o),e.unwrap=()=>e._zod.def.innerType});function gi(e){return new yi({type:"nullable",innerType:e})}var bi=O("ZodDefault",(e,t)=>{cn.init(e,t),yo.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def;Dn(i.innerType,t,o),t.seen.get(e).ref=i.innerType,n.default=JSON.parse(JSON.stringify(i.defaultValue))})(e,t,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});var vi=O("ZodPrefault",(e,t)=>{pn.init(e,t),yo.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def;Dn(i.innerType,t,o),t.seen.get(e).ref=i.innerType,"input"===t.io&&(n._prefault=JSON.parse(JSON.stringify(i.defaultValue)))})(e,t,n,o),e.unwrap=()=>e._zod.def.innerType});var wi=O("ZodNonOptional",(e,t)=>{fn.init(e,t),yo.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def;Dn(i.innerType,t,o),t.seen.get(e).ref=i.innerType})(e,t,0,o),e.unwrap=()=>e._zod.def.innerType});var Si=O("ZodCatch",(e,t)=>{_n.init(e,t),yo.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def;let r;Dn(i.innerType,t,o),t.seen.get(e).ref=i.innerType;try{r=i.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}n.default=r})(e,t,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});var ki=O("ZodPipe",(e,t)=>{hn.init(e,t),yo.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def,r=i.in._zod.traits.has("$ZodTransform"),a="input"===t.io?r?i.out:i.in:i.out;Dn(a,t,o),t.seen.get(e).ref=a})(e,t,0,o),e.in=t.in,e.out=t.out});function Oi(e,t){return new ki({type:"pipe",in:e,out:t})}var zi=O("ZodReadonly",(e,t)=>{gn.init(e,t),yo.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def;Dn(i.innerType,t,o),t.seen.get(e).ref=i.innerType,n.readOnly=!0})(e,t,n,o),e.unwrap=()=>e._zod.def.innerType});var xi=O("ZodCustom",(e,t)=>{wn.init(e,t),yo.init(e,t),e._zod.processJSONSchema=(e,t,n)=>((e,t)=>{if("throw"===t.unrepresentable)throw new Error("Custom types cannot be represented in JSON Schema")})(0,e)});var Ei,Ti=ci(["CONSENT","SOFT_OPT_IN","TRANSACTIONAL_ONLY","UNKNOWN"]),Ai=ci(["MANUAL_UNSUB","ONE_CLICK_UNSUB","HARD_BOUNCE","COMPLAINT","ADMIN_BLOCK"]),Ii=ci(["BROADCAST","AUTOMATION"]),$i=ci(["ABANDONED_CART","POST_PURCHASE","WELCOME","WIN_BACK","RE_ENGAGEMENT","TAG_ADDED"]),Ci=(ti({email:ko(),name:vo().trim().min(1).nullable().optional(),customer_id:vo().uuid().nullable().optional(),tags:Qo(vo().trim().min(1)).default([]),consent_basis:Ti.default("UNKNOWN"),source:vo().trim().min(1).default("dashboard")}),ti({name:vo().trim().min(1),subject:vo().trim().min(1),preheader:vo().nullable().optional(),mjml_source:vo().trim().min(1),builder_project_json:ui(vo(),Go()).nullable().optional(),thumbnail_url:En(xo,Ei).nullable().optional()}),ti({mjml_source:vo().trim().min(1),sample_variables:ui(vo(),Go()).optional()}),ti({recipient_email:ko(),sample_variables:ui(vo(),Go()).optional()}),ti({marketing_enabled:Wo().optional(),default_from_name:vo().trim().min(1).nullable().optional(),default_from_email:ko().nullable().optional(),default_reply_to_email:ko().nullable().optional(),physical_address:vo().trim().min(1).nullable().optional(),physical_address_line2:vo().trim().min(1).nullable().optional(),physical_city:vo().trim().min(1).nullable().optional(),physical_postal_code:vo().trim().min(1).nullable().optional(),physical_country:vo().trim().length(2).nullable().optional(),daily_limit:Fo().int().positive().optional(),monthly_soft_cap:Fo().int().positive().optional()}),ti({type:Ii.default("BROADCAST"),name:vo().trim().min(1),subject:vo().trim().min(1),template_id:vo().uuid(),list_id:vo().uuid().nullable().optional(),segment_id:vo().uuid().nullable().optional(),from_name:vo().trim().min(1),from_email:ko(),reply_to_email:ko().nullable().optional(),schedule_at:vo().datetime().nullable().optional(),target_emails:Qo(ko()).max(0,"Direct recipient entry is disabled. Use lists or segments built from Shoppex customers and paid order buyers.").default([]),idempotency_key:vo().trim().min(1).nullable().optional()}),ti({name:vo().trim().min(1),subject:vo().trim().min(1),template_id:vo().uuid(),from_name:vo().trim().min(1),from_email:ko(),reply_to_email:ko().nullable().optional(),trigger:$i,delay_seconds:Fo().int().min(0).default(0),conditions:ui(vo(),Go()).default({})}),ti({trigger:$i,email:ko(),customer_id:vo().uuid().nullable().optional(),name:vo().trim().min(1).nullable().optional(),consent_basis:Ti.default("UNKNOWN"),variables:ui(vo(),Go()).default({}),idempotency_key:vo().trim().min(1).nullable().optional()}),ti({email:ko(),reason:Ai.default("ADMIN_BLOCK"),notes:vo().nullable().optional()}),["BITCOIN","LITECOIN","ETHEREUM","BITCOIN_CASH","MONERO","RIPPLE","TRON","SOLANA","POLYGON","BINANCE_COIN","CRONOS","CONCORDIUM","NANO","DOGECOIN","DASH"]),Ni=["NOWPAYMENTS","CRYPTOMUS","OXAPAY"],Pi=["NOWPAYMENTS_WHITELABEL"],Ri={USDT:["USDT_TRC20","USDT_ERC20","USDT_BEP20","USDT_POLYGON","USDT_SOL"],USDC:["USDC_ERC20","USDC_TRC20","USDC_BEP20","USDC_POLYGON","USDC_SOL"],DAI:["DAI_ERC20"]},Ui=Object.keys(Ri),qi=[...Ri.USDT,...Ri.USDC,...Ri.DAI],ji=[...Ci,...qi],Di=["BITCOIN_LN"],Zi=[...Ni,...Pi],Li=[...ji,...Di],Mi=ji,Fi=new Set(Ci),Bi=new Set(qi),Yi=(new Set(ji),new Set(Di),new Set(Ni),new Set(Pi),new Set(Zi),new Set(Li),new Set(Ui),new Set(["STRIPE","PAYPAL","PAYPAL_FF","MOLLIE","AUTHORIZENET","NMI","SQUARE","SUMUP","SHOPIFY","SUBY","PANDABASE","STORRIK","DEBLOMASSI","SHOPPEXPAY","MONEYMOTION","OVGC","WHOP","DODO","MAVERICK","CASHAPP","VENMO","CRYPTO","CUSTOMER_BALANCE","MANUAL"]),{CASHAPP:"CASH_APP",PAYPAL_CREDIT_CARD:"PAYPAL",EUTHEREUM:"ETHEREUM",USDT_MATIC:"USDT_POLYGON",USDC_MATIC:"USDC_POLYGON"});function Ji(e,t){if(new Set(t).size!==t.length)throw new Error(`${e} contains duplicate entries`)}Ji("COIN_GATEWAY_KEYS",Ci),Ji("TOKEN_GATEWAY_KEYS",qi),Ji("CRYPTO_GATEWAY_KEYS",ji),Ji("LEGACY_CRYPTO_GATEWAY_KEYS",Di),Ji("CRYPTO_PROVIDER_KEYS",Ni),Ji("MANAGED_CRYPTO_PROVIDER_KEYS",Pi),Ji("CRYPTO_PROVIDER_GATEWAY_KEYS",Zi),Ji("DEFAULT_NOWPAYMENTS_CRYPTO_GATEWAY_KEYS",Mi),Ji("DEFAULT_CRYPTOMUS_CRYPTO_GATEWAY_KEYS",["BITCOIN","LITECOIN","ETHEREUM","TRON","SOLANA","POLYGON","BINANCE_COIN","BITCOIN_CASH","MONERO","RIPPLE","DOGECOIN","USDT_TRC20","USDT_ERC20","USDT_BEP20","USDT_POLYGON","USDT_SOL","USDC_ERC20","USDC_BEP20","USDC_POLYGON","DAI_ERC20"]),Ji("DEFAULT_OXAPAY_CRYPTO_GATEWAY_KEYS",["BITCOIN","LITECOIN","ETHEREUM","TRON","SOLANA","POLYGON","BINANCE_COIN","BITCOIN_CASH","MONERO","RIPPLE","DOGECOIN","USDT_TRC20","USDT_ERC20","USDT_BEP20","USDT_POLYGON","USDC_ERC20"]);for(const Ku of ji)if(!Fi.has(Ku)&&!Bi.has(Ku))throw new Error(`CRYPTO_GATEWAY_KEYS contains an unclassified gateway: ${Ku}`);new Set(["STRIPE","PAYPAL","PAYPAL_FF","SKRILL","CASHAPP","CASH_APP","PERFECT_MONEY","SQUARE","SUMUP","SHOPIFY","SUBY","PANDABASE","STORRIK","DEBLOMASSI","SHOPPEXPAY","MONEYMOTION","OVGC","WHOP","DODO","MAVERICK","VENMO","MOLLIE","AUTHORIZENET","NMI"].map(e=>function(e){const t=e.trim();if(!t)return"";if(/^manual:/i.test(t)){const e=t.slice(t.indexOf(":")+1).trim();return e?`MANUAL:${e}`:"MANUAL"}let n=t.toUpperCase();const o=n.match(/^(USDT|USDC|DAI):([A-Z0-9_]+)$/);if(o){const[,e,t]=o;n=`${e}_${"MATIC"===t?"POLYGON":t}`}return Yi[n]??n}(e))),new Set(["WHITE_LABEL","NATIVE"]);var Wi=[...Zi,"NATIVE"],Vi=(new Set(Wi),ti({set:Wo()})),Gi=ti({status:ci(["READY","NEEDS_ATTENTION"]).optional(),code:vo().optional(),message:vo().optional(),checked_at:vo().optional()}),Hi=(ti({provider:vo(),type:vo(),enabled:Wo(),connected:Wo(),credentials:ui(vo(),Vi),public_config:ui(vo(),Go()),webhook:ui(vo(),Go()).optional(),health:Gi.optional()}),"#2563eb"),Ki=["comfortable","compact"],Xi=["top","side","background"],Qi=ci(["checkout","payment_link","embed"]),er=ci(["current","clean-light","clean-dark","v2","v3"]),tr=ci(Ki),nr=ci(["light","dark","system"]),or=ci(Xi),ir=ci(["ghost","outlined","filled"]),rr=ci(["sheet","fullscreen","center"]),ar=ci(["visible","hidden"]),sr=(ci(["checkout.shell","checkout.panel","checkout.header","brand.logo","product.card","product.image","product.title","product.description","product.price","product.quantity","product.addon","paymentLink.hero","summary.panel","summary.line","summary.total","form.field","form.label","form.help","coupon.input","input.base","input.error","button.primary","button.secondary","payment.methods","payment.method","payment.method.icon","payment.method.label","payment.method.meta","payment.method.fee","payment.method.indicator","payment.provider_widget","payment.loading","payment.error","payment.warning","legal.terms","status.success","status.processing","embed.launcher","embed.launcher.icon","embed.productCard","embed.productCard.image","embed.productCard.title","embed.productCard.price","embed.cart","embed.cart.row","embed.cart.summary","embed.modal","embed.modal.header","embed.modal.close","embed.skeleton","embed.loader","embed.branding"]),ci(["product.title","product.price","summary.total","payment.method.label","payment.provider_widget","payment.loading","payment.error","payment.warning","legal.terms","status.success","status.processing","embed.modal.close","embed.branding"]),vo().regex(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/,"Use a valid hex color")),ur=vo().trim().min(1).max(200).refine(e=>!/[;{}]|@import|expression\s*\(/i.test(e),"Use a valid CSS color or gradient"),lr=vo().trim().min(1).max(400).refine(e=>!/[;{}]|@import|expression\s*\(/i.test(e),"Use a valid CSS box-shadow value"),cr=ci(["Inter","Geist","Manrope","Plus Jakarta Sans","DM Sans","Space Grotesk","Sora","IBM Plex Sans","JetBrains Mono","Arial","System UI"]),dr=vo().trim().min(1).max(60).regex(/^[A-Za-z0-9 +\-_]+$/,"Use a Google Fonts family name"),pr=vo().url(),fr=ti({brand:ti({logoUrl:pr.optional().nullable(),logoDarkUrl:pr.optional().nullable(),logoMaxHeight:Fo().int().min(16).max(80).optional(),faviconUrl:pr.optional().nullable()}).strict().optional(),color:ti({brand:sr.optional(),brandContrast:sr.optional(),background:sr.optional(),surface:sr.optional(),surfaceRaised:sr.optional(),text:sr.optional(),textMuted:sr.optional(),border:sr.optional(),focus:sr.optional(),success:sr.optional(),warning:sr.optional(),error:sr.optional()}).strict().optional(),typography:ti({fontFamily:cr.optional(),googleFontFamily:dr.optional(),baseSize:Fo().int().min(12).max(18).optional()}).strict().optional(),shape:ti({buttonRadius:Fo().int().min(0).max(24).optional(),inputRadius:Fo().int().min(0).max(24).optional(),cardRadius:Fo().int().min(0).max(28).optional()}).strict().optional(),spacing:ti({density:tr.optional(),controlHeight:Fo().int().min(36).max(56).optional()}).strict().optional(),component:ti({primaryButton:ti({background:sr.optional(),text:sr.optional()}).strict().optional(),input:ti({background:sr.optional(),border:sr.optional(),focusRing:ur.optional()}).strict().optional(),summary:ti({background:sr.optional()}).strict().optional(),paymentMethod:ti({background:ur.optional(),cardBackground:ur.optional(),border:ur.optional(),selectedBackground:ur.optional()}).strict().optional(),productCard:ti({background:ur.optional(),border:ur.optional(),shadow:lr.optional()}).strict().optional(),productImage:ti({background:ur.optional(),border:ur.optional(),icon:ur.optional()}).strict().optional(),brandAvatar:ti({background:ur.optional(),text:sr.optional(),border:ur.optional()}).strict().optional(),pill:ti({background:ur.optional(),border:ur.optional(),text:sr.optional()}).strict().optional(),errorBanner:ti({background:ur.optional(),border:ur.optional(),text:sr.optional()}).strict().optional(),warningBanner:ti({background:ur.optional(),border:ur.optional(),text:sr.optional()}).strict().optional(),radio:ti({idleRing:ur.optional(),checkedFill:sr.optional(),checkedIcon:sr.optional()}).strict().optional(),divider:ti({color:ur.optional()}).strict().optional()}).strict().optional(),paymentLink:ti({heroImageUrl:pr.optional().nullable(),heroPosition:or.optional()}).strict().optional(),embed:ti({launcher:ti({background:ur.optional(),text:sr.optional(),radius:Fo().int().min(0).max(28).optional(),paddingX:Fo().int().min(8).max(32).optional(),paddingY:Fo().int().min(6).max(24).optional(),shadow:lr.optional()}).strict().optional(),productCard:ti({background:ur.optional(),border:ur.optional(),imageRadius:Fo().int().min(0).max(24).optional(),padding:Fo().int().min(8).max(32).optional()}).strict().optional(),cart:ti({background:ur.optional(),rowBorder:ur.optional(),itemSpacing:Fo().int().min(4).max(28).optional()}).strict().optional(),modal:ti({background:ur.optional(),radius:Fo().int().min(0).max(32).optional(),maxWidth:Fo().int().min(360).max(960).optional(),shadow:lr.optional()}).strict().optional(),backdrop:ti({color:ur.optional(),blur:Fo().int().min(0).max(24).optional(),opacity:Fo().min(0).max(1).optional()}).strict().optional(),skeleton:ti({background:ur.optional(),shimmer:ur.optional()}).strict().optional(),spinner:ti({color:ur.optional()}).strict().optional(),closeButton:ti({style:ir.optional()}).strict().optional(),mobile:ti({layout:rr.optional()}).strict().optional(),content:ti({productDescription:ar.optional(),termsShortcut:ar.optional()}).strict().optional()}).strict().optional()}).strict(),mr=ti({mode:nr.default("system"),fontSource:ci(["curated"]).default("curated")}).strict(),_r=ci(["standalone","bundle","pointer"]),hr=ti({name:vo().trim().min(1).max(80),fingerprint:vo().trim().min(1).max(128)}).strict(),yr=ti({type:pi("shoppex.style_theme"),surface:pi("checkout"),format_version:oi([pi(1),pi(2)]),name:vo().trim().min(1).max(80),description:vo().trim().max(240).optional(),embed_design:er.default("current"),token_schema_version:pi(1),tokens:fr.default({}),custom_css:vo().max(2e4).default(""),settings:mr.default({mode:"system",fontSource:"curated"}),_meta:ui(vo(),Go()).optional()}).strict(),gr=(ti({type:pi("shoppex.style_theme"),surface:Qi,format_version:oi([pi(1),pi(2)]),name:vo().trim().min(1).max(80),description:vo().trim().max(240).optional(),embed_design:er.default("current"),token_schema_version:pi(1),tokens:fr.default({}),custom_css:vo().max(2e4).default(""),settings:mr.default({mode:"system",fontSource:"curated"}),share_mode:_r.default("standalone"),parent_hint:hr.optional(),bundled_parent:yr.optional(),_meta:ui(vo(),Go()).optional()}).strict(),ti({theme_id:vo().uuid().nullable(),surface:Qi,embed_design:er,token_schema_version:pi(1),revision:Fo().int().min(1),tokens:fr,custom_css:vo(),css_variables:ui(vo(),vo())}).strict(),ti({theme_id:vo().uuid().nullable(),parent_theme_id:vo().uuid().nullable(),surface:pi("embed"),embed_design:er,token_schema_version:pi(1),revision:Fo().int().min(1),parent_revision:Fo().int().min(1).nullable(),tokens:fr,custom_css:vo(),css_variables:ui(vo(),vo())}).strict(),ti({shop_id:vo().uuid(),product_id:vo().uuid().nullable(),product_group_id:vo().uuid().nullable(),payment_link_id:vo().uuid().nullable(),invoice_id:vo().nullable()}).strict(),ti({embed_runtime:vo().min(16).max(128),embed_design:er,revision:Fo().int().min(1),parent_revision:Fo().int().min(1).nullable(),theme_id:vo().uuid().nullable(),css_variables:ui(vo(),vo()),custom_css:vo()}).strict(),ti({embed_design:er.optional(),embed_style_revision:function(e){return function(e,t){return new e({type:"number",coerce:!0,checks:[],...W(t)})}(Mo,e)}().int().min(1).optional(),embed_runtime:vo().min(16).max(128).optional(),preview:Wo().optional()}).strict(),ci(["announcement_bar","countdown_bar","promo_info_card","recent_purchase_popup","coupon_popup_modal","live_chat"]),ci(["layout.header.before","layout.header.after","layout.overlay","home.hero.after","home.grid.before","product.buybox.after","layout.footer.before","floating.bottom_right"])),br=(ci(["announcement_bar","countdown_bar","promo_info_card","recent_purchase_popup","coupon_popup_modal","live_chat"]),vo().regex(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/,"Use a valid hex color")),vr=ci(["static","marquee"]),wr=ci(["brand_blue","emerald","sunset","rose","charcoal","custom"]),Sr=ci(["hide","message"]),kr=ci(["compact","comfortable"]),Or=ci(["subtle","outline","solid"]),zr=ci(["minimal","boxed"]),xr=ci(["indigo","emerald","amber","rose","slate","custom"]),Er=ci(["compact","feature","alert"]),Tr=ci(["compact","comfortable"]),Ar=ci(["subtle","outline","solid"]),Ir=ci(["sparkles","megaphone","gift","truck","shield","support","none"]),$r=ci(["show","hide"]),Cr=ci(["midnight","ocean","ember","forest","custom"]),Nr=ci(["delay","exit_intent"]),Pr=vo().trim().refine(e=>{if(e.startsWith("/"))return!0;try{const t=new URL(e);return"http:"===t.protocol||"https:"===t.protocol}catch{return!1}},'Use a valid absolute URL or a path starting with "/"'),Rr=vo().trim().refine(e=>{const t=new Date(e);return!Number.isNaN(t.getTime())},"Use a valid date and time"),Ur=ti({text:vo().trim().min(1,"Text is required").max(160,"Text must be 160 characters or fewer"),linkLabel:vo().trim().max(32,"Link label must be 32 characters or fewer").optional().nullable(),linkUrl:Pr.optional().nullable(),dismissible:Wo().default(!1),displayMode:vr.default("marquee"),themePreset:wr.default("custom"),animationSpeedSeconds:Fo().int().min(8).max(40).default(30),backgroundColor:br.default("#111827"),textColor:br.default("#f9fafb")}),qr=ti({text:vo().trim().min(1,"Text is required").max(120,"Text must be 120 characters or fewer"),endAt:Rr,linkLabel:vo().trim().max(32,"Link label must be 32 characters or fewer").optional().nullable(),linkUrl:Pr.optional().nullable(),dismissible:Wo().default(!1),themePreset:wr.default("brand_blue"),expiredBehavior:Sr.default("hide"),expiredMessage:vo().trim().max(120,"Expired message must be 120 characters or fewer").optional().nullable(),density:kr.default("compact"),ctaStyle:Or.default("subtle"),timerStyle:zr.default("boxed"),backgroundColor:br.default("#111827"),textColor:br.default("#f9fafb")}),jr=ti({eyebrow:vo().trim().max(32,"Eyebrow must be 32 characters or fewer").optional().nullable(),title:vo().trim().min(1,"Title is required").max(80,"Title must be 80 characters or fewer"),body:vo().trim().min(1,"Body is required").max(240,"Body must be 240 characters or fewer"),linkLabel:vo().trim().max(32,"Link label must be 32 characters or fewer").optional().nullable(),linkUrl:Pr.optional().nullable(),themePreset:xr.default("indigo"),layoutStyle:Er.default("feature"),density:Tr.default("comfortable"),ctaStyle:Ar.default("outline"),icon:Ir.default("sparkles"),iconVisibility:$r.default("show"),backgroundColor:br.default("#111827"),textColor:br.default("#f9fafb"),accentColor:br.default("#818cf8")}),Dr=ti({title:vo().trim().min(1,"Title is required").max(80,"Title must be 80 characters or fewer").default("Recent purchases"),lookbackHours:Fo().int().min(1).max(168).default(24),cooldownSeconds:Fo().int().min(5).max(300).default(20),maxItems:Fo().int().min(1).max(20).default(8),anonymizeMode:ci(["first_name_city","first_name_country","initial_country","anonymous"]).default("first_name_city"),includedProductIds:Qo(vo().min(1)).max(50).default([])}),Zr=ti({eyebrow:vo().trim().max(32,"Eyebrow must be 32 characters or fewer").optional().nullable(),title:vo().trim().min(1,"Title is required").max(80,"Title must be 80 characters or fewer"),body:vo().trim().min(1,"Body is required").max(240,"Body must be 240 characters or fewer"),couponCode:vo().trim().min(2,"Coupon code is required").max(40,"Coupon code must be 40 characters or fewer"),primaryButtonLabel:vo().trim().min(1,"Primary button label is required").max(24,"Primary button label must be 24 characters or fewer").default("Copy code"),secondaryButtonLabel:vo().trim().min(1,"Secondary button label is required").max(24,"Secondary button label must be 24 characters or fewer").default("Maybe later"),disclaimer:vo().trim().max(100,"Disclaimer must be 100 characters or fewer").optional().nullable(),themePreset:Cr.default("midnight"),trigger:Nr.default("delay"),delaySeconds:Fo().int().min(0).max(60).default(6),showOncePerSession:Wo().default(!0),reminderHours:Fo().int().min(1).max(720).default(24),backgroundColor:br.default("#111827"),textColor:br.default("#f8fafc"),accentColor:br.default("#7c9cff"),heroImageUrl:Pr.optional().nullable(),discountDisplay:vo().trim().max(24,"Discount display must be 24 characters or fewer").optional().nullable(),expiresAt:Rr.optional().nullable()}),Lr=ci(["hidden","optional"]),Mr=ti({headline:vo().trim().min(1,"Headline is required").max(60,"Headline must be 60 characters or fewer").default("Chat with us"),greeting:vo().trim().min(1,"Greeting is required").max(240,"Greeting must be 240 characters or fewer").default("Hi! Send us a message and we will reply as soon as possible."),inputPlaceholder:vo().trim().min(1,"Placeholder is required").max(80,"Placeholder must be 80 characters or fewer").default("Type your message…"),contactFields:Lr.default("optional"),accentColor:br.default("#111827"),launcherIconColor:br.default("#f9fafb")}),Fr=ti({type:pi("announcement_bar"),slot:gr,enabled:Wo().default(!0),sortOrder:Fo().int().min(0).max(999).default(0),config:Ur}),Br=ti({type:pi("recent_purchase_popup"),slot:gr,enabled:Wo().default(!0),sortOrder:Fo().int().min(0).max(999).default(0),config:Dr}),Yr=ti({type:pi("countdown_bar"),slot:gr,enabled:Wo().default(!0),sortOrder:Fo().int().min(0).max(999).default(0),config:qr}),Jr=ti({type:pi("promo_info_card"),slot:gr,enabled:Wo().default(!0),sortOrder:Fo().int().min(0).max(999).default(0),config:jr}),Wr=ti({type:pi("coupon_popup_modal"),slot:gr,enabled:Wo().default(!0),sortOrder:Fo().int().min(0).max(999).default(0),config:Zr}),Vr=ti({type:pi("live_chat"),slot:gr,enabled:Wo().default(!0),sortOrder:Fo().int().min(0).max(999).default(0),config:Mr}),Gr=(ri("type",[Fr,Yr,Jr,Br,Wr,Vr]),ri("type",[Fr.extend({id:vo().min(1)}),Yr.extend({id:vo().min(1)}),Jr.extend({id:vo().min(1)}),Br.extend({id:vo().min(1)}),Wr.extend({id:vo().min(1)}),Vr.extend({id:vo().min(1)})]),new Set(["amount","currency","invoice_id","customer_email","id","email","price","price_usd","product_name","quantity"].map(e=>e.toLowerCase())),ui(vo(),Go())),Hr=oi([vo(),Fo()]),Kr=ti({kind:ci(["address","redirect","embed_pending"]),gateway:vo(),checkout_url:vo().nullable().optional(),address:vo().optional(),amount:vo().optional(),qr_code:vo().optional(),expires_at:vo().optional(),payment_id:vo().optional(),confirmations_needed:Fo().optional()}).passthrough(),Xr=(ti({data:ti({invoice:ti({uniqid:vo().uuid()}).passthrough(),invoice_url:vo().nullable(),checkout_url:vo().nullable(),selected_gateway:vo().nullable(),session_started:Wo(),payment_session:Kr.nullable(),completion_access_grant:vo().nullable()}).passthrough()}).passthrough(),ti({default_value:vo().optional(),min_length:Fo().optional(),name:vo(),placeholder:vo().optional(),regex:vo().optional(),required:Wo(),type:vo()})),Qr=ti({id:vo(),price:Fo(),quantity:Fo(),title:vo()}),ea=ti({addons:Qo(Qr).optional(),available_addons:Qo(Go()).optional(),cloudflare_image_id:vo().nullable(),created_at:vo().optional(),currency:vo(),custom_fields:Gr.nullable().optional(),custom_fields_config:Qo(Xr).nullable().optional(),delivery_instruction:Go().optional(),delivery_instruction_config:Go().optional(),delivery_instruction_label:Go().optional(),delivery_text:vo().nullable().optional(),delivery_time:Fo().optional(),description:vo().nullable(),discount_percent:Fo().optional(),discount_display:Fo().optional(),discounted_total_display:Fo().optional(),gateways:Qo(vo()).nullable().optional(),id:vo().optional(),image_name:vo().nullable(),image_storage:vo().optional(),line_item_id:vo().nullable().optional(),pay_what_you_want:Wo().optional(),price:vo().optional(),price_display:Hr,quantity:Fo(),quantity_max:Fo().optional(),quantity_min:Fo().optional(),recurring_interval:vo().nullable().optional(),recurring_interval_count:Fo().nullable().optional(),redirect_link:vo().nullable().optional(),redirect_time:Fo().nullable().optional(),service_text:vo().nullable().optional(),setup_cost:vo().optional(),slug:vo().nullable().optional(),storefront_url:vo().nullable().optional(),status:vo().nullable().optional(),subtype:vo().nullable().optional(),terms_of_service:vo().nullable().optional(),title:vo(),total:Fo(),trial_period:Fo().nullable().optional(),type:vo().nullable().optional(),uniqid:vo().nullable(),unit_price:Fo().optional(),unit_price_display:Hr.optional(),unit_quantity:Fo(),updated_at:vo().optional(),variant_title:vo().nullable().optional(),video_link:vo().nullable().optional(),volume_discounts:Go().optional(),warranty_days:Fo().nullable().optional(),warranty_text:vo().nullable().optional()}),ta=ti({amount:Fo(),gateway:vo()}),na=ti({custom_tip_enabled:Wo().optional(),enabled:Wo(),preset_percentages:Qo(Fo()).optional()}),oa=ti({allow_partial_payment:Wo().optional(),auto_apply:Wo().optional(),available:vo(),currency:vo()}),ia=ti({affiliate_code:vo().nullable().optional(),already_paid:Hr.nullable().optional(),amount_due:Hr.nullable().optional(),currency:vo().nullable().optional(),discount:Hr.nullable().optional(),discount_label:vo().nullable().optional(),gateway_fee:Hr.nullable().optional(),platform_fee:Hr.nullable().optional(),subtotal:Hr.nullable().optional(),tip:Hr.nullable().optional(),total:Hr.nullable().optional()}),ra=ti({active:Wo(),expires_at:vo()}),aa=ti({faq_url:vo().nullable(),support_email:vo().nullable(),support_url:vo().nullable(),telegram_invite:vo().nullable()}),sa=ti({currency:vo().nullable().optional(),enabled:Wo(),max_amount:Fo().nullable().optional(),min_amount:Fo().nullable().optional(),reason:ci(["BELOW_MIN_AMOUNT","ABOVE_MAX_AMOUNT"]).nullable().optional()}),ua=ti({delivered_items:Qo(Go()),downloads:Qo(Go()),external_urls:Qo(Go()),license_keys:Qo(Go()),tracking_codes:Qo(Go())}),la=ti({active:Wo().optional(),attempt_id:vo().optional(),buyer_actionable:Wo().nullable().optional(),crypto_currency:vo().nullable().optional(),currency:vo().optional(),expected_amount:vo().nullable().optional(),expected_crypto_amount:vo().nullable().optional(),last_checked_at:vo().optional(),missing_amount:vo().nullable().optional(),missing_crypto_amount:vo().nullable().optional(),provider_reference:vo().nullable().optional(),provider_status:vo().nullable().optional(),received_amount:vo().nullable().optional(),received_crypto_amount:vo().nullable().optional(),shortfall_percent:vo().nullable().optional()}),ca=ti({created_at:vo().nullable(),details:vo().nullable(),id:vo(),invoice_id:vo(),status:vo().nullable()}),da=ti({billing_address_mode:ci(["INHERIT","REQUIRED","DISABLED"]).optional(),button_label:vo().nullable().optional(),display_name:vo().nullable().optional(),gateway:vo(),hide_provider_attribution:Wo().optional(),icon_url:vo().nullable().optional(),terms_mode:ci(["INHERIT","REQUIRED","DISABLED"]).optional()}),pa=ti({custom_fields:Qo(Go()).optional(),description:vo().nullable(),display_order:Fo(),icon_preset:vo().nullable(),icon_url:vo().nullable(),id:vo(),instructions:vo().nullable(),is_active:Wo().optional(),name:vo(),payment_type:ci(["INSTRUCTIONS","REDIRECT"]),redirect_url:vo().nullable(),require_proof:Wo(),proof_type:ci(["TEXT","IMAGE","BOTH"]).optional(),void_after_hours:Fo()}),fa=ti({email:ti({masked:vo().nullable(),persisted:Wo(),required_for_provider_session:Wo().optional()})}),ma=ti({amount:vo().nullable(),confirmations:Fo().nullable(),created_at:Fo().optional(),hash:vo().nullable(),status:vo().optional()}),_a=ti({conf:ti({partial:Fo().optional(),void:Fo(),waiting_for_confirmations:Fo().optional()}),gateways:Qo(vo())}),ha=ti({invoice_payable:Wo(),resumable:Wo(),resumable_gateway:vo().nullable(),gateway:vo().nullable().optional(),crypto_gateway:vo().nullable().optional(),processor:vo().nullable().optional(),flow_type:vo().nullable().optional(),status:vo().nullable().optional(),provider_reference:vo().nullable().optional(),provider_reference_type:vo().nullable().optional(),capture_id:vo().nullable().optional(),manual_confirmation_pending:Wo().optional(),payment_method_switch_locked:Wo().optional(),awaiting_payment_method:Wo().optional(),started_at:Fo().nullable().optional(),completed_at:Fo().nullable().optional()}),ya=(ti({already_paid_amount:Hr.nullable().optional(),apm_method:vo().nullable().optional(),blockchain:vo().nullable(),buyer_identity:fa.nullable().optional(),checkout_tipping:na.nullable().optional(),country_regulations:vo().nullable().optional(),coupon_applied:Wo().optional(),crypto_mode:vo().nullable().optional(),crypto_transactions:Qo(ma).optional(),currency:vo().nullable(),custom_fields:Gr.nullable().optional(),custom_gateways:Qo(pa).optional(),customer_balance:oa.nullable().optional(),customer_email_masked:vo().nullable().optional(),dark_mode:oi([pi(0),pi(1)]).optional(),delivery:ua.optional(),delivery_info:ua.optional(),discount:Fo().optional(),discount_display:Hr.optional(),eligible_gateways:Qo(vo()).optional(),environment:vo().optional(),fee_breakdown:Gr.nullable().optional(),gateway:vo().nullable(),gateway_data:Gr.nullable().optional(),gateway_eligibility:ui(vo(),sa).optional(),gateway_fee_previews:Qo(ta).optional(),gateways_available:Qo(vo()),license:oi([Gr,pi(!1)]).optional(),name:vo().nullable(),paddle_token:vo().nullable().optional(),paddle_transaction_id:Go().optional(),payment_link_id:vo().nullable().optional(),payment_method_overrides:Qo(da).optional(),payment_session_state:ha.nullable().optional(),polling:ra,pricing_breakdown:ia.nullable().optional(),product:Qo(ea).optional(),quantity:Fo().nullable(),rates_snapshot:ui(vo(),Fo()).optional(),remaining_amount:Hr.nullable().optional(),selected_gateway:vo().nullable().optional(),shop_checkout_ambient_color:vo().nullable().optional(),shop_cloudflare_image_id:vo().nullable(),shop_domain:vo().nullable().optional(),shop_force_paypal_email_delivery:oi([pi(0),pi(1)]).optional(),shop_image_name:vo().nullable(),shop_image_storage:vo().nullable().optional(),shop_payment_gateways_fees:Qo(Gr).optional(),shop_paypal_credit_card:oi([pi(0),pi(1)]).optional(),shop_return_url:vo().nullable().optional(),shop_slug:vo().nullable().optional(),shop_terms_enabled:Wo().optional(),shop_terms_of_service:vo().nullable().optional(),shop_terms_url:vo().nullable().optional(),shop_privacy_policy_url:vo().nullable().optional(),shop_refund_policy_url:vo().nullable().optional(),shop_walletconnect_id:vo().nullable().optional(),status:vo().nullable(),status_history:Qo(ca).optional(),status_history_legacy:Qo(ca).optional(),status_history_raw:Qo(ca).optional(),stripe_publishable_key:vo().nullable().optional(),stripe_user_id:vo().nullable().optional(),subtotal:Fo().optional(),subtype:vo().nullable().optional(),support:aa.optional(),theme:vo().optional(),tip_amount:Hr.nullable().optional(),tip_amount_display:Hr.nullable().optional(),tip_metadata:Go().optional(),total:Hr,total_conversions:Gr.optional(),total_display:Hr,type:vo().nullable(),underpayment:la.nullable().optional(),underpayment_status:vo().nullable().optional(),uniqid:vo(),void_times:Qo(_a).optional(),addons:Go().optional(),affiliate_data:Go().optional(),affiliate_revenue_customer_id:vo().nullable().optional(),bill_info:Go().optional(),binance_checkout_url:vo().nullable().optional(),binance_invoice_id:vo().nullable().optional(),binance_qrcode:vo().nullable().optional(),bundle_config:Go().optional(),bundles:Go().optional(),cashapp_cashtag:vo().nullable().optional(),cashapp_note:vo().nullable().optional(),cashapp_qrcode:vo().nullable().optional(),created_at:vo().optional(),crypto_address:vo().nullable().optional(),crypto_amount:Hr.optional(),crypto_confirmations_needed:Fo().nullable().optional(),crypto_exchange_rate:Hr.nullable().optional(),crypto_received:Hr.optional(),crypto_uri:vo().nullable().optional(),developer_invoice:Go().optional(),developer_return_url:vo().nullable().optional(),developer_title:vo().nullable().optional(),exchange_rate:Hr.nullable().optional(),external_order_id:vo().nullable().optional(),lex_order_id:vo().nullable().optional(),lex_payment_method:vo().nullable().optional(),paydash_payment_id:vo().nullable().optional(),paypal_apm:vo().nullable().optional(),paypal_email_delivery:Wo().optional(),paypal_fee:Hr.nullable().optional(),paypal_order_id:vo().nullable().optional(),paypal_payer_email:vo().nullable().optional(),paypal_subscription_id:vo().nullable().optional(),paypal_subscription_link:vo().nullable().optional(),perfectmoney_id:vo().nullable().optional(),product_addons:Go().optional(),product_id:vo().nullable().optional(),product_title:vo().nullable().optional(),product_type:vo().nullable().optional(),product_variants:Go().optional(),recurring_billing_id:vo().nullable().optional(),skrill_link:vo().nullable().optional(),skrill_sid:vo().nullable().optional(),status_details:Go().optional(),stripe_apm:vo().nullable().optional(),stripe_client_secret:vo().nullable().optional(),stripe_id:vo().nullable().optional(),stripe_price_id:vo().nullable().optional(),subscription:Go().optional(),subscription_id:vo().nullable().optional(),sumup_id:vo().nullable().optional(),telegram_stars_payment_link:vo().nullable().optional(),telegram_stars_payment_note:vo().nullable().optional(),updated_at:vo().optional(),virtual_payments_id:vo().nullable().optional(),void_details:Go().optional()}).catchall(Go()),vo().nullable()),ga=ui(vo(),Go()),ba=ti({logo_url:ya,primary_color:vo(),secondary_color:vo(),accent_color:vo()}),va=ti({attachment_image_id:ti({cloudflare_image_id:ya}).nullable()}),wa=ti({attachment_imageId:ti({cloudflareImageId:ya}).nullable()}),Sa=ti({uniqid:vo(),status:vo(),total:vo(),total_display:ya,currency:vo(),created_at:vo(),line_items:Qo(ti({product_title:ya,quantity:Fo(),product:va.nullable()}))}),ka=ti({uniqid:vo(),status:vo(),total:vo(),totalDisplay:ya,currency:vo(),createdAt:vo(),lineItems:Qo(ti({productTitle:ya,quantity:Fo(),product:wa.nullable()}))}),Oa=(ti({invoices:Qo(ka),pagination:ti({page:Fo(),limit:Fo(),total:Fo(),has_more:Wo()})}),ti({gateway:vo(),cryptoGateway:ya.optional(),blockchain:ya,cryptoAddress:ya,apmMethod:ya})),za=(ti({id:vo(),uniqid:vo(),status:vo(),statusDetails:ya,total:vo(),totalDisplay:ya,subtotal:vo(),discount:vo(),discountDisplay:ya,tax:vo(),taxPercentage:vo(),currency:vo(),createdAt:vo(),updatedAt:vo(),gatewayUpdatedAt:ya,customFields:ga.nullable(),balancePaidAmount:vo(),currentPaymentAttemptId:ya,lineItems:Qo(ti({id:vo(),productTitle:vo(),productType:vo(),variantTitle:ya,unitPrice:vo(),quantity:Fo(),total:vo(),deliveryText:ya,deliverySummary:ti({codes:Qo(vo()),links:Qo(ti({label:vo(),value:vo(),href:ya.optional()})),notes:Qo(vo()),serials:Qo(ti({value:vo(),is_replacement:Wo(),is_replaced:Wo()}))}).nullable(),deliveredAt:ya,customFields:ga.nullable(),product:ti({uniqid:vo(),slug:ya,serviceText:ya,attachment_imageId:ti({cloudflareImageId:ya}).nullable()}).nullable()})),currentPayment:Oa.nullable(),payments:Qo(Oa)}),ti({quote:ti({enabled:Wo(),currency:vo(),min_amount:vo(),max_amount:ya,bonus_tiers:Qo(ti({min_amount:vo(),bonus_percent:Fo()}))})}),ti({invoice_id:vo(),url:vo()}),ti({id:vo(),type:vo(),status:vo(),amount:ya,currency:ya,coupon_code:ya,reason:vo(),trigger_reference_type:vo(),trigger_reference_id:vo(),created_at:Fo(),fulfilled_at:Fo().nullable(),expires_at:Fo().nullable()})),xa=ti({summary:ti({available:vo(),pending:vo(),lifetime_earned:vo(),redeemed:ya,currency:vo()}),activity:Qo(za),earned_after_invoice:Qo(za),pending_after_invoice:Qo(za)}),Ea=ti({id:vo(),uniqid:vo(),label:ya,code:vo(),url:ya,status:ci(["pending","active","inactive","rejected"]),is_primary:Wo(),total_clicks:Fo(),total_sales:Fo(),total_revenue:vo(),is_active:Wo(),is_approved:Wo(),requested_affiliate_revenue_percent:Fo().nullable(),requested_affiliate_customer_discount_percent:Fo().nullable(),affiliate_revenue_percent_override:Fo().nullable(),affiliate_customer_discount_percent_override:Fo().nullable(),effective_commission_percent:Fo(),effective_customer_discount_percent:Fo(),commission_shareback_percent:Fo(),commission_shareback_enabled:Wo(),max_commission_shareback_percent:Fo(),created_at:ya,updated_at:ya}),Ta=ti({customer:ti({id:vo(),email:vo(),name:ya}).nullable(),state:vo(),can_create_custom_links:Wo(),custom_link_request_disabled_reason:ya,custom_links_require_approval:Wo(),affiliate_codes_accepted_at_checkout:Wo(),cash_payout_enabled:Wo(),links:Qo(Ea),preferred_payout:ti({asset:vo(),network:vo(),address:vo()}).nullable(),balance_currency:vo(),balances:ti({pending:vo(),available:vo(),requested:vo(),converted:vo(),paid:vo(),approved_total:vo()}),commissions:Qo(ti({id:vo(),invoice_id:vo(),commission_amount:vo(),base_amount:vo(),discount_amount:vo(),status:vo(),created_at:ya,paid_at:ya,converted_at:ya})),claims:Qo(ti({id:vo(),type:vo(),status:vo(),amount:vo(),currency:vo(),allocations:Qo(ti({source_type:vo(),commission_id:ya,adjustment_id:ya,amount:vo()})),wallet_transaction_id:ya,payout_asset:ya,payout_network:ya,payout_address:ya,note:ya,metadata:Go(),completed_at:ya,rejected_at:ya,cancelled_at:ya,created_at:ya,updated_at:ya}))}),Aa=ti({uniqid:vo(),status:vo(),gateway:vo(),current_period_start:vo(),current_period_end:vo(),trial_end:ya,cancel_at_period_end:Wo(),canceled_at:ya,created_at:vo(),plan:ti({id:vo(),uniqid:vo(),name:vo(),price:vo(),currency:vo(),interval:vo(),interval_count:Fo(),trial_days:Fo()}).nullable(),payment_method:ti({id:vo(),gateway:vo(),type:vo(),card_brand:ya,card_last4:ya,card_exp_month:Fo().nullable(),card_exp_year:Fo().nullable(),is_default:Wo()}).nullable(),actions:ti({can_pause:Wo(),can_resume:Wo(),can_cancel:Wo(),can_manage_payment_method:Wo()})});ti({shop:ti({id:vo(),slug:vo(),name:vo(),currency:vo(),branding:ba}),customer:ti({email:vo(),name:vo()}),stats:ti({invoices_count:Fo(),licenses_count:Fo(),deliverables_count:Fo(),tickets_count:Fo()}),wallet:ti({available:vo(),total:vo(),hold:vo(),currency:vo(),enabled:Wo()}).nullable(),rewards:xa,affiliate:Ta,invoices:Qo(Sa),subscriptions:Qo(Aa),licenses:Qo(ti({uniqid:vo(),invoice_id:vo(),status:vo(),license_key:vo(),hardware_id:ya,expires_at:Fo().nullable(),product:ti({title:vo().optional()}).optional()})),deliverables:Qo(ti({id:vo(),invoice_uniqid:vo(),product_title:vo(),kind:ci(["file","serial","license"]),label:vo(),value:vo(),href:ya,created_at:vo()})),tickets:Qo(ti({uniqid:vo(),title:vo(),status:vo(),updated_at:vo(),created_at:ya}))});var Ia=null,$a=null;var Ca=null,Na=null;function Pa(e,t){const n=t?.shopId?.trim();Na=n||null;const o=Ca?.locale;return o!==(Ca={storeSlug:e,locale:t?.locale,currency:t?.currency,apiBaseUrl:t?.apiBaseUrl??"https://api.shoppex.io",checkoutBaseUrl:t?.checkoutBaseUrl??"https://checkout.shoppex.io"}).locale&&i(),Ia=null,$a=null,Ca}function Ra(){if(!Ca)throw new u;return Ca}function Ua(){return null!==Ca}function qa(e){Na=e}function ja(){return Na}function Da(e){const t=e?.trim().toLowerCase()??"";return"true"===t||"1"===t||"yes"===t||"on"===t}var Za=-1;function La(e,t,n){return!0!==t?e:!0===n?Za:0!==e?e:Za}function Ma(e){return"number"==typeof e&&Number.isFinite(e)?Math.trunc(e):null}function Fa(e){if(!0===e)return!0;if("number"==typeof e&&Number.isFinite(e))return 0!==e;if("string"==typeof e){const t=e.trim().toLowerCase();return"true"===t||"1"===t}return!1}function Ba(e){return La(Ma(e?.stock)??Za,e?.orderable,e?.supplier_backed)}function Ya(e){if(!e)return Za;if("string"==typeof e.type&&"SERIALS"===e.type.toUpperCase())return La(Ma(e.stock)??Za,e.orderable,e.supplier_backed);const t=function(e){const t=Array.isArray(e.price_variants)?e.price_variants:[];return t.length>0?t.map(e=>Ba(e)):(Array.isArray(e.variants)?e.variants:[]).map(e=>Ba(e))}(e);return t.length>0?t.some(e=>e<0)?Za:La(t.reduce((e,t)=>e+Math.max(t,0),0),e.orderable,e.supplier_backed):La(Ma(e.stock)??Za,e.orderable,e.supplier_backed)}function Ja(e){return!!function(e){return!!e&&(Fa(e.on_hold)||Fa(e.onHold)||Fa(e.is_on_hold)||Fa(e.isOnHold))}(e)||0===Ya(e)}function Wa(e){return!Ja(e)}function Va(e=[]){const t=new Map;for(const n of e)n?.uniqid&&!t.has(n.uniqid)&&t.set(n.uniqid,n);return t}function Ga(e,t=[]){const n=t instanceof Map?t:Va(t);return(e.product_uniqids??[]).flatMap(e=>{const t=n.get(e);return t?[t]:[]})}function Ha(e=[]){return Array.from(Va(e).values())}function Ka(e){return e?e.replace(/<[^>]*>/g," ").replace(/\s+/g," ").trim():""}function Xa(e){return e.trim().toLowerCase()}function Qa(e,t){const n=Ka(t).toLowerCase();n&&e.push(n)}function es(e){const t=[];Qa(t,e.title),Qa(t,e.slug??void 0),Qa(t,e.description);for(const n of e.product_highlights??[])Qa(t,n);for(const n of e.variants??[])Qa(t,n.title);for(const n of e.price_variants??[])Qa(t,n.title??n.label);return t}function ts(e,t){const n=Xa(t);return!!n&&es(e).some(e=>e.includes(n))}function ns(e,t){const n=Xa(t);if(!n)return!1;const o=Ka(e.title).toLowerCase(),i=Ka(e.slug??e.name??void 0).toLowerCase(),r=Ka(e.description).toLowerCase();return o.includes(n)||i.includes(n)||r.includes(n)}function os(e,t){return 0!==e.length&&(!t||e.some(e=>Wa(e)))}function is(e,t,n,o){const i=Xa(n);if(!i)return[];const r=!0===o?.hideOutOfStock,a=new Set,s=new Set,u=[],l=Va(e);for(const d of t){const e=d.uniqid??d.id;if(!e||s.has(e))continue;if(!ns(d,i))continue;const t=Ga(d,l);if(os(t,r)){s.add(e);for(const e of t)e?.uniqid&&a.add(e.uniqid);u.push({type:"group",group:d,products:t})}}const c=Ha(e);for(const d of c)d?.uniqid&&!a.has(d.uniqid)&&ts(d,i)&&(r&&!Wa(d)||(a.add(d.uniqid),u.push({type:"product",product:d})));return null!=o?.maxResults?u.slice(0,o.maxResults):u}function rs(e,t,n,o){const i=is(e,t,n,o),r=new Set,a=[],s=e=>{e?.uniqid&&!r.has(e.uniqid)&&(o?.hideOutOfStock&&!Wa(e)||(r.add(e.uniqid),a.push(e)))};for(const u of i)if("product"!==u.type)for(const e of u.products)s(e);else s(u.product);return null!=o?.maxResults?a.slice(0,o.maxResults):a}function as(e){if(e?.apiBaseUrl?.trim())return e.apiBaseUrl.replace(/\/+$/,"");const t=e?.hostname??("undefined"!=typeof window?window.location.hostname:"");if(t&&!function(e){if("localhost"===e||"127.0.0.1"===e||"::1"===e||e.endsWith(".localhost"))return!0;if(/^10\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(e))return!0;if(/^192\.168\.\d{1,3}\.\d{1,3}$/.test(e))return!0;const t=e.match(/^172\.(\d{1,2})\.\d{1,3}\.\d{1,3}$/);if(t){const e=Number(t[1]);return e>=16&&e<=31}return!1}(t))return"https://api.shoppex.io";if("undefined"!=typeof window){const e=window.apiBaseUrl;if("string"==typeof e&&e.trim())return e.replace(/\/+$/,"")}return"http://localhost:3001".replace(/\/+$/,"")}function ss(e){const t=e.name?.trim()??"",n=`${t?`Name: ${t}\n\n`:""}${e.message.trim()}`,o=e.maxLength??2e3;return n.slice(0,o)}var us=/:([A-Za-z0-9_]+)/g;function ls(e,t){return e.replace(us,(e,n)=>{const o=t[n];if(null==o)throw new Error(`Missing endpoint param: ${n}`);const i=String(o).trim();if(!i)throw new Error(`Endpoint param "${n}" must not be empty`);return encodeURIComponent(i)})}function cs(e){return`shoppex_${e}`}function ds(e){try{const t=localStorage.getItem(cs(e));return t?JSON.parse(t):null}catch{return null}}function ps(e,t){try{localStorage.setItem(cs(e),JSON.stringify(t))}catch{console.warn("[shoppex] Failed to save to localStorage")}}function fs(e){try{localStorage.removeItem(cs(e))}catch{}}function ms(e){if("undefined"==typeof window)return null;const t=`presence_connection_${e}`,n=ds(t);if(n&&n.trim())return n;const o="undefined"!=typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`spx_${Math.random().toString(36).slice(2)}${Date.now().toString(36)}`;return ps(t,o),o}async function _s(e){if(!Ua())return;if("undefined"==typeof window)return;if(function(e){const t=`client_error_${function(e){return[e.method,e.endpoint,e.statusCode??"none",e.message.trim().toLowerCase(),e.responseReceived?"response":"no-response"].join("|")}(e)}`,n=Date.now(),o=ds(t);return"number"==typeof o&&n-o<15e3||(ps(t,n),!1)}(e))return;const t=Ra(),n=ja(),o=n?ls("/v1/storefront/shops/id/:id/ping",{id:n}):ls("/v1/storefront/shops/:storeSlug/ping",{storeSlug:t.storeSlug}),i=JSON.stringify({event_type:"client_error",referer:document.referrer||void 0,connection_id:ms(t.storeSlug)??void 0,client_error:{source:e.source??"sdk",phase:e.phase??"request",endpoint:e.endpoint,method:e.method,message:e.message,status_code:e.statusCode,attempt_count:e.attemptCount,response_received:e.responseReceived??!1,page_url:e.pageUrl??window.location.href,request_url:e.requestUrl,online:e.online??("undefined"!=typeof navigator?navigator.onLine:void 0),visibility_state:e.visibilityState??("undefined"!=typeof document?document.visibilityState:void 0)}}),r=`${t.apiBaseUrl}${o}`;try{if("undefined"!=typeof navigator&&"function"==typeof navigator.sendBeacon){const e=new Blob([i],{type:"application/json"});if(navigator.sendBeacon(r,e))return}await fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},body:i,keepalive:!0})}catch{}}var hs=1e4;async function ys(e){return new Promise(t=>setTimeout(t,e))}async function gs(e,t={}){const n=t.baseUrl?null:Ra(),o=n??(Ua()?Ra():null),{method:i="GET",body:r,timeout:u=hs,retries:d,baseUrl:p,cache:f}=t,m=d??("GET"===i?2:0),_=`${p??n?.apiBaseUrl??""}${e}`,h={"Content-Type":"application/json",Accept:"application/json"};"string"==typeof o?.locale&&o.locale.trim()&&(h["x-shoppex-locale"]=o.locale.trim());let y=null;const g=async()=>{for(let t=0;t<=m;t++)try{const e=new AbortController,t=setTimeout(()=>e.abort(),u),n=await fetch(_,{method:i,headers:h,body:r?JSON.stringify(r):void 0,signal:e.signal});clearTimeout(t);const o=await bs(n);if(!n.ok){const e=n.statusText?`HTTP ${n.status}: ${n.statusText}`:`HTTP ${n.status}`,t=(o.data&&"object"==typeof o.data&&"error"in o.data&&"string"==typeof o.data.error?o.data.error:null)??(o.data&&"object"==typeof o.data&&"message"in o.data&&"string"==typeof o.data.message?o.data.message:null)??o.rawText??e,i=ws(o.data);if(i.code)throw new c(t,i.code,n.status,i.errorParams);throw new l(t,n.status)}if(204===n.status&&null===o.data)return{success:!0};if(!o.data||"object"!=typeof o.data||!("status"in o.data))throw new l("Invalid API response",n.status);return vs(o.data)}catch(e){let n=e instanceof Error?e:new Error(String(e));e instanceof DOMException&&"AbortError"===e.name&&(n=new l("Request timeout",408));const o=n instanceof s?n.statusCode:void 0;if(y={message:n.message,statusCode:o,isTransport:void 0===o||408===o,...n instanceof c?{code:n.code,...n.errorParams?{errorParams:n.errorParams}:{}}:{}},n instanceof c&&void 0!==o&&o>=400&&o<500&&408!==o)break;if(t<m){await ys(500*Math.pow(2,t));continue}}return{success:!1,message:y?.message??"Unknown error",...y?.code?{code:y.code}:{},...y?.errorParams?{errorParams:y.errorParams}:{}}},b="GET"===i&&f&&f.ttl>0?await a(f.key??`GET:${_}`,g,{ttl:f.ttl,staleWhileRevalidate:f.staleWhileRevalidate},e=>e.success):await g(),v=y;return!b.success&&v?.isTransport&&await _s({endpoint:e,method:i,message:b.message??v.message,statusCode:v.statusCode,attemptCount:m+1,requestUrl:_,responseReceived:void 0!==v.statusCode&&408!==v.statusCode}),b}async function bs(e){const t=e;if("function"!=typeof t.text){if("function"==typeof t.json)try{return{data:await t.json(),rawText:null}}catch{return{data:null,rawText:null}}return{data:null,rawText:null}}try{const e=await t.text();if(!e)return{data:null,rawText:null};try{return{data:JSON.parse(e),rawText:null}}catch{const t=e.trim();return{data:null,rawText:t.length>0?t:null}}}catch{return{data:null,rawText:null}}}function vs(e){return e.status>=200&&e.status<300?{success:!0,data:e.data,...e.message?{message:e.message}:{}}:{success:!1,message:e.error??e.message??`Request failed with status ${e.status}`,...ws(e)}}function ws(e){if(!e||"object"!=typeof e)return{};const t=e,n="string"==typeof t.error_code&&t.error_code.length>0?t.error_code:null;if(!n)return{};const o=t.error_params;return{code:n,...o&&"object"==typeof o&&!Array.isArray(o)?{errorParams:o}:{}}}async function Ss(e,t){return gs(e,{...t,method:"GET"})}async function ks(e,t,n){return gs(e,{...n,method:"POST",body:t})}var Os=3e5;async function zs(){const e=Ra(),t=await Ss(ls("/v1/storefront/shops/name/:storeSlug",{storeSlug:e.storeSlug}),{cache:{key:`store:${e.storeSlug}`,ttl:Os,staleWhileRevalidate:!0}});return t.success&&t.data?(t.data.shop?.id&&qa(t.data.shop.id),{success:!0,data:t.data.shop}):{success:!1,message:t.message}}async function xs(e){const t=Ra(),n=new URLSearchParams;Number.isFinite(e?.productsLimit)&&n.set("products_limit",String(Math.max(1,Math.floor(e?.productsLimit??0)))),"string"==typeof e?.productsCursor&&e.productsCursor.trim().length>0&&n.set("products_cursor",e.productsCursor);const o=n.size>0?`?${n.toString()}`:"",i=await Ss(`${ls("/v1/storefront/shops/name/:storeSlug",{storeSlug:t.storeSlug})}${o}`,{cache:{key:`storefront:${t.storeSlug}:${e?.productsLimit??"full"}:${e?.productsCursor??"start"}`,ttl:Os,staleWhileRevalidate:!0}});return i.success&&i.data?(i.data.shop?.id&&qa(i.data.shop.id),{success:!0,data:{shop:i.data.shop,products:i.data.products??[],products_pagination:i.data.products_pagination??null,groups:i.data.groups??[],items:i.data.items??[],categories:i.data.categories??[],addons:i.data.addons??{items:[]}}}):{success:!1,message:i.message}}var Es=12e4;function Ts(e){if(e.variants&&e.variants.length>0)return e;const t=e.price_variants;return Array.isArray(t)&&0!==t.length?{...e,variants:t.map(e=>function(e){return{id:e.id,title:e.title??e.label??"",price:"number"==typeof e.price?e.price:Number(e.price)||0,stock:"number"==typeof e.stock?e.stock:void 0,orderable:"boolean"==typeof e.orderable?e.orderable:void 0,supplier_backed:"boolean"==typeof e.supplier_backed?e.supplier_backed:void 0,quantity_min:e.quantity_min,quantity_max:e.quantity_max,quantityMin:e.quantityMin,quantityMax:e.quantityMax,image_id:e.image_id,imageId:e.imageId,cloudflare_image_id:e.cloudflare_image_id,cloudflareImageId:e.cloudflareImageId,image_url:e.image_url,imageUrl:e.imageUrl}}(e))}:e}async function As(){const e=Ra(),t=await Ss(ls("/v1/storefront/products/public/:storeSlug",{storeSlug:e.storeSlug}),{cache:{key:`products:${e.storeSlug}`,ttl:Es,staleWhileRevalidate:!0}});return t.success&&t.data?{success:!0,data:Ha(t.data.products.map(Ts))}:{success:!1,message:t.message,data:[]}}var Is="shoppex:affiliate_code:v1";function $s(){return Date.now()}function Cs(e){const t=e?.trim().toLowerCase();return t||null}function Ns(e,t=30){const n=Cs(e);return n?(function(e){if("undefined"!=typeof window)try{window.localStorage.setItem(Is,JSON.stringify(e))}catch{}}({code:n,expiresAt:$s()+(o=t,24*Math.max(1,o)*60*60*1e3)}),n):(Ps(),null);var o}function Ps(){if("undefined"!=typeof window)try{window.localStorage.removeItem(Is)}catch{}}function Rs(){const e=function(){if("undefined"==typeof window)return null;try{const e=window.localStorage.getItem(Is);if(!e)return null;const t=JSON.parse(e);return t&&"string"==typeof t.code&&"number"==typeof t.expiresAt?t:null}catch{return null}}();return e?e.expiresAt<=$s()?(Ps(),null):Cs(e.code):null}async function Us(e){const t=Cs(e);if(!t)return{success:!1,data:{valid:!1,affiliate_code:null,discount_active:!1,discount_percent:0},message:"Affiliate code is required"};const n=await ks("/v1/storefront/affiliates/resolve",{shop_slug:Ra().storeSlug,code:t},{retries:0});if(!n.success)return n;if(!n.data?.valid||!n.data.affiliate_code){const e=!1===n.data?.program_enabled;return{success:!1,data:{valid:!1,...void 0!==n.data?.program_enabled?{program_enabled:n.data.program_enabled}:{},affiliate_code:null,discount_active:!1,discount_percent:0},message:n.message??(e?"Affiliate program is disabled for this shop.":"Invalid affiliate code.")}}return{success:!0,data:{valid:!0,...void 0!==n.data.program_enabled?{program_enabled:n.data.program_enabled}:{},affiliate_code:Cs(n.data.affiliate_code),discount_active:Boolean(n.data.discount_active),discount_percent:Number(n.data.discount_percent??0)},...n.message?{message:n.message}:{}}}function qs(e){if(!e)return{};const t=Object.entries(e).filter(([,e])=>"string"==typeof e).sort(([e],[t])=>e.localeCompare(t));return Object.fromEntries(t)}function js(e){const t={product_id:e.product_id,variant_id:e.variant_id,price_variant_id:e.price_variant_id??null,addons:(n=e.addons,n?.length?[...n].map(e=>({id:e.id,quantity:e.quantity??1})).sort((e,t)=>e.id.localeCompare(t.id)):[]),custom_fields:qs(e.custom_fields),unit_price:"number"==typeof e.price_data?.unit_price&&Number.isFinite(e.price_data.unit_price)?e.price_data.unit_price:null,pay_what_you_want_price:"number"==typeof e.pay_what_you_want_price&&Number.isFinite(e.pay_what_you_want_price)?e.pay_what_you_want_price:null};var n;return function(e){let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24);return(t>>>0).toString(16)}(JSON.stringify(t))}function Ds(e){return"string"==typeof e.line_id&&e.line_id.trim()?e:{...e,line_id:js(e)}}function Zs(e){const t=e?.trim().toUpperCase();return t&&/^[A-Z]{3}$/.test(t)?t:null}function Ls(){if("undefined"==typeof window||!window.location)return null;const e="string"==typeof window.location.search?window.location.search:"";if(e)return Zs(new URLSearchParams(e).get("currency"));const t="string"==typeof window.location.href?window.location.href:"";if(!t)return null;try{return Zs(new URL(t,"https://storefront.shoppex.local").searchParams.get("currency"))}catch{return null}}var Ms={cart:"cart",cartBackup:"cart_backup",meta:"cart_meta",metaBackup:"cart_backup_meta",coupon:"cart_coupon",couponBackup:"cart_coupon_backup"};function Fs(e){return`${Ms[e]}_${Ra().storeSlug}`}function Bs(e){return function(e){let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24);return(t>>>0).toString(16)}(JSON.stringify(e))}function Ys(e){if(!Number.isFinite(e))throw new d("quantity must be a finite number");return Math.floor(e)}function Js(e){const t=e?.trim().toUpperCase();return t||null}function Ws(){const e=ds(Fs("coupon"));if(!e||"object"!=typeof e||Array.isArray(e))return null;const t=e,n="string"==typeof t.code?Js(t.code):null,o="COUPON"===t.source||"AFFILIATE"===t.source?t.source:null;return n&&o?{code:n,source:o}:null}function Vs(e){if(!Array.isArray(e))return[];const t=[];for(const n of e){if(!n||"object"!=typeof n)continue;const e=n,o="string"==typeof e.product_id?e.product_id.trim():"",i="string"==typeof e.variant_id?e.variant_id.trim():"",r=Number(e.quantity);if(!o||!i||!Number.isFinite(r)||r<1)continue;const a={line_id:"",product_id:o,variant_id:i,quantity:Math.floor(r)};if("string"==typeof e.price_variant_id&&(a.price_variant_id=e.price_variant_id),e.price_data&&"object"==typeof e.price_data){const t=e.price_data;"number"==typeof t.unit_price&&Number.isFinite(t.unit_price)&&(a.price_data={unit_price:t.unit_price})}"number"==typeof e.pay_what_you_want_price&&Number.isFinite(e.pay_what_you_want_price)&&(a.pay_what_you_want_price=e.pay_what_you_want_price),Array.isArray(e.addons)&&(a.addons=e.addons),e.custom_fields&&"object"==typeof e.custom_fields&&!Array.isArray(e.custom_fields)&&(a.custom_fields=e.custom_fields),"string"==typeof e.title&&(a.title=e.title),"string"==typeof e.variant_title&&(a.variant_title=e.variant_title),"string"==typeof e.image_url&&(a.image_url=e.image_url),Array.isArray(e.addon_labels)&&(a.addon_labels=e.addon_labels.filter(e=>"string"==typeof e)),"number"==typeof e.max_quantity&&Number.isFinite(e.max_quantity)&&(a.max_quantity=e.max_quantity),"number"==typeof e.min_quantity&&Number.isFinite(e.min_quantity)&&(a.min_quantity=e.min_quantity),ou(a),a.line_id=("string"==typeof e.line_id?e.line_id.trim():"")||js(a),t.push(Ds(a))}return t}function Gs(){return ds(Fs("meta"))}function Hs(){return Ws()?.code??null}function Ks(){return Ws()?.source??null}function Xs(e,t="COUPON"){const n=Js(e);return n?(ps(Fs("coupon"),{code:n,source:t}),n):(fs(Fs("coupon")),null)}function Qs(){fs(Fs("coupon"))}function eu(e){const t=Vs(e);ps(Fs("cart"),t);const n=Date.now(),o=Gs(),i={created_at:o?.created_at??n,last_modified:n,version:(o?.version??0)+1,checksum:Bs(t)};ps(Fs("meta"),i),0===t.length&&Qs()}function tu(e,t){const n=Vs(e);ps(Fs("cart"),n);const o=Date.now(),i=t??Gs(),r={created_at:i?.created_at??o,last_modified:o,version:i?.version??1,checksum:Bs(n)};ps(Fs("meta"),r)}function nu(){return Vs(ds(Fs("cart")))}function ou(e){const t=e.min_quantity;"number"==typeof t&&Number.isFinite(t)&&e.quantity<t&&(e.quantity=Math.floor(t));const n=e.max_quantity;"number"==typeof n&&Number.isFinite(n)&&e.quantity>n&&(e.quantity=Math.floor(n)),e.quantity<1&&(e.quantity=1)}function iu(){fs(Fs("cart")),fs(Fs("meta")),Qs()}function ru(){const e=nu();ps(Fs("cartBackup"),e);const t=Ws();t?ps(Fs("couponBackup"),t):fs(Fs("couponBackup"));const n=Gs();if(n)ps(Fs("metaBackup"),n);else{const t=Date.now();ps(Fs("metaBackup"),{created_at:t,last_modified:t,version:1,checksum:Bs(e)})}}function au(){const e=nu(),t=Gs(),n=Bs(e);return t?t.checksum===n:(tu(e,null),!0)}function su(){const e=Hs();return"AFFILIATE"===Ks()&&e?e.trim().toLowerCase():Rs()}var uu=null,lu=0;function cu(){return uu}function du(e){const t=e?.trim();return t||null}function pu(e){const t=e?.trim();return t||null}function fu(e){return"/dashboard/api/checkout"===e.customerCheckoutPath&&"undefined"!=typeof window&&"string"==typeof window.location?.origin?{endpoint:e.customerCheckoutPath,baseUrl:window.location.origin}:{endpoint:"/v1/storefront/invoices/from-cart"}}function mu(e){return Zs(e.currency)??Ls()??Zs(Ra().currency)}function _u(e){const t=e?.trim()??"";if(!t)return"Checkout failed. Please try again.";if(hu(t))return"Your cart is outdated. Please add the products again.";const n=t.match(/^HTTP\s+(\d{3})(?::\s*(.*))?$/i);if(n){const e=Number(n[1]),t=n[2]?.trim();return t&&t.length>0?`Checkout failed: ${t}`:e>=500?"Checkout is temporarily unavailable. Please try again.":400===e?"Checkout failed. Please check your details and try again.":401===e||403===e?"Checkout is currently unavailable for this request.":"Checkout failed. Please try again."}return/^internal server error$/i.test(t)?"Checkout is temporarily unavailable. Please try again.":t}function hu(e){const t=e?.trim().toLowerCase()??"";return!!t&&(t.includes("product not found")||t.includes("product not available")||t.includes("products are no longer available")||t.includes("outdated product"))}function yu(e,t,n){const o=t?.trim();if(!o)return null;try{const t=new URL(e),i=new URL(o);if(t.origin!==i.origin)return null;const r=t.pathname.replace(/\/+$/,""),a=`${i.pathname.replace(/\/+$/,"")}/invoice/`.replace(/\/{2,}/g,"/");if(!r.startsWith(a))return null;const s=r.slice(a.length);if(!s||s.includes("/"))return null;if(n){const e=n.trim();if(!e||decodeURIComponent(s)!==e)return null}return t.toString()}catch{return null}}function gu(e,t){const n=pu(t.email),o="string"==typeof t.locale?t.locale.trim():"";if(!n&&!o)return e;try{const t=new URL(e);if(o&&t.searchParams.set("locale",o),n){const e=new URLSearchParams(t.hash.startsWith("#")?t.hash.slice(1):t.hash);e.set("shoppex_prefill_email",n),t.hash=e.toString()}return t.toString()}catch{return e}}function bu(e,t){const n=e?.invoice,o=e?.invoiceId?.trim()||e?.invoice_id?.trim()||e?.uniqid?.trim()||n?.invoiceId?.trim()||n?.invoice_id?.trim()||n?.uniqid?.trim();let i=e?.checkoutUrl?.trim()||e?.checkout_url?.trim()||e?.url_branded?.trim()||e?.url?.trim()||n?.checkoutUrl?.trim()||n?.checkout_url?.trim()||n?.url_branded?.trim()||n?.url?.trim();return!i&&o&&n&&(i=function(e,t){const n=e?.trim();if(!n)return null;try{const e=new URL(n);return e.pathname=`${e.pathname.replace(/\/+$/,"")}/invoice/${encodeURIComponent(t)}`.replace(/\/{2,}/g,"/"),e.search="",e.hash="",e.toString()}catch{return null}}(t,o)??void 0),o&&i?{invoiceId:o,checkoutUrl:i,rewards:e?.rewards??n?.rewards??null}:null}function vu(e,t){return"string"==typeof e?{...t,coupon:e}:e??t??{}}function wu(e,t){const n=e.affiliateCode??e.referralCode;if("string"==typeof n){const e=n.trim().toLowerCase();return e.length>0?e:null}return t?.trim().toLowerCase()??Rs()}function Su(e){const t=Hs(),n=Ks();return{coupon:void 0===e.coupon?"COUPON"===n?t:null:du(e.coupon),affiliateCode:wu(e,void 0===e.coupon&&"AFFILIATE"===n?t:null)}}function ku(e){const t=e=>{const t=e?.trim();return t?"default"===t.toLowerCase()?null:t:null};return e.map(e=>({product_id:e.product_id,variant_id:t(e.variant_id),quantity:e.quantity,addons:e.addons?.map(e=>({id:e.id,quantity:e.quantity??1})),custom_fields:e.custom_fields,price_variant_id:e.price_variant_id||null,pay_what_you_want_price:e.pay_what_you_want_price}))}function Ou(e){if("number"==typeof e&&Number.isFinite(e))return e;if("string"==typeof e&&""!==e.trim()){const t=Number(e);return Number.isFinite(t)?t:null}return null}function zu(...e){for(const t of e)if("string"==typeof t&&t.length>0)return t}function xu(e,t){const n=e,o=Ou(n.rating)??Ou(n.score)??0,i=zu(n.comment,n.message),r=zu(n.author,n.customer_name),a=n.created_at??n.createdAt,s="number"==typeof a||"string"==typeof a?String(a):"",u=zu(n.id,n.uniqid)??`review:${s||t}`;return{...n,id:u,rating:o,...i?{comment:i}:{},...r?{author:r}:{},created_at:s}}async function Eu(e){const t=Ra(),n=new URLSearchParams;n.set("limit",String(100)),"string"==typeof e&&e.trim().length>0&&n.set("cursor",e);const o=`?${n.toString()}`,i=await Ss(`${ls("/v1/storefront/feedback/shop/:storeSlug",{storeSlug:t.storeSlug})}${o}`,{cache:{key:`reviews:${t.storeSlug}:${e??"start"}:100`,ttl:12e4,staleWhileRevalidate:!0}});return i.success&&i.data?{success:!0,data:i.data}:{success:!1,message:i.message}}function Tu(e){const t=e.trim();return t||null}var Au=3e5;var Iu=3e5;async function $u(){const e=Ra(),t=await Ss(ls("/v1/storefront/shops/name/:storeSlug/menus",{storeSlug:e.storeSlug}),{cache:{key:`menus:${e.storeSlug}`,ttl:Iu,staleWhileRevalidate:!0}});return t.success&&t.data?{success:!0,data:t.data.menus}:{success:!1,message:t.message}}async function Cu(e){const t=Ra(),n=await Ss(ls("/v1/storefront/shops/name/:storeSlug/menus/:title",{storeSlug:t.storeSlug,title:e}),{cache:{key:`menu:${t.storeSlug}:${e}`,ttl:Iu,staleWhileRevalidate:!0}});return n.success&&n.data?{success:!0,data:n.data.menu}:{success:!1,message:n.message}}async function Nu(e){return Cu(e)}async function Pu(e){const t=Ra(),n=await Ss(ls("/v1/storefront/shops/name/:storeSlug/menus/:title",{storeSlug:t.storeSlug,title:e}),{cache:{key:`menu-slot:${t.storeSlug}:${e}`,ttl:Iu,staleWhileRevalidate:!0}});return n.success&&n.data?{success:!0,data:n.data.menu}:{success:!1,message:n.message}}function Ru(e){return function(e){const t=S[e];return[t.title,...t.aliases]}(e)}var Uu=["utm_source","utm_medium","utm_campaign","utm_term","utm_content"];function qu(e){return`shoppex:utm:${e}`}function ju(e){if("undefined"==typeof window||void 0===window.location)return;const t=function(e){let t;try{t=new URLSearchParams(e)}catch{return{}}const n={};for(const o of Uu){const e=t.get(o)?.trim();e&&(n[o]=e.slice(0,255))}return n}(window.location.search);if(Object.keys(t).length>0)return function(e,t){try{const n={utm:t,at:Date.now()};window.localStorage.setItem(qu(e),JSON.stringify(n))}catch{}}(e,t),t;const n=function(e){try{const t=window.localStorage.getItem(qu(e));if(!t)return{};const n=JSON.parse(t);if(!n||"number"!=typeof n.at||"object"!=typeof n.utm)return{};if(Date.now()-n.at>2592e6)return window.localStorage.removeItem(qu(e)),{};const o={};for(const e of Uu){const t=n.utm?.[e];"string"==typeof t&&t.length>0&&(o[e]=t.slice(0,255))}return o}catch{return{}}}(e);return Object.keys(n).length>0?n:void 0}async function Du(e,t){if(!Ua())return;if("undefined"==typeof document)return;const n=Ra(),o=ms(n.storeSlug);try{const i=ls("/v1/storefront/shops/:storeSlug/ping",{storeSlug:n.storeSlug});await fetch(`${n.apiBaseUrl}${i}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({referer:document.referrer||void 0,cart_value:e??void 0,item_count:t??void 0,connection_id:o??void 0,utm:ju(n.storeSlug)})})}catch{}}async function Zu(){if(!Ua())return{success:!1,message:"SDK not initialized"};const e=Ra(),t=ja();return Ss(t?ls("/v1/storefront/shops/id/:id/recent-sales",{id:t}):ls("/v1/storefront/shops/:storeSlug/recent-sales",{storeSlug:e.storeSlug}),{cache:!1,retries:0,timeout:5e3})}async function Lu(){if(!Ua())return{success:!1,message:"SDK not initialized"};const e=Ra(),t=ja();return Ss(t?ls("/v1/storefront/shops/id/:id/online-users",{id:t}):ls("/v1/storefront/shops/:storeSlug/online-users",{storeSlug:e.storeSlug}),{cache:!1,retries:0,timeout:5e3})}async function Mu(){if(!Ua())return{success:!1,message:"SDK not initialized"};if("undefined"==typeof document)return{success:!1,message:"Document is not available"};const e=Ra(),t=ja();return ks(t?ls("/v1/storefront/shops/id/:id/ping",{id:t}):ls("/v1/storefront/shops/:storeSlug/ping",{storeSlug:e.storeSlug}),{referer:document.referrer||void 0,connection_id:ms(e.storeSlug)??void 0,utm:ju(e.storeSlug)},{retries:0,timeout:5e3})}function Fu(e,t){const n=Ra();return new Intl.NumberFormat(t??n.locale??"en-US",{style:"currency",currency:e??n.currency??"USD"})}function Bu(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function Yu(e){return Bu(e)&&Bu(e.theme)?{...e,version:"number"==typeof e.version?e.version:0,revision:"number"==typeof e.revision?e.revision:0,theme:{...e.theme,content:Bu(e.theme.content)?e.theme.content:{},layout:Bu(e.theme.layout)?e.theme.layout:{},style_slots:Bu(e.theme.style_slots)?e.theme.style_slots:{},...Array.isArray(e.theme.pages)?{pages:e.theme.pages}:{},...Bu(e.theme.terms)?{terms:e.theme.terms}:{}}}:null}async function Ju(e){const t=await Ss(ls("/v1/storefront/themes/builder/published/:shopSlug",{shopSlug:e}));return t.success&&t.data?Bu(n=t.data)?{settings:Bu(n.settings)?n.settings:{},builder_settings:Yu(n.builder_settings),content:Bu(n.content)?n.content:{},style_slots:Bu(n.style_slots)?n.style_slots:{}}:null:null;var n}async function Wu(e){const t=await Ju(e);return t?t.settings:null}function Vu(e){const t={};for(const[n,o]of Object.entries(e.settings)){t[n]={};for(const[e,i]of Object.entries(o))t[n][e]=i.default}return t}function Gu(e,t){const n={...e};for(const[o,i]of Object.entries(t))i&&(n[o]={...n[o],...i});return n}var Hu={init:function(e,t){"string"==typeof e?Pa(e,t):Pa(e.storeId,e)},isInitialized:Ua,getConfig:Ra,client:function(e){const t=Ra().apiBaseUrl??"https://api.shoppex.io";if(Ia&&$a===t&&!e)return Ia;const n=function(e,t){return f({baseUrl:e,headers:t?{Authorization:`Bearer ${t}`}:void 0})}(t,e);return e||(Ia=n,$a=t),n},getStore:zs,getStorefront:xs,getStoreLogoUrl:async function(){const e=await zs();return e.success&&e.data?.logo?e.data.logo:null},getStoreBannerUrl:async function(){const e=await zs();return e.success&&e.data?.banner?e.data.banner:null},resolveStoreByDomain:async function(e,t){const n=e??("undefined"!=typeof window?window.location.hostname:"");if(!n)return{success:!1,message:"Domain is required to resolve store"};const o=n.replace(/^https?:\/\//,"").split("/")[0].trim(),i=t??(Ua()?Ra().apiBaseUrl:"https://api.shoppex.io"),r=await Ss(ls("/v1/storefront/shops/domain/:domain",{domain:o}),{baseUrl:i,cache:{key:`store:domain:${o}`,ttl:Os,staleWhileRevalidate:!0}});return r.success&&r.data?.shop?(r.data.shop.id&&qa(r.data.shop.id),{success:!0,data:r.data.shop}):{success:!1,message:r.message??"Failed to resolve store"}},getProducts:As,getStorefrontProductsPage:async function(e){const t=Ra(),n=new URLSearchParams;"string"==typeof e?.cursor&&e.cursor.trim().length>0&&n.set("cursor",e.cursor),Number.isFinite(e?.limit)&&n.set("limit",String(Math.max(1,Math.floor(e?.limit??0)))),"string"==typeof e?.sort&&e.sort.trim().length>0&&n.set("sort",e.sort.trim()),"string"==typeof e?.category&&e.category.trim().length>0&&n.set("category",e.category.trim()),!0===e?.hideOutOfStock&&n.set("hide_out_of_stock","true");const o=n.size>0?`?${n.toString()}`:"",i=await Ss(`${ls("/v1/storefront/products/shop/:storeSlug",{storeSlug:t.storeSlug})}${o}`,{cache:{key:`products:page:${t.storeSlug}:${e?.limit??"default"}:${e?.cursor??"start"}:${e?.sort??"featured"}:${r=e?.category,void 0===r?"category:unset":null===r?"category:null":`category:${r}`}:${!0===e?.hideOutOfStock?"in-stock":"all-stock"}`,ttl:Es,staleWhileRevalidate:!0}});var r;return i.success&&i.data?{success:!0,data:{products:i.data.products.map(Ts),pagination:i.data.pagination??null}}:{success:!1,message:i.message}},getProduct:async function(e){let t=ja();if(!t){const e=await zs();t=e.success?e.data?.id??null:null}const n=t?`?slug_shop_id=${encodeURIComponent(t)}`:"",o=await Ss(`${ls("/v1/storefront/products/unique/:idOrSlug",{idOrSlug:e})}${n}`,{cache:{key:`product:${e}:${t??"no-shop"}`,ttl:Es,staleWhileRevalidate:!0}});return o.success&&o.data?.product?{success:!0,data:Ts(o.data.product)}:{success:!1,message:o.message}},getCategories:async function(){const e=await As();if(!e.success||!e.data)return{success:!1,message:e.message};const t=new Set;for(const n of e.data)if(n.categories)for(const e of n.categories)"string"==typeof e?t.add(e):e&&"object"==typeof e&&"uniqid"in e&&t.add(e.uniqid);return{success:!0,data:Array.from(t)}},getCart:nu,getCartItemCount:function(){return nu().reduce((e,t)=>e+t.quantity,0)},getCartCoupon:Hs,getCartCouponSource:Ks,setCartCoupon:Xs,clearCartCoupon:Qs,addToCart:function(e,t,n=1,o){if(!e||!t)throw new d("product_id and variant_id are required");const i=Ys(n);if(i<1)throw new d("quantity must be at least 1");const r=nu(),a=js({product_id:e,variant_id:t,addons:o?.addons,custom_fields:o?.custom_fields,price_variant_id:o?.price_variant_id,price_data:o?.price_data,pay_what_you_want_price:o?.pay_what_you_want_price}),s=r.findIndex(e=>e.line_id===a);if(s>=0)r[s].quantity+=i,o?.addons&&(r[s].addons=o.addons),o?.custom_fields&&(r[s].custom_fields=o.custom_fields),o?.price_variant_id&&(r[s].price_variant_id=o.price_variant_id),o?.price_data&&(r[s].price_data=o.price_data),void 0!==o?.pay_what_you_want_price&&(r[s].pay_what_you_want_price=o.pay_what_you_want_price),function(e,t){if(t?.replace_display_snapshot)return e.title=t.title,e.variant_title=t.variant_title,e.image_url=t.image_url,e.addon_labels=t.addon_labels,e.max_quantity=t.max_quantity,void(e.min_quantity=t.min_quantity);void 0!==t?.title&&(e.title=t.title);void 0!==t?.variant_title&&(e.variant_title=t.variant_title);void 0!==t?.image_url&&(e.image_url=t.image_url);void 0!==t?.addon_labels&&(e.addon_labels=t.addon_labels);void 0!==t?.max_quantity&&(e.max_quantity=t.max_quantity);void 0!==t?.min_quantity&&(e.min_quantity=t.min_quantity)}(r[s],o),ou(r[s]);else{const n={line_id:a,product_id:e,variant_id:t,quantity:i,addons:o?.addons,custom_fields:o?.custom_fields,price_variant_id:o?.price_variant_id,price_data:o?.price_data,pay_what_you_want_price:o?.pay_what_you_want_price,title:o?.title,variant_title:o?.variant_title,image_url:o?.image_url,addon_labels:o?.addon_labels,max_quantity:o?.max_quantity,min_quantity:o?.min_quantity};ou(n),r.push(n)}eu(r)},setCartItem:function(e,t,n=1,o){if(!e||!t)throw new d("product_id and variant_id are required");const i=Ys(n);if(i<1)throw new d("quantity must be at least 1");const r=nu(),a=js({product_id:e,variant_id:t,addons:o?.addons,custom_fields:o?.custom_fields,price_variant_id:o?.price_variant_id,price_data:o?.price_data,pay_what_you_want_price:o?.pay_what_you_want_price});for(let u=r.length-1;u>=0;u-=1)r[u].product_id===e&&r[u].variant_id===t&&r.splice(u,1);const s={line_id:a,product_id:e,variant_id:t,quantity:i,addons:o?.addons,custom_fields:o?.custom_fields,price_variant_id:o?.price_variant_id,price_data:o?.price_data,pay_what_you_want_price:o?.pay_what_you_want_price,title:o?.title,variant_title:o?.variant_title,image_url:o?.image_url,addon_labels:o?.addon_labels,max_quantity:o?.max_quantity,min_quantity:o?.min_quantity};ou(s),r.push(s),eu(r)},updateCartItem:function(e,t){const n=nu(),o=e.trim();if(!o)throw new d("line_id is required");const i=n.findIndex(e=>e.line_id===o);if(i<0)throw new d("Item not found in cart");const r=JSON.stringify(n);if(void 0!==t.quantity){const e=Ys(t.quantity);if(e<1)return n.splice(i,1),void eu(n);n[i].quantity=e}void 0!==t.addons&&(n[i].addons=t.addons),void 0!==t.custom_fields&&(n[i].custom_fields=t.custom_fields),void 0!==t.price_variant_id&&(n[i].price_variant_id=t.price_variant_id),void 0!==t.price_data&&(n[i].price_data=t.price_data),void 0!==t.pay_what_you_want_price&&(n[i].pay_what_you_want_price=t.pay_what_you_want_price),void 0!==t.max_quantity&&(null===t.max_quantity?delete n[i].max_quantity:n[i].max_quantity=t.max_quantity),void 0!==t.min_quantity&&(null===t.min_quantity?delete n[i].min_quantity:n[i].min_quantity=t.min_quantity),ou(n[i]);const a=js(n[i]),s=n.findIndex((e,t)=>t!==i&&e.line_id===a);s>=0?(n[s].quantity+=n[i].quantity,ou(n[s]),n.splice(i,1)):n[i].line_id=a,JSON.stringify(n)!==r&&eu(n)},removeFromCart:function(e){const t=e.trim();if(!t)throw new d("line_id is required");eu(nu().filter(e=>e.line_id!==t))},clearCart:iu,createCartBackup:ru,restoreCartFromBackup:function(){const e=Vs(ds(Fs("cartBackup"))),t=ds(Fs("metaBackup")),n=ds(Fs("couponBackup"));if(e&&e.length>0){if(tu(e,t),n&&"object"==typeof n&&!Array.isArray(n)){const e=n,t="COUPON"===e.source||"AFFILIATE"===e.source?e.source:null;"string"==typeof e.code&&t?Xs(e.code,t):Qs()}else Qs();return!0}return!1},mergeBaskets:function(e){const t=nu();for(const n of e){const e="string"==typeof n.product_id?n.product_id.trim():"",o="string"==typeof n.variant_id?n.variant_id.trim():"";if(!e||!o)continue;let i;try{i=Ys(n.quantity)}catch{continue}if(i<1)continue;const r=Ds({...n,line_id:n.line_id??js(n),product_id:e,variant_id:o,quantity:i}),a=t.findIndex(e=>e.line_id===r.line_id);a>=0?(t[a].quantity=Math.max(t[a].quantity,i),ou(t[a])):(ou(r),t.push(r))}return eu(t),t},moveBasketItem:function(e,t,n,o){const i=nu(),r=i.findIndex(n=>n.product_id===e&&n.variant_id===t);if(r<0)throw new d("Item not found in cart");const[a]=i.splice(r,1),s=js({...a,product_id:n,variant_id:o}),u=i.findIndex(e=>e.line_id===s);if(u>=0)i[u].quantity+=a.quantity,ou(i[u]);else{const e=Ds({...a,product_id:n,variant_id:o,line_id:s});ou(e),i.push(e)}eu(i)},getCartStats:function(){const e=nu(),t=au(),n=Gs(),o=ds(Fs("cartBackup"))??[],i=e.length>0&&e.every(e=>"number"==typeof e.price_data?.unit_price),r=e.reduce((e,t)=>e+(t.price_data?.unit_price??0)*t.quantity,0);return{item_count:e.length,total_quantity:e.reduce((e,t)=>e+t.quantity,0),last_modified:n?.last_modified??0,version:n?.version??0,has_backup:o.length>0,integrity_valid:t,total_price:r,total_price_is_estimate:e.length>0&&!i}},validateCartIntegrity:au,quoteCart:async function(e,t){const n=lu+=1,o=function(e){const t=Ra(),n=Js(e)??Hs()??void 0;return{store_slug:t.storeSlug,items:nu(),coupon:n}}(e),i=Zs(t)??Ls()??Zs(Ra().currency),r=await ks("/v1/storefront/cart/quote",{shop_slug:o.store_slug,cart:o.items,coupon:o.coupon,affiliate_code:su()??void 0,currency:i??void 0});return n!==lu||r.success&&"string"==typeof r.data?.quote_token&&(uu=r.data.quote_token),r},resolveCartLineId:function(e,t,n=nu()){const o=n.filter(n=>n.product_id===e&&n.variant_id===t);if(0===o.length)throw new d(`No cart line found for ${e}/${t}`);return o[0].line_id},checkout:async function(e,t){const n=vu(e,t),{autoRedirect:o=!0,email:i}=n,r=Su(n),a=r.coupon,s=pu(i),u=r.affiliateCode,l=mu(n),c=nu();if(0===c.length)return{success:!1,message:"Cart is empty"};if(void 0!==n.expectedCart&&JSON.stringify(c)!==n.expectedCart)return{success:!1,message:"Your cart changed while checkout was starting. Please review it and try again."};ru();const d=Ra(),p=fu(n),f=await ks(p.endpoint,{shop_slug:d.storeSlug,cart:ku(c),email:s,coupon:a,currency:l,affiliate_code:u,quote_token:cu()??void 0},{retries:0,baseUrl:p.baseUrl});if(!f.success||!f.data)return hu(f.message)&&iu(),{success:!1,message:_u(f.message),...f.code?{code:f.code}:{}};const m=bu(f.data,d.checkoutBaseUrl);if(!m)return{success:!1,message:"Failed to create invoice"};const{invoiceId:_}=m,h=yu(m.checkoutUrl,d.checkoutBaseUrl,_);if(!h)return{success:!1,message:"Failed to create invoice"};const y=gu(h,{email:s,locale:n.locale??d.locale});return o&&"undefined"!=typeof window&&window?.location&&(window.location.href=y,iu()),{success:!0,redirectUrl:y,invoiceId:_,rewards:m.rewards}},buildCheckoutUrl:async function(e,t){const n=vu(e,t),{email:o}=n,i=Su(n),r=i.coupon,a=pu(o),s=i.affiliateCode,u=mu(n),l=nu();if(0===l.length)throw new Error("Cart is empty");const c=Ra(),d=fu(n),p=await ks(d.endpoint,{shop_slug:c.storeSlug,cart:ku(l),email:a,coupon:r,currency:u,affiliate_code:s,quote_token:cu()??void 0},{retries:0,baseUrl:d.baseUrl});if(!p.success||!p.data)throw hu(p.message)&&iu(),new Error(_u(p.message));const f=bu(p.data,c.checkoutBaseUrl);if(!f)throw new Error("Failed to create invoice");const m=yu(f.checkoutUrl,c.checkoutBaseUrl,f.invoiceId);if(!m)throw new Error("Failed to create invoice");return gu(m,{email:a,locale:n.locale??c.locale})},buildCheckoutUrlSync:function(){throw new Error("buildCheckoutUrlSync is deprecated. Use buildCheckoutUrl (async) instead.")},captureAffiliateFromUrl:async function(e="ref"){if("undefined"==typeof window)return null;let t=null;try{const n=new URL(window.location.href).searchParams.get(e);t=n?n.trim():null}catch{t=null}if(t=Cs(t),!t)return null;if(Ns(t),Ua())try{const e=await ks("/v1/storefront/affiliates/attribution",{shop_slug:Ra().storeSlug,code:t},{retries:0});return e.success&&e.data?.accepted&&e.data?.affiliate_code?(Ns(e.data.affiliate_code),e.data.affiliate_code):(Ps(),null)}catch{return t}return t},validateAffiliateCode:Us,applyAffiliateCode:async function(e){const t=await Us(e);return t.success&&t.data?.affiliate_code&&Ns(t.data.affiliate_code),t},getAffiliateCode:Rs,setAffiliateCode:Ns,clearAffiliateCode:Ps,validateCoupon:async function(e,t){const n=e.trim();if(!n)return{success:!1,message:"Coupon code is required"};const o={code:n},i="string"==typeof t?t:t?.productId,r="string"==typeof t?void 0:t?.variantId;if(r&&!i)return{success:!1,message:"productId is required when variantId is provided"};if(i)o.product_id=i,r&&(o.variant_id=r);else{const e=nu();if(0===e.length)return{success:!1,message:"Cart is empty"};const t=await async function(){const e=ja();if(e)return e;const t=await zs();return t.success&&t.data?.id?t.data.id:null}();if(!t)return{success:!1,message:"Failed to resolve store"};o.cart=JSON.stringify({shop_id:t,products:e.map(e=>({uniqid:e.product_id,quantity:e.quantity,variant_id:e.variant_id,price_variant_id:e.price_variant_id,addons:e.addons?.map(e=>({id:e.id,quantity:e.quantity??1}))}))})}return await ks("/v1/storefront/coupons/check",o)},getShopReviews:async function(){const e=[],t=new Set;let n=null;for(;;){const o=await Eu(n);if(!o.success||!o.data)return{success:!1,message:o.message,data:[]};e.push(...(o.data.feedback??[]).map((t,n)=>xu(t,e.length+n)));const i=o.data.pagination;if(!i?.has_more||!i.next_cursor)break;if(t.has(i.next_cursor))break;t.add(i.next_cursor),n=i.next_cursor}return{success:!0,data:e}},searchProducts:async function(e,t){if(!Ua())return{success:!1,message:"SDK not initialized"};const n=e.trim();if(!n)return{success:!0,data:[]};const o=await xs();return o.success&&o.data?{success:!0,data:rs(o.data.products??[],o.data.groups??[],n,{hideOutOfStock:t?.hideOutOfStock,maxResults:t?.maxResults})}:{success:!1,message:o.message??"Failed to fetch storefront catalog"}},searchCatalogItems:async function(e,t){if(!Ua())return{success:!1,message:"SDK not initialized"};const n=e.trim();if(!n)return{success:!0,data:[]};const o=await xs();return o.success&&o.data?{success:!0,data:is(o.data.products??[],o.data.groups??[],n,{hideOutOfStock:t?.hideOutOfStock,maxResults:t?.maxResults})}:{success:!1,message:o.message??"Failed to fetch storefront catalog"}},getInvoice:async function(e){const t=Tu(e);if(!t)return{success:!1,message:"Invoice ID is required"};const n=await Ss(ls("/v1/storefront/invoices/unique/:invoiceId",{invoiceId:t}));return n.success?n.data?.invoice?{success:!0,data:n.data.invoice}:{success:!1,message:"Invalid invoice response"}:{success:!1,message:n.message}},getInvoiceStatus:async function(e){const t=Tu(e);if(!t)return{success:!1,message:"Invoice ID is required"};const n=await Ss(ls("/v1/storefront/invoices/status/:invoiceId",{invoiceId:t}));return n.success?n.data?.invoice?.status?{success:!0,data:{status:n.data.invoice.status}}:{success:!1,message:"Invalid invoice status response"}:{success:!1,message:n.message}},getPages:async function(){const e=Ra(),t=await Ss(ls("/v1/storefront/shops/name/:storeSlug/pages",{storeSlug:e.storeSlug}),{cache:{key:`pages:${e.storeSlug}`,ttl:Au,staleWhileRevalidate:!0}});return t.success&&t.data?{success:!0,data:t.data.pages}:{success:!1,message:t.message}},getPage:async function(e){const t=Ra(),n=await Ss(ls("/v1/storefront/shops/name/:storeSlug/pages/:slug",{storeSlug:t.storeSlug,slug:e}),{cache:{key:`page:${t.storeSlug}:${e}`,ttl:Au,staleWhileRevalidate:!0}});return n.success&&n.data?{success:!0,data:n.data.page}:{success:!1,message:n.message}},getMenus:$u,getMenu:Nu,getMenuBySlot:Pu,getMenuByTitle:Cu,getMenuSlotTitles:Ru,trackPageView:Du,getStorefrontOnlineUsers:Lu,getStorefrontRecentSales:Zu,touchStorefrontPresence:Mu,createFormatter:Fu,formatPrice:function(e,t,n){const o="string"==typeof e?parseFloat(e):e;return Number.isNaN(o)?Fu(t,n).format(0):Fu(t,n).format(o)},clearCache:i,invalidateCache:function(e){for(const n of t.keys())(n===e||n.startsWith(e))&&t.delete(n)},getCacheStats:function(){return{hits:o.hits,misses:o.misses,pendingRequests:n.size,entries:t.size}},fetchPublishedBuilderSettings:Ju,fetchPublishedThemeSettings:Wu,resolveDefaults:Vu,mergeSettings:Gu};if("undefined"!=typeof window){const e=window;e.shoppex?.isInitialized?.()||(e.shoppex=Hu)}e.ApiError=c,e.CartError=d,e.NetworkError=l,e.NotInitializedError=u,e.ShoppexError=s,e.ValidationError=class e extends s{constructor(t,n){super(t,"VALIDATION_ERROR"),this.name="ValidationError",this.invalidFields=n,Object.setPrototypeOf(this,e.prototype)}},e.buildStorefrontContactMessage=ss,e.buildStorefrontCustomFieldPayload=function(e,t){const n={};return e.forEach(e=>{const o=t[e.name]??e.defaultValue??"";if("checkbox"===e.type)return void(Da(o)&&(n[e.name]="true"));const i=o.trim();i.length>0&&(n[e.name]=i)}),n},e.buildStorefrontProductLookup=Va,e.collectProductSearchHaystack=es,e.computeCartLineId=js,e.default=Hu,e.shoppex=Hu,e.ensureCartLineId=Ds,e.fetchPublishedBuilderSettings=Ju,e.fetchPublishedThemeSettings=Wu,e.filterProductsBySearchQuery=function(e,t,n){const o=Xa(t);if(!o)return[];let i=e.filter(e=>ts(e,o));return n?.hideOutOfStock&&(i=i.filter(e=>Wa(e))),null!=n?.maxResults?i.slice(0,n.maxResults):i},e.getMenu=Nu,e.getMenuBySlot=Pu,e.getMenuByTitle=Cu,e.getMenuSlotTitles=Ru,e.getMenus=$u,e.getMergedStorefrontProducts=Ha,e.getStorefrontGroupProducts=Ga,e.getStorefrontOnlineUsers=Lu,e.getStorefrontRecentSales=Zu,e.groupMatchesSearchQuery=ns,e.isProductInStock=Wa,e.isProductOutOfStock=Ja,e.isStorefrontCheckboxCustomFieldValueChecked=Da,e.isVariantOutOfStock=function(e){return 0===Ba(e)},e.mergeSettings=Gu,e.normalizeSearchQuery=Xa,e.normalizeStorefrontCustomFields=function(e){return function(e){if(Array.isArray(e))return e;if("string"==typeof e){try{const t=JSON.parse(e);if(Array.isArray(t))return t;if(t&&"object"==typeof t){const e=t.custom_fields??t.customFields;return Array.isArray(e)?e:[]}}catch{return[]}return[]}if(e&&"object"==typeof e){const t=e.custom_fields??e.customFields;return Array.isArray(t)?t:[]}return[]}(e).filter(e=>!!e&&"object"==typeof e&&!Array.isArray(e)).map(e=>{const t="string"==typeof e.type?e.type.trim().toLowerCase():"text",n=t.length>0?t:"text",o=[e.default_value,e.default,e.value].find(e=>"string"==typeof e&&e.trim().length>0);return{name:"string"==typeof e.name?e.name.trim():"",type:n,required:!0===e.required||"true"===e.required||1===e.required||"1"===e.required,defaultValue:"string"==typeof o?o:"",placeholder:"string"==typeof e.placeholder?e.placeholder:"",regex:"string"==typeof e.regex?e.regex:void 0}}).filter(e=>e.name.length>0&&"hidden"!==e.type)},e.productMatchesSearchQuery=ts,e.resolveDefaults=Vu,e.resolveDisplayStock=Ya,e.resolveStorefrontApiBaseUrl=as,e.resolveStorefrontSocialLinks=function(e){return{discord:e?.discord_link??e?.social?.discord??null,telegram:e?.telegram_link??e?.social?.telegram??null}},e.resolveVariantStockValue=Ba,e.searchMergedStorefrontCatalog=rs,e.searchMergedStorefrontCatalogItems=is,e.stripHtmlFromText=Ka,e.submitStorefrontContactTicket=async function(e){const t=e.shopSlug.trim();if(!t)throw new Error("Store data is not ready yet. Please try again in a moment.");const n=e.email.trim().toLowerCase(),o=e.title?.trim()??"",i=o.length>=2?o.slice(0,30):"Contact Request",r=ss({name:e.name,message:e.message}),a=e.invoiceId?.trim()||void 0,s=as({apiBaseUrl:e.apiBaseUrl}),u=await fetch(`${s}/v1/storefront/shops/name/${encodeURIComponent(t)}/tickets`,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({email:n,title:i,message:r,...a?{invoice_id:a}:{}})}),l=await u.json().catch(()=>null);if(!u.ok)throw new Error(l?.message||l?.error||"Failed to send your message.");const c=l?.data?.uniqid;if(!c)throw new Error("Ticket created, but the response was incomplete.");return{uniqid:c}},e.touchStorefrontPresence=Mu,e.trackPageView=Du,e.validateStorefrontCustomFieldValue=function(e,t){if("checkbox"===e.type)return e.required&&!Da(t)?`${e.name} is required.`:null;const n=t.trim();if(e.required&&!n)return`${e.name} is required.`;if(e.regex&&n)try{if(!new RegExp(e.regex).test(n))return`${e.name} has an invalid format.`}catch{return null}return null}});
2
2
  //# sourceMappingURL=shoppex.umd.js.map