@shoppexio/storefront 1.0.21 → 1.0.22

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,3 +1,3 @@
1
1
  var e=/* @__PURE__ */new Map,t=/* @__PURE__ */new Map,n={hits:0,misses:0};function o(){e.clear(),t.clear()}function i(t,n,o){const i=Date.now();e.set(t,{data:n,ttl:o,updatedAt:i,expiresAt:i+o})}async function r(o,r,a,s=()=>!0){const u=function(t){const n=e.get(t);return n||null}(o);if(u&&!function(e){return Date.now()>e.expiresAt}(u))return n.hits+=1,u.data;if(u&&a.staleWhileRevalidate){if(n.hits+=1,!t.has(o)){const e=(async()=>{try{const e=await r();return s(e)&&i(o,e,a.ttl),e}finally{t.delete(o)}})();t.set(o,e)}return u.data}if(t.has(o))return t.get(o);n.misses+=1;const l=(async()=>{try{const e=await r();return s(e)&&i(o,e,a.ttl),e}finally{t.delete(o)}})();return t.set(o,l),l}var a=class e extends Error{constructor(t,n,o){super(t),this.name="ShoppexError",this.code=n,this.statusCode=o,Object.setPrototypeOf(this,e.prototype)}},s=class e extends a{constructor(){super("SDK not initialized. Call shoppex.init() first.","NOT_INITIALIZED"),this.name="NotInitializedError",Object.setPrototypeOf(this,e.prototype)}},u=class e extends a{constructor(t,n){super(t,"NETWORK_ERROR",n),this.name="NetworkError",Object.setPrototypeOf(this,e.prototype)}},l=class e extends a{constructor(t,n){super(t,"VALIDATION_ERROR"),this.name="ValidationError",this.invalidFields=n,Object.setPrototypeOf(this,e.prototype)}},c=class e extends a{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 $="function"==typeof i?i:h(i);k&&($="function"==typeof k?k:h({..."object"==typeof i?i:{},...k}));const I=O||a||y,N=void 0===x?void 0:z(x,b(s,_,w.header)),C=b(void 0===N||N instanceof FormData?{}:{"Content-Type":"application/json"},s,_,w.header),P=[...c,...E],R={redirect:"follow",...l,...T,body:N,headers:C};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:$,pathSerializer:I}),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:$,bodySerializer:z,pathSerializer:I});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:/* @__PURE__ */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 $(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function I(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 C=/* @__PURE__*/Symbol("evaluating");function P(e,t,n){let o;Object.defineProperty(e,t,{get(){if(o!==C)return void 0===o&&(o=C,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=/* @__PURE__*/$(()=>{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=/* @__PURE__*/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 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 V(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=/* @__PURE__*/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=/* @__PURE__*/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}|:))$/,$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])$/,Ie=/^(([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}=))?$/,Ce=/^[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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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})}}),Ge=/*@__PURE__*/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})}}),Ve=/*@__PURE__*/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=/*@__PURE__*/k("$ZodCheckMaxLength",(e,t)=>{var n;Be.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!I(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=/*@__PURE__*/k("$ZodCheckMinLength",(e,t)=>{var n;Be.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!I(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=/*@__PURE__*/k("$ZodCheckLengthEquals",(e,t)=>{var n;Be.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!I(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=/*@__PURE__*/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=/* @__PURE__ */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=/*@__PURE__*/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=/*@__PURE__*/k("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Me),Qe.init(e,t)}),nt=/*@__PURE__*/k("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=Fe),Qe.init(e,t)}),ot=/*@__PURE__*/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=/* @__PURE__ */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=/*@__PURE__*/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=/* @__PURE__ */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=/*@__PURE__*/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=/* @__PURE__ */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=/*@__PURE__*/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=/*@__PURE__*/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=G(e);for(const r of t){if(r._zod.def.when){if(V(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)}}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=/*@__PURE__*/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=/*@__PURE__*/k("$ZodStringFormat",(e,t)=>{Qe.init(e,t),ct.init(e,t)}),pt=/*@__PURE__*/k("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Oe),dt.init(e,t)}),ft=/*@__PURE__*/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=/*@__PURE__*/k("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Ee),dt.init(e,t)}),_t=/*@__PURE__*/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=/*@__PURE__*/k("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),dt.init(e,t)}),yt=/*@__PURE__*/k("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=ke),dt.init(e,t)}),gt=/*@__PURE__*/k("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=ge),dt.init(e,t)}),bt=/*@__PURE__*/k("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=be),dt.init(e,t)}),vt=/*@__PURE__*/k("$ZodULID",(e,t)=>{t.pattern??(t.pattern=ve),dt.init(e,t)}),wt=/*@__PURE__*/k("$ZodXID",(e,t)=>{t.pattern??(t.pattern=we),dt.init(e,t)}),St=/*@__PURE__*/k("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=Se),dt.init(e,t)}),kt=/*@__PURE__*/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=/*@__PURE__*/k("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=qe),dt.init(e,t)}),Ot=/*@__PURE__*/k("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=new RegExp(`^${je(t)}$`)),dt.init(e,t)}),xt=/*@__PURE__*/k("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=ze),dt.init(e,t)}),Et=/*@__PURE__*/k("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=Te),dt.init(e,t),e._zod.bag.format="ipv4"}),Tt=/*@__PURE__*/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=/*@__PURE__*/k("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=$e),dt.init(e,t)}),$t=/*@__PURE__*/k("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=Ie),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 It(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=/*@__PURE__*/k("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=Ne),dt.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=n=>{It(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});var Ct=/*@__PURE__*/k("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=Ce),dt.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=n=>{(function(e){if(!Ce.test(e))return!1;const t=e.replace(/[-_]/g,e=>"-"===e?"+":"/");return It(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=/*@__PURE__*/k("$ZodE164",(e,t)=>{t.pattern??(t.pattern=Re),dt.init(e,t)});var Rt=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/k("$ZodNumberFormat",(e,t)=>{Ve.init(e,t),Ut.init(e,t)}),jt=/*@__PURE__*/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=/*@__PURE__*/k("$ZodUnknown",(e,t)=>{lt.init(e,t),e._zod.parse=e=>e}),Zt=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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=$(()=>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]=/* @__PURE__ */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=/*@__PURE__*/k("$ZodObjectJIT",(e,t)=>{Jt.init(e,t);const n=e._zod.parse,o=$(()=>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 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=>X(e,o,E())))}),t)}var Vt=/*@__PURE__*/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=>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)}}),Ht=/*@__PURE__*/k("$ZodDiscriminatedUnion",(e,t)=>{t.inclusive=!1,Vt.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]=/* @__PURE__ */new Set);for(const o of n)e[t].add(o)}}return e});const o=$(()=>{const e=t.options,n=/* @__PURE__ */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=/*@__PURE__*/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=/* @__PURE__ */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=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=/*@__PURE__*/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=/* @__PURE__ */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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/k("$ZodOptional",(e,t)=>{lt.init(e,t),e._zod.optin="optional",e._zod.optout="optional",P(e._zod,"values",()=>t.innerType._zod.values?/* @__PURE__ */new Set([...t.innerType._zod.values,void 0]):void 0),P(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=>rn(e,o)):rn(i,o)}return void 0===e.value?e:t.innerType._zod.run(e,n)}}),sn=/*@__PURE__*/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=/*@__PURE__*/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(`^(${N(e.source)}|null)$`):void 0}),P(e._zod,"values",()=>t.innerType._zod.values?/* @__PURE__ */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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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=/* @__PURE__ */new WeakMap,this._idmap=/* @__PURE__ */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=/* @__PURE__ */new WeakMap,this._idmap=/* @__PURE__ */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 $n(e,t){return new We({check:"greater_than",...J(t),value:e,inclusive:!0})}function In(e,t){return new Ge({check:"multiple_of",...J(t),value:e})}function Nn(e,t){return new He({check:"max_length",...J(t),maximum:e})}function Cn(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:/* @__PURE__ */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=/* @__PURE__ */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:/* @__PURE__ */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=/*@__PURE__*/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=/*@__PURE__*/k("ZodISODate",(e,t)=>{zt.init(e,t),vo.init(e,t)});function Gn(e){return function(e,t){return new e({type:"string",format:"date",check:"string_format",...J(t)})}(Wn,e)}var Vn=/*@__PURE__*/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)})}(Vn,e)}var Kn=/*@__PURE__*/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=/*@__PURE__*/k("ZodError",Qn,{Parent:Error}),to=/* @__PURE__ */ie(eo),no=/* @__PURE__ */re(eo),oo=/* @__PURE__ */ae(eo),io=/* @__PURE__ */ue(eo),ro=/* @__PURE__ */ce(eo),ao=/* @__PURE__ */de(eo),so=/* @__PURE__ */pe(eo),uo=/* @__PURE__ */fe(eo),lo=/* @__PURE__ */me(eo),co=/* @__PURE__ */_e(eo),po=/* @__PURE__ */he(eo),fo=/* @__PURE__ */ye(eo),mo=/* @__PURE__ */new WeakMap;function _o(e,t,n){const o=Object.getPrototypeOf(e);let i=mo.get(o);if(i||(i=/* @__PURE__ */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=/*@__PURE__*/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=/* @__PURE__ */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=/*@__PURE__*/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(Cn(...e))},max(...e){return this.check(Nn(...e))},length(...e){return this.check(Pn(...e))},nonempty(...e){return this.check(Cn(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(/* @__PURE__ */Rn(e=>e.trim()))},normalize(...e){return this.check(function(e){/* @__PURE__ */
2
- return Rn(t=>t.normalize(e))}(...e))},toLowerCase(){return this.check(/* @__PURE__ */Rn(e=>e.toLowerCase()))},toUpperCase(){return this.check(/* @__PURE__ */Rn(e=>e.toUpperCase()))},slugify(){return this.check(/* @__PURE__ */Rn(e=>function(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}(e)))}})}),go=/*@__PURE__*/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)})}($o,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)})}(Io,t)),e.ksuid=t=>e.check(function(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...J(t)})}(No,t)),e.ipv4=t=>e.check(function(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...J(t)})}(Co,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(Gn(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=/*@__PURE__*/k("ZodStringFormat",(e,t)=>{dt.init(e,t),yo.init(e,t)}),wo=/*@__PURE__*/k("ZodEmail",(e,t)=>{mt.init(e,t),vo.init(e,t)});function So(e){return zn(wo,e)}var ko=/*@__PURE__*/k("ZodGUID",(e,t)=>{pt.init(e,t),vo.init(e,t)}),zo=/*@__PURE__*/k("ZodUUID",(e,t)=>{ft.init(e,t),vo.init(e,t)}),Oo=/*@__PURE__*/k("ZodURL",(e,t)=>{_t.init(e,t),vo.init(e,t)});var xo=/*@__PURE__*/k("ZodEmoji",(e,t)=>{ht.init(e,t),vo.init(e,t)}),Eo=/*@__PURE__*/k("ZodNanoID",(e,t)=>{yt.init(e,t),vo.init(e,t)}),To=/*@__PURE__*/k("ZodCUID",(e,t)=>{gt.init(e,t),vo.init(e,t)}),Ao=/*@__PURE__*/k("ZodCUID2",(e,t)=>{bt.init(e,t),vo.init(e,t)}),$o=/*@__PURE__*/k("ZodULID",(e,t)=>{vt.init(e,t),vo.init(e,t)}),Io=/*@__PURE__*/k("ZodXID",(e,t)=>{wt.init(e,t),vo.init(e,t)}),No=/*@__PURE__*/k("ZodKSUID",(e,t)=>{St.init(e,t),vo.init(e,t)}),Co=/*@__PURE__*/k("ZodIPv4",(e,t)=>{Et.init(e,t),vo.init(e,t)}),Po=/*@__PURE__*/k("ZodIPv6",(e,t)=>{Tt.init(e,t),vo.init(e,t)}),Ro=/*@__PURE__*/k("ZodCIDRv4",(e,t)=>{At.init(e,t),vo.init(e,t)}),Uo=/*@__PURE__*/k("ZodCIDRv6",(e,t)=>{$t.init(e,t),vo.init(e,t)}),qo=/*@__PURE__*/k("ZodBase64",(e,t)=>{Nt.init(e,t),vo.init(e,t)}),jo=/*@__PURE__*/k("ZodBase64URL",(e,t)=>{Ct.init(e,t),vo.init(e,t)}),Do=/*@__PURE__*/k("ZodE164",(e,t)=>{Pt.init(e,t),vo.init(e,t)}),Zo=/*@__PURE__*/k("ZodJWT",(e,t)=>{Rt.init(e,t),vo.init(e,t)}),Lo=/*@__PURE__*/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($n(e,t))},min(e,t){return this.check($n(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($n(0,e))},negative(e){return this.check(En(0,e))},nonpositive(e){return this.check(Tn(0,e))},multipleOf(e,t){return this.check(In(e,t))},step(e,t){return this.check(In(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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/k("ZodUnknown",(e,t)=>{Dt.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(e,t,n)=>{}});function Go(){return new Wo({type:"unknown"})}var Vo=/*@__PURE__*/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)})}(Vo,e)}var Ko=/*@__PURE__*/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(Cn(e,t))},nonempty(e){return this.check(Cn(1,e))},max(e,t){return this.check(Nn(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=/*@__PURE__*/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:Go()})},loose(){return this.clone({...this._zod.def,catchall:Go()})},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=/*@__PURE__*/k("ZodUnion",(e,t)=>{Vt.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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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"]),$i=li(["ABANDONED_CART","POST_PURCHASE","WELCOME","WIN_BACK","RE_ENGAGEMENT","TAG_ADDED"]),Ii=(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(),Go()).nullable().optional(),thumbnail_url:xn(Oo,xi).nullable().optional()}),ei({mjml_source:bo().trim().min(1),sample_variables:si(bo(),Go()).optional()}),ei({recipient_email:So(),sample_variables:si(bo(),Go()).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:$i,delay_seconds:Mo().int().min(0).default(0),conditions:si(bo(),Go()).default({})}),ei({trigger:$i,email:So(),customer_id:bo().uuid().nullable().optional(),name:bo().trim().min(1).nullable().optional(),consent_basis:Ei.default("UNKNOWN"),variables:si(bo(),Go()).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"]),Ni=["NOWPAYMENTS","CRYPTOMUS","OXAPAY"],Ci=["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=[...Ii,...Ui],ji=["BITCOIN_LN"],Di=[...Ni,...Ci],Zi=[...qi,...ji],Li=qi,Mi=new Set(Ii),Fi=new Set(Ui),Bi=(new Set(qi),new Set(ji),new Set(Ni),new Set(Ci),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",Ii),Yi("TOKEN_GATEWAY_KEYS",Ui),Yi("CRYPTO_GATEWAY_KEYS",qi),Yi("LEGACY_CRYPTO_GATEWAY_KEYS",ji),Yi("CRYPTO_PROVIDER_KEYS",Ni),Yi("MANAGED_CRYPTO_PROVIDER_KEYS",Ci),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 Ku of qi)if(!Mi.has(Ku)&&!Fi.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","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()})),Gi=ei({status:li(["READY","NEEDS_ATTENTION"]).optional(),code:bo().optional(),message:bo().optional(),checked_at:bo().optional()}),Vi=(ei({provider:bo(),type:bo(),enabled:Jo(),connected:Jo(),credentials:si(bo(),Wi),public_config:si(bo(),Go()),webhook:si(bo(),Go()).optional(),health:Gi.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(),Go()).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(),Go()).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"]),$r=li(["show","hide"]),Ir=li(["midnight","ocean","ember","forest","custom"]),Nr=li(["delay","exit_intent"]),Cr=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:Cr.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:Cr.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:Cr.optional().nullable(),themePreset:Or.default("indigo"),layoutStyle:xr.default("feature"),density:Er.default("comfortable"),ctaStyle:Tr.default("outline"),icon:Ar.default("sparkles"),iconVisibility:$r.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:Ir.default("midnight"),trigger:Nr.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:Cr.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}),Gr=(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(),Go())),Vr=ni([bo(),Mo()]),Hr=ei({default_value:bo().optional(),min_length:Mo().optional(),name:bo(),placeholder:bo().optional(),regex:bo().optional(),required:Jo(),type:bo()}),Kr=ei({id:bo(),price:Mo(),quantity:Mo(),title:bo()}),Xr=ei({addons:Xo(Kr).optional(),available_addons:Xo(Go()).optional(),cloudflare_image_id:bo().nullable(),created_at:bo().optional(),currency:bo(),custom_fields:Gr.nullable().optional(),custom_fields_config:Xo(Hr).nullable().optional(),delivery_instruction:Go().optional(),delivery_instruction_config:Go().optional(),delivery_instruction_label:Go().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:Vr,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:Vr.optional(),unit_quantity:Mo(),updated_at:bo().optional(),variant_title:bo().nullable().optional(),video_link:bo().nullable().optional(),volume_discounts:Go().optional(),warranty_days:Mo().nullable().optional(),warranty_text:bo().nullable().optional()}),Qr=ei({amount:Mo(),gateway:bo()}),ea=ei({custom_tip_enabled:Jo().optional(),enabled:Jo(),preset_percentages:Xo(Mo()).optional()}),ta=ei({allow_partial_payment:Jo().optional(),auto_apply:Jo().optional(),available:bo(),currency:bo()}),na=ei({affiliate_code:bo().nullable().optional(),already_paid:Vr.nullable().optional(),amount_due:Vr.nullable().optional(),currency:bo().nullable().optional(),discount:Vr.nullable().optional(),discount_label:bo().nullable().optional(),gateway_fee:Vr.nullable().optional(),platform_fee:Vr.nullable().optional(),subtotal:Vr.nullable().optional(),tip:Vr.nullable().optional(),total:Vr.nullable().optional()}),oa=ei({active:Jo(),expires_at:bo()}),ia=ei({faq_url:bo().nullable(),support_email:bo().nullable(),support_url:bo().nullable(),telegram_invite:bo().nullable()}),ra=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()}),aa=ei({delivered_items:Xo(Go()),downloads:Xo(Go()),external_urls:Xo(Go()),license_keys:Xo(Go()),tracking_codes:Xo(Go())}),sa=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()}),ua=ei({created_at:bo().nullable(),details:bo().nullable(),id:bo(),invoice_id:bo(),status:bo().nullable()}),la=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()}),ca=ei({custom_fields:Xo(Go()).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()}),da=ei({email:ei({masked:bo().nullable(),persisted:Jo(),required_for_provider_session:Jo().optional()})}),pa=ei({amount:bo().nullable(),confirmations:Mo().nullable(),created_at:Mo().optional(),hash:bo().nullable(),status:bo().optional()}),fa=ei({conf:ei({partial:Mo().optional(),void:Mo(),waiting_for_confirmations:Mo().optional()}),gateways:Xo(bo())}),ma=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()}),_a=(ei({already_paid_amount:Vr.nullable().optional(),apm_method:bo().nullable().optional(),blockchain:bo().nullable(),buyer_identity:da.nullable().optional(),checkout_tipping:ea.nullable().optional(),country_regulations:bo().nullable().optional(),coupon_applied:Jo().optional(),crypto_mode:bo().nullable().optional(),crypto_transactions:Xo(pa).optional(),currency:bo().nullable(),custom_fields:Gr.nullable().optional(),custom_gateways:Xo(ca).optional(),customer_balance:ta.nullable().optional(),customer_email_masked:bo().nullable().optional(),dark_mode:ni([di(0),di(1)]).optional(),delivery:aa.optional(),delivery_info:aa.optional(),discount:Mo().optional(),discount_display:Vr.optional(),eligible_gateways:Xo(bo()).optional(),environment:bo().optional(),fee_breakdown:Gr.nullable().optional(),gateway:bo().nullable(),gateway_data:Gr.nullable().optional(),gateway_eligibility:si(bo(),ra).optional(),gateway_fee_previews:Xo(Qr).optional(),gateways_available:Xo(bo()),license:ni([Gr,di(!1)]).optional(),name:bo().nullable(),paddle_token:bo().nullable().optional(),paddle_transaction_id:Go().optional(),payment_link_id:bo().nullable().optional(),payment_method_overrides:Xo(la).optional(),payment_session_state:ma.nullable().optional(),polling:oa,pricing_breakdown:na.nullable().optional(),product:Xo(Xr).optional(),quantity:Mo().nullable(),rates_snapshot:si(bo(),Mo()).optional(),remaining_amount:Vr.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(Gr).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(ua).optional(),status_history_legacy:Xo(ua).optional(),status_history_raw:Xo(ua).optional(),stripe_publishable_key:bo().nullable().optional(),stripe_user_id:bo().nullable().optional(),subtotal:Mo().optional(),subtype:bo().nullable().optional(),support:ia.optional(),theme:bo().optional(),tip_amount:Vr.nullable().optional(),tip_amount_display:Vr.nullable().optional(),tip_metadata:Go().optional(),total:Vr,total_conversions:Gr.optional(),total_display:Vr,type:bo().nullable(),underpayment:sa.nullable().optional(),underpayment_status:bo().nullable().optional(),uniqid:bo(),void_times:Xo(fa).optional(),addons:Go().optional(),affiliate_data:Go().optional(),affiliate_revenue_customer_id:bo().nullable().optional(),bill_info:Go().optional(),binance_checkout_url:bo().nullable().optional(),binance_invoice_id:bo().nullable().optional(),binance_qrcode:bo().nullable().optional(),bundle_config:Go().optional(),bundles:Go().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:Vr.optional(),crypto_confirmations_needed:Mo().nullable().optional(),crypto_exchange_rate:Vr.nullable().optional(),crypto_received:Vr.optional(),crypto_uri:bo().nullable().optional(),developer_invoice:Go().optional(),developer_return_url:bo().nullable().optional(),developer_title:bo().nullable().optional(),exchange_rate:Vr.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:Vr.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:Go().optional(),product_id:bo().nullable().optional(),product_title:bo().nullable().optional(),product_type:bo().nullable().optional(),product_variants:Go().optional(),recurring_billing_id:bo().nullable().optional(),skrill_link:bo().nullable().optional(),skrill_sid:bo().nullable().optional(),status_details:Go().optional(),stripe_apm:bo().nullable().optional(),stripe_client_secret:bo().nullable().optional(),stripe_id:bo().nullable().optional(),stripe_price_id:bo().nullable().optional(),subscription:Go().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:Go().optional()}).catchall(Go()),bo().nullable()),ha=si(bo(),Go()),ya=ei({logo_url:_a,primary_color:bo(),secondary_color:bo(),accent_color:bo()}),ga=ei({attachment_image_id:ei({cloudflare_image_id:_a}).nullable()}),ba=ei({attachment_imageId:ei({cloudflareImageId:_a}).nullable()}),va=ei({uniqid:bo(),status:bo(),total:bo(),total_display:_a,currency:bo(),created_at:bo(),line_items:Xo(ei({product_title:_a,quantity:Mo(),product:ga.nullable()}))}),wa=ei({uniqid:bo(),status:bo(),total:bo(),totalDisplay:_a,currency:bo(),createdAt:bo(),lineItems:Xo(ei({productTitle:_a,quantity:Mo(),product:ba.nullable()}))}),Sa=(ei({invoices:Xo(wa),pagination:ei({page:Mo(),limit:Mo(),total:Mo(),has_more:Jo()})}),ei({gateway:bo(),blockchain:_a,cryptoAddress:_a,apmMethod:_a})),ka=(ei({id:bo(),uniqid:bo(),status:bo(),statusDetails:_a,total:bo(),totalDisplay:_a,subtotal:bo(),discount:bo(),discountDisplay:_a,tax:bo(),taxPercentage:bo(),currency:bo(),createdAt:bo(),updatedAt:bo(),gatewayUpdatedAt:_a,customFields:ha.nullable(),balancePaidAmount:bo(),currentPaymentAttemptId:_a,lineItems:Xo(ei({id:bo(),productTitle:bo(),productType:bo(),variantTitle:_a,unitPrice:bo(),quantity:Mo(),total:bo(),deliveryText:_a,deliverySummary:ei({codes:Xo(bo()),links:Xo(ei({label:bo(),value:bo(),href:_a.optional()})),notes:Xo(bo()),serials:Xo(ei({value:bo(),is_replacement:Jo(),is_replaced:Jo()}))}).nullable(),deliveredAt:_a,customFields:ha.nullable(),product:ei({uniqid:bo(),slug:_a,serviceText:_a,attachment_imageId:ei({cloudflareImageId:_a}).nullable()}).nullable()})),currentPayment:Sa.nullable(),payments:Xo(Sa)}),ei({quote:ei({enabled:Jo(),currency:bo(),min_amount:bo(),max_amount:_a,bonus_tiers:Xo(ei({min_amount:bo(),bonus_percent:Mo()}))})}),ei({invoice_id:bo(),url:bo()}),ei({id:bo(),type:bo(),status:bo(),amount:_a,currency:_a,coupon_code:_a,reason:bo(),trigger_reference_type:bo(),trigger_reference_id:bo(),created_at:Mo(),fulfilled_at:Mo().nullable(),expires_at:Mo().nullable()})),za=ei({summary:ei({available:bo(),pending:bo(),lifetime_earned:bo(),redeemed:_a,currency:bo()}),activity:Xo(ka),earned_after_invoice:Xo(ka),pending_after_invoice:Xo(ka)}),Oa=ei({id:bo(),uniqid:bo(),label:_a,code:bo(),url:_a,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:_a,updated_at:_a}),xa=ei({customer:ei({id:bo(),email:bo(),name:_a}).nullable(),state:bo(),can_create_custom_links:Jo(),custom_link_request_disabled_reason:_a,custom_links_require_approval:Jo(),affiliate_codes_accepted_at_checkout:Jo(),cash_payout_enabled:Jo(),links:Xo(Oa),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:_a,paid_at:_a,converted_at:_a})),claims:Xo(ei({id:bo(),type:bo(),status:bo(),amount:bo(),currency:bo(),allocations:Xo(ei({source_type:bo(),commission_id:_a,adjustment_id:_a,amount:bo()})),wallet_transaction_id:_a,payout_asset:_a,payout_network:_a,payout_address:_a,note:_a,metadata:Go(),completed_at:_a,rejected_at:_a,cancelled_at:_a,created_at:_a,updated_at:_a}))}),Ea=ei({uniqid:bo(),status:bo(),gateway:bo(),current_period_start:bo(),current_period_end:bo(),trial_end:_a,cancel_at_period_end:Jo(),canceled_at:_a,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:_a,card_last4:_a,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:ya}),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:za,affiliate:xa,invoices:Xo(va),subscriptions:Xo(Ea),licenses:Xo(ei({uniqid:bo(),license_key:bo(),hardware_id:_a,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:_a,created_at:bo()})),tickets:Xo(ei({uniqid:bo(),title:bo(),status:bo(),updated_at:bo(),created_at:_a}))});var Ta=null,Aa=null;var $a=null,Ia=null;function Na(e,t){const n=t?.shopId?.trim();Ia=n||null;const i=$a?.locale;return i!==($a={storeSlug:e,locale:t?.locale,currency:t?.currency,apiBaseUrl:t?.apiBaseUrl??"https://api.shoppex.io",checkoutBaseUrl:t?.checkoutBaseUrl??"https://checkout.shoppex.io"}).locale&&o(),Ta=null,Aa=null,$a}function Ca(){if(!$a)throw new s;return $a}function Pa(){return null!==$a}function Ra(e){Ia=e}function Ua(){return Ia}function qa(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)}function ja(e){const t=e?.trim().toLowerCase()??"";return"true"===t||"1"===t||"yes"===t||"on"===t}function Da(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}function Za(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}var La=-1;function Ma(e,t,n){return!0!==t?e:!0===n?La:0!==e?e:La}function Fa(e){return"number"==typeof e&&Number.isFinite(e)?Math.trunc(e):null}function Ba(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 Ya(e){return Ma(Fa(e?.stock)??La,e?.orderable,e?.supplier_backed)}function Ja(e){if(!e)return La;if("string"==typeof e.type&&"SERIALS"===e.type.toUpperCase())return Ma(Fa(e.stock)??La,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=>Ya(e)):(Array.isArray(e.variants)?e.variants:[]).map(e=>Ya(e))}(e);return t.length>0?t.some(e=>e<0)?La:Ma(t.reduce((e,t)=>e+Math.max(t,0),0),e.orderable,e.supplier_backed):Ma(Fa(e.stock)??La,e.orderable,e.supplier_backed)}function Wa(e){return!!function(e){return!!e&&(Ba(e.on_hold)||Ba(e.onHold)||Ba(e.is_on_hold)||Ba(e.isOnHold))}(e)||0===Ja(e)}function Ga(e){return!Wa(e)}function Va(e){return 0===Ya(e)}function Ha(e=[]){const t=/* @__PURE__ */new Map;for(const n of e)n?.uniqid&&!t.has(n.uniqid)&&t.set(n.uniqid,n);return t}function Ka(e,t=[]){const n=t instanceof Map?t:Ha(t);return(e.product_uniqids??[]).flatMap(e=>{const t=n.get(e);return t?[t]:[]})}function Xa(e=[]){return Array.from(Ha(e).values())}function Qa(e){return e?e.replace(/<[^>]*>/g," ").replace(/\s+/g," ").trim():""}function es(e){return e.trim().toLowerCase()}function ts(e,t){const n=Qa(t).toLowerCase();n&&e.push(n)}function ns(e){const t=[];ts(t,e.title),ts(t,e.slug??void 0),ts(t,e.description);for(const n of e.product_highlights??[])ts(t,n);for(const n of e.variants??[])ts(t,n.title);for(const n of e.price_variants??[])ts(t,n.title??n.label);return t}function os(e,t){const n=es(t);return!!n&&ns(e).some(e=>e.includes(n))}function is(e,t){const n=es(t);if(!n)return!1;const o=Qa(e.title).toLowerCase(),i=Qa(e.slug??e.name??void 0).toLowerCase(),r=Qa(e.description).toLowerCase();return o.includes(n)||i.includes(n)||r.includes(n)}function rs(e,t,n){const o=es(t);if(!o)return[];let i=e.filter(e=>os(e,o));return n?.hideOutOfStock&&(i=i.filter(e=>Ga(e))),null!=n?.maxResults?i.slice(0,n.maxResults):i}function as(e,t){return 0!==e.length&&(!t||e.some(e=>Ga(e)))}function ss(e,t,n,o){const i=es(n);if(!i)return[];const r=!0===o?.hideOutOfStock,a=/* @__PURE__ */new Set,s=/* @__PURE__ */new Set,u=[],l=Ha(e);for(const d of t){const e=d.uniqid??d.id;if(!e||s.has(e))continue;if(!is(d,i))continue;const t=Ka(d,l);if(as(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=Xa(e);for(const d of c)d?.uniqid&&!a.has(d.uniqid)&&os(d,i)&&(r&&!Ga(d)||(a.add(d.uniqid),u.push({type:"product",product:d})));return null!=o?.maxResults?u.slice(0,o.maxResults):u}function us(e,t,n,o){const i=ss(e,t,n,o),r=/* @__PURE__ */new Set,a=[],s=e=>{e?.uniqid&&!r.has(e.uniqid)&&(o?.hideOutOfStock&&!Ga(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 ls(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 cs(e){const t=e.name?.trim()??"",n=`${t?`Name: ${t}\n\n`:""}${e.message.trim()}`,o=e.maxLength??2e3;return n.slice(0,o)}async function ds(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=cs({name:e.name,message:e.message}),a=e.invoiceId?.trim()||void 0,s=ls({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}}function ps(e){return{discord:e?.discord_link??e?.social?.discord??null,telegram:e?.telegram_link??e?.social?.telegram??null}}var fs=/:([A-Za-z0-9_]+)/g;function ms(e,t){return e.replace(fs,(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 _s(e){return`shoppex_${e}`}function hs(e){try{const t=localStorage.getItem(_s(e));return t?JSON.parse(t):null}catch{return null}}function ys(e,t){try{localStorage.setItem(_s(e),JSON.stringify(t))}catch{console.warn("[shoppex] Failed to save to localStorage")}}function gs(e){try{localStorage.removeItem(_s(e))}catch{}}function bs(e){if("undefined"==typeof window)return null;const t=`presence_connection_${e}`,n=hs(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 ys(t,o),o}async function vs(e){if(!Pa())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=hs(t);return"number"==typeof o&&n-o<15e3||(ys(t,n),!1)}(e))return;const t=Ca(),n=Ua(),o=n?ms("/v1/storefront/shops/id/:id/ping",{id:n}):ms("/v1/storefront/shops/:storeSlug/ping",{storeSlug:t.storeSlug}),i=JSON.stringify({event_type:"client_error",referer:document.referrer||void 0,connection_id:bs(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 ws=1e4;async function Ss(e){return new Promise(t=>setTimeout(t,e))}async function ks(e,t={}){const n=t.baseUrl?null:Ca(),o=n??(Pa()?Ca():null),{method:i="GET",body:a,timeout:s=ws,retries:l,baseUrl:c,cache:d}=t,p=l??("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:a?JSON.stringify(a):void 0,signal:e.signal});clearTimeout(t);const o=await zs(n);if(!n.ok){const e=n.statusText?`HTTP ${n.status}: ${n.statusText}`:`HTTP ${n.status}`;throw new u((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 u("Invalid API response",n.status);return Os(o.data)}catch(e){let n=e instanceof Error?e:new Error(String(e));e instanceof DOMException&&"AbortError"===e.name&&(n=new u("Request timeout",408));const o=n instanceof u?n.statusCode:void 0;if(_={message:n.message,statusCode:o,isTransport:void 0===o||408===o},t<p){await Ss(500*Math.pow(2,t));continue}}return{success:!1,message:_?.message??"Unknown error"}},y="GET"===i&&d&&d.ttl>0?await r(d.key??`GET:${f}`,h,{ttl:d.ttl,staleWhileRevalidate:d.staleWhileRevalidate},e=>e.success):await h(),g=_;return!y.success&&g?.isTransport&&await vs({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 zs(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 Os(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 xs(e,t){return ks(e,{...t,method:"GET"})}async function Es(e,t,n){return ks(e,{...n,method:"POST",body:t})}var Ts=3e5;async function As(){const e=Ca(),t=await xs(ms("/v1/storefront/shops/name/:storeSlug",{storeSlug:e.storeSlug}),{cache:{key:`store:${e.storeSlug}`,ttl:Ts,staleWhileRevalidate:!0}});return t.success&&t.data?(t.data.shop?.id&&Ra(t.data.shop.id),{success:!0,data:t.data.shop}):{success:!1,message:t.message}}async function $s(e){const t=Ca(),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 xs(`${ms("/v1/storefront/shops/name/:storeSlug",{storeSlug:t.storeSlug})}${o}`,{cache:{key:`storefront:${t.storeSlug}:${e?.productsLimit??"full"}:${e?.productsCursor??"start"}`,ttl:Ts,staleWhileRevalidate:!0}});return i.success&&i.data?(i.data.shop?.id&&Ra(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 Is=12e4;function Ns(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 Cs(){const e=Ca(),t=await xs(ms("/v1/storefront/products/public/:storeSlug",{storeSlug:e.storeSlug}),{cache:{key:`products:${e.storeSlug}`,ttl:Is,staleWhileRevalidate:!0}});return t.success&&t.data?{success:!0,data:Xa(t.data.products.map(Ns))}:{success:!1,message:t.message,data:[]}}function Ps(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 Rs(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:Ps(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 Us(e){return"string"==typeof e.line_id&&e.line_id.trim()?e:{...e,line_id:Rs(e)}}function qs(e){const t=e?.trim().toUpperCase();return t&&/^[A-Z]{3}$/.test(t)?t:null}function js(){if("undefined"==typeof window||!window.location)return null;const e="string"==typeof window.location.search?window.location.search:"";if(e)return qs(new URLSearchParams(e).get("currency"));const t="string"==typeof window.location.href?window.location.href:"";if(!t)return null;try{return qs(new URL(t,"https://storefront.shoppex.local").searchParams.get("currency"))}catch{return null}}var Ds={cart:"cart",cartBackup:"cart_backup",meta:"cart_meta",metaBackup:"cart_backup_meta",coupon:"cart_coupon",couponBackup:"cart_coupon_backup"};function Zs(e){return`${Ds[e]}_${Ca().storeSlug}`}function Ls(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 Ms(e){if(!Number.isFinite(e))throw new c("quantity must be a finite number");return Math.floor(e)}function Fs(e){const t=e?.trim().toUpperCase();return t||null}function Bs(){const e=hs(Zs("coupon"));if(!e||"object"!=typeof e||Array.isArray(e))return null;const t=e,n="string"==typeof t.code?Fs(t.code):null,o="COUPON"===t.source||"AFFILIATE"===t.source?t.source:null;return n&&o?{code:n,source:o}:null}function Ys(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),eu(a),a.line_id=("string"==typeof e.line_id?e.line_id.trim():"")||Rs(a),t.push(Us(a))}return t}function Js(){return hs(Zs("meta"))}function Ws(){return Bs()?.code??null}function Gs(){return Bs()?.source??null}function Vs(e,t="COUPON"){const n=Fs(e);return n?(ys(Zs("coupon"),{code:n,source:t}),n):(gs(Zs("coupon")),null)}function Hs(){gs(Zs("coupon"))}function Ks(e){const t=Ys(e);ys(Zs("cart"),t);const n=Date.now(),o=Js(),i={created_at:o?.created_at??n,last_modified:n,version:(o?.version??0)+1,checksum:Ls(t)};ys(Zs("meta"),i),0===t.length&&Hs()}function Xs(e,t){const n=Ys(e);ys(Zs("cart"),n);const o=Date.now(),i=t??Js(),r={created_at:i?.created_at??o,last_modified:o,version:i?.version??1,checksum:Ls(n)};ys(Zs("meta"),r)}function Qs(){return Ys(hs(Zs("cart")))}function eu(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 tu(){gs(Zs("cart")),gs(Zs("meta")),Hs()}function nu(){const e=Qs();ys(Zs("cartBackup"),e);const t=Bs();t?ys(Zs("couponBackup"),t):gs(Zs("couponBackup"));const n=Js();if(n)ys(Zs("metaBackup"),n);else{const t=Date.now();ys(Zs("metaBackup"),{created_at:t,last_modified:t,version:1,checksum:Ls(e)})}}function ou(){const e=Qs(),t=Js(),n=Ls(e);return t?t.checksum===n:(Xs(e,null),!0)}var iu="shoppex:affiliate_code:v1";function ru(){return Date.now()}function au(e){const t=e?.trim().toLowerCase();return t||null}function su(e,t=30){const n=au(e);return n?(function(e){if("undefined"!=typeof window)try{window.localStorage.setItem(iu,JSON.stringify(e))}catch{}}({code:n,expiresAt:ru()+(o=t,24*Math.max(1,o)*60*60*1e3)}),n):(uu(),null);var o}function uu(){if("undefined"!=typeof window)try{window.localStorage.removeItem(iu)}catch{}}function lu(){const e=function(){if("undefined"==typeof window)return null;try{const e=window.localStorage.getItem(iu);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<=ru()?(uu(),null):au(e.code):null}async function cu(e){const t=au(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 Es("/v1/storefront/affiliates/resolve",{shop_slug:Ca().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:au(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 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 qs(e.currency)??js()}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;return"string"==typeof n&&n.trim().length>0?n.trim().toLowerCase():t?.trim().toLowerCase()??lu()}function Su(e){const t=Ws(),n=Gs();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 zu(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 Ou(...e){for(const t of e)if("string"==typeof t&&t.length>0)return t}function xu(e,t){const n=e,o=zu(n.rating)??zu(n.score)??0,i=Ou(n.comment,n.message),r=Ou(n.author,n.customer_name),a=n.created_at??n.createdAt,s="number"==typeof a||"string"==typeof a?String(a):"",u=Ou(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=Ca(),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 xs(`${ms("/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 $u=3e5;async function Iu(){const e=Ca(),t=await xs(ms("/v1/storefront/shops/name/:storeSlug/menus",{storeSlug:e.storeSlug}),{cache:{key:`menus:${e.storeSlug}`,ttl:$u,staleWhileRevalidate:!0}});return t.success&&t.data?{success:!0,data:t.data.menus}:{success:!1,message:t.message}}async function Nu(e){const t=Ca(),n=await xs(ms("/v1/storefront/shops/name/:storeSlug/menus/:title",{storeSlug:t.storeSlug,title:e}),{cache:{key:`menu:${t.storeSlug}:${e}`,ttl:$u,staleWhileRevalidate:!0}});return n.success&&n.data?{success:!0,data:n.data.menu}:{success:!1,message:n.message}}async function Cu(e){return Nu(e)}async function Pu(e){const t=Ca(),n=await xs(ms("/v1/storefront/shops/name/:storeSlug/menus/:title",{storeSlug:t.storeSlug,title:e}),{cache:{key:`menu-slot:${t.storeSlug}:${e}`,ttl:$u,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=w[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(!Pa())return;if("undefined"==typeof document)return;const n=Ca(),o=bs(n.storeSlug);try{const i=ms("/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(!Pa())return{success:!1,message:"SDK not initialized"};const e=Ca(),t=Ua();return xs(t?ms("/v1/storefront/shops/id/:id/recent-sales",{id:t}):ms("/v1/storefront/shops/:storeSlug/recent-sales",{storeSlug:e.storeSlug}),{cache:!1,retries:0,timeout:5e3})}async function Lu(){if(!Pa())return{success:!1,message:"SDK not initialized"};const e=Ca(),t=Ua();return xs(t?ms("/v1/storefront/shops/id/:id/online-users",{id:t}):ms("/v1/storefront/shops/:storeSlug/online-users",{storeSlug:e.storeSlug}),{cache:!1,retries:0,timeout:5e3})}async function Mu(){if(!Pa())return{success:!1,message:"SDK not initialized"};if("undefined"==typeof document)return{success:!1,message:"Document is not available"};const e=Ca(),t=Ua();return Es(t?ms("/v1/storefront/shops/id/:id/ping",{id:t}):ms("/v1/storefront/shops/:storeSlug/ping",{storeSlug:e.storeSlug}),{referer:document.referrer||void 0,connection_id:bs(e.storeSlug)??void 0,utm:ju(e.storeSlug)},{retries:0,timeout:5e3})}function Fu(e,t){const n=Ca();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 xs(ms("/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 Gu(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 Vu(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?Na(e,t):Na(e.storeId,e)},isInitialized:Pa,getConfig:Ca,client:function(e){const t=Ca().apiBaseUrl??"https://api.shoppex.io";if(Ta&&Aa===t&&!e)return Ta;const n=function(e,t){return p({baseUrl:e,headers:t?{Authorization:`Bearer ${t}`}:void 0})}(t,e);return e||(Ta=n,Aa=t),n},getStore:As,getStorefront:$s,getStoreLogoUrl:async function(){const e=await As();return e.success&&e.data?.logo?e.data.logo:null},getStoreBannerUrl:async function(){const e=await As();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??(Pa()?Ca().apiBaseUrl:"https://api.shoppex.io"),r=await xs(ms("/v1/storefront/shops/domain/:domain",{domain:o}),{baseUrl:i,cache:{key:`store:domain:${o}`,ttl:Ts,staleWhileRevalidate:!0}});return r.success&&r.data?.shop?(r.data.shop.id&&Ra(r.data.shop.id),{success:!0,data:r.data.shop}):{success:!1,message:r.message??"Failed to resolve store"}},getProducts:Cs,getStorefrontProductsPage:async function(e){const t=Ca(),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 xs(`${ms("/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:Is,staleWhileRevalidate:!0}});var r;return i.success&&i.data?{success:!0,data:{products:i.data.products.map(Ns),pagination:i.data.pagination??null}}:{success:!1,message:i.message}},getProduct:async function(e){let t=Ua();if(!t){const e=await As();t=e.success?e.data?.id??null:null}const n=t?`?slug_shop_id=${encodeURIComponent(t)}`:"",o=await xs(`${ms("/v1/storefront/products/unique/:idOrSlug",{idOrSlug:e})}${n}`,{cache:{key:`product:${e}:${t??"no-shop"}`,ttl:Is,staleWhileRevalidate:!0}});return o.success&&o.data?.product?{success:!0,data:Ns(o.data.product)}:{success:!1,message:o.message}},getCategories:async function(){const e=await Cs();if(!e.success||!e.data)return{success:!1,message:e.message};const t=/* @__PURE__ */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:Qs,getCartItemCount:function(){return Qs().reduce((e,t)=>e+t.quantity,0)},getCartCoupon:Ws,getCartCouponSource:Gs,setCartCoupon:Vs,clearCartCoupon:Hs,addToCart:function(e,t,n=1,o){if(!e||!t)throw new c("product_id and variant_id are required");const i=Ms(n);if(i<1)throw new c("quantity must be at least 1");const r=Qs(),a=Rs({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),eu(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};eu(n),r.push(n)}Ks(r)},setCartItem:function(e,t,n=1,o){if(!e||!t)throw new c("product_id and variant_id are required");const i=Ms(n);if(i<1)throw new c("quantity must be at least 1");const r=Qs(),a=Rs({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};eu(s),r.push(s),Ks(r)},updateCartItem:function(e,t){const n=Qs(),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=Ms(t.quantity);if(e<1)return n.splice(i,1),void Ks(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),eu(n[i]);const r=Rs(n[i]),a=n.findIndex((e,t)=>t!==i&&e.line_id===r);a>=0?(n[a].quantity+=n[i].quantity,eu(n[a]),n.splice(i,1)):n[i].line_id=r,Ks(n)},removeFromCart:function(e){const t=e.trim();if(!t)throw new c("line_id is required");Ks(Qs().filter(e=>e.line_id!==t))},clearCart:tu,createCartBackup:nu,restoreCartFromBackup:function(){const e=Ys(hs(Zs("cartBackup"))),t=hs(Zs("metaBackup")),n=hs(Zs("couponBackup"));if(e&&e.length>0){if(Xs(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?Vs(e.code,t):Hs()}else Hs();return!0}return!1},mergeBaskets:function(e){const t=Qs();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=Ms(n.quantity)}catch{continue}if(i<1)continue;const r=Us({...n,line_id:n.line_id??Rs(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),eu(t[a])):(eu(r),t.push(r))}return Ks(t),t},moveBasketItem:function(e,t,n,o){const i=Qs(),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=Rs({...a,product_id:n,variant_id:o}),u=i.findIndex(e=>e.line_id===s);if(u>=0)i[u].quantity+=a.quantity,eu(i[u]);else{const e=Us({...a,product_id:n,variant_id:o,line_id:s});eu(e),i.push(e)}Ks(i)},getCartStats:function(){const e=Qs(),t=ou(),n=Js(),o=hs(Zs("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:ou,quoteCart:async function(e,t){const n=function(e){const t=Ca(),n=Fs(e)??Ws()??void 0;return{store_slug:t.storeSlug,items:Qs(),coupon:n}}(e),o=qs(t)??js();return Es("/v1/storefront/cart/quote",{shop_slug:n.store_slug,cart:n.items,coupon:n.coupon,currency:o??void 0})},resolveCartLineId:function(e,t,n=Qs()){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=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=Qs();if(0===c.length)return{success:!1,message:"Cart is empty"};nu();const d=Ca(),p=fu(n),f=await Es(p.endpoint,{shop_slug:d.storeSlug,cart:ku(c),email:s,coupon:a,currency:l,affiliate_code:u},{retries:0,baseUrl:p.baseUrl});if(!f.success||!f.data)return hu(f.message)&&tu(),{success:!1,message:_u(f.message)};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,tu()),{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=Qs();if(0===l.length)throw new Error("Cart is empty");const c=Ca(),d=fu(n),p=await Es(d.endpoint,{shop_slug:c.storeSlug,cart:ku(l),email:a,coupon:r,currency:u,affiliate_code:s},{retries:0,baseUrl:d.baseUrl});if(!p.success||!p.data)throw hu(p.message)&&tu(),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=au(t),!t)return null;if(su(t),Pa())try{const e=await Es("/v1/storefront/affiliates/attribution",{shop_slug:Ca().storeSlug,code:t},{retries:0});return e.success&&e.data?.accepted&&e.data?.affiliate_code?(su(e.data.affiliate_code),e.data.affiliate_code):(uu(),null)}catch{return t}return t},validateAffiliateCode:cu,applyAffiliateCode:async function(e){const t=await cu(e);return t.success&&t.data?.affiliate_code&&su(t.data.affiliate_code),t},getAffiliateCode:lu,setAffiliateCode:su,clearAffiliateCode:uu,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=Qs();if(0===e.length)return{success:!1,message:"Cart is empty"};const t=await async function(){const e=Ua();if(e)return e;const t=await As();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 Es("/v1/storefront/coupons/check",o)},getShopReviews:async function(){const e=[],t=/* @__PURE__ */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(!Pa())return{success:!1,message:"SDK not initialized"};const n=e.trim();if(!n)return{success:!0,data:[]};const o=await $s();return o.success&&o.data?{success:!0,data:us(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(!Pa())return{success:!1,message:"SDK not initialized"};const n=e.trim();if(!n)return{success:!0,data:[]};const o=await $s();return o.success&&o.data?{success:!0,data:ss(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 xs(ms("/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 xs(ms("/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=Ca(),t=await xs(ms("/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=Ca(),n=await xs(ms("/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:Iu,getMenu:Cu,getMenuBySlot:Pu,getMenuByTitle:Nu,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:o,invalidateCache:function(t){for(const n of e.keys())(n===t||n.startsWith(t))&&e.delete(n)},getCacheStats:function(){return{hits:n.hits,misses:n.misses,pendingRequests:t.size,entries:e.size}},fetchPublishedBuilderSettings:Ju,fetchPublishedThemeSettings:Wu,resolveDefaults:Gu,mergeSettings:Vu};if("undefined"!=typeof window){const e=window;e.shoppex?.isInitialized?.()||(e.shoppex=Hu)}export{c as CartError,u as NetworkError,s as NotInitializedError,a as ShoppexError,l as ValidationError,cs as buildStorefrontContactMessage,Za as buildStorefrontCustomFieldPayload,Ha as buildStorefrontProductLookup,ns as collectProductSearchHaystack,Rs as computeCartLineId,Hu as default,Hu as shoppex,Us as ensureCartLineId,Ju as fetchPublishedBuilderSettings,Wu as fetchPublishedThemeSettings,rs as filterProductsBySearchQuery,Cu as getMenu,Pu as getMenuBySlot,Nu as getMenuByTitle,Ru as getMenuSlotTitles,Iu as getMenus,Xa as getMergedStorefrontProducts,Ka as getStorefrontGroupProducts,Lu as getStorefrontOnlineUsers,Zu as getStorefrontRecentSales,is as groupMatchesSearchQuery,Ga as isProductInStock,Wa as isProductOutOfStock,ja as isStorefrontCheckboxCustomFieldValueChecked,Va as isVariantOutOfStock,Vu as mergeSettings,es as normalizeSearchQuery,qa as normalizeStorefrontCustomFields,os as productMatchesSearchQuery,Gu as resolveDefaults,Ja as resolveDisplayStock,ls as resolveStorefrontApiBaseUrl,ps as resolveStorefrontSocialLinks,Ya as resolveVariantStockValue,us as searchMergedStorefrontCatalog,ss as searchMergedStorefrontCatalogItems,Qa as stripHtmlFromText,ds as submitStorefrontContactTicket,Mu as touchStorefrontPresence,Du as trackPageView,Da as validateStorefrontCustomFieldValue};
2
+ return Rn(t=>t.normalize(e))}(...e))},toLowerCase(){return this.check(/* @__PURE__ */Rn(e=>e.toLowerCase()))},toUpperCase(){return this.check(/* @__PURE__ */Rn(e=>e.toUpperCase()))},slugify(){return this.check(/* @__PURE__ */Rn(e=>function(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}(e)))}})}),go=/*@__PURE__*/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)})}($o,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)})}(Io,t)),e.ksuid=t=>e.check(function(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...J(t)})}(No,t)),e.ipv4=t=>e.check(function(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...J(t)})}(Co,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(Gn(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=/*@__PURE__*/k("ZodStringFormat",(e,t)=>{dt.init(e,t),yo.init(e,t)}),wo=/*@__PURE__*/k("ZodEmail",(e,t)=>{mt.init(e,t),vo.init(e,t)});function So(e){return zn(wo,e)}var ko=/*@__PURE__*/k("ZodGUID",(e,t)=>{pt.init(e,t),vo.init(e,t)}),zo=/*@__PURE__*/k("ZodUUID",(e,t)=>{ft.init(e,t),vo.init(e,t)}),Oo=/*@__PURE__*/k("ZodURL",(e,t)=>{_t.init(e,t),vo.init(e,t)});var xo=/*@__PURE__*/k("ZodEmoji",(e,t)=>{ht.init(e,t),vo.init(e,t)}),Eo=/*@__PURE__*/k("ZodNanoID",(e,t)=>{yt.init(e,t),vo.init(e,t)}),To=/*@__PURE__*/k("ZodCUID",(e,t)=>{gt.init(e,t),vo.init(e,t)}),Ao=/*@__PURE__*/k("ZodCUID2",(e,t)=>{bt.init(e,t),vo.init(e,t)}),$o=/*@__PURE__*/k("ZodULID",(e,t)=>{vt.init(e,t),vo.init(e,t)}),Io=/*@__PURE__*/k("ZodXID",(e,t)=>{wt.init(e,t),vo.init(e,t)}),No=/*@__PURE__*/k("ZodKSUID",(e,t)=>{St.init(e,t),vo.init(e,t)}),Co=/*@__PURE__*/k("ZodIPv4",(e,t)=>{Et.init(e,t),vo.init(e,t)}),Po=/*@__PURE__*/k("ZodIPv6",(e,t)=>{Tt.init(e,t),vo.init(e,t)}),Ro=/*@__PURE__*/k("ZodCIDRv4",(e,t)=>{At.init(e,t),vo.init(e,t)}),Uo=/*@__PURE__*/k("ZodCIDRv6",(e,t)=>{$t.init(e,t),vo.init(e,t)}),qo=/*@__PURE__*/k("ZodBase64",(e,t)=>{Nt.init(e,t),vo.init(e,t)}),jo=/*@__PURE__*/k("ZodBase64URL",(e,t)=>{Ct.init(e,t),vo.init(e,t)}),Do=/*@__PURE__*/k("ZodE164",(e,t)=>{Pt.init(e,t),vo.init(e,t)}),Zo=/*@__PURE__*/k("ZodJWT",(e,t)=>{Rt.init(e,t),vo.init(e,t)}),Lo=/*@__PURE__*/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($n(e,t))},min(e,t){return this.check($n(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($n(0,e))},negative(e){return this.check(En(0,e))},nonpositive(e){return this.check(Tn(0,e))},multipleOf(e,t){return this.check(In(e,t))},step(e,t){return this.check(In(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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/k("ZodUnknown",(e,t)=>{Dt.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(e,t,n)=>{}});function Go(){return new Wo({type:"unknown"})}var Vo=/*@__PURE__*/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)})}(Vo,e)}var Ko=/*@__PURE__*/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(Cn(e,t))},nonempty(e){return this.check(Cn(1,e))},max(e,t){return this.check(Nn(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=/*@__PURE__*/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:Go()})},loose(){return this.clone({...this._zod.def,catchall:Go()})},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=/*@__PURE__*/k("ZodUnion",(e,t)=>{Vt.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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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=/*@__PURE__*/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"]),$i=li(["ABANDONED_CART","POST_PURCHASE","WELCOME","WIN_BACK","RE_ENGAGEMENT","TAG_ADDED"]),Ii=(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(),Go()).nullable().optional(),thumbnail_url:xn(Oo,xi).nullable().optional()}),ei({mjml_source:bo().trim().min(1),sample_variables:si(bo(),Go()).optional()}),ei({recipient_email:So(),sample_variables:si(bo(),Go()).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:$i,delay_seconds:Mo().int().min(0).default(0),conditions:si(bo(),Go()).default({})}),ei({trigger:$i,email:So(),customer_id:bo().uuid().nullable().optional(),name:bo().trim().min(1).nullable().optional(),consent_basis:Ei.default("UNKNOWN"),variables:si(bo(),Go()).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"]),Ni=["NOWPAYMENTS","CRYPTOMUS","OXAPAY"],Ci=["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=[...Ii,...Ui],ji=["BITCOIN_LN"],Di=[...Ni,...Ci],Zi=[...qi,...ji],Li=qi,Mi=new Set(Ii),Fi=new Set(Ui),Bi=(new Set(qi),new Set(ji),new Set(Ni),new Set(Ci),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",Ii),Yi("TOKEN_GATEWAY_KEYS",Ui),Yi("CRYPTO_GATEWAY_KEYS",qi),Yi("LEGACY_CRYPTO_GATEWAY_KEYS",ji),Yi("CRYPTO_PROVIDER_KEYS",Ni),Yi("MANAGED_CRYPTO_PROVIDER_KEYS",Ci),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 Xu of qi)if(!Mi.has(Xu)&&!Fi.has(Xu))throw new Error(`CRYPTO_GATEWAY_KEYS contains an unclassified gateway: ${Xu}`);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()})),Gi=ei({status:li(["READY","NEEDS_ATTENTION"]).optional(),code:bo().optional(),message:bo().optional(),checked_at:bo().optional()}),Vi=(ei({provider:bo(),type:bo(),enabled:Jo(),connected:Jo(),credentials:si(bo(),Wi),public_config:si(bo(),Go()),webhook:si(bo(),Go()).optional(),health:Gi.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(),Go()).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(),Go()).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"]),$r=li(["show","hide"]),Ir=li(["midnight","ocean","ember","forest","custom"]),Nr=li(["delay","exit_intent"]),Cr=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:Cr.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:Cr.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:Cr.optional().nullable(),themePreset:Or.default("indigo"),layoutStyle:xr.default("feature"),density:Er.default("comfortable"),ctaStyle:Tr.default("outline"),icon:Ar.default("sparkles"),iconVisibility:$r.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:Ir.default("midnight"),trigger:Nr.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:Cr.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}),Gr=(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(),Go())),Vr=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(Go()).optional(),cloudflare_image_id:bo().nullable(),created_at:bo().optional(),currency:bo(),custom_fields:Gr.nullable().optional(),custom_fields_config:Xo(Kr).nullable().optional(),delivery_instruction:Go().optional(),delivery_instruction_config:Go().optional(),delivery_instruction_label:Go().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:Vr,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:Vr.optional(),unit_quantity:Mo(),updated_at:bo().optional(),variant_title:bo().nullable().optional(),video_link:bo().nullable().optional(),volume_discounts:Go().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:Vr.nullable().optional(),amount_due:Vr.nullable().optional(),currency:bo().nullable().optional(),discount:Vr.nullable().optional(),discount_label:bo().nullable().optional(),gateway_fee:Vr.nullable().optional(),platform_fee:Vr.nullable().optional(),subtotal:Vr.nullable().optional(),tip:Vr.nullable().optional(),total:Vr.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(Go()),downloads:Xo(Go()),external_urls:Xo(Go()),license_keys:Xo(Go()),tracking_codes:Xo(Go())}),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(Go()).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:Vr.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:Gr.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:Vr.optional(),eligible_gateways:Xo(bo()).optional(),environment:bo().optional(),fee_breakdown:Gr.nullable().optional(),gateway:bo().nullable(),gateway_data:Gr.nullable().optional(),gateway_eligibility:si(bo(),aa).optional(),gateway_fee_previews:Xo(ea).optional(),gateways_available:Xo(bo()),license:ni([Gr,di(!1)]).optional(),name:bo().nullable(),paddle_token:bo().nullable().optional(),paddle_transaction_id:Go().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:Vr.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(Gr).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:Vr.nullable().optional(),tip_amount_display:Vr.nullable().optional(),tip_metadata:Go().optional(),total:Vr,total_conversions:Gr.optional(),total_display:Vr,type:bo().nullable(),underpayment:ua.nullable().optional(),underpayment_status:bo().nullable().optional(),uniqid:bo(),void_times:Xo(ma).optional(),addons:Go().optional(),affiliate_data:Go().optional(),affiliate_revenue_customer_id:bo().nullable().optional(),bill_info:Go().optional(),binance_checkout_url:bo().nullable().optional(),binance_invoice_id:bo().nullable().optional(),binance_qrcode:bo().nullable().optional(),bundle_config:Go().optional(),bundles:Go().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:Vr.optional(),crypto_confirmations_needed:Mo().nullable().optional(),crypto_exchange_rate:Vr.nullable().optional(),crypto_received:Vr.optional(),crypto_uri:bo().nullable().optional(),developer_invoice:Go().optional(),developer_return_url:bo().nullable().optional(),developer_title:bo().nullable().optional(),exchange_rate:Vr.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:Vr.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:Go().optional(),product_id:bo().nullable().optional(),product_title:bo().nullable().optional(),product_type:bo().nullable().optional(),product_variants:Go().optional(),recurring_billing_id:bo().nullable().optional(),skrill_link:bo().nullable().optional(),skrill_sid:bo().nullable().optional(),status_details:Go().optional(),stripe_apm:bo().nullable().optional(),stripe_client_secret:bo().nullable().optional(),stripe_id:bo().nullable().optional(),stripe_price_id:bo().nullable().optional(),subscription:Go().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:Go().optional()}).catchall(Go()),bo().nullable()),ya=si(bo(),Go()),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:Go(),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,$a=null;var Ia=null,Na=null;function Ca(e,t){const n=t?.shopId?.trim();Na=n||null;const i=Ia?.locale;return i!==(Ia={storeSlug:e,locale:t?.locale,currency:t?.currency,apiBaseUrl:t?.apiBaseUrl??"https://api.shoppex.io",checkoutBaseUrl:t?.checkoutBaseUrl??"https://checkout.shoppex.io"}).locale&&o(),Aa=null,$a=null,Ia}function Pa(){if(!Ia)throw new s;return Ia}function Ra(){return null!==Ia}function Ua(e){Na=e}function qa(){return Na}function ja(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)}function Da(e){const t=e?.trim().toLowerCase()??"";return"true"===t||"1"===t||"yes"===t||"on"===t}function Za(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}function La(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}var Ma=-1;function Fa(e,t,n){return!0!==t?e:!0===n?Ma:0!==e?e:Ma}function Ba(e){return"number"==typeof e&&Number.isFinite(e)?Math.trunc(e):null}function Ya(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 Ja(e){return Fa(Ba(e?.stock)??Ma,e?.orderable,e?.supplier_backed)}function Wa(e){if(!e)return Ma;if("string"==typeof e.type&&"SERIALS"===e.type.toUpperCase())return Fa(Ba(e.stock)??Ma,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=>Ja(e)):(Array.isArray(e.variants)?e.variants:[]).map(e=>Ja(e))}(e);return t.length>0?t.some(e=>e<0)?Ma:Fa(t.reduce((e,t)=>e+Math.max(t,0),0),e.orderable,e.supplier_backed):Fa(Ba(e.stock)??Ma,e.orderable,e.supplier_backed)}function Ga(e){return!!function(e){return!!e&&(Ya(e.on_hold)||Ya(e.onHold)||Ya(e.is_on_hold)||Ya(e.isOnHold))}(e)||0===Wa(e)}function Va(e){return!Ga(e)}function Ha(e){return 0===Ja(e)}function Ka(e=[]){const t=/* @__PURE__ */new Map;for(const n of e)n?.uniqid&&!t.has(n.uniqid)&&t.set(n.uniqid,n);return t}function Xa(e,t=[]){const n=t instanceof Map?t:Ka(t);return(e.product_uniqids??[]).flatMap(e=>{const t=n.get(e);return t?[t]:[]})}function Qa(e=[]){return Array.from(Ka(e).values())}function es(e){return e?e.replace(/<[^>]*>/g," ").replace(/\s+/g," ").trim():""}function ts(e){return e.trim().toLowerCase()}function ns(e,t){const n=es(t).toLowerCase();n&&e.push(n)}function os(e){const t=[];ns(t,e.title),ns(t,e.slug??void 0),ns(t,e.description);for(const n of e.product_highlights??[])ns(t,n);for(const n of e.variants??[])ns(t,n.title);for(const n of e.price_variants??[])ns(t,n.title??n.label);return t}function is(e,t){const n=ts(t);return!!n&&os(e).some(e=>e.includes(n))}function rs(e,t){const n=ts(t);if(!n)return!1;const o=es(e.title).toLowerCase(),i=es(e.slug??e.name??void 0).toLowerCase(),r=es(e.description).toLowerCase();return o.includes(n)||i.includes(n)||r.includes(n)}function as(e,t,n){const o=ts(t);if(!o)return[];let i=e.filter(e=>is(e,o));return n?.hideOutOfStock&&(i=i.filter(e=>Va(e))),null!=n?.maxResults?i.slice(0,n.maxResults):i}function ss(e,t){return 0!==e.length&&(!t||e.some(e=>Va(e)))}function us(e,t,n,o){const i=ts(n);if(!i)return[];const r=!0===o?.hideOutOfStock,a=/* @__PURE__ */new Set,s=/* @__PURE__ */new Set,u=[],l=Ka(e);for(const d of t){const e=d.uniqid??d.id;if(!e||s.has(e))continue;if(!rs(d,i))continue;const t=Xa(d,l);if(ss(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=Qa(e);for(const d of c)d?.uniqid&&!a.has(d.uniqid)&&is(d,i)&&(r&&!Va(d)||(a.add(d.uniqid),u.push({type:"product",product:d})));return null!=o?.maxResults?u.slice(0,o.maxResults):u}function ls(e,t,n,o){const i=us(e,t,n,o),r=/* @__PURE__ */new Set,a=[],s=e=>{e?.uniqid&&!r.has(e.uniqid)&&(o?.hideOutOfStock&&!Va(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 cs(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 ds(e){const t=e.name?.trim()??"",n=`${t?`Name: ${t}\n\n`:""}${e.message.trim()}`,o=e.maxLength??2e3;return n.slice(0,o)}async function ps(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=ds({name:e.name,message:e.message}),a=e.invoiceId?.trim()||void 0,s=cs({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}}function fs(e){return{discord:e?.discord_link??e?.social?.discord??null,telegram:e?.telegram_link??e?.social?.telegram??null}}var ms=/:([A-Za-z0-9_]+)/g;function _s(e,t){return e.replace(ms,(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 hs(e){return`shoppex_${e}`}function ys(e){try{const t=localStorage.getItem(hs(e));return t?JSON.parse(t):null}catch{return null}}function gs(e,t){try{localStorage.setItem(hs(e),JSON.stringify(t))}catch{console.warn("[shoppex] Failed to save to localStorage")}}function bs(e){try{localStorage.removeItem(hs(e))}catch{}}function vs(e){if("undefined"==typeof window)return null;const t=`presence_connection_${e}`,n=ys(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 gs(t,o),o}async function ws(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=ys(t);return"number"==typeof o&&n-o<15e3||(gs(t,n),!1)}(e))return;const t=Pa(),n=qa(),o=n?_s("/v1/storefront/shops/id/:id/ping",{id:n}):_s("/v1/storefront/shops/:storeSlug/ping",{storeSlug:t.storeSlug}),i=JSON.stringify({event_type:"client_error",referer:document.referrer||void 0,connection_id:vs(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 Ss=1e4;async function ks(e){return new Promise(t=>setTimeout(t,e))}async function zs(e,t={}){const n=t.baseUrl?null:Pa(),o=n??(Ra()?Pa():null),{method:i="GET",body:a,timeout:s=Ss,retries:l,baseUrl:c,cache:d}=t,p=l??("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:a?JSON.stringify(a):void 0,signal:e.signal});clearTimeout(t);const o=await Os(n);if(!n.ok){const e=n.statusText?`HTTP ${n.status}: ${n.statusText}`:`HTTP ${n.status}`;throw new u((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 u("Invalid API response",n.status);return xs(o.data)}catch(e){let n=e instanceof Error?e:new Error(String(e));e instanceof DOMException&&"AbortError"===e.name&&(n=new u("Request timeout",408));const o=n instanceof u?n.statusCode:void 0;if(_={message:n.message,statusCode:o,isTransport:void 0===o||408===o},t<p){await ks(500*Math.pow(2,t));continue}}return{success:!1,message:_?.message??"Unknown error"}},y="GET"===i&&d&&d.ttl>0?await r(d.key??`GET:${f}`,h,{ttl:d.ttl,staleWhileRevalidate:d.staleWhileRevalidate},e=>e.success):await h(),g=_;return!y.success&&g?.isTransport&&await ws({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 Os(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 xs(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 Es(e,t){return zs(e,{...t,method:"GET"})}async function Ts(e,t,n){return zs(e,{...n,method:"POST",body:t})}var As=3e5;async function $s(){const e=Pa(),t=await Es(_s("/v1/storefront/shops/name/:storeSlug",{storeSlug:e.storeSlug}),{cache:{key:`store:${e.storeSlug}`,ttl:As,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 Is(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 Es(`${_s("/v1/storefront/shops/name/:storeSlug",{storeSlug:t.storeSlug})}${o}`,{cache:{key:`storefront:${t.storeSlug}:${e?.productsLimit??"full"}:${e?.productsCursor??"start"}`,ttl:As,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 Ns=12e4;function Cs(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 Ps(){const e=Pa(),t=await Es(_s("/v1/storefront/products/public/:storeSlug",{storeSlug:e.storeSlug}),{cache:{key:`products:${e.storeSlug}`,ttl:Ns,staleWhileRevalidate:!0}});return t.success&&t.data?{success:!0,data:Qa(t.data.products.map(Cs))}:{success:!1,message:t.message,data:[]}}function Rs(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 Us(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:Rs(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 qs(e){return"string"==typeof e.line_id&&e.line_id.trim()?e:{...e,line_id:Us(e)}}function js(e){const t=e?.trim().toUpperCase();return t&&/^[A-Z]{3}$/.test(t)?t:null}function Ds(){if("undefined"==typeof window||!window.location)return null;const e="string"==typeof window.location.search?window.location.search:"";if(e)return js(new URLSearchParams(e).get("currency"));const t="string"==typeof window.location.href?window.location.href:"";if(!t)return null;try{return js(new URL(t,"https://storefront.shoppex.local").searchParams.get("currency"))}catch{return null}}var Zs={cart:"cart",cartBackup:"cart_backup",meta:"cart_meta",metaBackup:"cart_backup_meta",coupon:"cart_coupon",couponBackup:"cart_coupon_backup"};function Ls(e){return`${Zs[e]}_${Pa().storeSlug}`}function Ms(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 Fs(e){if(!Number.isFinite(e))throw new c("quantity must be a finite number");return Math.floor(e)}function Bs(e){const t=e?.trim().toUpperCase();return t||null}function Ys(){const e=ys(Ls("coupon"));if(!e||"object"!=typeof e||Array.isArray(e))return null;const t=e,n="string"==typeof t.code?Bs(t.code):null,o="COUPON"===t.source||"AFFILIATE"===t.source?t.source:null;return n&&o?{code:n,source:o}:null}function Js(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),tu(a),a.line_id=("string"==typeof e.line_id?e.line_id.trim():"")||Us(a),t.push(qs(a))}return t}function Ws(){return ys(Ls("meta"))}function Gs(){return Ys()?.code??null}function Vs(){return Ys()?.source??null}function Hs(e,t="COUPON"){const n=Bs(e);return n?(gs(Ls("coupon"),{code:n,source:t}),n):(bs(Ls("coupon")),null)}function Ks(){bs(Ls("coupon"))}function Xs(e){const t=Js(e);gs(Ls("cart"),t);const n=Date.now(),o=Ws(),i={created_at:o?.created_at??n,last_modified:n,version:(o?.version??0)+1,checksum:Ms(t)};gs(Ls("meta"),i),0===t.length&&Ks()}function Qs(e,t){const n=Js(e);gs(Ls("cart"),n);const o=Date.now(),i=t??Ws(),r={created_at:i?.created_at??o,last_modified:o,version:i?.version??1,checksum:Ms(n)};gs(Ls("meta"),r)}function eu(){return Js(ys(Ls("cart")))}function tu(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 nu(){bs(Ls("cart")),bs(Ls("meta")),Ks()}function ou(){const e=eu();gs(Ls("cartBackup"),e);const t=Ys();t?gs(Ls("couponBackup"),t):bs(Ls("couponBackup"));const n=Ws();if(n)gs(Ls("metaBackup"),n);else{const t=Date.now();gs(Ls("metaBackup"),{created_at:t,last_modified:t,version:1,checksum:Ms(e)})}}function iu(){const e=eu(),t=Ws(),n=Ms(e);return t?t.checksum===n:(Qs(e,null),!0)}var ru="shoppex:affiliate_code:v1";function au(){return Date.now()}function su(e){const t=e?.trim().toLowerCase();return t||null}function uu(e,t=30){const n=su(e);return n?(function(e){if("undefined"!=typeof window)try{window.localStorage.setItem(ru,JSON.stringify(e))}catch{}}({code:n,expiresAt:au()+(o=t,24*Math.max(1,o)*60*60*1e3)}),n):(lu(),null);var o}function lu(){if("undefined"!=typeof window)try{window.localStorage.removeItem(ru)}catch{}}function cu(){const e=function(){if("undefined"==typeof window)return null;try{const e=window.localStorage.getItem(ru);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<=au()?(lu(),null):su(e.code):null}async function du(e){const t=su(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 Ts("/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:su(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 pu(e){const t=e?.trim();return t||null}function fu(e){const t=e?.trim();return t||null}function mu(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 _u(e){return js(e.currency)??Ds()}function hu(e){const t=e?.trim()??"";if(!t)return"Checkout failed. Please try again.";if(yu(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 yu(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 gu(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 bu(e,t){const n=fu(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 vu(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 wu(e,t){return"string"==typeof e?{...t,coupon:e}:e??t??{}}function Su(e,t){const n=e.affiliateCode??e.referralCode;return"string"==typeof n&&n.trim().length>0?n.trim().toLowerCase():t?.trim().toLowerCase()??cu()}function ku(e){const t=Gs(),n=Vs();return{coupon:void 0===e.coupon?"COUPON"===n?t:null:pu(e.coupon),affiliateCode:Su(e,void 0===e.coupon&&"AFFILIATE"===n?t:null)}}function zu(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 xu(...e){for(const t of e)if("string"==typeof t&&t.length>0)return t}function Eu(e,t){const n=e,o=Ou(n.rating)??Ou(n.score)??0,i=xu(n.comment,n.message),r=xu(n.author,n.customer_name),a=n.created_at??n.createdAt,s="number"==typeof a||"string"==typeof a?String(a):"",u=xu(n.id,n.uniqid)??`review:${s||t}`;return{...n,id:u,rating:o,...i?{comment:i}:{},...r?{author:r}:{},created_at:s}}async function Tu(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 Es(`${_s("/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 Au(e){const t=e.trim();return t||null}var $u=3e5;var Iu=3e5;async function Nu(){const e=Pa(),t=await Es(_s("/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=Pa(),n=await Es(_s("/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 Pu(e){return Cu(e)}async function Ru(e){const t=Pa(),n=await Es(_s("/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 Uu(e){return function(e){const t=w[e];return[t.title,...t.aliases]}(e)}var qu=["utm_source","utm_medium","utm_campaign","utm_term","utm_content"];function ju(e){return`shoppex:utm:${e}`}function Du(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 qu){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(ju(e),JSON.stringify(n))}catch{}}(e,t),t;const n=function(e){try{const t=window.localStorage.getItem(ju(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(ju(e)),{};const o={};for(const e of qu){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 Zu(e,t){if(!Ra())return;if("undefined"==typeof document)return;const n=Pa(),o=vs(n.storeSlug);try{const i=_s("/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:Du(n.storeSlug)})})}catch{}}async function Lu(){if(!Ra())return{success:!1,message:"SDK not initialized"};const e=Pa(),t=qa();return Es(t?_s("/v1/storefront/shops/id/:id/recent-sales",{id:t}):_s("/v1/storefront/shops/:storeSlug/recent-sales",{storeSlug:e.storeSlug}),{cache:!1,retries:0,timeout:5e3})}async function Mu(){if(!Ra())return{success:!1,message:"SDK not initialized"};const e=Pa(),t=qa();return Es(t?_s("/v1/storefront/shops/id/:id/online-users",{id:t}):_s("/v1/storefront/shops/:storeSlug/online-users",{storeSlug:e.storeSlug}),{cache:!1,retries:0,timeout:5e3})}async function Fu(){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 Ts(t?_s("/v1/storefront/shops/id/:id/ping",{id:t}):_s("/v1/storefront/shops/:storeSlug/ping",{storeSlug:e.storeSlug}),{referer:document.referrer||void 0,connection_id:vs(e.storeSlug)??void 0,utm:Du(e.storeSlug)},{retries:0,timeout:5e3})}function Bu(e,t){const n=Pa();return new Intl.NumberFormat(t??n.locale??"en-US",{style:"currency",currency:e??n.currency??"USD"})}function Yu(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function Ju(e){return Yu(e)&&Yu(e.theme)?{...e,version:"number"==typeof e.version?e.version:0,revision:"number"==typeof e.revision?e.revision:0,theme:{...e.theme,content:Yu(e.theme.content)?e.theme.content:{},layout:Yu(e.theme.layout)?e.theme.layout:{},style_slots:Yu(e.theme.style_slots)?e.theme.style_slots:{},...Array.isArray(e.theme.pages)?{pages:e.theme.pages}:{},...Yu(e.theme.terms)?{terms:e.theme.terms}:{}}}:null}async function Wu(e){const t=await Es(_s("/v1/storefront/themes/builder/published/:shopSlug",{shopSlug:e}));return t.success&&t.data?Yu(n=t.data)?{settings:Yu(n.settings)?n.settings:{},builder_settings:Ju(n.builder_settings),content:Yu(n.content)?n.content:{},style_slots:Yu(n.style_slots)?n.style_slots:{}}:null:null;var n}async function Gu(e){const t=await Wu(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 Hu(e,t){const n={...e};for(const[o,i]of Object.entries(t))i&&(n[o]={...n[o],...i});return n}var Ku={init:function(e,t){"string"==typeof e?Ca(e,t):Ca(e.storeId,e)},isInitialized:Ra,getConfig:Pa,client:function(e){const t=Pa().apiBaseUrl??"https://api.shoppex.io";if(Aa&&$a===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,$a=t),n},getStore:$s,getStorefront:Is,getStoreLogoUrl:async function(){const e=await $s();return e.success&&e.data?.logo?e.data.logo:null},getStoreBannerUrl:async function(){const e=await $s();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 Es(_s("/v1/storefront/shops/domain/:domain",{domain:o}),{baseUrl:i,cache:{key:`store:domain:${o}`,ttl:As,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:Ps,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 Es(`${_s("/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:Ns,staleWhileRevalidate:!0}});var r;return i.success&&i.data?{success:!0,data:{products:i.data.products.map(Cs),pagination:i.data.pagination??null}}:{success:!1,message:i.message}},getProduct:async function(e){let t=qa();if(!t){const e=await $s();t=e.success?e.data?.id??null:null}const n=t?`?slug_shop_id=${encodeURIComponent(t)}`:"",o=await Es(`${_s("/v1/storefront/products/unique/:idOrSlug",{idOrSlug:e})}${n}`,{cache:{key:`product:${e}:${t??"no-shop"}`,ttl:Ns,staleWhileRevalidate:!0}});return o.success&&o.data?.product?{success:!0,data:Cs(o.data.product)}:{success:!1,message:o.message}},getCategories:async function(){const e=await Ps();if(!e.success||!e.data)return{success:!1,message:e.message};const t=/* @__PURE__ */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:eu,getCartItemCount:function(){return eu().reduce((e,t)=>e+t.quantity,0)},getCartCoupon:Gs,getCartCouponSource:Vs,setCartCoupon:Hs,clearCartCoupon:Ks,addToCart:function(e,t,n=1,o){if(!e||!t)throw new c("product_id and variant_id are required");const i=Fs(n);if(i<1)throw new c("quantity must be at least 1");const r=eu(),a=Us({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),tu(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};tu(n),r.push(n)}Xs(r)},setCartItem:function(e,t,n=1,o){if(!e||!t)throw new c("product_id and variant_id are required");const i=Fs(n);if(i<1)throw new c("quantity must be at least 1");const r=eu(),a=Us({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};tu(s),r.push(s),Xs(r)},updateCartItem:function(e,t){const n=eu(),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=Fs(t.quantity);if(e<1)return n.splice(i,1),void Xs(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),tu(n[i]);const r=Us(n[i]),a=n.findIndex((e,t)=>t!==i&&e.line_id===r);a>=0?(n[a].quantity+=n[i].quantity,tu(n[a]),n.splice(i,1)):n[i].line_id=r,Xs(n)},removeFromCart:function(e){const t=e.trim();if(!t)throw new c("line_id is required");Xs(eu().filter(e=>e.line_id!==t))},clearCart:nu,createCartBackup:ou,restoreCartFromBackup:function(){const e=Js(ys(Ls("cartBackup"))),t=ys(Ls("metaBackup")),n=ys(Ls("couponBackup"));if(e&&e.length>0){if(Qs(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?Hs(e.code,t):Ks()}else Ks();return!0}return!1},mergeBaskets:function(e){const t=eu();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=Fs(n.quantity)}catch{continue}if(i<1)continue;const r=qs({...n,line_id:n.line_id??Us(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),tu(t[a])):(tu(r),t.push(r))}return Xs(t),t},moveBasketItem:function(e,t,n,o){const i=eu(),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=Us({...a,product_id:n,variant_id:o}),u=i.findIndex(e=>e.line_id===s);if(u>=0)i[u].quantity+=a.quantity,tu(i[u]);else{const e=qs({...a,product_id:n,variant_id:o,line_id:s});tu(e),i.push(e)}Xs(i)},getCartStats:function(){const e=eu(),t=iu(),n=Ws(),o=ys(Ls("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:iu,quoteCart:async function(e,t){const n=function(e){const t=Pa(),n=Bs(e)??Gs()??void 0;return{store_slug:t.storeSlug,items:eu(),coupon:n}}(e),o=js(t)??Ds();return Ts("/v1/storefront/cart/quote",{shop_slug:n.store_slug,cart:n.items,coupon:n.coupon,currency:o??void 0})},resolveCartLineId:function(e,t,n=eu()){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=wu(e,t),{autoRedirect:o=!0,email:i}=n,r=ku(n),a=r.coupon,s=fu(i),u=r.affiliateCode,l=_u(n),c=eu();if(0===c.length)return{success:!1,message:"Cart is empty"};ou();const d=Pa(),p=mu(n),f=await Ts(p.endpoint,{shop_slug:d.storeSlug,cart:zu(c),email:s,coupon:a,currency:l,affiliate_code:u},{retries:0,baseUrl:p.baseUrl});if(!f.success||!f.data)return yu(f.message)&&nu(),{success:!1,message:hu(f.message)};const m=vu(f.data,d.checkoutBaseUrl);if(!m)return{success:!1,message:"Failed to create invoice"};const{invoiceId:_}=m,h=gu(m.checkoutUrl,d.checkoutBaseUrl,_);if(!h)return{success:!1,message:"Failed to create invoice"};const y=bu(h,{email:s,locale:n.locale??d.locale});return o&&"undefined"!=typeof window&&window?.location&&(window.location.href=y,nu()),{success:!0,redirectUrl:y,invoiceId:_,rewards:m.rewards}},buildCheckoutUrl:async function(e,t){const n=wu(e,t),{email:o}=n,i=ku(n),r=i.coupon,a=fu(o),s=i.affiliateCode,u=_u(n),l=eu();if(0===l.length)throw new Error("Cart is empty");const c=Pa(),d=mu(n),p=await Ts(d.endpoint,{shop_slug:c.storeSlug,cart:zu(l),email:a,coupon:r,currency:u,affiliate_code:s},{retries:0,baseUrl:d.baseUrl});if(!p.success||!p.data)throw yu(p.message)&&nu(),new Error(hu(p.message));const f=vu(p.data,c.checkoutBaseUrl);if(!f)throw new Error("Failed to create invoice");const m=gu(f.checkoutUrl,c.checkoutBaseUrl,f.invoiceId);if(!m)throw new Error("Failed to create invoice");return bu(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=su(t),!t)return null;if(uu(t),Ra())try{const e=await Ts("/v1/storefront/affiliates/attribution",{shop_slug:Pa().storeSlug,code:t},{retries:0});return e.success&&e.data?.accepted&&e.data?.affiliate_code?(uu(e.data.affiliate_code),e.data.affiliate_code):(lu(),null)}catch{return t}return t},validateAffiliateCode:du,applyAffiliateCode:async function(e){const t=await du(e);return t.success&&t.data?.affiliate_code&&uu(t.data.affiliate_code),t},getAffiliateCode:cu,setAffiliateCode:uu,clearAffiliateCode:lu,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=eu();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 $s();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 Ts("/v1/storefront/coupons/check",o)},getShopReviews:async function(){const e=[],t=/* @__PURE__ */new Set;let n=null;for(;;){const o=await Tu(n);if(!o.success||!o.data)return{success:!1,message:o.message,data:[]};e.push(...(o.data.feedback??[]).map((t,n)=>Eu(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 Is();return o.success&&o.data?{success:!0,data:ls(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 Is();return o.success&&o.data?{success:!0,data:us(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=Au(e);if(!t)return{success:!1,message:"Invoice ID is required"};const n=await Es(_s("/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=Au(e);if(!t)return{success:!1,message:"Invoice ID is required"};const n=await Es(_s("/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 Es(_s("/v1/storefront/shops/name/:storeSlug/pages",{storeSlug:e.storeSlug}),{cache:{key:`pages:${e.storeSlug}`,ttl:$u,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 Es(_s("/v1/storefront/shops/name/:storeSlug/pages/:slug",{storeSlug:t.storeSlug,slug:e}),{cache:{key:`page:${t.storeSlug}:${e}`,ttl:$u,staleWhileRevalidate:!0}});return n.success&&n.data?{success:!0,data:n.data.page}:{success:!1,message:n.message}},getMenus:Nu,getMenu:Pu,getMenuBySlot:Ru,getMenuByTitle:Cu,getMenuSlotTitles:Uu,trackPageView:Zu,getStorefrontOnlineUsers:Mu,getStorefrontRecentSales:Lu,touchStorefrontPresence:Fu,createFormatter:Bu,formatPrice:function(e,t,n){const o="string"==typeof e?parseFloat(e):e;return Number.isNaN(o)?Bu(t,n).format(0):Bu(t,n).format(o)},clearCache:o,invalidateCache:function(t){for(const n of e.keys())(n===t||n.startsWith(t))&&e.delete(n)},getCacheStats:function(){return{hits:n.hits,misses:n.misses,pendingRequests:t.size,entries:e.size}},fetchPublishedBuilderSettings:Wu,fetchPublishedThemeSettings:Gu,resolveDefaults:Vu,mergeSettings:Hu};if("undefined"!=typeof window){const e=window;e.shoppex?.isInitialized?.()||(e.shoppex=Ku)}export{c as CartError,u as NetworkError,s as NotInitializedError,a as ShoppexError,l as ValidationError,ds as buildStorefrontContactMessage,La as buildStorefrontCustomFieldPayload,Ka as buildStorefrontProductLookup,os as collectProductSearchHaystack,Us as computeCartLineId,Ku as default,Ku as shoppex,qs as ensureCartLineId,Wu as fetchPublishedBuilderSettings,Gu as fetchPublishedThemeSettings,as as filterProductsBySearchQuery,Pu as getMenu,Ru as getMenuBySlot,Cu as getMenuByTitle,Uu as getMenuSlotTitles,Nu as getMenus,Qa as getMergedStorefrontProducts,Xa as getStorefrontGroupProducts,Mu as getStorefrontOnlineUsers,Lu as getStorefrontRecentSales,rs as groupMatchesSearchQuery,Va as isProductInStock,Ga as isProductOutOfStock,Da as isStorefrontCheckboxCustomFieldValueChecked,Ha as isVariantOutOfStock,Hu as mergeSettings,ts as normalizeSearchQuery,ja as normalizeStorefrontCustomFields,is as productMatchesSearchQuery,Vu as resolveDefaults,Wa as resolveDisplayStock,cs as resolveStorefrontApiBaseUrl,fs as resolveStorefrontSocialLinks,Ja as resolveVariantStockValue,ls as searchMergedStorefrontCatalog,us as searchMergedStorefrontCatalogItems,es as stripHtmlFromText,ps as submitStorefrontContactTicket,Fu as touchStorefrontPresence,Zu as trackPageView,Za as validateStorefrontCustomFieldValue};
3
3
  //# sourceMappingURL=shoppex.esm.js.map