@gengage/assistant-fe 0.2.4 → 0.2.5
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/chat/api.d.ts.map +1 -1
- package/dist/chat/components/ChatDrawer.d.ts.map +1 -1
- package/dist/chat/components/GroundingReviewCard.d.ts.map +1 -1
- package/dist/chat/index.d.ts.map +1 -1
- package/dist/chat.cjs +1 -1
- package/dist/chat.iife.js +13 -13
- package/dist/chat.iife.js.map +1 -1
- package/dist/chat.js +2 -2
- package/dist/common/action-router.d.ts.map +1 -1
- package/dist/common/ga-datalayer.d.ts.map +1 -1
- package/dist/common.cjs +1 -1
- package/dist/common.js +5 -5
- package/dist/{index-DjdiNtXX.cjs → index-B6xRdkMq.cjs} +2 -2
- package/dist/{index-DjdiNtXX.cjs.map → index-B6xRdkMq.cjs.map} +1 -1
- package/dist/{index-hUs4nTXp.js → index-BsvmfVa1.js} +3 -3
- package/dist/{index-hUs4nTXp.js.map → index-BsvmfVa1.js.map} +1 -1
- package/dist/index-BzCc2DCm.cjs +13 -0
- package/dist/index-BzCc2DCm.cjs.map +1 -0
- package/dist/{index-Cdmhc_35.js → index-D5UPIXIA.js} +795 -747
- package/dist/index-D5UPIXIA.js.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +3 -3
- package/dist/native.cjs +1 -1
- package/dist/native.iife.js +13 -13
- package/dist/native.iife.js.map +1 -1
- package/dist/native.js +1 -1
- package/dist/qna/index.d.ts.map +1 -1
- package/dist/qna.cjs +1 -1
- package/dist/qna.cjs.map +1 -1
- package/dist/qna.iife.js +6 -6
- package/dist/qna.iife.js.map +1 -1
- package/dist/qna.js +8 -8
- package/dist/qna.js.map +1 -1
- package/dist/{schemas-DXvpS-Yg.cjs → schemas-CNzyBhf7.cjs} +8 -8
- package/dist/schemas-CNzyBhf7.cjs.map +1 -0
- package/dist/{schemas-C7h8aelU.js → schemas-Fiaobs4L.js} +305 -307
- package/dist/schemas-Fiaobs4L.js.map +1 -0
- package/dist/simrel/index.d.ts.map +1 -1
- package/dist/simrel/locales/en.d.ts.map +1 -1
- package/dist/simrel/locales/tr.d.ts.map +1 -1
- package/dist/simrel/types.d.ts +4 -0
- package/dist/simrel/types.d.ts.map +1 -1
- package/dist/simrel.cjs +1 -1
- package/dist/simrel.cjs.map +1 -1
- package/dist/simrel.iife.js +5 -5
- package/dist/simrel.iife.js.map +1 -1
- package/dist/simrel.js +29 -25
- package/dist/simrel.js.map +1 -1
- package/package.json +1 -1
- package/dist/index-BQVIyEOM.cjs +0 -13
- package/dist/index-BQVIyEOM.cjs.map +0 -1
- package/dist/index-Cdmhc_35.js.map +0 -1
- package/dist/schemas-C7h8aelU.js.map +0 -1
- package/dist/schemas-DXvpS-Yg.cjs.map +0 -1
package/dist/simrel.iife.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(F){"use strict";const cn=({element:e,renderElement:t})=>{if(!e.children||e.children.length===0)return null;const n=document.createElement("div");for(const r of e.children){const o=t(r);o&&n.appendChild(o)}return n};function un(e){const t=document.createElement("div");if(t.className=e.containerClassName,!e.spec.elements[e.spec.root])return t;const r=e.unknownRenderer??cn,o=i=>{const a=e.spec.elements[i];if(!a)return null;const c=e.registry[a.type];return c?c({elementId:i,element:a,spec:e.spec,context:e.context,renderElement:o}):r({elementId:i,element:a,spec:e.spec,context:e.context,renderElement:o})},s=o(e.spec.root);return s&&t.appendChild(s),t}function dn(e,t){if(!t)return e;const n={...e};for(const[r,o]of Object.entries(t))o&&(n[r]=o);return n}function ln(e,t){const n={event_name:"stream.start",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,payload:{endpoint:t.endpoint,request_id:t.request_id}};return e.view_id!==void 0&&(n.view_id=e.view_id),e.user_id!==void 0&&(n.user_id=e.user_id),t.widget!==void 0&&(n.widget=t.widget),e.page_type!==void 0&&(n.page_type=e.page_type),e.sku!==void 0&&(n.sku=e.sku),n}function Ze(e,t){const n={event_name:"stream.done",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,payload:{request_id:t.request_id,latency_ms:t.latency_ms,chunk_count:t.chunk_count}};return e.view_id!==void 0&&(n.view_id=e.view_id),e.user_id!==void 0&&(n.user_id=e.user_id),t.widget!==void 0&&(n.widget=t.widget),e.page_type!==void 0&&(n.page_type=e.page_type),e.sku!==void 0&&(n.sku=e.sku),n}function pn(e,t){const n={event_name:"stream.error",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,payload:{request_id:t.request_id,error_code:t.error_code,error_message:t.error_message}};return e.view_id!==void 0&&(n.view_id=e.view_id),e.user_id!==void 0&&(n.user_id=e.user_id),t.widget!==void 0&&(n.widget=t.widget),e.page_type!==void 0&&(n.page_type=e.page_type),e.sku!==void 0&&(n.sku=e.sku),n}function fn(e,t){const n={event_name:"metering.summary",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,payload:{meter_key:t.meter_key,quantity:t.quantity,unit:t.unit}};return e.view_id!==void 0&&(n.view_id=e.view_id),e.user_id!==void 0&&(n.user_id=e.user_id),e.page_type!==void 0&&(n.page_type=e.page_type),e.sku!==void 0&&(n.sku=e.sku),n}function Re(e,t){const n={event_name:"widget.history.snapshot",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,widget:t.widget,payload:{message_count:t.message_count,history_ref:t.history_ref,redaction_level:t.redaction_level}};return e.view_id!==void 0&&(n.view_id=e.view_id),e.user_id!==void 0&&(n.user_id=e.user_id),e.page_type!==void 0&&(n.page_type=e.page_type),e.sku!==void 0&&(n.sku=e.sku),n}function gn(e,t){const n={event_name:"basket.add",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,widget:t.attribution_source,payload:{attribution_source:t.attribution_source,attribution_action_id:t.attribution_action_id,cart_value:t.cart_value,currency:t.currency,line_items:t.line_items,sku:t.sku}};return e.view_id!==void 0&&(n.view_id=e.view_id),e.user_id!==void 0&&(n.user_id=e.user_id),e.page_type!==void 0&&(n.page_type=e.page_type),e.sku!==void 0&&(n.sku=e.sku),n}function mn(e,t){const n={event_name:"checkout.start",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,widget:t.attribution_source,payload:{attribution_source:t.attribution_source,attribution_action_id:t.attribution_action_id,cart_value:t.cart_value,currency:t.currency,line_items:t.line_items}};return e.view_id!==void 0&&(n.view_id=e.view_id),e.user_id!==void 0&&(n.user_id=e.user_id),e.page_type!==void 0&&(n.page_type=e.page_type),e.sku!==void 0&&(n.sku=e.sku),n}function hn(e,t){const n={event_name:"checkout.complete",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,widget:t.attribution_source,payload:{attribution_source:t.attribution_source,attribution_action_id:t.attribution_action_id,cart_value:t.cart_value,currency:t.currency,line_items:t.line_items}};return e.view_id!==void 0&&(n.view_id=e.view_id),e.user_id!==void 0&&(n.user_id=e.user_id),e.page_type!==void 0&&(n.page_type=e.page_type),e.sku!==void 0&&(n.sku=e.sku),n}const _n=new Set(["p","br","a","strong","b","em","i","u","ul","ol","li","h1","h2","h3","h4","h5","h6","span","div","table","thead","tbody","tr","th","td","hr","code","pre","blockquote","img","sup","sub"]),yn=new Set(["script","iframe","object","embed","form","input","textarea","select","button","style","link","meta","template","noscript"]),xe={"*":new Set(["class"]),a:new Set(["href","target","rel"]),img:new Set(["src","alt","width","height"]),div:new Set(["style"]),span:new Set(["style"]),p:new Set(["style"])};function vn(e){return/^\s*javascript\s*:/i.test(e)}const bn=new Set(["color","background-color","font-size","font-weight","font-style","font-family","text-align","text-decoration","line-height","letter-spacing","margin","margin-top","margin-right","margin-bottom","margin-left","padding","padding-top","padding-right","padding-bottom","padding-left","border","border-top","border-right","border-bottom","border-left","border-radius","border-color","border-width","border-style","width","max-width","min-width","height","max-height","min-height","display","vertical-align","white-space","word-break","overflow","opacity","visibility","list-style","list-style-type","text-transform","text-indent","text-overflow","box-sizing","flex","flex-direction","flex-wrap","justify-content","align-items","gap"]),wn=/url\s*\(|expression\s*\(|javascript\s*:|\bimport\b|-moz-binding|behavior\s*:/i;function kn(e){const t=[];for(const n of e.split(";")){const r=n.trim();if(!r)continue;const o=r.indexOf(":");if(o===-1)continue;const s=r.slice(0,o).trim().toLowerCase(),i=r.slice(o+1).trim();bn.has(s)&&(wn.test(i)||t.push(r))}return t.join("; ")}function ge(e,t){if(e.nodeType===Node.TEXT_NODE)return;if(e.nodeType!==Node.ELEMENT_NODE){e.parentNode?.removeChild(e);return}const n=e,r=n.tagName.toLowerCase();if(yn.has(r)){n.parentNode?.removeChild(n);return}if(!_n.has(r)){const c=Array.from(n.childNodes);for(const u of c)t.insertBefore(u,n);t.removeChild(n);for(const u of c)ge(u,t);return}const o=xe["*"]??new Set,s=xe[r]??new Set,i=Array.from(n.attributes);for(const c of i){const u=c.name.toLowerCase();if(!o.has(u)&&!s.has(u)){n.removeAttribute(c.name);continue}if(vn(c.value)){n.removeAttribute(c.name);continue}if(u==="style"){const d=kn(c.value);d?n.setAttribute("style",d):n.removeAttribute("style");continue}}if(r==="a"){const c=n.getAttribute("href");if(c!==null){const u=c.trim().toLowerCase();!u.startsWith("http://")&&!u.startsWith("https://")&&!u.startsWith("mailto:")&&n.removeAttribute("href")}n.setAttribute("target","_blank"),n.setAttribute("rel","noopener noreferrer")}if(r==="img"){const c=n.getAttribute("src");c!==null&&(c.trim().toLowerCase().startsWith("https://")||n.removeAttribute("src"))}const a=Array.from(n.childNodes);for(const c of a)ge(c,n)}const Sn=["http:","https:"];function En(e){try{return Sn.includes(new URL(e).protocol)}catch{return!1}}function zn(e){if(!e)return"";const n=new DOMParser().parseFromString(e,"text/html").body,r=Array.from(n.childNodes);for(const o of r)ge(o,n);return n.innerHTML}function me(e,t){window.dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!1}))}function Le(e,t){const n=r=>{t(r.detail)};return window.addEventListener(e,n),()=>window.removeEventListener(e,n)}function Cn(){const t=window.__gengageSessionId??sessionStorage.getItem("gengage_session_id")??null??crypto.randomUUID();return window.__gengageSessionId=t,sessionStorage.setItem("gengage_session_id",t),window.gengage||(window.gengage={}),window.gengage.sessionId=t,t}function Tn(e){return{sessionId:e?.sessionId??Cn(),...e}}const De={"--gengage-chat-offset":"20px","--gengage-chat-launcher-size":"56px","--gengage-chat-width":"400px","--gengage-chat-shell-radius":"12px","--gengage-chat-header-height":"60px","--gengage-chat-conversation-width":"396px","--gengage-chat-panel-min-width":"320px","--gengage-chat-panel-max-width":"860px","--gengage-chat-input-height":"48px","--gengage-qna-pill-radius":"999px","--gengage-qna-input-radius":"14px","--gengage-simrel-card-radius":"14px"};function $n(e){return e?{...De,...e}:{...De}}const L="gengage-global-toast-root",je="gengage-global-toast-style",he="gengage-global-toast-root--visible",In=4200,An=1500,Pn=15e3;let Ue=!1,q=null;function On(e){return typeof e=="string"&&e.toLowerCase().startsWith("tr")?"Baglanti sorunu olustu. Lutfen tekrar deneyin.":"Connection issue. Please try again."}function Nn(){Ue||typeof window>"u"||typeof document>"u"||(Ue=!0,Le("gengage:global:error",e=>{Zn(e)}))}function Zn(e){if(typeof document>"u")return;const t=e.message.trim();if(!t)return;jn();const n=Ln();n.innerHTML="";const r=document.createElement("section");r.className="gengage-global-toast gengage-global-toast--error",r.setAttribute("role","status"),r.setAttribute("aria-live","polite");const o=document.createElement("div");o.className="gengage-global-toast-title",o.textContent=xn(e.source);const s=document.createElement("div");s.className="gengage-global-toast-message",s.textContent=t,r.appendChild(o),r.appendChild(s),n.appendChild(r),n.classList.add(he),q&&(clearTimeout(q),q=null),q=setTimeout(()=>{Rn()},Dn(e.durationMs))}function Rn(){if(typeof document>"u")return;const e=document.getElementById(L);e&&(e.classList.remove(he),e.innerHTML="",q&&(clearTimeout(q),q=null))}function xn(e){switch(e){case"chat":return"Chat warning";case"qna":return"QnA warning";case"simrel":return"Widget warning";default:return"Connection warning"}}function Ln(){const e=document.getElementById(L);if(e instanceof HTMLElement)return e;const t=document.createElement("div");return t.id=L,t.className="gengage-global-toast-root",document.body.appendChild(t),t}function Dn(e){return typeof e!="number"||!Number.isFinite(e)?In:Math.min(Pn,Math.max(An,Math.round(e)))}function jn(){if(document.getElementById(je))return;const e=document.createElement("style");e.id=je,e.textContent=`
|
|
1
|
+
(function(F){"use strict";const cn=({element:e,renderElement:t})=>{if(!e.children||e.children.length===0)return null;const n=document.createElement("div");for(const r of e.children){const o=t(r);o&&n.appendChild(o)}return n};function un(e){const t=document.createElement("div");if(t.className=e.containerClassName,!e.spec.elements[e.spec.root])return t;const r=e.unknownRenderer??cn,o=i=>{const a=e.spec.elements[i];if(!a)return null;const c=e.registry[a.type];return c?c({elementId:i,element:a,spec:e.spec,context:e.context,renderElement:o}):r({elementId:i,element:a,spec:e.spec,context:e.context,renderElement:o})},s=o(e.spec.root);return s&&t.appendChild(s),t}function dn(e,t){if(!t)return e;const n={...e};for(const[r,o]of Object.entries(t))o&&(n[r]=o);return n}function ln(e,t){const n={event_name:"stream.start",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,payload:{endpoint:t.endpoint,request_id:t.request_id}};return e.view_id!==void 0&&(n.view_id=e.view_id),e.user_id!==void 0&&(n.user_id=e.user_id),t.widget!==void 0&&(n.widget=t.widget),e.page_type!==void 0&&(n.page_type=e.page_type),e.sku!==void 0&&(n.sku=e.sku),n}function Ze(e,t){const n={event_name:"stream.done",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,payload:{request_id:t.request_id,latency_ms:t.latency_ms,chunk_count:t.chunk_count}};return e.view_id!==void 0&&(n.view_id=e.view_id),e.user_id!==void 0&&(n.user_id=e.user_id),t.widget!==void 0&&(n.widget=t.widget),e.page_type!==void 0&&(n.page_type=e.page_type),e.sku!==void 0&&(n.sku=e.sku),n}function pn(e,t){const n={event_name:"stream.error",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,payload:{request_id:t.request_id,error_code:t.error_code,error_message:t.error_message}};return e.view_id!==void 0&&(n.view_id=e.view_id),e.user_id!==void 0&&(n.user_id=e.user_id),t.widget!==void 0&&(n.widget=t.widget),e.page_type!==void 0&&(n.page_type=e.page_type),e.sku!==void 0&&(n.sku=e.sku),n}function fn(e,t){const n={event_name:"metering.summary",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,payload:{meter_key:t.meter_key,quantity:t.quantity,unit:t.unit}};return e.view_id!==void 0&&(n.view_id=e.view_id),e.user_id!==void 0&&(n.user_id=e.user_id),e.page_type!==void 0&&(n.page_type=e.page_type),e.sku!==void 0&&(n.sku=e.sku),n}function Re(e,t){const n={event_name:"widget.history.snapshot",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,widget:t.widget,payload:{message_count:t.message_count,history_ref:t.history_ref,redaction_level:t.redaction_level}};return e.view_id!==void 0&&(n.view_id=e.view_id),e.user_id!==void 0&&(n.user_id=e.user_id),e.page_type!==void 0&&(n.page_type=e.page_type),e.sku!==void 0&&(n.sku=e.sku),n}function gn(e,t){const n={event_name:"basket.add",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,widget:t.attribution_source,payload:{attribution_source:t.attribution_source,attribution_action_id:t.attribution_action_id,cart_value:t.cart_value,currency:t.currency,line_items:t.line_items,sku:t.sku}};return e.view_id!==void 0&&(n.view_id=e.view_id),e.user_id!==void 0&&(n.user_id=e.user_id),e.page_type!==void 0&&(n.page_type=e.page_type),e.sku!==void 0&&(n.sku=e.sku),n}function mn(e,t){const n={event_name:"checkout.start",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,widget:t.attribution_source,payload:{attribution_source:t.attribution_source,attribution_action_id:t.attribution_action_id,cart_value:t.cart_value,currency:t.currency,line_items:t.line_items}};return e.view_id!==void 0&&(n.view_id=e.view_id),e.user_id!==void 0&&(n.user_id=e.user_id),e.page_type!==void 0&&(n.page_type=e.page_type),e.sku!==void 0&&(n.sku=e.sku),n}function hn(e,t){const n={event_name:"checkout.complete",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,widget:t.attribution_source,payload:{attribution_source:t.attribution_source,attribution_action_id:t.attribution_action_id,cart_value:t.cart_value,currency:t.currency,line_items:t.line_items}};return e.view_id!==void 0&&(n.view_id=e.view_id),e.user_id!==void 0&&(n.user_id=e.user_id),e.page_type!==void 0&&(n.page_type=e.page_type),e.sku!==void 0&&(n.sku=e.sku),n}const _n=new Set(["p","br","a","strong","b","em","i","u","ul","ol","li","h1","h2","h3","h4","h5","h6","span","div","table","thead","tbody","tr","th","td","hr","code","pre","blockquote","img","sup","sub"]),yn=new Set(["script","iframe","object","embed","form","input","textarea","select","button","style","link","meta","template","noscript"]),xe={"*":new Set(["class"]),a:new Set(["href","target","rel"]),img:new Set(["src","alt","width","height"]),div:new Set(["style"]),span:new Set(["style"]),p:new Set(["style"])};function vn(e){return/^\s*javascript\s*:/i.test(e)}const bn=new Set(["color","background-color","font-size","font-weight","font-style","font-family","text-align","text-decoration","line-height","letter-spacing","margin","margin-top","margin-right","margin-bottom","margin-left","padding","padding-top","padding-right","padding-bottom","padding-left","border","border-top","border-right","border-bottom","border-left","border-radius","border-color","border-width","border-style","width","max-width","min-width","height","max-height","min-height","display","vertical-align","white-space","word-break","overflow","opacity","visibility","list-style","list-style-type","text-transform","text-indent","text-overflow","box-sizing","flex","flex-direction","flex-wrap","justify-content","align-items","gap"]),wn=/url\s*\(|expression\s*\(|javascript\s*:|\bimport\b|-moz-binding|behavior\s*:/i;function kn(e){const t=[];for(const n of e.split(";")){const r=n.trim();if(!r)continue;const o=r.indexOf(":");if(o===-1)continue;const s=r.slice(0,o).trim().toLowerCase(),i=r.slice(o+1).trim();bn.has(s)&&(wn.test(i)||t.push(r))}return t.join("; ")}function ge(e,t){if(e.nodeType===Node.TEXT_NODE)return;if(e.nodeType!==Node.ELEMENT_NODE){e.parentNode?.removeChild(e);return}const n=e,r=n.tagName.toLowerCase();if(yn.has(r)){n.parentNode?.removeChild(n);return}if(!_n.has(r)){const c=Array.from(n.childNodes);for(const u of c)t.insertBefore(u,n);t.removeChild(n);for(const u of c)ge(u,t);return}const o=xe["*"]??new Set,s=xe[r]??new Set,i=Array.from(n.attributes);for(const c of i){const u=c.name.toLowerCase();if(!o.has(u)&&!s.has(u)){n.removeAttribute(c.name);continue}if(vn(c.value)){n.removeAttribute(c.name);continue}if(u==="style"){const d=kn(c.value);d?n.setAttribute("style",d):n.removeAttribute("style");continue}}if(r==="a"){const c=n.getAttribute("href");if(c!==null){const u=c.trim().toLowerCase();!u.startsWith("http://")&&!u.startsWith("https://")&&!u.startsWith("mailto:")&&n.removeAttribute("href")}n.setAttribute("target","_blank"),n.setAttribute("rel","noopener noreferrer")}if(r==="img"){const c=n.getAttribute("src");c!==null&&(c.trim().toLowerCase().startsWith("https://")||n.removeAttribute("src"))}const a=Array.from(n.childNodes);for(const c of a)ge(c,n)}const Sn=["http:","https:"];function En(e){try{return Sn.includes(new URL(e).protocol)}catch{return!1}}function zn(e){if(!e)return"";const n=new DOMParser().parseFromString(e,"text/html").body,r=Array.from(n.childNodes);for(const o of r)ge(o,n);return n.innerHTML}function me(e,t){window.dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!1}))}function Le(e,t){const n=r=>{t(r.detail)};return window.addEventListener(e,n),()=>window.removeEventListener(e,n)}function Cn(){const t=window.__gengageSessionId??sessionStorage.getItem("gengage_session_id")??null??crypto.randomUUID();return window.__gengageSessionId=t,sessionStorage.setItem("gengage_session_id",t),window.gengage||(window.gengage={}),window.gengage.sessionId=t,t}function Tn(e){return{sessionId:e?.sessionId??Cn(),...e}}const De={"--gengage-chat-offset":"20px","--gengage-chat-launcher-size":"56px","--gengage-chat-width":"400px","--gengage-chat-shell-radius":"12px","--gengage-chat-header-height":"60px","--gengage-chat-conversation-width":"396px","--gengage-chat-panel-min-width":"320px","--gengage-chat-panel-max-width":"860px","--gengage-chat-input-height":"48px","--gengage-qna-pill-radius":"999px","--gengage-qna-input-radius":"14px","--gengage-simrel-card-radius":"14px"};function $n(e){return e?{...De,...e}:{...De}}const L="gengage-global-toast-root",je="gengage-global-toast-style",he="gengage-global-toast-root--visible",In=4200,An=1500,Pn=15e3;let Ue=!1,q=null;function On(e){return typeof e=="string"&&e.toLowerCase().startsWith("tr")?"Bağlantı sorunu oluştu. Lütfen tekrar deneyin.":"Connection issue. Please try again."}function Nn(){Ue||typeof window>"u"||typeof document>"u"||(Ue=!0,Le("gengage:global:error",e=>{Zn(e)}))}function Zn(e){if(typeof document>"u")return;const t=e.message.trim();if(!t)return;jn();const n=Ln();n.innerHTML="";const r=document.createElement("section");r.className="gengage-global-toast gengage-global-toast--error",r.setAttribute("role","status"),r.setAttribute("aria-live","polite");const o=document.createElement("div");o.className="gengage-global-toast-title",o.textContent=xn(e.source);const s=document.createElement("div");s.className="gengage-global-toast-message",s.textContent=t,r.appendChild(o),r.appendChild(s),n.appendChild(r),n.classList.add(he),q&&(clearTimeout(q),q=null),q=setTimeout(()=>{Rn()},Dn(e.durationMs))}function Rn(){if(typeof document>"u")return;const e=document.getElementById(L);e&&(e.classList.remove(he),e.innerHTML="",q&&(clearTimeout(q),q=null))}function xn(e){switch(e){case"chat":return"Chat warning";case"qna":return"QnA warning";case"simrel":return"Widget warning";default:return"Connection warning"}}function Ln(){const e=document.getElementById(L);if(e instanceof HTMLElement)return e;const t=document.createElement("div");return t.id=L,t.className="gengage-global-toast-root",document.body.appendChild(t),t}function Dn(e){return typeof e!="number"||!Number.isFinite(e)?In:Math.min(Pn,Math.max(An,Math.round(e)))}function jn(){if(document.getElementById(je))return;const e=document.createElement("style");e.id=je,e.textContent=`
|
|
2
2
|
#${L} {
|
|
3
3
|
position: fixed;
|
|
4
4
|
top: 16px;
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
`,document.head.appendChild(e)}let K=null;function Un(){if(K!==null)return K;try{K=localStorage.getItem("gengage:debug")==="1"}catch{K=!1}return K}function _e(e,t,n){if(!Un())return;const r=[`[gengage:${e}]`,t];n!==void 0&&r.push(n),console.debug(...r)}class Mn{constructor(){this.isVisible=!1,this.isInitialised=!1,this._handlers=new Map,this._cleanups=[],this._ownsRoot=!1,this._destroying=!1}async init(t){if(this.isInitialised){console.warn("[gengage] Widget already initialised. Call update() instead.");return}const n=$n(t.theme);this.config={...t,theme:n,session:Tn(t.session)},this.root=this._resolveMount(t.mountTarget),this._applyTheme(n),Nn();const r=Le("gengage:context:update",o=>this.update(o));this._cleanups.push(r),_e("lifecycle",`${this.constructor.name}.init`,{accountId:t.accountId,sku:t.pageContext?.sku});try{await this.onInit(this.config)}catch(o){throw this.destroy(),o}this._destroying||(this.isInitialised=!0,_e("lifecycle",`${this.constructor.name} ready`),this.emit("ready"))}update(t){this.isInitialised&&(this.config.pageContext?this.config={...this.config,pageContext:{...this.config.pageContext,...t}}:t.pageType!==void 0&&(this.config={...this.config,pageContext:t}),this.onUpdate(t),this.emit("context-update",this.config.pageContext))}show(){this.isVisible||(this.isVisible=!0,this.root.style.display="",this.onShow(),this.emit("show"))}hide(){this.isVisible&&(this.isVisible=!1,this.root.style.display="none",this.onHide(),this.emit("hide"))}destroy(){this._destroying||(this._destroying=!0,this.emit("destroy"),this._cleanups.forEach(t=>t()),this._cleanups.length=0,this._handlers.clear(),this.onDestroy(),this.config.analyticsClient?.destroy(),this._ownsRoot?this.root.remove():this.root.innerHTML="",this.isInitialised=!1)}on(t,n){return this._handlers.has(t)||this._handlers.set(t,new Set),this._handlers.get(t).add(n),()=>this._handlers.get(t)?.delete(n)}trackCheckout(t,n){const r=t==="start"?mn:hn;this.track(r(this.analyticsContext(),n))}flushMeteringSummary(t){this.track(fn(this.analyticsContext(),t))}emit(t,...n){this._handlers.get(t)?.forEach(r=>r(...n))}addCleanup(t){this._cleanups.push(t)}track(t){this.config.analyticsClient?.track(t)}analyticsContext(){const t={account_id:this.config.accountId,session_id:this.config.session?.sessionId??"",correlation_id:this.config.session?.sessionId??""};return this.config.session?.viewId!==void 0&&(t.view_id=this.config.session.viewId),this.config.session?.userId!==void 0&&(t.user_id=this.config.session.userId),this.config.pageContext?.pageType!==void 0&&(t.page_type=this.config.pageContext.pageType),this.config.pageContext?.sku!==void 0&&(t.sku=this.config.pageContext.sku),this.config.session?.abTestVariant!==void 0&&(t.ab_test_variant=this.config.session.abTestVariant),this.config.session?.abTestExperimentId!==void 0&&(t.ab_test_experiment_id=this.config.session.abTestExperimentId),t}_resolveMount(t){if(t instanceof HTMLElement)return t;if(typeof t=="string"){const r=document.querySelector(t);if(!r)throw new Error(`[gengage] Mount target not found: "${t}"`);return r}const n=document.createElement("div");return n.dataset.gengageWidget=this.constructor.name.toLowerCase(),document.body.appendChild(n),this._ownsRoot=!0,n}_applyTheme(t){if(t){for(const[n,r]of Object.entries(t))if(r!==void 0){const o=n.startsWith("--")?n:`--gengage-${Fn(n)}`;this.root.style.setProperty(o,r)}}}}function Fn(e){return e.replace(/([A-Z])/g,"-$1").toLowerCase()}const qn={process_action:"/process_action",launcher_action:"/launcher_action",similar_products:"/similar_products",product_groupings:"/product_groupings"};function Jn(e){if(e===void 0)throw new Error("[gengage] middlewareUrl is required. Pass your Gengage backend URL in widget config.");const t=e.trim();return t===""?"":t.replace(/\/+$/,"")}function Me(e,t){return`${Jn(t?.middlewareUrl)}/chat${qn[e]}`}function Fe(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function Gn(e){const t=[];let n=0,r=!1,o=!1,s=0;for(let i=0;i<e.length;i++){const a=e[i];if(o){o=!1;continue}if(a==="\\"&&r){o=!0;continue}if(a==='"'){r=!r;continue}r||(a==="{"&&n++,a==="}"&&(n--,n===0&&(t.push(e.slice(s,i+1)),s=i+1)))}return t.length>0?t:[e]}function qe(e,t){const n=e.trim();if(!n||n.startsWith(":"))return!1;const r=n.startsWith("data: ")?n.slice(6):n;if(r==="[DONE]")return t.onDone?.(),!0;try{const o=JSON.parse(r);return Fe(o)?(_e("stream",`event: ${o.type}`,o),t.onEvent(o),o.type==="done"?(t.onDone?.(),!0):!1):!1}catch{const o=Gn(r);if(o.length>1){for(const s of o)try{const i=JSON.parse(s);if(!Fe(i))continue;if(t.onEvent(i),i.type==="done")return t.onDone?.(),!0}catch{}return!1}return!1}}async function Je(e,t){if(!e.ok){t.onError?.(new Error(`HTTP ${e.status}: ${e.statusText}`));return}if(!e.body){t.onError?.(new Error("Response body is null — streaming not supported"));return}const n=e.body.getReader(),r=new TextDecoder("utf-8");let o="";const s=t.idleTimeoutMs??6e4,i=Symbol("idle-timeout");let a=!1;try{for(;;){const c=n.read();let u;const d=await(s>0?Promise.race([c.then(h=>(clearTimeout(u),h)),new Promise(h=>{u=setTimeout(()=>h(i),s)})]):c);if(d===i){a=!0,await n.cancel();break}const{done:g,value:f}=d;if(g)break;o+=r.decode(f,{stream:!0});const m=o.split(`
|
|
47
|
-
`);o=m.pop()??"";for(const h of m)if(qe(h,t))return}if(o.trim()&&qe(o,t))return}catch(c){if(c instanceof DOMException&&c.name==="AbortError")return;t.onError?.(c instanceof Error?c:new Error(String(c)))}finally{a||n.releaseLock()}t.onDone?.()}function Ge(e){if(typeof e.type!="string")return null;if(Vn(e))return e;const n=e;switch(n.type){case"outputText":return Bn(n);case"suggestedActions":return Hn(n);case"productList":return Wn(n);case"productDetails":return Kn(n);case"productDetailsSimilars":return Yn(n);case"comparisonTable":return Qn(n);case"context":return nr(n);case"chatStreamEnd":return rr();case"loading":return or(n);case"panelLoading":return ir(n);case"similarLoading":return sr(n);case"redirect":return ar(n);case"error":return cr(n);case"dummy":return ur();case"launcherAction":return dr(n);case"text":return ye(n);case"productItem":return lr(n);case"text_image":return Ve(n);case"quick_qna":return Be(n);case"reviewHighlights":return pr(n);case"aiProductSuggestions":return mr(n);case"aiProductGroupings":return hr(n);case"aiSuggestedSearches":return _r(n);case"prosAndCons":return fr(n);case"getGroundingReview":return yr(n);case"voice":return br(n);case"visitorDataResponse":return gr(n);case"productListPreview":return vr();case"groupList":return wr(n);case"formGetInfo":case"formTestDrive":case"formServiceRequest":case"launchFormPage":return kr(n);case"launcherContent":return Er(n);case"handoff":return Sr(n);default:return null}}function Vn(e){const t=e.type;if(typeof t!="string")return!1;switch(t){case"metadata":return typeof e.sessionId=="string"&&typeof e.model=="string";case"text_chunk":return typeof e.content=="string";case"ui_spec":{const n=e.widget;if(n!=="chat"&&n!=="qna"&&n!=="simrel")return!1;const r=R(e.spec);return r?typeof r.root=="string"&&R(r.elements)!==null:!1}case"action":{const n=R(e.action);return n!==null&&typeof n.kind=="string"}case"error":return typeof e.code=="string"&&typeof e.message=="string";case"done":return!0;default:return!1}}function Bn(e){const t=b(e.payload.text,e.payload.plain_text)??"",n=b(e.payload.plain_text,e.payload.text)??t;if(e.payload.is_error)return{type:"error",code:"BACKEND_ERROR",message:n||"Backend returned an error"};const r={type:"text_chunk",content:t,final:!0},o=e.payload.product_mentions;Array.isArray(o)&&o.length>0&&(r.productMentions=o.filter(a=>typeof a=="object"&&a!==null&&typeof a.sku=="string"&&typeof a.short_name=="string"));const s=e.payload.sku_to_product_item;s&&typeof s=="object"&&!Array.isArray(s)&&(r.skuToProductItem=s);const i=e.payload.conversation_mode;return typeof i=="string"&&i&&(r.conversationMode=i),r}function Hn(e){const t=(e.payload.actions??[]).map(n=>{const r=b(n.title)??"",o=N(n.requestDetails,r),s=o?{label:r,action:o}:null;return s?(typeof n.icon=="string"&&(s.icon=n.icon),typeof n.image=="string"&&(s.image=n.image),s):null});return He(t.filter(Ke),"chat")}function Wn(e){const t=We(e.payload.product_list??[],"chat");t.panelHint="panel";const n=t.spec.elements[t.spec.root];return n&&(typeof e.payload.offset=="number"&&(n.props={...n.props,offset:e.payload.offset}),typeof e.payload.end_of_list=="boolean"&&(n.props={...n.props,endOfList:e.payload.end_of_list}),typeof e.payload.title=="string"&&(n.props={...n.props,panelTitle:e.payload.title})),t}function Kn(e){const t=e.payload.productDetails;return t?{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"ProductDetailsPanel",props:{product:D(t)}}}},panelHint:"panel"}:Cr("chat")}function Yn(e){const t=We(e.payload.similarProducts??[],"chat"),n=t.spec.elements[t.spec.root];return n&&(n.props={...n.props,similarsAppend:!0}),{...t,panelHint:"panel"}}function Qn(e){const t=e.payload.multiple_product_details??[],n=e.payload,r={key_differences:n.key_differences,recommended_choice:n.recommended_choice,recommended_choice_sku:n.recommended_choice_sku,special_considerations:n.special_considerations,criteria_view:n.criteria_view,criteria_view_short:n.criteria_view_short,compared_field_names:n.compared_field_names,winner_product:n.winner_product,winner_hits:n.winner_hits,...e.payload.product_comparison_framework??{}},o=e.payload.table,s=e.payload.features_list,i=[];for(const y of t){const w=D(y);i.push(w)}const a=Xn(o,i,r,s);let c;r?.recommended_choice_sku?c=r.recommended_choice_sku:r?.winner_product&&r.winner_product.length>0&&(c=r.winner_product[0]?.product_detail?.sku??r.winner_product[0]?.sku);const u=c?i.find(y=>y.sku===c)??i[0]:i[0],d=[];if(Array.isArray(r?.key_differences))for(const y of r.key_differences)typeof y=="string"&&d.push(y);const g=Ar(r?.special_considerations),f=r?.recommended_choice,m=r?.winner_hits,h={};for(const y of i){const w=y.sku;w&&(h[w]={title:y.name??w,type:"launchSingleProduct",payload:{sku:w}})}const p={products:i,attributes:a,highlights:d,productActions:h};return u&&(p.recommended=u),g.length>0&&(p.specialCases=g),f&&(p.recommendedText=f),m&&(p.winnerHits=m),typeof r?.key_differences=="string"&&(p.keyDifferencesHtml=r.key_differences),r?.special_considerations&&(p.specialConsiderations=r.special_considerations),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"ComparisonTable",props:p}}},panelHint:"panel"}}function Xn(e,t,n,r){if(!e)return[];const o=Object.entries(e);if(o.length===0)return[];const s=o[0]?.[1];if(Array.isArray(s)){const f=n.criteria_view??n.criteria_view_short??{},m=n.compared_field_names??Object.keys(e),h=[];for(const p of m){const y=e[p];if(!y||!Array.isArray(y))continue;const w=f[p]??p;h.push({label:w,values:y.map(x=>typeof x=="string"?x:String(x??""))})}return h}const i=e,a=t.map(f=>String(f.sku??"")).filter(f=>f.length>0),c=n.criteria_view??n.criteria_view_short??{},d=(r&&r.length>0?r:n.compared_field_names&&n.compared_field_names.length>0?n.compared_field_names:er(i)).filter(f=>f!=="name"&&f!=="name_short"&&!f.endsWith("_short")),g=[];for(const f of d){const m=a.map(p=>{const y=i[p];if(!y||typeof y!="object")return"";const w=y[`${f}_short`],x=y[f];return tr(w??x)});if(m.every(p=>p.length===0))continue;const h=c[f]??f;g.push({label:h,values:m})}return g}function er(e){const t=[],n=new Set;for(const r of Object.values(e))if(!(!r||typeof r!="object"))for(const o of Object.keys(r))n.has(o)||(n.add(o),t.push(o));return t}function tr(e){return typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):""}function nr(e){return{type:"metadata",sessionId:"",model:"",meta:{panel:e.payload.panel,messages:e.payload.messages,message_id:e.payload.message_id}}}function rr(){return{type:"done"}}function or(e){return{type:"metadata",sessionId:"",model:"",meta:{loading:!0,loadingText:e.payload.text,thinkingMessages:e.payload.thinking_messages,dynamicLoading:e.payload.is_dynamic===!0}}}function ir(e){return{type:"metadata",sessionId:"",model:"",meta:{loading:!0,panelLoading:!0,panelPendingType:e.payload?.pending_type,loadingText:e.payload?.text}}}function sr(e){return{type:"metadata",sessionId:"",model:"",meta:{loading:!0,similarPanelLoading:!0,panelPendingType:e.payload?.pending_type,loadingText:e.payload?.text}}}function ar(e){const t=b(e.payload.url);return t?{type:"action",action:{kind:"navigate",url:t,newTab:e.payload.new_tab===!0}}:{type:"metadata",sessionId:"",model:"",meta:{redirect:e.payload,redirectTarget:b(e.payload.to)}}}function cr(e){return{type:"error",code:"BACKEND_ERROR",message:b(e.payload?.text,e.payload?.message,e.payload?.error)??"Backend returned an error"}}function ur(e){return{type:"metadata",sessionId:"",model:"",meta:{noop:!0}}}function dr(e){const t=e.payload??{};if(Array.isArray(t.action_list)){const s={action_list:t.action_list},i=typeof t.type=="string"?t.type:void 0,a=typeof t.theme=="string"?t.theme:void 0;return i!==void 0&&(s.type=i),a!==void 0&&(s.theme=a),Be({payload:s})}const r=R(t.action);if(r){const s={action:r},i=typeof t.text=="string"?t.text:void 0,a=typeof t.image_url=="string"?t.image_url:void 0,c=typeof t.theme=="string"?t.theme:void 0;return i!==void 0&&(s.text=i),a!==void 0&&(s.image_url=a),c!==void 0&&(s.theme=c),Ve({payload:s})}const o=typeof t.text=="string"?t.text:"";if(o){const s={text:o},i=typeof t.type=="string"?t.type:void 0,a=typeof t.theme=="string"?t.theme:void 0,c=R(t.payload)??void 0;return i!==void 0&&(s.type=i),c!==void 0&&(s.payload=c),a!==void 0&&(s.theme=a),ye({payload:s})}return{type:"metadata",sessionId:"",model:"",meta:{launcherAction:t}}}function ye(e){const t={text:b(e.payload.text)??""};return typeof e.payload.theme=="string"&&(t.theme=e.payload.theme),e.payload.payload!==void 0&&(t.payload=e.payload.payload),{type:"ui_spec",widget:"qna",spec:{root:"root",elements:{root:{type:"QuestionHeading",props:t}}}}}function lr(e){return zr(e.payload,"qna")}function Ve(e){const t=b(e.payload.text)??"",n=N(e.payload.action,t);if(n){const o={label:t||n.title,action:n};return typeof e.payload.image_url=="string"&&(o.image=e.payload.image_url),typeof e.payload.theme=="string"&&(o.theme=e.payload.theme),{type:"ui_spec",widget:"qna",spec:{root:"root",elements:{root:{type:"ActionButton",props:o}}}}}const r={text:t};return typeof e.payload.theme=="string"&&(r.theme=e.payload.theme),ye({payload:r})}function Be(e){const t=(e.payload.action_list??[]).map(n=>{const r=b(n.title)??"",o=N(n.requestDetails,r),s=o?{label:r,action:o}:null;return s?(typeof n.icon=="string"&&(s.icon=n.icon),typeof n.image=="string"&&(s.image=n.image),s):null});return He(t.filter(Ke),"qna")}function pr(e){const n={reviews:(e.payload.reviews??[]).map(r=>{const o={};return typeof r.review_class=="string"&&(o.review_class=r.review_class),typeof r.review_text=="string"&&(o.review_text=r.review_text),(typeof r.review_rating=="string"||typeof r.review_rating=="number")&&(o.review_rating=r.review_rating),typeof r.review_tag=="string"&&(o.review_tag=r.review_tag),o})};return typeof e.payload.sku=="string"&&(n.sku=e.payload.sku),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"ReviewHighlights",props:n}}}}}function fr(e){const t={};return Array.isArray(e.payload.pros)&&(t.pros=e.payload.pros),Array.isArray(e.payload.cons)&&(t.cons=e.payload.cons),typeof e.payload.product_name=="string"&&(t.productName=e.payload.product_name),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"ProsAndCons",props:t}}}}}function gr(e){return{type:"metadata",sessionId:"",model:"",meta:{visitorDataResponse:e.payload}}}function mr(e){const t=e.payload.product_suggestions??[],n=[];for(let r=0;r<t.length;r++){const o=t[r];if(!o)continue;const s=Tr(o);if(!s)continue;const i={product:s},a=N(o.requestDetails,s.name);a&&(i.action=a),typeof o.role=="string"&&(i.role=o.role),typeof o.reason=="string"&&(i.reason=o.reason),typeof o.review_highlight=="string"&&(i.reviewHighlight=o.review_highlight),Array.isArray(o.labels)&&(i.labels=o.labels),typeof o.expert_quality_score=="number"&&(i.expertQualityScore=o.expert_quality_score),n.push(i)}return n.length===0?{type:"metadata",sessionId:"",model:"",meta:{aiProductSuggestions:e.payload.product_suggestions??[]}}:{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"AITopPicks",props:{suggestions:n}}}}}}function hr(e){const t=e.payload.product_groupings??[],n=[];for(let r=0;r<t.length;r++){const o=t[r];if(!o)continue;const s=b(o.name)??"",i=o.sku&&o.sku.length>0?{type:"findSimilar",payload:{sku:o.sku}}:void 0,a=N(o.requestDetails??i,s);if(!a)continue;const c={name:s,action:a};if(Array.isArray(o.labels)){const u=o.labels.filter(d=>typeof d=="string");u.length>0&&(c.labels=u)}typeof o.image=="string"&&(c.image=o.image),n.push(c)}return n.length===0?{type:"metadata",sessionId:"",model:"",meta:{aiProductGroupings:e.payload.product_groupings??[]}}:{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"AIGroupingCards",props:{entries:n}}}}}}function _r(e){const t=e.payload.suggested_searches??[],n=[];for(let r=0;r<t.length;r++){const o=t[r];if(!o)continue;const s=b(o.short_name,o.chosen_attribute,o.detailed_user_message)??`Search ${r+1}`,i={},a=b(o.detailed_user_message);a&&(i.text=a);const c=R(o.requestDetails),u=R(c?.payload),d=u?.group_skus;o.group_skus&&Array.isArray(o.group_skus)?i.group_skus=o.group_skus:Array.isArray(d)&&(i.group_skus=d.filter(x=>typeof x=="string"));const g=b(o.sku,o.representative_product_sku,u?.sku);g&&(i.sku=g),i.is_suggested_text=1;const f={type:"inputText",payload:i},m=N(o.requestDetails,s),h=m?.type==="findSimilar"&&typeof i.text=="string"?N(f,s):m??N(f,s);if(!h)continue;const p={shortName:s,action:h},y=b(o.detailed_user_message);y&&y!==s&&(p.detailedMessage=y);const w=b(o.why_different);w&&(p.whyDifferent=w),typeof o.image=="string"&&(p.image=o.image),n.push(p)}return n.length===0?{type:"metadata",sessionId:"",model:"",meta:{aiSuggestedSearches:e.payload.suggested_searches??[]}}:{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"AISuggestedSearchCards",props:{entries:n}}}}}}function yr(e){const t=N(e.payload.requestDetails,b(e.payload.review_count,e.payload.text,e.payload.title)??"Urun yorumlarini goster");if(!t)return{type:"metadata",sessionId:"",model:"",meta:{groundingReview:e.payload}};const n={action:t};return e.payload.title&&(n.title=e.payload.title),e.payload.text&&(n.text=e.payload.text),e.payload.review_count&&(n.reviewCount=e.payload.review_count),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"GroundingReviewCard",props:n}}}}}function vr(){return{type:"metadata",sessionId:"",model:"",meta:{analyzeAnimation:!0}}}function br(e){return{type:"metadata",sessionId:"",model:"",meta:{voice:e.payload}}}function wr(e){const t=e.payload.group_list??[],n=[];for(const o of t){const s=o.group_name??"",i=(o.product_list??[]).map(D);n.push({groupName:s,products:i})}const r=[];for(const o of e.payload.filter_tags??[]){const s=o.title??"";if(!s)continue;const i=N(o.requestDetails,s),a={title:s};i&&(a.action=i),r.push(a)}return{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"CategoriesContainer",props:{groups:n,filterTags:r}}}},panelHint:"panel"}}function kr(e){return{type:"metadata",sessionId:"",model:"",meta:{formType:e.type,formPayload:e.payload??{}}}}function Sr(e){const t={};return typeof e.payload?.summary=="string"&&(t.summary=e.payload.summary),Array.isArray(e.payload?.products_discussed)&&(t.products_discussed=e.payload.products_discussed),typeof e.payload?.user_sentiment=="string"&&(t.user_sentiment=e.payload.user_sentiment),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"HandoffNotice",props:t}}}}}function Er(e){return{type:"metadata",sessionId:"",model:"",meta:{launcherContent:e.payload??{}}}}function He(e,t){const n={},r=[];for(let o=0;o<e.length;o++){const s=e[o];if(!s)continue;const i=`action-${o}`;r.push(i);const a={label:s.label,action:s.action};s.icon!==void 0&&(a.icon=s.icon),s.image!==void 0&&(a.image=s.image),s.description!==void 0&&(a.description=s.description),n[i]={type:"ActionButton",props:a}}return n.root={type:"ActionButtons",props:{buttons:e.map(o=>{const s={label:o.label,action:o.action};return o.image!==void 0&&(s.image=o.image),o.description!==void 0&&(s.description=o.description),o.icon!==void 0&&(s.icon=o.icon),s})},children:r},{type:"ui_spec",widget:t,spec:{root:"root",elements:n}}}function We(e,t){const n={},r=[];for(let o=0;o<e.length;o++){const s=e[o];if(!s)continue;const i=`product-${o}`;r.push(i),n[i]={type:"ProductCard",props:{product:D(s),index:o}}}return n.root={type:"ProductGrid",props:{layout:"grid"},children:r},{type:"ui_spec",widget:t,spec:{root:"root",elements:n}}}function zr(e,t){return{type:"ui_spec",widget:t,spec:{root:"root",elements:{root:{type:"ProductCard",props:{product:D(e),index:0}}}}}}function Cr(e){return{type:"ui_spec",widget:e,spec:{root:"root",elements:{root:{type:"ActionButtons",props:{buttons:[]},children:[]}}}}}function Tr(e){const t=b(e.sku),n=b(e.short_name),r=R(e.product_item)??e;return $r(r,t,n)}function $r(e,t,n){const r=b(e.sku,t),o=b(e.name,n);if(!r||!o)return null;const s={sku:r,name:o},i=b(e.brand);i&&(s.brand=i);const a=b(e.url);a&&(s.url=a);const c=Ir(e.images);if(c.length>0)s.images=c;else{const h=b(e.image,e.image_url,e.imageUrl);h&&(s.images=[h])}const u=Y(e.price_discounted);u!==void 0&&(s.price_discounted=u);const d=Y(e.price);d!==void 0&&(s.price=d);const g=Y(e.rating);g!==void 0&&(s.rating=g);const f=Y(e.review_count)??Y(e.reviewCount);f!==void 0&&(s.review_count=f);const m=b(e.cart_code,e.cartCode);return m&&(s.cart_code=m),typeof e.in_stock=="boolean"&&(s.in_stock=e.in_stock),typeof e.inStock=="boolean"&&(s.in_stock=e.inStock),D(s)}function N(e,t){const n=R(e);if(!n)return null;const r=n.type;if(typeof r!="string"||r.length===0)return null;const o={title:t||r,type:r};return n.payload!==void 0&&(o.payload=n.payload),o}function R(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function b(...e){for(const t of e)if(typeof t=="string"){const n=t.trim();if(n.length>0)return n}}function Ir(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):[]}function Ar(e){if(typeof e=="string"){const t=e.trim();return t?[t]:[]}return Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>t.trim()).filter(t=>t.length>0):[]}function Y(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"){let t;e.includes(".")&&e.includes(",")?t=e.replace(/\./g,"").replace(",","."):t=e.replace(",",".");const n=Number(t);if(Number.isFinite(n))return n}}function Ke(e){return e!=null}const Pr=new Set(["sku","name","brand","images","price","price_discounted","price_currency","discount_reason","url","rating","review_count","cart_code","in_stock","category_ids","category_names","variants","facet_hits","promotions"]);function D(e){const t=e.price_discounted!=null&&e.price_discounted>0,n=t?e.price_discounted:e.price,r=t&&e.price!=null?e.price:void 0;let o;r!=null&&n!=null&&r>0&&(o=Math.round((r-n)/r*100));const s=b(e.brand),i=b(e.name)??e.sku,a=s&&!i.toLowerCase().startsWith(s.toLowerCase())?`${s} ${i}`:i,c={sku:e.sku,name:a,url:b(e.url)??""},u=e.images?.[0];u&&(c.imageUrl=u),e.images&&e.images.length>1&&(c.images=e.images),n!=null&&(c.price=String(n)),r!=null&&(c.originalPrice=String(r)),o!==void 0&&(c.discountPercent=o),s!==void 0&&(c.brand=s),e.rating!==void 0&&(c.rating=e.rating),e.review_count!==void 0&&(c.reviewCount=e.review_count),e.cart_code!==void 0&&(c.cartCode=e.cart_code),e.in_stock!==void 0&&(c.inStock=e.in_stock),e.variants&&e.variants.length>0&&(c.variants=e.variants),e.discount_reason!==void 0&&(c.discountReason=e.discount_reason),e.promotions&&e.promotions.length>0&&(c.promotions=e.promotions);const d=e,g={};let f=!1;for(const m of Object.keys(d))Pr.has(m)||(g[m]=d[m],f=!0);return f&&(c.extras=g),c}function Or(e){return e.results.map(D)}function Nr(e){return e.product_groupings.map(t=>{const n={name:t.name,products:(t.group_products??[]).map(D)};return t.highlight!==void 0&&(n.highlight=t.highlight),n})}function Ye(e){const t=[];for(const n of Object.values(e))if(n.type==="ProductCard"&&n.props){const r=n.props.product??n.props;typeof r.sku=="string"&&typeof r.name=="string"&&t.push(r)}return t}function Qe(e){const t=e.headers.get("Content-Type")??"";return t.includes("application/x-ndjson")||t.includes("text/event-stream")}async function Zr(e,t){const n=[],r={onEvent:o=>{const s=Ge(o);!s||s.type!=="ui_spec"||n.push(...Ye(s.spec.elements))}};return t!==void 0&&(r.signal=t),await Je(e,r),n}async function Rr(e,t,n){const r=Me("similar_products",t),o={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)};n!==void 0&&(o.signal=n);const s=await fetch(r,o);if(!s.ok)throw new Error(`HTTP ${s.status}: ${s.statusText}`);if(Qe(s))return Zr(s,n);const i=await s.text();if(!i)return[];try{return Or(JSON.parse(i))}catch{throw new Error("Invalid JSON from similar_products endpoint")}}async function xr(e,t){const n=[];let r=null;const o={onEvent:s=>{const i=Ge(s);if(i){if(i.type==="metadata"&&i.meta){const a=i.meta.group_name;if(typeof a=="string"){r={name:a,products:[]};const c=i.meta.highlight;typeof c=="string"&&(r.highlight=c),n.push(r)}}i.type==="ui_spec"&&r&&r.products.push(...Ye(i.spec.elements))}}};return t!==void 0&&(o.signal=t),await Je(e,o),n}async function Lr(e,t,n){const r=Me("product_groupings",t),o={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)};n!==void 0&&(o.signal=n);const s=await fetch(r,o);if(!s.ok)throw new Error(`HTTP ${s.status}: ${s.statusText}`);if(Qe(s))return xr(s,n);const i=await s.text();if(!i)return[];try{return Nr(JSON.parse(i))}catch{throw new Error("Invalid JSON from product_groupings endpoint")}}const Dr={currencySymbol:"TL",currencyPosition:"suffix",thousandsSeparator:".",decimalSeparator:",",alwaysShowDecimals:!0};function Xe(e,t){const n=Number(e);if(!Number.isFinite(n)||n<0)return e;const r={...Dr,...t},s=n%1!==0||r.alwaysShowDecimals?n.toFixed(2):n.toFixed(0),i=s.indexOf("."),a=i===-1?s:s.slice(0,i),c=i===-1?void 0:s.slice(i+1),u=a.replace(/\B(?=(\d{3})+(?!\d))/g,r.thousandsSeparator);let d;return c!==void 0?d=`${u}${r.decimalSeparator}${c}`:d=u,r.currencySymbol?r.currencyPosition==="prefix"?`${r.currencySymbol}${d}`:`${d} ${r.currencySymbol}`:d}function jr(e){const t=e.min??1,n=e.max??99,r=Math.min(t,n),o=Math.max(t,n);let i=Math.max(r,Math.min(o,e.initial??r));const a=document.createElement("div");a.className="gengage-qty-stepper gengage-qty-stepper--compact";const c=document.createElement("button");c.className="gengage-qty-btn",c.type="button",c.textContent=e.decreaseSymbol??"−",c.setAttribute("aria-label",e.decreaseLabel??"Decrease");const u=document.createElement("span");u.className="gengage-qty-value",u.textContent=String(i),u.setAttribute("aria-live","polite"),u.setAttribute("aria-atomic","true");const d=document.createElement("button");d.className="gengage-qty-btn",d.type="button",d.textContent=e.increaseSymbol??"+",d.setAttribute("aria-label",e.increaseLabel??"Increase");const g=document.createElement("button");g.className="gengage-qty-submit",g.type="button";const f='<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="9" cy="21" r="1"/><circle cx="20" cy="21" r="1"/><path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"/></svg>';g.innerHTML=e.submitIcon??f,g.title=e.label??"Add to Cart";function m(){c.disabled=i<=r,d.disabled=i>=o}return c.addEventListener("click",h=>{h.stopPropagation(),i>r&&(i--,u.textContent=String(i),m())}),d.addEventListener("click",h=>{h.stopPropagation(),i<o&&(i++,u.textContent=String(i),m())}),g.addEventListener("click",h=>{h.stopPropagation(),e.onSubmit(i);const p=g.innerHTML;g.textContent="✓",g.classList.add("gengage-qty-submit--success"),g.disabled=!0,setTimeout(()=>{g.innerHTML=p,g.classList.remove("gengage-qty-submit--success"),g.disabled=!1},1200)}),a.addEventListener("click",h=>{h.stopPropagation()}),m(),a.appendChild(c),a.appendChild(u),a.appendChild(d),a.appendChild(g),a}function Ur(e){return Number.isFinite(e)?Math.max(0,Math.min(5,e)):0}function Mr(e){return Number.isFinite(e)?Math.max(0,Math.min(100,Math.round(e))):0}function Fr(e){const t=Ur(e),n=Math.floor(t),r=t-n>=.5,o=5-n-(r?1:0),s=document.createElement("span");if(s.className="gengage-star-rating",s.setAttribute("role","img"),s.setAttribute("aria-label",`${t.toFixed(1)} out of 5 stars`),n>0&&s.appendChild(document.createTextNode("★".repeat(n))),r){const i=document.createElement("span");i.className="gengage-star-half",i.textContent="☆";const a=document.createElement("span");a.textContent="★",i.appendChild(a),s.appendChild(i)}return o>0&&s.appendChild(document.createTextNode("☆".repeat(o))),s}function qr(e){e.addEventListener("error",()=>{e.style.display="none"},{once:!0})}function et(e){const{product:t,index:n,discountType:r,onClick:o,onAddToCart:s,renderCard:i}=e,a=e.i18n,c=e.pricing;if(e.renderCardElement){const p=e.renderCardElement(t,n);if(p)return p}if(i){const p=document.createElement("div");return p.className="gengage-simrel-card gengage-simrel-card--custom",p.innerHTML=zn(i(t,n)),p.addEventListener("click",y=>{y.target.closest(".gengage-simrel-atc")||y.target.closest(".gengage-chat-product-card-atc")||o(t)}),p}const u=document.createElement("article");u.className="gengage-simrel-card gengage-chat-product-card",t.inStock===!1&&u.classList.add("gengage-simrel-card--out-of-stock"),u.setAttribute("role","listitem"),u.dataset.sku=t.sku;const d=document.createElement("div");if(d.className="gengage-simrel-card-image gengage-chat-product-card-img-wrapper",t.imageUrl&&En(t.imageUrl)){const p=document.createElement("img");p.className="gengage-chat-product-card-img",p.src=t.imageUrl,p.alt=t.name,p.loading="lazy",qr(p),d.appendChild(p)}if(r==="badge"&&t.discountPercent&&t.discountPercent>0){const p=document.createElement("span");p.className="gengage-simrel-badge gengage-chat-product-card-discount-badge",p.textContent=`%${Mr(t.discountPercent)}`,d.appendChild(p)}u.appendChild(d);const g=document.createElement("div");if(g.className="gengage-simrel-card-info gengage-chat-product-card-body",t.brand){const p=document.createElement("div");p.className="gengage-simrel-card-brand gengage-chat-product-card-brand",p.textContent=t.brand,g.appendChild(p)}const f=document.createElement("div");if(f.className="gengage-simrel-card-name gengage-chat-product-card-name",f.textContent=t.name,f.title=t.name,g.appendChild(f),t.rating!=null&&t.rating>0){const p=document.createElement("div");if(p.className="gengage-simrel-card-rating gengage-chat-product-card-rating",p.appendChild(Fr(t.rating)),t.reviewCount!=null){const y=document.createElement("span");y.className="gengage-simrel-card-review-count gengage-chat-product-card-review-count",y.textContent=` (${t.reviewCount})`,p.appendChild(y)}g.appendChild(p)}const m=document.createElement("div");if(m.className="gengage-simrel-card-price gengage-chat-product-card-price",t.originalPrice&&t.originalPrice!==t.price&&(r==="strike-through"||!r)){const p=document.createElement("span");p.className="gengage-simrel-card-price-original gengage-chat-product-card-original-price",p.textContent=Xe(t.originalPrice,c),m.appendChild(p)}if(t.price&&parseFloat(t.price)>0){const p=document.createElement("span");p.className="gengage-simrel-card-price-current gengage-chat-product-card-price-current",p.textContent=Xe(t.price,c),m.appendChild(p)}g.appendChild(m),u.appendChild(g);const h=document.createElement("button");if(h.className="gengage-simrel-card-cta gengage-chat-product-card-cta",h.type="button",h.textContent=a?.ctaLabel??"View",h.addEventListener("click",p=>{p.preventDefault(),p.stopPropagation(),o(t)}),u.appendChild(h),t.inStock===!1){const p=document.createElement("div");p.className="gengage-simrel-card-oos",p.textContent=a?.outOfStockLabel??"Out of Stock",u.appendChild(p)}else if(t.cartCode){const p=t.cartCode,y=jr({compact:!0,label:a?.addToCartButton??"Add to Cart",decreaseLabel:a?.decreaseLabel,increaseLabel:a?.increaseLabel,onSubmit:w=>{s({sku:t.sku,quantity:w,cartCode:p})}});y.classList.add("gengage-simrel-atc"),u.appendChild(y)}return u.addEventListener("click",p=>{p.target.closest(".gengage-simrel-atc")||p.target.closest(".gengage-chat-product-card-atc")||p.target.closest(".gengage-chat-product-card-cta")||o(t)}),u}function tt(e){const t=document.createElement("div");t.className="gengage-simrel-grid",t.setAttribute("role","list"),t.setAttribute("aria-label",e.i18n?.similarProductsAriaLabel??"Similar products"),e.columns&&t.style.setProperty("--gengage-simrel-columns",String(e.columns));for(let n=0;n<e.products.length;n++){const o={product:e.products[n],index:n,onClick:e.onClick,onAddToCart:e.onAddToCart};e.i18n!==void 0&&(o.i18n=e.i18n),e.discountType!==void 0&&(o.discountType=e.discountType),e.renderCard!==void 0&&(o.renderCard=e.renderCard),e.renderCardElement!==void 0&&(o.renderCardElement=e.renderCardElement);const s=et(o);t.appendChild(s)}return e.products.length===0&&(t.style.display="none",t.dataset.empty="true"),t}let Jr=0;function Gr(e){const t=Jr++,n=document.createElement("div");if(n.className="gengage-simrel-groups",e.groups.length===0)return n.style.display="none",n.dataset.empty="true",n;const r=document.createElement("div");r.className="gengage-simrel-tabs",r.setAttribute("role","tablist");const o=[],s=[],i=d=>{const g={products:d.products,onClick:e.onClick,onAddToCart:e.onAddToCart};return e.i18n!==void 0&&(g.i18n=e.i18n),e.discountType!==void 0&&(g.discountType=e.discountType),e.renderCard!==void 0&&(g.renderCard=e.renderCard),e.renderCardElement!==void 0&&(g.renderCardElement=e.renderCardElement),g},a=d=>{for(let h=0;h<o.length;h++){const p=h===d;o[h].classList.toggle("gengage-simrel-tab--active",p),o[h].setAttribute("aria-selected",String(p)),o[h].tabIndex=p?0:-1}const g=e.groups[d],f=s[d];f.innerHTML="";const m=tt(i(g));f.appendChild(m);for(let h=0;h<s.length;h++){const p=h===d;s[h].style.display=p?"":"none",s[h].tabIndex=p?0:-1}};for(let d=0;d<e.groups.length;d++){const g=e.groups[d],f=`gengage-simrel-tab-${t}-${d}`,m=`gengage-simrel-panel-${t}-${d}`,h=document.createElement("button");h.className="gengage-simrel-tab",h.type="button",h.id=f,h.textContent=g.name,h.setAttribute("role","tab"),h.setAttribute("aria-controls",m),h.setAttribute("aria-selected",String(d===0)),h.tabIndex=d===0?0:-1,d===0&&h.classList.add("gengage-simrel-tab--active"),h.addEventListener("click",()=>a(d)),h.addEventListener("keydown",y=>{let w=-1;y.key==="ArrowRight"||y.key==="ArrowDown"?w=(d+1)%e.groups.length:y.key==="ArrowLeft"||y.key==="ArrowUp"?w=(d-1+e.groups.length)%e.groups.length:y.key==="Home"?w=0:y.key==="End"&&(w=e.groups.length-1),w>=0&&(y.preventDefault(),a(w),o[w].focus())}),o.push(h),r.appendChild(h);const p=document.createElement("div");p.className="gengage-simrel-tab-panel",p.id=m,p.setAttribute("role","tabpanel"),p.setAttribute("aria-labelledby",f),p.tabIndex=d===0?0:-1,d!==0&&(p.style.display="none"),s.push(p)}n.appendChild(r);const c=s[0],u=tt(i(e.groups[0]));c.appendChild(u);for(const d of s)n.appendChild(d);return n}function nt(e){if(!e||typeof e!="object")return null;const t=e;if(typeof t.sku!="string"||typeof t.name!="string"||typeof t.url!="string")return null;const n={sku:t.sku,name:t.name,url:t.url},r=t.imageUrl;typeof r=="string"&&(n.imageUrl=r);const o=t.price;typeof o=="string"&&(n.price=o);const s=t.originalPrice;typeof s=="string"&&(n.originalPrice=s);const i=t.discountPercent;typeof i=="number"&&(n.discountPercent=i);const a=t.brand;typeof a=="string"&&(n.brand=a);const c=t.rating;typeof c=="number"&&(n.rating=c);const u=t.reviewCount;typeof u=="number"&&(n.reviewCount=u);const d=t.cartCode;typeof d=="string"&&(n.cartCode=d);const g=t.inStock;typeof g=="boolean"&&(n.inStock=g);const f=t.extras;return f!=null&&typeof f=="object"&&(n.extras=f),n}function Vr(e){if(!e||typeof e!="object")return null;const t=e,n=t.title,r=t.type;if(typeof n!="string"||typeof r!="string")return null;const o={title:n,type:r};return t.payload!==void 0&&(o.payload=t.payload),o}const rt={ProductGrid:({element:e,renderElement:t,context:n})=>{const r=document.createElement("div");r.className="gengage-simrel-grid",r.setAttribute("role","list");const o=e.props?.columns;typeof o=="number"&&Number.isFinite(o)&&o>0&&r.style.setProperty("--gengage-simrel-columns",String(o));for(const s of e.children??[]){const i=t(s);i&&r.appendChild(i)}if(r.children.length===0){const s=document.createElement("div");s.className="gengage-simrel-empty",s.textContent=n.i18n.emptyStateMessage,r.appendChild(s)}return r},ProductCard:({element:e,context:t})=>{const n=e.props?.product??e.props,r=nt(n);if(!r)return null;const o=e.props?.index,s=typeof o=="number"&&Number.isFinite(o)?o:0,i=e.props?.discountType,a=i==="strike-through"||i==="badge"?i:t.discountType,c={product:r,index:s,onClick:t.onClick,onAddToCart:t.onAddToCart,i18n:t.i18n};return a!==void 0&&(c.discountType=a),t.renderCard!==void 0&&(c.renderCard=t.renderCard),t.renderCardElement!==void 0&&(c.renderCardElement=t.renderCardElement),t.pricing!==void 0&&(c.pricing=t.pricing),et(c)},GroupTabs:({element:e,context:t})=>{const n=e.props?.groups;if(!Array.isArray(n))return null;const r=[];for(const s of n){if(!s||typeof s!="object")continue;const i=s;if(typeof i.name!="string")continue;const a=[];if(Array.isArray(i.products))for(const u of i.products){const d=nt(u);d&&a.push(d)}const c={name:i.name,products:a};typeof i.highlight=="string"&&(c.highlight=i.highlight),r.push(c)}const o={groups:r,onClick:t.onClick,onAddToCart:t.onAddToCart,i18n:t.i18n};return t.discountType!==void 0&&(o.discountType=t.discountType),t.renderCard!==void 0&&(o.renderCard=t.renderCard),t.renderCardElement!==void 0&&(o.renderCardElement=t.renderCardElement),Gr(o)},EmptyState:({element:e,context:t})=>{const n=document.createElement("div");n.className="gengage-simrel-empty";const r=e.props?.message;return n.textContent=typeof r=="string"?r:t.i18n.emptyStateMessage,n},AddToCartButton:({element:e,context:t})=>{const n=e.props?.sku,r=e.props?.cartCode;if(typeof n!="string"||typeof r!="string")return null;const o=document.createElement("button");o.className="gengage-simrel-atc gengage-chat-product-card-cta",o.type="button";const s=e.props?.label;return o.textContent=typeof s=="string"?s:t.i18n.addToCartButton,o.addEventListener("click",i=>{i.preventDefault(),i.stopPropagation(),t.onAddToCart({sku:n,quantity:1,cartCode:r})}),o},QuickActions:({element:e,context:t})=>{const n=document.createElement("div");n.className="gengage-simrel-quick-actions";const r=e.props?.actions;if(!Array.isArray(r)||!t.onAction)return n;for(const o of r){if(!o||typeof o!="object")continue;const s=o,i=s.label,a=Vr(s.action);if(typeof i!="string"||!a)continue;const c=document.createElement("button");c.className="gengage-simrel-quick-action",c.type="button",c.textContent=i,c.addEventListener("click",u=>{u.preventDefault(),u.stopPropagation(),t.onAction?.(a)}),n.appendChild(c)}return n}},ve=({element:e,renderElement:t})=>{if(!e.children||e.children.length===0)return null;const n=document.createElement("div");for(const r of e.children){const o=t(r);o&&n.appendChild(o)}return n};function ot(){return{...rt}}function it(e,t,n=rt,r=ve){return un({spec:e,context:t,registry:n,containerClassName:"gengage-simrel-uispec",unknownRenderer:r})}const st={similarProductsAriaLabel:"Benzer ürünler",emptyStateMessage:"Benzer ürün bulunamadı.",addToCartButton:"Sepete Ekle",ctaLabel:"İncele",outOfStockLabel:"Stokta Yok",decreaseLabel:"Azalt",increaseLabel:"Artır",priceSuffix:" TL"},Br={similarProductsAriaLabel:"Similar products",emptyStateMessage:"No similar products found.",addToCartButton:"Add to cart",ctaLabel:"View",outOfStockLabel:"Out of Stock",decreaseLabel:"Decrease",increaseLabel:"Increase",priceSuffix:""};function Hr(e){return e?e.toLowerCase().split("-")[0]??"tr":"tr"}function Wr(e){return Hr(e)==="en"?Br:st}function Kr(){return typeof window<"u"&&Array.isArray(window.dataLayer)}function ne(e,t){const n={event:e,...t};Kr()&&window.dataLayer.push(n)}function Yr(e){ne("gengage-on-init",{gengage_widget:e})}function at(e){ne("gengage-show",{gengage_widget:e})}function Qr(e,t){ne("gengage-product-detail",{gengage_sku:e,gengage_product_name:t})}function Xr(e,t){ne("gengage-cart-add",{gengage_sku:e,gengage_quantity:t})}function l(e,t,n){function r(a,c){if(a._zod||Object.defineProperty(a,"_zod",{value:{def:c,constr:i,traits:new Set},enumerable:!1}),a._zod.traits.has(e))return;a._zod.traits.add(e),t(a,c);const u=i.prototype,d=Object.keys(u);for(let g=0;g<d.length;g++){const f=d[g];f in a||(a[f]=u[f].bind(a))}}const o=n?.Parent??Object;class s extends o{}Object.defineProperty(s,"name",{value:e});function i(a){var c;const u=n?.Parent?new s:this;r(u,a),(c=u._zod).deferred??(c.deferred=[]);for(const d of u._zod.deferred)d();return u}return Object.defineProperty(i,"init",{value:r}),Object.defineProperty(i,Symbol.hasInstance,{value:a=>n?.Parent&&a instanceof n.Parent?!0:a?._zod?.traits?.has(e)}),Object.defineProperty(i,"name",{value:e}),i}class B extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class ct extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}}const ut={};function J(e){return ut}function dt(e){const t=Object.values(e).filter(r=>typeof r=="number");return Object.entries(e).filter(([r,o])=>t.indexOf(+r)===-1).map(([r,o])=>o)}function be(e,t){return typeof t=="bigint"?t.toString():t}function we(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function ke(e){return e==null}function Se(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function eo(e,t){const n=(e.toString().split(".")[1]||"").length,r=t.toString();let o=(r.split(".")[1]||"").length;if(o===0&&/\d?e-\d?/.test(r)){const c=r.match(/\d?e-(\d?)/);c?.[1]&&(o=Number.parseInt(c[1]))}const s=n>o?n:o,i=Number.parseInt(e.toFixed(s).replace(".","")),a=Number.parseInt(t.toFixed(s).replace(".",""));return i%a/10**s}const lt=Symbol("evaluating");function v(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==lt)return r===void 0&&(r=lt,r=n()),r},set(o){Object.defineProperty(e,t,{value:o})},configurable:!0})}function G(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function j(...e){const t={};for(const n of e){const r=Object.getOwnPropertyDescriptors(n);Object.assign(t,r)}return Object.defineProperties({},t)}function pt(e){return JSON.stringify(e)}function to(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}const ft="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function re(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const no=we(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{const e=Function;return new e(""),!0}catch{return!1}});function Q(e){if(re(e)===!1)return!1;const t=e.constructor;if(t===void 0||typeof t!="function")return!0;const n=t.prototype;return!(re(n)===!1||Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")===!1)}function gt(e){return Q(e)?{...e}:Array.isArray(e)?[...e]:e}const ro=new Set(["string","number","symbol"]);function oe(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function U(e,t,n){const r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function _(e){const t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function oo(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}const io={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 so(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");const s=j(e._zod.def,{get shape(){const i={};for(const a in t){if(!(a in n.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&(i[a]=n.shape[a])}return G(this,"shape",i),i},checks:[]});return U(e,s)}function ao(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");const s=j(e._zod.def,{get shape(){const i={...e._zod.def.shape};for(const a in t){if(!(a in n.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&delete i[a]}return G(this,"shape",i),i},checks:[]});return U(e,s)}function co(e,t){if(!Q(t))throw new Error("Invalid input to extend: expected a plain object");const n=e._zod.def.checks;if(n&&n.length>0){const s=e._zod.def.shape;for(const i in t)if(Object.getOwnPropertyDescriptor(s,i)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}const o=j(e._zod.def,{get shape(){const s={...e._zod.def.shape,...t};return G(this,"shape",s),s}});return U(e,o)}function uo(e,t){if(!Q(t))throw new Error("Invalid input to safeExtend: expected a plain object");const n=j(e._zod.def,{get shape(){const r={...e._zod.def.shape,...t};return G(this,"shape",r),r}});return U(e,n)}function lo(e,t){const n=j(e._zod.def,{get shape(){const r={...e._zod.def.shape,...t._zod.def.shape};return G(this,"shape",r),r},get catchall(){return t._zod.def.catchall},checks:[]});return U(e,n)}function po(e,t,n){const o=t._zod.def.checks;if(o&&o.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");const i=j(t._zod.def,{get shape(){const a=t._zod.def.shape,c={...a};if(n)for(const u in n){if(!(u in a))throw new Error(`Unrecognized key: "${u}"`);n[u]&&(c[u]=e?new e({type:"optional",innerType:a[u]}):a[u])}else for(const u in a)c[u]=e?new e({type:"optional",innerType:a[u]}):a[u];return G(this,"shape",c),c},checks:[]});return U(t,i)}function fo(e,t,n){const r=j(t._zod.def,{get shape(){const o=t._zod.def.shape,s={...o};if(n)for(const i in n){if(!(i in s))throw new Error(`Unrecognized key: "${i}"`);n[i]&&(s[i]=new e({type:"nonoptional",innerType:o[i]}))}else for(const i in o)s[i]=new e({type:"nonoptional",innerType:o[i]});return G(this,"shape",s),s}});return U(t,r)}function H(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function mt(e,t){return t.map(n=>{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function ie(e){return typeof e=="string"?e:e?.message}function V(e,t,n){const r={...e,path:e.path??[]};if(!e.message){const o=ie(e.inst?._zod.def?.error?.(e))??ie(t?.error?.(e))??ie(n.customError?.(e))??ie(n.localeError?.(e))??"Invalid input";r.message=o}return delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function Ee(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function X(...e){const[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}const ht=(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,be,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},_t=l("$ZodError",ht),yt=l("$ZodError",ht,{Parent:Error});function go(e,t=n=>n.message){const n={},r=[];for(const o of e.issues)o.path.length>0?(n[o.path[0]]=n[o.path[0]]||[],n[o.path[0]].push(t(o))):r.push(t(o));return{formErrors:r,fieldErrors:n}}function mo(e,t=n=>n.message){const n={_errors:[]},r=o=>{for(const s of o.issues)if(s.code==="invalid_union"&&s.errors.length)s.errors.map(i=>r({issues:i}));else if(s.code==="invalid_key")r({issues:s.issues});else if(s.code==="invalid_element")r({issues:s.issues});else if(s.path.length===0)n._errors.push(t(s));else{let i=n,a=0;for(;a<s.path.length;){const c=s.path[a];a===s.path.length-1?(i[c]=i[c]||{_errors:[]},i[c]._errors.push(t(s))):i[c]=i[c]||{_errors:[]},i=i[c],a++}}};return r(e),n}const ze=e=>(t,n,r,o)=>{const s=r?Object.assign(r,{async:!1}):{async:!1},i=t._zod.run({value:n,issues:[]},s);if(i instanceof Promise)throw new B;if(i.issues.length){const a=new(o?.Err??e)(i.issues.map(c=>V(c,s,J())));throw ft(a,o?.callee),a}return i.value},Ce=e=>async(t,n,r,o)=>{const s=r?Object.assign(r,{async:!0}):{async:!0};let i=t._zod.run({value:n,issues:[]},s);if(i instanceof Promise&&(i=await i),i.issues.length){const a=new(o?.Err??e)(i.issues.map(c=>V(c,s,J())));throw ft(a,o?.callee),a}return i.value},se=e=>(t,n,r)=>{const o=r?{...r,async:!1}:{async:!1},s=t._zod.run({value:n,issues:[]},o);if(s instanceof Promise)throw new B;return s.issues.length?{success:!1,error:new(e??_t)(s.issues.map(i=>V(i,o,J())))}:{success:!0,data:s.value}},ho=se(yt),ae=e=>async(t,n,r)=>{const o=r?Object.assign(r,{async:!0}):{async:!0};let s=t._zod.run({value:n,issues:[]},o);return s instanceof Promise&&(s=await s),s.issues.length?{success:!1,error:new e(s.issues.map(i=>V(i,o,J())))}:{success:!0,data:s.value}},_o=ae(yt),yo=e=>(t,n,r)=>{const o=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return ze(e)(t,n,o)},vo=e=>(t,n,r)=>ze(e)(t,n,r),bo=e=>async(t,n,r)=>{const o=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return Ce(e)(t,n,o)},wo=e=>async(t,n,r)=>Ce(e)(t,n,r),ko=e=>(t,n,r)=>{const o=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return se(e)(t,n,o)},So=e=>(t,n,r)=>se(e)(t,n,r),Eo=e=>async(t,n,r)=>{const o=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return ae(e)(t,n,o)},zo=e=>async(t,n,r)=>ae(e)(t,n,r),Co=/^[cC][^\s-]{8,}$/,To=/^[0-9a-z]+$/,$o=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Io=/^[0-9a-vA-V]{20}$/,Ao=/^[A-Za-z0-9]{27}$/,Po=/^[a-zA-Z0-9_-]{21}$/,Oo=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,No=/^([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})$/,vt=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)$/,Zo=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Ro="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function xo(){return new RegExp(Ro,"u")}const Lo=/^(?:(?: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])$/,Do=/^(([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}|:))$/,jo=/^((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])$/,Uo=/^(([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])$/,Mo=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,bt=/^[A-Za-z0-9_-]*$/,Fo=/^\+[1-9]\d{6,14}$/,wt="(?:(?:\\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])))",qo=new RegExp(`^${wt}$`);function kt(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function Jo(e){return new RegExp(`^${kt(e)}$`)}function Go(e){const t=kt({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(`^${wt}T(?:${r})$`)}const Vo=e=>{const t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},Bo=/^-?\d+$/,Ho=/^-?\d+(?:\.\d+)?$/,Wo=/^[^A-Z]*$/,Ko=/^[^a-z]*$/,$=l("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),St={number:"number",bigint:"bigint",object:"date"},Et=l("$ZodCheckLessThan",(e,t)=>{$.init(e,t);const n=St[typeof t.value];e._zod.onattach.push(r=>{const o=r._zod.bag,s=(t.inclusive?o.maximum:o.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<s&&(t.inclusive?o.maximum=t.value:o.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:typeof t.value=="object"?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),zt=l("$ZodCheckGreaterThan",(e,t)=>{$.init(e,t);const n=St[typeof t.value];e._zod.onattach.push(r=>{const o=r._zod.bag,s=(t.inclusive?o.minimum:o.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>s&&(t.inclusive?o.minimum=t.value:o.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:typeof t.value=="object"?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Yo=l("$ZodCheckMultipleOf",(e,t)=>{$.init(e,t),e._zod.onattach.push(n=>{var r;(r=n._zod.bag).multipleOf??(r.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.");(typeof n.value=="bigint"?n.value%t.value===BigInt(0):eo(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),Qo=l("$ZodCheckNumberFormat",(e,t)=>{$.init(e,t),t.format=t.format||"float64";const n=t.format?.includes("int"),r=n?"int":"number",[o,s]=io[t.format];e._zod.onattach.push(i=>{const a=i._zod.bag;a.format=t.format,a.minimum=o,a.maximum=s,n&&(a.pattern=Bo)}),e._zod.check=i=>{const a=i.value;if(n){if(!Number.isInteger(a)){i.issues.push({expected:r,format:t.format,code:"invalid_type",continue:!1,input:a,inst:e});return}if(!Number.isSafeInteger(a)){a>0?i.issues.push({input:a,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}):i.issues.push({input:a,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});return}}a<o&&i.issues.push({origin:"number",input:a,code:"too_small",minimum:o,inclusive:!0,inst:e,continue:!t.abort}),a>s&&i.issues.push({origin:"number",input:a,code:"too_big",maximum:s,inclusive:!0,inst:e,continue:!t.abort})}}),Xo=l("$ZodCheckMaxLength",(e,t)=>{var n;$.init(e,t),(n=e._zod.def).when??(n.when=r=>{const o=r.value;return!ke(o)&&o.length!==void 0}),e._zod.onattach.push(r=>{const o=r._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<o&&(r._zod.bag.maximum=t.maximum)}),e._zod.check=r=>{const o=r.value;if(o.length<=t.maximum)return;const i=Ee(o);r.issues.push({origin:i,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),ei=l("$ZodCheckMinLength",(e,t)=>{var n;$.init(e,t),(n=e._zod.def).when??(n.when=r=>{const o=r.value;return!ke(o)&&o.length!==void 0}),e._zod.onattach.push(r=>{const o=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(r._zod.bag.minimum=t.minimum)}),e._zod.check=r=>{const o=r.value;if(o.length>=t.minimum)return;const i=Ee(o);r.issues.push({origin:i,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),ti=l("$ZodCheckLengthEquals",(e,t)=>{var n;$.init(e,t),(n=e._zod.def).when??(n.when=r=>{const o=r.value;return!ke(o)&&o.length!==void 0}),e._zod.onattach.push(r=>{const o=r._zod.bag;o.minimum=t.length,o.maximum=t.length,o.length=t.length}),e._zod.check=r=>{const o=r.value,s=o.length;if(s===t.length)return;const i=Ee(o),a=s>t.length;r.issues.push({origin:i,...a?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!t.abort})}}),ce=l("$ZodCheckStringFormat",(e,t)=>{var n,r;$.init(e,t),e._zod.onattach.push(o=>{const s=o._zod.bag;s.format=t.format,t.pattern&&(s.patterns??(s.patterns=new Set),s.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=o=>{t.pattern.lastIndex=0,!t.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:t.format,input:o.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),ni=l("$ZodCheckRegex",(e,t)=>{ce.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})}}),ri=l("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Wo),ce.init(e,t)}),oi=l("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=Ko),ce.init(e,t)}),ii=l("$ZodCheckIncludes",(e,t)=>{$.init(e,t);const n=oe(t.includes),r=new RegExp(typeof t.position=="number"?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(o=>{const s=o._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(r)}),e._zod.check=o=>{o.value.includes(t.includes,t.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:o.value,inst:e,continue:!t.abort})}}),si=l("$ZodCheckStartsWith",(e,t)=>{$.init(e,t);const n=new RegExp(`^${oe(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{const o=r._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(n)}),e._zod.check=r=>{r.value.startsWith(t.prefix)||r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:r.value,inst:e,continue:!t.abort})}}),ai=l("$ZodCheckEndsWith",(e,t)=>{$.init(e,t);const n=new RegExp(`.*${oe(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{const o=r._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(n)}),e._zod.check=r=>{r.value.endsWith(t.suffix)||r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:r.value,inst:e,continue:!t.abort})}}),ci=l("$ZodCheckOverwrite",(e,t)=>{$.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}});class ui{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}const r=t.split(`
|
|
47
|
+
`);o=m.pop()??"";for(const h of m)if(qe(h,t))return}if(o.trim()&&qe(o,t))return}catch(c){if(c instanceof DOMException&&c.name==="AbortError")return;t.onError?.(c instanceof Error?c:new Error(String(c)))}finally{a||n.releaseLock()}t.onDone?.()}function Ge(e){if(typeof e.type!="string")return null;if(Bn(e))return e;const n=e;switch(n.type){case"outputText":return Vn(n);case"suggestedActions":return Hn(n);case"productList":return Wn(n);case"productDetails":return Kn(n);case"productDetailsSimilars":return Yn(n);case"comparisonTable":return Qn(n);case"context":return nr(n);case"chatStreamEnd":return rr();case"loading":return or(n);case"panelLoading":return ir(n);case"similarLoading":return sr(n);case"redirect":return ar(n);case"error":return cr(n);case"dummy":return ur();case"launcherAction":return dr(n);case"text":return ye(n);case"productItem":return lr(n);case"text_image":return Be(n);case"quick_qna":return Ve(n);case"reviewHighlights":return pr(n);case"aiProductSuggestions":return mr(n);case"aiProductGroupings":return hr(n);case"aiSuggestedSearches":return _r(n);case"prosAndCons":return fr(n);case"getGroundingReview":return yr(n);case"voice":return br(n);case"visitorDataResponse":return gr(n);case"productListPreview":return vr();case"groupList":return wr(n);case"formGetInfo":case"formTestDrive":case"formServiceRequest":case"launchFormPage":return kr(n);case"launcherContent":return Er(n);case"handoff":return Sr(n);default:return null}}function Bn(e){const t=e.type;if(typeof t!="string")return!1;switch(t){case"metadata":return typeof e.sessionId=="string"&&typeof e.model=="string";case"text_chunk":return typeof e.content=="string";case"ui_spec":{const n=e.widget;if(n!=="chat"&&n!=="qna"&&n!=="simrel")return!1;const r=R(e.spec);return r?typeof r.root=="string"&&R(r.elements)!==null:!1}case"action":{const n=R(e.action);return n!==null&&typeof n.kind=="string"}case"error":return typeof e.code=="string"&&typeof e.message=="string";case"done":return!0;default:return!1}}function Vn(e){const t=b(e.payload.text,e.payload.plain_text)??"",n=b(e.payload.plain_text,e.payload.text)??t;if(e.payload.is_error)return{type:"error",code:"BACKEND_ERROR",message:n||"Backend returned an error"};const r={type:"text_chunk",content:t,final:!0},o=e.payload.product_mentions;Array.isArray(o)&&o.length>0&&(r.productMentions=o.filter(a=>typeof a=="object"&&a!==null&&typeof a.sku=="string"&&typeof a.short_name=="string"));const s=e.payload.sku_to_product_item;s&&typeof s=="object"&&!Array.isArray(s)&&(r.skuToProductItem=s);const i=e.payload.conversation_mode;return typeof i=="string"&&i&&(r.conversationMode=i),r}function Hn(e){const t=(e.payload.actions??[]).map(n=>{const r=b(n.title)??"",o=N(n.requestDetails,r),s=o?{label:r,action:o}:null;return s?(typeof n.icon=="string"&&(s.icon=n.icon),typeof n.image=="string"&&(s.image=n.image),s):null});return He(t.filter(Ke),"chat")}function Wn(e){const t=We(e.payload.product_list??[],"chat");t.panelHint="panel";const n=t.spec.elements[t.spec.root];return n&&(typeof e.payload.offset=="number"&&(n.props={...n.props,offset:e.payload.offset}),typeof e.payload.end_of_list=="boolean"&&(n.props={...n.props,endOfList:e.payload.end_of_list}),typeof e.payload.title=="string"&&(n.props={...n.props,panelTitle:e.payload.title})),t}function Kn(e){const t=e.payload.productDetails;return t?{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"ProductDetailsPanel",props:{product:D(t)}}}},panelHint:"panel"}:Cr("chat")}function Yn(e){const t=We(e.payload.similarProducts??[],"chat"),n=t.spec.elements[t.spec.root];return n&&(n.props={...n.props,similarsAppend:!0}),{...t,panelHint:"panel"}}function Qn(e){const t=e.payload.multiple_product_details??[],n=e.payload,r={key_differences:n.key_differences,recommended_choice:n.recommended_choice,recommended_choice_sku:n.recommended_choice_sku,special_considerations:n.special_considerations,criteria_view:n.criteria_view,criteria_view_short:n.criteria_view_short,compared_field_names:n.compared_field_names,winner_product:n.winner_product,winner_hits:n.winner_hits,...e.payload.product_comparison_framework??{}},o=e.payload.table,s=e.payload.features_list,i=[];for(const y of t){const w=D(y);i.push(w)}const a=Xn(o,i,r,s);let c;r?.recommended_choice_sku?c=r.recommended_choice_sku:r?.winner_product&&r.winner_product.length>0&&(c=r.winner_product[0]?.product_detail?.sku??r.winner_product[0]?.sku);const u=c?i.find(y=>y.sku===c)??i[0]:i[0],d=[];if(Array.isArray(r?.key_differences))for(const y of r.key_differences)typeof y=="string"&&d.push(y);const g=Ar(r?.special_considerations),f=r?.recommended_choice,m=r?.winner_hits,h={};for(const y of i){const w=y.sku;w&&(h[w]={title:y.name??w,type:"launchSingleProduct",payload:{sku:w}})}const p={products:i,attributes:a,highlights:d,productActions:h};return u&&(p.recommended=u),g.length>0&&(p.specialCases=g),f&&(p.recommendedText=f),m&&(p.winnerHits=m),typeof r?.key_differences=="string"&&(p.keyDifferencesHtml=r.key_differences),r?.special_considerations&&(p.specialConsiderations=r.special_considerations),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"ComparisonTable",props:p}}},panelHint:"panel"}}function Xn(e,t,n,r){if(!e)return[];const o=Object.entries(e);if(o.length===0)return[];const s=o[0]?.[1];if(Array.isArray(s)){const f=n.criteria_view??n.criteria_view_short??{},m=n.compared_field_names??Object.keys(e),h=[];for(const p of m){const y=e[p];if(!y||!Array.isArray(y))continue;const w=f[p]??p;h.push({label:w,values:y.map(x=>typeof x=="string"?x:String(x??""))})}return h}const i=e,a=t.map(f=>String(f.sku??"")).filter(f=>f.length>0),c=n.criteria_view??n.criteria_view_short??{},d=(r&&r.length>0?r:n.compared_field_names&&n.compared_field_names.length>0?n.compared_field_names:er(i)).filter(f=>f!=="name"&&f!=="name_short"&&!f.endsWith("_short")),g=[];for(const f of d){const m=a.map(p=>{const y=i[p];if(!y||typeof y!="object")return"";const w=y[`${f}_short`],x=y[f];return tr(w??x)});if(m.every(p=>p.length===0))continue;const h=c[f]??f;g.push({label:h,values:m})}return g}function er(e){const t=[],n=new Set;for(const r of Object.values(e))if(!(!r||typeof r!="object"))for(const o of Object.keys(r))n.has(o)||(n.add(o),t.push(o));return t}function tr(e){return typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):""}function nr(e){return{type:"metadata",sessionId:"",model:"",meta:{panel:e.payload.panel,messages:e.payload.messages,message_id:e.payload.message_id}}}function rr(){return{type:"done"}}function or(e){return{type:"metadata",sessionId:"",model:"",meta:{loading:!0,loadingText:e.payload.text,thinkingMessages:e.payload.thinking_messages,dynamicLoading:e.payload.is_dynamic===!0}}}function ir(e){return{type:"metadata",sessionId:"",model:"",meta:{loading:!0,panelLoading:!0,panelPendingType:e.payload?.pending_type,loadingText:e.payload?.text}}}function sr(e){return{type:"metadata",sessionId:"",model:"",meta:{loading:!0,similarPanelLoading:!0,panelPendingType:e.payload?.pending_type,loadingText:e.payload?.text}}}function ar(e){const t=b(e.payload.url);return t?{type:"action",action:{kind:"navigate",url:t,newTab:e.payload.new_tab===!0}}:{type:"metadata",sessionId:"",model:"",meta:{redirect:e.payload,redirectTarget:b(e.payload.to)}}}function cr(e){return{type:"error",code:"BACKEND_ERROR",message:b(e.payload?.text,e.payload?.message,e.payload?.error)??"Backend returned an error"}}function ur(e){return{type:"metadata",sessionId:"",model:"",meta:{noop:!0}}}function dr(e){const t=e.payload??{};if(Array.isArray(t.action_list)){const s={action_list:t.action_list},i=typeof t.type=="string"?t.type:void 0,a=typeof t.theme=="string"?t.theme:void 0;return i!==void 0&&(s.type=i),a!==void 0&&(s.theme=a),Ve({payload:s})}const r=R(t.action);if(r){const s={action:r},i=typeof t.text=="string"?t.text:void 0,a=typeof t.image_url=="string"?t.image_url:void 0,c=typeof t.theme=="string"?t.theme:void 0;return i!==void 0&&(s.text=i),a!==void 0&&(s.image_url=a),c!==void 0&&(s.theme=c),Be({payload:s})}const o=typeof t.text=="string"?t.text:"";if(o){const s={text:o},i=typeof t.type=="string"?t.type:void 0,a=typeof t.theme=="string"?t.theme:void 0,c=R(t.payload)??void 0;return i!==void 0&&(s.type=i),c!==void 0&&(s.payload=c),a!==void 0&&(s.theme=a),ye({payload:s})}return{type:"metadata",sessionId:"",model:"",meta:{launcherAction:t}}}function ye(e){const t={text:b(e.payload.text)??""};return typeof e.payload.theme=="string"&&(t.theme=e.payload.theme),e.payload.payload!==void 0&&(t.payload=e.payload.payload),{type:"ui_spec",widget:"qna",spec:{root:"root",elements:{root:{type:"QuestionHeading",props:t}}}}}function lr(e){return zr(e.payload,"qna")}function Be(e){const t=b(e.payload.text)??"",n=N(e.payload.action,t);if(n){const o={label:t||n.title,action:n};return typeof e.payload.image_url=="string"&&(o.image=e.payload.image_url),typeof e.payload.theme=="string"&&(o.theme=e.payload.theme),{type:"ui_spec",widget:"qna",spec:{root:"root",elements:{root:{type:"ActionButton",props:o}}}}}const r={text:t};return typeof e.payload.theme=="string"&&(r.theme=e.payload.theme),ye({payload:r})}function Ve(e){const t=(e.payload.action_list??[]).map(n=>{const r=b(n.title)??"",o=N(n.requestDetails,r),s=o?{label:r,action:o}:null;return s?(typeof n.icon=="string"&&(s.icon=n.icon),typeof n.image=="string"&&(s.image=n.image),s):null});return He(t.filter(Ke),"qna")}function pr(e){const n={reviews:(e.payload.reviews??[]).map(r=>{const o={};return typeof r.review_class=="string"&&(o.review_class=r.review_class),typeof r.review_text=="string"&&(o.review_text=r.review_text),(typeof r.review_rating=="string"||typeof r.review_rating=="number")&&(o.review_rating=r.review_rating),typeof r.review_tag=="string"&&(o.review_tag=r.review_tag),o})};return typeof e.payload.sku=="string"&&(n.sku=e.payload.sku),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"ReviewHighlights",props:n}}}}}function fr(e){const t={};return Array.isArray(e.payload.pros)&&(t.pros=e.payload.pros),Array.isArray(e.payload.cons)&&(t.cons=e.payload.cons),typeof e.payload.product_name=="string"&&(t.productName=e.payload.product_name),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"ProsAndCons",props:t}}}}}function gr(e){return{type:"metadata",sessionId:"",model:"",meta:{visitorDataResponse:e.payload}}}function mr(e){const t=e.payload.product_suggestions??[],n=[];for(let r=0;r<t.length;r++){const o=t[r];if(!o)continue;const s=Tr(o);if(!s)continue;const i={product:s},a=N(o.requestDetails,s.name);a&&(i.action=a),typeof o.role=="string"&&(i.role=o.role),typeof o.reason=="string"&&(i.reason=o.reason),typeof o.review_highlight=="string"&&(i.reviewHighlight=o.review_highlight),Array.isArray(o.labels)&&(i.labels=o.labels),typeof o.expert_quality_score=="number"&&(i.expertQualityScore=o.expert_quality_score),n.push(i)}return n.length===0?{type:"metadata",sessionId:"",model:"",meta:{aiProductSuggestions:e.payload.product_suggestions??[]}}:{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"AITopPicks",props:{suggestions:n}}}}}}function hr(e){const t=e.payload.product_groupings??[],n=[];for(let r=0;r<t.length;r++){const o=t[r];if(!o)continue;const s=b(o.name)??"",i=o.sku&&o.sku.length>0?{type:"findSimilar",payload:{sku:o.sku}}:void 0,a=N(o.requestDetails??i,s);if(!a)continue;const c={name:s,action:a};if(Array.isArray(o.labels)){const u=o.labels.filter(d=>typeof d=="string");u.length>0&&(c.labels=u)}typeof o.image=="string"&&(c.image=o.image),n.push(c)}return n.length===0?{type:"metadata",sessionId:"",model:"",meta:{aiProductGroupings:e.payload.product_groupings??[]}}:{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"AIGroupingCards",props:{entries:n}}}}}}function _r(e){const t=e.payload.suggested_searches??[],n=[];for(let r=0;r<t.length;r++){const o=t[r];if(!o)continue;const s=b(o.short_name,o.chosen_attribute,o.detailed_user_message)??`Search ${r+1}`,i={},a=b(o.detailed_user_message);a&&(i.text=a);const c=R(o.requestDetails),u=R(c?.payload),d=u?.group_skus;o.group_skus&&Array.isArray(o.group_skus)?i.group_skus=o.group_skus:Array.isArray(d)&&(i.group_skus=d.filter(x=>typeof x=="string"));const g=b(o.sku,o.representative_product_sku,u?.sku);g&&(i.sku=g),i.is_suggested_text=1;const f={type:"inputText",payload:i},m=N(o.requestDetails,s),h=m?.type==="findSimilar"&&typeof i.text=="string"?N(f,s):m??N(f,s);if(!h)continue;const p={shortName:s,action:h},y=b(o.detailed_user_message);y&&y!==s&&(p.detailedMessage=y);const w=b(o.why_different);w&&(p.whyDifferent=w),typeof o.image=="string"&&(p.image=o.image),n.push(p)}return n.length===0?{type:"metadata",sessionId:"",model:"",meta:{aiSuggestedSearches:e.payload.suggested_searches??[]}}:{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"AISuggestedSearchCards",props:{entries:n}}}}}}function yr(e){const t=N(e.payload.requestDetails,b(e.payload.review_count,e.payload.text,e.payload.title)??"Show product reviews");if(!t)return{type:"metadata",sessionId:"",model:"",meta:{groundingReview:e.payload}};const n={action:t};return e.payload.title&&(n.title=e.payload.title),e.payload.text&&(n.text=e.payload.text),e.payload.review_count&&(n.reviewCount=e.payload.review_count),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"GroundingReviewCard",props:n}}}}}function vr(){return{type:"metadata",sessionId:"",model:"",meta:{analyzeAnimation:!0}}}function br(e){return{type:"metadata",sessionId:"",model:"",meta:{voice:e.payload}}}function wr(e){const t=e.payload.group_list??[],n=[];for(const o of t){const s=o.group_name??"",i=(o.product_list??[]).map(D);n.push({groupName:s,products:i})}const r=[];for(const o of e.payload.filter_tags??[]){const s=o.title??"";if(!s)continue;const i=N(o.requestDetails,s),a={title:s};i&&(a.action=i),r.push(a)}return{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"CategoriesContainer",props:{groups:n,filterTags:r}}}},panelHint:"panel"}}function kr(e){return{type:"metadata",sessionId:"",model:"",meta:{formType:e.type,formPayload:e.payload??{}}}}function Sr(e){const t={};return typeof e.payload?.summary=="string"&&(t.summary=e.payload.summary),Array.isArray(e.payload?.products_discussed)&&(t.products_discussed=e.payload.products_discussed),typeof e.payload?.user_sentiment=="string"&&(t.user_sentiment=e.payload.user_sentiment),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"HandoffNotice",props:t}}}}}function Er(e){return{type:"metadata",sessionId:"",model:"",meta:{launcherContent:e.payload??{}}}}function He(e,t){const n={},r=[];for(let o=0;o<e.length;o++){const s=e[o];if(!s)continue;const i=`action-${o}`;r.push(i);const a={label:s.label,action:s.action};s.icon!==void 0&&(a.icon=s.icon),s.image!==void 0&&(a.image=s.image),s.description!==void 0&&(a.description=s.description),n[i]={type:"ActionButton",props:a}}return n.root={type:"ActionButtons",props:{buttons:e.map(o=>{const s={label:o.label,action:o.action};return o.image!==void 0&&(s.image=o.image),o.description!==void 0&&(s.description=o.description),o.icon!==void 0&&(s.icon=o.icon),s})},children:r},{type:"ui_spec",widget:t,spec:{root:"root",elements:n}}}function We(e,t){const n={},r=[];for(let o=0;o<e.length;o++){const s=e[o];if(!s)continue;const i=`product-${o}`;r.push(i),n[i]={type:"ProductCard",props:{product:D(s),index:o}}}return n.root={type:"ProductGrid",props:{layout:"grid"},children:r},{type:"ui_spec",widget:t,spec:{root:"root",elements:n}}}function zr(e,t){return{type:"ui_spec",widget:t,spec:{root:"root",elements:{root:{type:"ProductCard",props:{product:D(e),index:0}}}}}}function Cr(e){return{type:"ui_spec",widget:e,spec:{root:"root",elements:{root:{type:"ActionButtons",props:{buttons:[]},children:[]}}}}}function Tr(e){const t=b(e.sku),n=b(e.short_name),r=R(e.product_item)??e;return $r(r,t,n)}function $r(e,t,n){const r=b(e.sku,t),o=b(e.name,n);if(!r||!o)return null;const s={sku:r,name:o},i=b(e.brand);i&&(s.brand=i);const a=b(e.url);a&&(s.url=a);const c=Ir(e.images);if(c.length>0)s.images=c;else{const h=b(e.image,e.image_url,e.imageUrl);h&&(s.images=[h])}const u=Y(e.price_discounted);u!==void 0&&(s.price_discounted=u);const d=Y(e.price);d!==void 0&&(s.price=d);const g=Y(e.rating);g!==void 0&&(s.rating=g);const f=Y(e.review_count)??Y(e.reviewCount);f!==void 0&&(s.review_count=f);const m=b(e.cart_code,e.cartCode);return m&&(s.cart_code=m),typeof e.in_stock=="boolean"&&(s.in_stock=e.in_stock),typeof e.inStock=="boolean"&&(s.in_stock=e.inStock),D(s)}function N(e,t){const n=R(e);if(!n)return null;const r=n.type;if(typeof r!="string"||r.length===0)return null;const o={title:t||r,type:r};return n.payload!==void 0&&(o.payload=n.payload),o}function R(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function b(...e){for(const t of e)if(typeof t=="string"){const n=t.trim();if(n.length>0)return n}}function Ir(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):[]}function Ar(e){if(typeof e=="string"){const t=e.trim();return t?[t]:[]}return Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>t.trim()).filter(t=>t.length>0):[]}function Y(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"){let t;e.includes(".")&&e.includes(",")?t=e.replace(/\./g,"").replace(",","."):t=e.replace(",",".");const n=Number(t);if(Number.isFinite(n))return n}}function Ke(e){return e!=null}const Pr=new Set(["sku","name","brand","images","price","price_discounted","price_currency","discount_reason","url","rating","review_count","cart_code","in_stock","category_ids","category_names","variants","facet_hits","promotions"]);function D(e){const t=e.price_discounted!=null&&e.price_discounted>0,n=t?e.price_discounted:e.price,r=t&&e.price!=null?e.price:void 0;let o;r!=null&&n!=null&&r>0&&(o=Math.round((r-n)/r*100));const s=b(e.brand),i=b(e.name)??e.sku,a=s&&!i.toLowerCase().startsWith(s.toLowerCase())?`${s} ${i}`:i,c={sku:e.sku,name:a,url:b(e.url)??""},u=e.images?.[0];u&&(c.imageUrl=u),e.images&&e.images.length>1&&(c.images=e.images),n!=null&&(c.price=String(n)),r!=null&&(c.originalPrice=String(r)),o!==void 0&&(c.discountPercent=o),s!==void 0&&(c.brand=s),e.rating!==void 0&&(c.rating=e.rating),e.review_count!==void 0&&(c.reviewCount=e.review_count),e.cart_code!==void 0&&(c.cartCode=e.cart_code),e.in_stock!==void 0&&(c.inStock=e.in_stock),e.variants&&e.variants.length>0&&(c.variants=e.variants),e.discount_reason!==void 0&&(c.discountReason=e.discount_reason),e.promotions&&e.promotions.length>0&&(c.promotions=e.promotions);const d=e,g={};let f=!1;for(const m of Object.keys(d))Pr.has(m)||(g[m]=d[m],f=!0);return f&&(c.extras=g),c}function Or(e){return e.results.map(D)}function Nr(e){return e.product_groupings.map(t=>{const n={name:t.name,products:(t.group_products??[]).map(D)};return t.highlight!==void 0&&(n.highlight=t.highlight),n})}function Ye(e){const t=[];for(const n of Object.values(e))if(n.type==="ProductCard"&&n.props){const r=n.props.product??n.props;typeof r.sku=="string"&&typeof r.name=="string"&&t.push(r)}return t}function Qe(e){const t=e.headers.get("Content-Type")??"";return t.includes("application/x-ndjson")||t.includes("text/event-stream")}async function Zr(e,t){const n=[],r={onEvent:o=>{const s=Ge(o);!s||s.type!=="ui_spec"||n.push(...Ye(s.spec.elements))}};return t!==void 0&&(r.signal=t),await Je(e,r),n}async function Rr(e,t,n){const r=Me("similar_products",t),o={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)};n!==void 0&&(o.signal=n);const s=await fetch(r,o);if(!s.ok)throw new Error(`HTTP ${s.status}: ${s.statusText}`);if(Qe(s))return Zr(s,n);const i=await s.text();if(!i)return[];try{return Or(JSON.parse(i))}catch{throw new Error("Invalid JSON from similar_products endpoint")}}async function xr(e,t){const n=[];let r=null;const o={onEvent:s=>{const i=Ge(s);if(i){if(i.type==="metadata"&&i.meta){const a=i.meta.group_name;if(typeof a=="string"){r={name:a,products:[]};const c=i.meta.highlight;typeof c=="string"&&(r.highlight=c),n.push(r)}}i.type==="ui_spec"&&r&&r.products.push(...Ye(i.spec.elements))}}};return t!==void 0&&(o.signal=t),await Je(e,o),n}async function Lr(e,t,n){const r=Me("product_groupings",t),o={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)};n!==void 0&&(o.signal=n);const s=await fetch(r,o);if(!s.ok)throw new Error(`HTTP ${s.status}: ${s.statusText}`);if(Qe(s))return xr(s,n);const i=await s.text();if(!i)return[];try{return Nr(JSON.parse(i))}catch{throw new Error("Invalid JSON from product_groupings endpoint")}}const Dr={currencySymbol:"TL",currencyPosition:"suffix",thousandsSeparator:".",decimalSeparator:",",alwaysShowDecimals:!0};function Xe(e,t){const n=Number(e);if(!Number.isFinite(n)||n<0)return e;const r={...Dr,...t},s=n%1!==0||r.alwaysShowDecimals?n.toFixed(2):n.toFixed(0),i=s.indexOf("."),a=i===-1?s:s.slice(0,i),c=i===-1?void 0:s.slice(i+1),u=a.replace(/\B(?=(\d{3})+(?!\d))/g,r.thousandsSeparator);let d;return c!==void 0?d=`${u}${r.decimalSeparator}${c}`:d=u,r.currencySymbol?r.currencyPosition==="prefix"?`${r.currencySymbol}${d}`:`${d} ${r.currencySymbol}`:d}function jr(e){const t=e.min??1,n=e.max??99,r=Math.min(t,n),o=Math.max(t,n);let i=Math.max(r,Math.min(o,e.initial??r));const a=document.createElement("div");a.className="gengage-qty-stepper gengage-qty-stepper--compact";const c=document.createElement("button");c.className="gengage-qty-btn",c.type="button",c.textContent=e.decreaseSymbol??"−",c.setAttribute("aria-label",e.decreaseLabel??"Decrease");const u=document.createElement("span");u.className="gengage-qty-value",u.textContent=String(i),u.setAttribute("aria-live","polite"),u.setAttribute("aria-atomic","true");const d=document.createElement("button");d.className="gengage-qty-btn",d.type="button",d.textContent=e.increaseSymbol??"+",d.setAttribute("aria-label",e.increaseLabel??"Increase");const g=document.createElement("button");g.className="gengage-qty-submit",g.type="button";const f='<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="9" cy="21" r="1"/><circle cx="20" cy="21" r="1"/><path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"/></svg>';g.innerHTML=e.submitIcon??f,g.title=e.label??"Add to Cart";function m(){c.disabled=i<=r,d.disabled=i>=o}return c.addEventListener("click",h=>{h.stopPropagation(),i>r&&(i--,u.textContent=String(i),m())}),d.addEventListener("click",h=>{h.stopPropagation(),i<o&&(i++,u.textContent=String(i),m())}),g.addEventListener("click",h=>{h.stopPropagation(),e.onSubmit(i);const p=g.innerHTML;g.textContent="✓",g.classList.add("gengage-qty-submit--success"),g.disabled=!0,setTimeout(()=>{g.innerHTML=p,g.classList.remove("gengage-qty-submit--success"),g.disabled=!1},1200)}),a.addEventListener("click",h=>{h.stopPropagation()}),m(),a.appendChild(c),a.appendChild(u),a.appendChild(d),a.appendChild(g),a}function Ur(e){return Number.isFinite(e)?Math.max(0,Math.min(5,e)):0}function Mr(e){return Number.isFinite(e)?Math.max(0,Math.min(100,Math.round(e))):0}function Fr(e){const t=Ur(e),n=Math.floor(t),r=t-n>=.5,o=5-n-(r?1:0),s=document.createElement("span");if(s.className="gengage-star-rating",s.setAttribute("role","img"),s.setAttribute("aria-label",`${t.toFixed(1)} out of 5 stars`),n>0&&s.appendChild(document.createTextNode("★".repeat(n))),r){const i=document.createElement("span");i.className="gengage-star-half",i.textContent="☆";const a=document.createElement("span");a.textContent="★",i.appendChild(a),s.appendChild(i)}return o>0&&s.appendChild(document.createTextNode("☆".repeat(o))),s}function qr(e){e.addEventListener("error",()=>{e.style.display="none"},{once:!0})}function et(e){const{product:t,index:n,discountType:r,onClick:o,onAddToCart:s,renderCard:i}=e,a=e.i18n,c=e.pricing;if(e.renderCardElement){const p=e.renderCardElement(t,n);if(p)return p}if(i){const p=document.createElement("div");return p.className="gengage-simrel-card gengage-simrel-card--custom",p.innerHTML=zn(i(t,n)),p.addEventListener("click",y=>{y.target.closest(".gengage-simrel-atc")||y.target.closest(".gengage-chat-product-card-atc")||o(t)}),p}const u=document.createElement("article");u.className="gengage-simrel-card gengage-chat-product-card",t.inStock===!1&&u.classList.add("gengage-simrel-card--out-of-stock"),u.setAttribute("role","listitem"),u.dataset.sku=t.sku;const d=document.createElement("div");if(d.className="gengage-simrel-card-image gengage-chat-product-card-img-wrapper",t.imageUrl&&En(t.imageUrl)){const p=document.createElement("img");p.className="gengage-chat-product-card-img",p.src=t.imageUrl,p.alt=t.name,p.loading="lazy",qr(p),d.appendChild(p)}if(r==="badge"&&t.discountPercent&&t.discountPercent>0){const p=document.createElement("span");p.className="gengage-simrel-badge gengage-chat-product-card-discount-badge",p.textContent=`%${Mr(t.discountPercent)}`,d.appendChild(p)}u.appendChild(d);const g=document.createElement("div");if(g.className="gengage-simrel-card-info gengage-chat-product-card-body",t.brand){const p=document.createElement("div");p.className="gengage-simrel-card-brand gengage-chat-product-card-brand",p.textContent=t.brand,g.appendChild(p)}const f=document.createElement("div");if(f.className="gengage-simrel-card-name gengage-chat-product-card-name",f.textContent=t.name,f.title=t.name,g.appendChild(f),t.rating!=null&&t.rating>0){const p=document.createElement("div");if(p.className="gengage-simrel-card-rating gengage-chat-product-card-rating",p.appendChild(Fr(t.rating)),t.reviewCount!=null){const y=document.createElement("span");y.className="gengage-simrel-card-review-count gengage-chat-product-card-review-count",y.textContent=` (${t.reviewCount})`,p.appendChild(y)}g.appendChild(p)}const m=document.createElement("div");if(m.className="gengage-simrel-card-price gengage-chat-product-card-price",t.originalPrice&&t.originalPrice!==t.price&&(r==="strike-through"||!r)){const p=document.createElement("span");p.className="gengage-simrel-card-price-original gengage-chat-product-card-original-price",p.textContent=Xe(t.originalPrice,c),m.appendChild(p)}if(t.price&&parseFloat(t.price)>0){const p=document.createElement("span");p.className="gengage-simrel-card-price-current gengage-chat-product-card-price-current",p.textContent=Xe(t.price,c),m.appendChild(p)}g.appendChild(m),u.appendChild(g);const h=document.createElement("button");if(h.className="gengage-simrel-card-cta gengage-chat-product-card-cta",h.type="button",h.textContent=a?.ctaLabel??"View",h.addEventListener("click",p=>{p.preventDefault(),p.stopPropagation(),o(t)}),u.appendChild(h),t.inStock===!1){const p=document.createElement("div");p.className="gengage-simrel-card-oos",p.textContent=a?.outOfStockLabel??"Out of Stock",u.appendChild(p)}else if(t.cartCode){const p=t.cartCode,y=jr({compact:!0,label:a?.addToCartButton??"Add to Cart",decreaseLabel:a?.decreaseLabel,increaseLabel:a?.increaseLabel,onSubmit:w=>{s({sku:t.sku,quantity:w,cartCode:p})}});y.classList.add("gengage-simrel-atc"),u.appendChild(y)}return u.addEventListener("click",p=>{p.target.closest(".gengage-simrel-atc")||p.target.closest(".gengage-chat-product-card-atc")||p.target.closest(".gengage-chat-product-card-cta")||o(t)}),u}function tt(e){const t=document.createElement("div");t.className="gengage-simrel-grid",t.setAttribute("role","list"),t.setAttribute("aria-label",e.i18n?.similarProductsAriaLabel??"Similar products"),e.columns&&t.style.setProperty("--gengage-simrel-columns",String(e.columns));for(let n=0;n<e.products.length;n++){const o={product:e.products[n],index:n,onClick:e.onClick,onAddToCart:e.onAddToCart};e.i18n!==void 0&&(o.i18n=e.i18n),e.discountType!==void 0&&(o.discountType=e.discountType),e.renderCard!==void 0&&(o.renderCard=e.renderCard),e.renderCardElement!==void 0&&(o.renderCardElement=e.renderCardElement);const s=et(o);t.appendChild(s)}return e.products.length===0&&(t.style.display="none",t.dataset.empty="true"),t}let Jr=0;function Gr(e){const t=Jr++,n=document.createElement("div");if(n.className="gengage-simrel-groups",e.groups.length===0)return n.style.display="none",n.dataset.empty="true",n;const r=document.createElement("div");r.className="gengage-simrel-tabs",r.setAttribute("role","tablist");const o=[],s=[],i=d=>{const g={products:d.products,onClick:e.onClick,onAddToCart:e.onAddToCart};return e.i18n!==void 0&&(g.i18n=e.i18n),e.discountType!==void 0&&(g.discountType=e.discountType),e.renderCard!==void 0&&(g.renderCard=e.renderCard),e.renderCardElement!==void 0&&(g.renderCardElement=e.renderCardElement),g},a=d=>{for(let h=0;h<o.length;h++){const p=h===d;o[h].classList.toggle("gengage-simrel-tab--active",p),o[h].setAttribute("aria-selected",String(p)),o[h].tabIndex=p?0:-1}const g=e.groups[d],f=s[d];f.innerHTML="";const m=tt(i(g));f.appendChild(m);for(let h=0;h<s.length;h++){const p=h===d;s[h].style.display=p?"":"none",s[h].tabIndex=p?0:-1}};for(let d=0;d<e.groups.length;d++){const g=e.groups[d],f=`gengage-simrel-tab-${t}-${d}`,m=`gengage-simrel-panel-${t}-${d}`,h=document.createElement("button");h.className="gengage-simrel-tab",h.type="button",h.id=f,h.textContent=g.name,h.setAttribute("role","tab"),h.setAttribute("aria-controls",m),h.setAttribute("aria-selected",String(d===0)),h.tabIndex=d===0?0:-1,d===0&&h.classList.add("gengage-simrel-tab--active"),h.addEventListener("click",()=>a(d)),h.addEventListener("keydown",y=>{let w=-1;y.key==="ArrowRight"||y.key==="ArrowDown"?w=(d+1)%e.groups.length:y.key==="ArrowLeft"||y.key==="ArrowUp"?w=(d-1+e.groups.length)%e.groups.length:y.key==="Home"?w=0:y.key==="End"&&(w=e.groups.length-1),w>=0&&(y.preventDefault(),a(w),o[w].focus())}),o.push(h),r.appendChild(h);const p=document.createElement("div");p.className="gengage-simrel-tab-panel",p.id=m,p.setAttribute("role","tabpanel"),p.setAttribute("aria-labelledby",f),p.tabIndex=d===0?0:-1,d!==0&&(p.style.display="none"),s.push(p)}n.appendChild(r);const c=s[0],u=tt(i(e.groups[0]));c.appendChild(u);for(const d of s)n.appendChild(d);return n}function nt(e){if(!e||typeof e!="object")return null;const t=e;if(typeof t.sku!="string"||typeof t.name!="string"||typeof t.url!="string")return null;const n={sku:t.sku,name:t.name,url:t.url},r=t.imageUrl;typeof r=="string"&&(n.imageUrl=r);const o=t.price;typeof o=="string"&&(n.price=o);const s=t.originalPrice;typeof s=="string"&&(n.originalPrice=s);const i=t.discountPercent;typeof i=="number"&&(n.discountPercent=i);const a=t.brand;typeof a=="string"&&(n.brand=a);const c=t.rating;typeof c=="number"&&(n.rating=c);const u=t.reviewCount;typeof u=="number"&&(n.reviewCount=u);const d=t.cartCode;typeof d=="string"&&(n.cartCode=d);const g=t.inStock;typeof g=="boolean"&&(n.inStock=g);const f=t.extras;return f!=null&&typeof f=="object"&&(n.extras=f),n}function Br(e){if(!e||typeof e!="object")return null;const t=e,n=t.title,r=t.type;if(typeof n!="string"||typeof r!="string")return null;const o={title:n,type:r};return t.payload!==void 0&&(o.payload=t.payload),o}const rt={ProductGrid:({element:e,renderElement:t,context:n})=>{const r=document.createElement("div");r.className="gengage-simrel-grid",r.setAttribute("role","list");const o=e.props?.columns;typeof o=="number"&&Number.isFinite(o)&&o>0&&r.style.setProperty("--gengage-simrel-columns",String(o));for(const s of e.children??[]){const i=t(s);i&&r.appendChild(i)}if(r.children.length===0){const s=document.createElement("div");s.className="gengage-simrel-empty",s.textContent=n.i18n.emptyStateMessage,r.appendChild(s)}return r},ProductCard:({element:e,context:t})=>{const n=e.props?.product??e.props,r=nt(n);if(!r)return null;const o=e.props?.index,s=typeof o=="number"&&Number.isFinite(o)?o:0,i=e.props?.discountType,a=i==="strike-through"||i==="badge"?i:t.discountType,c={product:r,index:s,onClick:t.onClick,onAddToCart:t.onAddToCart,i18n:t.i18n};return a!==void 0&&(c.discountType=a),t.renderCard!==void 0&&(c.renderCard=t.renderCard),t.renderCardElement!==void 0&&(c.renderCardElement=t.renderCardElement),t.pricing!==void 0&&(c.pricing=t.pricing),et(c)},GroupTabs:({element:e,context:t})=>{const n=e.props?.groups;if(!Array.isArray(n))return null;const r=[];for(const s of n){if(!s||typeof s!="object")continue;const i=s;if(typeof i.name!="string")continue;const a=[];if(Array.isArray(i.products))for(const u of i.products){const d=nt(u);d&&a.push(d)}const c={name:i.name,products:a};typeof i.highlight=="string"&&(c.highlight=i.highlight),r.push(c)}const o={groups:r,onClick:t.onClick,onAddToCart:t.onAddToCart,i18n:t.i18n};return t.discountType!==void 0&&(o.discountType=t.discountType),t.renderCard!==void 0&&(o.renderCard=t.renderCard),t.renderCardElement!==void 0&&(o.renderCardElement=t.renderCardElement),Gr(o)},EmptyState:({element:e,context:t})=>{const n=document.createElement("div");n.className="gengage-simrel-empty";const r=e.props?.message;return n.textContent=typeof r=="string"?r:t.i18n.emptyStateMessage,n},AddToCartButton:({element:e,context:t})=>{const n=e.props?.sku,r=e.props?.cartCode;if(typeof n!="string"||typeof r!="string")return null;const o=document.createElement("button");o.className="gengage-simrel-atc gengage-chat-product-card-cta",o.type="button";const s=e.props?.label;return o.textContent=typeof s=="string"?s:t.i18n.addToCartButton,o.addEventListener("click",i=>{i.preventDefault(),i.stopPropagation(),t.onAddToCart({sku:n,quantity:1,cartCode:r})}),o},QuickActions:({element:e,context:t})=>{const n=document.createElement("div");n.className="gengage-simrel-quick-actions";const r=e.props?.actions;if(!Array.isArray(r)||!t.onAction)return n;for(const o of r){if(!o||typeof o!="object")continue;const s=o,i=s.label,a=Br(s.action);if(typeof i!="string"||!a)continue;const c=document.createElement("button");c.className="gengage-simrel-quick-action",c.type="button",c.textContent=i,c.addEventListener("click",u=>{u.preventDefault(),u.stopPropagation(),t.onAction?.(a)}),n.appendChild(c)}return n}},ve=({element:e,renderElement:t})=>{if(!e.children||e.children.length===0)return null;const n=document.createElement("div");for(const r of e.children){const o=t(r);o&&n.appendChild(o)}return n};function ot(){return{...rt}}function it(e,t,n=rt,r=ve){return un({spec:e,context:t,registry:n,containerClassName:"gengage-simrel-uispec",unknownRenderer:r})}const st={similarProductsAriaLabel:"Benzer ürünler",emptyStateMessage:"Benzer ürün bulunamadı.",addToCartButton:"Sepete Ekle",ctaLabel:"İncele",outOfStockLabel:"Stokta Yok",decreaseLabel:"Azalt",increaseLabel:"Artır",errorLoadingMessage:"Benzer ürünler yüklenemedi.",retryButtonText:"Tekrar dene",priceSuffix:" TL"},Vr={similarProductsAriaLabel:"Similar products",emptyStateMessage:"No similar products found.",addToCartButton:"Add to cart",ctaLabel:"View",outOfStockLabel:"Out of Stock",decreaseLabel:"Decrease",increaseLabel:"Increase",errorLoadingMessage:"Could not load similar products.",retryButtonText:"Try again",priceSuffix:""};function Hr(e){return e?e.toLowerCase().split("-")[0]??"tr":"tr"}function Wr(e){return Hr(e)==="en"?Vr:st}function Kr(){return typeof window<"u"&&Array.isArray(window.dataLayer)}function ne(e,t){const n={event:e,...t};Kr()&&window.dataLayer.push(n)}function Yr(e){ne("gengage-on-init",{gengage_widget:e})}function at(e){ne("gengage-show",{gengage_widget:e})}function Qr(e,t){ne("gengage-product-detail",{gengage_sku:e,gengage_product_name:t})}function Xr(e,t){ne("gengage-cart-add",{gengage_sku:e,gengage_quantity:t})}function l(e,t,n){function r(a,c){if(a._zod||Object.defineProperty(a,"_zod",{value:{def:c,constr:i,traits:new Set},enumerable:!1}),a._zod.traits.has(e))return;a._zod.traits.add(e),t(a,c);const u=i.prototype,d=Object.keys(u);for(let g=0;g<d.length;g++){const f=d[g];f in a||(a[f]=u[f].bind(a))}}const o=n?.Parent??Object;class s extends o{}Object.defineProperty(s,"name",{value:e});function i(a){var c;const u=n?.Parent?new s:this;r(u,a),(c=u._zod).deferred??(c.deferred=[]);for(const d of u._zod.deferred)d();return u}return Object.defineProperty(i,"init",{value:r}),Object.defineProperty(i,Symbol.hasInstance,{value:a=>n?.Parent&&a instanceof n.Parent?!0:a?._zod?.traits?.has(e)}),Object.defineProperty(i,"name",{value:e}),i}class V extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class ct extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}}const ut={};function J(e){return ut}function dt(e){const t=Object.values(e).filter(r=>typeof r=="number");return Object.entries(e).filter(([r,o])=>t.indexOf(+r)===-1).map(([r,o])=>o)}function be(e,t){return typeof t=="bigint"?t.toString():t}function we(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function ke(e){return e==null}function Se(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function eo(e,t){const n=(e.toString().split(".")[1]||"").length,r=t.toString();let o=(r.split(".")[1]||"").length;if(o===0&&/\d?e-\d?/.test(r)){const c=r.match(/\d?e-(\d?)/);c?.[1]&&(o=Number.parseInt(c[1]))}const s=n>o?n:o,i=Number.parseInt(e.toFixed(s).replace(".","")),a=Number.parseInt(t.toFixed(s).replace(".",""));return i%a/10**s}const lt=Symbol("evaluating");function v(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==lt)return r===void 0&&(r=lt,r=n()),r},set(o){Object.defineProperty(e,t,{value:o})},configurable:!0})}function G(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function j(...e){const t={};for(const n of e){const r=Object.getOwnPropertyDescriptors(n);Object.assign(t,r)}return Object.defineProperties({},t)}function pt(e){return JSON.stringify(e)}function to(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}const ft="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function re(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const no=we(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{const e=Function;return new e(""),!0}catch{return!1}});function Q(e){if(re(e)===!1)return!1;const t=e.constructor;if(t===void 0||typeof t!="function")return!0;const n=t.prototype;return!(re(n)===!1||Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")===!1)}function gt(e){return Q(e)?{...e}:Array.isArray(e)?[...e]:e}const ro=new Set(["string","number","symbol"]);function oe(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function U(e,t,n){const r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function _(e){const t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function oo(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}const io={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 so(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");const s=j(e._zod.def,{get shape(){const i={};for(const a in t){if(!(a in n.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&(i[a]=n.shape[a])}return G(this,"shape",i),i},checks:[]});return U(e,s)}function ao(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");const s=j(e._zod.def,{get shape(){const i={...e._zod.def.shape};for(const a in t){if(!(a in n.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&delete i[a]}return G(this,"shape",i),i},checks:[]});return U(e,s)}function co(e,t){if(!Q(t))throw new Error("Invalid input to extend: expected a plain object");const n=e._zod.def.checks;if(n&&n.length>0){const s=e._zod.def.shape;for(const i in t)if(Object.getOwnPropertyDescriptor(s,i)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}const o=j(e._zod.def,{get shape(){const s={...e._zod.def.shape,...t};return G(this,"shape",s),s}});return U(e,o)}function uo(e,t){if(!Q(t))throw new Error("Invalid input to safeExtend: expected a plain object");const n=j(e._zod.def,{get shape(){const r={...e._zod.def.shape,...t};return G(this,"shape",r),r}});return U(e,n)}function lo(e,t){const n=j(e._zod.def,{get shape(){const r={...e._zod.def.shape,...t._zod.def.shape};return G(this,"shape",r),r},get catchall(){return t._zod.def.catchall},checks:[]});return U(e,n)}function po(e,t,n){const o=t._zod.def.checks;if(o&&o.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");const i=j(t._zod.def,{get shape(){const a=t._zod.def.shape,c={...a};if(n)for(const u in n){if(!(u in a))throw new Error(`Unrecognized key: "${u}"`);n[u]&&(c[u]=e?new e({type:"optional",innerType:a[u]}):a[u])}else for(const u in a)c[u]=e?new e({type:"optional",innerType:a[u]}):a[u];return G(this,"shape",c),c},checks:[]});return U(t,i)}function fo(e,t,n){const r=j(t._zod.def,{get shape(){const o=t._zod.def.shape,s={...o};if(n)for(const i in n){if(!(i in s))throw new Error(`Unrecognized key: "${i}"`);n[i]&&(s[i]=new e({type:"nonoptional",innerType:o[i]}))}else for(const i in o)s[i]=new e({type:"nonoptional",innerType:o[i]});return G(this,"shape",s),s}});return U(t,r)}function H(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function mt(e,t){return t.map(n=>{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function ie(e){return typeof e=="string"?e:e?.message}function B(e,t,n){const r={...e,path:e.path??[]};if(!e.message){const o=ie(e.inst?._zod.def?.error?.(e))??ie(t?.error?.(e))??ie(n.customError?.(e))??ie(n.localeError?.(e))??"Invalid input";r.message=o}return delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function Ee(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function X(...e){const[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}const ht=(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,be,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},_t=l("$ZodError",ht),yt=l("$ZodError",ht,{Parent:Error});function go(e,t=n=>n.message){const n={},r=[];for(const o of e.issues)o.path.length>0?(n[o.path[0]]=n[o.path[0]]||[],n[o.path[0]].push(t(o))):r.push(t(o));return{formErrors:r,fieldErrors:n}}function mo(e,t=n=>n.message){const n={_errors:[]},r=o=>{for(const s of o.issues)if(s.code==="invalid_union"&&s.errors.length)s.errors.map(i=>r({issues:i}));else if(s.code==="invalid_key")r({issues:s.issues});else if(s.code==="invalid_element")r({issues:s.issues});else if(s.path.length===0)n._errors.push(t(s));else{let i=n,a=0;for(;a<s.path.length;){const c=s.path[a];a===s.path.length-1?(i[c]=i[c]||{_errors:[]},i[c]._errors.push(t(s))):i[c]=i[c]||{_errors:[]},i=i[c],a++}}};return r(e),n}const ze=e=>(t,n,r,o)=>{const s=r?Object.assign(r,{async:!1}):{async:!1},i=t._zod.run({value:n,issues:[]},s);if(i instanceof Promise)throw new V;if(i.issues.length){const a=new(o?.Err??e)(i.issues.map(c=>B(c,s,J())));throw ft(a,o?.callee),a}return i.value},Ce=e=>async(t,n,r,o)=>{const s=r?Object.assign(r,{async:!0}):{async:!0};let i=t._zod.run({value:n,issues:[]},s);if(i instanceof Promise&&(i=await i),i.issues.length){const a=new(o?.Err??e)(i.issues.map(c=>B(c,s,J())));throw ft(a,o?.callee),a}return i.value},se=e=>(t,n,r)=>{const o=r?{...r,async:!1}:{async:!1},s=t._zod.run({value:n,issues:[]},o);if(s instanceof Promise)throw new V;return s.issues.length?{success:!1,error:new(e??_t)(s.issues.map(i=>B(i,o,J())))}:{success:!0,data:s.value}},ho=se(yt),ae=e=>async(t,n,r)=>{const o=r?Object.assign(r,{async:!0}):{async:!0};let s=t._zod.run({value:n,issues:[]},o);return s instanceof Promise&&(s=await s),s.issues.length?{success:!1,error:new e(s.issues.map(i=>B(i,o,J())))}:{success:!0,data:s.value}},_o=ae(yt),yo=e=>(t,n,r)=>{const o=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return ze(e)(t,n,o)},vo=e=>(t,n,r)=>ze(e)(t,n,r),bo=e=>async(t,n,r)=>{const o=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return Ce(e)(t,n,o)},wo=e=>async(t,n,r)=>Ce(e)(t,n,r),ko=e=>(t,n,r)=>{const o=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return se(e)(t,n,o)},So=e=>(t,n,r)=>se(e)(t,n,r),Eo=e=>async(t,n,r)=>{const o=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return ae(e)(t,n,o)},zo=e=>async(t,n,r)=>ae(e)(t,n,r),Co=/^[cC][^\s-]{8,}$/,To=/^[0-9a-z]+$/,$o=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Io=/^[0-9a-vA-V]{20}$/,Ao=/^[A-Za-z0-9]{27}$/,Po=/^[a-zA-Z0-9_-]{21}$/,Oo=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,No=/^([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})$/,vt=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)$/,Zo=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Ro="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function xo(){return new RegExp(Ro,"u")}const Lo=/^(?:(?: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])$/,Do=/^(([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}|:))$/,jo=/^((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])$/,Uo=/^(([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])$/,Mo=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,bt=/^[A-Za-z0-9_-]*$/,Fo=/^\+[1-9]\d{6,14}$/,wt="(?:(?:\\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])))",qo=new RegExp(`^${wt}$`);function kt(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function Jo(e){return new RegExp(`^${kt(e)}$`)}function Go(e){const t=kt({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(`^${wt}T(?:${r})$`)}const Bo=e=>{const t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},Vo=/^-?\d+$/,Ho=/^-?\d+(?:\.\d+)?$/,Wo=/^[^A-Z]*$/,Ko=/^[^a-z]*$/,$=l("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),St={number:"number",bigint:"bigint",object:"date"},Et=l("$ZodCheckLessThan",(e,t)=>{$.init(e,t);const n=St[typeof t.value];e._zod.onattach.push(r=>{const o=r._zod.bag,s=(t.inclusive?o.maximum:o.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<s&&(t.inclusive?o.maximum=t.value:o.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:typeof t.value=="object"?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),zt=l("$ZodCheckGreaterThan",(e,t)=>{$.init(e,t);const n=St[typeof t.value];e._zod.onattach.push(r=>{const o=r._zod.bag,s=(t.inclusive?o.minimum:o.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>s&&(t.inclusive?o.minimum=t.value:o.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:typeof t.value=="object"?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Yo=l("$ZodCheckMultipleOf",(e,t)=>{$.init(e,t),e._zod.onattach.push(n=>{var r;(r=n._zod.bag).multipleOf??(r.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.");(typeof n.value=="bigint"?n.value%t.value===BigInt(0):eo(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),Qo=l("$ZodCheckNumberFormat",(e,t)=>{$.init(e,t),t.format=t.format||"float64";const n=t.format?.includes("int"),r=n?"int":"number",[o,s]=io[t.format];e._zod.onattach.push(i=>{const a=i._zod.bag;a.format=t.format,a.minimum=o,a.maximum=s,n&&(a.pattern=Vo)}),e._zod.check=i=>{const a=i.value;if(n){if(!Number.isInteger(a)){i.issues.push({expected:r,format:t.format,code:"invalid_type",continue:!1,input:a,inst:e});return}if(!Number.isSafeInteger(a)){a>0?i.issues.push({input:a,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}):i.issues.push({input:a,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});return}}a<o&&i.issues.push({origin:"number",input:a,code:"too_small",minimum:o,inclusive:!0,inst:e,continue:!t.abort}),a>s&&i.issues.push({origin:"number",input:a,code:"too_big",maximum:s,inclusive:!0,inst:e,continue:!t.abort})}}),Xo=l("$ZodCheckMaxLength",(e,t)=>{var n;$.init(e,t),(n=e._zod.def).when??(n.when=r=>{const o=r.value;return!ke(o)&&o.length!==void 0}),e._zod.onattach.push(r=>{const o=r._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<o&&(r._zod.bag.maximum=t.maximum)}),e._zod.check=r=>{const o=r.value;if(o.length<=t.maximum)return;const i=Ee(o);r.issues.push({origin:i,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),ei=l("$ZodCheckMinLength",(e,t)=>{var n;$.init(e,t),(n=e._zod.def).when??(n.when=r=>{const o=r.value;return!ke(o)&&o.length!==void 0}),e._zod.onattach.push(r=>{const o=r._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(r._zod.bag.minimum=t.minimum)}),e._zod.check=r=>{const o=r.value;if(o.length>=t.minimum)return;const i=Ee(o);r.issues.push({origin:i,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),ti=l("$ZodCheckLengthEquals",(e,t)=>{var n;$.init(e,t),(n=e._zod.def).when??(n.when=r=>{const o=r.value;return!ke(o)&&o.length!==void 0}),e._zod.onattach.push(r=>{const o=r._zod.bag;o.minimum=t.length,o.maximum=t.length,o.length=t.length}),e._zod.check=r=>{const o=r.value,s=o.length;if(s===t.length)return;const i=Ee(o),a=s>t.length;r.issues.push({origin:i,...a?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!t.abort})}}),ce=l("$ZodCheckStringFormat",(e,t)=>{var n,r;$.init(e,t),e._zod.onattach.push(o=>{const s=o._zod.bag;s.format=t.format,t.pattern&&(s.patterns??(s.patterns=new Set),s.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=o=>{t.pattern.lastIndex=0,!t.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:t.format,input:o.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),ni=l("$ZodCheckRegex",(e,t)=>{ce.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})}}),ri=l("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Wo),ce.init(e,t)}),oi=l("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=Ko),ce.init(e,t)}),ii=l("$ZodCheckIncludes",(e,t)=>{$.init(e,t);const n=oe(t.includes),r=new RegExp(typeof t.position=="number"?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(o=>{const s=o._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(r)}),e._zod.check=o=>{o.value.includes(t.includes,t.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:o.value,inst:e,continue:!t.abort})}}),si=l("$ZodCheckStartsWith",(e,t)=>{$.init(e,t);const n=new RegExp(`^${oe(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{const o=r._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(n)}),e._zod.check=r=>{r.value.startsWith(t.prefix)||r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:r.value,inst:e,continue:!t.abort})}}),ai=l("$ZodCheckEndsWith",(e,t)=>{$.init(e,t);const n=new RegExp(`.*${oe(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.onattach.push(r=>{const o=r._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(n)}),e._zod.check=r=>{r.value.endsWith(t.suffix)||r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:r.value,inst:e,continue:!t.abort})}}),ci=l("$ZodCheckOverwrite",(e,t)=>{$.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}});class ui{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}const r=t.split(`
|
|
48
48
|
`).filter(i=>i),o=Math.min(...r.map(i=>i.length-i.trimStart().length)),s=r.map(i=>i.slice(o)).map(i=>" ".repeat(this.indent*2)+i);for(const i of s)this.content.push(i)}compile(){const t=Function,n=this?.args,o=[...(this?.content??[""]).map(s=>` ${s}`)];return new t(...n,o.join(`
|
|
49
|
-
`))}}const di={major:4,minor:3,patch:6},E=l("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=di;const r=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&r.unshift(e);for(const o of r)for(const s of o._zod.onattach)s(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const o=(i,a,c)=>{let u=H(i),d;for(const g of a){if(g._zod.def.when){if(!g._zod.def.when(i))continue}else if(u)continue;const f=i.issues.length,m=g._zod.check(i);if(m instanceof Promise&&c?.async===!1)throw new
|
|
49
|
+
`))}}const di={major:4,minor:3,patch:6},E=l("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=di;const r=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&r.unshift(e);for(const o of r)for(const s of o._zod.onattach)s(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const o=(i,a,c)=>{let u=H(i),d;for(const g of a){if(g._zod.def.when){if(!g._zod.def.when(i))continue}else if(u)continue;const f=i.issues.length,m=g._zod.check(i);if(m instanceof Promise&&c?.async===!1)throw new V;if(d||m instanceof Promise)d=(d??Promise.resolve()).then(async()=>{await m,i.issues.length!==f&&(u||(u=H(i,f)))});else{if(i.issues.length===f)continue;u||(u=H(i,f))}}return d?d.then(()=>i):i},s=(i,a,c)=>{if(H(i))return i.aborted=!0,i;const u=o(a,r,c);if(u instanceof Promise){if(c.async===!1)throw new V;return u.then(d=>e._zod.parse(d,c))}return e._zod.parse(u,c)};e._zod.run=(i,a)=>{if(a.skipChecks)return e._zod.parse(i,a);if(a.direction==="backward"){const u=e._zod.parse({value:i.value,issues:[]},{...a,skipChecks:!0});return u instanceof Promise?u.then(d=>s(d,i,a)):s(u,i,a)}const c=e._zod.parse(i,a);if(c instanceof Promise){if(a.async===!1)throw new V;return c.then(u=>o(u,r,a))}return o(c,r,a)}}v(e,"~standard",()=>({validate:o=>{try{const s=ho(e,o);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return _o(e,o).then(i=>i.success?{value:i.data}:{issues:i.error?.issues})}},vendor:"zod",version:1}))}),Te=l("$ZodString",(e,t)=>{E.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??Bo(e._zod.bag),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value=="string"||n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),k=l("$ZodStringFormat",(e,t)=>{ce.init(e,t),Te.init(e,t)}),li=l("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=No),k.init(e,t)}),pi=l("$ZodUUID",(e,t)=>{if(t.version){const r={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(r===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=vt(r))}else t.pattern??(t.pattern=vt());k.init(e,t)}),fi=l("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Zo),k.init(e,t)}),gi=l("$ZodURL",(e,t)=>{k.init(e,t),e._zod.check=n=>{try{const r=n.value.trim(),o=new URL(r);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(o.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(o.protocol.endsWith(":")?o.protocol.slice(0,-1):o.protocol)||n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),t.normalize?n.value=o.href:n.value=r;return}catch{n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),mi=l("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=xo()),k.init(e,t)}),hi=l("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=Po),k.init(e,t)}),_i=l("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=Co),k.init(e,t)}),yi=l("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=To),k.init(e,t)}),vi=l("$ZodULID",(e,t)=>{t.pattern??(t.pattern=$o),k.init(e,t)}),bi=l("$ZodXID",(e,t)=>{t.pattern??(t.pattern=Io),k.init(e,t)}),wi=l("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=Ao),k.init(e,t)}),ki=l("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=Go(t)),k.init(e,t)}),Si=l("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=qo),k.init(e,t)}),Ei=l("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=Jo(t)),k.init(e,t)}),zi=l("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=Oo),k.init(e,t)}),Ci=l("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=Lo),k.init(e,t),e._zod.bag.format="ipv4"}),Ti=l("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=Do),k.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})}}}),$i=l("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=jo),k.init(e,t)}),Ii=l("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=Uo),k.init(e,t),e._zod.check=n=>{const r=n.value.split("/");try{if(r.length!==2)throw new Error;const[o,s]=r;if(!s)throw new Error;const i=Number(s);if(`${i}`!==s)throw new Error;if(i<0||i>128)throw new Error;new URL(`http://[${o}]`)}catch{n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}}});function Ct(e){if(e==="")return!0;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}const Ai=l("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=Mo),k.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=n=>{Ct(n.value)||n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}});function Pi(e){if(!bt.test(e))return!1;const t=e.replace(/[-_]/g,r=>r==="-"?"+":"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return Ct(n)}const Oi=l("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=bt),k.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=n=>{Pi(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),Ni=l("$ZodE164",(e,t)=>{t.pattern??(t.pattern=Fo),k.init(e,t)});function Zi(e,t=null){try{const n=e.split(".");if(n.length!==3)return!1;const[r]=n;if(!r)return!1;const o=JSON.parse(atob(r));return!("typ"in o&&o?.typ!=="JWT"||!o.alg||t&&(!("alg"in o)||o.alg!==t))}catch{return!1}}const Ri=l("$ZodJWT",(e,t)=>{k.init(e,t),e._zod.check=n=>{Zi(n.value,t.alg)||n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}}),Tt=l("$ZodNumber",(e,t)=>{E.init(e,t),e._zod.pattern=e._zod.bag.pattern??Ho,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}const o=n.value;if(typeof o=="number"&&!Number.isNaN(o)&&Number.isFinite(o))return n;const s=typeof o=="number"?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:"Infinity":void 0;return n.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...s?{received:s}:{}}),n}}),xi=l("$ZodNumberFormat",(e,t)=>{Qo.init(e,t),Tt.init(e,t)}),Li=l("$ZodUnknown",(e,t)=>{E.init(e,t),e._zod.parse=n=>n}),Di=l("$ZodNever",(e,t)=>{E.init(e,t),e._zod.parse=(n,r)=>(n.issues.push({expected:"never",code:"invalid_type",input:n.value,inst:e}),n)});function $t(e,t,n){e.issues.length&&t.issues.push(...mt(n,e.issues)),t.value[n]=e.value}const ji=l("$ZodArray",(e,t)=>{E.init(e,t),e._zod.parse=(n,r)=>{const o=n.value;if(!Array.isArray(o))return n.issues.push({expected:"array",code:"invalid_type",input:o,inst:e}),n;n.value=Array(o.length);const s=[];for(let i=0;i<o.length;i++){const a=o[i],c=t.element._zod.run({value:a,issues:[]},r);c instanceof Promise?s.push(c.then(u=>$t(u,n,i))):$t(c,n,i)}return s.length?Promise.all(s).then(()=>n):n}});function ue(e,t,n,r,o){if(e.issues.length){if(o&&!(n in r))return;t.issues.push(...mt(n,e.issues))}e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function It(e){const t=Object.keys(e.shape);for(const r of t)if(!e.shape?.[r]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${r}": expected a Zod schema`);const n=oo(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function At(e,t,n,r,o,s){const i=[],a=o.keySet,c=o.catchall._zod,u=c.def.type,d=c.optout==="optional";for(const g in t){if(a.has(g))continue;if(u==="never"){i.push(g);continue}const f=c.run({value:t[g],issues:[]},r);f instanceof Promise?e.push(f.then(m=>ue(m,n,g,t,d))):ue(f,n,g,t,d)}return i.length&&n.issues.push({code:"unrecognized_keys",keys:i,input:t,inst:s}),e.length?Promise.all(e).then(()=>n):n}const Ui=l("$ZodObject",(e,t)=>{if(E.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){const a=t.shape;Object.defineProperty(t,"shape",{get:()=>{const c={...a};return Object.defineProperty(t,"shape",{value:c}),c}})}const r=we(()=>It(t));v(e._zod,"propValues",()=>{const a=t.shape,c={};for(const u in a){const d=a[u]._zod;if(d.values){c[u]??(c[u]=new Set);for(const g of d.values)c[u].add(g)}}return c});const o=re,s=t.catchall;let i;e._zod.parse=(a,c)=>{i??(i=r.value);const u=a.value;if(!o(u))return a.issues.push({expected:"object",code:"invalid_type",input:u,inst:e}),a;a.value={};const d=[],g=i.shape;for(const f of i.keys){const m=g[f],h=m._zod.optout==="optional",p=m._zod.run({value:u[f],issues:[]},c);p instanceof Promise?d.push(p.then(y=>ue(y,a,f,u,h))):ue(p,a,f,u,h)}return s?At(d,u,a,c,r.value,e):d.length?Promise.all(d).then(()=>a):a}}),Mi=l("$ZodObjectJIT",(e,t)=>{Ui.init(e,t);const n=e._zod.parse,r=we(()=>It(t)),o=f=>{const m=new ui(["shape","payload","ctx"]),h=r.value,p=Z=>{const A=pt(Z);return`shape[${A}]._zod.run({ value: input[${A}], issues: [] }, ctx)`};m.write("const input = payload.value;");const y=Object.create(null);let w=0;for(const Z of h.keys)y[Z]=`key_${w++}`;m.write("const newResult = {};");for(const Z of h.keys){const A=y[Z],O=pt(Z),Zc=f[Z]?._zod?.optout==="optional";m.write(`const ${A} = ${p(Z)};`),Zc?m.write(`
|
|
50
50
|
if (${A}.issues.length) {
|
|
51
51
|
if (${O} in input) {
|
|
52
52
|
payload.issues = payload.issues.concat(${A}.issues.map(iss => ({
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
newResult[${O}] = ${A}.value;
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
`)}m.write("payload.value = newResult;"),m.write("return payload;");const x=m.compile();return(Z,A)=>x(f,Z,A)};let s;const i=re,a=!ut.jitless,u=a&&no.value,d=t.catchall;let g;e._zod.parse=(f,m)=>{g??(g=r.value);const h=f.value;return i(h)?a&&u&&m?.async===!1&&m.jitless!==!0?(s||(s=o(t.shape)),f=s(f,m),d?At([],h,f,m,g,e):f):n(f,m):(f.issues.push({expected:"object",code:"invalid_type",input:h,inst:e}),f)}});function Pt(e,t,n,r){for(const s of e)if(s.issues.length===0)return t.value=s.value,t;const o=e.filter(s=>!H(s));return o.length===1?(t.value=o[0].value,o[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(s=>s.issues.map(i=>V(i,r,J())))}),t)}const Fi=l("$ZodUnion",(e,t)=>{E.init(e,t),v(e._zod,"optin",()=>t.options.some(o=>o._zod.optin==="optional")?"optional":void 0),v(e._zod,"optout",()=>t.options.some(o=>o._zod.optout==="optional")?"optional":void 0),v(e._zod,"values",()=>{if(t.options.every(o=>o._zod.values))return new Set(t.options.flatMap(o=>Array.from(o._zod.values)))}),v(e._zod,"pattern",()=>{if(t.options.every(o=>o._zod.pattern)){const o=t.options.map(s=>s._zod.pattern);return new RegExp(`^(${o.map(s=>Se(s.source)).join("|")})$`)}});const n=t.options.length===1,r=t.options[0]._zod.run;e._zod.parse=(o,s)=>{if(n)return r(o,s);let i=!1;const a=[];for(const c of t.options){const u=c._zod.run({value:o.value,issues:[]},s);if(u instanceof Promise)a.push(u),i=!0;else{if(u.issues.length===0)return u;a.push(u)}}return i?Promise.all(a).then(c=>Pt(c,o,e,s)):Pt(a,o,e,s)}}),qi=l("$ZodIntersection",(e,t)=>{E.init(e,t),e._zod.parse=(n,r)=>{const o=n.value,s=t.left._zod.run({value:o,issues:[]},r),i=t.right._zod.run({value:o,issues:[]},r);return s instanceof Promise||i instanceof Promise?Promise.all([s,i]).then(([c,u])=>Ot(n,c,u)):Ot(n,s,i)}});function $e(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(Q(e)&&Q(t)){const n=Object.keys(t),r=Object.keys(e).filter(s=>n.indexOf(s)!==-1),o={...e,...t};for(const s of r){const i=$e(e[s],t[s]);if(!i.valid)return{valid:!1,mergeErrorPath:[s,...i.mergeErrorPath]};o[s]=i.data}return{valid:!0,data:o}}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 o=e[r],s=t[r],i=$e(o,s);if(!i.valid)return{valid:!1,mergeErrorPath:[r,...i.mergeErrorPath]};n.push(i.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function Ot(e,t,n){const r=new Map;let o;for(const a of t.issues)if(a.code==="unrecognized_keys"){o??(o=a);for(const c of a.keys)r.has(c)||r.set(c,{}),r.get(c).l=!0}else e.issues.push(a);for(const a of n.issues)if(a.code==="unrecognized_keys")for(const c of a.keys)r.has(c)||r.set(c,{}),r.get(c).r=!0;else e.issues.push(a);const s=[...r].filter(([,a])=>a.l&&a.r).map(([a])=>a);if(s.length&&o&&e.issues.push({...o,keys:s}),H(e))return e;const i=$e(t.value,n.value);if(!i.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(i.mergeErrorPath)}`);return e.value=i.data,e}const Ji=l("$ZodEnum",(e,t)=>{E.init(e,t);const n=dt(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=new RegExp(`^(${n.filter(o=>ro.has(typeof o)).map(o=>typeof o=="string"?oe(o):o.toString()).join("|")})$`),e._zod.parse=(o,s)=>{const i=o.value;return r.has(i)||o.issues.push({code:"invalid_value",values:n,input:i,inst:e}),o}}),Gi=l("$ZodTransform",(e,t)=>{E.init(e,t),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new ct(e.constructor.name);const o=t.transform(n.value,n);if(r.async)return(o instanceof Promise?o:Promise.resolve(o)).then(i=>(n.value=i,n));if(o instanceof Promise)throw new B;return n.value=o,n}});function Nt(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}const Zt=l("$ZodOptional",(e,t)=>{E.init(e,t),e._zod.optin="optional",e._zod.optout="optional",v(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),v(e._zod,"pattern",()=>{const n=t.innerType._zod.pattern;return n?new RegExp(`^(${Se(n.source)})?$`):void 0}),e._zod.parse=(n,r)=>{if(t.innerType._zod.optin==="optional"){const o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(s=>Nt(s,n.value)):Nt(o,n.value)}return n.value===void 0?n:t.innerType._zod.run(n,r)}}),Vi=l("$ZodExactOptional",(e,t)=>{Zt.init(e,t),v(e._zod,"values",()=>t.innerType._zod.values),v(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(n,r)=>t.innerType._zod.run(n,r)}),Bi=l("$ZodNullable",(e,t)=>{E.init(e,t),v(e._zod,"optin",()=>t.innerType._zod.optin),v(e._zod,"optout",()=>t.innerType._zod.optout),v(e._zod,"pattern",()=>{const n=t.innerType._zod.pattern;return n?new RegExp(`^(${Se(n.source)}|null)$`):void 0}),v(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(n,r)=>n.value===null?n:t.innerType._zod.run(n,r)}),Hi=l("$ZodDefault",(e,t)=>{E.init(e,t),e._zod.optin="optional",v(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);if(n.value===void 0)return n.value=t.defaultValue,n;const o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(s=>Rt(s,t)):Rt(o,t)}});function Rt(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}const Wi=l("$ZodPrefault",(e,t)=>{E.init(e,t),e._zod.optin="optional",v(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>(r.direction==="backward"||n.value===void 0&&(n.value=t.defaultValue),t.innerType._zod.run(n,r))}),Ki=l("$ZodNonOptional",(e,t)=>{E.init(e,t),v(e._zod,"values",()=>{const n=t.innerType._zod.values;return n?new Set([...n].filter(r=>r!==void 0)):void 0}),e._zod.parse=(n,r)=>{const o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(s=>xt(s,e)):xt(o,e)}});function xt(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}const Yi=l("$ZodCatch",(e,t)=>{E.init(e,t),v(e._zod,"optin",()=>t.innerType._zod.optin),v(e._zod,"optout",()=>t.innerType._zod.optout),v(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);const o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(s=>(n.value=s.value,s.issues.length&&(n.value=t.catchValue({...n,error:{issues:s.issues.map(i=>V(i,r,J()))},input:n.value}),n.issues=[]),n)):(n.value=o.value,o.issues.length&&(n.value=t.catchValue({...n,error:{issues:o.issues.map(s=>V(s,r,J()))},input:n.value}),n.issues=[]),n)}}),Qi=l("$ZodPipe",(e,t)=>{E.init(e,t),v(e._zod,"values",()=>t.in._zod.values),v(e._zod,"optin",()=>t.in._zod.optin),v(e._zod,"optout",()=>t.out._zod.optout),v(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(n,r)=>{if(r.direction==="backward"){const s=t.out._zod.run(n,r);return s instanceof Promise?s.then(i=>de(i,t.in,r)):de(s,t.in,r)}const o=t.in._zod.run(n,r);return o instanceof Promise?o.then(s=>de(s,t.out,r)):de(o,t.out,r)}});function de(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}const Xi=l("$ZodReadonly",(e,t)=>{E.init(e,t),v(e._zod,"propValues",()=>t.innerType._zod.propValues),v(e._zod,"values",()=>t.innerType._zod.values),v(e._zod,"optin",()=>t.innerType?._zod?.optin),v(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);const o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(Lt):Lt(o)}});function Lt(e){return e.value=Object.freeze(e.value),e}const es=l("$ZodCustom",(e,t)=>{$.init(e,t),E.init(e,t),e._zod.parse=(n,r)=>n,e._zod.check=n=>{const r=n.value,o=t.fn(r);if(o instanceof Promise)return o.then(s=>Dt(s,n,r,e));Dt(o,n,r,e)}});function Dt(e,t,n,r){if(!e){const o={code:"custom",input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(o.params=r._zod.def.params),t.issues.push(X(o))}}var jt;class ts{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...n){const r=n[0];return this._map.set(t,r),r&&typeof r=="object"&&"id"in r&&this._idmap.set(r.id,t),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(t){const n=this._map.get(t);return n&&typeof n=="object"&&"id"in n&&this._idmap.delete(n.id),this._map.delete(t),this}get(t){const n=t._zod.parent;if(n){const r={...this.get(n)??{}};delete r.id;const o={...r,...this._map.get(t)};return Object.keys(o).length?o:void 0}return this._map.get(t)}has(t){return this._map.has(t)}}function ns(){return new ts}(jt=globalThis).__zod_globalRegistry??(jt.__zod_globalRegistry=ns());const ee=globalThis.__zod_globalRegistry;function rs(e,t){return new e({type:"string",..._(t)})}function os(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,..._(t)})}function Ut(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,..._(t)})}function is(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,..._(t)})}function ss(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",..._(t)})}function as(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",..._(t)})}function cs(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",..._(t)})}function us(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,..._(t)})}function ds(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,..._(t)})}function ls(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,..._(t)})}function ps(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,..._(t)})}function fs(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,..._(t)})}function gs(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,..._(t)})}function ms(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,..._(t)})}function hs(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,..._(t)})}function _s(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,..._(t)})}function ys(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,..._(t)})}function vs(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,..._(t)})}function bs(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,..._(t)})}function ws(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,..._(t)})}function ks(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,..._(t)})}function Ss(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,..._(t)})}function Es(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,..._(t)})}function zs(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,..._(t)})}function Cs(e,t){return new e({type:"string",format:"date",check:"string_format",..._(t)})}function Ts(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,..._(t)})}function $s(e,t){return new e({type:"string",format:"duration",check:"string_format",..._(t)})}function Is(e,t){return new e({type:"number",checks:[],..._(t)})}function As(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",..._(t)})}function Ps(e){return new e({type:"unknown"})}function Os(e,t){return new e({type:"never",..._(t)})}function Mt(e,t){return new Et({check:"less_than",..._(t),value:e,inclusive:!1})}function Ie(e,t){return new Et({check:"less_than",..._(t),value:e,inclusive:!0})}function Ft(e,t){return new zt({check:"greater_than",..._(t),value:e,inclusive:!1})}function Ae(e,t){return new zt({check:"greater_than",..._(t),value:e,inclusive:!0})}function qt(e,t){return new Yo({check:"multiple_of",..._(t),value:e})}function Jt(e,t){return new Xo({check:"max_length",..._(t),maximum:e})}function le(e,t){return new ei({check:"min_length",..._(t),minimum:e})}function Gt(e,t){return new ti({check:"length_equals",..._(t),length:e})}function Ns(e,t){return new ni({check:"string_format",format:"regex",..._(t),pattern:e})}function Zs(e){return new ri({check:"string_format",format:"lowercase",..._(e)})}function Rs(e){return new oi({check:"string_format",format:"uppercase",..._(e)})}function xs(e,t){return new ii({check:"string_format",format:"includes",..._(t),includes:e})}function Ls(e,t){return new si({check:"string_format",format:"starts_with",..._(t),prefix:e})}function Ds(e,t){return new ai({check:"string_format",format:"ends_with",..._(t),suffix:e})}function W(e){return new ci({check:"overwrite",tx:e})}function js(e){return W(t=>t.normalize(e))}function Us(){return W(e=>e.trim())}function Ms(){return W(e=>e.toLowerCase())}function Fs(){return W(e=>e.toUpperCase())}function qs(){return W(e=>to(e))}function Js(e,t,n){return new e({type:"array",element:t,..._(n)})}function Gs(e,t,n){return new e({type:"custom",check:"custom",fn:t,..._(n)})}function Vs(e){const t=Bs(n=>(n.addIssue=r=>{if(typeof r=="string")n.issues.push(X(r,n.value,t._zod.def));else{const o=r;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=n.value),o.inst??(o.inst=t),o.continue??(o.continue=!t._zod.def.abort),n.issues.push(X(o))}},e(n.value,n)));return t}function Bs(e,t){const n=new $({check:"custom",..._(t)});return n._zod.check=e,n}function Vt(e){let t=e?.target??"draft-2020-12";return t==="draft-4"&&(t="draft-04"),t==="draft-7"&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??ee,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 C(e,t,n={path:[],schemaPath:[]}){var r;const o=e._zod.def,s=t.seen.get(e);if(s)return s.count++,n.schemaPath.includes(e)&&(s.cycle=n.path),s.schema;const i={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,i);const a=e._zod.toJSONSchema?.();if(a)i.schema=a;else{const d={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,i.schema,d);else{const f=i.schema,m=t.processors[o.type];if(!m)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);m(e,t,f,d)}const g=e._zod.parent;g&&(i.ref||(i.ref=g),C(g,t,d),t.seen.get(g).isParent=!0)}const c=t.metadataRegistry.get(e);return c&&Object.assign(i.schema,c),t.io==="input"&&T(e)&&(delete i.schema.examples,delete i.schema.default),t.io==="input"&&i.schema._prefault&&((r=i.schema).default??(r.default=i.schema._prefault)),delete i.schema._prefault,t.seen.get(e).schema}function Bt(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 i of e.seen.entries()){const a=e.metadataRegistry.get(i[0])?.id;if(a){const c=r.get(a);if(c&&c!==i[0])throw new Error(`Duplicate schema id "${a}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(a,i[0])}}const o=i=>{const a=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){const g=e.external.registry.get(i[0])?.id,f=e.external.uri??(h=>h);if(g)return{ref:f(g)};const m=i[1].defId??i[1].schema.id??`schema${e.counter++}`;return i[1].defId=m,{defId:m,ref:`${f("__shared")}#/${a}/${m}`}}if(i[1]===n)return{ref:"#"};const u=`#/${a}/`,d=i[1].schema.id??`__schema${e.counter++}`;return{defId:d,ref:u+d}},s=i=>{if(i[1].schema.$ref)return;const a=i[1],{ref:c,defId:u}=o(i);a.def={...a.schema},u&&(a.defId=u);const d=a.schema;for(const g in d)delete d[g];d.$ref=c};if(e.cycles==="throw")for(const i of e.seen.entries()){const a=i[1];if(a.cycle)throw new Error(`Cycle detected: #/${a.cycle?.join("/")}/<root>
|
|
83
|
+
`)}m.write("payload.value = newResult;"),m.write("return payload;");const x=m.compile();return(Z,A)=>x(f,Z,A)};let s;const i=re,a=!ut.jitless,u=a&&no.value,d=t.catchall;let g;e._zod.parse=(f,m)=>{g??(g=r.value);const h=f.value;return i(h)?a&&u&&m?.async===!1&&m.jitless!==!0?(s||(s=o(t.shape)),f=s(f,m),d?At([],h,f,m,g,e):f):n(f,m):(f.issues.push({expected:"object",code:"invalid_type",input:h,inst:e}),f)}});function Pt(e,t,n,r){for(const s of e)if(s.issues.length===0)return t.value=s.value,t;const o=e.filter(s=>!H(s));return o.length===1?(t.value=o[0].value,o[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map(s=>s.issues.map(i=>B(i,r,J())))}),t)}const Fi=l("$ZodUnion",(e,t)=>{E.init(e,t),v(e._zod,"optin",()=>t.options.some(o=>o._zod.optin==="optional")?"optional":void 0),v(e._zod,"optout",()=>t.options.some(o=>o._zod.optout==="optional")?"optional":void 0),v(e._zod,"values",()=>{if(t.options.every(o=>o._zod.values))return new Set(t.options.flatMap(o=>Array.from(o._zod.values)))}),v(e._zod,"pattern",()=>{if(t.options.every(o=>o._zod.pattern)){const o=t.options.map(s=>s._zod.pattern);return new RegExp(`^(${o.map(s=>Se(s.source)).join("|")})$`)}});const n=t.options.length===1,r=t.options[0]._zod.run;e._zod.parse=(o,s)=>{if(n)return r(o,s);let i=!1;const a=[];for(const c of t.options){const u=c._zod.run({value:o.value,issues:[]},s);if(u instanceof Promise)a.push(u),i=!0;else{if(u.issues.length===0)return u;a.push(u)}}return i?Promise.all(a).then(c=>Pt(c,o,e,s)):Pt(a,o,e,s)}}),qi=l("$ZodIntersection",(e,t)=>{E.init(e,t),e._zod.parse=(n,r)=>{const o=n.value,s=t.left._zod.run({value:o,issues:[]},r),i=t.right._zod.run({value:o,issues:[]},r);return s instanceof Promise||i instanceof Promise?Promise.all([s,i]).then(([c,u])=>Ot(n,c,u)):Ot(n,s,i)}});function $e(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(Q(e)&&Q(t)){const n=Object.keys(t),r=Object.keys(e).filter(s=>n.indexOf(s)!==-1),o={...e,...t};for(const s of r){const i=$e(e[s],t[s]);if(!i.valid)return{valid:!1,mergeErrorPath:[s,...i.mergeErrorPath]};o[s]=i.data}return{valid:!0,data:o}}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 o=e[r],s=t[r],i=$e(o,s);if(!i.valid)return{valid:!1,mergeErrorPath:[r,...i.mergeErrorPath]};n.push(i.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function Ot(e,t,n){const r=new Map;let o;for(const a of t.issues)if(a.code==="unrecognized_keys"){o??(o=a);for(const c of a.keys)r.has(c)||r.set(c,{}),r.get(c).l=!0}else e.issues.push(a);for(const a of n.issues)if(a.code==="unrecognized_keys")for(const c of a.keys)r.has(c)||r.set(c,{}),r.get(c).r=!0;else e.issues.push(a);const s=[...r].filter(([,a])=>a.l&&a.r).map(([a])=>a);if(s.length&&o&&e.issues.push({...o,keys:s}),H(e))return e;const i=$e(t.value,n.value);if(!i.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(i.mergeErrorPath)}`);return e.value=i.data,e}const Ji=l("$ZodEnum",(e,t)=>{E.init(e,t);const n=dt(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=new RegExp(`^(${n.filter(o=>ro.has(typeof o)).map(o=>typeof o=="string"?oe(o):o.toString()).join("|")})$`),e._zod.parse=(o,s)=>{const i=o.value;return r.has(i)||o.issues.push({code:"invalid_value",values:n,input:i,inst:e}),o}}),Gi=l("$ZodTransform",(e,t)=>{E.init(e,t),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new ct(e.constructor.name);const o=t.transform(n.value,n);if(r.async)return(o instanceof Promise?o:Promise.resolve(o)).then(i=>(n.value=i,n));if(o instanceof Promise)throw new V;return n.value=o,n}});function Nt(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}const Zt=l("$ZodOptional",(e,t)=>{E.init(e,t),e._zod.optin="optional",e._zod.optout="optional",v(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),v(e._zod,"pattern",()=>{const n=t.innerType._zod.pattern;return n?new RegExp(`^(${Se(n.source)})?$`):void 0}),e._zod.parse=(n,r)=>{if(t.innerType._zod.optin==="optional"){const o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(s=>Nt(s,n.value)):Nt(o,n.value)}return n.value===void 0?n:t.innerType._zod.run(n,r)}}),Bi=l("$ZodExactOptional",(e,t)=>{Zt.init(e,t),v(e._zod,"values",()=>t.innerType._zod.values),v(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(n,r)=>t.innerType._zod.run(n,r)}),Vi=l("$ZodNullable",(e,t)=>{E.init(e,t),v(e._zod,"optin",()=>t.innerType._zod.optin),v(e._zod,"optout",()=>t.innerType._zod.optout),v(e._zod,"pattern",()=>{const n=t.innerType._zod.pattern;return n?new RegExp(`^(${Se(n.source)}|null)$`):void 0}),v(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(n,r)=>n.value===null?n:t.innerType._zod.run(n,r)}),Hi=l("$ZodDefault",(e,t)=>{E.init(e,t),e._zod.optin="optional",v(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);if(n.value===void 0)return n.value=t.defaultValue,n;const o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(s=>Rt(s,t)):Rt(o,t)}});function Rt(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}const Wi=l("$ZodPrefault",(e,t)=>{E.init(e,t),e._zod.optin="optional",v(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>(r.direction==="backward"||n.value===void 0&&(n.value=t.defaultValue),t.innerType._zod.run(n,r))}),Ki=l("$ZodNonOptional",(e,t)=>{E.init(e,t),v(e._zod,"values",()=>{const n=t.innerType._zod.values;return n?new Set([...n].filter(r=>r!==void 0)):void 0}),e._zod.parse=(n,r)=>{const o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(s=>xt(s,e)):xt(o,e)}});function xt(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}const Yi=l("$ZodCatch",(e,t)=>{E.init(e,t),v(e._zod,"optin",()=>t.innerType._zod.optin),v(e._zod,"optout",()=>t.innerType._zod.optout),v(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);const o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(s=>(n.value=s.value,s.issues.length&&(n.value=t.catchValue({...n,error:{issues:s.issues.map(i=>B(i,r,J()))},input:n.value}),n.issues=[]),n)):(n.value=o.value,o.issues.length&&(n.value=t.catchValue({...n,error:{issues:o.issues.map(s=>B(s,r,J()))},input:n.value}),n.issues=[]),n)}}),Qi=l("$ZodPipe",(e,t)=>{E.init(e,t),v(e._zod,"values",()=>t.in._zod.values),v(e._zod,"optin",()=>t.in._zod.optin),v(e._zod,"optout",()=>t.out._zod.optout),v(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(n,r)=>{if(r.direction==="backward"){const s=t.out._zod.run(n,r);return s instanceof Promise?s.then(i=>de(i,t.in,r)):de(s,t.in,r)}const o=t.in._zod.run(n,r);return o instanceof Promise?o.then(s=>de(s,t.out,r)):de(o,t.out,r)}});function de(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}const Xi=l("$ZodReadonly",(e,t)=>{E.init(e,t),v(e._zod,"propValues",()=>t.innerType._zod.propValues),v(e._zod,"values",()=>t.innerType._zod.values),v(e._zod,"optin",()=>t.innerType?._zod?.optin),v(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);const o=t.innerType._zod.run(n,r);return o instanceof Promise?o.then(Lt):Lt(o)}});function Lt(e){return e.value=Object.freeze(e.value),e}const es=l("$ZodCustom",(e,t)=>{$.init(e,t),E.init(e,t),e._zod.parse=(n,r)=>n,e._zod.check=n=>{const r=n.value,o=t.fn(r);if(o instanceof Promise)return o.then(s=>Dt(s,n,r,e));Dt(o,n,r,e)}});function Dt(e,t,n,r){if(!e){const o={code:"custom",input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(o.params=r._zod.def.params),t.issues.push(X(o))}}var jt;class ts{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...n){const r=n[0];return this._map.set(t,r),r&&typeof r=="object"&&"id"in r&&this._idmap.set(r.id,t),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(t){const n=this._map.get(t);return n&&typeof n=="object"&&"id"in n&&this._idmap.delete(n.id),this._map.delete(t),this}get(t){const n=t._zod.parent;if(n){const r={...this.get(n)??{}};delete r.id;const o={...r,...this._map.get(t)};return Object.keys(o).length?o:void 0}return this._map.get(t)}has(t){return this._map.has(t)}}function ns(){return new ts}(jt=globalThis).__zod_globalRegistry??(jt.__zod_globalRegistry=ns());const ee=globalThis.__zod_globalRegistry;function rs(e,t){return new e({type:"string",..._(t)})}function os(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,..._(t)})}function Ut(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,..._(t)})}function is(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,..._(t)})}function ss(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",..._(t)})}function as(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",..._(t)})}function cs(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",..._(t)})}function us(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,..._(t)})}function ds(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,..._(t)})}function ls(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,..._(t)})}function ps(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,..._(t)})}function fs(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,..._(t)})}function gs(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,..._(t)})}function ms(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,..._(t)})}function hs(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,..._(t)})}function _s(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,..._(t)})}function ys(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,..._(t)})}function vs(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,..._(t)})}function bs(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,..._(t)})}function ws(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,..._(t)})}function ks(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,..._(t)})}function Ss(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,..._(t)})}function Es(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,..._(t)})}function zs(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,..._(t)})}function Cs(e,t){return new e({type:"string",format:"date",check:"string_format",..._(t)})}function Ts(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,..._(t)})}function $s(e,t){return new e({type:"string",format:"duration",check:"string_format",..._(t)})}function Is(e,t){return new e({type:"number",checks:[],..._(t)})}function As(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",..._(t)})}function Ps(e){return new e({type:"unknown"})}function Os(e,t){return new e({type:"never",..._(t)})}function Mt(e,t){return new Et({check:"less_than",..._(t),value:e,inclusive:!1})}function Ie(e,t){return new Et({check:"less_than",..._(t),value:e,inclusive:!0})}function Ft(e,t){return new zt({check:"greater_than",..._(t),value:e,inclusive:!1})}function Ae(e,t){return new zt({check:"greater_than",..._(t),value:e,inclusive:!0})}function qt(e,t){return new Yo({check:"multiple_of",..._(t),value:e})}function Jt(e,t){return new Xo({check:"max_length",..._(t),maximum:e})}function le(e,t){return new ei({check:"min_length",..._(t),minimum:e})}function Gt(e,t){return new ti({check:"length_equals",..._(t),length:e})}function Ns(e,t){return new ni({check:"string_format",format:"regex",..._(t),pattern:e})}function Zs(e){return new ri({check:"string_format",format:"lowercase",..._(e)})}function Rs(e){return new oi({check:"string_format",format:"uppercase",..._(e)})}function xs(e,t){return new ii({check:"string_format",format:"includes",..._(t),includes:e})}function Ls(e,t){return new si({check:"string_format",format:"starts_with",..._(t),prefix:e})}function Ds(e,t){return new ai({check:"string_format",format:"ends_with",..._(t),suffix:e})}function W(e){return new ci({check:"overwrite",tx:e})}function js(e){return W(t=>t.normalize(e))}function Us(){return W(e=>e.trim())}function Ms(){return W(e=>e.toLowerCase())}function Fs(){return W(e=>e.toUpperCase())}function qs(){return W(e=>to(e))}function Js(e,t,n){return new e({type:"array",element:t,..._(n)})}function Gs(e,t,n){return new e({type:"custom",check:"custom",fn:t,..._(n)})}function Bs(e){const t=Vs(n=>(n.addIssue=r=>{if(typeof r=="string")n.issues.push(X(r,n.value,t._zod.def));else{const o=r;o.fatal&&(o.continue=!1),o.code??(o.code="custom"),o.input??(o.input=n.value),o.inst??(o.inst=t),o.continue??(o.continue=!t._zod.def.abort),n.issues.push(X(o))}},e(n.value,n)));return t}function Vs(e,t){const n=new $({check:"custom",..._(t)});return n._zod.check=e,n}function Bt(e){let t=e?.target??"draft-2020-12";return t==="draft-4"&&(t="draft-04"),t==="draft-7"&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??ee,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 C(e,t,n={path:[],schemaPath:[]}){var r;const o=e._zod.def,s=t.seen.get(e);if(s)return s.count++,n.schemaPath.includes(e)&&(s.cycle=n.path),s.schema;const i={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,i);const a=e._zod.toJSONSchema?.();if(a)i.schema=a;else{const d={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,i.schema,d);else{const f=i.schema,m=t.processors[o.type];if(!m)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);m(e,t,f,d)}const g=e._zod.parent;g&&(i.ref||(i.ref=g),C(g,t,d),t.seen.get(g).isParent=!0)}const c=t.metadataRegistry.get(e);return c&&Object.assign(i.schema,c),t.io==="input"&&T(e)&&(delete i.schema.examples,delete i.schema.default),t.io==="input"&&i.schema._prefault&&((r=i.schema).default??(r.default=i.schema._prefault)),delete i.schema._prefault,t.seen.get(e).schema}function Vt(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 i of e.seen.entries()){const a=e.metadataRegistry.get(i[0])?.id;if(a){const c=r.get(a);if(c&&c!==i[0])throw new Error(`Duplicate schema id "${a}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(a,i[0])}}const o=i=>{const a=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){const g=e.external.registry.get(i[0])?.id,f=e.external.uri??(h=>h);if(g)return{ref:f(g)};const m=i[1].defId??i[1].schema.id??`schema${e.counter++}`;return i[1].defId=m,{defId:m,ref:`${f("__shared")}#/${a}/${m}`}}if(i[1]===n)return{ref:"#"};const u=`#/${a}/`,d=i[1].schema.id??`__schema${e.counter++}`;return{defId:d,ref:u+d}},s=i=>{if(i[1].schema.$ref)return;const a=i[1],{ref:c,defId:u}=o(i);a.def={...a.schema},u&&(a.defId=u);const d=a.schema;for(const g in d)delete d[g];d.$ref=c};if(e.cycles==="throw")for(const i of e.seen.entries()){const a=i[1];if(a.cycle)throw new Error(`Cycle detected: #/${a.cycle?.join("/")}/<root>
|
|
84
84
|
|
|
85
|
-
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const i of e.seen.entries()){const a=i[1];if(t===i[0]){s(i);continue}if(e.external){const u=e.external.registry.get(i[0])?.id;if(t!==i[0]&&u){s(i);continue}}if(e.metadataRegistry.get(i[0])?.id){s(i);continue}if(a.cycle){s(i);continue}if(a.count>1&&e.reused==="ref"){s(i);continue}}}function Ht(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const r=i=>{const a=e.seen.get(i);if(a.ref===null)return;const c=a.def??a.schema,u={...c},d=a.ref;if(a.ref=null,d){r(d);const f=e.seen.get(d),m=f.schema;if(m.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(c.allOf=c.allOf??[],c.allOf.push(m)):Object.assign(c,m),Object.assign(c,u),i._zod.parent===d)for(const p in c)p==="$ref"||p==="allOf"||p in u||delete c[p];if(m.$ref&&f.def)for(const p in c)p==="$ref"||p==="allOf"||p in f.def&&JSON.stringify(c[p])===JSON.stringify(f.def[p])&&delete c[p]}const g=i._zod.parent;if(g&&g!==d){r(g);const f=e.seen.get(g);if(f?.schema.$ref&&(c.$ref=f.schema.$ref,f.def))for(const m in c)m==="$ref"||m==="allOf"||m in f.def&&JSON.stringify(c[m])===JSON.stringify(f.def[m])&&delete c[m]}e.override({zodSchema:i,jsonSchema:c,path:a.path??[]})};for(const i of[...e.seen.entries()].reverse())r(i[0]);const o={};if(e.target==="draft-2020-12"?o.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?o.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?o.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const i=e.external.registry.get(t)?.id;if(!i)throw new Error("Schema is missing an `id` property");o.$id=e.external.uri(i)}Object.assign(o,n.def??n.schema);const s=e.external?.defs??{};for(const i of e.seen.entries()){const a=i[1];a.def&&a.defId&&(s[a.defId]=a.def)}e.external||Object.keys(s).length>0&&(e.target==="draft-2020-12"?o.$defs=s:o.definitions=s);try{const i=JSON.parse(JSON.stringify(o));return Object.defineProperty(i,"~standard",{value:{...t["~standard"],jsonSchema:{input:pe(t,"input",e.processors),output:pe(t,"output",e.processors)}},enumerable:!1,writable:!1}),i}catch{throw new Error("Error converting schema to JSON.")}}function T(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(r.type==="transform")return!0;if(r.type==="array")return T(r.element,n);if(r.type==="set")return T(r.valueType,n);if(r.type==="lazy")return T(r.getter(),n);if(r.type==="promise"||r.type==="optional"||r.type==="nonoptional"||r.type==="nullable"||r.type==="readonly"||r.type==="default"||r.type==="prefault")return T(r.innerType,n);if(r.type==="intersection")return T(r.left,n)||T(r.right,n);if(r.type==="record"||r.type==="map")return T(r.keyType,n)||T(r.valueType,n);if(r.type==="pipe")return T(r.in,n)||T(r.out,n);if(r.type==="object"){for(const o in r.shape)if(T(r.shape[o],n))return!0;return!1}if(r.type==="union"){for(const o of r.options)if(T(o,n))return!0;return!1}if(r.type==="tuple"){for(const o of r.items)if(T(o,n))return!0;return!!(r.rest&&T(r.rest,n))}return!1}const Hs=(e,t={})=>n=>{const r=Vt({...n,processors:t});return C(e,r),Bt(r,e),Ht(r,e)},pe=(e,t,n={})=>r=>{const{libraryOptions:o,target:s}=r??{},i=Vt({...o??{},target:s,io:t,processors:n});return C(e,i),Bt(i,e),Ht(i,e)},Ws={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Ks=(e,t,n,r)=>{const o=n;o.type="string";const{minimum:s,maximum:i,format:a,patterns:c,contentEncoding:u}=e._zod.bag;if(typeof s=="number"&&(o.minLength=s),typeof i=="number"&&(o.maxLength=i),a&&(o.format=Ws[a]??a,o.format===""&&delete o.format,a==="time"&&delete o.format),u&&(o.contentEncoding=u),c&&c.size>0){const d=[...c];d.length===1?o.pattern=d[0].source:d.length>1&&(o.allOf=[...d.map(g=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:g.source}))])}},Ys=(e,t,n,r)=>{const o=n,{minimum:s,maximum:i,format:a,multipleOf:c,exclusiveMaximum:u,exclusiveMinimum:d}=e._zod.bag;typeof a=="string"&&a.includes("int")?o.type="integer":o.type="number",typeof d=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(o.minimum=d,o.exclusiveMinimum=!0):o.exclusiveMinimum=d),typeof s=="number"&&(o.minimum=s,typeof d=="number"&&t.target!=="draft-04"&&(d>=s?delete o.minimum:delete o.exclusiveMinimum)),typeof u=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(o.maximum=u,o.exclusiveMaximum=!0):o.exclusiveMaximum=u),typeof i=="number"&&(o.maximum=i,typeof u=="number"&&t.target!=="draft-04"&&(u<=i?delete o.maximum:delete o.exclusiveMaximum)),typeof c=="number"&&(o.multipleOf=c)},Qs=(e,t,n,r)=>{n.not={}},Xs=(e,t,n,r)=>{},ea=(e,t,n,r)=>{const o=e._zod.def,s=dt(o.entries);s.every(i=>typeof i=="number")&&(n.type="number"),s.every(i=>typeof i=="string")&&(n.type="string"),n.enum=s},ta=(e,t,n,r)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},na=(e,t,n,r)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},ra=(e,t,n,r)=>{const o=n,s=e._zod.def,{minimum:i,maximum:a}=e._zod.bag;typeof i=="number"&&(o.minItems=i),typeof a=="number"&&(o.maxItems=a),o.type="array",o.items=C(s.element,t,{...r,path:[...r.path,"items"]})},oa=(e,t,n,r)=>{const o=n,s=e._zod.def;o.type="object",o.properties={};const i=s.shape;for(const u in i)o.properties[u]=C(i[u],t,{...r,path:[...r.path,"properties",u]});const a=new Set(Object.keys(i)),c=new Set([...a].filter(u=>{const d=s.shape[u]._zod;return t.io==="input"?d.optin===void 0:d.optout===void 0}));c.size>0&&(o.required=Array.from(c)),s.catchall?._zod.def.type==="never"?o.additionalProperties=!1:s.catchall?s.catchall&&(o.additionalProperties=C(s.catchall,t,{...r,path:[...r.path,"additionalProperties"]})):t.io==="output"&&(o.additionalProperties=!1)},ia=(e,t,n,r)=>{const o=e._zod.def,s=o.inclusive===!1,i=o.options.map((a,c)=>C(a,t,{...r,path:[...r.path,s?"oneOf":"anyOf",c]}));s?n.oneOf=i:n.anyOf=i},sa=(e,t,n,r)=>{const o=e._zod.def,s=C(o.left,t,{...r,path:[...r.path,"allOf",0]}),i=C(o.right,t,{...r,path:[...r.path,"allOf",1]}),a=u=>"allOf"in u&&Object.keys(u).length===1,c=[...a(s)?s.allOf:[s],...a(i)?i.allOf:[i]];n.allOf=c},aa=(e,t,n,r)=>{const o=e._zod.def,s=C(o.innerType,t,r),i=t.seen.get(e);t.target==="openapi-3.0"?(i.ref=o.innerType,n.nullable=!0):n.anyOf=[s,{type:"null"}]},ca=(e,t,n,r)=>{const o=e._zod.def;C(o.innerType,t,r);const s=t.seen.get(e);s.ref=o.innerType},ua=(e,t,n,r)=>{const o=e._zod.def;C(o.innerType,t,r);const s=t.seen.get(e);s.ref=o.innerType,n.default=JSON.parse(JSON.stringify(o.defaultValue))},da=(e,t,n,r)=>{const o=e._zod.def;C(o.innerType,t,r);const s=t.seen.get(e);s.ref=o.innerType,t.io==="input"&&(n._prefault=JSON.parse(JSON.stringify(o.defaultValue)))},la=(e,t,n,r)=>{const o=e._zod.def;C(o.innerType,t,r);const s=t.seen.get(e);s.ref=o.innerType;let i;try{i=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}n.default=i},pa=(e,t,n,r)=>{const o=e._zod.def,s=t.io==="input"?o.in._zod.def.type==="transform"?o.out:o.in:o.out;C(s,t,r);const i=t.seen.get(e);i.ref=s},fa=(e,t,n,r)=>{const o=e._zod.def;C(o.innerType,t,r);const s=t.seen.get(e);s.ref=o.innerType,n.readOnly=!0},Wt=(e,t,n,r)=>{const o=e._zod.def;C(o.innerType,t,r);const s=t.seen.get(e);s.ref=o.innerType},ga=l("ZodISODateTime",(e,t)=>{ki.init(e,t),S.init(e,t)});function ma(e){return zs(ga,e)}const ha=l("ZodISODate",(e,t)=>{Si.init(e,t),S.init(e,t)});function _a(e){return Cs(ha,e)}const ya=l("ZodISOTime",(e,t)=>{Ei.init(e,t),S.init(e,t)});function va(e){return Ts(ya,e)}const ba=l("ZodISODuration",(e,t)=>{zi.init(e,t),S.init(e,t)});function wa(e){return $s(ba,e)}const P=l("ZodError",(e,t)=>{_t.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>mo(e,n)},flatten:{value:n=>go(e,n)},addIssue:{value:n=>{e.issues.push(n),e.message=JSON.stringify(e.issues,be,2)}},addIssues:{value:n=>{e.issues.push(...n),e.message=JSON.stringify(e.issues,be,2)}},isEmpty:{get(){return e.issues.length===0}}})},{Parent:Error}),ka=ze(P),Sa=Ce(P),Ea=se(P),za=ae(P),Ca=yo(P),Ta=vo(P),$a=bo(P),Ia=wo(P),Aa=ko(P),Pa=So(P),Oa=Eo(P),Na=zo(P),z=l("ZodType",(e,t)=>(E.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:pe(e,"input"),output:pe(e,"output")}}),e.toJSONSchema=Hs(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone(j(t,{checks:[...t.checks??[],...n.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),{parent:!0}),e.with=e.check,e.clone=(n,r)=>U(e,n,r),e.brand=()=>e,e.register=((n,r)=>(n.add(e,r),e)),e.parse=(n,r)=>ka(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>Ea(e,n,r),e.parseAsync=async(n,r)=>Sa(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>za(e,n,r),e.spa=e.safeParseAsync,e.encode=(n,r)=>Ca(e,n,r),e.decode=(n,r)=>Ta(e,n,r),e.encodeAsync=async(n,r)=>$a(e,n,r),e.decodeAsync=async(n,r)=>Ia(e,n,r),e.safeEncode=(n,r)=>Aa(e,n,r),e.safeDecode=(n,r)=>Pa(e,n,r),e.safeEncodeAsync=async(n,r)=>Oa(e,n,r),e.safeDecodeAsync=async(n,r)=>Na(e,n,r),e.refine=(n,r)=>e.check(Ec(n,r)),e.superRefine=n=>e.check(zc(n)),e.overwrite=n=>e.check(W(n)),e.optional=()=>nn(e),e.exactOptional=()=>lc(e),e.nullable=()=>rn(e),e.nullish=()=>nn(rn(e)),e.nonoptional=n=>_c(e,n),e.array=()=>en(e),e.or=n=>ic([e,n]),e.and=n=>ac(e,n),e.transform=n=>sn(e,uc(n)),e.default=n=>gc(e,n),e.prefault=n=>hc(e,n),e.catch=n=>vc(e,n),e.pipe=n=>sn(e,n),e.readonly=()=>kc(e),e.describe=n=>{const r=e.clone();return ee.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){return ee.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return ee.get(e);const r=e.clone();return ee.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=n=>n(e),e)),Kt=l("_ZodString",(e,t)=>{Te.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,o,s)=>Ks(e,r,o);const n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...r)=>e.check(Ns(...r)),e.includes=(...r)=>e.check(xs(...r)),e.startsWith=(...r)=>e.check(Ls(...r)),e.endsWith=(...r)=>e.check(Ds(...r)),e.min=(...r)=>e.check(le(...r)),e.max=(...r)=>e.check(Jt(...r)),e.length=(...r)=>e.check(Gt(...r)),e.nonempty=(...r)=>e.check(le(1,...r)),e.lowercase=r=>e.check(Zs(r)),e.uppercase=r=>e.check(Rs(r)),e.trim=()=>e.check(Us()),e.normalize=(...r)=>e.check(js(...r)),e.toLowerCase=()=>e.check(Ms()),e.toUpperCase=()=>e.check(Fs()),e.slugify=()=>e.check(qs())}),Za=l("ZodString",(e,t)=>{Te.init(e,t),Kt.init(e,t),e.email=n=>e.check(os(Ra,n)),e.url=n=>e.check(us(xa,n)),e.jwt=n=>e.check(Es(Ya,n)),e.emoji=n=>e.check(ds(La,n)),e.guid=n=>e.check(Ut(Yt,n)),e.uuid=n=>e.check(is(fe,n)),e.uuidv4=n=>e.check(ss(fe,n)),e.uuidv6=n=>e.check(as(fe,n)),e.uuidv7=n=>e.check(cs(fe,n)),e.nanoid=n=>e.check(ls(Da,n)),e.guid=n=>e.check(Ut(Yt,n)),e.cuid=n=>e.check(ps(ja,n)),e.cuid2=n=>e.check(fs(Ua,n)),e.ulid=n=>e.check(gs(Ma,n)),e.base64=n=>e.check(ws(Ha,n)),e.base64url=n=>e.check(ks(Wa,n)),e.xid=n=>e.check(ms(Fa,n)),e.ksuid=n=>e.check(hs(qa,n)),e.ipv4=n=>e.check(_s(Ja,n)),e.ipv6=n=>e.check(ys(Ga,n)),e.cidrv4=n=>e.check(vs(Va,n)),e.cidrv6=n=>e.check(bs(Ba,n)),e.e164=n=>e.check(Ss(Ka,n)),e.datetime=n=>e.check(ma(n)),e.date=n=>e.check(_a(n)),e.time=n=>e.check(va(n)),e.duration=n=>e.check(wa(n))});function I(e){return rs(Za,e)}const S=l("ZodStringFormat",(e,t)=>{k.init(e,t),Kt.init(e,t)}),Ra=l("ZodEmail",(e,t)=>{fi.init(e,t),S.init(e,t)}),Yt=l("ZodGUID",(e,t)=>{li.init(e,t),S.init(e,t)}),fe=l("ZodUUID",(e,t)=>{pi.init(e,t),S.init(e,t)}),xa=l("ZodURL",(e,t)=>{gi.init(e,t),S.init(e,t)}),La=l("ZodEmoji",(e,t)=>{mi.init(e,t),S.init(e,t)}),Da=l("ZodNanoID",(e,t)=>{hi.init(e,t),S.init(e,t)}),ja=l("ZodCUID",(e,t)=>{_i.init(e,t),S.init(e,t)}),Ua=l("ZodCUID2",(e,t)=>{yi.init(e,t),S.init(e,t)}),Ma=l("ZodULID",(e,t)=>{vi.init(e,t),S.init(e,t)}),Fa=l("ZodXID",(e,t)=>{bi.init(e,t),S.init(e,t)}),qa=l("ZodKSUID",(e,t)=>{wi.init(e,t),S.init(e,t)}),Ja=l("ZodIPv4",(e,t)=>{Ci.init(e,t),S.init(e,t)}),Ga=l("ZodIPv6",(e,t)=>{Ti.init(e,t),S.init(e,t)}),Va=l("ZodCIDRv4",(e,t)=>{$i.init(e,t),S.init(e,t)}),Ba=l("ZodCIDRv6",(e,t)=>{Ii.init(e,t),S.init(e,t)}),Ha=l("ZodBase64",(e,t)=>{Ai.init(e,t),S.init(e,t)}),Wa=l("ZodBase64URL",(e,t)=>{Oi.init(e,t),S.init(e,t)}),Ka=l("ZodE164",(e,t)=>{Ni.init(e,t),S.init(e,t)}),Ya=l("ZodJWT",(e,t)=>{Ri.init(e,t),S.init(e,t)}),Qt=l("ZodNumber",(e,t)=>{Tt.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,o,s)=>Ys(e,r,o),e.gt=(r,o)=>e.check(Ft(r,o)),e.gte=(r,o)=>e.check(Ae(r,o)),e.min=(r,o)=>e.check(Ae(r,o)),e.lt=(r,o)=>e.check(Mt(r,o)),e.lte=(r,o)=>e.check(Ie(r,o)),e.max=(r,o)=>e.check(Ie(r,o)),e.int=r=>e.check(Xt(r)),e.safe=r=>e.check(Xt(r)),e.positive=r=>e.check(Ft(0,r)),e.nonnegative=r=>e.check(Ae(0,r)),e.negative=r=>e.check(Mt(0,r)),e.nonpositive=r=>e.check(Ie(0,r)),e.multipleOf=(r,o)=>e.check(qt(r,o)),e.step=(r,o)=>e.check(qt(r,o)),e.finite=()=>e;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 te(e){return Is(Qt,e)}const Qa=l("ZodNumberFormat",(e,t)=>{xi.init(e,t),Qt.init(e,t)});function Xt(e){return As(Qa,e)}const Xa=l("ZodUnknown",(e,t)=>{Li.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Xs()});function Pe(){return Ps(Xa)}const ec=l("ZodNever",(e,t)=>{Di.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Qs(e,n,r)});function tc(e){return Os(ec,e)}const nc=l("ZodArray",(e,t)=>{ji.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,r,o)=>ra(e,n,r,o),e.element=t.element,e.min=(n,r)=>e.check(le(n,r)),e.nonempty=n=>e.check(le(1,n)),e.max=(n,r)=>e.check(Jt(n,r)),e.length=(n,r)=>e.check(Gt(n,r)),e.unwrap=()=>e.element});function en(e,t){return Js(nc,e,t)}const rc=l("ZodObject",(e,t)=>{Mi.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,r,o)=>oa(e,n,r,o),v(e,"shape",()=>t.shape),e.keyof=()=>Ne(Object.keys(e._zod.def.shape)),e.catchall=n=>e.clone({...e._zod.def,catchall:n}),e.passthrough=()=>e.clone({...e._zod.def,catchall:Pe()}),e.loose=()=>e.clone({...e._zod.def,catchall:Pe()}),e.strict=()=>e.clone({...e._zod.def,catchall:tc()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=n=>co(e,n),e.safeExtend=n=>uo(e,n),e.merge=n=>lo(e,n),e.pick=n=>so(e,n),e.omit=n=>ao(e,n),e.partial=(...n)=>po(tn,e,n[0]),e.required=(...n)=>fo(on,e,n[0])});function M(e,t){const n={type:"object",shape:e??{},..._(t)};return new rc(n)}const oc=l("ZodUnion",(e,t)=>{Fi.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,r,o)=>ia(e,n,r,o),e.options=t.options});function ic(e,t){return new oc({type:"union",options:e,..._(t)})}const sc=l("ZodIntersection",(e,t)=>{qi.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,r,o)=>sa(e,n,r,o)});function ac(e,t){return new sc({type:"intersection",left:e,right:t})}const Oe=l("ZodEnum",(e,t)=>{Ji.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,o,s)=>ea(e,r,o),e.enum=t.entries,e.options=Object.values(t.entries);const n=new Set(Object.keys(t.entries));e.extract=(r,o)=>{const s={};for(const i of r)if(n.has(i))s[i]=t.entries[i];else throw new Error(`Key ${i} not found in enum`);return new Oe({...t,checks:[],..._(o),entries:s})},e.exclude=(r,o)=>{const s={...t.entries};for(const i of r)if(n.has(i))delete s[i];else throw new Error(`Key ${i} not found in enum`);return new Oe({...t,checks:[],..._(o),entries:s})}});function Ne(e,t){const n=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new Oe({type:"enum",entries:n,..._(t)})}const cc=l("ZodTransform",(e,t)=>{Gi.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,r,o)=>na(e,n),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new ct(e.constructor.name);n.addIssue=s=>{if(typeof s=="string")n.issues.push(X(s,n.value,t));else{const i=s;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=n.value),i.inst??(i.inst=e),n.issues.push(X(i))}};const o=t.transform(n.value,n);return o instanceof Promise?o.then(s=>(n.value=s,n)):(n.value=o,n)}});function uc(e){return new cc({type:"transform",transform:e})}const tn=l("ZodOptional",(e,t)=>{Zt.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Wt(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function nn(e){return new tn({type:"optional",innerType:e})}const dc=l("ZodExactOptional",(e,t)=>{Vi.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Wt(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function lc(e){return new dc({type:"optional",innerType:e})}const pc=l("ZodNullable",(e,t)=>{Bi.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,r,o)=>aa(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function rn(e){return new pc({type:"nullable",innerType:e})}const fc=l("ZodDefault",(e,t)=>{Hi.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,r,o)=>ua(e,n,r,o),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function gc(e,t){return new fc({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():gt(t)}})}const mc=l("ZodPrefault",(e,t)=>{Wi.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,r,o)=>da(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function hc(e,t){return new mc({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():gt(t)}})}const on=l("ZodNonOptional",(e,t)=>{Ki.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,r,o)=>ca(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function _c(e,t){return new on({type:"nonoptional",innerType:e,..._(t)})}const yc=l("ZodCatch",(e,t)=>{Yi.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,r,o)=>la(e,n,r,o),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function vc(e,t){return new yc({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}const bc=l("ZodPipe",(e,t)=>{Qi.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,r,o)=>pa(e,n,r,o),e.in=t.in,e.out=t.out});function sn(e,t){return new bc({type:"pipe",in:e,out:t})}const wc=l("ZodReadonly",(e,t)=>{Xi.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,r,o)=>fa(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function kc(e){return new wc({type:"readonly",innerType:e})}const Sc=l("ZodCustom",(e,t)=>{es.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,r,o)=>ta(e,n)});function Ec(e,t={}){return Gs(Sc,e,t)}function zc(e){return Vs(e)}const Cc=M({sku:I(),name:I(),imageUrl:I().url().optional(),price:I().optional(),originalPrice:I().optional(),discountPercent:te().optional(),url:I().url(),brand:I().optional(),rating:te().min(0).max(5).optional(),reviewCount:te().int().nonnegative().optional()}),Tc=M({layout:Ne(["grid","carousel"]).optional(),columns:te().int().positive().optional()}),$c=M({product:Cc,index:te().int().nonnegative(),discountType:Ne(["strike-through","badge"]).optional()}),Ic=M({sku:I(),label:I().optional(),cartCode:I()}),Ac=M({actions:en(M({label:I(),action:M({title:I(),type:I(),payload:Pe().optional()})}))}),Pc=M({message:I().optional()}),Oc={components:{ProductGrid:{schema:Tc,description:"Outer grid or carousel container for similar products."},ProductCard:{schema:$c,description:"A single product card with image, title, price, and actions."},AddToCartButton:{schema:Ic,description:"Add-to-cart CTA rendered inside or below a product card."},QuickActions:{schema:Ac,description:"A row of quick-action buttons below product info."},EmptyState:{schema:Pc,description:"Empty state shown when no similar products are available."}}};class an extends Mn{constructor(){super(...arguments),this._abortController=null,this._contentEl=null,this._i18n=st}async onInit(t){this._i18n=this._resolveI18n(t),this._contentEl=document.createElement("div"),this._contentEl.className="gengage-simrel-container",this.root.appendChild(this._contentEl),this._lastSku=t.sku,await this._fetchAndRender(t.sku),this.isVisible=!0,Yr("simrel")}onUpdate(t){const n=t.sku;!n||n===this._lastSku||(this._lastSku=n,this._fetchAndRender(n))}onShow(){this._contentEl&&(this._contentEl.style.opacity="0",this._contentEl.style.transition="opacity 0.3s ease-in",requestAnimationFrame(()=>{this._contentEl&&(this._contentEl.style.opacity="1")}))}onHide(){}onDestroy(){this._abort(),this._contentEl&&(this._contentEl.remove(),this._contentEl=null)}_handleProductClick(t){const n={sku:t.sku,name:t.name,url:t.url};if(t.imageUrl!==void 0&&(n.imageUrl=t.imageUrl),t.price!==void 0&&(n.price=t.price),t.originalPrice!==void 0&&(n.originalPrice=t.originalPrice),t.discountPercent!==void 0&&(n.discountPercent=t.discountPercent),t.brand!==void 0&&(n.brand=t.brand),t.rating!==void 0&&(n.rating=t.rating),t.reviewCount!==void 0&&(n.reviewCount=t.reviewCount),t.cartCode!==void 0&&(n.cartCode=t.cartCode),t.inStock!==void 0&&(n.inStock=t.inStock),this.config.onProductClick?.(n)===!1)return;Qr(t.sku,t.name);const r=this.config.session?.sessionId??null;me("gengage:similar:product-click",{sku:t.sku,url:t.url,sessionId:r}),this.config.onProductNavigate?.(t.url,t.sku,r)}_handleAddToCart(t){Xr(t.sku,t.quantity),this.config.onAddToCart?.(t),me("gengage:similar:add-to-cart",t),this.track(gn(this.analyticsContext(),{attribution_source:"simrel",attribution_action_id:crypto.randomUUID(),cart_value:0,currency:"TRY",line_items:t.quantity,sku:t.sku}))}_abort(){this._abortController?.abort(),this._abortController=null}async _fetchAndRender(t){this._abort(),this._abortController=new AbortController;const n=this._abortController.signal,r=setTimeout(()=>this._abortController?.abort(),1e4);if(n.addEventListener("abort",()=>clearTimeout(r)),!this._contentEl)return;this._contentEl.innerHTML="",this._contentEl.style.display="";const o=document.createElement("div");o.className="gengage-simrel-loading";const s=document.createElement("div");s.className="gengage-simrel-spinner",o.appendChild(s),this._contentEl.appendChild(o);const i={middlewareUrl:this.config.middlewareUrl},a=crypto.randomUUID(),c=Date.now();this.track(ln(this.analyticsContext(),{endpoint:"similar_products",request_id:a,widget:"simrel"}));try{const u={account_id:this.config.accountId,session_id:this.config.session?.sessionId??"",correlation_id:this.config.session?.sessionId??"",sku:t};this.config.domain!==void 0&&(u.domain=this.config.domain);const d=await Rr(u,i,n);if(!this._contentEl)return;if(this._contentEl.innerHTML="",d.length>0)try{const g=d.map(m=>m.sku),f=await Lr({account_id:this.config.accountId,session_id:this.config.session?.sessionId??"",correlation_id:this.config.session?.sessionId??"",skus:g},i,n);if(f.length>0&&this._contentEl){const m=this._buildGroupsSpec(f),h=this._renderUISpec(m);this._contentEl.appendChild(h),at("simrel"),this.track(Ze(this.analyticsContext(),{request_id:a,latency_ms:Date.now()-c,chunk_count:f.reduce((p,y)=>p+y.products.length,0),widget:"simrel"})),this.track(Re(this.analyticsContext(),{message_count:f.reduce((p,y)=>p+y.products.length,0),history_ref:a,redaction_level:"none",widget:"simrel"}));return}}catch{}if(n.aborted)return;if(this._contentEl){const g=this._buildProductsSpec(d),f=this._renderUISpec(g);this._contentEl.appendChild(f)}d.length>0&&at("simrel"),this.track(Ze(this.analyticsContext(),{request_id:a,latency_ms:Date.now()-c,chunk_count:d.length,widget:"simrel"})),this.track(Re(this.analyticsContext(),{message_count:d.length,history_ref:a,redaction_level:"none",widget:"simrel"}))}catch(u){if(u instanceof DOMException&&u.name==="AbortError")return;if(me("gengage:global:error",{source:"simrel",code:"FETCH_ERROR",message:On(this.config.locale)}),this.track(pn(this.analyticsContext(),{request_id:a,error_code:"FETCH_ERROR",error_message:u instanceof Error?u.message:String(u),widget:"simrel"})),this._contentEl){this._contentEl.innerHTML="";const d=document.createElement("div");d.className="gengage-simrel-error";const g=document.createElement("span");g.textContent=this.config.locale?.startsWith("tr")?"Benzer ürünler yüklenemedi.":"Could not load similar products.",d.appendChild(g);const f=document.createElement("button");f.className="gengage-simrel-retry",f.textContent=this.config.locale?.startsWith("tr")?"Tekrar dene":"Try again",f.addEventListener("click",()=>{this._fetchAndRender(this.config.sku)}),d.appendChild(f),this._contentEl.appendChild(d)}}}_resolveI18n(t){return{...Wr(t.locale),...t.i18n}}_resolveUISpecRegistry(){const t=ot();return dn(t,this.config.renderer?.registry)}_buildRenderContext(){const t=this.config.renderCard,n={onClick:r=>this._handleProductClick(r),onAddToCart:r=>this._handleAddToCart(r),i18n:this._i18n};return this.config.discountType!==void 0&&(n.discountType=this.config.discountType),t!==void 0&&(n.renderCard=t),this.config.renderCardElement!==void 0&&(n.renderCardElement=this.config.renderCardElement),this.config.pricing!==void 0&&(n.pricing=this.config.pricing),n}_renderUISpec(t){const n=this._resolveUISpecRegistry(),r=this._buildRenderContext(),o=this.config.renderer?.unknownRenderer??ve,s=(c,u)=>it(c,u,n,o),i=this.config.renderer?.renderUISpec;return i?i(t,r,{registry:n,unknownRenderer:o,defaultRender:s}):s(t,r)}_buildProductsSpec(t){const n={},r=[];for(let o=0;o<t.length;o++){const s=t[o],i=`product-${o}`;r.push(i),n[i]={type:"ProductCard",props:{product:s,index:o,discountType:this.config.discountType}}}return n.root={type:"ProductGrid",props:{layout:"grid"},children:r},{root:"root",elements:n}}_buildGroupsSpec(t){return{root:"root",elements:{root:{type:"GroupTabs",props:{groups:t}}}}}}function Nc(){return new an}F.GengageSimRel=an,F.createDefaultSimRelUISpecRegistry=ot,F.createSimRelWidget=Nc,F.defaultSimRelUnknownUISpecRenderer=ve,F.renderSimRelUISpec=it,F.simRelCatalog=Oc,Object.defineProperty(F,Symbol.toStringTag,{value:"Module"})})(this.Gengage=this.Gengage||{});
|
|
85
|
+
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const i of e.seen.entries()){const a=i[1];if(t===i[0]){s(i);continue}if(e.external){const u=e.external.registry.get(i[0])?.id;if(t!==i[0]&&u){s(i);continue}}if(e.metadataRegistry.get(i[0])?.id){s(i);continue}if(a.cycle){s(i);continue}if(a.count>1&&e.reused==="ref"){s(i);continue}}}function Ht(e,t){const n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");const r=i=>{const a=e.seen.get(i);if(a.ref===null)return;const c=a.def??a.schema,u={...c},d=a.ref;if(a.ref=null,d){r(d);const f=e.seen.get(d),m=f.schema;if(m.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(c.allOf=c.allOf??[],c.allOf.push(m)):Object.assign(c,m),Object.assign(c,u),i._zod.parent===d)for(const p in c)p==="$ref"||p==="allOf"||p in u||delete c[p];if(m.$ref&&f.def)for(const p in c)p==="$ref"||p==="allOf"||p in f.def&&JSON.stringify(c[p])===JSON.stringify(f.def[p])&&delete c[p]}const g=i._zod.parent;if(g&&g!==d){r(g);const f=e.seen.get(g);if(f?.schema.$ref&&(c.$ref=f.schema.$ref,f.def))for(const m in c)m==="$ref"||m==="allOf"||m in f.def&&JSON.stringify(c[m])===JSON.stringify(f.def[m])&&delete c[m]}e.override({zodSchema:i,jsonSchema:c,path:a.path??[]})};for(const i of[...e.seen.entries()].reverse())r(i[0]);const o={};if(e.target==="draft-2020-12"?o.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?o.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?o.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const i=e.external.registry.get(t)?.id;if(!i)throw new Error("Schema is missing an `id` property");o.$id=e.external.uri(i)}Object.assign(o,n.def??n.schema);const s=e.external?.defs??{};for(const i of e.seen.entries()){const a=i[1];a.def&&a.defId&&(s[a.defId]=a.def)}e.external||Object.keys(s).length>0&&(e.target==="draft-2020-12"?o.$defs=s:o.definitions=s);try{const i=JSON.parse(JSON.stringify(o));return Object.defineProperty(i,"~standard",{value:{...t["~standard"],jsonSchema:{input:pe(t,"input",e.processors),output:pe(t,"output",e.processors)}},enumerable:!1,writable:!1}),i}catch{throw new Error("Error converting schema to JSON.")}}function T(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(r.type==="transform")return!0;if(r.type==="array")return T(r.element,n);if(r.type==="set")return T(r.valueType,n);if(r.type==="lazy")return T(r.getter(),n);if(r.type==="promise"||r.type==="optional"||r.type==="nonoptional"||r.type==="nullable"||r.type==="readonly"||r.type==="default"||r.type==="prefault")return T(r.innerType,n);if(r.type==="intersection")return T(r.left,n)||T(r.right,n);if(r.type==="record"||r.type==="map")return T(r.keyType,n)||T(r.valueType,n);if(r.type==="pipe")return T(r.in,n)||T(r.out,n);if(r.type==="object"){for(const o in r.shape)if(T(r.shape[o],n))return!0;return!1}if(r.type==="union"){for(const o of r.options)if(T(o,n))return!0;return!1}if(r.type==="tuple"){for(const o of r.items)if(T(o,n))return!0;return!!(r.rest&&T(r.rest,n))}return!1}const Hs=(e,t={})=>n=>{const r=Bt({...n,processors:t});return C(e,r),Vt(r,e),Ht(r,e)},pe=(e,t,n={})=>r=>{const{libraryOptions:o,target:s}=r??{},i=Bt({...o??{},target:s,io:t,processors:n});return C(e,i),Vt(i,e),Ht(i,e)},Ws={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Ks=(e,t,n,r)=>{const o=n;o.type="string";const{minimum:s,maximum:i,format:a,patterns:c,contentEncoding:u}=e._zod.bag;if(typeof s=="number"&&(o.minLength=s),typeof i=="number"&&(o.maxLength=i),a&&(o.format=Ws[a]??a,o.format===""&&delete o.format,a==="time"&&delete o.format),u&&(o.contentEncoding=u),c&&c.size>0){const d=[...c];d.length===1?o.pattern=d[0].source:d.length>1&&(o.allOf=[...d.map(g=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:g.source}))])}},Ys=(e,t,n,r)=>{const o=n,{minimum:s,maximum:i,format:a,multipleOf:c,exclusiveMaximum:u,exclusiveMinimum:d}=e._zod.bag;typeof a=="string"&&a.includes("int")?o.type="integer":o.type="number",typeof d=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(o.minimum=d,o.exclusiveMinimum=!0):o.exclusiveMinimum=d),typeof s=="number"&&(o.minimum=s,typeof d=="number"&&t.target!=="draft-04"&&(d>=s?delete o.minimum:delete o.exclusiveMinimum)),typeof u=="number"&&(t.target==="draft-04"||t.target==="openapi-3.0"?(o.maximum=u,o.exclusiveMaximum=!0):o.exclusiveMaximum=u),typeof i=="number"&&(o.maximum=i,typeof u=="number"&&t.target!=="draft-04"&&(u<=i?delete o.maximum:delete o.exclusiveMaximum)),typeof c=="number"&&(o.multipleOf=c)},Qs=(e,t,n,r)=>{n.not={}},Xs=(e,t,n,r)=>{},ea=(e,t,n,r)=>{const o=e._zod.def,s=dt(o.entries);s.every(i=>typeof i=="number")&&(n.type="number"),s.every(i=>typeof i=="string")&&(n.type="string"),n.enum=s},ta=(e,t,n,r)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},na=(e,t,n,r)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},ra=(e,t,n,r)=>{const o=n,s=e._zod.def,{minimum:i,maximum:a}=e._zod.bag;typeof i=="number"&&(o.minItems=i),typeof a=="number"&&(o.maxItems=a),o.type="array",o.items=C(s.element,t,{...r,path:[...r.path,"items"]})},oa=(e,t,n,r)=>{const o=n,s=e._zod.def;o.type="object",o.properties={};const i=s.shape;for(const u in i)o.properties[u]=C(i[u],t,{...r,path:[...r.path,"properties",u]});const a=new Set(Object.keys(i)),c=new Set([...a].filter(u=>{const d=s.shape[u]._zod;return t.io==="input"?d.optin===void 0:d.optout===void 0}));c.size>0&&(o.required=Array.from(c)),s.catchall?._zod.def.type==="never"?o.additionalProperties=!1:s.catchall?s.catchall&&(o.additionalProperties=C(s.catchall,t,{...r,path:[...r.path,"additionalProperties"]})):t.io==="output"&&(o.additionalProperties=!1)},ia=(e,t,n,r)=>{const o=e._zod.def,s=o.inclusive===!1,i=o.options.map((a,c)=>C(a,t,{...r,path:[...r.path,s?"oneOf":"anyOf",c]}));s?n.oneOf=i:n.anyOf=i},sa=(e,t,n,r)=>{const o=e._zod.def,s=C(o.left,t,{...r,path:[...r.path,"allOf",0]}),i=C(o.right,t,{...r,path:[...r.path,"allOf",1]}),a=u=>"allOf"in u&&Object.keys(u).length===1,c=[...a(s)?s.allOf:[s],...a(i)?i.allOf:[i]];n.allOf=c},aa=(e,t,n,r)=>{const o=e._zod.def,s=C(o.innerType,t,r),i=t.seen.get(e);t.target==="openapi-3.0"?(i.ref=o.innerType,n.nullable=!0):n.anyOf=[s,{type:"null"}]},ca=(e,t,n,r)=>{const o=e._zod.def;C(o.innerType,t,r);const s=t.seen.get(e);s.ref=o.innerType},ua=(e,t,n,r)=>{const o=e._zod.def;C(o.innerType,t,r);const s=t.seen.get(e);s.ref=o.innerType,n.default=JSON.parse(JSON.stringify(o.defaultValue))},da=(e,t,n,r)=>{const o=e._zod.def;C(o.innerType,t,r);const s=t.seen.get(e);s.ref=o.innerType,t.io==="input"&&(n._prefault=JSON.parse(JSON.stringify(o.defaultValue)))},la=(e,t,n,r)=>{const o=e._zod.def;C(o.innerType,t,r);const s=t.seen.get(e);s.ref=o.innerType;let i;try{i=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}n.default=i},pa=(e,t,n,r)=>{const o=e._zod.def,s=t.io==="input"?o.in._zod.def.type==="transform"?o.out:o.in:o.out;C(s,t,r);const i=t.seen.get(e);i.ref=s},fa=(e,t,n,r)=>{const o=e._zod.def;C(o.innerType,t,r);const s=t.seen.get(e);s.ref=o.innerType,n.readOnly=!0},Wt=(e,t,n,r)=>{const o=e._zod.def;C(o.innerType,t,r);const s=t.seen.get(e);s.ref=o.innerType},ga=l("ZodISODateTime",(e,t)=>{ki.init(e,t),S.init(e,t)});function ma(e){return zs(ga,e)}const ha=l("ZodISODate",(e,t)=>{Si.init(e,t),S.init(e,t)});function _a(e){return Cs(ha,e)}const ya=l("ZodISOTime",(e,t)=>{Ei.init(e,t),S.init(e,t)});function va(e){return Ts(ya,e)}const ba=l("ZodISODuration",(e,t)=>{zi.init(e,t),S.init(e,t)});function wa(e){return $s(ba,e)}const P=l("ZodError",(e,t)=>{_t.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>mo(e,n)},flatten:{value:n=>go(e,n)},addIssue:{value:n=>{e.issues.push(n),e.message=JSON.stringify(e.issues,be,2)}},addIssues:{value:n=>{e.issues.push(...n),e.message=JSON.stringify(e.issues,be,2)}},isEmpty:{get(){return e.issues.length===0}}})},{Parent:Error}),ka=ze(P),Sa=Ce(P),Ea=se(P),za=ae(P),Ca=yo(P),Ta=vo(P),$a=bo(P),Ia=wo(P),Aa=ko(P),Pa=So(P),Oa=Eo(P),Na=zo(P),z=l("ZodType",(e,t)=>(E.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:pe(e,"input"),output:pe(e,"output")}}),e.toJSONSchema=Hs(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone(j(t,{checks:[...t.checks??[],...n.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),{parent:!0}),e.with=e.check,e.clone=(n,r)=>U(e,n,r),e.brand=()=>e,e.register=((n,r)=>(n.add(e,r),e)),e.parse=(n,r)=>ka(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>Ea(e,n,r),e.parseAsync=async(n,r)=>Sa(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>za(e,n,r),e.spa=e.safeParseAsync,e.encode=(n,r)=>Ca(e,n,r),e.decode=(n,r)=>Ta(e,n,r),e.encodeAsync=async(n,r)=>$a(e,n,r),e.decodeAsync=async(n,r)=>Ia(e,n,r),e.safeEncode=(n,r)=>Aa(e,n,r),e.safeDecode=(n,r)=>Pa(e,n,r),e.safeEncodeAsync=async(n,r)=>Oa(e,n,r),e.safeDecodeAsync=async(n,r)=>Na(e,n,r),e.refine=(n,r)=>e.check(Ec(n,r)),e.superRefine=n=>e.check(zc(n)),e.overwrite=n=>e.check(W(n)),e.optional=()=>nn(e),e.exactOptional=()=>lc(e),e.nullable=()=>rn(e),e.nullish=()=>nn(rn(e)),e.nonoptional=n=>_c(e,n),e.array=()=>en(e),e.or=n=>ic([e,n]),e.and=n=>ac(e,n),e.transform=n=>sn(e,uc(n)),e.default=n=>gc(e,n),e.prefault=n=>hc(e,n),e.catch=n=>vc(e,n),e.pipe=n=>sn(e,n),e.readonly=()=>kc(e),e.describe=n=>{const r=e.clone();return ee.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){return ee.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return ee.get(e);const r=e.clone();return ee.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=n=>n(e),e)),Kt=l("_ZodString",(e,t)=>{Te.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,o,s)=>Ks(e,r,o);const n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...r)=>e.check(Ns(...r)),e.includes=(...r)=>e.check(xs(...r)),e.startsWith=(...r)=>e.check(Ls(...r)),e.endsWith=(...r)=>e.check(Ds(...r)),e.min=(...r)=>e.check(le(...r)),e.max=(...r)=>e.check(Jt(...r)),e.length=(...r)=>e.check(Gt(...r)),e.nonempty=(...r)=>e.check(le(1,...r)),e.lowercase=r=>e.check(Zs(r)),e.uppercase=r=>e.check(Rs(r)),e.trim=()=>e.check(Us()),e.normalize=(...r)=>e.check(js(...r)),e.toLowerCase=()=>e.check(Ms()),e.toUpperCase=()=>e.check(Fs()),e.slugify=()=>e.check(qs())}),Za=l("ZodString",(e,t)=>{Te.init(e,t),Kt.init(e,t),e.email=n=>e.check(os(Ra,n)),e.url=n=>e.check(us(xa,n)),e.jwt=n=>e.check(Es(Ya,n)),e.emoji=n=>e.check(ds(La,n)),e.guid=n=>e.check(Ut(Yt,n)),e.uuid=n=>e.check(is(fe,n)),e.uuidv4=n=>e.check(ss(fe,n)),e.uuidv6=n=>e.check(as(fe,n)),e.uuidv7=n=>e.check(cs(fe,n)),e.nanoid=n=>e.check(ls(Da,n)),e.guid=n=>e.check(Ut(Yt,n)),e.cuid=n=>e.check(ps(ja,n)),e.cuid2=n=>e.check(fs(Ua,n)),e.ulid=n=>e.check(gs(Ma,n)),e.base64=n=>e.check(ws(Ha,n)),e.base64url=n=>e.check(ks(Wa,n)),e.xid=n=>e.check(ms(Fa,n)),e.ksuid=n=>e.check(hs(qa,n)),e.ipv4=n=>e.check(_s(Ja,n)),e.ipv6=n=>e.check(ys(Ga,n)),e.cidrv4=n=>e.check(vs(Ba,n)),e.cidrv6=n=>e.check(bs(Va,n)),e.e164=n=>e.check(Ss(Ka,n)),e.datetime=n=>e.check(ma(n)),e.date=n=>e.check(_a(n)),e.time=n=>e.check(va(n)),e.duration=n=>e.check(wa(n))});function I(e){return rs(Za,e)}const S=l("ZodStringFormat",(e,t)=>{k.init(e,t),Kt.init(e,t)}),Ra=l("ZodEmail",(e,t)=>{fi.init(e,t),S.init(e,t)}),Yt=l("ZodGUID",(e,t)=>{li.init(e,t),S.init(e,t)}),fe=l("ZodUUID",(e,t)=>{pi.init(e,t),S.init(e,t)}),xa=l("ZodURL",(e,t)=>{gi.init(e,t),S.init(e,t)}),La=l("ZodEmoji",(e,t)=>{mi.init(e,t),S.init(e,t)}),Da=l("ZodNanoID",(e,t)=>{hi.init(e,t),S.init(e,t)}),ja=l("ZodCUID",(e,t)=>{_i.init(e,t),S.init(e,t)}),Ua=l("ZodCUID2",(e,t)=>{yi.init(e,t),S.init(e,t)}),Ma=l("ZodULID",(e,t)=>{vi.init(e,t),S.init(e,t)}),Fa=l("ZodXID",(e,t)=>{bi.init(e,t),S.init(e,t)}),qa=l("ZodKSUID",(e,t)=>{wi.init(e,t),S.init(e,t)}),Ja=l("ZodIPv4",(e,t)=>{Ci.init(e,t),S.init(e,t)}),Ga=l("ZodIPv6",(e,t)=>{Ti.init(e,t),S.init(e,t)}),Ba=l("ZodCIDRv4",(e,t)=>{$i.init(e,t),S.init(e,t)}),Va=l("ZodCIDRv6",(e,t)=>{Ii.init(e,t),S.init(e,t)}),Ha=l("ZodBase64",(e,t)=>{Ai.init(e,t),S.init(e,t)}),Wa=l("ZodBase64URL",(e,t)=>{Oi.init(e,t),S.init(e,t)}),Ka=l("ZodE164",(e,t)=>{Ni.init(e,t),S.init(e,t)}),Ya=l("ZodJWT",(e,t)=>{Ri.init(e,t),S.init(e,t)}),Qt=l("ZodNumber",(e,t)=>{Tt.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,o,s)=>Ys(e,r,o),e.gt=(r,o)=>e.check(Ft(r,o)),e.gte=(r,o)=>e.check(Ae(r,o)),e.min=(r,o)=>e.check(Ae(r,o)),e.lt=(r,o)=>e.check(Mt(r,o)),e.lte=(r,o)=>e.check(Ie(r,o)),e.max=(r,o)=>e.check(Ie(r,o)),e.int=r=>e.check(Xt(r)),e.safe=r=>e.check(Xt(r)),e.positive=r=>e.check(Ft(0,r)),e.nonnegative=r=>e.check(Ae(0,r)),e.negative=r=>e.check(Mt(0,r)),e.nonpositive=r=>e.check(Ie(0,r)),e.multipleOf=(r,o)=>e.check(qt(r,o)),e.step=(r,o)=>e.check(qt(r,o)),e.finite=()=>e;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 te(e){return Is(Qt,e)}const Qa=l("ZodNumberFormat",(e,t)=>{xi.init(e,t),Qt.init(e,t)});function Xt(e){return As(Qa,e)}const Xa=l("ZodUnknown",(e,t)=>{Li.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Xs()});function Pe(){return Ps(Xa)}const ec=l("ZodNever",(e,t)=>{Di.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Qs(e,n,r)});function tc(e){return Os(ec,e)}const nc=l("ZodArray",(e,t)=>{ji.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,r,o)=>ra(e,n,r,o),e.element=t.element,e.min=(n,r)=>e.check(le(n,r)),e.nonempty=n=>e.check(le(1,n)),e.max=(n,r)=>e.check(Jt(n,r)),e.length=(n,r)=>e.check(Gt(n,r)),e.unwrap=()=>e.element});function en(e,t){return Js(nc,e,t)}const rc=l("ZodObject",(e,t)=>{Mi.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,r,o)=>oa(e,n,r,o),v(e,"shape",()=>t.shape),e.keyof=()=>Ne(Object.keys(e._zod.def.shape)),e.catchall=n=>e.clone({...e._zod.def,catchall:n}),e.passthrough=()=>e.clone({...e._zod.def,catchall:Pe()}),e.loose=()=>e.clone({...e._zod.def,catchall:Pe()}),e.strict=()=>e.clone({...e._zod.def,catchall:tc()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=n=>co(e,n),e.safeExtend=n=>uo(e,n),e.merge=n=>lo(e,n),e.pick=n=>so(e,n),e.omit=n=>ao(e,n),e.partial=(...n)=>po(tn,e,n[0]),e.required=(...n)=>fo(on,e,n[0])});function M(e,t){const n={type:"object",shape:e??{},..._(t)};return new rc(n)}const oc=l("ZodUnion",(e,t)=>{Fi.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,r,o)=>ia(e,n,r,o),e.options=t.options});function ic(e,t){return new oc({type:"union",options:e,..._(t)})}const sc=l("ZodIntersection",(e,t)=>{qi.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,r,o)=>sa(e,n,r,o)});function ac(e,t){return new sc({type:"intersection",left:e,right:t})}const Oe=l("ZodEnum",(e,t)=>{Ji.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,o,s)=>ea(e,r,o),e.enum=t.entries,e.options=Object.values(t.entries);const n=new Set(Object.keys(t.entries));e.extract=(r,o)=>{const s={};for(const i of r)if(n.has(i))s[i]=t.entries[i];else throw new Error(`Key ${i} not found in enum`);return new Oe({...t,checks:[],..._(o),entries:s})},e.exclude=(r,o)=>{const s={...t.entries};for(const i of r)if(n.has(i))delete s[i];else throw new Error(`Key ${i} not found in enum`);return new Oe({...t,checks:[],..._(o),entries:s})}});function Ne(e,t){const n=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new Oe({type:"enum",entries:n,..._(t)})}const cc=l("ZodTransform",(e,t)=>{Gi.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,r,o)=>na(e,n),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new ct(e.constructor.name);n.addIssue=s=>{if(typeof s=="string")n.issues.push(X(s,n.value,t));else{const i=s;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=n.value),i.inst??(i.inst=e),n.issues.push(X(i))}};const o=t.transform(n.value,n);return o instanceof Promise?o.then(s=>(n.value=s,n)):(n.value=o,n)}});function uc(e){return new cc({type:"transform",transform:e})}const tn=l("ZodOptional",(e,t)=>{Zt.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Wt(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function nn(e){return new tn({type:"optional",innerType:e})}const dc=l("ZodExactOptional",(e,t)=>{Bi.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Wt(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function lc(e){return new dc({type:"optional",innerType:e})}const pc=l("ZodNullable",(e,t)=>{Vi.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,r,o)=>aa(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function rn(e){return new pc({type:"nullable",innerType:e})}const fc=l("ZodDefault",(e,t)=>{Hi.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,r,o)=>ua(e,n,r,o),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function gc(e,t){return new fc({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():gt(t)}})}const mc=l("ZodPrefault",(e,t)=>{Wi.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,r,o)=>da(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function hc(e,t){return new mc({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():gt(t)}})}const on=l("ZodNonOptional",(e,t)=>{Ki.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,r,o)=>ca(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function _c(e,t){return new on({type:"nonoptional",innerType:e,..._(t)})}const yc=l("ZodCatch",(e,t)=>{Yi.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,r,o)=>la(e,n,r,o),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function vc(e,t){return new yc({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}const bc=l("ZodPipe",(e,t)=>{Qi.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,r,o)=>pa(e,n,r,o),e.in=t.in,e.out=t.out});function sn(e,t){return new bc({type:"pipe",in:e,out:t})}const wc=l("ZodReadonly",(e,t)=>{Xi.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,r,o)=>fa(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function kc(e){return new wc({type:"readonly",innerType:e})}const Sc=l("ZodCustom",(e,t)=>{es.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,r,o)=>ta(e,n)});function Ec(e,t={}){return Gs(Sc,e,t)}function zc(e){return Bs(e)}const Cc=M({sku:I(),name:I(),imageUrl:I().url().optional(),price:I().optional(),originalPrice:I().optional(),discountPercent:te().optional(),url:I().url(),brand:I().optional(),rating:te().min(0).max(5).optional(),reviewCount:te().int().nonnegative().optional()}),Tc=M({layout:Ne(["grid","carousel"]).optional(),columns:te().int().positive().optional()}),$c=M({product:Cc,index:te().int().nonnegative(),discountType:Ne(["strike-through","badge"]).optional()}),Ic=M({sku:I(),label:I().optional(),cartCode:I()}),Ac=M({actions:en(M({label:I(),action:M({title:I(),type:I(),payload:Pe().optional()})}))}),Pc=M({message:I().optional()}),Oc={components:{ProductGrid:{schema:Tc,description:"Outer grid or carousel container for similar products."},ProductCard:{schema:$c,description:"A single product card with image, title, price, and actions."},AddToCartButton:{schema:Ic,description:"Add-to-cart CTA rendered inside or below a product card."},QuickActions:{schema:Ac,description:"A row of quick-action buttons below product info."},EmptyState:{schema:Pc,description:"Empty state shown when no similar products are available."}}};class an extends Mn{constructor(){super(...arguments),this._abortController=null,this._contentEl=null,this._i18n=st}async onInit(t){this._i18n=this._resolveI18n(t),this._contentEl=document.createElement("div"),this._contentEl.className="gengage-simrel-container",this.root.appendChild(this._contentEl),this._lastSku=t.sku,await this._fetchAndRender(t.sku),Yr("simrel")}onUpdate(t){const n=t.sku;!n||n===this._lastSku||(this._lastSku=n,this._fetchAndRender(n))}onShow(){this._contentEl&&(this._contentEl.style.opacity="0",this._contentEl.style.transition="opacity 0.3s ease-in",requestAnimationFrame(()=>{this._contentEl&&(this._contentEl.style.opacity="1")}))}onHide(){}onDestroy(){this._abort(),this._contentEl&&(this._contentEl.remove(),this._contentEl=null)}_handleProductClick(t){const n={sku:t.sku,name:t.name,url:t.url};if(t.imageUrl!==void 0&&(n.imageUrl=t.imageUrl),t.price!==void 0&&(n.price=t.price),t.originalPrice!==void 0&&(n.originalPrice=t.originalPrice),t.discountPercent!==void 0&&(n.discountPercent=t.discountPercent),t.brand!==void 0&&(n.brand=t.brand),t.rating!==void 0&&(n.rating=t.rating),t.reviewCount!==void 0&&(n.reviewCount=t.reviewCount),t.cartCode!==void 0&&(n.cartCode=t.cartCode),t.inStock!==void 0&&(n.inStock=t.inStock),this.config.onProductClick?.(n)===!1)return;Qr(t.sku,t.name);const r=this.config.session?.sessionId??null;me("gengage:similar:product-click",{sku:t.sku,url:t.url,sessionId:r}),this.config.onProductNavigate?.(t.url,t.sku,r)}_handleAddToCart(t){Xr(t.sku,t.quantity),this.config.onAddToCart?.(t),me("gengage:similar:add-to-cart",t),this.track(gn(this.analyticsContext(),{attribution_source:"simrel",attribution_action_id:crypto.randomUUID(),cart_value:0,currency:"TRY",line_items:t.quantity,sku:t.sku}))}_abort(){this._abortController?.abort(),this._abortController=null}async _fetchAndRender(t){this._abort(),this._abortController=new AbortController;const n=this._abortController.signal,r=setTimeout(()=>this._abortController?.abort(),1e4);if(n.addEventListener("abort",()=>clearTimeout(r)),!this._contentEl)return;this._contentEl.innerHTML="",this._contentEl.style.display="";const o=document.createElement("div");o.className="gengage-simrel-loading";const s=document.createElement("div");s.className="gengage-simrel-spinner",o.appendChild(s),this._contentEl.appendChild(o);const i={middlewareUrl:this.config.middlewareUrl},a=crypto.randomUUID(),c=Date.now();this.track(ln(this.analyticsContext(),{endpoint:"similar_products",request_id:a,widget:"simrel"}));try{const u={account_id:this.config.accountId,session_id:this.config.session?.sessionId??"",correlation_id:this.config.session?.sessionId??"",sku:t};this.config.domain!==void 0&&(u.domain=this.config.domain);const d=await Rr(u,i,n);if(!this._contentEl)return;if(this._contentEl.innerHTML="",d.length>0)try{const g=d.map(m=>m.sku),f=await Lr({account_id:this.config.accountId,session_id:this.config.session?.sessionId??"",correlation_id:this.config.session?.sessionId??"",skus:g},i,n);if(f.length>0&&this._contentEl){const m=this._buildGroupsSpec(f),h=this._renderUISpec(m);this._contentEl.appendChild(h),at("simrel"),this.track(Ze(this.analyticsContext(),{request_id:a,latency_ms:Date.now()-c,chunk_count:f.reduce((p,y)=>p+y.products.length,0),widget:"simrel"})),this.track(Re(this.analyticsContext(),{message_count:f.reduce((p,y)=>p+y.products.length,0),history_ref:a,redaction_level:"none",widget:"simrel"}));return}}catch{}if(n.aborted)return;if(this._contentEl){const g=this._buildProductsSpec(d),f=this._renderUISpec(g);this._contentEl.appendChild(f)}d.length>0&&at("simrel"),this.track(Ze(this.analyticsContext(),{request_id:a,latency_ms:Date.now()-c,chunk_count:d.length,widget:"simrel"})),this.track(Re(this.analyticsContext(),{message_count:d.length,history_ref:a,redaction_level:"none",widget:"simrel"}))}catch(u){if(u instanceof DOMException&&u.name==="AbortError")return;if(me("gengage:global:error",{source:"simrel",code:"FETCH_ERROR",message:On(this.config.locale)}),this.track(pn(this.analyticsContext(),{request_id:a,error_code:"FETCH_ERROR",error_message:u instanceof Error?u.message:String(u),widget:"simrel"})),this._contentEl){this._contentEl.innerHTML="";const d=document.createElement("div");d.className="gengage-simrel-error";const g=document.createElement("span");g.textContent=this._i18n.errorLoadingMessage,d.appendChild(g);const f=document.createElement("button");f.className="gengage-simrel-retry",f.textContent=this._i18n.retryButtonText,f.addEventListener("click",()=>{this._fetchAndRender(this.config.sku)}),d.appendChild(f),this._contentEl.appendChild(d)}}}_resolveI18n(t){return{...Wr(t.locale),...t.i18n}}_resolveUISpecRegistry(){const t=ot();return dn(t,this.config.renderer?.registry)}_buildRenderContext(){const t=this.config.renderCard,n={onClick:r=>this._handleProductClick(r),onAddToCart:r=>this._handleAddToCart(r),i18n:this._i18n};return this.config.discountType!==void 0&&(n.discountType=this.config.discountType),t!==void 0&&(n.renderCard=t),this.config.renderCardElement!==void 0&&(n.renderCardElement=this.config.renderCardElement),this.config.pricing!==void 0&&(n.pricing=this.config.pricing),n}_renderUISpec(t){const n=this._resolveUISpecRegistry(),r=this._buildRenderContext(),o=this.config.renderer?.unknownRenderer??ve,s=(c,u)=>it(c,u,n,o),i=this.config.renderer?.renderUISpec;return i?i(t,r,{registry:n,unknownRenderer:o,defaultRender:s}):s(t,r)}_buildProductsSpec(t){const n={},r=[];for(let o=0;o<t.length;o++){const s=t[o],i=`product-${o}`;r.push(i),n[i]={type:"ProductCard",props:{product:s,index:o,discountType:this.config.discountType}}}return n.root={type:"ProductGrid",props:{layout:"grid"},children:r},{root:"root",elements:n}}_buildGroupsSpec(t){return{root:"root",elements:{root:{type:"GroupTabs",props:{groups:t}}}}}}function Nc(){return new an}F.GengageSimRel=an,F.createDefaultSimRelUISpecRegistry=ot,F.createSimRelWidget=Nc,F.defaultSimRelUnknownUISpecRenderer=ve,F.renderSimRelUISpec=it,F.simRelCatalog=Oc,Object.defineProperty(F,Symbol.toStringTag,{value:"Module"})})(this.Gengage=this.Gengage||{});
|
|
86
86
|
//# sourceMappingURL=simrel.iife.js.map
|