@shoppexio/storefront 1.0.21 → 1.0.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/shoppex.umd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).shoppex={})}(this,function(e){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var t=new Map,n=new Map,o={hits:0,misses:0};function i(){t.clear(),n.clear()}function r(e,n,o){const i=Date.now();t.set(e,{data:n,ttl:o,updatedAt:i,expiresAt:i+o})}async function a(e,i,a,s=()=>!0){const u=function(e){const n=t.get(e);return n||null}(e);if(u&&!function(e){return Date.now()>e.expiresAt}(u))return o.hits+=1,u.data;if(u&&a.staleWhileRevalidate){if(o.hits+=1,!n.has(e)){const t=(async()=>{try{const t=await i();return s(t)&&r(e,t,a.ttl),t}finally{n.delete(e)}})();n.set(e,t)}return u.data}if(n.has(e))return n.get(e);o.misses+=1;const l=(async()=>{try{const t=await i();return s(t)&&r(e,t,a.ttl),t}finally{n.delete(e)}})();return n.set(e,l),l}var s=class e extends Error{constructor(t,n,o){super(t),this.name="ShoppexError",this.code=n,this.statusCode=o,Object.setPrototypeOf(this,e.prototype)}},u=class e extends s{constructor(){super("SDK not initialized. Call shoppex.init() first.","NOT_INITIALIZED"),this.name="NotInitializedError",Object.setPrototypeOf(this,e.prototype)}},l=class e extends s{constructor(t,n){super(t,"NETWORK_ERROR",n),this.name="NetworkError",Object.setPrototypeOf(this,e.prototype)}},c=class e extends s{constructor(t){super(t,"BASKET_ERROR"),this.name="CartError",Object.setPrototypeOf(this,e.prototype)}},d=/\{[^{}]+\}/g;function p(e){let{baseUrl:t="",Request:n=globalThis.Request,fetch:o=globalThis.fetch,querySerializer:i,bodySerializer:r,pathSerializer:a,headers:s,requestInitExt:u,...l}={...e};u="object"==typeof process&&Number.parseInt(process?.versions?.node?.substring(0,2))>=18&&process.versions.undici?u:void 0,t=v(t);const c=[];async function d(e,d){const{baseUrl:p,fetch:f=o,Request:m=n,headers:_,params:w={},parseAs:S="json",querySerializer:k,bodySerializer:z=r??g,pathSerializer:O,body:x,middleware:E=[],...T}=d||{};let A=t;p&&(A=v(p)??t);let I="function"==typeof i?i:h(i);k&&(I="function"==typeof k?k:h({..."object"==typeof i?i:{},...k}));const $=O||a||y,C=void 0===x?void 0:z(x,b(s,_,w.header)),N=b(void 0===C||C instanceof FormData?{}:{"Content-Type":"application/json"},s,_,w.header),P=[...c,...E],R={redirect:"follow",...l,...T,body:C,headers:N};let U,q,j,D=new m(function(e,t){let n=`${t.baseUrl}${e}`;t.params?.path&&(n=t.pathSerializer(n,t.params.path));let o=t.querySerializer(t.params.query??{});o.startsWith("?")&&(o=o.substring(1));o&&(n+=`?${o}`);return n}(e,{baseUrl:A,params:w,querySerializer:I,pathSerializer:$}),R);for(const t in T)t in D||(D[t]=T[t]);if(P.length){U=Math.random().toString(36).slice(2,11),q=Object.freeze({baseUrl:A,fetch:f,parseAs:S,querySerializer:I,bodySerializer:z,pathSerializer:$});for(const t of P)if(t&&"object"==typeof t&&"function"==typeof t.onRequest){const n=await t.onRequest({request:D,schemaPath:e,params:w,options:q,id:U});if(n){if(!(n instanceof m)){if(n instanceof Response){j=n;break}throw new Error("onRequest: must return new Request() or Response() when modifying the request")}D=n}}}if(!j){try{j=await f(D,u)}catch(M){let t=M;if(P.length)for(let n=P.length-1;n>=0;n--){const o=P[n];if(o&&"object"==typeof o&&"function"==typeof o.onError){const n=await o.onError({request:D,error:t,schemaPath:e,params:w,options:q,id:U});if(n){if(n instanceof Response){t=void 0,j=n;break}if(n instanceof Error){t=n;continue}throw new Error("onError: must return new Response() or instance of Error")}}}if(t)throw t}if(P.length)for(let t=P.length-1;t>=0;t--){const n=P[t];if(n&&"object"==typeof n&&"function"==typeof n.onResponse){const t=await n.onResponse({request:D,response:j,schemaPath:e,params:w,options:q,id:U});if(t){if(!(t instanceof Response))throw new Error("onResponse: must return new Response() when modifying the response");j=t}}}}const Z=j.headers.get("Content-Length");if(204===j.status||"HEAD"===D.method||"0"===Z&&!j.headers.get("Transfer-Encoding")?.includes("chunked"))return j.ok?{data:void 0,response:j}:{error:void 0,response:j};if(j.ok){const e=async()=>{if("stream"===S)return j.body;if("json"===S&&!Z){const e=await j.text();return e?JSON.parse(e):void 0}return await j[S]()};return{data:await e(),response:j}}let L=await j.text();try{L=JSON.parse(L)}catch{}return{error:L,response:j}}return{request:(e,t,n)=>d(t,{...n,method:e.toUpperCase()}),GET:(e,t)=>d(e,{...t,method:"GET"}),PUT:(e,t)=>d(e,{...t,method:"PUT"}),POST:(e,t)=>d(e,{...t,method:"POST"}),DELETE:(e,t)=>d(e,{...t,method:"DELETE"}),OPTIONS:(e,t)=>d(e,{...t,method:"OPTIONS"}),HEAD:(e,t)=>d(e,{...t,method:"HEAD"}),PATCH:(e,t)=>d(e,{...t,method:"PATCH"}),TRACE:(e,t)=>d(e,{...t,method:"TRACE"}),use(...e){for(const t of e)if(t){if("object"!=typeof t||!("onRequest"in t||"onResponse"in t||"onError"in t))throw new Error("Middleware must be an object with one of `onRequest()`, `onResponse() or `onError()`");c.push(t)}},eject(...e){for(const t of e){const e=c.indexOf(t);-1!==e&&c.splice(e,1)}}}}function f(e,t,n){if(null==t)return"";if("object"==typeof t)throw new Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");return`${e}=${!0===n?.allowReserved?t:encodeURIComponent(t)}`}function m(e,t,n){if(!t||"object"!=typeof t)return"";const o=[],i={simple:",",label:".",matrix:";"}[n.style]||"&";if("deepObject"!==n.style&&!1===n.explode){for(const e in t)o.push(e,!0===n.allowReserved?t[e]:encodeURIComponent(t[e]));const i=o.join(",");switch(n.style){case"form":return`${e}=${i}`;case"label":return`.${i}`;case"matrix":return`;${e}=${i}`;default:return i}}for(const a in t){const i="deepObject"===n.style?`${e}[${a}]`:a;o.push(f(i,t[a],n))}const r=o.join(i);return"label"===n.style||"matrix"===n.style?`${i}${r}`:r}function _(e,t,n){if(!Array.isArray(t))return"";if(!1===n.explode){const o={form:",",spaceDelimited:"%20",pipeDelimited:"|"}[n.style]||",",i=(!0===n.allowReserved?t:t.map(e=>encodeURIComponent(e))).join(o);switch(n.style){case"simple":return i;case"label":return`.${i}`;case"matrix":return`;${e}=${i}`;default:return`${e}=${i}`}}const o={simple:",",label:".",matrix:";"}[n.style]||"&",i=[];for(const r of t)"simple"===n.style||"label"===n.style?i.push(!0===n.allowReserved?r:encodeURIComponent(r)):i.push(f(e,r,n));return"label"===n.style||"matrix"===n.style?`${o}${i.join(o)}`:i.join(o)}function h(e){return function(t){const n=[];if(t&&"object"==typeof t)for(const o in t){const i=t[o];if(null!=i)if(Array.isArray(i)){if(0===i.length)continue;n.push(_(o,i,{style:"form",explode:!0,...e?.array,allowReserved:e?.allowReserved||!1}))}else"object"!=typeof i?n.push(f(o,i,e)):n.push(m(o,i,{style:"deepObject",explode:!0,...e?.object,allowReserved:e?.allowReserved||!1}))}return n.join("&")}}function y(e,t){let n=e;for(const o of e.match(d)??[]){let e=o.substring(1,o.length-1),i=!1,r="simple";if(e.endsWith("*")&&(i=!0,e=e.substring(0,e.length-1)),e.startsWith(".")?(r="label",e=e.substring(1)):e.startsWith(";")&&(r="matrix",e=e.substring(1)),!t||void 0===t[e]||null===t[e])continue;const a=t[e];Array.isArray(a)?n=n.replace(o,_(e,a,{style:r,explode:i})):n="object"!=typeof a?"matrix"!==r?n.replace(o,"label"===r?`.${encodeURIComponent(a)}`:encodeURIComponent(a)):n.replace(o,`;${f(e,a)}`):n.replace(o,m(e,a,{style:r,explode:i}))}return n}function g(e,t){return e instanceof FormData?e:t&&"application/x-www-form-urlencoded"===(t.get instanceof Function?t.get("Content-Type")??t.get("content-type"):t["Content-Type"]??t["content-type"])?new URLSearchParams(e).toString():JSON.stringify(e)}function b(...e){const t=new Headers;for(const n of e){if(!n||"object"!=typeof n)continue;const e=n instanceof Headers?n.entries():Object.entries(n);for(const[n,o]of e)if(null===o)t.delete(n);else if(Array.isArray(o))for(const e of o)t.append(n,e);else void 0!==o&&t.set(n,o)}return t}function v(e){return e.endsWith("/")?e.substring(0,e.length-1):e}var w={header:{title:"Header",aliases:["Header Menu"]},footer:{title:"Footer",aliases:["Footer Links","Legal Links"]}};var S;Object.keys(w);function k(e,t,n){function o(n,o){if(n._zod||Object.defineProperty(n,"_zod",{value:{def:o,constr:a,traits:new Set},enumerable:!1}),n._zod.traits.has(e))return;n._zod.traits.add(e),t(n,o);const i=a.prototype,r=Object.keys(i);for(let e=0;e<r.length;e++){const t=r[e];t in n||(n[t]=i[t].bind(n))}}const i=n?.Parent??Object;class r extends i{}function a(e){var t;const i=n?.Parent?new r:this;o(i,e),(t=i._zod).deferred??(t.deferred=[]);for(const n of i._zod.deferred)n();return i}return Object.defineProperty(r,"name",{value:e}),Object.defineProperty(a,"init",{value:o}),Object.defineProperty(a,Symbol.hasInstance,{value:t=>!!(n?.Parent&&t instanceof n.Parent)||t?._zod?.traits?.has(e)}),Object.defineProperty(a,"name",{value:e}),a}var z=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},O=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}};(S=globalThis).__zod_globalConfig??(S.__zod_globalConfig={});var x=globalThis.__zod_globalConfig;function E(e){return e&&Object.assign(x,e),x}function T(e){const t=Object.values(e).filter(e=>"number"==typeof e);return Object.entries(e).filter(([e,n])=>-1===t.indexOf(+e)).map(([e,t])=>t)}function A(e,t){return"bigint"==typeof t?t.toString():t}function I(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function $(e){return null==e}function C(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}var N=Symbol("evaluating");function P(e,t,n){let o;Object.defineProperty(e,t,{get(){if(o!==N)return void 0===o&&(o=N,o=n()),o},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function R(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function U(...e){const t={};for(const n of e){const e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}function q(e){return JSON.stringify(e)}var j="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function D(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}var Z=I(()=>{if(x.jitless)return!1;if("undefined"!=typeof navigator&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch(e){return!1}});function L(e){if(!1===D(e))return!1;const t=e.constructor;if(void 0===t)return!0;if("function"!=typeof t)return!0;const n=t.prototype;return!1!==D(n)&&!1!==Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")}function M(e){return L(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}var F=new Set(["string","number","symbol"]);function B(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Y(e,t,n){const o=new e._zod.constr(t??e._zod.def);return t&&!n?.parent||(o._zod.parent=e),o}function J(e){const t=e;if(!t)return{};if("string"==typeof t)return{error:()=>t};if(void 0!==t?.message){if(void 0!==t?.error)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,"string"==typeof t.error?{...t,error:()=>t.error}:t}var W={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function V(e,t=0){if(!0===e.aborted)return!0;for(let n=t;n<e.issues.length;n++)if(!0!==e.issues[n]?.continue)return!0;return!1}function G(e,t=0){if(!0===e.aborted)return!0;for(let n=t;n<e.issues.length;n++)if(!1===e.issues[n]?.continue)return!0;return!1}function H(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function K(e){return"string"==typeof e?e:e?.message}function X(e,t,n){const o=e.message?e.message:K(e.inst?._zod.def?.error?.(e))??K(t?.error?.(e))??K(n.customError?.(e))??K(n.localeError?.(e))??"Invalid input",{inst:i,continue:r,input:a,...s}=e;return s.path??(s.path=[]),s.message=o,t?.reportInput&&(s.input=a),s}function Q(e){return Array.isArray(e)?"array":"string"==typeof e?"string":"unknown"}function ee(...e){const[t,n,o]=e;return"string"==typeof t?{message:t,code:"custom",input:n,inst:o}:{...t}}var te=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,A,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},ne=k("$ZodError",te),oe=k("$ZodError",te,{Parent:Error});var ie=e=>(t,n,o,i)=>{const r=o?{...o,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},r);if(a instanceof Promise)throw new z;if(a.issues.length){const t=new(i?.Err??e)(a.issues.map(e=>X(e,r,E())));throw j(t,i?.callee),t}return a.value},re=e=>async(t,n,o,i)=>{const r=o?{...o,async:!0}:{async:!0};let a=t._zod.run({value:n,issues:[]},r);if(a instanceof Promise&&(a=await a),a.issues.length){const t=new(i?.Err??e)(a.issues.map(e=>X(e,r,E())));throw j(t,i?.callee),t}return a.value},ae=e=>(t,n,o)=>{const i=o?{...o,async:!1}:{async:!1},r=t._zod.run({value:n,issues:[]},i);if(r instanceof Promise)throw new z;return r.issues.length?{success:!1,error:new(e??ne)(r.issues.map(e=>X(e,i,E())))}:{success:!0,data:r.value}},se=ae(oe),ue=e=>async(t,n,o)=>{const i=o?{...o,async:!0}:{async:!0};let r=t._zod.run({value:n,issues:[]},i);return r instanceof Promise&&(r=await r),r.issues.length?{success:!1,error:new e(r.issues.map(e=>X(e,i,E())))}:{success:!0,data:r.value}},le=ue(oe),ce=e=>(t,n,o)=>{const i=o?{...o,direction:"backward"}:{direction:"backward"};return ie(e)(t,n,i)},de=e=>(t,n,o)=>ie(e)(t,n,o),pe=e=>async(t,n,o)=>{const i=o?{...o,direction:"backward"}:{direction:"backward"};return re(e)(t,n,i)},fe=e=>async(t,n,o)=>re(e)(t,n,o),me=e=>(t,n,o)=>{const i=o?{...o,direction:"backward"}:{direction:"backward"};return ae(e)(t,n,i)},_e=e=>(t,n,o)=>ae(e)(t,n,o),he=e=>async(t,n,o)=>{const i=o?{...o,direction:"backward"}:{direction:"backward"};return ue(e)(t,n,i)},ye=e=>async(t,n,o)=>ue(e)(t,n,o),ge=/^[cC][0-9a-z]{6,}$/,be=/^[0-9a-z]+$/,ve=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,we=/^[0-9a-vA-V]{20}$/,Se=/^[A-Za-z0-9]{27}$/,ke=/^[a-zA-Z0-9_-]{21}$/,ze=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Oe=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,xe=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Ee=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var Te=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Ae=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,Ie=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,$e=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Ce=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Ne=/^[A-Za-z0-9_-]*$/,Pe=/^https?$/,Re=/^\+[1-9]\d{6,14}$/,Ue="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",qe=new RegExp(`^${Ue}$`);function je(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return"number"==typeof e.precision?-1===e.precision?`${t}`:0===e.precision?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}var De=/^-?\d+$/,Ze=/^-?\d+(?:\.\d+)?$/,Le=/^(?:true|false)$/i,Me=/^[^A-Z]*$/,Fe=/^[^a-z]*$/,Be=k("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),Ye={number:"number",bigint:"bigint",object:"date"},Je=k("$ZodCheckLessThan",(e,t)=>{Be.init(e,t);const n=Ye[typeof t.value];e._zod.onattach.push(e=>{const n=e._zod.bag,o=(t.inclusive?n.maximum:n.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<o&&(t.inclusive?n.maximum=t.value:n.exclusiveMaximum=t.value)}),e._zod.check=o=>{(t.inclusive?o.value<=t.value:o.value<t.value)||o.issues.push({origin:n,code:"too_big",maximum:"object"==typeof t.value?t.value.getTime():t.value,input:o.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),We=k("$ZodCheckGreaterThan",(e,t)=>{Be.init(e,t);const n=Ye[typeof t.value];e._zod.onattach.push(e=>{const n=e._zod.bag,o=(t.inclusive?n.minimum:n.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>o&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=o=>{(t.inclusive?o.value>=t.value:o.value>t.value)||o.issues.push({origin:n,code:"too_small",minimum:"object"==typeof t.value?t.value.getTime():t.value,input:o.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Ve=k("$ZodCheckMultipleOf",(e,t)=>{Be.init(e,t),e._zod.onattach.push(e=>{var n;(n=e._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");("bigint"==typeof n.value?n.value%t.value!==BigInt(0):0!==function(e,t){const n=e/t,o=Math.round(n),i=Number.EPSILON*Math.max(Math.abs(n),1);return Math.abs(n-o)<i?0:n-o}(n.value,t.value))&&n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),Ge=k("$ZodCheckNumberFormat",(e,t)=>{Be.init(e,t),t.format=t.format||"float64";const n=t.format?.includes("int"),o=n?"int":"number",[i,r]=W[t.format];e._zod.onattach.push(e=>{const o=e._zod.bag;o.format=t.format,o.minimum=i,o.maximum=r,n&&(o.pattern=De)}),e._zod.check=a=>{const s=a.value;if(n){if(!Number.isInteger(s))return void a.issues.push({expected:o,format:t.format,code:"invalid_type",continue:!1,input:s,inst:e});if(!Number.isSafeInteger(s))return void(s>0?a.issues.push({input:s,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:o,inclusive:!0,continue:!t.abort}):a.issues.push({input:s,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:o,inclusive:!0,continue:!t.abort}))}s<i&&a.issues.push({origin:"number",input:s,code:"too_small",minimum:i,inclusive:!0,inst:e,continue:!t.abort}),s>r&&a.issues.push({origin:"number",input:s,code:"too_big",maximum:r,inclusive:!0,inst:e,continue:!t.abort})}}),He=k("$ZodCheckMaxLength",(e,t)=>{var n;Be.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!$(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<n&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{const o=n.value;if(o.length<=t.maximum)return;const i=Q(o);n.issues.push({origin:i,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Ke=k("$ZodCheckMinLength",(e,t)=>{var n;Be.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!$(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{const o=n.value;if(o.length>=t.minimum)return;const i=Q(o);n.issues.push({origin:i,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Xe=k("$ZodCheckLengthEquals",(e,t)=>{var n;Be.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!$(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=n=>{const o=n.value,i=o.length;if(i===t.length)return;const r=Q(o),a=i>t.length;n.issues.push({origin:r,...a?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),Qe=k("$ZodCheckStringFormat",(e,t)=>{var n,o;Be.init(e,t),e._zod.onattach.push(e=>{const n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??(n.patterns=new Set),n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,t.pattern.test(n.value)||n.issues.push({origin:"string",code:"invalid_format",format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(o=e._zod).check??(o.check=()=>{})}),et=k("$ZodCheckRegex",(e,t)=>{Qe.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,t.pattern.test(n.value)||n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),tt=k("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Me),Qe.init(e,t)}),nt=k("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=Fe),Qe.init(e,t)}),ot=k("$ZodCheckIncludes",(e,t)=>{Be.init(e,t);const n=B(t.includes),o=new RegExp("number"==typeof t.position?`^.{${t.position}}${n}`:n);t.pattern=o,e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(o)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),it=k("$ZodCheckStartsWith",(e,t)=>{Be.init(e,t);const n=new RegExp(`^${B(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(n)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),rt=k("$ZodCheckEndsWith",(e,t)=>{Be.init(e,t);const n=new RegExp(`.*${B(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(n)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),at=k("$ZodCheckOverwrite",(e,t)=>{Be.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}),st=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if("function"==typeof e)return e(this,{execution:"sync"}),void e(this,{execution:"async"});const t=e.split("\n").filter(e=>e),n=Math.min(...t.map(e=>e.length-e.trimStart().length)),o=t.map(e=>e.slice(n)).map(e=>" ".repeat(2*this.indent)+e);for(const i of o)this.content.push(i)}compile(){const e=Function,t=this?.args;return new e(...t,[...(this?.content??[""]).map(e=>` ${e}`)].join("\n"))}},ut={major:4,minor:4,patch:3},lt=k("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=ut;const o=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&o.unshift(e);for(const i of o)for(const t of i._zod.onattach)t(e);if(0===o.length)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const t=(e,t,n)=>{let o,i=V(e);for(const r of t){if(r._zod.def.when){if(G(e))continue;if(!r._zod.def.when(e))continue}else if(i)continue;const t=e.issues.length,a=r._zod.check(e);if(a instanceof Promise&&!1===n?.async)throw new z;if(o||a instanceof Promise)o=(o??Promise.resolve()).then(async()=>{await a,e.issues.length!==t&&(i||(i=V(e,t)))});else{if(e.issues.length===t)continue;i||(i=V(e,t))}}return o?o.then(()=>e):e},n=(n,i,r)=>{if(V(n))return n.aborted=!0,n;const a=t(i,o,r);if(a instanceof Promise){if(!1===r.async)throw new z;return a.then(t=>e._zod.parse(t,r))}return e._zod.parse(a,r)};e._zod.run=(i,r)=>{if(r.skipChecks)return e._zod.parse(i,r);if("backward"===r.direction){const t=e._zod.parse({value:i.value,issues:[]},{...r,skipChecks:!0});return t instanceof Promise?t.then(e=>n(e,i,r)):n(t,i,r)}const a=e._zod.parse(i,r);if(a instanceof Promise){if(!1===r.async)throw new z;return a.then(e=>t(e,o,r))}return t(a,o,r)}}P(e,"~standard",()=>({validate:t=>{try{const n=se(e,t);return n.success?{value:n.data}:{issues:n.error?.issues}}catch(n){return le(e,t).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:"zod",version:1}))}),ct=k("$ZodString",(e,t)=>{var n;lt.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??(n=e._zod.bag,new RegExp(`^${n?`[\\s\\S]{${n?.minimum??0},${n?.maximum??""}}`:"[\\s\\S]*"}$`)),e._zod.parse=(n,o)=>{if(t.coerce)try{n.value=String(n.value)}catch(o){}return"string"==typeof n.value||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),dt=k("$ZodStringFormat",(e,t)=>{Qe.init(e,t),ct.init(e,t)}),pt=k("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Oe),dt.init(e,t)}),ft=k("$ZodUUID",(e,t)=>{if(t.version){const e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(void 0===e)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=xe(e))}else t.pattern??(t.pattern=xe());dt.init(e,t)}),mt=k("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Ee),dt.init(e,t)}),_t=k("$ZodURL",(e,t)=>{dt.init(e,t),e._zod.check=n=>{try{const o=n.value.trim();if(!t.normalize&&t.protocol?.source===Pe.source&&!/^https?:\/\//i.test(o))return void n.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:n.value,inst:e,continue:!t.abort});const i=new URL(o);return t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(":")?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),void(t.normalize?n.value=i.href:n.value=o)}catch(o){n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),ht=k("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),dt.init(e,t)}),yt=k("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=ke),dt.init(e,t)}),gt=k("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=ge),dt.init(e,t)}),bt=k("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=be),dt.init(e,t)}),vt=k("$ZodULID",(e,t)=>{t.pattern??(t.pattern=ve),dt.init(e,t)}),wt=k("$ZodXID",(e,t)=>{t.pattern??(t.pattern=we),dt.init(e,t)}),St=k("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=Se),dt.init(e,t)}),kt=k("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=function(e){const t=je({precision:e.precision}),n=["Z"];e.local&&n.push(""),e.offset&&n.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const o=`${t}(?:${n.join("|")})`;return new RegExp(`^${Ue}T(?:${o})$`)}(t)),dt.init(e,t)}),zt=k("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=qe),dt.init(e,t)}),Ot=k("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=new RegExp(`^${je(t)}$`)),dt.init(e,t)}),xt=k("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=ze),dt.init(e,t)}),Et=k("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=Te),dt.init(e,t),e._zod.bag.format="ipv4"}),Tt=k("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=Ae),dt.init(e,t),e._zod.bag.format="ipv6",e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:e,continue:!t.abort})}}}),At=k("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=Ie),dt.init(e,t)}),It=k("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=$e),dt.init(e,t),e._zod.check=n=>{const o=n.value.split("/");try{if(2!==o.length)throw new Error;const[e,t]=o;if(!t)throw new Error;const n=Number(t);if(`${n}`!==t)throw new Error;if(n<0||n>128)throw new Error;new URL(`http://[${e}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});function $t(e){if(""===e)return!0;if(/\s/.test(e))return!1;if(e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}var Ct=k("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=Ce),dt.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=n=>{$t(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});var Nt=k("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=Ne),dt.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=n=>{(function(e){if(!Ne.test(e))return!1;const t=e.replace(/[-_]/g,e=>"-"===e?"+":"/");return $t(t.padEnd(4*Math.ceil(t.length/4),"="))})(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),Pt=k("$ZodE164",(e,t)=>{t.pattern??(t.pattern=Re),dt.init(e,t)});var Rt=k("$ZodJWT",(e,t)=>{dt.init(e,t),e._zod.check=n=>{(function(e,t=null){try{const n=e.split(".");if(3!==n.length)return!1;const[o]=n;if(!o)return!1;const i=JSON.parse(atob(o));return!("typ"in i&&"JWT"!==i?.typ||!i.alg||t&&(!("alg"in i)||i.alg!==t))}catch{return!1}})(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),Ut=k("$ZodNumber",(e,t)=>{lt.init(e,t),e._zod.pattern=e._zod.bag.pattern??Ze,e._zod.parse=(n,o)=>{if(t.coerce)try{n.value=Number(n.value)}catch(a){}const i=n.value;if("number"==typeof i&&!Number.isNaN(i)&&Number.isFinite(i))return n;const r="number"==typeof i?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:i,inst:e,...r?{received:r}:{}}),n}}),qt=k("$ZodNumberFormat",(e,t)=>{Ge.init(e,t),Ut.init(e,t)}),jt=k("$ZodBoolean",(e,t)=>{lt.init(e,t),e._zod.pattern=Le,e._zod.parse=(n,o)=>{if(t.coerce)try{n.value=Boolean(n.value)}catch(r){}const i=n.value;return"boolean"==typeof i||n.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:e}),n}}),Dt=k("$ZodUnknown",(e,t)=>{lt.init(e,t),e._zod.parse=e=>e}),Zt=k("$ZodNever",(e,t)=>{lt.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:"never",code:"invalid_type",input:t.value,inst:e}),t)});function Lt(e,t,n){e.issues.length&&t.issues.push(...H(n,e.issues)),t.value[n]=e.value}var Mt=k("$ZodArray",(e,t)=>{lt.init(e,t),e._zod.parse=(n,o)=>{const i=n.value;if(!Array.isArray(i))return n.issues.push({expected:"array",code:"invalid_type",input:i,inst:e}),n;n.value=Array(i.length);const r=[];for(let e=0;e<i.length;e++){const a=i[e],s=t.element._zod.run({value:a,issues:[]},o);s instanceof Promise?r.push(s.then(t=>Lt(t,n,e))):Lt(s,n,e)}return r.length?Promise.all(r).then(()=>n):n}});function Ft(e,t,n,o,i,r){const a=n in o;if(e.issues.length){if(i&&r&&!a)return;t.issues.push(...H(n,e.issues))}a||i?void 0===e.value?a&&(t.value[n]=void 0):t.value[n]=e.value:e.issues.length||t.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[n]})}function Bt(e){const t=Object.keys(e.shape);for(const i of t)if(!e.shape?.[i]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${i}": expected a Zod schema`);const n=(o=e.shape,Object.keys(o).filter(e=>"optional"===o[e]._zod.optin&&"optional"===o[e]._zod.optout));var o;return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function Yt(e,t,n,o,i,r){const a=[],s=i.keySet,u=i.catchall._zod,l=u.def.type,c="optional"===u.optin,d="optional"===u.optout;for(const p in t){if("__proto__"===p)continue;if(s.has(p))continue;if("never"===l){a.push(p);continue}const i=u.run({value:t[p],issues:[]},o);i instanceof Promise?e.push(i.then(e=>Ft(e,n,p,t,c,d))):Ft(i,n,p,t,c,d)}return a.length&&n.issues.push({code:"unrecognized_keys",keys:a,input:t,inst:r}),e.length?Promise.all(e).then(()=>n):n}var Jt=k("$ZodObject",(e,t)=>{if(lt.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){const e=t.shape;Object.defineProperty(t,"shape",{get:()=>{const n={...e};return Object.defineProperty(t,"shape",{value:n}),n}})}const n=I(()=>Bt(t));P(e._zod,"propValues",()=>{const e=t.shape,n={};for(const t in e){const o=e[t]._zod;if(o.values){n[t]??(n[t]=new Set);for(const e of o.values)n[t].add(e)}}return n});const o=D,i=t.catchall;let r;e._zod.parse=(t,a)=>{r??(r=n.value);const s=t.value;if(!o(s))return t.issues.push({expected:"object",code:"invalid_type",input:s,inst:e}),t;t.value={};const u=[],l=r.shape;for(const e of r.keys){const n=l[e],o="optional"===n._zod.optin,i="optional"===n._zod.optout,r=n._zod.run({value:s[e],issues:[]},a);r instanceof Promise?u.push(r.then(n=>Ft(n,t,e,s,o,i))):Ft(r,t,e,s,o,i)}return i?Yt(u,s,t,a,n.value,e):u.length?Promise.all(u).then(()=>t):t}}),Wt=k("$ZodObjectJIT",(e,t)=>{Jt.init(e,t);const n=e._zod.parse,o=I(()=>Bt(t));let i;const r=D,a=!x.jitless,s=a&&Z.value,u=t.catchall;let l;e._zod.parse=(c,d)=>{l??(l=o.value);const p=c.value;return r(p)?a&&s&&!1===d?.async&&!0!==d.jitless?(i||(i=(e=>{const t=new st(["shape","payload","ctx"]),n=o.value,i=e=>{const t=q(e);return`shape[${t}]._zod.run({ value: input[${t}], issues: [] }, ctx)`};t.write("const input = payload.value;");const r=Object.create(null);let a=0;for(const o of n.keys)r[o]="key_"+a++;t.write("const newResult = {};");for(const o of n.keys){const n=r[o],a=q(o),s=e[o],u="optional"===s?._zod?.optin,l="optional"===s?._zod?.optout;t.write(`const ${n} = ${i(o)};`),u&&l?t.write(`\n if (${n}.issues.length) {\n if (${a} in input) {\n payload.issues = payload.issues.concat(${n}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${a}, ...iss.path] : [${a}]\n })));\n }\n }\n \n if (${n}.value === undefined) {\n if (${a} in input) {\n newResult[${a}] = undefined;\n }\n } else {\n newResult[${a}] = ${n}.value;\n }\n \n `):u?t.write(`\n if (${n}.issues.length) {\n payload.issues = payload.issues.concat(${n}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${a}, ...iss.path] : [${a}]\n })));\n }\n \n if (${n}.value === undefined) {\n if (${a} in input) {\n newResult[${a}] = undefined;\n }\n } else {\n newResult[${a}] = ${n}.value;\n }\n \n `):t.write(`\n const ${n}_present = ${a} in input;\n if (${n}.issues.length) {\n payload.issues = payload.issues.concat(${n}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${a}, ...iss.path] : [${a}]\n })));\n }\n if (!${n}_present && !${n}.issues.length) {\n payload.issues.push({\n code: "invalid_type",\n expected: "nonoptional",\n input: undefined,\n path: [${a}]\n });\n }\n\n if (${n}_present) {\n if (${n}.value === undefined) {\n newResult[${a}] = undefined;\n } else {\n newResult[${a}] = ${n}.value;\n }\n }\n\n `)}t.write("payload.value = newResult;"),t.write("return payload;");const s=t.compile();return(t,n)=>s(e,t,n)})(t.shape)),c=i(c,d),u?Yt([],p,c,d,l,e):c):n(c,d):(c.issues.push({expected:"object",code:"invalid_type",input:p,inst:e}),c)}});function Vt(e,t,n,o){for(const r of e)if(0===r.issues.length)return t.value=r.value,t;const i=e.filter(e=>!V(e));return 1===i.length?(t.value=i[0].value,i[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>X(e,o,E())))}),t)}var Gt=k("$ZodUnion",(e,t)=>{lt.init(e,t),P(e._zod,"optin",()=>t.options.some(e=>"optional"===e._zod.optin)?"optional":void 0),P(e._zod,"optout",()=>t.options.some(e=>"optional"===e._zod.optout)?"optional":void 0),P(e._zod,"values",()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),P(e._zod,"pattern",()=>{if(t.options.every(e=>e._zod.pattern)){const e=t.options.map(e=>e._zod.pattern);return new RegExp(`^(${e.map(e=>C(e.source)).join("|")})$`)}});const n=1===t.options.length?t.options[0]._zod.run:null;e._zod.parse=(o,i)=>{if(n)return n(o,i);let r=!1;const a=[];for(const e of t.options){const t=e._zod.run({value:o.value,issues:[]},i);if(t instanceof Promise)a.push(t),r=!0;else{if(0===t.issues.length)return t;a.push(t)}}return r?Promise.all(a).then(t=>Vt(t,o,e,i)):Vt(a,o,e,i)}}),Ht=k("$ZodDiscriminatedUnion",(e,t)=>{t.inclusive=!1,Gt.init(e,t);const n=e._zod.parse;P(e._zod,"propValues",()=>{const e={};for(const n of t.options){const o=n._zod.propValues;if(!o||0===Object.keys(o).length)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(n)}"`);for(const[t,n]of Object.entries(o)){e[t]||(e[t]=new Set);for(const o of n)e[t].add(o)}}return e});const o=I(()=>{const e=t.options,n=new Map;for(const o of e){const e=o._zod.propValues?.[t.discriminator];if(!e||0===e.size)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(o)}"`);for(const t of e){if(n.has(t))throw new Error(`Duplicate discriminator value "${String(t)}"`);n.set(t,o)}}return n});e._zod.parse=(i,r)=>{const a=i.value;if(!D(a))return i.issues.push({code:"invalid_type",expected:"object",input:a,inst:e}),i;const s=o.value.get(a?.[t.discriminator]);return s?s._zod.run(i,r):t.unionFallback||"backward"===r.direction?n(i,r):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:t.discriminator,options:Array.from(o.value.keys()),input:a,path:[t.discriminator],inst:e}),i)}}),Kt=k("$ZodIntersection",(e,t)=>{lt.init(e,t),e._zod.parse=(e,n)=>{const o=e.value,i=t.left._zod.run({value:o,issues:[]},n),r=t.right._zod.run({value:o,issues:[]},n);return i instanceof Promise||r instanceof Promise?Promise.all([i,r]).then(([t,n])=>Qt(e,t,n)):Qt(e,i,r)}});function Xt(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e===+t)return{valid:!0,data:e};if(L(e)&&L(t)){const n=Object.keys(t),o=Object.keys(e).filter(e=>-1!==n.indexOf(e)),i={...e,...t};for(const r of o){const n=Xt(e[r],t[r]);if(!n.valid)return{valid:!1,mergeErrorPath:[r,...n.mergeErrorPath]};i[r]=n.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const n=[];for(let o=0;o<e.length;o++){const i=Xt(e[o],t[o]);if(!i.valid)return{valid:!1,mergeErrorPath:[o,...i.mergeErrorPath]};n.push(i.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function Qt(e,t,n){const o=new Map;let i;for(const s of t.issues)if("unrecognized_keys"===s.code){i??(i=s);for(const e of s.keys)o.has(e)||o.set(e,{}),o.get(e).l=!0}else e.issues.push(s);for(const s of n.issues)if("unrecognized_keys"===s.code)for(const e of s.keys)o.has(e)||o.set(e,{}),o.get(e).r=!0;else e.issues.push(s);const r=[...o].filter(([,e])=>e.l&&e.r).map(([e])=>e);if(r.length&&i&&e.issues.push({...i,keys:r}),V(e))return e;const a=Xt(t.value,n.value);if(!a.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(a.mergeErrorPath)}`);return e.value=a.data,e}var en=k("$ZodRecord",(e,t)=>{lt.init(e,t),e._zod.parse=(n,o)=>{const i=n.value;if(!L(i))return n.issues.push({expected:"record",code:"invalid_type",input:i,inst:e}),n;const r=[],a=t.keyType._zod.values;if(a){n.value={};const s=new Set;for(const l of a)if("string"==typeof l||"number"==typeof l||"symbol"==typeof l){s.add("number"==typeof l?l.toString():l);const a=t.keyType._zod.run({value:l,issues:[]},o);if(a instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(a.issues.length){n.issues.push({code:"invalid_key",origin:"record",issues:a.issues.map(e=>X(e,o,E())),input:l,path:[l],inst:e});continue}const u=a.value,c=t.valueType._zod.run({value:i[l],issues:[]},o);c instanceof Promise?r.push(c.then(e=>{e.issues.length&&n.issues.push(...H(l,e.issues)),n.value[u]=e.value})):(c.issues.length&&n.issues.push(...H(l,c.issues)),n.value[u]=c.value)}let u;for(const e in i)s.has(e)||(u=u??[],u.push(e));u&&u.length>0&&n.issues.push({code:"unrecognized_keys",input:i,inst:e,keys:u})}else{n.value={};for(const a of Reflect.ownKeys(i)){if("__proto__"===a)continue;if(!Object.prototype.propertyIsEnumerable.call(i,a))continue;let s=t.keyType._zod.run({value:a,issues:[]},o);if(s instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if("string"==typeof a&&Ze.test(a)&&s.issues.length){const e=t.keyType._zod.run({value:Number(a),issues:[]},o);if(e instanceof Promise)throw new Error("Async schemas not supported in object keys currently");0===e.issues.length&&(s=e)}if(s.issues.length){"loose"===t.mode?n.value[a]=i[a]:n.issues.push({code:"invalid_key",origin:"record",issues:s.issues.map(e=>X(e,o,E())),input:a,path:[a],inst:e});continue}const u=t.valueType._zod.run({value:i[a],issues:[]},o);u instanceof Promise?r.push(u.then(e=>{e.issues.length&&n.issues.push(...H(a,e.issues)),n.value[s.value]=e.value})):(u.issues.length&&n.issues.push(...H(a,u.issues)),n.value[s.value]=u.value)}}return r.length?Promise.all(r).then(()=>n):n}}),tn=k("$ZodEnum",(e,t)=>{lt.init(e,t);const n=T(t.entries),o=new Set(n);e._zod.values=o,e._zod.pattern=new RegExp(`^(${n.filter(e=>F.has(typeof e)).map(e=>"string"==typeof e?B(e):e.toString()).join("|")})$`),e._zod.parse=(t,i)=>{const r=t.value;return o.has(r)||t.issues.push({code:"invalid_value",values:n,input:r,inst:e}),t}}),nn=k("$ZodLiteral",(e,t)=>{if(lt.init(e,t),0===t.values.length)throw new Error("Cannot create literal schema with no valid values");const n=new Set(t.values);e._zod.values=n,e._zod.pattern=new RegExp(`^(${t.values.map(e=>"string"==typeof e?B(e):e?B(e.toString()):String(e)).join("|")})$`),e._zod.parse=(o,i)=>{const r=o.value;return n.has(r)||o.issues.push({code:"invalid_value",values:t.values,input:r,inst:e}),o}}),on=k("$ZodTransform",(e,t)=>{lt.init(e,t),e._zod.optin="optional",e._zod.parse=(n,o)=>{if("backward"===o.direction)throw new O(e.constructor.name);const i=t.transform(n.value,n);if(o.async)return(i instanceof Promise?i:Promise.resolve(i)).then(e=>(n.value=e,n.fallback=!0,n));if(i instanceof Promise)throw new z;return n.value=i,n.fallback=!0,n}});function rn(e,t){return void 0===t&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}var an=k("$ZodOptional",(e,t)=>{lt.init(e,t),e._zod.optin="optional",e._zod.optout="optional",P(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),P(e._zod,"pattern",()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${C(e.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if("optional"===t.innerType._zod.optin){const o=e.value,i=t.innerType._zod.run(e,n);return i instanceof Promise?i.then(e=>rn(e,o)):rn(i,o)}return void 0===e.value?e:t.innerType._zod.run(e,n)}}),sn=k("$ZodExactOptional",(e,t)=>{an.init(e,t),P(e._zod,"values",()=>t.innerType._zod.values),P(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(e,n)=>t.innerType._zod.run(e,n)}),un=k("$ZodNullable",(e,t)=>{lt.init(e,t),P(e._zod,"optin",()=>t.innerType._zod.optin),P(e._zod,"optout",()=>t.innerType._zod.optout),P(e._zod,"pattern",()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${C(e.source)}|null)$`):void 0}),P(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>null===e.value?e:t.innerType._zod.run(e,n)}),ln=k("$ZodDefault",(e,t)=>{lt.init(e,t),e._zod.optin="optional",P(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);if(void 0===e.value)return e.value=t.defaultValue,e;const o=t.innerType._zod.run(e,n);return o instanceof Promise?o.then(e=>cn(e,t)):cn(o,t)}});function cn(e,t){return void 0===e.value&&(e.value=t.defaultValue),e}var dn=k("$ZodPrefault",(e,t)=>{lt.init(e,t),e._zod.optin="optional",P(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>("backward"===n.direction||void 0===e.value&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),pn=k("$ZodNonOptional",(e,t)=>{lt.init(e,t),P(e._zod,"values",()=>{const e=t.innerType._zod.values;return e?new Set([...e].filter(e=>void 0!==e)):void 0}),e._zod.parse=(n,o)=>{const i=t.innerType._zod.run(n,o);return i instanceof Promise?i.then(t=>fn(t,e)):fn(i,e)}});function fn(e,t){return e.issues.length||void 0!==e.value||e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}var mn=k("$ZodCatch",(e,t)=>{lt.init(e,t),e._zod.optin="optional",P(e._zod,"optout",()=>t.innerType._zod.optout),P(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);const o=t.innerType._zod.run(e,n);return o instanceof Promise?o.then(o=>(e.value=o.value,o.issues.length&&(e.value=t.catchValue({...e,error:{issues:o.issues.map(e=>X(e,n,E()))},input:e.value}),e.issues=[],e.fallback=!0),e)):(e.value=o.value,o.issues.length&&(e.value=t.catchValue({...e,error:{issues:o.issues.map(e=>X(e,n,E()))},input:e.value}),e.issues=[],e.fallback=!0),e)}}),_n=k("$ZodPipe",(e,t)=>{lt.init(e,t),P(e._zod,"values",()=>t.in._zod.values),P(e._zod,"optin",()=>t.in._zod.optin),P(e._zod,"optout",()=>t.out._zod.optout),P(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if("backward"===n.direction){const o=t.out._zod.run(e,n);return o instanceof Promise?o.then(e=>hn(e,t.in,n)):hn(o,t.in,n)}const o=t.in._zod.run(e,n);return o instanceof Promise?o.then(e=>hn(e,t.out,n)):hn(o,t.out,n)}});function hn(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues,fallback:e.fallback},n)}var yn=k("$ZodReadonly",(e,t)=>{lt.init(e,t),P(e._zod,"propValues",()=>t.innerType._zod.propValues),P(e._zod,"values",()=>t.innerType._zod.values),P(e._zod,"optin",()=>t.innerType?._zod?.optin),P(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);const o=t.innerType._zod.run(e,n);return o instanceof Promise?o.then(gn):gn(o)}});function gn(e){return e.value=Object.freeze(e.value),e}var bn,vn=k("$ZodCustom",(e,t)=>{Be.init(e,t),lt.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{const o=n.value,i=t.fn(o);if(i instanceof Promise)return i.then(t=>wn(t,n,o,e));wn(i,n,o,e)}});function wn(e,t,n,o){if(!e){const e={code:"custom",input:n,inst:o,path:[...o._zod.def.path??[]],continue:!o._zod.def.abort};o._zod.def.params&&(e.params=o._zod.def.params),t.issues.push(ee(e))}}var Sn=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){const n=t[0];return this._map.set(e,n),n&&"object"==typeof n&&"id"in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){const t=this._map.get(e);return t&&"object"==typeof t&&"id"in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){const t=e._zod.parent;if(t){const n={...this.get(t)??{}};delete n.id;const o={...n,...this._map.get(e)};return Object.keys(o).length?o:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};(bn=globalThis).__zod_globalRegistry??(bn.__zod_globalRegistry=new Sn);var kn=globalThis.__zod_globalRegistry;function zn(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...J(t)})}function On(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...J(t)})}function xn(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...J(t)})}function En(e,t){return new Je({check:"less_than",...J(t),value:e,inclusive:!1})}function Tn(e,t){return new Je({check:"less_than",...J(t),value:e,inclusive:!0})}function An(e,t){return new We({check:"greater_than",...J(t),value:e,inclusive:!1})}function In(e,t){return new We({check:"greater_than",...J(t),value:e,inclusive:!0})}function $n(e,t){return new Ve({check:"multiple_of",...J(t),value:e})}function Cn(e,t){return new He({check:"max_length",...J(t),maximum:e})}function Nn(e,t){return new Ke({check:"min_length",...J(t),minimum:e})}function Pn(e,t){return new Xe({check:"length_equals",...J(t),length:e})}function Rn(e){return new at({check:"overwrite",tx:e})}function Un(e,t){const n=new Be({check:"custom",...J(t)});return n._zod.check=e,n}function qn(e){let t=e?.target??"draft-2020-12";return"draft-4"===t&&(t="draft-04"),"draft-7"===t&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??kn,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function jn(e,t,n={path:[],schemaPath:[]}){var o;const i=e._zod.def,r=t.seen.get(e);if(r)return r.count++,n.schemaPath.includes(e)&&(r.cycle=n.path),r.schema;const a={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,a);const s=e._zod.toJSONSchema?.();if(s)a.schema=s;else{const o={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,a.schema,o);else{const n=a.schema,r=t.processors[i.type];if(!r)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);r(e,t,n,o)}const r=e._zod.parent;r&&(a.ref||(a.ref=r),jn(r,t,o),t.seen.get(r).isParent=!0)}const u=t.metadataRegistry.get(e);return u&&Object.assign(a.schema,u),"input"===t.io&&Ln(e)&&(delete a.schema.examples,delete a.schema.default),"input"===t.io&&"_prefault"in a.schema&&((o=a.schema).default??(o.default=a.schema._prefault)),delete a.schema._prefault,t.seen.get(e).schema}function Dn(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const o=new Map;for(const r of e.seen.entries()){const t=e.metadataRegistry.get(r[0])?.id;if(t){const e=o.get(t);if(e&&e!==r[0])throw new Error(`Duplicate schema id "${t}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);o.set(t,r[0])}}const i=t=>{if(t[1].schema.$ref)return;const o=t[1],{ref:i,defId:r}=(t=>{const o="draft-2020-12"===e.target?"$defs":"definitions";if(e.external){const n=e.external.registry.get(t[0])?.id,i=e.external.uri??(e=>e);if(n)return{ref:i(n)};const r=t[1].defId??t[1].schema.id??"schema"+e.counter++;return t[1].defId=r,{defId:r,ref:`${i("__shared")}#/${o}/${r}`}}if(t[1]===n)return{ref:"#"};const i=`#/${o}/`,r=t[1].schema.id??"__schema"+e.counter++;return{defId:r,ref:i+r}})(t);o.def={...o.schema},r&&(o.defId=r);const a=o.schema;for(const e in a)delete a[e];a.$ref=i};if("throw"===e.cycles)for(const r of e.seen.entries()){const e=r[1];if(e.cycle)throw new Error(`Cycle detected: #/${e.cycle?.join("/")}/<root>\n\nSet the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const r of e.seen.entries()){const n=r[1];if(t!==r[0]){if(e.external){const n=e.external.registry.get(r[0])?.id;if(t!==r[0]&&n){i(r);continue}}(e.metadataRegistry.get(r[0])?.id||n.cycle||n.count>1&&"ref"===e.reused)&&i(r)}else i(r)}}function Zn(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const o=t=>{const n=e.seen.get(t);if(null===n.ref)return;const i=n.def??n.schema,r={...i},a=n.ref;if(n.ref=null,a){o(a);const n=e.seen.get(a),s=n.schema;if(!s.$ref||"draft-07"!==e.target&&"draft-04"!==e.target&&"openapi-3.0"!==e.target?Object.assign(i,s):(i.allOf=i.allOf??[],i.allOf.push(s)),Object.assign(i,r),t._zod.parent===a)for(const e in i)"$ref"!==e&&"allOf"!==e&&(e in r||delete i[e]);if(s.$ref&&n.def)for(const e in i)"$ref"!==e&&"allOf"!==e&&e in n.def&&JSON.stringify(i[e])===JSON.stringify(n.def[e])&&delete i[e]}const s=t._zod.parent;if(s&&s!==a){o(s);const t=e.seen.get(s);if(t?.schema.$ref&&(i.$ref=t.schema.$ref,t.def))for(const e in i)"$ref"!==e&&"allOf"!==e&&e in t.def&&JSON.stringify(i[e])===JSON.stringify(t.def[e])&&delete i[e]}e.override({zodSchema:t,jsonSchema:i,path:n.path??[]})};for(const u of[...e.seen.entries()].reverse())o(u[0]);const i={};if("draft-2020-12"===e.target?i.$schema="https://json-schema.org/draft/2020-12/schema":"draft-07"===e.target?i.$schema="http://json-schema.org/draft-07/schema#":"draft-04"===e.target?i.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const n=e.external.registry.get(t)?.id;if(!n)throw new Error("Schema is missing an `id` property");i.$id=e.external.uri(n)}Object.assign(i,n.def??n.schema);const r=e.metadataRegistry.get(t)?.id;void 0!==r&&i.id===r&&delete i.id;const a=e.external?.defs??{};for(const u of e.seen.entries()){const e=u[1];e.def&&e.defId&&(e.def.id===e.defId&&delete e.def.id,a[e.defId]=e.def)}e.external||Object.keys(a).length>0&&("draft-2020-12"===e.target?i.$defs=a:i.definitions=a);try{const n=JSON.parse(JSON.stringify(i));return Object.defineProperty(n,"~standard",{value:{...t["~standard"],jsonSchema:{input:Mn(t,"input",e.processors),output:Mn(t,"output",e.processors)}},enumerable:!1,writable:!1}),n}catch(s){throw new Error("Error converting schema to JSON.")}}function Ln(e,t){const n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);const o=e._zod.def;if("transform"===o.type)return!0;if("array"===o.type)return Ln(o.element,n);if("set"===o.type)return Ln(o.valueType,n);if("lazy"===o.type)return Ln(o.getter(),n);if("promise"===o.type||"optional"===o.type||"nonoptional"===o.type||"nullable"===o.type||"readonly"===o.type||"default"===o.type||"prefault"===o.type)return Ln(o.innerType,n);if("intersection"===o.type)return Ln(o.left,n)||Ln(o.right,n);if("record"===o.type||"map"===o.type)return Ln(o.keyType,n)||Ln(o.valueType,n);if("pipe"===o.type)return!!e._zod.traits.has("$ZodCodec")||(Ln(o.in,n)||Ln(o.out,n));if("object"===o.type){for(const e in o.shape)if(Ln(o.shape[e],n))return!0;return!1}if("union"===o.type){for(const e of o.options)if(Ln(e,n))return!0;return!1}if("tuple"===o.type){for(const e of o.items)if(Ln(e,n))return!0;return!(!o.rest||!Ln(o.rest,n))}return!1}var Mn=(e,t,n={})=>o=>{const{libraryOptions:i,target:r}=o??{},a=qn({...i??{},target:r,io:t,processors:n});return jn(e,a),Dn(a,e),Zn(a,e)},Fn={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Bn=(e,t,n,o)=>{const i=e._zod.def;jn(i.innerType,t,o);t.seen.get(e).ref=i.innerType},Yn=k("ZodISODateTime",(e,t)=>{kt.init(e,t),vo.init(e,t)});function Jn(e){return function(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...J(t)})}(Yn,e)}var Wn=k("ZodISODate",(e,t)=>{zt.init(e,t),vo.init(e,t)});function Vn(e){return function(e,t){return new e({type:"string",format:"date",check:"string_format",...J(t)})}(Wn,e)}var Gn=k("ZodISOTime",(e,t)=>{Ot.init(e,t),vo.init(e,t)});function Hn(e){return function(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...J(t)})}(Gn,e)}var Kn=k("ZodISODuration",(e,t)=>{xt.init(e,t),vo.init(e,t)});function Xn(e){return function(e,t){return new e({type:"string",format:"duration",check:"string_format",...J(t)})}(Kn,e)}var Qn=(e,t)=>{ne.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:t=>function(e,t=e=>e.message){const n={_errors:[]},o=(e,i=[])=>{for(const r of e.issues)if("invalid_union"===r.code&&r.errors.length)r.errors.map(e=>o({issues:e},[...i,...r.path]));else if("invalid_key"===r.code)o({issues:r.issues},[...i,...r.path]);else if("invalid_element"===r.code)o({issues:r.issues},[...i,...r.path]);else{const e=[...i,...r.path];if(0===e.length)n._errors.push(t(r));else{let o=n,i=0;for(;i<e.length;){const n=e[i];i!==e.length-1?o[n]=o[n]||{_errors:[]}:(o[n]=o[n]||{_errors:[]},o[n]._errors.push(t(r))),o=o[n],i++}}}};return o(e),n}(e,t)},flatten:{value:t=>function(e,t=e=>e.message){const n={},o=[];for(const i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):o.push(t(i));return{formErrors:o,fieldErrors:n}}(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,A,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,A,2)}},isEmpty:{get:()=>0===e.issues.length}})},eo=k("ZodError",Qn,{Parent:Error}),to=ie(eo),no=re(eo),oo=ae(eo),io=ue(eo),ro=ce(eo),ao=de(eo),so=pe(eo),uo=fe(eo),lo=me(eo),co=_e(eo),po=he(eo),fo=ye(eo),mo=new WeakMap;function _o(e,t,n){const o=Object.getPrototypeOf(e);let i=mo.get(o);if(i||(i=new Set,mo.set(o,i)),!i.has(t)){i.add(t);for(const e in n){const t=n[e];Object.defineProperty(o,e,{configurable:!0,enumerable:!1,get(){const n=t.bind(this);return Object.defineProperty(this,e,{configurable:!0,writable:!0,enumerable:!0,value:n}),n},set(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,enumerable:!0,value:t})}})}}}var ho=k("ZodType",(e,t)=>(lt.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:Mn(e,"input"),output:Mn(e,"output")}}),e.toJSONSchema=((e,t={})=>n=>{const o=qn({...n,processors:t});return jn(e,o),Dn(o,e),Zn(o,e)})(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.parse=(t,n)=>to(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>oo(e,t,n),e.parseAsync=async(t,n)=>no(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>io(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>ro(e,t,n),e.decode=(t,n)=>ao(e,t,n),e.encodeAsync=async(t,n)=>so(e,t,n),e.decodeAsync=async(t,n)=>uo(e,t,n),e.safeEncode=(t,n)=>lo(e,t,n),e.safeDecode=(t,n)=>co(e,t,n),e.safeEncodeAsync=async(t,n)=>po(e,t,n),e.safeDecodeAsync=async(t,n)=>fo(e,t,n),_o(e,"ZodType",{check(...e){const t=this.def;return this.clone(U(t,{checks:[...t.checks??[],...e.map(e=>"function"==typeof e?{_zod:{check:e,def:{check:"custom"},onattach:[]}}:e)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return Y(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(function(e,t={}){return function(e,t,n){return new e({type:"custom",check:"custom",fn:t,...J(n)})}(Oi,e,t)}(e,t))},superRefine(e,t){return this.check(function(e,t){return function(e,t){const n=Un(t=>(t.addIssue=e=>{if("string"==typeof e)t.issues.push(ee(e,t.value,n._zod.def));else{const o=e;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=t.value),o.inst??(o.inst=n),o.continue??(o.continue=!n._zod.def.abort),t.issues.push(ee(o))}},e(t.value,t)),t);return n}(e,t)}(e,t))},overwrite(e){return this.check(Rn(e))},optional(){return mi(this)},exactOptional(){return new _i({type:"optional",innerType:this})},nullable(){return yi(this)},nullish(){return mi(yi(this))},nonoptional(e){return function(e,t){return new vi({type:"nonoptional",innerType:e,...J(t)})}(this,e)},array(){return Xo(this)},or(e){return ni([this,e])},and(e){return new ri({type:"intersection",left:this,right:e})},transform(e){return ki(this,new pi({type:"transform",transform:e}))},default(e){return t=e,new gi({type:"default",innerType:this,get defaultValue(){return"function"==typeof t?t():M(t)}});var t},prefault(e){return t=e,new bi({type:"prefault",innerType:this,get defaultValue(){return"function"==typeof t?t():M(t)}});var t},catch(e){return new wi({type:"catch",innerType:this,catchValue:"function"==typeof(t=e)?t:()=>t});var t},pipe(e){return ki(this,e)},readonly(){return new zi({type:"readonly",innerType:this})},describe(e){const t=this.clone();return kn.add(t,{description:e}),t},meta(...e){if(0===e.length)return kn.get(this);const t=this.clone();return kn.add(t,e[0]),t},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e){return e(this)}}),Object.defineProperty(e,"description",{get:()=>kn.get(e)?.description,configurable:!0}),e)),yo=k("_ZodString",(e,t)=>{ct.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n)=>{const o=n;o.type="string";const{minimum:i,maximum:r,format:a,patterns:s,contentEncoding:u}=e._zod.bag;if("number"==typeof i&&(o.minLength=i),"number"==typeof r&&(o.maxLength=r),a&&(o.format=Fn[a]??a,""===o.format&&delete o.format,"time"===a&&delete o.format),u&&(o.contentEncoding=u),s&&s.size>0){const e=[...s];1===e.length?o.pattern=e[0].source:e.length>1&&(o.allOf=[...e.map(e=>({..."draft-07"===t.target||"draft-04"===t.target||"openapi-3.0"===t.target?{type:"string"}:{},pattern:e.source}))])}})(e,t,n);const n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,_o(e,"_ZodString",{regex(...e){return this.check(function(e,t){return new et({check:"string_format",format:"regex",...J(t),pattern:e})}(...e))},includes(...e){return this.check(function(e,t){return new ot({check:"string_format",format:"includes",...J(t),includes:e})}(...e))},startsWith(...e){return this.check(function(e,t){return new it({check:"string_format",format:"starts_with",...J(t),prefix:e})}(...e))},endsWith(...e){return this.check(function(e,t){return new rt({check:"string_format",format:"ends_with",...J(t),suffix:e})}(...e))},min(...e){return this.check(Nn(...e))},max(...e){return this.check(Cn(...e))},length(...e){return this.check(Pn(...e))},nonempty(...e){return this.check(Nn(1,...e))},lowercase(e){return this.check(function(e){return new tt({check:"string_format",format:"lowercase",...J(e)})}(e))},uppercase(e){return this.check(function(e){return new nt({check:"string_format",format:"uppercase",...J(e)})}(e))},trim(){return this.check(Rn(e=>e.trim()))},normalize(...e){return this.check(function(e){return Rn(t=>t.normalize(e))}(...e))},toLowerCase(){return this.check(Rn(e=>e.toLowerCase()))},toUpperCase(){return this.check(Rn(e=>e.toUpperCase()))},slugify(){return this.check(Rn(e=>function(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}(e)))}})}),go=k("ZodString",(e,t)=>{ct.init(e,t),yo.init(e,t),e.email=t=>e.check(zn(wo,t)),e.url=t=>e.check(xn(Oo,t)),e.jwt=t=>e.check(function(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...J(t)})}(Zo,t)),e.emoji=t=>e.check(function(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...J(t)})}(xo,t)),e.guid=t=>e.check(On(ko,t)),e.uuid=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...J(t)})}(zo,t)),e.uuidv4=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...J(t)})}(zo,t)),e.uuidv6=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...J(t)})}(zo,t)),e.uuidv7=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...J(t)})}(zo,t)),e.nanoid=t=>e.check(function(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...J(t)})}(Eo,t)),e.guid=t=>e.check(On(ko,t)),e.cuid=t=>e.check(function(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...J(t)})}(To,t)),e.cuid2=t=>e.check(function(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...J(t)})}(Ao,t)),e.ulid=t=>e.check(function(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...J(t)})}(Io,t)),e.base64=t=>e.check(function(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...J(t)})}(qo,t)),e.base64url=t=>e.check(function(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...J(t)})}(jo,t)),e.xid=t=>e.check(function(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...J(t)})}($o,t)),e.ksuid=t=>e.check(function(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...J(t)})}(Co,t)),e.ipv4=t=>e.check(function(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...J(t)})}(No,t)),e.ipv6=t=>e.check(function(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...J(t)})}(Po,t)),e.cidrv4=t=>e.check(function(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...J(t)})}(Ro,t)),e.cidrv6=t=>e.check(function(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...J(t)})}(Uo,t)),e.e164=t=>e.check(function(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...J(t)})}(Do,t)),e.datetime=t=>e.check(Jn(t)),e.date=t=>e.check(Vn(t)),e.time=t=>e.check(Hn(t)),e.duration=t=>e.check(Xn(t))});function bo(e){return function(e,t){return new e({type:"string",...J(t)})}(go,e)}var vo=k("ZodStringFormat",(e,t)=>{dt.init(e,t),yo.init(e,t)}),wo=k("ZodEmail",(e,t)=>{mt.init(e,t),vo.init(e,t)});function So(e){return zn(wo,e)}var ko=k("ZodGUID",(e,t)=>{pt.init(e,t),vo.init(e,t)}),zo=k("ZodUUID",(e,t)=>{ft.init(e,t),vo.init(e,t)}),Oo=k("ZodURL",(e,t)=>{_t.init(e,t),vo.init(e,t)});var xo=k("ZodEmoji",(e,t)=>{ht.init(e,t),vo.init(e,t)}),Eo=k("ZodNanoID",(e,t)=>{yt.init(e,t),vo.init(e,t)}),To=k("ZodCUID",(e,t)=>{gt.init(e,t),vo.init(e,t)}),Ao=k("ZodCUID2",(e,t)=>{bt.init(e,t),vo.init(e,t)}),Io=k("ZodULID",(e,t)=>{vt.init(e,t),vo.init(e,t)}),$o=k("ZodXID",(e,t)=>{wt.init(e,t),vo.init(e,t)}),Co=k("ZodKSUID",(e,t)=>{St.init(e,t),vo.init(e,t)}),No=k("ZodIPv4",(e,t)=>{Et.init(e,t),vo.init(e,t)}),Po=k("ZodIPv6",(e,t)=>{Tt.init(e,t),vo.init(e,t)}),Ro=k("ZodCIDRv4",(e,t)=>{At.init(e,t),vo.init(e,t)}),Uo=k("ZodCIDRv6",(e,t)=>{It.init(e,t),vo.init(e,t)}),qo=k("ZodBase64",(e,t)=>{Ct.init(e,t),vo.init(e,t)}),jo=k("ZodBase64URL",(e,t)=>{Nt.init(e,t),vo.init(e,t)}),Do=k("ZodE164",(e,t)=>{Pt.init(e,t),vo.init(e,t)}),Zo=k("ZodJWT",(e,t)=>{Rt.init(e,t),vo.init(e,t)}),Lo=k("ZodNumber",(e,t)=>{Ut.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n)=>{const o=n,{minimum:i,maximum:r,format:a,multipleOf:s,exclusiveMaximum:u,exclusiveMinimum:l}=e._zod.bag;"string"==typeof a&&a.includes("int")?o.type="integer":o.type="number";const c="number"==typeof l&&l>=(i??Number.NEGATIVE_INFINITY),d="number"==typeof u&&u<=(r??Number.POSITIVE_INFINITY),p="draft-04"===t.target||"openapi-3.0"===t.target;c?p?(o.minimum=l,o.exclusiveMinimum=!0):o.exclusiveMinimum=l:"number"==typeof i&&(o.minimum=i),d?p?(o.maximum=u,o.exclusiveMaximum=!0):o.exclusiveMaximum=u:"number"==typeof r&&(o.maximum=r),"number"==typeof s&&(o.multipleOf=s)})(e,t,n),_o(e,"ZodNumber",{gt(e,t){return this.check(An(e,t))},gte(e,t){return this.check(In(e,t))},min(e,t){return this.check(In(e,t))},lt(e,t){return this.check(En(e,t))},lte(e,t){return this.check(Tn(e,t))},max(e,t){return this.check(Tn(e,t))},int(e){return this.check(Bo(e))},safe(e){return this.check(Bo(e))},positive(e){return this.check(An(0,e))},nonnegative(e){return this.check(In(0,e))},negative(e){return this.check(En(0,e))},nonpositive(e){return this.check(Tn(0,e))},multipleOf(e,t){return this.check($n(e,t))},step(e,t){return this.check($n(e,t))},finite(){return this}});const n=e._zod.bag;e.minValue=Math.max(n.minimum??Number.NEGATIVE_INFINITY,n.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(n.maximum??Number.POSITIVE_INFINITY,n.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(n.format??"").includes("int")||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function Mo(e){return function(e,t){return new e({type:"number",checks:[],...J(t)})}(Lo,e)}var Fo=k("ZodNumberFormat",(e,t)=>{qt.init(e,t),Lo.init(e,t)});function Bo(e){return function(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...J(t)})}(Fo,e)}var Yo=k("ZodBoolean",(e,t)=>{jt.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(e,t,n)=>((e,t,n)=>{n.type="boolean"})(0,0,t)});function Jo(e){return function(e,t){return new e({type:"boolean",...J(t)})}(Yo,e)}var Wo=k("ZodUnknown",(e,t)=>{Dt.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(e,t,n)=>{}});function Vo(){return new Wo({type:"unknown"})}var Go=k("ZodNever",(e,t)=>{Zt.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(e,t,n)=>((e,t,n)=>{n.not={}})(0,0,t)});function Ho(e){return function(e,t){return new e({type:"never",...J(t)})}(Go,e)}var Ko=k("ZodArray",(e,t)=>{Mt.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=n,r=e._zod.def,{minimum:a,maximum:s}=e._zod.bag;"number"==typeof a&&(i.minItems=a),"number"==typeof s&&(i.maxItems=s),i.type="array",i.items=jn(r.element,t,{...o,path:[...o.path,"items"]})})(e,t,n,o),e.element=t.element,_o(e,"ZodArray",{min(e,t){return this.check(Nn(e,t))},nonempty(e){return this.check(Nn(1,e))},max(e,t){return this.check(Cn(e,t))},length(e,t){return this.check(Pn(e,t))},unwrap(){return this.element}})});function Xo(e,t){return function(e,t,n){return new e({type:"array",element:t,...J(n)})}(Ko,e,t)}var Qo=k("ZodObject",(e,t)=>{Wt.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=n,r=e._zod.def;i.type="object",i.properties={};const a=r.shape;for(const l in a)i.properties[l]=jn(a[l],t,{...o,path:[...o.path,"properties",l]});const s=new Set(Object.keys(a)),u=new Set([...s].filter(e=>{const n=r.shape[e]._zod;return"input"===t.io?void 0===n.optin:void 0===n.optout}));u.size>0&&(i.required=Array.from(u)),"never"===r.catchall?._zod.def.type?i.additionalProperties=!1:r.catchall?r.catchall&&(i.additionalProperties=jn(r.catchall,t,{...o,path:[...o.path,"additionalProperties"]})):"output"===t.io&&(i.additionalProperties=!1)})(e,t,n,o),P(e,"shape",()=>t.shape),_o(e,"ZodObject",{keyof(){return li(Object.keys(this._zod.def.shape))},catchall(e){return this.clone({...this._zod.def,catchall:e})},passthrough(){return this.clone({...this._zod.def,catchall:Vo()})},loose(){return this.clone({...this._zod.def,catchall:Vo()})},strict(){return this.clone({...this._zod.def,catchall:Ho()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(e){return function(e,t){if(!L(t))throw new Error("Invalid input to extend: expected a plain object");const n=e._zod.def.checks;if(n&&n.length>0){const n=e._zod.def.shape;for(const e in t)if(void 0!==Object.getOwnPropertyDescriptor(n,e))throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return Y(e,U(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return R(this,"shape",n),n}}))}(this,e)},safeExtend(e){return function(e,t){if(!L(t))throw new Error("Invalid input to safeExtend: expected a plain object");return Y(e,U(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return R(this,"shape",n),n}}))}(this,e)},merge(e){return function(e,t){if(e._zod.def.checks?.length)throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");return Y(e,U(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t._zod.def.shape};return R(this,"shape",n),n},get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]}))}(this,e)},pick(e){return function(e,t){const n=e._zod.def,o=n.checks;if(o&&o.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");return Y(e,U(e._zod.def,{get shape(){const e={};for(const o in t){if(!(o in n.shape))throw new Error(`Unrecognized key: "${o}"`);t[o]&&(e[o]=n.shape[o])}return R(this,"shape",e),e},checks:[]}))}(this,e)},omit(e){return function(e,t){const n=e._zod.def,o=n.checks;if(o&&o.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");return Y(e,U(e._zod.def,{get shape(){const o={...e._zod.def.shape};for(const e in t){if(!(e in n.shape))throw new Error(`Unrecognized key: "${e}"`);t[e]&&delete o[e]}return R(this,"shape",o),o},checks:[]}))}(this,e)},partial(...e){return function(e,t,n){const o=t._zod.def.checks;if(o&&o.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");return Y(t,U(t._zod.def,{get shape(){const o=t._zod.def.shape,i={...o};if(n)for(const t in n){if(!(t in o))throw new Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=e?new e({type:"optional",innerType:o[t]}):o[t])}else for(const t in o)i[t]=e?new e({type:"optional",innerType:o[t]}):o[t];return R(this,"shape",i),i},checks:[]}))}(fi,this,e[0])},required(...e){return t=vi,n=this,o=e[0],Y(n,U(n._zod.def,{get shape(){const e=n._zod.def.shape,i={...e};if(o)for(const n in o){if(!(n in i))throw new Error(`Unrecognized key: "${n}"`);o[n]&&(i[n]=new t({type:"nonoptional",innerType:e[n]}))}else for(const n in e)i[n]=new t({type:"nonoptional",innerType:e[n]});return R(this,"shape",i),i}}));var t,n,o}})});function ei(e,t){return new Qo({type:"object",shape:e??{},...J(t)})}var ti=k("ZodUnion",(e,t)=>{Gt.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def,r=!1===i.inclusive,a=i.options.map((e,n)=>jn(e,t,{...o,path:[...o.path,r?"oneOf":"anyOf",n]}));r?n.oneOf=a:n.anyOf=a})(e,t,n,o),e.options=t.options});function ni(e,t){return new ti({type:"union",options:e,...J(t)})}var oi=k("ZodDiscriminatedUnion",(e,t)=>{ti.init(e,t),Ht.init(e,t)});function ii(e,t,n){return new oi({type:"union",options:t,discriminator:e,...J(n)})}var ri=k("ZodIntersection",(e,t)=>{Kt.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def,r=jn(i.left,t,{...o,path:[...o.path,"allOf",0]}),a=jn(i.right,t,{...o,path:[...o.path,"allOf",1]}),s=e=>"allOf"in e&&1===Object.keys(e).length;n.allOf=[...s(r)?r.allOf:[r],...s(a)?a.allOf:[a]]})(e,t,n,o)});var ai=k("ZodRecord",(e,t)=>{en.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=n,r=e._zod.def;i.type="object";const a=r.keyType,s=a._zod.bag?.patterns;if("loose"===r.mode&&s&&s.size>0){const e=jn(r.valueType,t,{...o,path:[...o.path,"patternProperties","*"]});i.patternProperties={};for(const t of s)i.patternProperties[t.source]=e}else"draft-07"!==t.target&&"draft-2020-12"!==t.target||(i.propertyNames=jn(r.keyType,t,{...o,path:[...o.path,"propertyNames"]})),i.additionalProperties=jn(r.valueType,t,{...o,path:[...o.path,"additionalProperties"]});const u=a._zod.values;if(u){const e=[...u].filter(e=>"string"==typeof e||"number"==typeof e);e.length>0&&(i.required=e)}})(e,t,n,o),e.keyType=t.keyType,e.valueType=t.valueType});function si(e,t,n){return t&&t._zod?new ai({type:"record",keyType:e,valueType:t,...J(n)}):new ai({type:"record",keyType:bo(),valueType:e,...J(t)})}var ui=k("ZodEnum",(e,t)=>{tn.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n)=>{const o=T(e._zod.def.entries);o.every(e=>"number"==typeof e)&&(n.type="number"),o.every(e=>"string"==typeof e)&&(n.type="string"),n.enum=o})(e,0,n),e.enum=t.entries,e.options=Object.values(t.entries);const n=new Set(Object.keys(t.entries));e.extract=(e,o)=>{const i={};for(const r of e){if(!n.has(r))throw new Error(`Key ${r} not found in enum`);i[r]=t.entries[r]}return new ui({...t,checks:[],...J(o),entries:i})},e.exclude=(e,o)=>{const i={...t.entries};for(const t of e){if(!n.has(t))throw new Error(`Key ${t} not found in enum`);delete i[t]}return new ui({...t,checks:[],...J(o),entries:i})}});function li(e,t){return new ui({type:"enum",entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...J(t)})}var ci=k("ZodLiteral",(e,t)=>{nn.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n)=>{const o=e._zod.def,i=[];for(const r of o.values)if(void 0===r){if("throw"===t.unrepresentable)throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if("bigint"==typeof r){if("throw"===t.unrepresentable)throw new Error("BigInt literals cannot be represented in JSON Schema");i.push(Number(r))}else i.push(r);if(0===i.length);else if(1===i.length){const e=i[0];n.type=null===e?"null":typeof e,"draft-04"===t.target||"openapi-3.0"===t.target?n.enum=[e]:n.const=e}else i.every(e=>"number"==typeof e)&&(n.type="number"),i.every(e=>"string"==typeof e)&&(n.type="string"),i.every(e=>"boolean"==typeof e)&&(n.type="boolean"),i.every(e=>null===e)&&(n.type="null"),n.enum=i})(e,t,n),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function di(e,t){return new ci({type:"literal",values:Array.isArray(e)?e:[e],...J(t)})}var pi=k("ZodTransform",(e,t)=>{on.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(e,t,n)=>((e,t)=>{if("throw"===t.unrepresentable)throw new Error("Transforms cannot be represented in JSON Schema")})(0,e),e._zod.parse=(n,o)=>{if("backward"===o.direction)throw new O(e.constructor.name);n.addIssue=o=>{if("string"==typeof o)n.issues.push(ee(o,n.value,t));else{const t=o;t.fatal&&(t.continue=!1),t.code??(t.code="custom"),t.input??(t.input=n.value),t.inst??(t.inst=e),n.issues.push(ee(t))}};const i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n.fallback=!0,n)):(n.value=i,n.fallback=!0,n)}});var fi=k("ZodOptional",(e,t)=>{an.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>Bn(e,t,0,o),e.unwrap=()=>e._zod.def.innerType});function mi(e){return new fi({type:"optional",innerType:e})}var _i=k("ZodExactOptional",(e,t)=>{sn.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>Bn(e,t,0,o),e.unwrap=()=>e._zod.def.innerType});var hi=k("ZodNullable",(e,t)=>{un.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def,r=jn(i.innerType,t,o),a=t.seen.get(e);"openapi-3.0"===t.target?(a.ref=i.innerType,n.nullable=!0):n.anyOf=[r,{type:"null"}]})(e,t,n,o),e.unwrap=()=>e._zod.def.innerType});function yi(e){return new hi({type:"nullable",innerType:e})}var gi=k("ZodDefault",(e,t)=>{ln.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def;jn(i.innerType,t,o),t.seen.get(e).ref=i.innerType,n.default=JSON.parse(JSON.stringify(i.defaultValue))})(e,t,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});var bi=k("ZodPrefault",(e,t)=>{dn.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def;jn(i.innerType,t,o),t.seen.get(e).ref=i.innerType,"input"===t.io&&(n._prefault=JSON.parse(JSON.stringify(i.defaultValue)))})(e,t,n,o),e.unwrap=()=>e._zod.def.innerType});var vi=k("ZodNonOptional",(e,t)=>{pn.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def;jn(i.innerType,t,o),t.seen.get(e).ref=i.innerType})(e,t,0,o),e.unwrap=()=>e._zod.def.innerType});var wi=k("ZodCatch",(e,t)=>{mn.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def;let r;jn(i.innerType,t,o),t.seen.get(e).ref=i.innerType;try{r=i.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}n.default=r})(e,t,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});var Si=k("ZodPipe",(e,t)=>{_n.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def,r=i.in._zod.traits.has("$ZodTransform"),a="input"===t.io?r?i.out:i.in:i.out;jn(a,t,o),t.seen.get(e).ref=a})(e,t,0,o),e.in=t.in,e.out=t.out});function ki(e,t){return new Si({type:"pipe",in:e,out:t})}var zi=k("ZodReadonly",(e,t)=>{yn.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def;jn(i.innerType,t,o),t.seen.get(e).ref=i.innerType,n.readOnly=!0})(e,t,n,o),e.unwrap=()=>e._zod.def.innerType});var Oi=k("ZodCustom",(e,t)=>{vn.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(e,t,n)=>((e,t)=>{if("throw"===t.unrepresentable)throw new Error("Custom types cannot be represented in JSON Schema")})(0,e)});var xi,Ei=li(["CONSENT","SOFT_OPT_IN","TRANSACTIONAL_ONLY","UNKNOWN"]),Ti=li(["MANUAL_UNSUB","ONE_CLICK_UNSUB","HARD_BOUNCE","COMPLAINT","ADMIN_BLOCK"]),Ai=li(["BROADCAST","AUTOMATION"]),Ii=li(["ABANDONED_CART","POST_PURCHASE","WELCOME","WIN_BACK","RE_ENGAGEMENT","TAG_ADDED"]),$i=(ei({email:So(),name:bo().trim().min(1).nullable().optional(),customer_id:bo().uuid().nullable().optional(),tags:Xo(bo().trim().min(1)).default([]),consent_basis:Ei.default("UNKNOWN"),source:bo().trim().min(1).default("dashboard")}),ei({name:bo().trim().min(1),subject:bo().trim().min(1),preheader:bo().nullable().optional(),mjml_source:bo().trim().min(1),builder_project_json:si(bo(),Vo()).nullable().optional(),thumbnail_url:xn(Oo,xi).nullable().optional()}),ei({mjml_source:bo().trim().min(1),sample_variables:si(bo(),Vo()).optional()}),ei({recipient_email:So(),sample_variables:si(bo(),Vo()).optional()}),ei({marketing_enabled:Jo().optional(),default_from_name:bo().trim().min(1).nullable().optional(),default_from_email:So().nullable().optional(),default_reply_to_email:So().nullable().optional(),physical_address:bo().trim().min(1).nullable().optional(),physical_address_line2:bo().trim().min(1).nullable().optional(),physical_city:bo().trim().min(1).nullable().optional(),physical_postal_code:bo().trim().min(1).nullable().optional(),physical_country:bo().trim().length(2).nullable().optional(),daily_limit:Mo().int().positive().optional(),monthly_soft_cap:Mo().int().positive().optional()}),ei({type:Ai.default("BROADCAST"),name:bo().trim().min(1),subject:bo().trim().min(1),template_id:bo().uuid(),list_id:bo().uuid().nullable().optional(),segment_id:bo().uuid().nullable().optional(),from_name:bo().trim().min(1),from_email:So(),reply_to_email:So().nullable().optional(),schedule_at:bo().datetime().nullable().optional(),target_emails:Xo(So()).max(0,"Direct recipient entry is disabled. Use lists or segments built from Shoppex customers and paid order buyers.").default([]),idempotency_key:bo().trim().min(1).nullable().optional()}),ei({name:bo().trim().min(1),subject:bo().trim().min(1),template_id:bo().uuid(),from_name:bo().trim().min(1),from_email:So(),reply_to_email:So().nullable().optional(),trigger:Ii,delay_seconds:Mo().int().min(0).default(0),conditions:si(bo(),Vo()).default({})}),ei({trigger:Ii,email:So(),customer_id:bo().uuid().nullable().optional(),name:bo().trim().min(1).nullable().optional(),consent_basis:Ei.default("UNKNOWN"),variables:si(bo(),Vo()).default({}),idempotency_key:bo().trim().min(1).nullable().optional()}),ei({email:So(),reason:Ti.default("ADMIN_BLOCK"),notes:bo().nullable().optional()}),["BITCOIN","LITECOIN","ETHEREUM","BITCOIN_CASH","MONERO","RIPPLE","TRON","SOLANA","POLYGON","BINANCE_COIN","CRONOS","CONCORDIUM","NANO","DOGECOIN","DASH"]),Ci=["NOWPAYMENTS","CRYPTOMUS","OXAPAY"],Ni=["NOWPAYMENTS_WHITELABEL"],Pi={USDT:["USDT_TRC20","USDT_ERC20","USDT_BEP20","USDT_POLYGON","USDT_SOL"],USDC:["USDC_ERC20","USDC_TRC20","USDC_BEP20","USDC_POLYGON","USDC_SOL"],DAI:["DAI_ERC20"]},Ri=Object.keys(Pi),Ui=[...Pi.USDT,...Pi.USDC,...Pi.DAI],qi=[...$i,...Ui],ji=["BITCOIN_LN"],Di=[...Ci,...Ni],Zi=[...qi,...ji],Li=qi,Mi=new Set($i),Fi=new Set(Ui),Bi=(new Set(qi),new Set(ji),new Set(Ci),new Set(Ni),new Set(Di),new Set(Zi),new Set(Ri),new Set(["STRIPE","PAYPAL","PAYPAL_FF","MOLLIE","AUTHORIZENET","NMI","SQUARE","SUMUP","SHOPIFY","SUBY","PANDABASE","STORRIK","DEBLOMASSI","MONEYMOTION","OVGC","WHOP","DODO","MAVERICK","CASHAPP","VENMO","CRYPTO","CUSTOMER_BALANCE","MANUAL"]),{CASHAPP:"CASH_APP",PAYPAL_CREDIT_CARD:"PAYPAL",EUTHEREUM:"ETHEREUM",USDT_MATIC:"USDT_POLYGON",USDC_MATIC:"USDC_POLYGON"});function Yi(e,t){if(new Set(t).size!==t.length)throw new Error(`${e} contains duplicate entries`)}Yi("COIN_GATEWAY_KEYS",$i),Yi("TOKEN_GATEWAY_KEYS",Ui),Yi("CRYPTO_GATEWAY_KEYS",qi),Yi("LEGACY_CRYPTO_GATEWAY_KEYS",ji),Yi("CRYPTO_PROVIDER_KEYS",Ci),Yi("MANAGED_CRYPTO_PROVIDER_KEYS",Ni),Yi("CRYPTO_PROVIDER_GATEWAY_KEYS",Di),Yi("DEFAULT_NOWPAYMENTS_CRYPTO_GATEWAY_KEYS",Li),Yi("DEFAULT_CRYPTOMUS_CRYPTO_GATEWAY_KEYS",["BITCOIN","LITECOIN","ETHEREUM","TRON","SOLANA","POLYGON","BINANCE_COIN","BITCOIN_CASH","MONERO","RIPPLE","DOGECOIN","USDT_TRC20","USDT_ERC20","USDT_BEP20","USDT_POLYGON","USDT_SOL","USDC_ERC20","USDC_BEP20","USDC_POLYGON","DAI_ERC20"]),Yi("DEFAULT_OXAPAY_CRYPTO_GATEWAY_KEYS",["BITCOIN","LITECOIN","ETHEREUM","TRON","SOLANA","POLYGON","BINANCE_COIN","BITCOIN_CASH","MONERO","RIPPLE","DOGECOIN","USDT_TRC20","USDT_ERC20","USDT_BEP20","USDT_POLYGON","USDC_ERC20"]);for(const Bu of qi)if(!Mi.has(Bu)&&!Fi.has(Bu))throw new Error(`CRYPTO_GATEWAY_KEYS contains an unclassified gateway: ${Bu}`);new Set(["STRIPE","PAYPAL","PAYPAL_FF","SKRILL","CASHAPP","CASH_APP","PERFECT_MONEY","SQUARE","SUMUP","SHOPIFY","SUBY","PANDABASE","STORRIK","DEBLOMASSI","MONEYMOTION","OVGC","WHOP","DODO","MAVERICK","VENMO","MOLLIE","AUTHORIZENET","NMI"].map(e=>function(e){const t=e.trim();if(!t)return"";if(/^manual:/i.test(t)){const e=t.slice(t.indexOf(":")+1).trim();return e?`MANUAL:${e}`:"MANUAL"}let n=t.toUpperCase();const o=n.match(/^(USDT|USDC|DAI):([A-Z0-9_]+)$/);if(o){const[,e,t]=o;n=`${e}_${"MATIC"===t?"POLYGON":t}`}return Bi[n]??n}(e))),new Set(["WHITE_LABEL","NATIVE"]);var Ji=[...Di,"NATIVE"],Wi=(new Set(Ji),ei({set:Jo()})),Vi=ei({status:li(["READY","NEEDS_ATTENTION"]).optional(),code:bo().optional(),message:bo().optional(),checked_at:bo().optional()}),Gi=(ei({provider:bo(),type:bo(),enabled:Jo(),connected:Jo(),credentials:si(bo(),Wi),public_config:si(bo(),Vo()),webhook:si(bo(),Vo()).optional(),health:Vi.optional()}),"#8639eb"),Hi=["comfortable","compact"],Ki=["top","side","background"],Xi=li(["checkout","payment_link","embed"]),Qi=li(["current","clean-light","clean-dark","v2","v3"]),er=li(Hi),tr=li(["light","dark","system"]),nr=li(Ki),or=li(["ghost","outlined","filled"]),ir=li(["sheet","fullscreen","center"]),rr=li(["visible","hidden"]),ar=(li(["checkout.shell","checkout.panel","checkout.header","brand.logo","product.card","product.image","product.title","product.description","product.price","product.quantity","product.addon","paymentLink.hero","summary.panel","summary.line","summary.total","form.field","form.label","form.help","coupon.input","input.base","input.error","button.primary","button.secondary","payment.methods","payment.method","payment.method.icon","payment.method.label","payment.method.meta","payment.method.fee","payment.method.indicator","payment.provider_widget","payment.loading","payment.error","payment.warning","legal.terms","status.success","status.processing","embed.launcher","embed.launcher.icon","embed.productCard","embed.productCard.image","embed.productCard.title","embed.productCard.price","embed.cart","embed.cart.row","embed.cart.summary","embed.modal","embed.modal.header","embed.modal.close","embed.skeleton","embed.loader","embed.branding"]),li(["product.title","product.price","summary.total","payment.method.label","payment.provider_widget","payment.loading","payment.error","payment.warning","legal.terms","status.success","status.processing","embed.modal.close","embed.branding"]),bo().regex(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/,"Use a valid hex color")),sr=bo().trim().min(1).max(200).refine(e=>!/[;{}]|@import|expression\s*\(/i.test(e),"Use a valid CSS color or gradient"),ur=bo().trim().min(1).max(400).refine(e=>!/[;{}]|@import|expression\s*\(/i.test(e),"Use a valid CSS box-shadow value"),lr=li(["Inter","Geist","Manrope","Plus Jakarta Sans","DM Sans","Space Grotesk","Sora","IBM Plex Sans","JetBrains Mono","Arial","System UI"]),cr=bo().trim().min(1).max(60).regex(/^[A-Za-z0-9 +\-_]+$/,"Use a Google Fonts family name"),dr=bo().url(),pr=ei({brand:ei({logoUrl:dr.optional().nullable(),logoDarkUrl:dr.optional().nullable(),logoMaxHeight:Mo().int().min(16).max(80).optional(),faviconUrl:dr.optional().nullable()}).strict().optional(),color:ei({brand:ar.optional(),brandContrast:ar.optional(),background:ar.optional(),panel:ar.optional(),surface:ar.optional(),surfaceRaised:ar.optional(),surfaceControl:ar.optional(),text:ar.optional(),textMuted:ar.optional(),border:ar.optional(),controlBorder:ar.optional(),focus:ar.optional(),success:ar.optional(),warning:ar.optional(),error:ar.optional()}).strict().optional(),typography:ei({fontFamily:lr.optional(),googleFontFamily:cr.optional(),baseSize:Mo().int().min(12).max(18).optional()}).strict().optional(),shape:ei({buttonRadius:Mo().int().min(0).max(24).optional(),inputRadius:Mo().int().min(0).max(24).optional(),cardRadius:Mo().int().min(0).max(28).optional()}).strict().optional(),spacing:ei({density:er.optional(),controlHeight:Mo().int().min(36).max(56).optional()}).strict().optional(),component:ei({primaryButton:ei({background:ar.optional(),text:ar.optional()}).strict().optional(),input:ei({background:ar.optional(),border:ar.optional(),focusRing:sr.optional()}).strict().optional(),summary:ei({background:ar.optional()}).strict().optional(),paymentMethod:ei({background:sr.optional(),cardBackground:sr.optional(),border:sr.optional(),selectedBackground:sr.optional()}).strict().optional(),productCard:ei({background:sr.optional(),border:sr.optional(),shadow:ur.optional()}).strict().optional(),productImage:ei({background:sr.optional(),border:sr.optional(),icon:sr.optional()}).strict().optional(),brandAvatar:ei({background:sr.optional(),text:ar.optional(),border:sr.optional()}).strict().optional(),pill:ei({background:sr.optional(),border:sr.optional(),text:ar.optional()}).strict().optional(),errorBanner:ei({background:sr.optional(),border:sr.optional(),text:ar.optional()}).strict().optional(),warningBanner:ei({background:sr.optional(),border:sr.optional(),text:ar.optional()}).strict().optional(),radio:ei({idleRing:sr.optional(),checkedFill:ar.optional(),checkedIcon:ar.optional()}).strict().optional(),divider:ei({color:sr.optional()}).strict().optional()}).strict().optional(),paymentLink:ei({heroImageUrl:dr.optional().nullable(),heroPosition:nr.optional()}).strict().optional(),embed:ei({launcher:ei({background:sr.optional(),text:ar.optional(),radius:Mo().int().min(0).max(28).optional(),paddingX:Mo().int().min(8).max(32).optional(),paddingY:Mo().int().min(6).max(24).optional(),shadow:ur.optional()}).strict().optional(),productCard:ei({background:sr.optional(),border:sr.optional(),imageRadius:Mo().int().min(0).max(24).optional(),padding:Mo().int().min(8).max(32).optional()}).strict().optional(),cart:ei({background:sr.optional(),rowBorder:sr.optional(),itemSpacing:Mo().int().min(4).max(28).optional()}).strict().optional(),modal:ei({background:sr.optional(),radius:Mo().int().min(0).max(32).optional(),maxWidth:Mo().int().min(360).max(960).optional(),shadow:ur.optional()}).strict().optional(),backdrop:ei({color:sr.optional(),blur:Mo().int().min(0).max(24).optional(),opacity:Mo().min(0).max(1).optional()}).strict().optional(),skeleton:ei({background:sr.optional(),shimmer:sr.optional()}).strict().optional(),spinner:ei({color:sr.optional()}).strict().optional(),closeButton:ei({style:or.optional()}).strict().optional(),mobile:ei({layout:ir.optional()}).strict().optional(),content:ei({productDescription:rr.optional(),termsShortcut:rr.optional()}).strict().optional()}).strict().optional()}).strict(),fr=ei({mode:tr.default("system"),fontSource:li(["curated"]).default("curated")}).strict(),mr=li(["standalone","bundle","pointer"]),_r=ei({name:bo().trim().min(1).max(80),fingerprint:bo().trim().min(1).max(128)}).strict(),hr=ei({type:di("shoppex.style_theme"),surface:di("checkout"),format_version:ni([di(1),di(2)]),name:bo().trim().min(1).max(80),description:bo().trim().max(240).optional(),embed_design:Qi.default("current"),token_schema_version:di(1),tokens:pr.default({}),custom_css:bo().max(2e4).default(""),settings:fr.default({mode:"system",fontSource:"curated"}),_meta:si(bo(),Vo()).optional()}).strict(),yr=(ei({type:di("shoppex.style_theme"),surface:Xi,format_version:ni([di(1),di(2)]),name:bo().trim().min(1).max(80),description:bo().trim().max(240).optional(),embed_design:Qi.default("current"),token_schema_version:di(1),tokens:pr.default({}),custom_css:bo().max(2e4).default(""),settings:fr.default({mode:"system",fontSource:"curated"}),share_mode:mr.default("standalone"),parent_hint:_r.optional(),bundled_parent:hr.optional(),_meta:si(bo(),Vo()).optional()}).strict(),ei({theme_id:bo().uuid().nullable(),surface:Xi,embed_design:Qi,token_schema_version:di(1),revision:Mo().int().min(1),tokens:pr,custom_css:bo(),css_variables:si(bo(),bo())}).strict(),ei({theme_id:bo().uuid().nullable(),parent_theme_id:bo().uuid().nullable(),surface:di("embed"),embed_design:Qi,token_schema_version:di(1),revision:Mo().int().min(1),parent_revision:Mo().int().min(1).nullable(),tokens:pr,custom_css:bo(),css_variables:si(bo(),bo())}).strict(),ei({shop_id:bo().uuid(),product_id:bo().uuid().nullable(),product_group_id:bo().uuid().nullable(),payment_link_id:bo().uuid().nullable(),invoice_id:bo().nullable()}).strict(),ei({embed_runtime:bo().min(16).max(128),embed_design:Qi,revision:Mo().int().min(1),parent_revision:Mo().int().min(1).nullable(),theme_id:bo().uuid().nullable(),css_variables:si(bo(),bo()),custom_css:bo()}).strict(),ei({embed_design:Qi.optional(),embed_style_revision:function(e){return function(e,t){return new e({type:"number",coerce:!0,checks:[],...J(t)})}(Lo,e)}().int().min(1).optional(),embed_runtime:bo().min(16).max(128).optional(),preview:Jo().optional()}).strict(),li(["announcement_bar","countdown_bar","promo_info_card","recent_purchase_popup","coupon_popup_modal","live_chat"]),li(["layout.header.before","layout.header.after","layout.overlay","home.hero.after","home.grid.before","product.buybox.after","layout.footer.before","floating.bottom_right"])),gr=(li(["announcement_bar","countdown_bar","promo_info_card","recent_purchase_popup","coupon_popup_modal","live_chat"]),bo().regex(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/,"Use a valid hex color")),br=li(["static","marquee"]),vr=li(["brand_blue","emerald","sunset","rose","charcoal","custom"]),wr=li(["hide","message"]),Sr=li(["compact","comfortable"]),kr=li(["subtle","outline","solid"]),zr=li(["minimal","boxed"]),Or=li(["indigo","emerald","amber","rose","slate","custom"]),xr=li(["compact","feature","alert"]),Er=li(["compact","comfortable"]),Tr=li(["subtle","outline","solid"]),Ar=li(["sparkles","megaphone","gift","truck","shield","support","none"]),Ir=li(["show","hide"]),$r=li(["midnight","ocean","ember","forest","custom"]),Cr=li(["delay","exit_intent"]),Nr=bo().trim().refine(e=>{if(e.startsWith("/"))return!0;try{const t=new URL(e);return"http:"===t.protocol||"https:"===t.protocol}catch{return!1}},'Use a valid absolute URL or a path starting with "/"'),Pr=bo().trim().refine(e=>{const t=new Date(e);return!Number.isNaN(t.getTime())},"Use a valid date and time"),Rr=ei({text:bo().trim().min(1,"Text is required").max(160,"Text must be 160 characters or fewer"),linkLabel:bo().trim().max(32,"Link label must be 32 characters or fewer").optional().nullable(),linkUrl:Nr.optional().nullable(),dismissible:Jo().default(!1),displayMode:br.default("marquee"),themePreset:vr.default("custom"),animationSpeedSeconds:Mo().int().min(8).max(40).default(30),backgroundColor:gr.default("#111827"),textColor:gr.default("#f9fafb")}),Ur=ei({text:bo().trim().min(1,"Text is required").max(120,"Text must be 120 characters or fewer"),endAt:Pr,linkLabel:bo().trim().max(32,"Link label must be 32 characters or fewer").optional().nullable(),linkUrl:Nr.optional().nullable(),dismissible:Jo().default(!1),themePreset:vr.default("brand_blue"),expiredBehavior:wr.default("hide"),expiredMessage:bo().trim().max(120,"Expired message must be 120 characters or fewer").optional().nullable(),density:Sr.default("compact"),ctaStyle:kr.default("subtle"),timerStyle:zr.default("boxed"),backgroundColor:gr.default("#111827"),textColor:gr.default("#f9fafb")}),qr=ei({eyebrow:bo().trim().max(32,"Eyebrow must be 32 characters or fewer").optional().nullable(),title:bo().trim().min(1,"Title is required").max(80,"Title must be 80 characters or fewer"),body:bo().trim().min(1,"Body is required").max(240,"Body must be 240 characters or fewer"),linkLabel:bo().trim().max(32,"Link label must be 32 characters or fewer").optional().nullable(),linkUrl:Nr.optional().nullable(),themePreset:Or.default("indigo"),layoutStyle:xr.default("feature"),density:Er.default("comfortable"),ctaStyle:Tr.default("outline"),icon:Ar.default("sparkles"),iconVisibility:Ir.default("show"),backgroundColor:gr.default("#111827"),textColor:gr.default("#f9fafb"),accentColor:gr.default("#818cf8")}),jr=ei({title:bo().trim().min(1,"Title is required").max(80,"Title must be 80 characters or fewer").default("Recent purchases"),lookbackHours:Mo().int().min(1).max(168).default(24),cooldownSeconds:Mo().int().min(5).max(300).default(20),maxItems:Mo().int().min(1).max(20).default(8),anonymizeMode:li(["first_name_city","first_name_country","initial_country","anonymous"]).default("first_name_city"),includedProductIds:Xo(bo().min(1)).max(50).default([])}),Dr=ei({eyebrow:bo().trim().max(32,"Eyebrow must be 32 characters or fewer").optional().nullable(),title:bo().trim().min(1,"Title is required").max(80,"Title must be 80 characters or fewer"),body:bo().trim().min(1,"Body is required").max(240,"Body must be 240 characters or fewer"),couponCode:bo().trim().min(2,"Coupon code is required").max(40,"Coupon code must be 40 characters or fewer"),primaryButtonLabel:bo().trim().min(1,"Primary button label is required").max(24,"Primary button label must be 24 characters or fewer").default("Copy code"),secondaryButtonLabel:bo().trim().min(1,"Secondary button label is required").max(24,"Secondary button label must be 24 characters or fewer").default("Maybe later"),disclaimer:bo().trim().max(100,"Disclaimer must be 100 characters or fewer").optional().nullable(),themePreset:$r.default("midnight"),trigger:Cr.default("delay"),delaySeconds:Mo().int().min(0).max(60).default(6),showOncePerSession:Jo().default(!0),reminderHours:Mo().int().min(1).max(720).default(24),backgroundColor:gr.default("#111827"),textColor:gr.default("#f8fafc"),accentColor:gr.default("#7c9cff"),heroImageUrl:Nr.optional().nullable(),discountDisplay:bo().trim().max(24,"Discount display must be 24 characters or fewer").optional().nullable(),expiresAt:Pr.optional().nullable()}),Zr=li(["hidden","optional"]),Lr=ei({headline:bo().trim().min(1,"Headline is required").max(60,"Headline must be 60 characters or fewer").default("Chat with us"),greeting:bo().trim().min(1,"Greeting is required").max(240,"Greeting must be 240 characters or fewer").default("Hi! Send us a message and we will reply as soon as possible."),inputPlaceholder:bo().trim().min(1,"Placeholder is required").max(80,"Placeholder must be 80 characters or fewer").default("Type your message…"),contactFields:Zr.default("optional"),accentColor:gr.default("#111827"),launcherIconColor:gr.default("#f9fafb")}),Mr=ei({type:di("announcement_bar"),slot:yr,enabled:Jo().default(!0),sortOrder:Mo().int().min(0).max(999).default(0),config:Rr}),Fr=ei({type:di("recent_purchase_popup"),slot:yr,enabled:Jo().default(!0),sortOrder:Mo().int().min(0).max(999).default(0),config:jr}),Br=ei({type:di("countdown_bar"),slot:yr,enabled:Jo().default(!0),sortOrder:Mo().int().min(0).max(999).default(0),config:Ur}),Yr=ei({type:di("promo_info_card"),slot:yr,enabled:Jo().default(!0),sortOrder:Mo().int().min(0).max(999).default(0),config:qr}),Jr=ei({type:di("coupon_popup_modal"),slot:yr,enabled:Jo().default(!0),sortOrder:Mo().int().min(0).max(999).default(0),config:Dr}),Wr=ei({type:di("live_chat"),slot:yr,enabled:Jo().default(!0),sortOrder:Mo().int().min(0).max(999).default(0),config:Lr}),Vr=(ii("type",[Mr,Br,Yr,Fr,Jr,Wr]),ii("type",[Mr.extend({id:bo().min(1)}),Br.extend({id:bo().min(1)}),Yr.extend({id:bo().min(1)}),Fr.extend({id:bo().min(1)}),Jr.extend({id:bo().min(1)}),Wr.extend({id:bo().min(1)})]),new Set(["amount","currency","invoice_id","customer_email","id","email","price","price_usd","product_name","quantity"].map(e=>e.toLowerCase())),si(bo(),Vo())),Gr=ni([bo(),Mo()]),Hr=ei({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(Vo()).optional(),cloudflare_image_id:bo().nullable(),created_at:bo().optional(),currency:bo(),custom_fields:Vr.nullable().optional(),custom_fields_config:Xo(Hr).nullable().optional(),delivery_instruction:Vo().optional(),delivery_instruction_config:Vo().optional(),delivery_instruction_label:Vo().optional(),delivery_text:bo().nullable().optional(),delivery_time:Mo().optional(),description:bo().nullable(),discount_percent:Mo().optional(),discount_display:Mo().optional(),discounted_total_display:Mo().optional(),gateways:Xo(bo()).nullable().optional(),id:bo().optional(),image_name:bo().nullable(),image_storage:bo().optional(),line_item_id:bo().nullable().optional(),pay_what_you_want:Jo().optional(),price:bo().optional(),price_display:Gr,quantity:Mo(),quantity_max:Mo().optional(),quantity_min:Mo().optional(),recurring_interval:bo().nullable().optional(),recurring_interval_count:Mo().nullable().optional(),redirect_link:bo().nullable().optional(),redirect_time:Mo().nullable().optional(),service_text:bo().nullable().optional(),setup_cost:bo().optional(),slug:bo().nullable().optional(),storefront_url:bo().nullable().optional(),status:bo().nullable().optional(),subtype:bo().nullable().optional(),terms_of_service:bo().nullable().optional(),title:bo(),total:Mo(),trial_period:Mo().nullable().optional(),type:bo().nullable().optional(),uniqid:bo().nullable(),unit_price:Mo().optional(),unit_price_display:Gr.optional(),unit_quantity:Mo(),updated_at:bo().optional(),variant_title:bo().nullable().optional(),video_link:bo().nullable().optional(),volume_discounts:Vo().optional(),warranty_days:Mo().nullable().optional(),warranty_text:bo().nullable().optional()}),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:Gr.nullable().optional(),amount_due:Gr.nullable().optional(),currency:bo().nullable().optional(),discount:Gr.nullable().optional(),discount_label:bo().nullable().optional(),gateway_fee:Gr.nullable().optional(),platform_fee:Gr.nullable().optional(),subtotal:Gr.nullable().optional(),tip:Gr.nullable().optional(),total:Gr.nullable().optional()}),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(Vo()),downloads:Xo(Vo()),external_urls:Xo(Vo()),license_keys:Xo(Vo()),tracking_codes:Xo(Vo())}),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(Vo()).optional(),description:bo().nullable(),display_order:Mo(),icon_preset:bo().nullable(),icon_url:bo().nullable(),id:bo(),instructions:bo().nullable(),is_active:Jo().optional(),name:bo(),payment_type:li(["INSTRUCTIONS","REDIRECT"]),redirect_url:bo().nullable(),require_proof:Jo(),proof_type:li(["TEXT","IMAGE","BOTH"]).optional(),void_after_hours:Mo()}),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:Gr.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:Vr.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:Gr.optional(),eligible_gateways:Xo(bo()).optional(),environment:bo().optional(),fee_breakdown:Vr.nullable().optional(),gateway:bo().nullable(),gateway_data:Vr.nullable().optional(),gateway_eligibility:si(bo(),ra).optional(),gateway_fee_previews:Xo(Qr).optional(),gateways_available:Xo(bo()),license:ni([Vr,di(!1)]).optional(),name:bo().nullable(),paddle_token:bo().nullable().optional(),paddle_transaction_id:Vo().optional(),payment_link_id:bo().nullable().optional(),payment_method_overrides:Xo(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:Gr.nullable().optional(),selected_gateway:bo().nullable().optional(),shop_checkout_ambient_color:bo().nullable().optional(),shop_cloudflare_image_id:bo().nullable(),shop_domain:bo().nullable().optional(),shop_force_paypal_email_delivery:ni([di(0),di(1)]).optional(),shop_image_name:bo().nullable(),shop_image_storage:bo().nullable().optional(),shop_payment_gateways_fees:Xo(Vr).optional(),shop_paypal_credit_card:ni([di(0),di(1)]).optional(),shop_return_url:bo().nullable().optional(),shop_slug:bo().nullable().optional(),shop_terms_enabled:Jo().optional(),shop_terms_of_service:bo().nullable().optional(),shop_terms_url:bo().nullable().optional(),shop_privacy_policy_url:bo().nullable().optional(),shop_refund_policy_url:bo().nullable().optional(),shop_walletconnect_id:bo().nullable().optional(),status:bo().nullable(),status_history:Xo(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:Gr.nullable().optional(),tip_amount_display:Gr.nullable().optional(),tip_metadata:Vo().optional(),total:Gr,total_conversions:Vr.optional(),total_display:Gr,type:bo().nullable(),underpayment:sa.nullable().optional(),underpayment_status:bo().nullable().optional(),uniqid:bo(),void_times:Xo(fa).optional(),addons:Vo().optional(),affiliate_data:Vo().optional(),affiliate_revenue_customer_id:bo().nullable().optional(),bill_info:Vo().optional(),binance_checkout_url:bo().nullable().optional(),binance_invoice_id:bo().nullable().optional(),binance_qrcode:bo().nullable().optional(),bundle_config:Vo().optional(),bundles:Vo().optional(),cashapp_cashtag:bo().nullable().optional(),cashapp_note:bo().nullable().optional(),cashapp_qrcode:bo().nullable().optional(),created_at:bo().optional(),crypto_address:bo().nullable().optional(),crypto_amount:Gr.optional(),crypto_confirmations_needed:Mo().nullable().optional(),crypto_exchange_rate:Gr.nullable().optional(),crypto_received:Gr.optional(),crypto_uri:bo().nullable().optional(),developer_invoice:Vo().optional(),developer_return_url:bo().nullable().optional(),developer_title:bo().nullable().optional(),exchange_rate:Gr.nullable().optional(),external_order_id:bo().nullable().optional(),lex_order_id:bo().nullable().optional(),lex_payment_method:bo().nullable().optional(),paydash_payment_id:bo().nullable().optional(),paypal_apm:bo().nullable().optional(),paypal_email_delivery:Jo().optional(),paypal_fee:Gr.nullable().optional(),paypal_order_id:bo().nullable().optional(),paypal_payer_email:bo().nullable().optional(),paypal_subscription_id:bo().nullable().optional(),paypal_subscription_link:bo().nullable().optional(),perfectmoney_id:bo().nullable().optional(),product_addons:Vo().optional(),product_id:bo().nullable().optional(),product_title:bo().nullable().optional(),product_type:bo().nullable().optional(),product_variants:Vo().optional(),recurring_billing_id:bo().nullable().optional(),skrill_link:bo().nullable().optional(),skrill_sid:bo().nullable().optional(),status_details:Vo().optional(),stripe_apm:bo().nullable().optional(),stripe_client_secret:bo().nullable().optional(),stripe_id:bo().nullable().optional(),stripe_price_id:bo().nullable().optional(),subscription:Vo().optional(),subscription_id:bo().nullable().optional(),sumup_id:bo().nullable().optional(),telegram_stars_payment_link:bo().nullable().optional(),telegram_stars_payment_note:bo().nullable().optional(),updated_at:bo().optional(),virtual_payments_id:bo().nullable().optional(),void_details:Vo().optional()}).catchall(Vo()),bo().nullable()),ha=si(bo(),Vo()),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:Vo(),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 Ia=null,$a=null;function Ca(e,t){const n=t?.shopId?.trim();$a=n||null;const o=Ia?.locale;return o!==(Ia={storeSlug:e,locale:t?.locale,currency:t?.currency,apiBaseUrl:t?.apiBaseUrl??"https://api.shoppex.io",checkoutBaseUrl:t?.checkoutBaseUrl??"https://checkout.shoppex.io"}).locale&&i(),Ta=null,Aa=null,Ia}function Na(){if(!Ia)throw new u;return Ia}function Pa(){return null!==Ia}function Ra(e){$a=e}function Ua(){return $a}function qa(e){const t=e?.trim().toLowerCase()??"";return"true"===t||"1"===t||"yes"===t||"on"===t}var ja=-1;function Da(e,t,n){return!0!==t?e:!0===n?ja:0!==e?e:ja}function Za(e){return"number"==typeof e&&Number.isFinite(e)?Math.trunc(e):null}function La(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 Ma(e){return Da(Za(e?.stock)??ja,e?.orderable,e?.supplier_backed)}function Fa(e){if(!e)return ja;if("string"==typeof e.type&&"SERIALS"===e.type.toUpperCase())return Da(Za(e.stock)??ja,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=>Ma(e)):(Array.isArray(e.variants)?e.variants:[]).map(e=>Ma(e))}(e);return t.length>0?t.some(e=>e<0)?ja:Da(t.reduce((e,t)=>e+Math.max(t,0),0),e.orderable,e.supplier_backed):Da(Za(e.stock)??ja,e.orderable,e.supplier_backed)}function Ba(e){return!!function(e){return!!e&&(La(e.on_hold)||La(e.onHold)||La(e.is_on_hold)||La(e.isOnHold))}(e)||0===Fa(e)}function Ya(e){return!Ba(e)}function Ja(e=[]){const t=new Map;for(const n of e)n?.uniqid&&!t.has(n.uniqid)&&t.set(n.uniqid,n);return t}function Wa(e,t=[]){const n=t instanceof Map?t:Ja(t);return(e.product_uniqids??[]).flatMap(e=>{const t=n.get(e);return t?[t]:[]})}function Va(e=[]){return Array.from(Ja(e).values())}function Ga(e){return e?e.replace(/<[^>]*>/g," ").replace(/\s+/g," ").trim():""}function Ha(e){return e.trim().toLowerCase()}function Ka(e,t){const n=Ga(t).toLowerCase();n&&e.push(n)}function Xa(e){const t=[];Ka(t,e.title),Ka(t,e.slug??void 0),Ka(t,e.description);for(const n of e.product_highlights??[])Ka(t,n);for(const n of e.variants??[])Ka(t,n.title);for(const n of e.price_variants??[])Ka(t,n.title??n.label);return t}function Qa(e,t){const n=Ha(t);return!!n&&Xa(e).some(e=>e.includes(n))}function es(e,t){const n=Ha(t);if(!n)return!1;const o=Ga(e.title).toLowerCase(),i=Ga(e.slug??e.name??void 0).toLowerCase(),r=Ga(e.description).toLowerCase();return o.includes(n)||i.includes(n)||r.includes(n)}function ts(e,t){return 0!==e.length&&(!t||e.some(e=>Ya(e)))}function ns(e,t,n,o){const i=Ha(n);if(!i)return[];const r=!0===o?.hideOutOfStock,a=new Set,s=new Set,u=[],l=Ja(e);for(const d of t){const e=d.uniqid??d.id;if(!e||s.has(e))continue;if(!es(d,i))continue;const t=Wa(d,l);if(ts(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=Va(e);for(const d of c)d?.uniqid&&!a.has(d.uniqid)&&Qa(d,i)&&(r&&!Ya(d)||(a.add(d.uniqid),u.push({type:"product",product:d})));return null!=o?.maxResults?u.slice(0,o.maxResults):u}function os(e,t,n,o){const i=ns(e,t,n,o),r=new Set,a=[],s=e=>{e?.uniqid&&!r.has(e.uniqid)&&(o?.hideOutOfStock&&!Ya(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 is(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 rs(e){const t=e.name?.trim()??"",n=`${t?`Name: ${t}\n\n`:""}${e.message.trim()}`,o=e.maxLength??2e3;return n.slice(0,o)}var as=/:([A-Za-z0-9_]+)/g;function ss(e,t){return e.replace(as,(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 us(e){return`shoppex_${e}`}function ls(e){try{const t=localStorage.getItem(us(e));return t?JSON.parse(t):null}catch{return null}}function cs(e,t){try{localStorage.setItem(us(e),JSON.stringify(t))}catch{console.warn("[shoppex] Failed to save to localStorage")}}function ds(e){try{localStorage.removeItem(us(e))}catch{}}function ps(e){if("undefined"==typeof window)return null;const t=`presence_connection_${e}`,n=ls(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 cs(t,o),o}async function fs(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=ls(t);return"number"==typeof o&&n-o<15e3||(cs(t,n),!1)}(e))return;const t=Na(),n=Ua(),o=n?ss("/v1/storefront/shops/id/:id/ping",{id:n}):ss("/v1/storefront/shops/:storeSlug/ping",{storeSlug:t.storeSlug}),i=JSON.stringify({event_type:"client_error",referer:document.referrer||void 0,connection_id:ps(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 ms=1e4;async function _s(e){return new Promise(t=>setTimeout(t,e))}async function hs(e,t={}){const n=t.baseUrl?null:Na(),o=n??(Pa()?Na():null),{method:i="GET",body:r,timeout:s=ms,retries:u,baseUrl:c,cache:d}=t,p=u??("GET"===i?2:0),f=`${c??n?.apiBaseUrl??""}${e}`,m={"Content-Type":"application/json",Accept:"application/json"};"string"==typeof o?.locale&&o.locale.trim()&&(m["x-shoppex-locale"]=o.locale.trim());let _=null;const h=async()=>{for(let t=0;t<=p;t++)try{const e=new AbortController,t=setTimeout(()=>e.abort(),s),n=await fetch(f,{method:i,headers:m,body:r?JSON.stringify(r):void 0,signal:e.signal});clearTimeout(t);const o=await ys(n);if(!n.ok){const e=n.statusText?`HTTP ${n.status}: ${n.statusText}`:`HTTP ${n.status}`;throw new l((o.data&&"object"==typeof o.data&&"error"in o.data&&"string"==typeof o.data.error?o.data.error:null)??(o.data&&"object"==typeof o.data&&"message"in o.data&&"string"==typeof o.data.message?o.data.message:null)??o.rawText??e,n.status)}if(204===n.status&&null===o.data)return{success:!0};if(!o.data||"object"!=typeof o.data||!("status"in o.data))throw new l("Invalid API response",n.status);return gs(o.data)}catch(e){let n=e instanceof Error?e:new Error(String(e));e instanceof DOMException&&"AbortError"===e.name&&(n=new l("Request timeout",408));const o=n instanceof l?n.statusCode:void 0;if(_={message:n.message,statusCode:o,isTransport:void 0===o||408===o},t<p){await _s(500*Math.pow(2,t));continue}}return{success:!1,message:_?.message??"Unknown error"}},y="GET"===i&&d&&d.ttl>0?await a(d.key??`GET:${f}`,h,{ttl:d.ttl,staleWhileRevalidate:d.staleWhileRevalidate},e=>e.success):await h(),g=_;return!y.success&&g?.isTransport&&await fs({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 ys(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 gs(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 bs(e,t){return hs(e,{...t,method:"GET"})}async function vs(e,t,n){return hs(e,{...n,method:"POST",body:t})}var ws=3e5;async function Ss(){const e=Na(),t=await bs(ss("/v1/storefront/shops/name/:storeSlug",{storeSlug:e.storeSlug}),{cache:{key:`store:${e.storeSlug}`,ttl:ws,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 ks(e){const t=Na(),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 bs(`${ss("/v1/storefront/shops/name/:storeSlug",{storeSlug:t.storeSlug})}${o}`,{cache:{key:`storefront:${t.storeSlug}:${e?.productsLimit??"full"}:${e?.productsCursor??"start"}`,ttl:ws,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 zs=12e4;function Os(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 xs(){const e=Na(),t=await bs(ss("/v1/storefront/products/public/:storeSlug",{storeSlug:e.storeSlug}),{cache:{key:`products:${e.storeSlug}`,ttl:zs,staleWhileRevalidate:!0}});return t.success&&t.data?{success:!0,data:Va(t.data.products.map(Os))}:{success:!1,message:t.message,data:[]}}function Es(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 Ts(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:Es(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 As(e){return"string"==typeof e.line_id&&e.line_id.trim()?e:{...e,line_id:Ts(e)}}function Is(e){const t=e?.trim().toUpperCase();return t&&/^[A-Z]{3}$/.test(t)?t:null}function $s(){if("undefined"==typeof window||!window.location)return null;const e="string"==typeof window.location.search?window.location.search:"";if(e)return Is(new URLSearchParams(e).get("currency"));const t="string"==typeof window.location.href?window.location.href:"";if(!t)return null;try{return Is(new URL(t,"https://storefront.shoppex.local").searchParams.get("currency"))}catch{return null}}var Cs={cart:"cart",cartBackup:"cart_backup",meta:"cart_meta",metaBackup:"cart_backup_meta",coupon:"cart_coupon",couponBackup:"cart_coupon_backup"};function Ns(e){return`${Cs[e]}_${Na().storeSlug}`}function Ps(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 Rs(e){if(!Number.isFinite(e))throw new c("quantity must be a finite number");return Math.floor(e)}function Us(e){const t=e?.trim().toUpperCase();return t||null}function qs(){const e=ls(Ns("coupon"));if(!e||"object"!=typeof e||Array.isArray(e))return null;const t=e,n="string"==typeof t.code?Us(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),Ws(a),a.line_id=("string"==typeof e.line_id?e.line_id.trim():"")||Ts(a),t.push(As(a))}return t}function Ds(){return ls(Ns("meta"))}function Zs(){return qs()?.code??null}function Ls(){return qs()?.source??null}function Ms(e,t="COUPON"){const n=Us(e);return n?(cs(Ns("coupon"),{code:n,source:t}),n):(ds(Ns("coupon")),null)}function Fs(){ds(Ns("coupon"))}function Bs(e){const t=js(e);cs(Ns("cart"),t);const n=Date.now(),o=Ds(),i={created_at:o?.created_at??n,last_modified:n,version:(o?.version??0)+1,checksum:Ps(t)};cs(Ns("meta"),i),0===t.length&&Fs()}function Ys(e,t){const n=js(e);cs(Ns("cart"),n);const o=Date.now(),i=t??Ds(),r={created_at:i?.created_at??o,last_modified:o,version:i?.version??1,checksum:Ps(n)};cs(Ns("meta"),r)}function Js(){return js(ls(Ns("cart")))}function Ws(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 Vs(){ds(Ns("cart")),ds(Ns("meta")),Fs()}function Gs(){const e=Js();cs(Ns("cartBackup"),e);const t=qs();t?cs(Ns("couponBackup"),t):ds(Ns("couponBackup"));const n=Ds();if(n)cs(Ns("metaBackup"),n);else{const t=Date.now();cs(Ns("metaBackup"),{created_at:t,last_modified:t,version:1,checksum:Ps(e)})}}function Hs(){const e=Js(),t=Ds(),n=Ps(e);return t?t.checksum===n:(Ys(e,null),!0)}var Ks="shoppex:affiliate_code:v1";function Xs(){return Date.now()}function Qs(e){const t=e?.trim().toLowerCase();return t||null}function eu(e,t=30){const n=Qs(e);return n?(function(e){if("undefined"!=typeof window)try{window.localStorage.setItem(Ks,JSON.stringify(e))}catch{}}({code:n,expiresAt:Xs()+(o=t,24*Math.max(1,o)*60*60*1e3)}),n):(tu(),null);var o}function tu(){if("undefined"!=typeof window)try{window.localStorage.removeItem(Ks)}catch{}}function nu(){const e=function(){if("undefined"==typeof window)return null;try{const e=window.localStorage.getItem(Ks);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<=Xs()?(tu(),null):Qs(e.code):null}async function ou(e){const t=Qs(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 vs("/v1/storefront/affiliates/resolve",{shop_slug:Na().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:Qs(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 iu(e){const t=e?.trim();return t||null}function ru(e){const t=e?.trim();return t||null}function au(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 su(e){return Is(e.currency)??$s()}function uu(e){const t=e?.trim()??"";if(!t)return"Checkout failed. Please try again.";if(lu(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 lu(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 cu(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 du(e,t){const n=ru(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 pu(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 fu(e,t){return"string"==typeof e?{...t,coupon:e}:e??t??{}}function mu(e,t){const n=e.affiliateCode??e.referralCode;return"string"==typeof n&&n.trim().length>0?n.trim().toLowerCase():t?.trim().toLowerCase()??nu()}function _u(e){const t=Zs(),n=Ls();return{coupon:void 0===e.coupon?"COUPON"===n?t:null:iu(e.coupon),affiliateCode:mu(e,void 0===e.coupon&&"AFFILIATE"===n?t:null)}}function hu(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 yu(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 gu(...e){for(const t of e)if("string"==typeof t&&t.length>0)return t}function bu(e,t){const n=e,o=yu(n.rating)??yu(n.score)??0,i=gu(n.comment,n.message),r=gu(n.author,n.customer_name),a=n.created_at??n.createdAt,s="number"==typeof a||"string"==typeof a?String(a):"",u=gu(n.id,n.uniqid)??`review:${s||t}`;return{...n,id:u,rating:o,...i?{comment:i}:{},...r?{author:r}:{},created_at:s}}async function vu(e){const t=Na(),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 bs(`${ss("/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 wu(e){const t=e.trim();return t||null}var Su=3e5;var ku=3e5;async function zu(){const e=Na(),t=await bs(ss("/v1/storefront/shops/name/:storeSlug/menus",{storeSlug:e.storeSlug}),{cache:{key:`menus:${e.storeSlug}`,ttl:ku,staleWhileRevalidate:!0}});return t.success&&t.data?{success:!0,data:t.data.menus}:{success:!1,message:t.message}}async function Ou(e){const t=Na(),n=await bs(ss("/v1/storefront/shops/name/:storeSlug/menus/:title",{storeSlug:t.storeSlug,title:e}),{cache:{key:`menu:${t.storeSlug}:${e}`,ttl:ku,staleWhileRevalidate:!0}});return n.success&&n.data?{success:!0,data:n.data.menu}:{success:!1,message:n.message}}async function xu(e){return Ou(e)}async function Eu(e){const t=Na(),n=await bs(ss("/v1/storefront/shops/name/:storeSlug/menus/:title",{storeSlug:t.storeSlug,title:e}),{cache:{key:`menu-slot:${t.storeSlug}:${e}`,ttl:ku,staleWhileRevalidate:!0}});return n.success&&n.data?{success:!0,data:n.data.menu}:{success:!1,message:n.message}}function Tu(e){return function(e){const t=w[e];return[t.title,...t.aliases]}(e)}var Au=["utm_source","utm_medium","utm_campaign","utm_term","utm_content"];function Iu(e){return`shoppex:utm:${e}`}function $u(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 Au){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(Iu(e),JSON.stringify(n))}catch{}}(e,t),t;const n=function(e){try{const t=window.localStorage.getItem(Iu(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(Iu(e)),{};const o={};for(const e of Au){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 Cu(e,t){if(!Pa())return;if("undefined"==typeof document)return;const n=Na(),o=ps(n.storeSlug);try{const i=ss("/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:$u(n.storeSlug)})})}catch{}}async function Nu(){if(!Pa())return{success:!1,message:"SDK not initialized"};const e=Na(),t=Ua();return bs(t?ss("/v1/storefront/shops/id/:id/recent-sales",{id:t}):ss("/v1/storefront/shops/:storeSlug/recent-sales",{storeSlug:e.storeSlug}),{cache:!1,retries:0,timeout:5e3})}async function Pu(){if(!Pa())return{success:!1,message:"SDK not initialized"};const e=Na(),t=Ua();return bs(t?ss("/v1/storefront/shops/id/:id/online-users",{id:t}):ss("/v1/storefront/shops/:storeSlug/online-users",{storeSlug:e.storeSlug}),{cache:!1,retries:0,timeout:5e3})}async function Ru(){if(!Pa())return{success:!1,message:"SDK not initialized"};if("undefined"==typeof document)return{success:!1,message:"Document is not available"};const e=Na(),t=Ua();return vs(t?ss("/v1/storefront/shops/id/:id/ping",{id:t}):ss("/v1/storefront/shops/:storeSlug/ping",{storeSlug:e.storeSlug}),{referer:document.referrer||void 0,connection_id:ps(e.storeSlug)??void 0,utm:$u(e.storeSlug)},{retries:0,timeout:5e3})}function Uu(e,t){const n=Na();return new Intl.NumberFormat(t??n.locale??"en-US",{style:"currency",currency:e??n.currency??"USD"})}function qu(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function ju(e){return qu(e)&&qu(e.theme)?{...e,version:"number"==typeof e.version?e.version:0,revision:"number"==typeof e.revision?e.revision:0,theme:{...e.theme,content:qu(e.theme.content)?e.theme.content:{},layout:qu(e.theme.layout)?e.theme.layout:{},style_slots:qu(e.theme.style_slots)?e.theme.style_slots:{},...Array.isArray(e.theme.pages)?{pages:e.theme.pages}:{},...qu(e.theme.terms)?{terms:e.theme.terms}:{}}}:null}async function Du(e){const t=await bs(ss("/v1/storefront/themes/builder/published/:shopSlug",{shopSlug:e}));return t.success&&t.data?qu(n=t.data)?{settings:qu(n.settings)?n.settings:{},builder_settings:ju(n.builder_settings),content:qu(n.content)?n.content:{},style_slots:qu(n.style_slots)?n.style_slots:{}}:null:null;var n}async function Zu(e){const t=await Du(e);return t?t.settings:null}function Lu(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 Mu(e,t){const n={...e};for(const[o,i]of Object.entries(t))i&&(n[o]={...n[o],...i});return n}var Fu={init:function(e,t){"string"==typeof e?Ca(e,t):Ca(e.storeId,e)},isInitialized:Pa,getConfig:Na,client:function(e){const t=Na().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:Ss,getStorefront:ks,getStoreLogoUrl:async function(){const e=await Ss();return e.success&&e.data?.logo?e.data.logo:null},getStoreBannerUrl:async function(){const e=await Ss();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()?Na().apiBaseUrl:"https://api.shoppex.io"),r=await bs(ss("/v1/storefront/shops/domain/:domain",{domain:o}),{baseUrl:i,cache:{key:`store:domain:${o}`,ttl:ws,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:xs,getStorefrontProductsPage:async function(e){const t=Na(),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 bs(`${ss("/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:zs,staleWhileRevalidate:!0}});var r;return i.success&&i.data?{success:!0,data:{products:i.data.products.map(Os),pagination:i.data.pagination??null}}:{success:!1,message:i.message}},getProduct:async function(e){let t=Ua();if(!t){const e=await Ss();t=e.success?e.data?.id??null:null}const n=t?`?slug_shop_id=${encodeURIComponent(t)}`:"",o=await bs(`${ss("/v1/storefront/products/unique/:idOrSlug",{idOrSlug:e})}${n}`,{cache:{key:`product:${e}:${t??"no-shop"}`,ttl:zs,staleWhileRevalidate:!0}});return o.success&&o.data?.product?{success:!0,data:Os(o.data.product)}:{success:!1,message:o.message}},getCategories:async function(){const e=await xs();if(!e.success||!e.data)return{success:!1,message:e.message};const t=new Set;for(const n of e.data)if(n.categories)for(const e of n.categories)"string"==typeof e?t.add(e):e&&"object"==typeof e&&"uniqid"in e&&t.add(e.uniqid);return{success:!0,data:Array.from(t)}},getCart:Js,getCartItemCount:function(){return Js().reduce((e,t)=>e+t.quantity,0)},getCartCoupon:Zs,getCartCouponSource:Ls,setCartCoupon:Ms,clearCartCoupon:Fs,addToCart:function(e,t,n=1,o){if(!e||!t)throw new c("product_id and variant_id are required");const i=Rs(n);if(i<1)throw new c("quantity must be at least 1");const r=Js(),a=Ts({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),Ws(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};Ws(n),r.push(n)}Bs(r)},setCartItem:function(e,t,n=1,o){if(!e||!t)throw new c("product_id and variant_id are required");const i=Rs(n);if(i<1)throw new c("quantity must be at least 1");const r=Js(),a=Ts({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};Ws(s),r.push(s),Bs(r)},updateCartItem:function(e,t){const n=Js(),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=Rs(t.quantity);if(e<1)return n.splice(i,1),void Bs(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),Ws(n[i]);const r=Ts(n[i]),a=n.findIndex((e,t)=>t!==i&&e.line_id===r);a>=0?(n[a].quantity+=n[i].quantity,Ws(n[a]),n.splice(i,1)):n[i].line_id=r,Bs(n)},removeFromCart:function(e){const t=e.trim();if(!t)throw new c("line_id is required");Bs(Js().filter(e=>e.line_id!==t))},clearCart:Vs,createCartBackup:Gs,restoreCartFromBackup:function(){const e=js(ls(Ns("cartBackup"))),t=ls(Ns("metaBackup")),n=ls(Ns("couponBackup"));if(e&&e.length>0){if(Ys(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?Ms(e.code,t):Fs()}else Fs();return!0}return!1},mergeBaskets:function(e){const t=Js();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=Rs(n.quantity)}catch{continue}if(i<1)continue;const r=As({...n,line_id:n.line_id??Ts(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),Ws(t[a])):(Ws(r),t.push(r))}return Bs(t),t},moveBasketItem:function(e,t,n,o){const i=Js(),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=Ts({...a,product_id:n,variant_id:o}),u=i.findIndex(e=>e.line_id===s);if(u>=0)i[u].quantity+=a.quantity,Ws(i[u]);else{const e=As({...a,product_id:n,variant_id:o,line_id:s});Ws(e),i.push(e)}Bs(i)},getCartStats:function(){const e=Js(),t=Hs(),n=Ds(),o=ls(Ns("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:Hs,quoteCart:async function(e,t){const n=function(e){const t=Na(),n=Us(e)??Zs()??void 0;return{store_slug:t.storeSlug,items:Js(),coupon:n}}(e),o=Is(t)??$s();return vs("/v1/storefront/cart/quote",{shop_slug:n.store_slug,cart:n.items,coupon:n.coupon,currency:o??void 0})},resolveCartLineId:function(e,t,n=Js()){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=fu(e,t),{autoRedirect:o=!0,email:i}=n,r=_u(n),a=r.coupon,s=ru(i),u=r.affiliateCode,l=su(n),c=Js();if(0===c.length)return{success:!1,message:"Cart is empty"};Gs();const d=Na(),p=au(n),f=await vs(p.endpoint,{shop_slug:d.storeSlug,cart:hu(c),email:s,coupon:a,currency:l,affiliate_code:u},{retries:0,baseUrl:p.baseUrl});if(!f.success||!f.data)return lu(f.message)&&Vs(),{success:!1,message:uu(f.message)};const m=pu(f.data,d.checkoutBaseUrl);if(!m)return{success:!1,message:"Failed to create invoice"};const{invoiceId:_}=m,h=cu(m.checkoutUrl,d.checkoutBaseUrl,_);if(!h)return{success:!1,message:"Failed to create invoice"};const y=du(h,{email:s,locale:n.locale??d.locale});return o&&"undefined"!=typeof window&&window?.location&&(window.location.href=y,Vs()),{success:!0,redirectUrl:y,invoiceId:_,rewards:m.rewards}},buildCheckoutUrl:async function(e,t){const n=fu(e,t),{email:o}=n,i=_u(n),r=i.coupon,a=ru(o),s=i.affiliateCode,u=su(n),l=Js();if(0===l.length)throw new Error("Cart is empty");const c=Na(),d=au(n),p=await vs(d.endpoint,{shop_slug:c.storeSlug,cart:hu(l),email:a,coupon:r,currency:u,affiliate_code:s},{retries:0,baseUrl:d.baseUrl});if(!p.success||!p.data)throw lu(p.message)&&Vs(),new Error(uu(p.message));const f=pu(p.data,c.checkoutBaseUrl);if(!f)throw new Error("Failed to create invoice");const m=cu(f.checkoutUrl,c.checkoutBaseUrl,f.invoiceId);if(!m)throw new Error("Failed to create invoice");return du(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=Qs(t),!t)return null;if(eu(t),Pa())try{const e=await vs("/v1/storefront/affiliates/attribution",{shop_slug:Na().storeSlug,code:t},{retries:0});return e.success&&e.data?.accepted&&e.data?.affiliate_code?(eu(e.data.affiliate_code),e.data.affiliate_code):(tu(),null)}catch{return t}return t},validateAffiliateCode:ou,applyAffiliateCode:async function(e){const t=await ou(e);return t.success&&t.data?.affiliate_code&&eu(t.data.affiliate_code),t},getAffiliateCode:nu,setAffiliateCode:eu,clearAffiliateCode:tu,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=Js();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 Ss();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 vs("/v1/storefront/coupons/check",o)},getShopReviews:async function(){const e=[],t=new Set;let n=null;for(;;){const o=await vu(n);if(!o.success||!o.data)return{success:!1,message:o.message,data:[]};e.push(...(o.data.feedback??[]).map((t,n)=>bu(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 ks();return o.success&&o.data?{success:!0,data:os(o.data.products??[],o.data.groups??[],n,{hideOutOfStock:t?.hideOutOfStock,maxResults:t?.maxResults})}:{success:!1,message:o.message??"Failed to fetch storefront catalog"}},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 ks();return o.success&&o.data?{success:!0,data:ns(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=wu(e);if(!t)return{success:!1,message:"Invoice ID is required"};const n=await bs(ss("/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=wu(e);if(!t)return{success:!1,message:"Invoice ID is required"};const n=await bs(ss("/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=Na(),t=await bs(ss("/v1/storefront/shops/name/:storeSlug/pages",{storeSlug:e.storeSlug}),{cache:{key:`pages:${e.storeSlug}`,ttl:Su,staleWhileRevalidate:!0}});return t.success&&t.data?{success:!0,data:t.data.pages}:{success:!1,message:t.message}},getPage:async function(e){const t=Na(),n=await bs(ss("/v1/storefront/shops/name/:storeSlug/pages/:slug",{storeSlug:t.storeSlug,slug:e}),{cache:{key:`page:${t.storeSlug}:${e}`,ttl:Su,staleWhileRevalidate:!0}});return n.success&&n.data?{success:!0,data:n.data.page}:{success:!1,message:n.message}},getMenus:zu,getMenu:xu,getMenuBySlot:Eu,getMenuByTitle:Ou,getMenuSlotTitles:Tu,trackPageView:Cu,getStorefrontOnlineUsers:Pu,getStorefrontRecentSales:Nu,touchStorefrontPresence:Ru,createFormatter:Uu,formatPrice:function(e,t,n){const o="string"==typeof e?parseFloat(e):e;return Number.isNaN(o)?Uu(t,n).format(0):Uu(t,n).format(o)},clearCache:i,invalidateCache:function(e){for(const n of t.keys())(n===e||n.startsWith(e))&&t.delete(n)},getCacheStats:function(){return{hits:o.hits,misses:o.misses,pendingRequests:n.size,entries:t.size}},fetchPublishedBuilderSettings:Du,fetchPublishedThemeSettings:Zu,resolveDefaults:Lu,mergeSettings:Mu};if("undefined"!=typeof window){const e=window;e.shoppex?.isInitialized?.()||(e.shoppex=Fu)}e.CartError=c,e.NetworkError=l,e.NotInitializedError=u,e.ShoppexError=s,e.ValidationError=class e extends s{constructor(t,n){super(t,"VALIDATION_ERROR"),this.name="ValidationError",this.invalidFields=n,Object.setPrototypeOf(this,e.prototype)}},e.buildStorefrontContactMessage=rs,e.buildStorefrontCustomFieldPayload=function(e,t){const n={};return e.forEach(e=>{const o=t[e.name]??e.defaultValue??"";if("checkbox"===e.type)return void(qa(o)&&(n[e.name]="true"));const i=o.trim();i.length>0&&(n[e.name]=i)}),n},e.buildStorefrontProductLookup=Ja,e.collectProductSearchHaystack=Xa,e.computeCartLineId=Ts,e.default=Fu,e.shoppex=Fu,e.ensureCartLineId=As,e.fetchPublishedBuilderSettings=Du,e.fetchPublishedThemeSettings=Zu,e.filterProductsBySearchQuery=function(e,t,n){const o=Ha(t);if(!o)return[];let i=e.filter(e=>Qa(e,o));return n?.hideOutOfStock&&(i=i.filter(e=>Ya(e))),null!=n?.maxResults?i.slice(0,n.maxResults):i},e.getMenu=xu,e.getMenuBySlot=Eu,e.getMenuByTitle=Ou,e.getMenuSlotTitles=Tu,e.getMenus=zu,e.getMergedStorefrontProducts=Va,e.getStorefrontGroupProducts=Wa,e.getStorefrontOnlineUsers=Pu,e.getStorefrontRecentSales=Nu,e.groupMatchesSearchQuery=es,e.isProductInStock=Ya,e.isProductOutOfStock=Ba,e.isStorefrontCheckboxCustomFieldValueChecked=qa,e.isVariantOutOfStock=function(e){return 0===Ma(e)},e.mergeSettings=Mu,e.normalizeSearchQuery=Ha,e.normalizeStorefrontCustomFields=function(e){return function(e){if(Array.isArray(e))return e;if("string"==typeof e){try{const t=JSON.parse(e);if(Array.isArray(t))return t;if(t&&"object"==typeof t){const e=t.custom_fields??t.customFields;return Array.isArray(e)?e:[]}}catch{return[]}return[]}if(e&&"object"==typeof e){const t=e.custom_fields??e.customFields;return Array.isArray(t)?t:[]}return[]}(e).filter(e=>!!e&&"object"==typeof e&&!Array.isArray(e)).map(e=>{const t="string"==typeof e.type?e.type.trim().toLowerCase():"text",n=t.length>0?t:"text",o=[e.default_value,e.default,e.value].find(e=>"string"==typeof e&&e.trim().length>0);return{name:"string"==typeof e.name?e.name.trim():"",type:n,required:!0===e.required||"true"===e.required||1===e.required||"1"===e.required,defaultValue:"string"==typeof o?o:"",placeholder:"string"==typeof e.placeholder?e.placeholder:"",regex:"string"==typeof e.regex?e.regex:void 0}}).filter(e=>e.name.length>0&&"hidden"!==e.type)},e.productMatchesSearchQuery=Qa,e.resolveDefaults=Lu,e.resolveDisplayStock=Fa,e.resolveStorefrontApiBaseUrl=is,e.resolveStorefrontSocialLinks=function(e){return{discord:e?.discord_link??e?.social?.discord??null,telegram:e?.telegram_link??e?.social?.telegram??null}},e.resolveVariantStockValue=Ma,e.searchMergedStorefrontCatalog=os,e.searchMergedStorefrontCatalogItems=ns,e.stripHtmlFromText=Ga,e.submitStorefrontContactTicket=async function(e){const t=e.shopSlug.trim();if(!t)throw new Error("Store data is not ready yet. Please try again in a moment.");const n=e.email.trim().toLowerCase(),o=e.title?.trim()??"",i=o.length>=2?o.slice(0,30):"Contact Request",r=rs({name:e.name,message:e.message}),a=e.invoiceId?.trim()||void 0,s=is({apiBaseUrl:e.apiBaseUrl}),u=await fetch(`${s}/v1/storefront/shops/name/${encodeURIComponent(t)}/tickets`,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({email:n,title:i,message:r,...a?{invoice_id:a}:{}})}),l=await u.json().catch(()=>null);if(!u.ok)throw new Error(l?.message||l?.error||"Failed to send your message.");const c=l?.data?.uniqid;if(!c)throw new Error("Ticket created, but the response was incomplete.");return{uniqid:c}},e.touchStorefrontPresence=Ru,e.trackPageView=Cu,e.validateStorefrontCustomFieldValue=function(e,t){if("checkbox"===e.type)return e.required&&!qa(t)?`${e.name} is required.`:null;const n=t.trim();if(e.required&&!n)return`${e.name} is required.`;if(e.regex&&n)try{if(!new RegExp(e.regex).test(n))return`${e.name} has an invalid format.`}catch{return null}return null}});
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).shoppex={})}(this,function(e){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var t=new Map,n=new Map,o={hits:0,misses:0};function i(){t.clear(),n.clear()}function r(e,n,o){const i=Date.now();t.set(e,{data:n,ttl:o,updatedAt:i,expiresAt:i+o})}async function a(e,i,a,s=()=>!0){const u=function(e){const n=t.get(e);return n||null}(e);if(u&&!function(e){return Date.now()>e.expiresAt}(u))return o.hits+=1,u.data;if(u&&a.staleWhileRevalidate){if(o.hits+=1,!n.has(e)){const t=(async()=>{try{const t=await i();return s(t)&&r(e,t,a.ttl),t}finally{n.delete(e)}})();n.set(e,t)}return u.data}if(n.has(e))return n.get(e);o.misses+=1;const l=(async()=>{try{const t=await i();return s(t)&&r(e,t,a.ttl),t}finally{n.delete(e)}})();return n.set(e,l),l}var s=class e extends Error{constructor(t,n,o){super(t),this.name="ShoppexError",this.code=n,this.statusCode=o,Object.setPrototypeOf(this,e.prototype)}},u=class e extends s{constructor(){super("SDK not initialized. Call shoppex.init() first.","NOT_INITIALIZED"),this.name="NotInitializedError",Object.setPrototypeOf(this,e.prototype)}},l=class e extends s{constructor(t,n){super(t,"NETWORK_ERROR",n),this.name="NetworkError",Object.setPrototypeOf(this,e.prototype)}},c=class e extends s{constructor(t){super(t,"BASKET_ERROR"),this.name="CartError",Object.setPrototypeOf(this,e.prototype)}},d=/\{[^{}]+\}/g;function p(e){let{baseUrl:t="",Request:n=globalThis.Request,fetch:o=globalThis.fetch,querySerializer:i,bodySerializer:r,pathSerializer:a,headers:s,requestInitExt:u,...l}={...e};u="object"==typeof process&&Number.parseInt(process?.versions?.node?.substring(0,2))>=18&&process.versions.undici?u:void 0,t=v(t);const c=[];async function d(e,d){const{baseUrl:p,fetch:f=o,Request:m=n,headers:_,params:w={},parseAs:S="json",querySerializer:k,bodySerializer:z=r??g,pathSerializer:O,body:x,middleware:E=[],...T}=d||{};let A=t;p&&(A=v(p)??t);let I="function"==typeof i?i:h(i);k&&(I="function"==typeof k?k:h({..."object"==typeof i?i:{},...k}));const $=O||a||y,C=void 0===x?void 0:z(x,b(s,_,w.header)),N=b(void 0===C||C instanceof FormData?{}:{"Content-Type":"application/json"},s,_,w.header),P=[...c,...E],R={redirect:"follow",...l,...T,body:C,headers:N};let U,q,j,D=new m(function(e,t){let n=`${t.baseUrl}${e}`;t.params?.path&&(n=t.pathSerializer(n,t.params.path));let o=t.querySerializer(t.params.query??{});o.startsWith("?")&&(o=o.substring(1));o&&(n+=`?${o}`);return n}(e,{baseUrl:A,params:w,querySerializer:I,pathSerializer:$}),R);for(const t in T)t in D||(D[t]=T[t]);if(P.length){U=Math.random().toString(36).slice(2,11),q=Object.freeze({baseUrl:A,fetch:f,parseAs:S,querySerializer:I,bodySerializer:z,pathSerializer:$});for(const t of P)if(t&&"object"==typeof t&&"function"==typeof t.onRequest){const n=await t.onRequest({request:D,schemaPath:e,params:w,options:q,id:U});if(n){if(!(n instanceof m)){if(n instanceof Response){j=n;break}throw new Error("onRequest: must return new Request() or Response() when modifying the request")}D=n}}}if(!j){try{j=await f(D,u)}catch(M){let t=M;if(P.length)for(let n=P.length-1;n>=0;n--){const o=P[n];if(o&&"object"==typeof o&&"function"==typeof o.onError){const n=await o.onError({request:D,error:t,schemaPath:e,params:w,options:q,id:U});if(n){if(n instanceof Response){t=void 0,j=n;break}if(n instanceof Error){t=n;continue}throw new Error("onError: must return new Response() or instance of Error")}}}if(t)throw t}if(P.length)for(let t=P.length-1;t>=0;t--){const n=P[t];if(n&&"object"==typeof n&&"function"==typeof n.onResponse){const t=await n.onResponse({request:D,response:j,schemaPath:e,params:w,options:q,id:U});if(t){if(!(t instanceof Response))throw new Error("onResponse: must return new Response() when modifying the response");j=t}}}}const Z=j.headers.get("Content-Length");if(204===j.status||"HEAD"===D.method||"0"===Z&&!j.headers.get("Transfer-Encoding")?.includes("chunked"))return j.ok?{data:void 0,response:j}:{error:void 0,response:j};if(j.ok){const e=async()=>{if("stream"===S)return j.body;if("json"===S&&!Z){const e=await j.text();return e?JSON.parse(e):void 0}return await j[S]()};return{data:await e(),response:j}}let L=await j.text();try{L=JSON.parse(L)}catch{}return{error:L,response:j}}return{request:(e,t,n)=>d(t,{...n,method:e.toUpperCase()}),GET:(e,t)=>d(e,{...t,method:"GET"}),PUT:(e,t)=>d(e,{...t,method:"PUT"}),POST:(e,t)=>d(e,{...t,method:"POST"}),DELETE:(e,t)=>d(e,{...t,method:"DELETE"}),OPTIONS:(e,t)=>d(e,{...t,method:"OPTIONS"}),HEAD:(e,t)=>d(e,{...t,method:"HEAD"}),PATCH:(e,t)=>d(e,{...t,method:"PATCH"}),TRACE:(e,t)=>d(e,{...t,method:"TRACE"}),use(...e){for(const t of e)if(t){if("object"!=typeof t||!("onRequest"in t||"onResponse"in t||"onError"in t))throw new Error("Middleware must be an object with one of `onRequest()`, `onResponse() or `onError()`");c.push(t)}},eject(...e){for(const t of e){const e=c.indexOf(t);-1!==e&&c.splice(e,1)}}}}function f(e,t,n){if(null==t)return"";if("object"==typeof t)throw new Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");return`${e}=${!0===n?.allowReserved?t:encodeURIComponent(t)}`}function m(e,t,n){if(!t||"object"!=typeof t)return"";const o=[],i={simple:",",label:".",matrix:";"}[n.style]||"&";if("deepObject"!==n.style&&!1===n.explode){for(const e in t)o.push(e,!0===n.allowReserved?t[e]:encodeURIComponent(t[e]));const i=o.join(",");switch(n.style){case"form":return`${e}=${i}`;case"label":return`.${i}`;case"matrix":return`;${e}=${i}`;default:return i}}for(const a in t){const i="deepObject"===n.style?`${e}[${a}]`:a;o.push(f(i,t[a],n))}const r=o.join(i);return"label"===n.style||"matrix"===n.style?`${i}${r}`:r}function _(e,t,n){if(!Array.isArray(t))return"";if(!1===n.explode){const o={form:",",spaceDelimited:"%20",pipeDelimited:"|"}[n.style]||",",i=(!0===n.allowReserved?t:t.map(e=>encodeURIComponent(e))).join(o);switch(n.style){case"simple":return i;case"label":return`.${i}`;case"matrix":return`;${e}=${i}`;default:return`${e}=${i}`}}const o={simple:",",label:".",matrix:";"}[n.style]||"&",i=[];for(const r of t)"simple"===n.style||"label"===n.style?i.push(!0===n.allowReserved?r:encodeURIComponent(r)):i.push(f(e,r,n));return"label"===n.style||"matrix"===n.style?`${o}${i.join(o)}`:i.join(o)}function h(e){return function(t){const n=[];if(t&&"object"==typeof t)for(const o in t){const i=t[o];if(null!=i)if(Array.isArray(i)){if(0===i.length)continue;n.push(_(o,i,{style:"form",explode:!0,...e?.array,allowReserved:e?.allowReserved||!1}))}else"object"!=typeof i?n.push(f(o,i,e)):n.push(m(o,i,{style:"deepObject",explode:!0,...e?.object,allowReserved:e?.allowReserved||!1}))}return n.join("&")}}function y(e,t){let n=e;for(const o of e.match(d)??[]){let e=o.substring(1,o.length-1),i=!1,r="simple";if(e.endsWith("*")&&(i=!0,e=e.substring(0,e.length-1)),e.startsWith(".")?(r="label",e=e.substring(1)):e.startsWith(";")&&(r="matrix",e=e.substring(1)),!t||void 0===t[e]||null===t[e])continue;const a=t[e];Array.isArray(a)?n=n.replace(o,_(e,a,{style:r,explode:i})):n="object"!=typeof a?"matrix"!==r?n.replace(o,"label"===r?`.${encodeURIComponent(a)}`:encodeURIComponent(a)):n.replace(o,`;${f(e,a)}`):n.replace(o,m(e,a,{style:r,explode:i}))}return n}function g(e,t){return e instanceof FormData?e:t&&"application/x-www-form-urlencoded"===(t.get instanceof Function?t.get("Content-Type")??t.get("content-type"):t["Content-Type"]??t["content-type"])?new URLSearchParams(e).toString():JSON.stringify(e)}function b(...e){const t=new Headers;for(const n of e){if(!n||"object"!=typeof n)continue;const e=n instanceof Headers?n.entries():Object.entries(n);for(const[n,o]of e)if(null===o)t.delete(n);else if(Array.isArray(o))for(const e of o)t.append(n,e);else void 0!==o&&t.set(n,o)}return t}function v(e){return e.endsWith("/")?e.substring(0,e.length-1):e}var w={header:{title:"Header",aliases:["Header Menu"]},footer:{title:"Footer",aliases:["Footer Links","Legal Links"]}};var S;Object.keys(w);function k(e,t,n){function o(n,o){if(n._zod||Object.defineProperty(n,"_zod",{value:{def:o,constr:a,traits:new Set},enumerable:!1}),n._zod.traits.has(e))return;n._zod.traits.add(e),t(n,o);const i=a.prototype,r=Object.keys(i);for(let e=0;e<r.length;e++){const t=r[e];t in n||(n[t]=i[t].bind(n))}}const i=n?.Parent??Object;class r extends i{}function a(e){var t;const i=n?.Parent?new r:this;o(i,e),(t=i._zod).deferred??(t.deferred=[]);for(const n of i._zod.deferred)n();return i}return Object.defineProperty(r,"name",{value:e}),Object.defineProperty(a,"init",{value:o}),Object.defineProperty(a,Symbol.hasInstance,{value:t=>!!(n?.Parent&&t instanceof n.Parent)||t?._zod?.traits?.has(e)}),Object.defineProperty(a,"name",{value:e}),a}var z=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},O=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}};(S=globalThis).__zod_globalConfig??(S.__zod_globalConfig={});var x=globalThis.__zod_globalConfig;function E(e){return e&&Object.assign(x,e),x}function T(e){const t=Object.values(e).filter(e=>"number"==typeof e);return Object.entries(e).filter(([e,n])=>-1===t.indexOf(+e)).map(([e,t])=>t)}function A(e,t){return"bigint"==typeof t?t.toString():t}function I(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function $(e){return null==e}function C(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}var N=Symbol("evaluating");function P(e,t,n){let o;Object.defineProperty(e,t,{get(){if(o!==N)return void 0===o&&(o=N,o=n()),o},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function R(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function U(...e){const t={};for(const n of e){const e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}function q(e){return JSON.stringify(e)}var j="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function D(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}var Z=I(()=>{if(x.jitless)return!1;if("undefined"!=typeof navigator&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch(e){return!1}});function L(e){if(!1===D(e))return!1;const t=e.constructor;if(void 0===t)return!0;if("function"!=typeof t)return!0;const n=t.prototype;return!1!==D(n)&&!1!==Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")}function M(e){return L(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}var F=new Set(["string","number","symbol"]);function B(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Y(e,t,n){const o=new e._zod.constr(t??e._zod.def);return t&&!n?.parent||(o._zod.parent=e),o}function J(e){const t=e;if(!t)return{};if("string"==typeof t)return{error:()=>t};if(void 0!==t?.message){if(void 0!==t?.error)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,"string"==typeof t.error?{...t,error:()=>t.error}:t}var W={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function V(e,t=0){if(!0===e.aborted)return!0;for(let n=t;n<e.issues.length;n++)if(!0!==e.issues[n]?.continue)return!0;return!1}function G(e,t=0){if(!0===e.aborted)return!0;for(let n=t;n<e.issues.length;n++)if(!1===e.issues[n]?.continue)return!0;return!1}function H(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function K(e){return"string"==typeof e?e:e?.message}function X(e,t,n){const o=e.message?e.message:K(e.inst?._zod.def?.error?.(e))??K(t?.error?.(e))??K(n.customError?.(e))??K(n.localeError?.(e))??"Invalid input",{inst:i,continue:r,input:a,...s}=e;return s.path??(s.path=[]),s.message=o,t?.reportInput&&(s.input=a),s}function Q(e){return Array.isArray(e)?"array":"string"==typeof e?"string":"unknown"}function ee(...e){const[t,n,o]=e;return"string"==typeof t?{message:t,code:"custom",input:n,inst:o}:{...t}}var te=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,A,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},ne=k("$ZodError",te),oe=k("$ZodError",te,{Parent:Error});var ie=e=>(t,n,o,i)=>{const r=o?{...o,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},r);if(a instanceof Promise)throw new z;if(a.issues.length){const t=new(i?.Err??e)(a.issues.map(e=>X(e,r,E())));throw j(t,i?.callee),t}return a.value},re=e=>async(t,n,o,i)=>{const r=o?{...o,async:!0}:{async:!0};let a=t._zod.run({value:n,issues:[]},r);if(a instanceof Promise&&(a=await a),a.issues.length){const t=new(i?.Err??e)(a.issues.map(e=>X(e,r,E())));throw j(t,i?.callee),t}return a.value},ae=e=>(t,n,o)=>{const i=o?{...o,async:!1}:{async:!1},r=t._zod.run({value:n,issues:[]},i);if(r instanceof Promise)throw new z;return r.issues.length?{success:!1,error:new(e??ne)(r.issues.map(e=>X(e,i,E())))}:{success:!0,data:r.value}},se=ae(oe),ue=e=>async(t,n,o)=>{const i=o?{...o,async:!0}:{async:!0};let r=t._zod.run({value:n,issues:[]},i);return r instanceof Promise&&(r=await r),r.issues.length?{success:!1,error:new e(r.issues.map(e=>X(e,i,E())))}:{success:!0,data:r.value}},le=ue(oe),ce=e=>(t,n,o)=>{const i=o?{...o,direction:"backward"}:{direction:"backward"};return ie(e)(t,n,i)},de=e=>(t,n,o)=>ie(e)(t,n,o),pe=e=>async(t,n,o)=>{const i=o?{...o,direction:"backward"}:{direction:"backward"};return re(e)(t,n,i)},fe=e=>async(t,n,o)=>re(e)(t,n,o),me=e=>(t,n,o)=>{const i=o?{...o,direction:"backward"}:{direction:"backward"};return ae(e)(t,n,i)},_e=e=>(t,n,o)=>ae(e)(t,n,o),he=e=>async(t,n,o)=>{const i=o?{...o,direction:"backward"}:{direction:"backward"};return ue(e)(t,n,i)},ye=e=>async(t,n,o)=>ue(e)(t,n,o),ge=/^[cC][0-9a-z]{6,}$/,be=/^[0-9a-z]+$/,ve=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,we=/^[0-9a-vA-V]{20}$/,Se=/^[A-Za-z0-9]{27}$/,ke=/^[a-zA-Z0-9_-]{21}$/,ze=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Oe=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,xe=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Ee=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var Te=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Ae=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,Ie=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,$e=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Ce=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Ne=/^[A-Za-z0-9_-]*$/,Pe=/^https?$/,Re=/^\+[1-9]\d{6,14}$/,Ue="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",qe=new RegExp(`^${Ue}$`);function je(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return"number"==typeof e.precision?-1===e.precision?`${t}`:0===e.precision?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}var De=/^-?\d+$/,Ze=/^-?\d+(?:\.\d+)?$/,Le=/^(?:true|false)$/i,Me=/^[^A-Z]*$/,Fe=/^[^a-z]*$/,Be=k("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),Ye={number:"number",bigint:"bigint",object:"date"},Je=k("$ZodCheckLessThan",(e,t)=>{Be.init(e,t);const n=Ye[typeof t.value];e._zod.onattach.push(e=>{const n=e._zod.bag,o=(t.inclusive?n.maximum:n.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<o&&(t.inclusive?n.maximum=t.value:n.exclusiveMaximum=t.value)}),e._zod.check=o=>{(t.inclusive?o.value<=t.value:o.value<t.value)||o.issues.push({origin:n,code:"too_big",maximum:"object"==typeof t.value?t.value.getTime():t.value,input:o.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),We=k("$ZodCheckGreaterThan",(e,t)=>{Be.init(e,t);const n=Ye[typeof t.value];e._zod.onattach.push(e=>{const n=e._zod.bag,o=(t.inclusive?n.minimum:n.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>o&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=o=>{(t.inclusive?o.value>=t.value:o.value>t.value)||o.issues.push({origin:n,code:"too_small",minimum:"object"==typeof t.value?t.value.getTime():t.value,input:o.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Ve=k("$ZodCheckMultipleOf",(e,t)=>{Be.init(e,t),e._zod.onattach.push(e=>{var n;(n=e._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");("bigint"==typeof n.value?n.value%t.value!==BigInt(0):0!==function(e,t){const n=e/t,o=Math.round(n),i=Number.EPSILON*Math.max(Math.abs(n),1);return Math.abs(n-o)<i?0:n-o}(n.value,t.value))&&n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),Ge=k("$ZodCheckNumberFormat",(e,t)=>{Be.init(e,t),t.format=t.format||"float64";const n=t.format?.includes("int"),o=n?"int":"number",[i,r]=W[t.format];e._zod.onattach.push(e=>{const o=e._zod.bag;o.format=t.format,o.minimum=i,o.maximum=r,n&&(o.pattern=De)}),e._zod.check=a=>{const s=a.value;if(n){if(!Number.isInteger(s))return void a.issues.push({expected:o,format:t.format,code:"invalid_type",continue:!1,input:s,inst:e});if(!Number.isSafeInteger(s))return void(s>0?a.issues.push({input:s,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:o,inclusive:!0,continue:!t.abort}):a.issues.push({input:s,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:o,inclusive:!0,continue:!t.abort}))}s<i&&a.issues.push({origin:"number",input:s,code:"too_small",minimum:i,inclusive:!0,inst:e,continue:!t.abort}),s>r&&a.issues.push({origin:"number",input:s,code:"too_big",maximum:r,inclusive:!0,inst:e,continue:!t.abort})}}),He=k("$ZodCheckMaxLength",(e,t)=>{var n;Be.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!$(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<n&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{const o=n.value;if(o.length<=t.maximum)return;const i=Q(o);n.issues.push({origin:i,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Ke=k("$ZodCheckMinLength",(e,t)=>{var n;Be.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!$(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{const o=n.value;if(o.length>=t.minimum)return;const i=Q(o);n.issues.push({origin:i,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Xe=k("$ZodCheckLengthEquals",(e,t)=>{var n;Be.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!$(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=n=>{const o=n.value,i=o.length;if(i===t.length)return;const r=Q(o),a=i>t.length;n.issues.push({origin:r,...a?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),Qe=k("$ZodCheckStringFormat",(e,t)=>{var n,o;Be.init(e,t),e._zod.onattach.push(e=>{const n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??(n.patterns=new Set),n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,t.pattern.test(n.value)||n.issues.push({origin:"string",code:"invalid_format",format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(o=e._zod).check??(o.check=()=>{})}),et=k("$ZodCheckRegex",(e,t)=>{Qe.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,t.pattern.test(n.value)||n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),tt=k("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Me),Qe.init(e,t)}),nt=k("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=Fe),Qe.init(e,t)}),ot=k("$ZodCheckIncludes",(e,t)=>{Be.init(e,t);const n=B(t.includes),o=new RegExp("number"==typeof t.position?`^.{${t.position}}${n}`:n);t.pattern=o,e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(o)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),it=k("$ZodCheckStartsWith",(e,t)=>{Be.init(e,t);const n=new RegExp(`^${B(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(n)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),rt=k("$ZodCheckEndsWith",(e,t)=>{Be.init(e,t);const n=new RegExp(`.*${B(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(n)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),at=k("$ZodCheckOverwrite",(e,t)=>{Be.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}),st=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if("function"==typeof e)return e(this,{execution:"sync"}),void e(this,{execution:"async"});const t=e.split("\n").filter(e=>e),n=Math.min(...t.map(e=>e.length-e.trimStart().length)),o=t.map(e=>e.slice(n)).map(e=>" ".repeat(2*this.indent)+e);for(const i of o)this.content.push(i)}compile(){const e=Function,t=this?.args;return new e(...t,[...(this?.content??[""]).map(e=>` ${e}`)].join("\n"))}},ut={major:4,minor:4,patch:3},lt=k("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=ut;const o=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&o.unshift(e);for(const i of o)for(const t of i._zod.onattach)t(e);if(0===o.length)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const t=(e,t,n)=>{let o,i=V(e);for(const r of t){if(r._zod.def.when){if(G(e))continue;if(!r._zod.def.when(e))continue}else if(i)continue;const t=e.issues.length,a=r._zod.check(e);if(a instanceof Promise&&!1===n?.async)throw new z;if(o||a instanceof Promise)o=(o??Promise.resolve()).then(async()=>{await a,e.issues.length!==t&&(i||(i=V(e,t)))});else{if(e.issues.length===t)continue;i||(i=V(e,t))}}return o?o.then(()=>e):e},n=(n,i,r)=>{if(V(n))return n.aborted=!0,n;const a=t(i,o,r);if(a instanceof Promise){if(!1===r.async)throw new z;return a.then(t=>e._zod.parse(t,r))}return e._zod.parse(a,r)};e._zod.run=(i,r)=>{if(r.skipChecks)return e._zod.parse(i,r);if("backward"===r.direction){const t=e._zod.parse({value:i.value,issues:[]},{...r,skipChecks:!0});return t instanceof Promise?t.then(e=>n(e,i,r)):n(t,i,r)}const a=e._zod.parse(i,r);if(a instanceof Promise){if(!1===r.async)throw new z;return a.then(e=>t(e,o,r))}return t(a,o,r)}}P(e,"~standard",()=>({validate:t=>{try{const n=se(e,t);return n.success?{value:n.data}:{issues:n.error?.issues}}catch(n){return le(e,t).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:"zod",version:1}))}),ct=k("$ZodString",(e,t)=>{var n;lt.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??(n=e._zod.bag,new RegExp(`^${n?`[\\s\\S]{${n?.minimum??0},${n?.maximum??""}}`:"[\\s\\S]*"}$`)),e._zod.parse=(n,o)=>{if(t.coerce)try{n.value=String(n.value)}catch(o){}return"string"==typeof n.value||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),dt=k("$ZodStringFormat",(e,t)=>{Qe.init(e,t),ct.init(e,t)}),pt=k("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Oe),dt.init(e,t)}),ft=k("$ZodUUID",(e,t)=>{if(t.version){const e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(void 0===e)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=xe(e))}else t.pattern??(t.pattern=xe());dt.init(e,t)}),mt=k("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Ee),dt.init(e,t)}),_t=k("$ZodURL",(e,t)=>{dt.init(e,t),e._zod.check=n=>{try{const o=n.value.trim();if(!t.normalize&&t.protocol?.source===Pe.source&&!/^https?:\/\//i.test(o))return void n.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:n.value,inst:e,continue:!t.abort});const i=new URL(o);return t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(":")?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),void(t.normalize?n.value=i.href:n.value=o)}catch(o){n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),ht=k("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),dt.init(e,t)}),yt=k("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=ke),dt.init(e,t)}),gt=k("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=ge),dt.init(e,t)}),bt=k("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=be),dt.init(e,t)}),vt=k("$ZodULID",(e,t)=>{t.pattern??(t.pattern=ve),dt.init(e,t)}),wt=k("$ZodXID",(e,t)=>{t.pattern??(t.pattern=we),dt.init(e,t)}),St=k("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=Se),dt.init(e,t)}),kt=k("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=function(e){const t=je({precision:e.precision}),n=["Z"];e.local&&n.push(""),e.offset&&n.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const o=`${t}(?:${n.join("|")})`;return new RegExp(`^${Ue}T(?:${o})$`)}(t)),dt.init(e,t)}),zt=k("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=qe),dt.init(e,t)}),Ot=k("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=new RegExp(`^${je(t)}$`)),dt.init(e,t)}),xt=k("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=ze),dt.init(e,t)}),Et=k("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=Te),dt.init(e,t),e._zod.bag.format="ipv4"}),Tt=k("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=Ae),dt.init(e,t),e._zod.bag.format="ipv6",e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:e,continue:!t.abort})}}}),At=k("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=Ie),dt.init(e,t)}),It=k("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=$e),dt.init(e,t),e._zod.check=n=>{const o=n.value.split("/");try{if(2!==o.length)throw new Error;const[e,t]=o;if(!t)throw new Error;const n=Number(t);if(`${n}`!==t)throw new Error;if(n<0||n>128)throw new Error;new URL(`http://[${e}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});function $t(e){if(""===e)return!0;if(/\s/.test(e))return!1;if(e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}var Ct=k("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=Ce),dt.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=n=>{$t(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});var Nt=k("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=Ne),dt.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=n=>{(function(e){if(!Ne.test(e))return!1;const t=e.replace(/[-_]/g,e=>"-"===e?"+":"/");return $t(t.padEnd(4*Math.ceil(t.length/4),"="))})(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),Pt=k("$ZodE164",(e,t)=>{t.pattern??(t.pattern=Re),dt.init(e,t)});var Rt=k("$ZodJWT",(e,t)=>{dt.init(e,t),e._zod.check=n=>{(function(e,t=null){try{const n=e.split(".");if(3!==n.length)return!1;const[o]=n;if(!o)return!1;const i=JSON.parse(atob(o));return!("typ"in i&&"JWT"!==i?.typ||!i.alg||t&&(!("alg"in i)||i.alg!==t))}catch{return!1}})(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),Ut=k("$ZodNumber",(e,t)=>{lt.init(e,t),e._zod.pattern=e._zod.bag.pattern??Ze,e._zod.parse=(n,o)=>{if(t.coerce)try{n.value=Number(n.value)}catch(a){}const i=n.value;if("number"==typeof i&&!Number.isNaN(i)&&Number.isFinite(i))return n;const r="number"==typeof i?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:i,inst:e,...r?{received:r}:{}}),n}}),qt=k("$ZodNumberFormat",(e,t)=>{Ge.init(e,t),Ut.init(e,t)}),jt=k("$ZodBoolean",(e,t)=>{lt.init(e,t),e._zod.pattern=Le,e._zod.parse=(n,o)=>{if(t.coerce)try{n.value=Boolean(n.value)}catch(r){}const i=n.value;return"boolean"==typeof i||n.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:e}),n}}),Dt=k("$ZodUnknown",(e,t)=>{lt.init(e,t),e._zod.parse=e=>e}),Zt=k("$ZodNever",(e,t)=>{lt.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:"never",code:"invalid_type",input:t.value,inst:e}),t)});function Lt(e,t,n){e.issues.length&&t.issues.push(...H(n,e.issues)),t.value[n]=e.value}var Mt=k("$ZodArray",(e,t)=>{lt.init(e,t),e._zod.parse=(n,o)=>{const i=n.value;if(!Array.isArray(i))return n.issues.push({expected:"array",code:"invalid_type",input:i,inst:e}),n;n.value=Array(i.length);const r=[];for(let e=0;e<i.length;e++){const a=i[e],s=t.element._zod.run({value:a,issues:[]},o);s instanceof Promise?r.push(s.then(t=>Lt(t,n,e))):Lt(s,n,e)}return r.length?Promise.all(r).then(()=>n):n}});function Ft(e,t,n,o,i,r){const a=n in o;if(e.issues.length){if(i&&r&&!a)return;t.issues.push(...H(n,e.issues))}a||i?void 0===e.value?a&&(t.value[n]=void 0):t.value[n]=e.value:e.issues.length||t.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[n]})}function Bt(e){const t=Object.keys(e.shape);for(const i of t)if(!e.shape?.[i]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${i}": expected a Zod schema`);const n=(o=e.shape,Object.keys(o).filter(e=>"optional"===o[e]._zod.optin&&"optional"===o[e]._zod.optout));var o;return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function Yt(e,t,n,o,i,r){const a=[],s=i.keySet,u=i.catchall._zod,l=u.def.type,c="optional"===u.optin,d="optional"===u.optout;for(const p in t){if("__proto__"===p)continue;if(s.has(p))continue;if("never"===l){a.push(p);continue}const i=u.run({value:t[p],issues:[]},o);i instanceof Promise?e.push(i.then(e=>Ft(e,n,p,t,c,d))):Ft(i,n,p,t,c,d)}return a.length&&n.issues.push({code:"unrecognized_keys",keys:a,input:t,inst:r}),e.length?Promise.all(e).then(()=>n):n}var Jt=k("$ZodObject",(e,t)=>{if(lt.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){const e=t.shape;Object.defineProperty(t,"shape",{get:()=>{const n={...e};return Object.defineProperty(t,"shape",{value:n}),n}})}const n=I(()=>Bt(t));P(e._zod,"propValues",()=>{const e=t.shape,n={};for(const t in e){const o=e[t]._zod;if(o.values){n[t]??(n[t]=new Set);for(const e of o.values)n[t].add(e)}}return n});const o=D,i=t.catchall;let r;e._zod.parse=(t,a)=>{r??(r=n.value);const s=t.value;if(!o(s))return t.issues.push({expected:"object",code:"invalid_type",input:s,inst:e}),t;t.value={};const u=[],l=r.shape;for(const e of r.keys){const n=l[e],o="optional"===n._zod.optin,i="optional"===n._zod.optout,r=n._zod.run({value:s[e],issues:[]},a);r instanceof Promise?u.push(r.then(n=>Ft(n,t,e,s,o,i))):Ft(r,t,e,s,o,i)}return i?Yt(u,s,t,a,n.value,e):u.length?Promise.all(u).then(()=>t):t}}),Wt=k("$ZodObjectJIT",(e,t)=>{Jt.init(e,t);const n=e._zod.parse,o=I(()=>Bt(t));let i;const r=D,a=!x.jitless,s=a&&Z.value,u=t.catchall;let l;e._zod.parse=(c,d)=>{l??(l=o.value);const p=c.value;return r(p)?a&&s&&!1===d?.async&&!0!==d.jitless?(i||(i=(e=>{const t=new st(["shape","payload","ctx"]),n=o.value,i=e=>{const t=q(e);return`shape[${t}]._zod.run({ value: input[${t}], issues: [] }, ctx)`};t.write("const input = payload.value;");const r=Object.create(null);let a=0;for(const o of n.keys)r[o]="key_"+a++;t.write("const newResult = {};");for(const o of n.keys){const n=r[o],a=q(o),s=e[o],u="optional"===s?._zod?.optin,l="optional"===s?._zod?.optout;t.write(`const ${n} = ${i(o)};`),u&&l?t.write(`\n if (${n}.issues.length) {\n if (${a} in input) {\n payload.issues = payload.issues.concat(${n}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${a}, ...iss.path] : [${a}]\n })));\n }\n }\n \n if (${n}.value === undefined) {\n if (${a} in input) {\n newResult[${a}] = undefined;\n }\n } else {\n newResult[${a}] = ${n}.value;\n }\n \n `):u?t.write(`\n if (${n}.issues.length) {\n payload.issues = payload.issues.concat(${n}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${a}, ...iss.path] : [${a}]\n })));\n }\n \n if (${n}.value === undefined) {\n if (${a} in input) {\n newResult[${a}] = undefined;\n }\n } else {\n newResult[${a}] = ${n}.value;\n }\n \n `):t.write(`\n const ${n}_present = ${a} in input;\n if (${n}.issues.length) {\n payload.issues = payload.issues.concat(${n}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${a}, ...iss.path] : [${a}]\n })));\n }\n if (!${n}_present && !${n}.issues.length) {\n payload.issues.push({\n code: "invalid_type",\n expected: "nonoptional",\n input: undefined,\n path: [${a}]\n });\n }\n\n if (${n}_present) {\n if (${n}.value === undefined) {\n newResult[${a}] = undefined;\n } else {\n newResult[${a}] = ${n}.value;\n }\n }\n\n `)}t.write("payload.value = newResult;"),t.write("return payload;");const s=t.compile();return(t,n)=>s(e,t,n)})(t.shape)),c=i(c,d),u?Yt([],p,c,d,l,e):c):n(c,d):(c.issues.push({expected:"object",code:"invalid_type",input:p,inst:e}),c)}});function Vt(e,t,n,o){for(const r of e)if(0===r.issues.length)return t.value=r.value,t;const i=e.filter(e=>!V(e));return 1===i.length?(t.value=i[0].value,i[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>X(e,o,E())))}),t)}var Gt=k("$ZodUnion",(e,t)=>{lt.init(e,t),P(e._zod,"optin",()=>t.options.some(e=>"optional"===e._zod.optin)?"optional":void 0),P(e._zod,"optout",()=>t.options.some(e=>"optional"===e._zod.optout)?"optional":void 0),P(e._zod,"values",()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),P(e._zod,"pattern",()=>{if(t.options.every(e=>e._zod.pattern)){const e=t.options.map(e=>e._zod.pattern);return new RegExp(`^(${e.map(e=>C(e.source)).join("|")})$`)}});const n=1===t.options.length?t.options[0]._zod.run:null;e._zod.parse=(o,i)=>{if(n)return n(o,i);let r=!1;const a=[];for(const e of t.options){const t=e._zod.run({value:o.value,issues:[]},i);if(t instanceof Promise)a.push(t),r=!0;else{if(0===t.issues.length)return t;a.push(t)}}return r?Promise.all(a).then(t=>Vt(t,o,e,i)):Vt(a,o,e,i)}}),Ht=k("$ZodDiscriminatedUnion",(e,t)=>{t.inclusive=!1,Gt.init(e,t);const n=e._zod.parse;P(e._zod,"propValues",()=>{const e={};for(const n of t.options){const o=n._zod.propValues;if(!o||0===Object.keys(o).length)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(n)}"`);for(const[t,n]of Object.entries(o)){e[t]||(e[t]=new Set);for(const o of n)e[t].add(o)}}return e});const o=I(()=>{const e=t.options,n=new Map;for(const o of e){const e=o._zod.propValues?.[t.discriminator];if(!e||0===e.size)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(o)}"`);for(const t of e){if(n.has(t))throw new Error(`Duplicate discriminator value "${String(t)}"`);n.set(t,o)}}return n});e._zod.parse=(i,r)=>{const a=i.value;if(!D(a))return i.issues.push({code:"invalid_type",expected:"object",input:a,inst:e}),i;const s=o.value.get(a?.[t.discriminator]);return s?s._zod.run(i,r):t.unionFallback||"backward"===r.direction?n(i,r):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:t.discriminator,options:Array.from(o.value.keys()),input:a,path:[t.discriminator],inst:e}),i)}}),Kt=k("$ZodIntersection",(e,t)=>{lt.init(e,t),e._zod.parse=(e,n)=>{const o=e.value,i=t.left._zod.run({value:o,issues:[]},n),r=t.right._zod.run({value:o,issues:[]},n);return i instanceof Promise||r instanceof Promise?Promise.all([i,r]).then(([t,n])=>Qt(e,t,n)):Qt(e,i,r)}});function Xt(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e===+t)return{valid:!0,data:e};if(L(e)&&L(t)){const n=Object.keys(t),o=Object.keys(e).filter(e=>-1!==n.indexOf(e)),i={...e,...t};for(const r of o){const n=Xt(e[r],t[r]);if(!n.valid)return{valid:!1,mergeErrorPath:[r,...n.mergeErrorPath]};i[r]=n.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const n=[];for(let o=0;o<e.length;o++){const i=Xt(e[o],t[o]);if(!i.valid)return{valid:!1,mergeErrorPath:[o,...i.mergeErrorPath]};n.push(i.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function Qt(e,t,n){const o=new Map;let i;for(const s of t.issues)if("unrecognized_keys"===s.code){i??(i=s);for(const e of s.keys)o.has(e)||o.set(e,{}),o.get(e).l=!0}else e.issues.push(s);for(const s of n.issues)if("unrecognized_keys"===s.code)for(const e of s.keys)o.has(e)||o.set(e,{}),o.get(e).r=!0;else e.issues.push(s);const r=[...o].filter(([,e])=>e.l&&e.r).map(([e])=>e);if(r.length&&i&&e.issues.push({...i,keys:r}),V(e))return e;const a=Xt(t.value,n.value);if(!a.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(a.mergeErrorPath)}`);return e.value=a.data,e}var en=k("$ZodRecord",(e,t)=>{lt.init(e,t),e._zod.parse=(n,o)=>{const i=n.value;if(!L(i))return n.issues.push({expected:"record",code:"invalid_type",input:i,inst:e}),n;const r=[],a=t.keyType._zod.values;if(a){n.value={};const s=new Set;for(const l of a)if("string"==typeof l||"number"==typeof l||"symbol"==typeof l){s.add("number"==typeof l?l.toString():l);const a=t.keyType._zod.run({value:l,issues:[]},o);if(a instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(a.issues.length){n.issues.push({code:"invalid_key",origin:"record",issues:a.issues.map(e=>X(e,o,E())),input:l,path:[l],inst:e});continue}const u=a.value,c=t.valueType._zod.run({value:i[l],issues:[]},o);c instanceof Promise?r.push(c.then(e=>{e.issues.length&&n.issues.push(...H(l,e.issues)),n.value[u]=e.value})):(c.issues.length&&n.issues.push(...H(l,c.issues)),n.value[u]=c.value)}let u;for(const e in i)s.has(e)||(u=u??[],u.push(e));u&&u.length>0&&n.issues.push({code:"unrecognized_keys",input:i,inst:e,keys:u})}else{n.value={};for(const a of Reflect.ownKeys(i)){if("__proto__"===a)continue;if(!Object.prototype.propertyIsEnumerable.call(i,a))continue;let s=t.keyType._zod.run({value:a,issues:[]},o);if(s instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if("string"==typeof a&&Ze.test(a)&&s.issues.length){const e=t.keyType._zod.run({value:Number(a),issues:[]},o);if(e instanceof Promise)throw new Error("Async schemas not supported in object keys currently");0===e.issues.length&&(s=e)}if(s.issues.length){"loose"===t.mode?n.value[a]=i[a]:n.issues.push({code:"invalid_key",origin:"record",issues:s.issues.map(e=>X(e,o,E())),input:a,path:[a],inst:e});continue}const u=t.valueType._zod.run({value:i[a],issues:[]},o);u instanceof Promise?r.push(u.then(e=>{e.issues.length&&n.issues.push(...H(a,e.issues)),n.value[s.value]=e.value})):(u.issues.length&&n.issues.push(...H(a,u.issues)),n.value[s.value]=u.value)}}return r.length?Promise.all(r).then(()=>n):n}}),tn=k("$ZodEnum",(e,t)=>{lt.init(e,t);const n=T(t.entries),o=new Set(n);e._zod.values=o,e._zod.pattern=new RegExp(`^(${n.filter(e=>F.has(typeof e)).map(e=>"string"==typeof e?B(e):e.toString()).join("|")})$`),e._zod.parse=(t,i)=>{const r=t.value;return o.has(r)||t.issues.push({code:"invalid_value",values:n,input:r,inst:e}),t}}),nn=k("$ZodLiteral",(e,t)=>{if(lt.init(e,t),0===t.values.length)throw new Error("Cannot create literal schema with no valid values");const n=new Set(t.values);e._zod.values=n,e._zod.pattern=new RegExp(`^(${t.values.map(e=>"string"==typeof e?B(e):e?B(e.toString()):String(e)).join("|")})$`),e._zod.parse=(o,i)=>{const r=o.value;return n.has(r)||o.issues.push({code:"invalid_value",values:t.values,input:r,inst:e}),o}}),on=k("$ZodTransform",(e,t)=>{lt.init(e,t),e._zod.optin="optional",e._zod.parse=(n,o)=>{if("backward"===o.direction)throw new O(e.constructor.name);const i=t.transform(n.value,n);if(o.async)return(i instanceof Promise?i:Promise.resolve(i)).then(e=>(n.value=e,n.fallback=!0,n));if(i instanceof Promise)throw new z;return n.value=i,n.fallback=!0,n}});function rn(e,t){return void 0===t&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}var an=k("$ZodOptional",(e,t)=>{lt.init(e,t),e._zod.optin="optional",e._zod.optout="optional",P(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),P(e._zod,"pattern",()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${C(e.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if("optional"===t.innerType._zod.optin){const o=e.value,i=t.innerType._zod.run(e,n);return i instanceof Promise?i.then(e=>rn(e,o)):rn(i,o)}return void 0===e.value?e:t.innerType._zod.run(e,n)}}),sn=k("$ZodExactOptional",(e,t)=>{an.init(e,t),P(e._zod,"values",()=>t.innerType._zod.values),P(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(e,n)=>t.innerType._zod.run(e,n)}),un=k("$ZodNullable",(e,t)=>{lt.init(e,t),P(e._zod,"optin",()=>t.innerType._zod.optin),P(e._zod,"optout",()=>t.innerType._zod.optout),P(e._zod,"pattern",()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${C(e.source)}|null)$`):void 0}),P(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>null===e.value?e:t.innerType._zod.run(e,n)}),ln=k("$ZodDefault",(e,t)=>{lt.init(e,t),e._zod.optin="optional",P(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);if(void 0===e.value)return e.value=t.defaultValue,e;const o=t.innerType._zod.run(e,n);return o instanceof Promise?o.then(e=>cn(e,t)):cn(o,t)}});function cn(e,t){return void 0===e.value&&(e.value=t.defaultValue),e}var dn=k("$ZodPrefault",(e,t)=>{lt.init(e,t),e._zod.optin="optional",P(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>("backward"===n.direction||void 0===e.value&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),pn=k("$ZodNonOptional",(e,t)=>{lt.init(e,t),P(e._zod,"values",()=>{const e=t.innerType._zod.values;return e?new Set([...e].filter(e=>void 0!==e)):void 0}),e._zod.parse=(n,o)=>{const i=t.innerType._zod.run(n,o);return i instanceof Promise?i.then(t=>fn(t,e)):fn(i,e)}});function fn(e,t){return e.issues.length||void 0!==e.value||e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}var mn=k("$ZodCatch",(e,t)=>{lt.init(e,t),e._zod.optin="optional",P(e._zod,"optout",()=>t.innerType._zod.optout),P(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);const o=t.innerType._zod.run(e,n);return o instanceof Promise?o.then(o=>(e.value=o.value,o.issues.length&&(e.value=t.catchValue({...e,error:{issues:o.issues.map(e=>X(e,n,E()))},input:e.value}),e.issues=[],e.fallback=!0),e)):(e.value=o.value,o.issues.length&&(e.value=t.catchValue({...e,error:{issues:o.issues.map(e=>X(e,n,E()))},input:e.value}),e.issues=[],e.fallback=!0),e)}}),_n=k("$ZodPipe",(e,t)=>{lt.init(e,t),P(e._zod,"values",()=>t.in._zod.values),P(e._zod,"optin",()=>t.in._zod.optin),P(e._zod,"optout",()=>t.out._zod.optout),P(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if("backward"===n.direction){const o=t.out._zod.run(e,n);return o instanceof Promise?o.then(e=>hn(e,t.in,n)):hn(o,t.in,n)}const o=t.in._zod.run(e,n);return o instanceof Promise?o.then(e=>hn(e,t.out,n)):hn(o,t.out,n)}});function hn(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues,fallback:e.fallback},n)}var yn=k("$ZodReadonly",(e,t)=>{lt.init(e,t),P(e._zod,"propValues",()=>t.innerType._zod.propValues),P(e._zod,"values",()=>t.innerType._zod.values),P(e._zod,"optin",()=>t.innerType?._zod?.optin),P(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);const o=t.innerType._zod.run(e,n);return o instanceof Promise?o.then(gn):gn(o)}});function gn(e){return e.value=Object.freeze(e.value),e}var bn,vn=k("$ZodCustom",(e,t)=>{Be.init(e,t),lt.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{const o=n.value,i=t.fn(o);if(i instanceof Promise)return i.then(t=>wn(t,n,o,e));wn(i,n,o,e)}});function wn(e,t,n,o){if(!e){const e={code:"custom",input:n,inst:o,path:[...o._zod.def.path??[]],continue:!o._zod.def.abort};o._zod.def.params&&(e.params=o._zod.def.params),t.issues.push(ee(e))}}var Sn=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){const n=t[0];return this._map.set(e,n),n&&"object"==typeof n&&"id"in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){const t=this._map.get(e);return t&&"object"==typeof t&&"id"in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){const t=e._zod.parent;if(t){const n={...this.get(t)??{}};delete n.id;const o={...n,...this._map.get(e)};return Object.keys(o).length?o:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};(bn=globalThis).__zod_globalRegistry??(bn.__zod_globalRegistry=new Sn);var kn=globalThis.__zod_globalRegistry;function zn(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...J(t)})}function On(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...J(t)})}function xn(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...J(t)})}function En(e,t){return new Je({check:"less_than",...J(t),value:e,inclusive:!1})}function Tn(e,t){return new Je({check:"less_than",...J(t),value:e,inclusive:!0})}function An(e,t){return new We({check:"greater_than",...J(t),value:e,inclusive:!1})}function In(e,t){return new We({check:"greater_than",...J(t),value:e,inclusive:!0})}function $n(e,t){return new Ve({check:"multiple_of",...J(t),value:e})}function Cn(e,t){return new He({check:"max_length",...J(t),maximum:e})}function Nn(e,t){return new Ke({check:"min_length",...J(t),minimum:e})}function Pn(e,t){return new Xe({check:"length_equals",...J(t),length:e})}function Rn(e){return new at({check:"overwrite",tx:e})}function Un(e,t){const n=new Be({check:"custom",...J(t)});return n._zod.check=e,n}function qn(e){let t=e?.target??"draft-2020-12";return"draft-4"===t&&(t="draft-04"),"draft-7"===t&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??kn,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function jn(e,t,n={path:[],schemaPath:[]}){var o;const i=e._zod.def,r=t.seen.get(e);if(r)return r.count++,n.schemaPath.includes(e)&&(r.cycle=n.path),r.schema;const a={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,a);const s=e._zod.toJSONSchema?.();if(s)a.schema=s;else{const o={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,a.schema,o);else{const n=a.schema,r=t.processors[i.type];if(!r)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);r(e,t,n,o)}const r=e._zod.parent;r&&(a.ref||(a.ref=r),jn(r,t,o),t.seen.get(r).isParent=!0)}const u=t.metadataRegistry.get(e);return u&&Object.assign(a.schema,u),"input"===t.io&&Ln(e)&&(delete a.schema.examples,delete a.schema.default),"input"===t.io&&"_prefault"in a.schema&&((o=a.schema).default??(o.default=a.schema._prefault)),delete a.schema._prefault,t.seen.get(e).schema}function Dn(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const o=new Map;for(const r of e.seen.entries()){const t=e.metadataRegistry.get(r[0])?.id;if(t){const e=o.get(t);if(e&&e!==r[0])throw new Error(`Duplicate schema id "${t}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);o.set(t,r[0])}}const i=t=>{if(t[1].schema.$ref)return;const o=t[1],{ref:i,defId:r}=(t=>{const o="draft-2020-12"===e.target?"$defs":"definitions";if(e.external){const n=e.external.registry.get(t[0])?.id,i=e.external.uri??(e=>e);if(n)return{ref:i(n)};const r=t[1].defId??t[1].schema.id??"schema"+e.counter++;return t[1].defId=r,{defId:r,ref:`${i("__shared")}#/${o}/${r}`}}if(t[1]===n)return{ref:"#"};const i=`#/${o}/`,r=t[1].schema.id??"__schema"+e.counter++;return{defId:r,ref:i+r}})(t);o.def={...o.schema},r&&(o.defId=r);const a=o.schema;for(const e in a)delete a[e];a.$ref=i};if("throw"===e.cycles)for(const r of e.seen.entries()){const e=r[1];if(e.cycle)throw new Error(`Cycle detected: #/${e.cycle?.join("/")}/<root>\n\nSet the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const r of e.seen.entries()){const n=r[1];if(t!==r[0]){if(e.external){const n=e.external.registry.get(r[0])?.id;if(t!==r[0]&&n){i(r);continue}}(e.metadataRegistry.get(r[0])?.id||n.cycle||n.count>1&&"ref"===e.reused)&&i(r)}else i(r)}}function Zn(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const o=t=>{const n=e.seen.get(t);if(null===n.ref)return;const i=n.def??n.schema,r={...i},a=n.ref;if(n.ref=null,a){o(a);const n=e.seen.get(a),s=n.schema;if(!s.$ref||"draft-07"!==e.target&&"draft-04"!==e.target&&"openapi-3.0"!==e.target?Object.assign(i,s):(i.allOf=i.allOf??[],i.allOf.push(s)),Object.assign(i,r),t._zod.parent===a)for(const e in i)"$ref"!==e&&"allOf"!==e&&(e in r||delete i[e]);if(s.$ref&&n.def)for(const e in i)"$ref"!==e&&"allOf"!==e&&e in n.def&&JSON.stringify(i[e])===JSON.stringify(n.def[e])&&delete i[e]}const s=t._zod.parent;if(s&&s!==a){o(s);const t=e.seen.get(s);if(t?.schema.$ref&&(i.$ref=t.schema.$ref,t.def))for(const e in i)"$ref"!==e&&"allOf"!==e&&e in t.def&&JSON.stringify(i[e])===JSON.stringify(t.def[e])&&delete i[e]}e.override({zodSchema:t,jsonSchema:i,path:n.path??[]})};for(const u of[...e.seen.entries()].reverse())o(u[0]);const i={};if("draft-2020-12"===e.target?i.$schema="https://json-schema.org/draft/2020-12/schema":"draft-07"===e.target?i.$schema="http://json-schema.org/draft-07/schema#":"draft-04"===e.target?i.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const n=e.external.registry.get(t)?.id;if(!n)throw new Error("Schema is missing an `id` property");i.$id=e.external.uri(n)}Object.assign(i,n.def??n.schema);const r=e.metadataRegistry.get(t)?.id;void 0!==r&&i.id===r&&delete i.id;const a=e.external?.defs??{};for(const u of e.seen.entries()){const e=u[1];e.def&&e.defId&&(e.def.id===e.defId&&delete e.def.id,a[e.defId]=e.def)}e.external||Object.keys(a).length>0&&("draft-2020-12"===e.target?i.$defs=a:i.definitions=a);try{const n=JSON.parse(JSON.stringify(i));return Object.defineProperty(n,"~standard",{value:{...t["~standard"],jsonSchema:{input:Mn(t,"input",e.processors),output:Mn(t,"output",e.processors)}},enumerable:!1,writable:!1}),n}catch(s){throw new Error("Error converting schema to JSON.")}}function Ln(e,t){const n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);const o=e._zod.def;if("transform"===o.type)return!0;if("array"===o.type)return Ln(o.element,n);if("set"===o.type)return Ln(o.valueType,n);if("lazy"===o.type)return Ln(o.getter(),n);if("promise"===o.type||"optional"===o.type||"nonoptional"===o.type||"nullable"===o.type||"readonly"===o.type||"default"===o.type||"prefault"===o.type)return Ln(o.innerType,n);if("intersection"===o.type)return Ln(o.left,n)||Ln(o.right,n);if("record"===o.type||"map"===o.type)return Ln(o.keyType,n)||Ln(o.valueType,n);if("pipe"===o.type)return!!e._zod.traits.has("$ZodCodec")||(Ln(o.in,n)||Ln(o.out,n));if("object"===o.type){for(const e in o.shape)if(Ln(o.shape[e],n))return!0;return!1}if("union"===o.type){for(const e of o.options)if(Ln(e,n))return!0;return!1}if("tuple"===o.type){for(const e of o.items)if(Ln(e,n))return!0;return!(!o.rest||!Ln(o.rest,n))}return!1}var Mn=(e,t,n={})=>o=>{const{libraryOptions:i,target:r}=o??{},a=qn({...i??{},target:r,io:t,processors:n});return jn(e,a),Dn(a,e),Zn(a,e)},Fn={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Bn=(e,t,n,o)=>{const i=e._zod.def;jn(i.innerType,t,o);t.seen.get(e).ref=i.innerType},Yn=k("ZodISODateTime",(e,t)=>{kt.init(e,t),vo.init(e,t)});function Jn(e){return function(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...J(t)})}(Yn,e)}var Wn=k("ZodISODate",(e,t)=>{zt.init(e,t),vo.init(e,t)});function Vn(e){return function(e,t){return new e({type:"string",format:"date",check:"string_format",...J(t)})}(Wn,e)}var Gn=k("ZodISOTime",(e,t)=>{Ot.init(e,t),vo.init(e,t)});function Hn(e){return function(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...J(t)})}(Gn,e)}var Kn=k("ZodISODuration",(e,t)=>{xt.init(e,t),vo.init(e,t)});function Xn(e){return function(e,t){return new e({type:"string",format:"duration",check:"string_format",...J(t)})}(Kn,e)}var Qn=(e,t)=>{ne.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:t=>function(e,t=e=>e.message){const n={_errors:[]},o=(e,i=[])=>{for(const r of e.issues)if("invalid_union"===r.code&&r.errors.length)r.errors.map(e=>o({issues:e},[...i,...r.path]));else if("invalid_key"===r.code)o({issues:r.issues},[...i,...r.path]);else if("invalid_element"===r.code)o({issues:r.issues},[...i,...r.path]);else{const e=[...i,...r.path];if(0===e.length)n._errors.push(t(r));else{let o=n,i=0;for(;i<e.length;){const n=e[i];i!==e.length-1?o[n]=o[n]||{_errors:[]}:(o[n]=o[n]||{_errors:[]},o[n]._errors.push(t(r))),o=o[n],i++}}}};return o(e),n}(e,t)},flatten:{value:t=>function(e,t=e=>e.message){const n={},o=[];for(const i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):o.push(t(i));return{formErrors:o,fieldErrors:n}}(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,A,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,A,2)}},isEmpty:{get:()=>0===e.issues.length}})},eo=k("ZodError",Qn,{Parent:Error}),to=ie(eo),no=re(eo),oo=ae(eo),io=ue(eo),ro=ce(eo),ao=de(eo),so=pe(eo),uo=fe(eo),lo=me(eo),co=_e(eo),po=he(eo),fo=ye(eo),mo=new WeakMap;function _o(e,t,n){const o=Object.getPrototypeOf(e);let i=mo.get(o);if(i||(i=new Set,mo.set(o,i)),!i.has(t)){i.add(t);for(const e in n){const t=n[e];Object.defineProperty(o,e,{configurable:!0,enumerable:!1,get(){const n=t.bind(this);return Object.defineProperty(this,e,{configurable:!0,writable:!0,enumerable:!0,value:n}),n},set(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,enumerable:!0,value:t})}})}}}var ho=k("ZodType",(e,t)=>(lt.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:Mn(e,"input"),output:Mn(e,"output")}}),e.toJSONSchema=((e,t={})=>n=>{const o=qn({...n,processors:t});return jn(e,o),Dn(o,e),Zn(o,e)})(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.parse=(t,n)=>to(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>oo(e,t,n),e.parseAsync=async(t,n)=>no(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>io(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>ro(e,t,n),e.decode=(t,n)=>ao(e,t,n),e.encodeAsync=async(t,n)=>so(e,t,n),e.decodeAsync=async(t,n)=>uo(e,t,n),e.safeEncode=(t,n)=>lo(e,t,n),e.safeDecode=(t,n)=>co(e,t,n),e.safeEncodeAsync=async(t,n)=>po(e,t,n),e.safeDecodeAsync=async(t,n)=>fo(e,t,n),_o(e,"ZodType",{check(...e){const t=this.def;return this.clone(U(t,{checks:[...t.checks??[],...e.map(e=>"function"==typeof e?{_zod:{check:e,def:{check:"custom"},onattach:[]}}:e)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return Y(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(function(e,t={}){return function(e,t,n){return new e({type:"custom",check:"custom",fn:t,...J(n)})}(Oi,e,t)}(e,t))},superRefine(e,t){return this.check(function(e,t){return function(e,t){const n=Un(t=>(t.addIssue=e=>{if("string"==typeof e)t.issues.push(ee(e,t.value,n._zod.def));else{const o=e;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=t.value),o.inst??(o.inst=n),o.continue??(o.continue=!n._zod.def.abort),t.issues.push(ee(o))}},e(t.value,t)),t);return n}(e,t)}(e,t))},overwrite(e){return this.check(Rn(e))},optional(){return mi(this)},exactOptional(){return new _i({type:"optional",innerType:this})},nullable(){return yi(this)},nullish(){return mi(yi(this))},nonoptional(e){return function(e,t){return new vi({type:"nonoptional",innerType:e,...J(t)})}(this,e)},array(){return Xo(this)},or(e){return ni([this,e])},and(e){return new ri({type:"intersection",left:this,right:e})},transform(e){return ki(this,new pi({type:"transform",transform:e}))},default(e){return t=e,new gi({type:"default",innerType:this,get defaultValue(){return"function"==typeof t?t():M(t)}});var t},prefault(e){return t=e,new bi({type:"prefault",innerType:this,get defaultValue(){return"function"==typeof t?t():M(t)}});var t},catch(e){return new wi({type:"catch",innerType:this,catchValue:"function"==typeof(t=e)?t:()=>t});var t},pipe(e){return ki(this,e)},readonly(){return new zi({type:"readonly",innerType:this})},describe(e){const t=this.clone();return kn.add(t,{description:e}),t},meta(...e){if(0===e.length)return kn.get(this);const t=this.clone();return kn.add(t,e[0]),t},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e){return e(this)}}),Object.defineProperty(e,"description",{get:()=>kn.get(e)?.description,configurable:!0}),e)),yo=k("_ZodString",(e,t)=>{ct.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n)=>{const o=n;o.type="string";const{minimum:i,maximum:r,format:a,patterns:s,contentEncoding:u}=e._zod.bag;if("number"==typeof i&&(o.minLength=i),"number"==typeof r&&(o.maxLength=r),a&&(o.format=Fn[a]??a,""===o.format&&delete o.format,"time"===a&&delete o.format),u&&(o.contentEncoding=u),s&&s.size>0){const e=[...s];1===e.length?o.pattern=e[0].source:e.length>1&&(o.allOf=[...e.map(e=>({..."draft-07"===t.target||"draft-04"===t.target||"openapi-3.0"===t.target?{type:"string"}:{},pattern:e.source}))])}})(e,t,n);const n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,_o(e,"_ZodString",{regex(...e){return this.check(function(e,t){return new et({check:"string_format",format:"regex",...J(t),pattern:e})}(...e))},includes(...e){return this.check(function(e,t){return new ot({check:"string_format",format:"includes",...J(t),includes:e})}(...e))},startsWith(...e){return this.check(function(e,t){return new it({check:"string_format",format:"starts_with",...J(t),prefix:e})}(...e))},endsWith(...e){return this.check(function(e,t){return new rt({check:"string_format",format:"ends_with",...J(t),suffix:e})}(...e))},min(...e){return this.check(Nn(...e))},max(...e){return this.check(Cn(...e))},length(...e){return this.check(Pn(...e))},nonempty(...e){return this.check(Nn(1,...e))},lowercase(e){return this.check(function(e){return new tt({check:"string_format",format:"lowercase",...J(e)})}(e))},uppercase(e){return this.check(function(e){return new nt({check:"string_format",format:"uppercase",...J(e)})}(e))},trim(){return this.check(Rn(e=>e.trim()))},normalize(...e){return this.check(function(e){return Rn(t=>t.normalize(e))}(...e))},toLowerCase(){return this.check(Rn(e=>e.toLowerCase()))},toUpperCase(){return this.check(Rn(e=>e.toUpperCase()))},slugify(){return this.check(Rn(e=>function(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}(e)))}})}),go=k("ZodString",(e,t)=>{ct.init(e,t),yo.init(e,t),e.email=t=>e.check(zn(wo,t)),e.url=t=>e.check(xn(Oo,t)),e.jwt=t=>e.check(function(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...J(t)})}(Zo,t)),e.emoji=t=>e.check(function(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...J(t)})}(xo,t)),e.guid=t=>e.check(On(ko,t)),e.uuid=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...J(t)})}(zo,t)),e.uuidv4=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...J(t)})}(zo,t)),e.uuidv6=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...J(t)})}(zo,t)),e.uuidv7=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...J(t)})}(zo,t)),e.nanoid=t=>e.check(function(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...J(t)})}(Eo,t)),e.guid=t=>e.check(On(ko,t)),e.cuid=t=>e.check(function(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...J(t)})}(To,t)),e.cuid2=t=>e.check(function(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...J(t)})}(Ao,t)),e.ulid=t=>e.check(function(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...J(t)})}(Io,t)),e.base64=t=>e.check(function(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...J(t)})}(qo,t)),e.base64url=t=>e.check(function(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...J(t)})}(jo,t)),e.xid=t=>e.check(function(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...J(t)})}($o,t)),e.ksuid=t=>e.check(function(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...J(t)})}(Co,t)),e.ipv4=t=>e.check(function(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...J(t)})}(No,t)),e.ipv6=t=>e.check(function(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...J(t)})}(Po,t)),e.cidrv4=t=>e.check(function(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...J(t)})}(Ro,t)),e.cidrv6=t=>e.check(function(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...J(t)})}(Uo,t)),e.e164=t=>e.check(function(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...J(t)})}(Do,t)),e.datetime=t=>e.check(Jn(t)),e.date=t=>e.check(Vn(t)),e.time=t=>e.check(Hn(t)),e.duration=t=>e.check(Xn(t))});function bo(e){return function(e,t){return new e({type:"string",...J(t)})}(go,e)}var vo=k("ZodStringFormat",(e,t)=>{dt.init(e,t),yo.init(e,t)}),wo=k("ZodEmail",(e,t)=>{mt.init(e,t),vo.init(e,t)});function So(e){return zn(wo,e)}var ko=k("ZodGUID",(e,t)=>{pt.init(e,t),vo.init(e,t)}),zo=k("ZodUUID",(e,t)=>{ft.init(e,t),vo.init(e,t)}),Oo=k("ZodURL",(e,t)=>{_t.init(e,t),vo.init(e,t)});var xo=k("ZodEmoji",(e,t)=>{ht.init(e,t),vo.init(e,t)}),Eo=k("ZodNanoID",(e,t)=>{yt.init(e,t),vo.init(e,t)}),To=k("ZodCUID",(e,t)=>{gt.init(e,t),vo.init(e,t)}),Ao=k("ZodCUID2",(e,t)=>{bt.init(e,t),vo.init(e,t)}),Io=k("ZodULID",(e,t)=>{vt.init(e,t),vo.init(e,t)}),$o=k("ZodXID",(e,t)=>{wt.init(e,t),vo.init(e,t)}),Co=k("ZodKSUID",(e,t)=>{St.init(e,t),vo.init(e,t)}),No=k("ZodIPv4",(e,t)=>{Et.init(e,t),vo.init(e,t)}),Po=k("ZodIPv6",(e,t)=>{Tt.init(e,t),vo.init(e,t)}),Ro=k("ZodCIDRv4",(e,t)=>{At.init(e,t),vo.init(e,t)}),Uo=k("ZodCIDRv6",(e,t)=>{It.init(e,t),vo.init(e,t)}),qo=k("ZodBase64",(e,t)=>{Ct.init(e,t),vo.init(e,t)}),jo=k("ZodBase64URL",(e,t)=>{Nt.init(e,t),vo.init(e,t)}),Do=k("ZodE164",(e,t)=>{Pt.init(e,t),vo.init(e,t)}),Zo=k("ZodJWT",(e,t)=>{Rt.init(e,t),vo.init(e,t)}),Lo=k("ZodNumber",(e,t)=>{Ut.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n)=>{const o=n,{minimum:i,maximum:r,format:a,multipleOf:s,exclusiveMaximum:u,exclusiveMinimum:l}=e._zod.bag;"string"==typeof a&&a.includes("int")?o.type="integer":o.type="number";const c="number"==typeof l&&l>=(i??Number.NEGATIVE_INFINITY),d="number"==typeof u&&u<=(r??Number.POSITIVE_INFINITY),p="draft-04"===t.target||"openapi-3.0"===t.target;c?p?(o.minimum=l,o.exclusiveMinimum=!0):o.exclusiveMinimum=l:"number"==typeof i&&(o.minimum=i),d?p?(o.maximum=u,o.exclusiveMaximum=!0):o.exclusiveMaximum=u:"number"==typeof r&&(o.maximum=r),"number"==typeof s&&(o.multipleOf=s)})(e,t,n),_o(e,"ZodNumber",{gt(e,t){return this.check(An(e,t))},gte(e,t){return this.check(In(e,t))},min(e,t){return this.check(In(e,t))},lt(e,t){return this.check(En(e,t))},lte(e,t){return this.check(Tn(e,t))},max(e,t){return this.check(Tn(e,t))},int(e){return this.check(Bo(e))},safe(e){return this.check(Bo(e))},positive(e){return this.check(An(0,e))},nonnegative(e){return this.check(In(0,e))},negative(e){return this.check(En(0,e))},nonpositive(e){return this.check(Tn(0,e))},multipleOf(e,t){return this.check($n(e,t))},step(e,t){return this.check($n(e,t))},finite(){return this}});const n=e._zod.bag;e.minValue=Math.max(n.minimum??Number.NEGATIVE_INFINITY,n.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(n.maximum??Number.POSITIVE_INFINITY,n.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(n.format??"").includes("int")||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function Mo(e){return function(e,t){return new e({type:"number",checks:[],...J(t)})}(Lo,e)}var Fo=k("ZodNumberFormat",(e,t)=>{qt.init(e,t),Lo.init(e,t)});function Bo(e){return function(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...J(t)})}(Fo,e)}var Yo=k("ZodBoolean",(e,t)=>{jt.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(e,t,n)=>((e,t,n)=>{n.type="boolean"})(0,0,t)});function Jo(e){return function(e,t){return new e({type:"boolean",...J(t)})}(Yo,e)}var Wo=k("ZodUnknown",(e,t)=>{Dt.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(e,t,n)=>{}});function Vo(){return new Wo({type:"unknown"})}var Go=k("ZodNever",(e,t)=>{Zt.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(e,t,n)=>((e,t,n)=>{n.not={}})(0,0,t)});function Ho(e){return function(e,t){return new e({type:"never",...J(t)})}(Go,e)}var Ko=k("ZodArray",(e,t)=>{Mt.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=n,r=e._zod.def,{minimum:a,maximum:s}=e._zod.bag;"number"==typeof a&&(i.minItems=a),"number"==typeof s&&(i.maxItems=s),i.type="array",i.items=jn(r.element,t,{...o,path:[...o.path,"items"]})})(e,t,n,o),e.element=t.element,_o(e,"ZodArray",{min(e,t){return this.check(Nn(e,t))},nonempty(e){return this.check(Nn(1,e))},max(e,t){return this.check(Cn(e,t))},length(e,t){return this.check(Pn(e,t))},unwrap(){return this.element}})});function Xo(e,t){return function(e,t,n){return new e({type:"array",element:t,...J(n)})}(Ko,e,t)}var Qo=k("ZodObject",(e,t)=>{Wt.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=n,r=e._zod.def;i.type="object",i.properties={};const a=r.shape;for(const l in a)i.properties[l]=jn(a[l],t,{...o,path:[...o.path,"properties",l]});const s=new Set(Object.keys(a)),u=new Set([...s].filter(e=>{const n=r.shape[e]._zod;return"input"===t.io?void 0===n.optin:void 0===n.optout}));u.size>0&&(i.required=Array.from(u)),"never"===r.catchall?._zod.def.type?i.additionalProperties=!1:r.catchall?r.catchall&&(i.additionalProperties=jn(r.catchall,t,{...o,path:[...o.path,"additionalProperties"]})):"output"===t.io&&(i.additionalProperties=!1)})(e,t,n,o),P(e,"shape",()=>t.shape),_o(e,"ZodObject",{keyof(){return li(Object.keys(this._zod.def.shape))},catchall(e){return this.clone({...this._zod.def,catchall:e})},passthrough(){return this.clone({...this._zod.def,catchall:Vo()})},loose(){return this.clone({...this._zod.def,catchall:Vo()})},strict(){return this.clone({...this._zod.def,catchall:Ho()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(e){return function(e,t){if(!L(t))throw new Error("Invalid input to extend: expected a plain object");const n=e._zod.def.checks;if(n&&n.length>0){const n=e._zod.def.shape;for(const e in t)if(void 0!==Object.getOwnPropertyDescriptor(n,e))throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return Y(e,U(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return R(this,"shape",n),n}}))}(this,e)},safeExtend(e){return function(e,t){if(!L(t))throw new Error("Invalid input to safeExtend: expected a plain object");return Y(e,U(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return R(this,"shape",n),n}}))}(this,e)},merge(e){return function(e,t){if(e._zod.def.checks?.length)throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");return Y(e,U(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t._zod.def.shape};return R(this,"shape",n),n},get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]}))}(this,e)},pick(e){return function(e,t){const n=e._zod.def,o=n.checks;if(o&&o.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");return Y(e,U(e._zod.def,{get shape(){const e={};for(const o in t){if(!(o in n.shape))throw new Error(`Unrecognized key: "${o}"`);t[o]&&(e[o]=n.shape[o])}return R(this,"shape",e),e},checks:[]}))}(this,e)},omit(e){return function(e,t){const n=e._zod.def,o=n.checks;if(o&&o.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");return Y(e,U(e._zod.def,{get shape(){const o={...e._zod.def.shape};for(const e in t){if(!(e in n.shape))throw new Error(`Unrecognized key: "${e}"`);t[e]&&delete o[e]}return R(this,"shape",o),o},checks:[]}))}(this,e)},partial(...e){return function(e,t,n){const o=t._zod.def.checks;if(o&&o.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");return Y(t,U(t._zod.def,{get shape(){const o=t._zod.def.shape,i={...o};if(n)for(const t in n){if(!(t in o))throw new Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=e?new e({type:"optional",innerType:o[t]}):o[t])}else for(const t in o)i[t]=e?new e({type:"optional",innerType:o[t]}):o[t];return R(this,"shape",i),i},checks:[]}))}(fi,this,e[0])},required(...e){return t=vi,n=this,o=e[0],Y(n,U(n._zod.def,{get shape(){const e=n._zod.def.shape,i={...e};if(o)for(const n in o){if(!(n in i))throw new Error(`Unrecognized key: "${n}"`);o[n]&&(i[n]=new t({type:"nonoptional",innerType:e[n]}))}else for(const n in e)i[n]=new t({type:"nonoptional",innerType:e[n]});return R(this,"shape",i),i}}));var t,n,o}})});function ei(e,t){return new Qo({type:"object",shape:e??{},...J(t)})}var ti=k("ZodUnion",(e,t)=>{Gt.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def,r=!1===i.inclusive,a=i.options.map((e,n)=>jn(e,t,{...o,path:[...o.path,r?"oneOf":"anyOf",n]}));r?n.oneOf=a:n.anyOf=a})(e,t,n,o),e.options=t.options});function ni(e,t){return new ti({type:"union",options:e,...J(t)})}var oi=k("ZodDiscriminatedUnion",(e,t)=>{ti.init(e,t),Ht.init(e,t)});function ii(e,t,n){return new oi({type:"union",options:t,discriminator:e,...J(n)})}var ri=k("ZodIntersection",(e,t)=>{Kt.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def,r=jn(i.left,t,{...o,path:[...o.path,"allOf",0]}),a=jn(i.right,t,{...o,path:[...o.path,"allOf",1]}),s=e=>"allOf"in e&&1===Object.keys(e).length;n.allOf=[...s(r)?r.allOf:[r],...s(a)?a.allOf:[a]]})(e,t,n,o)});var ai=k("ZodRecord",(e,t)=>{en.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=n,r=e._zod.def;i.type="object";const a=r.keyType,s=a._zod.bag?.patterns;if("loose"===r.mode&&s&&s.size>0){const e=jn(r.valueType,t,{...o,path:[...o.path,"patternProperties","*"]});i.patternProperties={};for(const t of s)i.patternProperties[t.source]=e}else"draft-07"!==t.target&&"draft-2020-12"!==t.target||(i.propertyNames=jn(r.keyType,t,{...o,path:[...o.path,"propertyNames"]})),i.additionalProperties=jn(r.valueType,t,{...o,path:[...o.path,"additionalProperties"]});const u=a._zod.values;if(u){const e=[...u].filter(e=>"string"==typeof e||"number"==typeof e);e.length>0&&(i.required=e)}})(e,t,n,o),e.keyType=t.keyType,e.valueType=t.valueType});function si(e,t,n){return t&&t._zod?new ai({type:"record",keyType:e,valueType:t,...J(n)}):new ai({type:"record",keyType:bo(),valueType:e,...J(t)})}var ui=k("ZodEnum",(e,t)=>{tn.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n)=>{const o=T(e._zod.def.entries);o.every(e=>"number"==typeof e)&&(n.type="number"),o.every(e=>"string"==typeof e)&&(n.type="string"),n.enum=o})(e,0,n),e.enum=t.entries,e.options=Object.values(t.entries);const n=new Set(Object.keys(t.entries));e.extract=(e,o)=>{const i={};for(const r of e){if(!n.has(r))throw new Error(`Key ${r} not found in enum`);i[r]=t.entries[r]}return new ui({...t,checks:[],...J(o),entries:i})},e.exclude=(e,o)=>{const i={...t.entries};for(const t of e){if(!n.has(t))throw new Error(`Key ${t} not found in enum`);delete i[t]}return new ui({...t,checks:[],...J(o),entries:i})}});function li(e,t){return new ui({type:"enum",entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...J(t)})}var ci=k("ZodLiteral",(e,t)=>{nn.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n)=>{const o=e._zod.def,i=[];for(const r of o.values)if(void 0===r){if("throw"===t.unrepresentable)throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if("bigint"==typeof r){if("throw"===t.unrepresentable)throw new Error("BigInt literals cannot be represented in JSON Schema");i.push(Number(r))}else i.push(r);if(0===i.length);else if(1===i.length){const e=i[0];n.type=null===e?"null":typeof e,"draft-04"===t.target||"openapi-3.0"===t.target?n.enum=[e]:n.const=e}else i.every(e=>"number"==typeof e)&&(n.type="number"),i.every(e=>"string"==typeof e)&&(n.type="string"),i.every(e=>"boolean"==typeof e)&&(n.type="boolean"),i.every(e=>null===e)&&(n.type="null"),n.enum=i})(e,t,n),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function di(e,t){return new ci({type:"literal",values:Array.isArray(e)?e:[e],...J(t)})}var pi=k("ZodTransform",(e,t)=>{on.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(e,t,n)=>((e,t)=>{if("throw"===t.unrepresentable)throw new Error("Transforms cannot be represented in JSON Schema")})(0,e),e._zod.parse=(n,o)=>{if("backward"===o.direction)throw new O(e.constructor.name);n.addIssue=o=>{if("string"==typeof o)n.issues.push(ee(o,n.value,t));else{const t=o;t.fatal&&(t.continue=!1),t.code??(t.code="custom"),t.input??(t.input=n.value),t.inst??(t.inst=e),n.issues.push(ee(t))}};const i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n.fallback=!0,n)):(n.value=i,n.fallback=!0,n)}});var fi=k("ZodOptional",(e,t)=>{an.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>Bn(e,t,0,o),e.unwrap=()=>e._zod.def.innerType});function mi(e){return new fi({type:"optional",innerType:e})}var _i=k("ZodExactOptional",(e,t)=>{sn.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>Bn(e,t,0,o),e.unwrap=()=>e._zod.def.innerType});var hi=k("ZodNullable",(e,t)=>{un.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def,r=jn(i.innerType,t,o),a=t.seen.get(e);"openapi-3.0"===t.target?(a.ref=i.innerType,n.nullable=!0):n.anyOf=[r,{type:"null"}]})(e,t,n,o),e.unwrap=()=>e._zod.def.innerType});function yi(e){return new hi({type:"nullable",innerType:e})}var gi=k("ZodDefault",(e,t)=>{ln.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def;jn(i.innerType,t,o),t.seen.get(e).ref=i.innerType,n.default=JSON.parse(JSON.stringify(i.defaultValue))})(e,t,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});var bi=k("ZodPrefault",(e,t)=>{dn.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def;jn(i.innerType,t,o),t.seen.get(e).ref=i.innerType,"input"===t.io&&(n._prefault=JSON.parse(JSON.stringify(i.defaultValue)))})(e,t,n,o),e.unwrap=()=>e._zod.def.innerType});var vi=k("ZodNonOptional",(e,t)=>{pn.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def;jn(i.innerType,t,o),t.seen.get(e).ref=i.innerType})(e,t,0,o),e.unwrap=()=>e._zod.def.innerType});var wi=k("ZodCatch",(e,t)=>{mn.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def;let r;jn(i.innerType,t,o),t.seen.get(e).ref=i.innerType;try{r=i.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}n.default=r})(e,t,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});var Si=k("ZodPipe",(e,t)=>{_n.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def,r=i.in._zod.traits.has("$ZodTransform"),a="input"===t.io?r?i.out:i.in:i.out;jn(a,t,o),t.seen.get(e).ref=a})(e,t,0,o),e.in=t.in,e.out=t.out});function ki(e,t){return new Si({type:"pipe",in:e,out:t})}var zi=k("ZodReadonly",(e,t)=>{yn.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def;jn(i.innerType,t,o),t.seen.get(e).ref=i.innerType,n.readOnly=!0})(e,t,n,o),e.unwrap=()=>e._zod.def.innerType});var Oi=k("ZodCustom",(e,t)=>{vn.init(e,t),ho.init(e,t),e._zod.processJSONSchema=(e,t,n)=>((e,t)=>{if("throw"===t.unrepresentable)throw new Error("Custom types cannot be represented in JSON Schema")})(0,e)});var xi,Ei=li(["CONSENT","SOFT_OPT_IN","TRANSACTIONAL_ONLY","UNKNOWN"]),Ti=li(["MANUAL_UNSUB","ONE_CLICK_UNSUB","HARD_BOUNCE","COMPLAINT","ADMIN_BLOCK"]),Ai=li(["BROADCAST","AUTOMATION"]),Ii=li(["ABANDONED_CART","POST_PURCHASE","WELCOME","WIN_BACK","RE_ENGAGEMENT","TAG_ADDED"]),$i=(ei({email:So(),name:bo().trim().min(1).nullable().optional(),customer_id:bo().uuid().nullable().optional(),tags:Xo(bo().trim().min(1)).default([]),consent_basis:Ei.default("UNKNOWN"),source:bo().trim().min(1).default("dashboard")}),ei({name:bo().trim().min(1),subject:bo().trim().min(1),preheader:bo().nullable().optional(),mjml_source:bo().trim().min(1),builder_project_json:si(bo(),Vo()).nullable().optional(),thumbnail_url:xn(Oo,xi).nullable().optional()}),ei({mjml_source:bo().trim().min(1),sample_variables:si(bo(),Vo()).optional()}),ei({recipient_email:So(),sample_variables:si(bo(),Vo()).optional()}),ei({marketing_enabled:Jo().optional(),default_from_name:bo().trim().min(1).nullable().optional(),default_from_email:So().nullable().optional(),default_reply_to_email:So().nullable().optional(),physical_address:bo().trim().min(1).nullable().optional(),physical_address_line2:bo().trim().min(1).nullable().optional(),physical_city:bo().trim().min(1).nullable().optional(),physical_postal_code:bo().trim().min(1).nullable().optional(),physical_country:bo().trim().length(2).nullable().optional(),daily_limit:Mo().int().positive().optional(),monthly_soft_cap:Mo().int().positive().optional()}),ei({type:Ai.default("BROADCAST"),name:bo().trim().min(1),subject:bo().trim().min(1),template_id:bo().uuid(),list_id:bo().uuid().nullable().optional(),segment_id:bo().uuid().nullable().optional(),from_name:bo().trim().min(1),from_email:So(),reply_to_email:So().nullable().optional(),schedule_at:bo().datetime().nullable().optional(),target_emails:Xo(So()).max(0,"Direct recipient entry is disabled. Use lists or segments built from Shoppex customers and paid order buyers.").default([]),idempotency_key:bo().trim().min(1).nullable().optional()}),ei({name:bo().trim().min(1),subject:bo().trim().min(1),template_id:bo().uuid(),from_name:bo().trim().min(1),from_email:So(),reply_to_email:So().nullable().optional(),trigger:Ii,delay_seconds:Mo().int().min(0).default(0),conditions:si(bo(),Vo()).default({})}),ei({trigger:Ii,email:So(),customer_id:bo().uuid().nullable().optional(),name:bo().trim().min(1).nullable().optional(),consent_basis:Ei.default("UNKNOWN"),variables:si(bo(),Vo()).default({}),idempotency_key:bo().trim().min(1).nullable().optional()}),ei({email:So(),reason:Ti.default("ADMIN_BLOCK"),notes:bo().nullable().optional()}),["BITCOIN","LITECOIN","ETHEREUM","BITCOIN_CASH","MONERO","RIPPLE","TRON","SOLANA","POLYGON","BINANCE_COIN","CRONOS","CONCORDIUM","NANO","DOGECOIN","DASH"]),Ci=["NOWPAYMENTS","CRYPTOMUS","OXAPAY"],Ni=["NOWPAYMENTS_WHITELABEL"],Pi={USDT:["USDT_TRC20","USDT_ERC20","USDT_BEP20","USDT_POLYGON","USDT_SOL"],USDC:["USDC_ERC20","USDC_TRC20","USDC_BEP20","USDC_POLYGON","USDC_SOL"],DAI:["DAI_ERC20"]},Ri=Object.keys(Pi),Ui=[...Pi.USDT,...Pi.USDC,...Pi.DAI],qi=[...$i,...Ui],ji=["BITCOIN_LN"],Di=[...Ci,...Ni],Zi=[...qi,...ji],Li=qi,Mi=new Set($i),Fi=new Set(Ui),Bi=(new Set(qi),new Set(ji),new Set(Ci),new Set(Ni),new Set(Di),new Set(Zi),new Set(Ri),new Set(["STRIPE","PAYPAL","PAYPAL_FF","MOLLIE","AUTHORIZENET","NMI","SQUARE","SUMUP","SHOPIFY","SUBY","PANDABASE","STORRIK","DEBLOMASSI","SHOPPEXPAY","MONEYMOTION","OVGC","WHOP","DODO","MAVERICK","CASHAPP","VENMO","CRYPTO","CUSTOMER_BALANCE","MANUAL"]),{CASHAPP:"CASH_APP",PAYPAL_CREDIT_CARD:"PAYPAL",EUTHEREUM:"ETHEREUM",USDT_MATIC:"USDT_POLYGON",USDC_MATIC:"USDC_POLYGON"});function Yi(e,t){if(new Set(t).size!==t.length)throw new Error(`${e} contains duplicate entries`)}Yi("COIN_GATEWAY_KEYS",$i),Yi("TOKEN_GATEWAY_KEYS",Ui),Yi("CRYPTO_GATEWAY_KEYS",qi),Yi("LEGACY_CRYPTO_GATEWAY_KEYS",ji),Yi("CRYPTO_PROVIDER_KEYS",Ci),Yi("MANAGED_CRYPTO_PROVIDER_KEYS",Ni),Yi("CRYPTO_PROVIDER_GATEWAY_KEYS",Di),Yi("DEFAULT_NOWPAYMENTS_CRYPTO_GATEWAY_KEYS",Li),Yi("DEFAULT_CRYPTOMUS_CRYPTO_GATEWAY_KEYS",["BITCOIN","LITECOIN","ETHEREUM","TRON","SOLANA","POLYGON","BINANCE_COIN","BITCOIN_CASH","MONERO","RIPPLE","DOGECOIN","USDT_TRC20","USDT_ERC20","USDT_BEP20","USDT_POLYGON","USDT_SOL","USDC_ERC20","USDC_BEP20","USDC_POLYGON","DAI_ERC20"]),Yi("DEFAULT_OXAPAY_CRYPTO_GATEWAY_KEYS",["BITCOIN","LITECOIN","ETHEREUM","TRON","SOLANA","POLYGON","BINANCE_COIN","BITCOIN_CASH","MONERO","RIPPLE","DOGECOIN","USDT_TRC20","USDT_ERC20","USDT_BEP20","USDT_POLYGON","USDC_ERC20"]);for(const Yu of qi)if(!Mi.has(Yu)&&!Fi.has(Yu))throw new Error(`CRYPTO_GATEWAY_KEYS contains an unclassified gateway: ${Yu}`);new Set(["STRIPE","PAYPAL","PAYPAL_FF","SKRILL","CASHAPP","CASH_APP","PERFECT_MONEY","SQUARE","SUMUP","SHOPIFY","SUBY","PANDABASE","STORRIK","DEBLOMASSI","SHOPPEXPAY","MONEYMOTION","OVGC","WHOP","DODO","MAVERICK","VENMO","MOLLIE","AUTHORIZENET","NMI"].map(e=>function(e){const t=e.trim();if(!t)return"";if(/^manual:/i.test(t)){const e=t.slice(t.indexOf(":")+1).trim();return e?`MANUAL:${e}`:"MANUAL"}let n=t.toUpperCase();const o=n.match(/^(USDT|USDC|DAI):([A-Z0-9_]+)$/);if(o){const[,e,t]=o;n=`${e}_${"MATIC"===t?"POLYGON":t}`}return Bi[n]??n}(e))),new Set(["WHITE_LABEL","NATIVE"]);var Ji=[...Di,"NATIVE"],Wi=(new Set(Ji),ei({set:Jo()})),Vi=ei({status:li(["READY","NEEDS_ATTENTION"]).optional(),code:bo().optional(),message:bo().optional(),checked_at:bo().optional()}),Gi=(ei({provider:bo(),type:bo(),enabled:Jo(),connected:Jo(),credentials:si(bo(),Wi),public_config:si(bo(),Vo()),webhook:si(bo(),Vo()).optional(),health:Vi.optional()}),"#2563eb"),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(),surface:ar.optional(),surfaceRaised:ar.optional(),text:ar.optional(),textMuted:ar.optional(),border:ar.optional(),focus:ar.optional(),success:ar.optional(),warning:ar.optional(),error:ar.optional()}).strict().optional(),typography:ei({fontFamily:lr.optional(),googleFontFamily:cr.optional(),baseSize:Mo().int().min(12).max(18).optional()}).strict().optional(),shape:ei({buttonRadius:Mo().int().min(0).max(24).optional(),inputRadius:Mo().int().min(0).max(24).optional(),cardRadius:Mo().int().min(0).max(28).optional()}).strict().optional(),spacing:ei({density:er.optional(),controlHeight:Mo().int().min(36).max(56).optional()}).strict().optional(),component:ei({primaryButton:ei({background:ar.optional(),text:ar.optional()}).strict().optional(),input:ei({background:ar.optional(),border:ar.optional(),focusRing:sr.optional()}).strict().optional(),summary:ei({background:ar.optional()}).strict().optional(),paymentMethod:ei({background:sr.optional(),cardBackground:sr.optional(),border:sr.optional(),selectedBackground:sr.optional()}).strict().optional(),productCard:ei({background:sr.optional(),border:sr.optional(),shadow:ur.optional()}).strict().optional(),productImage:ei({background:sr.optional(),border:sr.optional(),icon:sr.optional()}).strict().optional(),brandAvatar:ei({background:sr.optional(),text:ar.optional(),border:sr.optional()}).strict().optional(),pill:ei({background:sr.optional(),border:sr.optional(),text:ar.optional()}).strict().optional(),errorBanner:ei({background:sr.optional(),border:sr.optional(),text:ar.optional()}).strict().optional(),warningBanner:ei({background:sr.optional(),border:sr.optional(),text:ar.optional()}).strict().optional(),radio:ei({idleRing:sr.optional(),checkedFill:ar.optional(),checkedIcon:ar.optional()}).strict().optional(),divider:ei({color:sr.optional()}).strict().optional()}).strict().optional(),paymentLink:ei({heroImageUrl:dr.optional().nullable(),heroPosition:nr.optional()}).strict().optional(),embed:ei({launcher:ei({background:sr.optional(),text:ar.optional(),radius:Mo().int().min(0).max(28).optional(),paddingX:Mo().int().min(8).max(32).optional(),paddingY:Mo().int().min(6).max(24).optional(),shadow:ur.optional()}).strict().optional(),productCard:ei({background:sr.optional(),border:sr.optional(),imageRadius:Mo().int().min(0).max(24).optional(),padding:Mo().int().min(8).max(32).optional()}).strict().optional(),cart:ei({background:sr.optional(),rowBorder:sr.optional(),itemSpacing:Mo().int().min(4).max(28).optional()}).strict().optional(),modal:ei({background:sr.optional(),radius:Mo().int().min(0).max(32).optional(),maxWidth:Mo().int().min(360).max(960).optional(),shadow:ur.optional()}).strict().optional(),backdrop:ei({color:sr.optional(),blur:Mo().int().min(0).max(24).optional(),opacity:Mo().min(0).max(1).optional()}).strict().optional(),skeleton:ei({background:sr.optional(),shimmer:sr.optional()}).strict().optional(),spinner:ei({color:sr.optional()}).strict().optional(),closeButton:ei({style:or.optional()}).strict().optional(),mobile:ei({layout:ir.optional()}).strict().optional(),content:ei({productDescription:rr.optional(),termsShortcut:rr.optional()}).strict().optional()}).strict().optional()}).strict(),fr=ei({mode:tr.default("system"),fontSource:li(["curated"]).default("curated")}).strict(),mr=li(["standalone","bundle","pointer"]),_r=ei({name:bo().trim().min(1).max(80),fingerprint:bo().trim().min(1).max(128)}).strict(),hr=ei({type:di("shoppex.style_theme"),surface:di("checkout"),format_version:ni([di(1),di(2)]),name:bo().trim().min(1).max(80),description:bo().trim().max(240).optional(),embed_design:Qi.default("current"),token_schema_version:di(1),tokens:pr.default({}),custom_css:bo().max(2e4).default(""),settings:fr.default({mode:"system",fontSource:"curated"}),_meta:si(bo(),Vo()).optional()}).strict(),yr=(ei({type:di("shoppex.style_theme"),surface:Xi,format_version:ni([di(1),di(2)]),name:bo().trim().min(1).max(80),description:bo().trim().max(240).optional(),embed_design:Qi.default("current"),token_schema_version:di(1),tokens:pr.default({}),custom_css:bo().max(2e4).default(""),settings:fr.default({mode:"system",fontSource:"curated"}),share_mode:mr.default("standalone"),parent_hint:_r.optional(),bundled_parent:hr.optional(),_meta:si(bo(),Vo()).optional()}).strict(),ei({theme_id:bo().uuid().nullable(),surface:Xi,embed_design:Qi,token_schema_version:di(1),revision:Mo().int().min(1),tokens:pr,custom_css:bo(),css_variables:si(bo(),bo())}).strict(),ei({theme_id:bo().uuid().nullable(),parent_theme_id:bo().uuid().nullable(),surface:di("embed"),embed_design:Qi,token_schema_version:di(1),revision:Mo().int().min(1),parent_revision:Mo().int().min(1).nullable(),tokens:pr,custom_css:bo(),css_variables:si(bo(),bo())}).strict(),ei({shop_id:bo().uuid(),product_id:bo().uuid().nullable(),product_group_id:bo().uuid().nullable(),payment_link_id:bo().uuid().nullable(),invoice_id:bo().nullable()}).strict(),ei({embed_runtime:bo().min(16).max(128),embed_design:Qi,revision:Mo().int().min(1),parent_revision:Mo().int().min(1).nullable(),theme_id:bo().uuid().nullable(),css_variables:si(bo(),bo()),custom_css:bo()}).strict(),ei({embed_design:Qi.optional(),embed_style_revision:function(e){return function(e,t){return new e({type:"number",coerce:!0,checks:[],...J(t)})}(Lo,e)}().int().min(1).optional(),embed_runtime:bo().min(16).max(128).optional(),preview:Jo().optional()}).strict(),li(["announcement_bar","countdown_bar","promo_info_card","recent_purchase_popup","coupon_popup_modal","live_chat"]),li(["layout.header.before","layout.header.after","layout.overlay","home.hero.after","home.grid.before","product.buybox.after","layout.footer.before","floating.bottom_right"])),gr=(li(["announcement_bar","countdown_bar","promo_info_card","recent_purchase_popup","coupon_popup_modal","live_chat"]),bo().regex(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/,"Use a valid hex color")),br=li(["static","marquee"]),vr=li(["brand_blue","emerald","sunset","rose","charcoal","custom"]),wr=li(["hide","message"]),Sr=li(["compact","comfortable"]),kr=li(["subtle","outline","solid"]),zr=li(["minimal","boxed"]),Or=li(["indigo","emerald","amber","rose","slate","custom"]),xr=li(["compact","feature","alert"]),Er=li(["compact","comfortable"]),Tr=li(["subtle","outline","solid"]),Ar=li(["sparkles","megaphone","gift","truck","shield","support","none"]),Ir=li(["show","hide"]),$r=li(["midnight","ocean","ember","forest","custom"]),Cr=li(["delay","exit_intent"]),Nr=bo().trim().refine(e=>{if(e.startsWith("/"))return!0;try{const t=new URL(e);return"http:"===t.protocol||"https:"===t.protocol}catch{return!1}},'Use a valid absolute URL or a path starting with "/"'),Pr=bo().trim().refine(e=>{const t=new Date(e);return!Number.isNaN(t.getTime())},"Use a valid date and time"),Rr=ei({text:bo().trim().min(1,"Text is required").max(160,"Text must be 160 characters or fewer"),linkLabel:bo().trim().max(32,"Link label must be 32 characters or fewer").optional().nullable(),linkUrl:Nr.optional().nullable(),dismissible:Jo().default(!1),displayMode:br.default("marquee"),themePreset:vr.default("custom"),animationSpeedSeconds:Mo().int().min(8).max(40).default(30),backgroundColor:gr.default("#111827"),textColor:gr.default("#f9fafb")}),Ur=ei({text:bo().trim().min(1,"Text is required").max(120,"Text must be 120 characters or fewer"),endAt:Pr,linkLabel:bo().trim().max(32,"Link label must be 32 characters or fewer").optional().nullable(),linkUrl:Nr.optional().nullable(),dismissible:Jo().default(!1),themePreset:vr.default("brand_blue"),expiredBehavior:wr.default("hide"),expiredMessage:bo().trim().max(120,"Expired message must be 120 characters or fewer").optional().nullable(),density:Sr.default("compact"),ctaStyle:kr.default("subtle"),timerStyle:zr.default("boxed"),backgroundColor:gr.default("#111827"),textColor:gr.default("#f9fafb")}),qr=ei({eyebrow:bo().trim().max(32,"Eyebrow must be 32 characters or fewer").optional().nullable(),title:bo().trim().min(1,"Title is required").max(80,"Title must be 80 characters or fewer"),body:bo().trim().min(1,"Body is required").max(240,"Body must be 240 characters or fewer"),linkLabel:bo().trim().max(32,"Link label must be 32 characters or fewer").optional().nullable(),linkUrl:Nr.optional().nullable(),themePreset:Or.default("indigo"),layoutStyle:xr.default("feature"),density:Er.default("comfortable"),ctaStyle:Tr.default("outline"),icon:Ar.default("sparkles"),iconVisibility:Ir.default("show"),backgroundColor:gr.default("#111827"),textColor:gr.default("#f9fafb"),accentColor:gr.default("#818cf8")}),jr=ei({title:bo().trim().min(1,"Title is required").max(80,"Title must be 80 characters or fewer").default("Recent purchases"),lookbackHours:Mo().int().min(1).max(168).default(24),cooldownSeconds:Mo().int().min(5).max(300).default(20),maxItems:Mo().int().min(1).max(20).default(8),anonymizeMode:li(["first_name_city","first_name_country","initial_country","anonymous"]).default("first_name_city"),includedProductIds:Xo(bo().min(1)).max(50).default([])}),Dr=ei({eyebrow:bo().trim().max(32,"Eyebrow must be 32 characters or fewer").optional().nullable(),title:bo().trim().min(1,"Title is required").max(80,"Title must be 80 characters or fewer"),body:bo().trim().min(1,"Body is required").max(240,"Body must be 240 characters or fewer"),couponCode:bo().trim().min(2,"Coupon code is required").max(40,"Coupon code must be 40 characters or fewer"),primaryButtonLabel:bo().trim().min(1,"Primary button label is required").max(24,"Primary button label must be 24 characters or fewer").default("Copy code"),secondaryButtonLabel:bo().trim().min(1,"Secondary button label is required").max(24,"Secondary button label must be 24 characters or fewer").default("Maybe later"),disclaimer:bo().trim().max(100,"Disclaimer must be 100 characters or fewer").optional().nullable(),themePreset:$r.default("midnight"),trigger:Cr.default("delay"),delaySeconds:Mo().int().min(0).max(60).default(6),showOncePerSession:Jo().default(!0),reminderHours:Mo().int().min(1).max(720).default(24),backgroundColor:gr.default("#111827"),textColor:gr.default("#f8fafc"),accentColor:gr.default("#7c9cff"),heroImageUrl:Nr.optional().nullable(),discountDisplay:bo().trim().max(24,"Discount display must be 24 characters or fewer").optional().nullable(),expiresAt:Pr.optional().nullable()}),Zr=li(["hidden","optional"]),Lr=ei({headline:bo().trim().min(1,"Headline is required").max(60,"Headline must be 60 characters or fewer").default("Chat with us"),greeting:bo().trim().min(1,"Greeting is required").max(240,"Greeting must be 240 characters or fewer").default("Hi! Send us a message and we will reply as soon as possible."),inputPlaceholder:bo().trim().min(1,"Placeholder is required").max(80,"Placeholder must be 80 characters or fewer").default("Type your message…"),contactFields:Zr.default("optional"),accentColor:gr.default("#111827"),launcherIconColor:gr.default("#f9fafb")}),Mr=ei({type:di("announcement_bar"),slot:yr,enabled:Jo().default(!0),sortOrder:Mo().int().min(0).max(999).default(0),config:Rr}),Fr=ei({type:di("recent_purchase_popup"),slot:yr,enabled:Jo().default(!0),sortOrder:Mo().int().min(0).max(999).default(0),config:jr}),Br=ei({type:di("countdown_bar"),slot:yr,enabled:Jo().default(!0),sortOrder:Mo().int().min(0).max(999).default(0),config:Ur}),Yr=ei({type:di("promo_info_card"),slot:yr,enabled:Jo().default(!0),sortOrder:Mo().int().min(0).max(999).default(0),config:qr}),Jr=ei({type:di("coupon_popup_modal"),slot:yr,enabled:Jo().default(!0),sortOrder:Mo().int().min(0).max(999).default(0),config:Dr}),Wr=ei({type:di("live_chat"),slot:yr,enabled:Jo().default(!0),sortOrder:Mo().int().min(0).max(999).default(0),config:Lr}),Vr=(ii("type",[Mr,Br,Yr,Fr,Jr,Wr]),ii("type",[Mr.extend({id:bo().min(1)}),Br.extend({id:bo().min(1)}),Yr.extend({id:bo().min(1)}),Fr.extend({id:bo().min(1)}),Jr.extend({id:bo().min(1)}),Wr.extend({id:bo().min(1)})]),new Set(["amount","currency","invoice_id","customer_email","id","email","price","price_usd","product_name","quantity"].map(e=>e.toLowerCase())),si(bo(),Vo())),Gr=ni([bo(),Mo()]),Hr=ei({kind:li(["address","redirect","embed_pending"]),gateway:bo(),checkout_url:bo().nullable().optional(),address:bo().optional(),amount:bo().optional(),qr_code:bo().optional(),expires_at:bo().optional(),payment_id:bo().optional(),confirmations_needed:Mo().optional()}).passthrough(),Kr=(ei({data:ei({invoice:ei({uniqid:bo().uuid()}).passthrough(),invoice_url:bo().nullable(),checkout_url:bo().nullable(),selected_gateway:bo().nullable(),session_started:Jo(),payment_session:Hr.nullable(),completion_access_grant:bo().nullable()}).passthrough()}).passthrough(),ei({default_value:bo().optional(),min_length:Mo().optional(),name:bo(),placeholder:bo().optional(),regex:bo().optional(),required:Jo(),type:bo()})),Xr=ei({id:bo(),price:Mo(),quantity:Mo(),title:bo()}),Qr=ei({addons:Xo(Xr).optional(),available_addons:Xo(Vo()).optional(),cloudflare_image_id:bo().nullable(),created_at:bo().optional(),currency:bo(),custom_fields:Vr.nullable().optional(),custom_fields_config:Xo(Kr).nullable().optional(),delivery_instruction:Vo().optional(),delivery_instruction_config:Vo().optional(),delivery_instruction_label:Vo().optional(),delivery_text:bo().nullable().optional(),delivery_time:Mo().optional(),description:bo().nullable(),discount_percent:Mo().optional(),discount_display:Mo().optional(),discounted_total_display:Mo().optional(),gateways:Xo(bo()).nullable().optional(),id:bo().optional(),image_name:bo().nullable(),image_storage:bo().optional(),line_item_id:bo().nullable().optional(),pay_what_you_want:Jo().optional(),price:bo().optional(),price_display:Gr,quantity:Mo(),quantity_max:Mo().optional(),quantity_min:Mo().optional(),recurring_interval:bo().nullable().optional(),recurring_interval_count:Mo().nullable().optional(),redirect_link:bo().nullable().optional(),redirect_time:Mo().nullable().optional(),service_text:bo().nullable().optional(),setup_cost:bo().optional(),slug:bo().nullable().optional(),storefront_url:bo().nullable().optional(),status:bo().nullable().optional(),subtype:bo().nullable().optional(),terms_of_service:bo().nullable().optional(),title:bo(),total:Mo(),trial_period:Mo().nullable().optional(),type:bo().nullable().optional(),uniqid:bo().nullable(),unit_price:Mo().optional(),unit_price_display:Gr.optional(),unit_quantity:Mo(),updated_at:bo().optional(),variant_title:bo().nullable().optional(),video_link:bo().nullable().optional(),volume_discounts:Vo().optional(),warranty_days:Mo().nullable().optional(),warranty_text:bo().nullable().optional()}),ea=ei({amount:Mo(),gateway:bo()}),ta=ei({custom_tip_enabled:Jo().optional(),enabled:Jo(),preset_percentages:Xo(Mo()).optional()}),na=ei({allow_partial_payment:Jo().optional(),auto_apply:Jo().optional(),available:bo(),currency:bo()}),oa=ei({affiliate_code:bo().nullable().optional(),already_paid:Gr.nullable().optional(),amount_due:Gr.nullable().optional(),currency:bo().nullable().optional(),discount:Gr.nullable().optional(),discount_label:bo().nullable().optional(),gateway_fee:Gr.nullable().optional(),platform_fee:Gr.nullable().optional(),subtotal:Gr.nullable().optional(),tip:Gr.nullable().optional(),total:Gr.nullable().optional()}),ia=ei({active:Jo(),expires_at:bo()}),ra=ei({faq_url:bo().nullable(),support_email:bo().nullable(),support_url:bo().nullable(),telegram_invite:bo().nullable()}),aa=ei({currency:bo().nullable().optional(),enabled:Jo(),max_amount:Mo().nullable().optional(),min_amount:Mo().nullable().optional(),reason:li(["BELOW_MIN_AMOUNT","ABOVE_MAX_AMOUNT"]).nullable().optional()}),sa=ei({delivered_items:Xo(Vo()),downloads:Xo(Vo()),external_urls:Xo(Vo()),license_keys:Xo(Vo()),tracking_codes:Xo(Vo())}),ua=ei({active:Jo().optional(),attempt_id:bo().optional(),buyer_actionable:Jo().nullable().optional(),crypto_currency:bo().nullable().optional(),currency:bo().optional(),expected_amount:bo().nullable().optional(),expected_crypto_amount:bo().nullable().optional(),last_checked_at:bo().optional(),missing_amount:bo().nullable().optional(),missing_crypto_amount:bo().nullable().optional(),provider_reference:bo().nullable().optional(),provider_status:bo().nullable().optional(),received_amount:bo().nullable().optional(),received_crypto_amount:bo().nullable().optional(),shortfall_percent:bo().nullable().optional()}),la=ei({created_at:bo().nullable(),details:bo().nullable(),id:bo(),invoice_id:bo(),status:bo().nullable()}),ca=ei({billing_address_mode:li(["INHERIT","REQUIRED","DISABLED"]).optional(),button_label:bo().nullable().optional(),display_name:bo().nullable().optional(),gateway:bo(),hide_provider_attribution:Jo().optional(),icon_url:bo().nullable().optional(),terms_mode:li(["INHERIT","REQUIRED","DISABLED"]).optional()}),da=ei({custom_fields:Xo(Vo()).optional(),description:bo().nullable(),display_order:Mo(),icon_preset:bo().nullable(),icon_url:bo().nullable(),id:bo(),instructions:bo().nullable(),is_active:Jo().optional(),name:bo(),payment_type:li(["INSTRUCTIONS","REDIRECT"]),redirect_url:bo().nullable(),require_proof:Jo(),proof_type:li(["TEXT","IMAGE","BOTH"]).optional(),void_after_hours:Mo()}),pa=ei({email:ei({masked:bo().nullable(),persisted:Jo(),required_for_provider_session:Jo().optional()})}),fa=ei({amount:bo().nullable(),confirmations:Mo().nullable(),created_at:Mo().optional(),hash:bo().nullable(),status:bo().optional()}),ma=ei({conf:ei({partial:Mo().optional(),void:Mo(),waiting_for_confirmations:Mo().optional()}),gateways:Xo(bo())}),_a=ei({invoice_payable:Jo(),resumable:Jo(),resumable_gateway:bo().nullable(),gateway:bo().nullable().optional(),crypto_gateway:bo().nullable().optional(),processor:bo().nullable().optional(),flow_type:bo().nullable().optional(),status:bo().nullable().optional(),provider_reference:bo().nullable().optional(),provider_reference_type:bo().nullable().optional(),capture_id:bo().nullable().optional(),manual_confirmation_pending:Jo().optional(),payment_method_switch_locked:Jo().optional(),awaiting_payment_method:Jo().optional(),started_at:Mo().nullable().optional(),completed_at:Mo().nullable().optional()}),ha=(ei({already_paid_amount:Gr.nullable().optional(),apm_method:bo().nullable().optional(),blockchain:bo().nullable(),buyer_identity:pa.nullable().optional(),checkout_tipping:ta.nullable().optional(),country_regulations:bo().nullable().optional(),coupon_applied:Jo().optional(),crypto_mode:bo().nullable().optional(),crypto_transactions:Xo(fa).optional(),currency:bo().nullable(),custom_fields:Vr.nullable().optional(),custom_gateways:Xo(da).optional(),customer_balance:na.nullable().optional(),customer_email_masked:bo().nullable().optional(),dark_mode:ni([di(0),di(1)]).optional(),delivery:sa.optional(),delivery_info:sa.optional(),discount:Mo().optional(),discount_display:Gr.optional(),eligible_gateways:Xo(bo()).optional(),environment:bo().optional(),fee_breakdown:Vr.nullable().optional(),gateway:bo().nullable(),gateway_data:Vr.nullable().optional(),gateway_eligibility:si(bo(),aa).optional(),gateway_fee_previews:Xo(ea).optional(),gateways_available:Xo(bo()),license:ni([Vr,di(!1)]).optional(),name:bo().nullable(),paddle_token:bo().nullable().optional(),paddle_transaction_id:Vo().optional(),payment_link_id:bo().nullable().optional(),payment_method_overrides:Xo(ca).optional(),payment_session_state:_a.nullable().optional(),polling:ia,pricing_breakdown:oa.nullable().optional(),product:Xo(Qr).optional(),quantity:Mo().nullable(),rates_snapshot:si(bo(),Mo()).optional(),remaining_amount:Gr.nullable().optional(),selected_gateway:bo().nullable().optional(),shop_checkout_ambient_color:bo().nullable().optional(),shop_cloudflare_image_id:bo().nullable(),shop_domain:bo().nullable().optional(),shop_force_paypal_email_delivery:ni([di(0),di(1)]).optional(),shop_image_name:bo().nullable(),shop_image_storage:bo().nullable().optional(),shop_payment_gateways_fees:Xo(Vr).optional(),shop_paypal_credit_card:ni([di(0),di(1)]).optional(),shop_return_url:bo().nullable().optional(),shop_slug:bo().nullable().optional(),shop_terms_enabled:Jo().optional(),shop_terms_of_service:bo().nullable().optional(),shop_terms_url:bo().nullable().optional(),shop_privacy_policy_url:bo().nullable().optional(),shop_refund_policy_url:bo().nullable().optional(),shop_walletconnect_id:bo().nullable().optional(),status:bo().nullable(),status_history:Xo(la).optional(),status_history_legacy:Xo(la).optional(),status_history_raw:Xo(la).optional(),stripe_publishable_key:bo().nullable().optional(),stripe_user_id:bo().nullable().optional(),subtotal:Mo().optional(),subtype:bo().nullable().optional(),support:ra.optional(),theme:bo().optional(),tip_amount:Gr.nullable().optional(),tip_amount_display:Gr.nullable().optional(),tip_metadata:Vo().optional(),total:Gr,total_conversions:Vr.optional(),total_display:Gr,type:bo().nullable(),underpayment:ua.nullable().optional(),underpayment_status:bo().nullable().optional(),uniqid:bo(),void_times:Xo(ma).optional(),addons:Vo().optional(),affiliate_data:Vo().optional(),affiliate_revenue_customer_id:bo().nullable().optional(),bill_info:Vo().optional(),binance_checkout_url:bo().nullable().optional(),binance_invoice_id:bo().nullable().optional(),binance_qrcode:bo().nullable().optional(),bundle_config:Vo().optional(),bundles:Vo().optional(),cashapp_cashtag:bo().nullable().optional(),cashapp_note:bo().nullable().optional(),cashapp_qrcode:bo().nullable().optional(),created_at:bo().optional(),crypto_address:bo().nullable().optional(),crypto_amount:Gr.optional(),crypto_confirmations_needed:Mo().nullable().optional(),crypto_exchange_rate:Gr.nullable().optional(),crypto_received:Gr.optional(),crypto_uri:bo().nullable().optional(),developer_invoice:Vo().optional(),developer_return_url:bo().nullable().optional(),developer_title:bo().nullable().optional(),exchange_rate:Gr.nullable().optional(),external_order_id:bo().nullable().optional(),lex_order_id:bo().nullable().optional(),lex_payment_method:bo().nullable().optional(),paydash_payment_id:bo().nullable().optional(),paypal_apm:bo().nullable().optional(),paypal_email_delivery:Jo().optional(),paypal_fee:Gr.nullable().optional(),paypal_order_id:bo().nullable().optional(),paypal_payer_email:bo().nullable().optional(),paypal_subscription_id:bo().nullable().optional(),paypal_subscription_link:bo().nullable().optional(),perfectmoney_id:bo().nullable().optional(),product_addons:Vo().optional(),product_id:bo().nullable().optional(),product_title:bo().nullable().optional(),product_type:bo().nullable().optional(),product_variants:Vo().optional(),recurring_billing_id:bo().nullable().optional(),skrill_link:bo().nullable().optional(),skrill_sid:bo().nullable().optional(),status_details:Vo().optional(),stripe_apm:bo().nullable().optional(),stripe_client_secret:bo().nullable().optional(),stripe_id:bo().nullable().optional(),stripe_price_id:bo().nullable().optional(),subscription:Vo().optional(),subscription_id:bo().nullable().optional(),sumup_id:bo().nullable().optional(),telegram_stars_payment_link:bo().nullable().optional(),telegram_stars_payment_note:bo().nullable().optional(),updated_at:bo().optional(),virtual_payments_id:bo().nullable().optional(),void_details:Vo().optional()}).catchall(Vo()),bo().nullable()),ya=si(bo(),Vo()),ga=ei({logo_url:ha,primary_color:bo(),secondary_color:bo(),accent_color:bo()}),ba=ei({attachment_image_id:ei({cloudflare_image_id:ha}).nullable()}),va=ei({attachment_imageId:ei({cloudflareImageId:ha}).nullable()}),wa=ei({uniqid:bo(),status:bo(),total:bo(),total_display:ha,currency:bo(),created_at:bo(),line_items:Xo(ei({product_title:ha,quantity:Mo(),product:ba.nullable()}))}),Sa=ei({uniqid:bo(),status:bo(),total:bo(),totalDisplay:ha,currency:bo(),createdAt:bo(),lineItems:Xo(ei({productTitle:ha,quantity:Mo(),product:va.nullable()}))}),ka=(ei({invoices:Xo(Sa),pagination:ei({page:Mo(),limit:Mo(),total:Mo(),has_more:Jo()})}),ei({gateway:bo(),blockchain:ha,cryptoAddress:ha,apmMethod:ha})),za=(ei({id:bo(),uniqid:bo(),status:bo(),statusDetails:ha,total:bo(),totalDisplay:ha,subtotal:bo(),discount:bo(),discountDisplay:ha,tax:bo(),taxPercentage:bo(),currency:bo(),createdAt:bo(),updatedAt:bo(),gatewayUpdatedAt:ha,customFields:ya.nullable(),balancePaidAmount:bo(),currentPaymentAttemptId:ha,lineItems:Xo(ei({id:bo(),productTitle:bo(),productType:bo(),variantTitle:ha,unitPrice:bo(),quantity:Mo(),total:bo(),deliveryText:ha,deliverySummary:ei({codes:Xo(bo()),links:Xo(ei({label:bo(),value:bo(),href:ha.optional()})),notes:Xo(bo()),serials:Xo(ei({value:bo(),is_replacement:Jo(),is_replaced:Jo()}))}).nullable(),deliveredAt:ha,customFields:ya.nullable(),product:ei({uniqid:bo(),slug:ha,serviceText:ha,attachment_imageId:ei({cloudflareImageId:ha}).nullable()}).nullable()})),currentPayment:ka.nullable(),payments:Xo(ka)}),ei({quote:ei({enabled:Jo(),currency:bo(),min_amount:bo(),max_amount:ha,bonus_tiers:Xo(ei({min_amount:bo(),bonus_percent:Mo()}))})}),ei({invoice_id:bo(),url:bo()}),ei({id:bo(),type:bo(),status:bo(),amount:ha,currency:ha,coupon_code:ha,reason:bo(),trigger_reference_type:bo(),trigger_reference_id:bo(),created_at:Mo(),fulfilled_at:Mo().nullable(),expires_at:Mo().nullable()})),Oa=ei({summary:ei({available:bo(),pending:bo(),lifetime_earned:bo(),redeemed:ha,currency:bo()}),activity:Xo(za),earned_after_invoice:Xo(za),pending_after_invoice:Xo(za)}),xa=ei({id:bo(),uniqid:bo(),label:ha,code:bo(),url:ha,status:li(["pending","active","inactive","rejected"]),is_primary:Jo(),total_clicks:Mo(),total_sales:Mo(),total_revenue:bo(),is_active:Jo(),is_approved:Jo(),requested_affiliate_revenue_percent:Mo().nullable(),requested_affiliate_customer_discount_percent:Mo().nullable(),affiliate_revenue_percent_override:Mo().nullable(),affiliate_customer_discount_percent_override:Mo().nullable(),effective_commission_percent:Mo(),effective_customer_discount_percent:Mo(),commission_shareback_percent:Mo(),commission_shareback_enabled:Jo(),max_commission_shareback_percent:Mo(),created_at:ha,updated_at:ha}),Ea=ei({customer:ei({id:bo(),email:bo(),name:ha}).nullable(),state:bo(),can_create_custom_links:Jo(),custom_link_request_disabled_reason:ha,custom_links_require_approval:Jo(),affiliate_codes_accepted_at_checkout:Jo(),cash_payout_enabled:Jo(),links:Xo(xa),preferred_payout:ei({asset:bo(),network:bo(),address:bo()}).nullable(),balance_currency:bo(),balances:ei({pending:bo(),available:bo(),requested:bo(),converted:bo(),paid:bo(),approved_total:bo()}),commissions:Xo(ei({id:bo(),invoice_id:bo(),commission_amount:bo(),base_amount:bo(),discount_amount:bo(),status:bo(),created_at:ha,paid_at:ha,converted_at:ha})),claims:Xo(ei({id:bo(),type:bo(),status:bo(),amount:bo(),currency:bo(),allocations:Xo(ei({source_type:bo(),commission_id:ha,adjustment_id:ha,amount:bo()})),wallet_transaction_id:ha,payout_asset:ha,payout_network:ha,payout_address:ha,note:ha,metadata:Vo(),completed_at:ha,rejected_at:ha,cancelled_at:ha,created_at:ha,updated_at:ha}))}),Ta=ei({uniqid:bo(),status:bo(),gateway:bo(),current_period_start:bo(),current_period_end:bo(),trial_end:ha,cancel_at_period_end:Jo(),canceled_at:ha,created_at:bo(),plan:ei({id:bo(),uniqid:bo(),name:bo(),price:bo(),currency:bo(),interval:bo(),interval_count:Mo(),trial_days:Mo()}).nullable(),payment_method:ei({id:bo(),gateway:bo(),type:bo(),card_brand:ha,card_last4:ha,card_exp_month:Mo().nullable(),card_exp_year:Mo().nullable(),is_default:Jo()}).nullable(),actions:ei({can_pause:Jo(),can_resume:Jo(),can_cancel:Jo(),can_manage_payment_method:Jo()})});ei({shop:ei({id:bo(),slug:bo(),name:bo(),currency:bo(),branding:ga}),customer:ei({email:bo(),name:bo()}),stats:ei({invoices_count:Mo(),licenses_count:Mo(),deliverables_count:Mo(),tickets_count:Mo()}),wallet:ei({available:bo(),total:bo(),hold:bo(),currency:bo(),enabled:Jo()}).nullable(),rewards:Oa,affiliate:Ea,invoices:Xo(wa),subscriptions:Xo(Ta),licenses:Xo(ei({uniqid:bo(),license_key:bo(),hardware_id:ha,expires_at:Mo().nullable(),product:ei({title:bo().optional()}).optional()})),deliverables:Xo(ei({id:bo(),invoice_uniqid:bo(),product_title:bo(),kind:li(["file","serial","license"]),label:bo(),value:bo(),href:ha,created_at:bo()})),tickets:Xo(ei({uniqid:bo(),title:bo(),status:bo(),updated_at:bo(),created_at:ha}))});var Aa=null,Ia=null;var $a=null,Ca=null;function Na(e,t){const n=t?.shopId?.trim();Ca=n||null;const o=$a?.locale;return o!==($a={storeSlug:e,locale:t?.locale,currency:t?.currency,apiBaseUrl:t?.apiBaseUrl??"https://api.shoppex.io",checkoutBaseUrl:t?.checkoutBaseUrl??"https://checkout.shoppex.io"}).locale&&i(),Aa=null,Ia=null,$a}function Pa(){if(!$a)throw new u;return $a}function Ra(){return null!==$a}function Ua(e){Ca=e}function qa(){return Ca}function ja(e){const t=e?.trim().toLowerCase()??"";return"true"===t||"1"===t||"yes"===t||"on"===t}var Da=-1;function Za(e,t,n){return!0!==t?e:!0===n?Da:0!==e?e:Da}function La(e){return"number"==typeof e&&Number.isFinite(e)?Math.trunc(e):null}function Ma(e){if(!0===e)return!0;if("number"==typeof e&&Number.isFinite(e))return 0!==e;if("string"==typeof e){const t=e.trim().toLowerCase();return"true"===t||"1"===t}return!1}function Fa(e){return Za(La(e?.stock)??Da,e?.orderable,e?.supplier_backed)}function Ba(e){if(!e)return Da;if("string"==typeof e.type&&"SERIALS"===e.type.toUpperCase())return Za(La(e.stock)??Da,e.orderable,e.supplier_backed);const t=function(e){const t=Array.isArray(e.price_variants)?e.price_variants:[];return t.length>0?t.map(e=>Fa(e)):(Array.isArray(e.variants)?e.variants:[]).map(e=>Fa(e))}(e);return t.length>0?t.some(e=>e<0)?Da:Za(t.reduce((e,t)=>e+Math.max(t,0),0),e.orderable,e.supplier_backed):Za(La(e.stock)??Da,e.orderable,e.supplier_backed)}function Ya(e){return!!function(e){return!!e&&(Ma(e.on_hold)||Ma(e.onHold)||Ma(e.is_on_hold)||Ma(e.isOnHold))}(e)||0===Ba(e)}function Ja(e){return!Ya(e)}function Wa(e=[]){const t=new Map;for(const n of e)n?.uniqid&&!t.has(n.uniqid)&&t.set(n.uniqid,n);return t}function Va(e,t=[]){const n=t instanceof Map?t:Wa(t);return(e.product_uniqids??[]).flatMap(e=>{const t=n.get(e);return t?[t]:[]})}function Ga(e=[]){return Array.from(Wa(e).values())}function Ha(e){return e?e.replace(/<[^>]*>/g," ").replace(/\s+/g," ").trim():""}function Ka(e){return e.trim().toLowerCase()}function Xa(e,t){const n=Ha(t).toLowerCase();n&&e.push(n)}function Qa(e){const t=[];Xa(t,e.title),Xa(t,e.slug??void 0),Xa(t,e.description);for(const n of e.product_highlights??[])Xa(t,n);for(const n of e.variants??[])Xa(t,n.title);for(const n of e.price_variants??[])Xa(t,n.title??n.label);return t}function es(e,t){const n=Ka(t);return!!n&&Qa(e).some(e=>e.includes(n))}function ts(e,t){const n=Ka(t);if(!n)return!1;const o=Ha(e.title).toLowerCase(),i=Ha(e.slug??e.name??void 0).toLowerCase(),r=Ha(e.description).toLowerCase();return o.includes(n)||i.includes(n)||r.includes(n)}function ns(e,t){return 0!==e.length&&(!t||e.some(e=>Ja(e)))}function os(e,t,n,o){const i=Ka(n);if(!i)return[];const r=!0===o?.hideOutOfStock,a=new Set,s=new Set,u=[],l=Wa(e);for(const d of t){const e=d.uniqid??d.id;if(!e||s.has(e))continue;if(!ts(d,i))continue;const t=Va(d,l);if(ns(t,r)){s.add(e);for(const e of t)e?.uniqid&&a.add(e.uniqid);u.push({type:"group",group:d,products:t})}}const c=Ga(e);for(const d of c)d?.uniqid&&!a.has(d.uniqid)&&es(d,i)&&(r&&!Ja(d)||(a.add(d.uniqid),u.push({type:"product",product:d})));return null!=o?.maxResults?u.slice(0,o.maxResults):u}function is(e,t,n,o){const i=os(e,t,n,o),r=new Set,a=[],s=e=>{e?.uniqid&&!r.has(e.uniqid)&&(o?.hideOutOfStock&&!Ja(e)||(r.add(e.uniqid),a.push(e)))};for(const u of i)if("product"!==u.type)for(const e of u.products)s(e);else s(u.product);return null!=o?.maxResults?a.slice(0,o.maxResults):a}function rs(e){if(e?.apiBaseUrl?.trim())return e.apiBaseUrl.replace(/\/+$/,"");const t=e?.hostname??("undefined"!=typeof window?window.location.hostname:"");if(t&&!function(e){if("localhost"===e||"127.0.0.1"===e||"::1"===e||e.endsWith(".localhost"))return!0;if(/^10\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(e))return!0;if(/^192\.168\.\d{1,3}\.\d{1,3}$/.test(e))return!0;const t=e.match(/^172\.(\d{1,2})\.\d{1,3}\.\d{1,3}$/);if(t){const e=Number(t[1]);return e>=16&&e<=31}return!1}(t))return"https://api.shoppex.io";if("undefined"!=typeof window){const e=window.apiBaseUrl;if("string"==typeof e&&e.trim())return e.replace(/\/+$/,"")}return"http://localhost:3001".replace(/\/+$/,"")}function as(e){const t=e.name?.trim()??"",n=`${t?`Name: ${t}\n\n`:""}${e.message.trim()}`,o=e.maxLength??2e3;return n.slice(0,o)}var ss=/:([A-Za-z0-9_]+)/g;function us(e,t){return e.replace(ss,(e,n)=>{const o=t[n];if(null==o)throw new Error(`Missing endpoint param: ${n}`);const i=String(o).trim();if(!i)throw new Error(`Endpoint param "${n}" must not be empty`);return encodeURIComponent(i)})}function ls(e){return`shoppex_${e}`}function cs(e){try{const t=localStorage.getItem(ls(e));return t?JSON.parse(t):null}catch{return null}}function ds(e,t){try{localStorage.setItem(ls(e),JSON.stringify(t))}catch{console.warn("[shoppex] Failed to save to localStorage")}}function ps(e){try{localStorage.removeItem(ls(e))}catch{}}function fs(e){if("undefined"==typeof window)return null;const t=`presence_connection_${e}`,n=cs(t);if(n&&n.trim())return n;const o="undefined"!=typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`spx_${Math.random().toString(36).slice(2)}${Date.now().toString(36)}`;return ds(t,o),o}async function ms(e){if(!Ra())return;if("undefined"==typeof window)return;if(function(e){const t=`client_error_${function(e){return[e.method,e.endpoint,e.statusCode??"none",e.message.trim().toLowerCase(),e.responseReceived?"response":"no-response"].join("|")}(e)}`,n=Date.now(),o=cs(t);return"number"==typeof o&&n-o<15e3||(ds(t,n),!1)}(e))return;const t=Pa(),n=qa(),o=n?us("/v1/storefront/shops/id/:id/ping",{id:n}):us("/v1/storefront/shops/:storeSlug/ping",{storeSlug:t.storeSlug}),i=JSON.stringify({event_type:"client_error",referer:document.referrer||void 0,connection_id:fs(t.storeSlug)??void 0,client_error:{source:e.source??"sdk",phase:e.phase??"request",endpoint:e.endpoint,method:e.method,message:e.message,status_code:e.statusCode,attempt_count:e.attemptCount,response_received:e.responseReceived??!1,page_url:e.pageUrl??window.location.href,request_url:e.requestUrl,online:e.online??("undefined"!=typeof navigator?navigator.onLine:void 0),visibility_state:e.visibilityState??("undefined"!=typeof document?document.visibilityState:void 0)}}),r=`${t.apiBaseUrl}${o}`;try{if("undefined"!=typeof navigator&&"function"==typeof navigator.sendBeacon){const e=new Blob([i],{type:"application/json"});if(navigator.sendBeacon(r,e))return}await fetch(r,{method:"POST",headers:{"Content-Type":"application/json"},body:i,keepalive:!0})}catch{}}var _s=1e4;async function hs(e){return new Promise(t=>setTimeout(t,e))}async function ys(e,t={}){const n=t.baseUrl?null:Pa(),o=n??(Ra()?Pa():null),{method:i="GET",body:r,timeout:s=_s,retries:u,baseUrl:c,cache:d}=t,p=u??("GET"===i?2:0),f=`${c??n?.apiBaseUrl??""}${e}`,m={"Content-Type":"application/json",Accept:"application/json"};"string"==typeof o?.locale&&o.locale.trim()&&(m["x-shoppex-locale"]=o.locale.trim());let _=null;const h=async()=>{for(let t=0;t<=p;t++)try{const e=new AbortController,t=setTimeout(()=>e.abort(),s),n=await fetch(f,{method:i,headers:m,body:r?JSON.stringify(r):void 0,signal:e.signal});clearTimeout(t);const o=await gs(n);if(!n.ok){const e=n.statusText?`HTTP ${n.status}: ${n.statusText}`:`HTTP ${n.status}`;throw new l((o.data&&"object"==typeof o.data&&"error"in o.data&&"string"==typeof o.data.error?o.data.error:null)??(o.data&&"object"==typeof o.data&&"message"in o.data&&"string"==typeof o.data.message?o.data.message:null)??o.rawText??e,n.status)}if(204===n.status&&null===o.data)return{success:!0};if(!o.data||"object"!=typeof o.data||!("status"in o.data))throw new l("Invalid API response",n.status);return bs(o.data)}catch(e){let n=e instanceof Error?e:new Error(String(e));e instanceof DOMException&&"AbortError"===e.name&&(n=new l("Request timeout",408));const o=n instanceof l?n.statusCode:void 0;if(_={message:n.message,statusCode:o,isTransport:void 0===o||408===o},t<p){await hs(500*Math.pow(2,t));continue}}return{success:!1,message:_?.message??"Unknown error"}},y="GET"===i&&d&&d.ttl>0?await a(d.key??`GET:${f}`,h,{ttl:d.ttl,staleWhileRevalidate:d.staleWhileRevalidate},e=>e.success):await h(),g=_;return!y.success&&g?.isTransport&&await ms({endpoint:e,method:i,message:y.message??g.message,statusCode:g.statusCode,attemptCount:p+1,requestUrl:f,responseReceived:void 0!==g.statusCode&&408!==g.statusCode}),y}async function gs(e){const t=e;if("function"!=typeof t.text){if("function"==typeof t.json)try{return{data:await t.json(),rawText:null}}catch{return{data:null,rawText:null}}return{data:null,rawText:null}}try{const e=await t.text();if(!e)return{data:null,rawText:null};try{return{data:JSON.parse(e),rawText:null}}catch{const t=e.trim();return{data:null,rawText:t.length>0?t:null}}}catch{return{data:null,rawText:null}}}function bs(e){return e.status>=200&&e.status<300?{success:!0,data:e.data,...e.message?{message:e.message}:{}}:{success:!1,message:e.error??e.message??`Request failed with status ${e.status}`}}async function vs(e,t){return ys(e,{...t,method:"GET"})}async function ws(e,t,n){return ys(e,{...n,method:"POST",body:t})}var Ss=3e5;async function ks(){const e=Pa(),t=await vs(us("/v1/storefront/shops/name/:storeSlug",{storeSlug:e.storeSlug}),{cache:{key:`store:${e.storeSlug}`,ttl:Ss,staleWhileRevalidate:!0}});return t.success&&t.data?(t.data.shop?.id&&Ua(t.data.shop.id),{success:!0,data:t.data.shop}):{success:!1,message:t.message}}async function zs(e){const t=Pa(),n=new URLSearchParams;Number.isFinite(e?.productsLimit)&&n.set("products_limit",String(Math.max(1,Math.floor(e?.productsLimit??0)))),"string"==typeof e?.productsCursor&&e.productsCursor.trim().length>0&&n.set("products_cursor",e.productsCursor);const o=n.size>0?`?${n.toString()}`:"",i=await vs(`${us("/v1/storefront/shops/name/:storeSlug",{storeSlug:t.storeSlug})}${o}`,{cache:{key:`storefront:${t.storeSlug}:${e?.productsLimit??"full"}:${e?.productsCursor??"start"}`,ttl:Ss,staleWhileRevalidate:!0}});return i.success&&i.data?(i.data.shop?.id&&Ua(i.data.shop.id),{success:!0,data:{shop:i.data.shop,products:i.data.products??[],products_pagination:i.data.products_pagination??null,groups:i.data.groups??[],items:i.data.items??[],categories:i.data.categories??[],addons:i.data.addons??{items:[]}}}):{success:!1,message:i.message}}var Os=12e4;function xs(e){if(e.variants&&e.variants.length>0)return e;const t=e.price_variants;return Array.isArray(t)&&0!==t.length?{...e,variants:t.map(e=>function(e){return{id:e.id,title:e.title??e.label??"",price:"number"==typeof e.price?e.price:Number(e.price)||0,stock:"number"==typeof e.stock?e.stock:void 0,orderable:"boolean"==typeof e.orderable?e.orderable:void 0,supplier_backed:"boolean"==typeof e.supplier_backed?e.supplier_backed:void 0,quantity_min:e.quantity_min,quantity_max:e.quantity_max,quantityMin:e.quantityMin,quantityMax:e.quantityMax,image_id:e.image_id,imageId:e.imageId,cloudflare_image_id:e.cloudflare_image_id,cloudflareImageId:e.cloudflareImageId,image_url:e.image_url,imageUrl:e.imageUrl}}(e))}:e}async function Es(){const e=Pa(),t=await vs(us("/v1/storefront/products/public/:storeSlug",{storeSlug:e.storeSlug}),{cache:{key:`products:${e.storeSlug}`,ttl:Os,staleWhileRevalidate:!0}});return t.success&&t.data?{success:!0,data:Ga(t.data.products.map(xs))}:{success:!1,message:t.message,data:[]}}function Ts(e){if(!e)return{};const t=Object.entries(e).filter(([,e])=>"string"==typeof e).sort(([e],[t])=>e.localeCompare(t));return Object.fromEntries(t)}function As(e){const t={product_id:e.product_id,variant_id:e.variant_id,price_variant_id:e.price_variant_id??null,addons:(n=e.addons,n?.length?[...n].map(e=>({id:e.id,quantity:e.quantity??1})).sort((e,t)=>e.id.localeCompare(t.id)):[]),custom_fields:Ts(e.custom_fields),unit_price:"number"==typeof e.price_data?.unit_price&&Number.isFinite(e.price_data.unit_price)?e.price_data.unit_price:null,pay_what_you_want_price:"number"==typeof e.pay_what_you_want_price&&Number.isFinite(e.pay_what_you_want_price)?e.pay_what_you_want_price:null};var n;return function(e){let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24);return(t>>>0).toString(16)}(JSON.stringify(t))}function Is(e){return"string"==typeof e.line_id&&e.line_id.trim()?e:{...e,line_id:As(e)}}function $s(e){const t=e?.trim().toUpperCase();return t&&/^[A-Z]{3}$/.test(t)?t:null}function Cs(){if("undefined"==typeof window||!window.location)return null;const e="string"==typeof window.location.search?window.location.search:"";if(e)return $s(new URLSearchParams(e).get("currency"));const t="string"==typeof window.location.href?window.location.href:"";if(!t)return null;try{return $s(new URL(t,"https://storefront.shoppex.local").searchParams.get("currency"))}catch{return null}}var Ns={cart:"cart",cartBackup:"cart_backup",meta:"cart_meta",metaBackup:"cart_backup_meta",coupon:"cart_coupon",couponBackup:"cart_coupon_backup"};function Ps(e){return`${Ns[e]}_${Pa().storeSlug}`}function Rs(e){return function(e){let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24);return(t>>>0).toString(16)}(JSON.stringify(e))}function Us(e){if(!Number.isFinite(e))throw new c("quantity must be a finite number");return Math.floor(e)}function qs(e){const t=e?.trim().toUpperCase();return t||null}function js(){const e=cs(Ps("coupon"));if(!e||"object"!=typeof e||Array.isArray(e))return null;const t=e,n="string"==typeof t.code?qs(t.code):null,o="COUPON"===t.source||"AFFILIATE"===t.source?t.source:null;return n&&o?{code:n,source:o}:null}function Ds(e){if(!Array.isArray(e))return[];const t=[];for(const n of e){if(!n||"object"!=typeof n)continue;const e=n,o="string"==typeof e.product_id?e.product_id.trim():"",i="string"==typeof e.variant_id?e.variant_id.trim():"",r=Number(e.quantity);if(!o||!i||!Number.isFinite(r)||r<1)continue;const a={line_id:"",product_id:o,variant_id:i,quantity:Math.floor(r)};if("string"==typeof e.price_variant_id&&(a.price_variant_id=e.price_variant_id),e.price_data&&"object"==typeof e.price_data){const t=e.price_data;"number"==typeof t.unit_price&&Number.isFinite(t.unit_price)&&(a.price_data={unit_price:t.unit_price})}"number"==typeof e.pay_what_you_want_price&&Number.isFinite(e.pay_what_you_want_price)&&(a.pay_what_you_want_price=e.pay_what_you_want_price),Array.isArray(e.addons)&&(a.addons=e.addons),e.custom_fields&&"object"==typeof e.custom_fields&&!Array.isArray(e.custom_fields)&&(a.custom_fields=e.custom_fields),"string"==typeof e.title&&(a.title=e.title),"string"==typeof e.variant_title&&(a.variant_title=e.variant_title),"string"==typeof e.image_url&&(a.image_url=e.image_url),Array.isArray(e.addon_labels)&&(a.addon_labels=e.addon_labels.filter(e=>"string"==typeof e)),"number"==typeof e.max_quantity&&Number.isFinite(e.max_quantity)&&(a.max_quantity=e.max_quantity),"number"==typeof e.min_quantity&&Number.isFinite(e.min_quantity)&&(a.min_quantity=e.min_quantity),Vs(a),a.line_id=("string"==typeof e.line_id?e.line_id.trim():"")||As(a),t.push(Is(a))}return t}function Zs(){return cs(Ps("meta"))}function Ls(){return js()?.code??null}function Ms(){return js()?.source??null}function Fs(e,t="COUPON"){const n=qs(e);return n?(ds(Ps("coupon"),{code:n,source:t}),n):(ps(Ps("coupon")),null)}function Bs(){ps(Ps("coupon"))}function Ys(e){const t=Ds(e);ds(Ps("cart"),t);const n=Date.now(),o=Zs(),i={created_at:o?.created_at??n,last_modified:n,version:(o?.version??0)+1,checksum:Rs(t)};ds(Ps("meta"),i),0===t.length&&Bs()}function Js(e,t){const n=Ds(e);ds(Ps("cart"),n);const o=Date.now(),i=t??Zs(),r={created_at:i?.created_at??o,last_modified:o,version:i?.version??1,checksum:Rs(n)};ds(Ps("meta"),r)}function Ws(){return Ds(cs(Ps("cart")))}function Vs(e){const t=e.min_quantity;"number"==typeof t&&Number.isFinite(t)&&e.quantity<t&&(e.quantity=Math.floor(t));const n=e.max_quantity;"number"==typeof n&&Number.isFinite(n)&&e.quantity>n&&(e.quantity=Math.floor(n)),e.quantity<1&&(e.quantity=1)}function Gs(){ps(Ps("cart")),ps(Ps("meta")),Bs()}function Hs(){const e=Ws();ds(Ps("cartBackup"),e);const t=js();t?ds(Ps("couponBackup"),t):ps(Ps("couponBackup"));const n=Zs();if(n)ds(Ps("metaBackup"),n);else{const t=Date.now();ds(Ps("metaBackup"),{created_at:t,last_modified:t,version:1,checksum:Rs(e)})}}function Ks(){const e=Ws(),t=Zs(),n=Rs(e);return t?t.checksum===n:(Js(e,null),!0)}var Xs="shoppex:affiliate_code:v1";function Qs(){return Date.now()}function eu(e){const t=e?.trim().toLowerCase();return t||null}function tu(e,t=30){const n=eu(e);return n?(function(e){if("undefined"!=typeof window)try{window.localStorage.setItem(Xs,JSON.stringify(e))}catch{}}({code:n,expiresAt:Qs()+(o=t,24*Math.max(1,o)*60*60*1e3)}),n):(nu(),null);var o}function nu(){if("undefined"!=typeof window)try{window.localStorage.removeItem(Xs)}catch{}}function ou(){const e=function(){if("undefined"==typeof window)return null;try{const e=window.localStorage.getItem(Xs);if(!e)return null;const t=JSON.parse(e);return t&&"string"==typeof t.code&&"number"==typeof t.expiresAt?t:null}catch{return null}}();return e?e.expiresAt<=Qs()?(nu(),null):eu(e.code):null}async function iu(e){const t=eu(e);if(!t)return{success:!1,data:{valid:!1,affiliate_code:null,discount_active:!1,discount_percent:0},message:"Affiliate code is required"};const n=await ws("/v1/storefront/affiliates/resolve",{shop_slug:Pa().storeSlug,code:t},{retries:0});if(!n.success)return n;if(!n.data?.valid||!n.data.affiliate_code){const e=!1===n.data?.program_enabled;return{success:!1,data:{valid:!1,...void 0!==n.data?.program_enabled?{program_enabled:n.data.program_enabled}:{},affiliate_code:null,discount_active:!1,discount_percent:0},message:n.message??(e?"Affiliate program is disabled for this shop.":"Invalid affiliate code.")}}return{success:!0,data:{valid:!0,...void 0!==n.data.program_enabled?{program_enabled:n.data.program_enabled}:{},affiliate_code:eu(n.data.affiliate_code),discount_active:Boolean(n.data.discount_active),discount_percent:Number(n.data.discount_percent??0)},...n.message?{message:n.message}:{}}}function ru(e){const t=e?.trim();return t||null}function au(e){const t=e?.trim();return t||null}function su(e){return"/dashboard/api/checkout"===e.customerCheckoutPath&&"undefined"!=typeof window&&"string"==typeof window.location?.origin?{endpoint:e.customerCheckoutPath,baseUrl:window.location.origin}:{endpoint:"/v1/storefront/invoices/from-cart"}}function uu(e){return $s(e.currency)??Cs()??$s(Pa().currency)}function lu(e){const t=e?.trim()??"";if(!t)return"Checkout failed. Please try again.";if(cu(t))return"Your cart is outdated. Please add the products again.";const n=t.match(/^HTTP\s+(\d{3})(?::\s*(.*))?$/i);if(n){const e=Number(n[1]),t=n[2]?.trim();return t&&t.length>0?`Checkout failed: ${t}`:e>=500?"Checkout is temporarily unavailable. Please try again.":400===e?"Checkout failed. Please check your details and try again.":401===e||403===e?"Checkout is currently unavailable for this request.":"Checkout failed. Please try again."}return/^internal server error$/i.test(t)?"Checkout is temporarily unavailable. Please try again.":t}function cu(e){const t=e?.trim().toLowerCase()??"";return!!t&&(t.includes("product not found")||t.includes("product not available")||t.includes("products are no longer available")||t.includes("outdated product"))}function du(e,t,n){const o=t?.trim();if(!o)return null;try{const t=new URL(e),i=new URL(o);if(t.origin!==i.origin)return null;const r=t.pathname.replace(/\/+$/,""),a=`${i.pathname.replace(/\/+$/,"")}/invoice/`.replace(/\/{2,}/g,"/");if(!r.startsWith(a))return null;const s=r.slice(a.length);if(!s||s.includes("/"))return null;if(n){const e=n.trim();if(!e||decodeURIComponent(s)!==e)return null}return t.toString()}catch{return null}}function pu(e,t){const n=au(t.email),o="string"==typeof t.locale?t.locale.trim():"";if(!n&&!o)return e;try{const t=new URL(e);if(o&&t.searchParams.set("locale",o),n){const e=new URLSearchParams(t.hash.startsWith("#")?t.hash.slice(1):t.hash);e.set("shoppex_prefill_email",n),t.hash=e.toString()}return t.toString()}catch{return e}}function fu(e,t){const n=e?.invoice,o=e?.invoiceId?.trim()||e?.invoice_id?.trim()||e?.uniqid?.trim()||n?.invoiceId?.trim()||n?.invoice_id?.trim()||n?.uniqid?.trim();let i=e?.checkoutUrl?.trim()||e?.checkout_url?.trim()||e?.url_branded?.trim()||e?.url?.trim()||n?.checkoutUrl?.trim()||n?.checkout_url?.trim()||n?.url_branded?.trim()||n?.url?.trim();return!i&&o&&n&&(i=function(e,t){const n=e?.trim();if(!n)return null;try{const e=new URL(n);return e.pathname=`${e.pathname.replace(/\/+$/,"")}/invoice/${encodeURIComponent(t)}`.replace(/\/{2,}/g,"/"),e.search="",e.hash="",e.toString()}catch{return null}}(t,o)??void 0),o&&i?{invoiceId:o,checkoutUrl:i,rewards:e?.rewards??n?.rewards??null}:null}function mu(e,t){return"string"==typeof e?{...t,coupon:e}:e??t??{}}function _u(e,t){const n=e.affiliateCode??e.referralCode;return"string"==typeof n&&n.trim().length>0?n.trim().toLowerCase():t?.trim().toLowerCase()??ou()}function hu(e){const t=Ls(),n=Ms();return{coupon:void 0===e.coupon?"COUPON"===n?t:null:ru(e.coupon),affiliateCode:_u(e,void 0===e.coupon&&"AFFILIATE"===n?t:null)}}function yu(e){const t=e=>{const t=e?.trim();return t?"default"===t.toLowerCase()?null:t:null};return e.map(e=>({product_id:e.product_id,variant_id:t(e.variant_id),quantity:e.quantity,addons:e.addons?.map(e=>({id:e.id,quantity:e.quantity??1})),custom_fields:e.custom_fields,price_variant_id:e.price_variant_id||null,pay_what_you_want_price:e.pay_what_you_want_price}))}function gu(e){if("number"==typeof e&&Number.isFinite(e))return e;if("string"==typeof e&&""!==e.trim()){const t=Number(e);return Number.isFinite(t)?t:null}return null}function bu(...e){for(const t of e)if("string"==typeof t&&t.length>0)return t}function vu(e,t){const n=e,o=gu(n.rating)??gu(n.score)??0,i=bu(n.comment,n.message),r=bu(n.author,n.customer_name),a=n.created_at??n.createdAt,s="number"==typeof a||"string"==typeof a?String(a):"",u=bu(n.id,n.uniqid)??`review:${s||t}`;return{...n,id:u,rating:o,...i?{comment:i}:{},...r?{author:r}:{},created_at:s}}async function wu(e){const t=Pa(),n=new URLSearchParams;n.set("limit",String(100)),"string"==typeof e&&e.trim().length>0&&n.set("cursor",e);const o=`?${n.toString()}`,i=await vs(`${us("/v1/storefront/feedback/shop/:storeSlug",{storeSlug:t.storeSlug})}${o}`,{cache:{key:`reviews:${t.storeSlug}:${e??"start"}:100`,ttl:12e4,staleWhileRevalidate:!0}});return i.success&&i.data?{success:!0,data:i.data}:{success:!1,message:i.message}}function Su(e){const t=e.trim();return t||null}var ku=3e5;var zu=3e5;async function Ou(){const e=Pa(),t=await vs(us("/v1/storefront/shops/name/:storeSlug/menus",{storeSlug:e.storeSlug}),{cache:{key:`menus:${e.storeSlug}`,ttl:zu,staleWhileRevalidate:!0}});return t.success&&t.data?{success:!0,data:t.data.menus}:{success:!1,message:t.message}}async function xu(e){const t=Pa(),n=await vs(us("/v1/storefront/shops/name/:storeSlug/menus/:title",{storeSlug:t.storeSlug,title:e}),{cache:{key:`menu:${t.storeSlug}:${e}`,ttl:zu,staleWhileRevalidate:!0}});return n.success&&n.data?{success:!0,data:n.data.menu}:{success:!1,message:n.message}}async function Eu(e){return xu(e)}async function Tu(e){const t=Pa(),n=await vs(us("/v1/storefront/shops/name/:storeSlug/menus/:title",{storeSlug:t.storeSlug,title:e}),{cache:{key:`menu-slot:${t.storeSlug}:${e}`,ttl:zu,staleWhileRevalidate:!0}});return n.success&&n.data?{success:!0,data:n.data.menu}:{success:!1,message:n.message}}function Au(e){return function(e){const t=w[e];return[t.title,...t.aliases]}(e)}var Iu=["utm_source","utm_medium","utm_campaign","utm_term","utm_content"];function $u(e){return`shoppex:utm:${e}`}function Cu(e){if("undefined"==typeof window||void 0===window.location)return;const t=function(e){let t;try{t=new URLSearchParams(e)}catch{return{}}const n={};for(const o of Iu){const e=t.get(o)?.trim();e&&(n[o]=e.slice(0,255))}return n}(window.location.search);if(Object.keys(t).length>0)return function(e,t){try{const n={utm:t,at:Date.now()};window.localStorage.setItem($u(e),JSON.stringify(n))}catch{}}(e,t),t;const n=function(e){try{const t=window.localStorage.getItem($u(e));if(!t)return{};const n=JSON.parse(t);if(!n||"number"!=typeof n.at||"object"!=typeof n.utm)return{};if(Date.now()-n.at>2592e6)return window.localStorage.removeItem($u(e)),{};const o={};for(const e of Iu){const t=n.utm?.[e];"string"==typeof t&&t.length>0&&(o[e]=t.slice(0,255))}return o}catch{return{}}}(e);return Object.keys(n).length>0?n:void 0}async function Nu(e,t){if(!Ra())return;if("undefined"==typeof document)return;const n=Pa(),o=fs(n.storeSlug);try{const i=us("/v1/storefront/shops/:storeSlug/ping",{storeSlug:n.storeSlug});await fetch(`${n.apiBaseUrl}${i}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({referer:document.referrer||void 0,cart_value:e??void 0,item_count:t??void 0,connection_id:o??void 0,utm:Cu(n.storeSlug)})})}catch{}}async function Pu(){if(!Ra())return{success:!1,message:"SDK not initialized"};const e=Pa(),t=qa();return vs(t?us("/v1/storefront/shops/id/:id/recent-sales",{id:t}):us("/v1/storefront/shops/:storeSlug/recent-sales",{storeSlug:e.storeSlug}),{cache:!1,retries:0,timeout:5e3})}async function Ru(){if(!Ra())return{success:!1,message:"SDK not initialized"};const e=Pa(),t=qa();return vs(t?us("/v1/storefront/shops/id/:id/online-users",{id:t}):us("/v1/storefront/shops/:storeSlug/online-users",{storeSlug:e.storeSlug}),{cache:!1,retries:0,timeout:5e3})}async function Uu(){if(!Ra())return{success:!1,message:"SDK not initialized"};if("undefined"==typeof document)return{success:!1,message:"Document is not available"};const e=Pa(),t=qa();return ws(t?us("/v1/storefront/shops/id/:id/ping",{id:t}):us("/v1/storefront/shops/:storeSlug/ping",{storeSlug:e.storeSlug}),{referer:document.referrer||void 0,connection_id:fs(e.storeSlug)??void 0,utm:Cu(e.storeSlug)},{retries:0,timeout:5e3})}function qu(e,t){const n=Pa();return new Intl.NumberFormat(t??n.locale??"en-US",{style:"currency",currency:e??n.currency??"USD"})}function ju(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function Du(e){return ju(e)&&ju(e.theme)?{...e,version:"number"==typeof e.version?e.version:0,revision:"number"==typeof e.revision?e.revision:0,theme:{...e.theme,content:ju(e.theme.content)?e.theme.content:{},layout:ju(e.theme.layout)?e.theme.layout:{},style_slots:ju(e.theme.style_slots)?e.theme.style_slots:{},...Array.isArray(e.theme.pages)?{pages:e.theme.pages}:{},...ju(e.theme.terms)?{terms:e.theme.terms}:{}}}:null}async function Zu(e){const t=await vs(us("/v1/storefront/themes/builder/published/:shopSlug",{shopSlug:e}));return t.success&&t.data?ju(n=t.data)?{settings:ju(n.settings)?n.settings:{},builder_settings:Du(n.builder_settings),content:ju(n.content)?n.content:{},style_slots:ju(n.style_slots)?n.style_slots:{}}:null:null;var n}async function Lu(e){const t=await Zu(e);return t?t.settings:null}function Mu(e){const t={};for(const[n,o]of Object.entries(e.settings)){t[n]={};for(const[e,i]of Object.entries(o))t[n][e]=i.default}return t}function Fu(e,t){const n={...e};for(const[o,i]of Object.entries(t))i&&(n[o]={...n[o],...i});return n}var Bu={init:function(e,t){"string"==typeof e?Na(e,t):Na(e.storeId,e)},isInitialized:Ra,getConfig:Pa,client:function(e){const t=Pa().apiBaseUrl??"https://api.shoppex.io";if(Aa&&Ia===t&&!e)return Aa;const n=function(e,t){return p({baseUrl:e,headers:t?{Authorization:`Bearer ${t}`}:void 0})}(t,e);return e||(Aa=n,Ia=t),n},getStore:ks,getStorefront:zs,getStoreLogoUrl:async function(){const e=await ks();return e.success&&e.data?.logo?e.data.logo:null},getStoreBannerUrl:async function(){const e=await ks();return e.success&&e.data?.banner?e.data.banner:null},resolveStoreByDomain:async function(e,t){const n=e??("undefined"!=typeof window?window.location.hostname:"");if(!n)return{success:!1,message:"Domain is required to resolve store"};const o=n.replace(/^https?:\/\//,"").split("/")[0].trim(),i=t??(Ra()?Pa().apiBaseUrl:"https://api.shoppex.io"),r=await vs(us("/v1/storefront/shops/domain/:domain",{domain:o}),{baseUrl:i,cache:{key:`store:domain:${o}`,ttl:Ss,staleWhileRevalidate:!0}});return r.success&&r.data?.shop?(r.data.shop.id&&Ua(r.data.shop.id),{success:!0,data:r.data.shop}):{success:!1,message:r.message??"Failed to resolve store"}},getProducts:Es,getStorefrontProductsPage:async function(e){const t=Pa(),n=new URLSearchParams;"string"==typeof e?.cursor&&e.cursor.trim().length>0&&n.set("cursor",e.cursor),Number.isFinite(e?.limit)&&n.set("limit",String(Math.max(1,Math.floor(e?.limit??0)))),"string"==typeof e?.sort&&e.sort.trim().length>0&&n.set("sort",e.sort.trim()),"string"==typeof e?.category&&e.category.trim().length>0&&n.set("category",e.category.trim()),!0===e?.hideOutOfStock&&n.set("hide_out_of_stock","true");const o=n.size>0?`?${n.toString()}`:"",i=await vs(`${us("/v1/storefront/products/shop/:storeSlug",{storeSlug:t.storeSlug})}${o}`,{cache:{key:`products:page:${t.storeSlug}:${e?.limit??"default"}:${e?.cursor??"start"}:${e?.sort??"featured"}:${r=e?.category,void 0===r?"category:unset":null===r?"category:null":`category:${r}`}:${!0===e?.hideOutOfStock?"in-stock":"all-stock"}`,ttl:Os,staleWhileRevalidate:!0}});var r;return i.success&&i.data?{success:!0,data:{products:i.data.products.map(xs),pagination:i.data.pagination??null}}:{success:!1,message:i.message}},getProduct:async function(e){let t=qa();if(!t){const e=await ks();t=e.success?e.data?.id??null:null}const n=t?`?slug_shop_id=${encodeURIComponent(t)}`:"",o=await vs(`${us("/v1/storefront/products/unique/:idOrSlug",{idOrSlug:e})}${n}`,{cache:{key:`product:${e}:${t??"no-shop"}`,ttl:Os,staleWhileRevalidate:!0}});return o.success&&o.data?.product?{success:!0,data:xs(o.data.product)}:{success:!1,message:o.message}},getCategories:async function(){const e=await Es();if(!e.success||!e.data)return{success:!1,message:e.message};const t=new Set;for(const n of e.data)if(n.categories)for(const e of n.categories)"string"==typeof e?t.add(e):e&&"object"==typeof e&&"uniqid"in e&&t.add(e.uniqid);return{success:!0,data:Array.from(t)}},getCart:Ws,getCartItemCount:function(){return Ws().reduce((e,t)=>e+t.quantity,0)},getCartCoupon:Ls,getCartCouponSource:Ms,setCartCoupon:Fs,clearCartCoupon:Bs,addToCart:function(e,t,n=1,o){if(!e||!t)throw new c("product_id and variant_id are required");const i=Us(n);if(i<1)throw new c("quantity must be at least 1");const r=Ws(),a=As({product_id:e,variant_id:t,addons:o?.addons,custom_fields:o?.custom_fields,price_variant_id:o?.price_variant_id,price_data:o?.price_data,pay_what_you_want_price:o?.pay_what_you_want_price}),s=r.findIndex(e=>e.line_id===a);if(s>=0)r[s].quantity+=i,o?.addons&&(r[s].addons=o.addons),o?.custom_fields&&(r[s].custom_fields=o.custom_fields),o?.price_variant_id&&(r[s].price_variant_id=o.price_variant_id),o?.price_data&&(r[s].price_data=o.price_data),void 0!==o?.pay_what_you_want_price&&(r[s].pay_what_you_want_price=o.pay_what_you_want_price),function(e,t){if(t?.replace_display_snapshot)return e.title=t.title,e.variant_title=t.variant_title,e.image_url=t.image_url,e.addon_labels=t.addon_labels,e.max_quantity=t.max_quantity,void(e.min_quantity=t.min_quantity);void 0!==t?.title&&(e.title=t.title);void 0!==t?.variant_title&&(e.variant_title=t.variant_title);void 0!==t?.image_url&&(e.image_url=t.image_url);void 0!==t?.addon_labels&&(e.addon_labels=t.addon_labels);void 0!==t?.max_quantity&&(e.max_quantity=t.max_quantity);void 0!==t?.min_quantity&&(e.min_quantity=t.min_quantity)}(r[s],o),Vs(r[s]);else{const n={line_id:a,product_id:e,variant_id:t,quantity:i,addons:o?.addons,custom_fields:o?.custom_fields,price_variant_id:o?.price_variant_id,price_data:o?.price_data,pay_what_you_want_price:o?.pay_what_you_want_price,title:o?.title,variant_title:o?.variant_title,image_url:o?.image_url,addon_labels:o?.addon_labels,max_quantity:o?.max_quantity,min_quantity:o?.min_quantity};Vs(n),r.push(n)}Ys(r)},setCartItem:function(e,t,n=1,o){if(!e||!t)throw new c("product_id and variant_id are required");const i=Us(n);if(i<1)throw new c("quantity must be at least 1");const r=Ws(),a=As({product_id:e,variant_id:t,addons:o?.addons,custom_fields:o?.custom_fields,price_variant_id:o?.price_variant_id,price_data:o?.price_data,pay_what_you_want_price:o?.pay_what_you_want_price});for(let u=r.length-1;u>=0;u-=1)r[u].product_id===e&&r[u].variant_id===t&&r.splice(u,1);const s={line_id:a,product_id:e,variant_id:t,quantity:i,addons:o?.addons,custom_fields:o?.custom_fields,price_variant_id:o?.price_variant_id,price_data:o?.price_data,pay_what_you_want_price:o?.pay_what_you_want_price,title:o?.title,variant_title:o?.variant_title,image_url:o?.image_url,addon_labels:o?.addon_labels,max_quantity:o?.max_quantity,min_quantity:o?.min_quantity};Vs(s),r.push(s),Ys(r)},updateCartItem:function(e,t){const n=Ws(),o=e.trim();if(!o)throw new c("line_id is required");const i=n.findIndex(e=>e.line_id===o);if(i<0)throw new c("Item not found in cart");if(void 0!==t.quantity){const e=Us(t.quantity);if(e<1)return n.splice(i,1),void Ys(n);n[i].quantity=e}void 0!==t.addons&&(n[i].addons=t.addons),void 0!==t.custom_fields&&(n[i].custom_fields=t.custom_fields),void 0!==t.price_variant_id&&(n[i].price_variant_id=t.price_variant_id),void 0!==t.price_data&&(n[i].price_data=t.price_data),void 0!==t.pay_what_you_want_price&&(n[i].pay_what_you_want_price=t.pay_what_you_want_price),void 0!==t.max_quantity&&(n[i].max_quantity=t.max_quantity),void 0!==t.min_quantity&&(n[i].min_quantity=t.min_quantity),Vs(n[i]);const r=As(n[i]),a=n.findIndex((e,t)=>t!==i&&e.line_id===r);a>=0?(n[a].quantity+=n[i].quantity,Vs(n[a]),n.splice(i,1)):n[i].line_id=r,Ys(n)},removeFromCart:function(e){const t=e.trim();if(!t)throw new c("line_id is required");Ys(Ws().filter(e=>e.line_id!==t))},clearCart:Gs,createCartBackup:Hs,restoreCartFromBackup:function(){const e=Ds(cs(Ps("cartBackup"))),t=cs(Ps("metaBackup")),n=cs(Ps("couponBackup"));if(e&&e.length>0){if(Js(e,t),n&&"object"==typeof n&&!Array.isArray(n)){const e=n,t="COUPON"===e.source||"AFFILIATE"===e.source?e.source:null;"string"==typeof e.code&&t?Fs(e.code,t):Bs()}else Bs();return!0}return!1},mergeBaskets:function(e){const t=Ws();for(const n of e){const e="string"==typeof n.product_id?n.product_id.trim():"",o="string"==typeof n.variant_id?n.variant_id.trim():"";if(!e||!o)continue;let i;try{i=Us(n.quantity)}catch{continue}if(i<1)continue;const r=Is({...n,line_id:n.line_id??As(n),product_id:e,variant_id:o,quantity:i}),a=t.findIndex(e=>e.line_id===r.line_id);a>=0?(t[a].quantity=Math.max(t[a].quantity,i),Vs(t[a])):(Vs(r),t.push(r))}return Ys(t),t},moveBasketItem:function(e,t,n,o){const i=Ws(),r=i.findIndex(n=>n.product_id===e&&n.variant_id===t);if(r<0)throw new c("Item not found in cart");const[a]=i.splice(r,1),s=As({...a,product_id:n,variant_id:o}),u=i.findIndex(e=>e.line_id===s);if(u>=0)i[u].quantity+=a.quantity,Vs(i[u]);else{const e=Is({...a,product_id:n,variant_id:o,line_id:s});Vs(e),i.push(e)}Ys(i)},getCartStats:function(){const e=Ws(),t=Ks(),n=Zs(),o=cs(Ps("cartBackup"))??[],i=e.length>0&&e.every(e=>"number"==typeof e.price_data?.unit_price),r=e.reduce((e,t)=>e+(t.price_data?.unit_price??0)*t.quantity,0);return{item_count:e.length,total_quantity:e.reduce((e,t)=>e+t.quantity,0),last_modified:n?.last_modified??0,version:n?.version??0,has_backup:o.length>0,integrity_valid:t,total_price:r,total_price_is_estimate:e.length>0&&!i}},validateCartIntegrity:Ks,quoteCart:async function(e,t){const n=function(e){const t=Pa(),n=qs(e)??Ls()??void 0;return{store_slug:t.storeSlug,items:Ws(),coupon:n}}(e),o=$s(t)??Cs()??$s(Pa().currency);return ws("/v1/storefront/cart/quote",{shop_slug:n.store_slug,cart:n.items,coupon:n.coupon,currency:o??void 0})},resolveCartLineId:function(e,t,n=Ws()){const o=n.filter(n=>n.product_id===e&&n.variant_id===t);if(0===o.length)throw new c(`No cart line found for ${e}/${t}`);return o[0].line_id},checkout:async function(e,t){const n=mu(e,t),{autoRedirect:o=!0,email:i}=n,r=hu(n),a=r.coupon,s=au(i),u=r.affiliateCode,l=uu(n),c=Ws();if(0===c.length)return{success:!1,message:"Cart is empty"};Hs();const d=Pa(),p=su(n),f=await ws(p.endpoint,{shop_slug:d.storeSlug,cart:yu(c),email:s,coupon:a,currency:l,affiliate_code:u},{retries:0,baseUrl:p.baseUrl});if(!f.success||!f.data)return cu(f.message)&&Gs(),{success:!1,message:lu(f.message)};const m=fu(f.data,d.checkoutBaseUrl);if(!m)return{success:!1,message:"Failed to create invoice"};const{invoiceId:_}=m,h=du(m.checkoutUrl,d.checkoutBaseUrl,_);if(!h)return{success:!1,message:"Failed to create invoice"};const y=pu(h,{email:s,locale:n.locale??d.locale});return o&&"undefined"!=typeof window&&window?.location&&(window.location.href=y,Gs()),{success:!0,redirectUrl:y,invoiceId:_,rewards:m.rewards}},buildCheckoutUrl:async function(e,t){const n=mu(e,t),{email:o}=n,i=hu(n),r=i.coupon,a=au(o),s=i.affiliateCode,u=uu(n),l=Ws();if(0===l.length)throw new Error("Cart is empty");const c=Pa(),d=su(n),p=await ws(d.endpoint,{shop_slug:c.storeSlug,cart:yu(l),email:a,coupon:r,currency:u,affiliate_code:s},{retries:0,baseUrl:d.baseUrl});if(!p.success||!p.data)throw cu(p.message)&&Gs(),new Error(lu(p.message));const f=fu(p.data,c.checkoutBaseUrl);if(!f)throw new Error("Failed to create invoice");const m=du(f.checkoutUrl,c.checkoutBaseUrl,f.invoiceId);if(!m)throw new Error("Failed to create invoice");return pu(m,{email:a,locale:n.locale??c.locale})},buildCheckoutUrlSync:function(){throw new Error("buildCheckoutUrlSync is deprecated. Use buildCheckoutUrl (async) instead.")},captureAffiliateFromUrl:async function(e="ref"){if("undefined"==typeof window)return null;let t=null;try{const n=new URL(window.location.href).searchParams.get(e);t=n?n.trim():null}catch{t=null}if(t=eu(t),!t)return null;if(tu(t),Ra())try{const e=await ws("/v1/storefront/affiliates/attribution",{shop_slug:Pa().storeSlug,code:t},{retries:0});return e.success&&e.data?.accepted&&e.data?.affiliate_code?(tu(e.data.affiliate_code),e.data.affiliate_code):(nu(),null)}catch{return t}return t},validateAffiliateCode:iu,applyAffiliateCode:async function(e){const t=await iu(e);return t.success&&t.data?.affiliate_code&&tu(t.data.affiliate_code),t},getAffiliateCode:ou,setAffiliateCode:tu,clearAffiliateCode:nu,validateCoupon:async function(e,t){const n=e.trim();if(!n)return{success:!1,message:"Coupon code is required"};const o={code:n},i="string"==typeof t?t:t?.productId,r="string"==typeof t?void 0:t?.variantId;if(r&&!i)return{success:!1,message:"productId is required when variantId is provided"};if(i)o.product_id=i,r&&(o.variant_id=r);else{const e=Ws();if(0===e.length)return{success:!1,message:"Cart is empty"};const t=await async function(){const e=qa();if(e)return e;const t=await ks();return t.success&&t.data?.id?t.data.id:null}();if(!t)return{success:!1,message:"Failed to resolve store"};o.cart=JSON.stringify({shop_id:t,products:e.map(e=>({uniqid:e.product_id,quantity:e.quantity,variant_id:e.variant_id,price_variant_id:e.price_variant_id,addons:e.addons?.map(e=>({id:e.id,quantity:e.quantity??1}))}))})}return await ws("/v1/storefront/coupons/check",o)},getShopReviews:async function(){const e=[],t=new Set;let n=null;for(;;){const o=await wu(n);if(!o.success||!o.data)return{success:!1,message:o.message,data:[]};e.push(...(o.data.feedback??[]).map((t,n)=>vu(t,e.length+n)));const i=o.data.pagination;if(!i?.has_more||!i.next_cursor)break;if(t.has(i.next_cursor))break;t.add(i.next_cursor),n=i.next_cursor}return{success:!0,data:e}},searchProducts:async function(e,t){if(!Ra())return{success:!1,message:"SDK not initialized"};const n=e.trim();if(!n)return{success:!0,data:[]};const o=await zs();return o.success&&o.data?{success:!0,data:is(o.data.products??[],o.data.groups??[],n,{hideOutOfStock:t?.hideOutOfStock,maxResults:t?.maxResults})}:{success:!1,message:o.message??"Failed to fetch storefront catalog"}},searchCatalogItems:async function(e,t){if(!Ra())return{success:!1,message:"SDK not initialized"};const n=e.trim();if(!n)return{success:!0,data:[]};const o=await zs();return o.success&&o.data?{success:!0,data:os(o.data.products??[],o.data.groups??[],n,{hideOutOfStock:t?.hideOutOfStock,maxResults:t?.maxResults})}:{success:!1,message:o.message??"Failed to fetch storefront catalog"}},getInvoice:async function(e){const t=Su(e);if(!t)return{success:!1,message:"Invoice ID is required"};const n=await vs(us("/v1/storefront/invoices/unique/:invoiceId",{invoiceId:t}));return n.success?n.data?.invoice?{success:!0,data:n.data.invoice}:{success:!1,message:"Invalid invoice response"}:{success:!1,message:n.message}},getInvoiceStatus:async function(e){const t=Su(e);if(!t)return{success:!1,message:"Invoice ID is required"};const n=await vs(us("/v1/storefront/invoices/status/:invoiceId",{invoiceId:t}));return n.success?n.data?.invoice?.status?{success:!0,data:{status:n.data.invoice.status}}:{success:!1,message:"Invalid invoice status response"}:{success:!1,message:n.message}},getPages:async function(){const e=Pa(),t=await vs(us("/v1/storefront/shops/name/:storeSlug/pages",{storeSlug:e.storeSlug}),{cache:{key:`pages:${e.storeSlug}`,ttl:ku,staleWhileRevalidate:!0}});return t.success&&t.data?{success:!0,data:t.data.pages}:{success:!1,message:t.message}},getPage:async function(e){const t=Pa(),n=await vs(us("/v1/storefront/shops/name/:storeSlug/pages/:slug",{storeSlug:t.storeSlug,slug:e}),{cache:{key:`page:${t.storeSlug}:${e}`,ttl:ku,staleWhileRevalidate:!0}});return n.success&&n.data?{success:!0,data:n.data.page}:{success:!1,message:n.message}},getMenus:Ou,getMenu:Eu,getMenuBySlot:Tu,getMenuByTitle:xu,getMenuSlotTitles:Au,trackPageView:Nu,getStorefrontOnlineUsers:Ru,getStorefrontRecentSales:Pu,touchStorefrontPresence:Uu,createFormatter:qu,formatPrice:function(e,t,n){const o="string"==typeof e?parseFloat(e):e;return Number.isNaN(o)?qu(t,n).format(0):qu(t,n).format(o)},clearCache:i,invalidateCache:function(e){for(const n of t.keys())(n===e||n.startsWith(e))&&t.delete(n)},getCacheStats:function(){return{hits:o.hits,misses:o.misses,pendingRequests:n.size,entries:t.size}},fetchPublishedBuilderSettings:Zu,fetchPublishedThemeSettings:Lu,resolveDefaults:Mu,mergeSettings:Fu};if("undefined"!=typeof window){const e=window;e.shoppex?.isInitialized?.()||(e.shoppex=Bu)}e.CartError=c,e.NetworkError=l,e.NotInitializedError=u,e.ShoppexError=s,e.ValidationError=class e extends s{constructor(t,n){super(t,"VALIDATION_ERROR"),this.name="ValidationError",this.invalidFields=n,Object.setPrototypeOf(this,e.prototype)}},e.buildStorefrontContactMessage=as,e.buildStorefrontCustomFieldPayload=function(e,t){const n={};return e.forEach(e=>{const o=t[e.name]??e.defaultValue??"";if("checkbox"===e.type)return void(ja(o)&&(n[e.name]="true"));const i=o.trim();i.length>0&&(n[e.name]=i)}),n},e.buildStorefrontProductLookup=Wa,e.collectProductSearchHaystack=Qa,e.computeCartLineId=As,e.default=Bu,e.shoppex=Bu,e.ensureCartLineId=Is,e.fetchPublishedBuilderSettings=Zu,e.fetchPublishedThemeSettings=Lu,e.filterProductsBySearchQuery=function(e,t,n){const o=Ka(t);if(!o)return[];let i=e.filter(e=>es(e,o));return n?.hideOutOfStock&&(i=i.filter(e=>Ja(e))),null!=n?.maxResults?i.slice(0,n.maxResults):i},e.getMenu=Eu,e.getMenuBySlot=Tu,e.getMenuByTitle=xu,e.getMenuSlotTitles=Au,e.getMenus=Ou,e.getMergedStorefrontProducts=Ga,e.getStorefrontGroupProducts=Va,e.getStorefrontOnlineUsers=Ru,e.getStorefrontRecentSales=Pu,e.groupMatchesSearchQuery=ts,e.isProductInStock=Ja,e.isProductOutOfStock=Ya,e.isStorefrontCheckboxCustomFieldValueChecked=ja,e.isVariantOutOfStock=function(e){return 0===Fa(e)},e.mergeSettings=Fu,e.normalizeSearchQuery=Ka,e.normalizeStorefrontCustomFields=function(e){return function(e){if(Array.isArray(e))return e;if("string"==typeof e){try{const t=JSON.parse(e);if(Array.isArray(t))return t;if(t&&"object"==typeof t){const e=t.custom_fields??t.customFields;return Array.isArray(e)?e:[]}}catch{return[]}return[]}if(e&&"object"==typeof e){const t=e.custom_fields??e.customFields;return Array.isArray(t)?t:[]}return[]}(e).filter(e=>!!e&&"object"==typeof e&&!Array.isArray(e)).map(e=>{const t="string"==typeof e.type?e.type.trim().toLowerCase():"text",n=t.length>0?t:"text",o=[e.default_value,e.default,e.value].find(e=>"string"==typeof e&&e.trim().length>0);return{name:"string"==typeof e.name?e.name.trim():"",type:n,required:!0===e.required||"true"===e.required||1===e.required||"1"===e.required,defaultValue:"string"==typeof o?o:"",placeholder:"string"==typeof e.placeholder?e.placeholder:"",regex:"string"==typeof e.regex?e.regex:void 0}}).filter(e=>e.name.length>0&&"hidden"!==e.type)},e.productMatchesSearchQuery=es,e.resolveDefaults=Mu,e.resolveDisplayStock=Ba,e.resolveStorefrontApiBaseUrl=rs,e.resolveStorefrontSocialLinks=function(e){return{discord:e?.discord_link??e?.social?.discord??null,telegram:e?.telegram_link??e?.social?.telegram??null}},e.resolveVariantStockValue=Fa,e.searchMergedStorefrontCatalog=is,e.searchMergedStorefrontCatalogItems=os,e.stripHtmlFromText=Ha,e.submitStorefrontContactTicket=async function(e){const t=e.shopSlug.trim();if(!t)throw new Error("Store data is not ready yet. Please try again in a moment.");const n=e.email.trim().toLowerCase(),o=e.title?.trim()??"",i=o.length>=2?o.slice(0,30):"Contact Request",r=as({name:e.name,message:e.message}),a=e.invoiceId?.trim()||void 0,s=rs({apiBaseUrl:e.apiBaseUrl}),u=await fetch(`${s}/v1/storefront/shops/name/${encodeURIComponent(t)}/tickets`,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({email:n,title:i,message:r,...a?{invoice_id:a}:{}})}),l=await u.json().catch(()=>null);if(!u.ok)throw new Error(l?.message||l?.error||"Failed to send your message.");const c=l?.data?.uniqid;if(!c)throw new Error("Ticket created, but the response was incomplete.");return{uniqid:c}},e.touchStorefrontPresence=Uu,e.trackPageView=Nu,e.validateStorefrontCustomFieldValue=function(e,t){if("checkbox"===e.type)return e.required&&!ja(t)?`${e.name} is required.`:null;const n=t.trim();if(e.required&&!n)return`${e.name} is required.`;if(e.regex&&n)try{if(!new RegExp(e.regex).test(n))return`${e.name} has an invalid format.`}catch{return null}return null}});
|
|
2
2
|
//# sourceMappingURL=shoppex.umd.js.map
|