@callimacus/thamyr-core 4.5.0 → 4.7.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 +14 -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/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,20 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [4.7.0](https://github.com/callimacus/thamyr-sdk/compare/thamyr-core-v4.6.0...thamyr-core-v4.7.0) (2026-10-16)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Miscellaneous Chores
|
|
10
|
+
|
|
11
|
+
* **thamyr-core:** Synchronize thamyr versions
|
|
12
|
+
|
|
13
|
+
## [4.6.0](https://github.com/callimacus/thamyr-sdk/compare/thamyr-core-v4.5.0...thamyr-core-v4.6.0) (2026-10-13)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Features
|
|
17
|
+
|
|
18
|
+
* **react:** component actions — actionOf, useActions and a delivered submit ([#819](https://github.com/callimacus/thamyr-sdk/issues/819)) ([2876ca4](https://github.com/callimacus/thamyr-sdk/commit/2876ca4ca1af0bbc4024488595036e2063765554))
|
|
19
|
+
|
|
6
20
|
## [4.5.0](https://github.com/callimacus/thamyr-sdk/compare/thamyr-core-v4.4.1...thamyr-core-v4.5.0) (2026-10-12)
|
|
7
21
|
|
|
8
22
|
|
package/dist/esm/index.js
CHANGED
|
@@ -5,5 +5,5 @@
|
|
|
5
5
|
* See LICENSE.md for the full terms.
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
|
-
export*from"@callimacus/intent";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 E(e,t){return t?void 0:v(e)??{code:0}}class S{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=E(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 S,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,$=e=>j(e)&&U(e.size)&&U(e.variantId)&&"boolean"==typeof e.orderable;function N(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($)?{status:"size_selection_needed",productSku:t.productSku,productName:t.productName,availableSizes:t.availableSizes}:void 0}const q=e=>j(e)?e:{};function D(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:{...q(e.values),...t.values},inputs:{...q(e.inputs),...t.inputs},textRuns:{...q(e.textRuns),...t.textRuns}}}(e[n],s):D(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=D(r.data,t.contentId.split("."),t);return i?{...e,blocks:s.with(n,{...r,data:i})}:e}const L={bodySerializer:e=>JSON.stringify(e,(e,t)=>"bigint"==typeof t?t.toString():t)},K=Object.entries({$body_:"body",$headers_:"headers",$path_:"path",$query_:"query"});function B(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&&B(s.args,t);return t}function M(e,t){const s={headers:Object.create(null),path:Object.create(null),query:Object.create(null)},n=B(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=K.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 P=({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):V({allowReserved:e,name:s,value:t})).join(i);return"label"===n||"matrix"===n?i+o:o},V=({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)}`},H=({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])=>V({allowReserved:e,name:"deepObject"===n?`${s}[${t}]`:t,value:r})).join(o);return"label"===n||"matrix"===n?o+a:a},W=/\{[^{}]+\}/g,G=({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(W);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,P({explode:n,name:r,style:i,value:o}));continue}if("object"==typeof o){s=s.replace(t,H({explode:n,name:r,style:i,value:o,valueOnly:!0}));continue}if("matrix"===i){s=s.replace(t,`;${V({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 Y(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 F=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},J=({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=P({allowReserved:o.allowReserved,explode:!0,name:r,style:"form",value:i,...o.array});e&&n.push(e)}else if("object"==typeof i){const e=H({allowReserved:o.allowReserved,explode:!0,name:r,style:"deepObject",value:i,...o.object});e&&n.push(e)}else{const e=V({allowReserved:o.allowReserved,name:r,value:i});e&&n.push(e)}}return n.join("&")},Q=(e,t)=>!!t&&!!(e.headers.has(t)||e.query?.[t]||e.headers.get("Cookie")?.includes(`${t}=`));const Z=e=>G({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:"function"==typeof e.querySerializer?e.querySerializer:J(e.querySerializer),url:e.url}),X=(e,t)=>{const s={...e,...t};return s.baseUrl?.endsWith("/")&&(s.baseUrl=s.baseUrl.substring(0,s.baseUrl.length-1)),s.headers=te(e.headers,t.headers),s},ee=e=>{const t=[];return e.forEach((e,s)=>{t.push([s,e])}),t},te=(...e)=>{const t=new Headers;for(const s of e){if(!s)continue;const e=s instanceof Headers?ee(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 se{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 ne=J({allowReserved:!1,array:{explode:!0,style:"form"},object:{explode:!0,style:"deepObject"}}),re={"Content-Type":"application/json"},ie=(e={})=>({...L,headers:re,parseAs:"auto",querySerializer:ne,...e}),oe=(e={})=>{let t=X(ie(),e);const s=()=>({...t}),n={error:new se,request:new se,response:new se},r=async e=>{const s={...t,...e,fetch:e.fetch??t.fetch??globalThis.fetch,headers:te(t.headers,e.headers),serializedBody:void 0};s.security&&await async function(e){for(const t of e.security??[]){if(Q(e,t.name))continue;const s=await F(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:Z(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:Y(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:Y(s),url:i})};return{buildUrl:e=>Z({...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=X(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 ae{client;constructor(e){this.client=e.client}}class ce{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 le extends ae{getPage(e,t){const s=M([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=M([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=M([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=M([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=M([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=M([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 de extends ae{getShared(e,t){const s=M([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=M([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 ue extends ae{getSimilar(e,t){const s=M([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=M([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 he extends ae{getLast(e,t){const s=M([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 ye extends ae{trackEvent(e,t){const s=M([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 pe extends ae{getCart(e){return(e?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/cart",...e})}addItemToCart(e,t){const s=M([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=M([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=M([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 fe extends ae{similar(e,t){const s=M([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=M([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 me extends ae{static __registry=new ce;constructor(e){super(e),me.__registry.set(this,e.key)}_content;get content(){return this._content??=new le({client:this.client})}_stories;get stories(){return this._stories??=new de({client:this.client})}_products;get products(){return this._products??=new ue({client:this.client})}_whisper;get whisper(){return this._whisper??=new he({client:this.client})}_analytics;get analytics(){return this._analytics??=new ye({client:this.client})}_cart;get cart(){return this._cart??=new pe({client:this.client})}_skesis;get skesis(){return this._skesis??=new fe({client:this.client})}}class ge 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 be(e){const t=oe(ie({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 ge(""===e?{}:e??{},s,n)}),t}export{_ as ADD_TO_CART_RESULT_BLOCK,me as CallimacusApi,f as CallimacusEvent,S 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,ge as ThamyrHttpError,t as ThamyrResponseType,p as UserInteractionType,N as addToCartResultOf,z as applyBlockPatch,A as blockKeyOf,T as callimacusService,E as classifyConnectError,be as createContractClient,g as extractTtsAudio,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,w as shouldRetryHandshake,h as transformImageUrl};
|
|
8
|
+
export*from"@callimacus/intent";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 R=3;function w(e,t){return e>=500&&t<3}function E(e,t){return t?void 0:k(e)??{code:0}}class S{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=E(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 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 S,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 _(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}const U=e=>"string"==typeof e&&e.length>0,$=e=>_(e)&&U(e.size)&&U(e.variantId)&&"boolean"==typeof e.orderable;function D(e){if(!_(e.data)||!_(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($)?{status:"size_selection_needed",productSku:t.productSku,productName:t.productName,availableSizes:t.availableSizes}:void 0}const N=e=>_(e)?e:{};function q(e,t,s){const[n,...r]=t;if(!_(e)||!Object.hasOwn(e,n))return;const i=0===r.length?function(e,t){if(_(e)&&"string"==typeof e.docId)return{...e,values:{...N(e.values),...t.values},inputs:{...N(e.inputs),...t.inputs},textRuns:{...N(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={bodySerializer:e=>JSON.stringify(e,(e,t)=>"bigint"==typeof t?t.toString():t)},ee=Object.entries({$body_:"body",$headers_:"headers",$path_:"path",$query_:"query"});function te(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&&te(s.args,t);return t}function se(e,t){const s={headers:Object.create(null),path:Object.create(null),query:Object.create(null)},n=te(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=ee.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 ne=({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):re({allowReserved:e,name:s,value:t})).join(i);return"label"===n||"matrix"===n?i+o:o},re=({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)}`},ie=({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])=>re({allowReserved:e,name:"deepObject"===n?`${s}[${t}]`:t,value:r})).join(o);return"label"===n||"matrix"===n?o+a:a},oe=/\{[^{}]+\}/g,ae=({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(oe);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,ne({explode:n,name:r,style:i,value:o}));continue}if("object"==typeof o){s=s.replace(t,ie({explode:n,name:r,style:i,value:o,valueOnly:!0}));continue}if("matrix"===i){s=s.replace(t,`;${re({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 ce(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 le=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},de=({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=ne({allowReserved:o.allowReserved,explode:!0,name:r,style:"form",value:i,...o.array});e&&n.push(e)}else if("object"==typeof i){const e=ie({allowReserved:o.allowReserved,explode:!0,name:r,style:"deepObject",value:i,...o.object});e&&n.push(e)}else{const e=re({allowReserved:o.allowReserved,name:r,value:i});e&&n.push(e)}}return n.join("&")},ue=(e,t)=>!!t&&!!(e.headers.has(t)||e.query?.[t]||e.headers.get("Cookie")?.includes(`${t}=`));const he=e=>ae({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:"function"==typeof e.querySerializer?e.querySerializer:de(e.querySerializer),url:e.url}),ye=(e,t)=>{const s={...e,...t};return s.baseUrl?.endsWith("/")&&(s.baseUrl=s.baseUrl.substring(0,s.baseUrl.length-1)),s.headers=fe(e.headers,t.headers),s},pe=e=>{const t=[];return e.forEach((e,s)=>{t.push([s,e])}),t},fe=(...e)=>{const t=new Headers;for(const s of e){if(!s)continue;const e=s instanceof Headers?pe(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 me{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 ge=de({allowReserved:!1,array:{explode:!0,style:"form"},object:{explode:!0,style:"deepObject"}}),be={"Content-Type":"application/json"},ve=(e={})=>({...X,headers:be,parseAs:"auto",querySerializer:ge,...e}),ke=(e={})=>{let t=ye(ve(),e);const s=()=>({...t}),n={error:new me,request:new me,response:new me},r=async e=>{const s={...t,...e,fetch:e.fetch??t.fetch??globalThis.fetch,headers:fe(t.headers,e.headers),serializedBody:void 0};s.security&&await async function(e){for(const t of e.security??[]){if(ue(e,t.name))continue;const s=await le(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:he(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:ce(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:ce(s),url:i})};return{buildUrl:e=>he({...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=ye(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 Re{client;constructor(e){this.client=e.client}}class we{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 Ee extends Re{getPage(e,t){const s=se([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=se([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=se([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=se([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=se([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=se([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 Se extends Re{getShared(e,t){const s=se([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=se([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 Te extends Re{getSimilar(e,t){const s=se([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=se([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 Oe extends Re{getLast(e,t){const s=se([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 xe extends Re{trackEvent(e,t){const s=se([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 Ce extends Re{getCart(e){return(e?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/cart",...e})}addItemToCart(e,t){const s=se([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=se([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=se([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 Ie extends Re{similar(e,t){const s=se([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=se([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 Ae extends Re{static __registry=new we;constructor(e){super(e),Ae.__registry.set(this,e.key)}_content;get content(){return this._content??=new Ee({client:this.client})}_stories;get stories(){return this._stories??=new Se({client:this.client})}_products;get products(){return this._products??=new Te({client:this.client})}_whisper;get whisper(){return this._whisper??=new Oe({client:this.client})}_analytics;get analytics(){return this._analytics??=new xe({client:this.client})}_cart;get cart(){return this._cart??=new Ce({client:this.client})}_skesis;get skesis(){return this._skesis??=new Ie({client:this.client})}}class je 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 _e(e){const t=ke(ve({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 je(""===e?{}:e??{},s,n)}),t}export{L as ACTION_TYPES,j as ADD_TO_CART_RESULT_BLOCK,Ae as CallimacusApi,f as CallimacusEvent,S as CallimacusService,o as ChapterStatus,n as ClientEvents,G as DELIVER_RESULT_BLOCK,i as GalleryMode,O as LANDING_VALUE_MAX_LENGTH,R as MAX_HANDSHAKE_RETRIES,r as SLInputEventType,s as ServerEvents,je as ThamyrHttpError,t as ThamyrResponseType,p as UserInteractionType,H as actionOf,D as addToCartResultOf,z as applyBlockPatch,A as blockKeyOf,T as callimacusService,E as classifyConnectError,_e as createContractClient,Z as deliverResultOf,g as extractTtsAudio,W as fieldsOf,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,w as shouldRetryHandshake,h as transformImageUrl};
|
|
9
9
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.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/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],"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","jsonBodySerializer","bodySerializer","body","_key","extraPrefixes","entries","$body_","$headers_","$path_","$query_","buildKeyMap","fields","in","buildClientParams","params","create","query","writeSlot","slot","record","arg","field","name","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","has","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.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/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","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","jsonBodySerializer","bodySerializer","body","_key","extraPrefixes","entries","$body_","$headers_","$path_","$query_","buildKeyMap","in","buildClientParams","params","create","query","writeSlot","slot","record","arg","name","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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"}
|