@gengage/assistant-fe 0.1.8 → 0.2.0
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/README.md +79 -286
- package/dist/assistant-fe.css +1 -1
- package/dist/chat/api.d.ts +1 -12
- package/dist/chat/api.d.ts.map +1 -1
- package/dist/chat/components/CategoriesContainer.d.ts.map +1 -1
- package/dist/chat/components/ChatDrawer.d.ts +15 -1
- package/dist/chat/components/ChatDrawer.d.ts.map +1 -1
- package/dist/chat/components/ChoicePrompter.d.ts +1 -0
- package/dist/chat/components/ChoicePrompter.d.ts.map +1 -1
- package/dist/chat/components/ComparisonTable.d.ts +5 -3
- package/dist/chat/components/ComparisonTable.d.ts.map +1 -1
- package/dist/chat/components/PanelTopBar.d.ts +2 -0
- package/dist/chat/components/PanelTopBar.d.ts.map +1 -1
- package/dist/chat/components/ProductSummaryCard.d.ts.map +1 -1
- package/dist/chat/components/ReviewHighlights.d.ts +3 -0
- package/dist/chat/components/ReviewHighlights.d.ts.map +1 -1
- package/dist/chat/components/renderUISpec.d.ts +0 -5
- package/dist/chat/components/renderUISpec.d.ts.map +1 -1
- package/dist/chat/index.d.ts +18 -9
- package/dist/chat/index.d.ts.map +1 -1
- package/dist/chat/locales/en.d.ts.map +1 -1
- package/dist/chat/locales/tr.d.ts.map +1 -1
- package/dist/chat/session-persistence.d.ts +3 -0
- package/dist/chat/session-persistence.d.ts.map +1 -1
- package/dist/chat/types.d.ts +23 -25
- package/dist/chat/types.d.ts.map +1 -1
- package/dist/chat.cjs +1 -1
- package/dist/chat.iife.js +22 -22
- package/dist/chat.iife.js.map +1 -1
- package/dist/chat.js +8 -9
- package/dist/chat.js.map +1 -1
- package/dist/common/action-router.d.ts.map +1 -1
- package/dist/common/activity-tracker.d.ts +1 -1
- package/dist/common/analytics.d.ts +12 -8
- package/dist/common/analytics.d.ts.map +1 -1
- package/dist/common/api-paths.d.ts +2 -5
- package/dist/common/api-paths.d.ts.map +1 -1
- package/dist/common/config-schema.d.ts.map +1 -1
- package/dist/common/debug.d.ts +14 -0
- package/dist/common/debug.d.ts.map +1 -0
- package/dist/common/events.d.ts.map +1 -1
- package/dist/common/index.d.ts +2 -2
- package/dist/common/index.d.ts.map +1 -1
- package/dist/common/native-webview.d.ts.map +1 -1
- package/dist/common/overlay.d.ts +19 -0
- package/dist/common/overlay.d.ts.map +1 -1
- package/dist/common/product-utils.d.ts +10 -0
- package/dist/common/product-utils.d.ts.map +1 -1
- package/dist/common/{v1-protocol-adapter.d.ts → protocol-adapter.d.ts} +2 -2
- package/dist/common/protocol-adapter.d.ts.map +1 -0
- package/dist/common/quantity-stepper.d.ts +10 -10
- package/dist/common/quantity-stepper.d.ts.map +1 -1
- package/dist/common/safe-html.d.ts.map +1 -1
- package/dist/common/streaming.d.ts.map +1 -1
- package/dist/common/tts-player.d.ts +2 -0
- package/dist/common/tts-player.d.ts.map +1 -1
- package/dist/common/types.d.ts +1 -1
- package/dist/common/voice-input.d.ts +1 -0
- package/dist/common/voice-input.d.ts.map +1 -1
- package/dist/common/widget-base.d.ts.map +1 -1
- package/dist/common.cjs +1 -1
- package/dist/common.cjs.map +1 -1
- package/dist/common.js +173 -172
- package/dist/common.js.map +1 -1
- package/dist/index-BA7N_XOO.cjs +2 -0
- package/dist/index-BA7N_XOO.cjs.map +1 -0
- package/dist/{index-CcOJTzYu.js → index-C6KDzSjm.js} +155 -159
- package/dist/index-C6KDzSjm.js.map +1 -0
- package/dist/index-RmQRBt6w.js +4449 -0
- package/dist/index-RmQRBt6w.js.map +1 -0
- package/dist/index-VgLdYuZV.cjs +13 -0
- package/dist/index-VgLdYuZV.cjs.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +16 -16
- package/dist/native.cjs +1 -1
- package/dist/native.iife.js +23 -23
- package/dist/native.iife.js.map +1 -1
- package/dist/native.js +1 -1
- package/dist/qna/index.d.ts +19 -0
- package/dist/qna/index.d.ts.map +1 -1
- package/dist/qna/types.d.ts +2 -2
- package/dist/qna/types.d.ts.map +1 -1
- package/dist/qna.cjs +1 -1
- package/dist/qna.cjs.map +1 -1
- package/dist/qna.css +1 -1
- package/dist/qna.iife.js +7 -7
- package/dist/qna.iife.js.map +1 -1
- package/dist/qna.js +14 -14
- package/dist/qna.js.map +1 -1
- package/dist/quantity-stepper-BKtPQUR1.js +78 -0
- package/dist/quantity-stepper-BKtPQUR1.js.map +1 -0
- package/dist/quantity-stepper-DU6va4sS.cjs +2 -0
- package/dist/quantity-stepper-DU6va4sS.cjs.map +1 -0
- package/dist/{schemas-yF4IOEUi.js → schemas-BAEbjFPE.js} +1181 -957
- package/dist/schemas-BAEbjFPE.js.map +1 -0
- package/dist/schemas-DIyHm5pa.cjs +86 -0
- package/dist/schemas-DIyHm5pa.cjs.map +1 -0
- package/dist/simrel/api.d.ts +1 -1
- package/dist/simrel/api.d.ts.map +1 -1
- package/dist/simrel/components/GroupTabs.d.ts +1 -1
- package/dist/simrel/components/GroupTabs.d.ts.map +1 -1
- package/dist/simrel/components/ProductCard.d.ts +1 -1
- package/dist/simrel/components/ProductCard.d.ts.map +1 -1
- package/dist/simrel/components/ProductGrid.d.ts +1 -1
- package/dist/simrel/components/ProductGrid.d.ts.map +1 -1
- package/dist/simrel/index.d.ts +20 -1
- 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 +2 -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.css +1 -1
- package/dist/simrel.iife.js +11 -11
- package/dist/simrel.iife.js.map +1 -1
- package/dist/simrel.js +281 -267
- package/dist/simrel.js.map +1 -1
- package/package.json +1 -1
- package/dist/chat/components/ProactivePopup.d.ts +0 -20
- package/dist/chat/components/ProactivePopup.d.ts.map +0 -1
- package/dist/chat/heartbeat.d.ts +0 -71
- package/dist/chat/heartbeat.d.ts.map +0 -1
- package/dist/common/v1-protocol-adapter.d.ts.map +0 -1
- package/dist/index-BqIzV4ni.cjs +0 -2
- package/dist/index-BqIzV4ni.cjs.map +0 -1
- package/dist/index-CcOJTzYu.js.map +0 -1
- package/dist/index-DZ3Mi5xF.cjs +0 -13
- package/dist/index-DZ3Mi5xF.cjs.map +0 -1
- package/dist/index-FnP8WtfG.js +0 -4571
- package/dist/index-FnP8WtfG.js.map +0 -1
- package/dist/quantity-stepper-B8kX8GbN.js +0 -209
- package/dist/quantity-stepper-B8kX8GbN.js.map +0 -1
- package/dist/quantity-stepper-UbAp53Ow.cjs +0 -2
- package/dist/quantity-stepper-UbAp53Ow.cjs.map +0 -1
- package/dist/schemas-DHzfUzwA.cjs +0 -86
- package/dist/schemas-DHzfUzwA.cjs.map +0 -1
- package/dist/schemas-yF4IOEUi.js.map +0 -1
package/dist/simrel.iife.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
(function(F){"use strict";const on=({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 sn(e){const t=document.createElement("div");if(t.className=e.containerClassName,!e.spec.elements[e.spec.root])return t;const r=e.unknownRenderer??on,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 an(e,t){if(!t)return e;const n={...e};for(const[r,o]of Object.entries(t))o&&(n[r]=o);return n}function cn(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 Oe(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 un(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 dn(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 Ne(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 ln(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 pn(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 fn(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}function fe(e,t){window.dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!1}))}function Ze(e,t){const n=r=>{t(r.detail)};return window.addEventListener(e,n),()=>window.removeEventListener(e,n)}function gn(){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 mn(e){return{sessionId:e?.sessionId??gn(),...e}}const Re={"--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 hn(e){return e?{...Re,...e}:{...Re}}const j="gengage-global-toast-root",De="gengage-global-toast-style",ge="gengage-global-toast-root--visible",_n=4200,yn=1500,vn=15e3;let je=!1,q=null;function bn(e){return typeof e=="string"&&e.toLowerCase().startsWith("tr")?"Baglanti sorunu olustu. Lutfen tekrar deneyin.":"Connection issue. Please try again."}function wn(){je||typeof window>"u"||typeof document>"u"||(je=!0,Ze("gengage:global:error",e=>{kn(e)}))}function kn(e){if(typeof document>"u")return;const t=e.message.trim();if(!t)return;Tn();const n=En();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=zn(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(ge),q&&(clearTimeout(q),q=null),q=setTimeout(()=>{Sn()},Cn(e.durationMs))}function Sn(){if(typeof document>"u")return;const e=document.getElementById(j);e&&(e.classList.remove(ge),e.innerHTML="",q&&(clearTimeout(q),q=null))}function zn(e){switch(e){case"chat":return"Chat warning";case"qna":return"QnA warning";case"simrel":return"Widget warning";default:return"Connection warning"}}function En(){const e=document.getElementById(j);if(e instanceof HTMLElement)return e;const t=document.createElement("div");return t.id=j,t.className="gengage-global-toast-root",document.body.appendChild(t),t}function Cn(e){return typeof e!="number"||!Number.isFinite(e)?_n:Math.min(vn,Math.max(yn,Math.round(e)))}function Tn(){if(document.getElementById(De))return;const e=document.createElement("style");e.id=De,e.textContent=`
|
|
2
|
-
#${
|
|
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 zn(e){try{return Sn.includes(new URL(e).protocol)}catch{return!1}}function En(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 De(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 je={"--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?{...je,...e}:{...je}}const D="gengage-global-toast-root",Le="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,De("gengage:global:error",e=>{Zn(e)}))}function Zn(e){if(typeof document>"u")return;const t=e.message.trim();if(!t)return;Ln();const n=Dn();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()},jn(e.durationMs))}function Rn(){if(typeof document>"u")return;const e=document.getElementById(D);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 Dn(){const e=document.getElementById(D);if(e instanceof HTMLElement)return e;const t=document.createElement("div");return t.id=D,t.className="gengage-global-toast-root",document.body.appendChild(t),t}function jn(e){return typeof e!="number"||!Number.isFinite(e)?In:Math.min(Pn,Math.max(An,Math.round(e)))}function Ln(){if(document.getElementById(Le))return;const e=document.createElement("style");e.id=Le,e.textContent=`
|
|
2
|
+
#${D} {
|
|
3
3
|
position: fixed;
|
|
4
4
|
top: 16px;
|
|
5
5
|
right: 16px;
|
|
6
6
|
z-index: 2147483646;
|
|
7
7
|
pointer-events: none;
|
|
8
8
|
}
|
|
9
|
-
#${
|
|
9
|
+
#${D}.${he} {
|
|
10
10
|
pointer-events: auto;
|
|
11
11
|
}
|
|
12
|
-
#${
|
|
12
|
+
#${D} .gengage-global-toast {
|
|
13
13
|
min-width: 260px;
|
|
14
14
|
max-width: min(92vw, 420px);
|
|
15
15
|
border-radius: 12px;
|
|
@@ -24,12 +24,12 @@
|
|
|
24
24
|
line-height: 1.4;
|
|
25
25
|
animation: gengage-global-toast-in 180ms ease-out forwards;
|
|
26
26
|
}
|
|
27
|
-
#${
|
|
27
|
+
#${D} .gengage-global-toast-title {
|
|
28
28
|
margin: 0 0 4px;
|
|
29
29
|
font-size: 12px;
|
|
30
30
|
font-weight: 700;
|
|
31
31
|
}
|
|
32
|
-
#${
|
|
32
|
+
#${D} .gengage-global-toast-message {
|
|
33
33
|
margin: 0;
|
|
34
34
|
font-weight: 500;
|
|
35
35
|
}
|
|
@@ -43,10 +43,10 @@
|
|
|
43
43
|
transform: translateY(0);
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
|
-
`,document.head.appendChild(e)}
|
|
47
|
-
`);o=m.pop()??"";for(const h of m)if(Ue(h,t))return}if(o.trim()&&Ue(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 Fe(e){if(typeof e.type!="string")return null;if(Zn(e))return e;const n=e;switch(n.type){case"outputText":return Rn(n);case"suggestedActions":return Dn(n);case"productList":return jn(n);case"productDetails":return xn(n);case"productDetailsSimilars":return Ln(n);case"comparisonTable":return Un(n);case"context":return Jn(n);case"chatStreamEnd":return Gn();case"loading":return Vn(n);case"panelLoading":return Bn(n);case"similarLoading":return Wn(n);case"redirect":return Hn(n);case"error":return Kn(n);case"dummy":return Yn();case"launcherAction":return Qn(n);case"text":return me(n);case"productItem":return Xn(n);case"text_image":return qe(n);case"quick_qna":return Je(n);case"reviewHighlights":return er(n);case"aiProductSuggestions":return rr(n);case"aiProductGroupings":return or(n);case"aiSuggestedSearches":return ir(n);case"prosAndCons":return tr(n);case"getGroundingReview":return sr(n);case"voice":return cr(n);case"visitorDataResponse":return nr(n);case"productListPreview":return ar();case"groupList":return ur(n);case"formGetInfo":case"formTestDrive":case"formServiceRequest":case"launchFormPage":return dr(n);case"launcherContent":return pr(n);case"handoff":return lr(n);default:return null}}function Zn(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 Rn(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 Dn(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 Ge(t.filter(Be),"chat")}function jn(e){const t=Ve(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 xn(e){const t=e.payload.productDetails;return t?{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"ProductDetailsPanel",props:{product:x(t)}}}},panelHint:"panel"}:gr("chat")}function Ln(e){const t=Ve(e.payload.similarProducts??[],"chat"),n=t.spec.elements[t.spec.root];return n&&(n.props={...n.props,similarsAppend:!0}),{...t,panelHint:"panel"}}function Un(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=x(y);i.push(w)}const a=Mn(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=yr(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 Mn(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(D=>typeof D=="string"?D:String(D??""))})}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:Fn(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`],D=y[f];return qn(w??D)});if(m.every(p=>p.length===0))continue;const h=c[f]??f;g.push({label:h,values:m})}return g}function Fn(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 qn(e){return typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):""}function Jn(e){return{type:"metadata",sessionId:"",model:"",meta:{panel:e.payload.panel,messages:e.payload.messages,message_id:e.payload.message_id}}}function Gn(){return{type:"done"}}function Vn(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 Bn(e){return{type:"metadata",sessionId:"",model:"",meta:{loading:!0,panelLoading:!0,panelPendingType:e.payload?.pending_type,loadingText:e.payload?.text}}}function Wn(e){return{type:"metadata",sessionId:"",model:"",meta:{loading:!0,similarPanelLoading:!0,panelPendingType:e.payload?.pending_type,loadingText:e.payload?.text}}}function Hn(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 Kn(e){return{type:"error",code:"BACKEND_ERROR",message:b(e.payload?.text,e.payload?.message,e.payload?.error)??"Backend returned an error"}}function Yn(e){return{type:"metadata",sessionId:"",model:"",meta:{noop:!0}}}function Qn(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),Je({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),qe({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),me({payload:s})}return{type:"metadata",sessionId:"",model:"",meta:{launcherAction:t}}}function me(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 Xn(e){return fr(e.payload,"qna")}function qe(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),me({payload:r})}function Je(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 Ge(t.filter(Be),"qna")}function er(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 tr(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 nr(e){return{type:"metadata",sessionId:"",model:"",meta:{visitorDataResponse:e.payload}}}function rr(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=mr(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 or(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 ir(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)??`Arama ${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(D=>typeof D=="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 sr(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 ar(){return{type:"metadata",sessionId:"",model:"",meta:{analyzeAnimation:!0}}}function cr(e){return{type:"metadata",sessionId:"",model:"",meta:{voice:e.payload}}}function ur(e){const t=e.payload.group_list??[],n=[];for(const o of t){const s=o.group_name??"",i=(o.product_list??[]).map(x);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 dr(e){return{type:"metadata",sessionId:"",model:"",meta:{formType:e.type,formPayload:e.payload??{}}}}function lr(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 pr(e){return{type:"metadata",sessionId:"",model:"",meta:{launcherContent:e.payload??{}}}}function Ge(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 Ve(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:x(s),index:o}}}return n.root={type:"ProductGrid",props:{layout:"grid"},children:r},{type:"ui_spec",widget:t,spec:{root:"root",elements:n}}}function fr(e,t){return{type:"ui_spec",widget:t,spec:{root:"root",elements:{root:{type:"ProductCard",props:{product:x(e),index:0}}}}}}function gr(e){return{type:"ui_spec",widget:e,spec:{root:"root",elements:{root:{type:"ActionButtons",props:{buttons:[]},children:[]}}}}}function mr(e){const t=b(e.sku),n=b(e.short_name),r=R(e.product_item)??e;return hr(r,t,n)}function hr(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=_r(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=K(e.price_discounted);u!==void 0&&(s.price_discounted=u);const d=K(e.price);d!==void 0&&(s.price=d);const g=K(e.rating);g!==void 0&&(s.rating=g);const f=K(e.review_count)??K(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),x(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 _r(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):[]}function yr(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 K(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 Be(e){return e!=null}function x(e){const t=e.price_discounted!=null&&e.price_discounted>0?e.price_discounted:e.price,n=e.price_discounted!=null&&e.price_discounted>0&&e.price!=null?e.price:void 0;let r;n!=null&&t!=null&&n>0&&(r=Math.round((n-t)/n*100));const o=b(e.brand),s=b(e.name)??e.sku,i=o&&!s.toLowerCase().startsWith(o.toLowerCase())?`${o} ${s}`:s,a={sku:e.sku,name:i,url:b(e.url)??""},c=e.images?.[0];return c&&(a.imageUrl=c),e.images&&e.images.length>1&&(a.images=e.images),t!=null&&(a.price=String(t)),n!=null&&(a.originalPrice=String(n)),r!==void 0&&(a.discountPercent=r),o!==void 0&&(a.brand=o),e.rating!==void 0&&(a.rating=e.rating),e.review_count!==void 0&&(a.reviewCount=e.review_count),e.cart_code!==void 0&&(a.cartCode=e.cart_code),e.in_stock!==void 0&&(a.inStock=e.in_stock),e.variants&&e.variants.length>0&&(a.variants=e.variants),e.discount_reason!==void 0&&(a.discountReason=e.discount_reason),e.promotions&&e.promotions.length>0&&(a.promotions=e.promotions),a}function vr(e){return e.results.map(x)}function br(e){return e.product_groupings.map(t=>{const n={name:t.name,products:(t.group_products??[]).map(x)};return t.highlight!==void 0&&(n.highlight=t.highlight),n})}function We(e){const t=e.headers.get("Content-Type")??"";return t.includes("application/x-ndjson")||t.includes("text/event-stream")}async function wr(e,t){const n=[],r={onEvent:o=>{const s=Fe(o);if(!(!s||s.type!=="ui_spec")){for(const i of Object.values(s.spec.elements))if(i.type==="ProductCard"&&i.props){const a=i.props.product??i.props;typeof a.sku=="string"&&typeof a.name=="string"&&n.push(a)}}}};return t!==void 0&&(r.signal=t),await Me(e,r),n}async function kr(e,t,n){const r=xe("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(We(s))return wr(s,n);const i=await s.text();if(!i)return[];try{return vr(JSON.parse(i))}catch{throw new Error("Invalid JSON from similar_products endpoint")}}async function Sr(e,t){const n=[];let r=null;const o={onEvent:s=>{const i=Fe(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)}}if(i.type==="ui_spec"&&r){for(const a of Object.values(i.spec.elements))if(a.type==="ProductCard"&&a.props){const c=a.props.product??a.props;typeof c.sku=="string"&&typeof c.name=="string"&&r.products.push(c)}}}}};return t!==void 0&&(o.signal=t),await Me(e,o),n}async function zr(e,t,n){const r=xe("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(We(s))return Sr(s,n);const i=await s.text();if(!i)return[];try{return br(JSON.parse(i))}catch{throw new Error("Invalid JSON from product_groupings endpoint")}}const Er={currencySymbol:"TL",currencyPosition:"suffix",thousandsSeparator:".",decimalSeparator:",",alwaysShowDecimals:!1};function He(e,t){const n=Number(e);if(!Number.isFinite(n)||n<0)return e;const r={...Er,...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}const Cr=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"]),Tr=new Set(["script","iframe","object","embed","form","input","textarea","select","button","style","link","meta"]),Ke={"*":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 $r(e){return/^\s*javascript\s*:/i.test(e)}function he(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(Tr.has(r)){n.parentNode?.removeChild(n);return}if(!Cr.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)he(u,t);return}const o=Ke["*"]??new Set,s=Ke[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($r(c.value)){n.removeAttribute(c.name);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)he(c,n)}const Ir=["http:","https:"];function Ar(e){try{return Ir.includes(new URL(e).protocol)}catch{return!1}}function Pr(e){if(!e)return"";const n=new DOMParser().parseFromString(e,"text/html").body,r=Array.from(n.childNodes);for(const o of r)he(o,n);return n.innerHTML}function Or(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??"Azalt");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??"Artır");const g=document.createElement("button");g.className="gengage-qty-submit",g.type="button",g.textContent=e.submitIcon??"🛒",g.title=e.label??"Sepete Ekle";function f(){c.disabled=i<=r,d.disabled=i>=o}return c.addEventListener("click",m=>{m.stopPropagation(),i>r&&(i--,u.textContent=String(i),f())}),d.addEventListener("click",m=>{m.stopPropagation(),i<o&&(i++,u.textContent=String(i),f())}),g.addEventListener("click",m=>{m.stopPropagation(),e.onSubmit(i)}),a.addEventListener("click",m=>{m.stopPropagation()}),f(),a.appendChild(c),a.appendChild(u),a.appendChild(d),a.appendChild(g),a}function Nr(e){return Number.isFinite(e)?Math.max(0,Math.min(5,e)):0}function Zr(e){return Number.isFinite(e)?Math.max(0,Math.min(100,Math.round(e))):0}function Rr(e,t=!0){const n=Nr(e);if(t){const o=Math.floor(n),s=n-o>=.5?1:0,i=5-o-s;return"★".repeat(o)+(s?"½":"")+"☆".repeat(i)}const r=Math.round(n);return"★".repeat(r)+"☆".repeat(5-r)}function Dr(e){e.addEventListener("error",()=>{e.style.display="none"},{once:!0})}function Ye(e){const{product:t,index:n,discountType:r,onClick:o,onAddToCart:s,renderCard:i}=e,a=e.i18n,c=e.pricing;if(i){const p=document.createElement("div");return p.className="gengage-simrel-card gengage-simrel-card--custom",p.innerHTML=Pr(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",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&&Ar(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",Dr(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=`%${Zr(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,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.textContent=Rr(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=He(t.originalPrice,c),m.appendChild(p)}if(t.price){const p=document.createElement("span");p.className="gengage-simrel-card-price-current gengage-chat-product-card-price-current",p.textContent=He(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="İncele",h.addEventListener("click",p=>{p.preventDefault(),p.stopPropagation(),o(t)}),u.appendChild(h),t.cartCode&&t.inStock!==!1){const p=t.cartCode,y=Or({compact:!0,label:a?.addToCartButton??"Sepete Ekle",onSubmit:w=>{s({sku:t.sku,quantity:w,cartCode:p})}});y.classList.add("gengage-simrel-atc","gengage-chat-product-card-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 Qe(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);const s=Ye(o);t.appendChild(s)}if(e.products.length===0){const n=document.createElement("div");n.className="gengage-simrel-empty",n.textContent=e.i18n?.emptyStateMessage??"Benzer ürün bulunamadı.",t.appendChild(n)}return t}let jr=0;function xr(e){const t=jr++,n=document.createElement("div");if(n.className="gengage-simrel-groups",e.groups.length===0){const d=document.createElement("div");return d.className="gengage-simrel-empty",d.textContent=e.i18n?.emptyStateMessage??"Benzer ürün bulunamadı.",n.appendChild(d),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),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=Qe(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=Qe(i(e.groups[0]));c.appendChild(u);for(const d of s)n.appendChild(d);return n}function Xe(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;return typeof g=="boolean"&&(n.inStock=g),n}function Lr(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 et={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=Xe(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.pricing!==void 0&&(c.pricing=t.pricing),Ye(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=Xe(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),xr(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=Lr(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}},_e=({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 tt(){return{...et}}function nt(e,t,n=et,r=_e){return sn({spec:e,context:t,registry:n,containerClassName:"gengage-simrel-uispec",unknownRenderer:r})}const rt={similarProductsAriaLabel:"Benzer ürünler",emptyStateMessage:"Benzer ürün bulunamadı.",addToCartButton:"Sepete Ekle",priceSuffix:" TL"},Ur={similarProductsAriaLabel:"Similar products",emptyStateMessage:"No similar products found.",addToCartButton:"Add to cart",priceSuffix:""};function Mr(e){return e?e.toLowerCase().split("-")[0]??"tr":"tr"}function Fr(e){return Mr(e)==="en"?Ur:rt}function qr(){return typeof window<"u"&&Array.isArray(window.dataLayer)}function te(e,t){const n={event:e,...t};qr()&&window.dataLayer.push(n)}function Jr(e){te("gengage-on-init",{gengage_widget:e})}function ot(e){te("gengage-show",{gengage_widget:e})}function Gr(e,t){te("gengage-product-detail",{gengage_sku:e,gengage_product_name:t})}function Vr(e,t){te("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 it extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}}const st={};function J(e){return st}function at(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 ye(e,t){return typeof t=="bigint"?t.toString():t}function ve(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function be(e){return e==null}function we(e){const t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function Br(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 ct=Symbol("evaluating");function v(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==ct)return r===void 0&&(r=ct,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 L(...e){const t={};for(const n of e){const r=Object.getOwnPropertyDescriptors(n);Object.assign(t,r)}return Object.defineProperties({},t)}function ut(e){return JSON.stringify(e)}function Wr(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}const dt="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function ne(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const Hr=ve(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{const e=Function;return new e(""),!0}catch{return!1}});function Y(e){if(ne(e)===!1)return!1;const t=e.constructor;if(t===void 0||typeof t!="function")return!0;const n=t.prototype;return!(ne(n)===!1||Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")===!1)}function lt(e){return Y(e)?{...e}:Array.isArray(e)?[...e]:e}const Kr=new Set(["string","number","symbol"]);function re(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 Yr(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}const Qr={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 Xr(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=L(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 eo(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=L(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 to(e,t){if(!Y(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=L(e._zod.def,{get shape(){const s={...e._zod.def.shape,...t};return G(this,"shape",s),s}});return U(e,o)}function no(e,t){if(!Y(t))throw new Error("Invalid input to safeExtend: expected a plain object");const n=L(e._zod.def,{get shape(){const r={...e._zod.def.shape,...t};return G(this,"shape",r),r}});return U(e,n)}function ro(e,t){const n=L(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 oo(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=L(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 io(e,t,n){const r=L(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 W(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 pt(e,t){return t.map(n=>{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function oe(e){return typeof e=="string"?e:e?.message}function V(e,t,n){const r={...e,path:e.path??[]};if(!e.message){const o=oe(e.inst?._zod.def?.error?.(e))??oe(t?.error?.(e))??oe(n.customError?.(e))??oe(n.localeError?.(e))??"Invalid input";r.message=o}return delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function ke(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function Q(...e){const[t,n,r]=e;return typeof t=="string"?{message:t,code:"custom",input:n,inst:r}:{...t}}const ft=(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,ye,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},gt=l("$ZodError",ft),mt=l("$ZodError",ft,{Parent:Error});function so(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 ao(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 Se=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 dt(a,o?.callee),a}return i.value},ze=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 dt(a,o?.callee),a}return i.value},ie=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??gt)(s.issues.map(i=>V(i,o,J())))}:{success:!0,data:s.value}},co=ie(mt),se=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}},uo=se(mt),lo=e=>(t,n,r)=>{const o=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return Se(e)(t,n,o)},po=e=>(t,n,r)=>Se(e)(t,n,r),fo=e=>async(t,n,r)=>{const o=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return ze(e)(t,n,o)},go=e=>async(t,n,r)=>ze(e)(t,n,r),mo=e=>(t,n,r)=>{const o=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return ie(e)(t,n,o)},ho=e=>(t,n,r)=>ie(e)(t,n,r),_o=e=>async(t,n,r)=>{const o=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return se(e)(t,n,o)},yo=e=>async(t,n,r)=>se(e)(t,n,r),vo=/^[cC][^\s-]{8,}$/,bo=/^[0-9a-z]+$/,wo=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,ko=/^[0-9a-vA-V]{20}$/,So=/^[A-Za-z0-9]{27}$/,zo=/^[a-zA-Z0-9_-]{21}$/,Eo=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Co=/^([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})$/,ht=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)$/,To=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,$o="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function Io(){return new RegExp($o,"u")}const Ao=/^(?:(?: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])$/,Po=/^(([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}|:))$/,Oo=/^((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])$/,No=/^(([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])$/,Zo=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,_t=/^[A-Za-z0-9_-]*$/,Ro=/^\+[1-9]\d{6,14}$/,yt="(?:(?:\\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])))",Do=new RegExp(`^${yt}$`);function vt(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(`^${vt(e)}$`)}function xo(e){const t=vt({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(`^${yt}T(?:${r})$`)}const Lo=e=>{const t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},Uo=/^-?\d+$/,Mo=/^-?\d+(?:\.\d+)?$/,Fo=/^[^A-Z]*$/,qo=/^[^a-z]*$/,$=l("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),bt={number:"number",bigint:"bigint",object:"date"},wt=l("$ZodCheckLessThan",(e,t)=>{$.init(e,t);const n=bt[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})}}),kt=l("$ZodCheckGreaterThan",(e,t)=>{$.init(e,t);const n=bt[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})}}),Jo=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):Br(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})}}),Go=l("$ZodCheckNumberFormat",(e,t)=>{$.init(e,t),t.format=t.format||"float64";const n=t.format?.includes("int"),r=n?"int":"number",[o,s]=Qr[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=Uo)}),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})}}),Vo=l("$ZodCheckMaxLength",(e,t)=>{var n;$.init(e,t),(n=e._zod.def).when??(n.when=r=>{const o=r.value;return!be(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=ke(o);r.issues.push({origin:i,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Bo=l("$ZodCheckMinLength",(e,t)=>{var n;$.init(e,t),(n=e._zod.def).when??(n.when=r=>{const o=r.value;return!be(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=ke(o);r.issues.push({origin:i,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Wo=l("$ZodCheckLengthEquals",(e,t)=>{var n;$.init(e,t),(n=e._zod.def).when??(n.when=r=>{const o=r.value;return!be(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=ke(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})}}),ae=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=()=>{})}),Ho=l("$ZodCheckRegex",(e,t)=>{ae.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})}}),Ko=l("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Fo),ae.init(e,t)}),Yo=l("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=qo),ae.init(e,t)}),Qo=l("$ZodCheckIncludes",(e,t)=>{$.init(e,t);const n=re(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})}}),Xo=l("$ZodCheckStartsWith",(e,t)=>{$.init(e,t);const n=new RegExp(`^${re(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})}}),ei=l("$ZodCheckEndsWith",(e,t)=>{$.init(e,t);const n=new RegExp(`.*${re(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})}}),ti=l("$ZodCheckOverwrite",(e,t)=>{$.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}});class ni{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(`
|
|
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=De("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.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:f,value:g}=d;if(f)break;o+=r.decode(g,{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 Wn(n);case"productList":return Hn(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 zr(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 Wn(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 We(t.filter(Ke),"chat")}function Hn(e){const t=He(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:j(t)}}}},panelHint:"panel"}:Cr("chat")}function Yn(e){const t=He(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=j(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 f=Ar(r?.special_considerations),g=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),f.length>0&&(p.specialCases=f),g&&(p.recommendedText=g),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 g=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=g[p]??p;h.push({label:w,values:y.map(x=>typeof x=="string"?x:String(x??""))})}return h}const i=e,a=t.map(g=>String(g.sku??"")).filter(g=>g.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(g=>g!=="name"&&g!=="name_short"&&!g.endsWith("_short")),f=[];for(const g of d){const m=a.map(p=>{const y=i[p];if(!y||typeof y!="object")return"";const w=y[`${g}_short`],x=y[g];return tr(w??x)});if(m.every(p=>p.length===0))continue;const h=c[g]??g;f.push({label:h,values:m})}return f}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 Er(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 We(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 f=b(o.sku,o.representative_product_sku,u?.sku);f&&(i.sku=f),i.is_suggested_text=1;const g={type:"inputText",payload:i},m=N(o.requestDetails,s),h=m?.type==="findSimilar"&&typeof i.text=="string"?N(g,s):m??N(g,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(j);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 zr(e){return{type:"metadata",sessionId:"",model:"",meta:{launcherContent:e.payload??{}}}}function We(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 He(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:j(s),index:o}}}return n.root={type:"ProductGrid",props:{layout:"grid"},children:r},{type:"ui_spec",widget:t,spec:{root:"root",elements:n}}}function Er(e,t){return{type:"ui_spec",widget:t,spec:{root:"root",elements:{root:{type:"ProductCard",props:{product:j(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 f=Y(e.rating);f!==void 0&&(s.rating=f);const g=Y(e.review_count)??Y(e.reviewCount);g!==void 0&&(s.review_count=g);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),j(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}function j(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];return 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),c}function Pr(e){return e.results.map(j)}function Or(e){return e.product_groupings.map(t=>{const n={name:t.name,products:(t.group_products??[]).map(j)};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 Nr(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 Zr(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 Nr(s,n);const i=await s.text();if(!i)return[];try{return Pr(JSON.parse(i))}catch{throw new Error("Invalid JSON from similar_products endpoint")}}async function Rr(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 xr(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 Rr(s,n);const i=await s.text();if(!i)return[];try{return Or(JSON.parse(i))}catch{throw new Error("Invalid JSON from product_groupings endpoint")}}const Dr={currencySymbol:"TL",currencyPosition:"suffix",thousandsSeparator:".",decimalSeparator:",",alwaysShowDecimals:!1};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 f=document.createElement("button");f.className="gengage-qty-submit",f.type="button",f.textContent=e.submitIcon??"🛒",f.title=e.label??"Add to Cart";function g(){c.disabled=i<=r,d.disabled=i>=o}return c.addEventListener("click",m=>{m.stopPropagation(),i>r&&(i--,u.textContent=String(i),g())}),d.addEventListener("click",m=>{m.stopPropagation(),i<o&&(i++,u.textContent=String(i),g())}),f.addEventListener("click",m=>{m.stopPropagation(),e.onSubmit(i);const h=f.textContent;f.textContent="✓",f.classList.add("gengage-qty-submit--success"),f.disabled=!0,setTimeout(()=>{f.textContent=h,f.classList.remove("gengage-qty-submit--success"),f.disabled=!1},1200)}),a.addEventListener("click",m=>{m.stopPropagation()}),g(),a.appendChild(c),a.appendChild(u),a.appendChild(d),a.appendChild(f),a}function Lr(e){return Number.isFinite(e)?Math.max(0,Math.min(5,e)):0}function Ur(e){return Number.isFinite(e)?Math.max(0,Math.min(100,Math.round(e))):0}function Mr(e){const t=Lr(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",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 Fr(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(i){const p=document.createElement("div");return p.className="gengage-simrel-card gengage-simrel-card--custom",p.innerHTML=En(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",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&&zn(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",Fr(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=`%${Ur(t.discountPercent)}`,d.appendChild(p)}u.appendChild(d);const f=document.createElement("div");if(f.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,f.appendChild(p)}const g=document.createElement("div");if(g.className="gengage-simrel-card-name gengage-chat-product-card-name",g.textContent=t.name,f.appendChild(g),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(Mr(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)}f.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){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)}f.appendChild(m),u.appendChild(f);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",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);const s=et(o);t.appendChild(s)}if(e.products.length===0){const n=document.createElement("div");n.className="gengage-simrel-empty",n.textContent=e.i18n?.emptyStateMessage??"No similar products found.",t.appendChild(n)}return t}let qr=0;function Jr(e){const t=qr++,n=document.createElement("div");if(n.className="gengage-simrel-groups",e.groups.length===0){const d=document.createElement("div");return d.className="gengage-simrel-empty",d.textContent=e.i18n?.emptyStateMessage??"No similar products found.",n.appendChild(d),n}const r=document.createElement("div");r.className="gengage-simrel-tabs",r.setAttribute("role","tablist");const o=[],s=[],i=d=>{const f={products:d.products,onClick:e.onClick,onAddToCart:e.onAddToCart};return e.i18n!==void 0&&(f.i18n=e.i18n),e.discountType!==void 0&&(f.discountType=e.discountType),e.renderCard!==void 0&&(f.renderCard=e.renderCard),f},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 f=e.groups[d],g=s[d];g.innerHTML="";const m=tt(i(f));g.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 f=e.groups[d],g=`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=g,h.textContent=f.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",g),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 f=t.inStock;return typeof f=="boolean"&&(n.inStock=f),n}function Gr(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.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),Jr(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=Gr(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",priceSuffix:" TL"},Vr={similarProductsAriaLabel:"Similar products",emptyStateMessage:"No similar products found.",addToCartButton:"Add to cart",ctaLabel:"View",outOfStockLabel:"Out of Stock",priceSuffix:""};function Br(e){return e?e.toLowerCase().split("-")[0]??"tr":"tr"}function Wr(e){return Br(e)==="en"?Vr:st}function Hr(){return typeof window<"u"&&Array.isArray(window.dataLayer)}function ne(e,t){const n={event:e,...t};Hr()&&window.dataLayer.push(n)}function Kr(e){ne("gengage-on-init",{gengage_widget:e})}function at(e){ne("gengage-show",{gengage_widget:e})}function Yr(e,t){ne("gengage-product-detail",{gengage_sku:e,gengage_product_name:t})}function Qr(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 f=0;f<d.length;f++){const g=d[f];g in a||(a[g]=u[g].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 Xr(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 L(...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 eo(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 to=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 no=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 ro(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}const oo={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 io(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=L(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 so(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=L(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 ao(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=L(e._zod.def,{get shape(){const s={...e._zod.def.shape,...t};return G(this,"shape",s),s}});return U(e,o)}function co(e,t){if(!Q(t))throw new Error("Invalid input to safeExtend: expected a plain object");const n=L(e._zod.def,{get shape(){const r={...e._zod.def.shape,...t};return G(this,"shape",r),r}});return U(e,n)}function uo(e,t){const n=L(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 lo(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=L(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 po(e,t,n){const r=L(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 W(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 ze(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 fo(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 go(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 Ee=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}},mo=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}},ho=ae(yt),_o=e=>(t,n,r)=>{const o=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return Ee(e)(t,n,o)},yo=e=>(t,n,r)=>Ee(e)(t,n,r),vo=e=>async(t,n,r)=>{const o=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return Ce(e)(t,n,o)},bo=e=>async(t,n,r)=>Ce(e)(t,n,r),wo=e=>(t,n,r)=>{const o=r?Object.assign(r,{direction:"backward"}):{direction:"backward"};return se(e)(t,n,o)},ko=e=>(t,n,r)=>se(e)(t,n,r),So=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),Eo=/^[cC][^\s-]{8,}$/,Co=/^[0-9a-z]+$/,To=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,$o=/^[0-9a-vA-V]{20}$/,Io=/^[A-Za-z0-9]{27}$/,Ao=/^[a-zA-Z0-9_-]{21}$/,Po=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Oo=/^([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)$/,No=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,Zo="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function Ro(){return new RegExp(Zo,"u")}const xo=/^(?:(?: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])$/,Lo=/^(([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])$/,Uo=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,bt=/^[A-Za-z0-9_-]*$/,Mo=/^\+[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])))",Fo=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 qo(e){return new RegExp(`^${kt(e)}$`)}function Jo(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 Go=e=>{const t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},Vo=/^-?\d+$/,Bo=/^-?\d+(?:\.\d+)?$/,Wo=/^[^A-Z]*$/,Ho=/^[^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"},zt=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})}}),Et=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})}}),Ko=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):Xr(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})}}),Yo=l("$ZodCheckNumberFormat",(e,t)=>{$.init(e,t),t.format=t.format||"float64";const n=t.format?.includes("int"),r=n?"int":"number",[o,s]=oo[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})}}),Qo=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=ze(o);r.issues.push({origin:i,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Xo=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=ze(o);r.issues.push({origin:i,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),ei=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=ze(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=()=>{})}),ti=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})}}),ni=l("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Wo),ce.init(e,t)}),ri=l("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=Ho),ce.init(e,t)}),oi=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})}}),ii=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})}}),si=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})}}),ai=l("$ZodCheckOverwrite",(e,t)=>{$.init(e,t),e._zod.check=n=>{n.value=t.tx(n.value)}});class ci{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
|
|
49
|
+
`))}}const ui={major:4,minor:3,patch:6},z=l("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=ui;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=W(i),d;for(const f of a){if(f._zod.def.when){if(!f._zod.def.when(i))continue}else if(u)continue;const g=i.issues.length,m=f._zod.check(i);if(m instanceof Promise&&c?.async===!1)throw new B;if(d||m instanceof Promise)d=(d??Promise.resolve()).then(async()=>{await m,i.issues.length!==g&&(u||(u=W(i,g)))});else{if(i.issues.length===g)continue;u||(u=W(i,g))}}return d?d.then(()=>i):i},s=(i,a,c)=>{if(W(i))return i.aborted=!0,i;const u=o(a,r,c);if(u instanceof Promise){if(c.async===!1)throw new B;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 B;return c.then(u=>o(u,r,a))}return o(c,r,a)}}v(e,"~standard",()=>({validate:o=>{try{const s=mo(e,o);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return ho(e,o).then(i=>i.success?{value:i.data}:{issues:i.error?.issues})}},vendor:"zod",version:1}))}),Te=l("$ZodString",(e,t)=>{z.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??Go(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)}),di=l("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Oo),k.init(e,t)}),li=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)}),pi=l("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=No),k.init(e,t)}),fi=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})}}}),gi=l("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=Ro()),k.init(e,t)}),mi=l("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=Ao),k.init(e,t)}),hi=l("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=Eo),k.init(e,t)}),_i=l("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=Co),k.init(e,t)}),yi=l("$ZodULID",(e,t)=>{t.pattern??(t.pattern=To),k.init(e,t)}),vi=l("$ZodXID",(e,t)=>{t.pattern??(t.pattern=$o),k.init(e,t)}),bi=l("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=Io),k.init(e,t)}),wi=l("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=Jo(t)),k.init(e,t)}),ki=l("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=Fo),k.init(e,t)}),Si=l("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=qo(t)),k.init(e,t)}),zi=l("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=Po),k.init(e,t)}),Ei=l("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=xo),k.init(e,t),e._zod.bag.format="ipv4"}),Ci=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})}}}),Ti=l("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=jo),k.init(e,t)}),$i=l("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=Lo),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 Ii=l("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=Uo),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 Ai(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 Pi=l("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=bt),k.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=n=>{Ai(n.value)||n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),Oi=l("$ZodE164",(e,t)=>{t.pattern??(t.pattern=Mo),k.init(e,t)});function Ni(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 Zi=l("$ZodJWT",(e,t)=>{k.init(e,t),e._zod.check=n=>{Ni(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)=>{z.init(e,t),e._zod.pattern=e._zod.bag.pattern??Bo,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}}),Ri=l("$ZodNumberFormat",(e,t)=>{Yo.init(e,t),Tt.init(e,t)}),xi=l("$ZodUnknown",(e,t)=>{z.init(e,t),e._zod.parse=n=>n}),Di=l("$ZodNever",(e,t)=>{z.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)=>{z.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=ro(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 f in t){if(a.has(f))continue;if(u==="never"){i.push(f);continue}const g=c.run({value:t[f],issues:[]},r);g instanceof Promise?e.push(g.then(m=>ue(m,n,f,t,d))):ue(g,n,f,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 Li=l("$ZodObject",(e,t)=>{if(z.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 f of d.values)c[u].add(f)}}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=[],f=i.shape;for(const g of i.keys){const m=f[g],h=m._zod.optout==="optional",p=m._zod.run({value:u[g],issues:[]},c);p instanceof Promise?d.push(p.then(y=>ue(y,a,g,u,h))):ue(p,a,g,u,h)}return s?At(d,u,a,c,r.value,e):d.length?Promise.all(d).then(()=>a):a}}),Ui=l("$ZodObjectJIT",(e,t)=>{Li.init(e,t);const n=e._zod.parse,r=we(()=>It(t)),o=g=>{const m=new ci(["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),Nc=g[Z]?._zod?.optout==="optional";m.write(`const ${A} = ${p(Z)};`),Nc?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 D=m.compile();return(Z,A)=>D(f,Z,A)};let s;const i=ne,a=!st.jitless,u=a&&Hr.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?Tt([],h,f,m,g,e):f):n(f,m):(f.issues.push({expected:"object",code:"invalid_type",input:h,inst:e}),f)}});function $t(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=>!W(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 Ri=l("$ZodUnion",(e,t)=>{z.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=>we(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=>$t(c,o,e,s)):$t(a,o,e,s)}}),Di=l("$ZodIntersection",(e,t)=>{z.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])=>It(n,c,u)):It(n,s,i)}});function Ce(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(Y(e)&&Y(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=Ce(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=Ce(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 It(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}),W(e))return e;const i=Ce(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)=>{z.init(e,t);const n=at(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=new RegExp(`^(${n.filter(o=>Kr.has(typeof o)).map(o=>typeof o=="string"?re(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}}),xi=l("$ZodTransform",(e,t)=>{z.init(e,t),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new it(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 At(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}const Pt=l("$ZodOptional",(e,t)=>{z.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(`^(${we(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=>At(s,n.value)):At(o,n.value)}return n.value===void 0?n:t.innerType._zod.run(n,r)}}),Li=l("$ZodExactOptional",(e,t)=>{Pt.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)}),Ui=l("$ZodNullable",(e,t)=>{z.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(`^(${we(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)}),Mi=l("$ZodDefault",(e,t)=>{z.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=>Ot(s,t)):Ot(o,t)}});function Ot(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}const Fi=l("$ZodPrefault",(e,t)=>{z.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))}),qi=l("$ZodNonOptional",(e,t)=>{z.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=>Nt(s,e)):Nt(o,e)}});function Nt(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 Ji=l("$ZodCatch",(e,t)=>{z.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)}}),Gi=l("$ZodPipe",(e,t)=>{z.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=>ue(i,t.in,r)):ue(s,t.in,r)}const o=t.in._zod.run(n,r);return o instanceof Promise?o.then(s=>ue(s,t.out,r)):ue(o,t.out,r)}});function ue(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}const Vi=l("$ZodReadonly",(e,t)=>{z.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(Zt):Zt(o)}});function Zt(e){return e.value=Object.freeze(e.value),e}const Bi=l("$ZodCustom",(e,t)=>{$.init(e,t),z.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=>Rt(s,n,r,e));Rt(o,n,r,e)}});function Rt(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(Q(o))}}var Dt;class Wi{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 Hi(){return new Wi}(Dt=globalThis).__zod_globalRegistry??(Dt.__zod_globalRegistry=Hi());const X=globalThis.__zod_globalRegistry;function Ki(e,t){return new e({type:"string",..._(t)})}function Yi(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,..._(t)})}function jt(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,..._(t)})}function Qi(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,..._(t)})}function Xi(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",..._(t)})}function es(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",..._(t)})}function ts(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",..._(t)})}function ns(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,..._(t)})}function rs(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,..._(t)})}function os(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,..._(t)})}function is(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,..._(t)})}function ss(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,..._(t)})}function as(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,..._(t)})}function cs(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,..._(t)})}function us(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,..._(t)})}function ds(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,..._(t)})}function ls(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,..._(t)})}function ps(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,..._(t)})}function fs(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,..._(t)})}function gs(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,..._(t)})}function ms(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,..._(t)})}function hs(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,..._(t)})}function _s(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,..._(t)})}function ys(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,..._(t)})}function vs(e,t){return new e({type:"string",format:"date",check:"string_format",..._(t)})}function bs(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,..._(t)})}function ws(e,t){return new e({type:"string",format:"duration",check:"string_format",..._(t)})}function ks(e,t){return new e({type:"number",checks:[],..._(t)})}function Ss(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",..._(t)})}function zs(e){return new e({type:"unknown"})}function Es(e,t){return new e({type:"never",..._(t)})}function xt(e,t){return new wt({check:"less_than",..._(t),value:e,inclusive:!1})}function Te(e,t){return new wt({check:"less_than",..._(t),value:e,inclusive:!0})}function Lt(e,t){return new kt({check:"greater_than",..._(t),value:e,inclusive:!1})}function $e(e,t){return new kt({check:"greater_than",..._(t),value:e,inclusive:!0})}function Ut(e,t){return new Jo({check:"multiple_of",..._(t),value:e})}function Mt(e,t){return new Vo({check:"max_length",..._(t),maximum:e})}function de(e,t){return new Bo({check:"min_length",..._(t),minimum:e})}function Ft(e,t){return new Wo({check:"length_equals",..._(t),length:e})}function Cs(e,t){return new Ho({check:"string_format",format:"regex",..._(t),pattern:e})}function Ts(e){return new Ko({check:"string_format",format:"lowercase",..._(e)})}function $s(e){return new Yo({check:"string_format",format:"uppercase",..._(e)})}function Is(e,t){return new Qo({check:"string_format",format:"includes",..._(t),includes:e})}function As(e,t){return new Xo({check:"string_format",format:"starts_with",..._(t),prefix:e})}function Ps(e,t){return new ei({check:"string_format",format:"ends_with",..._(t),suffix:e})}function H(e){return new ti({check:"overwrite",tx:e})}function Os(e){return H(t=>t.normalize(e))}function Ns(){return H(e=>e.trim())}function Zs(){return H(e=>e.toLowerCase())}function Rs(){return H(e=>e.toUpperCase())}function Ds(){return H(e=>Wr(e))}function js(e,t,n){return new e({type:"array",element:t,..._(n)})}function xs(e,t,n){return new e({type:"custom",check:"custom",fn:t,..._(n)})}function Ls(e){const t=Us(n=>(n.addIssue=r=>{if(typeof r=="string")n.issues.push(Q(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(Q(o))}},e(n.value,n)));return t}function Us(e,t){const n=new $({check:"custom",..._(t)});return n._zod.check=e,n}function qt(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??X,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 Jt(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(g,Z,A)};let s;const i=re,a=!ut.jitless,u=a&&to.value,d=t.catchall;let f;e._zod.parse=(g,m)=>{f??(f=r.value);const h=g.value;return i(h)?a&&u&&m?.async===!1&&m.jitless!==!0?(s||(s=o(t.shape)),g=s(g,m),d?At([],h,g,m,f,e):g):n(g,m):(g.issues.push({expected:"object",code:"invalid_type",input:h,inst:e}),g)}});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=>!W(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 Mi=l("$ZodUnion",(e,t)=>{z.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)}}),Fi=l("$ZodIntersection",(e,t)=>{z.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}),W(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 qi=l("$ZodEnum",(e,t)=>{z.init(e,t);const n=dt(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=new RegExp(`^(${n.filter(o=>no.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}}),Ji=l("$ZodTransform",(e,t)=>{z.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)=>{z.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)}}),Gi=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)=>{z.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)}),Bi=l("$ZodDefault",(e,t)=>{z.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)=>{z.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))}),Hi=l("$ZodNonOptional",(e,t)=>{z.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 Ki=l("$ZodCatch",(e,t)=>{z.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)}}),Yi=l("$ZodPipe",(e,t)=>{z.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 Qi=l("$ZodReadonly",(e,t)=>{z.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(Dt):Dt(o)}});function Dt(e){return e.value=Object.freeze(e.value),e}const Xi=l("$ZodCustom",(e,t)=>{$.init(e,t),z.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=>jt(s,n,r,e));jt(o,n,r,e)}});function jt(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 Lt;class es{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 ts(){return new es}(Lt=globalThis).__zod_globalRegistry??(Lt.__zod_globalRegistry=ts());const ee=globalThis.__zod_globalRegistry;function ns(e,t){return new e({type:"string",..._(t)})}function rs(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 os(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,..._(t)})}function is(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",..._(t)})}function ss(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",..._(t)})}function as(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",..._(t)})}function cs(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,..._(t)})}function us(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,..._(t)})}function ds(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,..._(t)})}function ls(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,..._(t)})}function ps(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,..._(t)})}function fs(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,..._(t)})}function gs(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,..._(t)})}function ms(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,..._(t)})}function hs(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,..._(t)})}function _s(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,..._(t)})}function ys(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,..._(t)})}function vs(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,..._(t)})}function bs(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,..._(t)})}function ws(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,..._(t)})}function ks(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,..._(t)})}function Ss(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 Es(e,t){return new e({type:"string",format:"date",check:"string_format",..._(t)})}function Cs(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,..._(t)})}function Ts(e,t){return new e({type:"string",format:"duration",check:"string_format",..._(t)})}function $s(e,t){return new e({type:"number",checks:[],..._(t)})}function Is(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",..._(t)})}function As(e){return new e({type:"unknown"})}function Ps(e,t){return new e({type:"never",..._(t)})}function Mt(e,t){return new zt({check:"less_than",..._(t),value:e,inclusive:!1})}function Ie(e,t){return new zt({check:"less_than",..._(t),value:e,inclusive:!0})}function Ft(e,t){return new Et({check:"greater_than",..._(t),value:e,inclusive:!1})}function Ae(e,t){return new Et({check:"greater_than",..._(t),value:e,inclusive:!0})}function qt(e,t){return new Ko({check:"multiple_of",..._(t),value:e})}function Jt(e,t){return new Qo({check:"max_length",..._(t),maximum:e})}function le(e,t){return new Xo({check:"min_length",..._(t),minimum:e})}function Gt(e,t){return new ei({check:"length_equals",..._(t),length:e})}function Os(e,t){return new ti({check:"string_format",format:"regex",..._(t),pattern:e})}function Ns(e){return new ni({check:"string_format",format:"lowercase",..._(e)})}function Zs(e){return new ri({check:"string_format",format:"uppercase",..._(e)})}function Rs(e,t){return new oi({check:"string_format",format:"includes",..._(t),includes:e})}function xs(e,t){return new ii({check:"string_format",format:"starts_with",..._(t),prefix:e})}function Ds(e,t){return new si({check:"string_format",format:"ends_with",..._(t),suffix:e})}function H(e){return new ai({check:"overwrite",tx:e})}function js(e){return H(t=>t.normalize(e))}function Ls(){return H(e=>e.trim())}function Us(){return H(e=>e.toLowerCase())}function Ms(){return H(e=>e.toUpperCase())}function Fs(){return H(e=>eo(e))}function qs(e,t,n){return new e({type:"array",element:t,..._(n)})}function Js(e,t,n){return new e({type:"custom",check:"custom",fn:t,..._(n)})}function Gs(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 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 g=i.schema,m=t.processors[o.type];if(!m)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);m(e,t,g,d)}const f=e._zod.parent;f&&(i.ref||(i.ref=f),C(f,t,d),t.seen.get(f).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 f=e.external.registry.get(i[0])?.id,g=e.external.uri??(h=>h);if(f)return{ref:g(f)};const m=i[1].defId??i[1].schema.id??`schema${e.counter++}`;return i[1].defId=m,{defId:m,ref:`${g("__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 f in d)delete d[f];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 Gt(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:le(t,"input",e.processors),output:le(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 Ms=(e,t={})=>n=>{const r=qt({...n,processors:t});return C(e,r),Jt(r,e),Gt(r,e)},le=(e,t,n={})=>r=>{const{libraryOptions:o,target:s}=r??{},i=qt({...o??{},target:s,io:t,processors:n});return C(e,i),Jt(i,e),Gt(i,e)},Fs={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},qs=(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=Fs[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}))])}},Js=(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)},Gs=(e,t,n,r)=>{n.not={}},Vs=(e,t,n,r)=>{},Bs=(e,t,n,r)=>{const o=e._zod.def,s=at(o.entries);s.every(i=>typeof i=="number")&&(n.type="number"),s.every(i=>typeof i=="string")&&(n.type="string"),n.enum=s},Ws=(e,t,n,r)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},Hs=(e,t,n,r)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Ks=(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"]})},Ys=(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)},Qs=(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},Xs=(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},ea=(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"}]},ta=(e,t,n,r)=>{const o=e._zod.def;C(o.innerType,t,r);const s=t.seen.get(e);s.ref=o.innerType},na=(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))},ra=(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)))},oa=(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},ia=(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},sa=(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},Vt=(e,t,n,r)=>{const o=e._zod.def;C(o.innerType,t,r);const s=t.seen.get(e);s.ref=o.innerType},aa=l("ZodISODateTime",(e,t)=>{mi.init(e,t),S.init(e,t)});function ca(e){return ys(aa,e)}const ua=l("ZodISODate",(e,t)=>{hi.init(e,t),S.init(e,t)});function da(e){return vs(ua,e)}const la=l("ZodISOTime",(e,t)=>{_i.init(e,t),S.init(e,t)});function pa(e){return bs(la,e)}const fa=l("ZodISODuration",(e,t)=>{yi.init(e,t),S.init(e,t)});function ga(e){return ws(fa,e)}const P=l("ZodError",(e,t)=>{gt.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>ao(e,n)},flatten:{value:n=>so(e,n)},addIssue:{value:n=>{e.issues.push(n),e.message=JSON.stringify(e.issues,ye,2)}},addIssues:{value:n=>{e.issues.push(...n),e.message=JSON.stringify(e.issues,ye,2)}},isEmpty:{get(){return e.issues.length===0}}})},{Parent:Error}),ma=Se(P),ha=ze(P),_a=ie(P),ya=se(P),va=lo(P),ba=po(P),wa=fo(P),ka=go(P),Sa=mo(P),za=ho(P),Ea=_o(P),Ca=yo(P),E=l("ZodType",(e,t)=>(z.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:le(e,"input"),output:le(e,"output")}}),e.toJSONSchema=Ms(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone(L(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)=>ma(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>_a(e,n,r),e.parseAsync=async(n,r)=>ha(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>ya(e,n,r),e.spa=e.safeParseAsync,e.encode=(n,r)=>va(e,n,r),e.decode=(n,r)=>ba(e,n,r),e.encodeAsync=async(n,r)=>wa(e,n,r),e.decodeAsync=async(n,r)=>ka(e,n,r),e.safeEncode=(n,r)=>Sa(e,n,r),e.safeDecode=(n,r)=>za(e,n,r),e.safeEncodeAsync=async(n,r)=>Ea(e,n,r),e.safeDecodeAsync=async(n,r)=>Ca(e,n,r),e.refine=(n,r)=>e.check(_c(n,r)),e.superRefine=n=>e.check(yc(n)),e.overwrite=n=>e.check(H(n)),e.optional=()=>Xt(e),e.exactOptional=()=>oc(e),e.nullable=()=>en(e),e.nullish=()=>Xt(en(e)),e.nonoptional=n=>dc(e,n),e.array=()=>Yt(e),e.or=n=>Qa([e,n]),e.and=n=>ec(e,n),e.transform=n=>nn(e,nc(n)),e.default=n=>ac(e,n),e.prefault=n=>uc(e,n),e.catch=n=>pc(e,n),e.pipe=n=>nn(e,n),e.readonly=()=>mc(e),e.describe=n=>{const r=e.clone();return X.add(r,{description:n}),r},Object.defineProperty(e,"description",{get(){return X.get(e)?.description},configurable:!0}),e.meta=(...n)=>{if(n.length===0)return X.get(e);const r=e.clone();return X.add(r,n[0]),r},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=n=>n(e),e)),Bt=l("_ZodString",(e,t)=>{Ee.init(e,t),E.init(e,t),e._zod.processJSONSchema=(r,o,s)=>qs(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(Cs(...r)),e.includes=(...r)=>e.check(Is(...r)),e.startsWith=(...r)=>e.check(As(...r)),e.endsWith=(...r)=>e.check(Ps(...r)),e.min=(...r)=>e.check(de(...r)),e.max=(...r)=>e.check(Mt(...r)),e.length=(...r)=>e.check(Ft(...r)),e.nonempty=(...r)=>e.check(de(1,...r)),e.lowercase=r=>e.check(Ts(r)),e.uppercase=r=>e.check($s(r)),e.trim=()=>e.check(Ns()),e.normalize=(...r)=>e.check(Os(...r)),e.toLowerCase=()=>e.check(Zs()),e.toUpperCase=()=>e.check(Rs()),e.slugify=()=>e.check(Ds())}),Ta=l("ZodString",(e,t)=>{Ee.init(e,t),Bt.init(e,t),e.email=n=>e.check(Yi($a,n)),e.url=n=>e.check(ns(Ia,n)),e.jwt=n=>e.check(_s(Ja,n)),e.emoji=n=>e.check(rs(Aa,n)),e.guid=n=>e.check(jt(Wt,n)),e.uuid=n=>e.check(Qi(pe,n)),e.uuidv4=n=>e.check(Xi(pe,n)),e.uuidv6=n=>e.check(es(pe,n)),e.uuidv7=n=>e.check(ts(pe,n)),e.nanoid=n=>e.check(os(Pa,n)),e.guid=n=>e.check(jt(Wt,n)),e.cuid=n=>e.check(is(Oa,n)),e.cuid2=n=>e.check(ss(Na,n)),e.ulid=n=>e.check(as(Za,n)),e.base64=n=>e.check(gs(Ma,n)),e.base64url=n=>e.check(ms(Fa,n)),e.xid=n=>e.check(cs(Ra,n)),e.ksuid=n=>e.check(us(Da,n)),e.ipv4=n=>e.check(ds(ja,n)),e.ipv6=n=>e.check(ls(xa,n)),e.cidrv4=n=>e.check(ps(La,n)),e.cidrv6=n=>e.check(fs(Ua,n)),e.e164=n=>e.check(hs(qa,n)),e.datetime=n=>e.check(ca(n)),e.date=n=>e.check(da(n)),e.time=n=>e.check(pa(n)),e.duration=n=>e.check(ga(n))});function I(e){return Ki(Ta,e)}const S=l("ZodStringFormat",(e,t)=>{k.init(e,t),Bt.init(e,t)}),$a=l("ZodEmail",(e,t)=>{si.init(e,t),S.init(e,t)}),Wt=l("ZodGUID",(e,t)=>{oi.init(e,t),S.init(e,t)}),pe=l("ZodUUID",(e,t)=>{ii.init(e,t),S.init(e,t)}),Ia=l("ZodURL",(e,t)=>{ai.init(e,t),S.init(e,t)}),Aa=l("ZodEmoji",(e,t)=>{ci.init(e,t),S.init(e,t)}),Pa=l("ZodNanoID",(e,t)=>{ui.init(e,t),S.init(e,t)}),Oa=l("ZodCUID",(e,t)=>{di.init(e,t),S.init(e,t)}),Na=l("ZodCUID2",(e,t)=>{li.init(e,t),S.init(e,t)}),Za=l("ZodULID",(e,t)=>{pi.init(e,t),S.init(e,t)}),Ra=l("ZodXID",(e,t)=>{fi.init(e,t),S.init(e,t)}),Da=l("ZodKSUID",(e,t)=>{gi.init(e,t),S.init(e,t)}),ja=l("ZodIPv4",(e,t)=>{vi.init(e,t),S.init(e,t)}),xa=l("ZodIPv6",(e,t)=>{bi.init(e,t),S.init(e,t)}),La=l("ZodCIDRv4",(e,t)=>{wi.init(e,t),S.init(e,t)}),Ua=l("ZodCIDRv6",(e,t)=>{ki.init(e,t),S.init(e,t)}),Ma=l("ZodBase64",(e,t)=>{Si.init(e,t),S.init(e,t)}),Fa=l("ZodBase64URL",(e,t)=>{Ei.init(e,t),S.init(e,t)}),qa=l("ZodE164",(e,t)=>{Ci.init(e,t),S.init(e,t)}),Ja=l("ZodJWT",(e,t)=>{$i.init(e,t),S.init(e,t)}),Ht=l("ZodNumber",(e,t)=>{zt.init(e,t),E.init(e,t),e._zod.processJSONSchema=(r,o,s)=>Js(e,r,o),e.gt=(r,o)=>e.check(Lt(r,o)),e.gte=(r,o)=>e.check($e(r,o)),e.min=(r,o)=>e.check($e(r,o)),e.lt=(r,o)=>e.check(xt(r,o)),e.lte=(r,o)=>e.check(Te(r,o)),e.max=(r,o)=>e.check(Te(r,o)),e.int=r=>e.check(Kt(r)),e.safe=r=>e.check(Kt(r)),e.positive=r=>e.check(Lt(0,r)),e.nonnegative=r=>e.check($e(0,r)),e.negative=r=>e.check(xt(0,r)),e.nonpositive=r=>e.check(Te(0,r)),e.multipleOf=(r,o)=>e.check(Ut(r,o)),e.step=(r,o)=>e.check(Ut(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 ee(e){return ks(Ht,e)}const Ga=l("ZodNumberFormat",(e,t)=>{Ii.init(e,t),Ht.init(e,t)});function Kt(e){return Ss(Ga,e)}const Va=l("ZodUnknown",(e,t)=>{Ai.init(e,t),E.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Vs()});function Ie(){return zs(Va)}const Ba=l("ZodNever",(e,t)=>{Pi.init(e,t),E.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Gs(e,n,r)});function Wa(e){return Es(Ba,e)}const Ha=l("ZodArray",(e,t)=>{Oi.init(e,t),E.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Ks(e,n,r,o),e.element=t.element,e.min=(n,r)=>e.check(de(n,r)),e.nonempty=n=>e.check(de(1,n)),e.max=(n,r)=>e.check(Mt(n,r)),e.length=(n,r)=>e.check(Ft(n,r)),e.unwrap=()=>e.element});function Yt(e,t){return js(Ha,e,t)}const Ka=l("ZodObject",(e,t)=>{Zi.init(e,t),E.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Ys(e,n,r,o),v(e,"shape",()=>t.shape),e.keyof=()=>Pe(Object.keys(e._zod.def.shape)),e.catchall=n=>e.clone({...e._zod.def,catchall:n}),e.passthrough=()=>e.clone({...e._zod.def,catchall:Ie()}),e.loose=()=>e.clone({...e._zod.def,catchall:Ie()}),e.strict=()=>e.clone({...e._zod.def,catchall:Wa()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=n=>to(e,n),e.safeExtend=n=>no(e,n),e.merge=n=>ro(e,n),e.pick=n=>Xr(e,n),e.omit=n=>eo(e,n),e.partial=(...n)=>oo(Qt,e,n[0]),e.required=(...n)=>io(tn,e,n[0])});function M(e,t){const n={type:"object",shape:e??{},..._(t)};return new Ka(n)}const Ya=l("ZodUnion",(e,t)=>{Ri.init(e,t),E.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Qs(e,n,r,o),e.options=t.options});function Qa(e,t){return new Ya({type:"union",options:e,..._(t)})}const Xa=l("ZodIntersection",(e,t)=>{Di.init(e,t),E.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Xs(e,n,r,o)});function ec(e,t){return new Xa({type:"intersection",left:e,right:t})}const Ae=l("ZodEnum",(e,t)=>{ji.init(e,t),E.init(e,t),e._zod.processJSONSchema=(r,o,s)=>Bs(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 Ae({...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 Ae({...t,checks:[],..._(o),entries:s})}});function Pe(e,t){const n=Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e;return new Ae({type:"enum",entries:n,..._(t)})}const tc=l("ZodTransform",(e,t)=>{xi.init(e,t),E.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Hs(e,n),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new it(e.constructor.name);n.addIssue=s=>{if(typeof s=="string")n.issues.push(Q(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(Q(i))}};const o=t.transform(n.value,n);return o instanceof Promise?o.then(s=>(n.value=s,n)):(n.value=o,n)}});function nc(e){return new tc({type:"transform",transform:e})}const Qt=l("ZodOptional",(e,t)=>{Pt.init(e,t),E.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Vt(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function Xt(e){return new Qt({type:"optional",innerType:e})}const rc=l("ZodExactOptional",(e,t)=>{Li.init(e,t),E.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Vt(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function oc(e){return new rc({type:"optional",innerType:e})}const ic=l("ZodNullable",(e,t)=>{Ui.init(e,t),E.init(e,t),e._zod.processJSONSchema=(n,r,o)=>ea(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function en(e){return new ic({type:"nullable",innerType:e})}const sc=l("ZodDefault",(e,t)=>{Mi.init(e,t),E.init(e,t),e._zod.processJSONSchema=(n,r,o)=>na(e,n,r,o),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function ac(e,t){return new sc({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():lt(t)}})}const cc=l("ZodPrefault",(e,t)=>{Fi.init(e,t),E.init(e,t),e._zod.processJSONSchema=(n,r,o)=>ra(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function uc(e,t){return new cc({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():lt(t)}})}const tn=l("ZodNonOptional",(e,t)=>{qi.init(e,t),E.init(e,t),e._zod.processJSONSchema=(n,r,o)=>ta(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function dc(e,t){return new tn({type:"nonoptional",innerType:e,..._(t)})}const lc=l("ZodCatch",(e,t)=>{Ji.init(e,t),E.init(e,t),e._zod.processJSONSchema=(n,r,o)=>oa(e,n,r,o),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function pc(e,t){return new lc({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}const fc=l("ZodPipe",(e,t)=>{Gi.init(e,t),E.init(e,t),e._zod.processJSONSchema=(n,r,o)=>ia(e,n,r,o),e.in=t.in,e.out=t.out});function nn(e,t){return new fc({type:"pipe",in:e,out:t})}const gc=l("ZodReadonly",(e,t)=>{Vi.init(e,t),E.init(e,t),e._zod.processJSONSchema=(n,r,o)=>sa(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function mc(e){return new gc({type:"readonly",innerType:e})}const hc=l("ZodCustom",(e,t)=>{Bi.init(e,t),E.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Ws(e,n)});function _c(e,t={}){return xs(hc,e,t)}function yc(e){return Ls(e)}const vc=M({sku:I(),name:I(),imageUrl:I().url().optional(),price:I().optional(),originalPrice:I().optional(),discountPercent:ee().optional(),url:I().url(),brand:I().optional(),rating:ee().min(0).max(5).optional(),reviewCount:ee().int().nonnegative().optional()}),bc=M({layout:Pe(["grid","carousel"]).optional(),columns:ee().int().positive().optional()}),wc=M({product:vc,index:ee().int().nonnegative(),discountType:Pe(["strike-through","badge"]).optional()}),kc=M({sku:I(),label:I().optional(),cartCode:I()}),Sc=M({actions:Yt(M({label:I(),action:M({title:I(),type:I(),payload:Ie().optional()})}))}),zc=M({message:I().optional()}),Ec={components:{ProductGrid:{schema:bc,description:"Outer grid or carousel container for similar products."},ProductCard:{schema:wc,description:"A single product card with image, title, price, and actions."},AddToCartButton:{schema:kc,description:"Add-to-cart CTA rendered inside or below a product card."},QuickActions:{schema:Sc,description:"A row of quick-action buttons below product info."},EmptyState:{schema:zc,description:"Empty state shown when no similar products are available."}}};class rn extends $n{constructor(){super(...arguments),this._abortController=null,this._contentEl=null,this._i18n=rt}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,Jr("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;Gr(t.sku,t.name);const r=this.config.session?.sessionId??null;fe("gengage:similar:product-click",{sku:t.sku,url:t.url,sessionId:r}),this.config.onProductNavigate?.(t.url,t.sku,r)}_handleAddToCart(t){Vr(t.sku,t.quantity),this.config.onAddToCart?.(t),fe("gengage:similar:add-to-cart",t),this.track(ln(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;if(!this._contentEl)return;this._contentEl.innerHTML="",this._contentEl.style.display="";const r=document.createElement("div");r.className="gengage-simrel-loading";const o=document.createElement("div");o.className="gengage-simrel-spinner",r.appendChild(o),this._contentEl.appendChild(r);const s={middlewareUrl:this.config.middlewareUrl},i=crypto.randomUUID(),a=Date.now();this.track(cn(this.analyticsContext(),{endpoint:"similar_products",request_id:i,widget:"simrel"}));try{const c={account_id:this.config.accountId,session_id:this.config.session?.sessionId??"",correlation_id:this.config.session?.sessionId??"",sku:t};this.config.domain!==void 0&&(c.domain=this.config.domain);const u=await kr(c,s,n);if(!this._contentEl)return;if(this._contentEl.innerHTML="",u.length>0)try{const d=u.map(f=>f.sku),g=await zr({account_id:this.config.accountId,session_id:this.config.session?.sessionId??"",correlation_id:this.config.session?.sessionId??"",skus:d},s,n);if(g.length>0&&this._contentEl){const f=this._buildGroupsSpec(g),m=this._renderUISpec(f);this._contentEl.appendChild(m),ot("simrel"),this.track(Oe(this.analyticsContext(),{request_id:i,latency_ms:Date.now()-a,chunk_count:g.reduce((h,p)=>h+p.products.length,0),widget:"simrel"})),this.track(Ne(this.analyticsContext(),{message_count:g.reduce((h,p)=>h+p.products.length,0),history_ref:i,redaction_level:"none",widget:"simrel"}));return}}catch{}if(this._contentEl){const d=this._buildProductsSpec(u),g=this._renderUISpec(d);this._contentEl.appendChild(g)}u.length>0&&ot("simrel"),this.track(Oe(this.analyticsContext(),{request_id:i,latency_ms:Date.now()-a,chunk_count:u.length,widget:"simrel"})),this.track(Ne(this.analyticsContext(),{message_count:u.length,history_ref:i,redaction_level:"none",widget:"simrel"}))}catch(c){if(c instanceof DOMException&&c.name==="AbortError")return;fe("gengage:global:error",{source:"simrel",code:"FETCH_ERROR",message:bn(this.config.locale)}),this.track(un(this.analyticsContext(),{request_id:i,error_code:"FETCH_ERROR",error_message:c instanceof Error?c.message:String(c),widget:"simrel"})),this._contentEl&&(this._contentEl.innerHTML="",this._contentEl.style.display="none")}}_resolveI18n(t){return{...Fr(t.locale),...t.i18n}}_resolveUISpecRegistry(){const t=tt();return an(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.pricing!==void 0&&(n.pricing=this.config.pricing),n}_renderUISpec(t){const n=this._resolveUISpecRegistry(),r=this._buildRenderContext(),o=this.config.renderer?.unknownRenderer??_e,s=(c,u)=>nt(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 Cc(){return new rn}F.GengageSimRel=rn,F.createDefaultSimRelUISpecRegistry=tt,F.createSimRelWidget=Cc,F.defaultSimRelUnknownUISpecRenderer=_e,F.renderSimRelUISpec=nt,F.simRelCatalog=Ec,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 Wt(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 g=e.seen.get(d),m=g.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&&g.def)for(const p in c)p==="$ref"||p==="allOf"||p in g.def&&JSON.stringify(c[p])===JSON.stringify(g.def[p])&&delete c[p]}const f=i._zod.parent;if(f&&f!==d){r(f);const g=e.seen.get(f);if(g?.schema.$ref&&(c.$ref=g.schema.$ref,g.def))for(const m in c)m==="$ref"||m==="allOf"||m in g.def&&JSON.stringify(c[m])===JSON.stringify(g.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 Bs=(e,t={})=>n=>{const r=Vt({...n,processors:t});return C(e,r),Bt(r,e),Wt(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),Wt(i,e)},Ws={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Hs=(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(f=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:f.source}))])}},Ks=(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)},Ys=(e,t,n,r)=>{n.not={}},Qs=(e,t,n,r)=>{},Xs=(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},ea=(e,t,n,r)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},ta=(e,t,n,r)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},na=(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"]})},ra=(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)},oa=(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},ia=(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},sa=(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"}]},aa=(e,t,n,r)=>{const o=e._zod.def;C(o.innerType,t,r);const s=t.seen.get(e);s.ref=o.innerType},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,n.default=JSON.parse(JSON.stringify(o.defaultValue))},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,t.io==="input"&&(n._prefault=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;let i;try{i=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}n.default=i},la=(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},pa=(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},Ht=(e,t,n,r)=>{const o=e._zod.def;C(o.innerType,t,r);const s=t.seen.get(e);s.ref=o.innerType},fa=l("ZodISODateTime",(e,t)=>{wi.init(e,t),S.init(e,t)});function ga(e){return zs(fa,e)}const ma=l("ZodISODate",(e,t)=>{ki.init(e,t),S.init(e,t)});function ha(e){return Es(ma,e)}const _a=l("ZodISOTime",(e,t)=>{Si.init(e,t),S.init(e,t)});function ya(e){return Cs(_a,e)}const va=l("ZodISODuration",(e,t)=>{zi.init(e,t),S.init(e,t)});function ba(e){return Ts(va,e)}const P=l("ZodError",(e,t)=>{_t.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>go(e,n)},flatten:{value:n=>fo(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}),wa=Ee(P),ka=Ce(P),Sa=se(P),za=ae(P),Ea=_o(P),Ca=yo(P),Ta=vo(P),$a=bo(P),Ia=wo(P),Aa=ko(P),Pa=So(P),Oa=zo(P),E=l("ZodType",(e,t)=>(z.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:pe(e,"input"),output:pe(e,"output")}}),e.toJSONSchema=Bs(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone(L(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)=>wa(e,n,r,{callee:e.parse}),e.safeParse=(n,r)=>Sa(e,n,r),e.parseAsync=async(n,r)=>ka(e,n,r,{callee:e.parseAsync}),e.safeParseAsync=async(n,r)=>za(e,n,r),e.spa=e.safeParseAsync,e.encode=(n,r)=>Ea(e,n,r),e.decode=(n,r)=>Ca(e,n,r),e.encodeAsync=async(n,r)=>Ta(e,n,r),e.decodeAsync=async(n,r)=>$a(e,n,r),e.safeEncode=(n,r)=>Ia(e,n,r),e.safeDecode=(n,r)=>Aa(e,n,r),e.safeEncodeAsync=async(n,r)=>Pa(e,n,r),e.safeDecodeAsync=async(n,r)=>Oa(e,n,r),e.refine=(n,r)=>e.check(Sc(n,r)),e.superRefine=n=>e.check(zc(n)),e.overwrite=n=>e.check(H(n)),e.optional=()=>nn(e),e.exactOptional=()=>dc(e),e.nullable=()=>rn(e),e.nullish=()=>nn(rn(e)),e.nonoptional=n=>hc(e,n),e.array=()=>en(e),e.or=n=>oc([e,n]),e.and=n=>sc(e,n),e.transform=n=>sn(e,cc(n)),e.default=n=>fc(e,n),e.prefault=n=>mc(e,n),e.catch=n=>yc(e,n),e.pipe=n=>sn(e,n),e.readonly=()=>wc(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),E.init(e,t),e._zod.processJSONSchema=(r,o,s)=>Hs(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(Os(...r)),e.includes=(...r)=>e.check(Rs(...r)),e.startsWith=(...r)=>e.check(xs(...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(Ns(r)),e.uppercase=r=>e.check(Zs(r)),e.trim=()=>e.check(Ls()),e.normalize=(...r)=>e.check(js(...r)),e.toLowerCase=()=>e.check(Us()),e.toUpperCase=()=>e.check(Ms()),e.slugify=()=>e.check(Fs())}),Na=l("ZodString",(e,t)=>{Te.init(e,t),Kt.init(e,t),e.email=n=>e.check(rs(Za,n)),e.url=n=>e.check(cs(Ra,n)),e.jwt=n=>e.check(Ss(Ka,n)),e.emoji=n=>e.check(us(xa,n)),e.guid=n=>e.check(Ut(Yt,n)),e.uuid=n=>e.check(os(fe,n)),e.uuidv4=n=>e.check(is(fe,n)),e.uuidv6=n=>e.check(ss(fe,n)),e.uuidv7=n=>e.check(as(fe,n)),e.nanoid=n=>e.check(ds(Da,n)),e.guid=n=>e.check(Ut(Yt,n)),e.cuid=n=>e.check(ls(ja,n)),e.cuid2=n=>e.check(ps(La,n)),e.ulid=n=>e.check(fs(Ua,n)),e.base64=n=>e.check(bs(Ba,n)),e.base64url=n=>e.check(ws(Wa,n)),e.xid=n=>e.check(gs(Ma,n)),e.ksuid=n=>e.check(ms(Fa,n)),e.ipv4=n=>e.check(hs(qa,n)),e.ipv6=n=>e.check(_s(Ja,n)),e.cidrv4=n=>e.check(ys(Ga,n)),e.cidrv6=n=>e.check(vs(Va,n)),e.e164=n=>e.check(ks(Ha,n)),e.datetime=n=>e.check(ga(n)),e.date=n=>e.check(ha(n)),e.time=n=>e.check(ya(n)),e.duration=n=>e.check(ba(n))});function I(e){return ns(Na,e)}const S=l("ZodStringFormat",(e,t)=>{k.init(e,t),Kt.init(e,t)}),Za=l("ZodEmail",(e,t)=>{pi.init(e,t),S.init(e,t)}),Yt=l("ZodGUID",(e,t)=>{di.init(e,t),S.init(e,t)}),fe=l("ZodUUID",(e,t)=>{li.init(e,t),S.init(e,t)}),Ra=l("ZodURL",(e,t)=>{fi.init(e,t),S.init(e,t)}),xa=l("ZodEmoji",(e,t)=>{gi.init(e,t),S.init(e,t)}),Da=l("ZodNanoID",(e,t)=>{mi.init(e,t),S.init(e,t)}),ja=l("ZodCUID",(e,t)=>{hi.init(e,t),S.init(e,t)}),La=l("ZodCUID2",(e,t)=>{_i.init(e,t),S.init(e,t)}),Ua=l("ZodULID",(e,t)=>{yi.init(e,t),S.init(e,t)}),Ma=l("ZodXID",(e,t)=>{vi.init(e,t),S.init(e,t)}),Fa=l("ZodKSUID",(e,t)=>{bi.init(e,t),S.init(e,t)}),qa=l("ZodIPv4",(e,t)=>{Ei.init(e,t),S.init(e,t)}),Ja=l("ZodIPv6",(e,t)=>{Ci.init(e,t),S.init(e,t)}),Ga=l("ZodCIDRv4",(e,t)=>{Ti.init(e,t),S.init(e,t)}),Va=l("ZodCIDRv6",(e,t)=>{$i.init(e,t),S.init(e,t)}),Ba=l("ZodBase64",(e,t)=>{Ii.init(e,t),S.init(e,t)}),Wa=l("ZodBase64URL",(e,t)=>{Pi.init(e,t),S.init(e,t)}),Ha=l("ZodE164",(e,t)=>{Oi.init(e,t),S.init(e,t)}),Ka=l("ZodJWT",(e,t)=>{Zi.init(e,t),S.init(e,t)}),Qt=l("ZodNumber",(e,t)=>{Tt.init(e,t),E.init(e,t),e._zod.processJSONSchema=(r,o,s)=>Ks(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 $s(Qt,e)}const Ya=l("ZodNumberFormat",(e,t)=>{Ri.init(e,t),Qt.init(e,t)});function Xt(e){return Is(Ya,e)}const Qa=l("ZodUnknown",(e,t)=>{xi.init(e,t),E.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Qs()});function Pe(){return As(Qa)}const Xa=l("ZodNever",(e,t)=>{Di.init(e,t),E.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Ys(e,n,r)});function ec(e){return Ps(Xa,e)}const tc=l("ZodArray",(e,t)=>{ji.init(e,t),E.init(e,t),e._zod.processJSONSchema=(n,r,o)=>na(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 qs(tc,e,t)}const nc=l("ZodObject",(e,t)=>{Ui.init(e,t),E.init(e,t),e._zod.processJSONSchema=(n,r,o)=>ra(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:ec()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=n=>ao(e,n),e.safeExtend=n=>co(e,n),e.merge=n=>uo(e,n),e.pick=n=>io(e,n),e.omit=n=>so(e,n),e.partial=(...n)=>lo(tn,e,n[0]),e.required=(...n)=>po(on,e,n[0])});function M(e,t){const n={type:"object",shape:e??{},..._(t)};return new nc(n)}const rc=l("ZodUnion",(e,t)=>{Mi.init(e,t),E.init(e,t),e._zod.processJSONSchema=(n,r,o)=>oa(e,n,r,o),e.options=t.options});function oc(e,t){return new rc({type:"union",options:e,..._(t)})}const ic=l("ZodIntersection",(e,t)=>{Fi.init(e,t),E.init(e,t),e._zod.processJSONSchema=(n,r,o)=>ia(e,n,r,o)});function sc(e,t){return new ic({type:"intersection",left:e,right:t})}const Oe=l("ZodEnum",(e,t)=>{qi.init(e,t),E.init(e,t),e._zod.processJSONSchema=(r,o,s)=>Xs(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 ac=l("ZodTransform",(e,t)=>{Ji.init(e,t),E.init(e,t),e._zod.processJSONSchema=(n,r,o)=>ta(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 cc(e){return new ac({type:"transform",transform:e})}const tn=l("ZodOptional",(e,t)=>{Zt.init(e,t),E.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Ht(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function nn(e){return new tn({type:"optional",innerType:e})}const uc=l("ZodExactOptional",(e,t)=>{Gi.init(e,t),E.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Ht(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function dc(e){return new uc({type:"optional",innerType:e})}const lc=l("ZodNullable",(e,t)=>{Vi.init(e,t),E.init(e,t),e._zod.processJSONSchema=(n,r,o)=>sa(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function rn(e){return new lc({type:"nullable",innerType:e})}const pc=l("ZodDefault",(e,t)=>{Bi.init(e,t),E.init(e,t),e._zod.processJSONSchema=(n,r,o)=>ca(e,n,r,o),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function fc(e,t){return new pc({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():gt(t)}})}const gc=l("ZodPrefault",(e,t)=>{Wi.init(e,t),E.init(e,t),e._zod.processJSONSchema=(n,r,o)=>ua(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function mc(e,t){return new gc({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():gt(t)}})}const on=l("ZodNonOptional",(e,t)=>{Hi.init(e,t),E.init(e,t),e._zod.processJSONSchema=(n,r,o)=>aa(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function hc(e,t){return new on({type:"nonoptional",innerType:e,..._(t)})}const _c=l("ZodCatch",(e,t)=>{Ki.init(e,t),E.init(e,t),e._zod.processJSONSchema=(n,r,o)=>da(e,n,r,o),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function yc(e,t){return new _c({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}const vc=l("ZodPipe",(e,t)=>{Yi.init(e,t),E.init(e,t),e._zod.processJSONSchema=(n,r,o)=>la(e,n,r,o),e.in=t.in,e.out=t.out});function sn(e,t){return new vc({type:"pipe",in:e,out:t})}const bc=l("ZodReadonly",(e,t)=>{Qi.init(e,t),E.init(e,t),e._zod.processJSONSchema=(n,r,o)=>pa(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function wc(e){return new bc({type:"readonly",innerType:e})}const kc=l("ZodCustom",(e,t)=>{Xi.init(e,t),E.init(e,t),e._zod.processJSONSchema=(n,r,o)=>ea(e,n)});function Sc(e,t={}){return Js(kc,e,t)}function zc(e){return Gs(e)}const Ec=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()}),Cc=M({layout:Ne(["grid","carousel"]).optional(),columns:te().int().positive().optional()}),Tc=M({product:Ec,index:te().int().nonnegative(),discountType:Ne(["strike-through","badge"]).optional()}),$c=M({sku:I(),label:I().optional(),cartCode:I()}),Ic=M({actions:en(M({label:I(),action:M({title:I(),type:I(),payload:Pe().optional()})}))}),Ac=M({message:I().optional()}),Pc={components:{ProductGrid:{schema:Cc,description:"Outer grid or carousel container for similar products."},ProductCard:{schema:Tc,description:"A single product card with image, title, price, and actions."},AddToCartButton:{schema:$c,description:"Add-to-cart CTA rendered inside or below a product card."},QuickActions:{schema:Ic,description:"A row of quick-action buttons below product info."},EmptyState:{schema:Ac,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,Kr("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;Yr(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){Qr(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;if(!this._contentEl)return;this._contentEl.innerHTML="",this._contentEl.style.display="";const r=document.createElement("div");r.className="gengage-simrel-loading";const o=document.createElement("div");o.className="gengage-simrel-spinner",r.appendChild(o),this._contentEl.appendChild(r);const s={middlewareUrl:this.config.middlewareUrl},i=crypto.randomUUID(),a=Date.now();this.track(ln(this.analyticsContext(),{endpoint:"similar_products",request_id:i,widget:"simrel"}));try{const c={account_id:this.config.accountId,session_id:this.config.session?.sessionId??"",correlation_id:this.config.session?.sessionId??"",sku:t};this.config.domain!==void 0&&(c.domain=this.config.domain);const u=await Zr(c,s,n);if(!this._contentEl)return;if(this._contentEl.innerHTML="",u.length>0)try{const d=u.map(g=>g.sku),f=await xr({account_id:this.config.accountId,session_id:this.config.session?.sessionId??"",correlation_id:this.config.session?.sessionId??"",skus:d},s,n);if(f.length>0&&this._contentEl){const g=this._buildGroupsSpec(f),m=this._renderUISpec(g);this._contentEl.appendChild(m),at("simrel"),this.track(Ze(this.analyticsContext(),{request_id:i,latency_ms:Date.now()-a,chunk_count:f.reduce((h,p)=>h+p.products.length,0),widget:"simrel"})),this.track(Re(this.analyticsContext(),{message_count:f.reduce((h,p)=>h+p.products.length,0),history_ref:i,redaction_level:"none",widget:"simrel"}));return}}catch{}if(this._contentEl){const d=this._buildProductsSpec(u),f=this._renderUISpec(d);this._contentEl.appendChild(f)}u.length>0&&at("simrel"),this.track(Ze(this.analyticsContext(),{request_id:i,latency_ms:Date.now()-a,chunk_count:u.length,widget:"simrel"})),this.track(Re(this.analyticsContext(),{message_count:u.length,history_ref:i,redaction_level:"none",widget:"simrel"}))}catch(c){if(c instanceof DOMException&&c.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:i,error_code:"FETCH_ERROR",error_message:c instanceof Error?c.message:String(c),widget:"simrel"})),this._contentEl){this._contentEl.innerHTML="";const u=document.createElement("div");u.className="gengage-simrel-error",u.style.cssText="text-align:center;padding:16px;color:#6b7280;font-size:13px;";const d=document.createElement("span");d.textContent=this.config.locale?.startsWith("tr")?"Benzer ürünler yüklenemedi.":"Could not load similar products.",u.appendChild(d);const f=document.createElement("button");f.textContent=this.config.locale?.startsWith("tr")?"Tekrar dene":"Try again",f.style.cssText="margin-left:8px;border:1px solid #d1d5db;background:#fff;border-radius:6px;padding:4px 12px;cursor:pointer;font-size:13px;color:#374151;",f.addEventListener("click",()=>{this._fetchAndRender(this.config.sku)}),u.appendChild(f),this._contentEl.appendChild(u)}}}_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.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 Oc(){return new an}F.GengageSimRel=an,F.createDefaultSimRelUISpecRegistry=ot,F.createSimRelWidget=Oc,F.defaultSimRelUnknownUISpecRenderer=ve,F.renderSimRelUISpec=it,F.simRelCatalog=Pc,Object.defineProperty(F,Symbol.toStringTag,{value:"Module"})})(this.Gengage=this.Gengage||{});
|
|
86
86
|
//# sourceMappingURL=simrel.iife.js.map
|