@callimacus/thamyr-core 4.3.4

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.
@@ -0,0 +1,9 @@
1
+ /*!
2
+ * Copyright © 2025–2026 Solomei AI SRL. All rights reserved.
3
+ *
4
+ * Proprietary software, licensed for use by Callimacus customers only.
5
+ * See LICENSE.md for the full terms.
6
+ *
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"},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"}(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.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 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=new Set;function x(e){O.has(e)||(O.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 C(e){x("setConsent")}function I(e){x("setGeo")}function A(e){x("setDebug")}function j(e){x("setDebugPanel")}function _(e={}){x("initIntent")}function U(){x("getIntentSessionId")}function $(){x("ensureIntentSessionId")}function D(){x("clearIntentSessionId")}function q(e){x("setIntentSessionMaxAge")}const N={bodySerializer:e=>JSON.stringify(e,(e,t)=>"bigint"==typeof t?t.toString():t)},L=Object.entries({$body_:"body",$headers_:"headers",$path_:"path",$query_:"query"});function K(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&&K(s.args,t);return t}function B(e,t){const s={headers:Object.create(null),path:Object.create(null),query:Object.create(null)},n=K(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=L.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 M=({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):z({allowReserved:e,name:s,value:t})).join(i);return"label"===n||"matrix"===n?i+o:o},z=({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)}`},P=({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])=>z({allowReserved:e,name:"deepObject"===n?`${s}[${t}]`:t,value:r})).join(o);return"label"===n||"matrix"===n?o+a:a},V=/\{[^{}]+\}/g,H=({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(V);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,M({explode:n,name:r,style:i,value:o}));continue}if("object"==typeof o){s=s.replace(t,P({explode:n,name:r,style:i,value:o,valueOnly:!0}));continue}if("matrix"===i){s=s.replace(t,`;${z({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 W(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 Y=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},F=({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=M({allowReserved:o.allowReserved,explode:!0,name:r,style:"form",value:i,...o.array});e&&n.push(e)}else if("object"==typeof i){const e=P({allowReserved:o.allowReserved,explode:!0,name:r,style:"deepObject",value:i,...o.object});e&&n.push(e)}else{const e=z({allowReserved:o.allowReserved,name:r,value:i});e&&n.push(e)}}return n.join("&")},G=(e,t)=>!!t&&!!(e.headers.has(t)||e.query?.[t]||e.headers.get("Cookie")?.includes(`${t}=`));const J=e=>H({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:"function"==typeof e.querySerializer?e.querySerializer:F(e.querySerializer),url:e.url}),Q=(e,t)=>{const s={...e,...t};return s.baseUrl?.endsWith("/")&&(s.baseUrl=s.baseUrl.substring(0,s.baseUrl.length-1)),s.headers=X(e.headers,t.headers),s},Z=e=>{const t=[];return e.forEach((e,s)=>{t.push([s,e])}),t},X=(...e)=>{const t=new Headers;for(const s of e){if(!s)continue;const e=s instanceof Headers?Z(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 ee{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 te=F({allowReserved:!1,array:{explode:!0,style:"form"},object:{explode:!0,style:"deepObject"}}),se={"Content-Type":"application/json"},ne=(e={})=>({...N,headers:se,parseAs:"auto",querySerializer:te,...e}),re=(e={})=>{let t=Q(ne(),e);const s=()=>({...t}),n={error:new ee,request:new ee,response:new ee},r=async e=>{const s={...t,...e,fetch:e.fetch??t.fetch??globalThis.fetch,headers:X(t.headers,e.headers),serializedBody:void 0};s.security&&await async function(e){for(const t of e.security??[]){if(G(e,t.name))continue;const s=await Y(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:J(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:W(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:W(s),url:i})};return{buildUrl:e=>J({...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=Q(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 ie{client;constructor(e){this.client=e.client}}class oe{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 ae extends ie{getPage(e,t){const s=B([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=B([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=B([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=B([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=B([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=B([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 ce extends ie{getShared(e,t){const s=B([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=B([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 le extends ie{getSimilar(e,t){const s=B([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=B([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 de extends ie{getLast(e,t){const s=B([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 ue extends ie{trackEvent(e,t){const s=B([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 he extends ie{getCart(e){return(e?.client??this.client).get({security:[{name:"x-sl-access-token",type:"apiKey"}],url:"/cart",...e})}addItemToCart(e,t){const s=B([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=B([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=B([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 ye extends ie{similar(e,t){const s=B([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=B([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 pe extends ie{static __registry=new oe;constructor(e){super(e),pe.__registry.set(this,e.key)}_content;get content(){return this._content??=new ae({client:this.client})}_stories;get stories(){return this._stories??=new ce({client:this.client})}_products;get products(){return this._products??=new le({client:this.client})}_whisper;get whisper(){return this._whisper??=new de({client:this.client})}_analytics;get analytics(){return this._analytics??=new ue({client:this.client})}_cart;get cart(){return this._cart??=new he({client:this.client})}_skesis;get skesis(){return this._skesis??=new ye({client:this.client})}}class fe 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 me(e){const t=re(ne({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 fe(""===e?{}:e??{},s,n)}),t}export{pe as CallimacusApi,f as CallimacusEvent,S as CallimacusService,o as ChapterStatus,n as ClientEvents,i as GalleryMode,R as MAX_HANDSHAKE_RETRIES,r as SLInputEventType,s as ServerEvents,fe as ThamyrHttpError,t as ThamyrResponseType,p as UserInteractionType,T as callimacusService,E as classifyConnectError,D as clearIntentSessionId,me as createContractClient,$ as ensureIntentSessionId,g as extractTtsAudio,U as getIntentSessionId,_ as initIntent,a as isCustomBlock,l as isMasterProduct,c as isSetProduct,u as logger,v as parseConnectRejection,y as randomUuid,C as setConsent,A as setDebug,j as setDebugPanel,I as setGeo,q as setIntentSessionMaxAge,w as shouldRetryHandshake,h as transformImageUrl};
9
+ //# sourceMappingURL=index.native.js.map
@@ -0,0 +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/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],"names":["ThamyrResponseType","ERROR","CHAPTER_EVENT","CHAPTER_DELETED","STORY_RESET","STORY_CREATED","STORY_SHARED","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","BACK_FROM_ROUND","chapterId","interaction","storedInteraction","gatherClientInfo","nav","screen","userAgent","language","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","localTime","toLocaleString","screenResolution","onServerResponse","callback","add","onConnectionStatus","onError","callimacusService","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","length","allowExtra","allowed","Array","isArray","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","options","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","result","ok","contentType","cleanContent","split","trim","some","getParseAs","status","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","head","patch","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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"}