@shoppexio/storefront 1.0.49 → 1.0.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/customer.cjs +1 -1
- package/dist/customer.cjs.map +1 -1
- package/dist/customer.js +1 -1
- package/dist/customer.js.map +1 -1
- package/dist/shoppex.esm.js +1 -1
- package/dist/shoppex.esm.js.map +1 -1
- package/dist/shoppex.umd.js +1 -1
- package/dist/shoppex.umd.js.map +1 -1
- package/package.json +1 -1
package/dist/shoppex.umd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).shoppex={})}(this,function(e){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var t=new Map,n=new Map,o={hits:0,misses:0};function r(){t.clear(),n.clear()}function i(e,n,o){const r=Date.now();t.set(e,{data:n,ttl:o,updatedAt:r,expiresAt:r+o})}async function a(e,r,a,s=()=>!0){const l=function(e){const n=t.get(e);return n||null}(e);if(l&&!function(e){return Date.now()>e.expiresAt}(l))return o.hits+=1,l.data;if(l&&a.staleWhileRevalidate){if(o.hits+=1,!n.has(e)){const t=(async()=>{try{const t=await r();return s(t)&&i(e,t,a.ttl),t}finally{n.delete(e)}})();n.set(e,t)}return l.data}if(n.has(e))return n.get(e);o.misses+=1;const u=(async()=>{try{const t=await r();return s(t)&&i(e,t,a.ttl),t}finally{n.delete(e)}})();return n.set(e,u),u}var s=class e extends Error{constructor(t,n,o){super(t),this.name="ShoppexError",this.code=n,this.statusCode=o,Object.setPrototypeOf(this,e.prototype)}},l=class e extends s{constructor(){super("SDK not initialized. Call shoppex.init() first.","NOT_INITIALIZED"),this.name="NotInitializedError",Object.setPrototypeOf(this,e.prototype)}},u=class e extends s{constructor(t,n){super(t,"NETWORK_ERROR",n),this.name="NetworkError",Object.setPrototypeOf(this,e.prototype)}},c=class e extends s{constructor(t,n,o,r){super(t,n,o),this.name="ApiError",this.errorParams=r,Object.setPrototypeOf(this,e.prototype)}},d=class e extends s{constructor(t){super(t,"BASKET_ERROR"),this.name="CartError",Object.setPrototypeOf(this,e.prototype)}},p=/\{[^{}]+\}/g;function f(e){let{baseUrl:t="",Request:n=globalThis.Request,fetch:o=globalThis.fetch,querySerializer:r,bodySerializer:i,pathSerializer:a,headers:s,requestInitExt:l,...u}={...e};l="object"==typeof process&&Number.parseInt(process?.versions?.node?.substring(0,2))>=18&&process.versions.undici?l:void 0,t=w(t);const c=[];async function d(e,d){const{baseUrl:p,fetch:f=o,Request:m=n,headers:_,params:h={},parseAs:S="json",querySerializer:k,bodySerializer:E=i??b,pathSerializer:O,body:x,middleware:T=[],...A}=d||{};let z=t;p&&(z=w(p)??t);let I="function"==typeof r?r:y(r);k&&(I="function"==typeof k?k:y({..."object"==typeof r?r:{},...k}));const P=O||a||g,C=void 0===x?void 0:E(x,v(s,_,h.header)),N=v(void 0===C||C instanceof FormData?{}:{"Content-Type":"application/json"},s,_,h.header),$=[...c,...T],R={redirect:"follow",...u,...A,body:C,headers:N};let U,q,D,L=new m(function(e,t){let n=`${t.baseUrl}${e}`;t.params?.path&&(n=t.pathSerializer(n,t.params.path));let o=t.querySerializer(t.params.query??{});o.startsWith("?")&&(o=o.substring(1));o&&(n+=`?${o}`);return n}(e,{baseUrl:z,params:h,querySerializer:I,pathSerializer:P}),R);for(const t in A)t in L||(L[t]=A[t]);if($.length){U=Math.random().toString(36).slice(2,11),q=Object.freeze({baseUrl:z,fetch:f,parseAs:S,querySerializer:I,bodySerializer:E,pathSerializer:P});for(const t of $)if(t&&"object"==typeof t&&"function"==typeof t.onRequest){const n=await t.onRequest({request:L,schemaPath:e,params:h,options:q,id:U});if(n){if(!(n instanceof m)){if(n instanceof Response){D=n;break}throw new Error("onRequest: must return new Request() or Response() when modifying the request")}L=n}}}if(!D){try{D=await f(L,l)}catch(F){let t=F;if($.length)for(let n=$.length-1;n>=0;n--){const o=$[n];if(o&&"object"==typeof o&&"function"==typeof o.onError){const n=await o.onError({request:L,error:t,schemaPath:e,params:h,options:q,id:U});if(n){if(n instanceof Response){t=void 0,D=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($.length)for(let t=$.length-1;t>=0;t--){const n=$[t];if(n&&"object"==typeof n&&"function"==typeof n.onResponse){const t=await n.onResponse({request:L,response:D,schemaPath:e,params:h,options:q,id:U});if(t){if(!(t instanceof Response))throw new Error("onResponse: must return new Response() when modifying the response");D=t}}}}const j=D.headers.get("Content-Length");if(204===D.status||"HEAD"===L.method||"0"===j&&!D.headers.get("Transfer-Encoding")?.includes("chunked"))return D.ok?{data:void 0,response:D}:{error:void 0,response:D};if(D.ok){const e=async()=>{if("stream"===S)return D.body;if("json"===S&&!j){const e=await D.text();return e?JSON.parse(e):void 0}return await D[S]()};return{data:await e(),response:D}}let M=await D.text();try{M=JSON.parse(M)}catch{}return{error:M,response:D}}return{request:(e,t,n)=>d(t,{...n,method:e.toUpperCase()}),GET:(e,t)=>d(e,{...t,method:"GET"}),PUT:(e,t)=>d(e,{...t,method:"PUT"}),POST:(e,t)=>d(e,{...t,method:"POST"}),DELETE:(e,t)=>d(e,{...t,method:"DELETE"}),OPTIONS:(e,t)=>d(e,{...t,method:"OPTIONS"}),HEAD:(e,t)=>d(e,{...t,method:"HEAD"}),PATCH:(e,t)=>d(e,{...t,method:"PATCH"}),TRACE:(e,t)=>d(e,{...t,method:"TRACE"}),use(...e){for(const t of e)if(t){if("object"!=typeof t||!("onRequest"in t||"onResponse"in t||"onError"in t))throw new Error("Middleware must be an object with one of `onRequest()`, `onResponse() or `onError()`");c.push(t)}},eject(...e){for(const t of e){const e=c.indexOf(t);-1!==e&&c.splice(e,1)}}}}function m(e,t,n){if(null==t)return"";if("object"==typeof t)throw new Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");return`${e}=${!0===n?.allowReserved?t:encodeURIComponent(t)}`}function _(e,t,n){if(!t||"object"!=typeof t)return"";const o=[],r={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 r=o.join(",");switch(n.style){case"form":return`${e}=${r}`;case"label":return`.${r}`;case"matrix":return`;${e}=${r}`;default:return r}}for(const a in t){const r="deepObject"===n.style?`${e}[${a}]`:a;o.push(m(r,t[a],n))}const i=o.join(r);return"label"===n.style||"matrix"===n.style?`${r}${i}`:i}function h(e,t,n){if(!Array.isArray(t))return"";if(!1===n.explode){const o={form:",",spaceDelimited:"%20",pipeDelimited:"|"}[n.style]||",",r=(!0===n.allowReserved?t:t.map(e=>encodeURIComponent(e))).join(o);switch(n.style){case"simple":return r;case"label":return`.${r}`;case"matrix":return`;${e}=${r}`;default:return`${e}=${r}`}}const o={simple:",",label:".",matrix:";"}[n.style]||"&",r=[];for(const i of t)"simple"===n.style||"label"===n.style?r.push(!0===n.allowReserved?i:encodeURIComponent(i)):r.push(m(e,i,n));return"label"===n.style||"matrix"===n.style?`${o}${r.join(o)}`:r.join(o)}function y(e){return function(t){const n=[];if(t&&"object"==typeof t)for(const o in t){const r=t[o];if(null!=r)if(Array.isArray(r)){if(0===r.length)continue;n.push(h(o,r,{style:"form",explode:!0,...e?.array,allowReserved:e?.allowReserved||!1}))}else"object"!=typeof r?n.push(m(o,r,e)):n.push(_(o,r,{style:"deepObject",explode:!0,...e?.object,allowReserved:e?.allowReserved||!1}))}return n.join("&")}}function g(e,t){let n=e;for(const o of e.match(p)??[]){let e=o.substring(1,o.length-1),r=!1,i="simple";if(e.endsWith("*")&&(r=!0,e=e.substring(0,e.length-1)),e.startsWith(".")?(i="label",e=e.substring(1)):e.startsWith(";")&&(i="matrix",e=e.substring(1)),!t||void 0===t[e]||null===t[e])continue;const a=t[e];Array.isArray(a)?n=n.replace(o,h(e,a,{style:i,explode:r})):n="object"!=typeof a?"matrix"!==i?n.replace(o,"label"===i?`.${encodeURIComponent(a)}`:encodeURIComponent(a)):n.replace(o,`;${m(e,a)}`):n.replace(o,_(e,a,{style:i,explode:r}))}return n}function b(e,t){return e instanceof FormData?e:t&&"application/x-www-form-urlencoded"===(t.get instanceof Function?t.get("Content-Type")??t.get("content-type"):t["Content-Type"]??t["content-type"])?new URLSearchParams(e).toString():JSON.stringify(e)}function v(...e){const t=new Headers;for(const n of e){if(!n||"object"!=typeof n)continue;const e=n instanceof Headers?n.entries():Object.entries(n);for(const[n,o]of e)if(null===o)t.delete(n);else if(Array.isArray(o))for(const e of o)t.append(n,e);else void 0!==o&&t.set(n,o)}return t}function w(e){return e.endsWith("/")?e.substring(0,e.length-1):e}var S={header:{title:"Header",aliases:["Header Menu"]},footer:{title:"Footer",aliases:["Footer Links","Legal Links"]}};var k;Object.keys(S);function E(e,t,n){function o(n,o){if(n._zod||Object.defineProperty(n,"_zod",{value:{def:o,constr:a,traits:new Set},enumerable:!1}),n._zod.traits.has(e))return;n._zod.traits.add(e),t(n,o);const r=a.prototype,i=Object.keys(r);for(let e=0;e<i.length;e++){const t=i[e];t in n||(n[t]=r[t].bind(n))}}const r=n?.Parent??Object;class i extends r{}function a(e){var t;const r=n?.Parent?new i:this;o(r,e),(t=r._zod).deferred??(t.deferred=[]);for(const n of r._zod.deferred)n();return r}return Object.defineProperty(i,"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 O=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},x=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}};(k=globalThis).__zod_globalConfig??(k.__zod_globalConfig={});var T=globalThis.__zod_globalConfig;function A(e){return e&&Object.assign(T,e),T}function z(e){const t=Object.values(e).filter(e=>"number"==typeof e);return Object.entries(e).filter(([e,n])=>-1===t.indexOf(+e)).map(([e,t])=>t)}function I(e,t){return"bigint"==typeof t?t.toString():t}function P(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function C(e){return null==e}function N(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}var $=Symbol("evaluating");function R(e,t,n){let o;Object.defineProperty(e,t,{get(){if(o!==$)return void 0===o&&(o=$,o=n()),o},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function U(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function q(...e){const t={};for(const n of e){const e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}function D(e){return JSON.stringify(e)}var L="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function j(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}var M=P(()=>{if(T.jitless)return!1;if("undefined"!=typeof navigator&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch(e){return!1}});function F(e){if(!1===j(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!==j(n)&&!1!==Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")}function Z(e){return F(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}var B=new Set(["string","number","symbol"]);function J(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Y(e,t,n){const o=new e._zod.constr(t??e._zod.def);return t&&!n?.parent||(o._zod.parent=e),o}function W(e){const t=e;if(!t)return{};if("string"==typeof t)return{error:()=>t};if(void 0!==t?.message){if(void 0!==t?.error)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,"string"==typeof t.error?{...t,error:()=>t.error}:t}var V={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function H(e,t=0){if(!0===e.aborted)return!0;for(let n=t;n<e.issues.length;n++)if(!0!==e.issues[n]?.continue)return!0;return!1}function G(e,t=0){if(!0===e.aborted)return!0;for(let n=t;n<e.issues.length;n++)if(!1===e.issues[n]?.continue)return!0;return!1}function K(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function X(e){return"string"==typeof e?e:e?.message}function Q(e,t,n){const o=e.message?e.message:X(e.inst?._zod.def?.error?.(e))??X(t?.error?.(e))??X(n.customError?.(e))??X(n.localeError?.(e))??"Invalid input",{inst:r,continue:i,input:a,...s}=e;return s.path??(s.path=[]),s.message=o,t?.reportInput&&(s.input=a),s}function ee(e){return Array.isArray(e)?"array":"string"==typeof e?"string":"unknown"}function te(...e){const[t,n,o]=e;return"string"==typeof t?{message:t,code:"custom",input:n,inst:o}:{...t}}var ne=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,I,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},oe=E("$ZodError",ne),re=E("$ZodError",ne,{Parent:Error});var ie=e=>(t,n,o,r)=>{const i=o?{...o,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new O;if(a.issues.length){const t=new(r?.Err??e)(a.issues.map(e=>Q(e,i,A())));throw L(t,r?.callee),t}return a.value},ae=e=>async(t,n,o,r)=>{const i=o?{...o,async:!0}:{async:!0};let a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise&&(a=await a),a.issues.length){const t=new(r?.Err??e)(a.issues.map(e=>Q(e,i,A())));throw L(t,r?.callee),t}return a.value},se=e=>(t,n,o)=>{const r=o?{...o,async:!1}:{async:!1},i=t._zod.run({value:n,issues:[]},r);if(i instanceof Promise)throw new O;return i.issues.length?{success:!1,error:new(e??oe)(i.issues.map(e=>Q(e,r,A())))}:{success:!0,data:i.value}},le=se(re),ue=e=>async(t,n,o)=>{const r=o?{...o,async:!0}:{async:!0};let i=t._zod.run({value:n,issues:[]},r);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new e(i.issues.map(e=>Q(e,r,A())))}:{success:!0,data:i.value}},ce=ue(re),de=e=>(t,n,o)=>{const r=o?{...o,direction:"backward"}:{direction:"backward"};return ie(e)(t,n,r)},pe=e=>(t,n,o)=>ie(e)(t,n,o),fe=e=>async(t,n,o)=>{const r=o?{...o,direction:"backward"}:{direction:"backward"};return ae(e)(t,n,r)},me=e=>async(t,n,o)=>ae(e)(t,n,o),_e=e=>(t,n,o)=>{const r=o?{...o,direction:"backward"}:{direction:"backward"};return se(e)(t,n,r)},he=e=>(t,n,o)=>se(e)(t,n,o),ye=e=>async(t,n,o)=>{const r=o?{...o,direction:"backward"}:{direction:"backward"};return ue(e)(t,n,r)},ge=e=>async(t,n,o)=>ue(e)(t,n,o),be=/^[cC][0-9a-z]{6,}$/,ve=/^[0-9a-z]+$/,we=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Se=/^[0-9a-vA-V]{20}$/,ke=/^[A-Za-z0-9]{27}$/,Ee=/^[a-zA-Z0-9_-]{21}$/,Oe=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,xe=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Te=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)$/,Ae=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var 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])$/,Ie=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,Pe=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Ce=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Ne=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,$e=/^[A-Za-z0-9_-]*$/,Re=/^https?$/,Ue=/^\+[1-9]\d{6,14}$/,qe="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",De=new RegExp(`^${qe}$`);function Le(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 je=/^-?\d+$/,Me=/^-?\d+(?:\.\d+)?$/,Fe=/^(?:true|false)$/i,Ze=/^[^A-Z]*$/,Be=/^[^a-z]*$/,Je=E("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),Ye={number:"number",bigint:"bigint",object:"date"},We=E("$ZodCheckLessThan",(e,t)=>{Je.init(e,t);const n=Ye[typeof t.value];e._zod.onattach.push(e=>{const n=e._zod.bag,o=(t.inclusive?n.maximum:n.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<o&&(t.inclusive?n.maximum=t.value:n.exclusiveMaximum=t.value)}),e._zod.check=o=>{(t.inclusive?o.value<=t.value:o.value<t.value)||o.issues.push({origin:n,code:"too_big",maximum:"object"==typeof t.value?t.value.getTime():t.value,input:o.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Ve=E("$ZodCheckGreaterThan",(e,t)=>{Je.init(e,t);const n=Ye[typeof t.value];e._zod.onattach.push(e=>{const n=e._zod.bag,o=(t.inclusive?n.minimum:n.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>o&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=o=>{(t.inclusive?o.value>=t.value:o.value>t.value)||o.issues.push({origin:n,code:"too_small",minimum:"object"==typeof t.value?t.value.getTime():t.value,input:o.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),He=E("$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),r=Number.EPSILON*Math.max(Math.abs(n),1);return Math.abs(n-o)<r?0:n-o}(n.value,t.value))&&n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),Ge=E("$ZodCheckNumberFormat",(e,t)=>{Je.init(e,t),t.format=t.format||"float64";const n=t.format?.includes("int"),o=n?"int":"number",[r,i]=V[t.format];e._zod.onattach.push(e=>{const o=e._zod.bag;o.format=t.format,o.minimum=r,o.maximum=i,n&&(o.pattern=je)}),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<r&&a.issues.push({origin:"number",input:s,code:"too_small",minimum:r,inclusive:!0,inst:e,continue:!t.abort}),s>i&&a.issues.push({origin:"number",input:s,code:"too_big",maximum:i,inclusive:!0,inst:e,continue:!t.abort})}}),Ke=E("$ZodCheckMaxLength",(e,t)=>{var n;Je.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!C(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<n&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{const o=n.value;if(o.length<=t.maximum)return;const r=ee(o);n.issues.push({origin:r,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Xe=E("$ZodCheckMinLength",(e,t)=>{var n;Je.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!C(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{const o=n.value;if(o.length>=t.minimum)return;const r=ee(o);n.issues.push({origin:r,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Qe=E("$ZodCheckLengthEquals",(e,t)=>{var n;Je.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!C(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=n=>{const o=n.value,r=o.length;if(r===t.length)return;const i=ee(o),a=r>t.length;n.issues.push({origin:i,...a?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),et=E("$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=new Set),n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,t.pattern.test(n.value)||n.issues.push({origin:"string",code:"invalid_format",format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(o=e._zod).check??(o.check=()=>{})}),tt=E("$ZodCheckRegex",(e,t)=>{et.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,t.pattern.test(n.value)||n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),nt=E("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Ze),et.init(e,t)}),ot=E("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=Be),et.init(e,t)}),rt=E("$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=new Set),t.patterns.add(o)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),it=E("$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=new Set),t.patterns.add(n)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),at=E("$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=new Set),t.patterns.add(n)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),st=E("$ZodCheckOverwrite",(e,t)=>{Je.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}),lt=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 r of o)this.content.push(r)}compile(){const e=Function,t=this?.args;return new e(...t,[...(this?.content??[""]).map(e=>` ${e}`)].join("\n"))}},ut={major:4,minor:4,patch:3},ct=E("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=ut;const o=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&o.unshift(e);for(const r of o)for(const t of r._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,r=H(e);for(const i of t){if(i._zod.def.when){if(G(e))continue;if(!i._zod.def.when(e))continue}else if(r)continue;const t=e.issues.length,a=i._zod.check(e);if(a instanceof Promise&&!1===n?.async)throw new O;if(o||a instanceof Promise)o=(o??Promise.resolve()).then(async()=>{await a,e.issues.length!==t&&(r||(r=H(e,t)))});else{if(e.issues.length===t)continue;r||(r=H(e,t))}}return o?o.then(()=>e):e},n=(n,r,i)=>{if(H(n))return n.aborted=!0,n;const a=t(r,o,i);if(a instanceof Promise){if(!1===i.async)throw new O;return a.then(t=>e._zod.parse(t,i))}return e._zod.parse(a,i)};e._zod.run=(r,i)=>{if(i.skipChecks)return e._zod.parse(r,i);if("backward"===i.direction){const t=e._zod.parse({value:r.value,issues:[]},{...i,skipChecks:!0});return t instanceof Promise?t.then(e=>n(e,r,i)):n(t,r,i)}const a=e._zod.parse(r,i);if(a instanceof Promise){if(!1===i.async)throw new O;return a.then(e=>t(e,o,i))}return t(a,o,i)}}R(e,"~standard",()=>({validate:t=>{try{const n=le(e,t);return n.success?{value:n.data}:{issues:n.error?.issues}}catch(n){return ce(e,t).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:"zod",version:1}))}),dt=E("$ZodString",(e,t)=>{var n;ct.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??(n=e._zod.bag,new RegExp(`^${n?`[\\s\\S]{${n?.minimum??0},${n?.maximum??""}}`:"[\\s\\S]*"}$`)),e._zod.parse=(n,o)=>{if(t.coerce)try{n.value=String(n.value)}catch(o){}return"string"==typeof n.value||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),pt=E("$ZodStringFormat",(e,t)=>{et.init(e,t),dt.init(e,t)}),ft=E("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=xe),pt.init(e,t)}),mt=E("$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=Te(e))}else t.pattern??(t.pattern=Te());pt.init(e,t)}),_t=E("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Ae),pt.init(e,t)}),ht=E("$ZodURL",(e,t)=>{pt.init(e,t),e._zod.check=n=>{try{const o=n.value.trim();if(!t.normalize&&t.protocol?.source===Re.source&&!/^https?:\/\//i.test(o))return void n.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:n.value,inst:e,continue:!t.abort});const r=new URL(o);return t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(r.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(r.protocol.endsWith(":")?r.protocol.slice(0,-1):r.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=r.href:n.value=o)}catch(o){n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),yt=E("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),pt.init(e,t)}),gt=E("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=Ee),pt.init(e,t)}),bt=E("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=be),pt.init(e,t)}),vt=E("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=ve),pt.init(e,t)}),wt=E("$ZodULID",(e,t)=>{t.pattern??(t.pattern=we),pt.init(e,t)}),St=E("$ZodXID",(e,t)=>{t.pattern??(t.pattern=Se),pt.init(e,t)}),kt=E("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=ke),pt.init(e,t)}),Et=E("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=function(e){const t=Le({precision:e.precision}),n=["Z"];e.local&&n.push(""),e.offset&&n.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const o=`${t}(?:${n.join("|")})`;return new RegExp(`^${qe}T(?:${o})$`)}(t)),pt.init(e,t)}),Ot=E("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=De),pt.init(e,t)}),xt=E("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=new RegExp(`^${Le(t)}$`)),pt.init(e,t)}),Tt=E("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=Oe),pt.init(e,t)}),At=E("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=ze),pt.init(e,t),e._zod.bag.format="ipv4"}),zt=E("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=Ie),pt.init(e,t),e._zod.bag.format="ipv6",e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:e,continue:!t.abort})}}}),It=E("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=Pe),pt.init(e,t)}),Pt=E("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=Ce),pt.init(e,t),e._zod.check=n=>{const o=n.value.split("/");try{if(2!==o.length)throw new Error;const[e,t]=o;if(!t)throw new Error;const n=Number(t);if(`${n}`!==t)throw new Error;if(n<0||n>128)throw new Error;new URL(`http://[${e}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});function Ct(e){if(""===e)return!0;if(/\s/.test(e))return!1;if(e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}var Nt=E("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=Ne),pt.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=n=>{Ct(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});var $t=E("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=$e),pt.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=n=>{(function(e){if(!$e.test(e))return!1;const t=e.replace(/[-_]/g,e=>"-"===e?"+":"/");return Ct(t.padEnd(4*Math.ceil(t.length/4),"="))})(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),Rt=E("$ZodE164",(e,t)=>{t.pattern??(t.pattern=Ue),pt.init(e,t)});var Ut=E("$ZodJWT",(e,t)=>{pt.init(e,t),e._zod.check=n=>{(function(e,t=null){try{const n=e.split(".");if(3!==n.length)return!1;const[o]=n;if(!o)return!1;const r=JSON.parse(atob(o));return!("typ"in r&&"JWT"!==r?.typ||!r.alg||t&&(!("alg"in r)||r.alg!==t))}catch{return!1}})(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),qt=E("$ZodNumber",(e,t)=>{ct.init(e,t),e._zod.pattern=e._zod.bag.pattern??Me,e._zod.parse=(n,o)=>{if(t.coerce)try{n.value=Number(n.value)}catch(a){}const r=n.value;if("number"==typeof r&&!Number.isNaN(r)&&Number.isFinite(r))return n;const i="number"==typeof r?Number.isNaN(r)?"NaN":Number.isFinite(r)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:r,inst:e,...i?{received:i}:{}}),n}}),Dt=E("$ZodNumberFormat",(e,t)=>{Ge.init(e,t),qt.init(e,t)}),Lt=E("$ZodBoolean",(e,t)=>{ct.init(e,t),e._zod.pattern=Fe,e._zod.parse=(n,o)=>{if(t.coerce)try{n.value=Boolean(n.value)}catch(i){}const r=n.value;return"boolean"==typeof r||n.issues.push({expected:"boolean",code:"invalid_type",input:r,inst:e}),n}}),jt=E("$ZodUnknown",(e,t)=>{ct.init(e,t),e._zod.parse=e=>e}),Mt=E("$ZodNever",(e,t)=>{ct.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:"never",code:"invalid_type",input:t.value,inst:e}),t)});function Ft(e,t,n){e.issues.length&&t.issues.push(...K(n,e.issues)),t.value[n]=e.value}var Zt=E("$ZodArray",(e,t)=>{ct.init(e,t),e._zod.parse=(n,o)=>{const r=n.value;if(!Array.isArray(r))return n.issues.push({expected:"array",code:"invalid_type",input:r,inst:e}),n;n.value=Array(r.length);const i=[];for(let e=0;e<r.length;e++){const a=r[e],s=t.element._zod.run({value:a,issues:[]},o);s instanceof Promise?i.push(s.then(t=>Ft(t,n,e))):Ft(s,n,e)}return i.length?Promise.all(i).then(()=>n):n}});function Bt(e,t,n,o,r,i){const a=n in o;if(e.issues.length){if(r&&i&&!a)return;t.issues.push(...K(n,e.issues))}a||r?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 r of t)if(!e.shape?.[r]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${r}": expected a Zod schema`);const n=(o=e.shape,Object.keys(o).filter(e=>"optional"===o[e]._zod.optin&&"optional"===o[e]._zod.optout));var o;return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function Yt(e,t,n,o,r,i){const a=[],s=r.keySet,l=r.catchall._zod,u=l.def.type,c="optional"===l.optin,d="optional"===l.optout;for(const p in t){if("__proto__"===p)continue;if(s.has(p))continue;if("never"===u){a.push(p);continue}const r=l.run({value:t[p],issues:[]},o);r instanceof Promise?e.push(r.then(e=>Bt(e,n,p,t,c,d))):Bt(r,n,p,t,c,d)}return a.length&&n.issues.push({code:"unrecognized_keys",keys:a,input:t,inst:i}),e.length?Promise.all(e).then(()=>n):n}var Wt=E("$ZodObject",(e,t)=>{if(ct.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){const e=t.shape;Object.defineProperty(t,"shape",{get:()=>{const n={...e};return Object.defineProperty(t,"shape",{value:n}),n}})}const n=P(()=>Jt(t));R(e._zod,"propValues",()=>{const e=t.shape,n={};for(const t in e){const o=e[t]._zod;if(o.values){n[t]??(n[t]=new Set);for(const e of o.values)n[t].add(e)}}return n});const o=j,r=t.catchall;let i;e._zod.parse=(t,a)=>{i??(i=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 l=[],u=i.shape;for(const e of i.keys){const n=u[e],o="optional"===n._zod.optin,r="optional"===n._zod.optout,i=n._zod.run({value:s[e],issues:[]},a);i instanceof Promise?l.push(i.then(n=>Bt(n,t,e,s,o,r))):Bt(i,t,e,s,o,r)}return r?Yt(l,s,t,a,n.value,e):l.length?Promise.all(l).then(()=>t):t}}),Vt=E("$ZodObjectJIT",(e,t)=>{Wt.init(e,t);const n=e._zod.parse,o=P(()=>Jt(t));let r;const i=j,a=!T.jitless,s=a&&M.value,l=t.catchall;let u;e._zod.parse=(c,d)=>{u??(u=o.value);const p=c.value;return i(p)?a&&s&&!1===d?.async&&!0!==d.jitless?(r||(r=(e=>{const t=new lt(["shape","payload","ctx"]),n=o.value,r=e=>{const t=D(e);return`shape[${t}]._zod.run({ value: input[${t}], issues: [] }, ctx)`};t.write("const input = payload.value;");const i=Object.create(null);let a=0;for(const o of n.keys)i[o]="key_"+a++;t.write("const newResult = {};");for(const o of n.keys){const n=i[o],a=D(o),s=e[o],l="optional"===s?._zod?.optin,u="optional"===s?._zod?.optout;t.write(`const ${n} = ${r(o)};`),l&&u?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 `):l?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=r(c,d),l?Yt([],p,c,d,u,e):c):n(c,d):(c.issues.push({expected:"object",code:"invalid_type",input:p,inst:e}),c)}});function Ht(e,t,n,o){for(const i of e)if(0===i.issues.length)return t.value=i.value,t;const r=e.filter(e=>!H(e));return 1===r.length?(t.value=r[0].value,r[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>Q(e,o,A())))}),t)}var Gt=E("$ZodUnion",(e,t)=>{ct.init(e,t),R(e._zod,"optin",()=>t.options.some(e=>"optional"===e._zod.optin)?"optional":void 0),R(e._zod,"optout",()=>t.options.some(e=>"optional"===e._zod.optout)?"optional":void 0),R(e._zod,"values",()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),R(e._zod,"pattern",()=>{if(t.options.every(e=>e._zod.pattern)){const e=t.options.map(e=>e._zod.pattern);return new RegExp(`^(${e.map(e=>N(e.source)).join("|")})$`)}});const n=1===t.options.length?t.options[0]._zod.run:null;e._zod.parse=(o,r)=>{if(n)return n(o,r);let i=!1;const a=[];for(const e of t.options){const t=e._zod.run({value:o.value,issues:[]},r);if(t instanceof Promise)a.push(t),i=!0;else{if(0===t.issues.length)return t;a.push(t)}}return i?Promise.all(a).then(t=>Ht(t,o,e,r)):Ht(a,o,e,r)}}),Kt=E("$ZodDiscriminatedUnion",(e,t)=>{t.inclusive=!1,Gt.init(e,t);const n=e._zod.parse;R(e._zod,"propValues",()=>{const e={};for(const n of t.options){const o=n._zod.propValues;if(!o||0===Object.keys(o).length)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(n)}"`);for(const[t,n]of Object.entries(o)){e[t]||(e[t]=new Set);for(const o of n)e[t].add(o)}}return e});const o=P(()=>{const e=t.options,n=new Map;for(const o of e){const e=o._zod.propValues?.[t.discriminator];if(!e||0===e.size)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(o)}"`);for(const t of e){if(n.has(t))throw new Error(`Duplicate discriminator value "${String(t)}"`);n.set(t,o)}}return n});e._zod.parse=(r,i)=>{const a=r.value;if(!j(a))return r.issues.push({code:"invalid_type",expected:"object",input:a,inst:e}),r;const s=o.value.get(a?.[t.discriminator]);return s?s._zod.run(r,i):t.unionFallback||"backward"===i.direction?n(r,i):(r.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}),r)}}),Xt=E("$ZodIntersection",(e,t)=>{ct.init(e,t),e._zod.parse=(e,n)=>{const o=e.value,r=t.left._zod.run({value:o,issues:[]},n),i=t.right._zod.run({value:o,issues:[]},n);return r instanceof Promise||i instanceof Promise?Promise.all([r,i]).then(([t,n])=>en(e,t,n)):en(e,r,i)}});function Qt(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e===+t)return{valid:!0,data:e};if(F(e)&&F(t)){const n=Object.keys(t),o=Object.keys(e).filter(e=>-1!==n.indexOf(e)),r={...e,...t};for(const i of o){const n=Qt(e[i],t[i]);if(!n.valid)return{valid:!1,mergeErrorPath:[i,...n.mergeErrorPath]};r[i]=n.data}return{valid:!0,data:r}}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 r=Qt(e[o],t[o]);if(!r.valid)return{valid:!1,mergeErrorPath:[o,...r.mergeErrorPath]};n.push(r.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function en(e,t,n){const o=new Map;let r;for(const s of t.issues)if("unrecognized_keys"===s.code){r??(r=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 i=[...o].filter(([,e])=>e.l&&e.r).map(([e])=>e);if(i.length&&r&&e.issues.push({...r,keys:i}),H(e))return e;const a=Qt(t.value,n.value);if(!a.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(a.mergeErrorPath)}`);return e.value=a.data,e}var tn=E("$ZodRecord",(e,t)=>{ct.init(e,t),e._zod.parse=(n,o)=>{const r=n.value;if(!F(r))return n.issues.push({expected:"record",code:"invalid_type",input:r,inst:e}),n;const i=[],a=t.keyType._zod.values;if(a){n.value={};const s=new Set;for(const u of a)if("string"==typeof u||"number"==typeof u||"symbol"==typeof u){s.add("number"==typeof u?u.toString():u);const a=t.keyType._zod.run({value:u,issues:[]},o);if(a instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(a.issues.length){n.issues.push({code:"invalid_key",origin:"record",issues:a.issues.map(e=>Q(e,o,A())),input:u,path:[u],inst:e});continue}const l=a.value,c=t.valueType._zod.run({value:r[u],issues:[]},o);c instanceof Promise?i.push(c.then(e=>{e.issues.length&&n.issues.push(...K(u,e.issues)),n.value[l]=e.value})):(c.issues.length&&n.issues.push(...K(u,c.issues)),n.value[l]=c.value)}let l;for(const e in r)s.has(e)||(l=l??[],l.push(e));l&&l.length>0&&n.issues.push({code:"unrecognized_keys",input:r,inst:e,keys:l})}else{n.value={};for(const a of Reflect.ownKeys(r)){if("__proto__"===a)continue;if(!Object.prototype.propertyIsEnumerable.call(r,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&&Me.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]=r[a]:n.issues.push({code:"invalid_key",origin:"record",issues:s.issues.map(e=>Q(e,o,A())),input:a,path:[a],inst:e});continue}const l=t.valueType._zod.run({value:r[a],issues:[]},o);l instanceof Promise?i.push(l.then(e=>{e.issues.length&&n.issues.push(...K(a,e.issues)),n.value[s.value]=e.value})):(l.issues.length&&n.issues.push(...K(a,l.issues)),n.value[s.value]=l.value)}}return i.length?Promise.all(i).then(()=>n):n}}),nn=E("$ZodEnum",(e,t)=>{ct.init(e,t);const n=z(t.entries),o=new Set(n);e._zod.values=o,e._zod.pattern=new RegExp(`^(${n.filter(e=>B.has(typeof e)).map(e=>"string"==typeof e?J(e):e.toString()).join("|")})$`),e._zod.parse=(t,r)=>{const i=t.value;return o.has(i)||t.issues.push({code:"invalid_value",values:n,input:i,inst:e}),t}}),on=E("$ZodLiteral",(e,t)=>{if(ct.init(e,t),0===t.values.length)throw new Error("Cannot create literal schema with no valid values");const n=new Set(t.values);e._zod.values=n,e._zod.pattern=new RegExp(`^(${t.values.map(e=>"string"==typeof e?J(e):e?J(e.toString()):String(e)).join("|")})$`),e._zod.parse=(o,r)=>{const i=o.value;return n.has(i)||o.issues.push({code:"invalid_value",values:t.values,input:i,inst:e}),o}}),rn=E("$ZodTransform",(e,t)=>{ct.init(e,t),e._zod.optin="optional",e._zod.parse=(n,o)=>{if("backward"===o.direction)throw new x(e.constructor.name);const r=t.transform(n.value,n);if(o.async)return(r instanceof Promise?r:Promise.resolve(r)).then(e=>(n.value=e,n.fallback=!0,n));if(r instanceof Promise)throw new O;return n.value=r,n.fallback=!0,n}});function an(e,t){return void 0===t&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}var sn=E("$ZodOptional",(e,t)=>{ct.init(e,t),e._zod.optin="optional",e._zod.optout="optional",R(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),R(e._zod,"pattern",()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${N(e.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if("optional"===t.innerType._zod.optin){const o=e.value,r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>an(e,o)):an(r,o)}return void 0===e.value?e:t.innerType._zod.run(e,n)}}),ln=E("$ZodExactOptional",(e,t)=>{sn.init(e,t),R(e._zod,"values",()=>t.innerType._zod.values),R(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(e,n)=>t.innerType._zod.run(e,n)}),un=E("$ZodNullable",(e,t)=>{ct.init(e,t),R(e._zod,"optin",()=>t.innerType._zod.optin),R(e._zod,"optout",()=>t.innerType._zod.optout),R(e._zod,"pattern",()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${N(e.source)}|null)$`):void 0}),R(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>null===e.value?e:t.innerType._zod.run(e,n)}),cn=E("$ZodDefault",(e,t)=>{ct.init(e,t),e._zod.optin="optional",R(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);if(void 0===e.value)return e.value=t.defaultValue,e;const o=t.innerType._zod.run(e,n);return o instanceof Promise?o.then(e=>dn(e,t)):dn(o,t)}});function dn(e,t){return void 0===e.value&&(e.value=t.defaultValue),e}var pn=E("$ZodPrefault",(e,t)=>{ct.init(e,t),e._zod.optin="optional",R(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>("backward"===n.direction||void 0===e.value&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),fn=E("$ZodNonOptional",(e,t)=>{ct.init(e,t),R(e._zod,"values",()=>{const e=t.innerType._zod.values;return e?new Set([...e].filter(e=>void 0!==e)):void 0}),e._zod.parse=(n,o)=>{const r=t.innerType._zod.run(n,o);return r instanceof Promise?r.then(t=>mn(t,e)):mn(r,e)}});function mn(e,t){return e.issues.length||void 0!==e.value||e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}var _n=E("$ZodCatch",(e,t)=>{ct.init(e,t),e._zod.optin="optional",R(e._zod,"optout",()=>t.innerType._zod.optout),R(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);const o=t.innerType._zod.run(e,n);return o instanceof Promise?o.then(o=>(e.value=o.value,o.issues.length&&(e.value=t.catchValue({...e,error:{issues:o.issues.map(e=>Q(e,n,A()))},input:e.value}),e.issues=[],e.fallback=!0),e)):(e.value=o.value,o.issues.length&&(e.value=t.catchValue({...e,error:{issues:o.issues.map(e=>Q(e,n,A()))},input:e.value}),e.issues=[],e.fallback=!0),e)}}),hn=E("$ZodPipe",(e,t)=>{ct.init(e,t),R(e._zod,"values",()=>t.in._zod.values),R(e._zod,"optin",()=>t.in._zod.optin),R(e._zod,"optout",()=>t.out._zod.optout),R(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if("backward"===n.direction){const o=t.out._zod.run(e,n);return o instanceof Promise?o.then(e=>yn(e,t.in,n)):yn(o,t.in,n)}const o=t.in._zod.run(e,n);return o instanceof Promise?o.then(e=>yn(e,t.out,n)):yn(o,t.out,n)}});function yn(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues,fallback:e.fallback},n)}var gn=E("$ZodPreprocess",(e,t)=>{hn.init(e,t)}),bn=E("$ZodReadonly",(e,t)=>{ct.init(e,t),R(e._zod,"propValues",()=>t.innerType._zod.propValues),R(e._zod,"values",()=>t.innerType._zod.values),R(e._zod,"optin",()=>t.innerType?._zod?.optin),R(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);const o=t.innerType._zod.run(e,n);return o instanceof Promise?o.then(vn):vn(o)}});function vn(e){return e.value=Object.freeze(e.value),e}var wn,Sn=E("$ZodCustom",(e,t)=>{Je.init(e,t),ct.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{const o=n.value,r=t.fn(o);if(r instanceof Promise)return r.then(t=>kn(t,n,o,e));kn(r,n,o,e)}});function kn(e,t,n,o){if(!e){const e={code:"custom",input:n,inst:o,path:[...o._zod.def.path??[]],continue:!o._zod.def.abort};o._zod.def.params&&(e.params=o._zod.def.params),t.issues.push(te(e))}}var En=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){const n=t[0];return this._map.set(e,n),n&&"object"==typeof n&&"id"in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){const t=this._map.get(e);return t&&"object"==typeof t&&"id"in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){const t=e._zod.parent;if(t){const n={...this.get(t)??{}};delete n.id;const o={...n,...this._map.get(e)};return Object.keys(o).length?o:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};(wn=globalThis).__zod_globalRegistry??(wn.__zod_globalRegistry=new En);var On=globalThis.__zod_globalRegistry;function xn(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...W(t)})}function Tn(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...W(t)})}function An(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...W(t)})}function zn(e,t){return new We({check:"less_than",...W(t),value:e,inclusive:!1})}function In(e,t){return new We({check:"less_than",...W(t),value:e,inclusive:!0})}function Pn(e,t){return new Ve({check:"greater_than",...W(t),value:e,inclusive:!1})}function Cn(e,t){return new Ve({check:"greater_than",...W(t),value:e,inclusive:!0})}function Nn(e,t){return new He({check:"multiple_of",...W(t),value:e})}function $n(e,t){return new Ke({check:"max_length",...W(t),maximum:e})}function Rn(e,t){return new Xe({check:"min_length",...W(t),minimum:e})}function Un(e,t){return new Qe({check:"length_equals",...W(t),length:e})}function qn(e){return new st({check:"overwrite",tx:e})}function Dn(e,t){const n=new Je({check:"custom",...W(t)});return n._zod.check=e,n}function Ln(e){let t=e?.target??"draft-2020-12";return"draft-4"===t&&(t="draft-04"),"draft-7"===t&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??On,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function jn(e,t,n={path:[],schemaPath:[]}){var o;const r=e._zod.def,i=t.seen.get(e);if(i)return i.count++,n.schemaPath.includes(e)&&(i.cycle=n.path),i.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,i=t.processors[r.type];if(!i)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${r.type}`);i(e,t,n,o)}const i=e._zod.parent;i&&(a.ref||(a.ref=i),jn(i,t,o),t.seen.get(i).isParent=!0)}const l=t.metadataRegistry.get(e);return l&&Object.assign(a.schema,l),"input"===t.io&&Zn(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 Mn(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const o=new Map;for(const i of e.seen.entries()){const t=e.metadataRegistry.get(i[0])?.id;if(t){const e=o.get(t);if(e&&e!==i[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,i[0])}}const r=t=>{if(t[1].schema.$ref)return;const o=t[1],{ref:r,defId:i}=(t=>{const o="draft-2020-12"===e.target?"$defs":"definitions";if(e.external){const n=e.external.registry.get(t[0])?.id,r=e.external.uri??(e=>e);if(n)return{ref:r(n)};const i=t[1].defId??t[1].schema.id??"schema"+e.counter++;return t[1].defId=i,{defId:i,ref:`${r("__shared")}#/${o}/${i}`}}if(t[1]===n)return{ref:"#"};const r=`#/${o}/`,i=t[1].schema.id??"__schema"+e.counter++;return{defId:i,ref:r+i}})(t);o.def={...o.schema},i&&(o.defId=i);const a=o.schema;for(const e in a)delete a[e];a.$ref=r};if("throw"===e.cycles)for(const i of e.seen.entries()){const e=i[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 i of e.seen.entries()){const n=i[1];if(t!==i[0]){if(e.external){const n=e.external.registry.get(i[0])?.id;if(t!==i[0]&&n){r(i);continue}}(e.metadataRegistry.get(i[0])?.id||n.cycle||n.count>1&&"ref"===e.reused)&&r(i)}else r(i)}}function Fn(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 r=n.def??n.schema,i={...r},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(r,s):(r.allOf=r.allOf??[],r.allOf.push(s)),Object.assign(r,i),t._zod.parent===a)for(const e in r)"$ref"!==e&&"allOf"!==e&&(e in i||delete r[e]);if(s.$ref&&n.def)for(const e in r)"$ref"!==e&&"allOf"!==e&&e in n.def&&JSON.stringify(r[e])===JSON.stringify(n.def[e])&&delete r[e]}const s=t._zod.parent;if(s&&s!==a){o(s);const t=e.seen.get(s);if(t?.schema.$ref&&(r.$ref=t.schema.$ref,t.def))for(const e in r)"$ref"!==e&&"allOf"!==e&&e in t.def&&JSON.stringify(r[e])===JSON.stringify(t.def[e])&&delete r[e]}e.override({zodSchema:t,jsonSchema:r,path:n.path??[]})};for(const l of[...e.seen.entries()].reverse())o(l[0]);const r={};if("draft-2020-12"===e.target?r.$schema="https://json-schema.org/draft/2020-12/schema":"draft-07"===e.target?r.$schema="http://json-schema.org/draft-07/schema#":"draft-04"===e.target?r.$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");r.$id=e.external.uri(n)}Object.assign(r,n.def??n.schema);const i=e.metadataRegistry.get(t)?.id;void 0!==i&&r.id===i&&delete r.id;const a=e.external?.defs??{};for(const l of e.seen.entries()){const e=l[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?r.$defs=a:r.definitions=a);try{const n=JSON.parse(JSON.stringify(r));return Object.defineProperty(n,"~standard",{value:{...t["~standard"],jsonSchema:{input:Bn(t,"input",e.processors),output:Bn(t,"output",e.processors)}},enumerable:!1,writable:!1}),n}catch(s){throw new Error("Error converting schema to JSON.")}}function Zn(e,t){const n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);const o=e._zod.def;if("transform"===o.type)return!0;if("array"===o.type)return Zn(o.element,n);if("set"===o.type)return Zn(o.valueType,n);if("lazy"===o.type)return Zn(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 Zn(o.innerType,n);if("intersection"===o.type)return Zn(o.left,n)||Zn(o.right,n);if("record"===o.type||"map"===o.type)return Zn(o.keyType,n)||Zn(o.valueType,n);if("pipe"===o.type)return!!e._zod.traits.has("$ZodCodec")||(Zn(o.in,n)||Zn(o.out,n));if("object"===o.type){for(const e in o.shape)if(Zn(o.shape[e],n))return!0;return!1}if("union"===o.type){for(const e of o.options)if(Zn(e,n))return!0;return!1}if("tuple"===o.type){for(const e of o.items)if(Zn(e,n))return!0;return!(!o.rest||!Zn(o.rest,n))}return!1}var Bn=(e,t,n={})=>o=>{const{libraryOptions:r,target:i}=o??{},a=Ln({...r??{},target:i,io:t,processors:n});return jn(e,a),Mn(a,e),Fn(a,e)},Jn={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Yn=(e,t,n,o)=>{const r=e._zod.def;jn(r.innerType,t,o);t.seen.get(e).ref=r.innerType},Wn=E("ZodISODateTime",(e,t)=>{Et.init(e,t),So.init(e,t)});function Vn(e){return function(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...W(t)})}(Wn,e)}var Hn=E("ZodISODate",(e,t)=>{Ot.init(e,t),So.init(e,t)});function Gn(e){return function(e,t){return new e({type:"string",format:"date",check:"string_format",...W(t)})}(Hn,e)}var Kn=E("ZodISOTime",(e,t)=>{xt.init(e,t),So.init(e,t)});function Xn(e){return function(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...W(t)})}(Kn,e)}var Qn=E("ZodISODuration",(e,t)=>{Tt.init(e,t),So.init(e,t)});function eo(e){return function(e,t){return new e({type:"string",format:"duration",check:"string_format",...W(t)})}(Qn,e)}var to=(e,t)=>{oe.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:t=>function(e,t=e=>e.message){const n={_errors:[]},o=(e,r=[])=>{for(const i of e.issues)if("invalid_union"===i.code&&i.errors.length)i.errors.map(e=>o({issues:e},[...r,...i.path]));else if("invalid_key"===i.code)o({issues:i.issues},[...r,...i.path]);else if("invalid_element"===i.code)o({issues:i.issues},[...r,...i.path]);else{const e=[...r,...i.path];if(0===e.length)n._errors.push(t(i));else{let o=n,r=0;for(;r<e.length;){const n=e[r];r!==e.length-1?o[n]=o[n]||{_errors:[]}:(o[n]=o[n]||{_errors:[]},o[n]._errors.push(t(i))),o=o[n],r++}}}};return o(e),n}(e,t)},flatten:{value:t=>function(e,t=e=>e.message){const n={},o=[];for(const r of e.issues)r.path.length>0?(n[r.path[0]]=n[r.path[0]]||[],n[r.path[0]].push(t(r))):o.push(t(r));return{formErrors:o,fieldErrors:n}}(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,I,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,I,2)}},isEmpty:{get:()=>0===e.issues.length}})},no=E("ZodError",to,{Parent:Error}),oo=ie(no),ro=ae(no),io=se(no),ao=ue(no),so=de(no),lo=pe(no),uo=fe(no),co=me(no),po=_e(no),fo=he(no),mo=ye(no),_o=ge(no),ho=new WeakMap;function yo(e,t,n){const o=Object.getPrototypeOf(e);let r=ho.get(o);if(r||(r=new Set,ho.set(o,r)),!r.has(t)){r.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 go=E("ZodType",(e,t)=>(ct.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:Bn(e,"input"),output:Bn(e,"output")}}),e.toJSONSchema=((e,t={})=>n=>{const o=Ln({...n,processors:t});return jn(e,o),Mn(o,e),Fn(o,e)})(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.parse=(t,n)=>oo(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>io(e,t,n),e.parseAsync=async(t,n)=>ro(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>ao(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>so(e,t,n),e.decode=(t,n)=>lo(e,t,n),e.encodeAsync=async(t,n)=>uo(e,t,n),e.decodeAsync=async(t,n)=>co(e,t,n),e.safeEncode=(t,n)=>po(e,t,n),e.safeDecode=(t,n)=>fo(e,t,n),e.safeEncodeAsync=async(t,n)=>mo(e,t,n),e.safeDecodeAsync=async(t,n)=>_o(e,t,n),yo(e,"ZodType",{check(...e){const t=this.def;return this.clone(q(t,{checks:[...t.checks??[],...e.map(e=>"function"==typeof e?{_zod:{check:e,def:{check:"custom"},onattach:[]}}:e)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return Y(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(function(e,t={}){return function(e,t,n){return new e({type:"custom",check:"custom",fn:t,...W(n)})}(zr,e,t)}(e,t))},superRefine(e,t){return this.check(function(e,t){return function(e,t){const n=Dn(t=>(t.addIssue=e=>{if("string"==typeof e)t.issues.push(te(e,t.value,n._zod.def));else{const o=e;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=t.value),o.inst??(o.inst=n),o.continue??(o.continue=!n._zod.def.abort),t.issues.push(te(o))}},e(t.value,t)),t);return n}(e,t)}(e,t))},overwrite(e){return this.check(qn(e))},optional(){return yr(this)},exactOptional(){return new gr({type:"optional",innerType:this})},nullable(){return vr(this)},nullish(){return yr(vr(this))},nonoptional(e){return function(e,t){return new kr({type:"nonoptional",innerType:e,...W(t)})}(this,e)},array(){return er(this)},or(e){return rr([this,e])},and(e){return new sr({type:"intersection",left:this,right:e})},transform(e){return xr(this,_r(e))},default(e){return t=e,new wr({type:"default",innerType:this,get defaultValue(){return"function"==typeof t?t():Z(t)}});var t},prefault(e){return t=e,new Sr({type:"prefault",innerType:this,get defaultValue(){return"function"==typeof t?t():Z(t)}});var t},catch(e){return new Er({type:"catch",innerType:this,catchValue:"function"==typeof(t=e)?t:()=>t});var t},pipe(e){return xr(this,e)},readonly(){return new Ar({type:"readonly",innerType:this})},describe(e){const t=this.clone();return On.add(t,{description:e}),t},meta(...e){if(0===e.length)return On.get(this);const t=this.clone();return On.add(t,e[0]),t},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e){return e(this)}}),Object.defineProperty(e,"description",{get:()=>On.get(e)?.description,configurable:!0}),e)),bo=E("_ZodString",(e,t)=>{dt.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n)=>{const o=n;o.type="string";const{minimum:r,maximum:i,format:a,patterns:s,contentEncoding:l}=e._zod.bag;if("number"==typeof r&&(o.minLength=r),"number"==typeof i&&(o.maxLength=i),a&&(o.format=Jn[a]??a,""===o.format&&delete o.format,"time"===a&&delete o.format),l&&(o.contentEncoding=l),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,yo(e,"_ZodString",{regex(...e){return this.check(function(e,t){return new tt({check:"string_format",format:"regex",...W(t),pattern:e})}(...e))},includes(...e){return this.check(function(e,t){return new rt({check:"string_format",format:"includes",...W(t),includes:e})}(...e))},startsWith(...e){return this.check(function(e,t){return new it({check:"string_format",format:"starts_with",...W(t),prefix:e})}(...e))},endsWith(...e){return this.check(function(e,t){return new at({check:"string_format",format:"ends_with",...W(t),suffix:e})}(...e))},min(...e){return this.check(Rn(...e))},max(...e){return this.check($n(...e))},length(...e){return this.check(Un(...e))},nonempty(...e){return this.check(Rn(1,...e))},lowercase(e){return this.check(function(e){return new nt({check:"string_format",format:"lowercase",...W(e)})}(e))},uppercase(e){return this.check(function(e){return new ot({check:"string_format",format:"uppercase",...W(e)})}(e))},trim(){return this.check(qn(e=>e.trim()))},normalize(...e){return this.check(function(e){return qn(t=>t.normalize(e))}(...e))},toLowerCase(){return this.check(qn(e=>e.toLowerCase()))},toUpperCase(){return this.check(qn(e=>e.toUpperCase()))},slugify(){return this.check(qn(e=>function(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}(e)))}})}),vo=E("ZodString",(e,t)=>{dt.init(e,t),bo.init(e,t),e.email=t=>e.check(xn(ko,t)),e.url=t=>e.check(An(To,t)),e.jwt=t=>e.check(function(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...W(t)})}(Fo,t)),e.emoji=t=>e.check(function(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...W(t)})}(Ao,t)),e.guid=t=>e.check(Tn(Oo,t)),e.uuid=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...W(t)})}(xo,t)),e.uuidv4=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...W(t)})}(xo,t)),e.uuidv6=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...W(t)})}(xo,t)),e.uuidv7=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...W(t)})}(xo,t)),e.nanoid=t=>e.check(function(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...W(t)})}(zo,t)),e.guid=t=>e.check(Tn(Oo,t)),e.cuid=t=>e.check(function(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...W(t)})}(Io,t)),e.cuid2=t=>e.check(function(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...W(t)})}(Po,t)),e.ulid=t=>e.check(function(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...W(t)})}(Co,t)),e.base64=t=>e.check(function(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...W(t)})}(Lo,t)),e.base64url=t=>e.check(function(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...W(t)})}(jo,t)),e.xid=t=>e.check(function(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...W(t)})}(No,t)),e.ksuid=t=>e.check(function(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...W(t)})}($o,t)),e.ipv4=t=>e.check(function(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...W(t)})}(Ro,t)),e.ipv6=t=>e.check(function(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...W(t)})}(Uo,t)),e.cidrv4=t=>e.check(function(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...W(t)})}(qo,t)),e.cidrv6=t=>e.check(function(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...W(t)})}(Do,t)),e.e164=t=>e.check(function(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...W(t)})}(Mo,t)),e.datetime=t=>e.check(Vn(t)),e.date=t=>e.check(Gn(t)),e.time=t=>e.check(Xn(t)),e.duration=t=>e.check(eo(t))});function wo(e){return function(e,t){return new e({type:"string",...W(t)})}(vo,e)}var So=E("ZodStringFormat",(e,t)=>{pt.init(e,t),bo.init(e,t)}),ko=E("ZodEmail",(e,t)=>{_t.init(e,t),So.init(e,t)});function Eo(e){return xn(ko,e)}var Oo=E("ZodGUID",(e,t)=>{ft.init(e,t),So.init(e,t)}),xo=E("ZodUUID",(e,t)=>{mt.init(e,t),So.init(e,t)}),To=E("ZodURL",(e,t)=>{ht.init(e,t),So.init(e,t)});var Ao=E("ZodEmoji",(e,t)=>{yt.init(e,t),So.init(e,t)}),zo=E("ZodNanoID",(e,t)=>{gt.init(e,t),So.init(e,t)}),Io=E("ZodCUID",(e,t)=>{bt.init(e,t),So.init(e,t)}),Po=E("ZodCUID2",(e,t)=>{vt.init(e,t),So.init(e,t)}),Co=E("ZodULID",(e,t)=>{wt.init(e,t),So.init(e,t)}),No=E("ZodXID",(e,t)=>{St.init(e,t),So.init(e,t)}),$o=E("ZodKSUID",(e,t)=>{kt.init(e,t),So.init(e,t)}),Ro=E("ZodIPv4",(e,t)=>{At.init(e,t),So.init(e,t)}),Uo=E("ZodIPv6",(e,t)=>{zt.init(e,t),So.init(e,t)}),qo=E("ZodCIDRv4",(e,t)=>{It.init(e,t),So.init(e,t)}),Do=E("ZodCIDRv6",(e,t)=>{Pt.init(e,t),So.init(e,t)}),Lo=E("ZodBase64",(e,t)=>{Nt.init(e,t),So.init(e,t)}),jo=E("ZodBase64URL",(e,t)=>{$t.init(e,t),So.init(e,t)}),Mo=E("ZodE164",(e,t)=>{Rt.init(e,t),So.init(e,t)}),Fo=E("ZodJWT",(e,t)=>{Ut.init(e,t),So.init(e,t)}),Zo=E("ZodNumber",(e,t)=>{qt.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n)=>{const o=n,{minimum:r,maximum:i,format:a,multipleOf:s,exclusiveMaximum:l,exclusiveMinimum:u}=e._zod.bag;"string"==typeof a&&a.includes("int")?o.type="integer":o.type="number";const c="number"==typeof u&&u>=(r??Number.NEGATIVE_INFINITY),d="number"==typeof l&&l<=(i??Number.POSITIVE_INFINITY),p="draft-04"===t.target||"openapi-3.0"===t.target;c?p?(o.minimum=u,o.exclusiveMinimum=!0):o.exclusiveMinimum=u:"number"==typeof r&&(o.minimum=r),d?p?(o.maximum=l,o.exclusiveMaximum=!0):o.exclusiveMaximum=l:"number"==typeof i&&(o.maximum=i),"number"==typeof s&&(o.multipleOf=s)})(e,t,n),yo(e,"ZodNumber",{gt(e,t){return this.check(Pn(e,t))},gte(e,t){return this.check(Cn(e,t))},min(e,t){return this.check(Cn(e,t))},lt(e,t){return this.check(zn(e,t))},lte(e,t){return this.check(In(e,t))},max(e,t){return this.check(In(e,t))},int(e){return this.check(Yo(e))},safe(e){return this.check(Yo(e))},positive(e){return this.check(Pn(0,e))},nonnegative(e){return this.check(Cn(0,e))},negative(e){return this.check(zn(0,e))},nonpositive(e){return this.check(In(0,e))},multipleOf(e,t){return this.check(Nn(e,t))},step(e,t){return this.check(Nn(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 Bo(e){return function(e,t){return new e({type:"number",checks:[],...W(t)})}(Zo,e)}var Jo=E("ZodNumberFormat",(e,t)=>{Dt.init(e,t),Zo.init(e,t)});function Yo(e){return function(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...W(t)})}(Jo,e)}var Wo=E("ZodBoolean",(e,t)=>{Lt.init(e,t),go.init(e,t),e._zod.processJSONSchema=(e,t,n)=>((e,t,n)=>{n.type="boolean"})(0,0,t)});function Vo(e){return function(e,t){return new e({type:"boolean",...W(t)})}(Wo,e)}var Ho=E("ZodUnknown",(e,t)=>{jt.init(e,t),go.init(e,t),e._zod.processJSONSchema=(e,t,n)=>{}});function Go(){return new Ho({type:"unknown"})}var Ko=E("ZodNever",(e,t)=>{Mt.init(e,t),go.init(e,t),e._zod.processJSONSchema=(e,t,n)=>((e,t,n)=>{n.not={}})(0,0,t)});function Xo(e){return function(e,t){return new e({type:"never",...W(t)})}(Ko,e)}var Qo=E("ZodArray",(e,t)=>{Zt.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const r=n,i=e._zod.def,{minimum:a,maximum:s}=e._zod.bag;"number"==typeof a&&(r.minItems=a),"number"==typeof s&&(r.maxItems=s),r.type="array",r.items=jn(i.element,t,{...o,path:[...o.path,"items"]})})(e,t,n,o),e.element=t.element,yo(e,"ZodArray",{min(e,t){return this.check(Rn(e,t))},nonempty(e){return this.check(Rn(1,e))},max(e,t){return this.check($n(e,t))},length(e,t){return this.check(Un(e,t))},unwrap(){return this.element}})});function er(e,t){return function(e,t,n){return new e({type:"array",element:t,...W(n)})}(Qo,e,t)}var tr=E("ZodObject",(e,t)=>{Vt.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const r=n,i=e._zod.def;r.type="object",r.properties={};const a=i.shape;for(const u in a)r.properties[u]=jn(a[u],t,{...o,path:[...o.path,"properties",u]});const s=new Set(Object.keys(a)),l=new Set([...s].filter(e=>{const n=i.shape[e]._zod;return"input"===t.io?void 0===n.optin:void 0===n.optout}));l.size>0&&(r.required=Array.from(l)),"never"===i.catchall?._zod.def.type?r.additionalProperties=!1:i.catchall?i.catchall&&(r.additionalProperties=jn(i.catchall,t,{...o,path:[...o.path,"additionalProperties"]})):"output"===t.io&&(r.additionalProperties=!1)})(e,t,n,o),R(e,"shape",()=>t.shape),yo(e,"ZodObject",{keyof(){return dr(Object.keys(this._zod.def.shape))},catchall(e){return this.clone({...this._zod.def,catchall:e})},passthrough(){return this.clone({...this._zod.def,catchall:Go()})},loose(){return this.clone({...this._zod.def,catchall:Go()})},strict(){return this.clone({...this._zod.def,catchall:Xo()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(e){return function(e,t){if(!F(t))throw new Error("Invalid input to extend: expected a plain object");const n=e._zod.def.checks;if(n&&n.length>0){const n=e._zod.def.shape;for(const e in t)if(void 0!==Object.getOwnPropertyDescriptor(n,e))throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return Y(e,q(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return U(this,"shape",n),n}}))}(this,e)},safeExtend(e){return function(e,t){if(!F(t))throw new Error("Invalid input to safeExtend: expected a plain object");return Y(e,q(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return U(this,"shape",n),n}}))}(this,e)},merge(e){return function(e,t){if(e._zod.def.checks?.length)throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");return Y(e,q(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t._zod.def.shape};return U(this,"shape",n),n},get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]}))}(this,e)},pick(e){return function(e,t){const n=e._zod.def,o=n.checks;if(o&&o.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");return Y(e,q(e._zod.def,{get shape(){const e={};for(const o in t){if(!(o in n.shape))throw new Error(`Unrecognized key: "${o}"`);t[o]&&(e[o]=n.shape[o])}return U(this,"shape",e),e},checks:[]}))}(this,e)},omit(e){return function(e,t){const n=e._zod.def,o=n.checks;if(o&&o.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");return Y(e,q(e._zod.def,{get shape(){const o={...e._zod.def.shape};for(const e in t){if(!(e in n.shape))throw new Error(`Unrecognized key: "${e}"`);t[e]&&delete o[e]}return U(this,"shape",o),o},checks:[]}))}(this,e)},partial(...e){return function(e,t,n){const o=t._zod.def.checks;if(o&&o.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");return Y(t,q(t._zod.def,{get shape(){const o=t._zod.def.shape,r={...o};if(n)for(const t in n){if(!(t in o))throw new Error(`Unrecognized key: "${t}"`);n[t]&&(r[t]=e?new e({type:"optional",innerType:o[t]}):o[t])}else for(const t in o)r[t]=e?new e({type:"optional",innerType:o[t]}):o[t];return U(this,"shape",r),r},checks:[]}))}(hr,this,e[0])},required(...e){return t=kr,n=this,o=e[0],Y(n,q(n._zod.def,{get shape(){const e=n._zod.def.shape,r={...e};if(o)for(const n in o){if(!(n in r))throw new Error(`Unrecognized key: "${n}"`);o[n]&&(r[n]=new t({type:"nonoptional",innerType:e[n]}))}else for(const n in e)r[n]=new t({type:"nonoptional",innerType:e[n]});return U(this,"shape",r),r}}));var t,n,o}})});function nr(e,t){const n={type:"object",shape:e??{},...W(t)};return new tr(n)}var or=E("ZodUnion",(e,t)=>{Gt.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const r=e._zod.def,i=!1===r.inclusive,a=r.options.map((e,n)=>jn(e,t,{...o,path:[...o.path,i?"oneOf":"anyOf",n]}));i?n.oneOf=a:n.anyOf=a})(e,t,n,o),e.options=t.options});function rr(e,t){return new or({type:"union",options:e,...W(t)})}var ir=E("ZodDiscriminatedUnion",(e,t)=>{or.init(e,t),Kt.init(e,t)});function ar(e,t,n){return new ir({type:"union",options:t,discriminator:e,...W(n)})}var sr=E("ZodIntersection",(e,t)=>{Xt.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const r=e._zod.def,i=jn(r.left,t,{...o,path:[...o.path,"allOf",0]}),a=jn(r.right,t,{...o,path:[...o.path,"allOf",1]}),s=e=>"allOf"in e&&1===Object.keys(e).length;n.allOf=[...s(i)?i.allOf:[i],...s(a)?a.allOf:[a]]})(e,t,n,o)});var lr=E("ZodRecord",(e,t)=>{tn.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const r=n,i=e._zod.def;r.type="object";const a=i.keyType,s=a._zod.bag?.patterns;if("loose"===i.mode&&s&&s.size>0){const e=jn(i.valueType,t,{...o,path:[...o.path,"patternProperties","*"]});r.patternProperties={};for(const t of s)r.patternProperties[t.source]=e}else"draft-07"!==t.target&&"draft-2020-12"!==t.target||(r.propertyNames=jn(i.keyType,t,{...o,path:[...o.path,"propertyNames"]})),r.additionalProperties=jn(i.valueType,t,{...o,path:[...o.path,"additionalProperties"]});const l=a._zod.values;if(l){const e=[...l].filter(e=>"string"==typeof e||"number"==typeof e);e.length>0&&(r.required=e)}})(e,t,n,o),e.keyType=t.keyType,e.valueType=t.valueType});function ur(e,t,n){return t&&t._zod?new lr({type:"record",keyType:e,valueType:t,...W(n)}):new lr({type:"record",keyType:wo(),valueType:e,...W(t)})}var cr=E("ZodEnum",(e,t)=>{nn.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n)=>{const o=z(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 r={};for(const i of e){if(!n.has(i))throw new Error(`Key ${i} not found in enum`);r[i]=t.entries[i]}return new cr({...t,checks:[],...W(o),entries:r})},e.exclude=(e,o)=>{const r={...t.entries};for(const t of e){if(!n.has(t))throw new Error(`Key ${t} not found in enum`);delete r[t]}return new cr({...t,checks:[],...W(o),entries:r})}});function dr(e,t){const n=Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e;return new cr({type:"enum",entries:n,...W(t)})}var pr=E("ZodLiteral",(e,t)=>{on.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n)=>{const o=e._zod.def,r=[];for(const i of o.values)if(void 0===i){if("throw"===t.unrepresentable)throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if("bigint"==typeof i){if("throw"===t.unrepresentable)throw new Error("BigInt literals cannot be represented in JSON Schema");r.push(Number(i))}else r.push(i);if(0===r.length);else if(1===r.length){const e=r[0];n.type=null===e?"null":typeof e,"draft-04"===t.target||"openapi-3.0"===t.target?n.enum=[e]:n.const=e}else r.every(e=>"number"==typeof e)&&(n.type="number"),r.every(e=>"string"==typeof e)&&(n.type="string"),r.every(e=>"boolean"==typeof e)&&(n.type="boolean"),r.every(e=>null===e)&&(n.type="null"),n.enum=r})(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 fr(e,t){return new pr({type:"literal",values:Array.isArray(e)?e:[e],...W(t)})}var mr=E("ZodTransform",(e,t)=>{rn.init(e,t),go.init(e,t),e._zod.processJSONSchema=(e,t,n)=>((e,t)=>{if("throw"===t.unrepresentable)throw new Error("Transforms cannot be represented in JSON Schema")})(0,e),e._zod.parse=(n,o)=>{if("backward"===o.direction)throw new x(e.constructor.name);n.addIssue=o=>{if("string"==typeof o)n.issues.push(te(o,n.value,t));else{const t=o;t.fatal&&(t.continue=!1),t.code??(t.code="custom"),t.input??(t.input=n.value),t.inst??(t.inst=e),n.issues.push(te(t))}};const r=t.transform(n.value,n);return r instanceof Promise?r.then(e=>(n.value=e,n.fallback=!0,n)):(n.value=r,n.fallback=!0,n)}});function _r(e){return new mr({type:"transform",transform:e})}var hr=E("ZodOptional",(e,t)=>{sn.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>Yn(e,t,0,o),e.unwrap=()=>e._zod.def.innerType});function yr(e){return new hr({type:"optional",innerType:e})}var gr=E("ZodExactOptional",(e,t)=>{ln.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>Yn(e,t,0,o),e.unwrap=()=>e._zod.def.innerType});var br=E("ZodNullable",(e,t)=>{un.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const r=e._zod.def,i=jn(r.innerType,t,o),a=t.seen.get(e);"openapi-3.0"===t.target?(a.ref=r.innerType,n.nullable=!0):n.anyOf=[i,{type:"null"}]})(e,t,n,o),e.unwrap=()=>e._zod.def.innerType});function vr(e){return new br({type:"nullable",innerType:e})}var wr=E("ZodDefault",(e,t)=>{cn.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const r=e._zod.def;jn(r.innerType,t,o),t.seen.get(e).ref=r.innerType,n.default=JSON.parse(JSON.stringify(r.defaultValue))})(e,t,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});var Sr=E("ZodPrefault",(e,t)=>{pn.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const r=e._zod.def;jn(r.innerType,t,o),t.seen.get(e).ref=r.innerType,"input"===t.io&&(n._prefault=JSON.parse(JSON.stringify(r.defaultValue)))})(e,t,n,o),e.unwrap=()=>e._zod.def.innerType});var kr=E("ZodNonOptional",(e,t)=>{fn.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const r=e._zod.def;jn(r.innerType,t,o),t.seen.get(e).ref=r.innerType})(e,t,0,o),e.unwrap=()=>e._zod.def.innerType});var Er=E("ZodCatch",(e,t)=>{_n.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const r=e._zod.def;let i;jn(r.innerType,t,o),t.seen.get(e).ref=r.innerType;try{i=r.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}n.default=i})(e,t,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});var Or=E("ZodPipe",(e,t)=>{hn.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const r=e._zod.def,i=r.in._zod.traits.has("$ZodTransform"),a="input"===t.io?i?r.out:r.in:r.out;jn(a,t,o),t.seen.get(e).ref=a})(e,t,0,o),e.in=t.in,e.out=t.out});function xr(e,t){return new Or({type:"pipe",in:e,out:t})}var Tr=E("ZodPreprocess",(e,t)=>{Or.init(e,t),gn.init(e,t)}),Ar=E("ZodReadonly",(e,t)=>{bn.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const r=e._zod.def;jn(r.innerType,t,o),t.seen.get(e).ref=r.innerType,n.readOnly=!0})(e,t,n,o),e.unwrap=()=>e._zod.def.innerType});var zr=E("ZodCustom",(e,t)=>{Sn.init(e,t),go.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)});function Ir(e,t){return new Tr({type:"pipe",in:_r(e),out:t})}var Pr,Cr=dr(["CONSENT","SOFT_OPT_IN","TRANSACTIONAL_ONLY","UNKNOWN"]),Nr=dr(["MANUAL_UNSUB","ONE_CLICK_UNSUB","HARD_BOUNCE","COMPLAINT","ADMIN_BLOCK"]),$r=dr(["BROADCAST","AUTOMATION"]),Rr=dr(["ABANDONED_CART","POST_PURCHASE","WELCOME","WIN_BACK","RE_ENGAGEMENT","TAG_ADDED"]),Ur=(nr({email:Eo(),name:wo().trim().min(1).nullable().optional(),customer_id:wo().uuid().nullable().optional(),tags:er(wo().trim().min(1)).default([]),consent_basis:Cr.default("UNKNOWN"),source:wo().trim().min(1).default("dashboard")}),nr({name:wo().trim().min(1),subject:wo().trim().min(1),preheader:wo().nullable().optional(),mjml_source:wo().trim().min(1),builder_project_json:ur(wo(),Go()).nullable().optional(),thumbnail_url:An(To,Pr).nullable().optional()}),nr({mjml_source:wo().trim().min(1),sample_variables:ur(wo(),Go()).optional()}),nr({recipient_email:Eo(),sample_variables:ur(wo(),Go()).optional()}),nr({marketing_enabled:Vo().optional(),default_from_name:wo().trim().min(1).nullable().optional(),default_from_email:Eo().nullable().optional(),default_reply_to_email:Eo().nullable().optional(),physical_address:wo().trim().min(1).nullable().optional(),physical_address_line2:wo().trim().min(1).nullable().optional(),physical_city:wo().trim().min(1).nullable().optional(),physical_postal_code:wo().trim().min(1).nullable().optional(),physical_country:wo().trim().length(2).nullable().optional(),daily_limit:Bo().int().positive().optional(),monthly_soft_cap:Bo().int().positive().optional()}),nr({type:$r.default("BROADCAST"),name:wo().trim().min(1),subject:wo().trim().min(1),template_id:wo().uuid(),list_id:wo().uuid().nullable().optional(),segment_id:wo().uuid().nullable().optional(),from_name:wo().trim().min(1),from_email:Eo(),reply_to_email:Eo().nullable().optional(),schedule_at:wo().datetime().nullable().optional(),target_emails:er(Eo()).max(0,"Direct recipient entry is disabled. Use lists or segments built from Shoppex customers and paid order buyers.").default([]),idempotency_key:wo().trim().min(1).nullable().optional()}),nr({name:wo().trim().min(1),subject:wo().trim().min(1),template_id:wo().uuid(),from_name:wo().trim().min(1),from_email:Eo(),reply_to_email:Eo().nullable().optional(),trigger:Rr,delay_seconds:Bo().int().min(0).default(0),conditions:ur(wo(),Go()).default({})}),nr({trigger:Rr,email:Eo(),customer_id:wo().uuid().nullable().optional(),name:wo().trim().min(1).nullable().optional(),consent_basis:Cr.default("UNKNOWN"),variables:ur(wo(),Go()).default({}),idempotency_key:wo().trim().min(1).nullable().optional()}),nr({email:Eo(),reason:Nr.default("ADMIN_BLOCK"),notes:wo().nullable().optional()}),/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i);var qr=["BITCOIN","LITECOIN","ETHEREUM","BITCOIN_CASH","MONERO","RIPPLE","TRON","SOLANA","POLYGON","BINANCE_COIN","CRONOS","CONCORDIUM","NANO","DOGECOIN","DASH"],Dr=["NOWPAYMENTS","CRYPTOMUS","OXAPAY"],Lr=["NOWPAYMENTS_WHITELABEL"],jr={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"]},Mr=Object.keys(jr),Fr=[...jr.USDT,...jr.USDC,...jr.DAI],Zr=[...qr,...Fr],Br=["BITCOIN_LN"],Jr=[...Dr,...Lr],Yr=[...Zr,...Br],Wr=Zr,Vr=(new Set(["SHOPPEXPAY"]),new Set(qr)),Hr=new Set(Fr),Gr=(new Set(Zr),new Set(Br),new Set(Dr),new Set(Lr),new Set(Jr),new Set(Yr),new Set(Mr),new Set(["STRIPE","PAYPAL","PAYPAL_FF","MOLLIE","AUTHORIZENET","NMI","SQUARE","SUMUP","SHOPIFY","PANDABASE","DEBLOMASSI","SHOPPEXPAY","MONEYMOTION","OVGC","WHOP","DODO","MAVERICK","CASHAPP","VENMO","CRYPTO","CUSTOMER_BALANCE","EXTERNAL","MANUAL"]),{CASHAPP:"CASH_APP",PAYPAL_CREDIT_CARD:"PAYPAL",EUTHEREUM:"ETHEREUM",USDT_MATIC:"USDT_POLYGON",USDC_MATIC:"USDC_POLYGON"});function Kr(e,t){if(new Set(t).size!==t.length)throw new Error(`${e} contains duplicate entries`)}Kr("COIN_GATEWAY_KEYS",qr),Kr("TOKEN_GATEWAY_KEYS",Fr),Kr("CRYPTO_GATEWAY_KEYS",Zr),Kr("LEGACY_CRYPTO_GATEWAY_KEYS",Br),Kr("CRYPTO_PROVIDER_KEYS",Dr),Kr("MANAGED_CRYPTO_PROVIDER_KEYS",Lr),Kr("CRYPTO_PROVIDER_GATEWAY_KEYS",Jr),Kr("DEFAULT_NOWPAYMENTS_CRYPTO_GATEWAY_KEYS",Wr),Kr("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"]),Kr("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 Ac of Zr)if(!Vr.has(Ac)&&!Hr.has(Ac))throw new Error(`CRYPTO_GATEWAY_KEYS contains an unclassified gateway: ${Ac}`);function Xr(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"}if(/^external:/i.test(t)){const e=function(e){const t=e.trim();if(!/^external:/i.test(t))return null;const n=t.slice(t.indexOf(":")+1).trim().toLowerCase();return Ur.test(n)?n:null}(t);return e?`EXTERNAL:${e}`:t.toUpperCase()}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 Gr[n]??n}new Set(["STRIPE","PAYPAL","PAYPAL_FF","SKRILL","CASHAPP","CASH_APP","PERFECT_MONEY","SQUARE","SUMUP","SHOPIFY","PANDABASE","DEBLOMASSI","SHOPPEXPAY","MONEYMOTION","OVGC","WHOP","DODO","MAVERICK","VENMO","MOLLIE","AUTHORIZENET","NMI"].map(e=>Xr(e))),new Set(["WHITE_LABEL","NATIVE"]);var Qr=[...Jr,"NATIVE"],ei=(new Set(Qr),nr({set:Vo()})),ti=nr({status:dr(["READY","NEEDS_ATTENTION"]).optional(),code:wo().optional(),message:wo().optional(),checked_at:wo().optional()}),ni=(nr({provider:wo(),type:wo(),enabled:Vo(),connected:Vo(),credentials:ur(wo(),ei),public_config:ur(wo(),Go()),webhook:ur(wo(),Go()).optional(),health:ti.optional()}),"#2563eb"),oi=["comfortable","compact"],ri=["top","side","background"],ii=dr(["checkout","payment_link","embed"]),ai=dr(oi),si=dr(["light","dark","system"]),li=dr(ri),ui=dr(["ghost","outlined","filled"]),ci=dr(["sheet","fullscreen","center"]),di=dr(["visible","hidden"]),pi=(dr(["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"]),dr(["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"]),wo().regex(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/,"Use a valid hex color")),fi=wo().trim().min(1).max(200).refine(e=>!/[;{}]|@import|expression\s*\(/i.test(e),"Use a valid CSS color or gradient"),mi=wo().trim().min(1).max(400).refine(e=>!/[;{}]|@import|expression\s*\(/i.test(e),"Use a valid CSS box-shadow value"),_i=dr(["Inter","Geist","Manrope","Plus Jakarta Sans","DM Sans","Space Grotesk","Sora","IBM Plex Sans","JetBrains Mono","Arial","System UI"]),hi=wo().trim().min(1).max(60).regex(/^[A-Za-z0-9 +\-_]+$/,"Use a Google Fonts family name"),yi=wo().url(),gi=nr({brand:nr({logoUrl:yi.optional().nullable(),logoDarkUrl:yi.optional().nullable(),logoMaxHeight:Bo().int().min(16).max(80).optional(),faviconUrl:yi.optional().nullable()}).strict().optional(),color:nr({brand:pi.optional(),brandContrast:pi.optional(),background:pi.optional(),surface:pi.optional(),surfaceRaised:pi.optional(),text:pi.optional(),textMuted:pi.optional(),border:pi.optional(),focus:pi.optional(),success:pi.optional(),warning:pi.optional(),error:pi.optional()}).strict().optional(),typography:nr({fontFamily:_i.optional(),googleFontFamily:hi.optional(),baseSize:Bo().int().min(12).max(18).optional()}).strict().optional(),shape:nr({buttonRadius:Bo().int().min(0).max(24).optional(),inputRadius:Bo().int().min(0).max(24).optional(),cardRadius:Bo().int().min(0).max(28).optional()}).strict().optional(),spacing:nr({density:ai.optional(),controlHeight:Bo().int().min(36).max(56).optional()}).strict().optional(),component:nr({primaryButton:nr({background:pi.optional(),text:pi.optional()}).strict().optional(),input:nr({background:pi.optional(),border:pi.optional(),focusRing:fi.optional()}).strict().optional(),summary:nr({background:pi.optional()}).strict().optional(),paymentMethod:nr({background:fi.optional(),cardBackground:fi.optional(),border:fi.optional(),selectedBackground:fi.optional()}).strict().optional(),productCard:nr({background:fi.optional(),border:fi.optional(),shadow:mi.optional()}).strict().optional(),productImage:nr({background:fi.optional(),border:fi.optional(),icon:fi.optional()}).strict().optional(),brandAvatar:nr({background:fi.optional(),text:pi.optional(),border:fi.optional()}).strict().optional(),pill:nr({background:fi.optional(),border:fi.optional(),text:pi.optional()}).strict().optional(),errorBanner:nr({background:fi.optional(),border:fi.optional(),text:pi.optional()}).strict().optional(),warningBanner:nr({background:fi.optional(),border:fi.optional(),text:pi.optional()}).strict().optional(),radio:nr({idleRing:fi.optional(),checkedFill:pi.optional(),checkedIcon:pi.optional()}).strict().optional(),divider:nr({color:fi.optional()}).strict().optional()}).strict().optional(),paymentLink:nr({heroImageUrl:yi.optional().nullable(),heroPosition:li.optional()}).strict().optional(),embed:nr({launcher:nr({background:fi.optional(),text:pi.optional(),radius:Bo().int().min(0).max(28).optional(),paddingX:Bo().int().min(8).max(32).optional(),paddingY:Bo().int().min(6).max(24).optional(),shadow:mi.optional()}).strict().optional(),productCard:nr({background:fi.optional(),border:fi.optional(),imageRadius:Bo().int().min(0).max(24).optional(),padding:Bo().int().min(8).max(32).optional()}).strict().optional(),cart:nr({background:fi.optional(),rowBorder:fi.optional(),itemSpacing:Bo().int().min(4).max(28).optional()}).strict().optional(),modal:nr({background:fi.optional(),radius:Bo().int().min(0).max(32).optional(),maxWidth:Bo().int().min(360).max(960).optional(),shadow:mi.optional()}).strict().optional(),backdrop:nr({color:fi.optional(),blur:Bo().int().min(0).max(24).optional(),opacity:Bo().min(0).max(1).optional()}).strict().optional(),skeleton:nr({background:fi.optional(),shimmer:fi.optional()}).strict().optional(),spinner:nr({color:fi.optional()}).strict().optional(),closeButton:nr({style:ui.optional()}).strict().optional(),mobile:nr({layout:ci.optional()}).strict().optional(),content:nr({productDescription:di.optional(),termsShortcut:di.optional()}).strict().optional()}).strict().optional()}).strict(),bi=nr({mode:si.default("system"),fontSource:dr(["curated"]).default("curated")}).strict(),vi=dr(["standalone","bundle","pointer"]),wi=nr({name:wo().trim().min(1).max(80),fingerprint:wo().trim().min(1).max(128)}).strict(),Si=["embed_design"];function ki(e){if(!e||"object"!=typeof e||Array.isArray(e))return e;const t=e;if(!Si.some(e=>e in t))return e;const n={...t};for(const o of Si)delete n[o];return n}var Ei=Ir(ki,nr({type:fr("shoppex.style_theme"),surface:fr("checkout"),format_version:rr([fr(1),fr(2)]),name:wo().trim().min(1).max(80),description:wo().trim().max(240).optional(),token_schema_version:fr(1),tokens:gi.default({}),custom_css:wo().max(2e4).default(""),settings:bi.default({mode:"system",fontSource:"curated"}),_meta:ur(wo(),Go()).optional()}).strict()),Oi=(Ir(ki,nr({type:fr("shoppex.style_theme"),surface:ii,format_version:rr([fr(1),fr(2)]),name:wo().trim().min(1).max(80),description:wo().trim().max(240).optional(),token_schema_version:fr(1),tokens:gi.default({}),custom_css:wo().max(2e4).default(""),settings:bi.default({mode:"system",fontSource:"curated"}),share_mode:vi.default("standalone"),parent_hint:wi.optional(),bundled_parent:Ei.optional(),_meta:ur(wo(),Go()).optional()}).strict()),nr({theme_id:wo().uuid().nullable(),surface:ii,token_schema_version:fr(1),revision:Bo().int().min(1),tokens:gi,custom_css:wo(),css_variables:ur(wo(),wo())}).strict(),nr({theme_id:wo().uuid().nullable(),parent_theme_id:wo().uuid().nullable(),surface:fr("embed"),token_schema_version:fr(1),revision:Bo().int().min(1),parent_revision:Bo().int().min(1).nullable(),tokens:gi,custom_css:wo(),css_variables:ur(wo(),wo())}).strict(),nr({shop_id:wo().uuid(),product_id:wo().uuid().nullable(),product_group_id:wo().uuid().nullable(),payment_link_id:wo().uuid().nullable(),invoice_id:wo().nullable()}).strict(),nr({embed_runtime:wo().min(16).max(128),revision:Bo().int().min(1),parent_revision:Bo().int().min(1).nullable(),theme_id:wo().uuid().nullable(),css_variables:ur(wo(),wo()),custom_css:wo()}).strict(),nr({embed_style_revision:function(e){return function(e,t){return new e({type:"number",coerce:!0,checks:[],...W(t)})}(Zo,e)}().int().min(1).optional(),embed_runtime:wo().min(16).max(128).optional(),preview:Vo().optional()}).strict(),dr(["announcement_bar","countdown_bar","promo_info_card","recent_purchase_popup","coupon_popup_modal","live_chat"]),dr(["layout.header.before","layout.header.after","layout.overlay","home.hero.after","home.grid.before","product.buybox.after","layout.footer.before","floating.bottom_right"])),xi=(dr(["announcement_bar","countdown_bar","promo_info_card","recent_purchase_popup","coupon_popup_modal","live_chat"]),wo().regex(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/,"Use a valid hex color")),Ti=dr(["static","marquee"]),Ai=dr(["brand_blue","emerald","sunset","rose","charcoal","custom"]),zi=dr(["hide","message"]),Ii=dr(["compact","comfortable"]),Pi=dr(["subtle","outline","solid"]),Ci=dr(["minimal","boxed"]),Ni=dr(["indigo","emerald","amber","rose","slate","custom"]),$i=dr(["compact","feature","alert"]),Ri=dr(["compact","comfortable"]),Ui=dr(["subtle","outline","solid"]),qi=dr(["sparkles","megaphone","gift","truck","shield","support","none"]),Di=dr(["show","hide"]),Li=dr(["midnight","ocean","ember","forest","custom"]),ji=dr(["delay","exit_intent"]),Mi=wo().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 "/"'),Fi=wo().trim().refine(e=>{const t=new Date(e);return!Number.isNaN(t.getTime())},"Use a valid date and time"),Zi=nr({text:wo().trim().min(1,"Text is required").max(160,"Text must be 160 characters or fewer"),linkLabel:wo().trim().max(32,"Link label must be 32 characters or fewer").optional().nullable(),linkUrl:Mi.optional().nullable(),dismissible:Vo().default(!1),displayMode:Ti.default("marquee"),themePreset:Ai.default("custom"),animationSpeedSeconds:Bo().int().min(8).max(40).default(30),backgroundColor:xi.default("#111827"),textColor:xi.default("#f9fafb")}),Bi=nr({text:wo().trim().min(1,"Text is required").max(120,"Text must be 120 characters or fewer"),endAt:Fi,linkLabel:wo().trim().max(32,"Link label must be 32 characters or fewer").optional().nullable(),linkUrl:Mi.optional().nullable(),dismissible:Vo().default(!1),themePreset:Ai.default("brand_blue"),expiredBehavior:zi.default("hide"),expiredMessage:wo().trim().max(120,"Expired message must be 120 characters or fewer").optional().nullable(),density:Ii.default("compact"),ctaStyle:Pi.default("subtle"),timerStyle:Ci.default("boxed"),backgroundColor:xi.default("#111827"),textColor:xi.default("#f9fafb")}),Ji=nr({eyebrow:wo().trim().max(32,"Eyebrow must be 32 characters or fewer").optional().nullable(),title:wo().trim().min(1,"Title is required").max(80,"Title must be 80 characters or fewer"),body:wo().trim().min(1,"Body is required").max(240,"Body must be 240 characters or fewer"),linkLabel:wo().trim().max(32,"Link label must be 32 characters or fewer").optional().nullable(),linkUrl:Mi.optional().nullable(),themePreset:Ni.default("indigo"),layoutStyle:$i.default("feature"),density:Ri.default("comfortable"),ctaStyle:Ui.default("outline"),icon:qi.default("sparkles"),iconVisibility:Di.default("show"),backgroundColor:xi.default("#111827"),textColor:xi.default("#f9fafb"),accentColor:xi.default("#818cf8")}),Yi=nr({title:wo().trim().min(1,"Title is required").max(80,"Title must be 80 characters or fewer").default("Recent purchases"),lookbackHours:Bo().int().min(1).max(168).default(24),cooldownSeconds:Bo().int().min(5).max(300).default(20),maxItems:Bo().int().min(1).max(20).default(8),anonymizeMode:dr(["first_name_city","first_name_country","initial_country","anonymous"]).default("first_name_city"),includedProductIds:er(wo().min(1)).max(50).default([])}),Wi=nr({eyebrow:wo().trim().max(32,"Eyebrow must be 32 characters or fewer").optional().nullable(),title:wo().trim().min(1,"Title is required").max(80,"Title must be 80 characters or fewer"),body:wo().trim().min(1,"Body is required").max(240,"Body must be 240 characters or fewer"),couponCode:wo().trim().min(2,"Coupon code is required").max(40,"Coupon code must be 40 characters or fewer"),primaryButtonLabel:wo().trim().min(1,"Primary button label is required").max(24,"Primary button label must be 24 characters or fewer").default("Copy code"),secondaryButtonLabel:wo().trim().min(1,"Secondary button label is required").max(24,"Secondary button label must be 24 characters or fewer").default("Maybe later"),disclaimer:wo().trim().max(100,"Disclaimer must be 100 characters or fewer").optional().nullable(),themePreset:Li.default("midnight"),trigger:ji.default("delay"),delaySeconds:Bo().int().min(0).max(60).default(6),showOncePerSession:Vo().default(!0),reminderHours:Bo().int().min(1).max(720).default(24),backgroundColor:xi.default("#111827"),textColor:xi.default("#f8fafc"),accentColor:xi.default("#7c9cff"),heroImageUrl:Mi.optional().nullable(),discountDisplay:wo().trim().max(24,"Discount display must be 24 characters or fewer").optional().nullable(),expiresAt:Fi.optional().nullable()}),Vi=dr(["hidden","optional"]),Hi=nr({headline:wo().trim().min(1,"Headline is required").max(60,"Headline must be 60 characters or fewer").default("Chat with us"),greeting:wo().trim().min(1,"Greeting is required").max(240,"Greeting must be 240 characters or fewer").default("Hi! Send us a message and we will reply as soon as possible."),inputPlaceholder:wo().trim().min(1,"Placeholder is required").max(80,"Placeholder must be 80 characters or fewer").default("Type your message…"),contactFields:Vi.default("optional"),accentColor:xi.default("#111827"),launcherIconColor:xi.default("#f9fafb")}),Gi=nr({type:fr("announcement_bar"),slot:Oi,enabled:Vo().default(!0),sortOrder:Bo().int().min(0).max(999).default(0),config:Zi}),Ki=nr({type:fr("recent_purchase_popup"),slot:Oi,enabled:Vo().default(!0),sortOrder:Bo().int().min(0).max(999).default(0),config:Yi}),Xi=nr({type:fr("countdown_bar"),slot:Oi,enabled:Vo().default(!0),sortOrder:Bo().int().min(0).max(999).default(0),config:Bi}),Qi=nr({type:fr("promo_info_card"),slot:Oi,enabled:Vo().default(!0),sortOrder:Bo().int().min(0).max(999).default(0),config:Ji}),ea=nr({type:fr("coupon_popup_modal"),slot:Oi,enabled:Vo().default(!0),sortOrder:Bo().int().min(0).max(999).default(0),config:Wi}),ta=nr({type:fr("live_chat"),slot:Oi,enabled:Vo().default(!0),sortOrder:Bo().int().min(0).max(999).default(0),config:Hi}),na=(ar("type",[Gi,Xi,Qi,Ki,ea,ta]),ar("type",[Gi.extend({id:wo().min(1)}),Xi.extend({id:wo().min(1)}),Qi.extend({id:wo().min(1)}),Ki.extend({id:wo().min(1)}),ea.extend({id:wo().min(1)}),ta.extend({id:wo().min(1)})]),new Set(["amount","currency","invoice_id","customer_email","id","email","price","price_usd","product_name","quantity"].map(e=>e.toLowerCase())),wo().regex(/^[A-Z]{3}$/,"Currency must be a three-letter uppercase code.")),oa=wo().url().refine(e=>"https:"===new URL(e).protocol,"URL must use HTTPS."),ra=nr({version:fr("2026-08-14")}),ia=(ra.extend({type:fr("payment.session.create"),data:nr({attempt_id:wo().uuid(),invoice_id:wo().uuid(),amount_minor:Bo().int().safe().positive(),currency:na,customer_email:wo().email().nullable(),description:wo().min(1).max(500),success_url:oa,cancel_url:oa,event_url:oa})}),ra.extend({provider_reference:wo().trim().min(1).max(255),checkout_url:oa,expires_at:Vn({offset:!0}).nullable().optional()}),ra.extend({type:dr(["payment.processing","payment.succeeded","payment.failed"]),data:nr({attempt_id:wo().uuid(),provider_reference:wo().trim().min(1).max(255),amount_minor:Bo().int().safe().positive(),currency:na,occurred_at:Vn({offset:!0}).nullable().optional()})}),ra.extend({type:fr("adapter.conformance.run"),data:nr({challenge_id:wo().uuid(),mode:dr(["standard","timeout"]),expected_event:nr({attempt_id:wo().uuid(),provider_reference:wo().trim().min(1).max(255),amount_minor:Bo().int().safe().positive(),currency:na})})}),nr({scenario:dr(["valid_event","amount_mismatch","duplicate_event_first","duplicate_event_retry"]),webhook_id:wo().trim().min(1).max(255),webhook_timestamp:wo().trim().min(1).max(32),webhook_signature:wo().trim().min(1).max(1024),raw_body:wo().min(1).max(4096)})),aa=(ra.extend({type:fr("adapter.conformance.result"),data:nr({challenge_id:wo().uuid(),samples:er(ia).length(4)})}),ur(wo(),Go())),sa=rr([wo(),Bo()]),la=nr({kind:dr(["address","redirect","embed_pending"]),gateway:wo(),checkout_url:wo().nullable().optional(),address:wo().optional(),amount:wo().optional(),qr_code:wo().optional(),expires_at:wo().optional(),payment_id:wo().optional(),confirmations_needed:Bo().optional()}).passthrough(),ua=nr({default_value:wo().optional(),min_length:Bo().optional(),name:wo(),placeholder:wo().optional(),regex:wo().optional(),required:Vo(),type:wo()}),ca=nr({id:wo(),price:Bo(),quantity:Bo(),title:wo()}),da=nr({currency:wo(),description:wo(),id:wo(),price:Bo(),title:wo(),uniqid:wo()}),pa=nr({addons:er(ca).optional(),available_addons:er(Go()).optional(),cloudflare_image_id:wo().nullable(),created_at:wo().optional(),currency:wo(),custom_fields:aa.nullable().optional(),custom_fields_config:er(ua).nullable().optional(),delivery_instruction:Go().optional(),delivery_instruction_config:Go().optional(),delivery_instruction_label:Go().optional(),delivery_text:wo().nullable().optional(),delivery_time:Bo().nullable().optional(),delivery_time_unit:dr(["minutes","hours","days"]).nullable().optional(),description:wo().nullable(),discount_percent:Bo().optional(),discount_display:Bo().optional(),discounted_total_display:Bo().optional(),gateways:er(wo()).nullable().optional(),id:wo().optional(),image_name:wo().nullable(),image_storage:wo().nullable().optional(),line_item_id:wo().nullable().optional(),pay_what_you_want:Vo().optional(),price:wo().optional(),price_display:sa,quantity:Bo(),quantity_max:Bo().optional(),quantity_min:Bo().optional(),recurring_interval:wo().nullable().optional(),recurring_interval_count:Bo().nullable().optional(),redirect_link:wo().nullable().optional(),redirect_time:Bo().nullable().optional(),service_text:wo().nullable().optional(),setup_cost:wo().optional(),slug:wo().nullable().optional(),storefront_url:wo().nullable().optional(),status:wo().nullable().optional(),subtype:wo().nullable().optional(),terms_of_service:wo().nullable().optional(),title:wo(),total:Bo(),trial_period:Bo().nullable().optional(),type:wo().nullable().optional(),uniqid:wo().nullable(),unit_price:Bo().optional(),unit_price_display:sa.optional(),unit_quantity:Bo(),updated_at:wo().optional(),variant_title:wo().nullable().optional(),video_link:wo().nullable().optional(),volume_discounts:Go().optional(),warranty_days:Bo().nullable().optional(),warranty_text:wo().nullable().optional(),warranty_period_days:Bo().nullable().optional()}),fa=nr({amount:Bo(),gateway:wo()}),ma=nr({custom_tip_enabled:Vo().optional(),enabled:Vo(),preset_percentages:er(Bo()).optional()}),_a=nr({allow_partial_payment:Vo().optional(),auto_apply:Vo().optional(),available:wo(),currency:wo()}),ha=nr({affiliate_code:wo().nullable().optional(),already_paid:sa.nullable().optional(),amount_due:sa.nullable().optional(),currency:wo().nullable().optional(),discount:sa.nullable().optional(),discount_label:wo().nullable().optional(),gateway_fee:sa.nullable().optional(),platform_fee:sa.nullable().optional(),processing_fee:sa.nullable().optional(),subtotal:sa.nullable().optional(),tip:sa.nullable().optional(),total:sa.nullable().optional()}),ya=nr({active:Vo(),expires_at:wo()}),ga=nr({faq_url:wo().nullable(),support_email:wo().nullable(),support_url:wo().nullable(),telegram_invite:wo().nullable(),discord_invite_url:wo().nullable()}),ba=nr({currency:wo().nullable().optional(),enabled:Vo(),max_amount:Bo().nullable().optional(),min_amount:Bo().nullable().optional(),reason:dr(["BELOW_MIN_AMOUNT","ABOVE_MAX_AMOUNT"]).nullable().optional()}),va=nr({delivered_items:er(Go()),downloads:er(Go()),external_urls:er(Go()),license_keys:er(Go()),tracking_codes:er(Go())}),wa=nr({active:Vo().optional(),attempt_id:wo().optional(),buyer_actionable:Vo().nullable().optional(),crypto_currency:wo().nullable().optional(),currency:wo().optional(),expected_amount:wo().nullable().optional(),expected_crypto_amount:wo().nullable().optional(),last_checked_at:wo().optional(),missing_amount:wo().nullable().optional(),missing_crypto_amount:wo().nullable().optional(),provider_reference:wo().nullable().optional(),provider_status:wo().nullable().optional(),received_amount:wo().nullable().optional(),received_fiat_estimate:wo().nullable().optional(),received_crypto_amount:wo().nullable().optional(),shortfall_percent:wo().nullable().optional(),buyer_action_reason:dr(["BELOW_MINIMUM_COLLECTIBLE","PROVIDER_SESSION_CLOSED","PROVIDER_TOP_UP_UNSUPPORTED","MERCHANT_REVIEW_REQUIRED"]).nullable().optional()}),Sa=nr({created_at:wo().nullable(),details:wo().nullable(),id:wo(),invoice_id:wo(),status:wo().nullable()}),ka=nr({billing_address_mode:dr(["INHERIT","REQUIRED","DISABLED"]).optional(),button_label:wo().nullable().optional(),display_name:wo().nullable().optional(),gateway:wo(),hide_provider_attribution:Vo().optional(),icon_url:wo().nullable().optional(),terms_mode:dr(["INHERIT","REQUIRED","DISABLED"]).optional()}),Ea=nr({custom_fields:er(Go()).optional(),description:wo().nullable(),display_order:Bo(),icon_preset:wo().nullable(),icon_url:wo().nullable(),id:wo(),instructions:wo().nullable(),is_active:Vo().optional(),name:wo(),payment_type:dr(["INSTRUCTIONS","REDIRECT"]),redirect_url:wo().nullable(),require_proof:Vo(),proof_type:dr(["TEXT","IMAGE","BOTH"]).optional(),void_after_hours:Bo()}),Oa=nr({description:wo().nullable(),display_order:Bo(),icon_url:wo().nullable(),id:wo(),name:wo()}),xa=nr({email:nr({masked:wo().nullable(),persisted:Vo(),required_for_provider_session:Vo().optional()})}),Ta=nr({amount:wo().nullable(),confirmations:Bo().nullable(),created_at:Bo().optional(),hash:wo().nullable(),status:wo().optional()}),Aa=nr({conf:nr({partial:Bo().optional(),void:Bo(),waiting_for_confirmations:Bo().optional()}),gateways:er(wo())}),za=nr({invoice_payable:Vo(),resumable:Vo(),resumable_gateway:wo().nullable(),gateway:wo().nullable().optional(),crypto_gateway:wo().nullable().optional(),processor:wo().nullable().optional(),flow_type:wo().nullable().optional(),status:wo().nullable().optional(),provider_reference:wo().nullable().optional(),provider_reference_type:wo().nullable().optional(),capture_id:wo().nullable().optional(),manual_confirmation_pending:Vo().optional(),payment_method_switch_locked:Vo().optional(),awaiting_payment_method:Vo().optional(),started_at:Bo().nullable().optional(),completed_at:Bo().nullable().optional()}),Ia=za.extend({gateway:wo().nullable(),flow_type:wo().nullable(),status:wo().nullable(),manual_confirmation_pending:Vo(),payment_method_switch_locked:Vo()}),Pa=nr({theme_id:wo().nullable(),surface:dr(["checkout","payment_link","embed"]),token_schema_version:fr(1),revision:Bo(),tokens:aa,custom_css:wo(),css_variables:ur(wo(),wo())}),Ca=nr({link_id:wo(),source_gateway:wo().nullable(),invoice_uniqid:wo(),deprioritize_source_gateway:Vo().optional()}),Na=nr({enabled:Vo(),required:Vo(),connected:Vo()}),$a=nr({gateway:wo().nullable().optional(),active_type:wo().nullable().optional(),percent_amount:sa.nullable().optional(),fixed_amount:sa.nullable().optional(),fixed_currency:wo().nullable().optional()}),Ra=nr({id:wo(),type:dr(["WALLET_CREDIT","COUPON"]),status:dr(["PENDING","FULFILLED","FAILED","REVOKED"]),amount:wo().nullable(),currency:wo().nullable(),coupon_code:wo().nullable(),reason:dr(["ORDER_COMPLETED","ORDER_COUNT_REACHED","SPEND_AMOUNT_REACHED","POSITIVE_REVIEW_LEFT","FIRST_PURCHASE_COMPLETED"]),trigger_reference_type:wo(),trigger_reference_id:wo(),created_at:Bo(),fulfilled_at:Bo().nullable(),expires_at:Bo().nullable()}),Ua=nr({summary:nr({available:wo(),pending:wo(),lifetime_earned:wo(),redeemed:wo().nullable(),currency:wo()}),activity:er(Ra),earned_after_invoice:er(Ra),pending_after_invoice:er(Ra)}),qa=nr({already_paid_amount:sa.nullable().optional(),apm_method:wo().nullable().optional(),blockchain:wo().nullable(),buyer_identity:xa.nullable().optional(),checkout_tipping:ma.nullable().optional(),country_regulations:wo().nullable().optional(),coupon_applied:Vo().optional(),crypto_mode:wo().nullable().optional(),crypto_transactions:er(Ta).optional(),currency:wo().nullable(),custom_fields:aa.nullable().optional(),custom_gateways:er(Ea).optional(),external_payment_adapters:er(Oa).optional(),customer_balance:_a.nullable().optional(),customer_email_masked:wo().nullable().optional(),dark_mode:rr([fr(0),fr(1)]).optional(),delivery:va.optional(),delivery_info:va.optional(),discount:Bo().optional(),discount_display:sa.optional(),eligible_gateways:er(wo()).optional(),environment:wo().optional(),fee_breakdown:aa.nullable().optional(),gateway:wo().nullable(),gateway_data:aa.nullable().optional(),gateway_eligibility:ur(wo(),ba).optional(),gateway_fee_previews:er(fa).optional(),gateways_available:er(wo()),license:rr([aa,fr(!1)]).optional(),name:wo().nullable(),paddle_token:wo().nullable().optional(),paddle_transaction_id:Go().optional(),payment_link_id:wo().nullable().optional(),payment_method_overrides:er(ka).optional(),payment_session_state:za.nullable().optional(),polling:ya,pricing_breakdown:ha.nullable().optional(),product:er(pa).optional(),quantity:Bo().nullable(),rates_snapshot:ur(wo(),Bo()).optional(),remaining_amount:sa.nullable().optional(),selected_gateway:wo().nullable().optional(),shop_checkout_ambient_color:wo().nullable().optional(),shop_cloudflare_image_id:wo().nullable(),shop_domain:wo().nullable().optional(),shop_force_paypal_email_delivery:rr([fr(0),fr(1)]).optional(),shop_image_name:wo().nullable(),shop_image_storage:wo().nullable().optional(),shop_payment_gateways_fees:er(aa).optional(),shop_paypal_credit_card:rr([fr(0),fr(1)]).optional(),shop_return_url:wo().nullable().optional(),shop_slug:wo().nullable().optional(),shop_terms_enabled:Vo().optional(),shop_terms_of_service:wo().nullable().optional(),shop_terms_url:wo().nullable().optional(),shop_privacy_policy_url:wo().nullable().optional(),shop_refund_policy_url:wo().nullable().optional(),shop_walletconnect_id:wo().nullable().optional(),status:wo().nullable(),status_history:er(Sa).optional(),status_history_legacy:er(Sa).optional(),status_history_raw:er(Sa).optional(),stripe_publishable_key:wo().nullable().optional(),stripe_user_id:wo().nullable().optional(),subtotal:Bo().optional(),subtype:wo().nullable().optional(),support:ga.optional(),theme:wo().optional(),tip_amount:sa.nullable().optional(),tip_amount_display:sa.nullable().optional(),tip_metadata:Go().optional(),total:sa,total_conversions:aa.optional(),total_display:sa,type:wo().nullable(),underpayment:wa.nullable().optional(),underpayment_status:wo().nullable().optional(),uniqid:wo(),void_times:er(Aa).optional(),addons:Go().optional(),affiliate_data:Go().optional(),affiliate_revenue_customer_id:wo().nullable().optional(),bill_info:Go().optional(),binance_checkout_url:wo().nullable().optional(),binance_invoice_id:wo().nullable().optional(),binance_qrcode:wo().nullable().optional(),bundle_config:Go().optional(),bundles:Go().optional(),cashapp_cashtag:wo().nullable().optional(),cashapp_note:wo().nullable().optional(),cashapp_qrcode:wo().nullable().optional(),created_at:wo().optional(),crypto_address:wo().nullable().optional(),crypto_amount:sa.optional(),crypto_confirmations_needed:Bo().nullable().optional(),crypto_exchange_rate:sa.nullable().optional(),crypto_received:sa.optional(),crypto_uri:wo().nullable().optional(),developer_invoice:Go().optional(),developer_return_url:wo().nullable().optional(),developer_title:wo().nullable().optional(),exchange_rate:sa.nullable().optional(),external_order_id:wo().nullable().optional(),lex_order_id:wo().nullable().optional(),lex_payment_method:wo().nullable().optional(),paydash_payment_id:wo().nullable().optional(),paypal_apm:wo().nullable().optional(),paypal_email_delivery:Vo().optional(),paypal_fee:sa.nullable().optional(),paypal_order_id:wo().nullable().optional(),paypal_payer_email:wo().nullable().optional(),paypal_subscription_id:wo().nullable().optional(),paypal_subscription_link:wo().nullable().optional(),perfectmoney_id:wo().nullable().optional(),product_addons:Go().optional(),product_id:wo().nullable().optional(),product_title:wo().nullable().optional(),product_type:wo().nullable().optional(),product_variants:Go().optional(),recurring_billing_id:wo().nullable().optional(),skrill_link:wo().nullable().optional(),skrill_sid:wo().nullable().optional(),status_details:Go().optional(),stripe_apm:wo().nullable().optional(),stripe_client_secret:wo().nullable().optional(),stripe_id:wo().nullable().optional(),stripe_price_id:wo().nullable().optional(),subscription:Go().optional(),subscription_id:wo().nullable().optional(),sumup_id:wo().nullable().optional(),telegram_stars_payment_link:wo().nullable().optional(),telegram_stars_payment_note:wo().nullable().optional(),updated_at:wo().optional(),virtual_payments_id:wo().nullable().optional(),void_details:Go().optional()}).catchall(Go()),Da=pa.extend({available_addons:er(da).optional(),delivery_instructions:wo().nullable().optional(),delivery_instructions_config:nr({enabled:fr(!0),required:Vo(),label:wo(),placeholder:wo().nullable().optional(),help_text:wo().nullable().optional(),max_length:Bo()}).nullable().optional(),delivery_instructions_label:wo().nullable().optional(),image_url:wo().nullable().optional(),redirectLink:wo().nullable().optional(),redirectTime:Bo().nullable().optional(),serviceText:wo().nullable().optional()}),La=(nr({data:nr({invoice:qa.extend({uniqid:wo().uuid(),shop_id:rr([wo(),Bo()]).nullable(),customer_email:wo().nullable(),checkout_style:Pa.nullable().optional(),coupon_id:wo().nullable().optional(),discount_breakdown:aa.nullable().optional(),affiliate_code:wo().nullable().optional(),country:wo().nullable().optional(),paypal_email:wo().nullable().optional(),pandabase_available_payment_methods:er(wo()).optional(),payment_rescue:Ca.nullable().optional(),discord_integration:Na.nullable().optional(),payment_session_state:Ia.nullable().optional(),shop_payment_gateways_fees:er($a).optional(),product:er(Da).optional(),products:er(Da).optional(),rewards:Ua.nullable().optional()}).superRefine((e,t)=>{void 0===e.product&&void 0===e.products&&t.addIssue({code:"custom",message:"Embed checkout invoice must include product or products.",path:["product"]})}),invoice_url:wo().nullable(),checkout_url:wo().nullable(),selected_gateway:wo().nullable(),session_started:Vo(),payment_session:la.nullable(),completion_access_grant:wo().nullable()}).passthrough()}).passthrough(),{maximumFractionDigits:3});function ja(e){if(!Number.isFinite(e))return e;const t=e<0?-1:1,n=Ma(Math.abs(e),2),o=Math.round(n);return 0===o?0:t*Ma(o,-2)}function Ma(e,t){const[n,o="0"]=String(e).split("e");return Number(`${n}e${Number(o)+t}`)}var Fa=wo().nullable(),Za=ur(wo(),Go()),Ba=nr({logo_url:Fa,primary_color:wo(),secondary_color:wo(),accent_color:wo()}),Ja=(nr({customer:nr({id:Fa,email:wo(),name:wo(),avatar_url:Fa,joined_at:Fa}),shop:nr({id:wo(),slug:wo(),name:wo(),currency:wo(),branding:Ba}),token:Fa}),nr({attachment_image_id:nr({cloudflare_image_id:Fa}).nullable()})),Ya=nr({attachment_imageId:nr({cloudflareImageId:Fa}).nullable()}),Wa=nr({uniqid:wo(),status:wo(),total:wo(),total_display:Fa,currency:wo(),created_at:wo(),line_items:er(nr({product_title:Fa,quantity:Bo(),product:Ja.nullable()}))}),Va=nr({uniqid:wo(),status:wo(),total:wo(),totalDisplay:Fa,currency:wo(),createdAt:wo(),lineItems:er(nr({productTitle:Fa,quantity:Bo(),product:Ya.nullable()}))}),Ha=nr({invoices:er(Va),pagination:nr({page:Bo(),limit:Bo(),total:Bo(),has_more:Vo()})}),Ga=(nr({can_review:Vo(),already_submitted:Vo(),feedback_uniqid:Fa,product_title:Fa,score:rr([fr(1),fr(3),fr(5)]).nullable(),is_automated:Vo(),message:Fa,submitted_at:Fa}),nr({gateway:wo(),displayName:Fa,cryptoGateway:Fa.optional(),blockchain:Fa,cryptoAddress:Fa,apmMethod:Fa})),Ka=nr({id:wo(),uniqid:wo(),status:wo(),statusDetails:Fa,total:wo(),totalDisplay:Fa,subtotal:wo(),discount:wo(),discountDisplay:Fa,tax:wo(),taxPercentage:wo(),currency:wo(),createdAt:wo(),updatedAt:wo(),gatewayUpdatedAt:Fa,customFields:Za.nullable(),balancePaidAmount:wo(),tipAmountDisplay:wo(),pricingBreakdown:nr({subtotal:wo(),discount:wo(),discount_label:dr(["Coupon","Discount"]),affiliate_code:Fa,tip:wo(),gateway_fee:wo(),platform_fee:wo(),processing_fee:wo(),already_paid:wo(),total:wo(),amount_due:wo(),currency:wo()}),currentPaymentAttemptId:Fa,lineItems:er(nr({id:wo(),productTitle:wo(),productType:wo(),variantTitle:Fa,unitPrice:wo(),quantity:Bo(),total:wo(),deliveryText:Fa,deliverySummary:nr({codes:er(wo()),links:er(nr({label:wo(),value:wo(),href:Fa.optional()})),notes:er(wo()),serials:er(nr({value:wo(),is_replacement:Vo(),is_replaced:Vo()}))}).nullable(),deliveredAt:Fa,deliveryStatus:dr(["PENDING","AWAITING_FULFILLMENT","DELIVERED","FAILED"]),customFields:Za.nullable(),product:nr({uniqid:wo(),slug:Fa,serviceText:Fa,attachment_imageId:nr({cloudflareImageId:Fa}).nullable()}).nullable()})),currentPayment:Ga.nullable(),payments:er(Ga)}),Xa=(nr({quote:nr({enabled:Vo(),currency:wo(),min_amount:wo(),max_amount:Fa,bonus_tiers:er(nr({min_amount:wo(),bonus_percent:Bo()}))})}),nr({invoice_id:wo(),url:wo()}),nr({id:wo(),type:wo(),status:wo(),amount:Fa,currency:Fa,coupon_code:Fa,reason:wo(),trigger_reference_type:wo(),trigger_reference_id:wo(),created_at:Bo(),fulfilled_at:Bo().nullable(),expires_at:Bo().nullable()})),Qa=nr({summary:nr({available:wo(),pending:wo(),lifetime_earned:wo(),redeemed:Fa,currency:wo()}),activity:er(Xa),earned_after_invoice:er(Xa),pending_after_invoice:er(Xa)}),es=nr({id:wo(),uniqid:wo(),label:Fa,code:wo(),url:Fa,status:dr(["pending","active","inactive","rejected"]),is_primary:Vo(),total_clicks:Bo(),total_sales:Bo(),total_revenue:wo(),is_active:Vo(),is_approved:Vo(),requested_affiliate_revenue_percent:Bo().nullable(),requested_affiliate_customer_discount_percent:Bo().nullable(),affiliate_revenue_percent_override:Bo().nullable(),affiliate_customer_discount_percent_override:Bo().nullable(),effective_commission_percent:Bo(),effective_customer_discount_percent:Bo(),commission_shareback_percent:Bo(),commission_shareback_enabled:Vo(),max_commission_shareback_percent:Bo(),created_at:Fa,updated_at:Fa}),ts=nr({customer:nr({id:wo(),email:wo(),name:Fa}).nullable(),state:wo(),can_create_custom_links:Vo(),custom_link_request_disabled_reason:Fa,custom_links_require_approval:Vo(),affiliate_codes_accepted_at_checkout:Vo(),cash_payout_enabled:Vo(),links:er(es),preferred_payout:nr({asset:wo(),network:wo(),address:wo()}).nullable(),balance_currency:wo(),balances:nr({pending:wo(),available:wo(),requested:wo(),converted:wo(),paid:wo(),approved_total:wo()}),commissions:er(nr({id:wo(),invoice_id:wo(),commission_amount:wo(),base_amount:wo(),discount_amount:wo(),status:wo(),created_at:Fa,paid_at:Fa,converted_at:Fa})),claims:er(nr({id:wo(),type:wo(),status:wo(),amount:wo(),currency:wo(),allocations:er(nr({source_type:wo(),commission_id:Fa,adjustment_id:Fa,amount:wo()})),wallet_transaction_id:Fa,payout_asset:Fa,payout_network:Fa,payout_address:Fa,note:Fa,metadata:Go(),completed_at:Fa,rejected_at:Fa,cancelled_at:Fa,created_at:Fa,updated_at:Fa}))}),ns=nr({uniqid:wo(),status:wo(),gateway:wo(),current_period_start:wo(),current_period_end:wo(),trial_end:Fa,cancel_at_period_end:Vo(),canceled_at:Fa,created_at:wo(),plan:nr({id:wo(),uniqid:wo(),name:wo(),price:wo(),currency:wo(),interval:wo(),interval_count:Bo(),trial_days:Bo()}).nullable(),payment_method:nr({id:wo(),gateway:wo(),type:wo(),card_brand:Fa,card_last4:Fa,card_exp_month:Bo().nullable(),card_exp_year:Bo().nullable(),is_default:Vo()}).nullable(),actions:nr({can_pause:Vo(),can_resume:Vo(),can_cancel:Vo(),can_manage_payment_method:Vo()})}),os=nr({enabled:Vo(),account:nr({points_balance:Bo(),lifetime_points:Bo()}).nullable(),settings:nr({earn_rate_per_usd:Bo(),redeem_value_per_point:Bo(),min_redeem_points:Bo()}).nullable(),transactions:er(nr({type:dr(["EARN_ORDER","EARN_REVIEW","REDEEM","ADJUST"]),points:Bo(),balance_after:Bo(),description:Fa,created_at:wo()}))}),rs=nr({redeemed_points:Bo(),wallet_amount:wo(),currency:wo(),points_balance:Bo(),replayed:Vo()}),is=nr({uniqid:wo(),invoice_uniqid:wo(),product_title:wo(),period_days:Bo(),starts_at:wo(),expires_at:wo(),status:dr(["ACTIVE","EXPIRED","VOIDED"]),claim_status:dr(["REQUESTED","APPROVED","DENIED"]).nullable(),created_at:wo()}),as=nr({warranties:er(is)}),ss=nr({warranty:is.extend({claim_status:fr("REQUESTED")})}),ls=(nr({customer:nr({id:wo(),email:wo(),name:wo(),joined_at:Fa})}),nr({avatar_url:Fa}),nr({global_unsubscribed:Vo(),lists:er(nr({id:wo(),name:wo(),description:Fa,subscribed:Vo()}))}),nr({updated:Vo()}),nr({order_created_emails:Vo(),order_completed_emails:Vo(),payment_issue_emails:Vo()}),nr({favorites:er(nr({product_uniqid:wo(),title:wo(),slug:Fa,image_url:Fa,price_display:Bo(),unavailable:Vo(),created_at:wo()}))}),rr([nr({added:fr(!0)}),nr({removed:fr(!0)})]),nr({license:nr({uniqid:wo(),hardware_id:Fa})}),nr({invoice_id:wo(),checkout_url:wo(),preferred_gateways:er(wo()),license:nr({uniqid:wo(),product_title:wo()})}),nr({invoices:er(nr({id:wo(),uniqid:wo(),total:wo(),currency:wo(),status:wo(),gateway:wo(),created_at:wo(),completed_at:wo()}))}),nr({subscription:nr({id:wo(),status:wo(),cancel_at_period_end:Vo(),cancel_reason:Fa,canceled_at:Fa})}),nr({subscription:nr({id:wo(),status:wo()})}),nr({ticket:nr({uniqid:wo(),title:wo(),status:wo(),invoice_id:Fa,created_at:wo(),updated_at:wo(),messages:er(nr({id:wo(),role:dr(["CUSTOMER","SHOP","SYSTEM"]),message:wo(),created_at:wo()}))})}),nr({uniqid:wo()}),nr({affiliate_link:nr({id:wo(),customer_id:wo(),label:Fa,code:wo(),url:Fa,status:dr(["pending","approved","rejected"]),requested_affiliate_revenue_percent:Bo().nullable(),requested_affiliate_customer_discount_percent:Bo().nullable(),created_at:wo(),updated_at:wo()})}),nr({check:wo(),passed:Vo(),reason:Fa.optional()})),us=(nr({eligible:Vo(),decision:dr(["ELIGIBLE","DENIED","NO_RULE"]),reason:Fa,eligibility_checks:er(ls)}),nr({request_id:wo(),event_id:Fa,decision:dr(["ISSUED_REPLACEMENT","FALLBACK_REFUND","FALLBACK_CREDIT","QUEUED_MANUAL","DENIED","EXHAUSTED","FAILED"]),status_label:dr(["ISSUED","REFUNDED","CREDITED","QUEUED_MANUAL","DENIED","EXHAUSTED","FAILED","PENDING"]),reason:Fa,eligibility_checks:er(ls)}),nr({id:wo(),name:Fa,discount_percent:Bo().nullable()})),cs=nr({id:wo(),status:dr(["INVITED","APPLIED","ACTIVE","SUSPENDED","REJECTED"]),tier:us.nullable(),application_note:Fa,lifetime_revenue:wo(),lifetime_orders:Bo(),approved_at:Fa,created_at:wo()}),ds=(nr({program_enabled:Vo(),enrollment_mode:dr(["MANUAL","APPLICATION","OPEN"]),application_message:Fa,require_application_note:Vo(),reseller:cs.nullable()}),nr({reseller:cs}),dr(["variant","product","tier"])),ps=nr({variant_id:wo(),title:wo(),stock:Bo(),supplier_backed:Vo(),orderable:Vo(),base_price:wo(),unit_price:wo(),discount_percent:Bo(),applied_override:ds}),fs=(nr({tier:us,catalog:nr({currency:wo(),total:Bo(),page:Bo(),per_page:Bo(),items:er(nr({product_id:wo(),uniqid:wo(),title:wo(),type:wo(),stock:Bo(),supplier_backed:Vo(),orderable:Vo(),volume_discount_enabled:Vo(),base_price:wo(),unit_price:wo(),discount_percent:Bo(),applied_override:ds,variants:er(ps)}))})}),nr({quote:nr({currency:wo(),tier:us,items:er(nr({product_id:wo(),product_title:wo(),product_type:wo(),variant_id:Fa,variant_title:Fa,quantity:Bo(),base_price:wo(),discount_percent:Bo(),unit_price:wo(),line_total:wo(),applied_override:ds,volume_discount_applied:wo()})),subtotal:wo(),volume_discount_total:wo(),total:wo(),savings:wo()})}),nr({orders:nr({total:Bo(),page:Bo(),per_page:Bo(),items:er(nr({uniqid:wo(),status:wo(),currency:wo(),total:wo(),item_count:Bo(),created_at:wo()}))})}),nr({order:nr({uniqid:wo(),status:wo(),currency:wo(),total:wo(),item_count:Bo(),created_at:wo(),tier_name:wo(),tier_discount_percent:Bo(),partially_delivered:Vo(),refunded_amount:Fa,lines:er(nr({product_id:Fa,product_title:wo(),variant_id:Fa,variant_title:Fa,quantity:Bo(),unit_price:wo(),total:wo(),delivered:Vo(),delivered_at:Fa,serials:er(wo())}))})}),nr({wallet:nr({currency:wo(),balance:wo(),hold_balance:wo(),available:wo(),is_active:Vo()})}),nr({api_keys:er(nr({id:wo(),name:wo(),key_last4:wo(),last_used_at:Fa,revoked_at:Fa,created_at:wo()}))}),nr({topup:nr({uniqid:wo(),url:wo()})}),nr({shop:nr({id:wo(),slug:wo(),name:wo(),currency:wo(),branding:Ba}),customer:nr({email:wo(),name:wo()}),stats:nr({invoices_count:Bo(),licenses_count:Bo(),deliverables_count:Bo(),tickets_count:Bo()}),wallet:nr({available:wo(),total:wo(),hold:wo(),currency:wo(),enabled:Vo()}).nullable(),rewards:Qa,affiliate:ts,invoices:er(Wa),subscriptions:er(ns),licenses:er(nr({uniqid:wo(),invoice_id:wo(),status:wo(),license_key:wo(),hardware_id:Fa,expires_at:Bo().nullable(),renewable:Vo(),product:nr({title:wo().optional()}).optional()})),deliverables:er(nr({id:wo(),invoice_uniqid:wo(),product_title:wo(),kind:dr(["file","serial","license"]),label:wo(),value:wo(),href:Fa,created_at:wo()})),tickets:er(nr({uniqid:wo(),title:wo(),status:wo(),updated_at:wo(),created_at:Fa}))}));var ms=null,_s=null;var hs=null,ys=null;function gs(e,t){const n=t?.shopId?.trim();ys=n||null;const o=hs?.locale;return o!==(hs={storeSlug:e,locale:t?.locale,currency:t?.currency,apiBaseUrl:t?.apiBaseUrl??"https://api.shoppex.io",checkoutBaseUrl:t?.checkoutBaseUrl??"https://checkout.shoppex.io"}).locale&&r(),ms=null,_s=null,hs}function bs(){if(!hs)throw new l;return hs}function vs(){return null!==hs}function ws(e){ys=e}function Ss(){return ys}function ks(e){const t=e?.trim().toLowerCase()??"";return"true"===t||"1"===t||"yes"===t||"on"===t}var Es=-1;function Os(e,t,n){return!0!==t?e:!0===n?Es:0!==e?e:Es}function xs(e){return"number"==typeof e&&Number.isFinite(e)?Math.trunc(e):null}function Ts(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 As(e){return Os(xs(e?.stock)??Es,e?.orderable,e?.supplier_backed)}function zs(e){if(!e)return Es;if("string"==typeof e.type&&"SERIALS"===e.type.toUpperCase())return Os(xs(e.stock)??Es,e.orderable,e.supplier_backed);const t=function(e){const t=Array.isArray(e.price_variants)?e.price_variants:[];return t.length>0?t.map(e=>As(e)):(Array.isArray(e.variants)?e.variants:[]).map(e=>As(e))}(e);return t.length>0?t.some(e=>e<0)?Es:Os(t.reduce((e,t)=>e+Math.max(t,0),0),e.orderable,e.supplier_backed):Os(xs(e.stock)??Es,e.orderable,e.supplier_backed)}function Is(e){return!!function(e){return!!e&&(Ts(e.on_hold)||Ts(e.onHold)||Ts(e.is_on_hold)||Ts(e.isOnHold))}(e)||0===zs(e)}function Ps(e){return!Is(e)}function Cs(e=[]){const t=new Map;for(const n of e)n?.uniqid&&!t.has(n.uniqid)&&t.set(n.uniqid,n);return t}function Ns(e,t=[]){const n=t instanceof Map?t:Cs(t);return(e.product_uniqids??[]).flatMap(e=>{const t=n.get(e);return t?[t]:[]})}function $s(e=[]){return Array.from(Cs(e).values())}function Rs(e){return e?e.replace(/<[^>]*>/g," ").replace(/\s+/g," ").trim():""}function Us(e){return e.trim().toLowerCase()}function qs(e,t){const n=Rs(t).toLowerCase();n&&e.push(n)}function Ds(e){const t=[];qs(t,e.title),qs(t,e.slug??void 0),qs(t,e.description);for(const n of e.product_highlights??[])qs(t,n);for(const n of e.variants??[])qs(t,n.title);for(const n of e.price_variants??[])qs(t,n.title??n.label);return t}function Ls(e,t){const n=Us(t);return!!n&&Ds(e).some(e=>e.includes(n))}function js(e,t){const n=Us(t);if(!n)return!1;const o=Rs(e.title).toLowerCase(),r=Rs(e.slug??e.name??void 0).toLowerCase(),i=Rs(e.description).toLowerCase();return o.includes(n)||r.includes(n)||i.includes(n)}function Ms(e,t){return 0!==e.length&&(!t||e.some(e=>Ps(e)))}function Fs(e,t,n,o){const r=Us(n);if(!r)return[];const i=!0===o?.hideOutOfStock,a=new Set,s=new Set,l=[],u=Cs(e);for(const d of t){const e=d.uniqid??d.id;if(!e||s.has(e))continue;if(!js(d,r))continue;const t=Ns(d,u);if(Ms(t,i)){s.add(e);for(const e of t)e?.uniqid&&a.add(e.uniqid);l.push({type:"group",group:d,products:t})}}const c=$s(e);for(const d of c)d?.uniqid&&!a.has(d.uniqid)&&Ls(d,r)&&(i&&!Ps(d)||(a.add(d.uniqid),l.push({type:"product",product:d})));return null!=o?.maxResults?l.slice(0,o.maxResults):l}function Zs(e,t,n,o){const r=Fs(e,t,n,o),i=new Set,a=[],s=e=>{e?.uniqid&&!i.has(e.uniqid)&&(o?.hideOutOfStock&&!Ps(e)||(i.add(e.uniqid),a.push(e)))};for(const l of r)if("product"!==l.type)for(const e of l.products)s(e);else s(l.product);return null!=o?.maxResults?a.slice(0,o.maxResults):a}function Bs(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 Js(e){const t=e.name?.trim()??"",n=`${t?`Name: ${t}\n\n`:""}${e.message.trim()}`,o=e.maxLength??2e3;return n.slice(0,o)}var Ys=/:([A-Za-z0-9_]+)/g;function Ws(e,t){return e.replace(Ys,(e,n)=>{const o=t[n];if(null==o)throw new Error(`Missing endpoint param: ${n}`);const r=String(o).trim();if(!r)throw new Error(`Endpoint param "${n}" must not be empty`);return encodeURIComponent(r)})}function Vs(e){return`shoppex_${e}`}function Hs(e){try{const t=localStorage.getItem(Vs(e));return t?JSON.parse(t):null}catch{return null}}function Gs(e,t){try{localStorage.setItem(Vs(e),JSON.stringify(t))}catch{console.warn("[shoppex] Failed to save to localStorage")}}function Ks(e){try{localStorage.removeItem(Vs(e))}catch{}}function Xs(e){if("undefined"==typeof window)return null;const t=`presence_connection_${e}`,n=Hs(t);if(n&&n.trim())return n;const o="undefined"!=typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`spx_${Math.random().toString(36).slice(2)}${Date.now().toString(36)}`;return Gs(t,o),o}async function Qs(e){if(!vs())return;if("undefined"==typeof window)return;if(function(e){const t=`client_error_${function(e){return[e.method,e.endpoint,e.statusCode??"none",e.message.trim().toLowerCase(),e.responseReceived?"response":"no-response"].join("|")}(e)}`,n=Date.now(),o=Hs(t);return"number"==typeof o&&n-o<15e3||(Gs(t,n),!1)}(e))return;const t=bs(),n=Ss(),o=n?Ws("/v1/storefront/shops/id/:id/ping",{id:n}):Ws("/v1/storefront/shops/:storeSlug/ping",{storeSlug:t.storeSlug}),r=JSON.stringify({event_type:"client_error",referer:document.referrer||void 0,connection_id:Xs(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)}}),i=`${t.apiBaseUrl}${o}`;try{if("undefined"!=typeof navigator&&"function"==typeof navigator.sendBeacon){const e=new Blob([r],{type:"application/json"});if(navigator.sendBeacon(i,e))return}await fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:r,keepalive:!0})}catch{}}var el=1e4;async function tl(e){return new Promise(t=>setTimeout(t,e))}async function nl(e,t={}){const n=t.baseUrl?null:bs(),o=n??(vs()?bs():null),{method:r="GET",body:i,timeout:l=el,retries:d,baseUrl:p,cache:f}=t,m=d??("GET"===r?2:0),_=`${p??n?.apiBaseUrl??""}${e}`,h={"Content-Type":"application/json",Accept:"application/json"};"string"==typeof o?.locale&&o.locale.trim()&&(h["x-shoppex-locale"]=o.locale.trim());let y=null;const g=async()=>{for(let t=0;t<=m;t++)try{const e=new AbortController,t=setTimeout(()=>e.abort(),l),n=await fetch(_,{method:r,headers:h,body:i?JSON.stringify(i):void 0,signal:e.signal});clearTimeout(t);const o=await ol(n);if(!n.ok){const e=n.statusText?`HTTP ${n.status}: ${n.statusText}`:`HTTP ${n.status}`,t=(o.data&&"object"==typeof o.data&&"error"in o.data&&"string"==typeof o.data.error?o.data.error:null)??(o.data&&"object"==typeof o.data&&"message"in o.data&&"string"==typeof o.data.message?o.data.message:null)??o.rawText??e,r=il(o.data);if(r.code)throw new c(t,r.code,n.status,r.errorParams);throw new u(t,n.status)}if(204===n.status&&null===o.data)return{success:!0};if(!o.data||"object"!=typeof o.data||!("status"in o.data))throw new u("Invalid API response",n.status);return rl(o.data)}catch(e){let n=e instanceof Error?e:new Error(String(e));e instanceof DOMException&&"AbortError"===e.name&&(n=new u("Request timeout",408));const o=n instanceof s?n.statusCode:void 0;if(y={message:n.message,statusCode:o,isTransport:void 0===o||408===o,...n instanceof c?{code:n.code,...n.errorParams?{errorParams:n.errorParams}:{}}:{}},n instanceof c&&void 0!==o&&o>=400&&o<500&&408!==o)break;if(t<m){await tl(500*Math.pow(2,t));continue}}return{success:!1,message:y?.message??"Unknown error",...y?.code?{code:y.code}:{},...y?.errorParams?{errorParams:y.errorParams}:{}}},b="GET"===r&&f&&f.ttl>0?await a(f.key??`GET:${_}`,g,{ttl:f.ttl,staleWhileRevalidate:f.staleWhileRevalidate},e=>e.success):await g(),v=y;return!b.success&&v?.isTransport&&await Qs({endpoint:e,method:r,message:b.message??v.message,statusCode:v.statusCode,attemptCount:m+1,requestUrl:_,responseReceived:void 0!==v.statusCode&&408!==v.statusCode}),b}async function ol(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 rl(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}`,...il(e)}}function il(e){if(!e||"object"!=typeof e)return{};const t=e,n="string"==typeof t.error_code&&t.error_code.length>0?t.error_code:null;if(!n)return{};const o=t.error_params;return{code:n,...o&&"object"==typeof o&&!Array.isArray(o)?{errorParams:o}:{}}}async function al(e,t){return nl(e,{...t,method:"GET"})}async function sl(e,t,n){return nl(e,{...n,method:"POST",body:t})}var ll=3e5;async function ul(){const e=bs(),t=await al(Ws("/v1/storefront/shops/name/:storeSlug",{storeSlug:e.storeSlug}),{cache:{key:`store:${e.storeSlug}`,ttl:ll,staleWhileRevalidate:!0}});return t.success&&t.data?(t.data.shop?.id&&ws(t.data.shop.id),{success:!0,data:t.data.shop}):{success:!1,message:t.message}}async function cl(e){const t=bs(),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()}`:"",r=await al(`${Ws("/v1/storefront/shops/name/:storeSlug",{storeSlug:t.storeSlug})}${o}`,{cache:{key:`storefront:${t.storeSlug}:${e?.productsLimit??"full"}:${e?.productsCursor??"start"}`,ttl:ll,staleWhileRevalidate:!0}});return r.success&&r.data?(r.data.shop?.id&&ws(r.data.shop.id),{success:!0,data:{shop:r.data.shop,products:r.data.products??[],products_pagination:r.data.products_pagination??null,groups:r.data.groups??[],items:r.data.items??[],categories:r.data.categories??[],addons:r.data.addons??{items:[]}}}):{success:!1,message:r.message}}var dl=12e4;function pl(e){if(e.variants&&e.variants.length>0)return e;const t=e.price_variants;return Array.isArray(t)&&0!==t.length?{...e,variants:t.map(e=>function(e){return{id:e.id,title:e.title??e.label??"",price:"number"==typeof e.price?e.price:Number(e.price)||0,stock:"number"==typeof e.stock?e.stock:void 0,orderable:"boolean"==typeof e.orderable?e.orderable:void 0,supplier_backed:"boolean"==typeof e.supplier_backed?e.supplier_backed:void 0,quantity_min:e.quantity_min,quantity_max:e.quantity_max,quantityMin:e.quantityMin,quantityMax:e.quantityMax,image_id:e.image_id,imageId:e.imageId,cloudflare_image_id:e.cloudflare_image_id,cloudflareImageId:e.cloudflareImageId,image_url:e.image_url,imageUrl:e.imageUrl}}(e))}:e}async function fl(){const e=bs(),t=await al(Ws("/v1/storefront/products/public/:storeSlug",{storeSlug:e.storeSlug}),{cache:{key:`products:${e.storeSlug}`,ttl:dl,staleWhileRevalidate:!0}});return t.success&&t.data?{success:!0,data:$s(t.data.products.map(pl))}:{success:!1,message:t.message,data:[]}}var ml="shoppex:affiliate_code:v1";function _l(){return Date.now()}function hl(e){const t=e?.trim().toLowerCase();return t||null}function yl(e,t=30){const n=hl(e);return n?(function(e){if("undefined"!=typeof window)try{window.localStorage.setItem(ml,JSON.stringify(e))}catch{}}({code:n,expiresAt:_l()+(o=t,24*Math.max(1,o)*60*60*1e3)}),n):(gl(),null);var o}function gl(){if("undefined"!=typeof window)try{window.localStorage.removeItem(ml)}catch{}}function bl(){const e=function(){if("undefined"==typeof window)return null;try{const e=window.localStorage.getItem(ml);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<=_l()?(gl(),null):hl(e.code):null}async function vl(e){const t=hl(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=bs(),o=await sl("/v1/storefront/affiliates/resolve",{shop_slug:n.storeSlug,code:t},{retries:0});if(!o.success)return o;if(!o.data?.valid||!o.data.affiliate_code){const e=!1===o.data?.program_enabled;return{success:!1,data:{valid:!1,...void 0!==o.data?.program_enabled?{program_enabled:o.data.program_enabled}:{},affiliate_code:null,discount_active:!1,discount_percent:0},message:o.message??(e?"Affiliate program is disabled for this shop.":"Invalid affiliate code.")}}return{success:!0,data:{valid:!0,...void 0!==o.data.program_enabled?{program_enabled:o.data.program_enabled}:{},affiliate_code:hl(o.data.affiliate_code),discount_active:Boolean(o.data.discount_active),discount_percent:Number(o.data.discount_percent??0)},...o.message?{message:o.message}:{}}}function wl(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 Sl(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:wl(e.custom_fields),unit_price:"number"==typeof e.price_data?.unit_price&&Number.isFinite(e.price_data.unit_price)?e.price_data.unit_price:null,pay_what_you_want_price:"number"==typeof e.pay_what_you_want_price&&Number.isFinite(e.pay_what_you_want_price)?e.pay_what_you_want_price:null};var n;return function(e){let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24);return(t>>>0).toString(16)}(JSON.stringify(t))}function kl(e){return"string"==typeof e.line_id&&e.line_id.trim()?e:{...e,line_id:Sl(e)}}function El(e){const t=e?.trim().toUpperCase();return t&&/^[A-Z]{3}$/.test(t)?t:null}function Ol(){if("undefined"==typeof window||!window.location)return null;const e="string"==typeof window.location.search?window.location.search:"";if(e)return El(new URLSearchParams(e).get("currency"));const t="string"==typeof window.location.href?window.location.href:"";if(!t)return null;try{return El(new URL(t,"https://storefront.shoppex.local").searchParams.get("currency"))}catch{return null}}var xl={cart:"cart",cartBackup:"cart_backup",meta:"cart_meta",metaBackup:"cart_backup_meta",coupon:"cart_coupon",couponBackup:"cart_coupon_backup"};function Tl(e){return`${xl[e]}_${bs().storeSlug}`}function Al(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 zl(e){if(!Number.isFinite(e))throw new d("quantity must be a finite number");return Math.floor(e)}function Il(e){const t=e?.trim().toUpperCase();return t||null}function Pl(){const e=Hs(Tl("coupon"));if(!e||"object"!=typeof e||Array.isArray(e))return null;const t=e,n="string"==typeof t.code?Il(t.code):null,o="COUPON"===t.source||"AFFILIATE"===t.source?t.source:null;return n&&o?{code:n,source:o}:null}function Cl(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():"",r="string"==typeof e.variant_id?e.variant_id.trim():"",i=Number(e.quantity);if(!o||!r||!Number.isFinite(i)||i<1)continue;const a={line_id:"",product_id:o,variant_id:r,quantity:Math.floor(i)};if("string"==typeof e.price_variant_id&&(a.price_variant_id=e.price_variant_id),e.price_data&&"object"==typeof e.price_data){const t=e.price_data;"number"==typeof t.unit_price&&Number.isFinite(t.unit_price)&&(a.price_data={unit_price:t.unit_price})}"number"==typeof e.pay_what_you_want_price&&Number.isFinite(e.pay_what_you_want_price)&&(a.pay_what_you_want_price=e.pay_what_you_want_price),Array.isArray(e.addons)&&(a.addons=e.addons),e.custom_fields&&"object"==typeof e.custom_fields&&!Array.isArray(e.custom_fields)&&(a.custom_fields=e.custom_fields),"string"==typeof e.title&&(a.title=e.title),"string"==typeof e.variant_title&&(a.variant_title=e.variant_title),"string"==typeof e.image_url&&(a.image_url=e.image_url),Array.isArray(e.addon_labels)&&(a.addon_labels=e.addon_labels.filter(e=>"string"==typeof e)),"number"==typeof e.max_quantity&&Number.isFinite(e.max_quantity)&&(a.max_quantity=e.max_quantity),"number"==typeof e.min_quantity&&Number.isFinite(e.min_quantity)&&(a.min_quantity=e.min_quantity),Ml(a),a.line_id=("string"==typeof e.line_id?e.line_id.trim():"")||Sl(a),t.push(kl(a))}return t}function Nl(){return Hs(Tl("meta"))}function $l(){return Pl()?.code??null}function Rl(){return Pl()?.source??null}function Ul(e,t="COUPON"){const n=Il(e);return n?(Gs(Tl("coupon"),{code:n,source:t}),n):(Ks(Tl("coupon")),null)}function ql(){Ks(Tl("coupon"))}function Dl(e){const t=Cl(e);Gs(Tl("cart"),t);const n=Date.now(),o=Nl(),r={created_at:o?.created_at??n,last_modified:n,version:(o?.version??0)+1,checksum:Al(t)};Gs(Tl("meta"),r),0===t.length&&ql()}function Ll(e,t){const n=Cl(e);Gs(Tl("cart"),n);const o=Date.now(),r=t??Nl(),i={created_at:r?.created_at??o,last_modified:o,version:r?.version??1,checksum:Al(n)};Gs(Tl("meta"),i)}function jl(){return Cl(Hs(Tl("cart")))}function Ml(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 Fl(){Ks(Tl("cart")),Ks(Tl("meta")),ql(),Yl=null,Wl+=1}function Zl(){const e=jl();Gs(Tl("cartBackup"),e);const t=Pl();t?Gs(Tl("couponBackup"),t):Ks(Tl("couponBackup"));const n=Nl();if(n)Gs(Tl("metaBackup"),n);else{const t=Date.now();Gs(Tl("metaBackup"),{created_at:t,last_modified:t,version:1,checksum:Al(e)})}}function Bl(){const e=jl(),t=Nl(),n=Al(e);return t?t.checksum===n:(Ll(e,null),!0)}function Jl(){const e=$l();return"AFFILIATE"===Rl()&&e?e.trim().toLowerCase():bl()}var Yl=null,Wl=0;function Vl(){return Yl}var Hl="Your cart changed while checkout was starting. Please review it and try again.";function Gl(e,t){return void 0!==t&&JSON.stringify(e)!==t}function Kl(e){const t=e?.trim();return t||null}function Xl(e){const t=e?.trim();return t||null}function Ql(e){return"/dashboard/api/checkout"===e.customerCheckoutPath&&"undefined"!=typeof window&&"string"==typeof window.location?.origin?{endpoint:e.customerCheckoutPath,baseUrl:window.location.origin}:{endpoint:"/v1/storefront/invoices/from-cart"}}function eu(e){return El(e.currency)??Ol()??El(bs().currency)}function tu(e){const t=e?.trim()??"";if(!t)return"Checkout failed. Please try again.";if(nu(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 nu(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 ou(e,t,n){const o=t?.trim();if(!o)return null;try{const t=new URL(e),r=new URL(o);if(t.origin!==r.origin)return null;const i=t.pathname.replace(/\/+$/,""),a=`${r.pathname.replace(/\/+$/,"")}/invoice/`.replace(/\/{2,}/g,"/");if(!i.startsWith(a))return null;const s=i.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 ru(e,t){const n=Xl(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 iu(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 r=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!r&&o&&n&&(r=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&&r?{invoiceId:o,checkoutUrl:r,rewards:e?.rewards??n?.rewards??null}:null}function au(e,t){return"string"==typeof e?{...t,coupon:e}:e??t??{}}function su(e,t){const n=e.affiliateCode??e.referralCode;if("string"==typeof n){const e=n.trim().toLowerCase();return e.length>0?e:null}return t?.trim().toLowerCase()??bl()}function lu(e){const t=$l(),n=Rl();return{coupon:void 0===e.coupon?"COUPON"===n?t:null:Kl(e.coupon),affiliateCode:su(e,void 0===e.coupon&&"AFFILIATE"===n?t:null)}}function uu(e){const t=e=>{const t=e?.trim();return t?"default"===t.toLowerCase()?null:t:null};return e.map(e=>({product_id:e.product_id,variant_id:t(e.variant_id),quantity:e.quantity,addons:e.addons?.map(e=>({id:e.id,quantity:e.quantity??1})),custom_fields:e.custom_fields,price_variant_id:e.price_variant_id||null,pay_what_you_want_price:e.pay_what_you_want_price}))}function cu(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 du(...e){for(const t of e)if("string"==typeof t&&t.length>0)return t}function pu(e,t){const n=e,o=cu(n.rating)??cu(n.score)??0,r=du(n.comment,n.message),i=du(n.author,n.customer_name),a=n.created_at??n.createdAt,s="number"==typeof a||"string"==typeof a?String(a):"",l=du(n.id,n.uniqid)??`review:${s||t}`;return{...n,id:l,rating:o,...r?{comment:r}:{},...i?{author:i}:{},created_at:s}}async function fu(e){const t=bs(),n=new URLSearchParams;n.set("limit",String(100)),"string"==typeof e&&e.trim().length>0&&n.set("cursor",e);const o=`?${n.toString()}`,r=await al(`${Ws("/v1/storefront/feedback/shop/:storeSlug",{storeSlug:t.storeSlug})}${o}`,{cache:{key:`reviews:${t.storeSlug}:${e??"start"}:100`,ttl:12e4,staleWhileRevalidate:!0}});return r.success&&r.data?{success:!0,data:{...r.data,feedback:r.data.feedback.map(pu)}}:{success:!1,message:r.message}}function mu(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function _u(e,t){return"string"==typeof e.error&&e.error.length>0?e.error:"string"==typeof e.message&&e.message.length>0?e.message:t.statusText?`HTTP ${t.status}: ${t.statusText}`:`HTTP ${t.status}`}function hu(e){const t="string"==typeof e.error_code&&e.error_code.length>0?e.error_code:null;return t?{code:t,...mu(e.error_params)?{errorParams:e.error_params}:{}}:{}}async function yu(e,t={}){const n=t.method??"GET",o={Accept:"application/json"};void 0!==t.body&&(o["Content-Type"]="application/json");const r=t.formData??(void 0!==t.body?JSON.stringify(t.body):void 0);try{const a=await fetch(`/api/customer${e}`,{method:n,headers:o,body:r,credentials:"same-origin",cache:"no-store"});if(204===a.status)return a.ok?{success:!0,status:a.status}:{success:!1,status:a.status,message:_u({status:a.status,data:null},a)};let s;try{s=await a.json()}catch{return{success:!1,status:a.status,message:"Invalid customer API response"}}const l=mu(i=s)&&"number"==typeof i.status&&"data"in i?i:null;if(!l)return{success:!1,status:a.status,message:"Invalid customer API response"};if(!a.ok||l.status<200||l.status>=300)return{success:!1,status:a.status,message:_u(l,a),...hu(l)};const u="string"==typeof l.message&&l.message.length>0?{message:l.message}:{};if(!t.schema)return{success:!0,data:l.data,...u};const c=t.schema.safeParse(l.data);return c.success?{success:!0,data:c.data,...u}:{success:!1,message:"Customer API response did not match the expected contract"}}catch(a){return{success:!1,message:a instanceof Error?a.message:String(a)}}var i}function gu(e){return yu("/auth/otp/request",{method:"POST",body:{email:e}})}function bu(e,t){return yu("/auth/otp/verify",{method:"POST",body:{email:e,otp:t}})}function vu(){return yu("/auth/logout",{method:"POST"})}function wu(){return yu("/me")}function Su(){return yu("/dashboard",{schema:fs})}function ku(e={}){const t=new URLSearchParams;return void 0!==e.page&&t.set("page",String(e.page)),void 0!==e.limit&&t.set("limit",String(e.limit)),e.status&&t.set("status",e.status),e.search&&t.set("q",e.search),yu("/invoices"+(t.size>0?`?${t.toString()}`:""),{schema:Ha})}function Eu(e){return yu(`/invoice/${encodeURIComponent(e)}`,{schema:Ka})}function Ou(){return yu("/loyalty",{schema:os})}function xu(e){return yu("/loyalty/redeem",{method:"POST",body:{points:e.points,idempotency_key:e.idempotencyKey},schema:rs})}function Tu(e){return yu("/warranties"+(e?`?invoice=${encodeURIComponent(e)}`:""),{schema:as})}function Au(e,t){return yu(`/warranties/${encodeURIComponent(e)}/claim`,{method:"POST",body:t?{message:t}:{},schema:ss})}function zu(e){return yu(`/licenses/${encodeURIComponent(e)}/reset-hwid`,{method:"POST",body:{}})}function Iu(e){return yu(`/subscriptions/${encodeURIComponent(e)}/billing-history`)}function Pu(e,t={}){return yu(`/subscriptions/${encodeURIComponent(e)}/cancel`,{method:"POST",body:{...void 0!==t.cancel_at_period_end?{cancel_at_period_end:t.cancel_at_period_end}:{},...void 0!==t.reason?{reason:t.reason}:{}}})}function Cu(e){return yu(`/subscriptions/${encodeURIComponent(e)}/pause`,{method:"POST",body:{}})}function Nu(e){return yu(`/subscriptions/${encodeURIComponent(e)}/resume`,{method:"POST",body:{}})}function $u(){return yu("/favorites")}function Ru(e){return yu(`/favorites/${encodeURIComponent(e)}`,{method:"PUT"})}function Uu(e){return yu(`/favorites/${encodeURIComponent(e)}`,{method:"DELETE"})}function qu(){return yu("/affiliate")}function Du(e){return yu("/tickets",{method:"POST",body:{...void 0!==e.title?{title:e.title}:{},message:e.message,...void 0!==e.invoice_id?{invoice_id:e.invoice_id}:{}}})}function Lu(e){return yu(`/tickets/${encodeURIComponent(e)}`)}function ju(e,t){return yu(`/tickets/${encodeURIComponent(e)}/reply`,{method:"POST",body:{message:t}})}function Mu(e){return yu("/profile",{method:"POST",body:{name:e.name}})}function Fu(e){const t=new FormData;return t.append("file",e),yu("/profile/avatar",{method:"POST",formData:t})}function Zu(){return yu("/profile/avatar",{method:"DELETE"})}function Bu(){return yu("/email-marketing/preferences")}function Ju(e){return yu("/email-marketing/preferences",{method:"PATCH",body:{...void 0!==e.global_unsubscribed?{global_unsubscribed:e.global_unsubscribed}:{},...void 0!==e.list_subscriptions?{list_subscriptions:e.list_subscriptions}:{}}})}function Yu(){return yu("/sessions")}function Wu(e){return yu(`/sessions/${encodeURIComponent(e)}`,{method:"DELETE"})}function Vu(){return yu("/sessions?others=true",{method:"DELETE"})}function Hu(){return yu("/reseller")}function Gu(e){return yu("/reseller/apply",{method:"POST",body:void 0===e?{}:{note:e}})}function Ku(){return yu("/reseller/enroll",{method:"POST",body:{}})}function Xu(e){return yu("/reseller/accept-invite",{method:"POST",body:{token:e}})}function Qu(e={}){const t=new URLSearchParams;return void 0!==e.search&&t.set("search",e.search),void 0!==e.page&&t.set("page",String(e.page)),void 0!==e.per_page&&t.set("per_page",String(e.per_page)),yu("/reseller/catalog"+(t.size>0?`?${t.toString()}`:""))}function ec(e){return yu("/reseller/orders/quote",{method:"POST",body:{items:e}})}function tc(e={}){const t=new URLSearchParams;return void 0!==e.page&&t.set("page",String(e.page)),void 0!==e.per_page&&t.set("per_page",String(e.per_page)),yu("/reseller/orders"+(t.size>0?`?${t.toString()}`:""))}function nc(e){return yu(`/reseller/orders/${encodeURIComponent(e)}`)}function oc(){return yu("/reseller/wallet")}function rc(){return yu("/reseller/api-keys")}function ic(e){const t=e.trim();return t||null}var ac=3e5;var sc=3e5;async function lc(){const e=bs(),t=await al(Ws("/v1/storefront/shops/name/:storeSlug/menus",{storeSlug:e.storeSlug}),{cache:{key:`menus:${e.storeSlug}`,ttl:sc,staleWhileRevalidate:!0}});return t.success&&t.data?{success:!0,data:t.data.menus}:{success:!1,message:t.message}}async function uc(e){const t=bs(),n=await al(Ws("/v1/storefront/shops/name/:storeSlug/menus/:title",{storeSlug:t.storeSlug,title:e}),{cache:{key:`menu:${t.storeSlug}:${e}`,ttl:sc,staleWhileRevalidate:!0}});return n.success&&n.data?{success:!0,data:n.data.menu}:{success:!1,message:n.message}}async function cc(e){return uc(e)}async function dc(e){const t=bs(),n=await al(Ws("/v1/storefront/shops/name/:storeSlug/menus/:title",{storeSlug:t.storeSlug,title:e}),{cache:{key:`menu-slot:${t.storeSlug}:${e}`,ttl:sc,staleWhileRevalidate:!0}});return n.success&&n.data?{success:!0,data:n.data.menu}:{success:!1,message:n.message}}function pc(e){return function(e){const t=S[e];return[t.title,...t.aliases]}(e)}var fc=["utm_source","utm_medium","utm_campaign","utm_term","utm_content"];function mc(e){return`shoppex:utm:${e}`}function _c(e){if("undefined"==typeof window||void 0===window.location)return;const t=function(e){let t;try{t=new URLSearchParams(e)}catch{return{}}const n={};for(const o of fc){const e=t.get(o)?.trim();e&&(n[o]=e.slice(0,255))}return n}(window.location.search);if(Object.keys(t).length>0)return function(e,t){try{const n={utm:t,at:Date.now()};window.localStorage.setItem(mc(e),JSON.stringify(n))}catch{}}(e,t),t;const n=function(e){try{const t=window.localStorage.getItem(mc(e));if(!t)return{};const n=JSON.parse(t);if(!n||"number"!=typeof n.at||"object"!=typeof n.utm)return{};if(Date.now()-n.at>2592e6)return window.localStorage.removeItem(mc(e)),{};const o={};for(const e of fc){const t=n.utm?.[e];"string"==typeof t&&t.length>0&&(o[e]=t.slice(0,255))}return o}catch{return{}}}(e);return Object.keys(n).length>0?n:void 0}async function hc(e,t){if(!vs())return;if("undefined"==typeof document)return;const n=bs(),o=Xs(n.storeSlug);try{const r=Ws("/v1/storefront/shops/:storeSlug/ping",{storeSlug:n.storeSlug});await fetch(`${n.apiBaseUrl}${r}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({referer:document.referrer||void 0,cart_value:e??void 0,item_count:t??void 0,connection_id:o??void 0,utm:_c(n.storeSlug)})})}catch{}}async function yc(){if(!vs())return{success:!1,message:"SDK not initialized"};const e=bs(),t=Ss();return al(t?Ws("/v1/storefront/shops/id/:id/recent-sales",{id:t}):Ws("/v1/storefront/shops/:storeSlug/recent-sales",{storeSlug:e.storeSlug}),{cache:!1,retries:0,timeout:5e3})}async function gc(){if(!vs())return{success:!1,message:"SDK not initialized"};const e=bs(),t=Ss();return al(t?Ws("/v1/storefront/shops/id/:id/online-users",{id:t}):Ws("/v1/storefront/shops/:storeSlug/online-users",{storeSlug:e.storeSlug}),{cache:!1,retries:0,timeout:5e3})}async function bc(){if(!vs())return{success:!1,message:"SDK not initialized"};if("undefined"==typeof document)return{success:!1,message:"Document is not available"};const e=bs(),t=Ss();return sl(t?Ws("/v1/storefront/shops/id/:id/ping",{id:t}):Ws("/v1/storefront/shops/:storeSlug/ping",{storeSlug:e.storeSlug}),{referer:document.referrer||void 0,connection_id:Xs(e.storeSlug)??void 0,utm:_c(e.storeSlug)},{retries:0,timeout:5e3})}function vc(e,t){const n=bs();return new Intl.NumberFormat(t??n.locale??"en-US",{style:"currency",currency:e??n.currency??"USD",...La})}function wc(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function Sc(e){return wc(e)&&wc(e.theme)?{...e,version:"number"==typeof e.version?e.version:0,revision:"number"==typeof e.revision?e.revision:0,theme:{...e.theme,content:wc(e.theme.content)?e.theme.content:{},layout:wc(e.theme.layout)?e.theme.layout:{},style_slots:wc(e.theme.style_slots)?e.theme.style_slots:{},...Array.isArray(e.theme.pages)?{pages:e.theme.pages}:{},...wc(e.theme.terms)?{terms:e.theme.terms}:{}}}:null}async function kc(e){const t=await al(Ws("/v1/storefront/themes/builder/published/:shopSlug",{shopSlug:e}));return t.success&&t.data?wc(n=t.data)?{settings:wc(n.settings)?n.settings:{},builder_settings:Sc(n.builder_settings),content:wc(n.content)?n.content:{},style_slots:wc(n.style_slots)?n.style_slots:{}}:null:null;var n}async function Ec(e){const t=await kc(e);return t?t.settings:null}function Oc(e){const t={};for(const[n,o]of Object.entries(e.settings)){t[n]={};for(const[e,r]of Object.entries(o))t[n][e]=r.default}return t}function xc(e,t){const n={...e};for(const[o,r]of Object.entries(t))r&&(n[o]={...n[o],...r});return n}var Tc={init:function(e,t){"string"==typeof e?gs(e,t):gs(e.storeId,e)},isInitialized:vs,getConfig:bs,client:function(e){const t=bs().apiBaseUrl??"https://api.shoppex.io";if(ms&&_s===t&&!e)return ms;const n=function(e,t){return f({baseUrl:e,headers:t?{Authorization:`Bearer ${t}`}:void 0})}(t,e);return e||(ms=n,_s=t),n},getStore:ul,getStorefront:cl,getStoreLogoUrl:async function(){const e=await ul();return e.success&&e.data?.logo?e.data.logo:null},getStoreBannerUrl:async function(){const e=await ul();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(),r=t??(vs()?bs().apiBaseUrl:"https://api.shoppex.io"),i=await al(Ws("/v1/storefront/shops/domain/:domain",{domain:o}),{baseUrl:r,cache:{key:`store:domain:${o}`,ttl:ll,staleWhileRevalidate:!0}});return i.success&&i.data?.shop?(i.data.shop.id&&ws(i.data.shop.id),{success:!0,data:i.data.shop}):{success:!1,message:i.message??"Failed to resolve store"}},getProducts:fl,getStorefrontProductsPage:async function(e){const t=bs(),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()}`:"",r=await al(`${Ws("/v1/storefront/products/shop/:storeSlug",{storeSlug:t.storeSlug})}${o}`,{cache:{key:`products:page:${t.storeSlug}:${e?.limit??"default"}:${e?.cursor??"start"}:${e?.sort??"featured"}:${i=e?.category,void 0===i?"category:unset":null===i?"category:null":`category:${i}`}:${!0===e?.hideOutOfStock?"in-stock":"all-stock"}`,ttl:dl,staleWhileRevalidate:!0}});var i;return r.success&&r.data?{success:!0,data:{products:r.data.products.map(pl),pagination:r.data.pagination??null}}:{success:!1,message:r.message}},getProduct:async function(e){let t=Ss();if(!t){const e=await ul();t=e.success?e.data?.id??null:null}const n=t?`?slug_shop_id=${encodeURIComponent(t)}`:"",o=await al(`${Ws("/v1/storefront/products/unique/:idOrSlug",{idOrSlug:e})}${n}`,{cache:{key:`product:${e}:${t??"no-shop"}`,ttl:dl,staleWhileRevalidate:!0}});return o.success&&o.data?.product?{success:!0,data:pl(o.data.product)}:{success:!1,message:o.message}},getCategories:async function(){const e=await fl();if(!e.success||!e.data)return{success:!1,message:e.message};const t=new Set;for(const n of e.data)if(n.categories)for(const e of n.categories)"string"==typeof e?t.add(e):e&&"object"==typeof e&&"uniqid"in e&&t.add(e.uniqid);return{success:!0,data:Array.from(t)}},getCart:jl,getCartItemCount:function(){return jl().reduce((e,t)=>e+t.quantity,0)},getCartCoupon:$l,getCartCouponSource:Rl,setCartCoupon:Ul,clearCartCoupon:ql,addToCart:function(e,t,n=1,o){if(!e||!t)throw new d("product_id and variant_id are required");const r=zl(n);if(r<1)throw new d("quantity must be at least 1");const i=jl(),a=Sl({product_id:e,variant_id:t,addons:o?.addons,custom_fields:o?.custom_fields,price_variant_id:o?.price_variant_id,price_data:o?.price_data,pay_what_you_want_price:o?.pay_what_you_want_price}),s=i.findIndex(e=>e.line_id===a);if(s>=0)i[s].quantity+=r,o?.addons&&(i[s].addons=o.addons),o?.custom_fields&&(i[s].custom_fields=o.custom_fields),o?.price_variant_id&&(i[s].price_variant_id=o.price_variant_id),o?.price_data&&(i[s].price_data=o.price_data),void 0!==o?.pay_what_you_want_price&&(i[s].pay_what_you_want_price=o.pay_what_you_want_price),function(e,t){if(t?.replace_display_snapshot)return e.title=t.title,e.variant_title=t.variant_title,e.image_url=t.image_url,e.addon_labels=t.addon_labels,e.max_quantity=t.max_quantity,void(e.min_quantity=t.min_quantity);void 0!==t?.title&&(e.title=t.title);void 0!==t?.variant_title&&(e.variant_title=t.variant_title);void 0!==t?.image_url&&(e.image_url=t.image_url);void 0!==t?.addon_labels&&(e.addon_labels=t.addon_labels);void 0!==t?.max_quantity&&(e.max_quantity=t.max_quantity);void 0!==t?.min_quantity&&(e.min_quantity=t.min_quantity)}(i[s],o),Ml(i[s]);else{const n={line_id:a,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,pay_what_you_want_price:o?.pay_what_you_want_price,title:o?.title,variant_title:o?.variant_title,image_url:o?.image_url,addon_labels:o?.addon_labels,max_quantity:o?.max_quantity,min_quantity:o?.min_quantity};Ml(n),i.push(n)}Dl(i)},setCartItem:function(e,t,n=1,o){if(!e||!t)throw new d("product_id and variant_id are required");const r=zl(n);if(r<1)throw new d("quantity must be at least 1");const i=jl(),a=Sl({product_id:e,variant_id:t,addons:o?.addons,custom_fields:o?.custom_fields,price_variant_id:o?.price_variant_id,price_data:o?.price_data,pay_what_you_want_price:o?.pay_what_you_want_price});for(let l=i.length-1;l>=0;l-=1)i[l].product_id===e&&i[l].variant_id===t&&i.splice(l,1);const s={line_id:a,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,pay_what_you_want_price:o?.pay_what_you_want_price,title:o?.title,variant_title:o?.variant_title,image_url:o?.image_url,addon_labels:o?.addon_labels,max_quantity:o?.max_quantity,min_quantity:o?.min_quantity};Ml(s),i.push(s),Dl(i)},updateCartItem:function(e,t){const n=jl(),o=e.trim();if(!o)throw new d("line_id is required");const r=n.findIndex(e=>e.line_id===o);if(r<0)throw new d("Item not found in cart");const i=JSON.stringify(n);if(void 0!==t.quantity){const e=zl(t.quantity);if(e<1)return n.splice(r,1),void Dl(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.pay_what_you_want_price&&(n[r].pay_what_you_want_price=t.pay_what_you_want_price),void 0!==t.max_quantity&&(null===t.max_quantity?delete n[r].max_quantity:n[r].max_quantity=t.max_quantity),void 0!==t.min_quantity&&(null===t.min_quantity?delete n[r].min_quantity:n[r].min_quantity=t.min_quantity),Ml(n[r]);const a=Sl(n[r]),s=n.findIndex((e,t)=>t!==r&&e.line_id===a);s>=0?(n[s].quantity+=n[r].quantity,Ml(n[s]),n.splice(r,1)):n[r].line_id=a,JSON.stringify(n)!==i&&Dl(n)},removeFromCart:function(e){const t=e.trim();if(!t)throw new d("line_id is required");Dl(jl().filter(e=>e.line_id!==t))},clearCart:Fl,createCartBackup:Zl,restoreCartFromBackup:function(){const e=Cl(Hs(Tl("cartBackup"))),t=Hs(Tl("metaBackup")),n=Hs(Tl("couponBackup"));if(e&&e.length>0){if(Ll(e,t),n&&"object"==typeof n&&!Array.isArray(n)){const e=n,t="COUPON"===e.source||"AFFILIATE"===e.source?e.source:null;"string"==typeof e.code&&t?Ul(e.code,t):ql()}else ql();return!0}return!1},mergeBaskets:function(e){const t=jl();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 r;try{r=zl(n.quantity)}catch{continue}if(r<1)continue;const i=kl({...n,line_id:n.line_id??Sl(n),product_id:e,variant_id:o,quantity:r}),a=t.findIndex(e=>e.line_id===i.line_id);a>=0?(t[a].quantity=Math.max(t[a].quantity,r),Ml(t[a])):(Ml(i),t.push(i))}return Dl(t),t},moveBasketItem:function(e,t,n,o){const r=jl(),i=r.findIndex(n=>n.product_id===e&&n.variant_id===t);if(i<0)throw new d("Item not found in cart");const[a]=r.splice(i,1),s=Sl({...a,product_id:n,variant_id:o}),l=r.findIndex(e=>e.line_id===s);if(l>=0)r[l].quantity+=a.quantity,Ml(r[l]);else{const e=kl({...a,product_id:n,variant_id:o,line_id:s});Ml(e),r.push(e)}Dl(r)},getCartStats:function(){const e=jl(),t=Bl(),n=Nl(),o=Hs(Tl("cartBackup"))??[],r=e.length>0&&e.every(e=>"number"==typeof e.price_data?.unit_price),i=e.reduce((e,t)=>e+ja((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:ja(i),total_price_is_estimate:e.length>0&&!r}},validateCartIntegrity:Bl,quoteCart:async function(e,t){const n=Wl+=1,o=function(e){const t=bs(),n=Il(e)??$l()??void 0;return{store_slug:t.storeSlug,items:jl(),coupon:n}}(e),r=El(t)??Ol()??El(bs().currency),i=await sl("/v1/storefront/cart/quote",{shop_slug:o.store_slug,cart:o.items,coupon:o.coupon,affiliate_code:Jl()??void 0,currency:r??void 0});return n!==Wl||i.success&&(Yl="string"==typeof i.data?.quote_token?i.data.quote_token:null),i},resolveCartLineId:function(e,t,n=jl()){const o=n.filter(n=>n.product_id===e&&n.variant_id===t);if(0===o.length)throw new d(`No cart line found for ${e}/${t}`);return o[0].line_id},checkout:async function(e,t){const n=au(e,t),{autoRedirect:o=!0,email:r}=n,i=lu(n),a=i.coupon,s=Xl(r),l=i.affiliateCode,u=eu(n),c=jl();if(0===c.length)return{success:!1,message:"Cart is empty"};if(Gl(c,n.expectedCart))return{success:!1,message:Hl};Zl();const d=bs(),p=Ql(n),f=await sl(p.endpoint,{shop_slug:d.storeSlug,cart:uu(c),email:s,coupon:a,currency:u,affiliate_code:l,quote_token:Vl()??void 0},{retries:0,baseUrl:p.baseUrl});if(!f.success||!f.data)return nu(f.message)&&Fl(),{success:!1,message:tu(f.message),...f.code?{code:f.code}:{}};const m=iu(f.data,d.checkoutBaseUrl);if(!m)return{success:!1,message:"Failed to create invoice"};const{invoiceId:_}=m,h=ou(m.checkoutUrl,d.checkoutBaseUrl,_);if(!h)return{success:!1,message:"Failed to create invoice"};const y=ru(h,{email:s,locale:n.locale??d.locale});return o&&"undefined"!=typeof window&&window?.location&&(window.location.href=y,Fl()),{success:!0,redirectUrl:y,invoiceId:_,rewards:m.rewards}},buildCheckoutUrl:async function(e,t){const n=au(e,t),{email:o}=n,r=lu(n),i=r.coupon,a=Xl(o),s=r.affiliateCode,l=eu(n),u=jl();if(0===u.length)throw new Error("Cart is empty");if(Gl(u,n.expectedCart))throw new Error(Hl);const c=bs(),d=Ql(n),p=await sl(d.endpoint,{shop_slug:c.storeSlug,cart:uu(u),email:a,coupon:i,currency:l,affiliate_code:s,quote_token:Vl()??void 0},{retries:0,baseUrl:d.baseUrl});if(!p.success||!p.data)throw nu(p.message)&&Fl(),new Error(tu(p.message));const f=iu(p.data,c.checkoutBaseUrl);if(!f)throw new Error("Failed to create invoice");const m=ou(f.checkoutUrl,c.checkoutBaseUrl,f.invoiceId);if(!m)throw new Error("Failed to create invoice");return ru(m,{email:a,locale:n.locale??c.locale})},buildCheckoutUrlSync:function(){throw new Error("buildCheckoutUrlSync is deprecated. Use buildCheckoutUrl (async) instead.")},captureAffiliateFromUrl:async function(e="ref"){if("undefined"==typeof window)return null;let t=null;try{const n=new URL(window.location.href).searchParams.get(e);t=n?n.trim():null}catch{t=null}if(t=hl(t),!t)return null;if(yl(t),vs())try{const e=bs(),n=await sl("/v1/storefront/affiliates/attribution",{shop_slug:e.storeSlug,code:t},{retries:0});return n.success&&n.data?.accepted&&n.data?.affiliate_code?(yl(n.data.affiliate_code),n.data.affiliate_code):(gl(),null)}catch{return t}return t},validateAffiliateCode:vl,applyAffiliateCode:async function(e){const t=await vl(e);return t.success&&t.data?.affiliate_code&&yl(t.data.affiliate_code),t},getAffiliateCode:bl,setAffiliateCode:yl,clearAffiliateCode:gl,validateCoupon:async function(e,t){const n=e.trim();if(!n)return{success:!1,message:"Coupon code is required"};const o={code:n},r="string"==typeof t?t:t?.productId,i="string"==typeof t?void 0:t?.variantId;if(i&&!r)return{success:!1,message:"productId is required when variantId is provided"};if(r)o.product_id=r,i&&(o.variant_id=i);else{const e=jl();if(0===e.length)return{success:!1,message:"Cart is empty"};const t=await async function(){const e=Ss();if(e)return e;const t=await ul();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 sl("/v1/storefront/coupons/check",o)},getShopReviews:async function(){const e=[],t=new Set;let n=null;for(;;){const o=await fu(n);if(!o.success||!o.data)return{success:!1,message:o.message,data:[]};e.push(...o.data.feedback);const r=o.data.pagination;if(!r?.has_more||!r.next_cursor)break;if(t.has(r.next_cursor))break;t.add(r.next_cursor),n=r.next_cursor}return{success:!0,data:e}},getShopReviewsPage:fu,requestOtp:gu,verifyOtp:bu,logout:vu,me:wu,dashboard:Su,orders:ku,order:Eu,loyalty:Ou,redeemLoyaltyPoints:xu,warranties:Tu,claimWarranty:Au,resetLicenseHwid:zu,subscriptionBillingHistory:Iu,cancelSubscription:Pu,pauseSubscription:Cu,resumeSubscription:Nu,favorites:$u,addFavorite:Ru,removeFavorite:Uu,affiliate:qu,createTicket:Du,ticket:Lu,replyToTicket:ju,updateProfile:Mu,updateAvatar:Fu,removeAvatar:Zu,emailPreferences:Bu,updateEmailPreferences:Ju,sessions:Yu,revokeSession:Wu,revokeAllSessions:Vu,reseller:Hu,applyForReseller:Gu,enrollAsReseller:Ku,acceptResellerInvite:Xu,resellerCatalog:Qu,quoteResellerOrder:ec,resellerOrders:tc,resellerOrder:nc,resellerWallet:oc,resellerApiKeys:rc,searchProducts:async function(e,t){if(!vs())return{success:!1,message:"SDK not initialized"};const n=e.trim();if(!n)return{success:!0,data:[]};const o=await cl();return o.success&&o.data?{success:!0,data:Zs(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(!vs())return{success:!1,message:"SDK not initialized"};const n=e.trim();if(!n)return{success:!0,data:[]};const o=await cl();return o.success&&o.data?{success:!0,data:Fs(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=ic(e);if(!t)return{success:!1,message:"Invoice ID is required"};const n=await al(Ws("/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=ic(e);if(!t)return{success:!1,message:"Invoice ID is required"};const n=await al(Ws("/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=bs(),t=await al(Ws("/v1/storefront/shops/name/:storeSlug/pages",{storeSlug:e.storeSlug}),{cache:{key:`pages:${e.storeSlug}`,ttl:ac,staleWhileRevalidate:!0}});return t.success&&t.data?{success:!0,data:t.data.pages}:{success:!1,message:t.message}},getPage:async function(e){const t=bs(),n=await al(Ws("/v1/storefront/shops/name/:storeSlug/pages/:slug",{storeSlug:t.storeSlug,slug:e}),{cache:{key:`page:${t.storeSlug}:${e}`,ttl:ac,staleWhileRevalidate:!0}});return n.success&&n.data?{success:!0,data:n.data.page}:{success:!1,message:n.message}},getMenus:lc,getMenu:cc,getMenuBySlot:dc,getMenuByTitle:uc,getMenuSlotTitles:pc,trackPageView:hc,getStorefrontOnlineUsers:gc,getStorefrontRecentSales:yc,touchStorefrontPresence:bc,createFormatter:vc,formatPrice:function(e,t,n){const o="string"==typeof e?parseFloat(e):e;return Number.isNaN(o)?vc(t,n).format(0):vc(t,n).format(o)},clearCache:r,invalidateCache:function(e){for(const n of t.keys())(n===e||n.startsWith(e))&&t.delete(n)},getCacheStats:function(){return{hits:o.hits,misses:o.misses,pendingRequests:n.size,entries:t.size}},fetchPublishedBuilderSettings:kc,fetchPublishedThemeSettings:Ec,resolveDefaults:Oc,mergeSettings:xc};if("undefined"!=typeof window){const e=window;e.shoppex?.isInitialized?.()||(e.shoppex=Tc)}e.ApiError=c,e.CATALOG_UNIT_PRICE_DECIMAL_PLACES=3,e.CATALOG_UNIT_PRICE_FORMAT_OPTIONS=La,e.CartError=d,e.NetworkError=u,e.NotInitializedError=l,e.PAYABLE_AMOUNT_DECIMAL_PLACES=2,e.ShoppexError=s,e.ValidationError=class e extends s{constructor(t,n){super(t,"VALIDATION_ERROR"),this.name="ValidationError",this.invalidFields=n,Object.setPrototypeOf(this,e.prototype)}},e.acceptResellerInvite=Xu,e.addFavorite=Ru,e.affiliate=qu,e.applyForReseller=Gu,e.buildStorefrontContactMessage=Js,e.buildStorefrontCustomFieldPayload=function(e,t){const n={};return e.forEach(e=>{const o=t[e.name]??e.defaultValue??"";if("checkbox"===e.type)return void(ks(o)&&(n[e.name]="true"));const r=o.trim();r.length>0&&(n[e.name]=r)}),n},e.buildStorefrontProductLookup=Cs,e.cancelSubscription=Pu,e.claimWarranty=Au,e.collectProductSearchHaystack=Ds,e.computeCartLineId=Sl,e.createTicket=Du,e.dashboard=Su,e.default=Tc,e.shoppex=Tc,e.emailPreferences=Bu,e.enrollAsReseller=Ku,e.ensureCartLineId=kl,e.favorites=$u,e.fetchPublishedBuilderSettings=kc,e.fetchPublishedThemeSettings=Ec,e.filterProductsBySearchQuery=function(e,t,n){const o=Us(t);if(!o)return[];let r=e.filter(e=>Ls(e,o));return n?.hideOutOfStock&&(r=r.filter(e=>Ps(e))),null!=n?.maxResults?r.slice(0,n.maxResults):r},e.getMenu=cc,e.getMenuBySlot=dc,e.getMenuByTitle=uc,e.getMenuSlotTitles=pc,e.getMenus=lc,e.getMergedStorefrontProducts=$s,e.getShopReviewsPage=fu,e.getStorefrontGroupProducts=Ns,e.getStorefrontOnlineUsers=gc,e.getStorefrontRecentSales=yc,e.groupMatchesSearchQuery=js,e.isProductInStock=Ps,e.isProductOutOfStock=Is,e.isStorefrontCheckboxCustomFieldValueChecked=ks,e.isVariantOutOfStock=function(e){return 0===As(e)},e.logout=vu,e.loyalty=Ou,e.me=wu,e.mergeSettings=xc,e.normalizeSearchQuery=Us,e.normalizeStorefrontCustomFields=function(e){return function(e){if(Array.isArray(e))return e;if("string"==typeof e){try{const t=JSON.parse(e);if(Array.isArray(t))return t;if(t&&"object"==typeof t){const e=t.custom_fields??t.customFields;return Array.isArray(e)?e:[]}}catch{return[]}return[]}if(e&&"object"==typeof e){const t=e.custom_fields??e.customFields;return Array.isArray(t)?t:[]}return[]}(e).filter(e=>!!e&&"object"==typeof e&&!Array.isArray(e)).map(e=>{const t="string"==typeof e.type?e.type.trim().toLowerCase():"text",n=t.length>0?t:"text",o=[e.default_value,e.default,e.value].find(e=>"string"==typeof e&&e.trim().length>0);return{name:"string"==typeof e.name?e.name.trim():"",type:n,required:!0===e.required||"true"===e.required||1===e.required||"1"===e.required,defaultValue:"string"==typeof o?o:"",placeholder:"string"==typeof e.placeholder?e.placeholder:"",regex:"string"==typeof e.regex?e.regex:void 0}}).filter(e=>e.name.length>0&&"hidden"!==e.type)},e.order=Eu,e.orders=ku,e.pauseSubscription=Cu,e.productMatchesSearchQuery=Ls,e.quoteResellerOrder=ec,e.redeemLoyaltyPoints=xu,e.removeAvatar=Zu,e.removeFavorite=Uu,e.replyToTicket=ju,e.requestOtp=gu,e.reseller=Hu,e.resellerApiKeys=rc,e.resellerCatalog=Qu,e.resellerOrder=nc,e.resellerOrders=tc,e.resellerWallet=oc,e.resetLicenseHwid=zu,e.resolveDefaults=Oc,e.resolveDisplayStock=zs,e.resolveStorefrontApiBaseUrl=Bs,e.resolveStorefrontSocialLinks=function(e){return{discord:e?.discord_link??e?.social?.discord??null,telegram:e?.telegram_link??e?.social?.telegram??null}},e.resolveVariantStockValue=As,e.resumeSubscription=Nu,e.revokeAllSessions=Vu,e.revokeSession=Wu,e.roundPayableAmount=ja,e.searchMergedStorefrontCatalog=Zs,e.searchMergedStorefrontCatalogItems=Fs,e.sessions=Yu,e.stripHtmlFromText=Rs,e.submitStorefrontContactTicket=async function(e){const t=e.shopSlug.trim();if(!t)throw new Error("Store data is not ready yet. Please try again in a moment.");const n=e.email.trim().toLowerCase(),o=e.title?.trim()??"",r=o.length>=2?o.slice(0,30):"Contact Request",i=Js({name:e.name,message:e.message}),a=e.invoiceId?.trim()||void 0,s=Bs({apiBaseUrl:e.apiBaseUrl}),l=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:r,message:i,...a?{invoice_id:a}:{}})}),u=await l.json().catch(()=>null);if(!l.ok)throw new Error(u?.message||u?.error||"Failed to send your message.");const c=u?.data?.uniqid;if(!c)throw new Error("Ticket created, but the response was incomplete.");return{uniqid:c}},e.subscriptionBillingHistory=Iu,e.ticket=Lu,e.touchStorefrontPresence=bc,e.trackPageView=hc,e.updateAvatar=Fu,e.updateEmailPreferences=Ju,e.updateProfile=Mu,e.validateStorefrontCustomFieldValue=function(e,t){if("checkbox"===e.type)return e.required&&!ks(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},e.verifyOtp=bu,e.warranties=Tu});
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).shoppex={})}(this,function(e){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var t=new Map,n=new Map,o={hits:0,misses:0};function r(){t.clear(),n.clear()}function i(e,n,o){const r=Date.now();t.set(e,{data:n,ttl:o,updatedAt:r,expiresAt:r+o})}async function a(e,r,a,s=()=>!0){const l=function(e){const n=t.get(e);return n||null}(e);if(l&&!function(e){return Date.now()>e.expiresAt}(l))return o.hits+=1,l.data;if(l&&a.staleWhileRevalidate){if(o.hits+=1,!n.has(e)){const t=(async()=>{try{const t=await r();return s(t)&&i(e,t,a.ttl),t}finally{n.delete(e)}})();n.set(e,t)}return l.data}if(n.has(e))return n.get(e);o.misses+=1;const u=(async()=>{try{const t=await r();return s(t)&&i(e,t,a.ttl),t}finally{n.delete(e)}})();return n.set(e,u),u}var s=class e extends Error{constructor(t,n,o){super(t),this.name="ShoppexError",this.code=n,this.statusCode=o,Object.setPrototypeOf(this,e.prototype)}},l=class e extends s{constructor(){super("SDK not initialized. Call shoppex.init() first.","NOT_INITIALIZED"),this.name="NotInitializedError",Object.setPrototypeOf(this,e.prototype)}},u=class e extends s{constructor(t,n){super(t,"NETWORK_ERROR",n),this.name="NetworkError",Object.setPrototypeOf(this,e.prototype)}},c=class e extends s{constructor(t,n,o,r){super(t,n,o),this.name="ApiError",this.errorParams=r,Object.setPrototypeOf(this,e.prototype)}},d=class e extends s{constructor(t){super(t,"BASKET_ERROR"),this.name="CartError",Object.setPrototypeOf(this,e.prototype)}},p=/\{[^{}]+\}/g;function f(e){let{baseUrl:t="",Request:n=globalThis.Request,fetch:o=globalThis.fetch,querySerializer:r,bodySerializer:i,pathSerializer:a,headers:s,requestInitExt:l,...u}={...e};l="object"==typeof process&&Number.parseInt(process?.versions?.node?.substring(0,2))>=18&&process.versions.undici?l:void 0,t=w(t);const c=[];async function d(e,d){const{baseUrl:p,fetch:f=o,Request:m=n,headers:_,params:h={},parseAs:S="json",querySerializer:k,bodySerializer:E=i??b,pathSerializer:O,body:x,middleware:T=[],...A}=d||{};let z=t;p&&(z=w(p)??t);let I="function"==typeof r?r:y(r);k&&(I="function"==typeof k?k:y({..."object"==typeof r?r:{},...k}));const P=O||a||g,C=void 0===x?void 0:E(x,v(s,_,h.header)),N=v(void 0===C||C instanceof FormData?{}:{"Content-Type":"application/json"},s,_,h.header),$=[...c,...T],R={redirect:"follow",...u,...A,body:C,headers:N};let U,q,D,L=new m(function(e,t){let n=`${t.baseUrl}${e}`;t.params?.path&&(n=t.pathSerializer(n,t.params.path));let o=t.querySerializer(t.params.query??{});o.startsWith("?")&&(o=o.substring(1));o&&(n+=`?${o}`);return n}(e,{baseUrl:z,params:h,querySerializer:I,pathSerializer:P}),R);for(const t in A)t in L||(L[t]=A[t]);if($.length){U=Math.random().toString(36).slice(2,11),q=Object.freeze({baseUrl:z,fetch:f,parseAs:S,querySerializer:I,bodySerializer:E,pathSerializer:P});for(const t of $)if(t&&"object"==typeof t&&"function"==typeof t.onRequest){const n=await t.onRequest({request:L,schemaPath:e,params:h,options:q,id:U});if(n){if(!(n instanceof m)){if(n instanceof Response){D=n;break}throw new Error("onRequest: must return new Request() or Response() when modifying the request")}L=n}}}if(!D){try{D=await f(L,l)}catch(F){let t=F;if($.length)for(let n=$.length-1;n>=0;n--){const o=$[n];if(o&&"object"==typeof o&&"function"==typeof o.onError){const n=await o.onError({request:L,error:t,schemaPath:e,params:h,options:q,id:U});if(n){if(n instanceof Response){t=void 0,D=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($.length)for(let t=$.length-1;t>=0;t--){const n=$[t];if(n&&"object"==typeof n&&"function"==typeof n.onResponse){const t=await n.onResponse({request:L,response:D,schemaPath:e,params:h,options:q,id:U});if(t){if(!(t instanceof Response))throw new Error("onResponse: must return new Response() when modifying the response");D=t}}}}const j=D.headers.get("Content-Length");if(204===D.status||"HEAD"===L.method||"0"===j&&!D.headers.get("Transfer-Encoding")?.includes("chunked"))return D.ok?{data:void 0,response:D}:{error:void 0,response:D};if(D.ok){const e=async()=>{if("stream"===S)return D.body;if("json"===S&&!j){const e=await D.text();return e?JSON.parse(e):void 0}return await D[S]()};return{data:await e(),response:D}}let M=await D.text();try{M=JSON.parse(M)}catch{}return{error:M,response:D}}return{request:(e,t,n)=>d(t,{...n,method:e.toUpperCase()}),GET:(e,t)=>d(e,{...t,method:"GET"}),PUT:(e,t)=>d(e,{...t,method:"PUT"}),POST:(e,t)=>d(e,{...t,method:"POST"}),DELETE:(e,t)=>d(e,{...t,method:"DELETE"}),OPTIONS:(e,t)=>d(e,{...t,method:"OPTIONS"}),HEAD:(e,t)=>d(e,{...t,method:"HEAD"}),PATCH:(e,t)=>d(e,{...t,method:"PATCH"}),TRACE:(e,t)=>d(e,{...t,method:"TRACE"}),use(...e){for(const t of e)if(t){if("object"!=typeof t||!("onRequest"in t||"onResponse"in t||"onError"in t))throw new Error("Middleware must be an object with one of `onRequest()`, `onResponse() or `onError()`");c.push(t)}},eject(...e){for(const t of e){const e=c.indexOf(t);-1!==e&&c.splice(e,1)}}}}function m(e,t,n){if(null==t)return"";if("object"==typeof t)throw new Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");return`${e}=${!0===n?.allowReserved?t:encodeURIComponent(t)}`}function _(e,t,n){if(!t||"object"!=typeof t)return"";const o=[],r={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 r=o.join(",");switch(n.style){case"form":return`${e}=${r}`;case"label":return`.${r}`;case"matrix":return`;${e}=${r}`;default:return r}}for(const a in t){const r="deepObject"===n.style?`${e}[${a}]`:a;o.push(m(r,t[a],n))}const i=o.join(r);return"label"===n.style||"matrix"===n.style?`${r}${i}`:i}function h(e,t,n){if(!Array.isArray(t))return"";if(!1===n.explode){const o={form:",",spaceDelimited:"%20",pipeDelimited:"|"}[n.style]||",",r=(!0===n.allowReserved?t:t.map(e=>encodeURIComponent(e))).join(o);switch(n.style){case"simple":return r;case"label":return`.${r}`;case"matrix":return`;${e}=${r}`;default:return`${e}=${r}`}}const o={simple:",",label:".",matrix:";"}[n.style]||"&",r=[];for(const i of t)"simple"===n.style||"label"===n.style?r.push(!0===n.allowReserved?i:encodeURIComponent(i)):r.push(m(e,i,n));return"label"===n.style||"matrix"===n.style?`${o}${r.join(o)}`:r.join(o)}function y(e){return function(t){const n=[];if(t&&"object"==typeof t)for(const o in t){const r=t[o];if(null!=r)if(Array.isArray(r)){if(0===r.length)continue;n.push(h(o,r,{style:"form",explode:!0,...e?.array,allowReserved:e?.allowReserved||!1}))}else"object"!=typeof r?n.push(m(o,r,e)):n.push(_(o,r,{style:"deepObject",explode:!0,...e?.object,allowReserved:e?.allowReserved||!1}))}return n.join("&")}}function g(e,t){let n=e;for(const o of e.match(p)??[]){let e=o.substring(1,o.length-1),r=!1,i="simple";if(e.endsWith("*")&&(r=!0,e=e.substring(0,e.length-1)),e.startsWith(".")?(i="label",e=e.substring(1)):e.startsWith(";")&&(i="matrix",e=e.substring(1)),!t||void 0===t[e]||null===t[e])continue;const a=t[e];Array.isArray(a)?n=n.replace(o,h(e,a,{style:i,explode:r})):n="object"!=typeof a?"matrix"!==i?n.replace(o,"label"===i?`.${encodeURIComponent(a)}`:encodeURIComponent(a)):n.replace(o,`;${m(e,a)}`):n.replace(o,_(e,a,{style:i,explode:r}))}return n}function b(e,t){return e instanceof FormData?e:t&&"application/x-www-form-urlencoded"===(t.get instanceof Function?t.get("Content-Type")??t.get("content-type"):t["Content-Type"]??t["content-type"])?new URLSearchParams(e).toString():JSON.stringify(e)}function v(...e){const t=new Headers;for(const n of e){if(!n||"object"!=typeof n)continue;const e=n instanceof Headers?n.entries():Object.entries(n);for(const[n,o]of e)if(null===o)t.delete(n);else if(Array.isArray(o))for(const e of o)t.append(n,e);else void 0!==o&&t.set(n,o)}return t}function w(e){return e.endsWith("/")?e.substring(0,e.length-1):e}var S={header:{title:"Header",aliases:["Header Menu"]},footer:{title:"Footer",aliases:["Footer Links","Legal Links"]}};var k;Object.keys(S);function E(e,t,n){function o(n,o){if(n._zod||Object.defineProperty(n,"_zod",{value:{def:o,constr:a,traits:new Set},enumerable:!1}),n._zod.traits.has(e))return;n._zod.traits.add(e),t(n,o);const r=a.prototype,i=Object.keys(r);for(let e=0;e<i.length;e++){const t=i[e];t in n||(n[t]=r[t].bind(n))}}const r=n?.Parent??Object;class i extends r{}function a(e){var t;const r=n?.Parent?new i:this;o(r,e),(t=r._zod).deferred??(t.deferred=[]);for(const n of r._zod.deferred)n();return r}return Object.defineProperty(i,"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 O=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},x=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}};(k=globalThis).__zod_globalConfig??(k.__zod_globalConfig={});var T=globalThis.__zod_globalConfig;function A(e){return e&&Object.assign(T,e),T}function z(e){const t=Object.values(e).filter(e=>"number"==typeof e);return Object.entries(e).filter(([e,n])=>-1===t.indexOf(+e)).map(([e,t])=>t)}function I(e,t){return"bigint"==typeof t?t.toString():t}function P(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function C(e){return null==e}function N(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}var $=Symbol("evaluating");function R(e,t,n){let o;Object.defineProperty(e,t,{get(){if(o!==$)return void 0===o&&(o=$,o=n()),o},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function U(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function q(...e){const t={};for(const n of e){const e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}function D(e){return JSON.stringify(e)}var L="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function j(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}var M=P(()=>{if(T.jitless)return!1;if("undefined"!=typeof navigator&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch(e){return!1}});function F(e){if(!1===j(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!==j(n)&&!1!==Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")}function Z(e){return F(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}var B=new Set(["string","number","symbol"]);function J(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Y(e,t,n){const o=new e._zod.constr(t??e._zod.def);return t&&!n?.parent||(o._zod.parent=e),o}function W(e){const t=e;if(!t)return{};if("string"==typeof t)return{error:()=>t};if(void 0!==t?.message){if(void 0!==t?.error)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,"string"==typeof t.error?{...t,error:()=>t.error}:t}var V={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function H(e,t=0){if(!0===e.aborted)return!0;for(let n=t;n<e.issues.length;n++)if(!0!==e.issues[n]?.continue)return!0;return!1}function G(e,t=0){if(!0===e.aborted)return!0;for(let n=t;n<e.issues.length;n++)if(!1===e.issues[n]?.continue)return!0;return!1}function K(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function X(e){return"string"==typeof e?e:e?.message}function Q(e,t,n){const o=e.message?e.message:X(e.inst?._zod.def?.error?.(e))??X(t?.error?.(e))??X(n.customError?.(e))??X(n.localeError?.(e))??"Invalid input",{inst:r,continue:i,input:a,...s}=e;return s.path??(s.path=[]),s.message=o,t?.reportInput&&(s.input=a),s}function ee(e){return Array.isArray(e)?"array":"string"==typeof e?"string":"unknown"}function te(...e){const[t,n,o]=e;return"string"==typeof t?{message:t,code:"custom",input:n,inst:o}:{...t}}var ne=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,I,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},oe=E("$ZodError",ne),re=E("$ZodError",ne,{Parent:Error});var ie=e=>(t,n,o,r)=>{const i=o?{...o,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new O;if(a.issues.length){const t=new(r?.Err??e)(a.issues.map(e=>Q(e,i,A())));throw L(t,r?.callee),t}return a.value},ae=e=>async(t,n,o,r)=>{const i=o?{...o,async:!0}:{async:!0};let a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise&&(a=await a),a.issues.length){const t=new(r?.Err??e)(a.issues.map(e=>Q(e,i,A())));throw L(t,r?.callee),t}return a.value},se=e=>(t,n,o)=>{const r=o?{...o,async:!1}:{async:!1},i=t._zod.run({value:n,issues:[]},r);if(i instanceof Promise)throw new O;return i.issues.length?{success:!1,error:new(e??oe)(i.issues.map(e=>Q(e,r,A())))}:{success:!0,data:i.value}},le=se(re),ue=e=>async(t,n,o)=>{const r=o?{...o,async:!0}:{async:!0};let i=t._zod.run({value:n,issues:[]},r);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new e(i.issues.map(e=>Q(e,r,A())))}:{success:!0,data:i.value}},ce=ue(re),de=e=>(t,n,o)=>{const r=o?{...o,direction:"backward"}:{direction:"backward"};return ie(e)(t,n,r)},pe=e=>(t,n,o)=>ie(e)(t,n,o),fe=e=>async(t,n,o)=>{const r=o?{...o,direction:"backward"}:{direction:"backward"};return ae(e)(t,n,r)},me=e=>async(t,n,o)=>ae(e)(t,n,o),_e=e=>(t,n,o)=>{const r=o?{...o,direction:"backward"}:{direction:"backward"};return se(e)(t,n,r)},he=e=>(t,n,o)=>se(e)(t,n,o),ye=e=>async(t,n,o)=>{const r=o?{...o,direction:"backward"}:{direction:"backward"};return ue(e)(t,n,r)},ge=e=>async(t,n,o)=>ue(e)(t,n,o),be=/^[cC][0-9a-z]{6,}$/,ve=/^[0-9a-z]+$/,we=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Se=/^[0-9a-vA-V]{20}$/,ke=/^[A-Za-z0-9]{27}$/,Ee=/^[a-zA-Z0-9_-]{21}$/,Oe=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,xe=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Te=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)$/,Ae=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var 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])$/,Ie=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,Pe=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Ce=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Ne=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,$e=/^[A-Za-z0-9_-]*$/,Re=/^https?$/,Ue=/^\+[1-9]\d{6,14}$/,qe="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",De=new RegExp(`^${qe}$`);function Le(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 je=/^-?\d+$/,Me=/^-?\d+(?:\.\d+)?$/,Fe=/^(?:true|false)$/i,Ze=/^[^A-Z]*$/,Be=/^[^a-z]*$/,Je=E("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),Ye={number:"number",bigint:"bigint",object:"date"},We=E("$ZodCheckLessThan",(e,t)=>{Je.init(e,t);const n=Ye[typeof t.value];e._zod.onattach.push(e=>{const n=e._zod.bag,o=(t.inclusive?n.maximum:n.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<o&&(t.inclusive?n.maximum=t.value:n.exclusiveMaximum=t.value)}),e._zod.check=o=>{(t.inclusive?o.value<=t.value:o.value<t.value)||o.issues.push({origin:n,code:"too_big",maximum:"object"==typeof t.value?t.value.getTime():t.value,input:o.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Ve=E("$ZodCheckGreaterThan",(e,t)=>{Je.init(e,t);const n=Ye[typeof t.value];e._zod.onattach.push(e=>{const n=e._zod.bag,o=(t.inclusive?n.minimum:n.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>o&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=o=>{(t.inclusive?o.value>=t.value:o.value>t.value)||o.issues.push({origin:n,code:"too_small",minimum:"object"==typeof t.value?t.value.getTime():t.value,input:o.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),He=E("$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),r=Number.EPSILON*Math.max(Math.abs(n),1);return Math.abs(n-o)<r?0:n-o}(n.value,t.value))&&n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),Ge=E("$ZodCheckNumberFormat",(e,t)=>{Je.init(e,t),t.format=t.format||"float64";const n=t.format?.includes("int"),o=n?"int":"number",[r,i]=V[t.format];e._zod.onattach.push(e=>{const o=e._zod.bag;o.format=t.format,o.minimum=r,o.maximum=i,n&&(o.pattern=je)}),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<r&&a.issues.push({origin:"number",input:s,code:"too_small",minimum:r,inclusive:!0,inst:e,continue:!t.abort}),s>i&&a.issues.push({origin:"number",input:s,code:"too_big",maximum:i,inclusive:!0,inst:e,continue:!t.abort})}}),Ke=E("$ZodCheckMaxLength",(e,t)=>{var n;Je.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!C(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<n&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{const o=n.value;if(o.length<=t.maximum)return;const r=ee(o);n.issues.push({origin:r,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Xe=E("$ZodCheckMinLength",(e,t)=>{var n;Je.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!C(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{const o=n.value;if(o.length>=t.minimum)return;const r=ee(o);n.issues.push({origin:r,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Qe=E("$ZodCheckLengthEquals",(e,t)=>{var n;Je.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!C(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=n=>{const o=n.value,r=o.length;if(r===t.length)return;const i=ee(o),a=r>t.length;n.issues.push({origin:i,...a?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),et=E("$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=new Set),n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,t.pattern.test(n.value)||n.issues.push({origin:"string",code:"invalid_format",format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(o=e._zod).check??(o.check=()=>{})}),tt=E("$ZodCheckRegex",(e,t)=>{et.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,t.pattern.test(n.value)||n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),nt=E("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Ze),et.init(e,t)}),ot=E("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=Be),et.init(e,t)}),rt=E("$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=new Set),t.patterns.add(o)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),it=E("$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=new Set),t.patterns.add(n)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),at=E("$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=new Set),t.patterns.add(n)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),st=E("$ZodCheckOverwrite",(e,t)=>{Je.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}),lt=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 r of o)this.content.push(r)}compile(){const e=Function,t=this?.args;return new e(...t,[...(this?.content??[""]).map(e=>` ${e}`)].join("\n"))}},ut={major:4,minor:4,patch:3},ct=E("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=ut;const o=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&o.unshift(e);for(const r of o)for(const t of r._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,r=H(e);for(const i of t){if(i._zod.def.when){if(G(e))continue;if(!i._zod.def.when(e))continue}else if(r)continue;const t=e.issues.length,a=i._zod.check(e);if(a instanceof Promise&&!1===n?.async)throw new O;if(o||a instanceof Promise)o=(o??Promise.resolve()).then(async()=>{await a,e.issues.length!==t&&(r||(r=H(e,t)))});else{if(e.issues.length===t)continue;r||(r=H(e,t))}}return o?o.then(()=>e):e},n=(n,r,i)=>{if(H(n))return n.aborted=!0,n;const a=t(r,o,i);if(a instanceof Promise){if(!1===i.async)throw new O;return a.then(t=>e._zod.parse(t,i))}return e._zod.parse(a,i)};e._zod.run=(r,i)=>{if(i.skipChecks)return e._zod.parse(r,i);if("backward"===i.direction){const t=e._zod.parse({value:r.value,issues:[]},{...i,skipChecks:!0});return t instanceof Promise?t.then(e=>n(e,r,i)):n(t,r,i)}const a=e._zod.parse(r,i);if(a instanceof Promise){if(!1===i.async)throw new O;return a.then(e=>t(e,o,i))}return t(a,o,i)}}R(e,"~standard",()=>({validate:t=>{try{const n=le(e,t);return n.success?{value:n.data}:{issues:n.error?.issues}}catch(n){return ce(e,t).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:"zod",version:1}))}),dt=E("$ZodString",(e,t)=>{var n;ct.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??(n=e._zod.bag,new RegExp(`^${n?`[\\s\\S]{${n?.minimum??0},${n?.maximum??""}}`:"[\\s\\S]*"}$`)),e._zod.parse=(n,o)=>{if(t.coerce)try{n.value=String(n.value)}catch(o){}return"string"==typeof n.value||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),pt=E("$ZodStringFormat",(e,t)=>{et.init(e,t),dt.init(e,t)}),ft=E("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=xe),pt.init(e,t)}),mt=E("$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=Te(e))}else t.pattern??(t.pattern=Te());pt.init(e,t)}),_t=E("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Ae),pt.init(e,t)}),ht=E("$ZodURL",(e,t)=>{pt.init(e,t),e._zod.check=n=>{try{const o=n.value.trim();if(!t.normalize&&t.protocol?.source===Re.source&&!/^https?:\/\//i.test(o))return void n.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:n.value,inst:e,continue:!t.abort});const r=new URL(o);return t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(r.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(r.protocol.endsWith(":")?r.protocol.slice(0,-1):r.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=r.href:n.value=o)}catch(o){n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),yt=E("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),pt.init(e,t)}),gt=E("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=Ee),pt.init(e,t)}),bt=E("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=be),pt.init(e,t)}),vt=E("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=ve),pt.init(e,t)}),wt=E("$ZodULID",(e,t)=>{t.pattern??(t.pattern=we),pt.init(e,t)}),St=E("$ZodXID",(e,t)=>{t.pattern??(t.pattern=Se),pt.init(e,t)}),kt=E("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=ke),pt.init(e,t)}),Et=E("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=function(e){const t=Le({precision:e.precision}),n=["Z"];e.local&&n.push(""),e.offset&&n.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const o=`${t}(?:${n.join("|")})`;return new RegExp(`^${qe}T(?:${o})$`)}(t)),pt.init(e,t)}),Ot=E("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=De),pt.init(e,t)}),xt=E("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=new RegExp(`^${Le(t)}$`)),pt.init(e,t)}),Tt=E("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=Oe),pt.init(e,t)}),At=E("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=ze),pt.init(e,t),e._zod.bag.format="ipv4"}),zt=E("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=Ie),pt.init(e,t),e._zod.bag.format="ipv6",e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:e,continue:!t.abort})}}}),It=E("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=Pe),pt.init(e,t)}),Pt=E("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=Ce),pt.init(e,t),e._zod.check=n=>{const o=n.value.split("/");try{if(2!==o.length)throw new Error;const[e,t]=o;if(!t)throw new Error;const n=Number(t);if(`${n}`!==t)throw new Error;if(n<0||n>128)throw new Error;new URL(`http://[${e}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});function Ct(e){if(""===e)return!0;if(/\s/.test(e))return!1;if(e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}var Nt=E("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=Ne),pt.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=n=>{Ct(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});var $t=E("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=$e),pt.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=n=>{(function(e){if(!$e.test(e))return!1;const t=e.replace(/[-_]/g,e=>"-"===e?"+":"/");return Ct(t.padEnd(4*Math.ceil(t.length/4),"="))})(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),Rt=E("$ZodE164",(e,t)=>{t.pattern??(t.pattern=Ue),pt.init(e,t)});var Ut=E("$ZodJWT",(e,t)=>{pt.init(e,t),e._zod.check=n=>{(function(e,t=null){try{const n=e.split(".");if(3!==n.length)return!1;const[o]=n;if(!o)return!1;const r=JSON.parse(atob(o));return!("typ"in r&&"JWT"!==r?.typ||!r.alg||t&&(!("alg"in r)||r.alg!==t))}catch{return!1}})(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),qt=E("$ZodNumber",(e,t)=>{ct.init(e,t),e._zod.pattern=e._zod.bag.pattern??Me,e._zod.parse=(n,o)=>{if(t.coerce)try{n.value=Number(n.value)}catch(a){}const r=n.value;if("number"==typeof r&&!Number.isNaN(r)&&Number.isFinite(r))return n;const i="number"==typeof r?Number.isNaN(r)?"NaN":Number.isFinite(r)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:r,inst:e,...i?{received:i}:{}}),n}}),Dt=E("$ZodNumberFormat",(e,t)=>{Ge.init(e,t),qt.init(e,t)}),Lt=E("$ZodBoolean",(e,t)=>{ct.init(e,t),e._zod.pattern=Fe,e._zod.parse=(n,o)=>{if(t.coerce)try{n.value=Boolean(n.value)}catch(i){}const r=n.value;return"boolean"==typeof r||n.issues.push({expected:"boolean",code:"invalid_type",input:r,inst:e}),n}}),jt=E("$ZodUnknown",(e,t)=>{ct.init(e,t),e._zod.parse=e=>e}),Mt=E("$ZodNever",(e,t)=>{ct.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:"never",code:"invalid_type",input:t.value,inst:e}),t)});function Ft(e,t,n){e.issues.length&&t.issues.push(...K(n,e.issues)),t.value[n]=e.value}var Zt=E("$ZodArray",(e,t)=>{ct.init(e,t),e._zod.parse=(n,o)=>{const r=n.value;if(!Array.isArray(r))return n.issues.push({expected:"array",code:"invalid_type",input:r,inst:e}),n;n.value=Array(r.length);const i=[];for(let e=0;e<r.length;e++){const a=r[e],s=t.element._zod.run({value:a,issues:[]},o);s instanceof Promise?i.push(s.then(t=>Ft(t,n,e))):Ft(s,n,e)}return i.length?Promise.all(i).then(()=>n):n}});function Bt(e,t,n,o,r,i){const a=n in o;if(e.issues.length){if(r&&i&&!a)return;t.issues.push(...K(n,e.issues))}a||r?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 r of t)if(!e.shape?.[r]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${r}": expected a Zod schema`);const n=(o=e.shape,Object.keys(o).filter(e=>"optional"===o[e]._zod.optin&&"optional"===o[e]._zod.optout));var o;return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function Yt(e,t,n,o,r,i){const a=[],s=r.keySet,l=r.catchall._zod,u=l.def.type,c="optional"===l.optin,d="optional"===l.optout;for(const p in t){if("__proto__"===p)continue;if(s.has(p))continue;if("never"===u){a.push(p);continue}const r=l.run({value:t[p],issues:[]},o);r instanceof Promise?e.push(r.then(e=>Bt(e,n,p,t,c,d))):Bt(r,n,p,t,c,d)}return a.length&&n.issues.push({code:"unrecognized_keys",keys:a,input:t,inst:i}),e.length?Promise.all(e).then(()=>n):n}var Wt=E("$ZodObject",(e,t)=>{if(ct.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){const e=t.shape;Object.defineProperty(t,"shape",{get:()=>{const n={...e};return Object.defineProperty(t,"shape",{value:n}),n}})}const n=P(()=>Jt(t));R(e._zod,"propValues",()=>{const e=t.shape,n={};for(const t in e){const o=e[t]._zod;if(o.values){n[t]??(n[t]=new Set);for(const e of o.values)n[t].add(e)}}return n});const o=j,r=t.catchall;let i;e._zod.parse=(t,a)=>{i??(i=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 l=[],u=i.shape;for(const e of i.keys){const n=u[e],o="optional"===n._zod.optin,r="optional"===n._zod.optout,i=n._zod.run({value:s[e],issues:[]},a);i instanceof Promise?l.push(i.then(n=>Bt(n,t,e,s,o,r))):Bt(i,t,e,s,o,r)}return r?Yt(l,s,t,a,n.value,e):l.length?Promise.all(l).then(()=>t):t}}),Vt=E("$ZodObjectJIT",(e,t)=>{Wt.init(e,t);const n=e._zod.parse,o=P(()=>Jt(t));let r;const i=j,a=!T.jitless,s=a&&M.value,l=t.catchall;let u;e._zod.parse=(c,d)=>{u??(u=o.value);const p=c.value;return i(p)?a&&s&&!1===d?.async&&!0!==d.jitless?(r||(r=(e=>{const t=new lt(["shape","payload","ctx"]),n=o.value,r=e=>{const t=D(e);return`shape[${t}]._zod.run({ value: input[${t}], issues: [] }, ctx)`};t.write("const input = payload.value;");const i=Object.create(null);let a=0;for(const o of n.keys)i[o]="key_"+a++;t.write("const newResult = {};");for(const o of n.keys){const n=i[o],a=D(o),s=e[o],l="optional"===s?._zod?.optin,u="optional"===s?._zod?.optout;t.write(`const ${n} = ${r(o)};`),l&&u?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 `):l?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=r(c,d),l?Yt([],p,c,d,u,e):c):n(c,d):(c.issues.push({expected:"object",code:"invalid_type",input:p,inst:e}),c)}});function Ht(e,t,n,o){for(const i of e)if(0===i.issues.length)return t.value=i.value,t;const r=e.filter(e=>!H(e));return 1===r.length?(t.value=r[0].value,r[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>Q(e,o,A())))}),t)}var Gt=E("$ZodUnion",(e,t)=>{ct.init(e,t),R(e._zod,"optin",()=>t.options.some(e=>"optional"===e._zod.optin)?"optional":void 0),R(e._zod,"optout",()=>t.options.some(e=>"optional"===e._zod.optout)?"optional":void 0),R(e._zod,"values",()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),R(e._zod,"pattern",()=>{if(t.options.every(e=>e._zod.pattern)){const e=t.options.map(e=>e._zod.pattern);return new RegExp(`^(${e.map(e=>N(e.source)).join("|")})$`)}});const n=1===t.options.length?t.options[0]._zod.run:null;e._zod.parse=(o,r)=>{if(n)return n(o,r);let i=!1;const a=[];for(const e of t.options){const t=e._zod.run({value:o.value,issues:[]},r);if(t instanceof Promise)a.push(t),i=!0;else{if(0===t.issues.length)return t;a.push(t)}}return i?Promise.all(a).then(t=>Ht(t,o,e,r)):Ht(a,o,e,r)}}),Kt=E("$ZodDiscriminatedUnion",(e,t)=>{t.inclusive=!1,Gt.init(e,t);const n=e._zod.parse;R(e._zod,"propValues",()=>{const e={};for(const n of t.options){const o=n._zod.propValues;if(!o||0===Object.keys(o).length)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(n)}"`);for(const[t,n]of Object.entries(o)){e[t]||(e[t]=new Set);for(const o of n)e[t].add(o)}}return e});const o=P(()=>{const e=t.options,n=new Map;for(const o of e){const e=o._zod.propValues?.[t.discriminator];if(!e||0===e.size)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(o)}"`);for(const t of e){if(n.has(t))throw new Error(`Duplicate discriminator value "${String(t)}"`);n.set(t,o)}}return n});e._zod.parse=(r,i)=>{const a=r.value;if(!j(a))return r.issues.push({code:"invalid_type",expected:"object",input:a,inst:e}),r;const s=o.value.get(a?.[t.discriminator]);return s?s._zod.run(r,i):t.unionFallback||"backward"===i.direction?n(r,i):(r.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}),r)}}),Xt=E("$ZodIntersection",(e,t)=>{ct.init(e,t),e._zod.parse=(e,n)=>{const o=e.value,r=t.left._zod.run({value:o,issues:[]},n),i=t.right._zod.run({value:o,issues:[]},n);return r instanceof Promise||i instanceof Promise?Promise.all([r,i]).then(([t,n])=>en(e,t,n)):en(e,r,i)}});function Qt(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e===+t)return{valid:!0,data:e};if(F(e)&&F(t)){const n=Object.keys(t),o=Object.keys(e).filter(e=>-1!==n.indexOf(e)),r={...e,...t};for(const i of o){const n=Qt(e[i],t[i]);if(!n.valid)return{valid:!1,mergeErrorPath:[i,...n.mergeErrorPath]};r[i]=n.data}return{valid:!0,data:r}}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 r=Qt(e[o],t[o]);if(!r.valid)return{valid:!1,mergeErrorPath:[o,...r.mergeErrorPath]};n.push(r.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function en(e,t,n){const o=new Map;let r;for(const s of t.issues)if("unrecognized_keys"===s.code){r??(r=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 i=[...o].filter(([,e])=>e.l&&e.r).map(([e])=>e);if(i.length&&r&&e.issues.push({...r,keys:i}),H(e))return e;const a=Qt(t.value,n.value);if(!a.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(a.mergeErrorPath)}`);return e.value=a.data,e}var tn=E("$ZodRecord",(e,t)=>{ct.init(e,t),e._zod.parse=(n,o)=>{const r=n.value;if(!F(r))return n.issues.push({expected:"record",code:"invalid_type",input:r,inst:e}),n;const i=[],a=t.keyType._zod.values;if(a){n.value={};const s=new Set;for(const u of a)if("string"==typeof u||"number"==typeof u||"symbol"==typeof u){s.add("number"==typeof u?u.toString():u);const a=t.keyType._zod.run({value:u,issues:[]},o);if(a instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(a.issues.length){n.issues.push({code:"invalid_key",origin:"record",issues:a.issues.map(e=>Q(e,o,A())),input:u,path:[u],inst:e});continue}const l=a.value,c=t.valueType._zod.run({value:r[u],issues:[]},o);c instanceof Promise?i.push(c.then(e=>{e.issues.length&&n.issues.push(...K(u,e.issues)),n.value[l]=e.value})):(c.issues.length&&n.issues.push(...K(u,c.issues)),n.value[l]=c.value)}let l;for(const e in r)s.has(e)||(l=l??[],l.push(e));l&&l.length>0&&n.issues.push({code:"unrecognized_keys",input:r,inst:e,keys:l})}else{n.value={};for(const a of Reflect.ownKeys(r)){if("__proto__"===a)continue;if(!Object.prototype.propertyIsEnumerable.call(r,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&&Me.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]=r[a]:n.issues.push({code:"invalid_key",origin:"record",issues:s.issues.map(e=>Q(e,o,A())),input:a,path:[a],inst:e});continue}const l=t.valueType._zod.run({value:r[a],issues:[]},o);l instanceof Promise?i.push(l.then(e=>{e.issues.length&&n.issues.push(...K(a,e.issues)),n.value[s.value]=e.value})):(l.issues.length&&n.issues.push(...K(a,l.issues)),n.value[s.value]=l.value)}}return i.length?Promise.all(i).then(()=>n):n}}),nn=E("$ZodEnum",(e,t)=>{ct.init(e,t);const n=z(t.entries),o=new Set(n);e._zod.values=o,e._zod.pattern=new RegExp(`^(${n.filter(e=>B.has(typeof e)).map(e=>"string"==typeof e?J(e):e.toString()).join("|")})$`),e._zod.parse=(t,r)=>{const i=t.value;return o.has(i)||t.issues.push({code:"invalid_value",values:n,input:i,inst:e}),t}}),on=E("$ZodLiteral",(e,t)=>{if(ct.init(e,t),0===t.values.length)throw new Error("Cannot create literal schema with no valid values");const n=new Set(t.values);e._zod.values=n,e._zod.pattern=new RegExp(`^(${t.values.map(e=>"string"==typeof e?J(e):e?J(e.toString()):String(e)).join("|")})$`),e._zod.parse=(o,r)=>{const i=o.value;return n.has(i)||o.issues.push({code:"invalid_value",values:t.values,input:i,inst:e}),o}}),rn=E("$ZodTransform",(e,t)=>{ct.init(e,t),e._zod.optin="optional",e._zod.parse=(n,o)=>{if("backward"===o.direction)throw new x(e.constructor.name);const r=t.transform(n.value,n);if(o.async)return(r instanceof Promise?r:Promise.resolve(r)).then(e=>(n.value=e,n.fallback=!0,n));if(r instanceof Promise)throw new O;return n.value=r,n.fallback=!0,n}});function an(e,t){return void 0===t&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}var sn=E("$ZodOptional",(e,t)=>{ct.init(e,t),e._zod.optin="optional",e._zod.optout="optional",R(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),R(e._zod,"pattern",()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${N(e.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if("optional"===t.innerType._zod.optin){const o=e.value,r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>an(e,o)):an(r,o)}return void 0===e.value?e:t.innerType._zod.run(e,n)}}),ln=E("$ZodExactOptional",(e,t)=>{sn.init(e,t),R(e._zod,"values",()=>t.innerType._zod.values),R(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(e,n)=>t.innerType._zod.run(e,n)}),un=E("$ZodNullable",(e,t)=>{ct.init(e,t),R(e._zod,"optin",()=>t.innerType._zod.optin),R(e._zod,"optout",()=>t.innerType._zod.optout),R(e._zod,"pattern",()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${N(e.source)}|null)$`):void 0}),R(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>null===e.value?e:t.innerType._zod.run(e,n)}),cn=E("$ZodDefault",(e,t)=>{ct.init(e,t),e._zod.optin="optional",R(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);if(void 0===e.value)return e.value=t.defaultValue,e;const o=t.innerType._zod.run(e,n);return o instanceof Promise?o.then(e=>dn(e,t)):dn(o,t)}});function dn(e,t){return void 0===e.value&&(e.value=t.defaultValue),e}var pn=E("$ZodPrefault",(e,t)=>{ct.init(e,t),e._zod.optin="optional",R(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>("backward"===n.direction||void 0===e.value&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),fn=E("$ZodNonOptional",(e,t)=>{ct.init(e,t),R(e._zod,"values",()=>{const e=t.innerType._zod.values;return e?new Set([...e].filter(e=>void 0!==e)):void 0}),e._zod.parse=(n,o)=>{const r=t.innerType._zod.run(n,o);return r instanceof Promise?r.then(t=>mn(t,e)):mn(r,e)}});function mn(e,t){return e.issues.length||void 0!==e.value||e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}var _n=E("$ZodCatch",(e,t)=>{ct.init(e,t),e._zod.optin="optional",R(e._zod,"optout",()=>t.innerType._zod.optout),R(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);const o=t.innerType._zod.run(e,n);return o instanceof Promise?o.then(o=>(e.value=o.value,o.issues.length&&(e.value=t.catchValue({...e,error:{issues:o.issues.map(e=>Q(e,n,A()))},input:e.value}),e.issues=[],e.fallback=!0),e)):(e.value=o.value,o.issues.length&&(e.value=t.catchValue({...e,error:{issues:o.issues.map(e=>Q(e,n,A()))},input:e.value}),e.issues=[],e.fallback=!0),e)}}),hn=E("$ZodPipe",(e,t)=>{ct.init(e,t),R(e._zod,"values",()=>t.in._zod.values),R(e._zod,"optin",()=>t.in._zod.optin),R(e._zod,"optout",()=>t.out._zod.optout),R(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if("backward"===n.direction){const o=t.out._zod.run(e,n);return o instanceof Promise?o.then(e=>yn(e,t.in,n)):yn(o,t.in,n)}const o=t.in._zod.run(e,n);return o instanceof Promise?o.then(e=>yn(e,t.out,n)):yn(o,t.out,n)}});function yn(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues,fallback:e.fallback},n)}var gn=E("$ZodPreprocess",(e,t)=>{hn.init(e,t)}),bn=E("$ZodReadonly",(e,t)=>{ct.init(e,t),R(e._zod,"propValues",()=>t.innerType._zod.propValues),R(e._zod,"values",()=>t.innerType._zod.values),R(e._zod,"optin",()=>t.innerType?._zod?.optin),R(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);const o=t.innerType._zod.run(e,n);return o instanceof Promise?o.then(vn):vn(o)}});function vn(e){return e.value=Object.freeze(e.value),e}var wn,Sn=E("$ZodCustom",(e,t)=>{Je.init(e,t),ct.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{const o=n.value,r=t.fn(o);if(r instanceof Promise)return r.then(t=>kn(t,n,o,e));kn(r,n,o,e)}});function kn(e,t,n,o){if(!e){const e={code:"custom",input:n,inst:o,path:[...o._zod.def.path??[]],continue:!o._zod.def.abort};o._zod.def.params&&(e.params=o._zod.def.params),t.issues.push(te(e))}}var En=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){const n=t[0];return this._map.set(e,n),n&&"object"==typeof n&&"id"in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){const t=this._map.get(e);return t&&"object"==typeof t&&"id"in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){const t=e._zod.parent;if(t){const n={...this.get(t)??{}};delete n.id;const o={...n,...this._map.get(e)};return Object.keys(o).length?o:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};(wn=globalThis).__zod_globalRegistry??(wn.__zod_globalRegistry=new En);var On=globalThis.__zod_globalRegistry;function xn(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...W(t)})}function Tn(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...W(t)})}function An(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...W(t)})}function zn(e,t){return new We({check:"less_than",...W(t),value:e,inclusive:!1})}function In(e,t){return new We({check:"less_than",...W(t),value:e,inclusive:!0})}function Pn(e,t){return new Ve({check:"greater_than",...W(t),value:e,inclusive:!1})}function Cn(e,t){return new Ve({check:"greater_than",...W(t),value:e,inclusive:!0})}function Nn(e,t){return new He({check:"multiple_of",...W(t),value:e})}function $n(e,t){return new Ke({check:"max_length",...W(t),maximum:e})}function Rn(e,t){return new Xe({check:"min_length",...W(t),minimum:e})}function Un(e,t){return new Qe({check:"length_equals",...W(t),length:e})}function qn(e){return new st({check:"overwrite",tx:e})}function Dn(e,t){const n=new Je({check:"custom",...W(t)});return n._zod.check=e,n}function Ln(e){let t=e?.target??"draft-2020-12";return"draft-4"===t&&(t="draft-04"),"draft-7"===t&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??On,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function jn(e,t,n={path:[],schemaPath:[]}){var o;const r=e._zod.def,i=t.seen.get(e);if(i)return i.count++,n.schemaPath.includes(e)&&(i.cycle=n.path),i.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,i=t.processors[r.type];if(!i)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${r.type}`);i(e,t,n,o)}const i=e._zod.parent;i&&(a.ref||(a.ref=i),jn(i,t,o),t.seen.get(i).isParent=!0)}const l=t.metadataRegistry.get(e);return l&&Object.assign(a.schema,l),"input"===t.io&&Zn(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 Mn(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const o=new Map;for(const i of e.seen.entries()){const t=e.metadataRegistry.get(i[0])?.id;if(t){const e=o.get(t);if(e&&e!==i[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,i[0])}}const r=t=>{if(t[1].schema.$ref)return;const o=t[1],{ref:r,defId:i}=(t=>{const o="draft-2020-12"===e.target?"$defs":"definitions";if(e.external){const n=e.external.registry.get(t[0])?.id,r=e.external.uri??(e=>e);if(n)return{ref:r(n)};const i=t[1].defId??t[1].schema.id??"schema"+e.counter++;return t[1].defId=i,{defId:i,ref:`${r("__shared")}#/${o}/${i}`}}if(t[1]===n)return{ref:"#"};const r=`#/${o}/`,i=t[1].schema.id??"__schema"+e.counter++;return{defId:i,ref:r+i}})(t);o.def={...o.schema},i&&(o.defId=i);const a=o.schema;for(const e in a)delete a[e];a.$ref=r};if("throw"===e.cycles)for(const i of e.seen.entries()){const e=i[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 i of e.seen.entries()){const n=i[1];if(t!==i[0]){if(e.external){const n=e.external.registry.get(i[0])?.id;if(t!==i[0]&&n){r(i);continue}}(e.metadataRegistry.get(i[0])?.id||n.cycle||n.count>1&&"ref"===e.reused)&&r(i)}else r(i)}}function Fn(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 r=n.def??n.schema,i={...r},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(r,s):(r.allOf=r.allOf??[],r.allOf.push(s)),Object.assign(r,i),t._zod.parent===a)for(const e in r)"$ref"!==e&&"allOf"!==e&&(e in i||delete r[e]);if(s.$ref&&n.def)for(const e in r)"$ref"!==e&&"allOf"!==e&&e in n.def&&JSON.stringify(r[e])===JSON.stringify(n.def[e])&&delete r[e]}const s=t._zod.parent;if(s&&s!==a){o(s);const t=e.seen.get(s);if(t?.schema.$ref&&(r.$ref=t.schema.$ref,t.def))for(const e in r)"$ref"!==e&&"allOf"!==e&&e in t.def&&JSON.stringify(r[e])===JSON.stringify(t.def[e])&&delete r[e]}e.override({zodSchema:t,jsonSchema:r,path:n.path??[]})};for(const l of[...e.seen.entries()].reverse())o(l[0]);const r={};if("draft-2020-12"===e.target?r.$schema="https://json-schema.org/draft/2020-12/schema":"draft-07"===e.target?r.$schema="http://json-schema.org/draft-07/schema#":"draft-04"===e.target?r.$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");r.$id=e.external.uri(n)}Object.assign(r,n.def??n.schema);const i=e.metadataRegistry.get(t)?.id;void 0!==i&&r.id===i&&delete r.id;const a=e.external?.defs??{};for(const l of e.seen.entries()){const e=l[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?r.$defs=a:r.definitions=a);try{const n=JSON.parse(JSON.stringify(r));return Object.defineProperty(n,"~standard",{value:{...t["~standard"],jsonSchema:{input:Bn(t,"input",e.processors),output:Bn(t,"output",e.processors)}},enumerable:!1,writable:!1}),n}catch(s){throw new Error("Error converting schema to JSON.")}}function Zn(e,t){const n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);const o=e._zod.def;if("transform"===o.type)return!0;if("array"===o.type)return Zn(o.element,n);if("set"===o.type)return Zn(o.valueType,n);if("lazy"===o.type)return Zn(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 Zn(o.innerType,n);if("intersection"===o.type)return Zn(o.left,n)||Zn(o.right,n);if("record"===o.type||"map"===o.type)return Zn(o.keyType,n)||Zn(o.valueType,n);if("pipe"===o.type)return!!e._zod.traits.has("$ZodCodec")||(Zn(o.in,n)||Zn(o.out,n));if("object"===o.type){for(const e in o.shape)if(Zn(o.shape[e],n))return!0;return!1}if("union"===o.type){for(const e of o.options)if(Zn(e,n))return!0;return!1}if("tuple"===o.type){for(const e of o.items)if(Zn(e,n))return!0;return!(!o.rest||!Zn(o.rest,n))}return!1}var Bn=(e,t,n={})=>o=>{const{libraryOptions:r,target:i}=o??{},a=Ln({...r??{},target:i,io:t,processors:n});return jn(e,a),Mn(a,e),Fn(a,e)},Jn={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Yn=(e,t,n,o)=>{const r=e._zod.def;jn(r.innerType,t,o);t.seen.get(e).ref=r.innerType},Wn=E("ZodISODateTime",(e,t)=>{Et.init(e,t),So.init(e,t)});function Vn(e){return function(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...W(t)})}(Wn,e)}var Hn=E("ZodISODate",(e,t)=>{Ot.init(e,t),So.init(e,t)});function Gn(e){return function(e,t){return new e({type:"string",format:"date",check:"string_format",...W(t)})}(Hn,e)}var Kn=E("ZodISOTime",(e,t)=>{xt.init(e,t),So.init(e,t)});function Xn(e){return function(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...W(t)})}(Kn,e)}var Qn=E("ZodISODuration",(e,t)=>{Tt.init(e,t),So.init(e,t)});function eo(e){return function(e,t){return new e({type:"string",format:"duration",check:"string_format",...W(t)})}(Qn,e)}var to=(e,t)=>{oe.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:t=>function(e,t=e=>e.message){const n={_errors:[]},o=(e,r=[])=>{for(const i of e.issues)if("invalid_union"===i.code&&i.errors.length)i.errors.map(e=>o({issues:e},[...r,...i.path]));else if("invalid_key"===i.code)o({issues:i.issues},[...r,...i.path]);else if("invalid_element"===i.code)o({issues:i.issues},[...r,...i.path]);else{const e=[...r,...i.path];if(0===e.length)n._errors.push(t(i));else{let o=n,r=0;for(;r<e.length;){const n=e[r];r!==e.length-1?o[n]=o[n]||{_errors:[]}:(o[n]=o[n]||{_errors:[]},o[n]._errors.push(t(i))),o=o[n],r++}}}};return o(e),n}(e,t)},flatten:{value:t=>function(e,t=e=>e.message){const n={},o=[];for(const r of e.issues)r.path.length>0?(n[r.path[0]]=n[r.path[0]]||[],n[r.path[0]].push(t(r))):o.push(t(r));return{formErrors:o,fieldErrors:n}}(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,I,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,I,2)}},isEmpty:{get:()=>0===e.issues.length}})},no=E("ZodError",to,{Parent:Error}),oo=ie(no),ro=ae(no),io=se(no),ao=ue(no),so=de(no),lo=pe(no),uo=fe(no),co=me(no),po=_e(no),fo=he(no),mo=ye(no),_o=ge(no),ho=new WeakMap;function yo(e,t,n){const o=Object.getPrototypeOf(e);let r=ho.get(o);if(r||(r=new Set,ho.set(o,r)),!r.has(t)){r.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 go=E("ZodType",(e,t)=>(ct.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:Bn(e,"input"),output:Bn(e,"output")}}),e.toJSONSchema=((e,t={})=>n=>{const o=Ln({...n,processors:t});return jn(e,o),Mn(o,e),Fn(o,e)})(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.parse=(t,n)=>oo(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>io(e,t,n),e.parseAsync=async(t,n)=>ro(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>ao(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>so(e,t,n),e.decode=(t,n)=>lo(e,t,n),e.encodeAsync=async(t,n)=>uo(e,t,n),e.decodeAsync=async(t,n)=>co(e,t,n),e.safeEncode=(t,n)=>po(e,t,n),e.safeDecode=(t,n)=>fo(e,t,n),e.safeEncodeAsync=async(t,n)=>mo(e,t,n),e.safeDecodeAsync=async(t,n)=>_o(e,t,n),yo(e,"ZodType",{check(...e){const t=this.def;return this.clone(q(t,{checks:[...t.checks??[],...e.map(e=>"function"==typeof e?{_zod:{check:e,def:{check:"custom"},onattach:[]}}:e)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return Y(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(function(e,t={}){return function(e,t,n){return new e({type:"custom",check:"custom",fn:t,...W(n)})}(zr,e,t)}(e,t))},superRefine(e,t){return this.check(function(e,t){return function(e,t){const n=Dn(t=>(t.addIssue=e=>{if("string"==typeof e)t.issues.push(te(e,t.value,n._zod.def));else{const o=e;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=t.value),o.inst??(o.inst=n),o.continue??(o.continue=!n._zod.def.abort),t.issues.push(te(o))}},e(t.value,t)),t);return n}(e,t)}(e,t))},overwrite(e){return this.check(qn(e))},optional(){return yr(this)},exactOptional(){return new gr({type:"optional",innerType:this})},nullable(){return vr(this)},nullish(){return yr(vr(this))},nonoptional(e){return function(e,t){return new kr({type:"nonoptional",innerType:e,...W(t)})}(this,e)},array(){return er(this)},or(e){return rr([this,e])},and(e){return new sr({type:"intersection",left:this,right:e})},transform(e){return xr(this,_r(e))},default(e){return t=e,new wr({type:"default",innerType:this,get defaultValue(){return"function"==typeof t?t():Z(t)}});var t},prefault(e){return t=e,new Sr({type:"prefault",innerType:this,get defaultValue(){return"function"==typeof t?t():Z(t)}});var t},catch(e){return new Er({type:"catch",innerType:this,catchValue:"function"==typeof(t=e)?t:()=>t});var t},pipe(e){return xr(this,e)},readonly(){return new Ar({type:"readonly",innerType:this})},describe(e){const t=this.clone();return On.add(t,{description:e}),t},meta(...e){if(0===e.length)return On.get(this);const t=this.clone();return On.add(t,e[0]),t},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e){return e(this)}}),Object.defineProperty(e,"description",{get:()=>On.get(e)?.description,configurable:!0}),e)),bo=E("_ZodString",(e,t)=>{dt.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n)=>{const o=n;o.type="string";const{minimum:r,maximum:i,format:a,patterns:s,contentEncoding:l}=e._zod.bag;if("number"==typeof r&&(o.minLength=r),"number"==typeof i&&(o.maxLength=i),a&&(o.format=Jn[a]??a,""===o.format&&delete o.format,"time"===a&&delete o.format),l&&(o.contentEncoding=l),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,yo(e,"_ZodString",{regex(...e){return this.check(function(e,t){return new tt({check:"string_format",format:"regex",...W(t),pattern:e})}(...e))},includes(...e){return this.check(function(e,t){return new rt({check:"string_format",format:"includes",...W(t),includes:e})}(...e))},startsWith(...e){return this.check(function(e,t){return new it({check:"string_format",format:"starts_with",...W(t),prefix:e})}(...e))},endsWith(...e){return this.check(function(e,t){return new at({check:"string_format",format:"ends_with",...W(t),suffix:e})}(...e))},min(...e){return this.check(Rn(...e))},max(...e){return this.check($n(...e))},length(...e){return this.check(Un(...e))},nonempty(...e){return this.check(Rn(1,...e))},lowercase(e){return this.check(function(e){return new nt({check:"string_format",format:"lowercase",...W(e)})}(e))},uppercase(e){return this.check(function(e){return new ot({check:"string_format",format:"uppercase",...W(e)})}(e))},trim(){return this.check(qn(e=>e.trim()))},normalize(...e){return this.check(function(e){return qn(t=>t.normalize(e))}(...e))},toLowerCase(){return this.check(qn(e=>e.toLowerCase()))},toUpperCase(){return this.check(qn(e=>e.toUpperCase()))},slugify(){return this.check(qn(e=>function(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}(e)))}})}),vo=E("ZodString",(e,t)=>{dt.init(e,t),bo.init(e,t),e.email=t=>e.check(xn(ko,t)),e.url=t=>e.check(An(To,t)),e.jwt=t=>e.check(function(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...W(t)})}(Fo,t)),e.emoji=t=>e.check(function(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...W(t)})}(Ao,t)),e.guid=t=>e.check(Tn(Oo,t)),e.uuid=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...W(t)})}(xo,t)),e.uuidv4=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...W(t)})}(xo,t)),e.uuidv6=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...W(t)})}(xo,t)),e.uuidv7=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...W(t)})}(xo,t)),e.nanoid=t=>e.check(function(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...W(t)})}(zo,t)),e.guid=t=>e.check(Tn(Oo,t)),e.cuid=t=>e.check(function(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...W(t)})}(Io,t)),e.cuid2=t=>e.check(function(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...W(t)})}(Po,t)),e.ulid=t=>e.check(function(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...W(t)})}(Co,t)),e.base64=t=>e.check(function(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...W(t)})}(Lo,t)),e.base64url=t=>e.check(function(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...W(t)})}(jo,t)),e.xid=t=>e.check(function(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...W(t)})}(No,t)),e.ksuid=t=>e.check(function(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...W(t)})}($o,t)),e.ipv4=t=>e.check(function(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...W(t)})}(Ro,t)),e.ipv6=t=>e.check(function(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...W(t)})}(Uo,t)),e.cidrv4=t=>e.check(function(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...W(t)})}(qo,t)),e.cidrv6=t=>e.check(function(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...W(t)})}(Do,t)),e.e164=t=>e.check(function(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...W(t)})}(Mo,t)),e.datetime=t=>e.check(Vn(t)),e.date=t=>e.check(Gn(t)),e.time=t=>e.check(Xn(t)),e.duration=t=>e.check(eo(t))});function wo(e){return function(e,t){return new e({type:"string",...W(t)})}(vo,e)}var So=E("ZodStringFormat",(e,t)=>{pt.init(e,t),bo.init(e,t)}),ko=E("ZodEmail",(e,t)=>{_t.init(e,t),So.init(e,t)});function Eo(e){return xn(ko,e)}var Oo=E("ZodGUID",(e,t)=>{ft.init(e,t),So.init(e,t)}),xo=E("ZodUUID",(e,t)=>{mt.init(e,t),So.init(e,t)}),To=E("ZodURL",(e,t)=>{ht.init(e,t),So.init(e,t)});var Ao=E("ZodEmoji",(e,t)=>{yt.init(e,t),So.init(e,t)}),zo=E("ZodNanoID",(e,t)=>{gt.init(e,t),So.init(e,t)}),Io=E("ZodCUID",(e,t)=>{bt.init(e,t),So.init(e,t)}),Po=E("ZodCUID2",(e,t)=>{vt.init(e,t),So.init(e,t)}),Co=E("ZodULID",(e,t)=>{wt.init(e,t),So.init(e,t)}),No=E("ZodXID",(e,t)=>{St.init(e,t),So.init(e,t)}),$o=E("ZodKSUID",(e,t)=>{kt.init(e,t),So.init(e,t)}),Ro=E("ZodIPv4",(e,t)=>{At.init(e,t),So.init(e,t)}),Uo=E("ZodIPv6",(e,t)=>{zt.init(e,t),So.init(e,t)}),qo=E("ZodCIDRv4",(e,t)=>{It.init(e,t),So.init(e,t)}),Do=E("ZodCIDRv6",(e,t)=>{Pt.init(e,t),So.init(e,t)}),Lo=E("ZodBase64",(e,t)=>{Nt.init(e,t),So.init(e,t)}),jo=E("ZodBase64URL",(e,t)=>{$t.init(e,t),So.init(e,t)}),Mo=E("ZodE164",(e,t)=>{Rt.init(e,t),So.init(e,t)}),Fo=E("ZodJWT",(e,t)=>{Ut.init(e,t),So.init(e,t)}),Zo=E("ZodNumber",(e,t)=>{qt.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n)=>{const o=n,{minimum:r,maximum:i,format:a,multipleOf:s,exclusiveMaximum:l,exclusiveMinimum:u}=e._zod.bag;"string"==typeof a&&a.includes("int")?o.type="integer":o.type="number";const c="number"==typeof u&&u>=(r??Number.NEGATIVE_INFINITY),d="number"==typeof l&&l<=(i??Number.POSITIVE_INFINITY),p="draft-04"===t.target||"openapi-3.0"===t.target;c?p?(o.minimum=u,o.exclusiveMinimum=!0):o.exclusiveMinimum=u:"number"==typeof r&&(o.minimum=r),d?p?(o.maximum=l,o.exclusiveMaximum=!0):o.exclusiveMaximum=l:"number"==typeof i&&(o.maximum=i),"number"==typeof s&&(o.multipleOf=s)})(e,t,n),yo(e,"ZodNumber",{gt(e,t){return this.check(Pn(e,t))},gte(e,t){return this.check(Cn(e,t))},min(e,t){return this.check(Cn(e,t))},lt(e,t){return this.check(zn(e,t))},lte(e,t){return this.check(In(e,t))},max(e,t){return this.check(In(e,t))},int(e){return this.check(Yo(e))},safe(e){return this.check(Yo(e))},positive(e){return this.check(Pn(0,e))},nonnegative(e){return this.check(Cn(0,e))},negative(e){return this.check(zn(0,e))},nonpositive(e){return this.check(In(0,e))},multipleOf(e,t){return this.check(Nn(e,t))},step(e,t){return this.check(Nn(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 Bo(e){return function(e,t){return new e({type:"number",checks:[],...W(t)})}(Zo,e)}var Jo=E("ZodNumberFormat",(e,t)=>{Dt.init(e,t),Zo.init(e,t)});function Yo(e){return function(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...W(t)})}(Jo,e)}var Wo=E("ZodBoolean",(e,t)=>{Lt.init(e,t),go.init(e,t),e._zod.processJSONSchema=(e,t,n)=>((e,t,n)=>{n.type="boolean"})(0,0,t)});function Vo(e){return function(e,t){return new e({type:"boolean",...W(t)})}(Wo,e)}var Ho=E("ZodUnknown",(e,t)=>{jt.init(e,t),go.init(e,t),e._zod.processJSONSchema=(e,t,n)=>{}});function Go(){return new Ho({type:"unknown"})}var Ko=E("ZodNever",(e,t)=>{Mt.init(e,t),go.init(e,t),e._zod.processJSONSchema=(e,t,n)=>((e,t,n)=>{n.not={}})(0,0,t)});function Xo(e){return function(e,t){return new e({type:"never",...W(t)})}(Ko,e)}var Qo=E("ZodArray",(e,t)=>{Zt.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const r=n,i=e._zod.def,{minimum:a,maximum:s}=e._zod.bag;"number"==typeof a&&(r.minItems=a),"number"==typeof s&&(r.maxItems=s),r.type="array",r.items=jn(i.element,t,{...o,path:[...o.path,"items"]})})(e,t,n,o),e.element=t.element,yo(e,"ZodArray",{min(e,t){return this.check(Rn(e,t))},nonempty(e){return this.check(Rn(1,e))},max(e,t){return this.check($n(e,t))},length(e,t){return this.check(Un(e,t))},unwrap(){return this.element}})});function er(e,t){return function(e,t,n){return new e({type:"array",element:t,...W(n)})}(Qo,e,t)}var tr=E("ZodObject",(e,t)=>{Vt.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const r=n,i=e._zod.def;r.type="object",r.properties={};const a=i.shape;for(const u in a)r.properties[u]=jn(a[u],t,{...o,path:[...o.path,"properties",u]});const s=new Set(Object.keys(a)),l=new Set([...s].filter(e=>{const n=i.shape[e]._zod;return"input"===t.io?void 0===n.optin:void 0===n.optout}));l.size>0&&(r.required=Array.from(l)),"never"===i.catchall?._zod.def.type?r.additionalProperties=!1:i.catchall?i.catchall&&(r.additionalProperties=jn(i.catchall,t,{...o,path:[...o.path,"additionalProperties"]})):"output"===t.io&&(r.additionalProperties=!1)})(e,t,n,o),R(e,"shape",()=>t.shape),yo(e,"ZodObject",{keyof(){return dr(Object.keys(this._zod.def.shape))},catchall(e){return this.clone({...this._zod.def,catchall:e})},passthrough(){return this.clone({...this._zod.def,catchall:Go()})},loose(){return this.clone({...this._zod.def,catchall:Go()})},strict(){return this.clone({...this._zod.def,catchall:Xo()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(e){return function(e,t){if(!F(t))throw new Error("Invalid input to extend: expected a plain object");const n=e._zod.def.checks;if(n&&n.length>0){const n=e._zod.def.shape;for(const e in t)if(void 0!==Object.getOwnPropertyDescriptor(n,e))throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return Y(e,q(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return U(this,"shape",n),n}}))}(this,e)},safeExtend(e){return function(e,t){if(!F(t))throw new Error("Invalid input to safeExtend: expected a plain object");return Y(e,q(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return U(this,"shape",n),n}}))}(this,e)},merge(e){return function(e,t){if(e._zod.def.checks?.length)throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");return Y(e,q(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t._zod.def.shape};return U(this,"shape",n),n},get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]}))}(this,e)},pick(e){return function(e,t){const n=e._zod.def,o=n.checks;if(o&&o.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");return Y(e,q(e._zod.def,{get shape(){const e={};for(const o in t){if(!(o in n.shape))throw new Error(`Unrecognized key: "${o}"`);t[o]&&(e[o]=n.shape[o])}return U(this,"shape",e),e},checks:[]}))}(this,e)},omit(e){return function(e,t){const n=e._zod.def,o=n.checks;if(o&&o.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");return Y(e,q(e._zod.def,{get shape(){const o={...e._zod.def.shape};for(const e in t){if(!(e in n.shape))throw new Error(`Unrecognized key: "${e}"`);t[e]&&delete o[e]}return U(this,"shape",o),o},checks:[]}))}(this,e)},partial(...e){return function(e,t,n){const o=t._zod.def.checks;if(o&&o.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");return Y(t,q(t._zod.def,{get shape(){const o=t._zod.def.shape,r={...o};if(n)for(const t in n){if(!(t in o))throw new Error(`Unrecognized key: "${t}"`);n[t]&&(r[t]=e?new e({type:"optional",innerType:o[t]}):o[t])}else for(const t in o)r[t]=e?new e({type:"optional",innerType:o[t]}):o[t];return U(this,"shape",r),r},checks:[]}))}(hr,this,e[0])},required(...e){return t=kr,n=this,o=e[0],Y(n,q(n._zod.def,{get shape(){const e=n._zod.def.shape,r={...e};if(o)for(const n in o){if(!(n in r))throw new Error(`Unrecognized key: "${n}"`);o[n]&&(r[n]=new t({type:"nonoptional",innerType:e[n]}))}else for(const n in e)r[n]=new t({type:"nonoptional",innerType:e[n]});return U(this,"shape",r),r}}));var t,n,o}})});function nr(e,t){const n={type:"object",shape:e??{},...W(t)};return new tr(n)}var or=E("ZodUnion",(e,t)=>{Gt.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const r=e._zod.def,i=!1===r.inclusive,a=r.options.map((e,n)=>jn(e,t,{...o,path:[...o.path,i?"oneOf":"anyOf",n]}));i?n.oneOf=a:n.anyOf=a})(e,t,n,o),e.options=t.options});function rr(e,t){return new or({type:"union",options:e,...W(t)})}var ir=E("ZodDiscriminatedUnion",(e,t)=>{or.init(e,t),Kt.init(e,t)});function ar(e,t,n){return new ir({type:"union",options:t,discriminator:e,...W(n)})}var sr=E("ZodIntersection",(e,t)=>{Xt.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const r=e._zod.def,i=jn(r.left,t,{...o,path:[...o.path,"allOf",0]}),a=jn(r.right,t,{...o,path:[...o.path,"allOf",1]}),s=e=>"allOf"in e&&1===Object.keys(e).length;n.allOf=[...s(i)?i.allOf:[i],...s(a)?a.allOf:[a]]})(e,t,n,o)});var lr=E("ZodRecord",(e,t)=>{tn.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const r=n,i=e._zod.def;r.type="object";const a=i.keyType,s=a._zod.bag?.patterns;if("loose"===i.mode&&s&&s.size>0){const e=jn(i.valueType,t,{...o,path:[...o.path,"patternProperties","*"]});r.patternProperties={};for(const t of s)r.patternProperties[t.source]=e}else"draft-07"!==t.target&&"draft-2020-12"!==t.target||(r.propertyNames=jn(i.keyType,t,{...o,path:[...o.path,"propertyNames"]})),r.additionalProperties=jn(i.valueType,t,{...o,path:[...o.path,"additionalProperties"]});const l=a._zod.values;if(l){const e=[...l].filter(e=>"string"==typeof e||"number"==typeof e);e.length>0&&(r.required=e)}})(e,t,n,o),e.keyType=t.keyType,e.valueType=t.valueType});function ur(e,t,n){return t&&t._zod?new lr({type:"record",keyType:e,valueType:t,...W(n)}):new lr({type:"record",keyType:wo(),valueType:e,...W(t)})}var cr=E("ZodEnum",(e,t)=>{nn.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n)=>{const o=z(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 r={};for(const i of e){if(!n.has(i))throw new Error(`Key ${i} not found in enum`);r[i]=t.entries[i]}return new cr({...t,checks:[],...W(o),entries:r})},e.exclude=(e,o)=>{const r={...t.entries};for(const t of e){if(!n.has(t))throw new Error(`Key ${t} not found in enum`);delete r[t]}return new cr({...t,checks:[],...W(o),entries:r})}});function dr(e,t){const n=Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e;return new cr({type:"enum",entries:n,...W(t)})}var pr=E("ZodLiteral",(e,t)=>{on.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n)=>{const o=e._zod.def,r=[];for(const i of o.values)if(void 0===i){if("throw"===t.unrepresentable)throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if("bigint"==typeof i){if("throw"===t.unrepresentable)throw new Error("BigInt literals cannot be represented in JSON Schema");r.push(Number(i))}else r.push(i);if(0===r.length);else if(1===r.length){const e=r[0];n.type=null===e?"null":typeof e,"draft-04"===t.target||"openapi-3.0"===t.target?n.enum=[e]:n.const=e}else r.every(e=>"number"==typeof e)&&(n.type="number"),r.every(e=>"string"==typeof e)&&(n.type="string"),r.every(e=>"boolean"==typeof e)&&(n.type="boolean"),r.every(e=>null===e)&&(n.type="null"),n.enum=r})(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 fr(e,t){return new pr({type:"literal",values:Array.isArray(e)?e:[e],...W(t)})}var mr=E("ZodTransform",(e,t)=>{rn.init(e,t),go.init(e,t),e._zod.processJSONSchema=(e,t,n)=>((e,t)=>{if("throw"===t.unrepresentable)throw new Error("Transforms cannot be represented in JSON Schema")})(0,e),e._zod.parse=(n,o)=>{if("backward"===o.direction)throw new x(e.constructor.name);n.addIssue=o=>{if("string"==typeof o)n.issues.push(te(o,n.value,t));else{const t=o;t.fatal&&(t.continue=!1),t.code??(t.code="custom"),t.input??(t.input=n.value),t.inst??(t.inst=e),n.issues.push(te(t))}};const r=t.transform(n.value,n);return r instanceof Promise?r.then(e=>(n.value=e,n.fallback=!0,n)):(n.value=r,n.fallback=!0,n)}});function _r(e){return new mr({type:"transform",transform:e})}var hr=E("ZodOptional",(e,t)=>{sn.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>Yn(e,t,0,o),e.unwrap=()=>e._zod.def.innerType});function yr(e){return new hr({type:"optional",innerType:e})}var gr=E("ZodExactOptional",(e,t)=>{ln.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>Yn(e,t,0,o),e.unwrap=()=>e._zod.def.innerType});var br=E("ZodNullable",(e,t)=>{un.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const r=e._zod.def,i=jn(r.innerType,t,o),a=t.seen.get(e);"openapi-3.0"===t.target?(a.ref=r.innerType,n.nullable=!0):n.anyOf=[i,{type:"null"}]})(e,t,n,o),e.unwrap=()=>e._zod.def.innerType});function vr(e){return new br({type:"nullable",innerType:e})}var wr=E("ZodDefault",(e,t)=>{cn.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const r=e._zod.def;jn(r.innerType,t,o),t.seen.get(e).ref=r.innerType,n.default=JSON.parse(JSON.stringify(r.defaultValue))})(e,t,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});var Sr=E("ZodPrefault",(e,t)=>{pn.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const r=e._zod.def;jn(r.innerType,t,o),t.seen.get(e).ref=r.innerType,"input"===t.io&&(n._prefault=JSON.parse(JSON.stringify(r.defaultValue)))})(e,t,n,o),e.unwrap=()=>e._zod.def.innerType});var kr=E("ZodNonOptional",(e,t)=>{fn.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const r=e._zod.def;jn(r.innerType,t,o),t.seen.get(e).ref=r.innerType})(e,t,0,o),e.unwrap=()=>e._zod.def.innerType});var Er=E("ZodCatch",(e,t)=>{_n.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const r=e._zod.def;let i;jn(r.innerType,t,o),t.seen.get(e).ref=r.innerType;try{i=r.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}n.default=i})(e,t,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});var Or=E("ZodPipe",(e,t)=>{hn.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const r=e._zod.def,i=r.in._zod.traits.has("$ZodTransform"),a="input"===t.io?i?r.out:r.in:r.out;jn(a,t,o),t.seen.get(e).ref=a})(e,t,0,o),e.in=t.in,e.out=t.out});function xr(e,t){return new Or({type:"pipe",in:e,out:t})}var Tr=E("ZodPreprocess",(e,t)=>{Or.init(e,t),gn.init(e,t)}),Ar=E("ZodReadonly",(e,t)=>{bn.init(e,t),go.init(e,t),e._zod.processJSONSchema=(t,n,o)=>((e,t,n,o)=>{const r=e._zod.def;jn(r.innerType,t,o),t.seen.get(e).ref=r.innerType,n.readOnly=!0})(e,t,n,o),e.unwrap=()=>e._zod.def.innerType});var zr=E("ZodCustom",(e,t)=>{Sn.init(e,t),go.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)});function Ir(e,t){return new Tr({type:"pipe",in:_r(e),out:t})}var Pr,Cr=dr(["CONSENT","SOFT_OPT_IN","TRANSACTIONAL_ONLY","UNKNOWN"]),Nr=dr(["MANUAL_UNSUB","ONE_CLICK_UNSUB","HARD_BOUNCE","COMPLAINT","ADMIN_BLOCK"]),$r=dr(["BROADCAST","AUTOMATION"]),Rr=dr(["ABANDONED_CART","POST_PURCHASE","WELCOME","WIN_BACK","RE_ENGAGEMENT","TAG_ADDED"]),Ur=(nr({email:Eo(),name:wo().trim().min(1).nullable().optional(),customer_id:wo().uuid().nullable().optional(),tags:er(wo().trim().min(1)).default([]),consent_basis:Cr.default("UNKNOWN"),source:wo().trim().min(1).default("dashboard")}),nr({name:wo().trim().min(1),subject:wo().trim().min(1),preheader:wo().nullable().optional(),mjml_source:wo().trim().min(1),builder_project_json:ur(wo(),Go()).nullable().optional(),thumbnail_url:An(To,Pr).nullable().optional()}),nr({mjml_source:wo().trim().min(1),sample_variables:ur(wo(),Go()).optional()}),nr({recipient_email:Eo(),sample_variables:ur(wo(),Go()).optional()}),nr({marketing_enabled:Vo().optional(),default_from_name:wo().trim().min(1).nullable().optional(),default_from_email:Eo().nullable().optional(),default_reply_to_email:Eo().nullable().optional(),physical_address:wo().trim().min(1).nullable().optional(),physical_address_line2:wo().trim().min(1).nullable().optional(),physical_city:wo().trim().min(1).nullable().optional(),physical_postal_code:wo().trim().min(1).nullable().optional(),physical_country:wo().trim().length(2).nullable().optional(),daily_limit:Bo().int().positive().optional(),monthly_soft_cap:Bo().int().positive().optional()}),nr({type:$r.default("BROADCAST"),name:wo().trim().min(1),subject:wo().trim().min(1),template_id:wo().uuid(),list_id:wo().uuid().nullable().optional(),segment_id:wo().uuid().nullable().optional(),from_name:wo().trim().min(1),from_email:Eo(),reply_to_email:Eo().nullable().optional(),schedule_at:wo().datetime().nullable().optional(),target_emails:er(Eo()).max(0,"Direct recipient entry is disabled. Use lists or segments built from Shoppex customers and paid order buyers.").default([]),idempotency_key:wo().trim().min(1).nullable().optional()}),nr({name:wo().trim().min(1),subject:wo().trim().min(1),template_id:wo().uuid(),from_name:wo().trim().min(1),from_email:Eo(),reply_to_email:Eo().nullable().optional(),trigger:Rr,delay_seconds:Bo().int().min(0).default(0),conditions:ur(wo(),Go()).default({})}),nr({trigger:Rr,email:Eo(),customer_id:wo().uuid().nullable().optional(),name:wo().trim().min(1).nullable().optional(),consent_basis:Cr.default("UNKNOWN"),variables:ur(wo(),Go()).default({}),idempotency_key:wo().trim().min(1).nullable().optional()}),nr({email:Eo(),reason:Nr.default("ADMIN_BLOCK"),notes:wo().nullable().optional()}),/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i);var qr=["BITCOIN","LITECOIN","ETHEREUM","BITCOIN_CASH","MONERO","RIPPLE","TRON","SOLANA","POLYGON","BINANCE_COIN","CRONOS","CONCORDIUM","NANO","DOGECOIN","DASH"],Dr=["NOWPAYMENTS","CRYPTOMUS","OXAPAY"],Lr=["NOWPAYMENTS_WHITELABEL"],jr={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"]},Mr=Object.keys(jr),Fr=[...jr.USDT,...jr.USDC,...jr.DAI],Zr=[...qr,...Fr],Br=["BITCOIN_LN"],Jr=[...Dr,...Lr],Yr=[...Zr,...Br],Wr=Zr,Vr=(new Set(["SHOPPEXPAY"]),new Set(qr)),Hr=new Set(Fr),Gr=(new Set(Zr),new Set(Br),new Set(Dr),new Set(Lr),new Set(Jr),new Set(Yr),new Set(Mr),new Set(["STRIPE","PAYPAL","PAYPAL_FF","MOLLIE","AUTHORIZENET","NMI","SQUARE","SUMUP","SHOPIFY","PANDABASE","DEBLOMASSI","SHOPPEXPAY","MONEYMOTION","OVGC","WHOP","DODO","MAVERICK","CASHAPP","VENMO","CRYPTO","CUSTOMER_BALANCE","EXTERNAL","MANUAL"]),{CASHAPP:"CASH_APP",PAYPAL_CREDIT_CARD:"PAYPAL",EUTHEREUM:"ETHEREUM",USDT_MATIC:"USDT_POLYGON",USDC_MATIC:"USDC_POLYGON"});function Kr(e,t){if(new Set(t).size!==t.length)throw new Error(`${e} contains duplicate entries`)}Kr("COIN_GATEWAY_KEYS",qr),Kr("TOKEN_GATEWAY_KEYS",Fr),Kr("CRYPTO_GATEWAY_KEYS",Zr),Kr("LEGACY_CRYPTO_GATEWAY_KEYS",Br),Kr("CRYPTO_PROVIDER_KEYS",Dr),Kr("MANAGED_CRYPTO_PROVIDER_KEYS",Lr),Kr("CRYPTO_PROVIDER_GATEWAY_KEYS",Jr),Kr("DEFAULT_NOWPAYMENTS_CRYPTO_GATEWAY_KEYS",Wr),Kr("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"]),Kr("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 Ac of Zr)if(!Vr.has(Ac)&&!Hr.has(Ac))throw new Error(`CRYPTO_GATEWAY_KEYS contains an unclassified gateway: ${Ac}`);function Xr(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"}if(/^external:/i.test(t)){const e=function(e){const t=e.trim();if(!/^external:/i.test(t))return null;const n=t.slice(t.indexOf(":")+1).trim().toLowerCase();return Ur.test(n)?n:null}(t);return e?`EXTERNAL:${e}`:t.toUpperCase()}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 Gr[n]??n}new Set(["STRIPE","PAYPAL","PAYPAL_FF","SKRILL","CASHAPP","CASH_APP","PERFECT_MONEY","SQUARE","SUMUP","SHOPIFY","PANDABASE","DEBLOMASSI","SHOPPEXPAY","MONEYMOTION","OVGC","WHOP","DODO","MAVERICK","VENMO","MOLLIE","AUTHORIZENET","NMI"].map(e=>Xr(e))),new Set(["WHITE_LABEL","NATIVE"]);var Qr=[...Jr,"NATIVE"],ei=(new Set(Qr),nr({set:Vo()})),ti=nr({status:dr(["READY","NEEDS_ATTENTION"]).optional(),code:wo().optional(),message:wo().optional(),checked_at:wo().optional()}),ni=(nr({provider:wo(),type:wo(),enabled:Vo(),connected:Vo(),credentials:ur(wo(),ei),public_config:ur(wo(),Go()),webhook:ur(wo(),Go()).optional(),health:ti.optional()}),"#2563eb"),oi=["comfortable","compact"],ri=["top","side","background"],ii=dr(["checkout","payment_link","embed"]),ai=dr(oi),si=dr(["light","dark","system"]),li=dr(ri),ui=dr(["ghost","outlined","filled"]),ci=dr(["sheet","fullscreen","center"]),di=dr(["visible","hidden"]),pi=(dr(["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"]),dr(["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"]),wo().regex(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/,"Use a valid hex color")),fi=wo().trim().min(1).max(200).refine(e=>!/[;{}]|@import|expression\s*\(/i.test(e),"Use a valid CSS color or gradient"),mi=wo().trim().min(1).max(400).refine(e=>!/[;{}]|@import|expression\s*\(/i.test(e),"Use a valid CSS box-shadow value"),_i=dr(["Inter","Geist","Manrope","Plus Jakarta Sans","DM Sans","Space Grotesk","Sora","IBM Plex Sans","JetBrains Mono","Arial","System UI"]),hi=wo().trim().min(1).max(60).regex(/^[A-Za-z0-9 +\-_]+$/,"Use a Google Fonts family name"),yi=wo().url(),gi=nr({brand:nr({logoUrl:yi.optional().nullable(),logoDarkUrl:yi.optional().nullable(),logoMaxHeight:Bo().int().min(16).max(80).optional(),faviconUrl:yi.optional().nullable()}).strict().optional(),color:nr({brand:pi.optional(),brandContrast:pi.optional(),background:pi.optional(),surface:pi.optional(),surfaceRaised:pi.optional(),text:pi.optional(),textMuted:pi.optional(),border:pi.optional(),focus:pi.optional(),success:pi.optional(),warning:pi.optional(),error:pi.optional()}).strict().optional(),typography:nr({fontFamily:_i.optional(),googleFontFamily:hi.optional(),baseSize:Bo().int().min(12).max(18).optional()}).strict().optional(),shape:nr({buttonRadius:Bo().int().min(0).max(24).optional(),inputRadius:Bo().int().min(0).max(24).optional(),cardRadius:Bo().int().min(0).max(28).optional()}).strict().optional(),spacing:nr({density:ai.optional(),controlHeight:Bo().int().min(36).max(56).optional()}).strict().optional(),component:nr({primaryButton:nr({background:pi.optional(),text:pi.optional()}).strict().optional(),input:nr({background:pi.optional(),border:pi.optional(),focusRing:fi.optional()}).strict().optional(),summary:nr({background:pi.optional()}).strict().optional(),paymentMethod:nr({background:fi.optional(),cardBackground:fi.optional(),border:fi.optional(),selectedBackground:fi.optional()}).strict().optional(),productCard:nr({background:fi.optional(),border:fi.optional(),shadow:mi.optional()}).strict().optional(),productImage:nr({background:fi.optional(),border:fi.optional(),icon:fi.optional()}).strict().optional(),brandAvatar:nr({background:fi.optional(),text:pi.optional(),border:fi.optional()}).strict().optional(),pill:nr({background:fi.optional(),border:fi.optional(),text:pi.optional()}).strict().optional(),errorBanner:nr({background:fi.optional(),border:fi.optional(),text:pi.optional()}).strict().optional(),warningBanner:nr({background:fi.optional(),border:fi.optional(),text:pi.optional()}).strict().optional(),radio:nr({idleRing:fi.optional(),checkedFill:pi.optional(),checkedIcon:pi.optional()}).strict().optional(),divider:nr({color:fi.optional()}).strict().optional()}).strict().optional(),paymentLink:nr({heroImageUrl:yi.optional().nullable(),heroPosition:li.optional()}).strict().optional(),embed:nr({launcher:nr({background:fi.optional(),text:pi.optional(),radius:Bo().int().min(0).max(28).optional(),paddingX:Bo().int().min(8).max(32).optional(),paddingY:Bo().int().min(6).max(24).optional(),shadow:mi.optional()}).strict().optional(),productCard:nr({background:fi.optional(),border:fi.optional(),imageRadius:Bo().int().min(0).max(24).optional(),padding:Bo().int().min(8).max(32).optional()}).strict().optional(),cart:nr({background:fi.optional(),rowBorder:fi.optional(),itemSpacing:Bo().int().min(4).max(28).optional()}).strict().optional(),modal:nr({background:fi.optional(),radius:Bo().int().min(0).max(32).optional(),maxWidth:Bo().int().min(360).max(960).optional(),shadow:mi.optional()}).strict().optional(),backdrop:nr({color:fi.optional(),blur:Bo().int().min(0).max(24).optional(),opacity:Bo().min(0).max(1).optional()}).strict().optional(),skeleton:nr({background:fi.optional(),shimmer:fi.optional()}).strict().optional(),spinner:nr({color:fi.optional()}).strict().optional(),closeButton:nr({style:ui.optional()}).strict().optional(),mobile:nr({layout:ci.optional()}).strict().optional(),content:nr({productDescription:di.optional(),termsShortcut:di.optional()}).strict().optional()}).strict().optional()}).strict(),bi=nr({mode:si.default("system"),fontSource:dr(["curated"]).default("curated")}).strict(),vi=dr(["standalone","bundle","pointer"]),wi=nr({name:wo().trim().min(1).max(80),fingerprint:wo().trim().min(1).max(128)}).strict(),Si=["embed_design"];function ki(e){if(!e||"object"!=typeof e||Array.isArray(e))return e;const t=e;if(!Si.some(e=>e in t))return e;const n={...t};for(const o of Si)delete n[o];return n}var Ei=Ir(ki,nr({type:fr("shoppex.style_theme"),surface:fr("checkout"),format_version:rr([fr(1),fr(2)]),name:wo().trim().min(1).max(80),description:wo().trim().max(240).optional(),token_schema_version:fr(1),tokens:gi.default({}),custom_css:wo().max(2e4).default(""),settings:bi.default({mode:"system",fontSource:"curated"}),_meta:ur(wo(),Go()).optional()}).strict()),Oi=(Ir(ki,nr({type:fr("shoppex.style_theme"),surface:ii,format_version:rr([fr(1),fr(2)]),name:wo().trim().min(1).max(80),description:wo().trim().max(240).optional(),token_schema_version:fr(1),tokens:gi.default({}),custom_css:wo().max(2e4).default(""),settings:bi.default({mode:"system",fontSource:"curated"}),share_mode:vi.default("standalone"),parent_hint:wi.optional(),bundled_parent:Ei.optional(),_meta:ur(wo(),Go()).optional()}).strict()),nr({theme_id:wo().uuid().nullable(),surface:ii,token_schema_version:fr(1),revision:Bo().int().min(1),tokens:gi,custom_css:wo(),css_variables:ur(wo(),wo())}).strict(),nr({theme_id:wo().uuid().nullable(),parent_theme_id:wo().uuid().nullable(),surface:fr("embed"),token_schema_version:fr(1),revision:Bo().int().min(1),parent_revision:Bo().int().min(1).nullable(),tokens:gi,custom_css:wo(),css_variables:ur(wo(),wo())}).strict(),nr({shop_id:wo().uuid(),product_id:wo().uuid().nullable(),product_group_id:wo().uuid().nullable(),payment_link_id:wo().uuid().nullable(),invoice_id:wo().nullable()}).strict(),nr({embed_runtime:wo().min(16).max(128),revision:Bo().int().min(1),parent_revision:Bo().int().min(1).nullable(),theme_id:wo().uuid().nullable(),css_variables:ur(wo(),wo()),custom_css:wo()}).strict(),nr({embed_style_revision:function(e){return function(e,t){return new e({type:"number",coerce:!0,checks:[],...W(t)})}(Zo,e)}().int().min(1).optional(),embed_runtime:wo().min(16).max(128).optional(),preview:Vo().optional()}).strict(),dr(["announcement_bar","countdown_bar","promo_info_card","recent_purchase_popup","coupon_popup_modal","live_chat"]),dr(["layout.header.before","layout.header.after","layout.overlay","home.hero.after","home.grid.before","product.buybox.after","layout.footer.before","floating.bottom_right"])),xi=(dr(["announcement_bar","countdown_bar","promo_info_card","recent_purchase_popup","coupon_popup_modal","live_chat"]),wo().regex(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/,"Use a valid hex color")),Ti=dr(["static","marquee"]),Ai=dr(["brand_blue","emerald","sunset","rose","charcoal","custom"]),zi=dr(["hide","message"]),Ii=dr(["compact","comfortable"]),Pi=dr(["subtle","outline","solid"]),Ci=dr(["minimal","boxed"]),Ni=dr(["indigo","emerald","amber","rose","slate","custom"]),$i=dr(["compact","feature","alert"]),Ri=dr(["compact","comfortable"]),Ui=dr(["subtle","outline","solid"]),qi=dr(["sparkles","megaphone","gift","truck","shield","support","none"]),Di=dr(["show","hide"]),Li=dr(["midnight","ocean","ember","forest","custom"]),ji=dr(["delay","exit_intent"]),Mi=wo().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 "/"'),Fi=wo().trim().refine(e=>{const t=new Date(e);return!Number.isNaN(t.getTime())},"Use a valid date and time"),Zi=nr({text:wo().trim().min(1,"Text is required").max(160,"Text must be 160 characters or fewer"),linkLabel:wo().trim().max(32,"Link label must be 32 characters or fewer").optional().nullable(),linkUrl:Mi.optional().nullable(),dismissible:Vo().default(!1),displayMode:Ti.default("marquee"),themePreset:Ai.default("custom"),animationSpeedSeconds:Bo().int().min(8).max(40).default(30),backgroundColor:xi.default("#111827"),textColor:xi.default("#f9fafb")}),Bi=nr({text:wo().trim().min(1,"Text is required").max(120,"Text must be 120 characters or fewer"),endAt:Fi,linkLabel:wo().trim().max(32,"Link label must be 32 characters or fewer").optional().nullable(),linkUrl:Mi.optional().nullable(),dismissible:Vo().default(!1),themePreset:Ai.default("brand_blue"),expiredBehavior:zi.default("hide"),expiredMessage:wo().trim().max(120,"Expired message must be 120 characters or fewer").optional().nullable(),density:Ii.default("compact"),ctaStyle:Pi.default("subtle"),timerStyle:Ci.default("boxed"),backgroundColor:xi.default("#111827"),textColor:xi.default("#f9fafb")}),Ji=nr({eyebrow:wo().trim().max(32,"Eyebrow must be 32 characters or fewer").optional().nullable(),title:wo().trim().min(1,"Title is required").max(80,"Title must be 80 characters or fewer"),body:wo().trim().min(1,"Body is required").max(240,"Body must be 240 characters or fewer"),linkLabel:wo().trim().max(32,"Link label must be 32 characters or fewer").optional().nullable(),linkUrl:Mi.optional().nullable(),themePreset:Ni.default("indigo"),layoutStyle:$i.default("feature"),density:Ri.default("comfortable"),ctaStyle:Ui.default("outline"),icon:qi.default("sparkles"),iconVisibility:Di.default("show"),backgroundColor:xi.default("#111827"),textColor:xi.default("#f9fafb"),accentColor:xi.default("#818cf8")}),Yi=nr({title:wo().trim().min(1,"Title is required").max(80,"Title must be 80 characters or fewer").default("Recent purchases"),lookbackHours:Bo().int().min(1).max(168).default(24),cooldownSeconds:Bo().int().min(5).max(300).default(20),maxItems:Bo().int().min(1).max(20).default(8),anonymizeMode:dr(["first_name_city","first_name_country","initial_country","anonymous"]).default("first_name_city"),includedProductIds:er(wo().min(1)).max(50).default([])}),Wi=nr({eyebrow:wo().trim().max(32,"Eyebrow must be 32 characters or fewer").optional().nullable(),title:wo().trim().min(1,"Title is required").max(80,"Title must be 80 characters or fewer"),body:wo().trim().min(1,"Body is required").max(240,"Body must be 240 characters or fewer"),couponCode:wo().trim().min(2,"Coupon code is required").max(40,"Coupon code must be 40 characters or fewer"),primaryButtonLabel:wo().trim().min(1,"Primary button label is required").max(24,"Primary button label must be 24 characters or fewer").default("Copy code"),secondaryButtonLabel:wo().trim().min(1,"Secondary button label is required").max(24,"Secondary button label must be 24 characters or fewer").default("Maybe later"),disclaimer:wo().trim().max(100,"Disclaimer must be 100 characters or fewer").optional().nullable(),themePreset:Li.default("midnight"),trigger:ji.default("delay"),delaySeconds:Bo().int().min(0).max(60).default(6),showOncePerSession:Vo().default(!0),reminderHours:Bo().int().min(1).max(720).default(24),backgroundColor:xi.default("#111827"),textColor:xi.default("#f8fafc"),accentColor:xi.default("#7c9cff"),heroImageUrl:Mi.optional().nullable(),discountDisplay:wo().trim().max(24,"Discount display must be 24 characters or fewer").optional().nullable(),expiresAt:Fi.optional().nullable()}),Vi=dr(["hidden","optional"]),Hi=nr({headline:wo().trim().min(1,"Headline is required").max(60,"Headline must be 60 characters or fewer").default("Chat with us"),greeting:wo().trim().min(1,"Greeting is required").max(240,"Greeting must be 240 characters or fewer").default("Hi! Send us a message and we will reply as soon as possible."),inputPlaceholder:wo().trim().min(1,"Placeholder is required").max(80,"Placeholder must be 80 characters or fewer").default("Type your message…"),contactFields:Vi.default("optional"),accentColor:xi.default("#111827"),launcherIconColor:xi.default("#f9fafb")}),Gi=nr({type:fr("announcement_bar"),slot:Oi,enabled:Vo().default(!0),sortOrder:Bo().int().min(0).max(999).default(0),config:Zi}),Ki=nr({type:fr("recent_purchase_popup"),slot:Oi,enabled:Vo().default(!0),sortOrder:Bo().int().min(0).max(999).default(0),config:Yi}),Xi=nr({type:fr("countdown_bar"),slot:Oi,enabled:Vo().default(!0),sortOrder:Bo().int().min(0).max(999).default(0),config:Bi}),Qi=nr({type:fr("promo_info_card"),slot:Oi,enabled:Vo().default(!0),sortOrder:Bo().int().min(0).max(999).default(0),config:Ji}),ea=nr({type:fr("coupon_popup_modal"),slot:Oi,enabled:Vo().default(!0),sortOrder:Bo().int().min(0).max(999).default(0),config:Wi}),ta=nr({type:fr("live_chat"),slot:Oi,enabled:Vo().default(!0),sortOrder:Bo().int().min(0).max(999).default(0),config:Hi}),na=(ar("type",[Gi,Xi,Qi,Ki,ea,ta]),ar("type",[Gi.extend({id:wo().min(1)}),Xi.extend({id:wo().min(1)}),Qi.extend({id:wo().min(1)}),Ki.extend({id:wo().min(1)}),ea.extend({id:wo().min(1)}),ta.extend({id:wo().min(1)})]),new Set(["amount","currency","invoice_id","customer_email","id","email","price","price_usd","product_name","quantity"].map(e=>e.toLowerCase())),wo().regex(/^[A-Z]{3}$/,"Currency must be a three-letter uppercase code.")),oa=wo().url().refine(e=>"https:"===new URL(e).protocol,"URL must use HTTPS."),ra=nr({version:fr("2026-08-14")}),ia=(ra.extend({type:fr("payment.session.create"),data:nr({attempt_id:wo().uuid(),invoice_id:wo().uuid(),amount_minor:Bo().int().safe().positive(),currency:na,customer_email:wo().email().nullable(),description:wo().min(1).max(500),success_url:oa,cancel_url:oa,event_url:oa})}),ra.extend({provider_reference:wo().trim().min(1).max(255),checkout_url:oa,expires_at:Vn({offset:!0}).nullable().optional()}),ra.extend({type:dr(["payment.processing","payment.succeeded","payment.failed"]),data:nr({attempt_id:wo().uuid(),provider_reference:wo().trim().min(1).max(255),amount_minor:Bo().int().safe().positive(),currency:na,occurred_at:Vn({offset:!0}).nullable().optional()})}),ra.extend({type:fr("adapter.conformance.run"),data:nr({challenge_id:wo().uuid(),mode:dr(["standard","timeout"]),expected_event:nr({attempt_id:wo().uuid(),provider_reference:wo().trim().min(1).max(255),amount_minor:Bo().int().safe().positive(),currency:na})})}),nr({scenario:dr(["valid_event","amount_mismatch","duplicate_event_first","duplicate_event_retry"]),webhook_id:wo().trim().min(1).max(255),webhook_timestamp:wo().trim().min(1).max(32),webhook_signature:wo().trim().min(1).max(1024),raw_body:wo().min(1).max(4096)})),aa=(ra.extend({type:fr("adapter.conformance.result"),data:nr({challenge_id:wo().uuid(),samples:er(ia).length(4)})}),ur(wo(),Go())),sa=rr([wo(),Bo()]),la=nr({kind:dr(["address","redirect","embed_pending"]),gateway:wo(),checkout_url:wo().nullable().optional(),address:wo().optional(),amount:wo().optional(),qr_code:wo().optional(),expires_at:wo().optional(),payment_id:wo().optional(),confirmations_needed:Bo().optional()}).passthrough(),ua=nr({default_value:wo().optional(),min_length:Bo().optional(),name:wo(),placeholder:wo().optional(),regex:wo().optional(),required:Vo(),type:wo()}),ca=nr({id:wo(),price:Bo(),quantity:Bo(),title:wo()}),da=nr({currency:wo(),description:wo(),id:wo(),price:Bo(),title:wo(),uniqid:wo()}),pa=nr({addons:er(ca).optional(),available_addons:er(Go()).optional(),cloudflare_image_id:wo().nullable(),created_at:wo().optional(),currency:wo(),custom_fields:aa.nullable().optional(),custom_fields_config:er(ua).nullable().optional(),delivery_instruction:Go().optional(),delivery_instruction_config:Go().optional(),delivery_instruction_label:Go().optional(),delivery_text:wo().nullable().optional(),delivery_time:Bo().nullable().optional(),delivery_time_unit:dr(["minutes","hours","days"]).nullable().optional(),description:wo().nullable(),discount_percent:Bo().optional(),discount_display:Bo().optional(),discounted_total_display:Bo().optional(),gateways:er(wo()).nullable().optional(),id:wo().optional(),image_name:wo().nullable(),image_storage:wo().nullable().optional(),line_item_id:wo().nullable().optional(),pay_what_you_want:Vo().optional(),price:wo().optional(),price_display:sa,quantity:Bo(),quantity_max:Bo().optional(),quantity_min:Bo().optional(),recurring_interval:wo().nullable().optional(),recurring_interval_count:Bo().nullable().optional(),redirect_link:wo().nullable().optional(),redirect_time:Bo().nullable().optional(),service_text:wo().nullable().optional(),setup_cost:wo().optional(),slug:wo().nullable().optional(),storefront_url:wo().nullable().optional(),status:wo().nullable().optional(),subtype:wo().nullable().optional(),terms_of_service:wo().nullable().optional(),title:wo(),total:Bo(),trial_period:Bo().nullable().optional(),type:wo().nullable().optional(),uniqid:wo().nullable(),unit_price:Bo().optional(),unit_price_display:sa.optional(),unit_quantity:Bo(),updated_at:wo().optional(),variant_title:wo().nullable().optional(),video_link:wo().nullable().optional(),volume_discounts:Go().optional(),warranty_days:Bo().nullable().optional(),warranty_text:wo().nullable().optional(),warranty_period_days:Bo().nullable().optional()}),fa=nr({amount:Bo(),gateway:wo()}),ma=nr({custom_tip_enabled:Vo().optional(),enabled:Vo(),preset_percentages:er(Bo()).optional()}),_a=nr({allow_partial_payment:Vo().optional(),auto_apply:Vo().optional(),available:wo(),currency:wo()}),ha=nr({affiliate_code:wo().nullable().optional(),already_paid:sa.nullable().optional(),amount_due:sa.nullable().optional(),currency:wo().nullable().optional(),discount:sa.nullable().optional(),volume_discount:sa.nullable().optional(),discount_label:wo().nullable().optional(),gateway_fee:sa.nullable().optional(),platform_fee:sa.nullable().optional(),processing_fee:sa.nullable().optional(),subtotal:sa.nullable().optional(),tip:sa.nullable().optional(),total:sa.nullable().optional()}),ya=nr({active:Vo(),expires_at:wo()}),ga=nr({faq_url:wo().nullable(),support_email:wo().nullable(),support_url:wo().nullable(),telegram_invite:wo().nullable(),discord_invite_url:wo().nullable()}),ba=nr({currency:wo().nullable().optional(),enabled:Vo(),max_amount:Bo().nullable().optional(),min_amount:Bo().nullable().optional(),reason:dr(["BELOW_MIN_AMOUNT","ABOVE_MAX_AMOUNT"]).nullable().optional()}),va=nr({delivered_items:er(Go()),downloads:er(Go()),external_urls:er(Go()),license_keys:er(Go()),tracking_codes:er(Go())}),wa=nr({active:Vo().optional(),attempt_id:wo().optional(),buyer_actionable:Vo().nullable().optional(),crypto_currency:wo().nullable().optional(),currency:wo().optional(),expected_amount:wo().nullable().optional(),expected_crypto_amount:wo().nullable().optional(),last_checked_at:wo().optional(),missing_amount:wo().nullable().optional(),missing_crypto_amount:wo().nullable().optional(),provider_reference:wo().nullable().optional(),provider_status:wo().nullable().optional(),received_amount:wo().nullable().optional(),received_fiat_estimate:wo().nullable().optional(),received_crypto_amount:wo().nullable().optional(),shortfall_percent:wo().nullable().optional(),buyer_action_reason:dr(["BELOW_MINIMUM_COLLECTIBLE","PROVIDER_SESSION_CLOSED","PROVIDER_TOP_UP_UNSUPPORTED","MERCHANT_REVIEW_REQUIRED"]).nullable().optional()}),Sa=nr({created_at:wo().nullable(),details:wo().nullable(),id:wo(),invoice_id:wo(),status:wo().nullable()}),ka=nr({billing_address_mode:dr(["INHERIT","REQUIRED","DISABLED"]).optional(),button_label:wo().nullable().optional(),display_name:wo().nullable().optional(),gateway:wo(),hide_provider_attribution:Vo().optional(),icon_url:wo().nullable().optional(),terms_mode:dr(["INHERIT","REQUIRED","DISABLED"]).optional()}),Ea=nr({custom_fields:er(Go()).optional(),description:wo().nullable(),display_order:Bo(),icon_preset:wo().nullable(),icon_url:wo().nullable(),id:wo(),instructions:wo().nullable(),is_active:Vo().optional(),name:wo(),payment_type:dr(["INSTRUCTIONS","REDIRECT"]),redirect_url:wo().nullable(),require_proof:Vo(),proof_type:dr(["TEXT","IMAGE","BOTH"]).optional(),void_after_hours:Bo()}),Oa=nr({description:wo().nullable(),display_order:Bo(),icon_url:wo().nullable(),id:wo(),name:wo()}),xa=nr({email:nr({masked:wo().nullable(),persisted:Vo(),required_for_provider_session:Vo().optional()})}),Ta=nr({amount:wo().nullable(),confirmations:Bo().nullable(),created_at:Bo().optional(),hash:wo().nullable(),status:wo().optional()}),Aa=nr({conf:nr({partial:Bo().optional(),void:Bo(),waiting_for_confirmations:Bo().optional()}),gateways:er(wo())}),za=nr({invoice_payable:Vo(),resumable:Vo(),resumable_gateway:wo().nullable(),gateway:wo().nullable().optional(),crypto_gateway:wo().nullable().optional(),processor:wo().nullable().optional(),flow_type:wo().nullable().optional(),status:wo().nullable().optional(),provider_reference:wo().nullable().optional(),provider_reference_type:wo().nullable().optional(),capture_id:wo().nullable().optional(),manual_confirmation_pending:Vo().optional(),payment_method_switch_locked:Vo().optional(),awaiting_payment_method:Vo().optional(),started_at:Bo().nullable().optional(),completed_at:Bo().nullable().optional()}),Ia=za.extend({gateway:wo().nullable(),flow_type:wo().nullable(),status:wo().nullable(),manual_confirmation_pending:Vo(),payment_method_switch_locked:Vo()}),Pa=nr({theme_id:wo().nullable(),surface:dr(["checkout","payment_link","embed"]),token_schema_version:fr(1),revision:Bo(),tokens:aa,custom_css:wo(),css_variables:ur(wo(),wo())}),Ca=nr({link_id:wo(),source_gateway:wo().nullable(),invoice_uniqid:wo(),deprioritize_source_gateway:Vo().optional()}),Na=nr({enabled:Vo(),required:Vo(),connected:Vo()}),$a=nr({gateway:wo().nullable().optional(),active_type:wo().nullable().optional(),percent_amount:sa.nullable().optional(),fixed_amount:sa.nullable().optional(),fixed_currency:wo().nullable().optional()}),Ra=nr({id:wo(),type:dr(["WALLET_CREDIT","COUPON"]),status:dr(["PENDING","FULFILLED","FAILED","REVOKED"]),amount:wo().nullable(),currency:wo().nullable(),coupon_code:wo().nullable(),reason:dr(["ORDER_COMPLETED","ORDER_COUNT_REACHED","SPEND_AMOUNT_REACHED","POSITIVE_REVIEW_LEFT","FIRST_PURCHASE_COMPLETED"]),trigger_reference_type:wo(),trigger_reference_id:wo(),created_at:Bo(),fulfilled_at:Bo().nullable(),expires_at:Bo().nullable()}),Ua=nr({summary:nr({available:wo(),pending:wo(),lifetime_earned:wo(),redeemed:wo().nullable(),currency:wo()}),activity:er(Ra),earned_after_invoice:er(Ra),pending_after_invoice:er(Ra)}),qa=nr({already_paid_amount:sa.nullable().optional(),apm_method:wo().nullable().optional(),blockchain:wo().nullable(),buyer_identity:xa.nullable().optional(),checkout_tipping:ma.nullable().optional(),country_regulations:wo().nullable().optional(),coupon_applied:Vo().optional(),crypto_mode:wo().nullable().optional(),crypto_transactions:er(Ta).optional(),currency:wo().nullable(),custom_fields:aa.nullable().optional(),custom_gateways:er(Ea).optional(),external_payment_adapters:er(Oa).optional(),customer_balance:_a.nullable().optional(),customer_email_masked:wo().nullable().optional(),dark_mode:rr([fr(0),fr(1)]).optional(),delivery:va.optional(),delivery_info:va.optional(),discount:Bo().optional(),discount_display:sa.optional(),eligible_gateways:er(wo()).optional(),environment:wo().optional(),fee_breakdown:aa.nullable().optional(),gateway:wo().nullable(),gateway_data:aa.nullable().optional(),gateway_eligibility:ur(wo(),ba).optional(),gateway_fee_previews:er(fa).optional(),gateways_available:er(wo()),license:rr([aa,fr(!1)]).optional(),name:wo().nullable(),paddle_token:wo().nullable().optional(),paddle_transaction_id:Go().optional(),payment_link_id:wo().nullable().optional(),payment_method_overrides:er(ka).optional(),payment_session_state:za.nullable().optional(),polling:ya,pricing_breakdown:ha.nullable().optional(),product:er(pa).optional(),quantity:Bo().nullable(),rates_snapshot:ur(wo(),Bo()).optional(),remaining_amount:sa.nullable().optional(),selected_gateway:wo().nullable().optional(),shop_checkout_ambient_color:wo().nullable().optional(),shop_cloudflare_image_id:wo().nullable(),shop_domain:wo().nullable().optional(),shop_force_paypal_email_delivery:rr([fr(0),fr(1)]).optional(),shop_image_name:wo().nullable(),shop_image_storage:wo().nullable().optional(),shop_payment_gateways_fees:er(aa).optional(),shop_paypal_credit_card:rr([fr(0),fr(1)]).optional(),shop_return_url:wo().nullable().optional(),shop_slug:wo().nullable().optional(),shop_terms_enabled:Vo().optional(),shop_terms_of_service:wo().nullable().optional(),shop_terms_url:wo().nullable().optional(),shop_privacy_policy_url:wo().nullable().optional(),shop_refund_policy_url:wo().nullable().optional(),shop_walletconnect_id:wo().nullable().optional(),status:wo().nullable(),status_history:er(Sa).optional(),status_history_legacy:er(Sa).optional(),status_history_raw:er(Sa).optional(),stripe_publishable_key:wo().nullable().optional(),stripe_user_id:wo().nullable().optional(),subtotal:Bo().optional(),subtype:wo().nullable().optional(),support:ga.optional(),theme:wo().optional(),tip_amount:sa.nullable().optional(),tip_amount_display:sa.nullable().optional(),tip_metadata:Go().optional(),total:sa,total_conversions:aa.optional(),total_display:sa,type:wo().nullable(),underpayment:wa.nullable().optional(),underpayment_status:wo().nullable().optional(),uniqid:wo(),void_times:er(Aa).optional(),addons:Go().optional(),affiliate_data:Go().optional(),affiliate_revenue_customer_id:wo().nullable().optional(),bill_info:Go().optional(),binance_checkout_url:wo().nullable().optional(),binance_invoice_id:wo().nullable().optional(),binance_qrcode:wo().nullable().optional(),bundle_config:Go().optional(),bundles:Go().optional(),cashapp_cashtag:wo().nullable().optional(),cashapp_note:wo().nullable().optional(),cashapp_qrcode:wo().nullable().optional(),created_at:wo().optional(),crypto_address:wo().nullable().optional(),crypto_amount:sa.optional(),crypto_confirmations_needed:Bo().nullable().optional(),crypto_exchange_rate:sa.nullable().optional(),crypto_received:sa.optional(),crypto_uri:wo().nullable().optional(),developer_invoice:Go().optional(),developer_return_url:wo().nullable().optional(),developer_title:wo().nullable().optional(),exchange_rate:sa.nullable().optional(),external_order_id:wo().nullable().optional(),lex_order_id:wo().nullable().optional(),lex_payment_method:wo().nullable().optional(),paydash_payment_id:wo().nullable().optional(),paypal_apm:wo().nullable().optional(),paypal_email_delivery:Vo().optional(),paypal_fee:sa.nullable().optional(),paypal_order_id:wo().nullable().optional(),paypal_payer_email:wo().nullable().optional(),paypal_subscription_id:wo().nullable().optional(),paypal_subscription_link:wo().nullable().optional(),perfectmoney_id:wo().nullable().optional(),product_addons:Go().optional(),product_id:wo().nullable().optional(),product_title:wo().nullable().optional(),product_type:wo().nullable().optional(),product_variants:Go().optional(),recurring_billing_id:wo().nullable().optional(),skrill_link:wo().nullable().optional(),skrill_sid:wo().nullable().optional(),status_details:Go().optional(),stripe_apm:wo().nullable().optional(),stripe_client_secret:wo().nullable().optional(),stripe_id:wo().nullable().optional(),stripe_price_id:wo().nullable().optional(),subscription:Go().optional(),subscription_id:wo().nullable().optional(),sumup_id:wo().nullable().optional(),telegram_stars_payment_link:wo().nullable().optional(),telegram_stars_payment_note:wo().nullable().optional(),updated_at:wo().optional(),virtual_payments_id:wo().nullable().optional(),void_details:Go().optional()}).catchall(Go()),Da=pa.extend({available_addons:er(da).optional(),delivery_instructions:wo().nullable().optional(),delivery_instructions_config:nr({enabled:fr(!0),required:Vo(),label:wo(),placeholder:wo().nullable().optional(),help_text:wo().nullable().optional(),max_length:Bo()}).nullable().optional(),delivery_instructions_label:wo().nullable().optional(),image_url:wo().nullable().optional(),redirectLink:wo().nullable().optional(),redirectTime:Bo().nullable().optional(),serviceText:wo().nullable().optional()}),La=(nr({data:nr({invoice:qa.extend({uniqid:wo().uuid(),shop_id:rr([wo(),Bo()]).nullable(),customer_email:wo().nullable(),checkout_style:Pa.nullable().optional(),coupon_id:wo().nullable().optional(),discount_breakdown:aa.nullable().optional(),affiliate_code:wo().nullable().optional(),country:wo().nullable().optional(),paypal_email:wo().nullable().optional(),pandabase_available_payment_methods:er(wo()).optional(),payment_rescue:Ca.nullable().optional(),discord_integration:Na.nullable().optional(),payment_session_state:Ia.nullable().optional(),shop_payment_gateways_fees:er($a).optional(),product:er(Da).optional(),products:er(Da).optional(),rewards:Ua.nullable().optional()}).superRefine((e,t)=>{void 0===e.product&&void 0===e.products&&t.addIssue({code:"custom",message:"Embed checkout invoice must include product or products.",path:["product"]})}),invoice_url:wo().nullable(),checkout_url:wo().nullable(),selected_gateway:wo().nullable(),session_started:Vo(),payment_session:la.nullable(),completion_access_grant:wo().nullable()}).passthrough()}).passthrough(),{maximumFractionDigits:3});function ja(e){if(!Number.isFinite(e))return e;const t=e<0?-1:1,n=Ma(Math.abs(e),2),o=Math.round(n);return 0===o?0:t*Ma(o,-2)}function Ma(e,t){const[n,o="0"]=String(e).split("e");return Number(`${n}e${Number(o)+t}`)}var Fa=wo().nullable(),Za=ur(wo(),Go()),Ba=nr({logo_url:Fa,primary_color:wo(),secondary_color:wo(),accent_color:wo()}),Ja=(nr({customer:nr({id:Fa,email:wo(),name:wo(),avatar_url:Fa,joined_at:Fa}),shop:nr({id:wo(),slug:wo(),name:wo(),currency:wo(),branding:Ba}),token:Fa}),nr({attachment_image_id:nr({cloudflare_image_id:Fa}).nullable()})),Ya=nr({attachment_imageId:nr({cloudflareImageId:Fa}).nullable()}),Wa=nr({uniqid:wo(),status:wo(),total:wo(),total_display:Fa,currency:wo(),created_at:wo(),line_items:er(nr({product_title:Fa,quantity:Bo(),product:Ja.nullable()}))}),Va=nr({uniqid:wo(),status:wo(),total:wo(),totalDisplay:Fa,currency:wo(),createdAt:wo(),lineItems:er(nr({productTitle:Fa,quantity:Bo(),product:Ya.nullable()}))}),Ha=nr({invoices:er(Va),pagination:nr({page:Bo(),limit:Bo(),total:Bo(),has_more:Vo()})}),Ga=(nr({can_review:Vo(),already_submitted:Vo(),feedback_uniqid:Fa,product_title:Fa,score:rr([fr(1),fr(3),fr(5)]).nullable(),is_automated:Vo(),message:Fa,submitted_at:Fa}),nr({gateway:wo(),displayName:Fa,cryptoGateway:Fa.optional(),blockchain:Fa,cryptoAddress:Fa,apmMethod:Fa})),Ka=nr({id:wo(),uniqid:wo(),status:wo(),statusDetails:Fa,total:wo(),totalDisplay:Fa,subtotal:wo(),discount:wo(),discountDisplay:Fa,tax:wo(),taxPercentage:wo(),currency:wo(),createdAt:wo(),updatedAt:wo(),gatewayUpdatedAt:Fa,customFields:Za.nullable(),balancePaidAmount:wo(),tipAmountDisplay:wo(),pricingBreakdown:nr({subtotal:wo(),discount:wo(),volume_discount:wo(),discount_label:dr(["Coupon","Discount"]),affiliate_code:Fa,tip:wo(),gateway_fee:wo(),platform_fee:wo(),processing_fee:wo(),already_paid:wo(),total:wo(),amount_due:wo(),currency:wo()}),currentPaymentAttemptId:Fa,lineItems:er(nr({id:wo(),productTitle:wo(),productType:wo(),variantTitle:Fa,unitPrice:wo(),quantity:Bo(),total:wo(),deliveryText:Fa,deliverySummary:nr({codes:er(wo()),links:er(nr({label:wo(),value:wo(),href:Fa.optional()})),notes:er(wo()),serials:er(nr({value:wo(),is_replacement:Vo(),is_replaced:Vo()}))}).nullable(),deliveredAt:Fa,deliveryStatus:dr(["PENDING","AWAITING_FULFILLMENT","DELIVERED","FAILED"]),customFields:Za.nullable(),product:nr({uniqid:wo(),slug:Fa,serviceText:Fa,attachment_imageId:nr({cloudflareImageId:Fa}).nullable()}).nullable()})),currentPayment:Ga.nullable(),payments:er(Ga)}),Xa=(nr({quote:nr({enabled:Vo(),currency:wo(),min_amount:wo(),max_amount:Fa,bonus_tiers:er(nr({min_amount:wo(),bonus_percent:Bo()}))})}),nr({invoice_id:wo(),url:wo()}),nr({id:wo(),type:wo(),status:wo(),amount:Fa,currency:Fa,coupon_code:Fa,reason:wo(),trigger_reference_type:wo(),trigger_reference_id:wo(),created_at:Bo(),fulfilled_at:Bo().nullable(),expires_at:Bo().nullable()})),Qa=nr({summary:nr({available:wo(),pending:wo(),lifetime_earned:wo(),redeemed:Fa,currency:wo()}),activity:er(Xa),earned_after_invoice:er(Xa),pending_after_invoice:er(Xa)}),es=nr({id:wo(),uniqid:wo(),label:Fa,code:wo(),url:Fa,status:dr(["pending","active","inactive","rejected"]),is_primary:Vo(),total_clicks:Bo(),total_sales:Bo(),total_revenue:wo(),is_active:Vo(),is_approved:Vo(),requested_affiliate_revenue_percent:Bo().nullable(),requested_affiliate_customer_discount_percent:Bo().nullable(),affiliate_revenue_percent_override:Bo().nullable(),affiliate_customer_discount_percent_override:Bo().nullable(),effective_commission_percent:Bo(),effective_customer_discount_percent:Bo(),commission_shareback_percent:Bo(),commission_shareback_enabled:Vo(),max_commission_shareback_percent:Bo(),created_at:Fa,updated_at:Fa}),ts=nr({customer:nr({id:wo(),email:wo(),name:Fa}).nullable(),state:wo(),can_create_custom_links:Vo(),custom_link_request_disabled_reason:Fa,custom_links_require_approval:Vo(),affiliate_codes_accepted_at_checkout:Vo(),cash_payout_enabled:Vo(),links:er(es),preferred_payout:nr({asset:wo(),network:wo(),address:wo()}).nullable(),balance_currency:wo(),balances:nr({pending:wo(),available:wo(),requested:wo(),converted:wo(),paid:wo(),approved_total:wo()}),commissions:er(nr({id:wo(),invoice_id:wo(),commission_amount:wo(),base_amount:wo(),discount_amount:wo(),status:wo(),created_at:Fa,paid_at:Fa,converted_at:Fa})),claims:er(nr({id:wo(),type:wo(),status:wo(),amount:wo(),currency:wo(),allocations:er(nr({source_type:wo(),commission_id:Fa,adjustment_id:Fa,amount:wo()})),wallet_transaction_id:Fa,payout_asset:Fa,payout_network:Fa,payout_address:Fa,note:Fa,metadata:Go(),completed_at:Fa,rejected_at:Fa,cancelled_at:Fa,created_at:Fa,updated_at:Fa}))}),ns=nr({uniqid:wo(),status:wo(),gateway:wo(),current_period_start:wo(),current_period_end:wo(),trial_end:Fa,cancel_at_period_end:Vo(),canceled_at:Fa,created_at:wo(),plan:nr({id:wo(),uniqid:wo(),name:wo(),price:wo(),currency:wo(),interval:wo(),interval_count:Bo(),trial_days:Bo()}).nullable(),payment_method:nr({id:wo(),gateway:wo(),type:wo(),card_brand:Fa,card_last4:Fa,card_exp_month:Bo().nullable(),card_exp_year:Bo().nullable(),is_default:Vo()}).nullable(),actions:nr({can_pause:Vo(),can_resume:Vo(),can_cancel:Vo(),can_manage_payment_method:Vo()})}),os=nr({enabled:Vo(),account:nr({points_balance:Bo(),lifetime_points:Bo()}).nullable(),settings:nr({earn_rate_per_usd:Bo(),redeem_value_per_point:Bo(),min_redeem_points:Bo()}).nullable(),transactions:er(nr({type:dr(["EARN_ORDER","EARN_REVIEW","REDEEM","ADJUST"]),points:Bo(),balance_after:Bo(),description:Fa,created_at:wo()}))}),rs=nr({redeemed_points:Bo(),wallet_amount:wo(),currency:wo(),points_balance:Bo(),replayed:Vo()}),is=nr({uniqid:wo(),invoice_uniqid:wo(),product_title:wo(),period_days:Bo(),starts_at:wo(),expires_at:wo(),status:dr(["ACTIVE","EXPIRED","VOIDED"]),claim_status:dr(["REQUESTED","APPROVED","DENIED"]).nullable(),created_at:wo()}),as=nr({warranties:er(is)}),ss=nr({warranty:is.extend({claim_status:fr("REQUESTED")})}),ls=(nr({customer:nr({id:wo(),email:wo(),name:wo(),joined_at:Fa})}),nr({avatar_url:Fa}),nr({global_unsubscribed:Vo(),lists:er(nr({id:wo(),name:wo(),description:Fa,subscribed:Vo()}))}),nr({updated:Vo()}),nr({order_created_emails:Vo(),order_completed_emails:Vo(),payment_issue_emails:Vo()}),nr({favorites:er(nr({product_uniqid:wo(),title:wo(),slug:Fa,image_url:Fa,price_display:Bo(),unavailable:Vo(),created_at:wo()}))}),rr([nr({added:fr(!0)}),nr({removed:fr(!0)})]),nr({license:nr({uniqid:wo(),hardware_id:Fa})}),nr({invoice_id:wo(),checkout_url:wo(),preferred_gateways:er(wo()),license:nr({uniqid:wo(),product_title:wo()})}),nr({invoices:er(nr({id:wo(),uniqid:wo(),total:wo(),currency:wo(),status:wo(),gateway:wo(),created_at:wo(),completed_at:wo()}))}),nr({subscription:nr({id:wo(),status:wo(),cancel_at_period_end:Vo(),cancel_reason:Fa,canceled_at:Fa})}),nr({subscription:nr({id:wo(),status:wo()})}),nr({ticket:nr({uniqid:wo(),title:wo(),status:wo(),invoice_id:Fa,created_at:wo(),updated_at:wo(),messages:er(nr({id:wo(),role:dr(["CUSTOMER","SHOP","SYSTEM"]),message:wo(),created_at:wo()}))})}),nr({uniqid:wo()}),nr({affiliate_link:nr({id:wo(),customer_id:wo(),label:Fa,code:wo(),url:Fa,status:dr(["pending","approved","rejected"]),requested_affiliate_revenue_percent:Bo().nullable(),requested_affiliate_customer_discount_percent:Bo().nullable(),created_at:wo(),updated_at:wo()})}),nr({check:wo(),passed:Vo(),reason:Fa.optional()})),us=(nr({eligible:Vo(),decision:dr(["ELIGIBLE","DENIED","NO_RULE"]),reason:Fa,eligibility_checks:er(ls)}),nr({request_id:wo(),event_id:Fa,decision:dr(["ISSUED_REPLACEMENT","FALLBACK_REFUND","FALLBACK_CREDIT","QUEUED_MANUAL","DENIED","EXHAUSTED","FAILED"]),status_label:dr(["ISSUED","REFUNDED","CREDITED","QUEUED_MANUAL","DENIED","EXHAUSTED","FAILED","PENDING"]),reason:Fa,eligibility_checks:er(ls)}),nr({id:wo(),name:Fa,discount_percent:Bo().nullable()})),cs=nr({id:wo(),status:dr(["INVITED","APPLIED","ACTIVE","SUSPENDED","REJECTED"]),tier:us.nullable(),application_note:Fa,lifetime_revenue:wo(),lifetime_orders:Bo(),approved_at:Fa,created_at:wo()}),ds=(nr({program_enabled:Vo(),enrollment_mode:dr(["MANUAL","APPLICATION","OPEN"]),application_message:Fa,require_application_note:Vo(),reseller:cs.nullable()}),nr({reseller:cs}),dr(["variant","product","tier"])),ps=nr({variant_id:wo(),title:wo(),stock:Bo(),supplier_backed:Vo(),orderable:Vo(),base_price:wo(),unit_price:wo(),discount_percent:Bo(),applied_override:ds}),fs=(nr({tier:us,catalog:nr({currency:wo(),total:Bo(),page:Bo(),per_page:Bo(),items:er(nr({product_id:wo(),uniqid:wo(),title:wo(),type:wo(),stock:Bo(),supplier_backed:Vo(),orderable:Vo(),volume_discount_enabled:Vo(),base_price:wo(),unit_price:wo(),discount_percent:Bo(),applied_override:ds,variants:er(ps)}))})}),nr({quote:nr({currency:wo(),tier:us,items:er(nr({product_id:wo(),product_title:wo(),product_type:wo(),variant_id:Fa,variant_title:Fa,quantity:Bo(),base_price:wo(),discount_percent:Bo(),unit_price:wo(),line_total:wo(),applied_override:ds,volume_discount_applied:wo()})),subtotal:wo(),volume_discount_total:wo(),total:wo(),savings:wo()})}),nr({orders:nr({total:Bo(),page:Bo(),per_page:Bo(),items:er(nr({uniqid:wo(),status:wo(),currency:wo(),total:wo(),item_count:Bo(),created_at:wo()}))})}),nr({order:nr({uniqid:wo(),status:wo(),currency:wo(),total:wo(),item_count:Bo(),created_at:wo(),tier_name:wo(),tier_discount_percent:Bo(),partially_delivered:Vo(),refunded_amount:Fa,lines:er(nr({product_id:Fa,product_title:wo(),variant_id:Fa,variant_title:Fa,quantity:Bo(),unit_price:wo(),total:wo(),delivered:Vo(),delivered_at:Fa,serials:er(wo())}))})}),nr({wallet:nr({currency:wo(),balance:wo(),hold_balance:wo(),available:wo(),is_active:Vo()})}),nr({api_keys:er(nr({id:wo(),name:wo(),key_last4:wo(),last_used_at:Fa,revoked_at:Fa,created_at:wo()}))}),nr({topup:nr({uniqid:wo(),url:wo()})}),nr({shop:nr({id:wo(),slug:wo(),name:wo(),currency:wo(),branding:Ba}),customer:nr({email:wo(),name:wo()}),stats:nr({invoices_count:Bo(),licenses_count:Bo(),deliverables_count:Bo(),tickets_count:Bo()}),wallet:nr({available:wo(),total:wo(),hold:wo(),currency:wo(),enabled:Vo()}).nullable(),rewards:Qa,affiliate:ts,invoices:er(Wa),subscriptions:er(ns),licenses:er(nr({uniqid:wo(),invoice_id:wo(),status:wo(),license_key:wo(),hardware_id:Fa,expires_at:Bo().nullable(),renewable:Vo(),product:nr({title:wo().optional()}).optional()})),deliverables:er(nr({id:wo(),invoice_uniqid:wo(),product_title:wo(),kind:dr(["file","serial","license"]),label:wo(),value:wo(),href:Fa,created_at:wo()})),tickets:er(nr({uniqid:wo(),title:wo(),status:wo(),updated_at:wo(),created_at:Fa}))}));var ms=null,_s=null;var hs=null,ys=null;function gs(e,t){const n=t?.shopId?.trim();ys=n||null;const o=hs?.locale;return o!==(hs={storeSlug:e,locale:t?.locale,currency:t?.currency,apiBaseUrl:t?.apiBaseUrl??"https://api.shoppex.io",checkoutBaseUrl:t?.checkoutBaseUrl??"https://checkout.shoppex.io"}).locale&&r(),ms=null,_s=null,hs}function bs(){if(!hs)throw new l;return hs}function vs(){return null!==hs}function ws(e){ys=e}function Ss(){return ys}function ks(e){const t=e?.trim().toLowerCase()??"";return"true"===t||"1"===t||"yes"===t||"on"===t}var Es=-1;function Os(e,t,n){return!0!==t?e:!0===n?Es:0!==e?e:Es}function xs(e){return"number"==typeof e&&Number.isFinite(e)?Math.trunc(e):null}function Ts(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 As(e){return Os(xs(e?.stock)??Es,e?.orderable,e?.supplier_backed)}function zs(e){if(!e)return Es;if("string"==typeof e.type&&"SERIALS"===e.type.toUpperCase())return Os(xs(e.stock)??Es,e.orderable,e.supplier_backed);const t=function(e){const t=Array.isArray(e.price_variants)?e.price_variants:[];return t.length>0?t.map(e=>As(e)):(Array.isArray(e.variants)?e.variants:[]).map(e=>As(e))}(e);return t.length>0?t.some(e=>e<0)?Es:Os(t.reduce((e,t)=>e+Math.max(t,0),0),e.orderable,e.supplier_backed):Os(xs(e.stock)??Es,e.orderable,e.supplier_backed)}function Is(e){return!!function(e){return!!e&&(Ts(e.on_hold)||Ts(e.onHold)||Ts(e.is_on_hold)||Ts(e.isOnHold))}(e)||0===zs(e)}function Ps(e){return!Is(e)}function Cs(e=[]){const t=new Map;for(const n of e)n?.uniqid&&!t.has(n.uniqid)&&t.set(n.uniqid,n);return t}function Ns(e,t=[]){const n=t instanceof Map?t:Cs(t);return(e.product_uniqids??[]).flatMap(e=>{const t=n.get(e);return t?[t]:[]})}function $s(e=[]){return Array.from(Cs(e).values())}function Rs(e){return e?e.replace(/<[^>]*>/g," ").replace(/\s+/g," ").trim():""}function Us(e){return e.trim().toLowerCase()}function qs(e,t){const n=Rs(t).toLowerCase();n&&e.push(n)}function Ds(e){const t=[];qs(t,e.title),qs(t,e.slug??void 0),qs(t,e.description);for(const n of e.product_highlights??[])qs(t,n);for(const n of e.variants??[])qs(t,n.title);for(const n of e.price_variants??[])qs(t,n.title??n.label);return t}function Ls(e,t){const n=Us(t);return!!n&&Ds(e).some(e=>e.includes(n))}function js(e,t){const n=Us(t);if(!n)return!1;const o=Rs(e.title).toLowerCase(),r=Rs(e.slug??e.name??void 0).toLowerCase(),i=Rs(e.description).toLowerCase();return o.includes(n)||r.includes(n)||i.includes(n)}function Ms(e,t){return 0!==e.length&&(!t||e.some(e=>Ps(e)))}function Fs(e,t,n,o){const r=Us(n);if(!r)return[];const i=!0===o?.hideOutOfStock,a=new Set,s=new Set,l=[],u=Cs(e);for(const d of t){const e=d.uniqid??d.id;if(!e||s.has(e))continue;if(!js(d,r))continue;const t=Ns(d,u);if(Ms(t,i)){s.add(e);for(const e of t)e?.uniqid&&a.add(e.uniqid);l.push({type:"group",group:d,products:t})}}const c=$s(e);for(const d of c)d?.uniqid&&!a.has(d.uniqid)&&Ls(d,r)&&(i&&!Ps(d)||(a.add(d.uniqid),l.push({type:"product",product:d})));return null!=o?.maxResults?l.slice(0,o.maxResults):l}function Zs(e,t,n,o){const r=Fs(e,t,n,o),i=new Set,a=[],s=e=>{e?.uniqid&&!i.has(e.uniqid)&&(o?.hideOutOfStock&&!Ps(e)||(i.add(e.uniqid),a.push(e)))};for(const l of r)if("product"!==l.type)for(const e of l.products)s(e);else s(l.product);return null!=o?.maxResults?a.slice(0,o.maxResults):a}function Bs(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 Js(e){const t=e.name?.trim()??"",n=`${t?`Name: ${t}\n\n`:""}${e.message.trim()}`,o=e.maxLength??2e3;return n.slice(0,o)}var Ys=/:([A-Za-z0-9_]+)/g;function Ws(e,t){return e.replace(Ys,(e,n)=>{const o=t[n];if(null==o)throw new Error(`Missing endpoint param: ${n}`);const r=String(o).trim();if(!r)throw new Error(`Endpoint param "${n}" must not be empty`);return encodeURIComponent(r)})}function Vs(e){return`shoppex_${e}`}function Hs(e){try{const t=localStorage.getItem(Vs(e));return t?JSON.parse(t):null}catch{return null}}function Gs(e,t){try{localStorage.setItem(Vs(e),JSON.stringify(t))}catch{console.warn("[shoppex] Failed to save to localStorage")}}function Ks(e){try{localStorage.removeItem(Vs(e))}catch{}}function Xs(e){if("undefined"==typeof window)return null;const t=`presence_connection_${e}`,n=Hs(t);if(n&&n.trim())return n;const o="undefined"!=typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`spx_${Math.random().toString(36).slice(2)}${Date.now().toString(36)}`;return Gs(t,o),o}async function Qs(e){if(!vs())return;if("undefined"==typeof window)return;if(function(e){const t=`client_error_${function(e){return[e.method,e.endpoint,e.statusCode??"none",e.message.trim().toLowerCase(),e.responseReceived?"response":"no-response"].join("|")}(e)}`,n=Date.now(),o=Hs(t);return"number"==typeof o&&n-o<15e3||(Gs(t,n),!1)}(e))return;const t=bs(),n=Ss(),o=n?Ws("/v1/storefront/shops/id/:id/ping",{id:n}):Ws("/v1/storefront/shops/:storeSlug/ping",{storeSlug:t.storeSlug}),r=JSON.stringify({event_type:"client_error",referer:document.referrer||void 0,connection_id:Xs(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)}}),i=`${t.apiBaseUrl}${o}`;try{if("undefined"!=typeof navigator&&"function"==typeof navigator.sendBeacon){const e=new Blob([r],{type:"application/json"});if(navigator.sendBeacon(i,e))return}await fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:r,keepalive:!0})}catch{}}var el=1e4;async function tl(e){return new Promise(t=>setTimeout(t,e))}async function nl(e,t={}){const n=t.baseUrl?null:bs(),o=n??(vs()?bs():null),{method:r="GET",body:i,timeout:l=el,retries:d,baseUrl:p,cache:f}=t,m=d??("GET"===r?2:0),_=`${p??n?.apiBaseUrl??""}${e}`,h={"Content-Type":"application/json",Accept:"application/json"};"string"==typeof o?.locale&&o.locale.trim()&&(h["x-shoppex-locale"]=o.locale.trim());let y=null;const g=async()=>{for(let t=0;t<=m;t++)try{const e=new AbortController,t=setTimeout(()=>e.abort(),l),n=await fetch(_,{method:r,headers:h,body:i?JSON.stringify(i):void 0,signal:e.signal});clearTimeout(t);const o=await ol(n);if(!n.ok){const e=n.statusText?`HTTP ${n.status}: ${n.statusText}`:`HTTP ${n.status}`,t=(o.data&&"object"==typeof o.data&&"error"in o.data&&"string"==typeof o.data.error?o.data.error:null)??(o.data&&"object"==typeof o.data&&"message"in o.data&&"string"==typeof o.data.message?o.data.message:null)??o.rawText??e,r=il(o.data);if(r.code)throw new c(t,r.code,n.status,r.errorParams);throw new u(t,n.status)}if(204===n.status&&null===o.data)return{success:!0};if(!o.data||"object"!=typeof o.data||!("status"in o.data))throw new u("Invalid API response",n.status);return rl(o.data)}catch(e){let n=e instanceof Error?e:new Error(String(e));e instanceof DOMException&&"AbortError"===e.name&&(n=new u("Request timeout",408));const o=n instanceof s?n.statusCode:void 0;if(y={message:n.message,statusCode:o,isTransport:void 0===o||408===o,...n instanceof c?{code:n.code,...n.errorParams?{errorParams:n.errorParams}:{}}:{}},n instanceof c&&void 0!==o&&o>=400&&o<500&&408!==o)break;if(t<m){await tl(500*Math.pow(2,t));continue}}return{success:!1,message:y?.message??"Unknown error",...y?.code?{code:y.code}:{},...y?.errorParams?{errorParams:y.errorParams}:{}}},b="GET"===r&&f&&f.ttl>0?await a(f.key??`GET:${_}`,g,{ttl:f.ttl,staleWhileRevalidate:f.staleWhileRevalidate},e=>e.success):await g(),v=y;return!b.success&&v?.isTransport&&await Qs({endpoint:e,method:r,message:b.message??v.message,statusCode:v.statusCode,attemptCount:m+1,requestUrl:_,responseReceived:void 0!==v.statusCode&&408!==v.statusCode}),b}async function ol(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 rl(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}`,...il(e)}}function il(e){if(!e||"object"!=typeof e)return{};const t=e,n="string"==typeof t.error_code&&t.error_code.length>0?t.error_code:null;if(!n)return{};const o=t.error_params;return{code:n,...o&&"object"==typeof o&&!Array.isArray(o)?{errorParams:o}:{}}}async function al(e,t){return nl(e,{...t,method:"GET"})}async function sl(e,t,n){return nl(e,{...n,method:"POST",body:t})}var ll=3e5;async function ul(){const e=bs(),t=await al(Ws("/v1/storefront/shops/name/:storeSlug",{storeSlug:e.storeSlug}),{cache:{key:`store:${e.storeSlug}`,ttl:ll,staleWhileRevalidate:!0}});return t.success&&t.data?(t.data.shop?.id&&ws(t.data.shop.id),{success:!0,data:t.data.shop}):{success:!1,message:t.message}}async function cl(e){const t=bs(),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()}`:"",r=await al(`${Ws("/v1/storefront/shops/name/:storeSlug",{storeSlug:t.storeSlug})}${o}`,{cache:{key:`storefront:${t.storeSlug}:${e?.productsLimit??"full"}:${e?.productsCursor??"start"}`,ttl:ll,staleWhileRevalidate:!0}});return r.success&&r.data?(r.data.shop?.id&&ws(r.data.shop.id),{success:!0,data:{shop:r.data.shop,products:r.data.products??[],products_pagination:r.data.products_pagination??null,groups:r.data.groups??[],items:r.data.items??[],categories:r.data.categories??[],addons:r.data.addons??{items:[]}}}):{success:!1,message:r.message}}var dl=12e4;function pl(e){if(e.variants&&e.variants.length>0)return e;const t=e.price_variants;return Array.isArray(t)&&0!==t.length?{...e,variants:t.map(e=>function(e){return{id:e.id,title:e.title??e.label??"",price:"number"==typeof e.price?e.price:Number(e.price)||0,stock:"number"==typeof e.stock?e.stock:void 0,orderable:"boolean"==typeof e.orderable?e.orderable:void 0,supplier_backed:"boolean"==typeof e.supplier_backed?e.supplier_backed:void 0,quantity_min:e.quantity_min,quantity_max:e.quantity_max,quantityMin:e.quantityMin,quantityMax:e.quantityMax,image_id:e.image_id,imageId:e.imageId,cloudflare_image_id:e.cloudflare_image_id,cloudflareImageId:e.cloudflareImageId,image_url:e.image_url,imageUrl:e.imageUrl}}(e))}:e}async function fl(){const e=bs(),t=await al(Ws("/v1/storefront/products/public/:storeSlug",{storeSlug:e.storeSlug}),{cache:{key:`products:${e.storeSlug}`,ttl:dl,staleWhileRevalidate:!0}});return t.success&&t.data?{success:!0,data:$s(t.data.products.map(pl))}:{success:!1,message:t.message,data:[]}}var ml="shoppex:affiliate_code:v1";function _l(){return Date.now()}function hl(e){const t=e?.trim().toLowerCase();return t||null}function yl(e,t=30){const n=hl(e);return n?(function(e){if("undefined"!=typeof window)try{window.localStorage.setItem(ml,JSON.stringify(e))}catch{}}({code:n,expiresAt:_l()+(o=t,24*Math.max(1,o)*60*60*1e3)}),n):(gl(),null);var o}function gl(){if("undefined"!=typeof window)try{window.localStorage.removeItem(ml)}catch{}}function bl(){const e=function(){if("undefined"==typeof window)return null;try{const e=window.localStorage.getItem(ml);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<=_l()?(gl(),null):hl(e.code):null}async function vl(e){const t=hl(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=bs(),o=await sl("/v1/storefront/affiliates/resolve",{shop_slug:n.storeSlug,code:t},{retries:0});if(!o.success)return o;if(!o.data?.valid||!o.data.affiliate_code){const e=!1===o.data?.program_enabled;return{success:!1,data:{valid:!1,...void 0!==o.data?.program_enabled?{program_enabled:o.data.program_enabled}:{},affiliate_code:null,discount_active:!1,discount_percent:0},message:o.message??(e?"Affiliate program is disabled for this shop.":"Invalid affiliate code.")}}return{success:!0,data:{valid:!0,...void 0!==o.data.program_enabled?{program_enabled:o.data.program_enabled}:{},affiliate_code:hl(o.data.affiliate_code),discount_active:Boolean(o.data.discount_active),discount_percent:Number(o.data.discount_percent??0)},...o.message?{message:o.message}:{}}}function wl(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 Sl(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:wl(e.custom_fields),unit_price:"number"==typeof e.price_data?.unit_price&&Number.isFinite(e.price_data.unit_price)?e.price_data.unit_price:null,pay_what_you_want_price:"number"==typeof e.pay_what_you_want_price&&Number.isFinite(e.pay_what_you_want_price)?e.pay_what_you_want_price:null};var n;return function(e){let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24);return(t>>>0).toString(16)}(JSON.stringify(t))}function kl(e){return"string"==typeof e.line_id&&e.line_id.trim()?e:{...e,line_id:Sl(e)}}function El(e){const t=e?.trim().toUpperCase();return t&&/^[A-Z]{3}$/.test(t)?t:null}function Ol(){if("undefined"==typeof window||!window.location)return null;const e="string"==typeof window.location.search?window.location.search:"";if(e)return El(new URLSearchParams(e).get("currency"));const t="string"==typeof window.location.href?window.location.href:"";if(!t)return null;try{return El(new URL(t,"https://storefront.shoppex.local").searchParams.get("currency"))}catch{return null}}var xl={cart:"cart",cartBackup:"cart_backup",meta:"cart_meta",metaBackup:"cart_backup_meta",coupon:"cart_coupon",couponBackup:"cart_coupon_backup"};function Tl(e){return`${xl[e]}_${bs().storeSlug}`}function Al(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 zl(e){if(!Number.isFinite(e))throw new d("quantity must be a finite number");return Math.floor(e)}function Il(e){const t=e?.trim().toUpperCase();return t||null}function Pl(){const e=Hs(Tl("coupon"));if(!e||"object"!=typeof e||Array.isArray(e))return null;const t=e,n="string"==typeof t.code?Il(t.code):null,o="COUPON"===t.source||"AFFILIATE"===t.source?t.source:null;return n&&o?{code:n,source:o}:null}function Cl(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():"",r="string"==typeof e.variant_id?e.variant_id.trim():"",i=Number(e.quantity);if(!o||!r||!Number.isFinite(i)||i<1)continue;const a={line_id:"",product_id:o,variant_id:r,quantity:Math.floor(i)};if("string"==typeof e.price_variant_id&&(a.price_variant_id=e.price_variant_id),e.price_data&&"object"==typeof e.price_data){const t=e.price_data;"number"==typeof t.unit_price&&Number.isFinite(t.unit_price)&&(a.price_data={unit_price:t.unit_price})}"number"==typeof e.pay_what_you_want_price&&Number.isFinite(e.pay_what_you_want_price)&&(a.pay_what_you_want_price=e.pay_what_you_want_price),Array.isArray(e.addons)&&(a.addons=e.addons),e.custom_fields&&"object"==typeof e.custom_fields&&!Array.isArray(e.custom_fields)&&(a.custom_fields=e.custom_fields),"string"==typeof e.title&&(a.title=e.title),"string"==typeof e.variant_title&&(a.variant_title=e.variant_title),"string"==typeof e.image_url&&(a.image_url=e.image_url),Array.isArray(e.addon_labels)&&(a.addon_labels=e.addon_labels.filter(e=>"string"==typeof e)),"number"==typeof e.max_quantity&&Number.isFinite(e.max_quantity)&&(a.max_quantity=e.max_quantity),"number"==typeof e.min_quantity&&Number.isFinite(e.min_quantity)&&(a.min_quantity=e.min_quantity),Ml(a),a.line_id=("string"==typeof e.line_id?e.line_id.trim():"")||Sl(a),t.push(kl(a))}return t}function Nl(){return Hs(Tl("meta"))}function $l(){return Pl()?.code??null}function Rl(){return Pl()?.source??null}function Ul(e,t="COUPON"){const n=Il(e);return n?(Gs(Tl("coupon"),{code:n,source:t}),n):(Ks(Tl("coupon")),null)}function ql(){Ks(Tl("coupon"))}function Dl(e){const t=Cl(e);Gs(Tl("cart"),t);const n=Date.now(),o=Nl(),r={created_at:o?.created_at??n,last_modified:n,version:(o?.version??0)+1,checksum:Al(t)};Gs(Tl("meta"),r),0===t.length&&ql()}function Ll(e,t){const n=Cl(e);Gs(Tl("cart"),n);const o=Date.now(),r=t??Nl(),i={created_at:r?.created_at??o,last_modified:o,version:r?.version??1,checksum:Al(n)};Gs(Tl("meta"),i)}function jl(){return Cl(Hs(Tl("cart")))}function Ml(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 Fl(){Ks(Tl("cart")),Ks(Tl("meta")),ql(),Yl=null,Wl+=1}function Zl(){const e=jl();Gs(Tl("cartBackup"),e);const t=Pl();t?Gs(Tl("couponBackup"),t):Ks(Tl("couponBackup"));const n=Nl();if(n)Gs(Tl("metaBackup"),n);else{const t=Date.now();Gs(Tl("metaBackup"),{created_at:t,last_modified:t,version:1,checksum:Al(e)})}}function Bl(){const e=jl(),t=Nl(),n=Al(e);return t?t.checksum===n:(Ll(e,null),!0)}function Jl(){const e=$l();return"AFFILIATE"===Rl()&&e?e.trim().toLowerCase():bl()}var Yl=null,Wl=0;function Vl(){return Yl}var Hl="Your cart changed while checkout was starting. Please review it and try again.";function Gl(e,t){return void 0!==t&&JSON.stringify(e)!==t}function Kl(e){const t=e?.trim();return t||null}function Xl(e){const t=e?.trim();return t||null}function Ql(e){return"/dashboard/api/checkout"===e.customerCheckoutPath&&"undefined"!=typeof window&&"string"==typeof window.location?.origin?{endpoint:e.customerCheckoutPath,baseUrl:window.location.origin}:{endpoint:"/v1/storefront/invoices/from-cart"}}function eu(e){return El(e.currency)??Ol()??El(bs().currency)}function tu(e){const t=e?.trim()??"";if(!t)return"Checkout failed. Please try again.";if(nu(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 nu(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 ou(e,t,n){const o=t?.trim();if(!o)return null;try{const t=new URL(e),r=new URL(o);if(t.origin!==r.origin)return null;const i=t.pathname.replace(/\/+$/,""),a=`${r.pathname.replace(/\/+$/,"")}/invoice/`.replace(/\/{2,}/g,"/");if(!i.startsWith(a))return null;const s=i.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 ru(e,t){const n=Xl(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 iu(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 r=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!r&&o&&n&&(r=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&&r?{invoiceId:o,checkoutUrl:r,rewards:e?.rewards??n?.rewards??null}:null}function au(e,t){return"string"==typeof e?{...t,coupon:e}:e??t??{}}function su(e,t){const n=e.affiliateCode??e.referralCode;if("string"==typeof n){const e=n.trim().toLowerCase();return e.length>0?e:null}return t?.trim().toLowerCase()??bl()}function lu(e){const t=$l(),n=Rl();return{coupon:void 0===e.coupon?"COUPON"===n?t:null:Kl(e.coupon),affiliateCode:su(e,void 0===e.coupon&&"AFFILIATE"===n?t:null)}}function uu(e){const t=e=>{const t=e?.trim();return t?"default"===t.toLowerCase()?null:t:null};return e.map(e=>({product_id:e.product_id,variant_id:t(e.variant_id),quantity:e.quantity,addons:e.addons?.map(e=>({id:e.id,quantity:e.quantity??1})),custom_fields:e.custom_fields,price_variant_id:e.price_variant_id||null,pay_what_you_want_price:e.pay_what_you_want_price}))}function cu(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 du(...e){for(const t of e)if("string"==typeof t&&t.length>0)return t}function pu(e,t){const n=e,o=cu(n.rating)??cu(n.score)??0,r=du(n.comment,n.message),i=du(n.author,n.customer_name),a=n.created_at??n.createdAt,s="number"==typeof a||"string"==typeof a?String(a):"",l=du(n.id,n.uniqid)??`review:${s||t}`;return{...n,id:l,rating:o,...r?{comment:r}:{},...i?{author:i}:{},created_at:s}}async function fu(e){const t=bs(),n=new URLSearchParams;n.set("limit",String(100)),"string"==typeof e&&e.trim().length>0&&n.set("cursor",e);const o=`?${n.toString()}`,r=await al(`${Ws("/v1/storefront/feedback/shop/:storeSlug",{storeSlug:t.storeSlug})}${o}`,{cache:{key:`reviews:${t.storeSlug}:${e??"start"}:100`,ttl:12e4,staleWhileRevalidate:!0}});return r.success&&r.data?{success:!0,data:{...r.data,feedback:r.data.feedback.map(pu)}}:{success:!1,message:r.message}}function mu(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function _u(e,t){return"string"==typeof e.error&&e.error.length>0?e.error:"string"==typeof e.message&&e.message.length>0?e.message:t.statusText?`HTTP ${t.status}: ${t.statusText}`:`HTTP ${t.status}`}function hu(e){const t="string"==typeof e.error_code&&e.error_code.length>0?e.error_code:null;return t?{code:t,...mu(e.error_params)?{errorParams:e.error_params}:{}}:{}}async function yu(e,t={}){const n=t.method??"GET",o={Accept:"application/json"};void 0!==t.body&&(o["Content-Type"]="application/json");const r=t.formData??(void 0!==t.body?JSON.stringify(t.body):void 0);try{const a=await fetch(`/api/customer${e}`,{method:n,headers:o,body:r,credentials:"same-origin",cache:"no-store"});if(204===a.status)return a.ok?{success:!0,status:a.status}:{success:!1,status:a.status,message:_u({status:a.status,data:null},a)};let s;try{s=await a.json()}catch{return{success:!1,status:a.status,message:"Invalid customer API response"}}const l=mu(i=s)&&"number"==typeof i.status&&"data"in i?i:null;if(!l)return{success:!1,status:a.status,message:"Invalid customer API response"};if(!a.ok||l.status<200||l.status>=300)return{success:!1,status:a.status,message:_u(l,a),...hu(l)};const u="string"==typeof l.message&&l.message.length>0?{message:l.message}:{};if(!t.schema)return{success:!0,data:l.data,...u};const c=t.schema.safeParse(l.data);return c.success?{success:!0,data:c.data,...u}:{success:!1,message:"Customer API response did not match the expected contract"}}catch(a){return{success:!1,message:a instanceof Error?a.message:String(a)}}var i}function gu(e){return yu("/auth/otp/request",{method:"POST",body:{email:e}})}function bu(e,t){return yu("/auth/otp/verify",{method:"POST",body:{email:e,otp:t}})}function vu(){return yu("/auth/logout",{method:"POST"})}function wu(){return yu("/me")}function Su(){return yu("/dashboard",{schema:fs})}function ku(e={}){const t=new URLSearchParams;return void 0!==e.page&&t.set("page",String(e.page)),void 0!==e.limit&&t.set("limit",String(e.limit)),e.status&&t.set("status",e.status),e.search&&t.set("q",e.search),yu("/invoices"+(t.size>0?`?${t.toString()}`:""),{schema:Ha})}function Eu(e){return yu(`/invoice/${encodeURIComponent(e)}`,{schema:Ka})}function Ou(){return yu("/loyalty",{schema:os})}function xu(e){return yu("/loyalty/redeem",{method:"POST",body:{points:e.points,idempotency_key:e.idempotencyKey},schema:rs})}function Tu(e){return yu("/warranties"+(e?`?invoice=${encodeURIComponent(e)}`:""),{schema:as})}function Au(e,t){return yu(`/warranties/${encodeURIComponent(e)}/claim`,{method:"POST",body:t?{message:t}:{},schema:ss})}function zu(e){return yu(`/licenses/${encodeURIComponent(e)}/reset-hwid`,{method:"POST",body:{}})}function Iu(e){return yu(`/subscriptions/${encodeURIComponent(e)}/billing-history`)}function Pu(e,t={}){return yu(`/subscriptions/${encodeURIComponent(e)}/cancel`,{method:"POST",body:{...void 0!==t.cancel_at_period_end?{cancel_at_period_end:t.cancel_at_period_end}:{},...void 0!==t.reason?{reason:t.reason}:{}}})}function Cu(e){return yu(`/subscriptions/${encodeURIComponent(e)}/pause`,{method:"POST",body:{}})}function Nu(e){return yu(`/subscriptions/${encodeURIComponent(e)}/resume`,{method:"POST",body:{}})}function $u(){return yu("/favorites")}function Ru(e){return yu(`/favorites/${encodeURIComponent(e)}`,{method:"PUT"})}function Uu(e){return yu(`/favorites/${encodeURIComponent(e)}`,{method:"DELETE"})}function qu(){return yu("/affiliate")}function Du(e){return yu("/tickets",{method:"POST",body:{...void 0!==e.title?{title:e.title}:{},message:e.message,...void 0!==e.invoice_id?{invoice_id:e.invoice_id}:{}}})}function Lu(e){return yu(`/tickets/${encodeURIComponent(e)}`)}function ju(e,t){return yu(`/tickets/${encodeURIComponent(e)}/reply`,{method:"POST",body:{message:t}})}function Mu(e){return yu("/profile",{method:"POST",body:{name:e.name}})}function Fu(e){const t=new FormData;return t.append("file",e),yu("/profile/avatar",{method:"POST",formData:t})}function Zu(){return yu("/profile/avatar",{method:"DELETE"})}function Bu(){return yu("/email-marketing/preferences")}function Ju(e){return yu("/email-marketing/preferences",{method:"PATCH",body:{...void 0!==e.global_unsubscribed?{global_unsubscribed:e.global_unsubscribed}:{},...void 0!==e.list_subscriptions?{list_subscriptions:e.list_subscriptions}:{}}})}function Yu(){return yu("/sessions")}function Wu(e){return yu(`/sessions/${encodeURIComponent(e)}`,{method:"DELETE"})}function Vu(){return yu("/sessions?others=true",{method:"DELETE"})}function Hu(){return yu("/reseller")}function Gu(e){return yu("/reseller/apply",{method:"POST",body:void 0===e?{}:{note:e}})}function Ku(){return yu("/reseller/enroll",{method:"POST",body:{}})}function Xu(e){return yu("/reseller/accept-invite",{method:"POST",body:{token:e}})}function Qu(e={}){const t=new URLSearchParams;return void 0!==e.search&&t.set("search",e.search),void 0!==e.page&&t.set("page",String(e.page)),void 0!==e.per_page&&t.set("per_page",String(e.per_page)),yu("/reseller/catalog"+(t.size>0?`?${t.toString()}`:""))}function ec(e){return yu("/reseller/orders/quote",{method:"POST",body:{items:e}})}function tc(e={}){const t=new URLSearchParams;return void 0!==e.page&&t.set("page",String(e.page)),void 0!==e.per_page&&t.set("per_page",String(e.per_page)),yu("/reseller/orders"+(t.size>0?`?${t.toString()}`:""))}function nc(e){return yu(`/reseller/orders/${encodeURIComponent(e)}`)}function oc(){return yu("/reseller/wallet")}function rc(){return yu("/reseller/api-keys")}function ic(e){const t=e.trim();return t||null}var ac=3e5;var sc=3e5;async function lc(){const e=bs(),t=await al(Ws("/v1/storefront/shops/name/:storeSlug/menus",{storeSlug:e.storeSlug}),{cache:{key:`menus:${e.storeSlug}`,ttl:sc,staleWhileRevalidate:!0}});return t.success&&t.data?{success:!0,data:t.data.menus}:{success:!1,message:t.message}}async function uc(e){const t=bs(),n=await al(Ws("/v1/storefront/shops/name/:storeSlug/menus/:title",{storeSlug:t.storeSlug,title:e}),{cache:{key:`menu:${t.storeSlug}:${e}`,ttl:sc,staleWhileRevalidate:!0}});return n.success&&n.data?{success:!0,data:n.data.menu}:{success:!1,message:n.message}}async function cc(e){return uc(e)}async function dc(e){const t=bs(),n=await al(Ws("/v1/storefront/shops/name/:storeSlug/menus/:title",{storeSlug:t.storeSlug,title:e}),{cache:{key:`menu-slot:${t.storeSlug}:${e}`,ttl:sc,staleWhileRevalidate:!0}});return n.success&&n.data?{success:!0,data:n.data.menu}:{success:!1,message:n.message}}function pc(e){return function(e){const t=S[e];return[t.title,...t.aliases]}(e)}var fc=["utm_source","utm_medium","utm_campaign","utm_term","utm_content"];function mc(e){return`shoppex:utm:${e}`}function _c(e){if("undefined"==typeof window||void 0===window.location)return;const t=function(e){let t;try{t=new URLSearchParams(e)}catch{return{}}const n={};for(const o of fc){const e=t.get(o)?.trim();e&&(n[o]=e.slice(0,255))}return n}(window.location.search);if(Object.keys(t).length>0)return function(e,t){try{const n={utm:t,at:Date.now()};window.localStorage.setItem(mc(e),JSON.stringify(n))}catch{}}(e,t),t;const n=function(e){try{const t=window.localStorage.getItem(mc(e));if(!t)return{};const n=JSON.parse(t);if(!n||"number"!=typeof n.at||"object"!=typeof n.utm)return{};if(Date.now()-n.at>2592e6)return window.localStorage.removeItem(mc(e)),{};const o={};for(const e of fc){const t=n.utm?.[e];"string"==typeof t&&t.length>0&&(o[e]=t.slice(0,255))}return o}catch{return{}}}(e);return Object.keys(n).length>0?n:void 0}async function hc(e,t){if(!vs())return;if("undefined"==typeof document)return;const n=bs(),o=Xs(n.storeSlug);try{const r=Ws("/v1/storefront/shops/:storeSlug/ping",{storeSlug:n.storeSlug});await fetch(`${n.apiBaseUrl}${r}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({referer:document.referrer||void 0,cart_value:e??void 0,item_count:t??void 0,connection_id:o??void 0,utm:_c(n.storeSlug)})})}catch{}}async function yc(){if(!vs())return{success:!1,message:"SDK not initialized"};const e=bs(),t=Ss();return al(t?Ws("/v1/storefront/shops/id/:id/recent-sales",{id:t}):Ws("/v1/storefront/shops/:storeSlug/recent-sales",{storeSlug:e.storeSlug}),{cache:!1,retries:0,timeout:5e3})}async function gc(){if(!vs())return{success:!1,message:"SDK not initialized"};const e=bs(),t=Ss();return al(t?Ws("/v1/storefront/shops/id/:id/online-users",{id:t}):Ws("/v1/storefront/shops/:storeSlug/online-users",{storeSlug:e.storeSlug}),{cache:!1,retries:0,timeout:5e3})}async function bc(){if(!vs())return{success:!1,message:"SDK not initialized"};if("undefined"==typeof document)return{success:!1,message:"Document is not available"};const e=bs(),t=Ss();return sl(t?Ws("/v1/storefront/shops/id/:id/ping",{id:t}):Ws("/v1/storefront/shops/:storeSlug/ping",{storeSlug:e.storeSlug}),{referer:document.referrer||void 0,connection_id:Xs(e.storeSlug)??void 0,utm:_c(e.storeSlug)},{retries:0,timeout:5e3})}function vc(e,t){const n=bs();return new Intl.NumberFormat(t??n.locale??"en-US",{style:"currency",currency:e??n.currency??"USD",...La})}function wc(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function Sc(e){return wc(e)&&wc(e.theme)?{...e,version:"number"==typeof e.version?e.version:0,revision:"number"==typeof e.revision?e.revision:0,theme:{...e.theme,content:wc(e.theme.content)?e.theme.content:{},layout:wc(e.theme.layout)?e.theme.layout:{},style_slots:wc(e.theme.style_slots)?e.theme.style_slots:{},...Array.isArray(e.theme.pages)?{pages:e.theme.pages}:{},...wc(e.theme.terms)?{terms:e.theme.terms}:{}}}:null}async function kc(e){const t=await al(Ws("/v1/storefront/themes/builder/published/:shopSlug",{shopSlug:e}));return t.success&&t.data?wc(n=t.data)?{settings:wc(n.settings)?n.settings:{},builder_settings:Sc(n.builder_settings),content:wc(n.content)?n.content:{},style_slots:wc(n.style_slots)?n.style_slots:{}}:null:null;var n}async function Ec(e){const t=await kc(e);return t?t.settings:null}function Oc(e){const t={};for(const[n,o]of Object.entries(e.settings)){t[n]={};for(const[e,r]of Object.entries(o))t[n][e]=r.default}return t}function xc(e,t){const n={...e};for(const[o,r]of Object.entries(t))r&&(n[o]={...n[o],...r});return n}var Tc={init:function(e,t){"string"==typeof e?gs(e,t):gs(e.storeId,e)},isInitialized:vs,getConfig:bs,client:function(e){const t=bs().apiBaseUrl??"https://api.shoppex.io";if(ms&&_s===t&&!e)return ms;const n=function(e,t){return f({baseUrl:e,headers:t?{Authorization:`Bearer ${t}`}:void 0})}(t,e);return e||(ms=n,_s=t),n},getStore:ul,getStorefront:cl,getStoreLogoUrl:async function(){const e=await ul();return e.success&&e.data?.logo?e.data.logo:null},getStoreBannerUrl:async function(){const e=await ul();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(),r=t??(vs()?bs().apiBaseUrl:"https://api.shoppex.io"),i=await al(Ws("/v1/storefront/shops/domain/:domain",{domain:o}),{baseUrl:r,cache:{key:`store:domain:${o}`,ttl:ll,staleWhileRevalidate:!0}});return i.success&&i.data?.shop?(i.data.shop.id&&ws(i.data.shop.id),{success:!0,data:i.data.shop}):{success:!1,message:i.message??"Failed to resolve store"}},getProducts:fl,getStorefrontProductsPage:async function(e){const t=bs(),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()}`:"",r=await al(`${Ws("/v1/storefront/products/shop/:storeSlug",{storeSlug:t.storeSlug})}${o}`,{cache:{key:`products:page:${t.storeSlug}:${e?.limit??"default"}:${e?.cursor??"start"}:${e?.sort??"featured"}:${i=e?.category,void 0===i?"category:unset":null===i?"category:null":`category:${i}`}:${!0===e?.hideOutOfStock?"in-stock":"all-stock"}`,ttl:dl,staleWhileRevalidate:!0}});var i;return r.success&&r.data?{success:!0,data:{products:r.data.products.map(pl),pagination:r.data.pagination??null}}:{success:!1,message:r.message}},getProduct:async function(e){let t=Ss();if(!t){const e=await ul();t=e.success?e.data?.id??null:null}const n=t?`?slug_shop_id=${encodeURIComponent(t)}`:"",o=await al(`${Ws("/v1/storefront/products/unique/:idOrSlug",{idOrSlug:e})}${n}`,{cache:{key:`product:${e}:${t??"no-shop"}`,ttl:dl,staleWhileRevalidate:!0}});return o.success&&o.data?.product?{success:!0,data:pl(o.data.product)}:{success:!1,message:o.message}},getCategories:async function(){const e=await fl();if(!e.success||!e.data)return{success:!1,message:e.message};const t=new Set;for(const n of e.data)if(n.categories)for(const e of n.categories)"string"==typeof e?t.add(e):e&&"object"==typeof e&&"uniqid"in e&&t.add(e.uniqid);return{success:!0,data:Array.from(t)}},getCart:jl,getCartItemCount:function(){return jl().reduce((e,t)=>e+t.quantity,0)},getCartCoupon:$l,getCartCouponSource:Rl,setCartCoupon:Ul,clearCartCoupon:ql,addToCart:function(e,t,n=1,o){if(!e||!t)throw new d("product_id and variant_id are required");const r=zl(n);if(r<1)throw new d("quantity must be at least 1");const i=jl(),a=Sl({product_id:e,variant_id:t,addons:o?.addons,custom_fields:o?.custom_fields,price_variant_id:o?.price_variant_id,price_data:o?.price_data,pay_what_you_want_price:o?.pay_what_you_want_price}),s=i.findIndex(e=>e.line_id===a);if(s>=0)i[s].quantity+=r,o?.addons&&(i[s].addons=o.addons),o?.custom_fields&&(i[s].custom_fields=o.custom_fields),o?.price_variant_id&&(i[s].price_variant_id=o.price_variant_id),o?.price_data&&(i[s].price_data=o.price_data),void 0!==o?.pay_what_you_want_price&&(i[s].pay_what_you_want_price=o.pay_what_you_want_price),function(e,t){if(t?.replace_display_snapshot)return e.title=t.title,e.variant_title=t.variant_title,e.image_url=t.image_url,e.addon_labels=t.addon_labels,e.max_quantity=t.max_quantity,void(e.min_quantity=t.min_quantity);void 0!==t?.title&&(e.title=t.title);void 0!==t?.variant_title&&(e.variant_title=t.variant_title);void 0!==t?.image_url&&(e.image_url=t.image_url);void 0!==t?.addon_labels&&(e.addon_labels=t.addon_labels);void 0!==t?.max_quantity&&(e.max_quantity=t.max_quantity);void 0!==t?.min_quantity&&(e.min_quantity=t.min_quantity)}(i[s],o),Ml(i[s]);else{const n={line_id:a,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,pay_what_you_want_price:o?.pay_what_you_want_price,title:o?.title,variant_title:o?.variant_title,image_url:o?.image_url,addon_labels:o?.addon_labels,max_quantity:o?.max_quantity,min_quantity:o?.min_quantity};Ml(n),i.push(n)}Dl(i)},setCartItem:function(e,t,n=1,o){if(!e||!t)throw new d("product_id and variant_id are required");const r=zl(n);if(r<1)throw new d("quantity must be at least 1");const i=jl(),a=Sl({product_id:e,variant_id:t,addons:o?.addons,custom_fields:o?.custom_fields,price_variant_id:o?.price_variant_id,price_data:o?.price_data,pay_what_you_want_price:o?.pay_what_you_want_price});for(let l=i.length-1;l>=0;l-=1)i[l].product_id===e&&i[l].variant_id===t&&i.splice(l,1);const s={line_id:a,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,pay_what_you_want_price:o?.pay_what_you_want_price,title:o?.title,variant_title:o?.variant_title,image_url:o?.image_url,addon_labels:o?.addon_labels,max_quantity:o?.max_quantity,min_quantity:o?.min_quantity};Ml(s),i.push(s),Dl(i)},updateCartItem:function(e,t){const n=jl(),o=e.trim();if(!o)throw new d("line_id is required");const r=n.findIndex(e=>e.line_id===o);if(r<0)throw new d("Item not found in cart");const i=JSON.stringify(n);if(void 0!==t.quantity){const e=zl(t.quantity);if(e<1)return n.splice(r,1),void Dl(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.pay_what_you_want_price&&(n[r].pay_what_you_want_price=t.pay_what_you_want_price),void 0!==t.max_quantity&&(null===t.max_quantity?delete n[r].max_quantity:n[r].max_quantity=t.max_quantity),void 0!==t.min_quantity&&(null===t.min_quantity?delete n[r].min_quantity:n[r].min_quantity=t.min_quantity),Ml(n[r]);const a=Sl(n[r]),s=n.findIndex((e,t)=>t!==r&&e.line_id===a);s>=0?(n[s].quantity+=n[r].quantity,Ml(n[s]),n.splice(r,1)):n[r].line_id=a,JSON.stringify(n)!==i&&Dl(n)},removeFromCart:function(e){const t=e.trim();if(!t)throw new d("line_id is required");Dl(jl().filter(e=>e.line_id!==t))},clearCart:Fl,createCartBackup:Zl,restoreCartFromBackup:function(){const e=Cl(Hs(Tl("cartBackup"))),t=Hs(Tl("metaBackup")),n=Hs(Tl("couponBackup"));if(e&&e.length>0){if(Ll(e,t),n&&"object"==typeof n&&!Array.isArray(n)){const e=n,t="COUPON"===e.source||"AFFILIATE"===e.source?e.source:null;"string"==typeof e.code&&t?Ul(e.code,t):ql()}else ql();return!0}return!1},mergeBaskets:function(e){const t=jl();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 r;try{r=zl(n.quantity)}catch{continue}if(r<1)continue;const i=kl({...n,line_id:n.line_id??Sl(n),product_id:e,variant_id:o,quantity:r}),a=t.findIndex(e=>e.line_id===i.line_id);a>=0?(t[a].quantity=Math.max(t[a].quantity,r),Ml(t[a])):(Ml(i),t.push(i))}return Dl(t),t},moveBasketItem:function(e,t,n,o){const r=jl(),i=r.findIndex(n=>n.product_id===e&&n.variant_id===t);if(i<0)throw new d("Item not found in cart");const[a]=r.splice(i,1),s=Sl({...a,product_id:n,variant_id:o}),l=r.findIndex(e=>e.line_id===s);if(l>=0)r[l].quantity+=a.quantity,Ml(r[l]);else{const e=kl({...a,product_id:n,variant_id:o,line_id:s});Ml(e),r.push(e)}Dl(r)},getCartStats:function(){const e=jl(),t=Bl(),n=Nl(),o=Hs(Tl("cartBackup"))??[],r=e.length>0&&e.every(e=>"number"==typeof e.price_data?.unit_price),i=e.reduce((e,t)=>e+ja((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:ja(i),total_price_is_estimate:e.length>0&&!r}},validateCartIntegrity:Bl,quoteCart:async function(e,t){const n=Wl+=1,o=function(e){const t=bs(),n=Il(e)??$l()??void 0;return{store_slug:t.storeSlug,items:jl(),coupon:n}}(e),r=El(t)??Ol()??El(bs().currency),i=await sl("/v1/storefront/cart/quote",{shop_slug:o.store_slug,cart:o.items,coupon:o.coupon,affiliate_code:Jl()??void 0,currency:r??void 0});return n!==Wl||i.success&&(Yl="string"==typeof i.data?.quote_token?i.data.quote_token:null),i},resolveCartLineId:function(e,t,n=jl()){const o=n.filter(n=>n.product_id===e&&n.variant_id===t);if(0===o.length)throw new d(`No cart line found for ${e}/${t}`);return o[0].line_id},checkout:async function(e,t){const n=au(e,t),{autoRedirect:o=!0,email:r}=n,i=lu(n),a=i.coupon,s=Xl(r),l=i.affiliateCode,u=eu(n),c=jl();if(0===c.length)return{success:!1,message:"Cart is empty"};if(Gl(c,n.expectedCart))return{success:!1,message:Hl};Zl();const d=bs(),p=Ql(n),f=await sl(p.endpoint,{shop_slug:d.storeSlug,cart:uu(c),email:s,coupon:a,currency:u,affiliate_code:l,quote_token:Vl()??void 0},{retries:0,baseUrl:p.baseUrl});if(!f.success||!f.data)return nu(f.message)&&Fl(),{success:!1,message:tu(f.message),...f.code?{code:f.code}:{}};const m=iu(f.data,d.checkoutBaseUrl);if(!m)return{success:!1,message:"Failed to create invoice"};const{invoiceId:_}=m,h=ou(m.checkoutUrl,d.checkoutBaseUrl,_);if(!h)return{success:!1,message:"Failed to create invoice"};const y=ru(h,{email:s,locale:n.locale??d.locale});return o&&"undefined"!=typeof window&&window?.location&&(window.location.href=y,Fl()),{success:!0,redirectUrl:y,invoiceId:_,rewards:m.rewards}},buildCheckoutUrl:async function(e,t){const n=au(e,t),{email:o}=n,r=lu(n),i=r.coupon,a=Xl(o),s=r.affiliateCode,l=eu(n),u=jl();if(0===u.length)throw new Error("Cart is empty");if(Gl(u,n.expectedCart))throw new Error(Hl);const c=bs(),d=Ql(n),p=await sl(d.endpoint,{shop_slug:c.storeSlug,cart:uu(u),email:a,coupon:i,currency:l,affiliate_code:s,quote_token:Vl()??void 0},{retries:0,baseUrl:d.baseUrl});if(!p.success||!p.data)throw nu(p.message)&&Fl(),new Error(tu(p.message));const f=iu(p.data,c.checkoutBaseUrl);if(!f)throw new Error("Failed to create invoice");const m=ou(f.checkoutUrl,c.checkoutBaseUrl,f.invoiceId);if(!m)throw new Error("Failed to create invoice");return ru(m,{email:a,locale:n.locale??c.locale})},buildCheckoutUrlSync:function(){throw new Error("buildCheckoutUrlSync is deprecated. Use buildCheckoutUrl (async) instead.")},captureAffiliateFromUrl:async function(e="ref"){if("undefined"==typeof window)return null;let t=null;try{const n=new URL(window.location.href).searchParams.get(e);t=n?n.trim():null}catch{t=null}if(t=hl(t),!t)return null;if(yl(t),vs())try{const e=bs(),n=await sl("/v1/storefront/affiliates/attribution",{shop_slug:e.storeSlug,code:t},{retries:0});return n.success&&n.data?.accepted&&n.data?.affiliate_code?(yl(n.data.affiliate_code),n.data.affiliate_code):(gl(),null)}catch{return t}return t},validateAffiliateCode:vl,applyAffiliateCode:async function(e){const t=await vl(e);return t.success&&t.data?.affiliate_code&&yl(t.data.affiliate_code),t},getAffiliateCode:bl,setAffiliateCode:yl,clearAffiliateCode:gl,validateCoupon:async function(e,t){const n=e.trim();if(!n)return{success:!1,message:"Coupon code is required"};const o={code:n},r="string"==typeof t?t:t?.productId,i="string"==typeof t?void 0:t?.variantId;if(i&&!r)return{success:!1,message:"productId is required when variantId is provided"};if(r)o.product_id=r,i&&(o.variant_id=i);else{const e=jl();if(0===e.length)return{success:!1,message:"Cart is empty"};const t=await async function(){const e=Ss();if(e)return e;const t=await ul();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 sl("/v1/storefront/coupons/check",o)},getShopReviews:async function(){const e=[],t=new Set;let n=null;for(;;){const o=await fu(n);if(!o.success||!o.data)return{success:!1,message:o.message,data:[]};e.push(...o.data.feedback);const r=o.data.pagination;if(!r?.has_more||!r.next_cursor)break;if(t.has(r.next_cursor))break;t.add(r.next_cursor),n=r.next_cursor}return{success:!0,data:e}},getShopReviewsPage:fu,requestOtp:gu,verifyOtp:bu,logout:vu,me:wu,dashboard:Su,orders:ku,order:Eu,loyalty:Ou,redeemLoyaltyPoints:xu,warranties:Tu,claimWarranty:Au,resetLicenseHwid:zu,subscriptionBillingHistory:Iu,cancelSubscription:Pu,pauseSubscription:Cu,resumeSubscription:Nu,favorites:$u,addFavorite:Ru,removeFavorite:Uu,affiliate:qu,createTicket:Du,ticket:Lu,replyToTicket:ju,updateProfile:Mu,updateAvatar:Fu,removeAvatar:Zu,emailPreferences:Bu,updateEmailPreferences:Ju,sessions:Yu,revokeSession:Wu,revokeAllSessions:Vu,reseller:Hu,applyForReseller:Gu,enrollAsReseller:Ku,acceptResellerInvite:Xu,resellerCatalog:Qu,quoteResellerOrder:ec,resellerOrders:tc,resellerOrder:nc,resellerWallet:oc,resellerApiKeys:rc,searchProducts:async function(e,t){if(!vs())return{success:!1,message:"SDK not initialized"};const n=e.trim();if(!n)return{success:!0,data:[]};const o=await cl();return o.success&&o.data?{success:!0,data:Zs(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(!vs())return{success:!1,message:"SDK not initialized"};const n=e.trim();if(!n)return{success:!0,data:[]};const o=await cl();return o.success&&o.data?{success:!0,data:Fs(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=ic(e);if(!t)return{success:!1,message:"Invoice ID is required"};const n=await al(Ws("/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=ic(e);if(!t)return{success:!1,message:"Invoice ID is required"};const n=await al(Ws("/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=bs(),t=await al(Ws("/v1/storefront/shops/name/:storeSlug/pages",{storeSlug:e.storeSlug}),{cache:{key:`pages:${e.storeSlug}`,ttl:ac,staleWhileRevalidate:!0}});return t.success&&t.data?{success:!0,data:t.data.pages}:{success:!1,message:t.message}},getPage:async function(e){const t=bs(),n=await al(Ws("/v1/storefront/shops/name/:storeSlug/pages/:slug",{storeSlug:t.storeSlug,slug:e}),{cache:{key:`page:${t.storeSlug}:${e}`,ttl:ac,staleWhileRevalidate:!0}});return n.success&&n.data?{success:!0,data:n.data.page}:{success:!1,message:n.message}},getMenus:lc,getMenu:cc,getMenuBySlot:dc,getMenuByTitle:uc,getMenuSlotTitles:pc,trackPageView:hc,getStorefrontOnlineUsers:gc,getStorefrontRecentSales:yc,touchStorefrontPresence:bc,createFormatter:vc,formatPrice:function(e,t,n){const o="string"==typeof e?parseFloat(e):e;return Number.isNaN(o)?vc(t,n).format(0):vc(t,n).format(o)},clearCache:r,invalidateCache:function(e){for(const n of t.keys())(n===e||n.startsWith(e))&&t.delete(n)},getCacheStats:function(){return{hits:o.hits,misses:o.misses,pendingRequests:n.size,entries:t.size}},fetchPublishedBuilderSettings:kc,fetchPublishedThemeSettings:Ec,resolveDefaults:Oc,mergeSettings:xc};if("undefined"!=typeof window){const e=window;e.shoppex?.isInitialized?.()||(e.shoppex=Tc)}e.ApiError=c,e.CATALOG_UNIT_PRICE_DECIMAL_PLACES=3,e.CATALOG_UNIT_PRICE_FORMAT_OPTIONS=La,e.CartError=d,e.NetworkError=u,e.NotInitializedError=l,e.PAYABLE_AMOUNT_DECIMAL_PLACES=2,e.ShoppexError=s,e.ValidationError=class e extends s{constructor(t,n){super(t,"VALIDATION_ERROR"),this.name="ValidationError",this.invalidFields=n,Object.setPrototypeOf(this,e.prototype)}},e.acceptResellerInvite=Xu,e.addFavorite=Ru,e.affiliate=qu,e.applyForReseller=Gu,e.buildStorefrontContactMessage=Js,e.buildStorefrontCustomFieldPayload=function(e,t){const n={};return e.forEach(e=>{const o=t[e.name]??e.defaultValue??"";if("checkbox"===e.type)return void(ks(o)&&(n[e.name]="true"));const r=o.trim();r.length>0&&(n[e.name]=r)}),n},e.buildStorefrontProductLookup=Cs,e.cancelSubscription=Pu,e.claimWarranty=Au,e.collectProductSearchHaystack=Ds,e.computeCartLineId=Sl,e.createTicket=Du,e.dashboard=Su,e.default=Tc,e.shoppex=Tc,e.emailPreferences=Bu,e.enrollAsReseller=Ku,e.ensureCartLineId=kl,e.favorites=$u,e.fetchPublishedBuilderSettings=kc,e.fetchPublishedThemeSettings=Ec,e.filterProductsBySearchQuery=function(e,t,n){const o=Us(t);if(!o)return[];let r=e.filter(e=>Ls(e,o));return n?.hideOutOfStock&&(r=r.filter(e=>Ps(e))),null!=n?.maxResults?r.slice(0,n.maxResults):r},e.getMenu=cc,e.getMenuBySlot=dc,e.getMenuByTitle=uc,e.getMenuSlotTitles=pc,e.getMenus=lc,e.getMergedStorefrontProducts=$s,e.getShopReviewsPage=fu,e.getStorefrontGroupProducts=Ns,e.getStorefrontOnlineUsers=gc,e.getStorefrontRecentSales=yc,e.groupMatchesSearchQuery=js,e.isProductInStock=Ps,e.isProductOutOfStock=Is,e.isStorefrontCheckboxCustomFieldValueChecked=ks,e.isVariantOutOfStock=function(e){return 0===As(e)},e.logout=vu,e.loyalty=Ou,e.me=wu,e.mergeSettings=xc,e.normalizeSearchQuery=Us,e.normalizeStorefrontCustomFields=function(e){return function(e){if(Array.isArray(e))return e;if("string"==typeof e){try{const t=JSON.parse(e);if(Array.isArray(t))return t;if(t&&"object"==typeof t){const e=t.custom_fields??t.customFields;return Array.isArray(e)?e:[]}}catch{return[]}return[]}if(e&&"object"==typeof e){const t=e.custom_fields??e.customFields;return Array.isArray(t)?t:[]}return[]}(e).filter(e=>!!e&&"object"==typeof e&&!Array.isArray(e)).map(e=>{const t="string"==typeof e.type?e.type.trim().toLowerCase():"text",n=t.length>0?t:"text",o=[e.default_value,e.default,e.value].find(e=>"string"==typeof e&&e.trim().length>0);return{name:"string"==typeof e.name?e.name.trim():"",type:n,required:!0===e.required||"true"===e.required||1===e.required||"1"===e.required,defaultValue:"string"==typeof o?o:"",placeholder:"string"==typeof e.placeholder?e.placeholder:"",regex:"string"==typeof e.regex?e.regex:void 0}}).filter(e=>e.name.length>0&&"hidden"!==e.type)},e.order=Eu,e.orders=ku,e.pauseSubscription=Cu,e.productMatchesSearchQuery=Ls,e.quoteResellerOrder=ec,e.redeemLoyaltyPoints=xu,e.removeAvatar=Zu,e.removeFavorite=Uu,e.replyToTicket=ju,e.requestOtp=gu,e.reseller=Hu,e.resellerApiKeys=rc,e.resellerCatalog=Qu,e.resellerOrder=nc,e.resellerOrders=tc,e.resellerWallet=oc,e.resetLicenseHwid=zu,e.resolveDefaults=Oc,e.resolveDisplayStock=zs,e.resolveStorefrontApiBaseUrl=Bs,e.resolveStorefrontSocialLinks=function(e){return{discord:e?.discord_link??e?.social?.discord??null,telegram:e?.telegram_link??e?.social?.telegram??null}},e.resolveVariantStockValue=As,e.resumeSubscription=Nu,e.revokeAllSessions=Vu,e.revokeSession=Wu,e.roundPayableAmount=ja,e.searchMergedStorefrontCatalog=Zs,e.searchMergedStorefrontCatalogItems=Fs,e.sessions=Yu,e.stripHtmlFromText=Rs,e.submitStorefrontContactTicket=async function(e){const t=e.shopSlug.trim();if(!t)throw new Error("Store data is not ready yet. Please try again in a moment.");const n=e.email.trim().toLowerCase(),o=e.title?.trim()??"",r=o.length>=2?o.slice(0,30):"Contact Request",i=Js({name:e.name,message:e.message}),a=e.invoiceId?.trim()||void 0,s=Bs({apiBaseUrl:e.apiBaseUrl}),l=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:r,message:i,...a?{invoice_id:a}:{}})}),u=await l.json().catch(()=>null);if(!l.ok)throw new Error(u?.message||u?.error||"Failed to send your message.");const c=u?.data?.uniqid;if(!c)throw new Error("Ticket created, but the response was incomplete.");return{uniqid:c}},e.subscriptionBillingHistory=Iu,e.ticket=Lu,e.touchStorefrontPresence=bc,e.trackPageView=hc,e.updateAvatar=Fu,e.updateEmailPreferences=Ju,e.updateProfile=Mu,e.validateStorefrontCustomFieldValue=function(e,t){if("checkbox"===e.type)return e.required&&!ks(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},e.verifyOtp=bu,e.warranties=Tu});
|
|
2
2
|
//# sourceMappingURL=shoppex.umd.js.map
|