@telia-ace/knowledge-widget-bot-provider 0.0.1-alpha.6 → 0.0.1-alpha.62

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.
Files changed (126) hide show
  1. package/{lib-esm → dist}/client/chat.client.d.ts +2 -1
  2. package/{lib → dist}/client/contact-method.client.d.ts +4 -1
  3. package/{lib → dist}/client/http.client.d.ts +5 -4
  4. package/{lib → dist}/client/middleware.client.d.ts +4 -3
  5. package/dist/contact-method.15886c3d.js +66 -0
  6. package/dist/contact-method.15886c3d.js.map +1 -0
  7. package/{lib-esm → dist}/contract/custom-component/contact-method-item.d.ts +0 -0
  8. package/{lib-esm → dist}/contract/custom-component/contact-method-list.d.ts +0 -0
  9. package/{lib-esm → dist}/contract/custom-component/contact-method.d.ts +0 -0
  10. package/{lib → dist}/contract/enum/server-entry-type.enum.d.ts +3 -2
  11. package/{lib-esm → dist}/contract/model/conversation-api-model/list.model.d.ts +0 -0
  12. package/{lib-esm → dist}/contract/model/conversation-api-model/message.model.d.ts +0 -0
  13. package/{lib-esm → dist}/contract/model/http/action.model.d.ts +0 -0
  14. package/{lib-esm → dist}/contract/model/http/client-action.model.d.ts +0 -0
  15. package/{lib-esm → dist}/contract/model/http/client-envelope.model.d.ts +0 -0
  16. package/{lib-esm → dist}/contract/model/http/connect-options.model.d.ts +0 -0
  17. package/{lib-esm → dist}/contract/model/http/global-state.model.d.ts +0 -0
  18. package/{lib-esm → dist}/contract/model/http/http-client-options.model.d.ts +0 -0
  19. package/{lib-esm → dist}/contract/model/http/server-entry.model.d.ts +0 -0
  20. package/{lib-esm → dist}/contract/model/http/server-envelope.model.d.ts +0 -0
  21. package/{lib-esm → dist}/contract/model/middleware/aggregator-state.model.d.ts +0 -0
  22. package/{lib-esm → dist}/contract/model/shared/loose-object.model.d.ts +0 -0
  23. package/{lib-esm → dist}/helper/chat.helper.d.ts +0 -0
  24. package/{lib-esm → dist}/helper/http.helper.d.ts +1 -1
  25. package/{lib-esm → dist}/helper/middleware.helper.d.ts +1 -1
  26. package/{lib-esm → dist}/helper/store.helper.d.ts +0 -0
  27. package/{lib-esm → dist}/index.d.ts +0 -0
  28. package/dist/index.js +672 -0
  29. package/dist/index.js.map +1 -0
  30. package/{lib-esm → dist}/interface/entry.interface.d.ts +6 -3
  31. package/{lib-esm → dist}/interface/middleware/paging.interface.d.ts +0 -0
  32. package/{lib-esm → dist}/interface/middleware/processor.interface.d.ts +0 -0
  33. package/dist/plugin.d.ts +3 -0
  34. package/package.json +46 -45
  35. package/lib/client/chat.client.d.ts +0 -15
  36. package/lib/client/chat.client.js +0 -80
  37. package/lib/client/contact-method.client.js +0 -276
  38. package/lib/client/http.client.js +0 -114
  39. package/lib/client/middleware.client.js +0 -60
  40. package/lib/contract/custom-component/contact-method-item.d.ts +0 -8
  41. package/lib/contract/custom-component/contact-method-item.js +0 -76
  42. package/lib/contract/custom-component/contact-method-list.d.ts +0 -7
  43. package/lib/contract/custom-component/contact-method-list.js +0 -41
  44. package/lib/contract/custom-component/contact-method.d.ts +0 -3
  45. package/lib/contract/custom-component/contact-method.js +0 -38
  46. package/lib/contract/enum/server-entry-type.enum.js +0 -10
  47. package/lib/contract/model/conversation-api-model/list.model.d.ts +0 -5
  48. package/lib/contract/model/conversation-api-model/list.model.js +0 -2
  49. package/lib/contract/model/conversation-api-model/message.model.d.ts +0 -7
  50. package/lib/contract/model/conversation-api-model/message.model.js +0 -2
  51. package/lib/contract/model/http/action.model.d.ts +0 -3
  52. package/lib/contract/model/http/action.model.js +0 -2
  53. package/lib/contract/model/http/client-action.model.d.ts +0 -4
  54. package/lib/contract/model/http/client-action.model.js +0 -3
  55. package/lib/contract/model/http/client-envelope.model.d.ts +0 -9
  56. package/lib/contract/model/http/client-envelope.model.js +0 -2
  57. package/lib/contract/model/http/connect-options.model.d.ts +0 -5
  58. package/lib/contract/model/http/connect-options.model.js +0 -2
  59. package/lib/contract/model/http/global-state.model.d.ts +0 -8
  60. package/lib/contract/model/http/global-state.model.js +0 -2
  61. package/lib/contract/model/http/http-client-options.model.d.ts +0 -5
  62. package/lib/contract/model/http/http-client-options.model.js +0 -2
  63. package/lib/contract/model/http/server-entry.model.d.ts +0 -11
  64. package/lib/contract/model/http/server-entry.model.js +0 -2
  65. package/lib/contract/model/http/server-envelope.model.d.ts +0 -10
  66. package/lib/contract/model/http/server-envelope.model.js +0 -2
  67. package/lib/contract/model/middleware/aggregator-state.model.d.ts +0 -4
  68. package/lib/contract/model/middleware/aggregator-state.model.js +0 -3
  69. package/lib/contract/model/shared/loose-object.model.d.ts +0 -3
  70. package/lib/contract/model/shared/loose-object.model.js +0 -2
  71. package/lib/helper/chat.helper.d.ts +0 -8
  72. package/lib/helper/chat.helper.js +0 -21
  73. package/lib/helper/http.helper.d.ts +0 -13
  74. package/lib/helper/http.helper.js +0 -33
  75. package/lib/helper/middleware.helper.d.ts +0 -12
  76. package/lib/helper/middleware.helper.js +0 -72
  77. package/lib/helper/store.helper.d.ts +0 -22
  78. package/lib/helper/store.helper.js +0 -80
  79. package/lib/index.d.ts +0 -2
  80. package/lib/index.js +0 -8
  81. package/lib/interface/entry.interface.d.ts +0 -17
  82. package/lib/interface/entry.interface.js +0 -138
  83. package/lib/interface/middleware/contact-expanded.interface.d.ts +0 -0
  84. package/lib/interface/middleware/contact-expanded.interface.js +0 -50
  85. package/lib/interface/middleware/legacy-contact-methods.interface.d.ts +0 -0
  86. package/lib/interface/middleware/legacy-contact-methods.interface.js +0 -394
  87. package/lib/interface/middleware/paging.interface.d.ts +0 -4
  88. package/lib/interface/middleware/paging.interface.js +0 -55
  89. package/lib/interface/middleware/processor.interface.d.ts +0 -10
  90. package/lib/interface/middleware/processor.interface.js +0 -120
  91. package/lib/plugin.d.ts +0 -3
  92. package/lib/plugin.js +0 -171
  93. package/lib-esm/client/chat.client.js +0 -75
  94. package/lib-esm/client/contact-method.client.d.ts +0 -22
  95. package/lib-esm/client/contact-method.client.js +0 -270
  96. package/lib-esm/client/http.client.d.ts +0 -22
  97. package/lib-esm/client/http.client.js +0 -108
  98. package/lib-esm/client/middleware.client.d.ts +0 -13
  99. package/lib-esm/client/middleware.client.js +0 -55
  100. package/lib-esm/contract/custom-component/contact-method-item.js +0 -51
  101. package/lib-esm/contract/custom-component/contact-method-list.js +0 -13
  102. package/lib-esm/contract/custom-component/contact-method.js +0 -33
  103. package/lib-esm/contract/enum/server-entry-type.enum.d.ts +0 -6
  104. package/lib-esm/contract/enum/server-entry-type.enum.js +0 -7
  105. package/lib-esm/contract/model/conversation-api-model/list.model.js +0 -1
  106. package/lib-esm/contract/model/conversation-api-model/message.model.js +0 -1
  107. package/lib-esm/contract/model/http/action.model.js +0 -1
  108. package/lib-esm/contract/model/http/client-action.model.js +0 -2
  109. package/lib-esm/contract/model/http/client-envelope.model.js +0 -1
  110. package/lib-esm/contract/model/http/connect-options.model.js +0 -1
  111. package/lib-esm/contract/model/http/global-state.model.js +0 -1
  112. package/lib-esm/contract/model/http/http-client-options.model.js +0 -1
  113. package/lib-esm/contract/model/http/server-entry.model.js +0 -1
  114. package/lib-esm/contract/model/http/server-envelope.model.js +0 -1
  115. package/lib-esm/contract/model/middleware/aggregator-state.model.js +0 -2
  116. package/lib-esm/contract/model/shared/loose-object.model.js +0 -1
  117. package/lib-esm/helper/chat.helper.js +0 -18
  118. package/lib-esm/helper/http.helper.js +0 -30
  119. package/lib-esm/helper/middleware.helper.js +0 -69
  120. package/lib-esm/helper/store.helper.js +0 -77
  121. package/lib-esm/index.js +0 -2
  122. package/lib-esm/interface/entry.interface.js +0 -136
  123. package/lib-esm/interface/middleware/paging.interface.js +0 -53
  124. package/lib-esm/interface/middleware/processor.interface.js +0 -118
  125. package/lib-esm/plugin.d.ts +0 -3
  126. package/lib-esm/plugin.js +0 -143
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/contract/enum/server-entry-type.enum.ts","../src/helper/chat.helper.ts","../src/helper/middleware.helper.ts","../src/helper/store.helper.ts","../src/interface/entry.interface.ts","../src/client/chat.client.ts","../src/client/contact-method.client.ts","../src/helper/http.helper.ts","../src/interface/middleware/paging.interface.ts","../src/interface/middleware/processor.interface.ts","../src/client/middleware.client.ts","../src/client/http.client.ts","../src/plugin.ts"],"sourcesContent":["export enum ServerEntryTypeEnum {\r\n Widget,\r\n Text,\r\n Contact,\r\n List,\r\n Error,\r\n}\r\n","export class ChatHelper {\r\n private static user: any;\r\n private static agent: any;\r\n\r\n static setUser(user: any) {\r\n this.user = user;\r\n }\r\n\r\n static setAgent(agent: any) {\r\n this.agent = agent;\r\n }\r\n \r\n static getUser(): any {\r\n return this.user;\r\n }\r\n \r\n static getAgent(): any {\r\n return this.agent;\r\n }\r\n}\r\n","import { createStorageWriter, readStorage, StorageCategory } from '@telia-ace/widget-services';\r\nimport { Message } from '../contract/model/conversation-api-model/message.model';\r\n\r\nexport class MiddlewareHelper {\r\n private static sessionMessageStorageVariable: string = 'conversation-plugin-messages';\r\n private static container: any;\r\n private static widget: any;\r\n\r\n static setContainer(container: any) {\r\n MiddlewareHelper.container = container;\r\n }\r\n\r\n static setWidget(widget: any) {\r\n this.widget = widget;\r\n }\r\n\r\n static getContainer(): any {\r\n return this.container;\r\n }\r\n\r\n static getWidget(): any {\r\n return this.widget;\r\n }\r\n\r\n static setEntrySessionStorage = async (messages: Message[]) => {\r\n createStorageWriter(\r\n MiddlewareHelper.container,\r\n MiddlewareHelper.sessionMessageStorageVariable,\r\n StorageCategory.Necessary\r\n ).then((write) => {\r\n return write(messages);\r\n });\r\n };\r\n\r\n static getEntrySessionStorage(): Promise<any> {\r\n return readStorage(this.container, this.sessionMessageStorageVariable);\r\n }\r\n}\r\n","import { Message } from '../contract/model/conversation-api-model/message.model';\r\nimport { ClientAction } from '../contract/model/http/client-action.model';\r\nimport { GlobalState } from '../contract/model/http/global-state.model';\r\nimport { ServerEntry } from '../contract/model/http/server-entry.model';\r\nimport { LooseObject } from '../contract/model/shared/loose-object.model';\r\nimport { MiddlewareHelper } from './middleware.helper';\r\n\r\nexport class StoreHelper {\r\n private static messageStore: Message[] = [];\r\n private static globalState: GlobalState;\r\n\r\n constructor() {\r\n StoreHelper.globalState = {\r\n completedInteractionsCount: 0,\r\n lastBotGuide: 0,\r\n site: 'https://localhost:8080/',\r\n invincibleParameters: {},\r\n };\r\n }\r\n\r\n static insertOrUpdateMessageArrayStore(messageArray: Message[], entry?: any) {\r\n messageArray\r\n .filter((o) => !!o)\r\n .forEach((t) => {\r\n if (!this.messageStore.find((o) => o.id == t.id)) this.insertMessageToStore(t);\r\n else {\r\n this.updateMessageInStore(t, entry);\r\n }\r\n });\r\n\r\n MiddlewareHelper.setEntrySessionStorage(this.messageStore);\r\n }\r\n\r\n private static insertMessageToStore(message: Message) {\r\n this.messageStore.push(message);\r\n }\r\n\r\n private static updateMessageInStore(message: Message, entry?: any) {\r\n message.conversationEntry = entry;\r\n let index = this.messageStore.findIndex((o) => o.id == message.id);\r\n this.messageStore[index] = message;\r\n }\r\n\r\n static checkIdInMessageStore(id: string): boolean {\r\n return this.messageStore.find((o) => o.id == id) === undefined;\r\n }\r\n\r\n static getLocalState(action: string): LooseObject | undefined {\r\n const entry: ServerEntry | undefined = this.getEntry(action);\r\n return entry?.localState;\r\n }\r\n\r\n static getGlobalState(): GlobalState {\r\n return StoreHelper.globalState;\r\n }\r\n\r\n static setGlobalState(state: GlobalState) {\r\n StoreHelper.globalState = state;\r\n }\r\n\r\n static getAction(action: string): ClientAction {\r\n const entry: ServerEntry | undefined = this.getEntry(action);\r\n\r\n return {\r\n key: action,\r\n content: entry?.actions[action],\r\n };\r\n }\r\n\r\n static getCommand(text: string): LooseObject {\r\n return { phrase: text };\r\n }\r\n\r\n static getEntry(action: string): ServerEntry | undefined {\r\n let entry: ServerEntry | undefined = undefined;\r\n this.getEntryStore().forEach((o) => {\r\n if (o.actions[action]) {\r\n entry = o;\r\n }\r\n });\r\n return entry;\r\n }\r\n\r\n static getMessage(id: string): Message | undefined {\r\n return this.messageStore.find((o) => o.id == id);\r\n }\r\n\r\n static getEntryStore(): ServerEntry[] {\r\n return this.messageStore\r\n .filter((o) => !!o.entry)\r\n .map((o) => {\r\n return o.entry;\r\n });\r\n }\r\n}\r\n","import { DataClient, DataType } from '@telia-ace/knowledge-widget-types-grid';\r\nimport {\r\n ConversationMessageListItemType,\r\n ConverstationMessageItem\r\n} from '@telia-ace/widget-conversation';\r\nimport { Container } from '@webprovisions/platform';\r\nimport { ServerEntryTypeEnum } from '../contract/enum/server-entry-type.enum';\r\nimport { Message } from '../contract/model/conversation-api-model/message.model';\r\nimport { ServerEntry } from '../contract/model/http/server-entry.model';\r\nimport { StoreHelper } from '../helper/store.helper';\r\n\r\nexport default class EntryInterface {\r\n private helpActionKey = 'help';\r\n private nextActionKey = 'next';\r\n\r\n constructor(private container: Container) {}\r\n\r\n // transform the entry based on its type\r\n async transform(entry: ServerEntry): Promise<Message | undefined> {\r\n const entryType = (<any>ServerEntryTypeEnum)[entry.type];\r\n switch (entryType) {\r\n case ServerEntryTypeEnum.List:\r\n return {\r\n id: entry.id,\r\n message: this.listTransform(entry),\r\n entry: entry,\r\n isUser: false,\r\n };\r\n case ServerEntryTypeEnum.Text:\r\n return {\r\n id: entry.id,\r\n message: this.textTransform(entry),\r\n entry: entry,\r\n isUser: false,\r\n };\r\n case ServerEntryTypeEnum.Text:\r\n return {\r\n id: entry.id,\r\n message: this.listTransform(entry),\r\n entry: entry,\r\n isUser: false,\r\n };\r\n case ServerEntryTypeEnum.Contact:\r\n return {\r\n id: entry.id,\r\n message: await this.transformContactMethod(entry),\r\n entry: entry,\r\n isUser: false,\r\n };\r\n }\r\n }\r\n\r\n async transformContactMethod(entry: ServerEntry): Promise<any> {\r\n const dataClient: DataClient = await this.container.getAsync('dataClient');\r\n\r\n const contactMethods = [];\r\n const contactMethod = await dataClient.fetch(DataType.ContactMethod, {\r\n contactMethodId: entry.content.id,\r\n });\r\n\r\n if (contactMethod) {\r\n contactMethod.expanded = true;\r\n contactMethods.push(contactMethod);\r\n }\r\n\r\n return {\r\n type: 'ace-knowledge-contact-method',\r\n contactMethods: contactMethods,\r\n };\r\n }\r\n\r\n // transform an array of entries\r\n async transformArray(entryArray: ServerEntry[]): Promise<Message[]> {\r\n let returnArray: Message[] = [];\r\n for (const o of entryArray) {\r\n let x = await this.transform(o);\r\n if (!!x) returnArray.push(x);\r\n }\r\n return returnArray;\r\n }\r\n\r\n // gets the text that should be printed as a user message on action\r\n getUserMessage(action: string) {\r\n let entry = StoreHelper.getEntry(action);\r\n\r\n return this.getTitleFromEntry(entry, action);\r\n }\r\n\r\n private listTransform(entry: ServerEntry): any {\r\n if (entry.type === 'Contact') {\r\n // TODO: is this needed\r\n return undefined;\r\n }\r\n\r\n if (!entry.content) return undefined;\r\n\r\n let object = this.getListActions(\r\n entry.content.items,\r\n this.getContentText(entry),\r\n entry.actions,\r\n entry.localState\r\n );\r\n\r\n return object;\r\n }\r\n\r\n private getContentText(entry: ServerEntry): object | undefined {\r\n if (entry.content.html) return { body: entry.content.html };\r\n if (entry.content.header) return { title: entry.content.header };\r\n }\r\n\r\n private textTransform(entry: ServerEntry): any {\r\n if (!!entry.content.items) return this.listTransform(entry);\r\n return [\r\n ConversationMessageListItemType.HTML,\r\n { body: entry.content.html.replace('\\n', '') },\r\n ];\r\n }\r\n\r\n private getListActions(items: any[], text: any, actions: any, state: any): object {\r\n let list: ConverstationMessageItem<any>[] = [];\r\n let mainListContent: { [key: string]: string } = {};\r\n let mainList: any = [this.getListType(state), { actions: mainListContent }];\r\n if (text && text.title) {\r\n list.push([ConversationMessageListItemType.Header, text.title]);\r\n }\r\n if (text && text.body) {\r\n list.push([ConversationMessageListItemType.HTML, { body: text.body }]);\r\n }\r\n list.push(mainList);\r\n items.forEach((o) => {\r\n switch (o.actionKey) {\r\n case this.helpActionKey: {\r\n list.push([ConversationMessageListItemType.Separator, undefined]);\r\n list.push([\r\n ConversationMessageListItemType.NoGoodAlternative,\r\n { body: o.title },\r\n ]);\r\n break;\r\n }\r\n case this.nextActionKey: {\r\n if (!!actions['next'] && actions['next'].take === items.length + 1)\r\n mainListContent[o.actionKey] = o.title;\r\n break;\r\n }\r\n default: {\r\n mainListContent[o.actionKey] = o.title;\r\n }\r\n }\r\n });\r\n return list;\r\n }\r\n\r\n private getListType(state: any) {\r\n if (state?.$type === 'Humany.Matching.Bots.Conversations.GuideListState, Humany.Matching')\r\n return ConversationMessageListItemType.LinkList;\r\n else if (\r\n state?.$type ===\r\n 'Humany.Matching.Bots.Conversations.States.GuideFeedbackState, Humany.Matching'\r\n )\r\n return ConversationMessageListItemType.FeedbackList;\r\n else return ConversationMessageListItemType.ButtonList;\r\n }\r\n\r\n private getTitleFromEntry(entry: ServerEntry | undefined, action: string): string | undefined {\r\n if (!!entry) {\r\n const entryType = (<any>ServerEntryTypeEnum)[entry.type];\r\n switch (entryType) {\r\n case ServerEntryTypeEnum.List:\r\n return this.getTitleFromList(entry, action);\r\n case ServerEntryTypeEnum.Text:\r\n return this.textTransform(entry);\r\n }\r\n }\r\n }\r\n\r\n private getTitleFromList(entry: ServerEntry, action: string): string {\r\n return (<Array<any>>entry.content.items).find((o) => o.actionKey == action).title;\r\n }\r\n}\r\n","import { Container } from '@webprovisions/platform';\r\nimport { v4 as newGuid } from 'uuid';\r\nimport { ServerEntryTypeEnum } from '../contract/enum/server-entry-type.enum';\r\nimport { Message } from '../contract/model/conversation-api-model/message.model';\r\nimport { ServerEntry } from '../contract/model/http/server-entry.model';\r\nimport { ChatHelper } from '../helper/chat.helper';\r\nimport { StoreHelper } from '../helper/store.helper';\r\nimport EntryInterface from '../interface/entry.interface';\r\n\r\nexport default class ChatClient {\r\n entryInterface: EntryInterface;\r\n constructor(container: Container) {\r\n this.entryInterface = new EntryInterface(container);\r\n }\r\n\r\n // Initialize from setting the user and agent for the Helper\r\n static initialize(user: any, agent: any) {\r\n ChatHelper.setUser(user);\r\n ChatHelper.setAgent(agent);\r\n }\r\n\r\n // function for posting the messages\r\n processMessageArrayAndStoreIt(messages: Message[]) {\r\n messages\r\n .filter((o) => o && o != null)\r\n .forEach((o) => {\r\n if (o.isUser) this.postUserMessage(o);\r\n else this.postAgentMessage(o);\r\n });\r\n StoreHelper.insertOrUpdateMessageArrayStore(messages);\r\n }\r\n\r\n // function for updating current messages\r\n updateMessageArrayAndStoreIt(messages: Message[]) {\r\n let conversationEntry = undefined;\r\n messages.forEach((o) => {\r\n let message = StoreHelper.getMessage(o.id);\r\n message?.conversationEntry.update(o.message);\r\n conversationEntry = message?.conversationEntry;\r\n });\r\n\r\n StoreHelper.insertOrUpdateMessageArrayStore(messages, conversationEntry);\r\n }\r\n\r\n // function for posting a message for the user actions, such as button clicks\r\n printUserMessageAndStoreIt(action: string) {\r\n if (action == 'next' || action == 'help') return;\r\n\r\n let entry = StoreHelper.getEntry(action);\r\n\r\n let message = {\r\n id: newGuid(),\r\n message: !entry ? action : this.getTitleFromEntry(entry, action),\r\n isUser: true,\r\n };\r\n\r\n this.postUserMessage(message);\r\n StoreHelper.insertOrUpdateMessageArrayStore([message]);\r\n }\r\n\r\n private postUserMessage(message: Message) {\r\n ChatHelper.getUser().print(message.message);\r\n }\r\n\r\n private postAgentMessage(message: Message) {\r\n message.conversationEntry = ChatHelper.getAgent().print(message.message);\r\n }\r\n\r\n private getTitleFromEntry(entry: ServerEntry, action: string): string {\r\n const entryType = (<any>ServerEntryTypeEnum)[entry.type];\r\n switch (entryType) {\r\n case ServerEntryTypeEnum.List:\r\n return this.getTitleFromList(entry, action);\r\n case ServerEntryTypeEnum.Text:\r\n return this.getTitleFromText(entry, action);\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n private getTitleFromText(entry: ServerEntry, action: string): any {\r\n if (!!entry.content.items) return this.getTitleFromList(entry, action);\r\n else return entry.content.html;\r\n }\r\n\r\n private getTitleFromList(entry: ServerEntry, action: string): string {\r\n return (<Array<any>>entry.content.items).find((o) => o.actionKey == action).title;\r\n }\r\n}\r\n","import { ContactMethodPlatform } from '@telia-ace/knowledge-widget-adapters';\r\nimport { DataClient, DataType } from '@telia-ace/knowledge-widget-types-grid';\r\nimport { FormBuilder, submitButton } from '@telia-ace/widget-forms';\r\nimport { Container } from '@webprovisions/platform';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport { StoreHelper } from '../helper/store.helper';\r\nimport ChatClient from './chat.client';\r\n\r\nexport class ContactMethodClient {\r\n private static dataClient: DataClient;\r\n private static contactMethodPlatform: ContactMethodPlatform;\r\n private static contactMessageEntryArray: any[] = [];\r\n private static agent: any;\r\n private chatClient: ChatClient;\r\n private static container: any;\r\n\r\n constructor(container: Container) {\r\n this.chatClient = new ChatClient(container);\r\n }\r\n\r\n static initialize(\r\n container: any,\r\n dataClient: DataClient,\r\n contactMethodPlatform: ContactMethodPlatform,\r\n agent: any\r\n ) {\r\n this.dataClient = dataClient;\r\n this.contactMethodPlatform = contactMethodPlatform;\r\n this.agent = agent;\r\n this.container = container;\r\n }\r\n\r\n // function for handling forms as contact methods\r\n handleNewForm = async (errors: any, entry: any) => {\r\n this.updateForm(entry.contactMethods, {\r\n submit: 'Submit',\r\n errors: errors,\r\n });\r\n entry.entry.update({\r\n contactMethods: entry.contactMethods,\r\n type: 'ace-knowledge-contact-method',\r\n noPadding: true,\r\n });\r\n };\r\n\r\n // function for receiving the contact method based on the input\r\n handleContactMethod = async (input: string = '') => {\r\n if (input == 'contact') {\r\n await this.handleContactCategoryList(input);\r\n } else {\r\n let contactMethods = await this.loadContactMethods(\r\n input.split('/')[1], // type\r\n input.split('/')[0] // id\r\n );\r\n\r\n if (!!contactMethods.body?.form) {\r\n this.handleForm(input, contactMethods);\r\n } else if (!contactMethods.expanded && contactMethods.inline) {\r\n this.handleSingleContactMethod(contactMethods);\r\n } else if (!!contactMethods.contactMethods) {\r\n this.handleContactMethodList(input, contactMethods);\r\n }\r\n }\r\n };\r\n\r\n // validation of the form provided\r\n validate(form: any) {\r\n let entry = ContactMethodClient.contactMessageEntryArray.find(\r\n (o) => o.id == form.schema.id\r\n );\r\n ContactMethodClient.contactMethodPlatform.validate(entry.contactMethods).then((result) => {\r\n this.handleNewForm(result.errors, entry);\r\n if (result.valid) {\r\n this.submit(entry);\r\n this.removeForm(entry);\r\n }\r\n });\r\n }\r\n\r\n private handleContactCategoryList = async (input: string) => {\r\n let newGuid = uuidv4();\r\n let type = DataType.ContactMethodCategories;\r\n let contactMethods = await this.loadContactMethods(type);\r\n this.chatClient.printUserMessageAndStoreIt(input);\r\n this.printMessage(newGuid, contactMethods);\r\n };\r\n\r\n private handleForm(input: string, contactMethods: any) {\r\n let title = input.split('/')[2];\r\n contactMethods.expanded = true;\r\n this.updateForm(contactMethods, {\r\n submit: 'Submit',\r\n errors: undefined,\r\n });\r\n this.printMessage(contactMethods.id, contactMethods, title);\r\n }\r\n\r\n private handleContactMethodList(input: string, contactMethods: any) {\r\n let title = input.split('/')[2];\r\n let newGuid = uuidv4();\r\n this.printMessage(newGuid, contactMethods, title);\r\n }\r\n\r\n private handleSingleContactMethod(contactMethods: any) {\r\n let entry = ContactMethodClient.contactMessageEntryArray.find((o) =>\r\n o.contactMethods.contactMethods.find((t: any) => t.id == contactMethods.id)\r\n );\r\n let curCM = entry.contactMethods.contactMethods.find((t: any) => t.id == contactMethods.id);\r\n curCM.expanded = true;\r\n let message = {\r\n contactMethods: entry.contactMethods,\r\n type: 'ace-knowledge-contact-method',\r\n noPadding: true,\r\n };\r\n StoreHelper.insertOrUpdateMessageArrayStore([\r\n {\r\n id: entry.id,\r\n message: message,\r\n isUser: false,\r\n },\r\n ]);\r\n entry.entry.update(message);\r\n }\r\n\r\n private submit(entry: any) {\r\n ContactMethodClient.contactMethodPlatform.submit(entry.contactMethods).then((result) => {\r\n if (!!result) ContactMethodClient.agent.print(result);\r\n });\r\n }\r\n\r\n private removeForm(entry: any) {\r\n entry.entry.remove();\r\n ContactMethodClient.contactMessageEntryArray.splice(\r\n ContactMethodClient.contactMessageEntryArray.indexOf(entry),\r\n 1\r\n );\r\n }\r\n\r\n private printMessage(\r\n newGuid: string,\r\n contactMethods: any,\r\n title: string | undefined = undefined\r\n ) {\r\n if (ContactMethodClient.contactMessageEntryArray.find((o) => o.id == contactMethods.id)) {\r\n let entry = ContactMethodClient.contactMessageEntryArray.find(\r\n (o) => o.id == contactMethods.id\r\n );\r\n let message = {\r\n contactMethods: contactMethods,\r\n type: 'ace-knowledge-contact-method',\r\n noPadding: true,\r\n };\r\n entry.entry.update(message);\r\n StoreHelper.insertOrUpdateMessageArrayStore([\r\n {\r\n id: entry.guid,\r\n message: message,\r\n isUser: false,\r\n },\r\n ]);\r\n } else {\r\n if (title) this.chatClient.printUserMessageAndStoreIt(title);\r\n let message = {\r\n contactMethods: contactMethods,\r\n type: 'ace-knowledge-contact-method',\r\n noPadding: true,\r\n };\r\n let entry = ContactMethodClient.agent.print(message);\r\n StoreHelper.insertOrUpdateMessageArrayStore([\r\n {\r\n id: newGuid,\r\n message: message,\r\n isUser: false,\r\n },\r\n ]);\r\n ContactMethodClient.contactMessageEntryArray.push({\r\n id: newGuid,\r\n contactMethods: contactMethods,\r\n entry: entry,\r\n });\r\n }\r\n }\r\n\r\n private loadContactMethods(dataType: string, id: string | undefined = undefined): Promise<any> {\r\n switch (dataType) {\r\n case DataType.ContactMethodCategories: {\r\n return ContactMethodClient.container\r\n .getAsync('matchingClient')\r\n .then((matchingClient: any) => {\r\n return matchingClient.customRequest('/contactmethods', 'GET', {});\r\n })\r\n .then((contactMethods: any) => {\r\n return contactMethods;\r\n });\r\n // return ContactMethodClient.dataClient\r\n // .fetch(DataType.ContactMethods, { contactMethodCategoryId: id })\r\n // .then((contactMethods) => contactMethods);\r\n }\r\n case DataType.ContactMethods: {\r\n if (!!id) {\r\n return ContactMethodClient.dataClient\r\n .fetch(DataType.ContactMethod, { contactMethodId: id })\r\n .then((contactMethods) => contactMethods);\r\n } else {\r\n return ContactMethodClient.dataClient\r\n .fetch(DataType.ContactMethods, {})\r\n .then((contactMethods) => contactMethods);\r\n }\r\n }\r\n case DataType.ContactMethodCategories: {\r\n return ContactMethodClient.dataClient\r\n .fetch(DataType.ContactMethods, { contactMethodCategoryId: id })\r\n .then((contactMethods) => contactMethods);\r\n }\r\n default: {\r\n return Promise.resolve(undefined);\r\n }\r\n }\r\n }\r\n\r\n private updateForm = (contactMethod: any, properties: any) => {\r\n if (contactMethod?.body?.form) {\r\n const { body } = contactMethod;\r\n const builder = new FormBuilder(body.form);\r\n\r\n if (!body.form.layout || !body.form.layout.submit) {\r\n builder.createComponent(submitButton(properties.submit, 'submit'));\r\n }\r\n\r\n if (properties.errors) {\r\n builder.setValidationErrors(properties.errors);\r\n }\r\n\r\n return {\r\n ...body,\r\n form: builder.get(),\r\n };\r\n }\r\n return contactMethod?.body || {};\r\n };\r\n}\r\n","export class HttpHelper {\r\n static fetchOptions = {\r\n method: 'POST',\r\n headers: {\r\n Accept: 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n };\r\n\r\n static combineUrl(basePath: string, path: string) {\r\n return basePath + path;\r\n }\r\n\r\n static managedSubdomainSuffixes = ['stage', 'alpha', 'beta', 'gamma'];\r\n\r\n static parseSubdomain = (input: string) => {\r\n const index = input.lastIndexOf('-');\r\n const lastPart = input.substr(index + 1);\r\n if (HttpHelper.managedSubdomainSuffixes.indexOf(lastPart) > -1) {\r\n return input.substr(0, index);\r\n }\r\n return input;\r\n };\r\n\r\n static getCredentials(): string | undefined {\r\n return 'same-origin';\r\n }\r\n}\r\n","import { ServerEntry } from \"../../contract/model/http/server-entry.model\";\r\nimport { StoreHelper } from \"../../helper/store.helper\";\r\n\r\nexport default class PagingInterface {\r\n process(entries: ServerEntry[]): ServerEntry[] {\r\n const pagingEntry = entries.find((e) => e.tags.indexOf(\"paging\") > -1);\r\n\r\n if (pagingEntry) {\r\n const stream = StoreHelper.getEntryStore().filter(\r\n (e) => e.tags.indexOf(\"paging\") > -1 && e.id === pagingEntry.id\r\n );\r\n\r\n if (stream.length > 0) {\r\n // Get the paging entry with the highest take count\r\n const last = stream.reduce((acc, entry) => {\r\n if (\r\n entry.actions.next &&\r\n entry.actions.next.take >= acc.actions.next.take\r\n ) {\r\n return entry;\r\n }\r\n return acc;\r\n }, stream[0]); // tslint:disable-line:align\r\n\r\n // If there is a paging entry with higher take count than the entry to be written,\r\n // it should be updated to use the paging data from the highest take count entry\r\n if (last.actions.next.take > pagingEntry.actions.next.take) {\r\n entries.forEach((entry) => {\r\n if (entry.id === pagingEntry.id) {\r\n entry.actions.next = {\r\n ...entry.actions.next,\r\n take: last.actions.next.take,\r\n skip: last.actions.next.skip,\r\n };\r\n }\r\n });\r\n }\r\n }\r\n\r\n // if items is null or undefined it should\r\n // overwrite with an empty array\r\n entries.forEach((entry) => {\r\n if (\r\n entry.id === pagingEntry.id &&\r\n entry.content &&\r\n entry.content.timestamp\r\n ) {\r\n entry.content = {\r\n ...entry.content,\r\n items: (entry.content && entry.content.items) || [],\r\n };\r\n }\r\n });\r\n }\r\n\r\n return entries;\r\n }\r\n}\r\n","import { Action } from '../../contract/model/http/action.model';\r\nimport { ServerEntry } from '../../contract/model/http/server-entry.model';\r\n\r\nexport default class ProcessorInterface {\r\n process(entries: ServerEntry[]): ServerEntry[] {\r\n let processedEntries = entries;\r\n\r\n processedEntries = this.deletePaging(processedEntries);\r\n processedEntries = this.delete(processedEntries);\r\n processedEntries = this.merge(processedEntries);\r\n processedEntries = this.moveLoader(processedEntries);\r\n\r\n return processedEntries;\r\n }\r\n\r\n processUpdate(entry: ServerEntry | undefined, updateEntryArray: ServerEntry[]): ServerEntry[] {\r\n updateEntryArray\r\n .filter((t) => t.type == 'List')\r\n .forEach((o) => {\r\n o.content?.items.forEach((t: any) => {\r\n if (!entry?.content.items.find((p: any) => p.actionKey == t.actionKey))\r\n entry?.content.items.push(t);\r\n });\r\n Object.keys(o.actions).forEach((t) => {\r\n this.handleActionUpdateOrInsert(entry?.actions, t, o.actions);\r\n });\r\n });\r\n\r\n //moves the show more and if it helped to the end if it is needed\r\n var itemArray: any[] = entry?.content.items;\r\n\r\n if (itemArray.find((o) => o.actionKey == 'next')) {\r\n itemArray.push(\r\n itemArray.splice(\r\n itemArray.indexOf(itemArray.find((o) => o.actionKey == 'next')),\r\n 1\r\n )[0]\r\n );\r\n }\r\n\r\n if (itemArray.find((o) => o.actionKey == 'help')) {\r\n itemArray.push(\r\n itemArray.splice(\r\n itemArray.indexOf(itemArray.find((o) => o.actionKey == 'help')),\r\n 1\r\n )[0]\r\n );\r\n }\r\n\r\n return entry ? [entry] : [];\r\n }\r\n\r\n private handleActionUpdateOrInsert(\r\n currentArray: Action | undefined,\r\n actionKey: string,\r\n action: Action\r\n ) {\r\n if (!!currentArray) currentArray[actionKey] = action[actionKey];\r\n }\r\n\r\n private deletePaging(entries: ServerEntry[]): ServerEntry[] {\r\n return entries.filter((entry) => {\r\n const isEmptyPaging =\r\n entry.type === 'List' &&\r\n entry.tags &&\r\n entry.tags.indexOf('paging') > -1 &&\r\n typeof entry.content === 'undefined';\r\n return !isEmptyPaging;\r\n });\r\n }\r\n\r\n private delete(entries: ServerEntry[]): ServerEntry[] {\r\n return entries.filter((entry) => entry.content !== null);\r\n }\r\n\r\n private merge(entries: ServerEntry[]): ServerEntry[] {\r\n const output: ServerEntry[] = [];\r\n\r\n const merge = (source: any, target: any = {}): any => {\r\n const content: any = {};\r\n if (source == null) {\r\n return null;\r\n }\r\n\r\n if (target) {\r\n Object.keys(target).forEach((key) => {\r\n content[key] = target[key];\r\n });\r\n }\r\n\r\n Object.keys(source).forEach((key) => {\r\n if (key == 'items') {\r\n if (!content[key]) content[key] = [];\r\n content[key] = content[key].concat(source[key]);\r\n } else if (key == 'html') content[key] = content[key] + source[key];\r\n else content[key] = source[key];\r\n });\r\n\r\n return content;\r\n };\r\n\r\n const mergeLocalState = (source: any, target: any): any => {\r\n if (source == null) return null;\r\n\r\n if (Object.keys(source.actions).length === 0) return target.localState;\r\n\r\n if (Object.keys(target.actions).length === 0) return source.localState;\r\n\r\n return target.localState;\r\n };\r\n\r\n entries.forEach((entry) => {\r\n if (entry.relation) {\r\n let existingEntry = entries.find((o) => o.id == entry.relation);\r\n\r\n if (existingEntry) {\r\n const existingIndex = output.indexOf(existingEntry);\r\n existingEntry.localState = mergeLocalState(entry, existingEntry);\r\n existingEntry.content = merge(entry.content, existingEntry.content);\r\n existingEntry.actions = merge(entry.actions, existingEntry.actions);\r\n output[existingIndex] = existingEntry;\r\n }\r\n } else {\r\n output.push(entry);\r\n }\r\n });\r\n\r\n return output;\r\n }\r\n\r\n private moveLoader(entries: ServerEntry[]): ServerEntry[] {\r\n // Moves the loader component to last position in stream\r\n const loaderEntry = entries.find((e) => e.id === 'loader');\r\n\r\n if (!loaderEntry) {\r\n return entries;\r\n }\r\n\r\n const loaderIndex = entries.indexOf(loaderEntry);\r\n if (loaderIndex > -1) {\r\n entries.splice(entries.length - 1, 0, entries.splice(loaderIndex, 1)[0]);\r\n }\r\n return entries;\r\n }\r\n}\r\n","import { Container } from '@webprovisions/platform';\r\nimport { ServerEntry } from '../contract/model/http/server-entry.model';\r\nimport { ChatHelper } from '../helper/chat.helper';\r\nimport { MiddlewareHelper } from '../helper/middleware.helper';\r\nimport { StoreHelper } from '../helper/store.helper';\r\nimport EntryInterface from '../interface/entry.interface';\r\nimport PagingInterface from '../interface/middleware/paging.interface';\r\nimport ProcessorInterface from '../interface/middleware/processor.interface';\r\nimport ChatClient from './chat.client';\r\n\r\nexport default class MiddlewareClient {\r\n private paging: PagingInterface;\r\n private processor: ProcessorInterface;\r\n private entryInterface: EntryInterface;\r\n private chatClient: ChatClient;\r\n\r\n constructor(container: Container) {\r\n this.paging = new PagingInterface();\r\n this.processor = new ProcessorInterface();\r\n this.entryInterface = new EntryInterface(container);\r\n this.chatClient = new ChatClient(container);\r\n }\r\n\r\n static initialize(container: any, widget: any) {\r\n MiddlewareHelper.setContainer(container);\r\n MiddlewareHelper.setWidget(widget);\r\n }\r\n\r\n // called on all standard scenarios like actions and user messages\r\n async handleEntries(entries: ServerEntry[], action?: string) {\r\n const widgetEntry = (entries || []).find((e) => e.type === 'Widget');\r\n\r\n if (widgetEntry) {\r\n const agent = ChatHelper.getAgent();\r\n\r\n if (agent) {\r\n agent.update({\r\n name: widgetEntry.content.agent.name,\r\n avatar: widgetEntry.content.agent.avatar,\r\n });\r\n }\r\n }\r\n\r\n let o = this.executeMiddlewares(entries, false, action);\r\n let messageArray = await this.entryInterface.transformArray(o);\r\n this.chatClient.processMessageArrayAndStoreIt(messageArray);\r\n }\r\n\r\n // called on situations such as paging changes\r\n // when no new entries will be printed\r\n async handleUpdate(entries: ServerEntry[], action?: string) {\r\n let o = this.executeMiddlewares(entries, true, action);\r\n let messageArray = await this.entryInterface.transformArray(o);\r\n this.chatClient.updateMessageArrayAndStoreIt(messageArray);\r\n }\r\n\r\n // checks whether the action was of an update type\r\n checkForUpdate(input: string) {\r\n return input === 'next';\r\n }\r\n\r\n private executeMiddlewares(\r\n entries: ServerEntry[],\r\n isUpdate: boolean,\r\n action?: string\r\n ): ServerEntry[] {\r\n if (isUpdate && action)\r\n entries = this.processor.processUpdate(StoreHelper.getEntry(action), entries);\r\n else {\r\n entries = this.processor.process(entries);\r\n }\r\n entries = this.paging.process(entries);\r\n\r\n return entries;\r\n }\r\n}\r\n","import { Container } from '@webprovisions/platform';\r\nimport { ClientEnvelope } from '../contract/model/http/client-envelope.model';\r\nimport { HttpClientOptions } from '../contract/model/http/http-client-options.model';\r\nimport { ServerEnvelope } from '../contract/model/http/server-envelope.model';\r\nimport { HttpHelper } from '../helper/http.helper';\r\nimport { MiddlewareHelper } from '../helper/middleware.helper';\r\nimport { StoreHelper } from '../helper/store.helper';\r\nimport ChatClient from './chat.client';\r\nimport MiddlewareClient from './middleware.client';\r\n\r\nexport class HttpClient {\r\n private endpointUrl: string;\r\n private clientId: string | undefined;\r\n private projectionPath: string;\r\n private apiEndpoint: string;\r\n private options: HttpClientOptions;\r\n private middlewareClient: MiddlewareClient;\r\n private chatClient: ChatClient;\r\n\r\n constructor(endpoint: string, clientId: string, container: Container) {\r\n this.options = {\r\n credentials: HttpHelper.getCredentials(),\r\n clientId: clientId,\r\n };\r\n this.apiEndpoint = endpoint;\r\n this.projectionPath = window.location.href;\r\n this.endpointUrl = HttpHelper.combineUrl(this.projectionPath, 'conversations');\r\n this.clientId = this.options.clientId;\r\n this.middlewareClient = new MiddlewareClient(container);\r\n this.chatClient = new ChatClient(container);\r\n }\r\n\r\n firstHit() {\r\n // On first hit if there are entries stored in the storage, use them\r\n // Otherwise start a new session\r\n MiddlewareHelper.getEntrySessionStorage().then((o) => {\r\n if (o && o.length > 0) this.chatClient.processMessageArrayAndStoreIt(o);\r\n else {\r\n let envelope = this.constructFirstHitEnvelope();\r\n this.postAndHandleTheData(envelope);\r\n }\r\n });\r\n }\r\n\r\n // for updates, such as paging changes\r\n handleUpdate(action: string) {\r\n let envelope = this.constructInputEnvelope(action);\r\n this.postAndHandleTheUpdateData(envelope, action);\r\n // return this.postAndReturnTheData(envelope, action).then((o) => {\r\n // return o.entries;\r\n // });\r\n }\r\n\r\n // for action clicks\r\n handleInput(action: string) {\r\n let envelope = this.constructInputEnvelope(action);\r\n this.postAndHandleTheData(envelope, action);\r\n }\r\n\r\n // for text entries by user\r\n handlePhrase(phrase: string) {\r\n let envelope = this.constructPhraseEnvelope(phrase);\r\n this.postAndHandleTheData(envelope);\r\n }\r\n\r\n private postAndHandleTheData(envelope: ClientEnvelope, action?: string) {\r\n return fetch(this.apiEndpoint, this.getHttpOptions(envelope))\r\n .then((response) => {\r\n if (response.ok) return response.json();\r\n throw response;\r\n })\r\n .then((data) => {\r\n this.handleResponseData(data, action);\r\n })\r\n .catch((err) => console.log(err));\r\n }\r\n\r\n private postAndHandleTheUpdateData(envelope: ClientEnvelope, action?: string): Promise<any> {\r\n return fetch(this.apiEndpoint, this.getHttpOptions(envelope))\r\n .then((response) => {\r\n if (response.ok) return response.json();\r\n throw response;\r\n })\r\n .then((data) => {\r\n this.handleUpdateResponseData(data, action);\r\n })\r\n .catch((err) => console.log(err));\r\n }\r\n\r\n private getHttpOptions(envelope: ClientEnvelope) {\r\n return Object.assign({}, HttpHelper.fetchOptions, {\r\n body: JSON.stringify(envelope),\r\n credentials: <RequestCredentials>this.options.credentials,\r\n });\r\n }\r\n\r\n private constructInputEnvelope(action: string): ClientEnvelope {\r\n return {\r\n action: StoreHelper.getAction(action),\r\n localState: StoreHelper.getLocalState(action),\r\n globalState: StoreHelper.getGlobalState(),\r\n clientId: this.clientId,\r\n };\r\n }\r\n\r\n private constructPhraseEnvelope(phrase: string): ClientEnvelope {\r\n return {\r\n command: { phrase: phrase },\r\n globalState: StoreHelper.getGlobalState(),\r\n clientId: this.clientId,\r\n };\r\n }\r\n\r\n private constructFirstHitEnvelope(): ClientEnvelope {\r\n return {\r\n command: { site: this.endpointUrl },\r\n clientId: this.clientId,\r\n globalState: {},\r\n };\r\n }\r\n\r\n private handleResponseData(envelope: ServerEnvelope, action?: string) {\r\n StoreHelper.setGlobalState(envelope.globalState);\r\n this.middlewareClient.handleEntries(envelope.entries, action);\r\n }\r\n\r\n private handleUpdateResponseData(envelope: ServerEnvelope, action?: string) {\r\n this.middlewareClient.handleUpdate(envelope.entries, action);\r\n }\r\n}\r\n","import { ContactMethodPlatform } from '@telia-ace/knowledge-widget-adapters';\r\nimport { DataClient } from '@telia-ace/knowledge-widget-types-grid';\r\nimport {\r\n ConversationPlatform,\r\n registerCustomMessageComponent\r\n} from '@telia-ace/widget-conversation';\r\nimport { Container } from '@webprovisions/platform';\r\nimport { v4 } from 'uuid';\r\nimport ChatClient from './client/chat.client';\r\nimport { ContactMethodClient } from './client/contact-method.client';\r\nimport { HttpClient } from './client/http.client';\r\nimport MiddlewareClient from './client/middleware.client';\r\n\r\nconst getKnowledgeBotEndpoint = (\r\n container: Container,\r\n component: any /*: ComponentNodeController */\r\n // ComponentNodeController type differs from component passed into registerProvider\r\n) => {\r\n const { knowledgeBotEndpoint } = component.properties();\r\n\r\n if (knowledgeBotEndpoint) {\r\n return `${knowledgeBotEndpoint}/conversations`;\r\n }\r\n\r\n const { data } = container.get('$settings');\r\n\r\n if (!data || !data.projection) throw new Error('Missing Knowledge Bot endpoint');\r\n\r\n return `${data.projection}/conversations`;\r\n};\r\n\r\nconst KnowledgeBotProviderPlugin = async (container: Container) => {\r\n const dataClient = await DataClient.getInstance(container);\r\n const platform = await ConversationPlatform.getInstance(container);\r\n const contactMethodPlatform = await ContactMethodPlatform.getInstance(container);\r\n registerCustomMessageComponent(\r\n container,\r\n 'ace-knowledge-contact-method',\r\n import('./contract/custom-component/contact-method')\r\n );\r\n\r\n platform.registerProvider('chat.bot', (conversation, component) => {\r\n const endpoint = getKnowledgeBotEndpoint(container, component);\r\n\r\n const clientId = v4();\r\n\r\n const agent = conversation.createAgent({\r\n name: '',\r\n avatar: undefined,\r\n });\r\n\r\n // passes the user and the agent to the Chat Helper\r\n ChatClient.initialize(conversation.user, agent);\r\n\r\n // passes the conversation provider to the Contact Method Client\r\n ContactMethodClient.initialize(container, dataClient, contactMethodPlatform, agent);\r\n\r\n // passes the container and the widget to the Middleware Store\r\n MiddlewareClient.initialize(container, container.get('$widget'));\r\n\r\n // executes to decide on what to do on first load\r\n let httpClient = new HttpClient(endpoint, clientId, container);\r\n httpClient.firstHit();\r\n\r\n component.actions.create('evaluate', (input) => {\r\n let cmClient = new ContactMethodClient(container);\r\n cmClient.handleNewForm(input.form, input.form.id);\r\n });\r\n component.actions.create('validate', (input) => {\r\n let cmClient = new ContactMethodClient(container);\r\n cmClient.validate(input.form);\r\n });\r\n component.actions.create('submit', (input) => {\r\n let cmClient = new ContactMethodClient(container);\r\n cmClient.validate(input.form);\r\n });\r\n\r\n component.actions.watch('conversation.user-typing', (input, next) => {\r\n return next(input);\r\n });\r\n\r\n component.actions.watch('conversation.user-submit', (input, next) => {\r\n let httpClient = new HttpClient(endpoint, clientId, container);\r\n httpClient.handlePhrase(input.text);\r\n return next(input);\r\n });\r\n\r\n component.actions.watch('conversation.form', (input, next) => {\r\n return next(input);\r\n });\r\n\r\n component.actions.watch('conversation.action', (input, next) => {\r\n let chatClient = new ChatClient(container);\r\n let cmClient = new ContactMethodClient(container);\r\n // if (input === 'contact' || input.split('/').length > 1) {\r\n // cmClient.handleContactMethod(input);\r\n // return next(input);\r\n // }\r\n if (input.split('/').length > 1) {\r\n cmClient.handleContactMethod(input);\r\n return next(input);\r\n }\r\n\r\n let middlewareClient = new MiddlewareClient(container);\r\n let httpClient = new HttpClient(endpoint, clientId, container);\r\n\r\n // this is an update check, as it requires\r\n // a lot different logic and no user message\r\n if (middlewareClient.checkForUpdate(input)) {\r\n httpClient.handleUpdate(input);\r\n\r\n return next(input);\r\n }\r\n\r\n chatClient.printUserMessageAndStoreIt(input);\r\n\r\n httpClient.handleInput(input);\r\n\r\n return next(input);\r\n });\r\n });\r\n};\r\n\r\nexport default KnowledgeBotProviderPlugin;\r\n"],"names":["newGuid","uuidv4"],"mappings":"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"}
@@ -1,11 +1,14 @@
1
+ import { Container } from '@webprovisions/platform';
1
2
  import { Message } from '../contract/model/conversation-api-model/message.model';
2
3
  import { ServerEntry } from '../contract/model/http/server-entry.model';
3
4
  export default class EntryInterface {
5
+ private container;
4
6
  private helpActionKey;
5
7
  private nextActionKey;
6
- constructor();
7
- transform(entry: ServerEntry): Message | undefined;
8
- transformArray(entryArray: ServerEntry[]): Message[];
8
+ constructor(container: Container);
9
+ transform(entry: ServerEntry): Promise<Message | undefined>;
10
+ transformContactMethod(entry: ServerEntry): Promise<any>;
11
+ transformArray(entryArray: ServerEntry[]): Promise<Message[]>;
9
12
  getUserMessage(action: string): string | undefined;
10
13
  private listTransform;
11
14
  private getContentText;
@@ -0,0 +1,3 @@
1
+ import { Container } from '@webprovisions/platform';
2
+ declare const KnowledgeBotProviderPlugin: (container: Container) => Promise<void>;
3
+ export default KnowledgeBotProviderPlugin;
package/package.json CHANGED
@@ -1,45 +1,46 @@
1
- {
2
- "name": "@telia-ace/knowledge-widget-bot-provider",
3
- "version": "0.0.1-alpha.6",
4
- "description": "Bot Provider Plugin ACE Knowledge Widgets.",
5
- "license": "SEE LICENSE IN LICENSE.txt",
6
- "author": "Telia Company AB",
7
- "keywords": [
8
- "telia"
9
- ],
10
- "main": "lib/index.js",
11
- "module": "lib-esm/index.js",
12
- "files": [
13
- "LICENSE.txt",
14
- "README.md",
15
- "lib/",
16
- "lib-esm/"
17
- ],
18
- "publishConfig": {
19
- "access": "public"
20
- },
21
- "scripts": {
22
- "clean": "cleandir lib && cleandir lib-esm",
23
- "compile": "tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"
24
- },
25
- "sideEffects": false,
26
- "typings": "lib/index.d.ts",
27
- "dependencies": {
28
- "@telia-ace/knowledge-widget-adapters": "^1.0.2",
29
- "@telia-ace/knowledge-widget-core": "^1.0.2",
30
- "@telia-ace/knowledge-widget-types-grid": "^1.0.2",
31
- "@telia-ace/widget-components-area": "^1.0.2",
32
- "@telia-ace/widget-components-widget-header": "^1.0.2",
33
- "@telia-ace/widget-conversation": "^1.0.2",
34
- "@telia-ace/widget-forms": "^1.0.2",
35
- "@telia-ace/widget-services": "^1.0.2",
36
- "@telia-ace/widget-types-grid": "^1.0.2",
37
- "@telia-ace/widget-ui": "^1.0.2",
38
- "@telia-ace/widget-utilities": "^1.0.1",
39
- "@webprovisions/bootstrapping": "^1.0.12",
40
- "uuid": "^8.3.2"
41
- },
42
- "devDependencies": {
43
- "@types/uuid": "^8.3.4"
44
- }
45
- }
1
+ {
2
+ "name": "@telia-ace/knowledge-widget-bot-provider",
3
+ "version": "0.0.1-alpha.62",
4
+ "description": "Bot Provider Plugin ACE Knowledge Widgets.",
5
+ "license": "SEE LICENSE IN LICENSE.txt",
6
+ "author": "Telia Company AB",
7
+ "keywords": [
8
+ "telia"
9
+ ],
10
+ "main": "dist/index.js",
11
+ "type": "module",
12
+ "types": "dist/index.d.ts",
13
+ "files": [
14
+ "LICENSE.txt",
15
+ "README.md",
16
+ "dist/"
17
+ ],
18
+ "publishConfig": {
19
+ "access": "public"
20
+ },
21
+ "scripts": {
22
+ "clean": "rimraf ./dist",
23
+ "precompile": "tsc -emitDeclarationOnly",
24
+ "compile": "vite build"
25
+ },
26
+ "sideEffects": false,
27
+ "dependencies": {
28
+ "@telia-ace/knowledge-widget-adapters": "^1.0.28",
29
+ "@telia-ace/knowledge-widget-types-grid": "^1.0.29",
30
+ "@telia-ace/knowledge-widget-ui": "^1.0.24",
31
+ "@telia-ace/widget-conversation": "^1.0.27",
32
+ "@telia-ace/widget-forms": "^1.0.21",
33
+ "@telia-ace/widget-services": "^1.0.14",
34
+ "@telia-ace/widget-utilities": "^1.0.3",
35
+ "@webprovisions/bootstrapping": "^1.0.12",
36
+ "uuid": "^8.3.2"
37
+ },
38
+ "peerDependencies": {
39
+ "react": "^16.8.0",
40
+ "styled-components": "^4.3.2"
41
+ },
42
+ "devDependencies": {
43
+ "@types/uuid": "^8.3.4"
44
+ },
45
+ "gitHead": "899e3b274a983e07cd18de361776b74c4c82f3af"
46
+ }
@@ -1,15 +0,0 @@
1
- import { Message } from '../contract/model/conversation-api-model/message.model';
2
- import EntryInterface from '../interface/entry.interface';
3
- export default class ChatClient {
4
- entryInterface: EntryInterface;
5
- constructor();
6
- static initialize(user: any, agent: any): void;
7
- processMessageArrayAndStoreIt(messages: Message[]): void;
8
- updateMessageArrayAndStoreIt(messages: Message[]): void;
9
- printUserMessageAndStoreIt(action: string): void;
10
- private postUserMessage;
11
- private postAgentMessage;
12
- private getTitleFromEntry;
13
- private getTitleFromText;
14
- private getTitleFromList;
15
- }
@@ -1,80 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- var uuid_1 = require("uuid");
7
- var server_entry_type_enum_1 = require("../contract/enum/server-entry-type.enum");
8
- var chat_helper_1 = require("../helper/chat.helper");
9
- var store_helper_1 = require("../helper/store.helper");
10
- var entry_interface_1 = __importDefault(require("../interface/entry.interface"));
11
- var ChatClient = /** @class */ (function () {
12
- function ChatClient() {
13
- this.entryInterface = new entry_interface_1.default();
14
- }
15
- ChatClient.initialize = function (user, agent) {
16
- chat_helper_1.ChatHelper.setUser(user);
17
- chat_helper_1.ChatHelper.setAgent(agent);
18
- };
19
- ChatClient.prototype.processMessageArrayAndStoreIt = function (messages) {
20
- var _this = this;
21
- messages
22
- .filter(function (o) { return o && o != null; })
23
- .forEach(function (o) {
24
- if (o.isUser)
25
- _this.postUserMessage(o);
26
- else
27
- _this.postAgentMessage(o);
28
- });
29
- store_helper_1.StoreHelper.insertOrUpdateMessageArrayStore(messages);
30
- };
31
- ChatClient.prototype.updateMessageArrayAndStoreIt = function (messages) {
32
- var conversationEntry = undefined;
33
- messages.forEach(function (o) {
34
- var message = store_helper_1.StoreHelper.getMessage(o.id);
35
- message === null || message === void 0 ? void 0 : message.conversationEntry.update(o.message);
36
- conversationEntry = message === null || message === void 0 ? void 0 : message.conversationEntry;
37
- });
38
- store_helper_1.StoreHelper.insertOrUpdateMessageArrayStore(messages, conversationEntry);
39
- };
40
- ChatClient.prototype.printUserMessageAndStoreIt = function (action) {
41
- if (action == 'next' || action == 'help')
42
- return;
43
- var entry = store_helper_1.StoreHelper.getEntry(action);
44
- var message = {
45
- id: (0, uuid_1.v4)(),
46
- message: !entry ? action : this.getTitleFromEntry(entry, action),
47
- isUser: true,
48
- };
49
- this.postUserMessage(message);
50
- store_helper_1.StoreHelper.insertOrUpdateMessageArrayStore([message]);
51
- };
52
- ChatClient.prototype.postUserMessage = function (message) {
53
- chat_helper_1.ChatHelper.getUser().print(message.message);
54
- };
55
- ChatClient.prototype.postAgentMessage = function (message) {
56
- message.conversationEntry = chat_helper_1.ChatHelper.getAgent().print(message.message);
57
- };
58
- ChatClient.prototype.getTitleFromEntry = function (entry, action) {
59
- var entryType = server_entry_type_enum_1.ServerEntryTypeEnum[entry.type];
60
- switch (entryType) {
61
- case server_entry_type_enum_1.ServerEntryTypeEnum.List:
62
- return this.getTitleFromList(entry, action);
63
- case server_entry_type_enum_1.ServerEntryTypeEnum.Text:
64
- return this.getTitleFromText(entry, action);
65
- default:
66
- return '';
67
- }
68
- };
69
- ChatClient.prototype.getTitleFromText = function (entry, action) {
70
- if (!!entry.content.items)
71
- return this.getTitleFromList(entry, action);
72
- else
73
- return entry.content.html;
74
- };
75
- ChatClient.prototype.getTitleFromList = function (entry, action) {
76
- return entry.content.items.find(function (o) { return o.actionKey == action; }).title;
77
- };
78
- return ChatClient;
79
- }());
80
- exports.default = ChatClient;