@shoppexio/storefront 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,3 @@
1
- var e=class e extends Error{constructor(t,n,r){super(t),this.name="ShoppexError",this.code=n,this.statusCode=r,Object.setPrototypeOf(this,e.prototype)}},t=class t extends e{constructor(){super("SDK not initialized. Call shoppex.init() first.","NOT_INITIALIZED"),this.name="NotInitializedError",Object.setPrototypeOf(this,t.prototype)}},n=class t extends e{constructor(e,n){super(e,"NETWORK_ERROR",n),this.name="NetworkError",Object.setPrototypeOf(this,t.prototype)}},r=class t extends e{constructor(e,n){super(e,"VALIDATION_ERROR"),this.name="ValidationError",this.invalidFields=n,Object.setPrototypeOf(this,t.prototype)}},i=class t extends e{constructor(e){super(e,"BASKET_ERROR"),this.name="CartError",Object.setPrototypeOf(this,t.prototype)}},o=/\{[^{}]+\}/g;function a(e){let{baseUrl:t="",Request:n=globalThis.Request,fetch:r=globalThis.fetch,querySerializer:i,bodySerializer:o,pathSerializer:a,headers:s,requestInitExt:u,...c}={...e};u="object"==typeof process&&Number.parseInt(process?.versions?.node?.substring(0,2))>=18&&process.versions.undici?u:void 0,t=m(t);const h=[];async function _(e,_){const{baseUrl:g,fetch:y=r,Request:v=n,headers:b,params:w={},parseAs:S="json",querySerializer:k,bodySerializer:z=o??p,pathSerializer:O,body:x,middleware:E=[],...$}=_||{};let T=t;g&&(T=m(g)??t);let A="function"==typeof i?i:l(i);k&&(A="function"==typeof k?k:l({..."object"==typeof i?i:{},...k}));const N=O||a||d,I=void 0===x?void 0:z(x,f(s,b,w.header)),C=f(void 0===I||I instanceof FormData?{}:{"Content-Type":"application/json"},s,b,w.header),P=[...h,...E],R={redirect:"follow",...c,...$,body:I,headers:C};let U,j,q,Z=new v(function(e,t){let n=`${t.baseUrl}${e}`;t.params?.path&&(n=t.pathSerializer(n,t.params.path));let r=t.querySerializer(t.params.query??{});r.startsWith("?")&&(r=r.substring(1));r&&(n+=`?${r}`);return n}(e,{baseUrl:T,params:w,querySerializer:A,pathSerializer:N}),R);for(const t in $)t in Z||(Z[t]=$[t]);if(P.length){U=Math.random().toString(36).slice(2,11),j=Object.freeze({baseUrl:T,fetch:y,parseAs:S,querySerializer:A,bodySerializer:z,pathSerializer:N});for(const t of P)if(t&&"object"==typeof t&&"function"==typeof t.onRequest){const n=await t.onRequest({request:Z,schemaPath:e,params:w,options:j,id:U});if(n){if(!(n instanceof v)){if(n instanceof Response){q=n;break}throw new Error("onRequest: must return new Request() or Response() when modifying the request")}Z=n}}}if(!q){try{q=await y(Z,u)}catch(M){let t=M;if(P.length)for(let n=P.length-1;n>=0;n--){const r=P[n];if(r&&"object"==typeof r&&"function"==typeof r.onError){const n=await r.onError({request:Z,error:t,schemaPath:e,params:w,options:j,id:U});if(n){if(n instanceof Response){t=void 0,q=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:Z,response:q,schemaPath:e,params:w,options:j,id:U});if(t){if(!(t instanceof Response))throw new Error("onResponse: must return new Response() when modifying the response");q=t}}}}const D=q.headers.get("Content-Length");if(204===q.status||"HEAD"===Z.method||"0"===D&&!q.headers.get("Transfer-Encoding")?.includes("chunked"))return q.ok?{data:void 0,response:q}:{error:void 0,response:q};if(q.ok){const e=async()=>{if("stream"===S)return q.body;if("json"===S&&!D){const e=await q.text();return e?JSON.parse(e):void 0}return await q[S]()};return{data:await e(),response:q}}let L=await q.text();try{L=JSON.parse(L)}catch{}return{error:L,response:q}}return{request:(e,t,n)=>_(t,{...n,method:e.toUpperCase()}),GET:(e,t)=>_(e,{...t,method:"GET"}),PUT:(e,t)=>_(e,{...t,method:"PUT"}),POST:(e,t)=>_(e,{...t,method:"POST"}),DELETE:(e,t)=>_(e,{...t,method:"DELETE"}),OPTIONS:(e,t)=>_(e,{...t,method:"OPTIONS"}),HEAD:(e,t)=>_(e,{...t,method:"HEAD"}),PATCH:(e,t)=>_(e,{...t,method:"PATCH"}),TRACE:(e,t)=>_(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()`");h.push(t)}},eject(...e){for(const t of e){const e=h.indexOf(t);-1!==e&&h.splice(e,1)}}}}function s(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 u(e,t,n){if(!t||"object"!=typeof t)return"";const r=[],i={simple:",",label:".",matrix:";"}[n.style]||"&";if("deepObject"!==n.style&&!1===n.explode){for(const e in t)r.push(e,!0===n.allowReserved?t[e]:encodeURIComponent(t[e]));const i=r.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;r.push(s(i,t[a],n))}const o=r.join(i);return"label"===n.style||"matrix"===n.style?`${i}${o}`:o}function c(e,t,n){if(!Array.isArray(t))return"";if(!1===n.explode){const r={form:",",spaceDelimited:"%20",pipeDelimited:"|"}[n.style]||",",i=(!0===n.allowReserved?t:t.map(e=>encodeURIComponent(e))).join(r);switch(n.style){case"simple":return i;case"label":return`.${i}`;case"matrix":return`;${e}=${i}`;default:return`${e}=${i}`}}const r={simple:",",label:".",matrix:";"}[n.style]||"&",i=[];for(const o of t)"simple"===n.style||"label"===n.style?i.push(!0===n.allowReserved?o:encodeURIComponent(o)):i.push(s(e,o,n));return"label"===n.style||"matrix"===n.style?`${r}${i.join(r)}`:i.join(r)}function l(e){return function(t){const n=[];if(t&&"object"==typeof t)for(const r in t){const i=t[r];if(null!=i)if(Array.isArray(i)){if(0===i.length)continue;n.push(c(r,i,{style:"form",explode:!0,...e?.array,allowReserved:e?.allowReserved||!1}))}else"object"!=typeof i?n.push(s(r,i,e)):n.push(u(r,i,{style:"deepObject",explode:!0,...e?.object,allowReserved:e?.allowReserved||!1}))}return n.join("&")}}function d(e,t){let n=e;for(const r of e.match(o)??[]){let e=r.substring(1,r.length-1),i=!1,o="simple";if(e.endsWith("*")&&(i=!0,e=e.substring(0,e.length-1)),e.startsWith(".")?(o="label",e=e.substring(1)):e.startsWith(";")&&(o="matrix",e=e.substring(1)),!t||void 0===t[e]||null===t[e])continue;const a=t[e];Array.isArray(a)?n=n.replace(r,c(e,a,{style:o,explode:i})):n="object"!=typeof a?"matrix"!==o?n.replace(r,"label"===o?`.${encodeURIComponent(a)}`:encodeURIComponent(a)):n.replace(r,`;${s(e,a)}`):n.replace(r,u(e,a,{style:o,explode:i}))}return n}function p(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 f(...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,r]of e)if(null===r)t.delete(n);else if(Array.isArray(r))for(const e of r)t.append(n,e);else void 0!==r&&t.set(n,r)}return t}function m(e){return e.endsWith("/")?e.substring(0,e.length-1):e}var h={header:{title:"Header",aliases:["Header Menu"]},footer:{title:"Footer",aliases:["Footer Links","Legal Links"]}};var _;Object.keys(h);function g(e,t,n){function r(n,r){if(n._zod||Object.defineProperty(n,"_zod",{value:{def:r,constr:a,traits:/* @__PURE__ */new Set},enumerable:!1}),n._zod.traits.has(e))return;n._zod.traits.add(e),t(n,r);const i=a.prototype,o=Object.keys(i);for(let e=0;e<o.length;e++){const t=o[e];t in n||(n[t]=i[t].bind(n))}}const i=n?.Parent??Object;class o extends i{}function a(e){var t;const i=n?.Parent?new o:this;r(i,e),(t=i._zod).deferred??(t.deferred=[]);for(const n of i._zod.deferred)n();return i}return Object.defineProperty(o,"name",{value:e}),Object.defineProperty(a,"init",{value:r}),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 y=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},v=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}};(_=globalThis).__zod_globalConfig??(_.__zod_globalConfig={});var b=globalThis.__zod_globalConfig;function w(e){return e&&Object.assign(b,e),b}function S(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 k(e,t){return"bigint"==typeof t?t.toString():t}function z(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function O(e){return null==e}function x(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}var E=/* @__PURE__*/Symbol("evaluating");function $(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==E)return void 0===r&&(r=E,r=n()),r},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function T(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function A(...e){const t={};for(const n of e){const e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}function N(e){return JSON.stringify(e)}var I="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function C(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}var P=/* @__PURE__*/z(()=>{if(b.jitless)return!1;if("undefined"!=typeof navigator&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch(e){return!1}});function R(e){if(!1===C(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!==C(n)&&!1!==Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")}function U(e){return R(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}var j=/* @__PURE__*/new Set(["string","number","symbol"]);function q(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Z(e,t,n){const r=new e._zod.constr(t??e._zod.def);return t&&!n?.parent||(r._zod.parent=e),r}function D(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 L={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 M(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 F(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 B(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function Y(e){return"string"==typeof e?e:e?.message}function J(e,t,n){const r=e.message?e.message:Y(e.inst?._zod.def?.error?.(e))??Y(t?.error?.(e))??Y(n.customError?.(e))??Y(n.localeError?.(e))??"Invalid input",{inst:i,continue:o,input:a,...s}=e;return s.path??(s.path=[]),s.message=r,t?.reportInput&&(s.input=a),s}function W(e){return Array.isArray(e)?"array":"string"==typeof e?"string":"unknown"}function V(...e){const[t,n,r]=e;return"string"==typeof t?{message:t,code:"custom",input:n,inst:r}:{...t}}var G=(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,k,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},H=g("$ZodError",G),K=g("$ZodError",G,{Parent:Error});var X=e=>(t,n,r,i)=>{const o=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},o);if(a instanceof Promise)throw new y;if(a.issues.length){const t=new(i?.Err??e)(a.issues.map(e=>J(e,o,w())));throw I(t,i?.callee),t}return a.value},Q=e=>async(t,n,r,i)=>{const o=r?{...r,async:!0}:{async:!0};let a=t._zod.run({value:n,issues:[]},o);if(a instanceof Promise&&(a=await a),a.issues.length){const t=new(i?.Err??e)(a.issues.map(e=>J(e,o,w())));throw I(t,i?.callee),t}return a.value},ee=e=>(t,n,r)=>{const i=r?{...r,async:!1}:{async:!1},o=t._zod.run({value:n,issues:[]},i);if(o instanceof Promise)throw new y;return o.issues.length?{success:!1,error:new(e??H)(o.issues.map(e=>J(e,i,w())))}:{success:!0,data:o.value}},te=/* @__PURE__*/ee(K),ne=e=>async(t,n,r)=>{const i=r?{...r,async:!0}:{async:!0};let o=t._zod.run({value:n,issues:[]},i);return o instanceof Promise&&(o=await o),o.issues.length?{success:!1,error:new e(o.issues.map(e=>J(e,i,w())))}:{success:!0,data:o.value}},re=/* @__PURE__*/ne(K),ie=e=>(t,n,r)=>{const i=r?{...r,direction:"backward"}:{direction:"backward"};return X(e)(t,n,i)},oe=e=>(t,n,r)=>X(e)(t,n,r),ae=e=>async(t,n,r)=>{const i=r?{...r,direction:"backward"}:{direction:"backward"};return Q(e)(t,n,i)},se=e=>async(t,n,r)=>Q(e)(t,n,r),ue=e=>(t,n,r)=>{const i=r?{...r,direction:"backward"}:{direction:"backward"};return ee(e)(t,n,i)},ce=e=>(t,n,r)=>ee(e)(t,n,r),le=e=>async(t,n,r)=>{const i=r?{...r,direction:"backward"}:{direction:"backward"};return ne(e)(t,n,i)},de=e=>async(t,n,r)=>ne(e)(t,n,r),pe=/^[cC][0-9a-z]{6,}$/,fe=/^[0-9a-z]+$/,me=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,he=/^[0-9a-vA-V]{20}$/,_e=/^[A-Za-z0-9]{27}$/,ge=/^[a-zA-Z0-9_-]{21}$/,ye=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,ve=/^([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})$/,be=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)$/,we=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var Se=/^(?:(?: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])$/,ke=/^(([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}|:))$/,ze=/^((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])$/,Oe=/^(([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])$/,xe=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Ee=/^[A-Za-z0-9_-]*$/,$e=/^https?$/,Te=/^\+[1-9]\d{6,14}$/,Ae="(?:(?:\\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])))",Ne=/*@__PURE__*/new RegExp(`^${Ae}$`);function Ie(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 Ce=/^-?\d+$/,Pe=/^-?\d+(?:\.\d+)?$/,Re=/^(?:true|false)$/i,Ue=/^[^A-Z]*$/,je=/^[^a-z]*$/,qe=/*@__PURE__*/g("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),Ze={number:"number",bigint:"bigint",object:"date"},De=/*@__PURE__*/g("$ZodCheckLessThan",(e,t)=>{qe.init(e,t);const n=Ze[typeof t.value];e._zod.onattach.push(e=>{const n=e._zod.bag,r=(t.inclusive?n.maximum:n.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<r&&(t.inclusive?n.maximum=t.value:n.exclusiveMaximum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value<=t.value:r.value<t.value)||r.issues.push({origin:n,code:"too_big",maximum:"object"==typeof t.value?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Le=/*@__PURE__*/g("$ZodCheckGreaterThan",(e,t)=>{qe.init(e,t);const n=Ze[typeof t.value];e._zod.onattach.push(e=>{const n=e._zod.bag,r=(t.inclusive?n.minimum:n.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>r&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:"too_small",minimum:"object"==typeof t.value?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Me=/*@__PURE__*/g("$ZodCheckMultipleOf",(e,t)=>{qe.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,r=Math.round(n),i=Number.EPSILON*Math.max(Math.abs(n),1);return Math.abs(n-r)<i?0:n-r}(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})}}),Fe=/*@__PURE__*/g("$ZodCheckNumberFormat",(e,t)=>{qe.init(e,t),t.format=t.format||"float64";const n=t.format?.includes("int"),r=n?"int":"number",[i,o]=L[t.format];e._zod.onattach.push(e=>{const r=e._zod.bag;r.format=t.format,r.minimum=i,r.maximum=o,n&&(r.pattern=Ce)}),e._zod.check=a=>{const s=a.value;if(n){if(!Number.isInteger(s))return void a.issues.push({expected:r,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:r,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:r,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>o&&a.issues.push({origin:"number",input:s,code:"too_big",maximum:o,inclusive:!0,inst:e,continue:!t.abort})}}),Be=/*@__PURE__*/g("$ZodCheckMaxLength",(e,t)=>{var n;qe.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!O(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 r=n.value;if(r.length<=t.maximum)return;const i=W(r);n.issues.push({origin:i,code:"too_big",maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Ye=/*@__PURE__*/g("$ZodCheckMinLength",(e,t)=>{var n;qe.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!O(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 r=n.value;if(r.length>=t.minimum)return;const i=W(r);n.issues.push({origin:i,code:"too_small",minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Je=/*@__PURE__*/g("$ZodCheckLengthEquals",(e,t)=>{var n;qe.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!O(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 r=n.value,i=r.length;if(i===t.length)return;const o=W(r),a=i>t.length;n.issues.push({origin:o,...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})}}),We=/*@__PURE__*/g("$ZodCheckStringFormat",(e,t)=>{var n,r;qe.init(e,t),e._zod.onattach.push(e=>{const n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??(n.patterns=/* @__PURE__ */new Set),n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,t.pattern.test(n.value)||n.issues.push({origin:"string",code:"invalid_format",format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),Ve=/*@__PURE__*/g("$ZodCheckRegex",(e,t)=>{We.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})}}),Ge=/*@__PURE__*/g("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Ue),We.init(e,t)}),He=/*@__PURE__*/g("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=je),We.init(e,t)}),Ke=/*@__PURE__*/g("$ZodCheckIncludes",(e,t)=>{qe.init(e,t);const n=q(t.includes),r=new RegExp("number"==typeof t.position?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=/* @__PURE__ */new Set),t.patterns.add(r)}),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})}}),Xe=/*@__PURE__*/g("$ZodCheckStartsWith",(e,t)=>{qe.init(e,t);const n=new RegExp(`^${q(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=/* @__PURE__ */new Set),t.patterns.add(n)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),Qe=/*@__PURE__*/g("$ZodCheckEndsWith",(e,t)=>{qe.init(e,t);const n=new RegExp(`.*${q(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=/* @__PURE__ */new Set),t.patterns.add(n)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),et=/*@__PURE__*/g("$ZodCheckOverwrite",(e,t)=>{qe.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}),tt=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)),r=t.map(e=>e.slice(n)).map(e=>" ".repeat(2*this.indent)+e);for(const i of r)this.content.push(i)}compile(){const e=Function,t=this?.args;return new e(...t,[...(this?.content??[""]).map(e=>` ${e}`)].join("\n"))}},nt={major:4,minor:4,patch:3},rt=/*@__PURE__*/g("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=nt;const r=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&r.unshift(e);for(const i of r)for(const t of i._zod.onattach)t(e);if(0===r.length)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const t=(e,t,n)=>{let r,i=M(e);for(const o of t){if(o._zod.def.when){if(F(e))continue;if(!o._zod.def.when(e))continue}else if(i)continue;const t=e.issues.length,a=o._zod.check(e);if(a instanceof Promise&&!1===n?.async)throw new y;if(r||a instanceof Promise)r=(r??Promise.resolve()).then(async()=>{await a,e.issues.length!==t&&(i||(i=M(e,t)))});else{if(e.issues.length===t)continue;i||(i=M(e,t))}}return r?r.then(()=>e):e},n=(n,i,o)=>{if(M(n))return n.aborted=!0,n;const a=t(i,r,o);if(a instanceof Promise){if(!1===o.async)throw new y;return a.then(t=>e._zod.parse(t,o))}return e._zod.parse(a,o)};e._zod.run=(i,o)=>{if(o.skipChecks)return e._zod.parse(i,o);if("backward"===o.direction){const t=e._zod.parse({value:i.value,issues:[]},{...o,skipChecks:!0});return t instanceof Promise?t.then(e=>n(e,i,o)):n(t,i,o)}const a=e._zod.parse(i,o);if(a instanceof Promise){if(!1===o.async)throw new y;return a.then(e=>t(e,r,o))}return t(a,r,o)}}$(e,"~standard",()=>({validate:t=>{try{const n=te(e,t);return n.success?{value:n.data}:{issues:n.error?.issues}}catch(n){return re(e,t).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:"zod",version:1}))}),it=/*@__PURE__*/g("$ZodString",(e,t)=>{var n;rt.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,r)=>{if(t.coerce)try{n.value=String(n.value)}catch(r){}return"string"==typeof n.value||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),ot=/*@__PURE__*/g("$ZodStringFormat",(e,t)=>{We.init(e,t),it.init(e,t)}),at=/*@__PURE__*/g("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=ve),ot.init(e,t)}),st=/*@__PURE__*/g("$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=be(e))}else t.pattern??(t.pattern=be());ot.init(e,t)}),ut=/*@__PURE__*/g("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=we),ot.init(e,t)}),ct=/*@__PURE__*/g("$ZodURL",(e,t)=>{ot.init(e,t),e._zod.check=n=>{try{const r=n.value.trim();if(!t.normalize&&t.protocol?.source===$e.source&&!/^https?:\/\//i.test(r))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(r);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=r)}catch(r){n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),lt=/*@__PURE__*/g("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),ot.init(e,t)}),dt=/*@__PURE__*/g("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=ge),ot.init(e,t)}),pt=/*@__PURE__*/g("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=pe),ot.init(e,t)}),ft=/*@__PURE__*/g("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=fe),ot.init(e,t)}),mt=/*@__PURE__*/g("$ZodULID",(e,t)=>{t.pattern??(t.pattern=me),ot.init(e,t)}),ht=/*@__PURE__*/g("$ZodXID",(e,t)=>{t.pattern??(t.pattern=he),ot.init(e,t)}),_t=/*@__PURE__*/g("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=_e),ot.init(e,t)}),gt=/*@__PURE__*/g("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=function(e){const t=Ie({precision:e.precision}),n=["Z"];e.local&&n.push(""),e.offset&&n.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const r=`${t}(?:${n.join("|")})`;return new RegExp(`^${Ae}T(?:${r})$`)}(t)),ot.init(e,t)}),yt=/*@__PURE__*/g("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=Ne),ot.init(e,t)}),vt=/*@__PURE__*/g("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=new RegExp(`^${Ie(t)}$`)),ot.init(e,t)}),bt=/*@__PURE__*/g("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=ye),ot.init(e,t)}),wt=/*@__PURE__*/g("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=Se),ot.init(e,t),e._zod.bag.format="ipv4"}),St=/*@__PURE__*/g("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=ke),ot.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})}}}),kt=/*@__PURE__*/g("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=ze),ot.init(e,t)}),zt=/*@__PURE__*/g("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=Oe),ot.init(e,t),e._zod.check=n=>{const r=n.value.split("/");try{if(2!==r.length)throw new Error;const[e,t]=r;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 Ot(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 xt=/*@__PURE__*/g("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=xe),ot.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=n=>{Ot(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});var Et=/*@__PURE__*/g("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=Ee),ot.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=n=>{(function(e){if(!Ee.test(e))return!1;const t=e.replace(/[-_]/g,e=>"-"===e?"+":"/");return Ot(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})}}),$t=/*@__PURE__*/g("$ZodE164",(e,t)=>{t.pattern??(t.pattern=Te),ot.init(e,t)});var Tt=/*@__PURE__*/g("$ZodJWT",(e,t)=>{ot.init(e,t),e._zod.check=n=>{(function(e,t=null){try{const n=e.split(".");if(3!==n.length)return!1;const[r]=n;if(!r)return!1;const i=JSON.parse(atob(r));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})}}),At=/*@__PURE__*/g("$ZodNumber",(e,t)=>{rt.init(e,t),e._zod.pattern=e._zod.bag.pattern??Pe,e._zod.parse=(n,r)=>{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 o="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,...o?{received:o}:{}}),n}}),Nt=/*@__PURE__*/g("$ZodNumberFormat",(e,t)=>{Fe.init(e,t),At.init(e,t)}),It=/*@__PURE__*/g("$ZodBoolean",(e,t)=>{rt.init(e,t),e._zod.pattern=Re,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Boolean(n.value)}catch(o){}const i=n.value;return"boolean"==typeof i||n.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:e}),n}}),Ct=/*@__PURE__*/g("$ZodUnknown",(e,t)=>{rt.init(e,t),e._zod.parse=e=>e}),Pt=/*@__PURE__*/g("$ZodNever",(e,t)=>{rt.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:"never",code:"invalid_type",input:t.value,inst:e}),t)});function Rt(e,t,n){e.issues.length&&t.issues.push(...B(n,e.issues)),t.value[n]=e.value}var Ut=/*@__PURE__*/g("$ZodArray",(e,t)=>{rt.init(e,t),e._zod.parse=(n,r)=>{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 o=[];for(let e=0;e<i.length;e++){const a=i[e],s=t.element._zod.run({value:a,issues:[]},r);s instanceof Promise?o.push(s.then(t=>Rt(t,n,e))):Rt(s,n,e)}return o.length?Promise.all(o).then(()=>n):n}});function jt(e,t,n,r,i,o){const a=n in r;if(e.issues.length){if(i&&o&&!a)return;t.issues.push(...B(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 qt(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=(r=e.shape,Object.keys(r).filter(e=>"optional"===r[e]._zod.optin&&"optional"===r[e]._zod.optout));var r;return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function Zt(e,t,n,r,i,o){const a=[],s=i.keySet,u=i.catchall._zod,c=u.def.type,l="optional"===u.optin,d="optional"===u.optout;for(const p in t){if("__proto__"===p)continue;if(s.has(p))continue;if("never"===c){a.push(p);continue}const i=u.run({value:t[p],issues:[]},r);i instanceof Promise?e.push(i.then(e=>jt(e,n,p,t,l,d))):jt(i,n,p,t,l,d)}return a.length&&n.issues.push({code:"unrecognized_keys",keys:a,input:t,inst:o}),e.length?Promise.all(e).then(()=>n):n}var Dt=/*@__PURE__*/g("$ZodObject",(e,t)=>{if(rt.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=z(()=>qt(t));$(e._zod,"propValues",()=>{const e=t.shape,n={};for(const t in e){const r=e[t]._zod;if(r.values){n[t]??(n[t]=/* @__PURE__ */new Set);for(const e of r.values)n[t].add(e)}}return n});const r=C,i=t.catchall;let o;e._zod.parse=(t,a)=>{o??(o=n.value);const s=t.value;if(!r(s))return t.issues.push({expected:"object",code:"invalid_type",input:s,inst:e}),t;t.value={};const u=[],c=o.shape;for(const e of o.keys){const n=c[e],r="optional"===n._zod.optin,i="optional"===n._zod.optout,o=n._zod.run({value:s[e],issues:[]},a);o instanceof Promise?u.push(o.then(n=>jt(n,t,e,s,r,i))):jt(o,t,e,s,r,i)}return i?Zt(u,s,t,a,n.value,e):u.length?Promise.all(u).then(()=>t):t}}),Lt=/*@__PURE__*/g("$ZodObjectJIT",(e,t)=>{Dt.init(e,t);const n=e._zod.parse,r=z(()=>qt(t));let i;const o=C,a=!b.jitless,s=a&&P.value,u=t.catchall;let c;e._zod.parse=(l,d)=>{c??(c=r.value);const p=l.value;return o(p)?a&&s&&!1===d?.async&&!0!==d.jitless?(i||(i=(e=>{const t=new tt(["shape","payload","ctx"]),n=r.value,i=e=>{const t=N(e);return`shape[${t}]._zod.run({ value: input[${t}], issues: [] }, ctx)`};t.write("const input = payload.value;");const o=Object.create(null);let a=0;for(const r of n.keys)o[r]="key_"+a++;t.write("const newResult = {};");for(const r of n.keys){const n=o[r],a=N(r),s=e[r],u="optional"===s?._zod?.optin,c="optional"===s?._zod?.optout;t.write(`const ${n} = ${i(r)};`),u&&c?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)),l=i(l,d),u?Zt([],p,l,d,c,e):l):n(l,d):(l.issues.push({expected:"object",code:"invalid_type",input:p,inst:e}),l)}});function Mt(e,t,n,r){for(const o of e)if(0===o.issues.length)return t.value=o.value,t;const i=e.filter(e=>!M(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=>J(e,r,w())))}),t)}var Ft=/*@__PURE__*/g("$ZodUnion",(e,t)=>{rt.init(e,t),$(e._zod,"optin",()=>t.options.some(e=>"optional"===e._zod.optin)?"optional":void 0),$(e._zod,"optout",()=>t.options.some(e=>"optional"===e._zod.optout)?"optional":void 0),$(e._zod,"values",()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),$(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=>x(e.source)).join("|")})$`)}});const n=1===t.options.length?t.options[0]._zod.run:null;e._zod.parse=(r,i)=>{if(n)return n(r,i);let o=!1;const a=[];for(const e of t.options){const t=e._zod.run({value:r.value,issues:[]},i);if(t instanceof Promise)a.push(t),o=!0;else{if(0===t.issues.length)return t;a.push(t)}}return o?Promise.all(a).then(t=>Mt(t,r,e,i)):Mt(a,r,e,i)}}),Bt=/*@__PURE__*/g("$ZodDiscriminatedUnion",(e,t)=>{t.inclusive=!1,Ft.init(e,t);const n=e._zod.parse;$(e._zod,"propValues",()=>{const e={};for(const n of t.options){const r=n._zod.propValues;if(!r||0===Object.keys(r).length)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(n)}"`);for(const[t,n]of Object.entries(r)){e[t]||(e[t]=/* @__PURE__ */new Set);for(const r of n)e[t].add(r)}}return e});const r=z(()=>{const e=t.options,n=/* @__PURE__ */new Map;for(const r of e){const e=r._zod.propValues?.[t.discriminator];if(!e||0===e.size)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(r)}"`);for(const t of e){if(n.has(t))throw new Error(`Duplicate discriminator value "${String(t)}"`);n.set(t,r)}}return n});e._zod.parse=(i,o)=>{const a=i.value;if(!C(a))return i.issues.push({code:"invalid_type",expected:"object",input:a,inst:e}),i;const s=r.value.get(a?.[t.discriminator]);return s?s._zod.run(i,o):t.unionFallback||"backward"===o.direction?n(i,o):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:t.discriminator,options:Array.from(r.value.keys()),input:a,path:[t.discriminator],inst:e}),i)}}),Yt=/*@__PURE__*/g("$ZodIntersection",(e,t)=>{rt.init(e,t),e._zod.parse=(e,n)=>{const r=e.value,i=t.left._zod.run({value:r,issues:[]},n),o=t.right._zod.run({value:r,issues:[]},n);return i instanceof Promise||o instanceof Promise?Promise.all([i,o]).then(([t,n])=>Wt(e,t,n)):Wt(e,i,o)}});function Jt(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(R(e)&&R(t)){const n=Object.keys(t),r=Object.keys(e).filter(e=>-1!==n.indexOf(e)),i={...e,...t};for(const o of r){const n=Jt(e[o],t[o]);if(!n.valid)return{valid:!1,mergeErrorPath:[o,...n.mergeErrorPath]};i[o]=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 r=0;r<e.length;r++){const i=Jt(e[r],t[r]);if(!i.valid)return{valid:!1,mergeErrorPath:[r,...i.mergeErrorPath]};n.push(i.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function Wt(e,t,n){const r=/* @__PURE__ */new Map;let i;for(const s of t.issues)if("unrecognized_keys"===s.code){i??(i=s);for(const e of s.keys)r.has(e)||r.set(e,{}),r.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)r.has(e)||r.set(e,{}),r.get(e).r=!0;else e.issues.push(s);const o=[...r].filter(([,e])=>e.l&&e.r).map(([e])=>e);if(o.length&&i&&e.issues.push({...i,keys:o}),M(e))return e;const a=Jt(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 Vt=/*@__PURE__*/g("$ZodRecord",(e,t)=>{rt.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;if(!R(i))return n.issues.push({expected:"record",code:"invalid_type",input:i,inst:e}),n;const o=[],a=t.keyType._zod.values;if(a){n.value={};const s=/* @__PURE__ */new Set;for(const c of a)if("string"==typeof c||"number"==typeof c||"symbol"==typeof c){s.add("number"==typeof c?c.toString():c);const a=t.keyType._zod.run({value:c,issues:[]},r);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=>J(e,r,w())),input:c,path:[c],inst:e});continue}const u=a.value,l=t.valueType._zod.run({value:i[c],issues:[]},r);l instanceof Promise?o.push(l.then(e=>{e.issues.length&&n.issues.push(...B(c,e.issues)),n.value[u]=e.value})):(l.issues.length&&n.issues.push(...B(c,l.issues)),n.value[u]=l.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:[]},r);if(s instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if("string"==typeof a&&Pe.test(a)&&s.issues.length){const e=t.keyType._zod.run({value:Number(a),issues:[]},r);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=>J(e,r,w())),input:a,path:[a],inst:e});continue}const u=t.valueType._zod.run({value:i[a],issues:[]},r);u instanceof Promise?o.push(u.then(e=>{e.issues.length&&n.issues.push(...B(a,e.issues)),n.value[s.value]=e.value})):(u.issues.length&&n.issues.push(...B(a,u.issues)),n.value[s.value]=u.value)}}return o.length?Promise.all(o).then(()=>n):n}}),Gt=/*@__PURE__*/g("$ZodEnum",(e,t)=>{rt.init(e,t);const n=S(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=new RegExp(`^(${n.filter(e=>j.has(typeof e)).map(e=>"string"==typeof e?q(e):e.toString()).join("|")})$`),e._zod.parse=(t,i)=>{const o=t.value;return r.has(o)||t.issues.push({code:"invalid_value",values:n,input:o,inst:e}),t}}),Ht=/*@__PURE__*/g("$ZodLiteral",(e,t)=>{if(rt.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?q(e):e?q(e.toString()):String(e)).join("|")})$`),e._zod.parse=(r,i)=>{const o=r.value;return n.has(o)||r.issues.push({code:"invalid_value",values:t.values,input:o,inst:e}),r}}),Kt=/*@__PURE__*/g("$ZodTransform",(e,t)=>{rt.init(e,t),e._zod.optin="optional",e._zod.parse=(n,r)=>{if("backward"===r.direction)throw new v(e.constructor.name);const i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(e=>(n.value=e,n.fallback=!0,n));if(i instanceof Promise)throw new y;return n.value=i,n.fallback=!0,n}});function Xt(e,t){return void 0===t&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}var Qt=/*@__PURE__*/g("$ZodOptional",(e,t)=>{rt.init(e,t),e._zod.optin="optional",e._zod.optout="optional",$(e._zod,"values",()=>t.innerType._zod.values?/* @__PURE__ */new Set([...t.innerType._zod.values,void 0]):void 0),$(e._zod,"pattern",()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${x(e.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if("optional"===t.innerType._zod.optin){const r=e.value,i=t.innerType._zod.run(e,n);return i instanceof Promise?i.then(e=>Xt(e,r)):Xt(i,r)}return void 0===e.value?e:t.innerType._zod.run(e,n)}}),en=/*@__PURE__*/g("$ZodExactOptional",(e,t)=>{Qt.init(e,t),$(e._zod,"values",()=>t.innerType._zod.values),$(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(e,n)=>t.innerType._zod.run(e,n)}),tn=/*@__PURE__*/g("$ZodNullable",(e,t)=>{rt.init(e,t),$(e._zod,"optin",()=>t.innerType._zod.optin),$(e._zod,"optout",()=>t.innerType._zod.optout),$(e._zod,"pattern",()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${x(e.source)}|null)$`):void 0}),$(e._zod,"values",()=>t.innerType._zod.values?/* @__PURE__ */new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>null===e.value?e:t.innerType._zod.run(e,n)}),nn=/*@__PURE__*/g("$ZodDefault",(e,t)=>{rt.init(e,t),e._zod.optin="optional",$(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 r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>rn(e,t)):rn(r,t)}});function rn(e,t){return void 0===e.value&&(e.value=t.defaultValue),e}var on=/*@__PURE__*/g("$ZodPrefault",(e,t)=>{rt.init(e,t),e._zod.optin="optional",$(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))}),an=/*@__PURE__*/g("$ZodNonOptional",(e,t)=>{rt.init(e,t),$(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,r)=>{const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(t=>sn(t,e)):sn(i,e)}});function sn(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 un=/*@__PURE__*/g("$ZodCatch",(e,t)=>{rt.init(e,t),e._zod.optin="optional",$(e._zod,"optout",()=>t.innerType._zod.optout),$(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);const r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(r=>(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>J(e,n,w()))},input:e.value}),e.issues=[],e.fallback=!0),e)):(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>J(e,n,w()))},input:e.value}),e.issues=[],e.fallback=!0),e)}}),cn=/*@__PURE__*/g("$ZodPipe",(e,t)=>{rt.init(e,t),$(e._zod,"values",()=>t.in._zod.values),$(e._zod,"optin",()=>t.in._zod.optin),$(e._zod,"optout",()=>t.out._zod.optout),$(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if("backward"===n.direction){const r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>ln(e,t.in,n)):ln(r,t.in,n)}const r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>ln(e,t.out,n)):ln(r,t.out,n)}});function ln(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 dn=/*@__PURE__*/g("$ZodReadonly",(e,t)=>{rt.init(e,t),$(e._zod,"propValues",()=>t.innerType._zod.propValues),$(e._zod,"values",()=>t.innerType._zod.values),$(e._zod,"optin",()=>t.innerType?._zod?.optin),$(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);const r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(pn):pn(r)}});function pn(e){return e.value=Object.freeze(e.value),e}var fn,mn=/*@__PURE__*/g("$ZodCustom",(e,t)=>{qe.init(e,t),rt.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{const r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(t=>hn(t,n,r,e));hn(i,n,r,e)}});function hn(e,t,n,r){if(!e){const e={code:"custom",input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(V(e))}}var _n=class{constructor(){this._map=/* @__PURE__ */new WeakMap,this._idmap=/* @__PURE__ */new Map}add(e,...t){const n=t[0];return this._map.set(e,n),n&&"object"==typeof n&&"id"in n&&this._idmap.set(n.id,e),this}clear(){return this._map=/* @__PURE__ */new WeakMap,this._idmap=/* @__PURE__ */new Map,this}remove(e){const t=this._map.get(e);return t&&"object"==typeof t&&"id"in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){const t=e._zod.parent;if(t){const n={...this.get(t)??{}};delete n.id;const r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};(fn=globalThis).__zod_globalRegistry??(fn.__zod_globalRegistry=new _n);var gn=globalThis.__zod_globalRegistry;function yn(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...D(t)})}function vn(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...D(t)})}function bn(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...D(t)})}function wn(e,t){return new De({check:"less_than",...D(t),value:e,inclusive:!1})}function Sn(e,t){return new De({check:"less_than",...D(t),value:e,inclusive:!0})}function kn(e,t){return new Le({check:"greater_than",...D(t),value:e,inclusive:!1})}function zn(e,t){return new Le({check:"greater_than",...D(t),value:e,inclusive:!0})}function On(e,t){return new Me({check:"multiple_of",...D(t),value:e})}function xn(e,t){return new Be({check:"max_length",...D(t),maximum:e})}function En(e,t){return new Ye({check:"min_length",...D(t),minimum:e})}function $n(e,t){return new Je({check:"length_equals",...D(t),length:e})}function Tn(e){return new et({check:"overwrite",tx:e})}function An(e,t){const n=new qe({check:"custom",...D(t)});return n._zod.check=e,n}function Nn(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??gn,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:/* @__PURE__ */new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function In(e,t,n={path:[],schemaPath:[]}){var r;const i=e._zod.def,o=t.seen.get(e);if(o)return o.count++,n.schemaPath.includes(e)&&(o.cycle=n.path),o.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 r={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,a.schema,r);else{const n=a.schema,o=t.processors[i.type];if(!o)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);o(e,t,n,r)}const o=e._zod.parent;o&&(a.ref||(a.ref=o),In(o,t,r),t.seen.get(o).isParent=!0)}const u=t.metadataRegistry.get(e);return u&&Object.assign(a.schema,u),"input"===t.io&&Rn(e)&&(delete a.schema.examples,delete a.schema.default),"input"===t.io&&"_prefault"in a.schema&&((r=a.schema).default??(r.default=a.schema._prefault)),delete a.schema._prefault,t.seen.get(e).schema}function Cn(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const r=/* @__PURE__ */new Map;for(const o of e.seen.entries()){const t=e.metadataRegistry.get(o[0])?.id;if(t){const e=r.get(t);if(e&&e!==o[0])throw new Error(`Duplicate schema id "${t}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(t,o[0])}}const i=t=>{if(t[1].schema.$ref)return;const r=t[1],{ref:i,defId:o}=(t=>{const r="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 o=t[1].defId??t[1].schema.id??"schema"+e.counter++;return t[1].defId=o,{defId:o,ref:`${i("__shared")}#/${r}/${o}`}}if(t[1]===n)return{ref:"#"};const i=`#/${r}/`,o=t[1].schema.id??"__schema"+e.counter++;return{defId:o,ref:i+o}})(t);r.def={...r.schema},o&&(r.defId=o);const a=r.schema;for(const e in a)delete a[e];a.$ref=i};if("throw"===e.cycles)for(const o of e.seen.entries()){const e=o[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 o of e.seen.entries()){const n=o[1];if(t!==o[0]){if(e.external){const n=e.external.registry.get(o[0])?.id;if(t!==o[0]&&n){i(o);continue}}(e.metadataRegistry.get(o[0])?.id||n.cycle||n.count>1&&"ref"===e.reused)&&i(o)}else i(o)}}function Pn(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const r=t=>{const n=e.seen.get(t);if(null===n.ref)return;const i=n.def??n.schema,o={...i},a=n.ref;if(n.ref=null,a){r(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,o),t._zod.parent===a)for(const e in i)"$ref"!==e&&"allOf"!==e&&(e in o||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){r(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())r(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 o=e.metadataRegistry.get(t)?.id;void 0!==o&&i.id===o&&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:Un(t,"input",e.processors),output:Un(t,"output",e.processors)}},enumerable:!1,writable:!1}),n}catch(s){throw new Error("Error converting schema to JSON.")}}function Rn(e,t){const n=t??{seen:/* @__PURE__ */new Set};if(n.seen.has(e))return!1;n.seen.add(e);const r=e._zod.def;if("transform"===r.type)return!0;if("array"===r.type)return Rn(r.element,n);if("set"===r.type)return Rn(r.valueType,n);if("lazy"===r.type)return Rn(r.getter(),n);if("promise"===r.type||"optional"===r.type||"nonoptional"===r.type||"nullable"===r.type||"readonly"===r.type||"default"===r.type||"prefault"===r.type)return Rn(r.innerType,n);if("intersection"===r.type)return Rn(r.left,n)||Rn(r.right,n);if("record"===r.type||"map"===r.type)return Rn(r.keyType,n)||Rn(r.valueType,n);if("pipe"===r.type)return!!e._zod.traits.has("$ZodCodec")||(Rn(r.in,n)||Rn(r.out,n));if("object"===r.type){for(const e in r.shape)if(Rn(r.shape[e],n))return!0;return!1}if("union"===r.type){for(const e of r.options)if(Rn(e,n))return!0;return!1}if("tuple"===r.type){for(const e of r.items)if(Rn(e,n))return!0;return!(!r.rest||!Rn(r.rest,n))}return!1}var Un=(e,t,n={})=>r=>{const{libraryOptions:i,target:o}=r??{},a=Nn({...i??{},target:o,io:t,processors:n});return In(e,a),Cn(a,e),Pn(a,e)},jn={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},qn=(e,t,n,r)=>{const i=e._zod.def;In(i.innerType,t,r);t.seen.get(e).ref=i.innerType},Zn=/*@__PURE__*/g("ZodISODateTime",(e,t)=>{gt.init(e,t),fr.init(e,t)});function Dn(e){return function(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...D(t)})}(Zn,e)}var Ln=/*@__PURE__*/g("ZodISODate",(e,t)=>{yt.init(e,t),fr.init(e,t)});function Mn(e){return function(e,t){return new e({type:"string",format:"date",check:"string_format",...D(t)})}(Ln,e)}var Fn=/*@__PURE__*/g("ZodISOTime",(e,t)=>{vt.init(e,t),fr.init(e,t)});function Bn(e){return function(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...D(t)})}(Fn,e)}var Yn=/*@__PURE__*/g("ZodISODuration",(e,t)=>{bt.init(e,t),fr.init(e,t)});function Jn(e){return function(e,t){return new e({type:"string",format:"duration",check:"string_format",...D(t)})}(Yn,e)}var Wn=(e,t)=>{H.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:t=>function(e,t=e=>e.message){const n={_errors:[]},r=(e,i=[])=>{for(const o of e.issues)if("invalid_union"===o.code&&o.errors.length)o.errors.map(e=>r({issues:e},[...i,...o.path]));else if("invalid_key"===o.code)r({issues:o.issues},[...i,...o.path]);else if("invalid_element"===o.code)r({issues:o.issues},[...i,...o.path]);else{const e=[...i,...o.path];if(0===e.length)n._errors.push(t(o));else{let r=n,i=0;for(;i<e.length;){const n=e[i];i!==e.length-1?r[n]=r[n]||{_errors:[]}:(r[n]=r[n]||{_errors:[]},r[n]._errors.push(t(o))),r=r[n],i++}}}};return r(e),n}(e,t)},flatten:{value:t=>function(e,t=e=>e.message){const n={},r=[];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))):r.push(t(i));return{formErrors:r,fieldErrors:n}}(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,k,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,k,2)}},isEmpty:{get:()=>0===e.issues.length}})},Vn=/*@__PURE__*/g("ZodError",Wn,{Parent:Error}),Gn=/* @__PURE__ */X(Vn),Hn=/* @__PURE__ */Q(Vn),Kn=/* @__PURE__ */ee(Vn),Xn=/* @__PURE__ */ne(Vn),Qn=/* @__PURE__ */ie(Vn),er=/* @__PURE__ */oe(Vn),tr=/* @__PURE__ */ae(Vn),nr=/* @__PURE__ */se(Vn),rr=/* @__PURE__ */ue(Vn),ir=/* @__PURE__ */ce(Vn),or=/* @__PURE__ */le(Vn),ar=/* @__PURE__ */de(Vn),sr=/* @__PURE__ */new WeakMap;function ur(e,t,n){const r=Object.getPrototypeOf(e);let i=sr.get(r);if(i||(i=/* @__PURE__ */new Set,sr.set(r,i)),!i.has(t)){i.add(t);for(const e in n){const t=n[e];Object.defineProperty(r,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 cr=/*@__PURE__*/g("ZodType",(e,t)=>(rt.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:Un(e,"input"),output:Un(e,"output")}}),e.toJSONSchema=((e,t={})=>n=>{const r=Nn({...n,processors:t});return In(e,r),Cn(r,e),Pn(r,e)})(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.parse=(t,n)=>Gn(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>Kn(e,t,n),e.parseAsync=async(t,n)=>Hn(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>Xn(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>Qn(e,t,n),e.decode=(t,n)=>er(e,t,n),e.encodeAsync=async(t,n)=>tr(e,t,n),e.decodeAsync=async(t,n)=>nr(e,t,n),e.safeEncode=(t,n)=>rr(e,t,n),e.safeDecode=(t,n)=>ir(e,t,n),e.safeEncodeAsync=async(t,n)=>or(e,t,n),e.safeDecodeAsync=async(t,n)=>ar(e,t,n),ur(e,"ZodType",{check(...e){const t=this.def;return this.clone(A(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 Z(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,...D(n)})}(yi,e,t)}(e,t))},superRefine(e,t){return this.check(function(e,t){return function(e,t){const n=/* @__PURE__ */An(t=>(t.addIssue=e=>{if("string"==typeof e)t.issues.push(V(e,t.value,n._zod.def));else{const r=e;r.fatal&&(r.continue=!1),r.code??(r.code="custom"),r.input??(r.input=t.value),r.inst??(r.inst=n),r.continue??(r.continue=!n._zod.def.abort),t.issues.push(V(r))}},e(t.value,t)),t);return n}(e,t)}(e,t))},overwrite(e){return this.check(Tn(e))},optional(){return si(this)},exactOptional(){return new ui({type:"optional",innerType:this})},nullable(){return li(this)},nullish(){return si(li(this))},nonoptional(e){return function(e,t){return new fi({type:"nonoptional",innerType:e,...D(t)})}(this,e)},array(){return Yr(this)},or(e){return Gr([this,e])},and(e){return new Xr({type:"intersection",left:this,right:e})},transform(e){return _i(this,new oi({type:"transform",transform:e}))},default(e){return t=e,new di({type:"default",innerType:this,get defaultValue(){return"function"==typeof t?t():U(t)}});var t},prefault(e){return t=e,new pi({type:"prefault",innerType:this,get defaultValue(){return"function"==typeof t?t():U(t)}});var t},catch(e){return new mi({type:"catch",innerType:this,catchValue:"function"==typeof(t=e)?t:()=>t});var t},pipe(e){return _i(this,e)},readonly(){return new gi({type:"readonly",innerType:this})},describe(e){const t=this.clone();return gn.add(t,{description:e}),t},meta(...e){if(0===e.length)return gn.get(this);const t=this.clone();return gn.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:()=>gn.get(e)?.description,configurable:!0}),e)),lr=/*@__PURE__*/g("_ZodString",(e,t)=>{it.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n)=>{const r=n;r.type="string";const{minimum:i,maximum:o,format:a,patterns:s,contentEncoding:u}=e._zod.bag;if("number"==typeof i&&(r.minLength=i),"number"==typeof o&&(r.maxLength=o),a&&(r.format=jn[a]??a,""===r.format&&delete r.format,"time"===a&&delete r.format),u&&(r.contentEncoding=u),s&&s.size>0){const e=[...s];1===e.length?r.pattern=e[0].source:e.length>1&&(r.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,ur(e,"_ZodString",{regex(...e){return this.check(function(e,t){return new Ve({check:"string_format",format:"regex",...D(t),pattern:e})}(...e))},includes(...e){return this.check(function(e,t){return new Ke({check:"string_format",format:"includes",...D(t),includes:e})}(...e))},startsWith(...e){return this.check(function(e,t){return new Xe({check:"string_format",format:"starts_with",...D(t),prefix:e})}(...e))},endsWith(...e){return this.check(function(e,t){return new Qe({check:"string_format",format:"ends_with",...D(t),suffix:e})}(...e))},min(...e){return this.check(En(...e))},max(...e){return this.check(xn(...e))},length(...e){return this.check($n(...e))},nonempty(...e){return this.check(En(1,...e))},lowercase(e){return this.check(function(e){return new Ge({check:"string_format",format:"lowercase",...D(e)})}(e))},uppercase(e){return this.check(function(e){return new He({check:"string_format",format:"uppercase",...D(e)})}(e))},trim(){return this.check(/* @__PURE__ */Tn(e=>e.trim()))},normalize(...e){return this.check(function(e){/* @__PURE__ */
2
- return Tn(t=>t.normalize(e))}(...e))},toLowerCase(){return this.check(/* @__PURE__ */Tn(e=>e.toLowerCase()))},toUpperCase(){return this.check(/* @__PURE__ */Tn(e=>e.toUpperCase()))},slugify(){return this.check(/* @__PURE__ */Tn(e=>function(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}(e)))}})}),dr=/*@__PURE__*/g("ZodString",(e,t)=>{it.init(e,t),lr.init(e,t),e.email=t=>e.check(yn(mr,t)),e.url=t=>e.check(bn(yr,t)),e.jwt=t=>e.check(function(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...D(t)})}(Cr,t)),e.emoji=t=>e.check(function(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...D(t)})}(vr,t)),e.guid=t=>e.check(vn(_r,t)),e.uuid=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...D(t)})}(gr,t)),e.uuidv4=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...D(t)})}(gr,t)),e.uuidv6=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...D(t)})}(gr,t)),e.uuidv7=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...D(t)})}(gr,t)),e.nanoid=t=>e.check(function(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...D(t)})}(br,t)),e.guid=t=>e.check(vn(_r,t)),e.cuid=t=>e.check(function(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...D(t)})}(wr,t)),e.cuid2=t=>e.check(function(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...D(t)})}(Sr,t)),e.ulid=t=>e.check(function(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...D(t)})}(kr,t)),e.base64=t=>e.check(function(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...D(t)})}(Ar,t)),e.base64url=t=>e.check(function(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...D(t)})}(Nr,t)),e.xid=t=>e.check(function(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...D(t)})}(zr,t)),e.ksuid=t=>e.check(function(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...D(t)})}(Or,t)),e.ipv4=t=>e.check(function(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...D(t)})}(xr,t)),e.ipv6=t=>e.check(function(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...D(t)})}(Er,t)),e.cidrv4=t=>e.check(function(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...D(t)})}($r,t)),e.cidrv6=t=>e.check(function(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...D(t)})}(Tr,t)),e.e164=t=>e.check(function(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...D(t)})}(Ir,t)),e.datetime=t=>e.check(Dn(t)),e.date=t=>e.check(Mn(t)),e.time=t=>e.check(Bn(t)),e.duration=t=>e.check(Jn(t))});function pr(e){return function(e,t){return new e({type:"string",...D(t)})}(dr,e)}var fr=/*@__PURE__*/g("ZodStringFormat",(e,t)=>{ot.init(e,t),lr.init(e,t)}),mr=/*@__PURE__*/g("ZodEmail",(e,t)=>{ut.init(e,t),fr.init(e,t)});function hr(e){return yn(mr,e)}var _r=/*@__PURE__*/g("ZodGUID",(e,t)=>{at.init(e,t),fr.init(e,t)}),gr=/*@__PURE__*/g("ZodUUID",(e,t)=>{st.init(e,t),fr.init(e,t)}),yr=/*@__PURE__*/g("ZodURL",(e,t)=>{ct.init(e,t),fr.init(e,t)});var vr=/*@__PURE__*/g("ZodEmoji",(e,t)=>{lt.init(e,t),fr.init(e,t)}),br=/*@__PURE__*/g("ZodNanoID",(e,t)=>{dt.init(e,t),fr.init(e,t)}),wr=/*@__PURE__*/g("ZodCUID",(e,t)=>{pt.init(e,t),fr.init(e,t)}),Sr=/*@__PURE__*/g("ZodCUID2",(e,t)=>{ft.init(e,t),fr.init(e,t)}),kr=/*@__PURE__*/g("ZodULID",(e,t)=>{mt.init(e,t),fr.init(e,t)}),zr=/*@__PURE__*/g("ZodXID",(e,t)=>{ht.init(e,t),fr.init(e,t)}),Or=/*@__PURE__*/g("ZodKSUID",(e,t)=>{_t.init(e,t),fr.init(e,t)}),xr=/*@__PURE__*/g("ZodIPv4",(e,t)=>{wt.init(e,t),fr.init(e,t)}),Er=/*@__PURE__*/g("ZodIPv6",(e,t)=>{St.init(e,t),fr.init(e,t)}),$r=/*@__PURE__*/g("ZodCIDRv4",(e,t)=>{kt.init(e,t),fr.init(e,t)}),Tr=/*@__PURE__*/g("ZodCIDRv6",(e,t)=>{zt.init(e,t),fr.init(e,t)}),Ar=/*@__PURE__*/g("ZodBase64",(e,t)=>{xt.init(e,t),fr.init(e,t)}),Nr=/*@__PURE__*/g("ZodBase64URL",(e,t)=>{Et.init(e,t),fr.init(e,t)}),Ir=/*@__PURE__*/g("ZodE164",(e,t)=>{$t.init(e,t),fr.init(e,t)}),Cr=/*@__PURE__*/g("ZodJWT",(e,t)=>{Tt.init(e,t),fr.init(e,t)}),Pr=/*@__PURE__*/g("ZodNumber",(e,t)=>{At.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n)=>{const r=n,{minimum:i,maximum:o,format:a,multipleOf:s,exclusiveMaximum:u,exclusiveMinimum:c}=e._zod.bag;"string"==typeof a&&a.includes("int")?r.type="integer":r.type="number";const l="number"==typeof c&&c>=(i??Number.NEGATIVE_INFINITY),d="number"==typeof u&&u<=(o??Number.POSITIVE_INFINITY),p="draft-04"===t.target||"openapi-3.0"===t.target;l?p?(r.minimum=c,r.exclusiveMinimum=!0):r.exclusiveMinimum=c:"number"==typeof i&&(r.minimum=i),d?p?(r.maximum=u,r.exclusiveMaximum=!0):r.exclusiveMaximum=u:"number"==typeof o&&(r.maximum=o),"number"==typeof s&&(r.multipleOf=s)})(e,t,n),ur(e,"ZodNumber",{gt(e,t){return this.check(kn(e,t))},gte(e,t){return this.check(zn(e,t))},min(e,t){return this.check(zn(e,t))},lt(e,t){return this.check(wn(e,t))},lte(e,t){return this.check(Sn(e,t))},max(e,t){return this.check(Sn(e,t))},int(e){return this.check(jr(e))},safe(e){return this.check(jr(e))},positive(e){return this.check(kn(0,e))},nonnegative(e){return this.check(zn(0,e))},negative(e){return this.check(wn(0,e))},nonpositive(e){return this.check(Sn(0,e))},multipleOf(e,t){return this.check(On(e,t))},step(e,t){return this.check(On(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 Rr(e){return function(e,t){return new e({type:"number",checks:[],...D(t)})}(Pr,e)}var Ur=/*@__PURE__*/g("ZodNumberFormat",(e,t)=>{Nt.init(e,t),Pr.init(e,t)});function jr(e){return function(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...D(t)})}(Ur,e)}var qr=/*@__PURE__*/g("ZodBoolean",(e,t)=>{It.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(e,t,n)=>((e,t,n)=>{n.type="boolean"})(0,0,t)});function Zr(e){return function(e,t){return new e({type:"boolean",...D(t)})}(qr,e)}var Dr=/*@__PURE__*/g("ZodUnknown",(e,t)=>{Ct.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(e,t,n)=>{}});function Lr(){return new Dr({type:"unknown"})}var Mr=/*@__PURE__*/g("ZodNever",(e,t)=>{Pt.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(e,t,n)=>((e,t,n)=>{n.not={}})(0,0,t)});function Fr(e){return function(e,t){return new e({type:"never",...D(t)})}(Mr,e)}var Br=/*@__PURE__*/g("ZodArray",(e,t)=>{Ut.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=n,o=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=In(o.element,t,{...r,path:[...r.path,"items"]})})(e,t,n,r),e.element=t.element,ur(e,"ZodArray",{min(e,t){return this.check(En(e,t))},nonempty(e){return this.check(En(1,e))},max(e,t){return this.check(xn(e,t))},length(e,t){return this.check($n(e,t))},unwrap(){return this.element}})});function Yr(e,t){return function(e,t,n){return new e({type:"array",element:t,...D(n)})}(Br,e,t)}var Jr=/*@__PURE__*/g("ZodObject",(e,t)=>{Lt.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=n,o=e._zod.def;i.type="object",i.properties={};const a=o.shape;for(const c in a)i.properties[c]=In(a[c],t,{...r,path:[...r.path,"properties",c]});const s=new Set(Object.keys(a)),u=new Set([...s].filter(e=>{const n=o.shape[e]._zod;return"input"===t.io?void 0===n.optin:void 0===n.optout}));u.size>0&&(i.required=Array.from(u)),"never"===o.catchall?._zod.def.type?i.additionalProperties=!1:o.catchall?o.catchall&&(i.additionalProperties=In(o.catchall,t,{...r,path:[...r.path,"additionalProperties"]})):"output"===t.io&&(i.additionalProperties=!1)})(e,t,n,r),$(e,"shape",()=>t.shape),ur(e,"ZodObject",{keyof(){return ni(Object.keys(this._zod.def.shape))},catchall(e){return this.clone({...this._zod.def,catchall:e})},passthrough(){return this.clone({...this._zod.def,catchall:Lr()})},loose(){return this.clone({...this._zod.def,catchall:Lr()})},strict(){return this.clone({...this._zod.def,catchall:Fr()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(e){return function(e,t){if(!R(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 Z(e,A(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return T(this,"shape",n),n}}))}(this,e)},safeExtend(e){return function(e,t){if(!R(t))throw new Error("Invalid input to safeExtend: expected a plain object");return Z(e,A(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return T(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 Z(e,A(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t._zod.def.shape};return T(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,r=n.checks;if(r&&r.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");return Z(e,A(e._zod.def,{get shape(){const e={};for(const r in t){if(!(r in n.shape))throw new Error(`Unrecognized key: "${r}"`);t[r]&&(e[r]=n.shape[r])}return T(this,"shape",e),e},checks:[]}))}(this,e)},omit(e){return function(e,t){const n=e._zod.def,r=n.checks;if(r&&r.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");return Z(e,A(e._zod.def,{get shape(){const r={...e._zod.def.shape};for(const e in t){if(!(e in n.shape))throw new Error(`Unrecognized key: "${e}"`);t[e]&&delete r[e]}return T(this,"shape",r),r},checks:[]}))}(this,e)},partial(...e){return function(e,t,n){const r=t._zod.def.checks;if(r&&r.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");return Z(t,A(t._zod.def,{get shape(){const r=t._zod.def.shape,i={...r};if(n)for(const t in n){if(!(t in r))throw new Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=e?new e({type:"optional",innerType:r[t]}):r[t])}else for(const t in r)i[t]=e?new e({type:"optional",innerType:r[t]}):r[t];return T(this,"shape",i),i},checks:[]}))}(ai,this,e[0])},required(...e){return t=fi,n=this,r=e[0],Z(n,A(n._zod.def,{get shape(){const e=n._zod.def.shape,i={...e};if(r)for(const n in r){if(!(n in i))throw new Error(`Unrecognized key: "${n}"`);r[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 T(this,"shape",i),i}}));var t,n,r}})});function Wr(e,t){return new Jr({type:"object",shape:e??{},...D(t)})}var Vr=/*@__PURE__*/g("ZodUnion",(e,t)=>{Ft.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=e._zod.def,o=!1===i.inclusive,a=i.options.map((e,n)=>In(e,t,{...r,path:[...r.path,o?"oneOf":"anyOf",n]}));o?n.oneOf=a:n.anyOf=a})(e,t,n,r),e.options=t.options});function Gr(e,t){return new Vr({type:"union",options:e,...D(t)})}var Hr=/*@__PURE__*/g("ZodDiscriminatedUnion",(e,t)=>{Vr.init(e,t),Bt.init(e,t)});function Kr(e,t,n){return new Hr({type:"union",options:t,discriminator:e,...D(n)})}var Xr=/*@__PURE__*/g("ZodIntersection",(e,t)=>{Yt.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=e._zod.def,o=In(i.left,t,{...r,path:[...r.path,"allOf",0]}),a=In(i.right,t,{...r,path:[...r.path,"allOf",1]}),s=e=>"allOf"in e&&1===Object.keys(e).length;n.allOf=[...s(o)?o.allOf:[o],...s(a)?a.allOf:[a]]})(e,t,n,r)});var Qr=/*@__PURE__*/g("ZodRecord",(e,t)=>{Vt.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=n,o=e._zod.def;i.type="object";const a=o.keyType,s=a._zod.bag?.patterns;if("loose"===o.mode&&s&&s.size>0){const e=In(o.valueType,t,{...r,path:[...r.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=In(o.keyType,t,{...r,path:[...r.path,"propertyNames"]})),i.additionalProperties=In(o.valueType,t,{...r,path:[...r.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,r),e.keyType=t.keyType,e.valueType=t.valueType});function ei(e,t,n){return t&&t._zod?new Qr({type:"record",keyType:e,valueType:t,...D(n)}):new Qr({type:"record",keyType:pr(),valueType:e,...D(t)})}var ti=/*@__PURE__*/g("ZodEnum",(e,t)=>{Gt.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n)=>{const r=S(e._zod.def.entries);r.every(e=>"number"==typeof e)&&(n.type="number"),r.every(e=>"string"==typeof e)&&(n.type="string"),n.enum=r})(e,0,n),e.enum=t.entries,e.options=Object.values(t.entries);const n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{const i={};for(const o of e){if(!n.has(o))throw new Error(`Key ${o} not found in enum`);i[o]=t.entries[o]}return new ti({...t,checks:[],...D(r),entries:i})},e.exclude=(e,r)=>{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 ti({...t,checks:[],...D(r),entries:i})}});function ni(e,t){return new ti({type:"enum",entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...D(t)})}var ri=/*@__PURE__*/g("ZodLiteral",(e,t)=>{Ht.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n)=>{const r=e._zod.def,i=[];for(const o of r.values)if(void 0===o){if("throw"===t.unrepresentable)throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if("bigint"==typeof o){if("throw"===t.unrepresentable)throw new Error("BigInt literals cannot be represented in JSON Schema");i.push(Number(o))}else i.push(o);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 ii(e,t){return new ri({type:"literal",values:Array.isArray(e)?e:[e],...D(t)})}var oi=/*@__PURE__*/g("ZodTransform",(e,t)=>{Kt.init(e,t),cr.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,r)=>{if("backward"===r.direction)throw new v(e.constructor.name);n.addIssue=r=>{if("string"==typeof r)n.issues.push(V(r,n.value,t));else{const t=r;t.fatal&&(t.continue=!1),t.code??(t.code="custom"),t.input??(t.input=n.value),t.inst??(t.inst=e),n.issues.push(V(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 ai=/*@__PURE__*/g("ZodOptional",(e,t)=>{Qt.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>qn(e,t,0,r),e.unwrap=()=>e._zod.def.innerType});function si(e){return new ai({type:"optional",innerType:e})}var ui=/*@__PURE__*/g("ZodExactOptional",(e,t)=>{en.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>qn(e,t,0,r),e.unwrap=()=>e._zod.def.innerType});var ci=/*@__PURE__*/g("ZodNullable",(e,t)=>{tn.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=e._zod.def,o=In(i.innerType,t,r),a=t.seen.get(e);"openapi-3.0"===t.target?(a.ref=i.innerType,n.nullable=!0):n.anyOf=[o,{type:"null"}]})(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function li(e){return new ci({type:"nullable",innerType:e})}var di=/*@__PURE__*/g("ZodDefault",(e,t)=>{nn.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=e._zod.def;In(i.innerType,t,r),t.seen.get(e).ref=i.innerType,n.default=JSON.parse(JSON.stringify(i.defaultValue))})(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});var pi=/*@__PURE__*/g("ZodPrefault",(e,t)=>{on.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=e._zod.def;In(i.innerType,t,r),t.seen.get(e).ref=i.innerType,"input"===t.io&&(n._prefault=JSON.parse(JSON.stringify(i.defaultValue)))})(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});var fi=/*@__PURE__*/g("ZodNonOptional",(e,t)=>{an.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=e._zod.def;In(i.innerType,t,r),t.seen.get(e).ref=i.innerType})(e,t,0,r),e.unwrap=()=>e._zod.def.innerType});var mi=/*@__PURE__*/g("ZodCatch",(e,t)=>{un.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=e._zod.def;let o;In(i.innerType,t,r),t.seen.get(e).ref=i.innerType;try{o=i.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}n.default=o})(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});var hi=/*@__PURE__*/g("ZodPipe",(e,t)=>{cn.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=e._zod.def,o=i.in._zod.traits.has("$ZodTransform"),a="input"===t.io?o?i.out:i.in:i.out;In(a,t,r),t.seen.get(e).ref=a})(e,t,0,r),e.in=t.in,e.out=t.out});function _i(e,t){return new hi({type:"pipe",in:e,out:t})}var gi=/*@__PURE__*/g("ZodReadonly",(e,t)=>{dn.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=e._zod.def;In(i.innerType,t,r),t.seen.get(e).ref=i.innerType,n.readOnly=!0})(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});var yi=/*@__PURE__*/g("ZodCustom",(e,t)=>{mn.init(e,t),cr.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 vi,bi=ni(["CONSENT","SOFT_OPT_IN","TRANSACTIONAL_ONLY","UNKNOWN"]),wi=ni(["MANUAL_UNSUB","ONE_CLICK_UNSUB","HARD_BOUNCE","COMPLAINT","ADMIN_BLOCK"]),Si=ni(["BROADCAST","AUTOMATION"]),ki=ni(["ABANDONED_CART","POST_PURCHASE","WELCOME","WIN_BACK","RE_ENGAGEMENT","TAG_ADDED"]),zi=(Wr({email:hr(),name:pr().trim().min(1).nullable().optional(),customer_id:pr().uuid().nullable().optional(),tags:Yr(pr().trim().min(1)).default([]),consent_basis:bi.default("UNKNOWN"),source:pr().trim().min(1).default("dashboard")}),Wr({name:pr().trim().min(1),subject:pr().trim().min(1),preheader:pr().nullable().optional(),mjml_source:pr().trim().min(1),builder_project_json:ei(pr(),Lr()).nullable().optional(),thumbnail_url:bn(yr,vi).nullable().optional()}),Wr({mjml_source:pr().trim().min(1),sample_variables:ei(pr(),Lr()).optional()}),Wr({recipient_email:hr(),sample_variables:ei(pr(),Lr()).optional()}),Wr({marketing_enabled:Zr().optional(),default_from_name:pr().trim().min(1).nullable().optional(),default_from_email:hr().nullable().optional(),default_reply_to_email:hr().nullable().optional(),physical_address:pr().trim().min(1).nullable().optional(),physical_address_line2:pr().trim().min(1).nullable().optional(),physical_city:pr().trim().min(1).nullable().optional(),physical_postal_code:pr().trim().min(1).nullable().optional(),physical_country:pr().trim().length(2).nullable().optional(),daily_limit:Rr().int().positive().optional(),monthly_soft_cap:Rr().int().positive().optional()}),Wr({type:Si.default("BROADCAST"),name:pr().trim().min(1),subject:pr().trim().min(1),template_id:pr().uuid(),list_id:pr().uuid().nullable().optional(),segment_id:pr().uuid().nullable().optional(),from_name:pr().trim().min(1),from_email:hr(),reply_to_email:hr().nullable().optional(),schedule_at:pr().datetime().nullable().optional(),target_emails:Yr(hr()).max(0,"Direct recipient entry is disabled. Use lists or segments built from Shoppex customers and paid order buyers.").default([]),idempotency_key:pr().trim().min(1).nullable().optional()}),Wr({name:pr().trim().min(1),subject:pr().trim().min(1),template_id:pr().uuid(),from_name:pr().trim().min(1),from_email:hr(),reply_to_email:hr().nullable().optional(),trigger:ki,delay_seconds:Rr().int().min(0).default(0),conditions:ei(pr(),Lr()).default({})}),Wr({trigger:ki,email:hr(),customer_id:pr().uuid().nullable().optional(),name:pr().trim().min(1).nullable().optional(),consent_basis:bi.default("UNKNOWN"),variables:ei(pr(),Lr()).default({}),idempotency_key:pr().trim().min(1).nullable().optional()}),Wr({email:hr(),reason:wi.default("ADMIN_BLOCK"),notes:pr().nullable().optional()}),["BITCOIN","LITECOIN","ETHEREUM","BITCOIN_CASH","MONERO","RIPPLE","TRON","SOLANA","POLYGON","BINANCE_COIN","CRONOS","CONCORDIUM","NANO","DOGECOIN","DASH"]),Oi=["NOWPAYMENTS","CRYPTOMUS","OXAPAY"],xi=["NOWPAYMENTS_WHITELABEL"],Ei={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"]},$i=Object.keys(Ei),Ti=[...Ei.USDT,...Ei.USDC,...Ei.DAI],Ai=[...zi,...Ti],Ni=["BITCOIN_LN"],Ii=[...Oi,...xi],Ci=[...Ai,...Ni],Pi=Ai,Ri=new Set(zi),Ui=new Set(Ti),ji=(new Set(Ai),new Set(Ni),new Set(Oi),new Set(xi),new Set(Ii),new Set(Ci),new Set($i),new Set(["STRIPE","PAYPAL","PAYPAL_FF","MOLLIE","AUTHORIZENET","NMI","SQUARE","SUMUP","SHOPIFY","SUBY","PANDABASE","STORRIK","VENPAYR","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 qi(e,t){if(new Set(t).size!==t.length)throw new Error(`${e} contains duplicate entries`)}qi("COIN_GATEWAY_KEYS",zi),qi("TOKEN_GATEWAY_KEYS",Ti),qi("CRYPTO_GATEWAY_KEYS",Ai),qi("LEGACY_CRYPTO_GATEWAY_KEYS",Ni),qi("CRYPTO_PROVIDER_KEYS",Oi),qi("MANAGED_CRYPTO_PROVIDER_KEYS",xi),qi("CRYPTO_PROVIDER_GATEWAY_KEYS",Ii),qi("DEFAULT_NOWPAYMENTS_CRYPTO_GATEWAY_KEYS",Pi),qi("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"]),qi("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 nu of Ai)if(!Ri.has(nu)&&!Ui.has(nu))throw new Error(`CRYPTO_GATEWAY_KEYS contains an unclassified gateway: ${nu}`);new Set(["STRIPE","PAYPAL","PAYPAL_FF","SKRILL","CASHAPP","CASH_APP","PERFECT_MONEY","SQUARE","SUMUP","SHOPIFY","SUBY","PANDABASE","STORRIK","VENPAYR","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 r=n.match(/^(USDT|USDC|DAI):([A-Z0-9_]+)$/);if(r){const[,e,t]=r;n=`${e}_${"MATIC"===t?"POLYGON":t}`}return ji[n]??n}(e))),new Set(["WHITE_LABEL","NATIVE"]);var Zi=[...Ii,"NATIVE"],Di=(new Set(Zi),Wr({set:Zr()})),Li=Wr({status:ni(["READY","NEEDS_ATTENTION"]).optional(),code:pr().optional(),message:pr().optional(),checked_at:pr().optional()}),Mi=(Wr({provider:pr(),type:pr(),enabled:Zr(),connected:Zr(),credentials:ei(pr(),Di),public_config:ei(pr(),Lr()),webhook:ei(pr(),Lr()).optional(),health:Li.optional()}),"#2563eb"),Fi=["comfortable","compact"],Bi=["top","side","background"],Yi=ni(["checkout","payment_link","embed"]),Ji=ni(["current","clean-light","clean-dark","v2","v3"]),Wi=ni(Fi),Vi=ni(["light","dark","system"]),Gi=ni(Bi),Hi=ni(["ghost","outlined","filled"]),Ki=ni(["sheet","fullscreen","center"]),Xi=(ni(["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"]),ni(["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"]),pr().regex(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/,"Use a valid hex color")),Qi=pr().trim().min(1).max(200).refine(e=>!/[;{}]|@import|expression\s*\(/i.test(e),"Use a valid CSS color or gradient"),eo=pr().trim().min(1).max(400).refine(e=>!/[;{}]|@import|expression\s*\(/i.test(e),"Use a valid CSS box-shadow value"),to=ni(["Inter","Geist","Manrope","Plus Jakarta Sans","DM Sans","Space Grotesk","Sora","IBM Plex Sans","JetBrains Mono","Arial","System UI"]),no=pr().trim().min(1).max(60).regex(/^[A-Za-z0-9 +\-_]+$/,"Use a Google Fonts family name"),ro=pr().url(),io=Wr({brand:Wr({logoUrl:ro.optional().nullable(),logoDarkUrl:ro.optional().nullable(),logoMaxHeight:Rr().int().min(16).max(80).optional(),faviconUrl:ro.optional().nullable()}).strict().optional(),color:Wr({brand:Xi.optional(),brandContrast:Xi.optional(),background:Xi.optional(),surface:Xi.optional(),surfaceRaised:Xi.optional(),text:Xi.optional(),textMuted:Xi.optional(),border:Xi.optional(),focus:Xi.optional(),success:Xi.optional(),warning:Xi.optional(),error:Xi.optional()}).strict().optional(),typography:Wr({fontFamily:to.optional(),googleFontFamily:no.optional(),baseSize:Rr().int().min(12).max(18).optional()}).strict().optional(),shape:Wr({buttonRadius:Rr().int().min(0).max(24).optional(),inputRadius:Rr().int().min(0).max(24).optional(),cardRadius:Rr().int().min(0).max(28).optional()}).strict().optional(),spacing:Wr({density:Wi.optional(),controlHeight:Rr().int().min(36).max(56).optional()}).strict().optional(),component:Wr({primaryButton:Wr({background:Xi.optional(),text:Xi.optional()}).strict().optional(),input:Wr({background:Xi.optional(),border:Xi.optional(),focusRing:Qi.optional()}).strict().optional(),summary:Wr({background:Xi.optional()}).strict().optional(),paymentMethod:Wr({background:Qi.optional(),cardBackground:Qi.optional(),border:Qi.optional(),selectedBackground:Qi.optional()}).strict().optional(),productCard:Wr({background:Qi.optional(),border:Qi.optional(),shadow:eo.optional()}).strict().optional(),productImage:Wr({background:Qi.optional(),border:Qi.optional(),icon:Qi.optional()}).strict().optional(),brandAvatar:Wr({background:Qi.optional(),text:Xi.optional(),border:Qi.optional()}).strict().optional(),pill:Wr({background:Qi.optional(),border:Qi.optional(),text:Xi.optional()}).strict().optional(),errorBanner:Wr({background:Qi.optional(),border:Qi.optional(),text:Xi.optional()}).strict().optional(),warningBanner:Wr({background:Qi.optional(),border:Qi.optional(),text:Xi.optional()}).strict().optional(),radio:Wr({idleRing:Qi.optional(),checkedFill:Xi.optional(),checkedIcon:Xi.optional()}).strict().optional(),divider:Wr({color:Qi.optional()}).strict().optional()}).strict().optional(),paymentLink:Wr({heroImageUrl:ro.optional().nullable(),heroPosition:Gi.optional()}).strict().optional(),embed:Wr({launcher:Wr({background:Qi.optional(),text:Xi.optional(),radius:Rr().int().min(0).max(28).optional(),paddingX:Rr().int().min(8).max(32).optional(),paddingY:Rr().int().min(6).max(24).optional(),shadow:eo.optional()}).strict().optional(),productCard:Wr({background:Qi.optional(),border:Qi.optional(),imageRadius:Rr().int().min(0).max(24).optional(),padding:Rr().int().min(8).max(32).optional()}).strict().optional(),cart:Wr({background:Qi.optional(),rowBorder:Qi.optional(),itemSpacing:Rr().int().min(4).max(28).optional()}).strict().optional(),modal:Wr({background:Qi.optional(),radius:Rr().int().min(0).max(32).optional(),maxWidth:Rr().int().min(360).max(960).optional(),shadow:eo.optional()}).strict().optional(),backdrop:Wr({color:Qi.optional(),blur:Rr().int().min(0).max(24).optional(),opacity:Rr().min(0).max(1).optional()}).strict().optional(),skeleton:Wr({background:Qi.optional(),shimmer:Qi.optional()}).strict().optional(),spinner:Wr({color:Qi.optional()}).strict().optional(),closeButton:Wr({style:Hi.optional()}).strict().optional(),mobile:Wr({layout:Ki.optional()}).strict().optional()}).strict().optional()}).strict(),oo=Wr({mode:Vi.default("system"),fontSource:ni(["curated"]).default("curated")}).strict(),ao=ni(["standalone","bundle","pointer"]),so=Wr({name:pr().trim().min(1).max(80),fingerprint:pr().trim().min(1).max(128)}).strict(),uo=Wr({type:ii("shoppex.style_theme"),surface:ii("checkout"),format_version:Gr([ii(1),ii(2)]),name:pr().trim().min(1).max(80),description:pr().trim().max(240).optional(),embed_design:Ji.default("current"),token_schema_version:ii(1),tokens:io.default({}),custom_css:pr().max(2e4).default(""),settings:oo.default({mode:"system",fontSource:"curated"}),_meta:ei(pr(),Lr()).optional()}).strict(),co=(Wr({type:ii("shoppex.style_theme"),surface:Yi,format_version:Gr([ii(1),ii(2)]),name:pr().trim().min(1).max(80),description:pr().trim().max(240).optional(),embed_design:Ji.default("current"),token_schema_version:ii(1),tokens:io.default({}),custom_css:pr().max(2e4).default(""),settings:oo.default({mode:"system",fontSource:"curated"}),share_mode:ao.default("standalone"),parent_hint:so.optional(),bundled_parent:uo.optional(),_meta:ei(pr(),Lr()).optional()}).strict(),Wr({theme_id:pr().uuid().nullable(),surface:Yi,embed_design:Ji,token_schema_version:ii(1),revision:Rr().int().min(1),tokens:io,custom_css:pr(),css_variables:ei(pr(),pr())}).strict(),Wr({theme_id:pr().uuid().nullable(),parent_theme_id:pr().uuid().nullable(),surface:ii("embed"),embed_design:Ji,token_schema_version:ii(1),revision:Rr().int().min(1),parent_revision:Rr().int().min(1).nullable(),tokens:io,custom_css:pr(),css_variables:ei(pr(),pr())}).strict(),Wr({shop_id:pr().uuid(),product_id:pr().uuid().nullable(),product_group_id:pr().uuid().nullable(),payment_link_id:pr().uuid().nullable(),invoice_id:pr().nullable()}).strict(),Wr({embed_runtime:pr().min(16).max(128),embed_design:Ji,revision:Rr().int().min(1),parent_revision:Rr().int().min(1).nullable(),theme_id:pr().uuid().nullable(),css_variables:ei(pr(),pr()),custom_css:pr()}).strict(),Wr({embed_design:Ji.optional(),embed_style_revision:function(e){return function(e,t){return new e({type:"number",coerce:!0,checks:[],...D(t)})}(Pr,e)}().int().min(1).optional(),embed_runtime:pr().min(16).max(128).optional(),preview:Zr().optional()}).strict(),ni(["announcement_bar","countdown_bar","promo_info_card","recent_purchase_popup","coupon_popup_modal"]),ni(["layout.header.before","layout.header.after","layout.overlay","home.hero.after","home.grid.before","product.buybox.after","layout.footer.before","floating.bottom_right"])),lo=(ni(["announcement_bar","countdown_bar","promo_info_card","recent_purchase_popup","coupon_popup_modal"]),pr().regex(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/,"Use a valid hex color")),po=ni(["static","marquee"]),fo=ni(["brand_blue","emerald","sunset","rose","charcoal","custom"]),mo=ni(["hide","message"]),ho=ni(["compact","comfortable"]),_o=ni(["subtle","outline","solid"]),go=ni(["minimal","boxed"]),yo=ni(["indigo","emerald","amber","rose","slate","custom"]),vo=ni(["compact","feature","alert"]),bo=ni(["compact","comfortable"]),wo=ni(["subtle","outline","solid"]),So=ni(["sparkles","megaphone","gift","truck","shield","support","none"]),ko=ni(["show","hide"]),zo=ni(["midnight","ocean","ember","forest","custom"]),Oo=ni(["delay","exit_intent"]),xo=pr().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 "/"'),Eo=pr().trim().refine(e=>{const t=new Date(e);return!Number.isNaN(t.getTime())},"Use a valid date and time"),$o=Wr({text:pr().trim().min(1,"Text is required").max(160,"Text must be 160 characters or fewer"),linkLabel:pr().trim().max(32,"Link label must be 32 characters or fewer").optional().nullable(),linkUrl:xo.optional().nullable(),dismissible:Zr().default(!1),displayMode:po.default("marquee"),themePreset:fo.default("custom"),animationSpeedSeconds:Rr().int().min(8).max(40).default(30),backgroundColor:lo.default("#111827"),textColor:lo.default("#f9fafb")}),To=Wr({text:pr().trim().min(1,"Text is required").max(120,"Text must be 120 characters or fewer"),endAt:Eo,linkLabel:pr().trim().max(32,"Link label must be 32 characters or fewer").optional().nullable(),linkUrl:xo.optional().nullable(),dismissible:Zr().default(!1),themePreset:fo.default("brand_blue"),expiredBehavior:mo.default("hide"),expiredMessage:pr().trim().max(120,"Expired message must be 120 characters or fewer").optional().nullable(),density:ho.default("compact"),ctaStyle:_o.default("subtle"),timerStyle:go.default("boxed"),backgroundColor:lo.default("#111827"),textColor:lo.default("#f9fafb")}),Ao=Wr({eyebrow:pr().trim().max(32,"Eyebrow must be 32 characters or fewer").optional().nullable(),title:pr().trim().min(1,"Title is required").max(80,"Title must be 80 characters or fewer"),body:pr().trim().min(1,"Body is required").max(240,"Body must be 240 characters or fewer"),linkLabel:pr().trim().max(32,"Link label must be 32 characters or fewer").optional().nullable(),linkUrl:xo.optional().nullable(),themePreset:yo.default("indigo"),layoutStyle:vo.default("feature"),density:bo.default("comfortable"),ctaStyle:wo.default("outline"),icon:So.default("sparkles"),iconVisibility:ko.default("show"),backgroundColor:lo.default("#111827"),textColor:lo.default("#f9fafb"),accentColor:lo.default("#818cf8")}),No=Wr({title:pr().trim().min(1,"Title is required").max(80,"Title must be 80 characters or fewer").default("Recent purchases"),lookbackHours:Rr().int().min(1).max(168).default(24),cooldownSeconds:Rr().int().min(5).max(300).default(20),maxItems:Rr().int().min(1).max(20).default(8),anonymizeMode:ni(["first_name_city","first_name_country","initial_country","anonymous"]).default("first_name_city"),includedProductIds:Yr(pr().min(1)).max(50).default([])}),Io=Wr({eyebrow:pr().trim().max(32,"Eyebrow must be 32 characters or fewer").optional().nullable(),title:pr().trim().min(1,"Title is required").max(80,"Title must be 80 characters or fewer"),body:pr().trim().min(1,"Body is required").max(240,"Body must be 240 characters or fewer"),couponCode:pr().trim().min(2,"Coupon code is required").max(40,"Coupon code must be 40 characters or fewer"),primaryButtonLabel:pr().trim().min(1,"Primary button label is required").max(24,"Primary button label must be 24 characters or fewer").default("Copy code"),secondaryButtonLabel:pr().trim().min(1,"Secondary button label is required").max(24,"Secondary button label must be 24 characters or fewer").default("Maybe later"),disclaimer:pr().trim().max(100,"Disclaimer must be 100 characters or fewer").optional().nullable(),themePreset:zo.default("midnight"),trigger:Oo.default("delay"),delaySeconds:Rr().int().min(0).max(60).default(6),showOncePerSession:Zr().default(!0),reminderHours:Rr().int().min(1).max(720).default(24),backgroundColor:lo.default("#111827"),textColor:lo.default("#f8fafc"),accentColor:lo.default("#7c9cff"),heroImageUrl:xo.optional().nullable(),discountDisplay:pr().trim().max(24,"Discount display must be 24 characters or fewer").optional().nullable(),expiresAt:Eo.optional().nullable()}),Co=Wr({type:ii("announcement_bar"),slot:co,enabled:Zr().default(!0),sortOrder:Rr().int().min(0).max(999).default(0),config:$o}),Po=Wr({type:ii("recent_purchase_popup"),slot:co,enabled:Zr().default(!0),sortOrder:Rr().int().min(0).max(999).default(0),config:No}),Ro=Wr({type:ii("countdown_bar"),slot:co,enabled:Zr().default(!0),sortOrder:Rr().int().min(0).max(999).default(0),config:To}),Uo=Wr({type:ii("promo_info_card"),slot:co,enabled:Zr().default(!0),sortOrder:Rr().int().min(0).max(999).default(0),config:Ao}),jo=Wr({type:ii("coupon_popup_modal"),slot:co,enabled:Zr().default(!0),sortOrder:Rr().int().min(0).max(999).default(0),config:Io});Kr("type",[Co,Ro,Uo,Po,jo]),Kr("type",[Co.extend({id:pr().min(1)}),Ro.extend({id:pr().min(1)}),Uo.extend({id:pr().min(1)}),Po.extend({id:pr().min(1)}),jo.extend({id:pr().min(1)})]),new Set(["amount","currency","invoice_id","customer_email","id","email","price","price_usd","product_name","quantity"].map(e=>e.toLowerCase()));var qo=null,Zo=null;var Do=null,Lo=null;function Mo(e,t){const n=t?.shopId?.trim();return Lo=n||null,qo=null,Zo=null,Do={storeSlug:e,locale:t?.locale,currency:t?.currency,apiBaseUrl:t?.apiBaseUrl??"https://api.shoppex.io",checkoutBaseUrl:t?.checkoutBaseUrl??"https://checkout.shoppex.io"}}function Fo(){if(!Do)throw new t;return Do}function Bo(){return null!==Do}function Yo(e){Lo=e}function Jo(){return Lo}function Wo(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",r=[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 r?r:"",placeholder:"string"==typeof e.placeholder?e.placeholder:"",regex:"string"==typeof e.regex?e.regex:void 0}}).filter(e=>e.name.length>0&&"hidden"!==e.type)}function Vo(e){const t=e?.trim().toLowerCase()??"";return"true"===t||"1"===t||"yes"===t||"on"===t}function Go(e,t){if("checkbox"===e.type)return e.required&&!Vo(t)?`${e.name} is required.`:null;const n=t.trim();if(e.required&&!n)return`${e.name} is required.`;if(e.regex&&n)try{if(!new RegExp(e.regex).test(n))return`${e.name} has an invalid format.`}catch{return null}return null}function Ho(e,t){const n={};return e.forEach(e=>{const r=t[e.name]??e.defaultValue??"";if("checkbox"===e.type)return void(Vo(r)&&(n[e.name]="true"));const i=r.trim();i.length>0&&(n[e.name]=i)}),n}function Ko(e){return"number"==typeof e&&Number.isFinite(e)?Math.trunc(e):null}function Xo(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 Qo(e){if(!e)return-1;if("string"==typeof e.type&&"SERIALS"===e.type.toUpperCase())return Ko(e.stock)??-1;const t=function(e){const t=Array.isArray(e.price_variants)?e.price_variants.map(e=>Ko(e.stock)):[];return t.length>0?t:Array.isArray(e.variants)?e.variants.map(e=>Ko(e.stock)):[]}(e);return t.length>0?t.some(e=>null===e||e<0)?-1:t.filter(e=>null!==e).reduce((e,t)=>e+Math.max(t,0),0):Ko(e.stock)??-1}function ea(e){return!!function(e){return!!e&&(Xo(e.on_hold)||Xo(e.onHold)||Xo(e.is_on_hold)||Xo(e.isOnHold))}(e)||0===Qo(e)}function ta(e){return!ea(e)}function na(e){return 0===Ko(e?.stock)}function ra(e){return Ko(e?.stock)??-1}function ia(e=[]){const t=/* @__PURE__ */new Map;for(const n of e)n?.uniqid&&!t.has(n.uniqid)&&t.set(n.uniqid,n);return t}function oa(e,t=[]){const n=t instanceof Map?t:ia(t);return(e.product_uniqids??[]).flatMap(e=>{const t=n.get(e);return t?[t]:[]})}function aa(e=[]){return Array.from(ia(e).values())}function sa(e){return e?e.replace(/<[^>]*>/g," ").replace(/\s+/g," ").trim():""}function ua(e){return e.trim().toLowerCase()}function ca(e,t){const n=sa(t).toLowerCase();n&&e.push(n)}function la(e){const t=[];ca(t,e.title),ca(t,e.slug??void 0),ca(t,e.description);for(const n of e.product_highlights??[])ca(t,n);for(const n of e.variants??[])ca(t,n.title);for(const n of e.price_variants??[])ca(t,n.title??n.label);return t}function da(e,t){const n=ua(t);return!!n&&la(e).some(e=>e.includes(n))}function pa(e,t){const n=ua(t);if(!n)return!1;const r=sa(e.title).toLowerCase(),i=sa(e.slug??e.name??void 0).toLowerCase(),o=sa(e.description).toLowerCase();return r.includes(n)||i.includes(n)||o.includes(n)}function fa(e,t,n){const r=ua(t);if(!r)return[];let i=e.filter(e=>da(e,r));return n?.hideOutOfStock&&(i=i.filter(e=>ta(e))),null!=n?.maxResults?i.slice(0,n.maxResults):i}function ma(e,t){return 0!==e.length&&(!t||e.some(e=>ta(e)))}function ha(e,t,n,r){const i=ua(n);if(!i)return[];const o=!0===r?.hideOutOfStock,a=/* @__PURE__ */new Set,s=/* @__PURE__ */new Set,u=[],c=ia(e);for(const d of t){const e=d.uniqid??d.id;if(!e||s.has(e))continue;if(!pa(d,i))continue;const t=oa(d,c);if(ma(t,o)){s.add(e);for(const e of t)e?.uniqid&&a.add(e.uniqid);u.push({type:"group",group:d,products:t})}}const l=aa(e);for(const d of l)d?.uniqid&&!a.has(d.uniqid)&&da(d,i)&&(o&&!ta(d)||(a.add(d.uniqid),u.push({type:"product",product:d})));return null!=r?.maxResults?u.slice(0,r.maxResults):u}function _a(e,t,n,r){const i=ha(e,t,n,r),o=/* @__PURE__ */new Set,a=[],s=e=>{e?.uniqid&&!o.has(e.uniqid)&&(r?.hideOutOfStock&&!ta(e)||(o.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!=r?.maxResults?a.slice(0,r.maxResults):a}function ga(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 ya(e){const t=e.name?.trim()??"",n=`${t?`Name: ${t}\n\n`:""}${e.message.trim()}`,r=e.maxLength??2e3;return n.slice(0,r)}async function va(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(),r=e.title?.trim()??"",i=r.length>=2?r.slice(0,30):"Contact Request",o=ya({name:e.name,message:e.message}),a=e.invoiceId?.trim()||void 0,s=ga({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:o,...a?{invoice_id:a}:{}})}),c=await u.json().catch(()=>null);if(!u.ok)throw new Error(c?.message||c?.error||"Failed to send your message.");const l=c?.data?.uniqid;if(!l)throw new Error("Ticket created, but the response was incomplete.");return{uniqid:l}}function ba(e){return{discord:e?.discord_link??e?.social?.discord??null,telegram:e?.telegram_link??e?.social?.telegram??null}}var wa=/* @__PURE__ */new Map,Sa=/* @__PURE__ */new Map,ka={hits:0,misses:0};function za(e,t,n){const r=Date.now();wa.set(e,{data:t,ttl:n,updatedAt:r,expiresAt:r+n})}async function Oa(e,t,n,r=()=>!0){const i=function(e){const t=wa.get(e);return t||null}(e);if(i&&!function(e){return Date.now()>e.expiresAt}(i))return ka.hits+=1,i.data;if(i&&n.staleWhileRevalidate){if(ka.hits+=1,!Sa.has(e)){const i=(async()=>{try{const i=await t();return r(i)&&za(e,i,n.ttl),i}finally{Sa.delete(e)}})();Sa.set(e,i)}return i.data}if(Sa.has(e))return Sa.get(e);ka.misses+=1;const o=(async()=>{try{const i=await t();return r(i)&&za(e,i,n.ttl),i}finally{Sa.delete(e)}})();return Sa.set(e,o),o}var xa=/:([A-Za-z0-9_]+)/g;function Ea(e,t){return e.replace(xa,(e,n)=>{const r=t[n];if(null==r)throw new Error(`Missing endpoint param: ${n}`);const i=String(r).trim();if(!i)throw new Error(`Endpoint param "${n}" must not be empty`);return encodeURIComponent(i)})}function $a(e){return`shoppex_${e}`}function Ta(e){try{const t=localStorage.getItem($a(e));return t?JSON.parse(t):null}catch{return null}}function Aa(e,t){try{localStorage.setItem($a(e),JSON.stringify(t))}catch{console.warn("[shoppex] Failed to save to localStorage")}}function Na(e){try{localStorage.removeItem($a(e))}catch{}}function Ia(e){if("undefined"==typeof window)return null;const t=`presence_connection_${e}`,n=Ta(t);if(n&&n.trim())return n;const r="undefined"!=typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`spx_${Math.random().toString(36).slice(2)}${Date.now().toString(36)}`;return Aa(t,r),r}async function Ca(e){if(!Bo())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(),r=Ta(t);return"number"==typeof r&&n-r<15e3||(Aa(t,n),!1)}(e))return;const t=Fo(),n=Jo(),r=n?Ea("/v1/storefront/shops/id/:id/ping",{id:n}):Ea("/v1/storefront/shops/:storeSlug/ping",{storeSlug:t.storeSlug}),i=JSON.stringify({event_type:"client_error",referer:document.referrer||void 0,connection_id:Ia(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)}}),o=`${t.apiBaseUrl}${r}`;try{if("undefined"!=typeof navigator&&"function"==typeof navigator.sendBeacon){const e=new Blob([i],{type:"application/json"});if(navigator.sendBeacon(o,e))return}await fetch(o,{method:"POST",headers:{"Content-Type":"application/json"},body:i,keepalive:!0})}catch{}}var Pa=1e4;async function Ra(e){return new Promise(t=>setTimeout(t,e))}async function Ua(e,t={}){const r=t.baseUrl?null:Fo(),{method:i="GET",body:o,timeout:a=Pa,retries:s,baseUrl:u,cache:c}=t,l=s??("GET"===i?2:0),d=`${u??r?.apiBaseUrl??""}${e}`,p={"Content-Type":"application/json",Accept:"application/json"};let f=null;const m=async()=>{for(let t=0;t<=l;t++)try{const e=new AbortController,t=setTimeout(()=>e.abort(),a),r=await fetch(d,{method:i,headers:p,body:o?JSON.stringify(o):void 0,signal:e.signal});clearTimeout(t);const s=await ja(r);if(!r.ok){const e=r.statusText?`HTTP ${r.status}: ${r.statusText}`:`HTTP ${r.status}`;throw new n((s.data&&"object"==typeof s.data&&"error"in s.data&&"string"==typeof s.data.error?s.data.error:null)??(s.data&&"object"==typeof s.data&&"message"in s.data&&"string"==typeof s.data.message?s.data.message:null)??s.rawText??e,r.status)}if(204===r.status&&null===s.data)return{success:!0};if(!s.data||"object"!=typeof s.data||!("status"in s.data))throw new n("Invalid API response",r.status);return qa(s.data)}catch(e){let r=e instanceof Error?e:new Error(String(e));e instanceof DOMException&&"AbortError"===e.name&&(r=new n("Request timeout",408));const i=r instanceof n?r.statusCode:void 0;if(f={message:r.message,statusCode:i,isTransport:void 0===i||408===i},t<l){await Ra(500*Math.pow(2,t));continue}}return{success:!1,message:f?.message??"Unknown error"}},h="GET"===i&&c&&c.ttl>0?await Oa(c.key??`GET:${d}`,m,{ttl:c.ttl,staleWhileRevalidate:c.staleWhileRevalidate},e=>e.success):await m(),_=f;return!h.success&&_?.isTransport&&await Ca({endpoint:e,method:i,message:h.message??_.message,statusCode:_.statusCode,attemptCount:l+1,requestUrl:d,responseReceived:void 0!==_.statusCode&&408!==_.statusCode}),h}async function ja(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 qa(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 Za(e,t){return Ua(e,{...t,method:"GET"})}async function Da(e,t,n){return Ua(e,{...n,method:"POST",body:t})}var La=3e5;async function Ma(){const e=Fo(),t=await Za(Ea("/v1/storefront/shops/name/:storeSlug",{storeSlug:e.storeSlug}),{cache:{key:`store:${e.storeSlug}`,ttl:La,staleWhileRevalidate:!0}});return t.success&&t.data?(t.data.shop?.id&&Yo(t.data.shop.id),{success:!0,data:t.data.shop}):{success:!1,message:t.message}}async function Fa(e){const t=Fo(),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 r=n.size>0?`?${n.toString()}`:"",i=await Za(`${Ea("/v1/storefront/shops/name/:storeSlug",{storeSlug:t.storeSlug})}${r}`,{cache:{key:`storefront:${t.storeSlug}:${e?.productsLimit??"full"}:${e?.productsCursor??"start"}`,ttl:La,staleWhileRevalidate:!0}});return i.success&&i.data?(i.data.shop?.id&&Yo(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 Ba=12e4;function Ya(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,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 Ja(){const e=Fo(),t=await Za(Ea("/v1/storefront/products/public/:storeSlug",{storeSlug:e.storeSlug}),{cache:{key:`products:${e.storeSlug}`,ttl:Ba,staleWhileRevalidate:!0}});return t.success&&t.data?{success:!0,data:aa(t.data.products.map(Ya))}:{success:!1,message:t.message,data:[]}}function Wa(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 Va(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:Wa(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};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 Ga(e){return"string"==typeof e.line_id&&e.line_id.trim()?e:{...e,line_id:Va(e)}}var Ha={cart:"cart",cartBackup:"cart_backup",meta:"cart_meta",metaBackup:"cart_backup_meta",coupon:"cart_coupon",couponBackup:"cart_coupon_backup"};function Ka(e){return`${Ha[e]}_${Fo().storeSlug}`}function Xa(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 Qa(e){if(!Number.isFinite(e))throw new i("quantity must be a finite number");return Math.floor(e)}function es(e){const t=e?.trim().toUpperCase();return t||null}function ts(e){if(!Array.isArray(e))return[];const t=[];for(const n of e){if(!n||"object"!=typeof n)continue;const e=n,r="string"==typeof e.product_id?e.product_id.trim():"",i="string"==typeof e.variant_id?e.variant_id.trim():"",o=Number(e.quantity);if(!r||!i||!Number.isFinite(o)||o<1)continue;const a={line_id:"",product_id:r,variant_id:i,quantity:Math.floor(o)};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})}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),cs(a),a.line_id=("string"==typeof e.line_id?e.line_id.trim():"")||Va(a),t.push(Ga(a))}return t}function ns(){return Ta(Ka("meta"))}function rs(){const e=Ta(Ka("coupon"));return"string"!=typeof e?null:es(e)}function is(e){const t=es(e);return t?(Aa(Ka("coupon"),t),t):(Na(Ka("coupon")),null)}function os(){Na(Ka("coupon"))}function as(e){const t=ts(e);Aa(Ka("cart"),t);const n=Date.now(),r=ns(),i={created_at:r?.created_at??n,last_modified:n,version:(r?.version??0)+1,checksum:Xa(t)};Aa(Ka("meta"),i),0===t.length&&os()}function ss(e,t){const n=ts(e);Aa(Ka("cart"),n);const r=Date.now(),i=t??ns(),o={created_at:i?.created_at??r,last_modified:r,version:i?.version??1,checksum:Xa(n)};Aa(Ka("meta"),o)}function us(){return ts(Ta(Ka("cart")))}function cs(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 ls(){Na(Ka("cart")),Na(Ka("meta")),os()}function ds(){const e=us();Aa(Ka("cartBackup"),e);const t=rs();t?Aa(Ka("couponBackup"),t):Na(Ka("couponBackup"));const n=ns();if(n)Aa(Ka("metaBackup"),n);else{const t=Date.now();Aa(Ka("metaBackup"),{created_at:t,last_modified:t,version:1,checksum:Xa(e)})}}function ps(){const e=us(),t=ns(),n=Xa(e);return t?t.checksum===n:(ss(e,null),!0)}var fs="shoppex:affiliate_code:v1";function ms(){return Date.now()}function hs(e){const t=e?.trim().toLowerCase();return t||null}function _s(e,t=30){const n=hs(e);return n?(function(e){if("undefined"!=typeof window)try{window.localStorage.setItem(fs,JSON.stringify(e))}catch{}}({code:n,expiresAt:ms()+(r=t,24*Math.max(1,r)*60*60*1e3)}),n):(gs(),null);var r}function gs(){if("undefined"!=typeof window)try{window.localStorage.removeItem(fs)}catch{}}function ys(){const e=function(){if("undefined"==typeof window)return null;try{const e=window.localStorage.getItem(fs);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<=ms()?(gs(),null):hs(e.code):null}async function vs(e){const t=hs(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 Da("/v1/storefront/affiliates/resolve",{shop_slug:Fo().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:hs(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 bs(e){const t=e?.trim();return t||null}function ws(e){const t=e?.trim();return t||null}function Ss(e){const t=e?.trim().toUpperCase();return t&&/^[A-Z]{3}$/.test(t)?t:null}function ks(e){return Ss(e.currency)??function(){if("undefined"==typeof window||!window.location)return null;const e="string"==typeof window.location.search?window.location.search:"";if(e)return Ss(new URLSearchParams(e).get("currency"));const t="string"==typeof window.location.href?window.location.href:"";if(!t)return null;try{return Ss(new URL(t,"https://storefront.shoppex.local").searchParams.get("currency"))}catch{return null}}()}function zs(e){const t=e?.trim()??"";if(!t)return"Checkout failed. Please try again.";if(Os(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 Os(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 xs(e,t,n){const r=t?.trim();if(!r)return null;try{const t=new URL(e),i=new URL(r);if(t.origin!==i.origin)return null;const o=t.pathname.replace(/\/+$/,""),a=`${i.pathname.replace(/\/+$/,"")}/invoice/`.replace(/\/{2,}/g,"/");if(!o.startsWith(a))return null;const s=o.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 Es(e,t){const n=ws(t.email),r="string"==typeof t.locale?t.locale.trim():"";if(!n&&!r)return e;try{const t=new URL(e);if(r&&t.searchParams.set("locale",r),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 $s(e,t){const n=e?.invoice,r=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&&r&&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,r)??void 0),r&&i?{invoiceId:r,checkoutUrl:i,rewards:e?.rewards??n?.rewards??null}:null}function Ts(e,t){return"string"==typeof e?{...t,coupon:e}:e??t??{}}function As(e){const t=e.affiliateCode??e.referralCode;return"string"==typeof t&&t.trim().length>0?t.trim().toLowerCase():ys()}function Ns(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}))}function Is(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 Cs(...e){for(const t of e)if("string"==typeof t&&t.length>0)return t}function Ps(e,t){const n=e,r=Is(n.rating)??Is(n.score)??0,i=Cs(n.comment,n.message),o=Cs(n.author,n.customer_name),a=n.created_at??n.createdAt,s="number"==typeof a||"string"==typeof a?String(a):"",u=Cs(n.id,n.uniqid)??`review:${s||t}`;return{...n,id:u,rating:r,...i?{comment:i}:{},...o?{author:o}:{},created_at:s}}async function Rs(e){const t=Fo(),n=new URLSearchParams;n.set("limit",String(100)),"string"==typeof e&&e.trim().length>0&&n.set("cursor",e);const r=`?${n.toString()}`,i=await Za(`${Ea("/v1/storefront/feedback/shop/:storeSlug",{storeSlug:t.storeSlug})}${r}`,{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 Us(e){const t=e.trim();return t||null}var js=3e5;var qs=3e5;async function Zs(){const e=Fo(),t=await Za(Ea("/v1/storefront/shops/name/:storeSlug/menus",{storeSlug:e.storeSlug}),{cache:{key:`menus:${e.storeSlug}`,ttl:qs,staleWhileRevalidate:!0}});return t.success&&t.data?{success:!0,data:t.data.menus}:{success:!1,message:t.message}}async function Ds(e){const t=Fo(),n=await Za(Ea("/v1/storefront/shops/name/:storeSlug/menus/:title",{storeSlug:t.storeSlug,title:e}),{cache:{key:`menu:${t.storeSlug}:${e}`,ttl:qs,staleWhileRevalidate:!0}});return n.success&&n.data?{success:!0,data:n.data.menu}:{success:!1,message:n.message}}async function Ls(e){return Ds(e)}async function Ms(e){const t=Fo(),n=await Za(Ea("/v1/storefront/shops/name/:storeSlug/menus/:title",{storeSlug:t.storeSlug,title:e}),{cache:{key:`menu-slot:${t.storeSlug}:${e}`,ttl:qs,staleWhileRevalidate:!0}});return n.success&&n.data?{success:!0,data:n.data.menu}:{success:!1,message:n.message}}function Fs(e){return function(e){const t=h[e];return[t.title,...t.aliases]}(e)}async function Bs(e,t){if(!Bo())return;if("undefined"==typeof document)return;const n=Fo(),r=Ia(n.storeSlug);try{const i=Ea("/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:r??void 0})})}catch{}}async function Ys(){if(!Bo())return{success:!1,message:"SDK not initialized"};const e=Fo(),t=Jo();return Za(t?Ea("/v1/storefront/shops/id/:id/recent-sales",{id:t}):Ea("/v1/storefront/shops/:storeSlug/recent-sales",{storeSlug:e.storeSlug}),{cache:!1,retries:0,timeout:5e3})}async function Js(){if(!Bo())return{success:!1,message:"SDK not initialized"};const e=Fo(),t=Jo();return Za(t?Ea("/v1/storefront/shops/id/:id/online-users",{id:t}):Ea("/v1/storefront/shops/:storeSlug/online-users",{storeSlug:e.storeSlug}),{cache:!1,retries:0,timeout:5e3})}async function Ws(){if(!Bo())return{success:!1,message:"SDK not initialized"};if("undefined"==typeof document)return{success:!1,message:"Document is not available"};const e=Fo(),t=Jo();return Da(t?Ea("/v1/storefront/shops/id/:id/ping",{id:t}):Ea("/v1/storefront/shops/:storeSlug/ping",{storeSlug:e.storeSlug}),{referer:document.referrer||void 0,connection_id:Ia(e.storeSlug)??void 0},{retries:0,timeout:5e3})}function Vs(e,t){const n=Fo();return new Intl.NumberFormat(t??n.locale??"en-US",{style:"currency",currency:e??n.currency??"USD"})}function Gs(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function Hs(e){return Gs(e)&&Gs(e.theme)?{...e,version:"number"==typeof e.version?e.version:0,revision:"number"==typeof e.revision?e.revision:0,theme:{...e.theme,content:Gs(e.theme.content)?e.theme.content:{},layout:Gs(e.theme.layout)?e.theme.layout:{},style_slots:Gs(e.theme.style_slots)?e.theme.style_slots:{},...Array.isArray(e.theme.pages)?{pages:e.theme.pages}:{},...Gs(e.theme.terms)?{terms:e.theme.terms}:{}}}:null}async function Ks(e){const t=await Za(Ea("/v1/storefront/themes/builder/published/:shopSlug",{shopSlug:e}));return t.success&&t.data?Gs(n=t.data)?{settings:Gs(n.settings)?n.settings:{},builder_settings:Hs(n.builder_settings),content:Gs(n.content)?n.content:{},style_slots:Gs(n.style_slots)?n.style_slots:{}}:null:null;var n}async function Xs(e){const t=await Ks(e);return t?t.settings:null}function Qs(e){const t={};for(const[n,r]of Object.entries(e.settings)){t[n]={};for(const[e,i]of Object.entries(r))t[n][e]=i.default}return t}function eu(e,t){const n={...e};for(const[r,i]of Object.entries(t))i&&(n[r]={...n[r],...i});return n}var tu={init:function(e,t){"string"==typeof e?Mo(e,t):Mo(e.storeId,e)},isInitialized:Bo,getConfig:Fo,client:function(e){const t=Fo().apiBaseUrl??"https://api.shoppex.io";if(qo&&Zo===t&&!e)return qo;const n=function(e,t){return a({baseUrl:e,headers:t?{Authorization:`Bearer ${t}`}:void 0})}(t,e);return e||(qo=n,Zo=t),n},getStore:Ma,getStorefront:Fa,getStoreLogoUrl:async function(){const e=await Ma();return e.success&&e.data?.logo?e.data.logo:null},getStoreBannerUrl:async function(){const e=await Ma();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 r=n.replace(/^https?:\/\//,"").split("/")[0].trim(),i=t??(Bo()?Fo().apiBaseUrl:"https://api.shoppex.io"),o=await Za(Ea("/v1/storefront/shops/domain/:domain",{domain:r}),{baseUrl:i,cache:{key:`store:domain:${r}`,ttl:La,staleWhileRevalidate:!0}});return o.success&&o.data?.shop?(o.data.shop.id&&Yo(o.data.shop.id),{success:!0,data:o.data.shop}):{success:!1,message:o.message??"Failed to resolve store"}},getProducts:Ja,getStorefrontProductsPage:async function(e){const t=Fo(),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 r=n.size>0?`?${n.toString()}`:"",i=await Za(`${Ea("/v1/storefront/products/shop/:storeSlug",{storeSlug:t.storeSlug})}${r}`,{cache:{key:`products:page:${t.storeSlug}:${e?.limit??"default"}:${e?.cursor??"start"}:${e?.sort??"featured"}:${o=e?.category,void 0===o?"category:unset":null===o?"category:null":`category:${o}`}:${!0===e?.hideOutOfStock?"in-stock":"all-stock"}`,ttl:Ba,staleWhileRevalidate:!0}});var o;return i.success&&i.data?{success:!0,data:{products:i.data.products.map(Ya),pagination:i.data.pagination??null}}:{success:!1,message:i.message}},getProduct:async function(e){let t=Jo();if(!t){const e=await Ma();t=e.success?e.data?.id??null:null}const n=t?`?slug_shop_id=${encodeURIComponent(t)}`:"",r=await Za(`${Ea("/v1/storefront/products/unique/:idOrSlug",{idOrSlug:e})}${n}`,{cache:{key:`product:${e}:${t??"no-shop"}`,ttl:Ba,staleWhileRevalidate:!0}});return r.success&&r.data?.product?{success:!0,data:Ya(r.data.product)}:{success:!1,message:r.message}},getCategories:async function(){const e=await Ja();if(!e.success||!e.data)return{success:!1,message:e.message};const t=/* @__PURE__ */new Set;for(const n of e.data)if(n.categories)for(const e of n.categories)"string"==typeof e?t.add(e):e&&"object"==typeof e&&"uniqid"in e&&t.add(e.uniqid);return{success:!0,data:Array.from(t)}},getCart:us,getCartItemCount:function(){return us().reduce((e,t)=>e+t.quantity,0)},getCartCoupon:rs,setCartCoupon:is,clearCartCoupon:os,addToCart:function(e,t,n=1,r){if(!e||!t)throw new i("product_id and variant_id are required");const o=Qa(n);if(o<1)throw new i("quantity must be at least 1");const a=us(),s=Va({product_id:e,variant_id:t,addons:r?.addons,custom_fields:r?.custom_fields,price_variant_id:r?.price_variant_id,price_data:r?.price_data}),u=a.findIndex(e=>e.line_id===s);if(u>=0)a[u].quantity+=o,r?.addons&&(a[u].addons=r.addons),r?.custom_fields&&(a[u].custom_fields=r.custom_fields),r?.price_variant_id&&(a[u].price_variant_id=r.price_variant_id),r?.price_data&&(a[u].price_data=r.price_data),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)}(a[u],r),cs(a[u]);else{const n={line_id:s,product_id:e,variant_id:t,quantity:o,addons:r?.addons,custom_fields:r?.custom_fields,price_variant_id:r?.price_variant_id,price_data:r?.price_data,title:r?.title,variant_title:r?.variant_title,image_url:r?.image_url,addon_labels:r?.addon_labels,max_quantity:r?.max_quantity,min_quantity:r?.min_quantity};cs(n),a.push(n)}as(a)},setCartItem:function(e,t,n=1,r){if(!e||!t)throw new i("product_id and variant_id are required");const o=Qa(n);if(o<1)throw new i("quantity must be at least 1");const a=us(),s=Va({product_id:e,variant_id:t,addons:r?.addons,custom_fields:r?.custom_fields,price_variant_id:r?.price_variant_id,price_data:r?.price_data});for(let i=a.length-1;i>=0;i-=1)a[i].product_id===e&&a[i].variant_id===t&&a.splice(i,1);const u={line_id:s,product_id:e,variant_id:t,quantity:o,addons:r?.addons,custom_fields:r?.custom_fields,price_variant_id:r?.price_variant_id,price_data:r?.price_data,title:r?.title,variant_title:r?.variant_title,image_url:r?.image_url,addon_labels:r?.addon_labels,max_quantity:r?.max_quantity,min_quantity:r?.min_quantity};cs(u),a.push(u),as(a)},updateCartItem:function(e,t){const n=us(),r=e.trim();if(!r)throw new i("line_id is required");const o=n.findIndex(e=>e.line_id===r);if(o<0)throw new i("Item not found in cart");if(void 0!==t.quantity){const e=Qa(t.quantity);if(e<1)return n.splice(o,1),void as(n);n[o].quantity=e}void 0!==t.addons&&(n[o].addons=t.addons),void 0!==t.custom_fields&&(n[o].custom_fields=t.custom_fields),void 0!==t.price_variant_id&&(n[o].price_variant_id=t.price_variant_id),void 0!==t.price_data&&(n[o].price_data=t.price_data),void 0!==t.max_quantity&&(n[o].max_quantity=t.max_quantity),void 0!==t.min_quantity&&(n[o].min_quantity=t.min_quantity),cs(n[o]),as(n)},removeFromCart:function(e){const t=e.trim();if(!t)throw new i("line_id is required");as(us().filter(e=>e.line_id!==t))},clearCart:ls,createCartBackup:ds,restoreCartFromBackup:function(){const e=ts(Ta(Ka("cartBackup"))),t=Ta(Ka("metaBackup")),n=Ta(Ka("couponBackup"));return!!(e&&e.length>0)&&(ss(e,t),"string"==typeof n?is(n):os(),!0)},mergeBaskets:function(e){const t=us();for(const n of e){const e="string"==typeof n.product_id?n.product_id.trim():"",r="string"==typeof n.variant_id?n.variant_id.trim():"";if(!e||!r)continue;let i;try{i=Qa(n.quantity)}catch{continue}if(i<1)continue;const o=Ga({...n,line_id:n.line_id??Va(n),product_id:e,variant_id:r,quantity:i}),a=t.findIndex(e=>e.line_id===o.line_id);a>=0?(t[a].quantity=Math.max(t[a].quantity,i),cs(t[a])):(cs(o),t.push(o))}return as(t),t},moveBasketItem:function(e,t,n,r){const o=us(),a=o.findIndex(n=>n.product_id===e&&n.variant_id===t);if(a<0)throw new i("Item not found in cart");const[s]=o.splice(a,1),u=Va({...s,product_id:n,variant_id:r}),c=o.findIndex(e=>e.line_id===u);if(c>=0)o[c].quantity+=s.quantity,cs(o[c]);else{const e=Ga({...s,product_id:n,variant_id:r,line_id:u});cs(e),o.push(e)}as(o)},getCartStats:function(){const e=us(),t=ps(),n=ns(),r=Ta(Ka("cartBackup"))??[],i=e.length>0&&e.every(e=>"number"==typeof e.price_data?.unit_price),o=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:r.length>0,integrity_valid:t,total_price:o,total_price_is_estimate:e.length>0&&!i}},validateCartIntegrity:ps,quoteCart:async function(e){const t=function(e){const t=Fo(),n=es(e)??rs()??void 0;return{store_slug:t.storeSlug,items:us(),coupon:n}}(e);return Da("/v1/storefront/cart/quote",{shop_slug:t.store_slug,cart:t.items,coupon:t.coupon})},resolveCartLineId:function(e,t,n=us()){const r=n.filter(n=>n.product_id===e&&n.variant_id===t);if(0===r.length)throw new i(`No cart line found for ${e}/${t}`);return r[0].line_id},checkout:async function(e,t){const n=Ts(e,t),{autoRedirect:r=!0,email:i,coupon:o}=n,a=void 0===o?rs():bs(o),s=ws(i),u=As(n),c=ks(n),l=us();if(0===l.length)return{success:!1,message:"Cart is empty"};ds();const d=Fo();let p=await Da("/v1/storefront/invoices/from-cart",{shop_slug:d.storeSlug,cart:Ns(l),email:s,coupon:a,currency:c,affiliate_code:u},{retries:0});if(!p.success||!p.data)return Os(p.message)&&ls(),{success:!1,message:zs(p.message)};const f=$s(p.data,d.checkoutBaseUrl);if(!f)return{success:!1,message:"Failed to create invoice"};const{invoiceId:m}=f,h=xs(f.checkoutUrl,d.checkoutBaseUrl,m);if(!h)return{success:!1,message:"Failed to create invoice"};const _=Es(h,{email:s,locale:n.locale});return r&&"undefined"!=typeof window&&window?.location&&(window.location.href=_,ls()),{success:!0,redirectUrl:_,invoiceId:m,rewards:f.rewards}},buildCheckoutUrl:async function(e,t){const n=Ts(e,t),{email:r,coupon:i}=n,o=void 0===i?rs():bs(i),a=ws(r),s=As(n),u=ks(n),c=us();if(0===c.length)throw new Error("Cart is empty");const l=Fo();let d=await Da("/v1/storefront/invoices/from-cart",{shop_slug:l.storeSlug,cart:Ns(c),email:a,coupon:o,currency:u,affiliate_code:s},{retries:0});if(!d.success||!d.data)throw Os(d.message)&&ls(),new Error(zs(d.message));const p=$s(d.data,l.checkoutBaseUrl);if(!p)throw new Error("Failed to create invoice");const f=xs(p.checkoutUrl,l.checkoutBaseUrl,p.invoiceId);if(!f)throw new Error("Failed to create invoice");return Es(f,{email:a,locale:n.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=hs(t),!t)return null;if(_s(t),Bo())try{const e=await Da("/v1/storefront/affiliates/attribution",{shop_slug:Fo().storeSlug,code:t},{retries:0});return e.success&&e.data?.accepted&&e.data?.affiliate_code?(_s(e.data.affiliate_code),e.data.affiliate_code):(gs(),null)}catch{return t}return t},validateAffiliateCode:vs,applyAffiliateCode:async function(e){const t=await vs(e);return t.success&&t.data?.affiliate_code&&_s(t.data.affiliate_code),t},getAffiliateCode:ys,setAffiliateCode:_s,clearAffiliateCode:gs,validateCoupon:async function(e,t){const n=e.trim();if(!n)return{success:!1,message:"Coupon code is required"};const r={code:n},i="string"==typeof t?t:t?.productId,o="string"==typeof t?void 0:t?.variantId;if(o&&!i)return{success:!1,message:"productId is required when variantId is provided"};if(i)r.product_id=i,o&&(r.variant_id=o);else{const e=us();if(0===e.length)return{success:!1,message:"Cart is empty"};const t=await async function(){const e=Jo();if(e)return e;const t=await Ma();return t.success&&t.data?.id?t.data.id:null}();if(!t)return{success:!1,message:"Failed to resolve store"};r.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 Da("/v1/storefront/coupons/check",r)},getShopReviews:async function(){const e=[],t=/* @__PURE__ */new Set;let n=null;for(;;){const r=await Rs(n);if(!r.success||!r.data)return{success:!1,message:r.message,data:[]};e.push(...(r.data.feedback??[]).map((t,n)=>Ps(t,e.length+n)));const i=r.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(!Bo())return{success:!1,message:"SDK not initialized"};const n=e.trim();if(!n)return{success:!0,data:[]};const r=await Fa();return r.success&&r.data?{success:!0,data:_a(r.data.products??[],r.data.groups??[],n,{hideOutOfStock:t?.hideOutOfStock,maxResults:t?.maxResults})}:{success:!1,message:r.message??"Failed to fetch storefront catalog"}},searchCatalogItems:async function(e,t){if(!Bo())return{success:!1,message:"SDK not initialized"};const n=e.trim();if(!n)return{success:!0,data:[]};const r=await Fa();return r.success&&r.data?{success:!0,data:ha(r.data.products??[],r.data.groups??[],n,{hideOutOfStock:t?.hideOutOfStock,maxResults:t?.maxResults})}:{success:!1,message:r.message??"Failed to fetch storefront catalog"}},getInvoice:async function(e){const t=Us(e);if(!t)return{success:!1,message:"Invoice ID is required"};const n=await Za(Ea("/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=Us(e);if(!t)return{success:!1,message:"Invoice ID is required"};const n=await Za(Ea("/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=Fo(),t=await Za(Ea("/v1/storefront/shops/name/:storeSlug/pages",{storeSlug:e.storeSlug}),{cache:{key:`pages:${e.storeSlug}`,ttl:js,staleWhileRevalidate:!0}});return t.success&&t.data?{success:!0,data:t.data.pages}:{success:!1,message:t.message}},getPage:async function(e){const t=Fo(),n=await Za(Ea("/v1/storefront/shops/name/:storeSlug/pages/:slug",{storeSlug:t.storeSlug,slug:e}),{cache:{key:`page:${t.storeSlug}:${e}`,ttl:js,staleWhileRevalidate:!0}});return n.success&&n.data?{success:!0,data:n.data.page}:{success:!1,message:n.message}},getMenus:Zs,getMenu:Ls,getMenuBySlot:Ms,getMenuByTitle:Ds,getMenuSlotTitles:Fs,trackPageView:Bs,getStorefrontOnlineUsers:Js,getStorefrontRecentSales:Ys,touchStorefrontPresence:Ws,createFormatter:Vs,formatPrice:function(e,t,n){const r="string"==typeof e?parseFloat(e):e;return Number.isNaN(r)?Vs(t,n).format(0):Vs(t,n).format(r)},clearCache:function(){wa.clear(),Sa.clear()},invalidateCache:function(e){for(const t of wa.keys())(t===e||t.startsWith(e))&&wa.delete(t)},getCacheStats:function(){return{hits:ka.hits,misses:ka.misses,pendingRequests:Sa.size,entries:wa.size}},fetchPublishedBuilderSettings:Ks,fetchPublishedThemeSettings:Xs,resolveDefaults:Qs,mergeSettings:eu};if("undefined"!=typeof window){const e=window;e.shoppex?.isInitialized?.()||(e.shoppex=tu)}export{i as CartError,n as NetworkError,t as NotInitializedError,e as ShoppexError,r as ValidationError,ya as buildStorefrontContactMessage,Ho as buildStorefrontCustomFieldPayload,ia as buildStorefrontProductLookup,la as collectProductSearchHaystack,Va as computeCartLineId,tu as default,tu as shoppex,Ga as ensureCartLineId,Ks as fetchPublishedBuilderSettings,Xs as fetchPublishedThemeSettings,fa as filterProductsBySearchQuery,Ls as getMenu,Ms as getMenuBySlot,Ds as getMenuByTitle,Fs as getMenuSlotTitles,Zs as getMenus,aa as getMergedStorefrontProducts,oa as getStorefrontGroupProducts,Js as getStorefrontOnlineUsers,Ys as getStorefrontRecentSales,pa as groupMatchesSearchQuery,ta as isProductInStock,ea as isProductOutOfStock,Vo as isStorefrontCheckboxCustomFieldValueChecked,na as isVariantOutOfStock,eu as mergeSettings,ua as normalizeSearchQuery,Wo as normalizeStorefrontCustomFields,da as productMatchesSearchQuery,Qs as resolveDefaults,Qo as resolveDisplayStock,ga as resolveStorefrontApiBaseUrl,ba as resolveStorefrontSocialLinks,ra as resolveVariantStockValue,_a as searchMergedStorefrontCatalog,ha as searchMergedStorefrontCatalogItems,sa as stripHtmlFromText,va as submitStorefrontContactTicket,Ws as touchStorefrontPresence,Bs as trackPageView,Go as validateStorefrontCustomFieldValue};
1
+ var e=class e extends Error{constructor(t,n,o){super(t),this.name="ShoppexError",this.code=n,this.statusCode=o,Object.setPrototypeOf(this,e.prototype)}},t=class t extends e{constructor(){super("SDK not initialized. Call shoppex.init() first.","NOT_INITIALIZED"),this.name="NotInitializedError",Object.setPrototypeOf(this,t.prototype)}},n=class t extends e{constructor(e,n){super(e,"NETWORK_ERROR",n),this.name="NetworkError",Object.setPrototypeOf(this,t.prototype)}},o=class t extends e{constructor(e,n){super(e,"VALIDATION_ERROR"),this.name="ValidationError",this.invalidFields=n,Object.setPrototypeOf(this,t.prototype)}},i=class t extends e{constructor(e){super(e,"BASKET_ERROR"),this.name="CartError",Object.setPrototypeOf(this,t.prototype)}},r=/\{[^{}]+\}/g;function a(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=m(t);const h=[];async function _(e,_){const{baseUrl:y,fetch:g=o,Request:v=n,headers:b,params:w={},parseAs:S="json",querySerializer:k,bodySerializer:z=r??p,pathSerializer:O,body:x,middleware:E=[],...T}=_||{};let $=t;y&&($=m(y)??t);let A="function"==typeof i?i:c(i);k&&(A="function"==typeof k?k:c({..."object"==typeof i?i:{},...k}));const I=O||a||d,N=void 0===x?void 0:z(x,f(s,b,w.header)),C=f(void 0===N||N instanceof FormData?{}:{"Content-Type":"application/json"},s,b,w.header),P=[...h,...E],R={redirect:"follow",...l,...T,body:N,headers:C};let U,q,j,D=new v(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:$,params:w,querySerializer:A,pathSerializer:I}),R);for(const t in T)t in D||(D[t]=T[t]);if(P.length){U=Math.random().toString(36).slice(2,11),q=Object.freeze({baseUrl:$,fetch:g,parseAs:S,querySerializer:A,bodySerializer:z,pathSerializer:I});for(const t of P)if(t&&"object"==typeof t&&"function"==typeof t.onRequest){const n=await t.onRequest({request:D,schemaPath:e,params:w,options:q,id:U});if(n){if(!(n instanceof v)){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 g(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)=>_(t,{...n,method:e.toUpperCase()}),GET:(e,t)=>_(e,{...t,method:"GET"}),PUT:(e,t)=>_(e,{...t,method:"PUT"}),POST:(e,t)=>_(e,{...t,method:"POST"}),DELETE:(e,t)=>_(e,{...t,method:"DELETE"}),OPTIONS:(e,t)=>_(e,{...t,method:"OPTIONS"}),HEAD:(e,t)=>_(e,{...t,method:"HEAD"}),PATCH:(e,t)=>_(e,{...t,method:"PATCH"}),TRACE:(e,t)=>_(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()`");h.push(t)}},eject(...e){for(const t of e){const e=h.indexOf(t);-1!==e&&h.splice(e,1)}}}}function s(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 u(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(s(i,t[a],n))}const r=o.join(i);return"label"===n.style||"matrix"===n.style?`${i}${r}`:r}function l(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(s(e,r,n));return"label"===n.style||"matrix"===n.style?`${o}${i.join(o)}`:i.join(o)}function c(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(l(o,i,{style:"form",explode:!0,...e?.array,allowReserved:e?.allowReserved||!1}))}else"object"!=typeof i?n.push(s(o,i,e)):n.push(u(o,i,{style:"deepObject",explode:!0,...e?.object,allowReserved:e?.allowReserved||!1}))}return n.join("&")}}function d(e,t){let n=e;for(const o of e.match(r)??[]){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,l(e,a,{style:r,explode:i})):n="object"!=typeof a?"matrix"!==r?n.replace(o,"label"===r?`.${encodeURIComponent(a)}`:encodeURIComponent(a)):n.replace(o,`;${s(e,a)}`):n.replace(o,u(e,a,{style:r,explode:i}))}return n}function p(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 f(...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 m(e){return e.endsWith("/")?e.substring(0,e.length-1):e}var h={header:{title:"Header",aliases:["Header Menu"]},footer:{title:"Footer",aliases:["Footer Links","Legal Links"]}};var _;Object.keys(h);function y(e,t,n){function o(n,o){if(n._zod||Object.defineProperty(n,"_zod",{value:{def:o,constr:a,traits:/* @__PURE__ */new Set},enumerable:!1}),n._zod.traits.has(e))return;n._zod.traits.add(e),t(n,o);const i=a.prototype,r=Object.keys(i);for(let e=0;e<r.length;e++){const t=r[e];t in n||(n[t]=i[t].bind(n))}}const i=n?.Parent??Object;class r extends i{}function a(e){var t;const i=n?.Parent?new r:this;o(i,e),(t=i._zod).deferred??(t.deferred=[]);for(const n of i._zod.deferred)n();return i}return Object.defineProperty(r,"name",{value:e}),Object.defineProperty(a,"init",{value:o}),Object.defineProperty(a,Symbol.hasInstance,{value:t=>!!(n?.Parent&&t instanceof n.Parent)||t?._zod?.traits?.has(e)}),Object.defineProperty(a,"name",{value:e}),a}var g=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},v=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}};(_=globalThis).__zod_globalConfig??(_.__zod_globalConfig={});var b=globalThis.__zod_globalConfig;function w(e){return e&&Object.assign(b,e),b}function S(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 k(e,t){return"bigint"==typeof t?t.toString():t}function z(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function O(e){return null==e}function x(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}var E=/* @__PURE__*/Symbol("evaluating");function T(e,t,n){let o;Object.defineProperty(e,t,{get(){if(o!==E)return void 0===o&&(o=E,o=n()),o},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function $(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function A(...e){const t={};for(const n of e){const e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}function I(e){return JSON.stringify(e)}var N="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function C(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}var P=/* @__PURE__*/z(()=>{if(b.jitless)return!1;if("undefined"!=typeof navigator&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch(e){return!1}});function R(e){if(!1===C(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!==C(n)&&!1!==Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")}function U(e){return R(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}var q=/* @__PURE__*/new Set(["string","number","symbol"]);function j(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function D(e,t,n){const o=new e._zod.constr(t??e._zod.def);return t&&!n?.parent||(o._zod.parent=e),o}function Z(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 L={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 M(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 F(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 B(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function Y(e){return"string"==typeof e?e:e?.message}function J(e,t,n){const o=e.message?e.message:Y(e.inst?._zod.def?.error?.(e))??Y(t?.error?.(e))??Y(n.customError?.(e))??Y(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 W(e){return Array.isArray(e)?"array":"string"==typeof e?"string":"unknown"}function V(...e){const[t,n,o]=e;return"string"==typeof t?{message:t,code:"custom",input:n,inst:o}:{...t}}var G=(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,k,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},H=y("$ZodError",G),K=y("$ZodError",G,{Parent:Error});var X=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 g;if(a.issues.length){const t=new(i?.Err??e)(a.issues.map(e=>J(e,r,w())));throw N(t,i?.callee),t}return a.value},Q=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=>J(e,r,w())));throw N(t,i?.callee),t}return a.value},ee=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 g;return r.issues.length?{success:!1,error:new(e??H)(r.issues.map(e=>J(e,i,w())))}:{success:!0,data:r.value}},te=/* @__PURE__*/ee(K),ne=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=>J(e,i,w())))}:{success:!0,data:r.value}},oe=/* @__PURE__*/ne(K),ie=e=>(t,n,o)=>{const i=o?{...o,direction:"backward"}:{direction:"backward"};return X(e)(t,n,i)},re=e=>(t,n,o)=>X(e)(t,n,o),ae=e=>async(t,n,o)=>{const i=o?{...o,direction:"backward"}:{direction:"backward"};return Q(e)(t,n,i)},se=e=>async(t,n,o)=>Q(e)(t,n,o),ue=e=>(t,n,o)=>{const i=o?{...o,direction:"backward"}:{direction:"backward"};return ee(e)(t,n,i)},le=e=>(t,n,o)=>ee(e)(t,n,o),ce=e=>async(t,n,o)=>{const i=o?{...o,direction:"backward"}:{direction:"backward"};return ne(e)(t,n,i)},de=e=>async(t,n,o)=>ne(e)(t,n,o),pe=/^[cC][0-9a-z]{6,}$/,fe=/^[0-9a-z]+$/,me=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,he=/^[0-9a-vA-V]{20}$/,_e=/^[A-Za-z0-9]{27}$/,ye=/^[a-zA-Z0-9_-]{21}$/,ge=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,ve=/^([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})$/,be=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)$/,we=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var Se=/^(?:(?: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])$/,ke=/^(([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}|:))$/,ze=/^((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])$/,Oe=/^(([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])$/,xe=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Ee=/^[A-Za-z0-9_-]*$/,Te=/^https?$/,$e=/^\+[1-9]\d{6,14}$/,Ae="(?:(?:\\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])))",Ie=/*@__PURE__*/new RegExp(`^${Ae}$`);function Ne(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 Ce=/^-?\d+$/,Pe=/^-?\d+(?:\.\d+)?$/,Re=/^(?:true|false)$/i,Ue=/^[^A-Z]*$/,qe=/^[^a-z]*$/,je=/*@__PURE__*/y("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),De={number:"number",bigint:"bigint",object:"date"},Ze=/*@__PURE__*/y("$ZodCheckLessThan",(e,t)=>{je.init(e,t);const n=De[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})}}),Le=/*@__PURE__*/y("$ZodCheckGreaterThan",(e,t)=>{je.init(e,t);const n=De[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})}}),Me=/*@__PURE__*/y("$ZodCheckMultipleOf",(e,t)=>{je.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})}}),Fe=/*@__PURE__*/y("$ZodCheckNumberFormat",(e,t)=>{je.init(e,t),t.format=t.format||"float64";const n=t.format?.includes("int"),o=n?"int":"number",[i,r]=L[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=Ce)}),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})}}),Be=/*@__PURE__*/y("$ZodCheckMaxLength",(e,t)=>{var n;je.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!O(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=W(o);n.issues.push({origin:i,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Ye=/*@__PURE__*/y("$ZodCheckMinLength",(e,t)=>{var n;je.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!O(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=W(o);n.issues.push({origin:i,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Je=/*@__PURE__*/y("$ZodCheckLengthEquals",(e,t)=>{var n;je.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!O(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=W(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})}}),We=/*@__PURE__*/y("$ZodCheckStringFormat",(e,t)=>{var n,o;je.init(e,t),e._zod.onattach.push(e=>{const n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??(n.patterns=/* @__PURE__ */new Set),n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,t.pattern.test(n.value)||n.issues.push({origin:"string",code:"invalid_format",format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(o=e._zod).check??(o.check=()=>{})}),Ve=/*@__PURE__*/y("$ZodCheckRegex",(e,t)=>{We.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})}}),Ge=/*@__PURE__*/y("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Ue),We.init(e,t)}),He=/*@__PURE__*/y("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=qe),We.init(e,t)}),Ke=/*@__PURE__*/y("$ZodCheckIncludes",(e,t)=>{je.init(e,t);const n=j(t.includes),o=new RegExp("number"==typeof t.position?`^.{${t.position}}${n}`:n);t.pattern=o,e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=/* @__PURE__ */new Set),t.patterns.add(o)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),Xe=/*@__PURE__*/y("$ZodCheckStartsWith",(e,t)=>{je.init(e,t);const n=new RegExp(`^${j(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=/* @__PURE__ */new Set),t.patterns.add(n)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),Qe=/*@__PURE__*/y("$ZodCheckEndsWith",(e,t)=>{je.init(e,t);const n=new RegExp(`.*${j(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=/* @__PURE__ */new Set),t.patterns.add(n)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),et=/*@__PURE__*/y("$ZodCheckOverwrite",(e,t)=>{je.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}),tt=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"))}},nt={major:4,minor:4,patch:3},ot=/*@__PURE__*/y("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=nt;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=M(e);for(const r of t){if(r._zod.def.when){if(F(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 g;if(o||a instanceof Promise)o=(o??Promise.resolve()).then(async()=>{await a,e.issues.length!==t&&(i||(i=M(e,t)))});else{if(e.issues.length===t)continue;i||(i=M(e,t))}}return o?o.then(()=>e):e},n=(n,i,r)=>{if(M(n))return n.aborted=!0,n;const a=t(i,o,r);if(a instanceof Promise){if(!1===r.async)throw new g;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 g;return a.then(e=>t(e,o,r))}return t(a,o,r)}}T(e,"~standard",()=>({validate:t=>{try{const n=te(e,t);return n.success?{value:n.data}:{issues:n.error?.issues}}catch(n){return oe(e,t).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:"zod",version:1}))}),it=/*@__PURE__*/y("$ZodString",(e,t)=>{var n;ot.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}}),rt=/*@__PURE__*/y("$ZodStringFormat",(e,t)=>{We.init(e,t),it.init(e,t)}),at=/*@__PURE__*/y("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=ve),rt.init(e,t)}),st=/*@__PURE__*/y("$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=be(e))}else t.pattern??(t.pattern=be());rt.init(e,t)}),ut=/*@__PURE__*/y("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=we),rt.init(e,t)}),lt=/*@__PURE__*/y("$ZodURL",(e,t)=>{rt.init(e,t),e._zod.check=n=>{try{const o=n.value.trim();if(!t.normalize&&t.protocol?.source===Te.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})}}}),ct=/*@__PURE__*/y("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),rt.init(e,t)}),dt=/*@__PURE__*/y("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=ye),rt.init(e,t)}),pt=/*@__PURE__*/y("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=pe),rt.init(e,t)}),ft=/*@__PURE__*/y("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=fe),rt.init(e,t)}),mt=/*@__PURE__*/y("$ZodULID",(e,t)=>{t.pattern??(t.pattern=me),rt.init(e,t)}),ht=/*@__PURE__*/y("$ZodXID",(e,t)=>{t.pattern??(t.pattern=he),rt.init(e,t)}),_t=/*@__PURE__*/y("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=_e),rt.init(e,t)}),yt=/*@__PURE__*/y("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=function(e){const t=Ne({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(`^${Ae}T(?:${o})$`)}(t)),rt.init(e,t)}),gt=/*@__PURE__*/y("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=Ie),rt.init(e,t)}),vt=/*@__PURE__*/y("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=new RegExp(`^${Ne(t)}$`)),rt.init(e,t)}),bt=/*@__PURE__*/y("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=ge),rt.init(e,t)}),wt=/*@__PURE__*/y("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=Se),rt.init(e,t),e._zod.bag.format="ipv4"}),St=/*@__PURE__*/y("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=ke),rt.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})}}}),kt=/*@__PURE__*/y("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=ze),rt.init(e,t)}),zt=/*@__PURE__*/y("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=Oe),rt.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 Ot(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 xt=/*@__PURE__*/y("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=xe),rt.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=n=>{Ot(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});var Et=/*@__PURE__*/y("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=Ee),rt.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=n=>{(function(e){if(!Ee.test(e))return!1;const t=e.replace(/[-_]/g,e=>"-"===e?"+":"/");return Ot(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})}}),Tt=/*@__PURE__*/y("$ZodE164",(e,t)=>{t.pattern??(t.pattern=$e),rt.init(e,t)});var $t=/*@__PURE__*/y("$ZodJWT",(e,t)=>{rt.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})}}),At=/*@__PURE__*/y("$ZodNumber",(e,t)=>{ot.init(e,t),e._zod.pattern=e._zod.bag.pattern??Pe,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}}),It=/*@__PURE__*/y("$ZodNumberFormat",(e,t)=>{Fe.init(e,t),At.init(e,t)}),Nt=/*@__PURE__*/y("$ZodBoolean",(e,t)=>{ot.init(e,t),e._zod.pattern=Re,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}}),Ct=/*@__PURE__*/y("$ZodUnknown",(e,t)=>{ot.init(e,t),e._zod.parse=e=>e}),Pt=/*@__PURE__*/y("$ZodNever",(e,t)=>{ot.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:"never",code:"invalid_type",input:t.value,inst:e}),t)});function Rt(e,t,n){e.issues.length&&t.issues.push(...B(n,e.issues)),t.value[n]=e.value}var Ut=/*@__PURE__*/y("$ZodArray",(e,t)=>{ot.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=>Rt(t,n,e))):Rt(s,n,e)}return r.length?Promise.all(r).then(()=>n):n}});function qt(e,t,n,o,i,r){const a=n in o;if(e.issues.length){if(i&&r&&!a)return;t.issues.push(...B(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 jt(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 Dt(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=>qt(e,n,p,t,c,d))):qt(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 Zt=/*@__PURE__*/y("$ZodObject",(e,t)=>{if(ot.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=z(()=>jt(t));T(e._zod,"propValues",()=>{const e=t.shape,n={};for(const t in e){const o=e[t]._zod;if(o.values){n[t]??(n[t]=/* @__PURE__ */new Set);for(const e of o.values)n[t].add(e)}}return n});const o=C,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=>qt(n,t,e,s,o,i))):qt(r,t,e,s,o,i)}return i?Dt(u,s,t,a,n.value,e):u.length?Promise.all(u).then(()=>t):t}}),Lt=/*@__PURE__*/y("$ZodObjectJIT",(e,t)=>{Zt.init(e,t);const n=e._zod.parse,o=z(()=>jt(t));let i;const r=C,a=!b.jitless,s=a&&P.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 tt(["shape","payload","ctx"]),n=o.value,i=e=>{const t=I(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=I(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?Dt([],p,c,d,l,e):c):n(c,d):(c.issues.push({expected:"object",code:"invalid_type",input:p,inst:e}),c)}});function Mt(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=>!M(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=>J(e,o,w())))}),t)}var Ft=/*@__PURE__*/y("$ZodUnion",(e,t)=>{ot.init(e,t),T(e._zod,"optin",()=>t.options.some(e=>"optional"===e._zod.optin)?"optional":void 0),T(e._zod,"optout",()=>t.options.some(e=>"optional"===e._zod.optout)?"optional":void 0),T(e._zod,"values",()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),T(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=>x(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=>Mt(t,o,e,i)):Mt(a,o,e,i)}}),Bt=/*@__PURE__*/y("$ZodDiscriminatedUnion",(e,t)=>{t.inclusive=!1,Ft.init(e,t);const n=e._zod.parse;T(e._zod,"propValues",()=>{const e={};for(const n of t.options){const o=n._zod.propValues;if(!o||0===Object.keys(o).length)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(n)}"`);for(const[t,n]of Object.entries(o)){e[t]||(e[t]=/* @__PURE__ */new Set);for(const o of n)e[t].add(o)}}return e});const o=z(()=>{const e=t.options,n=/* @__PURE__ */new Map;for(const o of e){const e=o._zod.propValues?.[t.discriminator];if(!e||0===e.size)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(o)}"`);for(const t of e){if(n.has(t))throw new Error(`Duplicate discriminator value "${String(t)}"`);n.set(t,o)}}return n});e._zod.parse=(i,r)=>{const a=i.value;if(!C(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)}}),Yt=/*@__PURE__*/y("$ZodIntersection",(e,t)=>{ot.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])=>Wt(e,t,n)):Wt(e,i,r)}});function Jt(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(R(e)&&R(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=Jt(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=Jt(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 Wt(e,t,n){const o=/* @__PURE__ */new Map;let i;for(const s of t.issues)if("unrecognized_keys"===s.code){i??(i=s);for(const e of s.keys)o.has(e)||o.set(e,{}),o.get(e).l=!0}else e.issues.push(s);for(const s of n.issues)if("unrecognized_keys"===s.code)for(const e of s.keys)o.has(e)||o.set(e,{}),o.get(e).r=!0;else e.issues.push(s);const r=[...o].filter(([,e])=>e.l&&e.r).map(([e])=>e);if(r.length&&i&&e.issues.push({...i,keys:r}),M(e))return e;const a=Jt(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 Vt=/*@__PURE__*/y("$ZodRecord",(e,t)=>{ot.init(e,t),e._zod.parse=(n,o)=>{const i=n.value;if(!R(i))return n.issues.push({expected:"record",code:"invalid_type",input:i,inst:e}),n;const r=[],a=t.keyType._zod.values;if(a){n.value={};const s=/* @__PURE__ */new Set;for(const l of a)if("string"==typeof l||"number"==typeof l||"symbol"==typeof l){s.add("number"==typeof l?l.toString():l);const a=t.keyType._zod.run({value:l,issues:[]},o);if(a instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(a.issues.length){n.issues.push({code:"invalid_key",origin:"record",issues:a.issues.map(e=>J(e,o,w())),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(...B(l,e.issues)),n.value[u]=e.value})):(c.issues.length&&n.issues.push(...B(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&&Pe.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=>J(e,o,w())),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(...B(a,e.issues)),n.value[s.value]=e.value})):(u.issues.length&&n.issues.push(...B(a,u.issues)),n.value[s.value]=u.value)}}return r.length?Promise.all(r).then(()=>n):n}}),Gt=/*@__PURE__*/y("$ZodEnum",(e,t)=>{ot.init(e,t);const n=S(t.entries),o=new Set(n);e._zod.values=o,e._zod.pattern=new RegExp(`^(${n.filter(e=>q.has(typeof e)).map(e=>"string"==typeof e?j(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}}),Ht=/*@__PURE__*/y("$ZodLiteral",(e,t)=>{if(ot.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?j(e):e?j(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}}),Kt=/*@__PURE__*/y("$ZodTransform",(e,t)=>{ot.init(e,t),e._zod.optin="optional",e._zod.parse=(n,o)=>{if("backward"===o.direction)throw new v(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 g;return n.value=i,n.fallback=!0,n}});function Xt(e,t){return void 0===t&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}var Qt=/*@__PURE__*/y("$ZodOptional",(e,t)=>{ot.init(e,t),e._zod.optin="optional",e._zod.optout="optional",T(e._zod,"values",()=>t.innerType._zod.values?/* @__PURE__ */new Set([...t.innerType._zod.values,void 0]):void 0),T(e._zod,"pattern",()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${x(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=>Xt(e,o)):Xt(i,o)}return void 0===e.value?e:t.innerType._zod.run(e,n)}}),en=/*@__PURE__*/y("$ZodExactOptional",(e,t)=>{Qt.init(e,t),T(e._zod,"values",()=>t.innerType._zod.values),T(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(e,n)=>t.innerType._zod.run(e,n)}),tn=/*@__PURE__*/y("$ZodNullable",(e,t)=>{ot.init(e,t),T(e._zod,"optin",()=>t.innerType._zod.optin),T(e._zod,"optout",()=>t.innerType._zod.optout),T(e._zod,"pattern",()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${x(e.source)}|null)$`):void 0}),T(e._zod,"values",()=>t.innerType._zod.values?/* @__PURE__ */new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>null===e.value?e:t.innerType._zod.run(e,n)}),nn=/*@__PURE__*/y("$ZodDefault",(e,t)=>{ot.init(e,t),e._zod.optin="optional",T(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=>on(e,t)):on(o,t)}});function on(e,t){return void 0===e.value&&(e.value=t.defaultValue),e}var rn=/*@__PURE__*/y("$ZodPrefault",(e,t)=>{ot.init(e,t),e._zod.optin="optional",T(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))}),an=/*@__PURE__*/y("$ZodNonOptional",(e,t)=>{ot.init(e,t),T(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=>sn(t,e)):sn(i,e)}});function sn(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 un=/*@__PURE__*/y("$ZodCatch",(e,t)=>{ot.init(e,t),e._zod.optin="optional",T(e._zod,"optout",()=>t.innerType._zod.optout),T(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=>J(e,n,w()))},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=>J(e,n,w()))},input:e.value}),e.issues=[],e.fallback=!0),e)}}),ln=/*@__PURE__*/y("$ZodPipe",(e,t)=>{ot.init(e,t),T(e._zod,"values",()=>t.in._zod.values),T(e._zod,"optin",()=>t.in._zod.optin),T(e._zod,"optout",()=>t.out._zod.optout),T(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=>cn(e,t.in,n)):cn(o,t.in,n)}const o=t.in._zod.run(e,n);return o instanceof Promise?o.then(e=>cn(e,t.out,n)):cn(o,t.out,n)}});function cn(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 dn=/*@__PURE__*/y("$ZodReadonly",(e,t)=>{ot.init(e,t),T(e._zod,"propValues",()=>t.innerType._zod.propValues),T(e._zod,"values",()=>t.innerType._zod.values),T(e._zod,"optin",()=>t.innerType?._zod?.optin),T(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(pn):pn(o)}});function pn(e){return e.value=Object.freeze(e.value),e}var fn,mn=/*@__PURE__*/y("$ZodCustom",(e,t)=>{je.init(e,t),ot.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=>hn(t,n,o,e));hn(i,n,o,e)}});function hn(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(V(e))}}var _n=class{constructor(){this._map=/* @__PURE__ */new WeakMap,this._idmap=/* @__PURE__ */new Map}add(e,...t){const n=t[0];return this._map.set(e,n),n&&"object"==typeof n&&"id"in n&&this._idmap.set(n.id,e),this}clear(){return this._map=/* @__PURE__ */new WeakMap,this._idmap=/* @__PURE__ */new Map,this}remove(e){const t=this._map.get(e);return t&&"object"==typeof t&&"id"in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){const t=e._zod.parent;if(t){const n={...this.get(t)??{}};delete n.id;const o={...n,...this._map.get(e)};return Object.keys(o).length?o:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};(fn=globalThis).__zod_globalRegistry??(fn.__zod_globalRegistry=new _n);var yn=globalThis.__zod_globalRegistry;function gn(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...Z(t)})}function vn(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...Z(t)})}function bn(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...Z(t)})}function wn(e,t){return new Ze({check:"less_than",...Z(t),value:e,inclusive:!1})}function Sn(e,t){return new Ze({check:"less_than",...Z(t),value:e,inclusive:!0})}function kn(e,t){return new Le({check:"greater_than",...Z(t),value:e,inclusive:!1})}function zn(e,t){return new Le({check:"greater_than",...Z(t),value:e,inclusive:!0})}function On(e,t){return new Me({check:"multiple_of",...Z(t),value:e})}function xn(e,t){return new Be({check:"max_length",...Z(t),maximum:e})}function En(e,t){return new Ye({check:"min_length",...Z(t),minimum:e})}function Tn(e,t){return new Je({check:"length_equals",...Z(t),length:e})}function $n(e){return new et({check:"overwrite",tx:e})}function An(e,t){const n=new je({check:"custom",...Z(t)});return n._zod.check=e,n}function In(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??yn,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:/* @__PURE__ */new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function Nn(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),Nn(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&&Rn(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 Cn(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const o=/* @__PURE__ */new Map;for(const r of e.seen.entries()){const t=e.metadataRegistry.get(r[0])?.id;if(t){const e=o.get(t);if(e&&e!==r[0])throw new Error(`Duplicate schema id "${t}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);o.set(t,r[0])}}const i=t=>{if(t[1].schema.$ref)return;const o=t[1],{ref:i,defId:r}=(t=>{const o="draft-2020-12"===e.target?"$defs":"definitions";if(e.external){const n=e.external.registry.get(t[0])?.id,i=e.external.uri??(e=>e);if(n)return{ref:i(n)};const r=t[1].defId??t[1].schema.id??"schema"+e.counter++;return t[1].defId=r,{defId:r,ref:`${i("__shared")}#/${o}/${r}`}}if(t[1]===n)return{ref:"#"};const i=`#/${o}/`,r=t[1].schema.id??"__schema"+e.counter++;return{defId:r,ref:i+r}})(t);o.def={...o.schema},r&&(o.defId=r);const a=o.schema;for(const e in a)delete a[e];a.$ref=i};if("throw"===e.cycles)for(const r of e.seen.entries()){const e=r[1];if(e.cycle)throw new Error(`Cycle detected: #/${e.cycle?.join("/")}/<root>\n\nSet the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const r of e.seen.entries()){const n=r[1];if(t!==r[0]){if(e.external){const n=e.external.registry.get(r[0])?.id;if(t!==r[0]&&n){i(r);continue}}(e.metadataRegistry.get(r[0])?.id||n.cycle||n.count>1&&"ref"===e.reused)&&i(r)}else i(r)}}function Pn(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:Un(t,"input",e.processors),output:Un(t,"output",e.processors)}},enumerable:!1,writable:!1}),n}catch(s){throw new Error("Error converting schema to JSON.")}}function Rn(e,t){const n=t??{seen:/* @__PURE__ */new Set};if(n.seen.has(e))return!1;n.seen.add(e);const o=e._zod.def;if("transform"===o.type)return!0;if("array"===o.type)return Rn(o.element,n);if("set"===o.type)return Rn(o.valueType,n);if("lazy"===o.type)return Rn(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 Rn(o.innerType,n);if("intersection"===o.type)return Rn(o.left,n)||Rn(o.right,n);if("record"===o.type||"map"===o.type)return Rn(o.keyType,n)||Rn(o.valueType,n);if("pipe"===o.type)return!!e._zod.traits.has("$ZodCodec")||(Rn(o.in,n)||Rn(o.out,n));if("object"===o.type){for(const e in o.shape)if(Rn(o.shape[e],n))return!0;return!1}if("union"===o.type){for(const e of o.options)if(Rn(e,n))return!0;return!1}if("tuple"===o.type){for(const e of o.items)if(Rn(e,n))return!0;return!(!o.rest||!Rn(o.rest,n))}return!1}var Un=(e,t,n={})=>o=>{const{libraryOptions:i,target:r}=o??{},a=In({...i??{},target:r,io:t,processors:n});return Nn(e,a),Cn(a,e),Pn(a,e)},qn={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},jn=(e,t,n,o)=>{const i=e._zod.def;Nn(i.innerType,t,o);t.seen.get(e).ref=i.innerType},Dn=/*@__PURE__*/y("ZodISODateTime",(e,t)=>{yt.init(e,t),mo.init(e,t)});function Zn(e){return function(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Z(t)})}(Dn,e)}var Ln=/*@__PURE__*/y("ZodISODate",(e,t)=>{gt.init(e,t),mo.init(e,t)});function Mn(e){return function(e,t){return new e({type:"string",format:"date",check:"string_format",...Z(t)})}(Ln,e)}var Fn=/*@__PURE__*/y("ZodISOTime",(e,t)=>{vt.init(e,t),mo.init(e,t)});function Bn(e){return function(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...Z(t)})}(Fn,e)}var Yn=/*@__PURE__*/y("ZodISODuration",(e,t)=>{bt.init(e,t),mo.init(e,t)});function Jn(e){return function(e,t){return new e({type:"string",format:"duration",check:"string_format",...Z(t)})}(Yn,e)}var Wn=(e,t)=>{H.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,k,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,k,2)}},isEmpty:{get:()=>0===e.issues.length}})},Vn=/*@__PURE__*/y("ZodError",Wn,{Parent:Error}),Gn=/* @__PURE__ */X(Vn),Hn=/* @__PURE__ */Q(Vn),Kn=/* @__PURE__ */ee(Vn),Xn=/* @__PURE__ */ne(Vn),Qn=/* @__PURE__ */ie(Vn),eo=/* @__PURE__ */re(Vn),to=/* @__PURE__ */ae(Vn),no=/* @__PURE__ */se(Vn),oo=/* @__PURE__ */ue(Vn),io=/* @__PURE__ */le(Vn),ro=/* @__PURE__ */ce(Vn),ao=/* @__PURE__ */de(Vn),so=/* @__PURE__ */new WeakMap;function uo(e,t,n){const o=Object.getPrototypeOf(e);let i=so.get(o);if(i||(i=/* @__PURE__ */new Set,so.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 lo=/*@__PURE__*/y("ZodType",(e,t)=>(ot.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:Un(e,"input"),output:Un(e,"output")}}),e.toJSONSchema=((e,t={})=>n=>{const o=In({...n,processors:t});return Nn(e,o),Cn(o,e),Pn(o,e)})(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.parse=(t,n)=>Gn(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>Kn(e,t,n),e.parseAsync=async(t,n)=>Hn(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>Xn(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>Qn(e,t,n),e.decode=(t,n)=>eo(e,t,n),e.encodeAsync=async(t,n)=>to(e,t,n),e.decodeAsync=async(t,n)=>no(e,t,n),e.safeEncode=(t,n)=>oo(e,t,n),e.safeDecode=(t,n)=>io(e,t,n),e.safeEncodeAsync=async(t,n)=>ro(e,t,n),e.safeDecodeAsync=async(t,n)=>ao(e,t,n),uo(e,"ZodType",{check(...e){const t=this.def;return this.clone(A(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 D(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,...Z(n)})}(vi,e,t)}(e,t))},superRefine(e,t){return this.check(function(e,t){return function(e,t){const n=/* @__PURE__ */An(t=>(t.addIssue=e=>{if("string"==typeof e)t.issues.push(V(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(V(o))}},e(t.value,t)),t);return n}(e,t)}(e,t))},overwrite(e){return this.check($n(e))},optional(){return ui(this)},exactOptional(){return new li({type:"optional",innerType:this})},nullable(){return di(this)},nullish(){return ui(di(this))},nonoptional(e){return function(e,t){return new mi({type:"nonoptional",innerType:e,...Z(t)})}(this,e)},array(){return Jo(this)},or(e){return Ho([this,e])},and(e){return new Qo({type:"intersection",left:this,right:e})},transform(e){return yi(this,new ai({type:"transform",transform:e}))},default(e){return t=e,new pi({type:"default",innerType:this,get defaultValue(){return"function"==typeof t?t():U(t)}});var t},prefault(e){return t=e,new fi({type:"prefault",innerType:this,get defaultValue(){return"function"==typeof t?t():U(t)}});var t},catch(e){return new hi({type:"catch",innerType:this,catchValue:"function"==typeof(t=e)?t:()=>t});var t},pipe(e){return yi(this,e)},readonly(){return new gi({type:"readonly",innerType:this})},describe(e){const t=this.clone();return yn.add(t,{description:e}),t},meta(...e){if(0===e.length)return yn.get(this);const t=this.clone();return yn.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:()=>yn.get(e)?.description,configurable:!0}),e)),co=/*@__PURE__*/y("_ZodString",(e,t)=>{it.init(e,t),lo.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=qn[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,uo(e,"_ZodString",{regex(...e){return this.check(function(e,t){return new Ve({check:"string_format",format:"regex",...Z(t),pattern:e})}(...e))},includes(...e){return this.check(function(e,t){return new Ke({check:"string_format",format:"includes",...Z(t),includes:e})}(...e))},startsWith(...e){return this.check(function(e,t){return new Xe({check:"string_format",format:"starts_with",...Z(t),prefix:e})}(...e))},endsWith(...e){return this.check(function(e,t){return new Qe({check:"string_format",format:"ends_with",...Z(t),suffix:e})}(...e))},min(...e){return this.check(En(...e))},max(...e){return this.check(xn(...e))},length(...e){return this.check(Tn(...e))},nonempty(...e){return this.check(En(1,...e))},lowercase(e){return this.check(function(e){return new Ge({check:"string_format",format:"lowercase",...Z(e)})}(e))},uppercase(e){return this.check(function(e){return new He({check:"string_format",format:"uppercase",...Z(e)})}(e))},trim(){return this.check(/* @__PURE__ */$n(e=>e.trim()))},normalize(...e){return this.check(function(e){/* @__PURE__ */
2
+ return $n(t=>t.normalize(e))}(...e))},toLowerCase(){return this.check(/* @__PURE__ */$n(e=>e.toLowerCase()))},toUpperCase(){return this.check(/* @__PURE__ */$n(e=>e.toUpperCase()))},slugify(){return this.check(/* @__PURE__ */$n(e=>function(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}(e)))}})}),po=/*@__PURE__*/y("ZodString",(e,t)=>{it.init(e,t),co.init(e,t),e.email=t=>e.check(gn(ho,t)),e.url=t=>e.check(bn(vo,t)),e.jwt=t=>e.check(function(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...Z(t)})}(Po,t)),e.emoji=t=>e.check(function(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...Z(t)})}(bo,t)),e.guid=t=>e.check(vn(yo,t)),e.uuid=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...Z(t)})}(go,t)),e.uuidv4=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Z(t)})}(go,t)),e.uuidv6=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Z(t)})}(go,t)),e.uuidv7=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Z(t)})}(go,t)),e.nanoid=t=>e.check(function(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...Z(t)})}(wo,t)),e.guid=t=>e.check(vn(yo,t)),e.cuid=t=>e.check(function(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...Z(t)})}(So,t)),e.cuid2=t=>e.check(function(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...Z(t)})}(ko,t)),e.ulid=t=>e.check(function(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...Z(t)})}(zo,t)),e.base64=t=>e.check(function(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...Z(t)})}(Io,t)),e.base64url=t=>e.check(function(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...Z(t)})}(No,t)),e.xid=t=>e.check(function(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...Z(t)})}(Oo,t)),e.ksuid=t=>e.check(function(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...Z(t)})}(xo,t)),e.ipv4=t=>e.check(function(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...Z(t)})}(Eo,t)),e.ipv6=t=>e.check(function(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...Z(t)})}(To,t)),e.cidrv4=t=>e.check(function(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Z(t)})}($o,t)),e.cidrv6=t=>e.check(function(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Z(t)})}(Ao,t)),e.e164=t=>e.check(function(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...Z(t)})}(Co,t)),e.datetime=t=>e.check(Zn(t)),e.date=t=>e.check(Mn(t)),e.time=t=>e.check(Bn(t)),e.duration=t=>e.check(Jn(t))});function fo(e){return function(e,t){return new e({type:"string",...Z(t)})}(po,e)}var mo=/*@__PURE__*/y("ZodStringFormat",(e,t)=>{rt.init(e,t),co.init(e,t)}),ho=/*@__PURE__*/y("ZodEmail",(e,t)=>{ut.init(e,t),mo.init(e,t)});function _o(e){return gn(ho,e)}var yo=/*@__PURE__*/y("ZodGUID",(e,t)=>{at.init(e,t),mo.init(e,t)}),go=/*@__PURE__*/y("ZodUUID",(e,t)=>{st.init(e,t),mo.init(e,t)}),vo=/*@__PURE__*/y("ZodURL",(e,t)=>{lt.init(e,t),mo.init(e,t)});var bo=/*@__PURE__*/y("ZodEmoji",(e,t)=>{ct.init(e,t),mo.init(e,t)}),wo=/*@__PURE__*/y("ZodNanoID",(e,t)=>{dt.init(e,t),mo.init(e,t)}),So=/*@__PURE__*/y("ZodCUID",(e,t)=>{pt.init(e,t),mo.init(e,t)}),ko=/*@__PURE__*/y("ZodCUID2",(e,t)=>{ft.init(e,t),mo.init(e,t)}),zo=/*@__PURE__*/y("ZodULID",(e,t)=>{mt.init(e,t),mo.init(e,t)}),Oo=/*@__PURE__*/y("ZodXID",(e,t)=>{ht.init(e,t),mo.init(e,t)}),xo=/*@__PURE__*/y("ZodKSUID",(e,t)=>{_t.init(e,t),mo.init(e,t)}),Eo=/*@__PURE__*/y("ZodIPv4",(e,t)=>{wt.init(e,t),mo.init(e,t)}),To=/*@__PURE__*/y("ZodIPv6",(e,t)=>{St.init(e,t),mo.init(e,t)}),$o=/*@__PURE__*/y("ZodCIDRv4",(e,t)=>{kt.init(e,t),mo.init(e,t)}),Ao=/*@__PURE__*/y("ZodCIDRv6",(e,t)=>{zt.init(e,t),mo.init(e,t)}),Io=/*@__PURE__*/y("ZodBase64",(e,t)=>{xt.init(e,t),mo.init(e,t)}),No=/*@__PURE__*/y("ZodBase64URL",(e,t)=>{Et.init(e,t),mo.init(e,t)}),Co=/*@__PURE__*/y("ZodE164",(e,t)=>{Tt.init(e,t),mo.init(e,t)}),Po=/*@__PURE__*/y("ZodJWT",(e,t)=>{$t.init(e,t),mo.init(e,t)}),Ro=/*@__PURE__*/y("ZodNumber",(e,t)=>{At.init(e,t),lo.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),uo(e,"ZodNumber",{gt(e,t){return this.check(kn(e,t))},gte(e,t){return this.check(zn(e,t))},min(e,t){return this.check(zn(e,t))},lt(e,t){return this.check(wn(e,t))},lte(e,t){return this.check(Sn(e,t))},max(e,t){return this.check(Sn(e,t))},int(e){return this.check(jo(e))},safe(e){return this.check(jo(e))},positive(e){return this.check(kn(0,e))},nonnegative(e){return this.check(zn(0,e))},negative(e){return this.check(wn(0,e))},nonpositive(e){return this.check(Sn(0,e))},multipleOf(e,t){return this.check(On(e,t))},step(e,t){return this.check(On(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 Uo(e){return function(e,t){return new e({type:"number",checks:[],...Z(t)})}(Ro,e)}var qo=/*@__PURE__*/y("ZodNumberFormat",(e,t)=>{It.init(e,t),Ro.init(e,t)});function jo(e){return function(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...Z(t)})}(qo,e)}var Do=/*@__PURE__*/y("ZodBoolean",(e,t)=>{Nt.init(e,t),lo.init(e,t),e._zod.processJSONSchema=(e,t,n)=>((e,t,n)=>{n.type="boolean"})(0,0,t)});function Zo(e){return function(e,t){return new e({type:"boolean",...Z(t)})}(Do,e)}var Lo=/*@__PURE__*/y("ZodUnknown",(e,t)=>{Ct.init(e,t),lo.init(e,t),e._zod.processJSONSchema=(e,t,n)=>{}});function Mo(){return new Lo({type:"unknown"})}var Fo=/*@__PURE__*/y("ZodNever",(e,t)=>{Pt.init(e,t),lo.init(e,t),e._zod.processJSONSchema=(e,t,n)=>((e,t,n)=>{n.not={}})(0,0,t)});function Bo(e){return function(e,t){return new e({type:"never",...Z(t)})}(Fo,e)}var Yo=/*@__PURE__*/y("ZodArray",(e,t)=>{Ut.init(e,t),lo.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=Nn(r.element,t,{...o,path:[...o.path,"items"]})})(e,t,n,o),e.element=t.element,uo(e,"ZodArray",{min(e,t){return this.check(En(e,t))},nonempty(e){return this.check(En(1,e))},max(e,t){return this.check(xn(e,t))},length(e,t){return this.check(Tn(e,t))},unwrap(){return this.element}})});function Jo(e,t){return function(e,t,n){return new e({type:"array",element:t,...Z(n)})}(Yo,e,t)}var Wo=/*@__PURE__*/y("ZodObject",(e,t)=>{Lt.init(e,t),lo.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]=Nn(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=Nn(r.catchall,t,{...o,path:[...o.path,"additionalProperties"]})):"output"===t.io&&(i.additionalProperties=!1)})(e,t,n,o),T(e,"shape",()=>t.shape),uo(e,"ZodObject",{keyof(){return oi(Object.keys(this._zod.def.shape))},catchall(e){return this.clone({...this._zod.def,catchall:e})},passthrough(){return this.clone({...this._zod.def,catchall:Mo()})},loose(){return this.clone({...this._zod.def,catchall:Mo()})},strict(){return this.clone({...this._zod.def,catchall:Bo()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(e){return function(e,t){if(!R(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 D(e,A(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return $(this,"shape",n),n}}))}(this,e)},safeExtend(e){return function(e,t){if(!R(t))throw new Error("Invalid input to safeExtend: expected a plain object");return D(e,A(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return $(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 D(e,A(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t._zod.def.shape};return $(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 D(e,A(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 $(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 D(e,A(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 $(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 D(t,A(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 $(this,"shape",i),i},checks:[]}))}(si,this,e[0])},required(...e){return t=mi,n=this,o=e[0],D(n,A(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 $(this,"shape",i),i}}));var t,n,o}})});function Vo(e,t){return new Wo({type:"object",shape:e??{},...Z(t)})}var Go=/*@__PURE__*/y("ZodUnion",(e,t)=>{Ft.init(e,t),lo.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)=>Nn(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 Ho(e,t){return new Go({type:"union",options:e,...Z(t)})}var Ko=/*@__PURE__*/y("ZodDiscriminatedUnion",(e,t)=>{Go.init(e,t),Bt.init(e,t)});function Xo(e,t,n){return new Ko({type:"union",options:t,discriminator:e,...Z(n)})}var Qo=/*@__PURE__*/y("ZodIntersection",(e,t)=>{Yt.init(e,t),lo.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def,r=Nn(i.left,t,{...o,path:[...o.path,"allOf",0]}),a=Nn(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 ei=/*@__PURE__*/y("ZodRecord",(e,t)=>{Vt.init(e,t),lo.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=Nn(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=Nn(r.keyType,t,{...o,path:[...o.path,"propertyNames"]})),i.additionalProperties=Nn(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 ti(e,t,n){return t&&t._zod?new ei({type:"record",keyType:e,valueType:t,...Z(n)}):new ei({type:"record",keyType:fo(),valueType:e,...Z(t)})}var ni=/*@__PURE__*/y("ZodEnum",(e,t)=>{Gt.init(e,t),lo.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n)=>{const o=S(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 ni({...t,checks:[],...Z(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 ni({...t,checks:[],...Z(o),entries:i})}});function oi(e,t){return new ni({type:"enum",entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...Z(t)})}var ii=/*@__PURE__*/y("ZodLiteral",(e,t)=>{Ht.init(e,t),lo.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 ri(e,t){return new ii({type:"literal",values:Array.isArray(e)?e:[e],...Z(t)})}var ai=/*@__PURE__*/y("ZodTransform",(e,t)=>{Kt.init(e,t),lo.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 v(e.constructor.name);n.addIssue=o=>{if("string"==typeof o)n.issues.push(V(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(V(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 si=/*@__PURE__*/y("ZodOptional",(e,t)=>{Qt.init(e,t),lo.init(e,t),e._zod.processJSONSchema=(t,n,o)=>jn(e,t,0,o),e.unwrap=()=>e._zod.def.innerType});function ui(e){return new si({type:"optional",innerType:e})}var li=/*@__PURE__*/y("ZodExactOptional",(e,t)=>{en.init(e,t),lo.init(e,t),e._zod.processJSONSchema=(t,n,o)=>jn(e,t,0,o),e.unwrap=()=>e._zod.def.innerType});var ci=/*@__PURE__*/y("ZodNullable",(e,t)=>{tn.init(e,t),lo.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def,r=Nn(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 di(e){return new ci({type:"nullable",innerType:e})}var pi=/*@__PURE__*/y("ZodDefault",(e,t)=>{nn.init(e,t),lo.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def;Nn(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 fi=/*@__PURE__*/y("ZodPrefault",(e,t)=>{rn.init(e,t),lo.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def;Nn(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 mi=/*@__PURE__*/y("ZodNonOptional",(e,t)=>{an.init(e,t),lo.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def;Nn(i.innerType,t,o),t.seen.get(e).ref=i.innerType})(e,t,0,o),e.unwrap=()=>e._zod.def.innerType});var hi=/*@__PURE__*/y("ZodCatch",(e,t)=>{un.init(e,t),lo.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def;let r;Nn(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 _i=/*@__PURE__*/y("ZodPipe",(e,t)=>{ln.init(e,t),lo.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;Nn(a,t,o),t.seen.get(e).ref=a})(e,t,0,o),e.in=t.in,e.out=t.out});function yi(e,t){return new _i({type:"pipe",in:e,out:t})}var gi=/*@__PURE__*/y("ZodReadonly",(e,t)=>{dn.init(e,t),lo.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const i=e._zod.def;Nn(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 vi=/*@__PURE__*/y("ZodCustom",(e,t)=>{mn.init(e,t),lo.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 bi,wi=oi(["CONSENT","SOFT_OPT_IN","TRANSACTIONAL_ONLY","UNKNOWN"]),Si=oi(["MANUAL_UNSUB","ONE_CLICK_UNSUB","HARD_BOUNCE","COMPLAINT","ADMIN_BLOCK"]),ki=oi(["BROADCAST","AUTOMATION"]),zi=oi(["ABANDONED_CART","POST_PURCHASE","WELCOME","WIN_BACK","RE_ENGAGEMENT","TAG_ADDED"]),Oi=(Vo({email:_o(),name:fo().trim().min(1).nullable().optional(),customer_id:fo().uuid().nullable().optional(),tags:Jo(fo().trim().min(1)).default([]),consent_basis:wi.default("UNKNOWN"),source:fo().trim().min(1).default("dashboard")}),Vo({name:fo().trim().min(1),subject:fo().trim().min(1),preheader:fo().nullable().optional(),mjml_source:fo().trim().min(1),builder_project_json:ti(fo(),Mo()).nullable().optional(),thumbnail_url:bn(vo,bi).nullable().optional()}),Vo({mjml_source:fo().trim().min(1),sample_variables:ti(fo(),Mo()).optional()}),Vo({recipient_email:_o(),sample_variables:ti(fo(),Mo()).optional()}),Vo({marketing_enabled:Zo().optional(),default_from_name:fo().trim().min(1).nullable().optional(),default_from_email:_o().nullable().optional(),default_reply_to_email:_o().nullable().optional(),physical_address:fo().trim().min(1).nullable().optional(),physical_address_line2:fo().trim().min(1).nullable().optional(),physical_city:fo().trim().min(1).nullable().optional(),physical_postal_code:fo().trim().min(1).nullable().optional(),physical_country:fo().trim().length(2).nullable().optional(),daily_limit:Uo().int().positive().optional(),monthly_soft_cap:Uo().int().positive().optional()}),Vo({type:ki.default("BROADCAST"),name:fo().trim().min(1),subject:fo().trim().min(1),template_id:fo().uuid(),list_id:fo().uuid().nullable().optional(),segment_id:fo().uuid().nullable().optional(),from_name:fo().trim().min(1),from_email:_o(),reply_to_email:_o().nullable().optional(),schedule_at:fo().datetime().nullable().optional(),target_emails:Jo(_o()).max(0,"Direct recipient entry is disabled. Use lists or segments built from Shoppex customers and paid order buyers.").default([]),idempotency_key:fo().trim().min(1).nullable().optional()}),Vo({name:fo().trim().min(1),subject:fo().trim().min(1),template_id:fo().uuid(),from_name:fo().trim().min(1),from_email:_o(),reply_to_email:_o().nullable().optional(),trigger:zi,delay_seconds:Uo().int().min(0).default(0),conditions:ti(fo(),Mo()).default({})}),Vo({trigger:zi,email:_o(),customer_id:fo().uuid().nullable().optional(),name:fo().trim().min(1).nullable().optional(),consent_basis:wi.default("UNKNOWN"),variables:ti(fo(),Mo()).default({}),idempotency_key:fo().trim().min(1).nullable().optional()}),Vo({email:_o(),reason:Si.default("ADMIN_BLOCK"),notes:fo().nullable().optional()}),["BITCOIN","LITECOIN","ETHEREUM","BITCOIN_CASH","MONERO","RIPPLE","TRON","SOLANA","POLYGON","BINANCE_COIN","CRONOS","CONCORDIUM","NANO","DOGECOIN","DASH"]),xi=["NOWPAYMENTS","CRYPTOMUS","OXAPAY"],Ei=["NOWPAYMENTS_WHITELABEL"],Ti={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"]},$i=Object.keys(Ti),Ai=[...Ti.USDT,...Ti.USDC,...Ti.DAI],Ii=[...Oi,...Ai],Ni=["BITCOIN_LN"],Ci=[...xi,...Ei],Pi=[...Ii,...Ni],Ri=Ii,Ui=new Set(Oi),qi=new Set(Ai),ji=(new Set(Ii),new Set(Ni),new Set(xi),new Set(Ei),new Set(Ci),new Set(Pi),new Set($i),new Set(["STRIPE","PAYPAL","PAYPAL_FF","MOLLIE","AUTHORIZENET","NMI","SQUARE","SUMUP","SHOPIFY","SUBY","PANDABASE","STORRIK","VENPAYR","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 Di(e,t){if(new Set(t).size!==t.length)throw new Error(`${e} contains duplicate entries`)}Di("COIN_GATEWAY_KEYS",Oi),Di("TOKEN_GATEWAY_KEYS",Ai),Di("CRYPTO_GATEWAY_KEYS",Ii),Di("LEGACY_CRYPTO_GATEWAY_KEYS",Ni),Di("CRYPTO_PROVIDER_KEYS",xi),Di("MANAGED_CRYPTO_PROVIDER_KEYS",Ei),Di("CRYPTO_PROVIDER_GATEWAY_KEYS",Ci),Di("DEFAULT_NOWPAYMENTS_CRYPTO_GATEWAY_KEYS",Ri),Di("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"]),Di("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 Su of Ii)if(!Ui.has(Su)&&!qi.has(Su))throw new Error(`CRYPTO_GATEWAY_KEYS contains an unclassified gateway: ${Su}`);new Set(["STRIPE","PAYPAL","PAYPAL_FF","SKRILL","CASHAPP","CASH_APP","PERFECT_MONEY","SQUARE","SUMUP","SHOPIFY","SUBY","PANDABASE","STORRIK","VENPAYR","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 ji[n]??n}(e))),new Set(["WHITE_LABEL","NATIVE"]);var Zi=[...Ci,"NATIVE"],Li=(new Set(Zi),Vo({set:Zo()})),Mi=Vo({status:oi(["READY","NEEDS_ATTENTION"]).optional(),code:fo().optional(),message:fo().optional(),checked_at:fo().optional()}),Fi=(Vo({provider:fo(),type:fo(),enabled:Zo(),connected:Zo(),credentials:ti(fo(),Li),public_config:ti(fo(),Mo()),webhook:ti(fo(),Mo()).optional(),health:Mi.optional()}),"#2563eb"),Bi=["comfortable","compact"],Yi=["top","side","background"],Ji=oi(["checkout","payment_link","embed"]),Wi=oi(["current","clean-light","clean-dark","v2","v3"]),Vi=oi(Bi),Gi=oi(["light","dark","system"]),Hi=oi(Yi),Ki=oi(["ghost","outlined","filled"]),Xi=oi(["sheet","fullscreen","center"]),Qi=(oi(["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"]),oi(["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"]),fo().regex(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/,"Use a valid hex color")),er=fo().trim().min(1).max(200).refine(e=>!/[;{}]|@import|expression\s*\(/i.test(e),"Use a valid CSS color or gradient"),tr=fo().trim().min(1).max(400).refine(e=>!/[;{}]|@import|expression\s*\(/i.test(e),"Use a valid CSS box-shadow value"),nr=oi(["Inter","Geist","Manrope","Plus Jakarta Sans","DM Sans","Space Grotesk","Sora","IBM Plex Sans","JetBrains Mono","Arial","System UI"]),or=fo().trim().min(1).max(60).regex(/^[A-Za-z0-9 +\-_]+$/,"Use a Google Fonts family name"),ir=fo().url(),rr=Vo({brand:Vo({logoUrl:ir.optional().nullable(),logoDarkUrl:ir.optional().nullable(),logoMaxHeight:Uo().int().min(16).max(80).optional(),faviconUrl:ir.optional().nullable()}).strict().optional(),color:Vo({brand:Qi.optional(),brandContrast:Qi.optional(),background:Qi.optional(),surface:Qi.optional(),surfaceRaised:Qi.optional(),text:Qi.optional(),textMuted:Qi.optional(),border:Qi.optional(),focus:Qi.optional(),success:Qi.optional(),warning:Qi.optional(),error:Qi.optional()}).strict().optional(),typography:Vo({fontFamily:nr.optional(),googleFontFamily:or.optional(),baseSize:Uo().int().min(12).max(18).optional()}).strict().optional(),shape:Vo({buttonRadius:Uo().int().min(0).max(24).optional(),inputRadius:Uo().int().min(0).max(24).optional(),cardRadius:Uo().int().min(0).max(28).optional()}).strict().optional(),spacing:Vo({density:Vi.optional(),controlHeight:Uo().int().min(36).max(56).optional()}).strict().optional(),component:Vo({primaryButton:Vo({background:Qi.optional(),text:Qi.optional()}).strict().optional(),input:Vo({background:Qi.optional(),border:Qi.optional(),focusRing:er.optional()}).strict().optional(),summary:Vo({background:Qi.optional()}).strict().optional(),paymentMethod:Vo({background:er.optional(),cardBackground:er.optional(),border:er.optional(),selectedBackground:er.optional()}).strict().optional(),productCard:Vo({background:er.optional(),border:er.optional(),shadow:tr.optional()}).strict().optional(),productImage:Vo({background:er.optional(),border:er.optional(),icon:er.optional()}).strict().optional(),brandAvatar:Vo({background:er.optional(),text:Qi.optional(),border:er.optional()}).strict().optional(),pill:Vo({background:er.optional(),border:er.optional(),text:Qi.optional()}).strict().optional(),errorBanner:Vo({background:er.optional(),border:er.optional(),text:Qi.optional()}).strict().optional(),warningBanner:Vo({background:er.optional(),border:er.optional(),text:Qi.optional()}).strict().optional(),radio:Vo({idleRing:er.optional(),checkedFill:Qi.optional(),checkedIcon:Qi.optional()}).strict().optional(),divider:Vo({color:er.optional()}).strict().optional()}).strict().optional(),paymentLink:Vo({heroImageUrl:ir.optional().nullable(),heroPosition:Hi.optional()}).strict().optional(),embed:Vo({launcher:Vo({background:er.optional(),text:Qi.optional(),radius:Uo().int().min(0).max(28).optional(),paddingX:Uo().int().min(8).max(32).optional(),paddingY:Uo().int().min(6).max(24).optional(),shadow:tr.optional()}).strict().optional(),productCard:Vo({background:er.optional(),border:er.optional(),imageRadius:Uo().int().min(0).max(24).optional(),padding:Uo().int().min(8).max(32).optional()}).strict().optional(),cart:Vo({background:er.optional(),rowBorder:er.optional(),itemSpacing:Uo().int().min(4).max(28).optional()}).strict().optional(),modal:Vo({background:er.optional(),radius:Uo().int().min(0).max(32).optional(),maxWidth:Uo().int().min(360).max(960).optional(),shadow:tr.optional()}).strict().optional(),backdrop:Vo({color:er.optional(),blur:Uo().int().min(0).max(24).optional(),opacity:Uo().min(0).max(1).optional()}).strict().optional(),skeleton:Vo({background:er.optional(),shimmer:er.optional()}).strict().optional(),spinner:Vo({color:er.optional()}).strict().optional(),closeButton:Vo({style:Ki.optional()}).strict().optional(),mobile:Vo({layout:Xi.optional()}).strict().optional()}).strict().optional()}).strict(),ar=Vo({mode:Gi.default("system"),fontSource:oi(["curated"]).default("curated")}).strict(),sr=oi(["standalone","bundle","pointer"]),ur=Vo({name:fo().trim().min(1).max(80),fingerprint:fo().trim().min(1).max(128)}).strict(),lr=Vo({type:ri("shoppex.style_theme"),surface:ri("checkout"),format_version:Ho([ri(1),ri(2)]),name:fo().trim().min(1).max(80),description:fo().trim().max(240).optional(),embed_design:Wi.default("current"),token_schema_version:ri(1),tokens:rr.default({}),custom_css:fo().max(2e4).default(""),settings:ar.default({mode:"system",fontSource:"curated"}),_meta:ti(fo(),Mo()).optional()}).strict(),cr=(Vo({type:ri("shoppex.style_theme"),surface:Ji,format_version:Ho([ri(1),ri(2)]),name:fo().trim().min(1).max(80),description:fo().trim().max(240).optional(),embed_design:Wi.default("current"),token_schema_version:ri(1),tokens:rr.default({}),custom_css:fo().max(2e4).default(""),settings:ar.default({mode:"system",fontSource:"curated"}),share_mode:sr.default("standalone"),parent_hint:ur.optional(),bundled_parent:lr.optional(),_meta:ti(fo(),Mo()).optional()}).strict(),Vo({theme_id:fo().uuid().nullable(),surface:Ji,embed_design:Wi,token_schema_version:ri(1),revision:Uo().int().min(1),tokens:rr,custom_css:fo(),css_variables:ti(fo(),fo())}).strict(),Vo({theme_id:fo().uuid().nullable(),parent_theme_id:fo().uuid().nullable(),surface:ri("embed"),embed_design:Wi,token_schema_version:ri(1),revision:Uo().int().min(1),parent_revision:Uo().int().min(1).nullable(),tokens:rr,custom_css:fo(),css_variables:ti(fo(),fo())}).strict(),Vo({shop_id:fo().uuid(),product_id:fo().uuid().nullable(),product_group_id:fo().uuid().nullable(),payment_link_id:fo().uuid().nullable(),invoice_id:fo().nullable()}).strict(),Vo({embed_runtime:fo().min(16).max(128),embed_design:Wi,revision:Uo().int().min(1),parent_revision:Uo().int().min(1).nullable(),theme_id:fo().uuid().nullable(),css_variables:ti(fo(),fo()),custom_css:fo()}).strict(),Vo({embed_design:Wi.optional(),embed_style_revision:function(e){return function(e,t){return new e({type:"number",coerce:!0,checks:[],...Z(t)})}(Ro,e)}().int().min(1).optional(),embed_runtime:fo().min(16).max(128).optional(),preview:Zo().optional()}).strict(),oi(["announcement_bar","countdown_bar","promo_info_card","recent_purchase_popup","coupon_popup_modal"]),oi(["layout.header.before","layout.header.after","layout.overlay","home.hero.after","home.grid.before","product.buybox.after","layout.footer.before","floating.bottom_right"])),dr=(oi(["announcement_bar","countdown_bar","promo_info_card","recent_purchase_popup","coupon_popup_modal"]),fo().regex(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/,"Use a valid hex color")),pr=oi(["static","marquee"]),fr=oi(["brand_blue","emerald","sunset","rose","charcoal","custom"]),mr=oi(["hide","message"]),hr=oi(["compact","comfortable"]),_r=oi(["subtle","outline","solid"]),yr=oi(["minimal","boxed"]),gr=oi(["indigo","emerald","amber","rose","slate","custom"]),vr=oi(["compact","feature","alert"]),br=oi(["compact","comfortable"]),wr=oi(["subtle","outline","solid"]),Sr=oi(["sparkles","megaphone","gift","truck","shield","support","none"]),kr=oi(["show","hide"]),zr=oi(["midnight","ocean","ember","forest","custom"]),Or=oi(["delay","exit_intent"]),xr=fo().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 "/"'),Er=fo().trim().refine(e=>{const t=new Date(e);return!Number.isNaN(t.getTime())},"Use a valid date and time"),Tr=Vo({text:fo().trim().min(1,"Text is required").max(160,"Text must be 160 characters or fewer"),linkLabel:fo().trim().max(32,"Link label must be 32 characters or fewer").optional().nullable(),linkUrl:xr.optional().nullable(),dismissible:Zo().default(!1),displayMode:pr.default("marquee"),themePreset:fr.default("custom"),animationSpeedSeconds:Uo().int().min(8).max(40).default(30),backgroundColor:dr.default("#111827"),textColor:dr.default("#f9fafb")}),$r=Vo({text:fo().trim().min(1,"Text is required").max(120,"Text must be 120 characters or fewer"),endAt:Er,linkLabel:fo().trim().max(32,"Link label must be 32 characters or fewer").optional().nullable(),linkUrl:xr.optional().nullable(),dismissible:Zo().default(!1),themePreset:fr.default("brand_blue"),expiredBehavior:mr.default("hide"),expiredMessage:fo().trim().max(120,"Expired message must be 120 characters or fewer").optional().nullable(),density:hr.default("compact"),ctaStyle:_r.default("subtle"),timerStyle:yr.default("boxed"),backgroundColor:dr.default("#111827"),textColor:dr.default("#f9fafb")}),Ar=Vo({eyebrow:fo().trim().max(32,"Eyebrow must be 32 characters or fewer").optional().nullable(),title:fo().trim().min(1,"Title is required").max(80,"Title must be 80 characters or fewer"),body:fo().trim().min(1,"Body is required").max(240,"Body must be 240 characters or fewer"),linkLabel:fo().trim().max(32,"Link label must be 32 characters or fewer").optional().nullable(),linkUrl:xr.optional().nullable(),themePreset:gr.default("indigo"),layoutStyle:vr.default("feature"),density:br.default("comfortable"),ctaStyle:wr.default("outline"),icon:Sr.default("sparkles"),iconVisibility:kr.default("show"),backgroundColor:dr.default("#111827"),textColor:dr.default("#f9fafb"),accentColor:dr.default("#818cf8")}),Ir=Vo({title:fo().trim().min(1,"Title is required").max(80,"Title must be 80 characters or fewer").default("Recent purchases"),lookbackHours:Uo().int().min(1).max(168).default(24),cooldownSeconds:Uo().int().min(5).max(300).default(20),maxItems:Uo().int().min(1).max(20).default(8),anonymizeMode:oi(["first_name_city","first_name_country","initial_country","anonymous"]).default("first_name_city"),includedProductIds:Jo(fo().min(1)).max(50).default([])}),Nr=Vo({eyebrow:fo().trim().max(32,"Eyebrow must be 32 characters or fewer").optional().nullable(),title:fo().trim().min(1,"Title is required").max(80,"Title must be 80 characters or fewer"),body:fo().trim().min(1,"Body is required").max(240,"Body must be 240 characters or fewer"),couponCode:fo().trim().min(2,"Coupon code is required").max(40,"Coupon code must be 40 characters or fewer"),primaryButtonLabel:fo().trim().min(1,"Primary button label is required").max(24,"Primary button label must be 24 characters or fewer").default("Copy code"),secondaryButtonLabel:fo().trim().min(1,"Secondary button label is required").max(24,"Secondary button label must be 24 characters or fewer").default("Maybe later"),disclaimer:fo().trim().max(100,"Disclaimer must be 100 characters or fewer").optional().nullable(),themePreset:zr.default("midnight"),trigger:Or.default("delay"),delaySeconds:Uo().int().min(0).max(60).default(6),showOncePerSession:Zo().default(!0),reminderHours:Uo().int().min(1).max(720).default(24),backgroundColor:dr.default("#111827"),textColor:dr.default("#f8fafc"),accentColor:dr.default("#7c9cff"),heroImageUrl:xr.optional().nullable(),discountDisplay:fo().trim().max(24,"Discount display must be 24 characters or fewer").optional().nullable(),expiresAt:Er.optional().nullable()}),Cr=Vo({type:ri("announcement_bar"),slot:cr,enabled:Zo().default(!0),sortOrder:Uo().int().min(0).max(999).default(0),config:Tr}),Pr=Vo({type:ri("recent_purchase_popup"),slot:cr,enabled:Zo().default(!0),sortOrder:Uo().int().min(0).max(999).default(0),config:Ir}),Rr=Vo({type:ri("countdown_bar"),slot:cr,enabled:Zo().default(!0),sortOrder:Uo().int().min(0).max(999).default(0),config:$r}),Ur=Vo({type:ri("promo_info_card"),slot:cr,enabled:Zo().default(!0),sortOrder:Uo().int().min(0).max(999).default(0),config:Ar}),qr=Vo({type:ri("coupon_popup_modal"),slot:cr,enabled:Zo().default(!0),sortOrder:Uo().int().min(0).max(999).default(0),config:Nr}),jr=(Xo("type",[Cr,Rr,Ur,Pr,qr]),Xo("type",[Cr.extend({id:fo().min(1)}),Rr.extend({id:fo().min(1)}),Ur.extend({id:fo().min(1)}),Pr.extend({id:fo().min(1)}),qr.extend({id:fo().min(1)})]),new Set(["amount","currency","invoice_id","customer_email","id","email","price","price_usd","product_name","quantity"].map(e=>e.toLowerCase())),ti(fo(),Mo())),Dr=Ho([fo(),Uo()]),Zr=Vo({default_value:fo().optional(),min_length:Uo().optional(),name:fo(),placeholder:fo().optional(),regex:fo().optional(),required:Zo(),type:fo()}),Lr=Vo({id:fo(),price:Uo(),quantity:Uo(),title:fo()}),Mr=Vo({addons:Jo(Lr).optional(),available_addons:Jo(Mo()).optional(),cloudflare_image_id:fo().nullable(),created_at:fo().optional(),currency:fo(),custom_fields:jr.nullable().optional(),custom_fields_config:Jo(Zr).nullable().optional(),delivery_instruction:Mo().optional(),delivery_instruction_config:Mo().optional(),delivery_instruction_label:Mo().optional(),delivery_text:fo().nullable().optional(),delivery_time:Uo().optional(),description:fo().nullable(),discount_percent:Uo().optional(),discount_display:Uo().optional(),discounted_total_display:Uo().optional(),gateways:Jo(fo()).nullable().optional(),id:fo().optional(),image_name:fo().nullable(),image_storage:fo().optional(),line_item_id:fo().nullable().optional(),pay_what_you_want:Zo().optional(),price:fo().optional(),price_display:Dr,quantity:Uo(),quantity_max:Uo().optional(),quantity_min:Uo().optional(),recurring_interval:fo().nullable().optional(),recurring_interval_count:Uo().nullable().optional(),redirect_link:fo().nullable().optional(),redirect_time:Uo().nullable().optional(),service_text:fo().nullable().optional(),setup_cost:fo().optional(),slug:fo().optional(),status:fo().nullable().optional(),subtype:fo().nullable().optional(),terms_of_service:fo().nullable().optional(),title:fo(),total:Uo(),trial_period:Uo().nullable().optional(),type:fo().nullable().optional(),uniqid:fo().nullable(),unit_price:Uo().optional(),unit_price_display:Dr.optional(),unit_quantity:Uo(),updated_at:fo().optional(),variant_title:fo().nullable().optional(),video_link:fo().nullable().optional(),volume_discounts:Mo().optional(),warranty_days:Uo().nullable().optional(),warranty_text:fo().nullable().optional()}),Fr=Vo({amount:Uo(),gateway:fo()}),Br=Vo({custom_tip_enabled:Zo().optional(),enabled:Zo(),preset_percentages:Jo(Uo()).optional()}),Yr=Vo({allow_partial_payment:Zo().optional(),auto_apply:Zo().optional(),available:fo(),currency:fo()}),Jr=Vo({affiliate_code:fo().nullable().optional(),already_paid:Dr.nullable().optional(),amount_due:Dr.nullable().optional(),currency:fo().nullable().optional(),discount:Dr.nullable().optional(),discount_label:fo().nullable().optional(),gateway_fee:Dr.nullable().optional(),platform_fee:Dr.nullable().optional(),subtotal:Dr.nullable().optional(),tip:Dr.nullable().optional(),total:Dr.nullable().optional()}),Wr=Vo({active:Zo(),expires_at:fo()}),Vr=Vo({faq_url:fo().nullable(),support_email:fo().nullable(),support_url:fo().nullable(),telegram_invite:fo().nullable()}),Gr=Vo({currency:fo().nullable().optional(),enabled:Zo(),max_amount:Uo().nullable().optional(),min_amount:Uo().nullable().optional(),reason:oi(["BELOW_MIN_AMOUNT","ABOVE_MAX_AMOUNT"]).nullable().optional()}),Hr=Vo({delivered_items:Jo(Mo()),downloads:Jo(Mo()),external_urls:Jo(Mo()),license_keys:Jo(Mo()),tracking_codes:Jo(Mo())}),Kr=Vo({active:Zo().optional(),attempt_id:fo().optional(),buyer_actionable:Zo().nullable().optional(),crypto_currency:fo().nullable().optional(),currency:fo().optional(),expected_amount:fo().nullable().optional(),expected_crypto_amount:fo().nullable().optional(),last_checked_at:fo().optional(),missing_amount:fo().nullable().optional(),missing_crypto_amount:fo().nullable().optional(),provider_reference:fo().nullable().optional(),provider_status:fo().nullable().optional(),received_amount:fo().nullable().optional(),received_crypto_amount:fo().nullable().optional(),shortfall_percent:fo().nullable().optional()}),Xr=Vo({created_at:fo().nullable(),details:fo().nullable(),id:fo(),invoice_id:fo(),status:fo().nullable()}),Qr=Vo({billing_address_mode:oi(["INHERIT","REQUIRED","DISABLED"]).optional(),button_label:fo().nullable().optional(),display_name:fo().nullable().optional(),gateway:fo(),hide_provider_attribution:Zo().optional(),icon_url:fo().nullable().optional(),terms_mode:oi(["INHERIT","REQUIRED","DISABLED"]).optional()}),ea=Vo({custom_fields:Jo(Mo()).optional(),description:fo().nullable(),display_order:Uo(),icon_preset:fo().nullable(),icon_url:fo().nullable(),id:fo(),instructions:fo().nullable(),is_active:Zo().optional(),name:fo(),payment_type:oi(["INSTRUCTIONS","REDIRECT"]),redirect_url:fo().nullable(),require_proof:Zo(),void_after_hours:Uo()}),ta=Vo({email:Vo({masked:fo().nullable(),persisted:Zo(),required_for_provider_session:Zo().optional()})}),na=Vo({amount:fo().nullable(),confirmations:Uo().nullable(),created_at:Uo().optional(),hash:fo().nullable(),status:fo().optional()}),oa=Vo({conf:Vo({partial:Uo().optional(),void:Uo(),waiting_for_confirmations:Uo().optional()}),gateways:Jo(fo())});Vo({already_paid_amount:Dr.nullable().optional(),apm_method:fo().nullable().optional(),blockchain:fo().nullable(),buyer_identity:ta.nullable().optional(),checkout_tipping:Br.nullable().optional(),country_regulations:fo().nullable().optional(),coupon_applied:Zo().optional(),crypto_mode:fo().nullable().optional(),crypto_transactions:Jo(na).optional(),currency:fo().nullable(),custom_fields:jr.nullable().optional(),custom_gateways:Jo(ea).optional(),customer_balance:Yr.nullable().optional(),customer_email_masked:fo().nullable().optional(),dark_mode:Ho([ri(0),ri(1)]).optional(),delivery:Hr.optional(),delivery_info:Hr.optional(),discount:Uo().optional(),discount_display:Dr.optional(),eligible_gateways:Jo(fo()).optional(),environment:fo().optional(),fee_breakdown:jr.nullable().optional(),gateway:fo().nullable(),gateway_data:jr.nullable().optional(),gateway_eligibility:ti(fo(),Gr).optional(),gateway_fee_previews:Jo(Fr).optional(),gateways_available:Jo(fo()),license:Ho([jr,ri(!1)]).optional(),name:fo().nullable(),paddle_token:fo().nullable().optional(),paddle_transaction_id:Mo().optional(),payment_link_id:fo().nullable().optional(),payment_method_overrides:Jo(Qr).optional(),polling:Wr,pricing_breakdown:Jr.nullable().optional(),product:Jo(Mr).optional(),quantity:Uo().nullable(),rates_snapshot:ti(fo(),Uo()).optional(),remaining_amount:Dr.nullable().optional(),selected_gateway:fo().nullable().optional(),shop_checkout_ambient_color:fo().nullable().optional(),shop_cloudflare_image_id:fo().nullable(),shop_domain:fo().nullable().optional(),shop_force_paypal_email_delivery:Ho([ri(0),ri(1)]).optional(),shop_image_name:fo().nullable(),shop_image_storage:fo().nullable().optional(),shop_payment_gateways_fees:Jo(jr).optional(),shop_paypal_credit_card:Ho([ri(0),ri(1)]).optional(),shop_return_url:fo().nullable().optional(),shop_slug:fo().nullable().optional(),shop_terms_enabled:Zo().optional(),shop_terms_of_service:fo().nullable().optional(),shop_terms_url:fo().nullable().optional(),shop_walletconnect_id:fo().nullable().optional(),status:fo().nullable(),status_history:Jo(Xr).optional(),status_history_legacy:Jo(Xr).optional(),status_history_raw:Jo(Xr).optional(),stripe_publishable_key:fo().nullable().optional(),stripe_user_id:fo().nullable().optional(),subtotal:Uo().optional(),subtype:fo().nullable().optional(),support:Vr.optional(),theme:fo().optional(),tip_amount:Dr.nullable().optional(),tip_amount_display:Dr.nullable().optional(),tip_metadata:Mo().optional(),total:Dr,total_conversions:jr.optional(),total_display:Dr,type:fo().nullable(),underpayment:Kr.nullable().optional(),underpayment_status:fo().nullable().optional(),uniqid:fo(),void_times:Jo(oa).optional(),addons:Mo().optional(),affiliate_data:Mo().optional(),affiliate_revenue_customer_id:fo().nullable().optional(),bill_info:Mo().optional(),binance_checkout_url:fo().nullable().optional(),binance_invoice_id:fo().nullable().optional(),binance_qrcode:fo().nullable().optional(),bundle_config:Mo().optional(),bundles:Mo().optional(),cashapp_cashtag:fo().nullable().optional(),cashapp_note:fo().nullable().optional(),cashapp_qrcode:fo().nullable().optional(),created_at:fo().optional(),crypto_address:fo().nullable().optional(),crypto_amount:Dr.optional(),crypto_confirmations_needed:Uo().nullable().optional(),crypto_exchange_rate:Dr.nullable().optional(),crypto_received:Dr.optional(),crypto_uri:fo().nullable().optional(),developer_invoice:Mo().optional(),developer_return_url:fo().nullable().optional(),developer_title:fo().nullable().optional(),exchange_rate:Dr.nullable().optional(),external_order_id:fo().nullable().optional(),lex_order_id:fo().nullable().optional(),lex_payment_method:fo().nullable().optional(),paydash_payment_id:fo().nullable().optional(),paypal_apm:fo().nullable().optional(),paypal_email_delivery:Zo().optional(),paypal_fee:Dr.nullable().optional(),paypal_order_id:fo().nullable().optional(),paypal_payer_email:fo().nullable().optional(),paypal_subscription_id:fo().nullable().optional(),paypal_subscription_link:fo().nullable().optional(),perfectmoney_id:fo().nullable().optional(),product_addons:Mo().optional(),product_id:fo().nullable().optional(),product_title:fo().nullable().optional(),product_type:fo().nullable().optional(),product_variants:Mo().optional(),recurring_billing_id:fo().nullable().optional(),skrill_link:fo().nullable().optional(),skrill_sid:fo().nullable().optional(),status_details:Mo().optional(),stripe_apm:fo().nullable().optional(),stripe_client_secret:fo().nullable().optional(),stripe_id:fo().nullable().optional(),stripe_price_id:fo().nullable().optional(),subscription:Mo().optional(),subscription_id:fo().nullable().optional(),sumup_id:fo().nullable().optional(),telegram_stars_payment_link:fo().nullable().optional(),telegram_stars_payment_note:fo().nullable().optional(),updated_at:fo().optional(),virtual_payments_id:fo().nullable().optional(),void_details:Mo().optional()}).catchall(Mo());var ia=null,ra=null;var aa=null,sa=null;function ua(e,t){const n=t?.shopId?.trim();return sa=n||null,ia=null,ra=null,aa={storeSlug:e,locale:t?.locale,currency:t?.currency,apiBaseUrl:t?.apiBaseUrl??"https://api.shoppex.io",checkoutBaseUrl:t?.checkoutBaseUrl??"https://checkout.shoppex.io"}}function la(){if(!aa)throw new t;return aa}function ca(){return null!==aa}function da(e){sa=e}function pa(){return sa}function fa(e){return function(e){if(Array.isArray(e))return e;if("string"==typeof e){try{const t=JSON.parse(e);if(Array.isArray(t))return t;if(t&&"object"==typeof t){const e=t.custom_fields??t.customFields;return Array.isArray(e)?e:[]}}catch{return[]}return[]}if(e&&"object"==typeof e){const t=e.custom_fields??e.customFields;return Array.isArray(t)?t:[]}return[]}(e).filter(e=>!!e&&"object"==typeof e&&!Array.isArray(e)).map(e=>{const t="string"==typeof e.type?e.type.trim().toLowerCase():"text",n=t.length>0?t:"text",o=[e.default_value,e.default,e.value].find(e=>"string"==typeof e&&e.trim().length>0);return{name:"string"==typeof e.name?e.name.trim():"",type:n,required:!0===e.required||"true"===e.required||1===e.required||"1"===e.required,defaultValue:"string"==typeof o?o:"",placeholder:"string"==typeof e.placeholder?e.placeholder:"",regex:"string"==typeof e.regex?e.regex:void 0}}).filter(e=>e.name.length>0&&"hidden"!==e.type)}function ma(e){const t=e?.trim().toLowerCase()??"";return"true"===t||"1"===t||"yes"===t||"on"===t}function ha(e,t){if("checkbox"===e.type)return e.required&&!ma(t)?`${e.name} is required.`:null;const n=t.trim();if(e.required&&!n)return`${e.name} is required.`;if(e.regex&&n)try{if(!new RegExp(e.regex).test(n))return`${e.name} has an invalid format.`}catch{return null}return null}function _a(e,t){const n={};return e.forEach(e=>{const o=t[e.name]??e.defaultValue??"";if("checkbox"===e.type)return void(ma(o)&&(n[e.name]="true"));const i=o.trim();i.length>0&&(n[e.name]=i)}),n}function ya(e){return"number"==typeof e&&Number.isFinite(e)?Math.trunc(e):null}function ga(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 va(e){if(!e)return-1;if("string"==typeof e.type&&"SERIALS"===e.type.toUpperCase())return ya(e.stock)??-1;const t=function(e){const t=Array.isArray(e.price_variants)?e.price_variants.map(e=>ya(e.stock)):[];return t.length>0?t:Array.isArray(e.variants)?e.variants.map(e=>ya(e.stock)):[]}(e);return t.length>0?t.some(e=>null===e||e<0)?-1:t.filter(e=>null!==e).reduce((e,t)=>e+Math.max(t,0),0):ya(e.stock)??-1}function ba(e){return!!function(e){return!!e&&(ga(e.on_hold)||ga(e.onHold)||ga(e.is_on_hold)||ga(e.isOnHold))}(e)||0===va(e)}function wa(e){return!ba(e)}function Sa(e){return 0===ya(e?.stock)}function ka(e){return ya(e?.stock)??-1}function za(e=[]){const t=/* @__PURE__ */new Map;for(const n of e)n?.uniqid&&!t.has(n.uniqid)&&t.set(n.uniqid,n);return t}function Oa(e,t=[]){const n=t instanceof Map?t:za(t);return(e.product_uniqids??[]).flatMap(e=>{const t=n.get(e);return t?[t]:[]})}function xa(e=[]){return Array.from(za(e).values())}function Ea(e){return e?e.replace(/<[^>]*>/g," ").replace(/\s+/g," ").trim():""}function Ta(e){return e.trim().toLowerCase()}function $a(e,t){const n=Ea(t).toLowerCase();n&&e.push(n)}function Aa(e){const t=[];$a(t,e.title),$a(t,e.slug??void 0),$a(t,e.description);for(const n of e.product_highlights??[])$a(t,n);for(const n of e.variants??[])$a(t,n.title);for(const n of e.price_variants??[])$a(t,n.title??n.label);return t}function Ia(e,t){const n=Ta(t);return!!n&&Aa(e).some(e=>e.includes(n))}function Na(e,t){const n=Ta(t);if(!n)return!1;const o=Ea(e.title).toLowerCase(),i=Ea(e.slug??e.name??void 0).toLowerCase(),r=Ea(e.description).toLowerCase();return o.includes(n)||i.includes(n)||r.includes(n)}function Ca(e,t,n){const o=Ta(t);if(!o)return[];let i=e.filter(e=>Ia(e,o));return n?.hideOutOfStock&&(i=i.filter(e=>wa(e))),null!=n?.maxResults?i.slice(0,n.maxResults):i}function Pa(e,t){return 0!==e.length&&(!t||e.some(e=>wa(e)))}function Ra(e,t,n,o){const i=Ta(n);if(!i)return[];const r=!0===o?.hideOutOfStock,a=/* @__PURE__ */new Set,s=/* @__PURE__ */new Set,u=[],l=za(e);for(const d of t){const e=d.uniqid??d.id;if(!e||s.has(e))continue;if(!Na(d,i))continue;const t=Oa(d,l);if(Pa(t,r)){s.add(e);for(const e of t)e?.uniqid&&a.add(e.uniqid);u.push({type:"group",group:d,products:t})}}const c=xa(e);for(const d of c)d?.uniqid&&!a.has(d.uniqid)&&Ia(d,i)&&(r&&!wa(d)||(a.add(d.uniqid),u.push({type:"product",product:d})));return null!=o?.maxResults?u.slice(0,o.maxResults):u}function Ua(e,t,n,o){const i=Ra(e,t,n,o),r=/* @__PURE__ */new Set,a=[],s=e=>{e?.uniqid&&!r.has(e.uniqid)&&(o?.hideOutOfStock&&!wa(e)||(r.add(e.uniqid),a.push(e)))};for(const u of i)if("product"!==u.type)for(const e of u.products)s(e);else s(u.product);return null!=o?.maxResults?a.slice(0,o.maxResults):a}function qa(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 ja(e){const t=e.name?.trim()??"",n=`${t?`Name: ${t}\n\n`:""}${e.message.trim()}`,o=e.maxLength??2e3;return n.slice(0,o)}async function Da(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=ja({name:e.name,message:e.message}),a=e.invoiceId?.trim()||void 0,s=qa({apiBaseUrl:e.apiBaseUrl}),u=await fetch(`${s}/v1/storefront/shops/name/${encodeURIComponent(t)}/tickets`,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({email:n,title:i,message:r,...a?{invoice_id:a}:{}})}),l=await u.json().catch(()=>null);if(!u.ok)throw new Error(l?.message||l?.error||"Failed to send your message.");const c=l?.data?.uniqid;if(!c)throw new Error("Ticket created, but the response was incomplete.");return{uniqid:c}}function Za(e){return{discord:e?.discord_link??e?.social?.discord??null,telegram:e?.telegram_link??e?.social?.telegram??null}}var La=/* @__PURE__ */new Map,Ma=/* @__PURE__ */new Map,Fa={hits:0,misses:0};function Ba(e,t,n){const o=Date.now();La.set(e,{data:t,ttl:n,updatedAt:o,expiresAt:o+n})}async function Ya(e,t,n,o=()=>!0){const i=function(e){const t=La.get(e);return t||null}(e);if(i&&!function(e){return Date.now()>e.expiresAt}(i))return Fa.hits+=1,i.data;if(i&&n.staleWhileRevalidate){if(Fa.hits+=1,!Ma.has(e)){const i=(async()=>{try{const i=await t();return o(i)&&Ba(e,i,n.ttl),i}finally{Ma.delete(e)}})();Ma.set(e,i)}return i.data}if(Ma.has(e))return Ma.get(e);Fa.misses+=1;const r=(async()=>{try{const i=await t();return o(i)&&Ba(e,i,n.ttl),i}finally{Ma.delete(e)}})();return Ma.set(e,r),r}var Ja=/:([A-Za-z0-9_]+)/g;function Wa(e,t){return e.replace(Ja,(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 Va(e){return`shoppex_${e}`}function Ga(e){try{const t=localStorage.getItem(Va(e));return t?JSON.parse(t):null}catch{return null}}function Ha(e,t){try{localStorage.setItem(Va(e),JSON.stringify(t))}catch{console.warn("[shoppex] Failed to save to localStorage")}}function Ka(e){try{localStorage.removeItem(Va(e))}catch{}}function Xa(e){if("undefined"==typeof window)return null;const t=`presence_connection_${e}`,n=Ga(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 Ha(t,o),o}async function Qa(e){if(!ca())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=Ga(t);return"number"==typeof o&&n-o<15e3||(Ha(t,n),!1)}(e))return;const t=la(),n=pa(),o=n?Wa("/v1/storefront/shops/id/:id/ping",{id:n}):Wa("/v1/storefront/shops/:storeSlug/ping",{storeSlug:t.storeSlug}),i=JSON.stringify({event_type:"client_error",referer:document.referrer||void 0,connection_id:Xa(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 es=1e4;async function ts(e){return new Promise(t=>setTimeout(t,e))}async function ns(e,t={}){const o=t.baseUrl?null:la(),{method:i="GET",body:r,timeout:a=es,retries:s,baseUrl:u,cache:l}=t,c=s??("GET"===i?2:0),d=`${u??o?.apiBaseUrl??""}${e}`,p={"Content-Type":"application/json",Accept:"application/json"};let f=null;const m=async()=>{for(let t=0;t<=c;t++)try{const e=new AbortController,t=setTimeout(()=>e.abort(),a),o=await fetch(d,{method:i,headers:p,body:r?JSON.stringify(r):void 0,signal:e.signal});clearTimeout(t);const s=await os(o);if(!o.ok){const e=o.statusText?`HTTP ${o.status}: ${o.statusText}`:`HTTP ${o.status}`;throw new n((s.data&&"object"==typeof s.data&&"error"in s.data&&"string"==typeof s.data.error?s.data.error:null)??(s.data&&"object"==typeof s.data&&"message"in s.data&&"string"==typeof s.data.message?s.data.message:null)??s.rawText??e,o.status)}if(204===o.status&&null===s.data)return{success:!0};if(!s.data||"object"!=typeof s.data||!("status"in s.data))throw new n("Invalid API response",o.status);return is(s.data)}catch(e){let o=e instanceof Error?e:new Error(String(e));e instanceof DOMException&&"AbortError"===e.name&&(o=new n("Request timeout",408));const i=o instanceof n?o.statusCode:void 0;if(f={message:o.message,statusCode:i,isTransport:void 0===i||408===i},t<c){await ts(500*Math.pow(2,t));continue}}return{success:!1,message:f?.message??"Unknown error"}},h="GET"===i&&l&&l.ttl>0?await Ya(l.key??`GET:${d}`,m,{ttl:l.ttl,staleWhileRevalidate:l.staleWhileRevalidate},e=>e.success):await m(),_=f;return!h.success&&_?.isTransport&&await Qa({endpoint:e,method:i,message:h.message??_.message,statusCode:_.statusCode,attemptCount:c+1,requestUrl:d,responseReceived:void 0!==_.statusCode&&408!==_.statusCode}),h}async function os(e){const t=e;if("function"!=typeof t.text){if("function"==typeof t.json)try{return{data:await t.json(),rawText:null}}catch{return{data:null,rawText:null}}return{data:null,rawText:null}}try{const e=await t.text();if(!e)return{data:null,rawText:null};try{return{data:JSON.parse(e),rawText:null}}catch{const t=e.trim();return{data:null,rawText:t.length>0?t:null}}}catch{return{data:null,rawText:null}}}function is(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 rs(e,t){return ns(e,{...t,method:"GET"})}async function as(e,t,n){return ns(e,{...n,method:"POST",body:t})}var ss=3e5;async function us(){const e=la(),t=await rs(Wa("/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&&da(t.data.shop.id),{success:!0,data:t.data.shop}):{success:!1,message:t.message}}async function ls(e){const t=la(),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 rs(`${Wa("/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&&da(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 cs=12e4;function ds(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,quantity_min:e.quantity_min,quantity_max:e.quantity_max,quantityMin:e.quantityMin,quantityMax:e.quantityMax,image_id:e.image_id,imageId:e.imageId,cloudflare_image_id:e.cloudflare_image_id,cloudflareImageId:e.cloudflareImageId,image_url:e.image_url,imageUrl:e.imageUrl}}(e))}:e}async function ps(){const e=la(),t=await rs(Wa("/v1/storefront/products/public/:storeSlug",{storeSlug:e.storeSlug}),{cache:{key:`products:${e.storeSlug}`,ttl:cs,staleWhileRevalidate:!0}});return t.success&&t.data?{success:!0,data:xa(t.data.products.map(ds))}:{success:!1,message:t.message,data:[]}}function fs(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 ms(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:fs(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};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 hs(e){return"string"==typeof e.line_id&&e.line_id.trim()?e:{...e,line_id:ms(e)}}var _s={cart:"cart",cartBackup:"cart_backup",meta:"cart_meta",metaBackup:"cart_backup_meta",coupon:"cart_coupon",couponBackup:"cart_coupon_backup"};function ys(e){return`${_s[e]}_${la().storeSlug}`}function gs(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 vs(e){if(!Number.isFinite(e))throw new i("quantity must be a finite number");return Math.floor(e)}function bs(e){const t=e?.trim().toUpperCase();return t||null}function ws(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})}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),$s(a),a.line_id=("string"==typeof e.line_id?e.line_id.trim():"")||ms(a),t.push(hs(a))}return t}function Ss(){return Ga(ys("meta"))}function ks(){const e=Ga(ys("coupon"));return"string"!=typeof e?null:bs(e)}function zs(e){const t=bs(e);return t?(Ha(ys("coupon"),t),t):(Ka(ys("coupon")),null)}function Os(){Ka(ys("coupon"))}function xs(e){const t=ws(e);Ha(ys("cart"),t);const n=Date.now(),o=Ss(),i={created_at:o?.created_at??n,last_modified:n,version:(o?.version??0)+1,checksum:gs(t)};Ha(ys("meta"),i),0===t.length&&Os()}function Es(e,t){const n=ws(e);Ha(ys("cart"),n);const o=Date.now(),i=t??Ss(),r={created_at:i?.created_at??o,last_modified:o,version:i?.version??1,checksum:gs(n)};Ha(ys("meta"),r)}function Ts(){return ws(Ga(ys("cart")))}function $s(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 As(){Ka(ys("cart")),Ka(ys("meta")),Os()}function Is(){const e=Ts();Ha(ys("cartBackup"),e);const t=ks();t?Ha(ys("couponBackup"),t):Ka(ys("couponBackup"));const n=Ss();if(n)Ha(ys("metaBackup"),n);else{const t=Date.now();Ha(ys("metaBackup"),{created_at:t,last_modified:t,version:1,checksum:gs(e)})}}function Ns(){const e=Ts(),t=Ss(),n=gs(e);return t?t.checksum===n:(Es(e,null),!0)}var Cs="shoppex:affiliate_code:v1";function Ps(){return Date.now()}function Rs(e){const t=e?.trim().toLowerCase();return t||null}function Us(e,t=30){const n=Rs(e);return n?(function(e){if("undefined"!=typeof window)try{window.localStorage.setItem(Cs,JSON.stringify(e))}catch{}}({code:n,expiresAt:Ps()+(o=t,24*Math.max(1,o)*60*60*1e3)}),n):(qs(),null);var o}function qs(){if("undefined"!=typeof window)try{window.localStorage.removeItem(Cs)}catch{}}function js(){const e=function(){if("undefined"==typeof window)return null;try{const e=window.localStorage.getItem(Cs);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<=Ps()?(qs(),null):Rs(e.code):null}async function Ds(e){const t=Rs(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 as("/v1/storefront/affiliates/resolve",{shop_slug:la().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:Rs(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 Zs(e){const t=e?.trim();return t||null}function Ls(e){const t=e?.trim();return t||null}function Ms(e){const t=e?.trim().toUpperCase();return t&&/^[A-Z]{3}$/.test(t)?t:null}function Fs(e){return Ms(e.currency)??function(){if("undefined"==typeof window||!window.location)return null;const e="string"==typeof window.location.search?window.location.search:"";if(e)return Ms(new URLSearchParams(e).get("currency"));const t="string"==typeof window.location.href?window.location.href:"";if(!t)return null;try{return Ms(new URL(t,"https://storefront.shoppex.local").searchParams.get("currency"))}catch{return null}}()}function Bs(e){const t=e?.trim()??"";if(!t)return"Checkout failed. Please try again.";if(Ys(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 Ys(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 Js(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 Ws(e,t){const n=Ls(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 Vs(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 Gs(e,t){return"string"==typeof e?{...t,coupon:e}:e??t??{}}function Hs(e){const t=e.affiliateCode??e.referralCode;return"string"==typeof t&&t.trim().length>0?t.trim().toLowerCase():js()}function Ks(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}))}function Xs(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 Qs(...e){for(const t of e)if("string"==typeof t&&t.length>0)return t}function eu(e,t){const n=e,o=Xs(n.rating)??Xs(n.score)??0,i=Qs(n.comment,n.message),r=Qs(n.author,n.customer_name),a=n.created_at??n.createdAt,s="number"==typeof a||"string"==typeof a?String(a):"",u=Qs(n.id,n.uniqid)??`review:${s||t}`;return{...n,id:u,rating:o,...i?{comment:i}:{},...r?{author:r}:{},created_at:s}}async function tu(e){const t=la(),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 rs(`${Wa("/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 nu(e){const t=e.trim();return t||null}var ou=3e5;var iu=3e5;async function ru(){const e=la(),t=await rs(Wa("/v1/storefront/shops/name/:storeSlug/menus",{storeSlug:e.storeSlug}),{cache:{key:`menus:${e.storeSlug}`,ttl:iu,staleWhileRevalidate:!0}});return t.success&&t.data?{success:!0,data:t.data.menus}:{success:!1,message:t.message}}async function au(e){const t=la(),n=await rs(Wa("/v1/storefront/shops/name/:storeSlug/menus/:title",{storeSlug:t.storeSlug,title:e}),{cache:{key:`menu:${t.storeSlug}:${e}`,ttl:iu,staleWhileRevalidate:!0}});return n.success&&n.data?{success:!0,data:n.data.menu}:{success:!1,message:n.message}}async function su(e){return au(e)}async function uu(e){const t=la(),n=await rs(Wa("/v1/storefront/shops/name/:storeSlug/menus/:title",{storeSlug:t.storeSlug,title:e}),{cache:{key:`menu-slot:${t.storeSlug}:${e}`,ttl:iu,staleWhileRevalidate:!0}});return n.success&&n.data?{success:!0,data:n.data.menu}:{success:!1,message:n.message}}function lu(e){return function(e){const t=h[e];return[t.title,...t.aliases]}(e)}async function cu(e,t){if(!ca())return;if("undefined"==typeof document)return;const n=la(),o=Xa(n.storeSlug);try{const i=Wa("/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})})}catch{}}async function du(){if(!ca())return{success:!1,message:"SDK not initialized"};const e=la(),t=pa();return rs(t?Wa("/v1/storefront/shops/id/:id/recent-sales",{id:t}):Wa("/v1/storefront/shops/:storeSlug/recent-sales",{storeSlug:e.storeSlug}),{cache:!1,retries:0,timeout:5e3})}async function pu(){if(!ca())return{success:!1,message:"SDK not initialized"};const e=la(),t=pa();return rs(t?Wa("/v1/storefront/shops/id/:id/online-users",{id:t}):Wa("/v1/storefront/shops/:storeSlug/online-users",{storeSlug:e.storeSlug}),{cache:!1,retries:0,timeout:5e3})}async function fu(){if(!ca())return{success:!1,message:"SDK not initialized"};if("undefined"==typeof document)return{success:!1,message:"Document is not available"};const e=la(),t=pa();return as(t?Wa("/v1/storefront/shops/id/:id/ping",{id:t}):Wa("/v1/storefront/shops/:storeSlug/ping",{storeSlug:e.storeSlug}),{referer:document.referrer||void 0,connection_id:Xa(e.storeSlug)??void 0},{retries:0,timeout:5e3})}function mu(e,t){const n=la();return new Intl.NumberFormat(t??n.locale??"en-US",{style:"currency",currency:e??n.currency??"USD"})}function hu(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function _u(e){return hu(e)&&hu(e.theme)?{...e,version:"number"==typeof e.version?e.version:0,revision:"number"==typeof e.revision?e.revision:0,theme:{...e.theme,content:hu(e.theme.content)?e.theme.content:{},layout:hu(e.theme.layout)?e.theme.layout:{},style_slots:hu(e.theme.style_slots)?e.theme.style_slots:{},...Array.isArray(e.theme.pages)?{pages:e.theme.pages}:{},...hu(e.theme.terms)?{terms:e.theme.terms}:{}}}:null}async function yu(e){const t=await rs(Wa("/v1/storefront/themes/builder/published/:shopSlug",{shopSlug:e}));return t.success&&t.data?hu(n=t.data)?{settings:hu(n.settings)?n.settings:{},builder_settings:_u(n.builder_settings),content:hu(n.content)?n.content:{},style_slots:hu(n.style_slots)?n.style_slots:{}}:null:null;var n}async function gu(e){const t=await yu(e);return t?t.settings:null}function vu(e){const t={};for(const[n,o]of Object.entries(e.settings)){t[n]={};for(const[e,i]of Object.entries(o))t[n][e]=i.default}return t}function bu(e,t){const n={...e};for(const[o,i]of Object.entries(t))i&&(n[o]={...n[o],...i});return n}var wu={init:function(e,t){"string"==typeof e?ua(e,t):ua(e.storeId,e)},isInitialized:ca,getConfig:la,client:function(e){const t=la().apiBaseUrl??"https://api.shoppex.io";if(ia&&ra===t&&!e)return ia;const n=function(e,t){return a({baseUrl:e,headers:t?{Authorization:`Bearer ${t}`}:void 0})}(t,e);return e||(ia=n,ra=t),n},getStore:us,getStorefront:ls,getStoreLogoUrl:async function(){const e=await us();return e.success&&e.data?.logo?e.data.logo:null},getStoreBannerUrl:async function(){const e=await us();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??(ca()?la().apiBaseUrl:"https://api.shoppex.io"),r=await rs(Wa("/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&&da(r.data.shop.id),{success:!0,data:r.data.shop}):{success:!1,message:r.message??"Failed to resolve store"}},getProducts:ps,getStorefrontProductsPage:async function(e){const t=la(),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 rs(`${Wa("/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:cs,staleWhileRevalidate:!0}});var r;return i.success&&i.data?{success:!0,data:{products:i.data.products.map(ds),pagination:i.data.pagination??null}}:{success:!1,message:i.message}},getProduct:async function(e){let t=pa();if(!t){const e=await us();t=e.success?e.data?.id??null:null}const n=t?`?slug_shop_id=${encodeURIComponent(t)}`:"",o=await rs(`${Wa("/v1/storefront/products/unique/:idOrSlug",{idOrSlug:e})}${n}`,{cache:{key:`product:${e}:${t??"no-shop"}`,ttl:cs,staleWhileRevalidate:!0}});return o.success&&o.data?.product?{success:!0,data:ds(o.data.product)}:{success:!1,message:o.message}},getCategories:async function(){const e=await ps();if(!e.success||!e.data)return{success:!1,message:e.message};const t=/* @__PURE__ */new Set;for(const n of e.data)if(n.categories)for(const e of n.categories)"string"==typeof e?t.add(e):e&&"object"==typeof e&&"uniqid"in e&&t.add(e.uniqid);return{success:!0,data:Array.from(t)}},getCart:Ts,getCartItemCount:function(){return Ts().reduce((e,t)=>e+t.quantity,0)},getCartCoupon:ks,setCartCoupon:zs,clearCartCoupon:Os,addToCart:function(e,t,n=1,o){if(!e||!t)throw new i("product_id and variant_id are required");const r=vs(n);if(r<1)throw new i("quantity must be at least 1");const a=Ts(),s=ms({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}),u=a.findIndex(e=>e.line_id===s);if(u>=0)a[u].quantity+=r,o?.addons&&(a[u].addons=o.addons),o?.custom_fields&&(a[u].custom_fields=o.custom_fields),o?.price_variant_id&&(a[u].price_variant_id=o.price_variant_id),o?.price_data&&(a[u].price_data=o.price_data),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)}(a[u],o),$s(a[u]);else{const n={line_id:s,product_id:e,variant_id:t,quantity:r,addons:o?.addons,custom_fields:o?.custom_fields,price_variant_id:o?.price_variant_id,price_data:o?.price_data,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};$s(n),a.push(n)}xs(a)},setCartItem:function(e,t,n=1,o){if(!e||!t)throw new i("product_id and variant_id are required");const r=vs(n);if(r<1)throw new i("quantity must be at least 1");const a=Ts(),s=ms({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});for(let i=a.length-1;i>=0;i-=1)a[i].product_id===e&&a[i].variant_id===t&&a.splice(i,1);const u={line_id:s,product_id:e,variant_id:t,quantity:r,addons:o?.addons,custom_fields:o?.custom_fields,price_variant_id:o?.price_variant_id,price_data:o?.price_data,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};$s(u),a.push(u),xs(a)},updateCartItem:function(e,t){const n=Ts(),o=e.trim();if(!o)throw new i("line_id is required");const r=n.findIndex(e=>e.line_id===o);if(r<0)throw new i("Item not found in cart");if(void 0!==t.quantity){const e=vs(t.quantity);if(e<1)return n.splice(r,1),void xs(n);n[r].quantity=e}void 0!==t.addons&&(n[r].addons=t.addons),void 0!==t.custom_fields&&(n[r].custom_fields=t.custom_fields),void 0!==t.price_variant_id&&(n[r].price_variant_id=t.price_variant_id),void 0!==t.price_data&&(n[r].price_data=t.price_data),void 0!==t.max_quantity&&(n[r].max_quantity=t.max_quantity),void 0!==t.min_quantity&&(n[r].min_quantity=t.min_quantity),$s(n[r]),xs(n)},removeFromCart:function(e){const t=e.trim();if(!t)throw new i("line_id is required");xs(Ts().filter(e=>e.line_id!==t))},clearCart:As,createCartBackup:Is,restoreCartFromBackup:function(){const e=ws(Ga(ys("cartBackup"))),t=Ga(ys("metaBackup")),n=Ga(ys("couponBackup"));return!!(e&&e.length>0)&&(Es(e,t),"string"==typeof n?zs(n):Os(),!0)},mergeBaskets:function(e){const t=Ts();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=vs(n.quantity)}catch{continue}if(i<1)continue;const r=hs({...n,line_id:n.line_id??ms(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),$s(t[a])):($s(r),t.push(r))}return xs(t),t},moveBasketItem:function(e,t,n,o){const r=Ts(),a=r.findIndex(n=>n.product_id===e&&n.variant_id===t);if(a<0)throw new i("Item not found in cart");const[s]=r.splice(a,1),u=ms({...s,product_id:n,variant_id:o}),l=r.findIndex(e=>e.line_id===u);if(l>=0)r[l].quantity+=s.quantity,$s(r[l]);else{const e=hs({...s,product_id:n,variant_id:o,line_id:u});$s(e),r.push(e)}xs(r)},getCartStats:function(){const e=Ts(),t=Ns(),n=Ss(),o=Ga(ys("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:Ns,quoteCart:async function(e){const t=function(e){const t=la(),n=bs(e)??ks()??void 0;return{store_slug:t.storeSlug,items:Ts(),coupon:n}}(e);return as("/v1/storefront/cart/quote",{shop_slug:t.store_slug,cart:t.items,coupon:t.coupon})},resolveCartLineId:function(e,t,n=Ts()){const o=n.filter(n=>n.product_id===e&&n.variant_id===t);if(0===o.length)throw new i(`No cart line found for ${e}/${t}`);return o[0].line_id},checkout:async function(e,t){const n=Gs(e,t),{autoRedirect:o=!0,email:i,coupon:r}=n,a=void 0===r?ks():Zs(r),s=Ls(i),u=Hs(n),l=Fs(n),c=Ts();if(0===c.length)return{success:!1,message:"Cart is empty"};Is();const d=la();let p=await as("/v1/storefront/invoices/from-cart",{shop_slug:d.storeSlug,cart:Ks(c),email:s,coupon:a,currency:l,affiliate_code:u},{retries:0});if(!p.success||!p.data)return Ys(p.message)&&As(),{success:!1,message:Bs(p.message)};const f=Vs(p.data,d.checkoutBaseUrl);if(!f)return{success:!1,message:"Failed to create invoice"};const{invoiceId:m}=f,h=Js(f.checkoutUrl,d.checkoutBaseUrl,m);if(!h)return{success:!1,message:"Failed to create invoice"};const _=Ws(h,{email:s,locale:n.locale});return o&&"undefined"!=typeof window&&window?.location&&(window.location.href=_,As()),{success:!0,redirectUrl:_,invoiceId:m,rewards:f.rewards}},buildCheckoutUrl:async function(e,t){const n=Gs(e,t),{email:o,coupon:i}=n,r=void 0===i?ks():Zs(i),a=Ls(o),s=Hs(n),u=Fs(n),l=Ts();if(0===l.length)throw new Error("Cart is empty");const c=la();let d=await as("/v1/storefront/invoices/from-cart",{shop_slug:c.storeSlug,cart:Ks(l),email:a,coupon:r,currency:u,affiliate_code:s},{retries:0});if(!d.success||!d.data)throw Ys(d.message)&&As(),new Error(Bs(d.message));const p=Vs(d.data,c.checkoutBaseUrl);if(!p)throw new Error("Failed to create invoice");const f=Js(p.checkoutUrl,c.checkoutBaseUrl,p.invoiceId);if(!f)throw new Error("Failed to create invoice");return Ws(f,{email:a,locale:n.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=Rs(t),!t)return null;if(Us(t),ca())try{const e=await as("/v1/storefront/affiliates/attribution",{shop_slug:la().storeSlug,code:t},{retries:0});return e.success&&e.data?.accepted&&e.data?.affiliate_code?(Us(e.data.affiliate_code),e.data.affiliate_code):(qs(),null)}catch{return t}return t},validateAffiliateCode:Ds,applyAffiliateCode:async function(e){const t=await Ds(e);return t.success&&t.data?.affiliate_code&&Us(t.data.affiliate_code),t},getAffiliateCode:js,setAffiliateCode:Us,clearAffiliateCode:qs,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=Ts();if(0===e.length)return{success:!1,message:"Cart is empty"};const t=await async function(){const e=pa();if(e)return e;const t=await us();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 as("/v1/storefront/coupons/check",o)},getShopReviews:async function(){const e=[],t=/* @__PURE__ */new Set;let n=null;for(;;){const o=await tu(n);if(!o.success||!o.data)return{success:!1,message:o.message,data:[]};e.push(...(o.data.feedback??[]).map((t,n)=>eu(t,e.length+n)));const i=o.data.pagination;if(!i?.has_more||!i.next_cursor)break;if(t.has(i.next_cursor))break;t.add(i.next_cursor),n=i.next_cursor}return{success:!0,data:e}},searchProducts:async function(e,t){if(!ca())return{success:!1,message:"SDK not initialized"};const n=e.trim();if(!n)return{success:!0,data:[]};const o=await ls();return o.success&&o.data?{success:!0,data:Ua(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(!ca())return{success:!1,message:"SDK not initialized"};const n=e.trim();if(!n)return{success:!0,data:[]};const o=await ls();return o.success&&o.data?{success:!0,data:Ra(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=nu(e);if(!t)return{success:!1,message:"Invoice ID is required"};const n=await rs(Wa("/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=nu(e);if(!t)return{success:!1,message:"Invoice ID is required"};const n=await rs(Wa("/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=la(),t=await rs(Wa("/v1/storefront/shops/name/:storeSlug/pages",{storeSlug:e.storeSlug}),{cache:{key:`pages:${e.storeSlug}`,ttl:ou,staleWhileRevalidate:!0}});return t.success&&t.data?{success:!0,data:t.data.pages}:{success:!1,message:t.message}},getPage:async function(e){const t=la(),n=await rs(Wa("/v1/storefront/shops/name/:storeSlug/pages/:slug",{storeSlug:t.storeSlug,slug:e}),{cache:{key:`page:${t.storeSlug}:${e}`,ttl:ou,staleWhileRevalidate:!0}});return n.success&&n.data?{success:!0,data:n.data.page}:{success:!1,message:n.message}},getMenus:ru,getMenu:su,getMenuBySlot:uu,getMenuByTitle:au,getMenuSlotTitles:lu,trackPageView:cu,getStorefrontOnlineUsers:pu,getStorefrontRecentSales:du,touchStorefrontPresence:fu,createFormatter:mu,formatPrice:function(e,t,n){const o="string"==typeof e?parseFloat(e):e;return Number.isNaN(o)?mu(t,n).format(0):mu(t,n).format(o)},clearCache:function(){La.clear(),Ma.clear()},invalidateCache:function(e){for(const t of La.keys())(t===e||t.startsWith(e))&&La.delete(t)},getCacheStats:function(){return{hits:Fa.hits,misses:Fa.misses,pendingRequests:Ma.size,entries:La.size}},fetchPublishedBuilderSettings:yu,fetchPublishedThemeSettings:gu,resolveDefaults:vu,mergeSettings:bu};if("undefined"!=typeof window){const e=window;e.shoppex?.isInitialized?.()||(e.shoppex=wu)}export{i as CartError,n as NetworkError,t as NotInitializedError,e as ShoppexError,o as ValidationError,ja as buildStorefrontContactMessage,_a as buildStorefrontCustomFieldPayload,za as buildStorefrontProductLookup,Aa as collectProductSearchHaystack,ms as computeCartLineId,wu as default,wu as shoppex,hs as ensureCartLineId,yu as fetchPublishedBuilderSettings,gu as fetchPublishedThemeSettings,Ca as filterProductsBySearchQuery,su as getMenu,uu as getMenuBySlot,au as getMenuByTitle,lu as getMenuSlotTitles,ru as getMenus,xa as getMergedStorefrontProducts,Oa as getStorefrontGroupProducts,pu as getStorefrontOnlineUsers,du as getStorefrontRecentSales,Na as groupMatchesSearchQuery,wa as isProductInStock,ba as isProductOutOfStock,ma as isStorefrontCheckboxCustomFieldValueChecked,Sa as isVariantOutOfStock,bu as mergeSettings,Ta as normalizeSearchQuery,fa as normalizeStorefrontCustomFields,Ia as productMatchesSearchQuery,vu as resolveDefaults,va as resolveDisplayStock,qa as resolveStorefrontApiBaseUrl,Za as resolveStorefrontSocialLinks,ka as resolveVariantStockValue,Ua as searchMergedStorefrontCatalog,Ra as searchMergedStorefrontCatalogItems,Ea as stripHtmlFromText,Da as submitStorefrontContactTicket,fu as touchStorefrontPresence,cu as trackPageView,ha as validateStorefrontCustomFieldValue};
3
3
  //# sourceMappingURL=shoppex.esm.js.map