@gengage/assistant-fe 0.1.1 → 0.1.2

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.
Files changed (48) hide show
  1. package/dist/chat/components/ChatDrawer.d.ts +5 -1
  2. package/dist/chat/components/ChatDrawer.d.ts.map +1 -1
  3. package/dist/chat/components/ProactivePopup.d.ts +7 -0
  4. package/dist/chat/components/ProactivePopup.d.ts.map +1 -1
  5. package/dist/chat/index.d.ts +6 -0
  6. package/dist/chat/index.d.ts.map +1 -1
  7. package/dist/chat/session-persistence.d.ts +7 -3
  8. package/dist/chat/session-persistence.d.ts.map +1 -1
  9. package/dist/chat/types.d.ts +6 -0
  10. package/dist/chat/types.d.ts.map +1 -1
  11. package/dist/chat.cjs +1 -1
  12. package/dist/chat.iife.js +9 -9
  13. package/dist/chat.iife.js.map +1 -1
  14. package/dist/chat.js +2 -2
  15. package/dist/common/streaming.d.ts +6 -0
  16. package/dist/common/streaming.d.ts.map +1 -1
  17. package/dist/common/v1-protocol-adapter.d.ts.map +1 -1
  18. package/dist/common/widget-base.d.ts +1 -0
  19. package/dist/common/widget-base.d.ts.map +1 -1
  20. package/dist/common.cjs +1 -1
  21. package/dist/common.js +4 -4
  22. package/dist/{index-CmlYMq-h.js → index-CXbH-cw8.js} +741 -622
  23. package/dist/index-CXbH-cw8.js.map +1 -0
  24. package/dist/index-DHfTHscz.cjs +13 -0
  25. package/dist/index-DHfTHscz.cjs.map +1 -0
  26. package/dist/index.cjs +1 -1
  27. package/dist/index.js +2 -2
  28. package/dist/qna/components/renderUISpec.d.ts.map +1 -1
  29. package/dist/qna.cjs +1 -1
  30. package/dist/qna.cjs.map +1 -1
  31. package/dist/qna.iife.js +6 -6
  32. package/dist/qna.iife.js.map +1 -1
  33. package/dist/qna.js +8 -7
  34. package/dist/qna.js.map +1 -1
  35. package/dist/{schemas-SGuXpngy.js → schemas-CPkzbgia.js} +1034 -1020
  36. package/dist/schemas-CPkzbgia.js.map +1 -0
  37. package/dist/{schemas-DbbfBnZe.cjs → schemas-tCxs1sED.cjs} +16 -16
  38. package/dist/schemas-tCxs1sED.cjs.map +1 -0
  39. package/dist/simrel.cjs +1 -1
  40. package/dist/simrel.iife.js +6 -6
  41. package/dist/simrel.iife.js.map +1 -1
  42. package/dist/simrel.js +1 -1
  43. package/package.json +3 -2
  44. package/dist/index-CmlYMq-h.js.map +0 -1
  45. package/dist/index-DK4lqi85.cjs +0 -13
  46. package/dist/index-DK4lqi85.cjs.map +0 -1
  47. package/dist/schemas-DbbfBnZe.cjs.map +0 -1
  48. package/dist/schemas-SGuXpngy.js.map +0 -1
package/dist/chat.js CHANGED
@@ -1,5 +1,5 @@
1
- import "./schemas-SGuXpngy.js";
2
- import { G as c, e as s, c as n, a as o, d as p, b as d } from "./index-CmlYMq-h.js";
1
+ import "./schemas-CPkzbgia.js";
2
+ import { G as c, e as s, c as n, a as o, d as p, b as d } from "./index-CXbH-cw8.js";
3
3
  import "./quantity-stepper-B8kX8GbN.js";
