@customer-agent/sdk 0.7.0-test.08a4e886fd80 → 0.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/chunks/{App-u505c4WD.js → App-ALlT8ukY.js} +2 -2
- package/chunks/{InterviewChatScreen-Bbj9vAp3.js → InterviewChatScreen-BSLFwRMF.js} +1 -1
- package/chunks/{Panel-BwRmLARX.js → Panel-Cwku91ZZ.js} +2 -2
- package/chunks/{WidgetComposer-C_Y7bwhP.js → WidgetComposer-lTIqrnSE.js} +1 -1
- package/chunks/constants-DINcvX2k.js +1 -0
- package/chunks/{controller-W6z7hPGt.js → controller-Bb553m_3.js} +1 -1
- package/chunks/routes-aV4LZuEj.js +1 -0
- package/index.js +1 -1
- package/package.json +1 -1
- package/react.js +1 -1
- package/runtime.es.js +1 -1
- package/sdk.js +1 -1
- package/types/types.d.ts +1 -0
- package/chunks/constants-ybuCalVt.js +0 -1
- package/chunks/routes-Dh46ka4-.js +0 -1
package/sdk.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(){var e=`0.7.0
|
|
1
|
+
(function(){var e=`0.7.0`;function t(){typeof window>`u`||(window.__customerAgentVersion=e)}var n=`__customerAgentRuntime`,r=`__customerAgentScript`,i=typeof document<`u`&&document.currentScript instanceof HTMLScriptElement?document.currentScript:null,a=[];t();var o=`idle`,s=null,c=null;function l(e){return typeof e==`object`&&!!e}function u(e){return Array.prototype.slice.call(e)}function d(){let e=i?.src??new URL(`sdk.js`,window.location.href).toString();return new URL(`runtime.es.js`,e).toString()}function f(e){let t=e.CustomerAgent??e.default;if(typeof t!=`function`)throw Error(`CustomerAgent widget runtime module did not export CustomerAgent.`);return Object.assign(t,{[n]:!0})}function p(){if(!s)return;let e=a.splice(0);for(let t of e)t(s)}async function m(){return o===`ready`&&s?s:o===`loading`&&c?await c:(o=`loading`,c=import(d()).then(e=>(s=f(e),window.CustomerAgent=s,o=`ready`,p(),s)).catch(e=>{throw o=`failed`,c=null,console.error(`CustomerAgent widget runtime failed to load.`,e),e}),await c)}function h(e){if(s){e(s);return}a.push(e),m().catch(()=>{})}function g(e,t){h(n=>{let r=n[e];typeof r==`function`&&r(...t)})}function _(e){return h(t=>{t(`boot`,e)}),R}async function v(){return await(await m()).ensureInvitation()}async function y(e){return await(await m()).startInvitation(e)}async function b(){return await(await m()).startInterview()}async function x(e,t){await(await m()).chooseInvitation(e,t)}async function S(e){await(await m()).sendInterviewMessage(e)}async function C(e){return await(await m()).loadInterviewReward(e)}function w(e){g(`update`,[e])}function T(e){g(`show`,[e])}function E(){g(`hide`,[])}function D(e){g(`toggle`,[e])}function O(e){g(`openEntry`,[e])}function k(){g(`shutdown`,[])}function A(e){g(`identify`,[e])}function j(e,t){g(`setContext`,[e,t])}async function M(){return await(await m()).getSession()}function N(){return s?.getSupportState()??null}function P(){return s?.getInterviewState()??null}function F(){return s?.getInterviewSession()??null}function I(){return s?.getState()??null}function L(e,t){let n=!0,r=()=>{};return h(i=>{n&&(r=i.on(e,t))}),()=>{n=!1,r()}}var R={chooseInvitation:x,async ensureInvitation(){let e=await v();if(!e)throw Error(`CustomerAgent widget is not initialized.`);return e},getInterviewState(){let e=P();if(!e)throw Error(`CustomerAgent widget is not initialized.`);return e},getInterviewSession(){return F()},async getSession(){let e=await M();if(!e)throw Error(`CustomerAgent widget is not initialized.`);return e},getState(){let e=I();if(!e)throw Error(`CustomerAgent widget is not initialized.`);return e},getSupportState(){let e=N();if(!e)throw Error(`CustomerAgent widget is not initialized.`);return e},hide:E,identify:A,on:L,openEntry:O,loadInterviewReward:C,sendInterviewMessage:S,setContext:j,show:T,shutdown:k,async startInterview(){let e=await b();if(!e)throw Error(`CustomerAgent widget is not initialized.`);return e},async startInvitation(e){let t=await y(e);if(!t)throw Error(`CustomerAgent widget is not initialized.`);return t},toggle:D,update:w};function z(e,...t){switch(e){case`boot`:return _(t[0]);case`chooseInvitation`:return x(t[0],t[1]);case`ensureInvitation`:return v();case`getSession`:return M();case`getState`:return I();case`getSupportState`:return N();case`getInterviewState`:return P();case`getInterviewSession`:return F();case`hide`:return E();case`identify`:return A(t[0]);case`on`:return L(t[0],t[1]);case`openEntry`:return O(t[0]);case`loadInterviewReward`:return C(t[0]);case`sendInterviewMessage`:return S(t[0]);case`setContext`:return j(t[0],t[1]);case`show`:return T(t[0]);case`shutdown`:return k();case`startInvitation`:return y(t[0]);case`startInterview`:return b();case`toggle`:return D(t[0]);case`update`:return w(t[0]);default:throw Error(`CustomerAgent received an unknown command: ${String(e)}.`)}}var B=Object.assign(z,{[r]:!0,boot:_,chooseInvitation:x,ensureInvitation:v,getInterviewState:P,getInterviewSession:F,getSession:M,getState:I,getSupportState:N,hide:E,identify:A,on:L,openEntry:O,loadInterviewReward:C,sendInterviewMessage:S,setContext:j,show:T,shutdown:k,startInterview:b,startInvitation:y,toggle:D,update:w});function V(e){if(!l(e))return!1;let t=e.q;if(!Array.isArray(t)||t.length===0)return!1;for(let e of t)z(...u(e));return!0}function H(){if(!i)return;let e=i.dataset.appId;e&&B(`boot`,{app_id:e,open_on_init:i.dataset.open===`true`,position:i.dataset.position===`bottom-left`?`bottom-left`:`bottom-right`})}if(typeof window<`u`){let e=window.CustomerAgent;window.CustomerAgent=B,V(e)||H()}})();
|
package/types/types.d.ts
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e=`0.7.0-test.08a4e886fd80`;function t(){typeof window>`u`||(window.__customerAgentVersion=e)}var n=Object.freeze({BUG_REPORTED:`support.bug_reported`,CONVERSATION_CREATED:`conversation.created`,ERROR:`error`,FEEDBACK_SUBMITTED:`support.feedback_submitted`,HANDOFF_REQUESTED:`support.handoff_requested`,INTERVIEW_INVITATION_CLOSED:`interview.invitation_closed`,INTERVIEW_INVITATION_LATER:`interview.invitation_later`,INTERVIEW_INVITATION_SHOWN:`interview.invitation_shown`,INTERVIEW_AVAILABLE:`interview.available`,INTERVIEW_REWARD_UPDATED:`interview.reward_updated`,INTERVIEW_STATE_CHANGED:`interview.state_changed`,INTERVIEW_SESSION_COMPLETED:`interview.session_completed`,INTERVIEW_SESSION_STARTED:`interview.session_started`,MESSAGE_COMPLETED:`message.completed`,MESSAGE_FAILED:`message.failed`,MESSAGE_RETRY:`message.retry`,MESSAGE_SEND_FAILED:`message.send_failed`,MESSAGE_SENT:`message.sent`,MESSAGE_STARTED:`message.started`,SUPPORT_STATE_CHANGED:`support.state_changed`,TRANSCRIPT_DOWNLOADED:`transcript.downloaded`,WIDGET_CLOSED:`widget.closed`,WIDGET_COLLAPSED:`widget.collapsed`,WIDGET_EXPANDED:`widget.expanded`,WIDGET_OPENED:`widget.opened`,WIDGET_READY:`widget.ready`});export{t as n,n as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e=class extends Error{code;requestId;status;constructor(e,t){super(e),this.name=`CustomerAgentApiError`,this.code=t.code,this.requestId=t.requestId??null,this.status=t.status}};function t(e){return e.replace(/\/+$/g,``)}function n(e){return!!e&&typeof e==`object`&&e.ok===!1&&typeof e.error?.message==`string`}function r(e){return!!e&&typeof e==`object`&&e.ok===!0}async function i(t){let n=await t.text();if(!n)return null;try{return JSON.parse(n)}catch{throw new e(`The server returned an unreadable response.`,{code:`INVALID_RESPONSE`,requestId:t.headers.get(`X-Request-Id`),status:t.status})}}function a(a){let o=t(a);async function s(t){let a=await i(t);if(n(a))throw new e(a.error.message,{code:a.error.code,requestId:a.meta?.requestId??t.headers.get(`X-Request-Id`),status:t.status});if(!t.ok)throw new e(`The server could not complete the request.`,{code:`HTTP_ERROR`,requestId:t.headers.get(`X-Request-Id`),status:t.status});if(!r(a))throw new e(`The server returned an unexpected response.`,{code:`INVALID_RESPONSE`,requestId:t.headers.get(`X-Request-Id`),status:t.status});return{data:a.data,response:t}}async function c(e,t={}){let n=new Headers;return t.method!==`GET`&&n.set(`Content-Type`,`application/json`),t.conversationId&&n.set(`X-Customer-Agent-Conversation-Id`,t.conversationId),await s(await fetch(`${o}${e}`,{body:t.body?JSON.stringify(t.body):void 0,credentials:`omit`,headers:n,method:t.method??`GET`,signal:t.signal}))}async function l(e,t,n={}){let r=new Headers;return n.conversationId&&r.set(`X-Customer-Agent-Conversation-Id`,n.conversationId),await s(await fetch(`${o}${e}`,{body:t,credentials:`omit`,headers:r,method:`POST`,signal:n.signal}))}return{request:c,upload:l}}function o(){return typeof crypto<`u`&&`randomUUID`in crypto?crypto.randomUUID():`ca_${Date.now()}_${Math.random().toString(36).slice(2)}`}function s(){return`https://api-ctmr-agent-dev.deepjoy.me/api/customer-agent`}function c(e,t){if(!e.app_id)throw Error(`CustomerAgent requires an app_id.`);let{launcher:n,mount:r,...i}=e;return{...i,context:e.context??{},embedded:!!r,launcher:n?{offset:n.offset,placement:n.placement,style:n.style,variables:n.variables}:void 0,widgetId:t}}function l(e){return typeof e==`string`&&e.trim()?e.trim():null}function u(e){let t=l(e.user?.id);return t?JSON.stringify({appId:e.app_id,userId:t}):null}function d(e){let t=u(e);return t?`customer_agent:interview_session:${encodeURIComponent(t)}`:null}function f(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.entryId==`string`&&typeof t.priority==`number`&&typeof t.sessionId==`string`&&typeof t.title==`string`}function p(e){return u(e)}function m(){return{clear(e){let t=d(e);if(t)try{window.localStorage.removeItem(t)}catch{}},read(e){let t=d(e);if(!t)return null;try{let e=window.localStorage.getItem(t);if(!e)return null;let n=JSON.parse(e);return f(n)?n:null}catch{return null}},write(e,t){let n=d(e);if(n)try{window.localStorage.setItem(n,JSON.stringify(t))}catch{}}}}var h=class extends Error{conversationId;constructor(e){super(`The support conversation session is no longer available.`),this.conversationId=e,this.name=`CustomerAgentSessionInvalidatedError`}};function g(e){return typeof e==`string`&&e.trim()?e.trim():null}function _(e){let t=g(e.user?.id),n=g(e.anonymous_id),r=t?`user:${t}`:n?`anonymous:${n}`:`anonymous`;return encodeURIComponent(r)}function v(e){return`customer_agent:conversation_id:${e.app_id}:${_(e)}`}function y(e){return`${e.app_id}::${_(e)}`}function b(e){try{return window.localStorage.getItem(v(e))}catch{return null}}function x(e,t){try{window.localStorage.setItem(v(e),t)}catch{}}function S(e){try{window.localStorage.removeItem(v(e))}catch{}}function C(){try{return window.parent?.location??window.location}catch{return window.location}}function w(){let e=C();return!e?.href||e.href===`about:blank`?{}:{customerOrigin:e.origin,pagePath:`${e.pathname}${e.search}${e.hash}`,pageUrl:e.href}}function T(){return{language:navigator.language,languages:navigator.languages,platform:navigator.platform,screen:{height:window.screen.height,width:window.screen.width},userAgent:navigator.userAgent,viewport:{height:window.innerHeight,width:window.innerWidth}}}function E(e){return Object.fromEntries(Object.entries(e).filter(e=>e[1]!==void 0))}function D(e){return Array.isArray(e)?`[${e.map(e=>D(e)).join(`,`)}]`:e&&typeof e==`object`?`{${Object.entries(e).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>`${JSON.stringify(e)}:${D(t)}`).join(`,`)}}`:JSON.stringify(e)}function O(e){return e.anonymous_id??e.user?.id}function k(e){return E({...e.context,...e.user,userId:e.user?.id,visitorId:O(e)})}function A(e){let t=k(e);return{appId:e.app_id,...E({...w(),deviceInfo:T(),locale:e.locale,userContext:Object.keys(t).length?t:void 0,visitorId:O(e),widgetId:e.widgetId})}}function j(e){return{id:e.id,role:e.role,content:e.content,createdAt:new Date(e.createdAt),metadata:{custom:{assistantAuthor:e.assistantAuthor,attachments:e.attachments??[]}},status:e.role===`assistant`?{type:`complete`,reason:`stop`}:void 0}}function M(e){return e.map(j)}var N=class{apiOrigin=null;client=null;lastContextFingerprint=null;session=null;sessionPromise=null;getClient(){let e=s();return(this.apiOrigin!==e||!this.client)&&(this.apiOrigin=e,this.client=a(e),this.lastContextFingerprint=null,this.session=null,this.sessionPromise=null),this.client}clear(e){this.lastContextFingerprint=null,this.session=null,this.sessionPromise=null,S(e)}hydrateSession(e,t){this.session={cacheKey:y(e),conversationId:t.conversationId,messages:t.messages},this.sessionPromise=null,x(e,t.conversationId)}async ensureSession(e,t={}){let n=y(e);if(this.session?.conversationId&&this.session.cacheKey===n)return this.session;if(this.session?.cacheKey!==n&&(this.lastContextFingerprint=null,this.session=null,this.sessionPromise=null),this.sessionPromise)return await this.sessionPromise;let r=b(e);this.sessionPromise=this.startSession(e,r,t);try{return this.session=await this.sessionPromise,this.session}finally{this.sessionPromise=null}}async sendMessage(t,n,r,i,a={}){let o=this.getHydratedSession(t)??await this.ensureSession(t,a);try{let e=await this.postMessage(t,o.conversationId,n,r,i);return this.session?.conversationId===e.conversationId&&(this.session={...this.session,messages:P(this.session.messages,[e.userMessage,e.assistantMessage])}),e}catch(s){if(s instanceof e&&s.code===`NOT_FOUND`){this.clear(t),a.onSessionInvalidated?.(o.conversationId);let e=await this.ensureSession(t,a),s=await this.postMessage(t,e.conversationId,n,r,i);return this.session={...e,messages:P(e.messages,[s.userMessage,s.assistantMessage])},s}throw s}}async refreshSession(t,n){let r=this.getHydratedSession(t);if(!r)return null;try{let{data:e}=await this.getClient().request(`/conversation`,{conversationId:r.conversationId,method:`GET`,signal:n});return this.session={...r,conversationId:e.conversationId,messages:e.messages},x(t,e.conversationId),this.session}catch(n){if(n instanceof e&&n.code===`NOT_FOUND`){let e=r.conversationId;throw this.clear(t),new h(e)}throw n}}async updateContext(e){let t=this.getHydratedSession(e);if(!t)return null;let n=A(e),r=D(n);if(r===this.lastContextFingerprint)return null;let{data:i}=await this.getClient().request(`/context`,{body:{...n,conversationId:t.conversationId},conversationId:t.conversationId,method:`PATCH`});return this.lastContextFingerprint=r,i}async uploadAttachment(e,t,n={}){let r=this.getHydratedSession(e);if(!r)throw Error(`The support conversation session has not been initialized.`);let i=new FormData;i.set(`appId`,e.app_id),i.set(`conversationId`,r.conversationId),i.set(`file`,t);let{data:a}=await this.getClient().upload(`/attachments`,i,{conversationId:r.conversationId});return{filename:a.filename,id:a.attachmentId,mimeType:a.mimeType,sizeBytes:a.sizeBytes,url:a.url}}async startSession(t,n,r={}){let i=this.getClient(),a=A(t);try{let{data:e}=await i.request(`/session`,{body:E({...a,conversationId:n??void 0}),conversationId:n,method:`POST`}),o=e.conversationId;return x(t,o),this.lastContextFingerprint=D(a),n||r.onConversationCreated?.(o),{cacheKey:y(t),conversationId:o,messages:e.messages}}catch(i){if(n&&i instanceof e&&i.code===`NOT_FOUND`)return S(t),await this.startSession(t,null,r);throw i}}async postMessage(e,t,n,r,i){let a=A(e),{data:o}=await this.getClient().request(`/messages`,{body:{...a,attachments:r.length?r:void 0,conversationId:t,message:n},conversationId:t,method:`POST`,signal:i});return this.lastContextFingerprint=D(a),o}getHydratedSession(e){let t=y(e);return this.session?.conversationId&&this.session.cacheKey===t?this.session:null}};function P(e,t){let n=new Map(e.map(e=>[e.id,e]));for(let e of t)n.set(e.id,e);return[...n.values()]}var F=new N,I={AGENTS_CONVERSATIONS:`agents.conversations`,GLOBAL_ERROR:`global.error`,GLOBAL_LOADING:`global.loading`},L={CHAT:`chat`,INTERVIEW_STARTING:`interview.starting`},R=`interview/session/`,z=`support/session/`;function B(e,t){return e.startsWith(t)&&e.length>t.length}function V(e){return B(e,R)}function H(e){return`${z}${e}`}function U(e){return B(e,z)}function W(e){return U(e)?e.slice(16):null}function G(e){return!e||e.name!==I.AGENTS_CONVERSATIONS?!1:e.child.name===L.CHAT&&V(e.child.entryId)}function K(e){return{child:{entryId:e,name:L.CHAT},name:I.AGENTS_CONVERSATIONS}}export{c as _,G as a,a as b,I as c,M as d,F as f,o as g,u as h,V as i,h as l,p as m,H as n,U as o,m as p,W as r,L as s,K as t,A as u,s as v,e as y};
|