@telia-ace/conversational-hub-bot-provider 0.0.13 → 0.0.15

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 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),n=require("@telia-ace/knowledge-widget-ui"),o=require("react"),r=()=>{const e=n.useContainer();return o.useEffect(()=>{console.log("container ",e,e.get("$widget"))},[e]),t.jsx("div",{children:"Hej"})};exports.default=r;
@@ -0,0 +1,12 @@
1
+ import { jsx as t } from "react/jsx-runtime";
2
+ import { useContainer as e } from "@telia-ace/knowledge-widget-ui";
3
+ import { useEffect as r } from "react";
4
+ const s = () => {
5
+ const o = e();
6
+ return r(() => {
7
+ console.log("container ", o, o.get("$widget"));
8
+ }, [o]), /* @__PURE__ */ t("div", { children: "Hej" });
9
+ };
10
+ export {
11
+ s as default
12
+ };
package/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-482ea30a.js");require("react/jsx-runtime");require("react");require("react-dom");exports.ConversationalHubPlugin=e.ConversationalHubPlugin;
1
+ "use strict";var B=Object.defineProperty;var D=(o,t,n)=>t in o?B(o,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):o[t]=n;var b=(o,t,n)=>(D(o,typeof t!="symbol"?t+"":t,n),n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const L=require("@telia-ace/widget-conversation"),M=require("@telia-ace/widget-services"),S=require("@telia-ace/widget-utilities");require("@telia-ace/widget-forms");class W{constructor(t){b(this,"enabled",!0);b(this,"botProviderGlobalStateKey","bot-provider-global-state");b(this,"botProviderLocalStateKey","bot-provider-local-state");b(this,"botProviderEntriesKey","bot-provider-entries");b(this,"botProviderMetaStateKey","bot-provider-conversation-meta");this.container=t}getKey(t){let n;switch(t){case"localState":n=this.botProviderLocalStateKey;break;case"globalState":n=this.botProviderGlobalStateKey;break;case"entries":n=this.botProviderEntriesKey;break;case"meta":n=this.botProviderMetaStateKey;break}return n}async read(t){const n=this.getKey(t);if(!(!this.enabled||!n))return M.readStorage(this.container,n)}async write(t,n){const e=this.getKey(n);if(!this.enabled||!e)return;(await M.createStorageWriter(this.container,e,M.StorageCategory.Necessary))(t)}}var N=(o=>(o.ContactMethod="ace-conversational-hub-contact-method",o))(N||{});const z=({isUser:o,items:t=[],meta:n={}})=>{const e=S.uuid();return{id:e,isUser:o,items:t.map(p=>({id:p.id||S.uuid(),isUser:o,groupId:e,message:p.message||[]})),meta:n}},Q=async(o,t,n)=>{(await(await o.getAsync("dataClient")).getClient()).parameters.set(t,n)},T=({messageId:o,message:t,group:n})=>({id:o,message:t,groupId:n.id,isUser:n.isUser}),X=async(o,t,n)=>{const e=async(i,u,w=[],x)=>{var j,$;const h=S.uuid();switch(i.type!=="List"&&i.tags.includes("guide")&&(($=(j=i.content.hints)==null?void 0:j[0])!=null&&$.id)&&await Q(o,"LastGuideId",i.content.hints[0].id),i.type){case"Text":{const C=[];if(C.push(T({messageId:h,message:[L.ConversationMessageListItemType.HTML,{body:i.content.html}],group:u})),w.length){w.find(y=>{var k;return y.type==="List"&&((k=y.localState)==null?void 0:k.$type)==="Humany.Matching.Bots.Conversations.States.ContactState, Humany.Matching"});const I=w.find(y=>y.tags.includes("contact")&&y.type==="Contact");I&&C.push(T({messageId:h,message:[N.ContactMethod,{contactMethodId:I.content.id,groupId:u.id,guideId:I.content.guideId}],group:u}))}return C}case"Contact":return[T({messageId:h,message:[N.ContactMethod,{contactMethodId:i.content.id,groupId:u.id,guideId:i.content.guideId}],group:u})];case"Error":return[T({messageId:h,message:[L.ConversationMessageListItemType.HTML,{body:i.content.message||"Something went wrong."}],group:u})];default:return[]}},c=new Map([["Text",1],["Contact",2]]),p=[],f=t.sort((i,u)=>{const x=c.get(i.type)||20,h=c.get(u.type)||20;return x-h}).filter(i=>!i.relation).reduce((i,u)=>i.concat(u),[]),P=i=>typeof i.actions.selector<"u";for(const i of f){const u=t.filter(h=>h.relation===i.id&&!P(h)),w=z({isUser:!1});(await e(i,w,u)).forEach(h=>{w.items.push(h)}),w.items.length&&p.push(w)}return p};class Y{constructor(t,n,e,c){b(this,"globalState");b(this,"localState");b(this,"clientId");b(this,"entries");this.endpoint=t,this.events=n,this.store=e,this.container=c,this.clientId=S.uuid(),this.entries=[]}async fetchGuide(t){const n={command:{guide:{id:t}},globalState:this.globalState,clientId:this.clientId};return await this.postEnvelope(n)}async postEnvelope(t,n){try{const e=await fetch(this.endpoint,this.getHttpOptions(t));if(!e.ok)throw e;const c=await e.json();return this.handleResponse(c,n)}catch(e){process.env.NODE_ENV!=="production"&&console.warn("Something went wrong when posting the envelope.");let c="Something went wrong";return(e.message==="Failed to fetch"||e.message==="NetworkError when attempting to fetch resource.")&&(c="Lost connection... Please try again."),this.handleResponse({entries:[{id:S.uuid(),type:"Error",timestamp:new Date().toISOString(),content:{message:c},actions:{},tags:[]}]})}}async handleResponse(t,n){this.entries=this.entries.concat(t.entries),this.store.write(this.entries,"entries");const e=t.entries.find(p=>p.type==="Widget");return e&&this.events.dispatch("provider:widget-entry",e.content),t.globalState&&(this.globalState=t.globalState,this.store.write(t.globalState,"globalState")),this.localState=t.entries.reduce((p,f)=>f.localState?f.localState:p,void 0),this.store.write(this.localState,"localState"),await X(this.container,t.entries)}getHttpOptions(t){const n={method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"}};return t.funnel=this.container.get("$widget").name,t.localState=t.localState||this.localState,Object.assign({},n,{body:JSON.stringify(t),credentials:"same-origin"})}}const Z="@telia-ace/conversational-hub-bot-provider",F="0.0.15",tt="./index.js",et="./index.d.ts",nt={".":{import:"./index.mjs",require:"./index.js"}},ot={"@telia-ace/widget-conversation":"*","@webprovisions/platform":"^1.1.4","@telia-ace/knowledge-widget-core":"*","@telia-ace/widget-utilities":"*","@telia-ace/widget-services":"*","@telia-ace/widget-core":"*","@telia-ace/knowledge-data-client":"*","@telia-ace/knowledge-widget-adapters":"*","@telia-ace/knowledge-widget-ui":"*","@telia-ace/widget-forms":"*"},it={"@emotion/react":"11.11.1","@emotion/styled":"11.11.0",react:"18.2.0"},E={name:Z,version:F,main:tt,types:et,exports:nt,dependencies:ot,peerDependencies:it},st=async o=>{var G,H,A,_,U;const t="chub-plugin",n=o.get("$widget"),e=(U=(_=(A=(H=(G=n==null?void 0:n.container)==null?void 0:G.get("$settings"))==null?void 0:H.components)==null?void 0:A.conversation)==null?void 0:_.properties)==null?void 0:U.conversationalHubPluginSettings;let c,p,f,P=(e==null?void 0:e.connectionAttempts)??5,i,u,w;S.Logger.info((E==null?void 0:E.name)+" version: "+(E==null?void 0:E.version)),L.registerCustomMessageComponent(o,N.ContactMethod,Promise.resolve().then(()=>require("./contact-method-b1ac30ad.js")));const x=await M.createStorageWriter(o,"conversational-hub-session",M.StorageCategory.Necessary),h=(r,a)=>{const{knowledgeBotEndpoint:l}=a.properties();if(l)return`${l}/conversations`;const{data:d}=r.get("$settings");if(!d||!d.projection)throw new Error("Missing Knowledge Bot endpoint");return`${d.projection}/conversations`};(await L.ConversationPlatform.getInstance(o)).registerProvider(t,(r,a)=>{c=r,p=c.controller,f=c.createAgent({name:e==null?void 0:e.botName,avatar:e==null?void 0:e.avatar}),w=h(o,a);const{events:l}=o.get("$widget"),d=new W(o);u=new Y(w,l,d,o),$();const g=()=>p.providers.includes(t);window.controller=p,a.actions.create("submit",s=>{const{events:v}=o.get("$widget");v.dispatch("conversational-hub-provider:form-submitted",s)}),a.actions.watch("conversation.action",(s,v)=>(g()&&C(s),v(s))),a.actions.watch("conversation.user-submit",(s,v)=>{if(!g())return v(s);I(s.text),c.user.print(s.text.replace(/</g,"&lt;").replace(/>/g,"&gt;"))})});async function $(r=!0){const a=await M.readStorage(o,"conversational-hub-session");a!=null&&a.sessionId?i=a==null?void 0:a.sessionId:await y(e.baseUrl+"/initialize",`{"extension": "${e.extension}"}`,r)}async function C(r){await y(`${e.baseUrl}/input/${i}`,`{"type":"button_click","language":"${e.language}","content":{"button_text":"${r.label}","value":"${r.actionKey}"}}`)}async function I(r){const a={text:r};await y(`${e.baseUrl}/input/${i}`,`{"type":"text","language":"${e.language}","content":${JSON.stringify(a)}}`)}async function y(r,a,l=!0){var v,K,V,q;const d=c.loading();let g,s;try{g=await fetch(r,{method:"POST",body:a}),s=await(g==null?void 0:g.json())}catch(O){O instanceof SyntaxError?S.Logger.error("Incorrect JSON format.",O):S.Logger.error("Network error: check connection or baseUrl.",O),d(),f.print(e.errorMessage);return}if(!(g!=null&&g.ok)){if(S.Logger.error(`HTTP ${g==null?void 0:g.status}.`,JSON.stringify(s)),d(),!!((v=s==null?void 0:s.errors)!=null&&v.filter(m=>m.code==="1003").length)&&P>0){P--,await new Promise(R=>setTimeout(R,500)),await $(!1);const m=JSON.parse(a);(K=m==null?void 0:m.content)!=null&&K.text?await I(m.content.text):(V=m==null?void 0:m.content)!=null&&V.action&&await C((q=m==null?void 0:m.content)==null?void 0:q.action)}else f.print(e.errorMessage);return}d(),P=(e==null?void 0:e.connectionAttempts)??5,s!=null&&s.action_payload&&k(s.action_payload),i=s==null?void 0:s.session_id,x({sessionId:i}),l&&J(s)}async function k(r){var g;const a=(g=r==null?void 0:r.transfer_parameters)==null?void 0:g.contactGuide,l=c.loading(),d=await u.fetchGuide(parseInt(a));if(l(),d){const s=d.concat(d);if(s.length){const v=s[0].items.map(K=>K.message);f.print(v)}}}function J(r){var a;r==null||r.agent_response.forEach(l=>{f.print(l.payload.text)}),(a=r==null?void 0:r.prompt)!=null&&a.items&&f.print(["button-list",{actions:r.prompt.items.map(l=>{let d;return l.type==="button"&&(d={actionKey:l.value,label:l.text}),l.type==="link"&&(d={actionKey:l.value,label:l.text,data:{href:l.url,target:(e==null?void 0:e.linkTarget)??"_blank"}}),d})}])}};exports.ConversationalHubPlugin=st;
package/index.mjs CHANGED
@@ -1,7 +1,402 @@
1
- import { J as p } from "./index-93f64633.mjs";
2
- import "react/jsx-runtime";
3
- import "react";
4
- import "react-dom";
1
+ var q = Object.defineProperty;
2
+ var Q = (o, t, n) => t in o ? q(o, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : o[t] = n;
3
+ var b = (o, t, n) => (Q(o, typeof t != "symbol" ? t + "" : t, n), n);
4
+ import { ConversationMessageListItemType as J, registerCustomMessageComponent as X, ConversationPlatform as Y } from "@telia-ace/widget-conversation";
5
+ import { readStorage as R, createStorageWriter as B, StorageCategory as D } from "@telia-ace/widget-services";
6
+ import { uuid as $, Logger as N } from "@telia-ace/widget-utilities";
7
+ import "@telia-ace/widget-forms";
8
+ class Z {
9
+ constructor(t) {
10
+ b(this, "enabled", !0);
11
+ // set whether or not to store data
12
+ b(this, "botProviderGlobalStateKey", "bot-provider-global-state");
13
+ b(this, "botProviderLocalStateKey", "bot-provider-local-state");
14
+ b(this, "botProviderEntriesKey", "bot-provider-entries");
15
+ b(this, "botProviderMetaStateKey", "bot-provider-conversation-meta");
16
+ this.container = t;
17
+ }
18
+ getKey(t) {
19
+ let n;
20
+ switch (t) {
21
+ case "localState":
22
+ n = this.botProviderLocalStateKey;
23
+ break;
24
+ case "globalState":
25
+ n = this.botProviderGlobalStateKey;
26
+ break;
27
+ case "entries":
28
+ n = this.botProviderEntriesKey;
29
+ break;
30
+ case "meta":
31
+ n = this.botProviderMetaStateKey;
32
+ break;
33
+ }
34
+ return n;
35
+ }
36
+ async read(t) {
37
+ const n = this.getKey(t);
38
+ if (!(!this.enabled || !n))
39
+ return R(this.container, n);
40
+ }
41
+ async write(t, n) {
42
+ const e = this.getKey(n);
43
+ if (!this.enabled || !e)
44
+ return;
45
+ (await B(
46
+ this.container,
47
+ e,
48
+ D.Necessary
49
+ ))(t);
50
+ }
51
+ }
52
+ var T = /* @__PURE__ */ ((o) => (o.ContactMethod = "ace-conversational-hub-contact-method", o))(T || {});
53
+ const F = ({
54
+ isUser: o,
55
+ items: t = [],
56
+ meta: n = {}
57
+ }) => {
58
+ const e = $();
59
+ return {
60
+ id: e,
61
+ isUser: o,
62
+ items: t.map((p) => ({
63
+ id: p.id || $(),
64
+ isUser: o,
65
+ groupId: e,
66
+ message: p.message || []
67
+ })),
68
+ meta: n
69
+ };
70
+ }, tt = async (o, t, n) => {
71
+ (await (await o.getAsync("dataClient")).getClient()).parameters.set(t, n);
72
+ }, O = ({
73
+ messageId: o,
74
+ message: t,
75
+ group: n
76
+ }) => ({
77
+ id: o,
78
+ message: t,
79
+ groupId: n.id,
80
+ isUser: n.isUser
81
+ }), et = async (o, t, n) => {
82
+ const e = async (i, u, m = [], x) => {
83
+ var G, M;
84
+ const h = $();
85
+ switch (i.type !== "List" && i.tags.includes("guide") && ((M = (G = i.content.hints) == null ? void 0 : G[0]) != null && M.id) && await tt(
86
+ o,
87
+ "LastGuideId",
88
+ i.content.hints[0].id
89
+ ), i.type) {
90
+ case "Text": {
91
+ const S = [];
92
+ if (S.push(
93
+ O({
94
+ messageId: h,
95
+ message: [
96
+ J.HTML,
97
+ { body: i.content.html }
98
+ ],
99
+ group: u
100
+ })
101
+ ), m.length) {
102
+ m.find(
103
+ (y) => {
104
+ var P;
105
+ return y.type === "List" && ((P = y.localState) == null ? void 0 : P.$type) === "Humany.Matching.Bots.Conversations.States.ContactState, Humany.Matching";
106
+ }
107
+ );
108
+ const I = m.find(
109
+ (y) => y.tags.includes("contact") && y.type === "Contact"
110
+ );
111
+ I && S.push(
112
+ O({
113
+ messageId: h,
114
+ message: [
115
+ T.ContactMethod,
116
+ {
117
+ contactMethodId: I.content.id,
118
+ groupId: u.id,
119
+ guideId: I.content.guideId
120
+ }
121
+ ],
122
+ group: u
123
+ })
124
+ );
125
+ }
126
+ return S;
127
+ }
128
+ case "Contact":
129
+ return [
130
+ O({
131
+ messageId: h,
132
+ message: [
133
+ T.ContactMethod,
134
+ {
135
+ contactMethodId: i.content.id,
136
+ groupId: u.id,
137
+ guideId: i.content.guideId
138
+ }
139
+ ],
140
+ group: u
141
+ })
142
+ ];
143
+ case "Error":
144
+ return [
145
+ O({
146
+ messageId: h,
147
+ message: [
148
+ J.HTML,
149
+ {
150
+ body: i.content.message || "Something went wrong."
151
+ }
152
+ ],
153
+ group: u
154
+ })
155
+ ];
156
+ default:
157
+ return [];
158
+ }
159
+ }, c = /* @__PURE__ */ new Map([
160
+ ["Text", 1],
161
+ ["Contact", 2]
162
+ ]), p = [], w = t.sort((i, u) => {
163
+ const x = c.get(i.type) || 20, h = c.get(u.type) || 20;
164
+ return x - h;
165
+ }).filter((i) => !i.relation).reduce((i, u) => i.concat(u), []), E = (i) => typeof i.actions.selector < "u";
166
+ for (const i of w) {
167
+ const u = t.filter(
168
+ (h) => h.relation === i.id && !E(h)
169
+ ), m = F({ isUser: !1 });
170
+ (await e(i, m, u)).forEach((h) => {
171
+ m.items.push(h);
172
+ }), m.items.length && p.push(m);
173
+ }
174
+ return p;
175
+ };
176
+ class nt {
177
+ constructor(t, n, e, c) {
178
+ b(this, "globalState");
179
+ b(this, "localState");
180
+ b(this, "clientId");
181
+ b(this, "entries");
182
+ this.endpoint = t, this.events = n, this.store = e, this.container = c, this.clientId = $(), this.entries = [];
183
+ }
184
+ async fetchGuide(t) {
185
+ const n = {
186
+ command: { guide: { id: t } },
187
+ globalState: this.globalState,
188
+ clientId: this.clientId
189
+ };
190
+ return await this.postEnvelope(n);
191
+ }
192
+ async postEnvelope(t, n) {
193
+ try {
194
+ const e = await fetch(
195
+ this.endpoint,
196
+ this.getHttpOptions(t)
197
+ );
198
+ if (!e.ok)
199
+ throw e;
200
+ const c = await e.json();
201
+ return this.handleResponse(c, n);
202
+ } catch (e) {
203
+ process.env.NODE_ENV !== "production" && console.warn("Something went wrong when posting the envelope.");
204
+ let c = "Something went wrong";
205
+ return (e.message === "Failed to fetch" || e.message === "NetworkError when attempting to fetch resource.") && (c = "Lost connection... Please try again."), this.handleResponse({
206
+ entries: [
207
+ {
208
+ id: $(),
209
+ type: "Error",
210
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
211
+ content: {
212
+ message: c
213
+ },
214
+ actions: {},
215
+ tags: []
216
+ }
217
+ ]
218
+ });
219
+ }
220
+ }
221
+ async handleResponse(t, n) {
222
+ this.entries = this.entries.concat(t.entries), this.store.write(this.entries, "entries");
223
+ const e = t.entries.find((p) => p.type === "Widget");
224
+ return e && this.events.dispatch("provider:widget-entry", e.content), t.globalState && (this.globalState = t.globalState, this.store.write(t.globalState, "globalState")), this.localState = t.entries.reduce(
225
+ (p, w) => w.localState ? w.localState : p,
226
+ void 0
227
+ ), this.store.write(this.localState, "localState"), await et(
228
+ this.container,
229
+ t.entries
230
+ );
231
+ }
232
+ getHttpOptions(t) {
233
+ const n = {
234
+ method: "POST",
235
+ headers: {
236
+ Accept: "application/json",
237
+ "Content-Type": "application/json"
238
+ }
239
+ };
240
+ return t.funnel = this.container.get("$widget").name, t.localState = t.localState || this.localState, Object.assign({}, n, {
241
+ body: JSON.stringify(t),
242
+ credentials: "same-origin"
243
+ });
244
+ }
245
+ }
246
+ const ot = "@telia-ace/conversational-hub-bot-provider", it = "0.0.15", st = "./index.js", at = "./index.d.ts", rt = {
247
+ ".": {
248
+ import: "./index.mjs",
249
+ require: "./index.js"
250
+ }
251
+ }, ct = {
252
+ "@telia-ace/widget-conversation": "*",
253
+ "@webprovisions/platform": "^1.1.4",
254
+ "@telia-ace/knowledge-widget-core": "*",
255
+ "@telia-ace/widget-utilities": "*",
256
+ "@telia-ace/widget-services": "*",
257
+ "@telia-ace/widget-core": "*",
258
+ "@telia-ace/knowledge-data-client": "*",
259
+ "@telia-ace/knowledge-widget-adapters": "*",
260
+ "@telia-ace/knowledge-widget-ui": "*",
261
+ "@telia-ace/widget-forms": "*"
262
+ }, lt = {
263
+ "@emotion/react": "11.11.1",
264
+ "@emotion/styled": "11.11.0",
265
+ react: "18.2.0"
266
+ }, C = {
267
+ name: ot,
268
+ version: it,
269
+ main: st,
270
+ types: at,
271
+ exports: rt,
272
+ dependencies: ct,
273
+ peerDependencies: lt
274
+ }, mt = async (o) => {
275
+ var j, H, L, A, _;
276
+ const t = "chub-plugin", n = o.get("$widget"), e = (_ = (A = (L = (H = (j = n == null ? void 0 : n.container) == null ? void 0 : j.get("$settings")) == null ? void 0 : H.components) == null ? void 0 : L.conversation) == null ? void 0 : A.properties) == null ? void 0 : _.conversationalHubPluginSettings;
277
+ let c, p, w, E = (e == null ? void 0 : e.connectionAttempts) ?? 5, i, u, m;
278
+ N.info((C == null ? void 0 : C.name) + " version: " + (C == null ? void 0 : C.version)), X(
279
+ o,
280
+ T.ContactMethod,
281
+ import("./contact-method-cbd40131.mjs")
282
+ );
283
+ const x = await B(
284
+ o,
285
+ "conversational-hub-session",
286
+ D.Necessary
287
+ ), h = (a, r) => {
288
+ const { knowledgeBotEndpoint: l } = r.properties();
289
+ if (l)
290
+ return `${l}/conversations`;
291
+ const { data: d } = a.get("$settings");
292
+ if (!d || !d.projection)
293
+ throw new Error("Missing Knowledge Bot endpoint");
294
+ return `${d.projection}/conversations`;
295
+ };
296
+ (await Y.getInstance(
297
+ o
298
+ )).registerProvider(t, (a, r) => {
299
+ c = a, p = c.controller, w = c.createAgent({
300
+ name: e == null ? void 0 : e.botName,
301
+ avatar: e == null ? void 0 : e.avatar
302
+ }), m = h(o, r);
303
+ const { events: l } = o.get("$widget"), d = new Z(o);
304
+ u = new nt(m, l, d, o), M();
305
+ const g = () => p.providers.includes(t);
306
+ window.controller = p, r.actions.create("submit", (s) => {
307
+ const { events: v } = o.get("$widget");
308
+ v.dispatch("conversational-hub-provider:form-submitted", s);
309
+ }), r.actions.watch("conversation.action", (s, v) => (g() && S(s), v(s))), r.actions.watch("conversation.user-submit", (s, v) => {
310
+ if (!g())
311
+ return v(s);
312
+ I(s.text), c.user.print(
313
+ s.text.replace(/</g, "&lt;").replace(/>/g, "&gt;")
314
+ );
315
+ });
316
+ });
317
+ async function M(a = !0) {
318
+ const r = await R(
319
+ o,
320
+ "conversational-hub-session"
321
+ );
322
+ r != null && r.sessionId ? i = r == null ? void 0 : r.sessionId : await y(
323
+ e.baseUrl + "/initialize",
324
+ `{"extension": "${e.extension}"}`,
325
+ a
326
+ );
327
+ }
328
+ async function S(a) {
329
+ await y(
330
+ `${e.baseUrl}/input/${i}`,
331
+ `{"type":"button_click","language":"${e.language}","content":{"button_text":"${a.label}","value":"${a.actionKey}"}}`
332
+ );
333
+ }
334
+ async function I(a) {
335
+ const r = { text: a };
336
+ await y(
337
+ `${e.baseUrl}/input/${i}`,
338
+ `{"type":"text","language":"${e.language}","content":${JSON.stringify(r)}}`
339
+ );
340
+ }
341
+ async function y(a, r, l = !0) {
342
+ var v, k, V, U;
343
+ const d = c.loading();
344
+ let g, s;
345
+ try {
346
+ g = await fetch(a, {
347
+ method: "POST",
348
+ body: r
349
+ }), s = await (g == null ? void 0 : g.json());
350
+ } catch (K) {
351
+ K instanceof SyntaxError ? N.error("Incorrect JSON format.", K) : N.error("Network error: check connection or baseUrl.", K), d(), w.print(e.errorMessage);
352
+ return;
353
+ }
354
+ if (!(g != null && g.ok)) {
355
+ if (N.error(`HTTP ${g == null ? void 0 : g.status}.`, JSON.stringify(s)), d(), !!((v = s == null ? void 0 : s.errors) != null && v.filter(
356
+ (f) => f.code === "1003"
357
+ ).length) && E > 0) {
358
+ E--, await new Promise((W) => setTimeout(W, 500)), await M(!1);
359
+ const f = JSON.parse(r);
360
+ (k = f == null ? void 0 : f.content) != null && k.text ? await I(f.content.text) : (V = f == null ? void 0 : f.content) != null && V.action && await S((U = f == null ? void 0 : f.content) == null ? void 0 : U.action);
361
+ } else
362
+ w.print(e.errorMessage);
363
+ return;
364
+ }
365
+ d(), E = (e == null ? void 0 : e.connectionAttempts) ?? 5, s != null && s.action_payload && P(s.action_payload), i = s == null ? void 0 : s.session_id, x({ sessionId: i }), l && z(s);
366
+ }
367
+ async function P(a) {
368
+ var g;
369
+ const r = (g = a == null ? void 0 : a.transfer_parameters) == null ? void 0 : g.contactGuide, l = c.loading(), d = await u.fetchGuide(parseInt(r));
370
+ if (l(), d) {
371
+ const s = d.concat(d);
372
+ if (s.length) {
373
+ const v = s[0].items.map((k) => k.message);
374
+ w.print(v);
375
+ }
376
+ }
377
+ }
378
+ function z(a) {
379
+ var r;
380
+ a == null || a.agent_response.forEach((l) => {
381
+ w.print(l.payload.text);
382
+ }), (r = a == null ? void 0 : a.prompt) != null && r.items && w.print([
383
+ "button-list",
384
+ {
385
+ actions: a.prompt.items.map((l) => {
386
+ let d;
387
+ return l.type === "button" && (d = { actionKey: l.value, label: l.text }), l.type === "link" && (d = {
388
+ actionKey: l.value,
389
+ label: l.text,
390
+ data: {
391
+ href: l.url,
392
+ target: (e == null ? void 0 : e.linkTarget) ?? "_blank"
393
+ }
394
+ }), d;
395
+ })
396
+ }
397
+ ]);
398
+ }
399
+ };
5
400
  export {
6
- p as ConversationalHubPlugin
401
+ mt as ConversationalHubPlugin
7
402
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@telia-ace/conversational-hub-bot-provider",
3
- "version": "0.0.13",
3
+ "version": "0.0.15",
4
4
  "main": "./index.js",
5
5
  "types": "./index.d.ts",
6
6
  "exports": {
@@ -1,9 +1,3 @@
1
1
  import React from 'react';
2
- type Props = {
3
- contactMethodId: string;
4
- groupId: string;
5
- guideId?: string;
6
- className?: string;
7
- };
8
- declare const ContactMethod: React.FC<Props>;
2
+ declare const ContactMethod: React.FC<any>;
9
3
  export default ContactMethod;