@shoppexio/storefront 0.3.12 → 0.3.13
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/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/modules/search.d.ts +4 -0
- package/dist/modules/search.d.ts.map +1 -1
- package/dist/shoppex.esm.js +2 -2
- package/dist/shoppex.esm.js.map +1 -1
- package/dist/shoppex.umd.js +1 -1
- package/dist/shoppex.umd.js.map +1 -1
- package/dist/utils/storefront-catalog.d.ts +4 -0
- package/dist/utils/storefront-catalog.d.ts.map +1 -0
- package/dist/utils/storefront-search.d.ts +21 -0
- package/dist/utils/storefront-search.d.ts.map +1 -0
- 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=class e extends Error{constructor(t,n,r){super(t),this.name="ShoppexError",this.code=n,this.statusCode=r,Object.setPrototypeOf(this,e.prototype)}},n=class e extends t{constructor(){super("SDK not initialized. Call shoppex.init() first.","NOT_INITIALIZED"),this.name="NotInitializedError",Object.setPrototypeOf(this,e.prototype)}},r=class e extends t{constructor(t,n){super(t,"NETWORK_ERROR",n),this.name="NetworkError",Object.setPrototypeOf(this,e.prototype)}},i=class e extends t{constructor(t){super(t,"BASKET_ERROR"),this.name="CartError",Object.setPrototypeOf(this,e.prototype)}},o=/\{[^{}]+\}/g;function a(e){let{baseUrl:t="",Request:n=globalThis.Request,fetch:r=globalThis.fetch,querySerializer:i,bodySerializer:o,pathSerializer:a,headers:s,requestInitExt:u,...c}={...e};u="object"==typeof process&&Number.parseInt(process?.versions?.node?.substring(0,2))>=18&&process.versions.undici?u:void 0,t=m(t);const h=[];async function _(e,_){const{baseUrl:y,fetch:g=r,Request:v=n,headers:b,params:w={},parseAs:S="json",querySerializer:k,bodySerializer:z=o??p,pathSerializer:x,body:O,middleware:$=[],...E}=_||{};let T=t;y&&(T=m(y)??t);let N="function"==typeof i?i:l(i);k&&(N="function"==typeof k?k:l({..."object"==typeof i?i:{},...k}));const I=x||a||d,A=void 0===O?void 0:z(O,f(s,b,w.header)),C=f(void 0===A||A instanceof FormData?{}:{"Content-Type":"application/json"},s,b,w.header),P=[...h,...$],R={redirect:"follow",...c,...E,body:A,headers:C};let U,j,q,Z=new v(function(e,t){let n=`${t.baseUrl}${e}`;t.params?.path&&(n=t.pathSerializer(n,t.params.path));let r=t.querySerializer(t.params.query??{});r.startsWith("?")&&(r=r.substring(1));r&&(n+=`?${r}`);return n}(e,{baseUrl:T,params:w,querySerializer:N,pathSerializer:I}),R);for(const t in E)t in Z||(Z[t]=E[t]);if(P.length){U=Math.random().toString(36).slice(2,11),j=Object.freeze({baseUrl:T,fetch:g,parseAs:S,querySerializer:N,bodySerializer:z,pathSerializer:I});for(const t of P)if(t&&"object"==typeof t&&"function"==typeof t.onRequest){const n=await t.onRequest({request:Z,schemaPath:e,params:w,options:j,id:U});if(n){if(!(n instanceof v)){if(n instanceof Response){q=n;break}throw new Error("onRequest: must return new Request() or Response() when modifying the request")}Z=n}}}if(!q){try{q=await g(Z,u)}catch(M){let t=M;if(P.length)for(let n=P.length-1;n>=0;n--){const r=P[n];if(r&&"object"==typeof r&&"function"==typeof r.onError){const n=await r.onError({request:Z,error:t,schemaPath:e,params:w,options:j,id:U});if(n){if(n instanceof Response){t=void 0,q=n;break}if(n instanceof Error){t=n;continue}throw new Error("onError: must return new Response() or instance of Error")}}}if(t)throw t}if(P.length)for(let t=P.length-1;t>=0;t--){const n=P[t];if(n&&"object"==typeof n&&"function"==typeof n.onResponse){const t=await n.onResponse({request:Z,response:q,schemaPath:e,params:w,options:j,id:U});if(t){if(!(t instanceof Response))throw new Error("onResponse: must return new Response() when modifying the response");q=t}}}}const D=q.headers.get("Content-Length");if(204===q.status||"HEAD"===Z.method||"0"===D&&!q.headers.get("Transfer-Encoding")?.includes("chunked"))return q.ok?{data:void 0,response:q}:{error:void 0,response:q};if(q.ok){const e=async()=>{if("stream"===S)return q.body;if("json"===S&&!D){const e=await q.text();return e?JSON.parse(e):void 0}return await q[S]()};return{data:await e(),response:q}}let L=await q.text();try{L=JSON.parse(L)}catch{}return{error:L,response:q}}return{request:(e,t,n)=>_(t,{...n,method:e.toUpperCase()}),GET:(e,t)=>_(e,{...t,method:"GET"}),PUT:(e,t)=>_(e,{...t,method:"PUT"}),POST:(e,t)=>_(e,{...t,method:"POST"}),DELETE:(e,t)=>_(e,{...t,method:"DELETE"}),OPTIONS:(e,t)=>_(e,{...t,method:"OPTIONS"}),HEAD:(e,t)=>_(e,{...t,method:"HEAD"}),PATCH:(e,t)=>_(e,{...t,method:"PATCH"}),TRACE:(e,t)=>_(e,{...t,method:"TRACE"}),use(...e){for(const t of e)if(t){if("object"!=typeof t||!("onRequest"in t||"onResponse"in t||"onError"in t))throw new Error("Middleware must be an object with one of `onRequest()`, `onResponse() or `onError()`");h.push(t)}},eject(...e){for(const t of e){const e=h.indexOf(t);-1!==e&&h.splice(e,1)}}}}function s(e,t,n){if(null==t)return"";if("object"==typeof t)throw new Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");return`${e}=${!0===n?.allowReserved?t:encodeURIComponent(t)}`}function u(e,t,n){if(!t||"object"!=typeof t)return"";const r=[],i={simple:",",label:".",matrix:";"}[n.style]||"&";if("deepObject"!==n.style&&!1===n.explode){for(const e in t)r.push(e,!0===n.allowReserved?t[e]:encodeURIComponent(t[e]));const i=r.join(",");switch(n.style){case"form":return`${e}=${i}`;case"label":return`.${i}`;case"matrix":return`;${e}=${i}`;default:return i}}for(const a in t){const i="deepObject"===n.style?`${e}[${a}]`:a;r.push(s(i,t[a],n))}const o=r.join(i);return"label"===n.style||"matrix"===n.style?`${i}${o}`:o}function c(e,t,n){if(!Array.isArray(t))return"";if(!1===n.explode){const r={form:",",spaceDelimited:"%20",pipeDelimited:"|"}[n.style]||",",i=(!0===n.allowReserved?t:t.map(e=>encodeURIComponent(e))).join(r);switch(n.style){case"simple":return i;case"label":return`.${i}`;case"matrix":return`;${e}=${i}`;default:return`${e}=${i}`}}const r={simple:",",label:".",matrix:";"}[n.style]||"&",i=[];for(const o of t)"simple"===n.style||"label"===n.style?i.push(!0===n.allowReserved?o:encodeURIComponent(o)):i.push(s(e,o,n));return"label"===n.style||"matrix"===n.style?`${r}${i.join(r)}`:i.join(r)}function l(e){return function(t){const n=[];if(t&&"object"==typeof t)for(const r in t){const i=t[r];if(null!=i)if(Array.isArray(i)){if(0===i.length)continue;n.push(c(r,i,{style:"form",explode:!0,...e?.array,allowReserved:e?.allowReserved||!1}))}else"object"!=typeof i?n.push(s(r,i,e)):n.push(u(r,i,{style:"deepObject",explode:!0,...e?.object,allowReserved:e?.allowReserved||!1}))}return n.join("&")}}function d(e,t){let n=e;for(const r of e.match(o)??[]){let e=r.substring(1,r.length-1),i=!1,o="simple";if(e.endsWith("*")&&(i=!0,e=e.substring(0,e.length-1)),e.startsWith(".")?(o="label",e=e.substring(1)):e.startsWith(";")&&(o="matrix",e=e.substring(1)),!t||void 0===t[e]||null===t[e])continue;const a=t[e];Array.isArray(a)?n=n.replace(r,c(e,a,{style:o,explode:i})):n="object"!=typeof a?"matrix"!==o?n.replace(r,"label"===o?`.${encodeURIComponent(a)}`:encodeURIComponent(a)):n.replace(r,`;${s(e,a)}`):n.replace(r,u(e,a,{style:o,explode:i}))}return n}function p(e,t){return e instanceof FormData?e:t&&"application/x-www-form-urlencoded"===(t.get instanceof Function?t.get("Content-Type")??t.get("content-type"):t["Content-Type"]??t["content-type"])?new URLSearchParams(e).toString():JSON.stringify(e)}function f(...e){const t=new Headers;for(const n of e){if(!n||"object"!=typeof n)continue;const e=n instanceof Headers?n.entries():Object.entries(n);for(const[n,r]of e)if(null===r)t.delete(n);else if(Array.isArray(r))for(const e of r)t.append(n,e);else void 0!==r&&t.set(n,r)}return t}function m(e){return e.endsWith("/")?e.substring(0,e.length-1):e}var h,_={header:{title:"Header",aliases:["Header Menu"]},footer:{title:"Footer",aliases:["Footer Links","Legal Links"]}};function y(e,t,n){function r(n,r){if(n._zod||Object.defineProperty(n,"_zod",{value:{def:r,constr:a,traits:new Set},enumerable:!1}),n._zod.traits.has(e))return;n._zod.traits.add(e),t(n,r);const i=a.prototype,o=Object.keys(i);for(let e=0;e<o.length;e++){const t=o[e];t in n||(n[t]=i[t].bind(n))}}const i=n?.Parent??Object;class o extends i{}function a(e){var t;const i=n?.Parent?new o:this;r(i,e),(t=i._zod).deferred??(t.deferred=[]);for(const n of i._zod.deferred)n();return i}return Object.defineProperty(o,"name",{value:e}),Object.defineProperty(a,"init",{value:r}),Object.defineProperty(a,Symbol.hasInstance,{value:t=>!!(n?.Parent&&t instanceof n.Parent)||t?._zod?.traits?.has(e)}),Object.defineProperty(a,"name",{value:e}),a}var g=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},v=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}};(h=globalThis).__zod_globalConfig??(h.__zod_globalConfig={});var b=globalThis.__zod_globalConfig;function w(e){return e&&Object.assign(b,e),b}function S(e){const t=Object.values(e).filter(e=>"number"==typeof e);return Object.entries(e).filter(([e,n])=>-1===t.indexOf(+e)).map(([e,t])=>t)}function k(e,t){return"bigint"==typeof t?t.toString():t}function z(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function x(e){return null==e}function O(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}var $=Symbol("evaluating");function E(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==$)return void 0===r&&(r=$,r=n()),r},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function T(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function N(...e){const t={};for(const n of e)Object.assign(t,Object.getOwnPropertyDescriptors(n));return Object.defineProperties({},t)}function I(e){return JSON.stringify(e)}var A="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function C(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}var P=z(()=>{if(b.jitless)return!1;if("undefined"!=typeof navigator&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch(e){return!1}});function R(e){if(!1===C(e))return!1;const t=e.constructor;if(void 0===t)return!0;if("function"!=typeof t)return!0;const n=t.prototype;return!1!==C(n)&&!1!==Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")}function U(e){return R(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}var j=new Set(["string","number","symbol"]);function q(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Z(e,t,n){const r=new e._zod.constr(t??e._zod.def);return t&&!n?.parent||(r._zod.parent=e),r}function D(e){const t=e;if(!t)return{};if("string"==typeof t)return{error:()=>t};if(void 0!==t?.message){if(void 0!==t?.error)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,"string"==typeof t.error?{...t,error:()=>t.error}:t}var L={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function M(e,t=0){if(!0===e.aborted)return!0;for(let n=t;n<e.issues.length;n++)if(!0!==e.issues[n]?.continue)return!0;return!1}function F(e,t=0){if(!0===e.aborted)return!0;for(let n=t;n<e.issues.length;n++)if(!1===e.issues[n]?.continue)return!0;return!1}function B(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function J(e){return"string"==typeof e?e:e?.message}function Y(e,t,n){const r=e.message?e.message:J(e.inst?._zod.def?.error?.(e))??J(t?.error?.(e))??J(n.customError?.(e))??J(n.localeError?.(e))??"Invalid input",{inst:i,continue:o,input:a,...s}=e;return s.path??(s.path=[]),s.message=r,t?.reportInput&&(s.input=a),s}function W(e){return Array.isArray(e)?"array":"string"==typeof e?"string":"unknown"}function V(...e){const[t,n,r]=e;return"string"==typeof t?{message:t,code:"custom",input:n,inst:r}:{...t}}var G=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,k,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},K=y("$ZodError",G),H=y("$ZodError",G,{Parent:Error});var X=e=>(t,n,r,i)=>{const o=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},o);if(a instanceof Promise)throw new g;if(a.issues.length){const t=new(i?.Err??e)(a.issues.map(e=>Y(e,o,w())));throw A(t,i?.callee),t}return a.value},Q=e=>async(t,n,r,i)=>{const o=r?{...r,async:!0}:{async:!0};let a=t._zod.run({value:n,issues:[]},o);if(a instanceof Promise&&(a=await a),a.issues.length){const t=new(i?.Err??e)(a.issues.map(e=>Y(e,o,w())));throw A(t,i?.callee),t}return a.value},ee=e=>(t,n,r)=>{const i=r?{...r,async:!1}:{async:!1},o=t._zod.run({value:n,issues:[]},i);if(o instanceof Promise)throw new g;return o.issues.length?{success:!1,error:new(e??K)(o.issues.map(e=>Y(e,i,w())))}:{success:!0,data:o.value}},te=ee(H),ne=e=>async(t,n,r)=>{const i=r?{...r,async:!0}:{async:!0};let o=t._zod.run({value:n,issues:[]},i);return o instanceof Promise&&(o=await o),o.issues.length?{success:!1,error:new e(o.issues.map(e=>Y(e,i,w())))}:{success:!0,data:o.value}},re=ne(H),ie=e=>(t,n,r)=>{const i=r?{...r,direction:"backward"}:{direction:"backward"};return X(e)(t,n,i)},oe=e=>(t,n,r)=>X(e)(t,n,r),ae=e=>async(t,n,r)=>{const i=r?{...r,direction:"backward"}:{direction:"backward"};return Q(e)(t,n,i)},se=e=>async(t,n,r)=>Q(e)(t,n,r),ue=e=>(t,n,r)=>{const i=r?{...r,direction:"backward"}:{direction:"backward"};return ee(e)(t,n,i)},ce=e=>(t,n,r)=>ee(e)(t,n,r),le=e=>async(t,n,r)=>{const i=r?{...r,direction:"backward"}:{direction:"backward"};return ne(e)(t,n,i)},de=e=>async(t,n,r)=>ne(e)(t,n,r),pe=/^[cC][0-9a-z]{6,}$/,fe=/^[0-9a-z]+$/,me=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,he=/^[0-9a-vA-V]{20}$/,_e=/^[A-Za-z0-9]{27}$/,ye=/^[a-zA-Z0-9_-]{21}$/,ge=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,ve=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,be=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,we=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var Se=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ke=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,ze=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,xe=/^(([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])$/,Oe=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,$e=/^[A-Za-z0-9_-]*$/,Ee=/^https?$/,Te=/^\+[1-9]\d{6,14}$/,Ne="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",Ie=new RegExp(`^${Ne}$`);function Ae(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return"number"==typeof e.precision?-1===e.precision?`${t}`:0===e.precision?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}var Ce=/^-?\d+$/,Pe=/^-?\d+(?:\.\d+)?$/,Re=/^(?:true|false)$/i,Ue=/^[^A-Z]*$/,je=/^[^a-z]*$/,qe=y("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),Ze={number:"number",bigint:"bigint",object:"date"},De=y("$ZodCheckLessThan",(e,t)=>{qe.init(e,t);const n=Ze[typeof t.value];e._zod.onattach.push(e=>{const n=e._zod.bag,r=(t.inclusive?n.maximum:n.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<r&&(t.inclusive?n.maximum=t.value:n.exclusiveMaximum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value<=t.value:r.value<t.value)||r.issues.push({origin:n,code:"too_big",maximum:"object"==typeof t.value?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Le=y("$ZodCheckGreaterThan",(e,t)=>{qe.init(e,t);const n=Ze[typeof t.value];e._zod.onattach.push(e=>{const n=e._zod.bag,r=(t.inclusive?n.minimum:n.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>r&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:"too_small",minimum:"object"==typeof t.value?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Me=y("$ZodCheckMultipleOf",(e,t)=>{qe.init(e,t),e._zod.onattach.push(e=>{var n;(n=e._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");("bigint"==typeof n.value?n.value%t.value!==BigInt(0):0!==function(e,t){const n=e/t,r=Math.round(n),i=Number.EPSILON*Math.max(Math.abs(n),1);return Math.abs(n-r)<i?0:n-r}(n.value,t.value))&&n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),Fe=y("$ZodCheckNumberFormat",(e,t)=>{qe.init(e,t),t.format=t.format||"float64";const n=t.format?.includes("int"),r=n?"int":"number",[i,o]=L[t.format];e._zod.onattach.push(e=>{const r=e._zod.bag;r.format=t.format,r.minimum=i,r.maximum=o,n&&(r.pattern=Ce)}),e._zod.check=a=>{const s=a.value;if(n){if(!Number.isInteger(s))return void a.issues.push({expected:r,format:t.format,code:"invalid_type",continue:!1,input:s,inst:e});if(!Number.isSafeInteger(s))return void(s>0?a.issues.push({input:s,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,inclusive:!0,continue:!t.abort}):a.issues.push({input:s,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,inclusive:!0,continue:!t.abort}))}s<i&&a.issues.push({origin:"number",input:s,code:"too_small",minimum:i,inclusive:!0,inst:e,continue:!t.abort}),s>o&&a.issues.push({origin:"number",input:s,code:"too_big",maximum:o,inclusive:!0,inst:e,continue:!t.abort})}}),Be=y("$ZodCheckMaxLength",(e,t)=>{var n;qe.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!x(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<n&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{const r=n.value;if(r.length<=t.maximum)return;const i=W(r);n.issues.push({origin:i,code:"too_big",maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Je=y("$ZodCheckMinLength",(e,t)=>{var n;qe.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!x(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{const r=n.value;if(r.length>=t.minimum)return;const i=W(r);n.issues.push({origin:i,code:"too_small",minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Ye=y("$ZodCheckLengthEquals",(e,t)=>{var n;qe.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!x(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=n=>{const r=n.value,i=r.length;if(i===t.length)return;const o=W(r),a=i>t.length;n.issues.push({origin:o,...a?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),We=y("$ZodCheckStringFormat",(e,t)=>{var n,r;qe.init(e,t),e._zod.onattach.push(e=>{const n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??(n.patterns=new Set),n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,t.pattern.test(n.value)||n.issues.push({origin:"string",code:"invalid_format",format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),Ve=y("$ZodCheckRegex",(e,t)=>{We.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,t.pattern.test(n.value)||n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),Ge=y("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Ue),We.init(e,t)}),Ke=y("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=je),We.init(e,t)}),He=y("$ZodCheckIncludes",(e,t)=>{qe.init(e,t);const n=q(t.includes),r=new RegExp("number"==typeof t.position?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(r)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),Xe=y("$ZodCheckStartsWith",(e,t)=>{qe.init(e,t);const n=new RegExp(`^${q(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(n)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),Qe=y("$ZodCheckEndsWith",(e,t)=>{qe.init(e,t);const n=new RegExp(`.*${q(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(n)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),et=y("$ZodCheckOverwrite",(e,t)=>{qe.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}),tt=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if("function"==typeof e)return e(this,{execution:"sync"}),void e(this,{execution:"async"});const t=e.split("\n").filter(e=>e),n=Math.min(...t.map(e=>e.length-e.trimStart().length)),r=t.map(e=>e.slice(n)).map(e=>" ".repeat(2*this.indent)+e);for(const i of r)this.content.push(i)}compile(){const e=Function,t=this?.args;return new e(...t,[...(this?.content??[""]).map(e=>` ${e}`)].join("\n"))}},nt={major:4,minor:4,patch:3},rt=y("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=nt;const r=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&r.unshift(e);for(const i of r)for(const t of i._zod.onattach)t(e);if(0===r.length)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const t=(e,t,n)=>{let r,i=M(e);for(const o of t){if(o._zod.def.when){if(F(e))continue;if(!o._zod.def.when(e))continue}else if(i)continue;const t=e.issues.length,a=o._zod.check(e);if(a instanceof Promise&&!1===n?.async)throw new g;if(r||a instanceof Promise)r=(r??Promise.resolve()).then(async()=>{await a,e.issues.length!==t&&(i||(i=M(e,t)))});else{if(e.issues.length===t)continue;i||(i=M(e,t))}}return r?r.then(()=>e):e},n=(n,i,o)=>{if(M(n))return n.aborted=!0,n;const a=t(i,r,o);if(a instanceof Promise){if(!1===o.async)throw new g;return a.then(t=>e._zod.parse(t,o))}return e._zod.parse(a,o)};e._zod.run=(i,o)=>{if(o.skipChecks)return e._zod.parse(i,o);if("backward"===o.direction){const t=e._zod.parse({value:i.value,issues:[]},{...o,skipChecks:!0});return t instanceof Promise?t.then(e=>n(e,i,o)):n(t,i,o)}const a=e._zod.parse(i,o);if(a instanceof Promise){if(!1===o.async)throw new g;return a.then(e=>t(e,r,o))}return t(a,r,o)}}E(e,"~standard",()=>({validate:t=>{try{const n=te(e,t);return n.success?{value:n.data}:{issues:n.error?.issues}}catch(n){return re(e,t).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:"zod",version:1}))}),it=y("$ZodString",(e,t)=>{var n;rt.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??(n=e._zod.bag,new RegExp(`^${n?`[\\s\\S]{${n?.minimum??0},${n?.maximum??""}}`:"[\\s\\S]*"}$`)),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch(r){}return"string"==typeof n.value||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),ot=y("$ZodStringFormat",(e,t)=>{We.init(e,t),it.init(e,t)}),at=y("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=ve),ot.init(e,t)}),st=y("$ZodUUID",(e,t)=>{if(t.version){const e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(void 0===e)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=be(e))}else t.pattern??(t.pattern=be());ot.init(e,t)}),ut=y("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=we),ot.init(e,t)}),ct=y("$ZodURL",(e,t)=>{ot.init(e,t),e._zod.check=n=>{try{const r=n.value.trim();if(!t.normalize&&t.protocol?.source===Ee.source&&!/^https?:\/\//i.test(r))return void n.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:n.value,inst:e,continue:!t.abort});const i=new URL(r);return t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(":")?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),void(t.normalize?n.value=i.href:n.value=r)}catch(r){n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),lt=y("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),ot.init(e,t)}),dt=y("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=ye),ot.init(e,t)}),pt=y("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=pe),ot.init(e,t)}),ft=y("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=fe),ot.init(e,t)}),mt=y("$ZodULID",(e,t)=>{t.pattern??(t.pattern=me),ot.init(e,t)}),ht=y("$ZodXID",(e,t)=>{t.pattern??(t.pattern=he),ot.init(e,t)}),_t=y("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=_e),ot.init(e,t)}),yt=y("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=function(e){const t=Ae({precision:e.precision}),n=["Z"];e.local&&n.push(""),e.offset&&n.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const r=`${t}(?:${n.join("|")})`;return new RegExp(`^${Ne}T(?:${r})$`)}(t)),ot.init(e,t)}),gt=y("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=Ie),ot.init(e,t)}),vt=y("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=new RegExp(`^${Ae(t)}$`)),ot.init(e,t)}),bt=y("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=ge),ot.init(e,t)}),wt=y("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=Se),ot.init(e,t),e._zod.bag.format="ipv4"}),St=y("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=ke),ot.init(e,t),e._zod.bag.format="ipv6",e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:e,continue:!t.abort})}}}),kt=y("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=ze),ot.init(e,t)}),zt=y("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=xe),ot.init(e,t),e._zod.check=n=>{const r=n.value.split("/");try{if(2!==r.length)throw new Error;const[e,t]=r;if(!t)throw new Error;const n=Number(t);if(`${n}`!==t)throw new Error;if(n<0||n>128)throw new Error;new URL(`http://[${e}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});function xt(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 Ot=y("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=Oe),ot.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=n=>{xt(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});var $t=y("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=$e),ot.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 xt(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})}}),Et=y("$ZodE164",(e,t)=>{t.pattern??(t.pattern=Te),ot.init(e,t)});var Tt=y("$ZodJWT",(e,t)=>{ot.init(e,t),e._zod.check=n=>{(function(e,t=null){try{const n=e.split(".");if(3!==n.length)return!1;const[r]=n;if(!r)return!1;const i=JSON.parse(atob(r));return!("typ"in i&&"JWT"!==i?.typ||!i.alg||t&&(!("alg"in i)||i.alg!==t))}catch{return!1}})(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),Nt=y("$ZodNumber",(e,t)=>{rt.init(e,t),e._zod.pattern=e._zod.bag.pattern??Pe,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch(a){}const i=n.value;if("number"==typeof i&&!Number.isNaN(i)&&Number.isFinite(i))return n;const o="number"==typeof i?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:i,inst:e,...o?{received:o}:{}}),n}}),It=y("$ZodNumberFormat",(e,t)=>{Fe.init(e,t),Nt.init(e,t)}),At=y("$ZodBoolean",(e,t)=>{rt.init(e,t),e._zod.pattern=Re,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Boolean(n.value)}catch(o){}const i=n.value;return"boolean"==typeof i||n.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:e}),n}}),Ct=y("$ZodUnknown",(e,t)=>{rt.init(e,t),e._zod.parse=e=>e}),Pt=y("$ZodNever",(e,t)=>{rt.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:"never",code:"invalid_type",input:t.value,inst:e}),t)});function Rt(e,t,n){e.issues.length&&t.issues.push(...B(n,e.issues)),t.value[n]=e.value}var Ut=y("$ZodArray",(e,t)=>{rt.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;if(!Array.isArray(i))return n.issues.push({expected:"array",code:"invalid_type",input:i,inst:e}),n;n.value=Array(i.length);const o=[];for(let e=0;e<i.length;e++){const a=i[e],s=t.element._zod.run({value:a,issues:[]},r);s instanceof Promise?o.push(s.then(t=>Rt(t,n,e))):Rt(s,n,e)}return o.length?Promise.all(o).then(()=>n):n}});function jt(e,t,n,r,i,o){const a=n in r;if(e.issues.length){if(i&&o&&!a)return;t.issues.push(...B(n,e.issues))}a||i?void 0===e.value?a&&(t.value[n]=void 0):t.value[n]=e.value:e.issues.length||t.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[n]})}function qt(e){const t=Object.keys(e.shape);for(const i of t)if(!e.shape?.[i]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${i}": expected a Zod schema`);const n=(r=e.shape,Object.keys(r).filter(e=>"optional"===r[e]._zod.optin&&"optional"===r[e]._zod.optout));var r;return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function Zt(e,t,n,r,i,o){const a=[],s=i.keySet,u=i.catchall._zod,c=u.def.type,l="optional"===u.optin,d="optional"===u.optout;for(const p in t){if("__proto__"===p)continue;if(s.has(p))continue;if("never"===c){a.push(p);continue}const i=u.run({value:t[p],issues:[]},r);i instanceof Promise?e.push(i.then(e=>jt(e,n,p,t,l,d))):jt(i,n,p,t,l,d)}return a.length&&n.issues.push({code:"unrecognized_keys",keys:a,input:t,inst:o}),e.length?Promise.all(e).then(()=>n):n}var Dt=y("$ZodObject",(e,t)=>{if(rt.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){const e=t.shape;Object.defineProperty(t,"shape",{get:()=>{const n={...e};return Object.defineProperty(t,"shape",{value:n}),n}})}const n=z(()=>qt(t));E(e._zod,"propValues",()=>{const e=t.shape,n={};for(const t in e){const r=e[t]._zod;if(r.values){n[t]??(n[t]=new Set);for(const e of r.values)n[t].add(e)}}return n});const r=C,i=t.catchall;let o;e._zod.parse=(t,a)=>{o??(o=n.value);const s=t.value;if(!r(s))return t.issues.push({expected:"object",code:"invalid_type",input:s,inst:e}),t;t.value={};const u=[],c=o.shape;for(const e of o.keys){const n=c[e],r="optional"===n._zod.optin,i="optional"===n._zod.optout,o=n._zod.run({value:s[e],issues:[]},a);o instanceof Promise?u.push(o.then(n=>jt(n,t,e,s,r,i))):jt(o,t,e,s,r,i)}return i?Zt(u,s,t,a,n.value,e):u.length?Promise.all(u).then(()=>t):t}}),Lt=y("$ZodObjectJIT",(e,t)=>{Dt.init(e,t);const n=e._zod.parse,r=z(()=>qt(t));let i;const o=C,a=!b.jitless,s=a&&P.value,u=t.catchall;let c;e._zod.parse=(l,d)=>{c??(c=r.value);const p=l.value;return o(p)?a&&s&&!1===d?.async&&!0!==d.jitless?(i||(i=(e=>{const t=new tt(["shape","payload","ctx"]),n=r.value,i=e=>{const t=I(e);return`shape[${t}]._zod.run({ value: input[${t}], issues: [] }, ctx)`};t.write("const input = payload.value;");const o=Object.create(null);let a=0;for(const r of n.keys)o[r]="key_"+a++;t.write("const newResult = {};");for(const r of n.keys){const n=o[r],a=I(r),s=e[r],u="optional"===s?._zod?.optin,c="optional"===s?._zod?.optout;t.write(`const ${n} = ${i(r)};`),u&&c?t.write(`\n if (${n}.issues.length) {\n if (${a} in input) {\n payload.issues = payload.issues.concat(${n}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${a}, ...iss.path] : [${a}]\n })));\n }\n }\n \n if (${n}.value === undefined) {\n if (${a} in input) {\n newResult[${a}] = undefined;\n }\n } else {\n newResult[${a}] = ${n}.value;\n }\n \n `):u?t.write(`\n if (${n}.issues.length) {\n payload.issues = payload.issues.concat(${n}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${a}, ...iss.path] : [${a}]\n })));\n }\n \n if (${n}.value === undefined) {\n if (${a} in input) {\n newResult[${a}] = undefined;\n }\n } else {\n newResult[${a}] = ${n}.value;\n }\n \n `):t.write(`\n const ${n}_present = ${a} in input;\n if (${n}.issues.length) {\n payload.issues = payload.issues.concat(${n}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${a}, ...iss.path] : [${a}]\n })));\n }\n if (!${n}_present && !${n}.issues.length) {\n payload.issues.push({\n code: "invalid_type",\n expected: "nonoptional",\n input: undefined,\n path: [${a}]\n });\n }\n\n if (${n}_present) {\n if (${n}.value === undefined) {\n newResult[${a}] = undefined;\n } else {\n newResult[${a}] = ${n}.value;\n }\n }\n\n `)}t.write("payload.value = newResult;"),t.write("return payload;");const s=t.compile();return(t,n)=>s(e,t,n)})(t.shape)),l=i(l,d),u?Zt([],p,l,d,c,e):l):n(l,d):(l.issues.push({expected:"object",code:"invalid_type",input:p,inst:e}),l)}});function Mt(e,t,n,r){for(const o of e)if(0===o.issues.length)return t.value=o.value,t;const i=e.filter(e=>!M(e));return 1===i.length?(t.value=i[0].value,i[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>Y(e,r,w())))}),t)}var Ft=y("$ZodUnion",(e,t)=>{rt.init(e,t),E(e._zod,"optin",()=>t.options.some(e=>"optional"===e._zod.optin)?"optional":void 0),E(e._zod,"optout",()=>t.options.some(e=>"optional"===e._zod.optout)?"optional":void 0),E(e._zod,"values",()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),E(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=>O(e.source)).join("|")})$`)}});const n=1===t.options.length?t.options[0]._zod.run:null;e._zod.parse=(r,i)=>{if(n)return n(r,i);let o=!1;const a=[];for(const e of t.options){const t=e._zod.run({value:r.value,issues:[]},i);if(t instanceof Promise)a.push(t),o=!0;else{if(0===t.issues.length)return t;a.push(t)}}return o?Promise.all(a).then(t=>Mt(t,r,e,i)):Mt(a,r,e,i)}}),Bt=y("$ZodDiscriminatedUnion",(e,t)=>{t.inclusive=!1,Ft.init(e,t);const n=e._zod.parse;E(e._zod,"propValues",()=>{const e={};for(const n of t.options){const r=n._zod.propValues;if(!r||0===Object.keys(r).length)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(n)}"`);for(const[t,n]of Object.entries(r)){e[t]||(e[t]=new Set);for(const r of n)e[t].add(r)}}return e});const r=z(()=>{const e=t.options,n=new Map;for(const r of e){const e=r._zod.propValues?.[t.discriminator];if(!e||0===e.size)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(r)}"`);for(const t of e){if(n.has(t))throw new Error(`Duplicate discriminator value "${String(t)}"`);n.set(t,r)}}return n});e._zod.parse=(i,o)=>{const a=i.value;if(!C(a))return i.issues.push({code:"invalid_type",expected:"object",input:a,inst:e}),i;const s=r.value.get(a?.[t.discriminator]);return s?s._zod.run(i,o):t.unionFallback||"backward"===o.direction?n(i,o):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:t.discriminator,options:Array.from(r.value.keys()),input:a,path:[t.discriminator],inst:e}),i)}}),Jt=y("$ZodIntersection",(e,t)=>{rt.init(e,t),e._zod.parse=(e,n)=>{const r=e.value,i=t.left._zod.run({value:r,issues:[]},n),o=t.right._zod.run({value:r,issues:[]},n);return i instanceof Promise||o instanceof Promise?Promise.all([i,o]).then(([t,n])=>Wt(e,t,n)):Wt(e,i,o)}});function Yt(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e===+t)return{valid:!0,data:e};if(R(e)&&R(t)){const n=Object.keys(t),r=Object.keys(e).filter(e=>-1!==n.indexOf(e)),i={...e,...t};for(const o of r){const n=Yt(e[o],t[o]);if(!n.valid)return{valid:!1,mergeErrorPath:[o,...n.mergeErrorPath]};i[o]=n.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const n=[];for(let r=0;r<e.length;r++){const i=Yt(e[r],t[r]);if(!i.valid)return{valid:!1,mergeErrorPath:[r,...i.mergeErrorPath]};n.push(i.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function Wt(e,t,n){const r=new Map;let i;for(const s of t.issues)if("unrecognized_keys"===s.code){i??(i=s);for(const e of s.keys)r.has(e)||r.set(e,{}),r.get(e).l=!0}else e.issues.push(s);for(const s of n.issues)if("unrecognized_keys"===s.code)for(const e of s.keys)r.has(e)||r.set(e,{}),r.get(e).r=!0;else e.issues.push(s);const o=[...r].filter(([,e])=>e.l&&e.r).map(([e])=>e);if(o.length&&i&&e.issues.push({...i,keys:o}),M(e))return e;const a=Yt(t.value,n.value);if(!a.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(a.mergeErrorPath)}`);return e.value=a.data,e}var Vt=y("$ZodRecord",(e,t)=>{rt.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;if(!R(i))return n.issues.push({expected:"record",code:"invalid_type",input:i,inst:e}),n;const o=[],a=t.keyType._zod.values;if(a){n.value={};const s=new Set;for(const c of a)if("string"==typeof c||"number"==typeof c||"symbol"==typeof c){s.add("number"==typeof c?c.toString():c);const a=t.keyType._zod.run({value:c,issues:[]},r);if(a instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(a.issues.length){n.issues.push({code:"invalid_key",origin:"record",issues:a.issues.map(e=>Y(e,r,w())),input:c,path:[c],inst:e});continue}const u=a.value,l=t.valueType._zod.run({value:i[c],issues:[]},r);l instanceof Promise?o.push(l.then(e=>{e.issues.length&&n.issues.push(...B(c,e.issues)),n.value[u]=e.value})):(l.issues.length&&n.issues.push(...B(c,l.issues)),n.value[u]=l.value)}let u;for(const e in i)s.has(e)||(u=u??[],u.push(e));u&&u.length>0&&n.issues.push({code:"unrecognized_keys",input:i,inst:e,keys:u})}else{n.value={};for(const a of Reflect.ownKeys(i)){if("__proto__"===a)continue;if(!Object.prototype.propertyIsEnumerable.call(i,a))continue;let s=t.keyType._zod.run({value:a,issues:[]},r);if(s instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if("string"==typeof a&&Pe.test(a)&&s.issues.length){const e=t.keyType._zod.run({value:Number(a),issues:[]},r);if(e instanceof Promise)throw new Error("Async schemas not supported in object keys currently");0===e.issues.length&&(s=e)}if(s.issues.length){"loose"===t.mode?n.value[a]=i[a]:n.issues.push({code:"invalid_key",origin:"record",issues:s.issues.map(e=>Y(e,r,w())),input:a,path:[a],inst:e});continue}const u=t.valueType._zod.run({value:i[a],issues:[]},r);u instanceof Promise?o.push(u.then(e=>{e.issues.length&&n.issues.push(...B(a,e.issues)),n.value[s.value]=e.value})):(u.issues.length&&n.issues.push(...B(a,u.issues)),n.value[s.value]=u.value)}}return o.length?Promise.all(o).then(()=>n):n}}),Gt=y("$ZodEnum",(e,t)=>{rt.init(e,t);const n=S(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=new RegExp(`^(${n.filter(e=>j.has(typeof e)).map(e=>"string"==typeof e?q(e):e.toString()).join("|")})$`),e._zod.parse=(t,i)=>{const o=t.value;return r.has(o)||t.issues.push({code:"invalid_value",values:n,input:o,inst:e}),t}}),Kt=y("$ZodLiteral",(e,t)=>{if(rt.init(e,t),0===t.values.length)throw new Error("Cannot create literal schema with no valid values");const n=new Set(t.values);e._zod.values=n,e._zod.pattern=new RegExp(`^(${t.values.map(e=>"string"==typeof e?q(e):e?q(e.toString()):String(e)).join("|")})$`),e._zod.parse=(r,i)=>{const o=r.value;return n.has(o)||r.issues.push({code:"invalid_value",values:t.values,input:o,inst:e}),r}}),Ht=y("$ZodTransform",(e,t)=>{rt.init(e,t),e._zod.optin="optional",e._zod.parse=(n,r)=>{if("backward"===r.direction)throw new v(e.constructor.name);const i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(e=>(n.value=e,n.fallback=!0,n));if(i instanceof Promise)throw new g;return n.value=i,n.fallback=!0,n}});function Xt(e,t){return void 0===t&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}var Qt=y("$ZodOptional",(e,t)=>{rt.init(e,t),e._zod.optin="optional",e._zod.optout="optional",E(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),E(e._zod,"pattern",()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${O(e.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if("optional"===t.innerType._zod.optin){const r=e.value,i=t.innerType._zod.run(e,n);return i instanceof Promise?i.then(e=>Xt(e,r)):Xt(i,r)}return void 0===e.value?e:t.innerType._zod.run(e,n)}}),en=y("$ZodExactOptional",(e,t)=>{Qt.init(e,t),E(e._zod,"values",()=>t.innerType._zod.values),E(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(e,n)=>t.innerType._zod.run(e,n)}),tn=y("$ZodNullable",(e,t)=>{rt.init(e,t),E(e._zod,"optin",()=>t.innerType._zod.optin),E(e._zod,"optout",()=>t.innerType._zod.optout),E(e._zod,"pattern",()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${O(e.source)}|null)$`):void 0}),E(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)}),nn=y("$ZodDefault",(e,t)=>{rt.init(e,t),e._zod.optin="optional",E(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);if(void 0===e.value)return e.value=t.defaultValue,e;const r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>rn(e,t)):rn(r,t)}});function rn(e,t){return void 0===e.value&&(e.value=t.defaultValue),e}var on=y("$ZodPrefault",(e,t)=>{rt.init(e,t),e._zod.optin="optional",E(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>("backward"===n.direction||void 0===e.value&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),an=y("$ZodNonOptional",(e,t)=>{rt.init(e,t),E(e._zod,"values",()=>{const e=t.innerType._zod.values;return e?new Set([...e].filter(e=>void 0!==e)):void 0}),e._zod.parse=(n,r)=>{const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(t=>sn(t,e)):sn(i,e)}});function sn(e,t){return e.issues.length||void 0!==e.value||e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}var un=y("$ZodCatch",(e,t)=>{rt.init(e,t),e._zod.optin="optional",E(e._zod,"optout",()=>t.innerType._zod.optout),E(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);const r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(r=>(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>Y(e,n,w()))},input:e.value}),e.issues=[],e.fallback=!0),e)):(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>Y(e,n,w()))},input:e.value}),e.issues=[],e.fallback=!0),e)}}),cn=y("$ZodPipe",(e,t)=>{rt.init(e,t),E(e._zod,"values",()=>t.in._zod.values),E(e._zod,"optin",()=>t.in._zod.optin),E(e._zod,"optout",()=>t.out._zod.optout),E(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if("backward"===n.direction){const r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>ln(e,t.in,n)):ln(r,t.in,n)}const r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>ln(e,t.out,n)):ln(r,t.out,n)}});function ln(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues,fallback:e.fallback},n)}var dn=y("$ZodReadonly",(e,t)=>{rt.init(e,t),E(e._zod,"propValues",()=>t.innerType._zod.propValues),E(e._zod,"values",()=>t.innerType._zod.values),E(e._zod,"optin",()=>t.innerType?._zod?.optin),E(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);const r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(pn):pn(r)}});function pn(e){return e.value=Object.freeze(e.value),e}var fn,mn=y("$ZodCustom",(e,t)=>{qe.init(e,t),rt.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{const r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(t=>hn(t,n,r,e));hn(i,n,r,e)}});function hn(e,t,n,r){if(!e){const e={code:"custom",input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(V(e))}}var _n=class{constructor(){this._map=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 r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};(fn=globalThis).__zod_globalRegistry??(fn.__zod_globalRegistry=new _n);var yn=globalThis.__zod_globalRegistry;function gn(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...D(t)})}function vn(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...D(t)})}function bn(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...D(t)})}function wn(e,t){return new De({check:"less_than",...D(t),value:e,inclusive:!1})}function Sn(e,t){return new De({check:"less_than",...D(t),value:e,inclusive:!0})}function kn(e,t){return new Le({check:"greater_than",...D(t),value:e,inclusive:!1})}function zn(e,t){return new Le({check:"greater_than",...D(t),value:e,inclusive:!0})}function xn(e,t){return new Me({check:"multiple_of",...D(t),value:e})}function On(e,t){return new Be({check:"max_length",...D(t),maximum:e})}function $n(e,t){return new Je({check:"min_length",...D(t),minimum:e})}function En(e,t){return new Ye({check:"length_equals",...D(t),length:e})}function Tn(e){return new et({check:"overwrite",tx:e})}function Nn(e,t){const n=new qe({check:"custom",...D(t)});return n._zod.check=e,n}function In(e){let t=e?.target??"draft-2020-12";return"draft-4"===t&&(t="draft-04"),"draft-7"===t&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??yn,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function An(e,t,n={path:[],schemaPath:[]}){var r;const i=e._zod.def,o=t.seen.get(e);if(o)return o.count++,n.schemaPath.includes(e)&&(o.cycle=n.path),o.schema;const a={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,a);const s=e._zod.toJSONSchema?.();if(s)a.schema=s;else{const r={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,a.schema,r);else{const n=a.schema,o=t.processors[i.type];if(!o)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);o(e,t,n,r)}const o=e._zod.parent;o&&(a.ref||(a.ref=o),An(o,t,r),t.seen.get(o).isParent=!0)}const u=t.metadataRegistry.get(e);return u&&Object.assign(a.schema,u),"input"===t.io&&Rn(e)&&(delete a.schema.examples,delete a.schema.default),"input"===t.io&&"_prefault"in a.schema&&((r=a.schema).default??(r.default=a.schema._prefault)),delete a.schema._prefault,t.seen.get(e).schema}function Cn(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const r=new Map;for(const o of e.seen.entries()){const t=e.metadataRegistry.get(o[0])?.id;if(t){const e=r.get(t);if(e&&e!==o[0])throw new Error(`Duplicate schema id "${t}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(t,o[0])}}const i=t=>{if(t[1].schema.$ref)return;const r=t[1],{ref:i,defId:o}=(t=>{const r="draft-2020-12"===e.target?"$defs":"definitions";if(e.external){const n=e.external.registry.get(t[0])?.id,i=e.external.uri??(e=>e);if(n)return{ref:i(n)};const o=t[1].defId??t[1].schema.id??"schema"+e.counter++;return t[1].defId=o,{defId:o,ref:`${i("__shared")}#/${r}/${o}`}}if(t[1]===n)return{ref:"#"};const i=`#/${r}/`,o=t[1].schema.id??"__schema"+e.counter++;return{defId:o,ref:i+o}})(t);r.def={...r.schema},o&&(r.defId=o);const a=r.schema;for(const e in a)delete a[e];a.$ref=i};if("throw"===e.cycles)for(const o of e.seen.entries()){const e=o[1];if(e.cycle)throw new Error(`Cycle detected: #/${e.cycle?.join("/")}/<root>\n\nSet the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const o of e.seen.entries()){const n=o[1];if(t!==o[0]){if(e.external){const n=e.external.registry.get(o[0])?.id;if(t!==o[0]&&n){i(o);continue}}(e.metadataRegistry.get(o[0])?.id||n.cycle||n.count>1&&"ref"===e.reused)&&i(o)}else i(o)}}function Pn(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const r=t=>{const n=e.seen.get(t);if(null===n.ref)return;const i=n.def??n.schema,o={...i},a=n.ref;if(n.ref=null,a){r(a);const n=e.seen.get(a),s=n.schema;if(!s.$ref||"draft-07"!==e.target&&"draft-04"!==e.target&&"openapi-3.0"!==e.target?Object.assign(i,s):(i.allOf=i.allOf??[],i.allOf.push(s)),Object.assign(i,o),t._zod.parent===a)for(const e in i)"$ref"!==e&&"allOf"!==e&&(e in o||delete i[e]);if(s.$ref&&n.def)for(const e in i)"$ref"!==e&&"allOf"!==e&&e in n.def&&JSON.stringify(i[e])===JSON.stringify(n.def[e])&&delete i[e]}const s=t._zod.parent;if(s&&s!==a){r(s);const t=e.seen.get(s);if(t?.schema.$ref&&(i.$ref=t.schema.$ref,t.def))for(const e in i)"$ref"!==e&&"allOf"!==e&&e in t.def&&JSON.stringify(i[e])===JSON.stringify(t.def[e])&&delete i[e]}e.override({zodSchema:t,jsonSchema:i,path:n.path??[]})};for(const u of[...e.seen.entries()].reverse())r(u[0]);const i={};if("draft-2020-12"===e.target?i.$schema="https://json-schema.org/draft/2020-12/schema":"draft-07"===e.target?i.$schema="http://json-schema.org/draft-07/schema#":"draft-04"===e.target?i.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const n=e.external.registry.get(t)?.id;if(!n)throw new Error("Schema is missing an `id` property");i.$id=e.external.uri(n)}Object.assign(i,n.def??n.schema);const o=e.metadataRegistry.get(t)?.id;void 0!==o&&i.id===o&&delete i.id;const a=e.external?.defs??{};for(const u of e.seen.entries()){const e=u[1];e.def&&e.defId&&(e.def.id===e.defId&&delete e.def.id,a[e.defId]=e.def)}e.external||Object.keys(a).length>0&&("draft-2020-12"===e.target?i.$defs=a:i.definitions=a);try{const n=JSON.parse(JSON.stringify(i));return Object.defineProperty(n,"~standard",{value:{...t["~standard"],jsonSchema:{input:Un(t,"input",e.processors),output:Un(t,"output",e.processors)}},enumerable:!1,writable:!1}),n}catch(s){throw new Error("Error converting schema to JSON.")}}function Rn(e,t){const n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);const r=e._zod.def;if("transform"===r.type)return!0;if("array"===r.type)return Rn(r.element,n);if("set"===r.type)return Rn(r.valueType,n);if("lazy"===r.type)return Rn(r.getter(),n);if("promise"===r.type||"optional"===r.type||"nonoptional"===r.type||"nullable"===r.type||"readonly"===r.type||"default"===r.type||"prefault"===r.type)return Rn(r.innerType,n);if("intersection"===r.type)return Rn(r.left,n)||Rn(r.right,n);if("record"===r.type||"map"===r.type)return Rn(r.keyType,n)||Rn(r.valueType,n);if("pipe"===r.type)return!!e._zod.traits.has("$ZodCodec")||(Rn(r.in,n)||Rn(r.out,n));if("object"===r.type){for(const e in r.shape)if(Rn(r.shape[e],n))return!0;return!1}if("union"===r.type){for(const e of r.options)if(Rn(e,n))return!0;return!1}if("tuple"===r.type){for(const e of r.items)if(Rn(e,n))return!0;return!(!r.rest||!Rn(r.rest,n))}return!1}var Un=(e,t,n={})=>r=>{const{libraryOptions:i,target:o}=r??{},a=In({...i??{},target:o,io:t,processors:n});return An(e,a),Cn(a,e),Pn(a,e)},jn={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},qn=(e,t,n,r)=>{const i=e._zod.def;An(i.innerType,t,r);t.seen.get(e).ref=i.innerType},Zn=y("ZodISODateTime",(e,t)=>{yt.init(e,t),fr.init(e,t)});function Dn(e){return function(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...D(t)})}(Zn,e)}var Ln=y("ZodISODate",(e,t)=>{gt.init(e,t),fr.init(e,t)});function Mn(e){return function(e,t){return new e({type:"string",format:"date",check:"string_format",...D(t)})}(Ln,e)}var Fn=y("ZodISOTime",(e,t)=>{vt.init(e,t),fr.init(e,t)});function Bn(e){return function(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...D(t)})}(Fn,e)}var Jn=y("ZodISODuration",(e,t)=>{bt.init(e,t),fr.init(e,t)});function Yn(e){return function(e,t){return new e({type:"string",format:"duration",check:"string_format",...D(t)})}(Jn,e)}var Wn=(e,t)=>{K.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:t=>function(e,t=e=>e.message){const n={_errors:[]},r=(e,i=[])=>{for(const o of e.issues)if("invalid_union"===o.code&&o.errors.length)o.errors.map(e=>r({issues:e},[...i,...o.path]));else if("invalid_key"===o.code)r({issues:o.issues},[...i,...o.path]);else if("invalid_element"===o.code)r({issues:o.issues},[...i,...o.path]);else{const e=[...i,...o.path];if(0===e.length)n._errors.push(t(o));else{let r=n,i=0;for(;i<e.length;){const n=e[i];i!==e.length-1?r[n]=r[n]||{_errors:[]}:(r[n]=r[n]||{_errors:[]},r[n]._errors.push(t(o))),r=r[n],i++}}}};return r(e),n}(e,t)},flatten:{value:t=>function(e,t=e=>e.message){const n={},r=[];for(const i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,k,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,k,2)}},isEmpty:{get:()=>0===e.issues.length}})},Vn=y("ZodError",Wn,{Parent:Error}),Gn=X(Vn),Kn=Q(Vn),Hn=ee(Vn),Xn=ne(Vn),Qn=ie(Vn),er=oe(Vn),tr=ae(Vn),nr=se(Vn),rr=ue(Vn),ir=ce(Vn),or=le(Vn),ar=de(Vn),sr=new WeakMap;function ur(e,t,n){const r=Object.getPrototypeOf(e);let i=sr.get(r);if(i||(i=new Set,sr.set(r,i)),!i.has(t)){i.add(t);for(const e in n){const t=n[e];Object.defineProperty(r,e,{configurable:!0,enumerable:!1,get(){const n=t.bind(this);return Object.defineProperty(this,e,{configurable:!0,writable:!0,enumerable:!0,value:n}),n},set(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,enumerable:!0,value:t})}})}}}var cr=y("ZodType",(e,t)=>(rt.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:Un(e,"input"),output:Un(e,"output")}}),e.toJSONSchema=((e,t={})=>n=>{const r=In({...n,processors:t});return An(e,r),Cn(r,e),Pn(r,e)})(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.parse=(t,n)=>Gn(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>Hn(e,t,n),e.parseAsync=async(t,n)=>Kn(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>Xn(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>Qn(e,t,n),e.decode=(t,n)=>er(e,t,n),e.encodeAsync=async(t,n)=>tr(e,t,n),e.decodeAsync=async(t,n)=>nr(e,t,n),e.safeEncode=(t,n)=>rr(e,t,n),e.safeDecode=(t,n)=>ir(e,t,n),e.safeEncodeAsync=async(t,n)=>or(e,t,n),e.safeDecodeAsync=async(t,n)=>ar(e,t,n),ur(e,"ZodType",{check(...e){const t=this.def;return this.clone(N(t,{checks:[...t.checks??[],...e.map(e=>"function"==typeof e?{_zod:{check:e,def:{check:"custom"},onattach:[]}}:e)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return Z(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(function(e,t={}){return function(e,t,n){return new e({type:"custom",check:"custom",fn:t,...D(n)})}(gi,e,t)}(e,t))},superRefine(e,t){return this.check(function(e,t){return function(e,t){const n=Nn(t=>(t.addIssue=e=>{if("string"==typeof e)t.issues.push(V(e,t.value,n._zod.def));else{const r=e;r.fatal&&(r.continue=!1),r.code??(r.code="custom"),r.input??(r.input=t.value),r.inst??(r.inst=n),r.continue??(r.continue=!n._zod.def.abort),t.issues.push(V(r))}},e(t.value,t)),t);return n}(e,t)}(e,t))},overwrite(e){return this.check(Tn(e))},optional(){return si(this)},exactOptional(){return new ui({type:"optional",innerType:this})},nullable(){return li(this)},nullish(){return si(li(this))},nonoptional(e){return function(e,t){return new fi({type:"nonoptional",innerType:e,...D(t)})}(this,e)},array(){return Jr(this)},or(e){return Gr([this,e])},and(e){return new Xr({type:"intersection",left:this,right:e})},transform(e){return _i(this,new oi({type:"transform",transform:e}))},default(e){return t=e,new di({type:"default",innerType:this,get defaultValue(){return"function"==typeof t?t():U(t)}});var t},prefault(e){return t=e,new pi({type:"prefault",innerType:this,get defaultValue(){return"function"==typeof t?t():U(t)}});var t},catch(e){return new mi({type:"catch",innerType:this,catchValue:"function"==typeof(t=e)?t:()=>t});var t},pipe(e){return _i(this,e)},readonly(){return new yi({type:"readonly",innerType:this})},describe(e){const t=this.clone();return yn.add(t,{description:e}),t},meta(...e){if(0===e.length)return yn.get(this);const t=this.clone();return yn.add(t,e[0]),t},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e){return e(this)}}),Object.defineProperty(e,"description",{get:()=>yn.get(e)?.description,configurable:!0}),e)),lr=y("_ZodString",(e,t)=>{it.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n)=>{const r=n;r.type="string";const{minimum:i,maximum:o,format:a,patterns:s,contentEncoding:u}=e._zod.bag;if("number"==typeof i&&(r.minLength=i),"number"==typeof o&&(r.maxLength=o),a&&(r.format=jn[a]??a,""===r.format&&delete r.format,"time"===a&&delete r.format),u&&(r.contentEncoding=u),s&&s.size>0){const e=[...s];1===e.length?r.pattern=e[0].source:e.length>1&&(r.allOf=[...e.map(e=>({..."draft-07"===t.target||"draft-04"===t.target||"openapi-3.0"===t.target?{type:"string"}:{},pattern:e.source}))])}})(e,t,n);const n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,ur(e,"_ZodString",{regex(...e){return this.check(function(e,t){return new Ve({check:"string_format",format:"regex",...D(t),pattern:e})}(...e))},includes(...e){return this.check(function(e,t){return new He({check:"string_format",format:"includes",...D(t),includes:e})}(...e))},startsWith(...e){return this.check(function(e,t){return new Xe({check:"string_format",format:"starts_with",...D(t),prefix:e})}(...e))},endsWith(...e){return this.check(function(e,t){return new Qe({check:"string_format",format:"ends_with",...D(t),suffix:e})}(...e))},min(...e){return this.check($n(...e))},max(...e){return this.check(On(...e))},length(...e){return this.check(En(...e))},nonempty(...e){return this.check($n(1,...e))},lowercase(e){return this.check(function(e){return new Ge({check:"string_format",format:"lowercase",...D(e)})}(e))},uppercase(e){return this.check(function(e){return new Ke({check:"string_format",format:"uppercase",...D(e)})}(e))},trim(){return this.check(Tn(e=>e.trim()))},normalize(...e){return this.check(function(e){return Tn(t=>t.normalize(e))}(...e))},toLowerCase(){return this.check(Tn(e=>e.toLowerCase()))},toUpperCase(){return this.check(Tn(e=>e.toUpperCase()))},slugify(){return this.check(Tn(e=>function(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}(e)))}})}),dr=y("ZodString",(e,t)=>{it.init(e,t),lr.init(e,t),e.email=t=>e.check(gn(mr,t)),e.url=t=>e.check(bn(gr,t)),e.jwt=t=>e.check(function(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...D(t)})}(Cr,t)),e.emoji=t=>e.check(function(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...D(t)})}(vr,t)),e.guid=t=>e.check(vn(_r,t)),e.uuid=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...D(t)})}(yr,t)),e.uuidv4=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...D(t)})}(yr,t)),e.uuidv6=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...D(t)})}(yr,t)),e.uuidv7=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...D(t)})}(yr,t)),e.nanoid=t=>e.check(function(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...D(t)})}(br,t)),e.guid=t=>e.check(vn(_r,t)),e.cuid=t=>e.check(function(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...D(t)})}(wr,t)),e.cuid2=t=>e.check(function(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...D(t)})}(Sr,t)),e.ulid=t=>e.check(function(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...D(t)})}(kr,t)),e.base64=t=>e.check(function(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...D(t)})}(Nr,t)),e.base64url=t=>e.check(function(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...D(t)})}(Ir,t)),e.xid=t=>e.check(function(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...D(t)})}(zr,t)),e.ksuid=t=>e.check(function(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...D(t)})}(xr,t)),e.ipv4=t=>e.check(function(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...D(t)})}(Or,t)),e.ipv6=t=>e.check(function(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...D(t)})}($r,t)),e.cidrv4=t=>e.check(function(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...D(t)})}(Er,t)),e.cidrv6=t=>e.check(function(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...D(t)})}(Tr,t)),e.e164=t=>e.check(function(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...D(t)})}(Ar,t)),e.datetime=t=>e.check(Dn(t)),e.date=t=>e.check(Mn(t)),e.time=t=>e.check(Bn(t)),e.duration=t=>e.check(Yn(t))});function pr(e){return function(e,t){return new e({type:"string",...D(t)})}(dr,e)}var fr=y("ZodStringFormat",(e,t)=>{ot.init(e,t),lr.init(e,t)}),mr=y("ZodEmail",(e,t)=>{ut.init(e,t),fr.init(e,t)});function hr(e){return gn(mr,e)}var _r=y("ZodGUID",(e,t)=>{at.init(e,t),fr.init(e,t)}),yr=y("ZodUUID",(e,t)=>{st.init(e,t),fr.init(e,t)}),gr=y("ZodURL",(e,t)=>{ct.init(e,t),fr.init(e,t)});var vr=y("ZodEmoji",(e,t)=>{lt.init(e,t),fr.init(e,t)}),br=y("ZodNanoID",(e,t)=>{dt.init(e,t),fr.init(e,t)}),wr=y("ZodCUID",(e,t)=>{pt.init(e,t),fr.init(e,t)}),Sr=y("ZodCUID2",(e,t)=>{ft.init(e,t),fr.init(e,t)}),kr=y("ZodULID",(e,t)=>{mt.init(e,t),fr.init(e,t)}),zr=y("ZodXID",(e,t)=>{ht.init(e,t),fr.init(e,t)}),xr=y("ZodKSUID",(e,t)=>{_t.init(e,t),fr.init(e,t)}),Or=y("ZodIPv4",(e,t)=>{wt.init(e,t),fr.init(e,t)}),$r=y("ZodIPv6",(e,t)=>{St.init(e,t),fr.init(e,t)}),Er=y("ZodCIDRv4",(e,t)=>{kt.init(e,t),fr.init(e,t)}),Tr=y("ZodCIDRv6",(e,t)=>{zt.init(e,t),fr.init(e,t)}),Nr=y("ZodBase64",(e,t)=>{Ot.init(e,t),fr.init(e,t)}),Ir=y("ZodBase64URL",(e,t)=>{$t.init(e,t),fr.init(e,t)}),Ar=y("ZodE164",(e,t)=>{Et.init(e,t),fr.init(e,t)}),Cr=y("ZodJWT",(e,t)=>{Tt.init(e,t),fr.init(e,t)}),Pr=y("ZodNumber",(e,t)=>{Nt.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n)=>{const r=n,{minimum:i,maximum:o,format:a,multipleOf:s,exclusiveMaximum:u,exclusiveMinimum:c}=e._zod.bag;"string"==typeof a&&a.includes("int")?r.type="integer":r.type="number";const l="number"==typeof c&&c>=(i??Number.NEGATIVE_INFINITY),d="number"==typeof u&&u<=(o??Number.POSITIVE_INFINITY),p="draft-04"===t.target||"openapi-3.0"===t.target;l?p?(r.minimum=c,r.exclusiveMinimum=!0):r.exclusiveMinimum=c:"number"==typeof i&&(r.minimum=i),d?p?(r.maximum=u,r.exclusiveMaximum=!0):r.exclusiveMaximum=u:"number"==typeof o&&(r.maximum=o),"number"==typeof s&&(r.multipleOf=s)})(e,t,n),ur(e,"ZodNumber",{gt(e,t){return this.check(kn(e,t))},gte(e,t){return this.check(zn(e,t))},min(e,t){return this.check(zn(e,t))},lt(e,t){return this.check(wn(e,t))},lte(e,t){return this.check(Sn(e,t))},max(e,t){return this.check(Sn(e,t))},int(e){return this.check(jr(e))},safe(e){return this.check(jr(e))},positive(e){return this.check(kn(0,e))},nonnegative(e){return this.check(zn(0,e))},negative(e){return this.check(wn(0,e))},nonpositive(e){return this.check(Sn(0,e))},multipleOf(e,t){return this.check(xn(e,t))},step(e,t){return this.check(xn(e,t))},finite(){return this}});const n=e._zod.bag;e.minValue=Math.max(n.minimum??Number.NEGATIVE_INFINITY,n.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(n.maximum??Number.POSITIVE_INFINITY,n.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(n.format??"").includes("int")||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function Rr(e){return function(e,t){return new e({type:"number",checks:[],...D(t)})}(Pr,e)}var Ur=y("ZodNumberFormat",(e,t)=>{It.init(e,t),Pr.init(e,t)});function jr(e){return function(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...D(t)})}(Ur,e)}var qr=y("ZodBoolean",(e,t)=>{At.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(e,t,n)=>((e,t,n)=>{n.type="boolean"})(0,0,t)});function Zr(e){return function(e,t){return new e({type:"boolean",...D(t)})}(qr,e)}var Dr=y("ZodUnknown",(e,t)=>{Ct.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(e,t,n)=>{}});function Lr(){return new Dr({type:"unknown"})}var Mr=y("ZodNever",(e,t)=>{Pt.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(e,t,n)=>((e,t,n)=>{n.not={}})(0,0,t)});function Fr(e){return function(e,t){return new e({type:"never",...D(t)})}(Mr,e)}var Br=y("ZodArray",(e,t)=>{Ut.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=n,o=e._zod.def,{minimum:a,maximum:s}=e._zod.bag;"number"==typeof a&&(i.minItems=a),"number"==typeof s&&(i.maxItems=s),i.type="array",i.items=An(o.element,t,{...r,path:[...r.path,"items"]})})(e,t,n,r),e.element=t.element,ur(e,"ZodArray",{min(e,t){return this.check($n(e,t))},nonempty(e){return this.check($n(1,e))},max(e,t){return this.check(On(e,t))},length(e,t){return this.check(En(e,t))},unwrap(){return this.element}})});function Jr(e,t){return function(e,t,n){return new e({type:"array",element:t,...D(n)})}(Br,e,t)}var Yr=y("ZodObject",(e,t)=>{Lt.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=n,o=e._zod.def;i.type="object",i.properties={};const a=o.shape;for(const c in a)i.properties[c]=An(a[c],t,{...r,path:[...r.path,"properties",c]});const s=new Set(Object.keys(a)),u=new Set([...s].filter(e=>{const n=o.shape[e]._zod;return"input"===t.io?void 0===n.optin:void 0===n.optout}));u.size>0&&(i.required=Array.from(u)),"never"===o.catchall?._zod.def.type?i.additionalProperties=!1:o.catchall?o.catchall&&(i.additionalProperties=An(o.catchall,t,{...r,path:[...r.path,"additionalProperties"]})):"output"===t.io&&(i.additionalProperties=!1)})(e,t,n,r),E(e,"shape",()=>t.shape),ur(e,"ZodObject",{keyof(){return ni(Object.keys(this._zod.def.shape))},catchall(e){return this.clone({...this._zod.def,catchall:e})},passthrough(){return this.clone({...this._zod.def,catchall:Lr()})},loose(){return this.clone({...this._zod.def,catchall:Lr()})},strict(){return this.clone({...this._zod.def,catchall:Fr()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(e){return function(e,t){if(!R(t))throw new Error("Invalid input to extend: expected a plain object");const n=e._zod.def.checks;if(n&&n.length>0){const n=e._zod.def.shape;for(const e in t)if(void 0!==Object.getOwnPropertyDescriptor(n,e))throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return Z(e,N(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return T(this,"shape",n),n}}))}(this,e)},safeExtend(e){return function(e,t){if(!R(t))throw new Error("Invalid input to safeExtend: expected a plain object");return Z(e,N(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return T(this,"shape",n),n}}))}(this,e)},merge(e){return function(e,t){if(e._zod.def.checks?.length)throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");return Z(e,N(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t._zod.def.shape};return T(this,"shape",n),n},get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]}))}(this,e)},pick(e){return function(e,t){const n=e._zod.def,r=n.checks;if(r&&r.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");return Z(e,N(e._zod.def,{get shape(){const e={};for(const r in t){if(!(r in n.shape))throw new Error(`Unrecognized key: "${r}"`);t[r]&&(e[r]=n.shape[r])}return T(this,"shape",e),e},checks:[]}))}(this,e)},omit(e){return function(e,t){const n=e._zod.def,r=n.checks;if(r&&r.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");return Z(e,N(e._zod.def,{get shape(){const r={...e._zod.def.shape};for(const e in t){if(!(e in n.shape))throw new Error(`Unrecognized key: "${e}"`);t[e]&&delete r[e]}return T(this,"shape",r),r},checks:[]}))}(this,e)},partial(...e){return function(e,t,n){const r=t._zod.def.checks;if(r&&r.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");return Z(t,N(t._zod.def,{get shape(){const r=t._zod.def.shape,i={...r};if(n)for(const t in n){if(!(t in r))throw new Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=e?new e({type:"optional",innerType:r[t]}):r[t])}else for(const t in r)i[t]=e?new e({type:"optional",innerType:r[t]}):r[t];return T(this,"shape",i),i},checks:[]}))}(ai,this,e[0])},required(...e){return t=fi,n=this,r=e[0],Z(n,N(n._zod.def,{get shape(){const e=n._zod.def.shape,i={...e};if(r)for(const n in r){if(!(n in i))throw new Error(`Unrecognized key: "${n}"`);r[n]&&(i[n]=new t({type:"nonoptional",innerType:e[n]}))}else for(const n in e)i[n]=new t({type:"nonoptional",innerType:e[n]});return T(this,"shape",i),i}}));var t,n,r}})});function Wr(e,t){return new Yr({type:"object",shape:e??{},...D(t)})}var Vr=y("ZodUnion",(e,t)=>{Ft.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=e._zod.def,o=!1===i.inclusive,a=i.options.map((e,n)=>An(e,t,{...r,path:[...r.path,o?"oneOf":"anyOf",n]}));o?n.oneOf=a:n.anyOf=a})(e,t,n,r),e.options=t.options});function Gr(e,t){return new Vr({type:"union",options:e,...D(t)})}var Kr=y("ZodDiscriminatedUnion",(e,t)=>{Vr.init(e,t),Bt.init(e,t)});function Hr(e,t,n){return new Kr({type:"union",options:t,discriminator:e,...D(n)})}var Xr=y("ZodIntersection",(e,t)=>{Jt.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=e._zod.def,o=An(i.left,t,{...r,path:[...r.path,"allOf",0]}),a=An(i.right,t,{...r,path:[...r.path,"allOf",1]}),s=e=>"allOf"in e&&1===Object.keys(e).length;n.allOf=[...s(o)?o.allOf:[o],...s(a)?a.allOf:[a]]})(e,t,n,r)});var Qr=y("ZodRecord",(e,t)=>{Vt.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=n,o=e._zod.def;i.type="object";const a=o.keyType,s=a._zod.bag?.patterns;if("loose"===o.mode&&s&&s.size>0){const e=An(o.valueType,t,{...r,path:[...r.path,"patternProperties","*"]});i.patternProperties={};for(const t of s)i.patternProperties[t.source]=e}else"draft-07"!==t.target&&"draft-2020-12"!==t.target||(i.propertyNames=An(o.keyType,t,{...r,path:[...r.path,"propertyNames"]})),i.additionalProperties=An(o.valueType,t,{...r,path:[...r.path,"additionalProperties"]});const u=a._zod.values;if(u){const e=[...u].filter(e=>"string"==typeof e||"number"==typeof e);e.length>0&&(i.required=e)}})(e,t,n,r),e.keyType=t.keyType,e.valueType=t.valueType});function ei(e,t,n){return t&&t._zod?new Qr({type:"record",keyType:e,valueType:t,...D(n)}):new Qr({type:"record",keyType:pr(),valueType:e,...D(t)})}var ti=y("ZodEnum",(e,t)=>{Gt.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n)=>{const r=S(e._zod.def.entries);r.every(e=>"number"==typeof e)&&(n.type="number"),r.every(e=>"string"==typeof e)&&(n.type="string"),n.enum=r})(e,0,n),e.enum=t.entries,e.options=Object.values(t.entries);const n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{const i={};for(const o of e){if(!n.has(o))throw new Error(`Key ${o} not found in enum`);i[o]=t.entries[o]}return new ti({...t,checks:[],...D(r),entries:i})},e.exclude=(e,r)=>{const i={...t.entries};for(const t of e){if(!n.has(t))throw new Error(`Key ${t} not found in enum`);delete i[t]}return new ti({...t,checks:[],...D(r),entries:i})}});function ni(e,t){return new ti({type:"enum",entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...D(t)})}var ri=y("ZodLiteral",(e,t)=>{Kt.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n)=>{const r=e._zod.def,i=[];for(const o of r.values)if(void 0===o){if("throw"===t.unrepresentable)throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if("bigint"==typeof o){if("throw"===t.unrepresentable)throw new Error("BigInt literals cannot be represented in JSON Schema");i.push(Number(o))}else i.push(o);if(0===i.length);else if(1===i.length){const e=i[0];n.type=null===e?"null":typeof e,"draft-04"===t.target||"openapi-3.0"===t.target?n.enum=[e]:n.const=e}else i.every(e=>"number"==typeof e)&&(n.type="number"),i.every(e=>"string"==typeof e)&&(n.type="string"),i.every(e=>"boolean"==typeof e)&&(n.type="boolean"),i.every(e=>null===e)&&(n.type="null"),n.enum=i})(e,t,n),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function ii(e,t){return new ri({type:"literal",values:Array.isArray(e)?e:[e],...D(t)})}var oi=y("ZodTransform",(e,t)=>{Ht.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(e,t,n)=>((e,t)=>{if("throw"===t.unrepresentable)throw new Error("Transforms cannot be represented in JSON Schema")})(0,e),e._zod.parse=(n,r)=>{if("backward"===r.direction)throw new v(e.constructor.name);n.addIssue=r=>{if("string"==typeof r)n.issues.push(V(r,n.value,t));else{const t=r;t.fatal&&(t.continue=!1),t.code??(t.code="custom"),t.input??(t.input=n.value),t.inst??(t.inst=e),n.issues.push(V(t))}};const i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n.fallback=!0,n)):(n.value=i,n.fallback=!0,n)}});var ai=y("ZodOptional",(e,t)=>{Qt.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>qn(e,t,0,r),e.unwrap=()=>e._zod.def.innerType});function si(e){return new ai({type:"optional",innerType:e})}var ui=y("ZodExactOptional",(e,t)=>{en.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>qn(e,t,0,r),e.unwrap=()=>e._zod.def.innerType});var ci=y("ZodNullable",(e,t)=>{tn.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=e._zod.def,o=An(i.innerType,t,r),a=t.seen.get(e);"openapi-3.0"===t.target?(a.ref=i.innerType,n.nullable=!0):n.anyOf=[o,{type:"null"}]})(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function li(e){return new ci({type:"nullable",innerType:e})}var di=y("ZodDefault",(e,t)=>{nn.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=e._zod.def;An(i.innerType,t,r),t.seen.get(e).ref=i.innerType,n.default=JSON.parse(JSON.stringify(i.defaultValue))})(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});var pi=y("ZodPrefault",(e,t)=>{on.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=e._zod.def;An(i.innerType,t,r),t.seen.get(e).ref=i.innerType,"input"===t.io&&(n._prefault=JSON.parse(JSON.stringify(i.defaultValue)))})(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});var fi=y("ZodNonOptional",(e,t)=>{an.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=e._zod.def;An(i.innerType,t,r),t.seen.get(e).ref=i.innerType})(e,t,0,r),e.unwrap=()=>e._zod.def.innerType});var mi=y("ZodCatch",(e,t)=>{un.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=e._zod.def;let o;An(i.innerType,t,r),t.seen.get(e).ref=i.innerType;try{o=i.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}n.default=o})(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});var hi=y("ZodPipe",(e,t)=>{cn.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=e._zod.def,o=i.in._zod.traits.has("$ZodTransform"),a="input"===t.io?o?i.out:i.in:i.out;An(a,t,r),t.seen.get(e).ref=a})(e,t,0,r),e.in=t.in,e.out=t.out});function _i(e,t){return new hi({type:"pipe",in:e,out:t})}var yi=y("ZodReadonly",(e,t)=>{dn.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=e._zod.def;An(i.innerType,t,r),t.seen.get(e).ref=i.innerType,n.readOnly=!0})(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});var gi=y("ZodCustom",(e,t)=>{mn.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(e,t,n)=>((e,t)=>{if("throw"===t.unrepresentable)throw new Error("Custom types cannot be represented in JSON Schema")})(0,e)});var vi,bi=ni(["CONSENT","SOFT_OPT_IN","TRANSACTIONAL_ONLY","UNKNOWN"]),wi=ni(["MANUAL_UNSUB","ONE_CLICK_UNSUB","HARD_BOUNCE","COMPLAINT","ADMIN_BLOCK"]),Si=ni(["BROADCAST","AUTOMATION"]),ki=ni(["ABANDONED_CART","POST_PURCHASE","WELCOME","WIN_BACK","RE_ENGAGEMENT","TAG_ADDED"]),zi=(Wr({email:hr(),name:pr().trim().min(1).nullable().optional(),customer_id:pr().uuid().nullable().optional(),tags:Jr(pr().trim().min(1)).default([]),consent_basis:bi.default("UNKNOWN"),source:pr().trim().min(1).default("dashboard")}),Wr({name:pr().trim().min(1),subject:pr().trim().min(1),preheader:pr().nullable().optional(),mjml_source:pr().trim().min(1),builder_project_json:ei(pr(),Lr()).nullable().optional(),thumbnail_url:bn(gr,vi).nullable().optional()}),Wr({mjml_source:pr().trim().min(1),sample_variables:ei(pr(),Lr()).optional()}),Wr({recipient_email:hr(),sample_variables:ei(pr(),Lr()).optional()}),Wr({marketing_enabled:Zr().optional(),default_from_name:pr().trim().min(1).nullable().optional(),default_from_email:hr().nullable().optional(),default_reply_to_email:hr().nullable().optional(),physical_address:pr().trim().min(1).nullable().optional(),physical_address_line2:pr().trim().min(1).nullable().optional(),physical_city:pr().trim().min(1).nullable().optional(),physical_postal_code:pr().trim().min(1).nullable().optional(),physical_country:pr().trim().length(2).nullable().optional(),daily_limit:Rr().int().positive().optional(),monthly_soft_cap:Rr().int().positive().optional()}),Wr({type:Si.default("BROADCAST"),name:pr().trim().min(1),subject:pr().trim().min(1),template_id:pr().uuid(),list_id:pr().uuid().nullable().optional(),segment_id:pr().uuid().nullable().optional(),from_name:pr().trim().min(1),from_email:hr(),reply_to_email:hr().nullable().optional(),schedule_at:pr().datetime().nullable().optional(),target_emails:Jr(hr()).max(0,"Direct recipient entry is disabled. Use lists or segments built from Shoppex customers and paid order buyers.").default([]),idempotency_key:pr().trim().min(1).nullable().optional()}),Wr({name:pr().trim().min(1),subject:pr().trim().min(1),template_id:pr().uuid(),from_name:pr().trim().min(1),from_email:hr(),reply_to_email:hr().nullable().optional(),trigger:ki,delay_seconds:Rr().int().min(0).default(0),conditions:ei(pr(),Lr()).default({})}),Wr({trigger:ki,email:hr(),customer_id:pr().uuid().nullable().optional(),name:pr().trim().min(1).nullable().optional(),consent_basis:bi.default("UNKNOWN"),variables:ei(pr(),Lr()).default({}),idempotency_key:pr().trim().min(1).nullable().optional()}),Wr({email:hr(),reason:wi.default("ADMIN_BLOCK"),notes:pr().nullable().optional()}),["BITCOIN","LITECOIN","ETHEREUM","BITCOIN_CASH","MONERO","RIPPLE","TRON","SOLANA","POLYGON","BINANCE_COIN","CRONOS","CONCORDIUM","NANO","DOGECOIN","DASH"]),xi=["NOWPAYMENTS","CRYPTOMUS","OXAPAY"],Oi=["NOWPAYMENTS_WHITELABEL"],$i={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"]},Ei=Object.keys($i),Ti=[...$i.USDT,...$i.USDC,...$i.DAI],Ni=[...zi,...Ti],Ii=["BITCOIN_LN"],Ai=[...xi,...Oi],Ci=[...Ni,...Ii],Pi=Ni,Ri=new Set(zi),Ui=new Set(Ti);new Set(Ni),new Set(Ii),new Set(xi),new Set(Oi),new Set(Ai),new Set(Ci),new Set(Ei),new Set(["STRIPE","PAYPAL","PAYPAL_FF","MOLLIE","SQUARE","SUMUP","SHOPIFY","SUBY","PANDABASE","STORRIK","VENPAYR","MONEYMOTION","WHOP","DODO","MAVERICK","CASHAPP","VENMO","CRYPTO","CUSTOMER_BALANCE","MANUAL"]);function ji(e,t){if(new Set(t).size!==t.length)throw new Error(`${e} contains duplicate entries`)}ji("COIN_GATEWAY_KEYS",zi),ji("TOKEN_GATEWAY_KEYS",Ti),ji("CRYPTO_GATEWAY_KEYS",Ni),ji("LEGACY_CRYPTO_GATEWAY_KEYS",Ii),ji("CRYPTO_PROVIDER_KEYS",xi),ji("MANAGED_CRYPTO_PROVIDER_KEYS",Oi),ji("CRYPTO_PROVIDER_GATEWAY_KEYS",Ai),ji("DEFAULT_NOWPAYMENTS_CRYPTO_GATEWAY_KEYS",Pi),ji("DEFAULT_CRYPTOMUS_CRYPTO_GATEWAY_KEYS",["BITCOIN","LITECOIN","ETHEREUM","TRON","SOLANA","POLYGON","BINANCE_COIN","BITCOIN_CASH","MONERO","RIPPLE","DOGECOIN","USDT_TRC20","USDT_ERC20","USDT_BEP20","USDT_POLYGON","USDT_SOL","USDC_ERC20","USDC_BEP20","USDC_POLYGON","DAI_ERC20"]),ji("DEFAULT_OXAPAY_CRYPTO_GATEWAY_KEYS",["BITCOIN","LITECOIN","ETHEREUM","TRON","SOLANA","POLYGON","BINANCE_COIN","BITCOIN_CASH","MONERO","RIPPLE","DOGECOIN","USDT_TRC20","USDT_ERC20","USDT_BEP20","USDT_POLYGON","USDC_ERC20"]);for(const Is of Ni)if(!Ri.has(Is)&&!Ui.has(Is))throw new Error(`CRYPTO_GATEWAY_KEYS contains an unclassified gateway: ${Is}`);var qi=Wr({set:Zr()}),Zi=Wr({status:ni(["READY","NEEDS_ATTENTION"]).optional(),code:pr().optional(),message:pr().optional(),checked_at:pr().optional()}),Di=(Wr({provider:pr(),type:pr(),enabled:Zr(),connected:Zr(),credentials:ei(pr(),qi),public_config:ei(pr(),Lr()),webhook:ei(pr(),Lr()).optional(),health:Zi.optional()}),"#2563eb"),Li=["comfortable","compact"],Mi=["top","side","background"],Fi=ni(["checkout","payment_link","embed"]),Bi=ni(["current","clean-light","clean-dark","v2","v3"]),Ji=ni(Li),Yi=ni(["light","dark","system"]),Wi=ni(Mi),Vi=ni(["ghost","outlined","filled"]),Gi=ni(["sheet","fullscreen","center"]),Ki=(ni(["checkout.shell","checkout.panel","checkout.header","brand.logo","product.card","product.image","product.title","product.description","product.price","product.quantity","product.addon","paymentLink.hero","summary.panel","summary.line","summary.total","form.field","form.label","form.help","coupon.input","input.base","input.error","button.primary","button.secondary","payment.methods","payment.method","payment.method.icon","payment.method.label","payment.method.meta","payment.method.fee","payment.method.indicator","payment.provider_widget","payment.loading","payment.error","payment.warning","legal.terms","status.success","status.processing","embed.launcher","embed.launcher.icon","embed.productCard","embed.productCard.image","embed.productCard.title","embed.productCard.price","embed.cart","embed.cart.row","embed.cart.summary","embed.modal","embed.modal.header","embed.modal.close","embed.skeleton","embed.loader","embed.branding"]),ni(["product.title","product.price","summary.total","payment.method.label","payment.provider_widget","payment.loading","payment.error","payment.warning","legal.terms","status.success","status.processing","embed.modal.close","embed.branding"]),pr().regex(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/,"Use a valid hex color")),Hi=pr().trim().min(1).max(200).refine(e=>!/[;{}]|@import|expression\s*\(/i.test(e),"Use a valid CSS color or gradient"),Xi=pr().trim().min(1).max(400).refine(e=>!/[;{}]|@import|expression\s*\(/i.test(e),"Use a valid CSS box-shadow value"),Qi=ni(["Inter","Geist","Manrope","Plus Jakarta Sans","DM Sans","Space Grotesk","Sora","IBM Plex Sans","JetBrains Mono","Arial","System UI"]),eo=pr().trim().min(1).max(60).regex(/^[A-Za-z0-9 +\-_]+$/,"Use a Google Fonts family name"),to=pr().url(),no=Wr({brand:Wr({logoUrl:to.optional().nullable(),logoDarkUrl:to.optional().nullable(),logoMaxHeight:Rr().int().min(16).max(80).optional(),faviconUrl:to.optional().nullable()}).strict().optional(),color:Wr({brand:Ki.optional(),brandContrast:Ki.optional(),background:Ki.optional(),surface:Ki.optional(),surfaceRaised:Ki.optional(),text:Ki.optional(),textMuted:Ki.optional(),border:Ki.optional(),focus:Ki.optional(),success:Ki.optional(),warning:Ki.optional(),error:Ki.optional()}).strict().optional(),typography:Wr({fontFamily:Qi.optional(),googleFontFamily:eo.optional(),baseSize:Rr().int().min(12).max(18).optional()}).strict().optional(),shape:Wr({buttonRadius:Rr().int().min(0).max(24).optional(),inputRadius:Rr().int().min(0).max(24).optional(),cardRadius:Rr().int().min(0).max(28).optional()}).strict().optional(),spacing:Wr({density:Ji.optional(),controlHeight:Rr().int().min(36).max(56).optional()}).strict().optional(),component:Wr({primaryButton:Wr({background:Ki.optional(),text:Ki.optional()}).strict().optional(),input:Wr({background:Ki.optional(),border:Ki.optional(),focusRing:Hi.optional()}).strict().optional(),summary:Wr({background:Ki.optional()}).strict().optional(),paymentMethod:Wr({background:Hi.optional(),cardBackground:Hi.optional(),border:Hi.optional(),selectedBackground:Hi.optional()}).strict().optional(),productCard:Wr({background:Hi.optional(),border:Hi.optional(),shadow:Xi.optional()}).strict().optional(),productImage:Wr({background:Hi.optional(),border:Hi.optional(),icon:Hi.optional()}).strict().optional(),brandAvatar:Wr({background:Hi.optional(),text:Ki.optional(),border:Hi.optional()}).strict().optional(),pill:Wr({background:Hi.optional(),border:Hi.optional(),text:Ki.optional()}).strict().optional(),errorBanner:Wr({background:Hi.optional(),border:Hi.optional(),text:Ki.optional()}).strict().optional(),warningBanner:Wr({background:Hi.optional(),border:Hi.optional(),text:Ki.optional()}).strict().optional(),radio:Wr({idleRing:Hi.optional(),checkedFill:Ki.optional(),checkedIcon:Ki.optional()}).strict().optional(),divider:Wr({color:Hi.optional()}).strict().optional()}).strict().optional(),paymentLink:Wr({heroImageUrl:to.optional().nullable(),heroPosition:Wi.optional()}).strict().optional(),embed:Wr({launcher:Wr({background:Hi.optional(),text:Ki.optional(),radius:Rr().int().min(0).max(28).optional(),paddingX:Rr().int().min(8).max(32).optional(),paddingY:Rr().int().min(6).max(24).optional(),shadow:Xi.optional()}).strict().optional(),productCard:Wr({background:Hi.optional(),border:Hi.optional(),imageRadius:Rr().int().min(0).max(24).optional(),padding:Rr().int().min(8).max(32).optional()}).strict().optional(),cart:Wr({background:Hi.optional(),rowBorder:Hi.optional(),itemSpacing:Rr().int().min(4).max(28).optional()}).strict().optional(),modal:Wr({background:Hi.optional(),radius:Rr().int().min(0).max(32).optional(),maxWidth:Rr().int().min(360).max(960).optional(),shadow:Xi.optional()}).strict().optional(),backdrop:Wr({color:Hi.optional(),blur:Rr().int().min(0).max(24).optional(),opacity:Rr().min(0).max(1).optional()}).strict().optional(),skeleton:Wr({background:Hi.optional(),shimmer:Hi.optional()}).strict().optional(),spinner:Wr({color:Hi.optional()}).strict().optional(),closeButton:Wr({style:Vi.optional()}).strict().optional(),mobile:Wr({layout:Gi.optional()}).strict().optional()}).strict().optional()}).strict(),ro=Wr({mode:Yi.default("system"),fontSource:ni(["curated"]).default("curated")}).strict(),io=ni(["standalone","bundle","pointer"]),oo=Wr({name:pr().trim().min(1).max(80),fingerprint:pr().trim().min(1).max(128)}).strict(),ao=Wr({type:ii("shoppex.style_theme"),surface:ii("checkout"),format_version:Gr([ii(1),ii(2)]),name:pr().trim().min(1).max(80),description:pr().trim().max(240).optional(),embed_design:Bi.default("current"),token_schema_version:ii(1),tokens:no.default({}),custom_css:pr().max(2e4).default(""),settings:ro.default({mode:"system",fontSource:"curated"}),_meta:ei(pr(),Lr()).optional()}).strict(),so=(Wr({type:ii("shoppex.style_theme"),surface:Fi,format_version:Gr([ii(1),ii(2)]),name:pr().trim().min(1).max(80),description:pr().trim().max(240).optional(),embed_design:Bi.default("current"),token_schema_version:ii(1),tokens:no.default({}),custom_css:pr().max(2e4).default(""),settings:ro.default({mode:"system",fontSource:"curated"}),share_mode:io.default("standalone"),parent_hint:oo.optional(),bundled_parent:ao.optional(),_meta:ei(pr(),Lr()).optional()}).strict(),Wr({theme_id:pr().uuid().nullable(),surface:Fi,embed_design:Bi,token_schema_version:ii(1),revision:Rr().int().min(1),tokens:no,custom_css:pr(),css_variables:ei(pr(),pr())}).strict(),Wr({theme_id:pr().uuid().nullable(),parent_theme_id:pr().uuid().nullable(),surface:ii("embed"),embed_design:Bi,token_schema_version:ii(1),revision:Rr().int().min(1),parent_revision:Rr().int().min(1).nullable(),tokens:no,custom_css:pr(),css_variables:ei(pr(),pr())}).strict(),Wr({shop_id:pr().uuid(),product_id:pr().uuid().nullable(),product_group_id:pr().uuid().nullable(),payment_link_id:pr().uuid().nullable(),invoice_id:pr().nullable()}).strict(),Wr({embed_runtime:pr().min(16).max(128),embed_design:Bi,revision:Rr().int().min(1),parent_revision:Rr().int().min(1).nullable(),theme_id:pr().uuid().nullable(),css_variables:ei(pr(),pr()),custom_css:pr()}).strict(),Wr({embed_design:Bi.optional(),embed_style_revision:function(e){return function(e,t){return new e({type:"number",coerce:!0,checks:[],...D(t)})}(Pr,e)}().int().min(1).optional(),embed_runtime:pr().min(16).max(128).optional(),preview:Zr().optional()}).strict(),ni(["announcement_bar","countdown_bar","promo_info_card","recent_purchase_popup","coupon_popup_modal"]),ni(["layout.header.before","layout.header.after","layout.overlay","home.hero.after","home.grid.before","product.buybox.after","layout.footer.before","floating.bottom_right"])),uo=(ni(["announcement_bar","countdown_bar","promo_info_card","recent_purchase_popup","coupon_popup_modal"]),pr().regex(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/,"Use a valid hex color")),co=ni(["static","marquee"]),lo=ni(["brand_blue","emerald","sunset","rose","charcoal","custom"]),po=ni(["hide","message"]),fo=ni(["compact","comfortable"]),mo=ni(["subtle","outline","solid"]),ho=ni(["minimal","boxed"]),_o=ni(["indigo","emerald","amber","rose","slate","custom"]),yo=ni(["compact","feature","alert"]),go=ni(["compact","comfortable"]),vo=ni(["subtle","outline","solid"]),bo=ni(["sparkles","megaphone","gift","truck","shield","support","none"]),wo=ni(["show","hide"]),So=ni(["midnight","ocean","ember","forest","custom"]),ko=ni(["delay","exit_intent"]),zo=pr().trim().refine(e=>{if(e.startsWith("/"))return!0;try{const t=new URL(e);return"http:"===t.protocol||"https:"===t.protocol}catch{return!1}},'Use a valid absolute URL or a path starting with "/"'),xo=pr().trim().refine(e=>{const t=new Date(e);return!Number.isNaN(t.getTime())},"Use a valid date and time"),Oo=Wr({text:pr().trim().min(1,"Text is required").max(160,"Text must be 160 characters or fewer"),linkLabel:pr().trim().max(32,"Link label must be 32 characters or fewer").optional().nullable(),linkUrl:zo.optional().nullable(),dismissible:Zr().default(!1),displayMode:co.default("marquee"),themePreset:lo.default("custom"),animationSpeedSeconds:Rr().int().min(8).max(40).default(30),backgroundColor:uo.default("#111827"),textColor:uo.default("#f9fafb")}),$o=Wr({text:pr().trim().min(1,"Text is required").max(120,"Text must be 120 characters or fewer"),endAt:xo,linkLabel:pr().trim().max(32,"Link label must be 32 characters or fewer").optional().nullable(),linkUrl:zo.optional().nullable(),dismissible:Zr().default(!1),themePreset:lo.default("brand_blue"),expiredBehavior:po.default("hide"),expiredMessage:pr().trim().max(120,"Expired message must be 120 characters or fewer").optional().nullable(),density:fo.default("compact"),ctaStyle:mo.default("subtle"),timerStyle:ho.default("boxed"),backgroundColor:uo.default("#111827"),textColor:uo.default("#f9fafb")}),Eo=Wr({eyebrow:pr().trim().max(32,"Eyebrow must be 32 characters or fewer").optional().nullable(),title:pr().trim().min(1,"Title is required").max(80,"Title must be 80 characters or fewer"),body:pr().trim().min(1,"Body is required").max(240,"Body must be 240 characters or fewer"),linkLabel:pr().trim().max(32,"Link label must be 32 characters or fewer").optional().nullable(),linkUrl:zo.optional().nullable(),themePreset:_o.default("indigo"),layoutStyle:yo.default("feature"),density:go.default("comfortable"),ctaStyle:vo.default("outline"),icon:bo.default("sparkles"),iconVisibility:wo.default("show"),backgroundColor:uo.default("#111827"),textColor:uo.default("#f9fafb"),accentColor:uo.default("#818cf8")}),To=Wr({title:pr().trim().min(1,"Title is required").max(80,"Title must be 80 characters or fewer").default("Recent purchases"),lookbackHours:Rr().int().min(1).max(168).default(24),cooldownSeconds:Rr().int().min(5).max(300).default(20),maxItems:Rr().int().min(1).max(20).default(8),anonymizeMode:ni(["first_name_city","first_name_country","initial_country","anonymous"]).default("first_name_city"),includedProductIds:Jr(pr().min(1)).max(50).default([])}),No=Wr({eyebrow:pr().trim().max(32,"Eyebrow must be 32 characters or fewer").optional().nullable(),title:pr().trim().min(1,"Title is required").max(80,"Title must be 80 characters or fewer"),body:pr().trim().min(1,"Body is required").max(240,"Body must be 240 characters or fewer"),couponCode:pr().trim().min(2,"Coupon code is required").max(40,"Coupon code must be 40 characters or fewer"),primaryButtonLabel:pr().trim().min(1,"Primary button label is required").max(24,"Primary button label must be 24 characters or fewer").default("Copy code"),secondaryButtonLabel:pr().trim().min(1,"Secondary button label is required").max(24,"Secondary button label must be 24 characters or fewer").default("Maybe later"),disclaimer:pr().trim().max(100,"Disclaimer must be 100 characters or fewer").optional().nullable(),themePreset:So.default("midnight"),trigger:ko.default("delay"),delaySeconds:Rr().int().min(0).max(60).default(6),showOncePerSession:Zr().default(!0),reminderHours:Rr().int().min(1).max(720).default(24),backgroundColor:uo.default("#111827"),textColor:uo.default("#f8fafc"),accentColor:uo.default("#7c9cff"),heroImageUrl:zo.optional().nullable(),discountDisplay:pr().trim().max(24,"Discount display must be 24 characters or fewer").optional().nullable(),expiresAt:xo.optional().nullable()}),Io=Wr({type:ii("announcement_bar"),slot:so,enabled:Zr().default(!0),sortOrder:Rr().int().min(0).max(999).default(0),config:Oo}),Ao=Wr({type:ii("recent_purchase_popup"),slot:so,enabled:Zr().default(!0),sortOrder:Rr().int().min(0).max(999).default(0),config:To}),Co=Wr({type:ii("countdown_bar"),slot:so,enabled:Zr().default(!0),sortOrder:Rr().int().min(0).max(999).default(0),config:$o}),Po=Wr({type:ii("promo_info_card"),slot:so,enabled:Zr().default(!0),sortOrder:Rr().int().min(0).max(999).default(0),config:Eo}),Ro=Wr({type:ii("coupon_popup_modal"),slot:so,enabled:Zr().default(!0),sortOrder:Rr().int().min(0).max(999).default(0),config:No});Hr("type",[Io,Co,Po,Ao,Ro]),Hr("type",[Io.extend({id:pr().min(1)}),Co.extend({id:pr().min(1)}),Po.extend({id:pr().min(1)}),Ao.extend({id:pr().min(1)}),Ro.extend({id:pr().min(1)})]);var Uo=null,jo=null;var qo=null,Zo=null;function Do(e,t){const n=t?.shopId?.trim();return Zo=n||null,Uo=null,jo=null,qo={storeSlug:e,locale:t?.locale,currency:t?.currency,apiBaseUrl:t?.apiBaseUrl??"https://api.shoppex.io",checkoutBaseUrl:t?.checkoutBaseUrl??"https://checkout.shoppex.io"}}function Lo(){if(!qo)throw new n;return qo}function Mo(){return null!==qo}function Fo(e){Zo=e}function Bo(){return Zo}function Jo(e){const t=e?.trim().toLowerCase()??"";return"true"===t||"1"===t||"yes"===t||"on"===t}function Yo(e){return"number"==typeof e&&Number.isFinite(e)?Math.trunc(e):null}function Wo(e){if(!e)return-1;if("string"==typeof e.type&&"SERIALS"===e.type.toUpperCase())return Yo(e.stock)??-1;const t=function(e){const t=Array.isArray(e.price_variants)?e.price_variants.map(e=>Yo(e.stock)):[];return t.length>0?t:Array.isArray(e.variants)?e.variants.map(e=>Yo(e.stock)):[]}(e);return t.length>0?t.some(e=>null===e||e<0)?-1:t.filter(e=>null!==e).reduce((e,t)=>e+Math.max(t,0),0):Yo(e.stock)??-1}function Vo(e){return 0===Wo(e)}function Go(e){return!Vo(e)}function Ko(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 Ho(e){const t=e.name?.trim()??"",n=`${t?`Name: ${t}\n\n`:""}${e.message.trim()}`,r=e.maxLength??2e3;return n.slice(0,r)}var Xo=new Map,Qo=new Map,ea={hits:0,misses:0};function ta(e,t,n){const r=Date.now();Xo.set(e,{data:t,ttl:n,updatedAt:r,expiresAt:r+n})}async function na(e,t,n,r=()=>!0){const i=function(e){const t=Xo.get(e);return t||null}(e);if(i&&!function(e){return Date.now()>e.expiresAt}(i))return ea.hits+=1,i.data;if(i&&n.staleWhileRevalidate){if(ea.hits+=1,!Qo.has(e)){const i=(async()=>{try{const i=await t();return r(i)&&ta(e,i,n.ttl),i}finally{Qo.delete(e)}})();Qo.set(e,i)}return i.data}if(Qo.has(e))return Qo.get(e);ea.misses+=1;const o=(async()=>{try{const i=await t();return r(i)&&ta(e,i,n.ttl),i}finally{Qo.delete(e)}})();return Qo.set(e,o),o}var ra=/:([A-Za-z0-9_]+)/g;function ia(e,t){return e.replace(ra,(e,n)=>{const r=t[n];if(null==r)throw new Error(`Missing endpoint param: ${n}`);const i=String(r).trim();if(!i)throw new Error(`Endpoint param "${n}" must not be empty`);return encodeURIComponent(i)})}function oa(e){return`shoppex_${e}`}function aa(e){try{const t=localStorage.getItem(oa(e));return t?JSON.parse(t):null}catch{return null}}function sa(e,t){try{localStorage.setItem(oa(e),JSON.stringify(t))}catch{console.warn("[shoppex] Failed to save to localStorage")}}function ua(e){try{localStorage.removeItem(oa(e))}catch{}}function ca(e){if("undefined"==typeof window)return null;const t=`presence_connection_${e}`,n=aa(t);if(n&&n.trim())return n;const r="undefined"!=typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`spx_${Math.random().toString(36).slice(2)}${Date.now().toString(36)}`;return sa(t,r),r}async function la(e){if(!Mo())return;if("undefined"==typeof window)return;if(function(e){const t=`client_error_${function(e){return[e.method,e.endpoint,e.statusCode??"none",e.message.trim().toLowerCase(),e.responseReceived?"response":"no-response"].join("|")}(e)}`,n=Date.now(),r=aa(t);return"number"==typeof r&&n-r<15e3||(sa(t,n),!1)}(e))return;const t=Lo(),n=Bo(),r=n?ia("/v1/storefront/shops/id/:id/ping",{id:n}):ia("/v1/storefront/shops/:storeSlug/ping",{storeSlug:t.storeSlug}),i=JSON.stringify({event_type:"client_error",referer:document.referrer||void 0,connection_id:ca(t.storeSlug)??void 0,client_error:{source:e.source??"sdk",phase:e.phase??"request",endpoint:e.endpoint,method:e.method,message:e.message,status_code:e.statusCode,attempt_count:e.attemptCount,response_received:e.responseReceived??!1,page_url:e.pageUrl??window.location.href,request_url:e.requestUrl,online:e.online??("undefined"!=typeof navigator?navigator.onLine:void 0),visibility_state:e.visibilityState??("undefined"!=typeof document?document.visibilityState:void 0)}}),o=`${t.apiBaseUrl}${r}`;try{if("undefined"!=typeof navigator&&"function"==typeof navigator.sendBeacon){const e=new Blob([i],{type:"application/json"});if(navigator.sendBeacon(o,e))return}await fetch(o,{method:"POST",headers:{"Content-Type":"application/json"},body:i,keepalive:!0})}catch{}}var da=1e4;async function pa(e){return new Promise(t=>setTimeout(t,e))}async function fa(e,t={}){const n=t.baseUrl?null:Lo(),{method:i="GET",body:o,timeout:a=da,retries:s,baseUrl:u,cache:c}=t,l=s??("GET"===i?2:0),d=`${u??n?.apiBaseUrl??""}${e}`,p={"Content-Type":"application/json",Accept:"application/json"};let f=null;const m=async()=>{for(let t=0;t<=l;t++)try{const e=new AbortController,t=setTimeout(()=>e.abort(),a),n=await fetch(d,{method:i,headers:p,body:o?JSON.stringify(o):void 0,signal:e.signal});clearTimeout(t);const s=await ma(n);if(!n.ok){const e=n.statusText?`HTTP ${n.status}: ${n.statusText}`:`HTTP ${n.status}`;throw new r((s.data&&"object"==typeof s.data&&"error"in s.data&&"string"==typeof s.data.error?s.data.error:null)??(s.data&&"object"==typeof s.data&&"message"in s.data&&"string"==typeof s.data.message?s.data.message:null)??s.rawText??e,n.status)}if(204===n.status&&null===s.data)return{success:!0};if(!s.data||"object"!=typeof s.data||!("status"in s.data))throw new r("Invalid API response",n.status);return ha(s.data)}catch(e){let n=e instanceof Error?e:new Error(String(e));e instanceof DOMException&&"AbortError"===e.name&&(n=new r("Request timeout",408));const i=n instanceof r?n.statusCode:void 0;if(f={message:n.message,statusCode:i,isTransport:void 0===i||408===i},t<l){await pa(500*Math.pow(2,t));continue}}return{success:!1,message:f?.message??"Unknown error"}},h="GET"===i&&c&&c.ttl>0?await na(c.key??`GET:${d}`,m,{ttl:c.ttl,staleWhileRevalidate:c.staleWhileRevalidate},e=>e.success):await m(),_=f;return!h.success&&_?.isTransport&&await la({endpoint:e,method:i,message:h.message??_.message,statusCode:_.statusCode,attemptCount:l+1,requestUrl:d,responseReceived:void 0!==_.statusCode&&408!==_.statusCode}),h}async function ma(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 ha(e){return e.status>=200&&e.status<300?{success:!0,data:e.data,...e.message?{message:e.message}:{}}:{success:!1,message:e.error??e.message??`Request failed with status ${e.status}`}}async function _a(e,t){return fa(e,{...t,method:"GET"})}async function ya(e,t,n){return fa(e,{...n,method:"POST",body:t})}var ga=3e5;async function va(){const e=Lo(),t=await _a(ia("/v1/storefront/shops/name/:storeSlug",{storeSlug:e.storeSlug}),{cache:{key:`store:${e.storeSlug}`,ttl:ga,staleWhileRevalidate:!0}});return t.success&&t.data?(t.data.shop?.id&&Fo(t.data.shop.id),{success:!0,data:t.data.shop}):{success:!1,message:t.message}}var ba=12e4;function wa(e){if(e.variants&&e.variants.length>0)return e;const t=e.price_variants;return Array.isArray(t)&&0!==t.length?{...e,variants:t.map(e=>function(e){return{id:e.id,title:e.title??e.label??"",price:"number"==typeof e.price?e.price:Number(e.price)||0,stock:"number"==typeof e.stock?e.stock:void 0,quantity_min:e.quantity_min,quantity_max:e.quantity_max,quantityMin:e.quantityMin,quantityMax:e.quantityMax,image_id:e.image_id,imageId:e.imageId,cloudflare_image_id:e.cloudflare_image_id,cloudflareImageId:e.cloudflareImageId,image_url:e.image_url,imageUrl:e.imageUrl}}(e))}:e}async function Sa(){const e=Lo(),t=await _a(ia("/v1/storefront/products/public/:storeSlug",{storeSlug:e.storeSlug}),{cache:{key:`products:${e.storeSlug}`,ttl:ba,staleWhileRevalidate:!0}});return t.success&&t.data?{success:!0,data:t.data.products.map(wa)}:{success:!1,message:t.message,data:[]}}function ka(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 za(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:ka(e.custom_fields),unit_price:"number"==typeof e.price_data?.unit_price&&Number.isFinite(e.price_data.unit_price)?e.price_data.unit_price:null};var n;return function(e){let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24);return(t>>>0).toString(16)}(JSON.stringify(t))}function xa(e){return"string"==typeof e.line_id&&e.line_id.trim()?e:{...e,line_id:za(e)}}var Oa={cart:"cart",cartBackup:"cart_backup",meta:"cart_meta",metaBackup:"cart_backup_meta",coupon:"cart_coupon",couponBackup:"cart_coupon_backup"};function $a(e){return`${Oa[e]}_${Lo().storeSlug}`}function Ea(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 Ta(e){if(!Number.isFinite(e))throw new i("quantity must be a finite number");return Math.floor(e)}function Na(e){const t=e?.trim().toUpperCase();return t||null}function Ia(e){if(!Array.isArray(e))return[];const t=[];for(const n of e){if(!n||"object"!=typeof n)continue;const e=n,r="string"==typeof e.product_id?e.product_id.trim():"",i="string"==typeof e.variant_id?e.variant_id.trim():"",o=Number(e.quantity);if(!r||!i||!Number.isFinite(o)||o<1)continue;const a={line_id:"",product_id:r,variant_id:i,quantity:Math.floor(o)};if("string"==typeof e.price_variant_id&&(a.price_variant_id=e.price_variant_id),e.price_data&&"object"==typeof e.price_data){const t=e.price_data;"number"==typeof t.unit_price&&Number.isFinite(t.unit_price)&&(a.price_data={unit_price:t.unit_price})}Array.isArray(e.addons)&&(a.addons=e.addons),e.custom_fields&&"object"==typeof e.custom_fields&&!Array.isArray(e.custom_fields)&&(a.custom_fields=e.custom_fields),"string"==typeof e.title&&(a.title=e.title),"string"==typeof e.variant_title&&(a.variant_title=e.variant_title),"string"==typeof e.image_url&&(a.image_url=e.image_url),Array.isArray(e.addon_labels)&&(a.addon_labels=e.addon_labels.filter(e=>"string"==typeof e)),"number"==typeof e.max_quantity&&Number.isFinite(e.max_quantity)&&(a.max_quantity=e.max_quantity),"number"==typeof e.min_quantity&&Number.isFinite(e.min_quantity)&&(a.min_quantity=e.min_quantity),Za(a),a.line_id=("string"==typeof e.line_id?e.line_id.trim():"")||za(a),t.push(xa(a))}return t}function Aa(){return aa($a("meta"))}function Ca(){const e=aa($a("coupon"));return"string"!=typeof e?null:Na(e)}function Pa(e){const t=Na(e);return t?(sa($a("coupon"),t),t):(ua($a("coupon")),null)}function Ra(){ua($a("coupon"))}function Ua(e){const t=Ia(e);sa($a("cart"),t);const n=Date.now(),r=Aa(),i={created_at:r?.created_at??n,last_modified:n,version:(r?.version??0)+1,checksum:Ea(t)};sa($a("meta"),i),0===t.length&&Ra()}function ja(e,t){const n=Ia(e);sa($a("cart"),n);const r=Date.now(),i=t??Aa(),o={created_at:i?.created_at??r,last_modified:r,version:i?.version??1,checksum:Ea(n)};sa($a("meta"),o)}function qa(){return Ia(aa($a("cart")))}function Za(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 Da(){ua($a("cart")),ua($a("meta")),Ra()}function La(){const e=qa();sa($a("cartBackup"),e);const t=Ca();t?sa($a("couponBackup"),t):ua($a("couponBackup"));const n=Aa();if(n)sa($a("metaBackup"),n);else{const t=Date.now();sa($a("metaBackup"),{created_at:t,last_modified:t,version:1,checksum:Ea(e)})}}function Ma(){const e=qa(),t=Aa(),n=Ea(e);return t?t.checksum===n:(ja(e,null),!0)}var Fa="shoppex:affiliate_code:v1";function Ba(){return Date.now()}function Ja(e){const t=e?.trim().toLowerCase();return t||null}function Ya(e,t=30){const n=Ja(e);return n?(function(e){if("undefined"!=typeof window)try{window.localStorage.setItem(Fa,JSON.stringify(e))}catch{}}({code:n,expiresAt:Ba()+(r=t,24*Math.max(1,r)*60*60*1e3)}),n):(Wa(),null);var r}function Wa(){if("undefined"!=typeof window)try{window.localStorage.removeItem(Fa)}catch{}}function Va(){const e=function(){if("undefined"==typeof window)return null;try{const e=window.localStorage.getItem(Fa);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<=Ba()?(Wa(),null):Ja(e.code):null}async function Ga(e){const t=Ja(e);if(!t)return{success:!1,data:{valid:!1,affiliate_code:null,discount_active:!1,discount_percent:0},message:"Affiliate code is required"};const n=await ya("/v1/storefront/affiliates/resolve",{shop_slug:Lo().storeSlug,code:t},{retries:0});if(!n.success)return n;if(!n.data?.valid||!n.data.affiliate_code){const e=!1===n.data?.program_enabled;return{success:!1,data:{valid:!1,...void 0!==n.data?.program_enabled?{program_enabled:n.data.program_enabled}:{},affiliate_code:null,discount_active:!1,discount_percent:0},message:n.message??(e?"Affiliate program is disabled for this shop.":"Invalid affiliate code.")}}return{success:!0,data:{valid:!0,...void 0!==n.data.program_enabled?{program_enabled:n.data.program_enabled}:{},affiliate_code:Ja(n.data.affiliate_code),discount_active:Boolean(n.data.discount_active),discount_percent:Number(n.data.discount_percent??0)},...n.message?{message:n.message}:{}}}function Ka(e){const t=e?.trim();return t||null}function Ha(e){const t=e?.trim();return t||null}function Xa(e){const t=e?.trim().toUpperCase();return t&&/^[A-Z]{3}$/.test(t)?t:null}function Qa(e){return Xa(e.currency)??function(){if("undefined"==typeof window||!window.location)return null;const e="string"==typeof window.location.search?window.location.search:"";if(e)return Xa(new URLSearchParams(e).get("currency"));const t="string"==typeof window.location.href?window.location.href:"";if(!t)return null;try{return Xa(new URL(t,"https://storefront.shoppex.local").searchParams.get("currency"))}catch{return null}}()}function es(e){const t=e?.trim()??"";if(!t)return"Checkout failed. Please try again.";if(ts(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 ts(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 ns(e,t,n){const r=t?.trim();if(!r)return null;try{const t=new URL(e),i=new URL(r);if(t.origin!==i.origin)return null;const o=t.pathname.replace(/\/+$/,""),a=`${i.pathname.replace(/\/+$/,"")}/invoice/`.replace(/\/{2,}/g,"/");if(!o.startsWith(a))return null;const s=o.slice(a.length);if(!s||s.includes("/"))return null;if(n){const e=n.trim();if(!e||decodeURIComponent(s)!==e)return null}return t.toString()}catch{return null}}function rs(e,t){const n=Ha(t.email),r="string"==typeof t.locale?t.locale.trim():"";if(!n&&!r)return e;try{const t=new URL(e);if(r&&t.searchParams.set("locale",r),n){const e=new URLSearchParams(t.hash.startsWith("#")?t.hash.slice(1):t.hash);e.set("shoppex_prefill_email",n),t.hash=e.toString()}return t.toString()}catch{return e}}function is(e,t){const n=e?.invoice,r=e?.invoiceId?.trim()||e?.invoice_id?.trim()||e?.uniqid?.trim()||n?.invoiceId?.trim()||n?.invoice_id?.trim()||n?.uniqid?.trim();let i=e?.checkoutUrl?.trim()||e?.checkout_url?.trim()||e?.url_branded?.trim()||e?.url?.trim()||n?.checkoutUrl?.trim()||n?.checkout_url?.trim()||n?.url_branded?.trim()||n?.url?.trim();return!i&&r&&n&&(i=function(e,t){const n=e?.trim();if(!n)return null;try{const e=new URL(n);return e.pathname=`${e.pathname.replace(/\/+$/,"")}/invoice/${encodeURIComponent(t)}`.replace(/\/{2,}/g,"/"),e.search="",e.hash="",e.toString()}catch{return null}}(t,r)??void 0),r&&i?{invoiceId:r,checkoutUrl:i,rewards:e?.rewards??n?.rewards??null}:null}function os(e,t){return"string"==typeof e?{...t,coupon:e}:e??t??{}}function as(e){const t=e.affiliateCode??e.referralCode;return"string"==typeof t&&t.trim().length>0?t.trim().toLowerCase():Va()}function ss(e){const t=e=>{const t=e?.trim();return t?"default"===t.toLowerCase()?null:t:null};return e.map(e=>({product_id:e.product_id,variant_id:t(e.variant_id),quantity:e.quantity,addons:e.addons?.map(e=>({id:e.id,quantity:e.quantity??1})),custom_fields:e.custom_fields,price_variant_id:e.price_variant_id||null}))}function us(e){if("number"==typeof e&&Number.isFinite(e))return e;if("string"==typeof e&&""!==e.trim()){const t=Number(e);return Number.isFinite(t)?t:null}return null}function cs(...e){for(const t of e)if("string"==typeof t&&t.length>0)return t}function ls(e,t){const n=e,r=us(n.rating)??us(n.score)??0,i=cs(n.comment,n.message),o=cs(n.author,n.customer_name),a=n.created_at??n.createdAt,s="number"==typeof a||"string"==typeof a?String(a):"",u=cs(n.id,n.uniqid)??`review:${s||t}`;return{...n,id:u,rating:r,...i?{comment:i}:{},...o?{author:o}:{},created_at:s}}async function ds(e){const t=Lo(),n=new URLSearchParams;n.set("limit",String(100)),"string"==typeof e&&e.trim().length>0&&n.set("cursor",e);const r=`?${n.toString()}`,i=await _a(`${ia("/v1/storefront/feedback/shop/:storeSlug",{storeSlug:t.storeSlug})}${r}`,{cache:{key:`reviews:${t.storeSlug}:${e??"start"}:100`,ttl:12e4,staleWhileRevalidate:!0}});return i.success&&i.data?{success:!0,data:i.data}:{success:!1,message:i.message}}function ps(e){const t=e.trim();return t||null}var fs=3e5;var ms=3e5;async function hs(){const e=Lo(),t=await _a(ia("/v1/storefront/shops/name/:storeSlug/menus",{storeSlug:e.storeSlug}),{cache:{key:`menus:${e.storeSlug}`,ttl:ms,staleWhileRevalidate:!0}});return t.success&&t.data?{success:!0,data:t.data.menus}:{success:!1,message:t.message}}async function _s(e){const t=Lo(),n=await _a(ia("/v1/storefront/shops/name/:storeSlug/menus/:title",{storeSlug:t.storeSlug,title:e}),{cache:{key:`menu:${t.storeSlug}:${e}`,ttl:ms,staleWhileRevalidate:!0}});return n.success&&n.data?{success:!0,data:n.data.menu}:{success:!1,message:n.message}}async function ys(e){return _s(e)}async function gs(e){const t=Lo(),n=await _a(ia("/v1/storefront/shops/name/:storeSlug/menus/:title",{storeSlug:t.storeSlug,title:e}),{cache:{key:`menu-slot:${t.storeSlug}:${e}`,ttl:ms,staleWhileRevalidate:!0}});return n.success&&n.data?{success:!0,data:n.data.menu}:{success:!1,message:n.message}}function vs(e){return function(e){const t=_[e];return[t.title,...t.aliases]}(e)}async function bs(e,t){if(!Mo())return;if("undefined"==typeof document)return;const n=Lo(),r=ca(n.storeSlug);try{const i=ia("/v1/storefront/shops/:storeSlug/ping",{storeSlug:n.storeSlug});await fetch(`${n.apiBaseUrl}${i}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({referer:document.referrer||void 0,cart_value:e??void 0,item_count:t??void 0,connection_id:r??void 0})})}catch{}}async function ws(){if(!Mo())return{success:!1,message:"SDK not initialized"};const e=Lo(),t=Bo();return _a(t?ia("/v1/storefront/shops/id/:id/online-users",{id:t}):ia("/v1/storefront/shops/:storeSlug/online-users",{storeSlug:e.storeSlug}),{cache:!1,retries:0,timeout:5e3})}async function Ss(){if(!Mo())return{success:!1,message:"SDK not initialized"};if("undefined"==typeof document)return{success:!1,message:"Document is not available"};const e=Lo(),t=Bo();return ya(t?ia("/v1/storefront/shops/id/:id/ping",{id:t}):ia("/v1/storefront/shops/:storeSlug/ping",{storeSlug:e.storeSlug}),{referer:document.referrer||void 0,connection_id:ca(e.storeSlug)??void 0},{retries:0,timeout:5e3})}function ks(e,t){const n=Lo();return new Intl.NumberFormat(t??n.locale??"en-US",{style:"currency",currency:e??n.currency??"USD"})}function zs(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function xs(e){return zs(e)&&zs(e.theme)?{...e,version:"number"==typeof e.version?e.version:0,revision:"number"==typeof e.revision?e.revision:0,theme:{...e.theme,content:zs(e.theme.content)?e.theme.content:{},layout:zs(e.theme.layout)?e.theme.layout:{},style_slots:zs(e.theme.style_slots)?e.theme.style_slots:{},...Array.isArray(e.theme.pages)?{pages:e.theme.pages}:{},...zs(e.theme.terms)?{terms:e.theme.terms}:{}}}:null}async function Os(e){const t=await _a(ia("/v1/storefront/themes/builder/published/:shopSlug",{shopSlug:e}));return t.success&&t.data?zs(n=t.data)?{settings:zs(n.settings)?n.settings:{},builder_settings:xs(n.builder_settings),content:zs(n.content)?n.content:{},style_slots:zs(n.style_slots)?n.style_slots:{}}:null:null;var n}async function $s(e){const t=await Os(e);return t?t.settings:null}function Es(e){const t={};for(const[n,r]of Object.entries(e.settings)){t[n]={};for(const[e,i]of Object.entries(r))t[n][e]=i.default}return t}function Ts(e,t){const n={...e};for(const[r,i]of Object.entries(t))i&&(n[r]={...n[r],...i});return n}var Ns={init:function(e,t){"string"==typeof e?Do(e,t):Do(e.storeId,e)},isInitialized:Mo,getConfig:Lo,client:function(e){const t=Lo().apiBaseUrl??"https://api.shoppex.io";if(Uo&&jo===t&&!e)return Uo;const n=function(e,t){return a({baseUrl:e,headers:t?{Authorization:`Bearer ${t}`}:void 0})}(t,e);return e||(Uo=n,jo=t),n},getStore:va,getStorefront:async function(e){const t=Lo(),n=new URLSearchParams;Number.isFinite(e?.productsLimit)&&n.set("products_limit",String(Math.max(1,Math.floor(e?.productsLimit??0)))),"string"==typeof e?.productsCursor&&e.productsCursor.trim().length>0&&n.set("products_cursor",e.productsCursor);const r=n.size>0?`?${n.toString()}`:"",i=await _a(`${ia("/v1/storefront/shops/name/:storeSlug",{storeSlug:t.storeSlug})}${r}`,{cache:{key:`storefront:${t.storeSlug}:${e?.productsLimit??"full"}:${e?.productsCursor??"start"}`,ttl:ga,staleWhileRevalidate:!0}});return i.success&&i.data?(i.data.shop?.id&&Fo(i.data.shop.id),{success:!0,data:{shop:i.data.shop,products:i.data.products??[],products_pagination:i.data.products_pagination??null,groups:i.data.groups??[],items:i.data.items??[],categories:i.data.categories??[],addons:i.data.addons??{items:[]}}}):{success:!1,message:i.message}},getStoreLogoUrl:async function(){const e=await va();return e.success&&e.data?.logo?e.data.logo:null},getStoreBannerUrl:async function(){const e=await va();return e.success&&e.data?.banner?e.data.banner:null},resolveStoreByDomain:async function(e,t){const n=e??("undefined"!=typeof window?window.location.hostname:"");if(!n)return{success:!1,message:"Domain is required to resolve store"};const r=n.replace(/^https?:\/\//,"").split("/")[0].trim(),i=t??(Mo()?Lo().apiBaseUrl:"https://api.shoppex.io"),o=await _a(ia("/v1/storefront/shops/domain/:domain",{domain:r}),{baseUrl:i,cache:{key:`store:domain:${r}`,ttl:ga,staleWhileRevalidate:!0}});return o.success&&o.data?.shop?(o.data.shop.id&&Fo(o.data.shop.id),{success:!0,data:o.data.shop}):{success:!1,message:o.message??"Failed to resolve store"}},getProducts:Sa,getStorefrontProductsPage:async function(e){const t=Lo(),n=new URLSearchParams;"string"==typeof e?.cursor&&e.cursor.trim().length>0&&n.set("cursor",e.cursor),Number.isFinite(e?.limit)&&n.set("limit",String(Math.max(1,Math.floor(e?.limit??0)))),"string"==typeof e?.sort&&e.sort.trim().length>0&&n.set("sort",e.sort.trim()),"string"==typeof e?.category&&e.category.trim().length>0&&n.set("category",e.category.trim()),!0===e?.hideOutOfStock&&n.set("hide_out_of_stock","true");const r=n.size>0?`?${n.toString()}`:"",i=await _a(`${ia("/v1/storefront/products/shop/:storeSlug",{storeSlug:t.storeSlug})}${r}`,{cache:{key:`products:page:${t.storeSlug}:${e?.limit??"default"}:${e?.cursor??"start"}:${e?.sort??"featured"}:${o=e?.category,void 0===o?"category:unset":null===o?"category:null":`category:${o}`}:${!0===e?.hideOutOfStock?"in-stock":"all-stock"}`,ttl:ba,staleWhileRevalidate:!0}});var o;return i.success&&i.data?{success:!0,data:{products:i.data.products.map(wa),pagination:i.data.pagination??null}}:{success:!1,message:i.message}},getProduct:async function(e){let t=Bo();if(!t){const e=await va();t=e.success?e.data?.id??null:null}const n=t?`?slug_shop_id=${encodeURIComponent(t)}`:"",r=await _a(`${ia("/v1/storefront/products/unique/:idOrSlug",{idOrSlug:e})}${n}`,{cache:{key:`product:${e}:${t??"no-shop"}`,ttl:ba,staleWhileRevalidate:!0}});return r.success&&r.data?.product?{success:!0,data:wa(r.data.product)}:{success:!1,message:r.message}},getCategories:async function(){const e=await Sa();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:qa,getCartItemCount:function(){return qa().reduce((e,t)=>e+t.quantity,0)},getCartCoupon:Ca,setCartCoupon:Pa,clearCartCoupon:Ra,addToCart:function(e,t,n=1,r){if(!e||!t)throw new i("product_id and variant_id are required");const o=Ta(n);if(o<1)throw new i("quantity must be at least 1");const a=qa(),s=za({product_id:e,variant_id:t,addons:r?.addons,custom_fields:r?.custom_fields,price_variant_id:r?.price_variant_id,price_data:r?.price_data}),u=a.findIndex(e=>e.line_id===s);if(u>=0)a[u].quantity+=o,r?.addons&&(a[u].addons=r.addons),r?.custom_fields&&(a[u].custom_fields=r.custom_fields),r?.price_variant_id&&(a[u].price_variant_id=r.price_variant_id),r?.price_data&&(a[u].price_data=r.price_data),function(e,t){if(t?.replace_display_snapshot)return e.title=t.title,e.variant_title=t.variant_title,e.image_url=t.image_url,e.addon_labels=t.addon_labels,e.max_quantity=t.max_quantity,void(e.min_quantity=t.min_quantity);void 0!==t?.title&&(e.title=t.title);void 0!==t?.variant_title&&(e.variant_title=t.variant_title);void 0!==t?.image_url&&(e.image_url=t.image_url);void 0!==t?.addon_labels&&(e.addon_labels=t.addon_labels);void 0!==t?.max_quantity&&(e.max_quantity=t.max_quantity);void 0!==t?.min_quantity&&(e.min_quantity=t.min_quantity)}(a[u],r),Za(a[u]);else{const n={line_id:s,product_id:e,variant_id:t,quantity:o,addons:r?.addons,custom_fields:r?.custom_fields,price_variant_id:r?.price_variant_id,price_data:r?.price_data,title:r?.title,variant_title:r?.variant_title,image_url:r?.image_url,addon_labels:r?.addon_labels,max_quantity:r?.max_quantity,min_quantity:r?.min_quantity};Za(n),a.push(n)}Ua(a)},setCartItem:function(e,t,n=1,r){if(!e||!t)throw new i("product_id and variant_id are required");const o=Ta(n);if(o<1)throw new i("quantity must be at least 1");const a=qa(),s=za({product_id:e,variant_id:t,addons:r?.addons,custom_fields:r?.custom_fields,price_variant_id:r?.price_variant_id,price_data:r?.price_data});for(let i=a.length-1;i>=0;i-=1)a[i].product_id===e&&a[i].variant_id===t&&a.splice(i,1);const u={line_id:s,product_id:e,variant_id:t,quantity:o,addons:r?.addons,custom_fields:r?.custom_fields,price_variant_id:r?.price_variant_id,price_data:r?.price_data,title:r?.title,variant_title:r?.variant_title,image_url:r?.image_url,addon_labels:r?.addon_labels,max_quantity:r?.max_quantity,min_quantity:r?.min_quantity};Za(u),a.push(u),Ua(a)},updateCartItem:function(e,t){const n=qa(),r=e.trim();if(!r)throw new i("line_id is required");const o=n.findIndex(e=>e.line_id===r);if(o<0)throw new i("Item not found in cart");if(void 0!==t.quantity){const e=Ta(t.quantity);if(e<1)return n.splice(o,1),void Ua(n);n[o].quantity=e}void 0!==t.addons&&(n[o].addons=t.addons),void 0!==t.custom_fields&&(n[o].custom_fields=t.custom_fields),void 0!==t.price_variant_id&&(n[o].price_variant_id=t.price_variant_id),void 0!==t.price_data&&(n[o].price_data=t.price_data),void 0!==t.max_quantity&&(n[o].max_quantity=t.max_quantity),void 0!==t.min_quantity&&(n[o].min_quantity=t.min_quantity),Za(n[o]),Ua(n)},removeFromCart:function(e){const t=e.trim();if(!t)throw new i("line_id is required");Ua(qa().filter(e=>e.line_id!==t))},clearCart:Da,createCartBackup:La,restoreCartFromBackup:function(){const e=Ia(aa($a("cartBackup"))),t=aa($a("metaBackup")),n=aa($a("couponBackup"));return!!(e&&e.length>0)&&(ja(e,t),"string"==typeof n?Pa(n):Ra(),!0)},mergeBaskets:function(e){const t=qa();for(const n of e){const e="string"==typeof n.product_id?n.product_id.trim():"",r="string"==typeof n.variant_id?n.variant_id.trim():"";if(!e||!r)continue;let i;try{i=Ta(n.quantity)}catch{continue}if(i<1)continue;const o=xa({...n,line_id:n.line_id??za(n),product_id:e,variant_id:r,quantity:i}),a=t.findIndex(e=>e.line_id===o.line_id);a>=0?(t[a].quantity=Math.max(t[a].quantity,i),Za(t[a])):(Za(o),t.push(o))}return Ua(t),t},moveBasketItem:function(e,t,n,r){const o=qa(),a=o.findIndex(n=>n.product_id===e&&n.variant_id===t);if(a<0)throw new i("Item not found in cart");const[s]=o.splice(a,1),u=za({...s,product_id:n,variant_id:r}),c=o.findIndex(e=>e.line_id===u);if(c>=0)o[c].quantity+=s.quantity,Za(o[c]);else{const e=xa({...s,product_id:n,variant_id:r,line_id:u});Za(e),o.push(e)}Ua(o)},getCartStats:function(){const e=qa(),t=Ma(),n=Aa(),r=aa($a("cartBackup"))??[],i=e.length>0&&e.every(e=>"number"==typeof e.price_data?.unit_price),o=e.reduce((e,t)=>e+(t.price_data?.unit_price??0)*t.quantity,0);return{item_count:e.length,total_quantity:e.reduce((e,t)=>e+t.quantity,0),last_modified:n?.last_modified??0,version:n?.version??0,has_backup:r.length>0,integrity_valid:t,total_price:o,total_price_is_estimate:e.length>0&&!i}},validateCartIntegrity:Ma,quoteCart:async function(e){const t=function(e){const t=Lo(),n=Na(e)??Ca()??void 0;return{store_slug:t.storeSlug,items:qa(),coupon:n}}(e);return ya("/v1/storefront/cart/quote",{shop_slug:t.store_slug,cart:t.items,coupon:t.coupon})},resolveCartLineId:function(e,t,n=qa()){const r=n.filter(n=>n.product_id===e&&n.variant_id===t);if(0===r.length)throw new i(`No cart line found for ${e}/${t}`);return r[0].line_id},checkout:async function(e,t){const n=os(e,t),{autoRedirect:r=!0,email:i,coupon:o}=n,a=void 0===o?Ca():Ka(o),s=Ha(i),u=as(n),c=Qa(n),l=qa();if(0===l.length)return{success:!1,message:"Cart is empty"};La();const d=Lo();let p=await ya("/v1/storefront/invoices/from-cart",{shop_slug:d.storeSlug,cart:ss(l),email:s,coupon:a,currency:c,affiliate_code:u},{retries:0});if(!p.success||!p.data)return ts(p.message)&&Da(),{success:!1,message:es(p.message)};const f=is(p.data,d.checkoutBaseUrl);if(!f)return{success:!1,message:"Failed to create invoice"};const{invoiceId:m}=f,h=ns(f.checkoutUrl,d.checkoutBaseUrl,m);if(!h)return{success:!1,message:"Failed to create invoice"};const _=rs(h,{email:s,locale:n.locale});return r&&"undefined"!=typeof window&&window?.location&&(window.location.href=_,Da()),{success:!0,redirectUrl:_,invoiceId:m,rewards:f.rewards}},buildCheckoutUrl:async function(e,t){const n=os(e,t),{email:r,coupon:i}=n,o=void 0===i?Ca():Ka(i),a=Ha(r),s=as(n),u=Qa(n),c=qa();if(0===c.length)throw new Error("Cart is empty");const l=Lo();let d=await ya("/v1/storefront/invoices/from-cart",{shop_slug:l.storeSlug,cart:ss(c),email:a,coupon:o,currency:u,affiliate_code:s},{retries:0});if(!d.success||!d.data)throw ts(d.message)&&Da(),new Error(es(d.message));const p=is(d.data,l.checkoutBaseUrl);if(!p)throw new Error("Failed to create invoice");const f=ns(p.checkoutUrl,l.checkoutBaseUrl,p.invoiceId);if(!f)throw new Error("Failed to create invoice");return rs(f,{email:a,locale:n.locale})},buildCheckoutUrlSync:function(){throw new Error("buildCheckoutUrlSync is deprecated. Use buildCheckoutUrl (async) instead.")},captureAffiliateFromUrl:async function(e="ref"){if("undefined"==typeof window)return null;let t=null;try{const n=new URL(window.location.href).searchParams.get(e);t=n?n.trim():null}catch{t=null}if(t=Ja(t),!t)return null;if(Ya(t),Mo())try{const e=await ya("/v1/storefront/affiliates/attribution",{shop_slug:Lo().storeSlug,code:t},{retries:0});return e.success&&e.data?.accepted&&e.data?.affiliate_code?(Ya(e.data.affiliate_code),e.data.affiliate_code):(Wa(),null)}catch{return t}return t},validateAffiliateCode:Ga,applyAffiliateCode:async function(e){const t=await Ga(e);return t.success&&t.data?.affiliate_code&&Ya(t.data.affiliate_code),t},getAffiliateCode:Va,setAffiliateCode:Ya,clearAffiliateCode:Wa,validateCoupon:async function(e,t){const n=e.trim();if(!n)return{success:!1,message:"Coupon code is required"};const r={code:n},i="string"==typeof t?t:t?.productId,o="string"==typeof t?void 0:t?.variantId;if(o&&!i)return{success:!1,message:"productId is required when variantId is provided"};if(i)r.product_id=i,o&&(r.variant_id=o);else{const e=qa();if(0===e.length)return{success:!1,message:"Cart is empty"};const t=await async function(){const e=Bo();if(e)return e;const t=await va();return t.success&&t.data?.id?t.data.id:null}();if(!t)return{success:!1,message:"Failed to resolve store"};r.cart=JSON.stringify({shop_id:t,products:e.map(e=>({uniqid:e.product_id,quantity:e.quantity,variant_id:e.variant_id,price_variant_id:e.price_variant_id,addons:e.addons?.map(e=>({id:e.id,quantity:e.quantity??1}))}))})}return await ya("/v1/storefront/coupons/check",r)},getShopReviews:async function(){const e=[],t=new Set;let n=null;for(;;){const r=await ds(n);if(!r.success||!r.data)return{success:!1,message:r.message,data:[]};e.push(...(r.data.feedback??[]).map((t,n)=>ls(t,e.length+n)));const i=r.data.pagination;if(!i?.has_more||!i.next_cursor)break;if(t.has(i.next_cursor))break;t.add(i.next_cursor),n=i.next_cursor}return{success:!0,data:e}},searchProducts:async function(e,t){if(!Mo())return{success:!1,message:"SDK not initialized"};const n=e.trim().toLowerCase();if(!n)return{success:!0,data:[]};const r=await Sa();if(!r.success||!r.data)return{success:!1,message:r.message??"Failed to fetch products"};let i=r.data.filter(e=>e.title.toLowerCase().includes(n)||(e.description?.toLowerCase().includes(n)??!1));return t?.hideOutOfStock&&(i=i.filter(e=>Go(e))),{success:!0,data:i}},getInvoice:async function(e){const t=ps(e);if(!t)return{success:!1,message:"Invoice ID is required"};const n=await _a(ia("/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=ps(e);if(!t)return{success:!1,message:"Invoice ID is required"};const n=await _a(ia("/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=Lo(),t=await _a(ia("/v1/storefront/shops/name/:storeSlug/pages",{storeSlug:e.storeSlug}),{cache:{key:`pages:${e.storeSlug}`,ttl:fs,staleWhileRevalidate:!0}});return t.success&&t.data?{success:!0,data:t.data.pages}:{success:!1,message:t.message}},getPage:async function(e){const t=Lo(),n=await _a(ia("/v1/storefront/shops/name/:storeSlug/pages/:slug",{storeSlug:t.storeSlug,slug:e}),{cache:{key:`page:${t.storeSlug}:${e}`,ttl:fs,staleWhileRevalidate:!0}});return n.success&&n.data?{success:!0,data:n.data.page}:{success:!1,message:n.message}},getMenus:hs,getMenu:ys,getMenuBySlot:gs,getMenuByTitle:_s,getMenuSlotTitles:vs,trackPageView:bs,getStorefrontOnlineUsers:ws,touchStorefrontPresence:Ss,createFormatter:ks,formatPrice:function(e,t,n){const r="string"==typeof e?parseFloat(e):e;return Number.isNaN(r)?ks(t,n).format(0):ks(t,n).format(r)},clearCache:function(){Xo.clear(),Qo.clear()},invalidateCache:function(e){for(const t of Xo.keys())(t===e||t.startsWith(e))&&Xo.delete(t)},getCacheStats:function(){return{hits:ea.hits,misses:ea.misses,pendingRequests:Qo.size,entries:Xo.size}},fetchPublishedBuilderSettings:Os,fetchPublishedThemeSettings:$s,resolveDefaults:Es,mergeSettings:Ts};if("undefined"!=typeof window){const e=window;e.shoppex?.isInitialized?.()||(e.shoppex=Ns)}e.CartError=i,e.NetworkError=r,e.NotInitializedError=n,e.ShoppexError=t,e.ValidationError=class e extends t{constructor(t,n){super(t,"VALIDATION_ERROR"),this.name="ValidationError",this.invalidFields=n,Object.setPrototypeOf(this,e.prototype)}},e.buildStorefrontContactMessage=Ho,e.buildStorefrontCustomFieldPayload=function(e,t){const n={};return e.forEach(e=>{const r=t[e.name]??e.defaultValue??"";if("checkbox"===e.type)return void(Jo(r)&&(n[e.name]="true"));const i=r.trim();i.length>0&&(n[e.name]=i)}),n},e.computeCartLineId=za,e.default=Ns,e.shoppex=Ns,e.ensureCartLineId=xa,e.fetchPublishedBuilderSettings=Os,e.fetchPublishedThemeSettings=$s,e.getMenu=ys,e.getMenuBySlot=gs,e.getMenuByTitle=_s,e.getMenuSlotTitles=vs,e.getMenus=hs,e.getStorefrontOnlineUsers=ws,e.isProductInStock=Go,e.isProductOutOfStock=Vo,e.isStorefrontCheckboxCustomFieldValueChecked=Jo,e.isVariantOutOfStock=function(e){return 0===Yo(e?.stock)},e.mergeSettings=Ts,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",r=[e.default_value,e.default,e.value].find(e=>"string"==typeof e&&e.trim().length>0);return{name:"string"==typeof e.name?e.name.trim():"",type:n,required:!0===e.required||"true"===e.required||1===e.required||"1"===e.required,defaultValue:"string"==typeof r?r:"",placeholder:"string"==typeof e.placeholder?e.placeholder:"",regex:"string"==typeof e.regex?e.regex:void 0}}).filter(e=>e.name.length>0&&"hidden"!==e.type)},e.resolveDefaults=Es,e.resolveDisplayStock=Wo,e.resolveStorefrontApiBaseUrl=Ko,e.resolveStorefrontSocialLinks=function(e){return{discord:e?.discord_link??e?.social?.discord??null,telegram:e?.telegram_link??e?.social?.telegram??null}},e.resolveVariantStockValue=function(e){return Yo(e?.stock)??-1},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(),r=e.title?.trim()??"",i=r.length>=2?r.slice(0,30):"Contact Request",o=Ho({name:e.name,message:e.message}),a=e.invoiceId?.trim()||void 0,s=Ko({apiBaseUrl:e.apiBaseUrl}),u=await fetch(`${s}/v1/storefront/shops/name/${encodeURIComponent(t)}/tickets`,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({email:n,title:i,message:o,...a?{invoice_id:a}:{}})}),c=await u.json().catch(()=>null);if(!u.ok)throw new Error(c?.message||c?.error||"Failed to send your message.");const l=c?.data?.uniqid;if(!l)throw new Error("Ticket created, but the response was incomplete.");return{uniqid:l}},e.touchStorefrontPresence=Ss,e.trackPageView=bs,e.validateStorefrontCustomFieldValue=function(e,t){if("checkbox"===e.type)return e.required&&!Jo(t)?`${e.name} is required.`:null;const n=t.trim();if(e.required&&!n)return`${e.name} is required.`;if(e.regex&&n)try{if(!new RegExp(e.regex).test(n))return`${e.name} has an invalid format.`}catch{return null}return null}});
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).shoppex={})}(this,function(e){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var t=class e extends Error{constructor(t,n,r){super(t),this.name="ShoppexError",this.code=n,this.statusCode=r,Object.setPrototypeOf(this,e.prototype)}},n=class e extends t{constructor(){super("SDK not initialized. Call shoppex.init() first.","NOT_INITIALIZED"),this.name="NotInitializedError",Object.setPrototypeOf(this,e.prototype)}},r=class e extends t{constructor(t,n){super(t,"NETWORK_ERROR",n),this.name="NetworkError",Object.setPrototypeOf(this,e.prototype)}},i=class e extends t{constructor(t){super(t,"BASKET_ERROR"),this.name="CartError",Object.setPrototypeOf(this,e.prototype)}},o=/\{[^{}]+\}/g;function a(e){let{baseUrl:t="",Request:n=globalThis.Request,fetch:r=globalThis.fetch,querySerializer:i,bodySerializer:o,pathSerializer:a,headers:s,requestInitExt:u,...c}={...e};u="object"==typeof process&&Number.parseInt(process?.versions?.node?.substring(0,2))>=18&&process.versions.undici?u:void 0,t=m(t);const h=[];async function _(e,_){const{baseUrl:g,fetch:y=r,Request:v=n,headers:b,params:w={},parseAs:S="json",querySerializer:k,bodySerializer:z=o??p,pathSerializer:O,body:x,middleware:E=[],...$}=_||{};let T=t;g&&(T=m(g)??t);let A="function"==typeof i?i:l(i);k&&(A="function"==typeof k?k:l({..."object"==typeof i?i:{},...k}));const I=O||a||d,N=void 0===x?void 0:z(x,f(s,b,w.header)),C=f(void 0===N||N instanceof FormData?{}:{"Content-Type":"application/json"},s,b,w.header),P=[...h,...E],R={redirect:"follow",...c,...$,body:N,headers:C};let U,j,q,D=new v(function(e,t){let n=`${t.baseUrl}${e}`;t.params?.path&&(n=t.pathSerializer(n,t.params.path));let r=t.querySerializer(t.params.query??{});r.startsWith("?")&&(r=r.substring(1));r&&(n+=`?${r}`);return n}(e,{baseUrl:T,params:w,querySerializer:A,pathSerializer:I}),R);for(const t in $)t in D||(D[t]=$[t]);if(P.length){U=Math.random().toString(36).slice(2,11),j=Object.freeze({baseUrl:T,fetch:y,parseAs:S,querySerializer:A,bodySerializer:z,pathSerializer:I});for(const t of P)if(t&&"object"==typeof t&&"function"==typeof t.onRequest){const n=await t.onRequest({request:D,schemaPath:e,params:w,options:j,id:U});if(n){if(!(n instanceof v)){if(n instanceof Response){q=n;break}throw new Error("onRequest: must return new Request() or Response() when modifying the request")}D=n}}}if(!q){try{q=await y(D,u)}catch(L){let t=L;if(P.length)for(let n=P.length-1;n>=0;n--){const r=P[n];if(r&&"object"==typeof r&&"function"==typeof r.onError){const n=await r.onError({request:D,error:t,schemaPath:e,params:w,options:j,id:U});if(n){if(n instanceof Response){t=void 0,q=n;break}if(n instanceof Error){t=n;continue}throw new Error("onError: must return new Response() or instance of Error")}}}if(t)throw t}if(P.length)for(let t=P.length-1;t>=0;t--){const n=P[t];if(n&&"object"==typeof n&&"function"==typeof n.onResponse){const t=await n.onResponse({request:D,response:q,schemaPath:e,params:w,options:j,id:U});if(t){if(!(t instanceof Response))throw new Error("onResponse: must return new Response() when modifying the response");q=t}}}}const Z=q.headers.get("Content-Length");if(204===q.status||"HEAD"===D.method||"0"===Z&&!q.headers.get("Transfer-Encoding")?.includes("chunked"))return q.ok?{data:void 0,response:q}:{error:void 0,response:q};if(q.ok){const e=async()=>{if("stream"===S)return q.body;if("json"===S&&!Z){const e=await q.text();return e?JSON.parse(e):void 0}return await q[S]()};return{data:await e(),response:q}}let M=await q.text();try{M=JSON.parse(M)}catch{}return{error:M,response:q}}return{request:(e,t,n)=>_(t,{...n,method:e.toUpperCase()}),GET:(e,t)=>_(e,{...t,method:"GET"}),PUT:(e,t)=>_(e,{...t,method:"PUT"}),POST:(e,t)=>_(e,{...t,method:"POST"}),DELETE:(e,t)=>_(e,{...t,method:"DELETE"}),OPTIONS:(e,t)=>_(e,{...t,method:"OPTIONS"}),HEAD:(e,t)=>_(e,{...t,method:"HEAD"}),PATCH:(e,t)=>_(e,{...t,method:"PATCH"}),TRACE:(e,t)=>_(e,{...t,method:"TRACE"}),use(...e){for(const t of e)if(t){if("object"!=typeof t||!("onRequest"in t||"onResponse"in t||"onError"in t))throw new Error("Middleware must be an object with one of `onRequest()`, `onResponse() or `onError()`");h.push(t)}},eject(...e){for(const t of e){const e=h.indexOf(t);-1!==e&&h.splice(e,1)}}}}function s(e,t,n){if(null==t)return"";if("object"==typeof t)throw new Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");return`${e}=${!0===n?.allowReserved?t:encodeURIComponent(t)}`}function u(e,t,n){if(!t||"object"!=typeof t)return"";const r=[],i={simple:",",label:".",matrix:";"}[n.style]||"&";if("deepObject"!==n.style&&!1===n.explode){for(const e in t)r.push(e,!0===n.allowReserved?t[e]:encodeURIComponent(t[e]));const i=r.join(",");switch(n.style){case"form":return`${e}=${i}`;case"label":return`.${i}`;case"matrix":return`;${e}=${i}`;default:return i}}for(const a in t){const i="deepObject"===n.style?`${e}[${a}]`:a;r.push(s(i,t[a],n))}const o=r.join(i);return"label"===n.style||"matrix"===n.style?`${i}${o}`:o}function c(e,t,n){if(!Array.isArray(t))return"";if(!1===n.explode){const r={form:",",spaceDelimited:"%20",pipeDelimited:"|"}[n.style]||",",i=(!0===n.allowReserved?t:t.map(e=>encodeURIComponent(e))).join(r);switch(n.style){case"simple":return i;case"label":return`.${i}`;case"matrix":return`;${e}=${i}`;default:return`${e}=${i}`}}const r={simple:",",label:".",matrix:";"}[n.style]||"&",i=[];for(const o of t)"simple"===n.style||"label"===n.style?i.push(!0===n.allowReserved?o:encodeURIComponent(o)):i.push(s(e,o,n));return"label"===n.style||"matrix"===n.style?`${r}${i.join(r)}`:i.join(r)}function l(e){return function(t){const n=[];if(t&&"object"==typeof t)for(const r in t){const i=t[r];if(null!=i)if(Array.isArray(i)){if(0===i.length)continue;n.push(c(r,i,{style:"form",explode:!0,...e?.array,allowReserved:e?.allowReserved||!1}))}else"object"!=typeof i?n.push(s(r,i,e)):n.push(u(r,i,{style:"deepObject",explode:!0,...e?.object,allowReserved:e?.allowReserved||!1}))}return n.join("&")}}function d(e,t){let n=e;for(const r of e.match(o)??[]){let e=r.substring(1,r.length-1),i=!1,o="simple";if(e.endsWith("*")&&(i=!0,e=e.substring(0,e.length-1)),e.startsWith(".")?(o="label",e=e.substring(1)):e.startsWith(";")&&(o="matrix",e=e.substring(1)),!t||void 0===t[e]||null===t[e])continue;const a=t[e];Array.isArray(a)?n=n.replace(r,c(e,a,{style:o,explode:i})):n="object"!=typeof a?"matrix"!==o?n.replace(r,"label"===o?`.${encodeURIComponent(a)}`:encodeURIComponent(a)):n.replace(r,`;${s(e,a)}`):n.replace(r,u(e,a,{style:o,explode:i}))}return n}function p(e,t){return e instanceof FormData?e:t&&"application/x-www-form-urlencoded"===(t.get instanceof Function?t.get("Content-Type")??t.get("content-type"):t["Content-Type"]??t["content-type"])?new URLSearchParams(e).toString():JSON.stringify(e)}function f(...e){const t=new Headers;for(const n of e){if(!n||"object"!=typeof n)continue;const e=n instanceof Headers?n.entries():Object.entries(n);for(const[n,r]of e)if(null===r)t.delete(n);else if(Array.isArray(r))for(const e of r)t.append(n,e);else void 0!==r&&t.set(n,r)}return t}function m(e){return e.endsWith("/")?e.substring(0,e.length-1):e}var h,_={header:{title:"Header",aliases:["Header Menu"]},footer:{title:"Footer",aliases:["Footer Links","Legal Links"]}};function g(e,t,n){function r(n,r){if(n._zod||Object.defineProperty(n,"_zod",{value:{def:r,constr:a,traits:new Set},enumerable:!1}),n._zod.traits.has(e))return;n._zod.traits.add(e),t(n,r);const i=a.prototype,o=Object.keys(i);for(let e=0;e<o.length;e++){const t=o[e];t in n||(n[t]=i[t].bind(n))}}const i=n?.Parent??Object;class o extends i{}function a(e){var t;const i=n?.Parent?new o:this;r(i,e),(t=i._zod).deferred??(t.deferred=[]);for(const n of i._zod.deferred)n();return i}return Object.defineProperty(o,"name",{value:e}),Object.defineProperty(a,"init",{value:r}),Object.defineProperty(a,Symbol.hasInstance,{value:t=>!!(n?.Parent&&t instanceof n.Parent)||t?._zod?.traits?.has(e)}),Object.defineProperty(a,"name",{value:e}),a}var y=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},v=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}};(h=globalThis).__zod_globalConfig??(h.__zod_globalConfig={});var b=globalThis.__zod_globalConfig;function w(e){return e&&Object.assign(b,e),b}function S(e){const t=Object.values(e).filter(e=>"number"==typeof e);return Object.entries(e).filter(([e,n])=>-1===t.indexOf(+e)).map(([e,t])=>t)}function k(e,t){return"bigint"==typeof t?t.toString():t}function z(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function O(e){return null==e}function x(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}var E=Symbol("evaluating");function $(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==E)return void 0===r&&(r=E,r=n()),r},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function T(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function A(...e){const t={};for(const n of e)Object.assign(t,Object.getOwnPropertyDescriptors(n));return Object.defineProperties({},t)}function I(e){return JSON.stringify(e)}var N="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function C(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}var P=z(()=>{if(b.jitless)return!1;if("undefined"!=typeof navigator&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch(e){return!1}});function R(e){if(!1===C(e))return!1;const t=e.constructor;if(void 0===t)return!0;if("function"!=typeof t)return!0;const n=t.prototype;return!1!==C(n)&&!1!==Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")}function U(e){return R(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}var j=new Set(["string","number","symbol"]);function q(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function D(e,t,n){const r=new e._zod.constr(t??e._zod.def);return t&&!n?.parent||(r._zod.parent=e),r}function Z(e){const t=e;if(!t)return{};if("string"==typeof t)return{error:()=>t};if(void 0!==t?.message){if(void 0!==t?.error)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,"string"==typeof t.error?{...t,error:()=>t.error}:t}var M={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 L(e,t=0){if(!0===e.aborted)return!0;for(let n=t;n<e.issues.length;n++)if(!0!==e.issues[n]?.continue)return!0;return!1}function F(e,t=0){if(!0===e.aborted)return!0;for(let n=t;n<e.issues.length;n++)if(!1===e.issues[n]?.continue)return!0;return!1}function B(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function Y(e){return"string"==typeof e?e:e?.message}function J(e,t,n){const r=e.message?e.message:Y(e.inst?._zod.def?.error?.(e))??Y(t?.error?.(e))??Y(n.customError?.(e))??Y(n.localeError?.(e))??"Invalid input",{inst:i,continue:o,input:a,...s}=e;return s.path??(s.path=[]),s.message=r,t?.reportInput&&(s.input=a),s}function W(e){return Array.isArray(e)?"array":"string"==typeof e?"string":"unknown"}function V(...e){const[t,n,r]=e;return"string"==typeof t?{message:t,code:"custom",input:n,inst:r}:{...t}}var G=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,k,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},H=g("$ZodError",G),K=g("$ZodError",G,{Parent:Error});var X=e=>(t,n,r,i)=>{const o=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},o);if(a instanceof Promise)throw new y;if(a.issues.length){const t=new(i?.Err??e)(a.issues.map(e=>J(e,o,w())));throw N(t,i?.callee),t}return a.value},Q=e=>async(t,n,r,i)=>{const o=r?{...r,async:!0}:{async:!0};let a=t._zod.run({value:n,issues:[]},o);if(a instanceof Promise&&(a=await a),a.issues.length){const t=new(i?.Err??e)(a.issues.map(e=>J(e,o,w())));throw N(t,i?.callee),t}return a.value},ee=e=>(t,n,r)=>{const i=r?{...r,async:!1}:{async:!1},o=t._zod.run({value:n,issues:[]},i);if(o instanceof Promise)throw new y;return o.issues.length?{success:!1,error:new(e??H)(o.issues.map(e=>J(e,i,w())))}:{success:!0,data:o.value}},te=ee(K),ne=e=>async(t,n,r)=>{const i=r?{...r,async:!0}:{async:!0};let o=t._zod.run({value:n,issues:[]},i);return o instanceof Promise&&(o=await o),o.issues.length?{success:!1,error:new e(o.issues.map(e=>J(e,i,w())))}:{success:!0,data:o.value}},re=ne(K),ie=e=>(t,n,r)=>{const i=r?{...r,direction:"backward"}:{direction:"backward"};return X(e)(t,n,i)},oe=e=>(t,n,r)=>X(e)(t,n,r),ae=e=>async(t,n,r)=>{const i=r?{...r,direction:"backward"}:{direction:"backward"};return Q(e)(t,n,i)},se=e=>async(t,n,r)=>Q(e)(t,n,r),ue=e=>(t,n,r)=>{const i=r?{...r,direction:"backward"}:{direction:"backward"};return ee(e)(t,n,i)},ce=e=>(t,n,r)=>ee(e)(t,n,r),le=e=>async(t,n,r)=>{const i=r?{...r,direction:"backward"}:{direction:"backward"};return ne(e)(t,n,i)},de=e=>async(t,n,r)=>ne(e)(t,n,r),pe=/^[cC][0-9a-z]{6,}$/,fe=/^[0-9a-z]+$/,me=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,he=/^[0-9a-vA-V]{20}$/,_e=/^[A-Za-z0-9]{27}$/,ge=/^[a-zA-Z0-9_-]{21}$/,ye=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,ve=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,be=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,we=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var Se=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,ke=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,ze=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Oe=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,xe=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Ee=/^[A-Za-z0-9_-]*$/,$e=/^https?$/,Te=/^\+[1-9]\d{6,14}$/,Ae="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",Ie=new RegExp(`^${Ae}$`);function Ne(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return"number"==typeof e.precision?-1===e.precision?`${t}`:0===e.precision?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}var Ce=/^-?\d+$/,Pe=/^-?\d+(?:\.\d+)?$/,Re=/^(?:true|false)$/i,Ue=/^[^A-Z]*$/,je=/^[^a-z]*$/,qe=g("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),De={number:"number",bigint:"bigint",object:"date"},Ze=g("$ZodCheckLessThan",(e,t)=>{qe.init(e,t);const n=De[typeof t.value];e._zod.onattach.push(e=>{const n=e._zod.bag,r=(t.inclusive?n.maximum:n.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<r&&(t.inclusive?n.maximum=t.value:n.exclusiveMaximum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value<=t.value:r.value<t.value)||r.issues.push({origin:n,code:"too_big",maximum:"object"==typeof t.value?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Me=g("$ZodCheckGreaterThan",(e,t)=>{qe.init(e,t);const n=De[typeof t.value];e._zod.onattach.push(e=>{const n=e._zod.bag,r=(t.inclusive?n.minimum:n.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>r&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:"too_small",minimum:"object"==typeof t.value?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Le=g("$ZodCheckMultipleOf",(e,t)=>{qe.init(e,t),e._zod.onattach.push(e=>{var n;(n=e._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");("bigint"==typeof n.value?n.value%t.value!==BigInt(0):0!==function(e,t){const n=e/t,r=Math.round(n),i=Number.EPSILON*Math.max(Math.abs(n),1);return Math.abs(n-r)<i?0:n-r}(n.value,t.value))&&n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),Fe=g("$ZodCheckNumberFormat",(e,t)=>{qe.init(e,t),t.format=t.format||"float64";const n=t.format?.includes("int"),r=n?"int":"number",[i,o]=M[t.format];e._zod.onattach.push(e=>{const r=e._zod.bag;r.format=t.format,r.minimum=i,r.maximum=o,n&&(r.pattern=Ce)}),e._zod.check=a=>{const s=a.value;if(n){if(!Number.isInteger(s))return void a.issues.push({expected:r,format:t.format,code:"invalid_type",continue:!1,input:s,inst:e});if(!Number.isSafeInteger(s))return void(s>0?a.issues.push({input:s,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,inclusive:!0,continue:!t.abort}):a.issues.push({input:s,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,inclusive:!0,continue:!t.abort}))}s<i&&a.issues.push({origin:"number",input:s,code:"too_small",minimum:i,inclusive:!0,inst:e,continue:!t.abort}),s>o&&a.issues.push({origin:"number",input:s,code:"too_big",maximum:o,inclusive:!0,inst:e,continue:!t.abort})}}),Be=g("$ZodCheckMaxLength",(e,t)=>{var n;qe.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!O(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<n&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{const r=n.value;if(r.length<=t.maximum)return;const i=W(r);n.issues.push({origin:i,code:"too_big",maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Ye=g("$ZodCheckMinLength",(e,t)=>{var n;qe.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!O(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{const r=n.value;if(r.length>=t.minimum)return;const i=W(r);n.issues.push({origin:i,code:"too_small",minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),Je=g("$ZodCheckLengthEquals",(e,t)=>{var n;qe.init(e,t),(n=e._zod.def).when??(n.when=e=>{const t=e.value;return!O(t)&&void 0!==t.length}),e._zod.onattach.push(e=>{const n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=n=>{const r=n.value,i=r.length;if(i===t.length)return;const o=W(r),a=i>t.length;n.issues.push({origin:o,...a?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),We=g("$ZodCheckStringFormat",(e,t)=>{var n,r;qe.init(e,t),e._zod.onattach.push(e=>{const n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??(n.patterns=new Set),n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,t.pattern.test(n.value)||n.issues.push({origin:"string",code:"invalid_format",format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),Ve=g("$ZodCheckRegex",(e,t)=>{We.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,t.pattern.test(n.value)||n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),Ge=g("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Ue),We.init(e,t)}),He=g("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=je),We.init(e,t)}),Ke=g("$ZodCheckIncludes",(e,t)=>{qe.init(e,t);const n=q(t.includes),r=new RegExp("number"==typeof t.position?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(r)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),Xe=g("$ZodCheckStartsWith",(e,t)=>{qe.init(e,t);const n=new RegExp(`^${q(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(n)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),Qe=g("$ZodCheckEndsWith",(e,t)=>{qe.init(e,t);const n=new RegExp(`.*${q(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(e=>{const t=e._zod.bag;t.patterns??(t.patterns=new Set),t.patterns.add(n)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),et=g("$ZodCheckOverwrite",(e,t)=>{qe.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}}),tt=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if("function"==typeof e)return e(this,{execution:"sync"}),void e(this,{execution:"async"});const t=e.split("\n").filter(e=>e),n=Math.min(...t.map(e=>e.length-e.trimStart().length)),r=t.map(e=>e.slice(n)).map(e=>" ".repeat(2*this.indent)+e);for(const i of r)this.content.push(i)}compile(){const e=Function,t=this?.args;return new e(...t,[...(this?.content??[""]).map(e=>` ${e}`)].join("\n"))}},nt={major:4,minor:4,patch:3},rt=g("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=nt;const r=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&r.unshift(e);for(const i of r)for(const t of i._zod.onattach)t(e);if(0===r.length)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const t=(e,t,n)=>{let r,i=L(e);for(const o of t){if(o._zod.def.when){if(F(e))continue;if(!o._zod.def.when(e))continue}else if(i)continue;const t=e.issues.length,a=o._zod.check(e);if(a instanceof Promise&&!1===n?.async)throw new y;if(r||a instanceof Promise)r=(r??Promise.resolve()).then(async()=>{await a,e.issues.length!==t&&(i||(i=L(e,t)))});else{if(e.issues.length===t)continue;i||(i=L(e,t))}}return r?r.then(()=>e):e},n=(n,i,o)=>{if(L(n))return n.aborted=!0,n;const a=t(i,r,o);if(a instanceof Promise){if(!1===o.async)throw new y;return a.then(t=>e._zod.parse(t,o))}return e._zod.parse(a,o)};e._zod.run=(i,o)=>{if(o.skipChecks)return e._zod.parse(i,o);if("backward"===o.direction){const t=e._zod.parse({value:i.value,issues:[]},{...o,skipChecks:!0});return t instanceof Promise?t.then(e=>n(e,i,o)):n(t,i,o)}const a=e._zod.parse(i,o);if(a instanceof Promise){if(!1===o.async)throw new y;return a.then(e=>t(e,r,o))}return t(a,r,o)}}$(e,"~standard",()=>({validate:t=>{try{const n=te(e,t);return n.success?{value:n.data}:{issues:n.error?.issues}}catch(n){return re(e,t).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:"zod",version:1}))}),it=g("$ZodString",(e,t)=>{var n;rt.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??(n=e._zod.bag,new RegExp(`^${n?`[\\s\\S]{${n?.minimum??0},${n?.maximum??""}}`:"[\\s\\S]*"}$`)),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch(r){}return"string"==typeof n.value||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),ot=g("$ZodStringFormat",(e,t)=>{We.init(e,t),it.init(e,t)}),at=g("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=ve),ot.init(e,t)}),st=g("$ZodUUID",(e,t)=>{if(t.version){const e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(void 0===e)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=be(e))}else t.pattern??(t.pattern=be());ot.init(e,t)}),ut=g("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=we),ot.init(e,t)}),ct=g("$ZodURL",(e,t)=>{ot.init(e,t),e._zod.check=n=>{try{const r=n.value.trim();if(!t.normalize&&t.protocol?.source===$e.source&&!/^https?:\/\//i.test(r))return void n.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:n.value,inst:e,continue:!t.abort});const i=new URL(r);return t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(":")?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),void(t.normalize?n.value=i.href:n.value=r)}catch(r){n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),lt=g("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=new RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u")),ot.init(e,t)}),dt=g("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=ge),ot.init(e,t)}),pt=g("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=pe),ot.init(e,t)}),ft=g("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=fe),ot.init(e,t)}),mt=g("$ZodULID",(e,t)=>{t.pattern??(t.pattern=me),ot.init(e,t)}),ht=g("$ZodXID",(e,t)=>{t.pattern??(t.pattern=he),ot.init(e,t)}),_t=g("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=_e),ot.init(e,t)}),gt=g("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=function(e){const t=Ne({precision:e.precision}),n=["Z"];e.local&&n.push(""),e.offset&&n.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const r=`${t}(?:${n.join("|")})`;return new RegExp(`^${Ae}T(?:${r})$`)}(t)),ot.init(e,t)}),yt=g("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=Ie),ot.init(e,t)}),vt=g("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=new RegExp(`^${Ne(t)}$`)),ot.init(e,t)}),bt=g("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=ye),ot.init(e,t)}),wt=g("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=Se),ot.init(e,t),e._zod.bag.format="ipv4"}),St=g("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=ke),ot.init(e,t),e._zod.bag.format="ipv6",e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:e,continue:!t.abort})}}}),kt=g("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=ze),ot.init(e,t)}),zt=g("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=Oe),ot.init(e,t),e._zod.check=n=>{const r=n.value.split("/");try{if(2!==r.length)throw new Error;const[e,t]=r;if(!t)throw new Error;const n=Number(t);if(`${n}`!==t)throw new Error;if(n<0||n>128)throw new Error;new URL(`http://[${e}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});function Ot(e){if(""===e)return!0;if(/\s/.test(e))return!1;if(e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}var xt=g("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=xe),ot.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=n=>{Ot(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});var Et=g("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=Ee),ot.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=n=>{(function(e){if(!Ee.test(e))return!1;const t=e.replace(/[-_]/g,e=>"-"===e?"+":"/");return Ot(t.padEnd(4*Math.ceil(t.length/4),"="))})(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),$t=g("$ZodE164",(e,t)=>{t.pattern??(t.pattern=Te),ot.init(e,t)});var Tt=g("$ZodJWT",(e,t)=>{ot.init(e,t),e._zod.check=n=>{(function(e,t=null){try{const n=e.split(".");if(3!==n.length)return!1;const[r]=n;if(!r)return!1;const i=JSON.parse(atob(r));return!("typ"in i&&"JWT"!==i?.typ||!i.alg||t&&(!("alg"in i)||i.alg!==t))}catch{return!1}})(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),At=g("$ZodNumber",(e,t)=>{rt.init(e,t),e._zod.pattern=e._zod.bag.pattern??Pe,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch(a){}const i=n.value;if("number"==typeof i&&!Number.isNaN(i)&&Number.isFinite(i))return n;const o="number"==typeof i?Number.isNaN(i)?"NaN":Number.isFinite(i)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:i,inst:e,...o?{received:o}:{}}),n}}),It=g("$ZodNumberFormat",(e,t)=>{Fe.init(e,t),At.init(e,t)}),Nt=g("$ZodBoolean",(e,t)=>{rt.init(e,t),e._zod.pattern=Re,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Boolean(n.value)}catch(o){}const i=n.value;return"boolean"==typeof i||n.issues.push({expected:"boolean",code:"invalid_type",input:i,inst:e}),n}}),Ct=g("$ZodUnknown",(e,t)=>{rt.init(e,t),e._zod.parse=e=>e}),Pt=g("$ZodNever",(e,t)=>{rt.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:"never",code:"invalid_type",input:t.value,inst:e}),t)});function Rt(e,t,n){e.issues.length&&t.issues.push(...B(n,e.issues)),t.value[n]=e.value}var Ut=g("$ZodArray",(e,t)=>{rt.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;if(!Array.isArray(i))return n.issues.push({expected:"array",code:"invalid_type",input:i,inst:e}),n;n.value=Array(i.length);const o=[];for(let e=0;e<i.length;e++){const a=i[e],s=t.element._zod.run({value:a,issues:[]},r);s instanceof Promise?o.push(s.then(t=>Rt(t,n,e))):Rt(s,n,e)}return o.length?Promise.all(o).then(()=>n):n}});function jt(e,t,n,r,i,o){const a=n in r;if(e.issues.length){if(i&&o&&!a)return;t.issues.push(...B(n,e.issues))}a||i?void 0===e.value?a&&(t.value[n]=void 0):t.value[n]=e.value:e.issues.length||t.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[n]})}function qt(e){const t=Object.keys(e.shape);for(const i of t)if(!e.shape?.[i]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${i}": expected a Zod schema`);const n=(r=e.shape,Object.keys(r).filter(e=>"optional"===r[e]._zod.optin&&"optional"===r[e]._zod.optout));var r;return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function Dt(e,t,n,r,i,o){const a=[],s=i.keySet,u=i.catchall._zod,c=u.def.type,l="optional"===u.optin,d="optional"===u.optout;for(const p in t){if("__proto__"===p)continue;if(s.has(p))continue;if("never"===c){a.push(p);continue}const i=u.run({value:t[p],issues:[]},r);i instanceof Promise?e.push(i.then(e=>jt(e,n,p,t,l,d))):jt(i,n,p,t,l,d)}return a.length&&n.issues.push({code:"unrecognized_keys",keys:a,input:t,inst:o}),e.length?Promise.all(e).then(()=>n):n}var Zt=g("$ZodObject",(e,t)=>{if(rt.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){const e=t.shape;Object.defineProperty(t,"shape",{get:()=>{const n={...e};return Object.defineProperty(t,"shape",{value:n}),n}})}const n=z(()=>qt(t));$(e._zod,"propValues",()=>{const e=t.shape,n={};for(const t in e){const r=e[t]._zod;if(r.values){n[t]??(n[t]=new Set);for(const e of r.values)n[t].add(e)}}return n});const r=C,i=t.catchall;let o;e._zod.parse=(t,a)=>{o??(o=n.value);const s=t.value;if(!r(s))return t.issues.push({expected:"object",code:"invalid_type",input:s,inst:e}),t;t.value={};const u=[],c=o.shape;for(const e of o.keys){const n=c[e],r="optional"===n._zod.optin,i="optional"===n._zod.optout,o=n._zod.run({value:s[e],issues:[]},a);o instanceof Promise?u.push(o.then(n=>jt(n,t,e,s,r,i))):jt(o,t,e,s,r,i)}return i?Dt(u,s,t,a,n.value,e):u.length?Promise.all(u).then(()=>t):t}}),Mt=g("$ZodObjectJIT",(e,t)=>{Zt.init(e,t);const n=e._zod.parse,r=z(()=>qt(t));let i;const o=C,a=!b.jitless,s=a&&P.value,u=t.catchall;let c;e._zod.parse=(l,d)=>{c??(c=r.value);const p=l.value;return o(p)?a&&s&&!1===d?.async&&!0!==d.jitless?(i||(i=(e=>{const t=new tt(["shape","payload","ctx"]),n=r.value,i=e=>{const t=I(e);return`shape[${t}]._zod.run({ value: input[${t}], issues: [] }, ctx)`};t.write("const input = payload.value;");const o=Object.create(null);let a=0;for(const r of n.keys)o[r]="key_"+a++;t.write("const newResult = {};");for(const r of n.keys){const n=o[r],a=I(r),s=e[r],u="optional"===s?._zod?.optin,c="optional"===s?._zod?.optout;t.write(`const ${n} = ${i(r)};`),u&&c?t.write(`\n if (${n}.issues.length) {\n if (${a} in input) {\n payload.issues = payload.issues.concat(${n}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${a}, ...iss.path] : [${a}]\n })));\n }\n }\n \n if (${n}.value === undefined) {\n if (${a} in input) {\n newResult[${a}] = undefined;\n }\n } else {\n newResult[${a}] = ${n}.value;\n }\n \n `):u?t.write(`\n if (${n}.issues.length) {\n payload.issues = payload.issues.concat(${n}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${a}, ...iss.path] : [${a}]\n })));\n }\n \n if (${n}.value === undefined) {\n if (${a} in input) {\n newResult[${a}] = undefined;\n }\n } else {\n newResult[${a}] = ${n}.value;\n }\n \n `):t.write(`\n const ${n}_present = ${a} in input;\n if (${n}.issues.length) {\n payload.issues = payload.issues.concat(${n}.issues.map(iss => ({\n ...iss,\n path: iss.path ? [${a}, ...iss.path] : [${a}]\n })));\n }\n if (!${n}_present && !${n}.issues.length) {\n payload.issues.push({\n code: "invalid_type",\n expected: "nonoptional",\n input: undefined,\n path: [${a}]\n });\n }\n\n if (${n}_present) {\n if (${n}.value === undefined) {\n newResult[${a}] = undefined;\n } else {\n newResult[${a}] = ${n}.value;\n }\n }\n\n `)}t.write("payload.value = newResult;"),t.write("return payload;");const s=t.compile();return(t,n)=>s(e,t,n)})(t.shape)),l=i(l,d),u?Dt([],p,l,d,c,e):l):n(l,d):(l.issues.push({expected:"object",code:"invalid_type",input:p,inst:e}),l)}});function Lt(e,t,n,r){for(const o of e)if(0===o.issues.length)return t.value=o.value,t;const i=e.filter(e=>!L(e));return 1===i.length?(t.value=i[0].value,i[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>J(e,r,w())))}),t)}var Ft=g("$ZodUnion",(e,t)=>{rt.init(e,t),$(e._zod,"optin",()=>t.options.some(e=>"optional"===e._zod.optin)?"optional":void 0),$(e._zod,"optout",()=>t.options.some(e=>"optional"===e._zod.optout)?"optional":void 0),$(e._zod,"values",()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),$(e._zod,"pattern",()=>{if(t.options.every(e=>e._zod.pattern)){const e=t.options.map(e=>e._zod.pattern);return new RegExp(`^(${e.map(e=>x(e.source)).join("|")})$`)}});const n=1===t.options.length?t.options[0]._zod.run:null;e._zod.parse=(r,i)=>{if(n)return n(r,i);let o=!1;const a=[];for(const e of t.options){const t=e._zod.run({value:r.value,issues:[]},i);if(t instanceof Promise)a.push(t),o=!0;else{if(0===t.issues.length)return t;a.push(t)}}return o?Promise.all(a).then(t=>Lt(t,r,e,i)):Lt(a,r,e,i)}}),Bt=g("$ZodDiscriminatedUnion",(e,t)=>{t.inclusive=!1,Ft.init(e,t);const n=e._zod.parse;$(e._zod,"propValues",()=>{const e={};for(const n of t.options){const r=n._zod.propValues;if(!r||0===Object.keys(r).length)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(n)}"`);for(const[t,n]of Object.entries(r)){e[t]||(e[t]=new Set);for(const r of n)e[t].add(r)}}return e});const r=z(()=>{const e=t.options,n=new Map;for(const r of e){const e=r._zod.propValues?.[t.discriminator];if(!e||0===e.size)throw new Error(`Invalid discriminated union option at index "${t.options.indexOf(r)}"`);for(const t of e){if(n.has(t))throw new Error(`Duplicate discriminator value "${String(t)}"`);n.set(t,r)}}return n});e._zod.parse=(i,o)=>{const a=i.value;if(!C(a))return i.issues.push({code:"invalid_type",expected:"object",input:a,inst:e}),i;const s=r.value.get(a?.[t.discriminator]);return s?s._zod.run(i,o):t.unionFallback||"backward"===o.direction?n(i,o):(i.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:t.discriminator,options:Array.from(r.value.keys()),input:a,path:[t.discriminator],inst:e}),i)}}),Yt=g("$ZodIntersection",(e,t)=>{rt.init(e,t),e._zod.parse=(e,n)=>{const r=e.value,i=t.left._zod.run({value:r,issues:[]},n),o=t.right._zod.run({value:r,issues:[]},n);return i instanceof Promise||o instanceof Promise?Promise.all([i,o]).then(([t,n])=>Wt(e,t,n)):Wt(e,i,o)}});function Jt(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e===+t)return{valid:!0,data:e};if(R(e)&&R(t)){const n=Object.keys(t),r=Object.keys(e).filter(e=>-1!==n.indexOf(e)),i={...e,...t};for(const o of r){const n=Jt(e[o],t[o]);if(!n.valid)return{valid:!1,mergeErrorPath:[o,...n.mergeErrorPath]};i[o]=n.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const n=[];for(let r=0;r<e.length;r++){const i=Jt(e[r],t[r]);if(!i.valid)return{valid:!1,mergeErrorPath:[r,...i.mergeErrorPath]};n.push(i.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function Wt(e,t,n){const r=new Map;let i;for(const s of t.issues)if("unrecognized_keys"===s.code){i??(i=s);for(const e of s.keys)r.has(e)||r.set(e,{}),r.get(e).l=!0}else e.issues.push(s);for(const s of n.issues)if("unrecognized_keys"===s.code)for(const e of s.keys)r.has(e)||r.set(e,{}),r.get(e).r=!0;else e.issues.push(s);const o=[...r].filter(([,e])=>e.l&&e.r).map(([e])=>e);if(o.length&&i&&e.issues.push({...i,keys:o}),L(e))return e;const a=Jt(t.value,n.value);if(!a.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(a.mergeErrorPath)}`);return e.value=a.data,e}var Vt=g("$ZodRecord",(e,t)=>{rt.init(e,t),e._zod.parse=(n,r)=>{const i=n.value;if(!R(i))return n.issues.push({expected:"record",code:"invalid_type",input:i,inst:e}),n;const o=[],a=t.keyType._zod.values;if(a){n.value={};const s=new Set;for(const c of a)if("string"==typeof c||"number"==typeof c||"symbol"==typeof c){s.add("number"==typeof c?c.toString():c);const a=t.keyType._zod.run({value:c,issues:[]},r);if(a instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if(a.issues.length){n.issues.push({code:"invalid_key",origin:"record",issues:a.issues.map(e=>J(e,r,w())),input:c,path:[c],inst:e});continue}const u=a.value,l=t.valueType._zod.run({value:i[c],issues:[]},r);l instanceof Promise?o.push(l.then(e=>{e.issues.length&&n.issues.push(...B(c,e.issues)),n.value[u]=e.value})):(l.issues.length&&n.issues.push(...B(c,l.issues)),n.value[u]=l.value)}let u;for(const e in i)s.has(e)||(u=u??[],u.push(e));u&&u.length>0&&n.issues.push({code:"unrecognized_keys",input:i,inst:e,keys:u})}else{n.value={};for(const a of Reflect.ownKeys(i)){if("__proto__"===a)continue;if(!Object.prototype.propertyIsEnumerable.call(i,a))continue;let s=t.keyType._zod.run({value:a,issues:[]},r);if(s instanceof Promise)throw new Error("Async schemas not supported in object keys currently");if("string"==typeof a&&Pe.test(a)&&s.issues.length){const e=t.keyType._zod.run({value:Number(a),issues:[]},r);if(e instanceof Promise)throw new Error("Async schemas not supported in object keys currently");0===e.issues.length&&(s=e)}if(s.issues.length){"loose"===t.mode?n.value[a]=i[a]:n.issues.push({code:"invalid_key",origin:"record",issues:s.issues.map(e=>J(e,r,w())),input:a,path:[a],inst:e});continue}const u=t.valueType._zod.run({value:i[a],issues:[]},r);u instanceof Promise?o.push(u.then(e=>{e.issues.length&&n.issues.push(...B(a,e.issues)),n.value[s.value]=e.value})):(u.issues.length&&n.issues.push(...B(a,u.issues)),n.value[s.value]=u.value)}}return o.length?Promise.all(o).then(()=>n):n}}),Gt=g("$ZodEnum",(e,t)=>{rt.init(e,t);const n=S(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=new RegExp(`^(${n.filter(e=>j.has(typeof e)).map(e=>"string"==typeof e?q(e):e.toString()).join("|")})$`),e._zod.parse=(t,i)=>{const o=t.value;return r.has(o)||t.issues.push({code:"invalid_value",values:n,input:o,inst:e}),t}}),Ht=g("$ZodLiteral",(e,t)=>{if(rt.init(e,t),0===t.values.length)throw new Error("Cannot create literal schema with no valid values");const n=new Set(t.values);e._zod.values=n,e._zod.pattern=new RegExp(`^(${t.values.map(e=>"string"==typeof e?q(e):e?q(e.toString()):String(e)).join("|")})$`),e._zod.parse=(r,i)=>{const o=r.value;return n.has(o)||r.issues.push({code:"invalid_value",values:t.values,input:o,inst:e}),r}}),Kt=g("$ZodTransform",(e,t)=>{rt.init(e,t),e._zod.optin="optional",e._zod.parse=(n,r)=>{if("backward"===r.direction)throw new v(e.constructor.name);const i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(e=>(n.value=e,n.fallback=!0,n));if(i instanceof Promise)throw new y;return n.value=i,n.fallback=!0,n}});function Xt(e,t){return void 0===t&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}var Qt=g("$ZodOptional",(e,t)=>{rt.init(e,t),e._zod.optin="optional",e._zod.optout="optional",$(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),$(e._zod,"pattern",()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${x(e.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if("optional"===t.innerType._zod.optin){const r=e.value,i=t.innerType._zod.run(e,n);return i instanceof Promise?i.then(e=>Xt(e,r)):Xt(i,r)}return void 0===e.value?e:t.innerType._zod.run(e,n)}}),en=g("$ZodExactOptional",(e,t)=>{Qt.init(e,t),$(e._zod,"values",()=>t.innerType._zod.values),$(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(e,n)=>t.innerType._zod.run(e,n)}),tn=g("$ZodNullable",(e,t)=>{rt.init(e,t),$(e._zod,"optin",()=>t.innerType._zod.optin),$(e._zod,"optout",()=>t.innerType._zod.optout),$(e._zod,"pattern",()=>{const e=t.innerType._zod.pattern;return e?new RegExp(`^(${x(e.source)}|null)$`):void 0}),$(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>null===e.value?e:t.innerType._zod.run(e,n)}),nn=g("$ZodDefault",(e,t)=>{rt.init(e,t),e._zod.optin="optional",$(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);if(void 0===e.value)return e.value=t.defaultValue,e;const r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>rn(e,t)):rn(r,t)}});function rn(e,t){return void 0===e.value&&(e.value=t.defaultValue),e}var on=g("$ZodPrefault",(e,t)=>{rt.init(e,t),e._zod.optin="optional",$(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>("backward"===n.direction||void 0===e.value&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),an=g("$ZodNonOptional",(e,t)=>{rt.init(e,t),$(e._zod,"values",()=>{const e=t.innerType._zod.values;return e?new Set([...e].filter(e=>void 0!==e)):void 0}),e._zod.parse=(n,r)=>{const i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(t=>sn(t,e)):sn(i,e)}});function sn(e,t){return e.issues.length||void 0!==e.value||e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}var un=g("$ZodCatch",(e,t)=>{rt.init(e,t),e._zod.optin="optional",$(e._zod,"optout",()=>t.innerType._zod.optout),$(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);const r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(r=>(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>J(e,n,w()))},input:e.value}),e.issues=[],e.fallback=!0),e)):(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>J(e,n,w()))},input:e.value}),e.issues=[],e.fallback=!0),e)}}),cn=g("$ZodPipe",(e,t)=>{rt.init(e,t),$(e._zod,"values",()=>t.in._zod.values),$(e._zod,"optin",()=>t.in._zod.optin),$(e._zod,"optout",()=>t.out._zod.optout),$(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if("backward"===n.direction){const r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>ln(e,t.in,n)):ln(r,t.in,n)}const r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>ln(e,t.out,n)):ln(r,t.out,n)}});function ln(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues,fallback:e.fallback},n)}var dn=g("$ZodReadonly",(e,t)=>{rt.init(e,t),$(e._zod,"propValues",()=>t.innerType._zod.propValues),$(e._zod,"values",()=>t.innerType._zod.values),$(e._zod,"optin",()=>t.innerType?._zod?.optin),$(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(e,n)=>{if("backward"===n.direction)return t.innerType._zod.run(e,n);const r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(pn):pn(r)}});function pn(e){return e.value=Object.freeze(e.value),e}var fn,mn=g("$ZodCustom",(e,t)=>{qe.init(e,t),rt.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{const r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(t=>hn(t,n,r,e));hn(i,n,r,e)}});function hn(e,t,n,r){if(!e){const e={code:"custom",input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(V(e))}}var _n=class{constructor(){this._map=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 r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};(fn=globalThis).__zod_globalRegistry??(fn.__zod_globalRegistry=new _n);var gn=globalThis.__zod_globalRegistry;function yn(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...Z(t)})}function vn(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...Z(t)})}function bn(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...Z(t)})}function wn(e,t){return new Ze({check:"less_than",...Z(t),value:e,inclusive:!1})}function Sn(e,t){return new Ze({check:"less_than",...Z(t),value:e,inclusive:!0})}function kn(e,t){return new Me({check:"greater_than",...Z(t),value:e,inclusive:!1})}function zn(e,t){return new Me({check:"greater_than",...Z(t),value:e,inclusive:!0})}function On(e,t){return new Le({check:"multiple_of",...Z(t),value:e})}function xn(e,t){return new Be({check:"max_length",...Z(t),maximum:e})}function En(e,t){return new Ye({check:"min_length",...Z(t),minimum:e})}function $n(e,t){return new Je({check:"length_equals",...Z(t),length:e})}function Tn(e){return new et({check:"overwrite",tx:e})}function An(e,t){const n=new qe({check:"custom",...Z(t)});return n._zod.check=e,n}function In(e){let t=e?.target??"draft-2020-12";return"draft-4"===t&&(t="draft-04"),"draft-7"===t&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??gn,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 Nn(e,t,n={path:[],schemaPath:[]}){var r;const i=e._zod.def,o=t.seen.get(e);if(o)return o.count++,n.schemaPath.includes(e)&&(o.cycle=n.path),o.schema;const a={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,a);const s=e._zod.toJSONSchema?.();if(s)a.schema=s;else{const r={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,a.schema,r);else{const n=a.schema,o=t.processors[i.type];if(!o)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);o(e,t,n,r)}const o=e._zod.parent;o&&(a.ref||(a.ref=o),Nn(o,t,r),t.seen.get(o).isParent=!0)}const u=t.metadataRegistry.get(e);return u&&Object.assign(a.schema,u),"input"===t.io&&Rn(e)&&(delete a.schema.examples,delete a.schema.default),"input"===t.io&&"_prefault"in a.schema&&((r=a.schema).default??(r.default=a.schema._prefault)),delete a.schema._prefault,t.seen.get(e).schema}function Cn(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const r=new Map;for(const o of e.seen.entries()){const t=e.metadataRegistry.get(o[0])?.id;if(t){const e=r.get(t);if(e&&e!==o[0])throw new Error(`Duplicate schema id "${t}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(t,o[0])}}const i=t=>{if(t[1].schema.$ref)return;const r=t[1],{ref:i,defId:o}=(t=>{const r="draft-2020-12"===e.target?"$defs":"definitions";if(e.external){const n=e.external.registry.get(t[0])?.id,i=e.external.uri??(e=>e);if(n)return{ref:i(n)};const o=t[1].defId??t[1].schema.id??"schema"+e.counter++;return t[1].defId=o,{defId:o,ref:`${i("__shared")}#/${r}/${o}`}}if(t[1]===n)return{ref:"#"};const i=`#/${r}/`,o=t[1].schema.id??"__schema"+e.counter++;return{defId:o,ref:i+o}})(t);r.def={...r.schema},o&&(r.defId=o);const a=r.schema;for(const e in a)delete a[e];a.$ref=i};if("throw"===e.cycles)for(const o of e.seen.entries()){const e=o[1];if(e.cycle)throw new Error(`Cycle detected: #/${e.cycle?.join("/")}/<root>\n\nSet the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const o of e.seen.entries()){const n=o[1];if(t!==o[0]){if(e.external){const n=e.external.registry.get(o[0])?.id;if(t!==o[0]&&n){i(o);continue}}(e.metadataRegistry.get(o[0])?.id||n.cycle||n.count>1&&"ref"===e.reused)&&i(o)}else i(o)}}function Pn(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const r=t=>{const n=e.seen.get(t);if(null===n.ref)return;const i=n.def??n.schema,o={...i},a=n.ref;if(n.ref=null,a){r(a);const n=e.seen.get(a),s=n.schema;if(!s.$ref||"draft-07"!==e.target&&"draft-04"!==e.target&&"openapi-3.0"!==e.target?Object.assign(i,s):(i.allOf=i.allOf??[],i.allOf.push(s)),Object.assign(i,o),t._zod.parent===a)for(const e in i)"$ref"!==e&&"allOf"!==e&&(e in o||delete i[e]);if(s.$ref&&n.def)for(const e in i)"$ref"!==e&&"allOf"!==e&&e in n.def&&JSON.stringify(i[e])===JSON.stringify(n.def[e])&&delete i[e]}const s=t._zod.parent;if(s&&s!==a){r(s);const t=e.seen.get(s);if(t?.schema.$ref&&(i.$ref=t.schema.$ref,t.def))for(const e in i)"$ref"!==e&&"allOf"!==e&&e in t.def&&JSON.stringify(i[e])===JSON.stringify(t.def[e])&&delete i[e]}e.override({zodSchema:t,jsonSchema:i,path:n.path??[]})};for(const u of[...e.seen.entries()].reverse())r(u[0]);const i={};if("draft-2020-12"===e.target?i.$schema="https://json-schema.org/draft/2020-12/schema":"draft-07"===e.target?i.$schema="http://json-schema.org/draft-07/schema#":"draft-04"===e.target?i.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const n=e.external.registry.get(t)?.id;if(!n)throw new Error("Schema is missing an `id` property");i.$id=e.external.uri(n)}Object.assign(i,n.def??n.schema);const o=e.metadataRegistry.get(t)?.id;void 0!==o&&i.id===o&&delete i.id;const a=e.external?.defs??{};for(const u of e.seen.entries()){const e=u[1];e.def&&e.defId&&(e.def.id===e.defId&&delete e.def.id,a[e.defId]=e.def)}e.external||Object.keys(a).length>0&&("draft-2020-12"===e.target?i.$defs=a:i.definitions=a);try{const n=JSON.parse(JSON.stringify(i));return Object.defineProperty(n,"~standard",{value:{...t["~standard"],jsonSchema:{input:Un(t,"input",e.processors),output:Un(t,"output",e.processors)}},enumerable:!1,writable:!1}),n}catch(s){throw new Error("Error converting schema to JSON.")}}function Rn(e,t){const n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);const r=e._zod.def;if("transform"===r.type)return!0;if("array"===r.type)return Rn(r.element,n);if("set"===r.type)return Rn(r.valueType,n);if("lazy"===r.type)return Rn(r.getter(),n);if("promise"===r.type||"optional"===r.type||"nonoptional"===r.type||"nullable"===r.type||"readonly"===r.type||"default"===r.type||"prefault"===r.type)return Rn(r.innerType,n);if("intersection"===r.type)return Rn(r.left,n)||Rn(r.right,n);if("record"===r.type||"map"===r.type)return Rn(r.keyType,n)||Rn(r.valueType,n);if("pipe"===r.type)return!!e._zod.traits.has("$ZodCodec")||(Rn(r.in,n)||Rn(r.out,n));if("object"===r.type){for(const e in r.shape)if(Rn(r.shape[e],n))return!0;return!1}if("union"===r.type){for(const e of r.options)if(Rn(e,n))return!0;return!1}if("tuple"===r.type){for(const e of r.items)if(Rn(e,n))return!0;return!(!r.rest||!Rn(r.rest,n))}return!1}var Un=(e,t,n={})=>r=>{const{libraryOptions:i,target:o}=r??{},a=In({...i??{},target:o,io:t,processors:n});return Nn(e,a),Cn(a,e),Pn(a,e)},jn={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},qn=(e,t,n,r)=>{const i=e._zod.def;Nn(i.innerType,t,r);t.seen.get(e).ref=i.innerType},Dn=g("ZodISODateTime",(e,t)=>{gt.init(e,t),fr.init(e,t)});function Zn(e){return function(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...Z(t)})}(Dn,e)}var Mn=g("ZodISODate",(e,t)=>{yt.init(e,t),fr.init(e,t)});function Ln(e){return function(e,t){return new e({type:"string",format:"date",check:"string_format",...Z(t)})}(Mn,e)}var Fn=g("ZodISOTime",(e,t)=>{vt.init(e,t),fr.init(e,t)});function Bn(e){return function(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...Z(t)})}(Fn,e)}var Yn=g("ZodISODuration",(e,t)=>{bt.init(e,t),fr.init(e,t)});function Jn(e){return function(e,t){return new e({type:"string",format:"duration",check:"string_format",...Z(t)})}(Yn,e)}var Wn=(e,t)=>{H.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:t=>function(e,t=e=>e.message){const n={_errors:[]},r=(e,i=[])=>{for(const o of e.issues)if("invalid_union"===o.code&&o.errors.length)o.errors.map(e=>r({issues:e},[...i,...o.path]));else if("invalid_key"===o.code)r({issues:o.issues},[...i,...o.path]);else if("invalid_element"===o.code)r({issues:o.issues},[...i,...o.path]);else{const e=[...i,...o.path];if(0===e.length)n._errors.push(t(o));else{let r=n,i=0;for(;i<e.length;){const n=e[i];i!==e.length-1?r[n]=r[n]||{_errors:[]}:(r[n]=r[n]||{_errors:[]},r[n]._errors.push(t(o))),r=r[n],i++}}}};return r(e),n}(e,t)},flatten:{value:t=>function(e,t=e=>e.message){const n={},r=[];for(const i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,k,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,k,2)}},isEmpty:{get:()=>0===e.issues.length}})},Vn=g("ZodError",Wn,{Parent:Error}),Gn=X(Vn),Hn=Q(Vn),Kn=ee(Vn),Xn=ne(Vn),Qn=ie(Vn),er=oe(Vn),tr=ae(Vn),nr=se(Vn),rr=ue(Vn),ir=ce(Vn),or=le(Vn),ar=de(Vn),sr=new WeakMap;function ur(e,t,n){const r=Object.getPrototypeOf(e);let i=sr.get(r);if(i||(i=new Set,sr.set(r,i)),!i.has(t)){i.add(t);for(const e in n){const t=n[e];Object.defineProperty(r,e,{configurable:!0,enumerable:!1,get(){const n=t.bind(this);return Object.defineProperty(this,e,{configurable:!0,writable:!0,enumerable:!0,value:n}),n},set(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,enumerable:!0,value:t})}})}}}var cr=g("ZodType",(e,t)=>(rt.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:Un(e,"input"),output:Un(e,"output")}}),e.toJSONSchema=((e,t={})=>n=>{const r=In({...n,processors:t});return Nn(e,r),Cn(r,e),Pn(r,e)})(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.parse=(t,n)=>Gn(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>Kn(e,t,n),e.parseAsync=async(t,n)=>Hn(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>Xn(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>Qn(e,t,n),e.decode=(t,n)=>er(e,t,n),e.encodeAsync=async(t,n)=>tr(e,t,n),e.decodeAsync=async(t,n)=>nr(e,t,n),e.safeEncode=(t,n)=>rr(e,t,n),e.safeDecode=(t,n)=>ir(e,t,n),e.safeEncodeAsync=async(t,n)=>or(e,t,n),e.safeDecodeAsync=async(t,n)=>ar(e,t,n),ur(e,"ZodType",{check(...e){const t=this.def;return this.clone(A(t,{checks:[...t.checks??[],...e.map(e=>"function"==typeof e?{_zod:{check:e,def:{check:"custom"},onattach:[]}}:e)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return D(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(function(e,t={}){return function(e,t,n){return new e({type:"custom",check:"custom",fn:t,...Z(n)})}(yi,e,t)}(e,t))},superRefine(e,t){return this.check(function(e,t){return function(e,t){const n=An(t=>(t.addIssue=e=>{if("string"==typeof e)t.issues.push(V(e,t.value,n._zod.def));else{const r=e;r.fatal&&(r.continue=!1),r.code??(r.code="custom"),r.input??(r.input=t.value),r.inst??(r.inst=n),r.continue??(r.continue=!n._zod.def.abort),t.issues.push(V(r))}},e(t.value,t)),t);return n}(e,t)}(e,t))},overwrite(e){return this.check(Tn(e))},optional(){return si(this)},exactOptional(){return new ui({type:"optional",innerType:this})},nullable(){return li(this)},nullish(){return si(li(this))},nonoptional(e){return function(e,t){return new fi({type:"nonoptional",innerType:e,...Z(t)})}(this,e)},array(){return Yr(this)},or(e){return Gr([this,e])},and(e){return new Xr({type:"intersection",left:this,right:e})},transform(e){return _i(this,new oi({type:"transform",transform:e}))},default(e){return t=e,new di({type:"default",innerType:this,get defaultValue(){return"function"==typeof t?t():U(t)}});var t},prefault(e){return t=e,new pi({type:"prefault",innerType:this,get defaultValue(){return"function"==typeof t?t():U(t)}});var t},catch(e){return new mi({type:"catch",innerType:this,catchValue:"function"==typeof(t=e)?t:()=>t});var t},pipe(e){return _i(this,e)},readonly(){return new gi({type:"readonly",innerType:this})},describe(e){const t=this.clone();return gn.add(t,{description:e}),t},meta(...e){if(0===e.length)return gn.get(this);const t=this.clone();return gn.add(t,e[0]),t},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e){return e(this)}}),Object.defineProperty(e,"description",{get:()=>gn.get(e)?.description,configurable:!0}),e)),lr=g("_ZodString",(e,t)=>{it.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n)=>{const r=n;r.type="string";const{minimum:i,maximum:o,format:a,patterns:s,contentEncoding:u}=e._zod.bag;if("number"==typeof i&&(r.minLength=i),"number"==typeof o&&(r.maxLength=o),a&&(r.format=jn[a]??a,""===r.format&&delete r.format,"time"===a&&delete r.format),u&&(r.contentEncoding=u),s&&s.size>0){const e=[...s];1===e.length?r.pattern=e[0].source:e.length>1&&(r.allOf=[...e.map(e=>({..."draft-07"===t.target||"draft-04"===t.target||"openapi-3.0"===t.target?{type:"string"}:{},pattern:e.source}))])}})(e,t,n);const n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,ur(e,"_ZodString",{regex(...e){return this.check(function(e,t){return new Ve({check:"string_format",format:"regex",...Z(t),pattern:e})}(...e))},includes(...e){return this.check(function(e,t){return new Ke({check:"string_format",format:"includes",...Z(t),includes:e})}(...e))},startsWith(...e){return this.check(function(e,t){return new Xe({check:"string_format",format:"starts_with",...Z(t),prefix:e})}(...e))},endsWith(...e){return this.check(function(e,t){return new Qe({check:"string_format",format:"ends_with",...Z(t),suffix:e})}(...e))},min(...e){return this.check(En(...e))},max(...e){return this.check(xn(...e))},length(...e){return this.check($n(...e))},nonempty(...e){return this.check(En(1,...e))},lowercase(e){return this.check(function(e){return new Ge({check:"string_format",format:"lowercase",...Z(e)})}(e))},uppercase(e){return this.check(function(e){return new He({check:"string_format",format:"uppercase",...Z(e)})}(e))},trim(){return this.check(Tn(e=>e.trim()))},normalize(...e){return this.check(function(e){return Tn(t=>t.normalize(e))}(...e))},toLowerCase(){return this.check(Tn(e=>e.toLowerCase()))},toUpperCase(){return this.check(Tn(e=>e.toUpperCase()))},slugify(){return this.check(Tn(e=>function(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}(e)))}})}),dr=g("ZodString",(e,t)=>{it.init(e,t),lr.init(e,t),e.email=t=>e.check(yn(mr,t)),e.url=t=>e.check(bn(yr,t)),e.jwt=t=>e.check(function(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...Z(t)})}(Cr,t)),e.emoji=t=>e.check(function(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...Z(t)})}(vr,t)),e.guid=t=>e.check(vn(_r,t)),e.uuid=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...Z(t)})}(gr,t)),e.uuidv4=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...Z(t)})}(gr,t)),e.uuidv6=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...Z(t)})}(gr,t)),e.uuidv7=t=>e.check(function(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...Z(t)})}(gr,t)),e.nanoid=t=>e.check(function(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...Z(t)})}(br,t)),e.guid=t=>e.check(vn(_r,t)),e.cuid=t=>e.check(function(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...Z(t)})}(wr,t)),e.cuid2=t=>e.check(function(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...Z(t)})}(Sr,t)),e.ulid=t=>e.check(function(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...Z(t)})}(kr,t)),e.base64=t=>e.check(function(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...Z(t)})}(Ar,t)),e.base64url=t=>e.check(function(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...Z(t)})}(Ir,t)),e.xid=t=>e.check(function(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...Z(t)})}(zr,t)),e.ksuid=t=>e.check(function(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...Z(t)})}(Or,t)),e.ipv4=t=>e.check(function(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...Z(t)})}(xr,t)),e.ipv6=t=>e.check(function(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...Z(t)})}(Er,t)),e.cidrv4=t=>e.check(function(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...Z(t)})}($r,t)),e.cidrv6=t=>e.check(function(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...Z(t)})}(Tr,t)),e.e164=t=>e.check(function(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...Z(t)})}(Nr,t)),e.datetime=t=>e.check(Zn(t)),e.date=t=>e.check(Ln(t)),e.time=t=>e.check(Bn(t)),e.duration=t=>e.check(Jn(t))});function pr(e){return function(e,t){return new e({type:"string",...Z(t)})}(dr,e)}var fr=g("ZodStringFormat",(e,t)=>{ot.init(e,t),lr.init(e,t)}),mr=g("ZodEmail",(e,t)=>{ut.init(e,t),fr.init(e,t)});function hr(e){return yn(mr,e)}var _r=g("ZodGUID",(e,t)=>{at.init(e,t),fr.init(e,t)}),gr=g("ZodUUID",(e,t)=>{st.init(e,t),fr.init(e,t)}),yr=g("ZodURL",(e,t)=>{ct.init(e,t),fr.init(e,t)});var vr=g("ZodEmoji",(e,t)=>{lt.init(e,t),fr.init(e,t)}),br=g("ZodNanoID",(e,t)=>{dt.init(e,t),fr.init(e,t)}),wr=g("ZodCUID",(e,t)=>{pt.init(e,t),fr.init(e,t)}),Sr=g("ZodCUID2",(e,t)=>{ft.init(e,t),fr.init(e,t)}),kr=g("ZodULID",(e,t)=>{mt.init(e,t),fr.init(e,t)}),zr=g("ZodXID",(e,t)=>{ht.init(e,t),fr.init(e,t)}),Or=g("ZodKSUID",(e,t)=>{_t.init(e,t),fr.init(e,t)}),xr=g("ZodIPv4",(e,t)=>{wt.init(e,t),fr.init(e,t)}),Er=g("ZodIPv6",(e,t)=>{St.init(e,t),fr.init(e,t)}),$r=g("ZodCIDRv4",(e,t)=>{kt.init(e,t),fr.init(e,t)}),Tr=g("ZodCIDRv6",(e,t)=>{zt.init(e,t),fr.init(e,t)}),Ar=g("ZodBase64",(e,t)=>{xt.init(e,t),fr.init(e,t)}),Ir=g("ZodBase64URL",(e,t)=>{Et.init(e,t),fr.init(e,t)}),Nr=g("ZodE164",(e,t)=>{$t.init(e,t),fr.init(e,t)}),Cr=g("ZodJWT",(e,t)=>{Tt.init(e,t),fr.init(e,t)}),Pr=g("ZodNumber",(e,t)=>{At.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n)=>{const r=n,{minimum:i,maximum:o,format:a,multipleOf:s,exclusiveMaximum:u,exclusiveMinimum:c}=e._zod.bag;"string"==typeof a&&a.includes("int")?r.type="integer":r.type="number";const l="number"==typeof c&&c>=(i??Number.NEGATIVE_INFINITY),d="number"==typeof u&&u<=(o??Number.POSITIVE_INFINITY),p="draft-04"===t.target||"openapi-3.0"===t.target;l?p?(r.minimum=c,r.exclusiveMinimum=!0):r.exclusiveMinimum=c:"number"==typeof i&&(r.minimum=i),d?p?(r.maximum=u,r.exclusiveMaximum=!0):r.exclusiveMaximum=u:"number"==typeof o&&(r.maximum=o),"number"==typeof s&&(r.multipleOf=s)})(e,t,n),ur(e,"ZodNumber",{gt(e,t){return this.check(kn(e,t))},gte(e,t){return this.check(zn(e,t))},min(e,t){return this.check(zn(e,t))},lt(e,t){return this.check(wn(e,t))},lte(e,t){return this.check(Sn(e,t))},max(e,t){return this.check(Sn(e,t))},int(e){return this.check(jr(e))},safe(e){return this.check(jr(e))},positive(e){return this.check(kn(0,e))},nonnegative(e){return this.check(zn(0,e))},negative(e){return this.check(wn(0,e))},nonpositive(e){return this.check(Sn(0,e))},multipleOf(e,t){return this.check(On(e,t))},step(e,t){return this.check(On(e,t))},finite(){return this}});const n=e._zod.bag;e.minValue=Math.max(n.minimum??Number.NEGATIVE_INFINITY,n.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(n.maximum??Number.POSITIVE_INFINITY,n.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(n.format??"").includes("int")||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function Rr(e){return function(e,t){return new e({type:"number",checks:[],...Z(t)})}(Pr,e)}var Ur=g("ZodNumberFormat",(e,t)=>{It.init(e,t),Pr.init(e,t)});function jr(e){return function(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...Z(t)})}(Ur,e)}var qr=g("ZodBoolean",(e,t)=>{Nt.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(e,t,n)=>((e,t,n)=>{n.type="boolean"})(0,0,t)});function Dr(e){return function(e,t){return new e({type:"boolean",...Z(t)})}(qr,e)}var Zr=g("ZodUnknown",(e,t)=>{Ct.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(e,t,n)=>{}});function Mr(){return new Zr({type:"unknown"})}var Lr=g("ZodNever",(e,t)=>{Pt.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(e,t,n)=>((e,t,n)=>{n.not={}})(0,0,t)});function Fr(e){return function(e,t){return new e({type:"never",...Z(t)})}(Lr,e)}var Br=g("ZodArray",(e,t)=>{Ut.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=n,o=e._zod.def,{minimum:a,maximum:s}=e._zod.bag;"number"==typeof a&&(i.minItems=a),"number"==typeof s&&(i.maxItems=s),i.type="array",i.items=Nn(o.element,t,{...r,path:[...r.path,"items"]})})(e,t,n,r),e.element=t.element,ur(e,"ZodArray",{min(e,t){return this.check(En(e,t))},nonempty(e){return this.check(En(1,e))},max(e,t){return this.check(xn(e,t))},length(e,t){return this.check($n(e,t))},unwrap(){return this.element}})});function Yr(e,t){return function(e,t,n){return new e({type:"array",element:t,...Z(n)})}(Br,e,t)}var Jr=g("ZodObject",(e,t)=>{Mt.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=n,o=e._zod.def;i.type="object",i.properties={};const a=o.shape;for(const c in a)i.properties[c]=Nn(a[c],t,{...r,path:[...r.path,"properties",c]});const s=new Set(Object.keys(a)),u=new Set([...s].filter(e=>{const n=o.shape[e]._zod;return"input"===t.io?void 0===n.optin:void 0===n.optout}));u.size>0&&(i.required=Array.from(u)),"never"===o.catchall?._zod.def.type?i.additionalProperties=!1:o.catchall?o.catchall&&(i.additionalProperties=Nn(o.catchall,t,{...r,path:[...r.path,"additionalProperties"]})):"output"===t.io&&(i.additionalProperties=!1)})(e,t,n,r),$(e,"shape",()=>t.shape),ur(e,"ZodObject",{keyof(){return ni(Object.keys(this._zod.def.shape))},catchall(e){return this.clone({...this._zod.def,catchall:e})},passthrough(){return this.clone({...this._zod.def,catchall:Mr()})},loose(){return this.clone({...this._zod.def,catchall:Mr()})},strict(){return this.clone({...this._zod.def,catchall:Fr()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(e){return function(e,t){if(!R(t))throw new Error("Invalid input to extend: expected a plain object");const n=e._zod.def.checks;if(n&&n.length>0){const n=e._zod.def.shape;for(const e in t)if(void 0!==Object.getOwnPropertyDescriptor(n,e))throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return D(e,A(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return T(this,"shape",n),n}}))}(this,e)},safeExtend(e){return function(e,t){if(!R(t))throw new Error("Invalid input to safeExtend: expected a plain object");return D(e,A(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return T(this,"shape",n),n}}))}(this,e)},merge(e){return function(e,t){if(e._zod.def.checks?.length)throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");return D(e,A(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t._zod.def.shape};return T(this,"shape",n),n},get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]}))}(this,e)},pick(e){return function(e,t){const n=e._zod.def,r=n.checks;if(r&&r.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");return D(e,A(e._zod.def,{get shape(){const e={};for(const r in t){if(!(r in n.shape))throw new Error(`Unrecognized key: "${r}"`);t[r]&&(e[r]=n.shape[r])}return T(this,"shape",e),e},checks:[]}))}(this,e)},omit(e){return function(e,t){const n=e._zod.def,r=n.checks;if(r&&r.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");return D(e,A(e._zod.def,{get shape(){const r={...e._zod.def.shape};for(const e in t){if(!(e in n.shape))throw new Error(`Unrecognized key: "${e}"`);t[e]&&delete r[e]}return T(this,"shape",r),r},checks:[]}))}(this,e)},partial(...e){return function(e,t,n){const r=t._zod.def.checks;if(r&&r.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");return D(t,A(t._zod.def,{get shape(){const r=t._zod.def.shape,i={...r};if(n)for(const t in n){if(!(t in r))throw new Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=e?new e({type:"optional",innerType:r[t]}):r[t])}else for(const t in r)i[t]=e?new e({type:"optional",innerType:r[t]}):r[t];return T(this,"shape",i),i},checks:[]}))}(ai,this,e[0])},required(...e){return t=fi,n=this,r=e[0],D(n,A(n._zod.def,{get shape(){const e=n._zod.def.shape,i={...e};if(r)for(const n in r){if(!(n in i))throw new Error(`Unrecognized key: "${n}"`);r[n]&&(i[n]=new t({type:"nonoptional",innerType:e[n]}))}else for(const n in e)i[n]=new t({type:"nonoptional",innerType:e[n]});return T(this,"shape",i),i}}));var t,n,r}})});function Wr(e,t){return new Jr({type:"object",shape:e??{},...Z(t)})}var Vr=g("ZodUnion",(e,t)=>{Ft.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=e._zod.def,o=!1===i.inclusive,a=i.options.map((e,n)=>Nn(e,t,{...r,path:[...r.path,o?"oneOf":"anyOf",n]}));o?n.oneOf=a:n.anyOf=a})(e,t,n,r),e.options=t.options});function Gr(e,t){return new Vr({type:"union",options:e,...Z(t)})}var Hr=g("ZodDiscriminatedUnion",(e,t)=>{Vr.init(e,t),Bt.init(e,t)});function Kr(e,t,n){return new Hr({type:"union",options:t,discriminator:e,...Z(n)})}var Xr=g("ZodIntersection",(e,t)=>{Yt.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=e._zod.def,o=Nn(i.left,t,{...r,path:[...r.path,"allOf",0]}),a=Nn(i.right,t,{...r,path:[...r.path,"allOf",1]}),s=e=>"allOf"in e&&1===Object.keys(e).length;n.allOf=[...s(o)?o.allOf:[o],...s(a)?a.allOf:[a]]})(e,t,n,r)});var Qr=g("ZodRecord",(e,t)=>{Vt.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=n,o=e._zod.def;i.type="object";const a=o.keyType,s=a._zod.bag?.patterns;if("loose"===o.mode&&s&&s.size>0){const e=Nn(o.valueType,t,{...r,path:[...r.path,"patternProperties","*"]});i.patternProperties={};for(const t of s)i.patternProperties[t.source]=e}else"draft-07"!==t.target&&"draft-2020-12"!==t.target||(i.propertyNames=Nn(o.keyType,t,{...r,path:[...r.path,"propertyNames"]})),i.additionalProperties=Nn(o.valueType,t,{...r,path:[...r.path,"additionalProperties"]});const u=a._zod.values;if(u){const e=[...u].filter(e=>"string"==typeof e||"number"==typeof e);e.length>0&&(i.required=e)}})(e,t,n,r),e.keyType=t.keyType,e.valueType=t.valueType});function ei(e,t,n){return t&&t._zod?new Qr({type:"record",keyType:e,valueType:t,...Z(n)}):new Qr({type:"record",keyType:pr(),valueType:e,...Z(t)})}var ti=g("ZodEnum",(e,t)=>{Gt.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n)=>{const r=S(e._zod.def.entries);r.every(e=>"number"==typeof e)&&(n.type="number"),r.every(e=>"string"==typeof e)&&(n.type="string"),n.enum=r})(e,0,n),e.enum=t.entries,e.options=Object.values(t.entries);const n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{const i={};for(const o of e){if(!n.has(o))throw new Error(`Key ${o} not found in enum`);i[o]=t.entries[o]}return new ti({...t,checks:[],...Z(r),entries:i})},e.exclude=(e,r)=>{const i={...t.entries};for(const t of e){if(!n.has(t))throw new Error(`Key ${t} not found in enum`);delete i[t]}return new ti({...t,checks:[],...Z(r),entries:i})}});function ni(e,t){return new ti({type:"enum",entries:Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e,...Z(t)})}var ri=g("ZodLiteral",(e,t)=>{Ht.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n)=>{const r=e._zod.def,i=[];for(const o of r.values)if(void 0===o){if("throw"===t.unrepresentable)throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if("bigint"==typeof o){if("throw"===t.unrepresentable)throw new Error("BigInt literals cannot be represented in JSON Schema");i.push(Number(o))}else i.push(o);if(0===i.length);else if(1===i.length){const e=i[0];n.type=null===e?"null":typeof e,"draft-04"===t.target||"openapi-3.0"===t.target?n.enum=[e]:n.const=e}else i.every(e=>"number"==typeof e)&&(n.type="number"),i.every(e=>"string"==typeof e)&&(n.type="string"),i.every(e=>"boolean"==typeof e)&&(n.type="boolean"),i.every(e=>null===e)&&(n.type="null"),n.enum=i})(e,t,n),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function ii(e,t){return new ri({type:"literal",values:Array.isArray(e)?e:[e],...Z(t)})}var oi=g("ZodTransform",(e,t)=>{Kt.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(e,t,n)=>((e,t)=>{if("throw"===t.unrepresentable)throw new Error("Transforms cannot be represented in JSON Schema")})(0,e),e._zod.parse=(n,r)=>{if("backward"===r.direction)throw new v(e.constructor.name);n.addIssue=r=>{if("string"==typeof r)n.issues.push(V(r,n.value,t));else{const t=r;t.fatal&&(t.continue=!1),t.code??(t.code="custom"),t.input??(t.input=n.value),t.inst??(t.inst=e),n.issues.push(V(t))}};const i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n.fallback=!0,n)):(n.value=i,n.fallback=!0,n)}});var ai=g("ZodOptional",(e,t)=>{Qt.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>qn(e,t,0,r),e.unwrap=()=>e._zod.def.innerType});function si(e){return new ai({type:"optional",innerType:e})}var ui=g("ZodExactOptional",(e,t)=>{en.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>qn(e,t,0,r),e.unwrap=()=>e._zod.def.innerType});var ci=g("ZodNullable",(e,t)=>{tn.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=e._zod.def,o=Nn(i.innerType,t,r),a=t.seen.get(e);"openapi-3.0"===t.target?(a.ref=i.innerType,n.nullable=!0):n.anyOf=[o,{type:"null"}]})(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function li(e){return new ci({type:"nullable",innerType:e})}var di=g("ZodDefault",(e,t)=>{nn.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=e._zod.def;Nn(i.innerType,t,r),t.seen.get(e).ref=i.innerType,n.default=JSON.parse(JSON.stringify(i.defaultValue))})(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});var pi=g("ZodPrefault",(e,t)=>{on.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=e._zod.def;Nn(i.innerType,t,r),t.seen.get(e).ref=i.innerType,"input"===t.io&&(n._prefault=JSON.parse(JSON.stringify(i.defaultValue)))})(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});var fi=g("ZodNonOptional",(e,t)=>{an.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=e._zod.def;Nn(i.innerType,t,r),t.seen.get(e).ref=i.innerType})(e,t,0,r),e.unwrap=()=>e._zod.def.innerType});var mi=g("ZodCatch",(e,t)=>{un.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=e._zod.def;let o;Nn(i.innerType,t,r),t.seen.get(e).ref=i.innerType;try{o=i.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}n.default=o})(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});var hi=g("ZodPipe",(e,t)=>{cn.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=e._zod.def,o=i.in._zod.traits.has("$ZodTransform"),a="input"===t.io?o?i.out:i.in:i.out;Nn(a,t,r),t.seen.get(e).ref=a})(e,t,0,r),e.in=t.in,e.out=t.out});function _i(e,t){return new hi({type:"pipe",in:e,out:t})}var gi=g("ZodReadonly",(e,t)=>{dn.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(t,n,r)=>((e,t,n,r)=>{const i=e._zod.def;Nn(i.innerType,t,r),t.seen.get(e).ref=i.innerType,n.readOnly=!0})(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});var yi=g("ZodCustom",(e,t)=>{mn.init(e,t),cr.init(e,t),e._zod.processJSONSchema=(e,t,n)=>((e,t)=>{if("throw"===t.unrepresentable)throw new Error("Custom types cannot be represented in JSON Schema")})(0,e)});var vi,bi=ni(["CONSENT","SOFT_OPT_IN","TRANSACTIONAL_ONLY","UNKNOWN"]),wi=ni(["MANUAL_UNSUB","ONE_CLICK_UNSUB","HARD_BOUNCE","COMPLAINT","ADMIN_BLOCK"]),Si=ni(["BROADCAST","AUTOMATION"]),ki=ni(["ABANDONED_CART","POST_PURCHASE","WELCOME","WIN_BACK","RE_ENGAGEMENT","TAG_ADDED"]),zi=(Wr({email:hr(),name:pr().trim().min(1).nullable().optional(),customer_id:pr().uuid().nullable().optional(),tags:Yr(pr().trim().min(1)).default([]),consent_basis:bi.default("UNKNOWN"),source:pr().trim().min(1).default("dashboard")}),Wr({name:pr().trim().min(1),subject:pr().trim().min(1),preheader:pr().nullable().optional(),mjml_source:pr().trim().min(1),builder_project_json:ei(pr(),Mr()).nullable().optional(),thumbnail_url:bn(yr,vi).nullable().optional()}),Wr({mjml_source:pr().trim().min(1),sample_variables:ei(pr(),Mr()).optional()}),Wr({recipient_email:hr(),sample_variables:ei(pr(),Mr()).optional()}),Wr({marketing_enabled:Dr().optional(),default_from_name:pr().trim().min(1).nullable().optional(),default_from_email:hr().nullable().optional(),default_reply_to_email:hr().nullable().optional(),physical_address:pr().trim().min(1).nullable().optional(),physical_address_line2:pr().trim().min(1).nullable().optional(),physical_city:pr().trim().min(1).nullable().optional(),physical_postal_code:pr().trim().min(1).nullable().optional(),physical_country:pr().trim().length(2).nullable().optional(),daily_limit:Rr().int().positive().optional(),monthly_soft_cap:Rr().int().positive().optional()}),Wr({type:Si.default("BROADCAST"),name:pr().trim().min(1),subject:pr().trim().min(1),template_id:pr().uuid(),list_id:pr().uuid().nullable().optional(),segment_id:pr().uuid().nullable().optional(),from_name:pr().trim().min(1),from_email:hr(),reply_to_email:hr().nullable().optional(),schedule_at:pr().datetime().nullable().optional(),target_emails:Yr(hr()).max(0,"Direct recipient entry is disabled. Use lists or segments built from Shoppex customers and paid order buyers.").default([]),idempotency_key:pr().trim().min(1).nullable().optional()}),Wr({name:pr().trim().min(1),subject:pr().trim().min(1),template_id:pr().uuid(),from_name:pr().trim().min(1),from_email:hr(),reply_to_email:hr().nullable().optional(),trigger:ki,delay_seconds:Rr().int().min(0).default(0),conditions:ei(pr(),Mr()).default({})}),Wr({trigger:ki,email:hr(),customer_id:pr().uuid().nullable().optional(),name:pr().trim().min(1).nullable().optional(),consent_basis:bi.default("UNKNOWN"),variables:ei(pr(),Mr()).default({}),idempotency_key:pr().trim().min(1).nullable().optional()}),Wr({email:hr(),reason:wi.default("ADMIN_BLOCK"),notes:pr().nullable().optional()}),["BITCOIN","LITECOIN","ETHEREUM","BITCOIN_CASH","MONERO","RIPPLE","TRON","SOLANA","POLYGON","BINANCE_COIN","CRONOS","CONCORDIUM","NANO","DOGECOIN","DASH"]),Oi=["NOWPAYMENTS","CRYPTOMUS","OXAPAY"],xi=["NOWPAYMENTS_WHITELABEL"],Ei={USDT:["USDT_TRC20","USDT_ERC20","USDT_BEP20","USDT_POLYGON","USDT_SOL"],USDC:["USDC_ERC20","USDC_TRC20","USDC_BEP20","USDC_POLYGON","USDC_SOL"],DAI:["DAI_ERC20"]},$i=Object.keys(Ei),Ti=[...Ei.USDT,...Ei.USDC,...Ei.DAI],Ai=[...zi,...Ti],Ii=["BITCOIN_LN"],Ni=[...Oi,...xi],Ci=[...Ai,...Ii],Pi=Ai,Ri=new Set(zi),Ui=new Set(Ti),ji=(new Set(Ai),new Set(Ii),new Set(Oi),new Set(xi),new Set(Ni),new Set(Ci),new Set($i),new Set(["STRIPE","PAYPAL","PAYPAL_FF","MOLLIE","NMI","SQUARE","SUMUP","SHOPIFY","SUBY","PANDABASE","STORRIK","VENPAYR","MONEYMOTION","WHOP","DODO","MAVERICK","CASHAPP","VENMO","CRYPTO","CUSTOMER_BALANCE","MANUAL"]),{CASHAPP:"CASH_APP",PAYPAL_CREDIT_CARD:"PAYPAL",EUTHEREUM:"ETHEREUM",USDT_MATIC:"USDT_POLYGON",USDC_MATIC:"USDC_POLYGON"});function qi(e,t){if(new Set(t).size!==t.length)throw new Error(`${e} contains duplicate entries`)}qi("COIN_GATEWAY_KEYS",zi),qi("TOKEN_GATEWAY_KEYS",Ti),qi("CRYPTO_GATEWAY_KEYS",Ai),qi("LEGACY_CRYPTO_GATEWAY_KEYS",Ii),qi("CRYPTO_PROVIDER_KEYS",Oi),qi("MANAGED_CRYPTO_PROVIDER_KEYS",xi),qi("CRYPTO_PROVIDER_GATEWAY_KEYS",Ni),qi("DEFAULT_NOWPAYMENTS_CRYPTO_GATEWAY_KEYS",Pi),qi("DEFAULT_CRYPTOMUS_CRYPTO_GATEWAY_KEYS",["BITCOIN","LITECOIN","ETHEREUM","TRON","SOLANA","POLYGON","BINANCE_COIN","BITCOIN_CASH","MONERO","RIPPLE","DOGECOIN","USDT_TRC20","USDT_ERC20","USDT_BEP20","USDT_POLYGON","USDT_SOL","USDC_ERC20","USDC_BEP20","USDC_POLYGON","DAI_ERC20"]),qi("DEFAULT_OXAPAY_CRYPTO_GATEWAY_KEYS",["BITCOIN","LITECOIN","ETHEREUM","TRON","SOLANA","POLYGON","BINANCE_COIN","BITCOIN_CASH","MONERO","RIPPLE","DOGECOIN","USDT_TRC20","USDT_ERC20","USDT_BEP20","USDT_POLYGON","USDC_ERC20"]);for(const Ys of Ai)if(!Ri.has(Ys)&&!Ui.has(Ys))throw new Error(`CRYPTO_GATEWAY_KEYS contains an unclassified gateway: ${Ys}`);new Set(["STRIPE","PAYPAL","PAYPAL_FF","SKRILL","CASHAPP","CASH_APP","PERFECT_MONEY","SQUARE","SUMUP","SHOPIFY","SUBY","PANDABASE","STORRIK","VENPAYR","WHOP","DODO","MAVERICK","VENMO","MOLLIE","NMI"].map(e=>function(e){const t=e.trim();if(!t)return"";if(/^manual:/i.test(t)){const e=t.slice(t.indexOf(":")+1).trim();return e?`MANUAL:${e}`:"MANUAL"}let n=t.toUpperCase();const r=n.match(/^(USDT|USDC|DAI):([A-Z0-9_]+)$/);if(r){const[,e,t]=r;n=`${e}_${"MATIC"===t?"POLYGON":t}`}return ji[n]??n}(e))),new Set(["WHITE_LABEL","NATIVE"]);var Di=[...Ni,"NATIVE"],Zi=(new Set(Di),Wr({set:Dr()})),Mi=Wr({status:ni(["READY","NEEDS_ATTENTION"]).optional(),code:pr().optional(),message:pr().optional(),checked_at:pr().optional()}),Li=(Wr({provider:pr(),type:pr(),enabled:Dr(),connected:Dr(),credentials:ei(pr(),Zi),public_config:ei(pr(),Mr()),webhook:ei(pr(),Mr()).optional(),health:Mi.optional()}),"#2563eb"),Fi=["comfortable","compact"],Bi=["top","side","background"],Yi=ni(["checkout","payment_link","embed"]),Ji=ni(["current","clean-light","clean-dark","v2","v3"]),Wi=ni(Fi),Vi=ni(["light","dark","system"]),Gi=ni(Bi),Hi=ni(["ghost","outlined","filled"]),Ki=ni(["sheet","fullscreen","center"]),Xi=(ni(["checkout.shell","checkout.panel","checkout.header","brand.logo","product.card","product.image","product.title","product.description","product.price","product.quantity","product.addon","paymentLink.hero","summary.panel","summary.line","summary.total","form.field","form.label","form.help","coupon.input","input.base","input.error","button.primary","button.secondary","payment.methods","payment.method","payment.method.icon","payment.method.label","payment.method.meta","payment.method.fee","payment.method.indicator","payment.provider_widget","payment.loading","payment.error","payment.warning","legal.terms","status.success","status.processing","embed.launcher","embed.launcher.icon","embed.productCard","embed.productCard.image","embed.productCard.title","embed.productCard.price","embed.cart","embed.cart.row","embed.cart.summary","embed.modal","embed.modal.header","embed.modal.close","embed.skeleton","embed.loader","embed.branding"]),ni(["product.title","product.price","summary.total","payment.method.label","payment.provider_widget","payment.loading","payment.error","payment.warning","legal.terms","status.success","status.processing","embed.modal.close","embed.branding"]),pr().regex(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/,"Use a valid hex color")),Qi=pr().trim().min(1).max(200).refine(e=>!/[;{}]|@import|expression\s*\(/i.test(e),"Use a valid CSS color or gradient"),eo=pr().trim().min(1).max(400).refine(e=>!/[;{}]|@import|expression\s*\(/i.test(e),"Use a valid CSS box-shadow value"),to=ni(["Inter","Geist","Manrope","Plus Jakarta Sans","DM Sans","Space Grotesk","Sora","IBM Plex Sans","JetBrains Mono","Arial","System UI"]),no=pr().trim().min(1).max(60).regex(/^[A-Za-z0-9 +\-_]+$/,"Use a Google Fonts family name"),ro=pr().url(),io=Wr({brand:Wr({logoUrl:ro.optional().nullable(),logoDarkUrl:ro.optional().nullable(),logoMaxHeight:Rr().int().min(16).max(80).optional(),faviconUrl:ro.optional().nullable()}).strict().optional(),color:Wr({brand:Xi.optional(),brandContrast:Xi.optional(),background:Xi.optional(),surface:Xi.optional(),surfaceRaised:Xi.optional(),text:Xi.optional(),textMuted:Xi.optional(),border:Xi.optional(),focus:Xi.optional(),success:Xi.optional(),warning:Xi.optional(),error:Xi.optional()}).strict().optional(),typography:Wr({fontFamily:to.optional(),googleFontFamily:no.optional(),baseSize:Rr().int().min(12).max(18).optional()}).strict().optional(),shape:Wr({buttonRadius:Rr().int().min(0).max(24).optional(),inputRadius:Rr().int().min(0).max(24).optional(),cardRadius:Rr().int().min(0).max(28).optional()}).strict().optional(),spacing:Wr({density:Wi.optional(),controlHeight:Rr().int().min(36).max(56).optional()}).strict().optional(),component:Wr({primaryButton:Wr({background:Xi.optional(),text:Xi.optional()}).strict().optional(),input:Wr({background:Xi.optional(),border:Xi.optional(),focusRing:Qi.optional()}).strict().optional(),summary:Wr({background:Xi.optional()}).strict().optional(),paymentMethod:Wr({background:Qi.optional(),cardBackground:Qi.optional(),border:Qi.optional(),selectedBackground:Qi.optional()}).strict().optional(),productCard:Wr({background:Qi.optional(),border:Qi.optional(),shadow:eo.optional()}).strict().optional(),productImage:Wr({background:Qi.optional(),border:Qi.optional(),icon:Qi.optional()}).strict().optional(),brandAvatar:Wr({background:Qi.optional(),text:Xi.optional(),border:Qi.optional()}).strict().optional(),pill:Wr({background:Qi.optional(),border:Qi.optional(),text:Xi.optional()}).strict().optional(),errorBanner:Wr({background:Qi.optional(),border:Qi.optional(),text:Xi.optional()}).strict().optional(),warningBanner:Wr({background:Qi.optional(),border:Qi.optional(),text:Xi.optional()}).strict().optional(),radio:Wr({idleRing:Qi.optional(),checkedFill:Xi.optional(),checkedIcon:Xi.optional()}).strict().optional(),divider:Wr({color:Qi.optional()}).strict().optional()}).strict().optional(),paymentLink:Wr({heroImageUrl:ro.optional().nullable(),heroPosition:Gi.optional()}).strict().optional(),embed:Wr({launcher:Wr({background:Qi.optional(),text:Xi.optional(),radius:Rr().int().min(0).max(28).optional(),paddingX:Rr().int().min(8).max(32).optional(),paddingY:Rr().int().min(6).max(24).optional(),shadow:eo.optional()}).strict().optional(),productCard:Wr({background:Qi.optional(),border:Qi.optional(),imageRadius:Rr().int().min(0).max(24).optional(),padding:Rr().int().min(8).max(32).optional()}).strict().optional(),cart:Wr({background:Qi.optional(),rowBorder:Qi.optional(),itemSpacing:Rr().int().min(4).max(28).optional()}).strict().optional(),modal:Wr({background:Qi.optional(),radius:Rr().int().min(0).max(32).optional(),maxWidth:Rr().int().min(360).max(960).optional(),shadow:eo.optional()}).strict().optional(),backdrop:Wr({color:Qi.optional(),blur:Rr().int().min(0).max(24).optional(),opacity:Rr().min(0).max(1).optional()}).strict().optional(),skeleton:Wr({background:Qi.optional(),shimmer:Qi.optional()}).strict().optional(),spinner:Wr({color:Qi.optional()}).strict().optional(),closeButton:Wr({style:Hi.optional()}).strict().optional(),mobile:Wr({layout:Ki.optional()}).strict().optional()}).strict().optional()}).strict(),oo=Wr({mode:Vi.default("system"),fontSource:ni(["curated"]).default("curated")}).strict(),ao=ni(["standalone","bundle","pointer"]),so=Wr({name:pr().trim().min(1).max(80),fingerprint:pr().trim().min(1).max(128)}).strict(),uo=Wr({type:ii("shoppex.style_theme"),surface:ii("checkout"),format_version:Gr([ii(1),ii(2)]),name:pr().trim().min(1).max(80),description:pr().trim().max(240).optional(),embed_design:Ji.default("current"),token_schema_version:ii(1),tokens:io.default({}),custom_css:pr().max(2e4).default(""),settings:oo.default({mode:"system",fontSource:"curated"}),_meta:ei(pr(),Mr()).optional()}).strict(),co=(Wr({type:ii("shoppex.style_theme"),surface:Yi,format_version:Gr([ii(1),ii(2)]),name:pr().trim().min(1).max(80),description:pr().trim().max(240).optional(),embed_design:Ji.default("current"),token_schema_version:ii(1),tokens:io.default({}),custom_css:pr().max(2e4).default(""),settings:oo.default({mode:"system",fontSource:"curated"}),share_mode:ao.default("standalone"),parent_hint:so.optional(),bundled_parent:uo.optional(),_meta:ei(pr(),Mr()).optional()}).strict(),Wr({theme_id:pr().uuid().nullable(),surface:Yi,embed_design:Ji,token_schema_version:ii(1),revision:Rr().int().min(1),tokens:io,custom_css:pr(),css_variables:ei(pr(),pr())}).strict(),Wr({theme_id:pr().uuid().nullable(),parent_theme_id:pr().uuid().nullable(),surface:ii("embed"),embed_design:Ji,token_schema_version:ii(1),revision:Rr().int().min(1),parent_revision:Rr().int().min(1).nullable(),tokens:io,custom_css:pr(),css_variables:ei(pr(),pr())}).strict(),Wr({shop_id:pr().uuid(),product_id:pr().uuid().nullable(),product_group_id:pr().uuid().nullable(),payment_link_id:pr().uuid().nullable(),invoice_id:pr().nullable()}).strict(),Wr({embed_runtime:pr().min(16).max(128),embed_design:Ji,revision:Rr().int().min(1),parent_revision:Rr().int().min(1).nullable(),theme_id:pr().uuid().nullable(),css_variables:ei(pr(),pr()),custom_css:pr()}).strict(),Wr({embed_design:Ji.optional(),embed_style_revision:function(e){return function(e,t){return new e({type:"number",coerce:!0,checks:[],...Z(t)})}(Pr,e)}().int().min(1).optional(),embed_runtime:pr().min(16).max(128).optional(),preview:Dr().optional()}).strict(),ni(["announcement_bar","countdown_bar","promo_info_card","recent_purchase_popup","coupon_popup_modal"]),ni(["layout.header.before","layout.header.after","layout.overlay","home.hero.after","home.grid.before","product.buybox.after","layout.footer.before","floating.bottom_right"])),lo=(ni(["announcement_bar","countdown_bar","promo_info_card","recent_purchase_popup","coupon_popup_modal"]),pr().regex(/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/,"Use a valid hex color")),po=ni(["static","marquee"]),fo=ni(["brand_blue","emerald","sunset","rose","charcoal","custom"]),mo=ni(["hide","message"]),ho=ni(["compact","comfortable"]),_o=ni(["subtle","outline","solid"]),go=ni(["minimal","boxed"]),yo=ni(["indigo","emerald","amber","rose","slate","custom"]),vo=ni(["compact","feature","alert"]),bo=ni(["compact","comfortable"]),wo=ni(["subtle","outline","solid"]),So=ni(["sparkles","megaphone","gift","truck","shield","support","none"]),ko=ni(["show","hide"]),zo=ni(["midnight","ocean","ember","forest","custom"]),Oo=ni(["delay","exit_intent"]),xo=pr().trim().refine(e=>{if(e.startsWith("/"))return!0;try{const t=new URL(e);return"http:"===t.protocol||"https:"===t.protocol}catch{return!1}},'Use a valid absolute URL or a path starting with "/"'),Eo=pr().trim().refine(e=>{const t=new Date(e);return!Number.isNaN(t.getTime())},"Use a valid date and time"),$o=Wr({text:pr().trim().min(1,"Text is required").max(160,"Text must be 160 characters or fewer"),linkLabel:pr().trim().max(32,"Link label must be 32 characters or fewer").optional().nullable(),linkUrl:xo.optional().nullable(),dismissible:Dr().default(!1),displayMode:po.default("marquee"),themePreset:fo.default("custom"),animationSpeedSeconds:Rr().int().min(8).max(40).default(30),backgroundColor:lo.default("#111827"),textColor:lo.default("#f9fafb")}),To=Wr({text:pr().trim().min(1,"Text is required").max(120,"Text must be 120 characters or fewer"),endAt:Eo,linkLabel:pr().trim().max(32,"Link label must be 32 characters or fewer").optional().nullable(),linkUrl:xo.optional().nullable(),dismissible:Dr().default(!1),themePreset:fo.default("brand_blue"),expiredBehavior:mo.default("hide"),expiredMessage:pr().trim().max(120,"Expired message must be 120 characters or fewer").optional().nullable(),density:ho.default("compact"),ctaStyle:_o.default("subtle"),timerStyle:go.default("boxed"),backgroundColor:lo.default("#111827"),textColor:lo.default("#f9fafb")}),Ao=Wr({eyebrow:pr().trim().max(32,"Eyebrow must be 32 characters or fewer").optional().nullable(),title:pr().trim().min(1,"Title is required").max(80,"Title must be 80 characters or fewer"),body:pr().trim().min(1,"Body is required").max(240,"Body must be 240 characters or fewer"),linkLabel:pr().trim().max(32,"Link label must be 32 characters or fewer").optional().nullable(),linkUrl:xo.optional().nullable(),themePreset:yo.default("indigo"),layoutStyle:vo.default("feature"),density:bo.default("comfortable"),ctaStyle:wo.default("outline"),icon:So.default("sparkles"),iconVisibility:ko.default("show"),backgroundColor:lo.default("#111827"),textColor:lo.default("#f9fafb"),accentColor:lo.default("#818cf8")}),Io=Wr({title:pr().trim().min(1,"Title is required").max(80,"Title must be 80 characters or fewer").default("Recent purchases"),lookbackHours:Rr().int().min(1).max(168).default(24),cooldownSeconds:Rr().int().min(5).max(300).default(20),maxItems:Rr().int().min(1).max(20).default(8),anonymizeMode:ni(["first_name_city","first_name_country","initial_country","anonymous"]).default("first_name_city"),includedProductIds:Yr(pr().min(1)).max(50).default([])}),No=Wr({eyebrow:pr().trim().max(32,"Eyebrow must be 32 characters or fewer").optional().nullable(),title:pr().trim().min(1,"Title is required").max(80,"Title must be 80 characters or fewer"),body:pr().trim().min(1,"Body is required").max(240,"Body must be 240 characters or fewer"),couponCode:pr().trim().min(2,"Coupon code is required").max(40,"Coupon code must be 40 characters or fewer"),primaryButtonLabel:pr().trim().min(1,"Primary button label is required").max(24,"Primary button label must be 24 characters or fewer").default("Copy code"),secondaryButtonLabel:pr().trim().min(1,"Secondary button label is required").max(24,"Secondary button label must be 24 characters or fewer").default("Maybe later"),disclaimer:pr().trim().max(100,"Disclaimer must be 100 characters or fewer").optional().nullable(),themePreset:zo.default("midnight"),trigger:Oo.default("delay"),delaySeconds:Rr().int().min(0).max(60).default(6),showOncePerSession:Dr().default(!0),reminderHours:Rr().int().min(1).max(720).default(24),backgroundColor:lo.default("#111827"),textColor:lo.default("#f8fafc"),accentColor:lo.default("#7c9cff"),heroImageUrl:xo.optional().nullable(),discountDisplay:pr().trim().max(24,"Discount display must be 24 characters or fewer").optional().nullable(),expiresAt:Eo.optional().nullable()}),Co=Wr({type:ii("announcement_bar"),slot:co,enabled:Dr().default(!0),sortOrder:Rr().int().min(0).max(999).default(0),config:$o}),Po=Wr({type:ii("recent_purchase_popup"),slot:co,enabled:Dr().default(!0),sortOrder:Rr().int().min(0).max(999).default(0),config:Io}),Ro=Wr({type:ii("countdown_bar"),slot:co,enabled:Dr().default(!0),sortOrder:Rr().int().min(0).max(999).default(0),config:To}),Uo=Wr({type:ii("promo_info_card"),slot:co,enabled:Dr().default(!0),sortOrder:Rr().int().min(0).max(999).default(0),config:Ao}),jo=Wr({type:ii("coupon_popup_modal"),slot:co,enabled:Dr().default(!0),sortOrder:Rr().int().min(0).max(999).default(0),config:No});Kr("type",[Co,Ro,Uo,Po,jo]),Kr("type",[Co.extend({id:pr().min(1)}),Ro.extend({id:pr().min(1)}),Uo.extend({id:pr().min(1)}),Po.extend({id:pr().min(1)}),jo.extend({id:pr().min(1)})]);var qo=null,Do=null;var Zo=null,Mo=null;function Lo(e,t){const n=t?.shopId?.trim();return Mo=n||null,qo=null,Do=null,Zo={storeSlug:e,locale:t?.locale,currency:t?.currency,apiBaseUrl:t?.apiBaseUrl??"https://api.shoppex.io",checkoutBaseUrl:t?.checkoutBaseUrl??"https://checkout.shoppex.io"}}function Fo(){if(!Zo)throw new n;return Zo}function Bo(){return null!==Zo}function Yo(e){Mo=e}function Jo(){return Mo}function Wo(e){const t=e?.trim().toLowerCase()??"";return"true"===t||"1"===t||"yes"===t||"on"===t}function Vo(e){return"number"==typeof e&&Number.isFinite(e)?Math.trunc(e):null}function Go(e){if(!e)return-1;if("string"==typeof e.type&&"SERIALS"===e.type.toUpperCase())return Vo(e.stock)??-1;const t=function(e){const t=Array.isArray(e.price_variants)?e.price_variants.map(e=>Vo(e.stock)):[];return t.length>0?t:Array.isArray(e.variants)?e.variants.map(e=>Vo(e.stock)):[]}(e);return t.length>0?t.some(e=>null===e||e<0)?-1:t.filter(e=>null!==e).reduce((e,t)=>e+Math.max(t,0),0):Vo(e.stock)??-1}function Ho(e){return 0===Go(e)}function Ko(e){return!Ho(e)}function Xo(e){return e.products_bound??e.productsBound??[]}function Qo(e=[],t=[]){const n=new Map;for(const r of e)r?.uniqid&&n.set(r.uniqid,r);for(const r of t)for(const e of Xo(r))e?.uniqid&&(n.has(e.uniqid)||n.set(e.uniqid,e));return Array.from(n.values())}function ea(e){return e?e.replace(/<[^>]*>/g," ").replace(/\s+/g," ").trim():""}function ta(e){return e.trim().toLowerCase()}function na(e,t){const n=ea(t).toLowerCase();n&&e.push(n)}function ra(e){const t=[];na(t,e.title),na(t,e.slug??void 0),na(t,e.description);for(const n of e.product_highlights??[])na(t,n);for(const n of e.variants??[])na(t,n.title);for(const n of e.price_variants??[])na(t,n.title??n.label);return t}function ia(e,t){const n=ta(t);return!!n&&ra(e).some(e=>e.includes(n))}function oa(e,t){const n=ta(t);if(!n)return!1;const r=ea(e.title).toLowerCase(),i=ea(e.slug??e.name??void 0).toLowerCase(),o=ea(e.description).toLowerCase();return r.includes(n)||i.includes(n)||o.includes(n)}function aa(e,t){const n=Xo(e);return 0!==n.length&&(!t||n.some(e=>Ko(e)))}function sa(e,t,n,r){const i=ta(n);if(!i)return[];const o=!0===r?.hideOutOfStock,a=new Set,s=new Set,u=[];for(const l of t){const e=l.uniqid??l.id;if(e&&!s.has(e)&&(oa(l,i)&&aa(l,o))){s.add(e);for(const e of Xo(l))e?.uniqid&&a.add(e.uniqid);u.push({type:"group",group:l})}}const c=Qo(e,t);for(const l of c)l?.uniqid&&!a.has(l.uniqid)&&ia(l,i)&&(o&&!Ko(l)||(a.add(l.uniqid),u.push({type:"product",product:l})));return null!=r?.maxResults?u.slice(0,r.maxResults):u}function ua(e,t,n,r){const i=sa(e,t,n,r),o=new Set,a=[],s=e=>{e?.uniqid&&!o.has(e.uniqid)&&(r?.hideOutOfStock&&!Ko(e)||(o.add(e.uniqid),a.push(e)))};for(const u of i)if("product"!==u.type)for(const e of Xo(u.group))s(e);else s(u.product);return null!=r?.maxResults?a.slice(0,r.maxResults):a}function ca(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 la(e){const t=e.name?.trim()??"",n=`${t?`Name: ${t}\n\n`:""}${e.message.trim()}`,r=e.maxLength??2e3;return n.slice(0,r)}var da=new Map,pa=new Map,fa={hits:0,misses:0};function ma(e,t,n){const r=Date.now();da.set(e,{data:t,ttl:n,updatedAt:r,expiresAt:r+n})}async function ha(e,t,n,r=()=>!0){const i=function(e){const t=da.get(e);return t||null}(e);if(i&&!function(e){return Date.now()>e.expiresAt}(i))return fa.hits+=1,i.data;if(i&&n.staleWhileRevalidate){if(fa.hits+=1,!pa.has(e)){const i=(async()=>{try{const i=await t();return r(i)&&ma(e,i,n.ttl),i}finally{pa.delete(e)}})();pa.set(e,i)}return i.data}if(pa.has(e))return pa.get(e);fa.misses+=1;const o=(async()=>{try{const i=await t();return r(i)&&ma(e,i,n.ttl),i}finally{pa.delete(e)}})();return pa.set(e,o),o}var _a=/:([A-Za-z0-9_]+)/g;function ga(e,t){return e.replace(_a,(e,n)=>{const r=t[n];if(null==r)throw new Error(`Missing endpoint param: ${n}`);const i=String(r).trim();if(!i)throw new Error(`Endpoint param "${n}" must not be empty`);return encodeURIComponent(i)})}function ya(e){return`shoppex_${e}`}function va(e){try{const t=localStorage.getItem(ya(e));return t?JSON.parse(t):null}catch{return null}}function ba(e,t){try{localStorage.setItem(ya(e),JSON.stringify(t))}catch{console.warn("[shoppex] Failed to save to localStorage")}}function wa(e){try{localStorage.removeItem(ya(e))}catch{}}function Sa(e){if("undefined"==typeof window)return null;const t=`presence_connection_${e}`,n=va(t);if(n&&n.trim())return n;const r="undefined"!=typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`spx_${Math.random().toString(36).slice(2)}${Date.now().toString(36)}`;return ba(t,r),r}async function ka(e){if(!Bo())return;if("undefined"==typeof window)return;if(function(e){const t=`client_error_${function(e){return[e.method,e.endpoint,e.statusCode??"none",e.message.trim().toLowerCase(),e.responseReceived?"response":"no-response"].join("|")}(e)}`,n=Date.now(),r=va(t);return"number"==typeof r&&n-r<15e3||(ba(t,n),!1)}(e))return;const t=Fo(),n=Jo(),r=n?ga("/v1/storefront/shops/id/:id/ping",{id:n}):ga("/v1/storefront/shops/:storeSlug/ping",{storeSlug:t.storeSlug}),i=JSON.stringify({event_type:"client_error",referer:document.referrer||void 0,connection_id:Sa(t.storeSlug)??void 0,client_error:{source:e.source??"sdk",phase:e.phase??"request",endpoint:e.endpoint,method:e.method,message:e.message,status_code:e.statusCode,attempt_count:e.attemptCount,response_received:e.responseReceived??!1,page_url:e.pageUrl??window.location.href,request_url:e.requestUrl,online:e.online??("undefined"!=typeof navigator?navigator.onLine:void 0),visibility_state:e.visibilityState??("undefined"!=typeof document?document.visibilityState:void 0)}}),o=`${t.apiBaseUrl}${r}`;try{if("undefined"!=typeof navigator&&"function"==typeof navigator.sendBeacon){const e=new Blob([i],{type:"application/json"});if(navigator.sendBeacon(o,e))return}await fetch(o,{method:"POST",headers:{"Content-Type":"application/json"},body:i,keepalive:!0})}catch{}}var za=1e4;async function Oa(e){return new Promise(t=>setTimeout(t,e))}async function xa(e,t={}){const n=t.baseUrl?null:Fo(),{method:i="GET",body:o,timeout:a=za,retries:s,baseUrl:u,cache:c}=t,l=s??("GET"===i?2:0),d=`${u??n?.apiBaseUrl??""}${e}`,p={"Content-Type":"application/json",Accept:"application/json"};let f=null;const m=async()=>{for(let t=0;t<=l;t++)try{const e=new AbortController,t=setTimeout(()=>e.abort(),a),n=await fetch(d,{method:i,headers:p,body:o?JSON.stringify(o):void 0,signal:e.signal});clearTimeout(t);const s=await Ea(n);if(!n.ok){const e=n.statusText?`HTTP ${n.status}: ${n.statusText}`:`HTTP ${n.status}`;throw new r((s.data&&"object"==typeof s.data&&"error"in s.data&&"string"==typeof s.data.error?s.data.error:null)??(s.data&&"object"==typeof s.data&&"message"in s.data&&"string"==typeof s.data.message?s.data.message:null)??s.rawText??e,n.status)}if(204===n.status&&null===s.data)return{success:!0};if(!s.data||"object"!=typeof s.data||!("status"in s.data))throw new r("Invalid API response",n.status);return $a(s.data)}catch(e){let n=e instanceof Error?e:new Error(String(e));e instanceof DOMException&&"AbortError"===e.name&&(n=new r("Request timeout",408));const i=n instanceof r?n.statusCode:void 0;if(f={message:n.message,statusCode:i,isTransport:void 0===i||408===i},t<l){await Oa(500*Math.pow(2,t));continue}}return{success:!1,message:f?.message??"Unknown error"}},h="GET"===i&&c&&c.ttl>0?await ha(c.key??`GET:${d}`,m,{ttl:c.ttl,staleWhileRevalidate:c.staleWhileRevalidate},e=>e.success):await m(),_=f;return!h.success&&_?.isTransport&&await ka({endpoint:e,method:i,message:h.message??_.message,statusCode:_.statusCode,attemptCount:l+1,requestUrl:d,responseReceived:void 0!==_.statusCode&&408!==_.statusCode}),h}async function Ea(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 $a(e){return e.status>=200&&e.status<300?{success:!0,data:e.data,...e.message?{message:e.message}:{}}:{success:!1,message:e.error??e.message??`Request failed with status ${e.status}`}}async function Ta(e,t){return xa(e,{...t,method:"GET"})}async function Aa(e,t,n){return xa(e,{...n,method:"POST",body:t})}var Ia=3e5;async function Na(){const e=Fo(),t=await Ta(ga("/v1/storefront/shops/name/:storeSlug",{storeSlug:e.storeSlug}),{cache:{key:`store:${e.storeSlug}`,ttl:Ia,staleWhileRevalidate:!0}});return t.success&&t.data?(t.data.shop?.id&&Yo(t.data.shop.id),{success:!0,data:t.data.shop}):{success:!1,message:t.message}}async function Ca(e){const t=Fo(),n=new URLSearchParams;Number.isFinite(e?.productsLimit)&&n.set("products_limit",String(Math.max(1,Math.floor(e?.productsLimit??0)))),"string"==typeof e?.productsCursor&&e.productsCursor.trim().length>0&&n.set("products_cursor",e.productsCursor);const r=n.size>0?`?${n.toString()}`:"",i=await Ta(`${ga("/v1/storefront/shops/name/:storeSlug",{storeSlug:t.storeSlug})}${r}`,{cache:{key:`storefront:${t.storeSlug}:${e?.productsLimit??"full"}:${e?.productsCursor??"start"}`,ttl:Ia,staleWhileRevalidate:!0}});return i.success&&i.data?(i.data.shop?.id&&Yo(i.data.shop.id),{success:!0,data:{shop:i.data.shop,products:i.data.products??[],products_pagination:i.data.products_pagination??null,groups:i.data.groups??[],items:i.data.items??[],categories:i.data.categories??[],addons:i.data.addons??{items:[]}}}):{success:!1,message:i.message}}var Pa=12e4;function Ra(e){if(e.variants&&e.variants.length>0)return e;const t=e.price_variants;return Array.isArray(t)&&0!==t.length?{...e,variants:t.map(e=>function(e){return{id:e.id,title:e.title??e.label??"",price:"number"==typeof e.price?e.price:Number(e.price)||0,stock:"number"==typeof e.stock?e.stock:void 0,quantity_min:e.quantity_min,quantity_max:e.quantity_max,quantityMin:e.quantityMin,quantityMax:e.quantityMax,image_id:e.image_id,imageId:e.imageId,cloudflare_image_id:e.cloudflare_image_id,cloudflareImageId:e.cloudflareImageId,image_url:e.image_url,imageUrl:e.imageUrl}}(e))}:e}async function Ua(){const e=Fo(),t=await Ta(ga("/v1/storefront/products/public/:storeSlug",{storeSlug:e.storeSlug}),{cache:{key:`products:${e.storeSlug}`,ttl:Pa,staleWhileRevalidate:!0}});return t.success&&t.data?{success:!0,data:t.data.products.map(Ra)}:{success:!1,message:t.message,data:[]}}function ja(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 qa(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:ja(e.custom_fields),unit_price:"number"==typeof e.price_data?.unit_price&&Number.isFinite(e.price_data.unit_price)?e.price_data.unit_price:null};var n;return function(e){let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24);return(t>>>0).toString(16)}(JSON.stringify(t))}function Da(e){return"string"==typeof e.line_id&&e.line_id.trim()?e:{...e,line_id:qa(e)}}var Za={cart:"cart",cartBackup:"cart_backup",meta:"cart_meta",metaBackup:"cart_backup_meta",coupon:"cart_coupon",couponBackup:"cart_coupon_backup"};function Ma(e){return`${Za[e]}_${Fo().storeSlug}`}function La(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 Fa(e){if(!Number.isFinite(e))throw new i("quantity must be a finite number");return Math.floor(e)}function Ba(e){const t=e?.trim().toUpperCase();return t||null}function Ya(e){if(!Array.isArray(e))return[];const t=[];for(const n of e){if(!n||"object"!=typeof n)continue;const e=n,r="string"==typeof e.product_id?e.product_id.trim():"",i="string"==typeof e.variant_id?e.variant_id.trim():"",o=Number(e.quantity);if(!r||!i||!Number.isFinite(o)||o<1)continue;const a={line_id:"",product_id:r,variant_id:i,quantity:Math.floor(o)};if("string"==typeof e.price_variant_id&&(a.price_variant_id=e.price_variant_id),e.price_data&&"object"==typeof e.price_data){const t=e.price_data;"number"==typeof t.unit_price&&Number.isFinite(t.unit_price)&&(a.price_data={unit_price:t.unit_price})}Array.isArray(e.addons)&&(a.addons=e.addons),e.custom_fields&&"object"==typeof e.custom_fields&&!Array.isArray(e.custom_fields)&&(a.custom_fields=e.custom_fields),"string"==typeof e.title&&(a.title=e.title),"string"==typeof e.variant_title&&(a.variant_title=e.variant_title),"string"==typeof e.image_url&&(a.image_url=e.image_url),Array.isArray(e.addon_labels)&&(a.addon_labels=e.addon_labels.filter(e=>"string"==typeof e)),"number"==typeof e.max_quantity&&Number.isFinite(e.max_quantity)&&(a.max_quantity=e.max_quantity),"number"==typeof e.min_quantity&&Number.isFinite(e.min_quantity)&&(a.min_quantity=e.min_quantity),Qa(a),a.line_id=("string"==typeof e.line_id?e.line_id.trim():"")||qa(a),t.push(Da(a))}return t}function Ja(){return va(Ma("meta"))}function Wa(){const e=va(Ma("coupon"));return"string"!=typeof e?null:Ba(e)}function Va(e){const t=Ba(e);return t?(ba(Ma("coupon"),t),t):(wa(Ma("coupon")),null)}function Ga(){wa(Ma("coupon"))}function Ha(e){const t=Ya(e);ba(Ma("cart"),t);const n=Date.now(),r=Ja(),i={created_at:r?.created_at??n,last_modified:n,version:(r?.version??0)+1,checksum:La(t)};ba(Ma("meta"),i),0===t.length&&Ga()}function Ka(e,t){const n=Ya(e);ba(Ma("cart"),n);const r=Date.now(),i=t??Ja(),o={created_at:i?.created_at??r,last_modified:r,version:i?.version??1,checksum:La(n)};ba(Ma("meta"),o)}function Xa(){return Ya(va(Ma("cart")))}function Qa(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 es(){wa(Ma("cart")),wa(Ma("meta")),Ga()}function ts(){const e=Xa();ba(Ma("cartBackup"),e);const t=Wa();t?ba(Ma("couponBackup"),t):wa(Ma("couponBackup"));const n=Ja();if(n)ba(Ma("metaBackup"),n);else{const t=Date.now();ba(Ma("metaBackup"),{created_at:t,last_modified:t,version:1,checksum:La(e)})}}function ns(){const e=Xa(),t=Ja(),n=La(e);return t?t.checksum===n:(Ka(e,null),!0)}var rs="shoppex:affiliate_code:v1";function is(){return Date.now()}function os(e){const t=e?.trim().toLowerCase();return t||null}function as(e,t=30){const n=os(e);return n?(function(e){if("undefined"!=typeof window)try{window.localStorage.setItem(rs,JSON.stringify(e))}catch{}}({code:n,expiresAt:is()+(r=t,24*Math.max(1,r)*60*60*1e3)}),n):(ss(),null);var r}function ss(){if("undefined"!=typeof window)try{window.localStorage.removeItem(rs)}catch{}}function us(){const e=function(){if("undefined"==typeof window)return null;try{const e=window.localStorage.getItem(rs);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<=is()?(ss(),null):os(e.code):null}async function cs(e){const t=os(e);if(!t)return{success:!1,data:{valid:!1,affiliate_code:null,discount_active:!1,discount_percent:0},message:"Affiliate code is required"};const n=await Aa("/v1/storefront/affiliates/resolve",{shop_slug:Fo().storeSlug,code:t},{retries:0});if(!n.success)return n;if(!n.data?.valid||!n.data.affiliate_code){const e=!1===n.data?.program_enabled;return{success:!1,data:{valid:!1,...void 0!==n.data?.program_enabled?{program_enabled:n.data.program_enabled}:{},affiliate_code:null,discount_active:!1,discount_percent:0},message:n.message??(e?"Affiliate program is disabled for this shop.":"Invalid affiliate code.")}}return{success:!0,data:{valid:!0,...void 0!==n.data.program_enabled?{program_enabled:n.data.program_enabled}:{},affiliate_code:os(n.data.affiliate_code),discount_active:Boolean(n.data.discount_active),discount_percent:Number(n.data.discount_percent??0)},...n.message?{message:n.message}:{}}}function ls(e){const t=e?.trim();return t||null}function ds(e){const t=e?.trim();return t||null}function ps(e){const t=e?.trim().toUpperCase();return t&&/^[A-Z]{3}$/.test(t)?t:null}function fs(e){return ps(e.currency)??function(){if("undefined"==typeof window||!window.location)return null;const e="string"==typeof window.location.search?window.location.search:"";if(e)return ps(new URLSearchParams(e).get("currency"));const t="string"==typeof window.location.href?window.location.href:"";if(!t)return null;try{return ps(new URL(t,"https://storefront.shoppex.local").searchParams.get("currency"))}catch{return null}}()}function ms(e){const t=e?.trim()??"";if(!t)return"Checkout failed. Please try again.";if(hs(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 hs(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 _s(e,t,n){const r=t?.trim();if(!r)return null;try{const t=new URL(e),i=new URL(r);if(t.origin!==i.origin)return null;const o=t.pathname.replace(/\/+$/,""),a=`${i.pathname.replace(/\/+$/,"")}/invoice/`.replace(/\/{2,}/g,"/");if(!o.startsWith(a))return null;const s=o.slice(a.length);if(!s||s.includes("/"))return null;if(n){const e=n.trim();if(!e||decodeURIComponent(s)!==e)return null}return t.toString()}catch{return null}}function gs(e,t){const n=ds(t.email),r="string"==typeof t.locale?t.locale.trim():"";if(!n&&!r)return e;try{const t=new URL(e);if(r&&t.searchParams.set("locale",r),n){const e=new URLSearchParams(t.hash.startsWith("#")?t.hash.slice(1):t.hash);e.set("shoppex_prefill_email",n),t.hash=e.toString()}return t.toString()}catch{return e}}function ys(e,t){const n=e?.invoice,r=e?.invoiceId?.trim()||e?.invoice_id?.trim()||e?.uniqid?.trim()||n?.invoiceId?.trim()||n?.invoice_id?.trim()||n?.uniqid?.trim();let i=e?.checkoutUrl?.trim()||e?.checkout_url?.trim()||e?.url_branded?.trim()||e?.url?.trim()||n?.checkoutUrl?.trim()||n?.checkout_url?.trim()||n?.url_branded?.trim()||n?.url?.trim();return!i&&r&&n&&(i=function(e,t){const n=e?.trim();if(!n)return null;try{const e=new URL(n);return e.pathname=`${e.pathname.replace(/\/+$/,"")}/invoice/${encodeURIComponent(t)}`.replace(/\/{2,}/g,"/"),e.search="",e.hash="",e.toString()}catch{return null}}(t,r)??void 0),r&&i?{invoiceId:r,checkoutUrl:i,rewards:e?.rewards??n?.rewards??null}:null}function vs(e,t){return"string"==typeof e?{...t,coupon:e}:e??t??{}}function bs(e){const t=e.affiliateCode??e.referralCode;return"string"==typeof t&&t.trim().length>0?t.trim().toLowerCase():us()}function ws(e){const t=e=>{const t=e?.trim();return t?"default"===t.toLowerCase()?null:t:null};return e.map(e=>({product_id:e.product_id,variant_id:t(e.variant_id),quantity:e.quantity,addons:e.addons?.map(e=>({id:e.id,quantity:e.quantity??1})),custom_fields:e.custom_fields,price_variant_id:e.price_variant_id||null}))}function Ss(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 ks(...e){for(const t of e)if("string"==typeof t&&t.length>0)return t}function zs(e,t){const n=e,r=Ss(n.rating)??Ss(n.score)??0,i=ks(n.comment,n.message),o=ks(n.author,n.customer_name),a=n.created_at??n.createdAt,s="number"==typeof a||"string"==typeof a?String(a):"",u=ks(n.id,n.uniqid)??`review:${s||t}`;return{...n,id:u,rating:r,...i?{comment:i}:{},...o?{author:o}:{},created_at:s}}async function Os(e){const t=Fo(),n=new URLSearchParams;n.set("limit",String(100)),"string"==typeof e&&e.trim().length>0&&n.set("cursor",e);const r=`?${n.toString()}`,i=await Ta(`${ga("/v1/storefront/feedback/shop/:storeSlug",{storeSlug:t.storeSlug})}${r}`,{cache:{key:`reviews:${t.storeSlug}:${e??"start"}:100`,ttl:12e4,staleWhileRevalidate:!0}});return i.success&&i.data?{success:!0,data:i.data}:{success:!1,message:i.message}}function xs(e){const t=e.trim();return t||null}var Es=3e5;var $s=3e5;async function Ts(){const e=Fo(),t=await Ta(ga("/v1/storefront/shops/name/:storeSlug/menus",{storeSlug:e.storeSlug}),{cache:{key:`menus:${e.storeSlug}`,ttl:$s,staleWhileRevalidate:!0}});return t.success&&t.data?{success:!0,data:t.data.menus}:{success:!1,message:t.message}}async function As(e){const t=Fo(),n=await Ta(ga("/v1/storefront/shops/name/:storeSlug/menus/:title",{storeSlug:t.storeSlug,title:e}),{cache:{key:`menu:${t.storeSlug}:${e}`,ttl:$s,staleWhileRevalidate:!0}});return n.success&&n.data?{success:!0,data:n.data.menu}:{success:!1,message:n.message}}async function Is(e){return As(e)}async function Ns(e){const t=Fo(),n=await Ta(ga("/v1/storefront/shops/name/:storeSlug/menus/:title",{storeSlug:t.storeSlug,title:e}),{cache:{key:`menu-slot:${t.storeSlug}:${e}`,ttl:$s,staleWhileRevalidate:!0}});return n.success&&n.data?{success:!0,data:n.data.menu}:{success:!1,message:n.message}}function Cs(e){return function(e){const t=_[e];return[t.title,...t.aliases]}(e)}async function Ps(e,t){if(!Bo())return;if("undefined"==typeof document)return;const n=Fo(),r=Sa(n.storeSlug);try{const i=ga("/v1/storefront/shops/:storeSlug/ping",{storeSlug:n.storeSlug});await fetch(`${n.apiBaseUrl}${i}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({referer:document.referrer||void 0,cart_value:e??void 0,item_count:t??void 0,connection_id:r??void 0})})}catch{}}async function Rs(){if(!Bo())return{success:!1,message:"SDK not initialized"};const e=Fo(),t=Jo();return Ta(t?ga("/v1/storefront/shops/id/:id/online-users",{id:t}):ga("/v1/storefront/shops/:storeSlug/online-users",{storeSlug:e.storeSlug}),{cache:!1,retries:0,timeout:5e3})}async function Us(){if(!Bo())return{success:!1,message:"SDK not initialized"};if("undefined"==typeof document)return{success:!1,message:"Document is not available"};const e=Fo(),t=Jo();return Aa(t?ga("/v1/storefront/shops/id/:id/ping",{id:t}):ga("/v1/storefront/shops/:storeSlug/ping",{storeSlug:e.storeSlug}),{referer:document.referrer||void 0,connection_id:Sa(e.storeSlug)??void 0},{retries:0,timeout:5e3})}function js(e,t){const n=Fo();return new Intl.NumberFormat(t??n.locale??"en-US",{style:"currency",currency:e??n.currency??"USD"})}function qs(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function Ds(e){return qs(e)&&qs(e.theme)?{...e,version:"number"==typeof e.version?e.version:0,revision:"number"==typeof e.revision?e.revision:0,theme:{...e.theme,content:qs(e.theme.content)?e.theme.content:{},layout:qs(e.theme.layout)?e.theme.layout:{},style_slots:qs(e.theme.style_slots)?e.theme.style_slots:{},...Array.isArray(e.theme.pages)?{pages:e.theme.pages}:{},...qs(e.theme.terms)?{terms:e.theme.terms}:{}}}:null}async function Zs(e){const t=await Ta(ga("/v1/storefront/themes/builder/published/:shopSlug",{shopSlug:e}));return t.success&&t.data?qs(n=t.data)?{settings:qs(n.settings)?n.settings:{},builder_settings:Ds(n.builder_settings),content:qs(n.content)?n.content:{},style_slots:qs(n.style_slots)?n.style_slots:{}}:null:null;var n}async function Ms(e){const t=await Zs(e);return t?t.settings:null}function Ls(e){const t={};for(const[n,r]of Object.entries(e.settings)){t[n]={};for(const[e,i]of Object.entries(r))t[n][e]=i.default}return t}function Fs(e,t){const n={...e};for(const[r,i]of Object.entries(t))i&&(n[r]={...n[r],...i});return n}var Bs={init:function(e,t){"string"==typeof e?Lo(e,t):Lo(e.storeId,e)},isInitialized:Bo,getConfig:Fo,client:function(e){const t=Fo().apiBaseUrl??"https://api.shoppex.io";if(qo&&Do===t&&!e)return qo;const n=function(e,t){return a({baseUrl:e,headers:t?{Authorization:`Bearer ${t}`}:void 0})}(t,e);return e||(qo=n,Do=t),n},getStore:Na,getStorefront:Ca,getStoreLogoUrl:async function(){const e=await Na();return e.success&&e.data?.logo?e.data.logo:null},getStoreBannerUrl:async function(){const e=await Na();return e.success&&e.data?.banner?e.data.banner:null},resolveStoreByDomain:async function(e,t){const n=e??("undefined"!=typeof window?window.location.hostname:"");if(!n)return{success:!1,message:"Domain is required to resolve store"};const r=n.replace(/^https?:\/\//,"").split("/")[0].trim(),i=t??(Bo()?Fo().apiBaseUrl:"https://api.shoppex.io"),o=await Ta(ga("/v1/storefront/shops/domain/:domain",{domain:r}),{baseUrl:i,cache:{key:`store:domain:${r}`,ttl:Ia,staleWhileRevalidate:!0}});return o.success&&o.data?.shop?(o.data.shop.id&&Yo(o.data.shop.id),{success:!0,data:o.data.shop}):{success:!1,message:o.message??"Failed to resolve store"}},getProducts:Ua,getStorefrontProductsPage:async function(e){const t=Fo(),n=new URLSearchParams;"string"==typeof e?.cursor&&e.cursor.trim().length>0&&n.set("cursor",e.cursor),Number.isFinite(e?.limit)&&n.set("limit",String(Math.max(1,Math.floor(e?.limit??0)))),"string"==typeof e?.sort&&e.sort.trim().length>0&&n.set("sort",e.sort.trim()),"string"==typeof e?.category&&e.category.trim().length>0&&n.set("category",e.category.trim()),!0===e?.hideOutOfStock&&n.set("hide_out_of_stock","true");const r=n.size>0?`?${n.toString()}`:"",i=await Ta(`${ga("/v1/storefront/products/shop/:storeSlug",{storeSlug:t.storeSlug})}${r}`,{cache:{key:`products:page:${t.storeSlug}:${e?.limit??"default"}:${e?.cursor??"start"}:${e?.sort??"featured"}:${o=e?.category,void 0===o?"category:unset":null===o?"category:null":`category:${o}`}:${!0===e?.hideOutOfStock?"in-stock":"all-stock"}`,ttl:Pa,staleWhileRevalidate:!0}});var o;return i.success&&i.data?{success:!0,data:{products:i.data.products.map(Ra),pagination:i.data.pagination??null}}:{success:!1,message:i.message}},getProduct:async function(e){let t=Jo();if(!t){const e=await Na();t=e.success?e.data?.id??null:null}const n=t?`?slug_shop_id=${encodeURIComponent(t)}`:"",r=await Ta(`${ga("/v1/storefront/products/unique/:idOrSlug",{idOrSlug:e})}${n}`,{cache:{key:`product:${e}:${t??"no-shop"}`,ttl:Pa,staleWhileRevalidate:!0}});return r.success&&r.data?.product?{success:!0,data:Ra(r.data.product)}:{success:!1,message:r.message}},getCategories:async function(){const e=await Ua();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:Xa,getCartItemCount:function(){return Xa().reduce((e,t)=>e+t.quantity,0)},getCartCoupon:Wa,setCartCoupon:Va,clearCartCoupon:Ga,addToCart:function(e,t,n=1,r){if(!e||!t)throw new i("product_id and variant_id are required");const o=Fa(n);if(o<1)throw new i("quantity must be at least 1");const a=Xa(),s=qa({product_id:e,variant_id:t,addons:r?.addons,custom_fields:r?.custom_fields,price_variant_id:r?.price_variant_id,price_data:r?.price_data}),u=a.findIndex(e=>e.line_id===s);if(u>=0)a[u].quantity+=o,r?.addons&&(a[u].addons=r.addons),r?.custom_fields&&(a[u].custom_fields=r.custom_fields),r?.price_variant_id&&(a[u].price_variant_id=r.price_variant_id),r?.price_data&&(a[u].price_data=r.price_data),function(e,t){if(t?.replace_display_snapshot)return e.title=t.title,e.variant_title=t.variant_title,e.image_url=t.image_url,e.addon_labels=t.addon_labels,e.max_quantity=t.max_quantity,void(e.min_quantity=t.min_quantity);void 0!==t?.title&&(e.title=t.title);void 0!==t?.variant_title&&(e.variant_title=t.variant_title);void 0!==t?.image_url&&(e.image_url=t.image_url);void 0!==t?.addon_labels&&(e.addon_labels=t.addon_labels);void 0!==t?.max_quantity&&(e.max_quantity=t.max_quantity);void 0!==t?.min_quantity&&(e.min_quantity=t.min_quantity)}(a[u],r),Qa(a[u]);else{const n={line_id:s,product_id:e,variant_id:t,quantity:o,addons:r?.addons,custom_fields:r?.custom_fields,price_variant_id:r?.price_variant_id,price_data:r?.price_data,title:r?.title,variant_title:r?.variant_title,image_url:r?.image_url,addon_labels:r?.addon_labels,max_quantity:r?.max_quantity,min_quantity:r?.min_quantity};Qa(n),a.push(n)}Ha(a)},setCartItem:function(e,t,n=1,r){if(!e||!t)throw new i("product_id and variant_id are required");const o=Fa(n);if(o<1)throw new i("quantity must be at least 1");const a=Xa(),s=qa({product_id:e,variant_id:t,addons:r?.addons,custom_fields:r?.custom_fields,price_variant_id:r?.price_variant_id,price_data:r?.price_data});for(let i=a.length-1;i>=0;i-=1)a[i].product_id===e&&a[i].variant_id===t&&a.splice(i,1);const u={line_id:s,product_id:e,variant_id:t,quantity:o,addons:r?.addons,custom_fields:r?.custom_fields,price_variant_id:r?.price_variant_id,price_data:r?.price_data,title:r?.title,variant_title:r?.variant_title,image_url:r?.image_url,addon_labels:r?.addon_labels,max_quantity:r?.max_quantity,min_quantity:r?.min_quantity};Qa(u),a.push(u),Ha(a)},updateCartItem:function(e,t){const n=Xa(),r=e.trim();if(!r)throw new i("line_id is required");const o=n.findIndex(e=>e.line_id===r);if(o<0)throw new i("Item not found in cart");if(void 0!==t.quantity){const e=Fa(t.quantity);if(e<1)return n.splice(o,1),void Ha(n);n[o].quantity=e}void 0!==t.addons&&(n[o].addons=t.addons),void 0!==t.custom_fields&&(n[o].custom_fields=t.custom_fields),void 0!==t.price_variant_id&&(n[o].price_variant_id=t.price_variant_id),void 0!==t.price_data&&(n[o].price_data=t.price_data),void 0!==t.max_quantity&&(n[o].max_quantity=t.max_quantity),void 0!==t.min_quantity&&(n[o].min_quantity=t.min_quantity),Qa(n[o]),Ha(n)},removeFromCart:function(e){const t=e.trim();if(!t)throw new i("line_id is required");Ha(Xa().filter(e=>e.line_id!==t))},clearCart:es,createCartBackup:ts,restoreCartFromBackup:function(){const e=Ya(va(Ma("cartBackup"))),t=va(Ma("metaBackup")),n=va(Ma("couponBackup"));return!!(e&&e.length>0)&&(Ka(e,t),"string"==typeof n?Va(n):Ga(),!0)},mergeBaskets:function(e){const t=Xa();for(const n of e){const e="string"==typeof n.product_id?n.product_id.trim():"",r="string"==typeof n.variant_id?n.variant_id.trim():"";if(!e||!r)continue;let i;try{i=Fa(n.quantity)}catch{continue}if(i<1)continue;const o=Da({...n,line_id:n.line_id??qa(n),product_id:e,variant_id:r,quantity:i}),a=t.findIndex(e=>e.line_id===o.line_id);a>=0?(t[a].quantity=Math.max(t[a].quantity,i),Qa(t[a])):(Qa(o),t.push(o))}return Ha(t),t},moveBasketItem:function(e,t,n,r){const o=Xa(),a=o.findIndex(n=>n.product_id===e&&n.variant_id===t);if(a<0)throw new i("Item not found in cart");const[s]=o.splice(a,1),u=qa({...s,product_id:n,variant_id:r}),c=o.findIndex(e=>e.line_id===u);if(c>=0)o[c].quantity+=s.quantity,Qa(o[c]);else{const e=Da({...s,product_id:n,variant_id:r,line_id:u});Qa(e),o.push(e)}Ha(o)},getCartStats:function(){const e=Xa(),t=ns(),n=Ja(),r=va(Ma("cartBackup"))??[],i=e.length>0&&e.every(e=>"number"==typeof e.price_data?.unit_price),o=e.reduce((e,t)=>e+(t.price_data?.unit_price??0)*t.quantity,0);return{item_count:e.length,total_quantity:e.reduce((e,t)=>e+t.quantity,0),last_modified:n?.last_modified??0,version:n?.version??0,has_backup:r.length>0,integrity_valid:t,total_price:o,total_price_is_estimate:e.length>0&&!i}},validateCartIntegrity:ns,quoteCart:async function(e){const t=function(e){const t=Fo(),n=Ba(e)??Wa()??void 0;return{store_slug:t.storeSlug,items:Xa(),coupon:n}}(e);return Aa("/v1/storefront/cart/quote",{shop_slug:t.store_slug,cart:t.items,coupon:t.coupon})},resolveCartLineId:function(e,t,n=Xa()){const r=n.filter(n=>n.product_id===e&&n.variant_id===t);if(0===r.length)throw new i(`No cart line found for ${e}/${t}`);return r[0].line_id},checkout:async function(e,t){const n=vs(e,t),{autoRedirect:r=!0,email:i,coupon:o}=n,a=void 0===o?Wa():ls(o),s=ds(i),u=bs(n),c=fs(n),l=Xa();if(0===l.length)return{success:!1,message:"Cart is empty"};ts();const d=Fo();let p=await Aa("/v1/storefront/invoices/from-cart",{shop_slug:d.storeSlug,cart:ws(l),email:s,coupon:a,currency:c,affiliate_code:u},{retries:0});if(!p.success||!p.data)return hs(p.message)&&es(),{success:!1,message:ms(p.message)};const f=ys(p.data,d.checkoutBaseUrl);if(!f)return{success:!1,message:"Failed to create invoice"};const{invoiceId:m}=f,h=_s(f.checkoutUrl,d.checkoutBaseUrl,m);if(!h)return{success:!1,message:"Failed to create invoice"};const _=gs(h,{email:s,locale:n.locale});return r&&"undefined"!=typeof window&&window?.location&&(window.location.href=_,es()),{success:!0,redirectUrl:_,invoiceId:m,rewards:f.rewards}},buildCheckoutUrl:async function(e,t){const n=vs(e,t),{email:r,coupon:i}=n,o=void 0===i?Wa():ls(i),a=ds(r),s=bs(n),u=fs(n),c=Xa();if(0===c.length)throw new Error("Cart is empty");const l=Fo();let d=await Aa("/v1/storefront/invoices/from-cart",{shop_slug:l.storeSlug,cart:ws(c),email:a,coupon:o,currency:u,affiliate_code:s},{retries:0});if(!d.success||!d.data)throw hs(d.message)&&es(),new Error(ms(d.message));const p=ys(d.data,l.checkoutBaseUrl);if(!p)throw new Error("Failed to create invoice");const f=_s(p.checkoutUrl,l.checkoutBaseUrl,p.invoiceId);if(!f)throw new Error("Failed to create invoice");return gs(f,{email:a,locale:n.locale})},buildCheckoutUrlSync:function(){throw new Error("buildCheckoutUrlSync is deprecated. Use buildCheckoutUrl (async) instead.")},captureAffiliateFromUrl:async function(e="ref"){if("undefined"==typeof window)return null;let t=null;try{const n=new URL(window.location.href).searchParams.get(e);t=n?n.trim():null}catch{t=null}if(t=os(t),!t)return null;if(as(t),Bo())try{const e=await Aa("/v1/storefront/affiliates/attribution",{shop_slug:Fo().storeSlug,code:t},{retries:0});return e.success&&e.data?.accepted&&e.data?.affiliate_code?(as(e.data.affiliate_code),e.data.affiliate_code):(ss(),null)}catch{return t}return t},validateAffiliateCode:cs,applyAffiliateCode:async function(e){const t=await cs(e);return t.success&&t.data?.affiliate_code&&as(t.data.affiliate_code),t},getAffiliateCode:us,setAffiliateCode:as,clearAffiliateCode:ss,validateCoupon:async function(e,t){const n=e.trim();if(!n)return{success:!1,message:"Coupon code is required"};const r={code:n},i="string"==typeof t?t:t?.productId,o="string"==typeof t?void 0:t?.variantId;if(o&&!i)return{success:!1,message:"productId is required when variantId is provided"};if(i)r.product_id=i,o&&(r.variant_id=o);else{const e=Xa();if(0===e.length)return{success:!1,message:"Cart is empty"};const t=await async function(){const e=Jo();if(e)return e;const t=await Na();return t.success&&t.data?.id?t.data.id:null}();if(!t)return{success:!1,message:"Failed to resolve store"};r.cart=JSON.stringify({shop_id:t,products:e.map(e=>({uniqid:e.product_id,quantity:e.quantity,variant_id:e.variant_id,price_variant_id:e.price_variant_id,addons:e.addons?.map(e=>({id:e.id,quantity:e.quantity??1}))}))})}return await Aa("/v1/storefront/coupons/check",r)},getShopReviews:async function(){const e=[],t=new Set;let n=null;for(;;){const r=await Os(n);if(!r.success||!r.data)return{success:!1,message:r.message,data:[]};e.push(...(r.data.feedback??[]).map((t,n)=>zs(t,e.length+n)));const i=r.data.pagination;if(!i?.has_more||!i.next_cursor)break;if(t.has(i.next_cursor))break;t.add(i.next_cursor),n=i.next_cursor}return{success:!0,data:e}},searchProducts:async function(e,t){if(!Bo())return{success:!1,message:"SDK not initialized"};const n=e.trim();if(!n)return{success:!0,data:[]};const r=await Ca();return r.success&&r.data?{success:!0,data:ua(r.data.products??[],r.data.groups??[],n,{hideOutOfStock:t?.hideOutOfStock,maxResults:t?.maxResults})}:{success:!1,message:r.message??"Failed to fetch storefront catalog"}},searchCatalogItems:async function(e,t){if(!Bo())return{success:!1,message:"SDK not initialized"};const n=e.trim();if(!n)return{success:!0,data:[]};const r=await Ca();return r.success&&r.data?{success:!0,data:sa(r.data.products??[],r.data.groups??[],n,{hideOutOfStock:t?.hideOutOfStock,maxResults:t?.maxResults})}:{success:!1,message:r.message??"Failed to fetch storefront catalog"}},getInvoice:async function(e){const t=xs(e);if(!t)return{success:!1,message:"Invoice ID is required"};const n=await Ta(ga("/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=xs(e);if(!t)return{success:!1,message:"Invoice ID is required"};const n=await Ta(ga("/v1/storefront/invoices/status/:invoiceId",{invoiceId:t}));return n.success?n.data?.invoice?.status?{success:!0,data:{status:n.data.invoice.status}}:{success:!1,message:"Invalid invoice status response"}:{success:!1,message:n.message}},getPages:async function(){const e=Fo(),t=await Ta(ga("/v1/storefront/shops/name/:storeSlug/pages",{storeSlug:e.storeSlug}),{cache:{key:`pages:${e.storeSlug}`,ttl:Es,staleWhileRevalidate:!0}});return t.success&&t.data?{success:!0,data:t.data.pages}:{success:!1,message:t.message}},getPage:async function(e){const t=Fo(),n=await Ta(ga("/v1/storefront/shops/name/:storeSlug/pages/:slug",{storeSlug:t.storeSlug,slug:e}),{cache:{key:`page:${t.storeSlug}:${e}`,ttl:Es,staleWhileRevalidate:!0}});return n.success&&n.data?{success:!0,data:n.data.page}:{success:!1,message:n.message}},getMenus:Ts,getMenu:Is,getMenuBySlot:Ns,getMenuByTitle:As,getMenuSlotTitles:Cs,trackPageView:Ps,getStorefrontOnlineUsers:Rs,touchStorefrontPresence:Us,createFormatter:js,formatPrice:function(e,t,n){const r="string"==typeof e?parseFloat(e):e;return Number.isNaN(r)?js(t,n).format(0):js(t,n).format(r)},clearCache:function(){da.clear(),pa.clear()},invalidateCache:function(e){for(const t of da.keys())(t===e||t.startsWith(e))&&da.delete(t)},getCacheStats:function(){return{hits:fa.hits,misses:fa.misses,pendingRequests:pa.size,entries:da.size}},fetchPublishedBuilderSettings:Zs,fetchPublishedThemeSettings:Ms,resolveDefaults:Ls,mergeSettings:Fs};if("undefined"!=typeof window){const e=window;e.shoppex?.isInitialized?.()||(e.shoppex=Bs)}e.CartError=i,e.NetworkError=r,e.NotInitializedError=n,e.ShoppexError=t,e.ValidationError=class e extends t{constructor(t,n){super(t,"VALIDATION_ERROR"),this.name="ValidationError",this.invalidFields=n,Object.setPrototypeOf(this,e.prototype)}},e.buildStorefrontContactMessage=la,e.buildStorefrontCustomFieldPayload=function(e,t){const n={};return e.forEach(e=>{const r=t[e.name]??e.defaultValue??"";if("checkbox"===e.type)return void(Wo(r)&&(n[e.name]="true"));const i=r.trim();i.length>0&&(n[e.name]=i)}),n},e.collectProductSearchHaystack=ra,e.computeCartLineId=qa,e.default=Bs,e.shoppex=Bs,e.ensureCartLineId=Da,e.fetchPublishedBuilderSettings=Zs,e.fetchPublishedThemeSettings=Ms,e.filterProductsBySearchQuery=function(e,t,n){const r=ta(t);if(!r)return[];let i=e.filter(e=>ia(e,r));return n?.hideOutOfStock&&(i=i.filter(e=>Ko(e))),null!=n?.maxResults?i.slice(0,n.maxResults):i},e.getMenu=Is,e.getMenuBySlot=Ns,e.getMenuByTitle=As,e.getMenuSlotTitles=Cs,e.getMenus=Ts,e.getMergedStorefrontProducts=Qo,e.getStorefrontGroupProducts=Xo,e.getStorefrontOnlineUsers=Rs,e.groupMatchesSearchQuery=oa,e.isProductInStock=Ko,e.isProductOutOfStock=Ho,e.isStorefrontCheckboxCustomFieldValueChecked=Wo,e.isVariantOutOfStock=function(e){return 0===Vo(e?.stock)},e.mergeSettings=Fs,e.normalizeSearchQuery=ta,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",r=[e.default_value,e.default,e.value].find(e=>"string"==typeof e&&e.trim().length>0);return{name:"string"==typeof e.name?e.name.trim():"",type:n,required:!0===e.required||"true"===e.required||1===e.required||"1"===e.required,defaultValue:"string"==typeof r?r:"",placeholder:"string"==typeof e.placeholder?e.placeholder:"",regex:"string"==typeof e.regex?e.regex:void 0}}).filter(e=>e.name.length>0&&"hidden"!==e.type)},e.productMatchesSearchQuery=ia,e.resolveDefaults=Ls,e.resolveDisplayStock=Go,e.resolveStorefrontApiBaseUrl=ca,e.resolveStorefrontSocialLinks=function(e){return{discord:e?.discord_link??e?.social?.discord??null,telegram:e?.telegram_link??e?.social?.telegram??null}},e.resolveVariantStockValue=function(e){return Vo(e?.stock)??-1},e.searchMergedStorefrontCatalog=ua,e.searchMergedStorefrontCatalogItems=sa,e.stripHtmlFromText=ea,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(),r=e.title?.trim()??"",i=r.length>=2?r.slice(0,30):"Contact Request",o=la({name:e.name,message:e.message}),a=e.invoiceId?.trim()||void 0,s=ca({apiBaseUrl:e.apiBaseUrl}),u=await fetch(`${s}/v1/storefront/shops/name/${encodeURIComponent(t)}/tickets`,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({email:n,title:i,message:o,...a?{invoice_id:a}:{}})}),c=await u.json().catch(()=>null);if(!u.ok)throw new Error(c?.message||c?.error||"Failed to send your message.");const l=c?.data?.uniqid;if(!l)throw new Error("Ticket created, but the response was incomplete.");return{uniqid:l}},e.touchStorefrontPresence=Us,e.trackPageView=Ps,e.validateStorefrontCustomFieldValue=function(e,t){if("checkbox"===e.type)return e.required&&!Wo(t)?`${e.name} is required.`:null;const n=t.trim();if(e.required&&!n)return`${e.name} is required.`;if(e.regex&&n)try{if(!new RegExp(e.regex).test(n))return`${e.name} has an invalid format.`}catch{return null}return null}});
|
|
2
2
|
//# sourceMappingURL=shoppex.umd.js.map
|