4
4
  export {
5
5
  c as GengageChat,
@@ -9,6 +9,12 @@ export interface StreamOptions {
9
9
  onError?: (err: Error) => void;
10
10
  /** AbortController signal to cancel mid-stream. */
11
11
  signal?: AbortSignal;
12
+ /**
13
+ * Max milliseconds to wait between chunks before treating the stream as dead.
14
+ * Prevents the UI from hanging indefinitely when the backend stops sending
15
+ * data without closing the connection. Default: 60_000 (60 s).
16
+ */
17
+ idleTimeoutMs?: number;
12
18
  }
13
19
  /**
14
20
  * Consume an NDJSON streaming response and call onEvent for each line.
@@ -1 +1 @@
1
- {"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../../src/common/streaming.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;AA+C9D,MAAM,WAAW,aAAa;IAC5B,0CAA0C;IAC1C,OAAO,EAAE,kBAAkB,CAAC;IAC5B,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IAC/B,mDAAmD;IACnD,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AA0DD;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA8C7F;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,aAAa,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAC5D,eAAe,CAoBjB"}
1
+ {"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../../src/common/streaming.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;AA+C9D,MAAM,WAAW,aAAa;IAC5B,0CAA0C;IAC1C,OAAO,EAAE,kBAAkB,CAAC;IAC5B,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IAC/B,mDAAmD;IACnD,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AA0DD;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA8E7F;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,aAAa,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAC5D,eAAe,CAoBjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"v1-protocol-adapter.d.ts","sourceRoot":"","sources":["../../src/common/v1-protocol-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"v1-protocol-adapter.d.ts","sourceRoot":"","sources":["../../src/common/v1-protocol-adapter.ts"],"names":[],"mappings":"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"}
@@ -54,6 +54,7 @@ export interface ChatPublicAPI {
54
54
  }): void;
55
55
  openWithAction(action: import('./types.js').ActionPayload, options?: {
56
56
  sku?: string;
57
+ state?: 'full' | 'half';
57
58
  }): void;
58
59
  /** Send a user message programmatically (same as typing + submit). */
59
60
  sendMessage(text: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"widget-base.d.ts","sourceRoot":"","sources":["../../src/common/widget-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"widget-base.d.ts","sourceRoot":"","sources":["../../src/common/widget-base.ts"],"names":[],"mappings":"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"}
package/dist/common.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./schemas-DbbfBnZe.cjs"),f=require("./index-DK4lqi85.cjs"),F=require("./quantity-stepper-UbAp53Ow.cjs"),M=require("./qna.cjs"),D=require("./simrel.cjs"),g=o.object({enabled:o.boolean().default(!0)}),B=o.object({chat:o.string().optional(),qna:o.string().optional(),simrel:o.string().optional()}),L=o.object({}),v=o._enum(["none","x-api-key-header","bearer-header","body-api-key"]),O=o.object({mode:v.default("none"),key:o.string().optional(),headerName:o.string().optional(),bodyField:o.string().default("api_key")}),z=o.object({enabled:o.boolean().default(!0),endpoint:o.string().default("/analytics"),auth:O.default({mode:"none",bodyField:"api_key"}),fireAndForget:o.boolean().default(!0),useBeacon:o.boolean().default(!0),keepaliveFetch:o.boolean().default(!0),timeoutMs:o.number().int().positive().default(4e3),maxRetries:o.number().int().min(0).max(5).default(1)}),C="__gengageWidgetsInit",N=o.object({idempotencyKey:o.string().default(C),requireDomReady:o.boolean().default(!0)}),_=o._enum(["log-and-ignore","throw","delegate"]),W=o.object({unknownActionPolicy:_.default("log-and-ignore"),allowScriptCall:o.boolean().default(!1)}),p=o.object({version:o.literal("1"),accountId:o.string().min(1),middlewareUrl:o.string().url(),locale:o.string().optional(),widgets:o.object({chat:g.default({enabled:!0}),qna:g.default({enabled:!0}),simrel:g.default({enabled:!0})}),mounts:B.default({}),transport:L.default({}),analytics:z.default({enabled:!0,endpoint:"/analytics",auth:{mode:"none",bodyField:"api_key"},fireAndForget:!0,useBeacon:!0,keepaliveFetch:!0,timeoutMs:4e3,maxRetries:1}),gtm:N.default({idempotencyKey:"__gengageWidgetsInit",requireDomReady:!0}),actionHandling:W.default({unknownActionPolicy:"log-and-ignore",allowScriptCall:!1})});function b(e){return p.parse(e)}function T(e){return p.safeParse(e)}function H(e){return b({version:"1",accountId:e.accountId,middlewareUrl:e.middlewareUrl,locale:e.locale,widgets:{chat:{enabled:!0},qna:{enabled:!0},simrel:{enabled:!0}}})}const S=`${C}_overlay_`,$="#gengage-qna",G="#gengage-simrel";function m(){const e=window;return e.__gengageOverlayRegistry||(e.__gengageOverlayRegistry={instances:{},pending:{}}),e.__gengageOverlayRegistry}function K(e){const t={pageType:e.pageContext?.pageType??(e.sku!==void 0?"pdp":"other")},n=e.pageContext;return n?.sku!==void 0&&(t.sku=n.sku),n?.price!==void 0&&(t.price=n.price),n?.categoryTree!==void 0&&(t.categoryTree=n.categoryTree),n?.url!==void 0&&(t.url=n.url),n?.extra!==void 0&&(t.extra=n.extra),e.sku!==void 0&&(t.sku=e.sku),t}function j(e,t){const n={...e,...t,pageType:t.pageType??e.pageType};return t.sku===void 0&&e.sku!==void 0&&(n.sku=e.sku),n}function w(e){return e instanceof HTMLElement||document.querySelector(e)?e:null}function A(e){return e.idempotencyKey??`${S}${e.accountId}`}class Q{constructor(t,n){this.options=t,this.onDestroy=n,this._chat=null,this._qna=null,this._simrel=null,this._analyticsClient=null,this._destroyed=!1,this._queue=Promise.resolve(),this._warnedQnaMountMissing=!1,this._warnedSimRelMountMissing=!1,this.idempotencyKey=A(t),this.session=o.resolveSession(t.session),this._pageContext=K(t)}get chat(){return this._chat}get qna(){return this._qna}get simrel(){return this._simrel}get analyticsClient(){return this._analyticsClient}async init(){window.gengage||(window.gengage={}),window.gengage.sessionId=this.session.sessionId,window.gengage.pageContext=this._pageContext,await this._initChat(),await this._syncPdpWidgets(),this.options.wireQnaToChat!==!1&&o.wireQNAToChat(),window.gengage.overlay=this}openChat(t){this._chat?.open(t)}closeChat(){this._chat?.close()}async updateContext(t){this._destroyed||await this._enqueue(async()=>{this._pageContext=j(this._pageContext,t),window.gengage||(window.gengage={}),window.gengage.pageContext=this._pageContext,this._chat?.update(t),this._qna?.update(t),this._simrel?.update(t),await this._syncPdpWidgets()})}async updateSku(t,n="pdp"){await this.updateContext({sku:t,pageType:n})}destroy(){this._destroyed||(this._destroyed=!0,this._chat?.destroy(),this._qna?.destroy(),this._simrel?.destroy(),this._chat=null,this._qna=null,this._simrel=null,window.gengage?.overlay===this&&delete window.gengage.overlay,this.onDestroy())}async _initChat(){if(this.options.chat?.enabled===!1)return;const t=this.options.middlewareUrl,n={accountId:this.options.accountId,middlewareUrl:t,session:this.session,pageContext:this._pageContext,variant:this.options.chat?.variant??"floating"};this.options.theme!==void 0&&(n.theme=this.options.theme),this.options.locale!==void 0&&(n.locale=this.options.locale),this.options.pricing!==void 0&&(n.pricing=this.options.pricing),this.options.chat?.mountTarget!==void 0&&(n.mountTarget=this.options.chat.mountTarget),this.options.chat?.launcherSvg!==void 0&&(n.launcherSvg=this.options.chat.launcherSvg),this.options.chat?.hideMobileLauncher!==void 0&&(n.hideMobileLauncher=this.options.chat.hideMobileLauncher),this.options.chat?.mobileBreakpoint!==void 0&&(n.mobileBreakpoint=this.options.chat.mobileBreakpoint),this.options.chat?.mobileInitialState!==void 0&&(n.mobileInitialState=this.options.chat.mobileInitialState),this.options.chat?.i18n!==void 0&&(n.i18n=this.options.chat.i18n),this.options.chat?.actionHandling!==void 0&&(n.actionHandling=this.options.chat.actionHandling),this.options.onScriptCall!==void 0&&(n.onScriptCall=this.options.onScriptCall),this._chat=new f.GengageChat,await this._chat.init(n)}async _syncPdpWidgets(){if(this._destroyed)return;const t=this._pageContext.sku;if(!(this._pageContext.pageType==="pdp"&&t!==void 0&&t.length>0)){this._destroyPdpWidgets();return}const i=this.options.middlewareUrl;if(this.options.qna?.enabled!==!1){const a=this.options.qna?.mountTarget??$,s=w(a);if(s)if(this._warnedQnaMountMissing=!1,this._qna)this._qna.show(),this._qna.update({pageType:"pdp",sku:t});else{const l=new M.GengageQNA,r={accountId:this.options.accountId,middlewareUrl:i,session:this.session,pageContext:{pageType:"pdp",sku:t},mountTarget:s};this.options.theme!==void 0&&(r.theme=this.options.theme),this.options.qna?.ctaText!==void 0&&(r.ctaText=this.options.qna.ctaText),this.options.qna?.inputPlaceholder!==void 0&&(r.inputPlaceholder=this.options.qna.inputPlaceholder),await l.init(r),this._qna=l}else this._qna?.destroy(),this._qna=null,this._warnedQnaMountMissing||(console.warn(`[gengage] QNA mount target not found: ${a}`),this._warnedQnaMountMissing=!0)}else this._qna?.destroy(),this._qna=null;if(this.options.simrel?.enabled!==!1){const a=this.options.simrel?.mountTarget??G,s=w(a);if(s)if(this._warnedSimRelMountMissing=!1,this._simrel)this._simrel.show(),this._simrel.update({pageType:"pdp",sku:t});else{const l=new D.GengageSimRel,r={accountId:this.options.accountId,middlewareUrl:i,session:this.session,sku:t,mountTarget:s};this.options.theme!==void 0&&(r.theme=this.options.theme),this.options.pricing!==void 0&&(r.pricing=this.options.pricing),this.options.simrel?.discountType!==void 0&&(r.discountType=this.options.simrel.discountType),this.options.onAddToCart!==void 0&&(r.onAddToCart=this.options.onAddToCart),this.options.onProductNavigate!==void 0?r.onProductNavigate=this.options.onProductNavigate:r.onProductNavigate=(d,u,h)=>{this._chat?.saveSession(h??this.session.sessionId,u),window.location.href=d},await l.init(r),this._simrel=l}else this._simrel?.destroy(),this._simrel=null,this._warnedSimRelMountMissing||(console.warn(`[gengage] SimRel mount target not found: ${a}`),this._warnedSimRelMountMissing=!0)}else this._simrel?.destroy(),this._simrel=null}_destroyPdpWidgets(){this._qna?.destroy(),this._simrel?.destroy(),this._qna=null,this._simrel=null}_enqueue(t){const n=this._queue.then(t);return this._queue=n.catch(i=>{}),n}}async function I(e){const t=A(e),n=m(),i=n.instances[t];if(i)return i;const a=n.pending[t];if(a)return a;const s=new Q(e,()=>{const r=m();delete r.instances[t],delete r.pending[t]}),l=s.init().then(()=>(n.instances[t]=s,delete n.pending[t],s)).catch(r=>{throw delete n.pending[t],r});return n.pending[t]=l,l}function k(e){return m().instances[e]??null}function V(e){k(e)?.destroy()}function Y(e){return`${S}${e}`}const X={enabled:!0,endpoint:"/analytics",fireAndForget:!0,useBeacon:!0,keepaliveFetch:!0,timeoutMs:4e3,maxRetries:1,batchSize:10,flushIntervalMs:250},Z={mode:"none",key:"",headerName:"X-API-Key",bodyField:"api_key"};class E{constructor(t){this.queue=[],this.flushTimer=null,this.config={...X,...t,auth:{...Z,...t.auth??{}}},this.onPageHideBound=()=>{this.queue.length!==0&&this.flushAll({preferBeacon:!0})},typeof window<"u"&&window.addEventListener("pagehide",this.onPageHideBound)}track(t){if(!this.config.enabled)return;const n=ee(t);if(this.queue.push(n),this.queue.length>=this.config.batchSize){this.scheduleImmediateFlush();return}this.scheduleFlush()}async flush(t={}){if(!this.config.enabled||this.queue.length===0)return;const n=this.queue.splice(0,this.config.batchSize),i=this.buildTransportBody(n),a=te(this.config.endpoint,this.config.middlewareUrl),s=t.preferBeacon??this.config.useBeacon;await this.sendWithRetry(a,i,s)}async flushAll(t={}){for(;this.queue.length>0;)await this.flush(t)}destroy(){this.flushTimer&&(clearTimeout(this.flushTimer),this.flushTimer=null),this.queue.length>0&&this.flushAll({preferBeacon:!0}),typeof window<"u"&&window.removeEventListener("pagehide",this.onPageHideBound)}scheduleFlush(){this.flushTimer||(this.flushTimer=setTimeout(()=>{this.flushTimer=null,this.flush()},this.config.flushIntervalMs))}scheduleImmediateFlush(){this.flushTimer&&(clearTimeout(this.flushTimer),this.flushTimer=null),this.flush()}buildTransportBody(t){const n={events:t};return this.config.auth.mode==="body-api-key"&&this.config.auth.key&&(n[this.config.auth.bodyField]=this.config.auth.key),n}async sendWithRetry(t,n,i){let a=0;for(;a<=this.config.maxRetries;){a+=1;try{if(await this.send(t,n,i))return}catch{}a<=this.config.maxRetries&&await new Promise(s=>setTimeout(s,Math.min(1e3,100*Math.pow(2,a-1))))}}async send(t,n,i){const a=JSON.stringify(n);if(i&&this.config.useBeacon&&this.config.auth.mode!=="x-api-key-header"&&this.config.auth.mode!=="bearer-header"&&ne()){const u=new Blob([a],{type:"application/json"});if(navigator.sendBeacon(t,u))return!0}if(typeof fetch>"u")return!1;const l={"Content-Type":"application/json"};this.config.auth.mode==="x-api-key-header"&&this.config.auth.key&&(l[this.config.auth.headerName]=this.config.auth.key),this.config.auth.mode==="bearer-header"&&this.config.auth.key&&(l.Authorization=`Bearer ${this.config.auth.key}`);const r=typeof AbortController<"u"?new AbortController:null,d=r?setTimeout(()=>r.abort(),this.config.timeoutMs):null;try{const u={method:"POST",headers:l,body:a,keepalive:this.config.keepaliveFetch&&this.config.fireAndForget};return r&&(u.signal=r.signal),(await fetch(t,u)).ok}finally{d&&clearTimeout(d)}}}function J(e){return new E(e)}function ee(e){const t={event_name:e.event_name,event_version:e.event_version??"1",timestamp_ms:e.timestamp_ms??Date.now(),account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,payload:e.payload};return e.view_id!==void 0&&(t.view_id=e.view_id),e.user_id!==void 0&&(t.user_id=e.user_id),e.widget!==void 0&&(t.widget=e.widget),e.page_type!==void 0&&(t.page_type=e.page_type),e.sku!==void 0&&(t.sku=e.sku),t}function te(e,t){if(/^https?:\/\//i.test(e))return e;const n=o.normalizeMiddlewareUrl(t),i=e.startsWith("/")?e:`/${e}`;return`${n}${i}`}function ne(){return typeof navigator<"u"&&typeof navigator.sendBeacon=="function"}const x={primaryColor:"#000000",primaryForeground:"#ffffff",backgroundColor:"#ffffff",foregroundColor:"#222222",borderRadius:"8px",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif',fontSize:"14px",zIndex:"1000","--glov-chatbot-width":"420px","--glov-left-spacing":"260px","--chatbot-padding":"16px","--root-wrapper-background-color":"#F2F2F2","--root-wrapper-border-color":"#E5E5E5","--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 oe(e){return{...x,...e}}const y="tr";function ie(e){return{ACCOUNT_ID:e.accountId,MIDDLEWARE_URL:e.middlewareUrl,LOCALE:e.locale??y}}function re(e,t={}){const n={accountId:e.accountId,middlewareUrl:e.middlewareUrl,session:{sessionId:e.sessionId},variant:"floating",locale:e.locale??y,...t};return e.theme!==void 0&&(n.theme=e.theme),n}function ae(e,t={}){const n={accountId:e.accountId,middlewareUrl:e.middlewareUrl,session:{sessionId:e.sessionId},pageContext:{pageType:"pdp",sku:e.sku},mountTarget:e.mountTarget,...t};return e.theme!==void 0&&(n.theme=e.theme),n}function se(e,t={}){const n={accountId:e.accountId,middlewareUrl:e.middlewareUrl,session:{sessionId:e.sessionId},sku:e.sku,mountTarget:e.mountTarget,...t};return e.theme!==void 0&&(n.theme=e.theme),n}function le(e,t={}){return{enabled:!0,middlewareUrl:e,endpoint:"/analytics",fireAndForget:!0,useBeacon:!0,...t}}function ce(e){try{return document.querySelector(e),!0}catch{return!1}}function P(e,t){const n=[],i=e.mounts,a=[["qna",i.qna],["simrel",i.simrel],["chat",i.chat]];for(const[l,r]of a)if(r!==void 0){if(!ce(r)){n.push({code:"INVALID_SELECTOR",message:`[gengage preflight] ${l} mount selector is invalid CSS: "${r}"`,severity:"error"});continue}document.querySelector(r)||n.push({code:"MOUNT_NOT_FOUND",message:`[gengage preflight] ${l} mount target not found: "${r}" — widget will skip or wait for DOM`,severity:"warn"})}const s=e.gtm.idempotencyKey;if(window[s]!==void 0&&n.push({code:"DUPLICATE_IDEMPOTENCY",message:`[gengage preflight] window["${s}"] already exists — widgets may have already initialized`,severity:"warn"}),!t?.skipCspCheck){let l=!1;const r=d=>{d.blockedURI&&e.middlewareUrl.startsWith(d.blockedURI)&&(l=!0)};document.addEventListener("securitypolicyviolation",r);try{fetch(e.middlewareUrl,{method:"HEAD",mode:"no-cors"}).catch(()=>{})}catch{l=!0}document.removeEventListener("securitypolicyviolation",r),l&&n.push({code:"CSP_BLOCKED",message:`[gengage preflight] middleware URL may be blocked by Content-Security-Policy: "${e.middlewareUrl}". Add it to connect-src.`,severity:"warn"})}for(const l of n)l.severity==="error"?console.error(l.message):console.warn(l.message);return{ok:n.every(l=>l.severity!=="error"),warnings:n}}function de(e){const t=T(e);if(!t.success){const n=t.error.issues.map(i=>`${i.path.join(".")}: ${i.message}`).join("; ");throw new Error(`[gengage] Invalid runtime config: ${n}`)}return t.data}function ue(e,t,n){const i={accountId:e.accountId,middlewareUrl:e.middlewareUrl,idempotencyKey:e.gtm.idempotencyKey};return e.locale!==void 0&&(i.locale=e.locale),n!==void 0&&(i.pageContext=n,n.sku!==void 0&&(i.sku=n.sku)),i.chat={enabled:e.widgets.chat.enabled},e.mounts.chat!==void 0&&(i.chat.mountTarget=e.mounts.chat),i.qna={enabled:e.widgets.qna.enabled},e.mounts.qna!==void 0&&(i.qna.mountTarget=e.mounts.qna),i.simrel={enabled:e.widgets.simrel.enabled},e.mounts.simrel!==void 0&&(i.simrel.mountTarget=e.mounts.simrel),t?.onAddToCart!==void 0&&(i.onAddToCart=t.onAddToCart),t?.onProductNavigate!==void 0&&(i.onProductNavigate=t.onProductNavigate),t?.onScriptCall!==void 0&&(i.onScriptCall=t.onScriptCall),i}async function fe(e){const t=de(e.runtimeConfig);if(e.preflight!==!1){const s=P(t);if(!s.ok){const l=s.warnings.filter(r=>r.severity==="error");throw new Error(`[gengage] Preflight failed: ${l.map(r=>r.message).join("; ")}`)}}const n=e.contextResolver?.(),i=ue(t,e.hostActions,n),a=await I(i);if(e.contextResolver!==void 0){const s=e.contextResolver,l=()=>{const d=s();a.updateContext(d)};window.addEventListener("gengage:context:update",l);const r=a.destroy.bind(a);a.destroy=()=>{window.removeEventListener("gengage:context:update",l),r()}}return a}const he=[{pageType:"home",urlPatterns:["^/$","^/index\\.html?$","^/anasayfa$"]},{pageType:"search",urlPatterns:["/arama","/search","/ara\\?"],queryParam:"q"},{pageType:"cart",urlPatterns:["/sepet","/cart","/basket","/sepetim"]},{pageType:"plp",urlPatterns:["/kategori/","/category/","/c/","/koleksiyon/","/collection/"]},{pageType:"pdp",urlPatterns:["/urun/","/product/","/p/","/-p-","/-pm-"]}];function U(e,t){const n=t??(typeof window<"u"?new URL(window.location.href):null);if(!n)return"other";const i=e??he,a=n.pathname;for(const s of i)if(!(s.urlPatterns&&!s.urlPatterns.some(r=>{try{return new RegExp(r,"i").test(a)}catch{return!1}}))&&!(s.queryParam&&!n.searchParams.has(s.queryParam))&&!(s.selector&&typeof document<"u"&&!document.querySelector(s.selector)))return s.pageType;return"other"}function R(e){const t=e??(typeof window<"u"?new URL(window.location.href):null);if(!t)return;const n=t.pathname,i=n.match(/\/(?:p|urun|product)\/([^/?#]+)/i);if(i?.[1])return i[1];const a=n.match(/-p-(\d+)/i);if(a?.[1])return a[1]}function ge(e){const t=U(e),n={pageType:t};if(t==="pdp"){const i=R();i&&(n.sku=i)}return typeof window<"u"&&(n.url=window.location.href),n}const c="https://chatbe-dev.gengage.ai",q={koctascomtr:{accountId:"koctascomtr",locale:"tr",middlewareUrl:c,theme:{primaryColor:"#ec6e00",primaryForeground:"#ffffff",backgroundColor:"#ffffff",foregroundColor:"#222222",borderRadius:"8px",fontFamily:'"Source Sans Pro", "Helvetica Neue", Arial, sans-serif',fontSize:"14px"},chatI18n:{inputPlaceholder:"Ürün ara, soru sor",poweredBy:"Koçtaş AI Asistan"}},n11com:{accountId:"n11com",locale:"tr",middlewareUrl:c,theme:{primaryColor:"#ff44ef",primaryForeground:"#ffffff",backgroundColor:"#ffffff",foregroundColor:"#222222",borderRadius:"8px",fontFamily:"Arial, Helvetica, sans-serif",fontSize:"14px"},chatI18n:{inputPlaceholder:"Ne aramıştınız?",poweredBy:"n11 AI Asistan"}},hepsiburadacom:{accountId:"hepsiburadacom",locale:"tr",middlewareUrl:c,theme:{primaryColor:"#ff6000",primaryForeground:"#ffffff",backgroundColor:"#ffffff",foregroundColor:"#333333",borderRadius:"8px",fontFamily:'"Open Sans", Arial, sans-serif',fontSize:"14px"},chatI18n:{inputPlaceholder:"Ürün ara veya soru sor",poweredBy:"Hepsiburada AI Asistan"}},arcelikcomtr:{accountId:"arcelikcomtr",locale:"tr",middlewareUrl:c,theme:{primaryColor:"#e4002b",primaryForeground:"#ffffff",backgroundColor:"#ffffff",foregroundColor:"#222222",borderRadius:"8px",fontFamily:'"Arcelik Sans", "Helvetica Neue", Arial, sans-serif',fontSize:"14px"},chatI18n:{inputPlaceholder:"Size nasıl yardımcı olabilirim?",poweredBy:"Arçelik AI Asistan"}},yatasbeddingcomtr:{accountId:"yatasbeddingcomtr",locale:"tr",middlewareUrl:c,theme:{primaryColor:"#c8102e",primaryForeground:"#ffffff",backgroundColor:"#ffffff",foregroundColor:"#333333",borderRadius:"8px",fontFamily:'"Nunito Sans", Arial, sans-serif',fontSize:"14px"},chatI18n:{inputPlaceholder:"Yatak, baza veya ürün arayın",poweredBy:"Yataş AI Asistan"}},trendyolcom:{accountId:"trendyolcom",locale:"tr",middlewareUrl:c,theme:{primaryColor:"#f27a1a",primaryForeground:"#ffffff",backgroundColor:"#ffffff",foregroundColor:"#333333",borderRadius:"6px",fontFamily:'"Source Sans Pro", Arial, sans-serif',fontSize:"14px"},chatI18n:{inputPlaceholder:"Ne aramıştınız?",poweredBy:"Trendyol AI Asistan"}},boynercomtr:{accountId:"boynercomtr",locale:"tr",middlewareUrl:c,theme:{primaryColor:"#000000",primaryForeground:"#ffffff",backgroundColor:"#ffffff",foregroundColor:"#333333",borderRadius:"4px",fontFamily:'"Montserrat", Arial, sans-serif',fontSize:"14px"},chatI18n:{inputPlaceholder:"Moda, kozmetik veya ev ürünleri arayın",poweredBy:"Boyner AI Asistan"}},evideacom:{accountId:"evideacom",locale:"tr",middlewareUrl:c,theme:{primaryColor:"#e84393",primaryForeground:"#ffffff",backgroundColor:"#ffffff",foregroundColor:"#2d3436",borderRadius:"8px",fontFamily:'"Poppins", Arial, sans-serif',fontSize:"14px"},chatI18n:{inputPlaceholder:"Ev dekorasyon ürünleri arayın",poweredBy:"Evidea AI Asistan"}},aygazcomtr:{accountId:"aygazcomtr",locale:"tr",middlewareUrl:c,theme:{primaryColor:"#e30613",primaryForeground:"#ffffff",backgroundColor:"#ffffff",foregroundColor:"#333333",borderRadius:"8px",fontFamily:"Arial, Helvetica, sans-serif",fontSize:"14px"},chatI18n:{inputPlaceholder:"Aygaz ürünleri hakkında sorun",poweredBy:"Aygaz AI Asistan"}},otokoccomtr:{accountId:"otokoccomtr",locale:"tr",middlewareUrl:c,theme:{primaryColor:"#003087",primaryForeground:"#ffffff",backgroundColor:"#ffffff",foregroundColor:"#333333",borderRadius:"8px",fontFamily:'"Roboto", Arial, sans-serif',fontSize:"14px"},chatI18n:{inputPlaceholder:"Araç veya hizmet arayın",poweredBy:"Otokoç AI Asistan"}},divanpastanelericomtr:{accountId:"divanpastanelericomtr",locale:"tr",middlewareUrl:c,theme:{primaryColor:"#8b1a2d",primaryForeground:"#ffffff",backgroundColor:"#faf8f5",foregroundColor:"#3d2c2e",borderRadius:"8px",fontFamily:'"Georgia", serif',fontSize:"14px"},chatI18n:{inputPlaceholder:"Ürün veya mağaza arayın",poweredBy:"Divan AI Asistan"}},screwfixcom:{accountId:"screwfixcom",locale:"en",middlewareUrl:c,theme:{primaryColor:"#f6a623",primaryForeground:"#1a1a1a",backgroundColor:"#ffffff",foregroundColor:"#333333",borderRadius:"4px",fontFamily:'"Arial", Helvetica, sans-serif',fontSize:"14px"},pricing:{currencySymbol:"£",currencyPosition:"prefix",thousandsSeparator:",",decimalSeparator:"."},chatI18n:{inputPlaceholder:"Search products or ask a question",poweredBy:"Screwfix AI Assistant"}}};function me(e){return q[e]}function pe(){return Object.keys(q)}exports.BaseWidget=o.BaseWidget;exports.DEFAULT_WIDGET_THEME_TOKENS=o.DEFAULT_WIDGET_THEME_TOKENS;exports.adaptV1Event=o.adaptV1Event;exports.basketAddEvent=o.basketAddEvent;exports.bootstrapSession=o.bootstrapSession;exports.buildChatEndpointUrl=o.buildChatEndpointUrl;exports.chatHistorySnapshotEvent=o.chatHistorySnapshotEvent;exports.checkoutCompleteEvent=o.checkoutCompleteEvent;exports.checkoutStartEvent=o.checkoutStartEvent;exports.consumeStream=o.consumeStream;exports.defaultUnknownUISpecRenderer=o.defaultUnknownUISpecRenderer;exports.dismissGlobalErrorToast=o.dismissGlobalErrorToast;exports.dispatch=o.dispatch;exports.getGlobalErrorMessage=o.getGlobalErrorMessage;exports.getWindowPageContext=o.getWindowPageContext;exports.listen=o.listen;exports.llmUsageEvent=o.llmUsageEvent;exports.mergeUISpecRegistry=o.mergeUISpecRegistry;exports.meteringIncrementEvent=o.meteringIncrementEvent;exports.meteringSummaryEvent=o.meteringSummaryEvent;exports.normalizeMiddlewareUrl=o.normalizeMiddlewareUrl;exports.normalizeProductGroupingsResponse=o.normalizeProductGroupingsResponse;exports.normalizeSimilarProductsResponse=o.normalizeSimilarProductsResponse;exports.productToNormalized=o.productToNormalized;exports.registerGlobalErrorToastListener=o.registerGlobalErrorToastListener;exports.renderUISpecWithRegistry=o.renderUISpecWithRegistry;exports.resolveSession=o.resolveSession;exports.showGlobalErrorToast=o.showGlobalErrorToast;exports.streamChunkEvent=o.streamChunkEvent;exports.streamDoneEvent=o.streamDoneEvent;exports.streamErrorEvent=o.streamErrorEvent;exports.streamPost=o.streamPost;exports.streamStartEvent=o.streamStartEvent;exports.streamUiSpecEvent=o.streamUiSpecEvent;exports.updatePageContext=o.updatePageContext;exports.widgetHistorySnapshotEvent=o.widgetHistorySnapshotEvent;exports.wireGADataLayer=o.wireGADataLayer;exports.wireQNAToChat=o.wireQNAToChat;exports.wireSimilarToChat=o.wireSimilarToChat;exports.withDefaultWidgetTheme=o.withDefaultWidgetTheme;exports.VoiceInput=f.VoiceInput;exports.isVoiceInputSupported=f.isVoiceInputSupported;exports.routeStreamAction=f.routeStreamAction;exports.sanitizeHtml=F.sanitizeHtml;exports.AccountRuntimeConfigSchema=p;exports.AnalyticsAuthModeSchema=v;exports.AnalyticsClient=E;exports.BASE_WIDGET_THEME=x;exports.DEFAULT_CUSTOMIZATION_LOCALE=y;exports.UnknownActionPolicySchema=_;exports.autoDetectPageContext=ge;exports.buildOverlayIdempotencyKey=Y;exports.createAccountIdentity=ie;exports.createAnalyticsClient=J;exports.createDefaultAccountRuntimeConfig=H;exports.createDefaultAnalyticsConfig=le;exports.createFloatingChatConfig=re;exports.createPdpQnaConfig=ae;exports.createPdpSimRelConfig=se;exports.destroyOverlayWidgets=V;exports.detectPageType=U;exports.extractSkuFromUrl=R;exports.getMerchantConfig=me;exports.getMerchantIds=pe;exports.getOverlayWidgets=k;exports.initGengageClient=fe;exports.initOverlayWidgets=I;exports.parseAccountRuntimeConfig=b;exports.preflightDiagnostics=P;exports.safeParseAccountRuntimeConfig=T;exports.withBaseTheme=oe;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./schemas-tCxs1sED.cjs"),f=require("./index-DHfTHscz.cjs"),F=require("./quantity-stepper-UbAp53Ow.cjs"),M=require("./qna.cjs"),D=require("./simrel.cjs"),g=o.object({enabled:o.boolean().default(!0)}),B=o.object({chat:o.string().optional(),qna:o.string().optional(),simrel:o.string().optional()}),L=o.object({}),v=o._enum(["none","x-api-key-header","bearer-header","body-api-key"]),O=o.object({mode:v.default("none"),key:o.string().optional(),headerName:o.string().optional(),bodyField:o.string().default("api_key")}),z=o.object({enabled:o.boolean().default(!0),endpoint:o.string().default("/analytics"),auth:O.default({mode:"none",bodyField:"api_key"}),fireAndForget:o.boolean().default(!0),useBeacon:o.boolean().default(!0),keepaliveFetch:o.boolean().default(!0),timeoutMs:o.number().int().positive().default(4e3),maxRetries:o.number().int().min(0).max(5).default(1)}),C="__gengageWidgetsInit",N=o.object({idempotencyKey:o.string().default(C),requireDomReady:o.boolean().default(!0)}),_=o._enum(["log-and-ignore","throw","delegate"]),W=o.object({unknownActionPolicy:_.default("log-and-ignore"),allowScriptCall:o.boolean().default(!1)}),p=o.object({version:o.literal("1"),accountId:o.string().min(1),middlewareUrl:o.string().url(),locale:o.string().optional(),widgets:o.object({chat:g.default({enabled:!0}),qna:g.default({enabled:!0}),simrel:g.default({enabled:!0})}),mounts:B.default({}),transport:L.default({}),analytics:z.default({enabled:!0,endpoint:"/analytics",auth:{mode:"none",bodyField:"api_key"},fireAndForget:!0,useBeacon:!0,keepaliveFetch:!0,timeoutMs:4e3,maxRetries:1}),gtm:N.default({idempotencyKey:"__gengageWidgetsInit",requireDomReady:!0}),actionHandling:W.default({unknownActionPolicy:"log-and-ignore",allowScriptCall:!1})});function b(e){return p.parse(e)}function T(e){return p.safeParse(e)}function H(e){return b({version:"1",accountId:e.accountId,middlewareUrl:e.middlewareUrl,locale:e.locale,widgets:{chat:{enabled:!0},qna:{enabled:!0},simrel:{enabled:!0}}})}const S=`${C}_overlay_`,$="#gengage-qna",G="#gengage-simrel";function m(){const e=window;return e.__gengageOverlayRegistry||(e.__gengageOverlayRegistry={instances:{},pending:{}}),e.__gengageOverlayRegistry}function K(e){const t={pageType:e.pageContext?.pageType??(e.sku!==void 0?"pdp":"other")},n=e.pageContext;return n?.sku!==void 0&&(t.sku=n.sku),n?.price!==void 0&&(t.price=n.price),n?.categoryTree!==void 0&&(t.categoryTree=n.categoryTree),n?.url!==void 0&&(t.url=n.url),n?.extra!==void 0&&(t.extra=n.extra),e.sku!==void 0&&(t.sku=e.sku),t}function j(e,t){const n={...e,...t,pageType:t.pageType??e.pageType};return t.sku===void 0&&e.sku!==void 0&&(n.sku=e.sku),n}function w(e){return e instanceof HTMLElement||document.querySelector(e)?e:null}function A(e){return e.idempotencyKey??`${S}${e.accountId}`}class Q{constructor(t,n){this.options=t,this.onDestroy=n,this._chat=null,this._qna=null,this._simrel=null,this._analyticsClient=null,this._destroyed=!1,this._queue=Promise.resolve(),this._warnedQnaMountMissing=!1,this._warnedSimRelMountMissing=!1,this.idempotencyKey=A(t),this.session=o.resolveSession(t.session),this._pageContext=K(t)}get chat(){return this._chat}get qna(){return this._qna}get simrel(){return this._simrel}get analyticsClient(){return this._analyticsClient}async init(){window.gengage||(window.gengage={}),window.gengage.sessionId=this.session.sessionId,window.gengage.pageContext=this._pageContext,await this._initChat(),await this._syncPdpWidgets(),this.options.wireQnaToChat!==!1&&o.wireQNAToChat(),window.gengage.overlay=this}openChat(t){this._chat?.open(t)}closeChat(){this._chat?.close()}async updateContext(t){this._destroyed||await this._enqueue(async()=>{this._pageContext=j(this._pageContext,t),window.gengage||(window.gengage={}),window.gengage.pageContext=this._pageContext,this._chat?.update(t),this._qna?.update(t),this._simrel?.update(t),await this._syncPdpWidgets()})}async updateSku(t,n="pdp"){await this.updateContext({sku:t,pageType:n})}destroy(){this._destroyed||(this._destroyed=!0,this._chat?.destroy(),this._qna?.destroy(),this._simrel?.destroy(),this._chat=null,this._qna=null,this._simrel=null,window.gengage?.overlay===this&&delete window.gengage.overlay,this.onDestroy())}async _initChat(){if(this.options.chat?.enabled===!1)return;const t=this.options.middlewareUrl,n={accountId:this.options.accountId,middlewareUrl:t,session:this.session,pageContext:this._pageContext,variant:this.options.chat?.variant??"floating"};this.options.theme!==void 0&&(n.theme=this.options.theme),this.options.locale!==void 0&&(n.locale=this.options.locale),this.options.pricing!==void 0&&(n.pricing=this.options.pricing),this.options.chat?.mountTarget!==void 0&&(n.mountTarget=this.options.chat.mountTarget),this.options.chat?.launcherSvg!==void 0&&(n.launcherSvg=this.options.chat.launcherSvg),this.options.chat?.hideMobileLauncher!==void 0&&(n.hideMobileLauncher=this.options.chat.hideMobileLauncher),this.options.chat?.mobileBreakpoint!==void 0&&(n.mobileBreakpoint=this.options.chat.mobileBreakpoint),this.options.chat?.mobileInitialState!==void 0&&(n.mobileInitialState=this.options.chat.mobileInitialState),this.options.chat?.i18n!==void 0&&(n.i18n=this.options.chat.i18n),this.options.chat?.actionHandling!==void 0&&(n.actionHandling=this.options.chat.actionHandling),this.options.onScriptCall!==void 0&&(n.onScriptCall=this.options.onScriptCall),this._chat=new f.GengageChat,await this._chat.init(n)}async _syncPdpWidgets(){if(this._destroyed)return;const t=this._pageContext.sku;if(!(this._pageContext.pageType==="pdp"&&t!==void 0&&t.length>0)){this._destroyPdpWidgets();return}const i=this.options.middlewareUrl;if(this.options.qna?.enabled!==!1){const a=this.options.qna?.mountTarget??$,s=w(a);if(s)if(this._warnedQnaMountMissing=!1,this._qna)this._qna.show(),this._qna.update({pageType:"pdp",sku:t});else{const l=new M.GengageQNA,r={accountId:this.options.accountId,middlewareUrl:i,session:this.session,pageContext:{pageType:"pdp",sku:t},mountTarget:s};this.options.theme!==void 0&&(r.theme=this.options.theme),this.options.qna?.ctaText!==void 0&&(r.ctaText=this.options.qna.ctaText),this.options.qna?.inputPlaceholder!==void 0&&(r.inputPlaceholder=this.options.qna.inputPlaceholder),await l.init(r),this._qna=l}else this._qna?.destroy(),this._qna=null,this._warnedQnaMountMissing||(console.warn(`[gengage] QNA mount target not found: ${a}`),this._warnedQnaMountMissing=!0)}else this._qna?.destroy(),this._qna=null;if(this.options.simrel?.enabled!==!1){const a=this.options.simrel?.mountTarget??G,s=w(a);if(s)if(this._warnedSimRelMountMissing=!1,this._simrel)this._simrel.show(),this._simrel.update({pageType:"pdp",sku:t});else{const l=new D.GengageSimRel,r={accountId:this.options.accountId,middlewareUrl:i,session:this.session,sku:t,mountTarget:s};this.options.theme!==void 0&&(r.theme=this.options.theme),this.options.pricing!==void 0&&(r.pricing=this.options.pricing),this.options.simrel?.discountType!==void 0&&(r.discountType=this.options.simrel.discountType),this.options.onAddToCart!==void 0&&(r.onAddToCart=this.options.onAddToCart),this.options.onProductNavigate!==void 0?r.onProductNavigate=this.options.onProductNavigate:r.onProductNavigate=(d,u,h)=>{this._chat?.saveSession(h??this.session.sessionId,u),window.location.href=d},await l.init(r),this._simrel=l}else this._simrel?.destroy(),this._simrel=null,this._warnedSimRelMountMissing||(console.warn(`[gengage] SimRel mount target not found: ${a}`),this._warnedSimRelMountMissing=!0)}else this._simrel?.destroy(),this._simrel=null}_destroyPdpWidgets(){this._qna?.destroy(),this._simrel?.destroy(),this._qna=null,this._simrel=null}_enqueue(t){const n=this._queue.then(t);return this._queue=n.catch(i=>{}),n}}async function I(e){const t=A(e),n=m(),i=n.instances[t];if(i)return i;const a=n.pending[t];if(a)return a;const s=new Q(e,()=>{const r=m();delete r.instances[t],delete r.pending[t]}),l=s.init().then(()=>(n.instances[t]=s,delete n.pending[t],s)).catch(r=>{throw delete n.pending[t],r});return n.pending[t]=l,l}function k(e){return m().instances[e]??null}function V(e){k(e)?.destroy()}function Y(e){return`${S}${e}`}const X={enabled:!0,endpoint:"/analytics",fireAndForget:!0,useBeacon:!0,keepaliveFetch:!0,timeoutMs:4e3,maxRetries:1,batchSize:10,flushIntervalMs:250},Z={mode:"none",key:"",headerName:"X-API-Key",bodyField:"api_key"};class E{constructor(t){this.queue=[],this.flushTimer=null,this.config={...X,...t,auth:{...Z,...t.auth??{}}},this.onPageHideBound=()=>{this.queue.length!==0&&this.flushAll({preferBeacon:!0})},typeof window<"u"&&window.addEventListener("pagehide",this.onPageHideBound)}track(t){if(!this.config.enabled)return;const n=ee(t);if(this.queue.push(n),this.queue.length>=this.config.batchSize){this.scheduleImmediateFlush();return}this.scheduleFlush()}async flush(t={}){if(!this.config.enabled||this.queue.length===0)return;const n=this.queue.splice(0,this.config.batchSize),i=this.buildTransportBody(n),a=te(this.config.endpoint,this.config.middlewareUrl),s=t.preferBeacon??this.config.useBeacon;await this.sendWithRetry(a,i,s)}async flushAll(t={}){for(;this.queue.length>0;)await this.flush(t)}destroy(){this.flushTimer&&(clearTimeout(this.flushTimer),this.flushTimer=null),this.queue.length>0&&this.flushAll({preferBeacon:!0}),typeof window<"u"&&window.removeEventListener("pagehide",this.onPageHideBound)}scheduleFlush(){this.flushTimer||(this.flushTimer=setTimeout(()=>{this.flushTimer=null,this.flush()},this.config.flushIntervalMs))}scheduleImmediateFlush(){this.flushTimer&&(clearTimeout(this.flushTimer),this.flushTimer=null),this.flush()}buildTransportBody(t){const n={events:t};return this.config.auth.mode==="body-api-key"&&this.config.auth.key&&(n[this.config.auth.bodyField]=this.config.auth.key),n}async sendWithRetry(t,n,i){let a=0;for(;a<=this.config.maxRetries;){a+=1;try{if(await this.send(t,n,i))return}catch{}a<=this.config.maxRetries&&await new Promise(s=>setTimeout(s,Math.min(1e3,100*Math.pow(2,a-1))))}}async send(t,n,i){const a=JSON.stringify(n);if(i&&this.config.useBeacon&&this.config.auth.mode!=="x-api-key-header"&&this.config.auth.mode!=="bearer-header"&&ne()){const u=new Blob([a],{type:"application/json"});if(navigator.sendBeacon(t,u))return!0}if(typeof fetch>"u")return!1;const l={"Content-Type":"application/json"};this.config.auth.mode==="x-api-key-header"&&this.config.auth.key&&(l[this.config.auth.headerName]=this.config.auth.key),this.config.auth.mode==="bearer-header"&&this.config.auth.key&&(l.Authorization=`Bearer ${this.config.auth.key}`);const r=typeof AbortController<"u"?new AbortController:null,d=r?setTimeout(()=>r.abort(),this.config.timeoutMs):null;try{const u={method:"POST",headers:l,body:a,keepalive:this.config.keepaliveFetch&&this.config.fireAndForget};return r&&(u.signal=r.signal),(await fetch(t,u)).ok}finally{d&&clearTimeout(d)}}}function J(e){return new E(e)}function ee(e){const t={event_name:e.event_name,event_version:e.event_version??"1",timestamp_ms:e.timestamp_ms??Date.now(),account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,payload:e.payload};return e.view_id!==void 0&&(t.view_id=e.view_id),e.user_id!==void 0&&(t.user_id=e.user_id),e.widget!==void 0&&(t.widget=e.widget),e.page_type!==void 0&&(t.page_type=e.page_type),e.sku!==void 0&&(t.sku=e.sku),t}function te(e,t){if(/^https?:\/\//i.test(e))return e;const n=o.normalizeMiddlewareUrl(t),i=e.startsWith("/")?e:`/${e}`;return`${n}${i}`}function ne(){return typeof navigator<"u"&&typeof navigator.sendBeacon=="function"}const x={primaryColor:"#000000",primaryForeground:"#ffffff",backgroundColor:"#ffffff",foregroundColor:"#222222",borderRadius:"8px",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif',fontSize:"14px",zIndex:"1000","--glov-chatbot-width":"420px","--glov-left-spacing":"260px","--chatbot-padding":"16px","--root-wrapper-background-color":"#F2F2F2","--root-wrapper-border-color":"#E5E5E5","--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 oe(e){return{...x,...e}}const y="tr";function ie(e){return{ACCOUNT_ID:e.accountId,MIDDLEWARE_URL:e.middlewareUrl,LOCALE:e.locale??y}}function re(e,t={}){const n={accountId:e.accountId,middlewareUrl:e.middlewareUrl,session:{sessionId:e.sessionId},variant:"floating",locale:e.locale??y,...t};return e.theme!==void 0&&(n.theme=e.theme),n}function ae(e,t={}){const n={accountId:e.accountId,middlewareUrl:e.middlewareUrl,session:{sessionId:e.sessionId},pageContext:{pageType:"pdp",sku:e.sku},mountTarget:e.mountTarget,...t};return e.theme!==void 0&&(n.theme=e.theme),n}function se(e,t={}){const n={accountId:e.accountId,middlewareUrl:e.middlewareUrl,session:{sessionId:e.sessionId},sku:e.sku,mountTarget:e.mountTarget,...t};return e.theme!==void 0&&(n.theme=e.theme),n}function le(e,t={}){return{enabled:!0,middlewareUrl:e,endpoint:"/analytics",fireAndForget:!0,useBeacon:!0,...t}}function ce(e){try{return document.querySelector(e),!0}catch{return!1}}function P(e,t){const n=[],i=e.mounts,a=[["qna",i.qna],["simrel",i.simrel],["chat",i.chat]];for(const[l,r]of a)if(r!==void 0){if(!ce(r)){n.push({code:"INVALID_SELECTOR",message:`[gengage preflight] ${l} mount selector is invalid CSS: "${r}"`,severity:"error"});continue}document.querySelector(r)||n.push({code:"MOUNT_NOT_FOUND",message:`[gengage preflight] ${l} mount target not found: "${r}" — widget will skip or wait for DOM`,severity:"warn"})}const s=e.gtm.idempotencyKey;if(window[s]!==void 0&&n.push({code:"DUPLICATE_IDEMPOTENCY",message:`[gengage preflight] window["${s}"] already exists — widgets may have already initialized`,severity:"warn"}),!t?.skipCspCheck){let l=!1;const r=d=>{d.blockedURI&&e.middlewareUrl.startsWith(d.blockedURI)&&(l=!0)};document.addEventListener("securitypolicyviolation",r);try{fetch(e.middlewareUrl,{method:"HEAD",mode:"no-cors"}).catch(()=>{})}catch{l=!0}document.removeEventListener("securitypolicyviolation",r),l&&n.push({code:"CSP_BLOCKED",message:`[gengage preflight] middleware URL may be blocked by Content-Security-Policy: "${e.middlewareUrl}". Add it to connect-src.`,severity:"warn"})}for(const l of n)l.severity==="error"?console.error(l.message):console.warn(l.message);return{ok:n.every(l=>l.severity!=="error"),warnings:n}}function de(e){const t=T(e);if(!t.success){const n=t.error.issues.map(i=>`${i.path.join(".")}: ${i.message}`).join("; ");throw new Error(`[gengage] Invalid runtime config: ${n}`)}return t.data}function ue(e,t,n){const i={accountId:e.accountId,middlewareUrl:e.middlewareUrl,idempotencyKey:e.gtm.idempotencyKey};return e.locale!==void 0&&(i.locale=e.locale),n!==void 0&&(i.pageContext=n,n.sku!==void 0&&(i.sku=n.sku)),i.chat={enabled:e.widgets.chat.enabled},e.mounts.chat!==void 0&&(i.chat.mountTarget=e.mounts.chat),i.qna={enabled:e.widgets.qna.enabled},e.mounts.qna!==void 0&&(i.qna.mountTarget=e.mounts.qna),i.simrel={enabled:e.widgets.simrel.enabled},e.mounts.simrel!==void 0&&(i.simrel.mountTarget=e.mounts.simrel),t?.onAddToCart!==void 0&&(i.onAddToCart=t.onAddToCart),t?.onProductNavigate!==void 0&&(i.onProductNavigate=t.onProductNavigate),t?.onScriptCall!==void 0&&(i.onScriptCall=t.onScriptCall),i}async function fe(e){const t=de(e.runtimeConfig);if(e.preflight!==!1){const s=P(t);if(!s.ok){const l=s.warnings.filter(r=>r.severity==="error");throw new Error(`[gengage] Preflight failed: ${l.map(r=>r.message).join("; ")}`)}}const n=e.contextResolver?.(),i=ue(t,e.hostActions,n),a=await I(i);if(e.contextResolver!==void 0){const s=e.contextResolver,l=()=>{const d=s();a.updateContext(d)};window.addEventListener("gengage:context:update",l);const r=a.destroy.bind(a);a.destroy=()=>{window.removeEventListener("gengage:context:update",l),r()}}return a}const he=[{pageType:"home",urlPatterns:["^/$","^/index\\.html?$","^/anasayfa$"]},{pageType:"search",urlPatterns:["/arama","/search","/ara\\?"],queryParam:"q"},{pageType:"cart",urlPatterns:["/sepet","/cart","/basket","/sepetim"]},{pageType:"plp",urlPatterns:["/kategori/","/category/","/c/","/koleksiyon/","/collection/"]},{pageType:"pdp",urlPatterns:["/urun/","/product/","/p/","/-p-","/-pm-"]}];function U(e,t){const n=t??(typeof window<"u"?new URL(window.location.href):null);if(!n)return"other";const i=e??he,a=n.pathname;for(const s of i)if(!(s.urlPatterns&&!s.urlPatterns.some(r=>{try{return new RegExp(r,"i").test(a)}catch{return!1}}))&&!(s.queryParam&&!n.searchParams.has(s.queryParam))&&!(s.selector&&typeof document<"u"&&!document.querySelector(s.selector)))return s.pageType;return"other"}function R(e){const t=e??(typeof window<"u"?new URL(window.location.href):null);if(!t)return;const n=t.pathname,i=n.match(/\/(?:p|urun|product)\/([^/?#]+)/i);if(i?.[1])return i[1];const a=n.match(/-p-(\d+)/i);if(a?.[1])return a[1]}function ge(e){const t=U(e),n={pageType:t};if(t==="pdp"){const i=R();i&&(n.sku=i)}return typeof window<"u"&&(n.url=window.location.href),n}const c="https://chatbe-dev.gengage.ai",q={koctascomtr:{accountId:"koctascomtr",locale:"tr",middlewareUrl:c,theme:{primaryColor:"#ec6e00",primaryForeground:"#ffffff",backgroundColor:"#ffffff",foregroundColor:"#222222",borderRadius:"8px",fontFamily:'"Source Sans Pro", "Helvetica Neue", Arial, sans-serif',fontSize:"14px"},chatI18n:{inputPlaceholder:"Ürün ara, soru sor",poweredBy:"Koçtaş AI Asistan"}},n11com:{accountId:"n11com",locale:"tr",middlewareUrl:c,theme:{primaryColor:"#ff44ef",primaryForeground:"#ffffff",backgroundColor:"#ffffff",foregroundColor:"#222222",borderRadius:"8px",fontFamily:"Arial, Helvetica, sans-serif",fontSize:"14px"},chatI18n:{inputPlaceholder:"Ne aramıştınız?",poweredBy:"n11 AI Asistan"}},hepsiburadacom:{accountId:"hepsiburadacom",locale:"tr",middlewareUrl:c,theme:{primaryColor:"#ff6000",primaryForeground:"#ffffff",backgroundColor:"#ffffff",foregroundColor:"#333333",borderRadius:"8px",fontFamily:'"Open Sans", Arial, sans-serif',fontSize:"14px"},chatI18n:{inputPlaceholder:"Ürün ara veya soru sor",poweredBy:"Hepsiburada AI Asistan"}},arcelikcomtr:{accountId:"arcelikcomtr",locale:"tr",middlewareUrl:c,theme:{primaryColor:"#e4002b",primaryForeground:"#ffffff",backgroundColor:"#ffffff",foregroundColor:"#222222",borderRadius:"8px",fontFamily:'"Arcelik Sans", "Helvetica Neue", Arial, sans-serif',fontSize:"14px"},chatI18n:{inputPlaceholder:"Size nasıl yardımcı olabilirim?",poweredBy:"Arçelik AI Asistan"}},yatasbeddingcomtr:{accountId:"yatasbeddingcomtr",locale:"tr",middlewareUrl:c,theme:{primaryColor:"#c8102e",primaryForeground:"#ffffff",backgroundColor:"#ffffff",foregroundColor:"#333333",borderRadius:"8px",fontFamily:'"Nunito Sans", Arial, sans-serif',fontSize:"14px"},chatI18n:{inputPlaceholder:"Yatak, baza veya ürün arayın",poweredBy:"Yataş AI Asistan"}},trendyolcom:{accountId:"trendyolcom",locale:"tr",middlewareUrl:c,theme:{primaryColor:"#f27a1a",primaryForeground:"#ffffff",backgroundColor:"#ffffff",foregroundColor:"#333333",borderRadius:"6px",fontFamily:'"Source Sans Pro", Arial, sans-serif',fontSize:"14px"},chatI18n:{inputPlaceholder:"Ne aramıştınız?",poweredBy:"Trendyol AI Asistan"}},boynercomtr:{accountId:"boynercomtr",locale:"tr",middlewareUrl:c,theme:{primaryColor:"#000000",primaryForeground:"#ffffff",backgroundColor:"#ffffff",foregroundColor:"#333333",borderRadius:"4px",fontFamily:'"Montserrat", Arial, sans-serif',fontSize:"14px"},chatI18n:{inputPlaceholder:"Moda, kozmetik veya ev ürünleri arayın",poweredBy:"Boyner AI Asistan"}},evideacom:{accountId:"evideacom",locale:"tr",middlewareUrl:c,theme:{primaryColor:"#e84393",primaryForeground:"#ffffff",backgroundColor:"#ffffff",foregroundColor:"#2d3436",borderRadius:"8px",fontFamily:'"Poppins", Arial, sans-serif',fontSize:"14px"},chatI18n:{inputPlaceholder:"Ev dekorasyon ürünleri arayın",poweredBy:"Evidea AI Asistan"}},aygazcomtr:{accountId:"aygazcomtr",locale:"tr",middlewareUrl:c,theme:{primaryColor:"#e30613",primaryForeground:"#ffffff",backgroundColor:"#ffffff",foregroundColor:"#333333",borderRadius:"8px",fontFamily:"Arial, Helvetica, sans-serif",fontSize:"14px"},chatI18n:{inputPlaceholder:"Aygaz ürünleri hakkında sorun",poweredBy:"Aygaz AI Asistan"}},otokoccomtr:{accountId:"otokoccomtr",locale:"tr",middlewareUrl:c,theme:{primaryColor:"#003087",primaryForeground:"#ffffff",backgroundColor:"#ffffff",foregroundColor:"#333333",borderRadius:"8px",fontFamily:'"Roboto", Arial, sans-serif',fontSize:"14px"},chatI18n:{inputPlaceholder:"Araç veya hizmet arayın",poweredBy:"Otokoç AI Asistan"}},divanpastanelericomtr:{accountId:"divanpastanelericomtr",locale:"tr",middlewareUrl:c,theme:{primaryColor:"#8b1a2d",primaryForeground:"#ffffff",backgroundColor:"#faf8f5",foregroundColor:"#3d2c2e",borderRadius:"8px",fontFamily:'"Georgia", serif',fontSize:"14px"},chatI18n:{inputPlaceholder:"Ürün veya mağaza arayın",poweredBy:"Divan AI Asistan"}},screwfixcom:{accountId:"screwfixcom",locale:"en",middlewareUrl:c,theme:{primaryColor:"#f6a623",primaryForeground:"#1a1a1a",backgroundColor:"#ffffff",foregroundColor:"#333333",borderRadius:"4px",fontFamily:'"Arial", Helvetica, sans-serif',fontSize:"14px"},pricing:{currencySymbol:"£",currencyPosition:"prefix",thousandsSeparator:",",decimalSeparator:"."},chatI18n:{inputPlaceholder:"Search products or ask a question",poweredBy:"Screwfix AI Assistant"}}};function me(e){return q[e]}function pe(){return Object.keys(q)}exports.BaseWidget=o.BaseWidget;exports.DEFAULT_WIDGET_THEME_TOKENS=o.DEFAULT_WIDGET_THEME_TOKENS;exports.adaptV1Event=o.adaptV1Event;exports.basketAddEvent=o.basketAddEvent;exports.bootstrapSession=o.bootstrapSession;exports.buildChatEndpointUrl=o.buildChatEndpointUrl;exports.chatHistorySnapshotEvent=o.chatHistorySnapshotEvent;exports.checkoutCompleteEvent=o.checkoutCompleteEvent;exports.checkoutStartEvent=o.checkoutStartEvent;exports.consumeStream=o.consumeStream;exports.defaultUnknownUISpecRenderer=o.defaultUnknownUISpecRenderer;exports.dismissGlobalErrorToast=o.dismissGlobalErrorToast;exports.dispatch=o.dispatch;exports.getGlobalErrorMessage=o.getGlobalErrorMessage;exports.getWindowPageContext=o.getWindowPageContext;exports.listen=o.listen;exports.llmUsageEvent=o.llmUsageEvent;exports.mergeUISpecRegistry=o.mergeUISpecRegistry;exports.meteringIncrementEvent=o.meteringIncrementEvent;exports.meteringSummaryEvent=o.meteringSummaryEvent;exports.normalizeMiddlewareUrl=o.normalizeMiddlewareUrl;exports.normalizeProductGroupingsResponse=o.normalizeProductGroupingsResponse;exports.normalizeSimilarProductsResponse=o.normalizeSimilarProductsResponse;exports.productToNormalized=o.productToNormalized;exports.registerGlobalErrorToastListener=o.registerGlobalErrorToastListener;exports.renderUISpecWithRegistry=o.renderUISpecWithRegistry;exports.resolveSession=o.resolveSession;exports.showGlobalErrorToast=o.showGlobalErrorToast;exports.streamChunkEvent=o.streamChunkEvent;exports.streamDoneEvent=o.streamDoneEvent;exports.streamErrorEvent=o.streamErrorEvent;exports.streamPost=o.streamPost;exports.streamStartEvent=o.streamStartEvent;exports.streamUiSpecEvent=o.streamUiSpecEvent;exports.updatePageContext=o.updatePageContext;exports.widgetHistorySnapshotEvent=o.widgetHistorySnapshotEvent;exports.wireGADataLayer=o.wireGADataLayer;exports.wireQNAToChat=o.wireQNAToChat;exports.wireSimilarToChat=o.wireSimilarToChat;exports.withDefaultWidgetTheme=o.withDefaultWidgetTheme;exports.VoiceInput=f.VoiceInput;exports.isVoiceInputSupported=f.isVoiceInputSupported;exports.routeStreamAction=f.routeStreamAction;exports.sanitizeHtml=F.sanitizeHtml;exports.AccountRuntimeConfigSchema=p;exports.AnalyticsAuthModeSchema=v;exports.AnalyticsClient=E;exports.BASE_WIDGET_THEME=x;exports.DEFAULT_CUSTOMIZATION_LOCALE=y;exports.UnknownActionPolicySchema=_;exports.autoDetectPageContext=ge;exports.buildOverlayIdempotencyKey=Y;exports.createAccountIdentity=ie;exports.createAnalyticsClient=J;exports.createDefaultAccountRuntimeConfig=H;exports.createDefaultAnalyticsConfig=le;exports.createFloatingChatConfig=re;exports.createPdpQnaConfig=ae;exports.createPdpSimRelConfig=se;exports.destroyOverlayWidgets=V;exports.detectPageType=U;exports.extractSkuFromUrl=R;exports.getMerchantConfig=me;exports.getMerchantIds=pe;exports.getOverlayWidgets=k;exports.initGengageClient=fe;exports.initOverlayWidgets=I;exports.parseAccountRuntimeConfig=b;exports.preflightDiagnostics=P;exports.safeParseAccountRuntimeConfig=T;exports.withBaseTheme=oe;
2
2
  //# sourceMappingURL=common.cjs.map
package/dist/common.js CHANGED
@@ -1,7 +1,7 @@
1
- import { o as u, s as d, U as A, _ as v, d as f, v as y, V as S, W as x, A as E } from "./schemas-SGuXpngy.js";
2
- import { B as Pe, X as Ue, a as Re, z as qe, Y as Fe, b as Me, N as Be, Z as Le, $ as ze, c as De, a0 as Ne, a1 as Oe, j as We, k as $e, a2 as He, a3 as Ge, P as Ke, m as Qe, M as Ye, a4 as je, q as Ve, p as Xe, a5 as Ze, a6 as Je, r as et, a7 as tt, T as ot, h as it, l as nt, a8 as at, g as rt, Q as st, a9 as lt, w as dt, aa as ct, ab as ut, ac as ft } from "./schemas-SGuXpngy.js";
3
- import { G as P } from "./index-CmlYMq-h.js";
4
- import { V as gt, i as mt, r as pt } from "./index-CmlYMq-h.js";
1
+ import { o as u, s as d, U as A, _ as v, d as f, v as y, V as S, W as x, A as E } from "./schemas-CPkzbgia.js";
2
+ import { B as Pe, X as Ue, a as Re, z as qe, Y as Fe, b as Me, N as Be, Z as Le, $ as ze, c as De, a0 as Ne, a1 as Oe, j as We, k as $e, a2 as He, a3 as Ge, P as Ke, m as Qe, M as Ye, a4 as je, q as Ve, p as Xe, a5 as Ze, a6 as Je, r as et, a7 as tt, T as ot, h as it, l as nt, a8 as at, g as rt, Q as st, a9 as lt, w as dt, aa as ct, ab as ut, ac as ft } from "./schemas-CPkzbgia.js";
3
+ import { G as P } from "./index-CXbH-cw8.js";
4
+ import { V as gt, i as mt, r as pt } from "./index-CXbH-cw8.js";
5
5
  import { s as wt } from "./quantity-stepper-B8kX8GbN.js";
6
6
  import { GengageQNA as U } from "./qna.js";
7
7
  import { GengageSimRel as R } from "./simrel.js";