@callimacus/thamyr-core 4.5.0 → 4.6.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/CHANGELOG.md +7 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.native.js +1 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/types/index.d.ts +123 -2
- package/dist/types/index.native.d.ts +123 -2
- package/package.json +1 -1
package/dist/esm/index.native.js
CHANGED
|
@@ -5,5 +5,5 @@
|
|
|
5
5
|
* See LICENSE.md for the full terms.
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
|
-
import{io as e}from"socket.io-client";const t={ERROR:"error",CHAPTER_EVENT:"chapter-event",CHAPTER_DELETED:"chapter-deleted",STORY_RESET:"story-reset",STORY_CREATED:"story-created",STORY_SHARED:"story-shared",BLOCK_PATCH:"block-patch"},s={ERROR:"error",SYSTEM_MESSAGE:"system-message",SERVER_STATUS:"server-status",SERVER_RESPONSE:"server-response"},n={CLIENT_READY:"client-ready",USER_INTERACTION:"user-interaction"},r={question:"question",content:"content",topic:"topic",tag:"tag",image:"image",video:"video",gallery:"gallery",relatedQuestion:"relatedQuestion",page:"page",customInteraction:"customInteraction",customPage:"customPage"},i={masonry:"masonry",carousel:"carousel"},o={understandingQuery:1,craftingAnswer:2,curatingContent:3,done:4};function a(e){return e.type.startsWith("custom:")}function c(e){return"set"in e.type&&e.type.set}function l(e){return"master"in e.type&&e.type.master}const d={debug:0,info:1,warn:2,error:3,silent:4};const u=new class{config={enabled:!1,level:"info",prefix:"[Thamyr]"};debug=(...e)=>{this.log("debug",...e)};info=(...e)=>{this.log("info",...e)};warn=(...e)=>{this.log("warn",...e)};error=(...e)=>{this.log("error",...e)};log(e,...t){if(!(this.config.enabled&&d[e]>=d[this.config.level]))return;const{prefix:s}=this.config,n=void 0===s||""===s?t:[s,...t];console[e](...n)}configure(e){this.config={...this.config,...e}}getConfig(){return{...this.config}}};function h(e,t){const s=new URL(e),n=decodeURIComponent(s.pathname.slice(1)),r=(new TextEncoder).encode(JSON.stringify({bucket:"storage.callimacus.ai",key:n,edits:t})).toBase64();return`${s.origin}/${encodeURIComponent(r)}`}function y(){const e="undefined"==typeof crypto?void 0:crypto;if("function"==typeof e?.randomUUID)return e.randomUUID();const t=new Uint8Array(16);if("function"==typeof e?.getRandomValues)e.getRandomValues(t);else for(let e=0;e<16;e++)t[e]=Math.floor(256*Math.random());t[6]=15&t[6]|64,t[8]=63&t[8]|128;const s=[...t].map(e=>e.toString(16).padStart(2,"0"));return[s.slice(0,4).join(""),s.slice(4,6).join(""),s.slice(6,8).join(""),s.slice(8,10).join(""),s.slice(10,16).join("")].join("-")}var p,f;function m(e){if("object"!=typeof e||null===e)return!1;const t=e;return"string"==typeof t.audioUrl&&"string"==typeof t.mimeType}function g(e){if("object"==typeof e&&null!==e)for(const t of Object.values(e))if(m(t))return t}!function(e){e.GET_STORY="get-story",e.CREATE_ROUND="create-round",e.RESET_STORY="reset-story",e.BACK_FROM_ROUND="back-from-round",e.SHARE_STORY="share-story",e.GET_SHARED_STORY="get-shared-story",e.SUGGEST="suggest"}(p||(p={})),function(e){e.ROUND_CREATED="round-created",e.ROUND_EVENT="round-event",e.ROUND_COMPLETED="round-completed",e.ERROR="error"}(f||(f={}));const b={productSelector:"[data-product-id]",blockSelector:"[data-block-id]",maxTrackedElements:40,minVisibilityRatio:.5};class k{elements=new Map;elementRefs=new Map;elementKeys=new WeakMap;blocks=new Map;blockRefs=new Map;blockKeys=new WeakMap;started=!1;config;constructor(e={}){const t=e.minVisibilityRatio??b.minVisibilityRatio;this.config={productSelector:e.productSelector??b.productSelector,blockSelector:e.blockSelector??b.blockSelector,maxTrackedElements:e.maxTrackedElements??b.maxTrackedElements,minVisibilityRatio:Math.min(1,Math.max(0,t))}}rescanUi(){if(!this.canUseDom())return;let e,t;try{e=document.querySelectorAll(this.config.productSelector),t=document.querySelectorAll(this.config.blockSelector)}catch(e){return void u.warn("UI Observer: invalid selector, skipping rescan:",e)}const s=Date.now();for(const t of e){const e=this.normalizeRect(t.getBoundingClientRect()),n=this.calculateVisibilityRatio(e);this.syncTrackedElement(t,{bounds:e,isVisible:n>=this.config.minVisibilityRatio,visibilityRatio:n,observedAt:s})}for(const e of t){const t=this.normalizeRect(e.getBoundingClientRect()),n=this.calculateVisibilityRatio(t);this.syncTrackedBlock(e,{bounds:t,isVisible:n>=this.config.minVisibilityRatio,visibilityRatio:n,observedAt:s})}this.pruneTrackedElements(),this.pruneTrackedBlocks()}pruneTrackedElements(){if(this.elements.size<=this.config.maxTrackedElements)return;const e=[...this.elements].sort(([,e],[,t])=>{const s=e.visibilityRatio-t.visibilityRatio;return 0===s||Number.isNaN(s)?e.observedAt-t.observedAt:s}).slice(0,this.elements.size-this.config.maxTrackedElements);for(const[t]of e)this.elements.delete(t),this.elementRefs.delete(t)}pruneTrackedBlocks(){if(this.blocks.size<=this.config.maxTrackedElements)return;const e=[...this.blocks].sort(([,e],[,t])=>{const s=e.visibilityRatio-t.visibilityRatio;return 0===s||Number.isNaN(s)?e.observedAt-t.observedAt:s}).slice(0,this.blocks.size-this.config.maxTrackedElements);for(const[t]of e)this.blocks.delete(t),this.blockRefs.delete(t)}syncTrackedElement(e,t){const s=this.resolveElementId(e),n=this.resolveBlockId(e),r=this.createTrackingKey(s,n),i=this.elementKeys.get(e);void 0!==i&&""!==i&&i!==r&&(this.elements.delete(i),this.elementRefs.delete(i)),this.elementKeys.set(e,r),this.elementRefs.set(r,e),this.elements.set(r,{id:s,blockId:n,trackingKey:r,...t})}syncTrackedBlock(e,t){const s=this.resolveTrackedBlockId(e),n=this.blockKeys.get(e),r=s;void 0!==n&&""!==n&&n!==r&&(this.blocks.delete(n),this.blockRefs.delete(n)),this.blockKeys.set(e,r),this.blockRefs.set(r,e),this.blocks.set(r,{id:s,...t})}resolveElementId(e){return[e.dataset.productId,e.dataset.productid,e.dataset.sku,e.id].find(e=>void 0!==e&&""!==e)??`${e.tagName}-${e.dataset.productId??this.elements.size}`}resolveBlockId(e){let t;try{t=e.closest(this.config.blockSelector)??void 0}catch{return}return t instanceof HTMLElement?this.resolveTrackedBlockId(t):void 0}resolveTrackedBlockId(e){return[e.dataset.blockId,e.dataset.blockid,e.id].find(e=>void 0!==e&&""!==e)??`${e.tagName}-${e.dataset.blockId??this.blocks.size}`}createTrackingKey(e,t){return void 0===t||""===t?e:`${e}::${t}`}normalizeRect(e){return{x:e.x,y:e.y,width:e.width,height:e.height,top:e.top,left:e.left,right:e.right,bottom:e.bottom}}calculateVisibilityRatio(e){const t=Math.max(0,Math.min(e.right,window.innerWidth)-Math.max(e.left,0))*Math.max(0,Math.min(e.bottom,window.innerHeight)-Math.max(e.top,0)),s=e.width*e.height;if(s<=0)return 0;const n=window.innerWidth*window.innerHeight,r=n>0?Math.min(s,n):s;return Math.min(1,Math.max(0,t/r))}canUseDom(){return void 0!==globalThis.window&&"undefined"!=typeof document}start(){!this.started&&this.canUseDom()&&(this.started=!0)}stop(){this.started&&(this.started=!1,this.elements.clear(),this.elementRefs.clear(),this.blocks.clear(),this.blockRefs.clear())}getSnapshot(){if(!this.canUseDom())return;this.rescanUi();const e=[],t=[],s=Date.now();for(const[t,s]of this.elements){const n=this.elementRefs.get(t);n?.isConnected?s.visibilityRatio<=0||e.push({blockId:s.blockId,element:{id:s.id,bounds:s.bounds,isVisible:s.visibilityRatio>=this.config.minVisibilityRatio,visibilityRatio:s.visibilityRatio}}):(this.elements.delete(t),this.elementRefs.delete(t))}for(const[e,s]of this.blocks){const n=this.blockRefs.get(e);n?.isConnected?s.visibilityRatio<this.config.minVisibilityRatio||t.push(s.id):(this.blocks.delete(e),this.blockRefs.delete(e))}const n=e.slice(0,this.config.maxTrackedElements);return{timestamp:s,viewport:{width:window.innerWidth,height:window.innerHeight},blockIds:[...new Set([...t,...n.flatMap(e=>e.blockId??[])])],elements:n.map(e=>e.element)}}}function v(e){const{data:t}=e;if("object"!=typeof t||null===t)return;const{code:s,reason:n}=t;return"number"==typeof s?{code:s,..."string"==typeof n&&{reason:n}}:void 0}const R=3;function w(e,t){return e>=500&&t<3}function S(e,t){return t?void 0:v(e)??{code:0}}class E{socket;serverResponseListeners=new Set;connectionStatusListeners=new Set;errorListeners=new Set;uiObserver;uiObserverConfig=b;handshakeRetryAttempts=0;handshakeRetryTimer;setupEventListeners(){this.socket&&(this.socket.on("connect",()=>{u.debug("Connected to Callimacus"),this.clearHandshakeRetry(),this.handshakeRetryAttempts=0,this.updateConnectionStatus(!0),this.socket?.emit(n.CLIENT_READY)}),this.socket.on("disconnect",()=>{u.info("Disconnected from Callimacus"),this.updateConnectionStatus(!1)}),this.socket.on("connect_error",e=>{this.updateConnectionStatus(!1);const t=S(e,this.socket?.active??!0);t&&(u.error("Connection refused by Callimacus:",e.message,t.reason??""),this.notifyRejection(t,e.message),this.scheduleHandshakeRetry(t.code))}),this.socket.on(s.ERROR,e=>{u.error("Received error from Callimacus:",e),this.notifyErrorListeners(e)}),this.socket.io.on("reconnect",e=>{u.info(`Reconnected to Callimacus after ${e} attempts`)}),this.socket.io.on("reconnect_attempt",e=>{u.info(`Attempting to reconnect: attempt ${e}`)}),this.socket.io.on("reconnect_error",e=>{u.error("Reconnection error:",e)}),this.socket.io.on("reconnect_failed",()=>{u.error("Failed to reconnect to Callimacus service!"),this.updateConnectionStatus(!1)}),this.socket.on(s.SERVER_RESPONSE,e=>{this.notifyServerResponseListeners(e)}))}notifyServerResponseListeners(e){this.serverResponseListeners.forEach(t=>{try{t(e)}catch(e){u.error("Error in server response listener:",e)}})}updateConnectionStatus(e){this.connectionStatusListeners.forEach(t=>{try{t(e)}catch(e){u.error("Error in connection status listener:",e)}})}notifyRejection(e,t){this.notifyErrorListeners({code:e.code,message:t,...void 0!==e.reason&&{reason:e.reason}})}scheduleHandshakeRetry(e){if(!this.socket)return;if(this.clearHandshakeRetry(),!w(e,this.handshakeRetryAttempts))return void(e>=500&&(u.error("Giving up on the Callimacus connection after 3 retries"),this.notifyRejection({code:e,reason:"retries_exhausted"},"Connection failed after 3 retries; call connect() to try again")));const t=2**(this.handshakeRetryAttempts+1);this.handshakeRetryAttempts+=1,u.info(`Retrying Callimacus connection in ${t}s (attempt ${this.handshakeRetryAttempts}/3)`),this.handshakeRetryTimer=setTimeout(()=>{this.socket?.connect()},1e3*t)}clearHandshakeRetry(){void 0!==this.handshakeRetryTimer&&(clearTimeout(this.handshakeRetryTimer),this.handshakeRetryTimer=void 0)}notifyErrorListeners(e){this.errorListeners.forEach(t=>{try{t(e)}catch(e){u.error("Error in error listener:",e)}})}async getLocation(){if("undefined"!=typeof navigator&&"function"==typeof navigator.geolocation?.getCurrentPosition)return new Promise(e=>{navigator.geolocation.getCurrentPosition(t=>{e(t)},()=>{e(void 0)})})}enrichPayloadWithUiContext(e){try{this.ensureUiObserver();const t=this.uiObserver?.getSnapshot();return t?{...e,context:{...e.context,uiSnapshot:t}}:e}catch(t){return u.error("Error enriching payload with UI context:",t),e}}ensureUiObserver(){"undefined"!=typeof window&&"undefined"!=typeof document&&this.uiObserverConfig.enabled&&(this.uiObserver??=new k(this.uiObserverConfig),this.uiObserver.start())}socketEndpoint(e){const t=new URL(e),s=new URL("thamyr",t).pathname;return{origin:t.origin,path:s}}connect(t="wss://localhost:4000",s,n){this.socket&&(u.warn("Already connected to Thamyr. Disconnecting first...."),this.disconnect());const r=this.socketEndpoint(t);let i;"undefined"!=typeof window&&void 0!==globalThis.location&&(i=globalThis.location.href);const o={...void 0!==i&&""!==i&&{referrer:i},...n};u.info("Connecting to Thamyr at",r),this.socket=e(r.origin,{path:r.path,transports:["websocket","polling"],tryAllTransports:!0,extraHeaders:s,auth:o}),this.setupEventListeners(),this.ensureUiObserver()}disconnect(){this.clearHandshakeRetry(),this.handshakeRetryAttempts=0,this.socket&&(this.socket.disconnect(),this.socket=void 0,this.uiObserver?.stop(),this.uiObserver=void 0,this.updateConnectionStatus(!1),u.info("Disconnected from Callimacus"))}configureUiObserver(e){if(!e)return this.uiObserver?.stop(),this.uiObserver=void 0,void(this.uiObserverConfig={...b,enabled:!1});const t=e.enabled??(void 0!==e.productSelector||void 0!==e.blockSelector||void 0!==e.maxTrackedElements||void 0!==e.minVisibilityRatio||this.uiObserverConfig.enabled);if(this.uiObserverConfig={...this.uiObserverConfig,...e,enabled:t},"undefined"==typeof window||"undefined"==typeof document||!this.uiObserverConfig.enabled)return this.uiObserver?.stop(),void(this.uiObserver=void 0);this.uiObserver&&this.uiObserver.stop(),this.uiObserver=new k(this.uiObserverConfig),this.uiObserver.start()}sendUserInteraction(e,t){if(!this.socket)return void u.error("Socket is not connected. Cannot send interaction.");if(e===p.SUGGEST)return void u.error("SUGGEST is a request/response command. Use suggest() instead.");if(e===p.BACK_FROM_ROUND){if(void 0===t.chapterId)return void u.error("BACK_FROM_ROUND requires chapterId.")}const s={type:e,payload:this.enrichPayloadWithUiContext(t)},r={id:y()};this.socket.emit(n.USER_INTERACTION,{type:s.type,payload:s.payload},r.id)}async suggest(e,t={}){if(!this.socket?.connected)return{suggestions:[]};try{return function(e){const t=e?.suggestions;return{suggestions:Array.isArray(t)?t.filter(e=>"string"==typeof e):[]}}(await this.socket.timeout(t.timeoutMs??4e3).emitWithAck(n.USER_INTERACTION,{type:p.SUGGEST,payload:e}))}catch(e){return u.warn("Suggestions failed or timed out; serving none.",e),{suggestions:[]}}}async gatherClientInfo(){const e="undefined"==typeof navigator?void 0:navigator,t="undefined"==typeof window?void 0:window.screen;return{userAgent:e?.userAgent??"",language:e?.language??"",timezone:(new Intl.DateTimeFormat).resolvedOptions().timeZone,localTime:(new Date).toLocaleString(),screenResolution:void 0===t?"":`${t.width}x${t.height}`,location:await this.getLocation()}}onServerResponse(e){return this.serverResponseListeners.add(e),()=>{this.serverResponseListeners.delete(e)}}onConnectionStatus(e){return this.connectionStatusListeners.add(e),()=>{this.connectionStatusListeners.delete(e)}}onError(e){return this.errorListeners.add(e),()=>{this.errorListeners.delete(e)}}}const T=new E,O=200;function x(e,t={}){if(void 0!==e&&e.length>200)throw new RangeError("[thamyr] landing value exceeds 200 characters");return{inputEvent:{type:"customPage",data:void 0===e?{}:{value:e}},...t}}function C(e,t={}){const{block:s,payload:n,value:r,...i}=t;return{inputEvent:{type:"customInteraction",data:{interactionId:e,...void 0!==s&&{nodeKey:s},...void 0!==n&&{payload:n},...void 0!==r&&{value:r}}},...i}}function I(e){return e.receptors??e.intent??[]}function A(e){return"key"in e?e.key:void 0}const _="custom:addToCartResult";function j(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}const U=e=>"string"==typeof e&&e.length>0,N=e=>j(e)&&U(e.size)&&U(e.variantId)&&"boolean"==typeof e.orderable;function $(e){if(!j(e.data)||!j(e.data.addToCart))return;const t=e.data.addToCart;return"error"===t.status?{status:"error"}:"resolved"===t.status&&U(t.variantId)&&U(t.productName)&&U(t.size)?{status:"resolved",variantId:t.variantId,productName:t.productName,size:t.size}:"size_selection_needed"===t.status&&U(t.productSku)&&U(t.productName)&&Array.isArray(t.availableSizes)&&t.availableSizes.every(N)?{status:"size_selection_needed",productSku:t.productSku,productName:t.productName,availableSizes:t.availableSizes}:void 0}const D=e=>j(e)?e:{};function q(e,t,s){const[n,...r]=t;if(!j(e)||!Object.hasOwn(e,n))return;const i=0===r.length?function(e,t){if(j(e)&&"string"==typeof e.docId)return{...e,values:{...D(e.values),...t.values},inputs:{...D(e.inputs),...t.inputs},textRuns:{...D(e.textRuns),...t.textRuns}}}(e[n],s):q(e[n],r,s);return i&&{...e,[n]:i}}function z(e,t){const s=e.blocks??[],n=e.id===t.chapterId?s.findIndex(e=>e.id===t.blockId):-1;if(-1===n)return e;const r=s[n],i=q(r.data,t.contentId.split("."),t);return i?{...e,blocks:s.with(n,{...r,data:i})}:e}const L=new Set;function K(e){L.has(e)||(L.add(e),u.warn(`${e}() is a browser-only intent API and does nothing on React Native. Use @callimacus/intent/native (initIntentNative) for intent tracking on native.`))}function B(e){K("setConsent")}function M(e){K("setGeo")}function P(e){K("setDebug")}function V(e){K("setDebugPanel")}function H(e={}){K("initIntent")}function W(){K("getIntentSessionId")}function G(){K("ensureIntentSessionId")}function Y(){K("clearIntentSessionId")}function F(e){K("setIntentSessionMaxAge")}const J={bodySerializer:e=>JSON.stringify(e,(e,t)=>"bigint"==typeof t?t.toString():t)},Q=Object.entries({$body_:"body",$headers_:"headers",$path_:"path",$query_:"query"});function Z(e,t){t||(t=new Map);for(const s of e)"in"in s?s.key&&t.set(s.key,{in:s.in,map:s.map}):"key"in s?t.set(s.key,{map:s.map}):s.args&&Z(s.args,t);return t}function X(e,t){const s={headers:Object.create(null),path:Object.create(null),query:Object.create(null)},n=Z(t);function r(e,t,n){let r=s[e];void 0===r&&(r=Object.create(null),s[e]=r),r[t]=n}let i;for(const[o,a]of e.entries())if(t[o]&&(i=t[o]),i)if("in"in i)if(i.key){const e=n.get(i.key),t=e.map||i.key;e.in&&r(e.in,t,a)}else s.body=a;else for(const[e,t]of Object.entries(a??{})){const o=n.get(e);if(o)if(o.in){const s=o.map||e;r(o.in,s,t)}else s[o.map]=t;else{const s=Q.find(([t])=>e.startsWith(t));if(s){const[n,i]=s;r(i,e.slice(n.length),t)}else if("allowExtra"in i&&i.allowExtra)for(const[s,n]of Object.entries(i.allowExtra))if(n){r(s,e,t);break}}}return function(e){for(const[t,s]of Object.entries(e))"body"!==t&&(!s||"object"!=typeof s||Array.isArray(s)||Object.keys(s).length||delete e[t])}(s),s}const ee=({allowReserved:e,explode:t,name:s,style:n,value:r})=>{if(!t){const t=(e?r:r.map(e=>encodeURIComponent(e))).join((e=>{switch(e){case"form":default:return",";case"pipeDelimited":return"|";case"spaceDelimited":return"%20"}})(n));switch(n){case"label":return`.${t}`;case"matrix":return`;${s}=${t}`;case"simple":return t;default:return`${s}=${t}`}}const i=(e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}})(n),o=r.map(t=>"label"===n||"simple"===n?e?t:encodeURIComponent(t):te({allowReserved:e,name:s,value:t})).join(i);return"label"===n||"matrix"===n?i+o:o},te=({allowReserved:e,name:t,value:s})=>{if(null==s)return"";if("object"==typeof s)throw new Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");return`${t}=${e?s:encodeURIComponent(s)}`},se=({allowReserved:e,explode:t,name:s,style:n,value:r,valueOnly:i})=>{if(r instanceof Date)return i?r.toISOString():`${s}=${r.toISOString()}`;if("deepObject"!==n&&!t){let t=[];Object.entries(r).forEach(([s,n])=>{t=[...t,s,e?n:encodeURIComponent(n)]});const i=t.join(",");switch(n){case"form":return`${s}=${i}`;case"label":return`.${i}`;case"matrix":return`;${s}=${i}`;default:return i}}const o=(e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}})(n),a=Object.entries(r).map(([t,r])=>te({allowReserved:e,name:"deepObject"===n?`${s}[${t}]`:t,value:r})).join(o);return"label"===n||"matrix"===n?o+a:a},ne=/\{[^{}]+\}/g,re=({baseUrl:e,path:t,query:s,querySerializer:n,url:r})=>{let i=(e??"")+(r.startsWith("/")?r:`/${r}`);t&&(i=(({path:e,url:t})=>{let s=t;const n=t.match(ne);if(n)for(const t of n){let n=!1,r=t.substring(1,t.length-1),i="simple";r.endsWith("*")&&(n=!0,r=r.substring(0,r.length-1)),r.startsWith(".")?(r=r.substring(1),i="label"):r.startsWith(";")&&(r=r.substring(1),i="matrix");const o=e[r];if(null==o)continue;if(Array.isArray(o)){s=s.replace(t,ee({explode:n,name:r,style:i,value:o}));continue}if("object"==typeof o){s=s.replace(t,se({explode:n,name:r,style:i,value:o,valueOnly:!0}));continue}if("matrix"===i){s=s.replace(t,`;${te({name:r,value:o})}`);continue}const a=encodeURIComponent("label"===i?`.${o}`:o);s=s.replace(t,a)}return s})({path:t,url:i}));let o=s?n(s):"";return o.startsWith("?")&&(o=o.substring(1)),o&&(i+=`?${o}`),i};function ie(e){const t=void 0!==e.body;if(t&&e.bodySerializer){if("serializedBody"in e){return void 0!==e.serializedBody&&""!==e.serializedBody?e.serializedBody:null}return""!==e.body?e.body:null}if(t)return e.body}const oe=async(e,t)=>{const s="function"==typeof t?await t(e):t;if(s)return"bearer"===e.scheme?`Bearer ${s}`:"basic"===e.scheme?`Basic ${btoa(s)}`:s},ae=({parameters:e={},...t}={})=>s=>{const n=[];if(s&&"object"==typeof s)for(const r in s){const i=s[r];if(null==i)continue;const o=e[r]||t;if(Array.isArray(i)){const e=ee({allowReserved:o.allowReserved,explode:!0,name:r,style:"form",value:i,...o.array});e&&n.push(e)}else if("object"==typeof i){const e=se({allowReserved:o.allowReserved,explode:!0,name:r,style:"deepObject",value:i,...o.object});e&&n.push(e)}else{const e=te({allowReserved:o.allowReserved,name:r,value:i});e&&n.push(e)}}return n.join("&")},ce=(e,t)=>!!t&&!!(e.headers.has(t)||e.query?.[t]||e.headers.get("Cookie")?.includes(`${t}=`));const le=e=>re({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:"function"==typeof e.querySerializer?e.querySerializer:ae(e.querySerializer),url:e.url}),de=(e,t)=>{const s={...e,...t};return s.baseUrl?.endsWith("/")&&(s.baseUrl=s.baseUrl.substring(0,s.baseUrl.length-1)),s.headers=he(e.headers,t.headers),s},ue=e=>{const t=[];return e.forEach((e,s)=>{t.push([s,e])}),t},he=(...e)=>{const t=new Headers;for(const s of e){if(!s)continue;const e=s instanceof Headers?ue(s):Object.entries(s);for(const[s,n]of e)if(null===n)t.delete(s);else if(Array.isArray(n))for(const e of n)t.append(s,e);else void 0!==n&&t.set(s,"object"==typeof n?JSON.stringify(n):n)}return t};class ye{fns=[];clear(){this.fns=[]}eject(e){const t=this.getInterceptorIndex(e);this.fns[t]&&(this.fns[t]=null)}exists(e){const t=this.getInterceptorIndex(e);return Boolean(this.fns[t])}getInterceptorIndex(e){return"number"==typeof e?this.fns[e]?e:-1:this.fns.indexOf(e)}update(e,t){const s=this.getInterceptorIndex(e);return!!this.fns[s]&&(this.fns[s]=t,e)}use(e){return this.fns.push(e),this.fns.length-1}}const pe=ae({allowReserved:!1,array:{explode:!0,style:"form"},object:{explode:!0,style:"deepObject"}}),fe={"Content-Type":"application/json"},me=(e={})=>({...J,headers:fe,parseAs:"auto",querySerializer:pe,...e}),ge=(e={})=>{let t=de(me(),e);const s=()=>({...t}),n={error:new ye,request:new ye,response:new ye},r=async e=>{const s={...t,...e,fetch:e.fetch??t.fetch??globalThis.fetch,headers:he(t.headers,e.headers),serializedBody:void 0};s.security&&await async function(e){for(const t of e.security??[]){if(ce(e,t.name))continue;const s=await oe(t,e.auth);if(!s)continue;const n=t.name??"Authorization";switch(t.in){case"query":e.query||(e.query={}),e.query[n]=s;break;case"cookie":e.headers.append("Cookie",`${n}=${s}`);break;default:e.headers.set(n,s)}}}(s),s.requestValidator&&await s.requestValidator(s),void 0!==s.body&&s.bodySerializer&&(s.serializedBody=s.bodySerializer(s.body)),void 0!==s.body&&""!==s.serializedBody||s.headers.delete("Content-Type");return{opts:s,url:le(s)}},i=async e=>{const s=e.throwOnError??t.throwOnError,i=e.responseStyle??t.responseStyle;let o,a;try{const{opts:t,url:s}=await r(e),i={redirect:"follow",...t,body:ie(t)};o=new Request(s,i);for(const e of n.request.fns)e&&(o=await e(o,t));const c=t.fetch;a=await c(o);for(const e of n.response.fns)e&&(a=await e(a,o,t));const l={request:o,response:a};if(a.ok){const e=("auto"===t.parseAs?(e=>{if(!e)return"stream";const t=e.split(";")[0]?.trim();return t?t.startsWith("application/json")||t.endsWith("+json")?"json":"multipart/form-data"===t?"formData":["application/","audio/","image/","video/"].some(e=>t.startsWith(e))?"blob":t.startsWith("text/")?"text":void 0:void 0})(a.headers.get("Content-Type")):t.parseAs)??"json";if(204===a.status||"0"===a.headers.get("Content-Length")){let s;switch(e){case"arrayBuffer":case"blob":case"text":s=await a[e]();break;case"formData":s=new FormData;break;case"stream":s=a.body;break;default:s={}}return"data"===t.responseStyle?s:{data:s,...l}}let s;switch(e){case"arrayBuffer":case"blob":case"formData":case"text":s=await a[e]();break;case"json":{const e=await a.text();s=e?JSON.parse(e):{};break}case"stream":return"data"===t.responseStyle?a.body:{data:a.body,...l}}return"json"===e&&(t.responseValidator&&await t.responseValidator(s),t.responseTransformer&&(s=await t.responseTransformer(s))),"data"===t.responseStyle?s:{data:s,...l}}const d=await a.text();let u;try{u=JSON.parse(d)}catch{}throw u??d}catch(t){let r=t;for(const t of n.error.fns)t&&(r=await t(r,a,o,e));if(r=r||{},s)throw r;return"data"===i?void 0:{error:r,request:o,response:a}}},o=e=>t=>i({...t,method:e}),a=e=>async t=>{const{opts:s,url:i}=await r(t);return function({onRequest:e,onSseError:t,onSseEvent:s,responseTransformer:n,responseValidator:r,sseDefaultRetryDelay:i,sseMaxRetryAttempts:o,sseMaxRetryDelay:a,sseSleepFn:c,url:l,...d}){let u;const h=c??(e=>new Promise(t=>setTimeout(t,e)));return{stream:async function*(){let c=i??3e3,y=0;const p=d.signal??(new AbortController).signal;for(;!p.aborted;){y++;const i=d.headers instanceof Headers?d.headers:new Headers(d.headers);void 0!==u&&i.set("Last-Event-ID",u);try{const t={redirect:"follow",...d,body:d.serializedBody,headers:i,signal:p};let o=new Request(l,t);e&&(o=await e(l,t));const a=d.fetch??globalThis.fetch,h=await a(o);if(!h.ok)throw new Error(`SSE failed: ${h.status} ${h.statusText}`);if(!h.body)throw new Error("No body in SSE response");const y=h.body.pipeThrough(new TextDecoderStream).getReader();let f="";const m=()=>{try{y.cancel()}catch{}};p.addEventListener("abort",m);try{for(;;){const{done:e,value:t}=await y.read();if(e)break;f+=t,f=f.replace(/\r\n?/g,"\n");const i=f.split("\n\n");f=i.pop()??"";for(const e of i){const t=e.split("\n"),i=[];let o,a;for(const e of t)if(e.startsWith("data:"))i.push(e.replace(/^data:\s*/,""));else if(e.startsWith("event:"))o=e.replace(/^event:\s*/,"");else if(e.startsWith("id:"))u=e.replace(/^id:\s*/,"");else if(e.startsWith("retry:")){const t=Number.parseInt(e.replace(/^retry:\s*/,""),10);Number.isNaN(t)||(c=t)}let l=!1;if(i.length){const e=i.join("\n");try{a=JSON.parse(e),l=!0}catch{a=e}}l&&(r&&await r(a),n&&(a=await n(a))),s?.({data:a,event:o,id:u,retry:c}),i.length&&(yield a)}}}finally{p.removeEventListener("abort",m),y.releaseLock()}break}catch(e){if(t?.(e),void 0!==o&&y>=o)break;const s=Math.min(c*2**(y-1),a??3e4);await h(s)}}}()}}({...s,body:s.body,method:e,onRequest:async(e,t)=>{let r=new Request(e,t);for(const e of n.request.fns)e&&(r=await e(r,s));return r},serializedBody:ie(s),url:i})};return{buildUrl:e=>le({...t,...e}),connect:o("CONNECT"),delete:o("DELETE"),get:o("GET"),getConfig:s,head:o("HEAD"),interceptors:n,options:o("OPTIONS"),patch:o("PATCH"),post:o("POST"),put:o("PUT"),request:i,setConfig:e=>(t=de(t,e),s()),sse:{connect:a("CONNECT"),delete:a("DELETE"),get:a("GET"),head:a("HEAD"),options:a("OPTIONS"),patch:a("PATCH"),post:a("POST"),put:a("PUT"),trace:a("TRACE")},trace:o("TRACE")}};class be{client;constructor(e){this.client=e.client}}class ke{defaultKey="default";instances=new Map;get(e){const t=this.instances.get(e??this.defaultKey);if(!t)throw new Error('No SDK client found. Create one with "new CallimacusApi()" to fix this error.');return t}set(e,t){this.instances.set(t??this.defaultKey,e)}}class ve extends be{getPage(e,t){const s=X([e],[{args:[{in:"path",key:"language"},{in:"path",key:"id"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/page/{language}/{id}",...t,...s})}listTopics(e,t){const s=X([e],[{args:[{in:"path",key:"language"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/topic/{language}",...t,...s})}getTopicContents(e,t){const s=X([e],[{args:[{in:"path",key:"language"},{in:"path",key:"idOrSlug"},{in:"query",key:"offset"},{in:"query",key:"limit"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/topic/{language}/{idOrSlug}",...t,...s})}getDocumentBySlug(e,t){const s=X([e],[{args:[{in:"path",key:"language"},{in:"path",key:"slug"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/document/{language}/{slug}",...t,...s})}getDocumentByGroup(e,t){const s=X([e],[{args:[{in:"path",key:"language"},{in:"path",key:"groupId"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/document/by-group/{language}/{groupId}",...t,...s})}getDocumentByPath(e,t){const s=X([e],[{args:[{in:"query",key:"path"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/document/by-path",...t,...s})}}class Re extends be{getShared(e,t){const s=X([e],[{args:[{in:"path",key:"id"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/share/{id}",...t,...s})}share(e,t){const s=X([e],[{args:[{in:"path",key:"id"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/share/{id}",...t,...s})}}class we extends be{getSimilar(e,t){const s=X([e],[{args:[{in:"path",key:"productId"},{in:"query",key:"topK"},{in:"query",key:"language"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/product/{productId}/similar",...t,...s})}getRecommendations(e,t){const s=X([e],[{args:[{in:"path",key:"productId"},{in:"query",key:"language"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/product/{productId}/recommendations",...t,...s})}}class Se extends be{getLast(e,t){const s=X([e],[{args:[{in:"query",key:"storyId"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/whisper",...t,...s})}}class Ee extends be{trackEvent(e,t){const s=X([e],[{args:[{in:"body",key:"storyId"},{in:"body",key:"eventName"},{in:"body",key:"content"},{in:"body",key:"payload"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/track-event",...t,...s,headers:{"Content-Type":"application/json",...t?.headers,...s.headers}})}}class Te extends be{getCart(e){return(e?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/cart",...e})}addItemToCart(e,t){const s=X([e],[{args:[{in:"body",key:"productId"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/cart/add",...t,...s,headers:{"Content-Type":"application/json",...t?.headers,...s.headers}})}removeItemFromCart(e,t){const s=X([e],[{args:[{in:"body",key:"productId"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/cart/remove",...t,...s,headers:{"Content-Type":"application/json",...t?.headers,...s.headers}})}updateProductQuantity(e,t){const s=X([e],[{args:[{in:"body",key:"productId"},{in:"body",key:"quantity"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/cart/update",...t,...s,headers:{"Content-Type":"application/json",...t?.headers,...s.headers}})}}class Oe extends be{similar(e,t){const s=X([e],[{args:[{in:"body",key:"anchorId"},{in:"body",key:"topK"},{in:"body",key:"locale"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/skesis/query/similar",...t,...s,headers:{"Content-Type":"application/json",...t?.headers,...s.headers}})}related(e,t){const s=X([e],[{args:[{in:"body",key:"anchorId"},{in:"body",key:"locale"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/skesis/query/related",...t,...s,headers:{"Content-Type":"application/json",...t?.headers,...s.headers}})}}class xe extends be{static __registry=new ke;constructor(e){super(e),xe.__registry.set(this,e.key)}_content;get content(){return this._content??=new ve({client:this.client})}_stories;get stories(){return this._stories??=new Re({client:this.client})}_products;get products(){return this._products??=new we({client:this.client})}_whisper;get whisper(){return this._whisper??=new Se({client:this.client})}_analytics;get analytics(){return this._analytics??=new Ee({client:this.client})}_cart;get cart(){return this._cart??=new Te({client:this.client})}_skesis;get skesis(){return this._skesis??=new Oe({client:this.client})}}class Ce extends Error{status;body;response;request;constructor(e,t,s){const n=t?.status,r=s?`${s.method} ${s.url}`:"request";let i=`[thamyr] ${r} failed before a response arrived`;t&&(i=t.ok?`[thamyr] ${r} → ${t.status}, but the response could not be processed`:`[thamyr] ${r} → ${t.status}`),super(i,e instanceof Error?{cause:e}:void 0),this.name="ThamyrHttpError",this.status=n,this.body=e,this.response=t,this.request=s}}function Ie(e){const t=ge(me({baseUrl:new URL("api/v3",e.endpoint).href,headers:{Authorization:`Bearer ${e.accessToken}`,"x-sl-access-token":e.accessToken},credentials:e.withCredentials?"include":"same-origin"}));return t.interceptors.error.use((e,s,n,r)=>{if(!(r.throwOnError??t.getConfig().throwOnError??!1)||!0===r.signal?.aborted)return e;return new Ce(""===e?{}:e??{},s,n)}),t}export{_ as ADD_TO_CART_RESULT_BLOCK,xe as CallimacusApi,f as CallimacusEvent,E as CallimacusService,o as ChapterStatus,n as ClientEvents,i as GalleryMode,O as LANDING_VALUE_MAX_LENGTH,R as MAX_HANDSHAKE_RETRIES,r as SLInputEventType,s as ServerEvents,Ce as ThamyrHttpError,t as ThamyrResponseType,p as UserInteractionType,$ as addToCartResultOf,z as applyBlockPatch,A as blockKeyOf,T as callimacusService,S as classifyConnectError,Y as clearIntentSessionId,Ie as createContractClient,G as ensureIntentSessionId,g as extractTtsAudio,W as getIntentSessionId,H as initIntent,C as interactionRound,a as isCustomBlock,l as isMasterProduct,c as isSetProduct,x as landingRound,u as logger,v as parseConnectRejection,y as randomUuid,I as receptorsOf,B as setConsent,P as setDebug,V as setDebugPanel,M as setGeo,F as setIntentSessionMaxAge,w as shouldRetryHandshake,h as transformImageUrl};
|
|
8
|
+
import{io as e}from"socket.io-client";const t={ERROR:"error",CHAPTER_EVENT:"chapter-event",CHAPTER_DELETED:"chapter-deleted",STORY_RESET:"story-reset",STORY_CREATED:"story-created",STORY_SHARED:"story-shared",BLOCK_PATCH:"block-patch"},s={ERROR:"error",SYSTEM_MESSAGE:"system-message",SERVER_STATUS:"server-status",SERVER_RESPONSE:"server-response"},n={CLIENT_READY:"client-ready",USER_INTERACTION:"user-interaction"},r={question:"question",content:"content",topic:"topic",tag:"tag",image:"image",video:"video",gallery:"gallery",relatedQuestion:"relatedQuestion",page:"page",customInteraction:"customInteraction",customPage:"customPage"},i={masonry:"masonry",carousel:"carousel"},o={understandingQuery:1,craftingAnswer:2,curatingContent:3,done:4};function a(e){return e.type.startsWith("custom:")}function c(e){return"set"in e.type&&e.type.set}function l(e){return"master"in e.type&&e.type.master}const d={debug:0,info:1,warn:2,error:3,silent:4};const u=new class{config={enabled:!1,level:"info",prefix:"[Thamyr]"};debug=(...e)=>{this.log("debug",...e)};info=(...e)=>{this.log("info",...e)};warn=(...e)=>{this.log("warn",...e)};error=(...e)=>{this.log("error",...e)};log(e,...t){if(!(this.config.enabled&&d[e]>=d[this.config.level]))return;const{prefix:s}=this.config,n=void 0===s||""===s?t:[s,...t];console[e](...n)}configure(e){this.config={...this.config,...e}}getConfig(){return{...this.config}}};function h(e,t){const s=new URL(e),n=decodeURIComponent(s.pathname.slice(1)),r=(new TextEncoder).encode(JSON.stringify({bucket:"storage.callimacus.ai",key:n,edits:t})).toBase64();return`${s.origin}/${encodeURIComponent(r)}`}function y(){const e="undefined"==typeof crypto?void 0:crypto;if("function"==typeof e?.randomUUID)return e.randomUUID();const t=new Uint8Array(16);if("function"==typeof e?.getRandomValues)e.getRandomValues(t);else for(let e=0;e<16;e++)t[e]=Math.floor(256*Math.random());t[6]=15&t[6]|64,t[8]=63&t[8]|128;const s=[...t].map(e=>e.toString(16).padStart(2,"0"));return[s.slice(0,4).join(""),s.slice(4,6).join(""),s.slice(6,8).join(""),s.slice(8,10).join(""),s.slice(10,16).join("")].join("-")}var p,f;function m(e){if("object"!=typeof e||null===e)return!1;const t=e;return"string"==typeof t.audioUrl&&"string"==typeof t.mimeType}function g(e){if("object"==typeof e&&null!==e)for(const t of Object.values(e))if(m(t))return t}!function(e){e.GET_STORY="get-story",e.CREATE_ROUND="create-round",e.RESET_STORY="reset-story",e.BACK_FROM_ROUND="back-from-round",e.SHARE_STORY="share-story",e.GET_SHARED_STORY="get-shared-story",e.SUGGEST="suggest"}(p||(p={})),function(e){e.ROUND_CREATED="round-created",e.ROUND_EVENT="round-event",e.ROUND_COMPLETED="round-completed",e.ERROR="error"}(f||(f={}));const b={productSelector:"[data-product-id]",blockSelector:"[data-block-id]",maxTrackedElements:40,minVisibilityRatio:.5};class v{elements=new Map;elementRefs=new Map;elementKeys=new WeakMap;blocks=new Map;blockRefs=new Map;blockKeys=new WeakMap;started=!1;config;constructor(e={}){const t=e.minVisibilityRatio??b.minVisibilityRatio;this.config={productSelector:e.productSelector??b.productSelector,blockSelector:e.blockSelector??b.blockSelector,maxTrackedElements:e.maxTrackedElements??b.maxTrackedElements,minVisibilityRatio:Math.min(1,Math.max(0,t))}}rescanUi(){if(!this.canUseDom())return;let e,t;try{e=document.querySelectorAll(this.config.productSelector),t=document.querySelectorAll(this.config.blockSelector)}catch(e){return void u.warn("UI Observer: invalid selector, skipping rescan:",e)}const s=Date.now();for(const t of e){const e=this.normalizeRect(t.getBoundingClientRect()),n=this.calculateVisibilityRatio(e);this.syncTrackedElement(t,{bounds:e,isVisible:n>=this.config.minVisibilityRatio,visibilityRatio:n,observedAt:s})}for(const e of t){const t=this.normalizeRect(e.getBoundingClientRect()),n=this.calculateVisibilityRatio(t);this.syncTrackedBlock(e,{bounds:t,isVisible:n>=this.config.minVisibilityRatio,visibilityRatio:n,observedAt:s})}this.pruneTrackedElements(),this.pruneTrackedBlocks()}pruneTrackedElements(){if(this.elements.size<=this.config.maxTrackedElements)return;const e=[...this.elements].sort(([,e],[,t])=>{const s=e.visibilityRatio-t.visibilityRatio;return 0===s||Number.isNaN(s)?e.observedAt-t.observedAt:s}).slice(0,this.elements.size-this.config.maxTrackedElements);for(const[t]of e)this.elements.delete(t),this.elementRefs.delete(t)}pruneTrackedBlocks(){if(this.blocks.size<=this.config.maxTrackedElements)return;const e=[...this.blocks].sort(([,e],[,t])=>{const s=e.visibilityRatio-t.visibilityRatio;return 0===s||Number.isNaN(s)?e.observedAt-t.observedAt:s}).slice(0,this.blocks.size-this.config.maxTrackedElements);for(const[t]of e)this.blocks.delete(t),this.blockRefs.delete(t)}syncTrackedElement(e,t){const s=this.resolveElementId(e),n=this.resolveBlockId(e),r=this.createTrackingKey(s,n),i=this.elementKeys.get(e);void 0!==i&&""!==i&&i!==r&&(this.elements.delete(i),this.elementRefs.delete(i)),this.elementKeys.set(e,r),this.elementRefs.set(r,e),this.elements.set(r,{id:s,blockId:n,trackingKey:r,...t})}syncTrackedBlock(e,t){const s=this.resolveTrackedBlockId(e),n=this.blockKeys.get(e),r=s;void 0!==n&&""!==n&&n!==r&&(this.blocks.delete(n),this.blockRefs.delete(n)),this.blockKeys.set(e,r),this.blockRefs.set(r,e),this.blocks.set(r,{id:s,...t})}resolveElementId(e){return[e.dataset.productId,e.dataset.productid,e.dataset.sku,e.id].find(e=>void 0!==e&&""!==e)??`${e.tagName}-${e.dataset.productId??this.elements.size}`}resolveBlockId(e){let t;try{t=e.closest(this.config.blockSelector)??void 0}catch{return}return t instanceof HTMLElement?this.resolveTrackedBlockId(t):void 0}resolveTrackedBlockId(e){return[e.dataset.blockId,e.dataset.blockid,e.id].find(e=>void 0!==e&&""!==e)??`${e.tagName}-${e.dataset.blockId??this.blocks.size}`}createTrackingKey(e,t){return void 0===t||""===t?e:`${e}::${t}`}normalizeRect(e){return{x:e.x,y:e.y,width:e.width,height:e.height,top:e.top,left:e.left,right:e.right,bottom:e.bottom}}calculateVisibilityRatio(e){const t=Math.max(0,Math.min(e.right,window.innerWidth)-Math.max(e.left,0))*Math.max(0,Math.min(e.bottom,window.innerHeight)-Math.max(e.top,0)),s=e.width*e.height;if(s<=0)return 0;const n=window.innerWidth*window.innerHeight,r=n>0?Math.min(s,n):s;return Math.min(1,Math.max(0,t/r))}canUseDom(){return void 0!==globalThis.window&&"undefined"!=typeof document}start(){!this.started&&this.canUseDom()&&(this.started=!0)}stop(){this.started&&(this.started=!1,this.elements.clear(),this.elementRefs.clear(),this.blocks.clear(),this.blockRefs.clear())}getSnapshot(){if(!this.canUseDom())return;this.rescanUi();const e=[],t=[],s=Date.now();for(const[t,s]of this.elements){const n=this.elementRefs.get(t);n?.isConnected?s.visibilityRatio<=0||e.push({blockId:s.blockId,element:{id:s.id,bounds:s.bounds,isVisible:s.visibilityRatio>=this.config.minVisibilityRatio,visibilityRatio:s.visibilityRatio}}):(this.elements.delete(t),this.elementRefs.delete(t))}for(const[e,s]of this.blocks){const n=this.blockRefs.get(e);n?.isConnected?s.visibilityRatio<this.config.minVisibilityRatio||t.push(s.id):(this.blocks.delete(e),this.blockRefs.delete(e))}const n=e.slice(0,this.config.maxTrackedElements);return{timestamp:s,viewport:{width:window.innerWidth,height:window.innerHeight},blockIds:[...new Set([...t,...n.flatMap(e=>e.blockId??[])])],elements:n.map(e=>e.element)}}}function k(e){const{data:t}=e;if("object"!=typeof t||null===t)return;const{code:s,reason:n}=t;return"number"==typeof s?{code:s,..."string"==typeof n&&{reason:n}}:void 0}const w=3;function R(e,t){return e>=500&&t<3}function S(e,t){return t?void 0:k(e)??{code:0}}class E{socket;serverResponseListeners=new Set;connectionStatusListeners=new Set;errorListeners=new Set;uiObserver;uiObserverConfig=b;handshakeRetryAttempts=0;handshakeRetryTimer;setupEventListeners(){this.socket&&(this.socket.on("connect",()=>{u.debug("Connected to Callimacus"),this.clearHandshakeRetry(),this.handshakeRetryAttempts=0,this.updateConnectionStatus(!0),this.socket?.emit(n.CLIENT_READY)}),this.socket.on("disconnect",()=>{u.info("Disconnected from Callimacus"),this.updateConnectionStatus(!1)}),this.socket.on("connect_error",e=>{this.updateConnectionStatus(!1);const t=S(e,this.socket?.active??!0);t&&(u.error("Connection refused by Callimacus:",e.message,t.reason??""),this.notifyRejection(t,e.message),this.scheduleHandshakeRetry(t.code))}),this.socket.on(s.ERROR,e=>{u.error("Received error from Callimacus:",e),this.notifyErrorListeners(e)}),this.socket.io.on("reconnect",e=>{u.info(`Reconnected to Callimacus after ${e} attempts`)}),this.socket.io.on("reconnect_attempt",e=>{u.info(`Attempting to reconnect: attempt ${e}`)}),this.socket.io.on("reconnect_error",e=>{u.error("Reconnection error:",e)}),this.socket.io.on("reconnect_failed",()=>{u.error("Failed to reconnect to Callimacus service!"),this.updateConnectionStatus(!1)}),this.socket.on(s.SERVER_RESPONSE,e=>{this.notifyServerResponseListeners(e)}))}notifyServerResponseListeners(e){this.serverResponseListeners.forEach(t=>{try{t(e)}catch(e){u.error("Error in server response listener:",e)}})}updateConnectionStatus(e){this.connectionStatusListeners.forEach(t=>{try{t(e)}catch(e){u.error("Error in connection status listener:",e)}})}notifyRejection(e,t){this.notifyErrorListeners({code:e.code,message:t,...void 0!==e.reason&&{reason:e.reason}})}scheduleHandshakeRetry(e){if(!this.socket)return;if(this.clearHandshakeRetry(),!R(e,this.handshakeRetryAttempts))return void(e>=500&&(u.error("Giving up on the Callimacus connection after 3 retries"),this.notifyRejection({code:e,reason:"retries_exhausted"},"Connection failed after 3 retries; call connect() to try again")));const t=2**(this.handshakeRetryAttempts+1);this.handshakeRetryAttempts+=1,u.info(`Retrying Callimacus connection in ${t}s (attempt ${this.handshakeRetryAttempts}/3)`),this.handshakeRetryTimer=setTimeout(()=>{this.socket?.connect()},1e3*t)}clearHandshakeRetry(){void 0!==this.handshakeRetryTimer&&(clearTimeout(this.handshakeRetryTimer),this.handshakeRetryTimer=void 0)}notifyErrorListeners(e){this.errorListeners.forEach(t=>{try{t(e)}catch(e){u.error("Error in error listener:",e)}})}async getLocation(){if("undefined"!=typeof navigator&&"function"==typeof navigator.geolocation?.getCurrentPosition)return new Promise(e=>{navigator.geolocation.getCurrentPosition(t=>{e(t)},()=>{e(void 0)})})}enrichPayloadWithUiContext(e){try{this.ensureUiObserver();const t=this.uiObserver?.getSnapshot();return t?{...e,context:{...e.context,uiSnapshot:t}}:e}catch(t){return u.error("Error enriching payload with UI context:",t),e}}ensureUiObserver(){"undefined"!=typeof window&&"undefined"!=typeof document&&this.uiObserverConfig.enabled&&(this.uiObserver??=new v(this.uiObserverConfig),this.uiObserver.start())}socketEndpoint(e){const t=new URL(e),s=new URL("thamyr",t).pathname;return{origin:t.origin,path:s}}connect(t="wss://localhost:4000",s,n){this.socket&&(u.warn("Already connected to Thamyr. Disconnecting first...."),this.disconnect());const r=this.socketEndpoint(t);let i;"undefined"!=typeof window&&void 0!==globalThis.location&&(i=globalThis.location.href);const o={...void 0!==i&&""!==i&&{referrer:i},...n};u.info("Connecting to Thamyr at",r),this.socket=e(r.origin,{path:r.path,transports:["websocket","polling"],tryAllTransports:!0,extraHeaders:s,auth:o}),this.setupEventListeners(),this.ensureUiObserver()}disconnect(){this.clearHandshakeRetry(),this.handshakeRetryAttempts=0,this.socket&&(this.socket.disconnect(),this.socket=void 0,this.uiObserver?.stop(),this.uiObserver=void 0,this.updateConnectionStatus(!1),u.info("Disconnected from Callimacus"))}configureUiObserver(e){if(!e)return this.uiObserver?.stop(),this.uiObserver=void 0,void(this.uiObserverConfig={...b,enabled:!1});const t=e.enabled??(void 0!==e.productSelector||void 0!==e.blockSelector||void 0!==e.maxTrackedElements||void 0!==e.minVisibilityRatio||this.uiObserverConfig.enabled);if(this.uiObserverConfig={...this.uiObserverConfig,...e,enabled:t},"undefined"==typeof window||"undefined"==typeof document||!this.uiObserverConfig.enabled)return this.uiObserver?.stop(),void(this.uiObserver=void 0);this.uiObserver&&this.uiObserver.stop(),this.uiObserver=new v(this.uiObserverConfig),this.uiObserver.start()}sendUserInteraction(e,t){if(!this.socket)return void u.error("Socket is not connected. Cannot send interaction.");if(e===p.SUGGEST)return void u.error("SUGGEST is a request/response command. Use suggest() instead.");if(e===p.BACK_FROM_ROUND){if(void 0===t.chapterId)return void u.error("BACK_FROM_ROUND requires chapterId.")}const s={type:e,payload:this.enrichPayloadWithUiContext(t)},r={id:y()};this.socket.emit(n.USER_INTERACTION,{type:s.type,payload:s.payload},r.id)}async suggest(e,t={}){if(!this.socket?.connected)return{suggestions:[]};try{return function(e){const t=e?.suggestions;return{suggestions:Array.isArray(t)?t.filter(e=>"string"==typeof e):[]}}(await this.socket.timeout(t.timeoutMs??4e3).emitWithAck(n.USER_INTERACTION,{type:p.SUGGEST,payload:e}))}catch(e){return u.warn("Suggestions failed or timed out; serving none.",e),{suggestions:[]}}}async gatherClientInfo(){const e="undefined"==typeof navigator?void 0:navigator,t="undefined"==typeof window?void 0:window.screen;return{userAgent:e?.userAgent??"",language:e?.language??"",timezone:(new Intl.DateTimeFormat).resolvedOptions().timeZone,localTime:(new Date).toLocaleString(),screenResolution:void 0===t?"":`${t.width}x${t.height}`,location:await this.getLocation()}}onServerResponse(e){return this.serverResponseListeners.add(e),()=>{this.serverResponseListeners.delete(e)}}onConnectionStatus(e){return this.connectionStatusListeners.add(e),()=>{this.connectionStatusListeners.delete(e)}}onError(e){return this.errorListeners.add(e),()=>{this.errorListeners.delete(e)}}}const T=new E,O=200;function x(e,t={}){if(void 0!==e&&e.length>200)throw new RangeError("[thamyr] landing value exceeds 200 characters");return{inputEvent:{type:"customPage",data:void 0===e?{}:{value:e}},...t}}function C(e,t={}){const{block:s,payload:n,submissionId:r,value:i,...o}=t;return{inputEvent:{type:"customInteraction",data:{interactionId:e,...void 0!==s&&{nodeKey:s},...void 0!==n&&{payload:n},...void 0!==r&&{submissionId:r},...void 0!==i&&{value:i}}},...o}}function I(e){return e.receptors??e.intent??[]}function A(e){return"key"in e?e.key:void 0}const j="custom:addToCartResult";function U(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}const _=e=>"string"==typeof e&&e.length>0,D=e=>U(e)&&_(e.size)&&_(e.variantId)&&"boolean"==typeof e.orderable;function N(e){if(!U(e.data)||!U(e.data.addToCart))return;const t=e.data.addToCart;return"error"===t.status?{status:"error"}:"resolved"===t.status&&_(t.variantId)&&_(t.productName)&&_(t.size)?{status:"resolved",variantId:t.variantId,productName:t.productName,size:t.size}:"size_selection_needed"===t.status&&_(t.productSku)&&_(t.productName)&&Array.isArray(t.availableSizes)&&t.availableSizes.every(D)?{status:"size_selection_needed",productSku:t.productSku,productName:t.productName,availableSizes:t.availableSizes}:void 0}const $=e=>U(e)?e:{};function q(e,t,s){const[n,...r]=t;if(!U(e)||!Object.hasOwn(e,n))return;const i=0===r.length?function(e,t){if(U(e)&&"string"==typeof e.docId)return{...e,values:{...$(e.values),...t.values},inputs:{...$(e.inputs),...t.inputs},textRuns:{...$(e.textRuns),...t.textRuns}}}(e[n],s):q(e[n],r,s);return i&&{...e,[n]:i}}function z(e,t){const s=e.blocks??[],n=e.id===t.chapterId?s.findIndex(e=>e.id===t.blockId):-1;if(-1===n)return e;const r=s[n],i=q(r.data,t.contentId.split("."),t);return i?{...e,blocks:s.with(n,{...r,data:i})}:e}const L=["link","ask","interact","cart","submit"],K=e=>"object"==typeof e&&null!==e&&!Array.isArray(e),B=e=>"string"==typeof e&&e.trim().length>0,M=new Set(["http:","https:","mailto:","tel:"]),P=e=>{try{return M.has(new URL(e,"https://relative.invalid").protocol)}catch{return!1}};function V(e){const{id:t,value:s,payload:n,block:r}=e,i=void 0===s||"string"==typeof s||(e=>Array.isArray(e)&&e.every(e=>"string"==typeof e))(s),o=void 0===n||K(n);if(i&&o&&(void 0===r||"string"==typeof r)&&B(t))return{type:"interact",id:t,...void 0!==s&&{value:s},...void 0!==n&&{payload:n},...void 0!==r&&{block:r}}}function H(e){if(K(e))switch(e.type){case"link":return function(e){const{url:t,newTab:s}=e;return(void 0===s||"boolean"==typeof s)&&B(t)&&P(t)?{type:"link",url:t,...void 0!==s&&{newTab:s}}:void 0}(e);case"ask":return B(e.value)?{type:"ask",value:e.value}:void 0;case"interact":return V(e);case"cart":return B(e.productId)?{type:"cart",productId:e.productId}:void 0;case"submit":return B(e.form)?{type:"submit",form:e.form}:void 0;default:return}}function W(e){const t=e instanceof FormData?e:new FormData(e),s=[];for(const e of new Set(t.keys())){const n=t.getAll(e).filter(e=>"string"==typeof e),r=e.endsWith("[]");n.length>0&&s.push([r?e.slice(0,-2):e,r||n.length>1?n:n[0]])}return Object.fromEntries(s)}const G="custom:deliverResult",F=new Set(["done","pending","ambiguous","skipped"]),Y=e=>void 0===e||"string"==typeof e,J=e=>K(e)&&"string"==typeof e.message&&Y(e.field),Q=e=>K(e)&&"string"==typeof e.status&&F.has(e.status)&&Y(e.ref);function Z(e){const t=e.type===G&&K(e.data)?e.data:void 0;if(void 0===t)return;const{status:s,submissionId:n,message:r,redirect:i,errors:o,results:a}=t;var c;return("accepted"===s||"refused"===s)&&B(n)&&Y(r)&&Y(i)&&(void 0===o||Array.isArray(o)&&o.every(J))&&(K(c=a)&&Object.values(c).every(Q))?{status:s,submissionId:n,results:a,...void 0!==r&&{message:r},...void 0!==i&&P(i)&&{redirect:i},...void 0!==o&&{errors:o}}:void 0}const X=new Set;function ee(e){X.has(e)||(X.add(e),u.warn(`${e}() is a browser-only intent API and does nothing on React Native. Use @callimacus/intent/native (initIntentNative) for intent tracking on native.`))}function te(e){ee("setConsent")}function se(e){ee("setGeo")}function ne(e){ee("setDebug")}function re(e){ee("setDebugPanel")}function ie(e={}){ee("initIntent")}function oe(){ee("getIntentSessionId")}function ae(){ee("ensureIntentSessionId")}function ce(){ee("clearIntentSessionId")}function le(e){ee("setIntentSessionMaxAge")}const de={bodySerializer:e=>JSON.stringify(e,(e,t)=>"bigint"==typeof t?t.toString():t)},ue=Object.entries({$body_:"body",$headers_:"headers",$path_:"path",$query_:"query"});function he(e,t){t||(t=new Map);for(const s of e)"in"in s?s.key&&t.set(s.key,{in:s.in,map:s.map}):"key"in s?t.set(s.key,{map:s.map}):s.args&&he(s.args,t);return t}function ye(e,t){const s={headers:Object.create(null),path:Object.create(null),query:Object.create(null)},n=he(t);function r(e,t,n){let r=s[e];void 0===r&&(r=Object.create(null),s[e]=r),r[t]=n}let i;for(const[o,a]of e.entries())if(t[o]&&(i=t[o]),i)if("in"in i)if(i.key){const e=n.get(i.key),t=e.map||i.key;e.in&&r(e.in,t,a)}else s.body=a;else for(const[e,t]of Object.entries(a??{})){const o=n.get(e);if(o)if(o.in){const s=o.map||e;r(o.in,s,t)}else s[o.map]=t;else{const s=ue.find(([t])=>e.startsWith(t));if(s){const[n,i]=s;r(i,e.slice(n.length),t)}else if("allowExtra"in i&&i.allowExtra)for(const[s,n]of Object.entries(i.allowExtra))if(n){r(s,e,t);break}}}return function(e){for(const[t,s]of Object.entries(e))"body"!==t&&(!s||"object"!=typeof s||Array.isArray(s)||Object.keys(s).length||delete e[t])}(s),s}const pe=({allowReserved:e,explode:t,name:s,style:n,value:r})=>{if(!t){const t=(e?r:r.map(e=>encodeURIComponent(e))).join((e=>{switch(e){case"form":default:return",";case"pipeDelimited":return"|";case"spaceDelimited":return"%20"}})(n));switch(n){case"label":return`.${t}`;case"matrix":return`;${s}=${t}`;case"simple":return t;default:return`${s}=${t}`}}const i=(e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}})(n),o=r.map(t=>"label"===n||"simple"===n?e?t:encodeURIComponent(t):fe({allowReserved:e,name:s,value:t})).join(i);return"label"===n||"matrix"===n?i+o:o},fe=({allowReserved:e,name:t,value:s})=>{if(null==s)return"";if("object"==typeof s)throw new Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");return`${t}=${e?s:encodeURIComponent(s)}`},me=({allowReserved:e,explode:t,name:s,style:n,value:r,valueOnly:i})=>{if(r instanceof Date)return i?r.toISOString():`${s}=${r.toISOString()}`;if("deepObject"!==n&&!t){let t=[];Object.entries(r).forEach(([s,n])=>{t=[...t,s,e?n:encodeURIComponent(n)]});const i=t.join(",");switch(n){case"form":return`${s}=${i}`;case"label":return`.${i}`;case"matrix":return`;${s}=${i}`;default:return i}}const o=(e=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}})(n),a=Object.entries(r).map(([t,r])=>fe({allowReserved:e,name:"deepObject"===n?`${s}[${t}]`:t,value:r})).join(o);return"label"===n||"matrix"===n?o+a:a},ge=/\{[^{}]+\}/g,be=({baseUrl:e,path:t,query:s,querySerializer:n,url:r})=>{let i=(e??"")+(r.startsWith("/")?r:`/${r}`);t&&(i=(({path:e,url:t})=>{let s=t;const n=t.match(ge);if(n)for(const t of n){let n=!1,r=t.substring(1,t.length-1),i="simple";r.endsWith("*")&&(n=!0,r=r.substring(0,r.length-1)),r.startsWith(".")?(r=r.substring(1),i="label"):r.startsWith(";")&&(r=r.substring(1),i="matrix");const o=e[r];if(null==o)continue;if(Array.isArray(o)){s=s.replace(t,pe({explode:n,name:r,style:i,value:o}));continue}if("object"==typeof o){s=s.replace(t,me({explode:n,name:r,style:i,value:o,valueOnly:!0}));continue}if("matrix"===i){s=s.replace(t,`;${fe({name:r,value:o})}`);continue}const a=encodeURIComponent("label"===i?`.${o}`:o);s=s.replace(t,a)}return s})({path:t,url:i}));let o=s?n(s):"";return o.startsWith("?")&&(o=o.substring(1)),o&&(i+=`?${o}`),i};function ve(e){const t=void 0!==e.body;if(t&&e.bodySerializer){if("serializedBody"in e){return void 0!==e.serializedBody&&""!==e.serializedBody?e.serializedBody:null}return""!==e.body?e.body:null}if(t)return e.body}const ke=async(e,t)=>{const s="function"==typeof t?await t(e):t;if(s)return"bearer"===e.scheme?`Bearer ${s}`:"basic"===e.scheme?`Basic ${btoa(s)}`:s},we=({parameters:e={},...t}={})=>s=>{const n=[];if(s&&"object"==typeof s)for(const r in s){const i=s[r];if(null==i)continue;const o=e[r]||t;if(Array.isArray(i)){const e=pe({allowReserved:o.allowReserved,explode:!0,name:r,style:"form",value:i,...o.array});e&&n.push(e)}else if("object"==typeof i){const e=me({allowReserved:o.allowReserved,explode:!0,name:r,style:"deepObject",value:i,...o.object});e&&n.push(e)}else{const e=fe({allowReserved:o.allowReserved,name:r,value:i});e&&n.push(e)}}return n.join("&")},Re=(e,t)=>!!t&&!!(e.headers.has(t)||e.query?.[t]||e.headers.get("Cookie")?.includes(`${t}=`));const Se=e=>be({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:"function"==typeof e.querySerializer?e.querySerializer:we(e.querySerializer),url:e.url}),Ee=(e,t)=>{const s={...e,...t};return s.baseUrl?.endsWith("/")&&(s.baseUrl=s.baseUrl.substring(0,s.baseUrl.length-1)),s.headers=Oe(e.headers,t.headers),s},Te=e=>{const t=[];return e.forEach((e,s)=>{t.push([s,e])}),t},Oe=(...e)=>{const t=new Headers;for(const s of e){if(!s)continue;const e=s instanceof Headers?Te(s):Object.entries(s);for(const[s,n]of e)if(null===n)t.delete(s);else if(Array.isArray(n))for(const e of n)t.append(s,e);else void 0!==n&&t.set(s,"object"==typeof n?JSON.stringify(n):n)}return t};class xe{fns=[];clear(){this.fns=[]}eject(e){const t=this.getInterceptorIndex(e);this.fns[t]&&(this.fns[t]=null)}exists(e){const t=this.getInterceptorIndex(e);return Boolean(this.fns[t])}getInterceptorIndex(e){return"number"==typeof e?this.fns[e]?e:-1:this.fns.indexOf(e)}update(e,t){const s=this.getInterceptorIndex(e);return!!this.fns[s]&&(this.fns[s]=t,e)}use(e){return this.fns.push(e),this.fns.length-1}}const Ce=we({allowReserved:!1,array:{explode:!0,style:"form"},object:{explode:!0,style:"deepObject"}}),Ie={"Content-Type":"application/json"},Ae=(e={})=>({...de,headers:Ie,parseAs:"auto",querySerializer:Ce,...e}),je=(e={})=>{let t=Ee(Ae(),e);const s=()=>({...t}),n={error:new xe,request:new xe,response:new xe},r=async e=>{const s={...t,...e,fetch:e.fetch??t.fetch??globalThis.fetch,headers:Oe(t.headers,e.headers),serializedBody:void 0};s.security&&await async function(e){for(const t of e.security??[]){if(Re(e,t.name))continue;const s=await ke(t,e.auth);if(!s)continue;const n=t.name??"Authorization";switch(t.in){case"query":e.query||(e.query={}),e.query[n]=s;break;case"cookie":e.headers.append("Cookie",`${n}=${s}`);break;default:e.headers.set(n,s)}}}(s),s.requestValidator&&await s.requestValidator(s),void 0!==s.body&&s.bodySerializer&&(s.serializedBody=s.bodySerializer(s.body)),void 0!==s.body&&""!==s.serializedBody||s.headers.delete("Content-Type");return{opts:s,url:Se(s)}},i=async e=>{const s=e.throwOnError??t.throwOnError,i=e.responseStyle??t.responseStyle;let o,a;try{const{opts:t,url:s}=await r(e),i={redirect:"follow",...t,body:ve(t)};o=new Request(s,i);for(const e of n.request.fns)e&&(o=await e(o,t));const c=t.fetch;a=await c(o);for(const e of n.response.fns)e&&(a=await e(a,o,t));const l={request:o,response:a};if(a.ok){const e=("auto"===t.parseAs?(e=>{if(!e)return"stream";const t=e.split(";")[0]?.trim();return t?t.startsWith("application/json")||t.endsWith("+json")?"json":"multipart/form-data"===t?"formData":["application/","audio/","image/","video/"].some(e=>t.startsWith(e))?"blob":t.startsWith("text/")?"text":void 0:void 0})(a.headers.get("Content-Type")):t.parseAs)??"json";if(204===a.status||"0"===a.headers.get("Content-Length")){let s;switch(e){case"arrayBuffer":case"blob":case"text":s=await a[e]();break;case"formData":s=new FormData;break;case"stream":s=a.body;break;default:s={}}return"data"===t.responseStyle?s:{data:s,...l}}let s;switch(e){case"arrayBuffer":case"blob":case"formData":case"text":s=await a[e]();break;case"json":{const e=await a.text();s=e?JSON.parse(e):{};break}case"stream":return"data"===t.responseStyle?a.body:{data:a.body,...l}}return"json"===e&&(t.responseValidator&&await t.responseValidator(s),t.responseTransformer&&(s=await t.responseTransformer(s))),"data"===t.responseStyle?s:{data:s,...l}}const d=await a.text();let u;try{u=JSON.parse(d)}catch{}throw u??d}catch(t){let r=t;for(const t of n.error.fns)t&&(r=await t(r,a,o,e));if(r=r||{},s)throw r;return"data"===i?void 0:{error:r,request:o,response:a}}},o=e=>t=>i({...t,method:e}),a=e=>async t=>{const{opts:s,url:i}=await r(t);return function({onRequest:e,onSseError:t,onSseEvent:s,responseTransformer:n,responseValidator:r,sseDefaultRetryDelay:i,sseMaxRetryAttempts:o,sseMaxRetryDelay:a,sseSleepFn:c,url:l,...d}){let u;const h=c??(e=>new Promise(t=>setTimeout(t,e)));return{stream:async function*(){let c=i??3e3,y=0;const p=d.signal??(new AbortController).signal;for(;!p.aborted;){y++;const i=d.headers instanceof Headers?d.headers:new Headers(d.headers);void 0!==u&&i.set("Last-Event-ID",u);try{const t={redirect:"follow",...d,body:d.serializedBody,headers:i,signal:p};let o=new Request(l,t);e&&(o=await e(l,t));const a=d.fetch??globalThis.fetch,h=await a(o);if(!h.ok)throw new Error(`SSE failed: ${h.status} ${h.statusText}`);if(!h.body)throw new Error("No body in SSE response");const y=h.body.pipeThrough(new TextDecoderStream).getReader();let f="";const m=()=>{try{y.cancel()}catch{}};p.addEventListener("abort",m);try{for(;;){const{done:e,value:t}=await y.read();if(e)break;f+=t,f=f.replace(/\r\n?/g,"\n");const i=f.split("\n\n");f=i.pop()??"";for(const e of i){const t=e.split("\n"),i=[];let o,a;for(const e of t)if(e.startsWith("data:"))i.push(e.replace(/^data:\s*/,""));else if(e.startsWith("event:"))o=e.replace(/^event:\s*/,"");else if(e.startsWith("id:"))u=e.replace(/^id:\s*/,"");else if(e.startsWith("retry:")){const t=Number.parseInt(e.replace(/^retry:\s*/,""),10);Number.isNaN(t)||(c=t)}let l=!1;if(i.length){const e=i.join("\n");try{a=JSON.parse(e),l=!0}catch{a=e}}l&&(r&&await r(a),n&&(a=await n(a))),s?.({data:a,event:o,id:u,retry:c}),i.length&&(yield a)}}}finally{p.removeEventListener("abort",m),y.releaseLock()}break}catch(e){if(t?.(e),void 0!==o&&y>=o)break;const s=Math.min(c*2**(y-1),a??3e4);await h(s)}}}()}}({...s,body:s.body,method:e,onRequest:async(e,t)=>{let r=new Request(e,t);for(const e of n.request.fns)e&&(r=await e(r,s));return r},serializedBody:ve(s),url:i})};return{buildUrl:e=>Se({...t,...e}),connect:o("CONNECT"),delete:o("DELETE"),get:o("GET"),getConfig:s,head:o("HEAD"),interceptors:n,options:o("OPTIONS"),patch:o("PATCH"),post:o("POST"),put:o("PUT"),request:i,setConfig:e=>(t=Ee(t,e),s()),sse:{connect:a("CONNECT"),delete:a("DELETE"),get:a("GET"),head:a("HEAD"),options:a("OPTIONS"),patch:a("PATCH"),post:a("POST"),put:a("PUT"),trace:a("TRACE")},trace:o("TRACE")}};class Ue{client;constructor(e){this.client=e.client}}class _e{defaultKey="default";instances=new Map;get(e){const t=this.instances.get(e??this.defaultKey);if(!t)throw new Error('No SDK client found. Create one with "new CallimacusApi()" to fix this error.');return t}set(e,t){this.instances.set(t??this.defaultKey,e)}}class De extends Ue{getPage(e,t){const s=ye([e],[{args:[{in:"path",key:"language"},{in:"path",key:"id"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/page/{language}/{id}",...t,...s})}listTopics(e,t){const s=ye([e],[{args:[{in:"path",key:"language"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/topic/{language}",...t,...s})}getTopicContents(e,t){const s=ye([e],[{args:[{in:"path",key:"language"},{in:"path",key:"idOrSlug"},{in:"query",key:"offset"},{in:"query",key:"limit"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/topic/{language}/{idOrSlug}",...t,...s})}getDocumentBySlug(e,t){const s=ye([e],[{args:[{in:"path",key:"language"},{in:"path",key:"slug"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/document/{language}/{slug}",...t,...s})}getDocumentByGroup(e,t){const s=ye([e],[{args:[{in:"path",key:"language"},{in:"path",key:"groupId"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/document/by-group/{language}/{groupId}",...t,...s})}getDocumentByPath(e,t){const s=ye([e],[{args:[{in:"query",key:"path"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/document/by-path",...t,...s})}}class Ne extends Ue{getShared(e,t){const s=ye([e],[{args:[{in:"path",key:"id"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/share/{id}",...t,...s})}share(e,t){const s=ye([e],[{args:[{in:"path",key:"id"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/share/{id}",...t,...s})}}class $e extends Ue{getSimilar(e,t){const s=ye([e],[{args:[{in:"path",key:"productId"},{in:"query",key:"topK"},{in:"query",key:"language"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/product/{productId}/similar",...t,...s})}getRecommendations(e,t){const s=ye([e],[{args:[{in:"path",key:"productId"},{in:"query",key:"language"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/product/{productId}/recommendations",...t,...s})}}class qe extends Ue{getLast(e,t){const s=ye([e],[{args:[{in:"query",key:"storyId"}]}]);return(t?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/whisper",...t,...s})}}class ze extends Ue{trackEvent(e,t){const s=ye([e],[{args:[{in:"body",key:"storyId"},{in:"body",key:"eventName"},{in:"body",key:"content"},{in:"body",key:"payload"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/track-event",...t,...s,headers:{"Content-Type":"application/json",...t?.headers,...s.headers}})}}class Le extends Ue{getCart(e){return(e?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/cart",...e})}addItemToCart(e,t){const s=ye([e],[{args:[{in:"body",key:"productId"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/cart/add",...t,...s,headers:{"Content-Type":"application/json",...t?.headers,...s.headers}})}removeItemFromCart(e,t){const s=ye([e],[{args:[{in:"body",key:"productId"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/cart/remove",...t,...s,headers:{"Content-Type":"application/json",...t?.headers,...s.headers}})}updateProductQuantity(e,t){const s=ye([e],[{args:[{in:"body",key:"productId"},{in:"body",key:"quantity"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/cart/update",...t,...s,headers:{"Content-Type":"application/json",...t?.headers,...s.headers}})}}class Ke extends Ue{similar(e,t){const s=ye([e],[{args:[{in:"body",key:"anchorId"},{in:"body",key:"topK"},{in:"body",key:"locale"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/skesis/query/similar",...t,...s,headers:{"Content-Type":"application/json",...t?.headers,...s.headers}})}related(e,t){const s=ye([e],[{args:[{in:"body",key:"anchorId"},{in:"body",key:"locale"}]}]);return(t?.client??this.client).post({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/skesis/query/related",...t,...s,headers:{"Content-Type":"application/json",...t?.headers,...s.headers}})}}class Be extends Ue{static __registry=new _e;constructor(e){super(e),Be.__registry.set(this,e.key)}_content;get content(){return this._content??=new De({client:this.client})}_stories;get stories(){return this._stories??=new Ne({client:this.client})}_products;get products(){return this._products??=new $e({client:this.client})}_whisper;get whisper(){return this._whisper??=new qe({client:this.client})}_analytics;get analytics(){return this._analytics??=new ze({client:this.client})}_cart;get cart(){return this._cart??=new Le({client:this.client})}_skesis;get skesis(){return this._skesis??=new Ke({client:this.client})}}class Me extends Error{status;body;response;request;constructor(e,t,s){const n=t?.status,r=s?`${s.method} ${s.url}`:"request";let i=`[thamyr] ${r} failed before a response arrived`;t&&(i=t.ok?`[thamyr] ${r} → ${t.status}, but the response could not be processed`:`[thamyr] ${r} → ${t.status}`),super(i,e instanceof Error?{cause:e}:void 0),this.name="ThamyrHttpError",this.status=n,this.body=e,this.response=t,this.request=s}}function Pe(e){const t=je(Ae({baseUrl:new URL("api/v3",e.endpoint).href,headers:{Authorization:`Bearer ${e.accessToken}`,"x-sl-access-token":e.accessToken},credentials:e.withCredentials?"include":"same-origin"}));return t.interceptors.error.use((e,s,n,r)=>{if(!(r.throwOnError??t.getConfig().throwOnError??!1)||!0===r.signal?.aborted)return e;return new Me(""===e?{}:e??{},s,n)}),t}export{L as ACTION_TYPES,j as ADD_TO_CART_RESULT_BLOCK,Be as CallimacusApi,f as CallimacusEvent,E as CallimacusService,o as ChapterStatus,n as ClientEvents,G as DELIVER_RESULT_BLOCK,i as GalleryMode,O as LANDING_VALUE_MAX_LENGTH,w as MAX_HANDSHAKE_RETRIES,r as SLInputEventType,s as ServerEvents,Me as ThamyrHttpError,t as ThamyrResponseType,p as UserInteractionType,H as actionOf,N as addToCartResultOf,z as applyBlockPatch,A as blockKeyOf,T as callimacusService,S as classifyConnectError,ce as clearIntentSessionId,Pe as createContractClient,Z as deliverResultOf,ae as ensureIntentSessionId,g as extractTtsAudio,W as fieldsOf,oe as getIntentSessionId,ie as initIntent,C as interactionRound,a as isCustomBlock,l as isMasterProduct,c as isSetProduct,x as landingRound,u as logger,k as parseConnectRejection,y as randomUuid,I as receptorsOf,te as setConsent,ne as setDebug,re as setDebugPanel,se as setGeo,le as setIntentSessionMaxAge,R as shouldRetryHandshake,h as transformImageUrl};
|
|
9
9
|
//# sourceMappingURL=index.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.native.js","sources":["../../../src/contract/index.ts","../../../src/utils/logger.ts","../../../src/utils/image-transform.ts","../../../src/utils/uuid.ts","../../../src/services/callimacus/types/interactions.ts","../../../src/services/callimacus/types/responses.ts","../../../src/services/callimacus/types/tts.ts","../../../src/services/callimacus/ui-observer.ts","../../../src/services/callimacus/connect-rejection.ts","../../../src/services/callimacus/service.ts","../../../src/services/callimacus/rounds.ts","../../../src/intent-native.ts","../../../src/contract/generated/core/bodySerializer.gen.ts","../../../src/contract/generated/core/params.gen.ts","../../../src/contract/generated/core/pathSerializer.gen.ts","../../../src/contract/generated/core/utils.gen.ts","../../../src/contract/generated/core/auth.gen.ts","../../../src/contract/generated/client/utils.gen.ts","../../../src/contract/generated/client/client.gen.ts","../../../src/contract/generated/core/serverSentEvents.gen.ts","../../../src/contract/generated/sdk.gen.ts","../../../src/contract/http.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["ThamyrResponseType","ERROR","CHAPTER_EVENT","CHAPTER_DELETED","STORY_RESET","STORY_CREATED","STORY_SHARED","BLOCK_PATCH","ServerEvents","SYSTEM_MESSAGE","SERVER_STATUS","SERVER_RESPONSE","ClientEvents","CLIENT_READY","USER_INTERACTION","SLInputEventType","question","content","topic","tag","image","video","gallery","relatedQuestion","page","customInteraction","customPage","GalleryMode","masonry","carousel","ChapterStatus","understandingQuery","craftingAnswer","curatingContent","done","isCustomBlock","block","type","startsWith","isSetProduct","product","set","isMasterProduct","master","LOG_LEVELS","debug","info","warn","error","silent","logger","config","enabled","level","prefix","args","this","log","method","output","undefined","console","configure","getConfig","transformImageUrl","cdnUrl","edits","url","URL","key","decodeURIComponent","pathname","slice","request","TextEncoder","encode","JSON","stringify","bucket","toBase64","origin","encodeURIComponent","randomUuid","cryptoObject","crypto","randomUUID","bytes","Uint8Array","getRandomValues","index","Math","floor","random","hex","map","byte","toString","padStart","join","UserInteractionType","CallimacusEvent","isTtsAudio","value","v","audioUrl","mimeType","extractTtsAudio","data","Object","values","DEFAULT_OBSERVER_CONFIG","productSelector","blockSelector","maxTrackedElements","minVisibilityRatio","AutonomousUiObserver","elements","Map","elementRefs","elementKeys","WeakMap","blocks","blockRefs","blockKeys","started","constructor","min","max","rescanUi","canUseDom","nodes","blockNodes","document","querySelectorAll","now","Date","element","bounds","normalizeRect","getBoundingClientRect","visibilityRatio","calculateVisibilityRatio","syncTrackedElement","isVisible","observedAt","syncTrackedBlock","pruneTrackedElements","pruneTrackedBlocks","size","toRemove","sort","left","right","byVisibility","Number","isNaN","id","delete","updates","resolveElementId","blockId","resolveBlockId","trackingKey","createTrackingKey","previousTrackingKey","get","resolveTrackedBlockId","dataset","productId","productid","sku","find","candidate","tagName","blockElement","closest","HTMLElement","blockid","rect","x","y","width","height","top","bottom","visibleArea","window","innerWidth","innerHeight","totalArea","viewportArea","reference","globalThis","start","stop","clear","getSnapshot","visibleEntries","visibleBlockIds","domElement","isConnected","push","limitedVisibleEntries","timestamp","viewport","blockIds","Set","flatMap","entry","parseConnectRejection","code","reason","MAX_HANDSHAKE_RETRIES","shouldRetryHandshake","attemptsSoFar","classifyConnectError","isActive","CallimacusService","socket","serverResponseListeners","connectionStatusListeners","errorListeners","uiObserver","uiObserverConfig","handshakeRetryAttempts","handshakeRetryTimer","setupEventListeners","on","clearHandshakeRetry","updateConnectionStatus","emit","rejection","active","message","notifyRejection","scheduleHandshakeRetry","notifyErrorListeners","io","attempt","response","notifyServerResponseListeners","forEach","listener","delaySeconds","setTimeout","connect","clearTimeout","listenerError","getLocation","navigator","geolocation","getCurrentPosition","Promise","resolve","position","enrichPayloadWithUiContext","payload","ensureUiObserver","snapshot","context","uiSnapshot","socketEndpoint","endpoint","u","path","headers","auth","disconnect","referrer","location","href","finalAuth","transports","tryAllTransports","extraHeaders","configureUiObserver","shouldEnable","sendUserInteraction","SUGGEST","BACK_FROM_ROUND","chapterId","interaction","storedInteraction","suggest","options","connected","suggestions","list","Array","isArray","filter","suggestionsOf","timeout","timeoutMs","emitWithAck","gatherClientInfo","nav","screen","userAgent","language","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","localTime","toLocaleString","screenResolution","onServerResponse","callback","add","onConnectionStatus","onError","callimacusService","LANDING_VALUE_MAX_LENGTH","landingRound","length","RangeError","inputEvent","interactionRound","round","interactionId","nodeKey","receptorsOf","chapter","receptors","intent","blockKeyOf","ADD_TO_CART_RESULT_BLOCK","isRecord","isText","isSize","variantId","orderable","addToCartResultOf","addToCart","result","status","productName","productSku","availableSizes","every","recordOrEmpty","mergedAt","node","patch","head","rest","hasOwn","next","docId","inputs","textRuns","mergedAnimation","applyBlockPatch","findIndex","contentId","split","with","warned","unavailable","name","has","setConsent","_isGranted","setGeo","_isEnabled","setDebug","setDebugPanel","initIntent","_options","getIntentSessionId","ensureIntentSessionId","clearIntentSessionId","setIntentSessionMaxAge","_seconds","jsonBodySerializer","bodySerializer","body","_key","extraPrefixes","entries","$body_","$headers_","$path_","$query_","buildKeyMap","fields","in","buildClientParams","params","create","query","writeSlot","slot","record","arg","field","extra","allowExtra","allowed","keys","stripEmptySlots","serializeArrayParam","allowReserved","explode","style","joinedValues","separatorArrayNoExplode","separator","separatorArrayExplode","serializePrimitiveParam","Error","serializeObjectParam","valueOnly","toISOString","separatorObjectExplode","PATH_PARAM_RE","getUrl","baseUrl","querySerializer","_url","matches","match","substring","endsWith","replace","replaceValue","defaultPathSerializer","search","getValidRequestBody","hasBody","serializedBody","getAuthToken","async","token","scheme","btoa","createQuerySerializer","parameters","queryParams","serializedArray","array","serializedObject","object","serializedPrimitive","checkForExistence","includes","buildUrl","mergeConfigs","a","b","mergeHeaders","headersEntries","mergedHeaders","Headers","header","iterator","append","Interceptors","fns","eject","getInterceptorIndex","exists","Boolean","indexOf","update","fn","use","defaultQuerySerializer","defaultHeaders","createConfig","override","parseAs","createClient","_config","interceptors","beforeRequest","opts","fetch","security","setAuthParams","requestValidator","throwOnError","responseStyle","requestInit","redirect","Request","_fetch","ok","contentType","cleanContent","trim","some","getParseAs","emptyData","FormData","text","parse","responseValidator","responseTransformer","textError","jsonError","finalError","makeMethodFn","makeSseFn","onRequest","onSseError","onSseEvent","sseDefaultRetryDelay","sseMaxRetryAttempts","sseMaxRetryDelay","sseSleepFn","lastEventId","sleep","ms","stream","retryDelay","signal","AbortController","aborted","statusText","reader","pipeThrough","TextDecoderStream","getReader","buffer","abortHandler","cancel","addEventListener","read","chunks","pop","chunk","lines","dataLines","eventName","line","parsed","parseInt","parsedJson","rawData","event","retry","removeEventListener","releaseLock","backoff","createStream","createSseClient","init","post","put","setConfig","sse","trace","HeyApiClient","client","HeyApiRegistry","defaultKey","instances","instance","Content","getPage","listTopics","getTopicContents","getDocumentBySlug","getDocumentByGroup","getDocumentByPath","Stories","getShared","share","Products","getSimilar","getRecommendations","Whisper","getLast","Analytics","trackEvent","Cart","getCart","addItemToCart","removeItemFromCart","updateProductQuantity","Skesis","similar","related","CallimacusApi","static","super","__registry","_content","_stories","stories","_products","products","_whisper","whisper","_analytics","analytics","_cart","cart","_skesis","skesis","ThamyrHttpError","target","cause","createContractClient","Authorization","accessToken","credentials","withCredentials"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.native.js","sources":["../../../src/contract/index.ts","../../../src/utils/logger.ts","../../../src/utils/image-transform.ts","../../../src/utils/uuid.ts","../../../src/services/callimacus/types/interactions.ts","../../../src/services/callimacus/types/responses.ts","../../../src/services/callimacus/types/tts.ts","../../../src/services/callimacus/ui-observer.ts","../../../src/services/callimacus/connect-rejection.ts","../../../src/services/callimacus/service.ts","../../../src/services/callimacus/rounds.ts","../../../src/services/callimacus/actions.ts","../../../src/intent-native.ts","../../../src/contract/generated/core/bodySerializer.gen.ts","../../../src/contract/generated/core/params.gen.ts","../../../src/contract/generated/core/pathSerializer.gen.ts","../../../src/contract/generated/core/utils.gen.ts","../../../src/contract/generated/core/auth.gen.ts","../../../src/contract/generated/client/utils.gen.ts","../../../src/contract/generated/client/client.gen.ts","../../../src/contract/generated/core/serverSentEvents.gen.ts","../../../src/contract/generated/sdk.gen.ts","../../../src/contract/http.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["ThamyrResponseType","ERROR","CHAPTER_EVENT","CHAPTER_DELETED","STORY_RESET","STORY_CREATED","STORY_SHARED","BLOCK_PATCH","ServerEvents","SYSTEM_MESSAGE","SERVER_STATUS","SERVER_RESPONSE","ClientEvents","CLIENT_READY","USER_INTERACTION","SLInputEventType","question","content","topic","tag","image","video","gallery","relatedQuestion","page","customInteraction","customPage","GalleryMode","masonry","carousel","ChapterStatus","understandingQuery","craftingAnswer","curatingContent","done","isCustomBlock","block","type","startsWith","isSetProduct","product","set","isMasterProduct","master","LOG_LEVELS","debug","info","warn","error","silent","logger","config","enabled","level","prefix","args","this","log","method","output","undefined","console","configure","getConfig","transformImageUrl","cdnUrl","edits","url","URL","key","decodeURIComponent","pathname","slice","request","TextEncoder","encode","JSON","stringify","bucket","toBase64","origin","encodeURIComponent","randomUuid","cryptoObject","crypto","randomUUID","bytes","Uint8Array","getRandomValues","index","Math","floor","random","hex","map","byte","toString","padStart","join","UserInteractionType","CallimacusEvent","isTtsAudio","value","v","audioUrl","mimeType","extractTtsAudio","data","Object","values","DEFAULT_OBSERVER_CONFIG","productSelector","blockSelector","maxTrackedElements","minVisibilityRatio","AutonomousUiObserver","elements","Map","elementRefs","elementKeys","WeakMap","blocks","blockRefs","blockKeys","started","constructor","min","max","rescanUi","canUseDom","nodes","blockNodes","document","querySelectorAll","now","Date","element","bounds","normalizeRect","getBoundingClientRect","visibilityRatio","calculateVisibilityRatio","syncTrackedElement","isVisible","observedAt","syncTrackedBlock","pruneTrackedElements","pruneTrackedBlocks","size","toRemove","sort","left","right","byVisibility","Number","isNaN","id","delete","updates","resolveElementId","blockId","resolveBlockId","trackingKey","createTrackingKey","previousTrackingKey","get","resolveTrackedBlockId","dataset","productId","productid","sku","find","candidate","tagName","blockElement","closest","HTMLElement","blockid","rect","x","y","width","height","top","bottom","visibleArea","window","innerWidth","innerHeight","totalArea","viewportArea","reference","globalThis","start","stop","clear","getSnapshot","visibleEntries","visibleBlockIds","domElement","isConnected","push","limitedVisibleEntries","timestamp","viewport","blockIds","Set","flatMap","entry","parseConnectRejection","code","reason","MAX_HANDSHAKE_RETRIES","shouldRetryHandshake","attemptsSoFar","classifyConnectError","isActive","CallimacusService","socket","serverResponseListeners","connectionStatusListeners","errorListeners","uiObserver","uiObserverConfig","handshakeRetryAttempts","handshakeRetryTimer","setupEventListeners","on","clearHandshakeRetry","updateConnectionStatus","emit","rejection","active","message","notifyRejection","scheduleHandshakeRetry","notifyErrorListeners","io","attempt","response","notifyServerResponseListeners","forEach","listener","delaySeconds","setTimeout","connect","clearTimeout","listenerError","getLocation","navigator","geolocation","getCurrentPosition","Promise","resolve","position","enrichPayloadWithUiContext","payload","ensureUiObserver","snapshot","context","uiSnapshot","socketEndpoint","endpoint","u","path","headers","auth","disconnect","referrer","location","href","finalAuth","transports","tryAllTransports","extraHeaders","configureUiObserver","shouldEnable","sendUserInteraction","SUGGEST","BACK_FROM_ROUND","chapterId","interaction","storedInteraction","suggest","options","connected","suggestions","list","Array","isArray","filter","suggestionsOf","timeout","timeoutMs","emitWithAck","gatherClientInfo","nav","screen","userAgent","language","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","localTime","toLocaleString","screenResolution","onServerResponse","callback","add","onConnectionStatus","onError","callimacusService","LANDING_VALUE_MAX_LENGTH","landingRound","length","RangeError","inputEvent","interactionRound","submissionId","round","interactionId","nodeKey","receptorsOf","chapter","receptors","intent","blockKeyOf","ADD_TO_CART_RESULT_BLOCK","isRecord","isText","isSize","variantId","orderable","addToCartResultOf","addToCart","result","status","productName","productSku","availableSizes","every","recordOrEmpty","mergedAt","node","patch","head","rest","hasOwn","next","docId","inputs","textRuns","mergedAnimation","applyBlockPatch","findIndex","contentId","split","with","ACTION_TYPES","trim","SAFE_PROTOCOLS","isSafeUrl","has","protocol","interactOf","fields","isValueOk","item","isStringList","isPayloadOk","actionOf","newTab","linkOf","form","fieldsOf","FormData","keys","getAll","isList","endsWith","fromEntries","DELIVER_RESULT_BLOCK","DESTINATION_STATUSES","isOptionalText","isFieldError","field","isDestinationResult","ref","deliverResultOf","redirect","errors","results","warned","unavailable","name","setConsent","_isGranted","setGeo","_isEnabled","setDebug","setDebugPanel","initIntent","_options","getIntentSessionId","ensureIntentSessionId","clearIntentSessionId","setIntentSessionMaxAge","_seconds","jsonBodySerializer","bodySerializer","body","_key","extraPrefixes","entries","$body_","$headers_","$path_","$query_","buildKeyMap","in","buildClientParams","params","create","query","writeSlot","slot","record","arg","extra","allowExtra","allowed","stripEmptySlots","serializeArrayParam","allowReserved","explode","style","joinedValues","separatorArrayNoExplode","separator","separatorArrayExplode","serializePrimitiveParam","Error","serializeObjectParam","valueOnly","toISOString","separatorObjectExplode","PATH_PARAM_RE","getUrl","baseUrl","querySerializer","_url","matches","match","substring","replace","replaceValue","defaultPathSerializer","search","getValidRequestBody","hasBody","serializedBody","getAuthToken","async","token","scheme","btoa","createQuerySerializer","parameters","queryParams","serializedArray","array","serializedObject","object","serializedPrimitive","checkForExistence","includes","buildUrl","mergeConfigs","a","b","mergeHeaders","headersEntries","mergedHeaders","Headers","header","iterator","append","Interceptors","fns","eject","getInterceptorIndex","exists","Boolean","indexOf","update","fn","use","defaultQuerySerializer","defaultHeaders","createConfig","override","parseAs","createClient","_config","interceptors","beforeRequest","opts","fetch","security","setAuthParams","requestValidator","throwOnError","responseStyle","requestInit","Request","_fetch","ok","contentType","cleanContent","some","getParseAs","emptyData","text","parse","responseValidator","responseTransformer","textError","jsonError","finalError","makeMethodFn","makeSseFn","onRequest","onSseError","onSseEvent","sseDefaultRetryDelay","sseMaxRetryAttempts","sseMaxRetryDelay","sseSleepFn","lastEventId","sleep","ms","stream","retryDelay","signal","AbortController","aborted","statusText","reader","pipeThrough","TextDecoderStream","getReader","buffer","abortHandler","cancel","addEventListener","read","chunks","pop","chunk","lines","dataLines","eventName","line","parsed","parseInt","parsedJson","rawData","event","retry","removeEventListener","releaseLock","backoff","createStream","createSseClient","init","post","put","setConfig","sse","trace","HeyApiClient","client","HeyApiRegistry","defaultKey","instances","instance","Content","getPage","listTopics","getTopicContents","getDocumentBySlug","getDocumentByGroup","getDocumentByPath","Stories","getShared","share","Products","getSimilar","getRecommendations","Whisper","getLast","Analytics","trackEvent","Cart","getCart","addItemToCart","removeItemFromCart","updateProductQuantity","Skesis","similar","related","CallimacusApi","static","super","__registry","_content","_stories","stories","_products","products","_whisper","whisper","_analytics","analytics","_cart","cart","_skesis","skesis","ThamyrHttpError","target","cause","createContractClient","Authorization","accessToken","credentials","withCredentials"],"mappings":"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"}
|