@hexabot-ai/api 3.0.0-alpha.3 → 3.1.1-alpha.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.
Files changed (2103) hide show
  1. package/README.md +65 -21
  2. package/dist/actions/actions.module.d.ts +2 -0
  3. package/dist/actions/actions.module.js +24 -0
  4. package/dist/actions/actions.module.js.map +1 -0
  5. package/dist/actions/actions.service.d.ts +28 -0
  6. package/dist/actions/actions.service.js +74 -0
  7. package/dist/actions/actions.service.js.map +1 -0
  8. package/dist/actions/base-action.d.ts +19 -0
  9. package/dist/actions/base-action.js +49 -0
  10. package/dist/actions/base-action.js.map +1 -0
  11. package/dist/actions/create-action.d.ts +9 -0
  12. package/dist/actions/create-action.js +42 -0
  13. package/dist/actions/create-action.js.map +1 -0
  14. package/dist/actions/index.d.ts +5 -0
  15. package/dist/actions/index.js +22 -0
  16. package/dist/actions/index.js.map +1 -0
  17. package/dist/actions/types.d.ts +24 -0
  18. package/dist/actions/types.js +9 -0
  19. package/dist/actions/types.js.map +1 -0
  20. package/dist/analytics/analytics.module.js +13 -7
  21. package/dist/analytics/analytics.module.js.map +1 -1
  22. package/dist/analytics/controllers/stats.controller.d.ts +12 -0
  23. package/dist/analytics/controllers/stats.controller.js +88 -0
  24. package/dist/analytics/controllers/stats.controller.js.map +1 -0
  25. package/dist/analytics/dto/stats.dto.d.ts +40 -0
  26. package/dist/analytics/dto/stats.dto.js +112 -0
  27. package/dist/analytics/dto/stats.dto.js.map +1 -0
  28. package/dist/analytics/entities/stats.entity.d.ts +26 -0
  29. package/dist/analytics/entities/stats.entity.js +74 -0
  30. package/dist/analytics/entities/stats.entity.js.map +1 -0
  31. package/dist/analytics/enums/stats-type.enum.d.ts +9 -0
  32. package/dist/analytics/enums/stats-type.enum.js +14 -0
  33. package/dist/analytics/enums/stats-type.enum.js.map +1 -0
  34. package/dist/analytics/index.d.ts +6 -6
  35. package/dist/analytics/index.js +6 -6
  36. package/dist/analytics/index.js.map +1 -1
  37. package/dist/analytics/repositories/stats.repository.d.ts +8 -0
  38. package/dist/analytics/repositories/stats.repository.js +48 -0
  39. package/dist/analytics/repositories/stats.repository.js.map +1 -0
  40. package/dist/analytics/services/stats.service.d.ts +22 -0
  41. package/dist/analytics/services/stats.service.js +127 -0
  42. package/dist/analytics/services/stats.service.js.map +1 -0
  43. package/dist/analytics/utilities/a-month-ago.js +10 -0
  44. package/dist/analytics/utilities/a-month-ago.js.map +1 -0
  45. package/dist/app.controller.d.ts +2 -1
  46. package/dist/app.controller.js +4 -2
  47. package/dist/app.controller.js.map +1 -1
  48. package/dist/app.module.js +15 -4
  49. package/dist/app.module.js.map +1 -1
  50. package/dist/app.service.d.ts +21 -1
  51. package/dist/app.service.js +72 -2
  52. package/dist/app.service.js.map +1 -1
  53. package/dist/attachment/controllers/attachment.controller.d.ts +6 -6
  54. package/dist/attachment/controllers/attachment.controller.js +23 -24
  55. package/dist/attachment/controllers/attachment.controller.js.map +1 -1
  56. package/dist/attachment/dto/attachment.dto.d.ts +9 -9
  57. package/dist/attachment/dto/attachment.dto.js +11 -10
  58. package/dist/attachment/dto/attachment.dto.js.map +1 -1
  59. package/dist/attachment/entities/attachment.entity.d.ts +9 -3
  60. package/dist/attachment/entities/attachment.entity.js +20 -3
  61. package/dist/attachment/entities/attachment.entity.js.map +1 -1
  62. package/dist/attachment/guards/attachment-ability.guard.js +4 -14
  63. package/dist/attachment/guards/attachment-ability.guard.js.map +1 -1
  64. package/dist/attachment/mocks/attachment.mock.d.ts +2 -2
  65. package/dist/attachment/mocks/attachment.mock.js +3 -6
  66. package/dist/attachment/mocks/attachment.mock.js.map +1 -1
  67. package/dist/attachment/repositories/attachment.repository.d.ts +1 -2
  68. package/dist/attachment/repositories/attachment.repository.js +1 -5
  69. package/dist/attachment/repositories/attachment.repository.js.map +1 -1
  70. package/dist/attachment/services/attachment.service.d.ts +2 -2
  71. package/dist/attachment/services/attachment.service.js.map +1 -1
  72. package/dist/attachment/types/index.d.ts +0 -1
  73. package/dist/attachment/types/index.js +0 -1
  74. package/dist/attachment/types/index.js.map +1 -1
  75. package/dist/bindings/base-binding-kind.d.ts +18 -0
  76. package/dist/bindings/base-binding-kind.js +46 -0
  77. package/dist/bindings/base-binding-kind.js.map +1 -0
  78. package/dist/bindings/bindings.module.d.ts +2 -0
  79. package/dist/bindings/bindings.module.js +24 -0
  80. package/dist/bindings/bindings.module.js.map +1 -0
  81. package/dist/bindings/create-binding-kind.d.ts +7 -0
  82. package/dist/bindings/create-binding-kind.js +28 -0
  83. package/dist/bindings/create-binding-kind.js.map +1 -0
  84. package/dist/bindings/index.d.ts +3 -0
  85. package/dist/bindings/index.js +20 -0
  86. package/dist/bindings/index.js.map +1 -0
  87. package/dist/bindings/runtime-bindings.d.ts +28 -0
  88. package/dist/bindings/runtime-bindings.js +3 -0
  89. package/dist/bindings/runtime-bindings.js.map +1 -0
  90. package/dist/bindings/runtime-bindings.service.d.ts +24 -0
  91. package/dist/bindings/runtime-bindings.service.js +82 -0
  92. package/dist/bindings/runtime-bindings.service.js.map +1 -0
  93. package/dist/bootstrap.js +1 -2
  94. package/dist/bootstrap.js.map +1 -1
  95. package/dist/channel/channel.module.d.ts +0 -2
  96. package/dist/channel/channel.module.js +12 -8
  97. package/dist/channel/channel.module.js.map +1 -1
  98. package/dist/channel/channel.service.d.ts +8 -5
  99. package/dist/channel/channel.service.js +48 -48
  100. package/dist/channel/channel.service.js.map +1 -1
  101. package/dist/channel/index.d.ts +4 -2
  102. package/dist/channel/index.js +4 -2
  103. package/dist/channel/index.js.map +1 -1
  104. package/dist/channel/lib/Handler.d.ts +26 -36
  105. package/dist/channel/lib/Handler.js +43 -87
  106. package/dist/channel/lib/Handler.js.map +1 -1
  107. package/dist/channel/lib/__test__/common.mock.js +1 -5
  108. package/dist/channel/lib/__test__/common.mock.js.map +1 -1
  109. package/dist/channel/lib/__test__/subscriber.mock.js +4 -5
  110. package/dist/channel/lib/__test__/subscriber.mock.js.map +1 -1
  111. package/dist/channel/lib/inbound-events/channel-inbound-event-context.d.ts +22 -0
  112. package/dist/channel/lib/inbound-events/channel-inbound-event-context.js +49 -0
  113. package/dist/channel/lib/inbound-events/channel-inbound-event-context.js.map +1 -0
  114. package/dist/channel/lib/inbound-events/channel-inbound-event-decoder.d.ts +7 -0
  115. package/dist/channel/lib/inbound-events/channel-inbound-event-decoder.js +3 -0
  116. package/dist/channel/lib/inbound-events/channel-inbound-event-decoder.js.map +1 -0
  117. package/dist/channel/lib/inbound-events/channel-inbound-event.d.ts +32 -0
  118. package/dist/channel/lib/inbound-events/channel-inbound-event.js +87 -0
  119. package/dist/channel/lib/inbound-events/channel-inbound-event.js.map +1 -0
  120. package/dist/channel/lib/inbound-events/index.d.ts +5 -0
  121. package/dist/channel/lib/inbound-events/index.js +22 -0
  122. package/dist/channel/lib/inbound-events/index.js.map +1 -0
  123. package/dist/channel/lib/inbound-events/message-inbound-event.d.ts +20 -0
  124. package/dist/channel/lib/inbound-events/message-inbound-event.js +57 -0
  125. package/dist/channel/lib/inbound-events/message-inbound-event.js.map +1 -0
  126. package/dist/channel/lib/inbound-events/synthetic-message-inbound-event.d.ts +15 -0
  127. package/dist/channel/lib/inbound-events/synthetic-message-inbound-event.js +53 -0
  128. package/dist/channel/lib/inbound-events/synthetic-message-inbound-event.js.map +1 -0
  129. package/dist/channel/lib/outbound/channel-outbound-encoder.d.ts +19 -0
  130. package/dist/channel/lib/outbound/channel-outbound-encoder.js +77 -0
  131. package/dist/channel/lib/outbound/channel-outbound-encoder.js.map +1 -0
  132. package/dist/channel/lib/outbound/index.d.ts +1 -0
  133. package/dist/channel/lib/outbound/index.js +18 -0
  134. package/dist/channel/lib/outbound/index.js.map +1 -0
  135. package/dist/channel/services/channel-attachment.service.d.ts +19 -0
  136. package/dist/channel/services/channel-attachment.service.js +78 -0
  137. package/dist/channel/services/channel-attachment.service.js.map +1 -0
  138. package/dist/channel/services/channel-download.service.d.ts +9 -0
  139. package/dist/channel/services/channel-download.service.js +32 -0
  140. package/dist/channel/services/channel-download.service.js.map +1 -0
  141. package/dist/channel/types.d.ts +3 -5
  142. package/dist/channel/webhook.controller.d.ts +9 -2
  143. package/dist/channel/webhook.controller.js +55 -12
  144. package/dist/channel/webhook.controller.js.map +1 -1
  145. package/dist/chat/chat.module.js +13 -41
  146. package/dist/chat/chat.module.js.map +1 -1
  147. package/dist/chat/controllers/label-group.controller.d.ts +7 -7
  148. package/dist/chat/controllers/label-group.controller.js +18 -44
  149. package/dist/chat/controllers/label-group.controller.js.map +1 -1
  150. package/dist/chat/controllers/label.controller.d.ts +7 -7
  151. package/dist/chat/controllers/label.controller.js +18 -44
  152. package/dist/chat/controllers/label.controller.js.map +1 -1
  153. package/dist/chat/controllers/message.controller.d.ts +7 -5
  154. package/dist/chat/controllers/message.controller.js +42 -38
  155. package/dist/chat/controllers/message.controller.js.map +1 -1
  156. package/dist/chat/controllers/subscriber.controller.d.ts +6 -4
  157. package/dist/chat/controllers/subscriber.controller.js +31 -35
  158. package/dist/chat/controllers/subscriber.controller.js.map +1 -1
  159. package/dist/chat/controllers/thread.controller.d.ts +18 -0
  160. package/dist/chat/controllers/thread.controller.js +103 -0
  161. package/dist/chat/controllers/thread.controller.js.map +1 -0
  162. package/dist/chat/dto/label-group.dto.d.ts +5 -7
  163. package/dist/chat/dto/label-group.dto.js.map +1 -1
  164. package/dist/chat/dto/label.dto.d.ts +5 -7
  165. package/dist/chat/dto/label.dto.js.map +1 -1
  166. package/dist/chat/dto/message.dto.d.ts +9 -7
  167. package/dist/chat/dto/message.dto.js +16 -0
  168. package/dist/chat/dto/message.dto.js.map +1 -1
  169. package/dist/chat/dto/subscriber.dto.d.ts +13 -23
  170. package/dist/chat/dto/subscriber.dto.js +7 -54
  171. package/dist/chat/dto/subscriber.dto.js.map +1 -1
  172. package/dist/chat/dto/thread.dto.d.ts +34 -0
  173. package/dist/chat/dto/thread.dto.js +130 -0
  174. package/dist/chat/dto/thread.dto.js.map +1 -0
  175. package/dist/chat/entities/label-group.entity.d.ts +4 -1
  176. package/dist/chat/entities/label-group.entity.js +6 -0
  177. package/dist/chat/entities/label-group.entity.js.map +1 -1
  178. package/dist/chat/entities/label.entity.d.ts +4 -4
  179. package/dist/chat/entities/label.entity.js +6 -11
  180. package/dist/chat/entities/label.entity.js.map +1 -1
  181. package/dist/chat/entities/message.entity.d.ts +7 -1
  182. package/dist/chat/entities/message.entity.js +20 -0
  183. package/dist/chat/entities/message.entity.js.map +1 -1
  184. package/dist/chat/entities/subscriber.entity.d.ts +14 -13
  185. package/dist/chat/entities/subscriber.entity.js +15 -43
  186. package/dist/chat/entities/subscriber.entity.js.map +1 -1
  187. package/dist/chat/entities/thread.entity.d.ts +18 -0
  188. package/dist/chat/entities/thread.entity.js +66 -0
  189. package/dist/chat/entities/thread.entity.js.map +1 -0
  190. package/dist/chat/helpers/envelope-builder.d.ts +1 -1
  191. package/dist/chat/helpers/envelope-builder.js.map +1 -1
  192. package/dist/chat/helpers/envelope-factory.d.ts +39 -98
  193. package/dist/chat/helpers/envelope-factory.js +1 -30
  194. package/dist/chat/helpers/envelope-factory.js.map +1 -1
  195. package/dist/chat/index.d.ts +5 -31
  196. package/dist/chat/index.js +5 -31
  197. package/dist/chat/index.js.map +1 -1
  198. package/dist/chat/repositories/label-group.repository.d.ts +1 -2
  199. package/dist/chat/repositories/label-group.repository.js +1 -5
  200. package/dist/chat/repositories/label-group.repository.js.map +1 -1
  201. package/dist/chat/repositories/label.repository.d.ts +1 -2
  202. package/dist/chat/repositories/label.repository.js +1 -5
  203. package/dist/chat/repositories/label.repository.js.map +1 -1
  204. package/dist/chat/repositories/message.repository.d.ts +7 -6
  205. package/dist/chat/repositories/message.repository.js +55 -42
  206. package/dist/chat/repositories/message.repository.js.map +1 -1
  207. package/dist/chat/repositories/subscriber.repository.d.ts +8 -7
  208. package/dist/chat/repositories/subscriber.repository.js +55 -50
  209. package/dist/chat/repositories/subscriber.repository.js.map +1 -1
  210. package/dist/chat/repositories/thread.repository.d.ts +11 -0
  211. package/dist/chat/repositories/thread.repository.js +76 -0
  212. package/dist/chat/repositories/thread.repository.js.map +1 -0
  213. package/dist/chat/services/chat.service.d.ts +13 -25
  214. package/dist/chat/services/chat.service.js +65 -122
  215. package/dist/chat/services/chat.service.js.map +1 -1
  216. package/dist/chat/services/label-group.service.d.ts +1 -2
  217. package/dist/chat/services/label-group.service.js.map +1 -1
  218. package/dist/chat/services/label.service.d.ts +1 -2
  219. package/dist/chat/services/label.service.js.map +1 -1
  220. package/dist/chat/services/message.service.d.ts +8 -13
  221. package/dist/chat/services/message.service.js +10 -42
  222. package/dist/chat/services/message.service.js.map +1 -1
  223. package/dist/chat/services/subscriber.service.d.ts +26 -11
  224. package/dist/chat/services/subscriber.service.js +130 -40
  225. package/dist/chat/services/subscriber.service.js.map +1 -1
  226. package/dist/chat/services/thread.service.d.ts +33 -0
  227. package/dist/chat/services/thread.service.js +162 -0
  228. package/dist/chat/services/thread.service.js.map +1 -0
  229. package/dist/chat/types/attachment.d.ts +9 -39
  230. package/dist/chat/types/attachment.js +1 -1
  231. package/dist/chat/types/attachment.js.map +1 -1
  232. package/dist/chat/types/button.d.ts +8 -61
  233. package/dist/chat/types/button.js +45 -12
  234. package/dist/chat/types/button.js.map +1 -1
  235. package/dist/chat/types/channel.d.ts +2 -6
  236. package/dist/chat/types/channel.js +3 -5
  237. package/dist/chat/types/channel.js.map +1 -1
  238. package/dist/chat/types/message.d.ts +216 -3142
  239. package/dist/chat/types/message.js +5 -88
  240. package/dist/chat/types/message.js.map +1 -1
  241. package/dist/chat/types/options.d.ts +37 -299
  242. package/dist/chat/types/options.js +98 -14
  243. package/dist/chat/types/options.js.map +1 -1
  244. package/dist/chat/types/quick-reply.d.ts +11 -92
  245. package/dist/chat/types/quick-reply.js +9 -11
  246. package/dist/chat/types/quick-reply.js.map +1 -1
  247. package/dist/cms/cms.module.js +8 -0
  248. package/dist/cms/cms.module.js.map +1 -1
  249. package/dist/cms/controllers/content-type.controller.d.ts +5 -5
  250. package/dist/cms/controllers/content-type.controller.js +13 -17
  251. package/dist/cms/controllers/content-type.controller.js.map +1 -1
  252. package/dist/cms/controllers/content.controller.d.ts +13 -6
  253. package/dist/cms/controllers/content.controller.js +60 -26
  254. package/dist/cms/controllers/content.controller.js.map +1 -1
  255. package/dist/cms/controllers/menu.controller.d.ts +5 -5
  256. package/dist/cms/controllers/menu.controller.js +15 -35
  257. package/dist/cms/controllers/menu.controller.js.map +1 -1
  258. package/dist/cms/dto/content.dto.d.ts +8 -9
  259. package/dist/cms/dto/content.dto.js +5 -5
  260. package/dist/cms/dto/content.dto.js.map +1 -1
  261. package/dist/cms/dto/contentType.dto.d.ts +8 -8
  262. package/dist/cms/dto/contentType.dto.js +9 -15
  263. package/dist/cms/dto/contentType.dto.js.map +1 -1
  264. package/dist/cms/dto/menu.dto.d.ts +6 -7
  265. package/dist/cms/dto/menu.dto.js +6 -6
  266. package/dist/cms/dto/menu.dto.js.map +1 -1
  267. package/dist/cms/entities/content-type.entity.d.ts +6 -4
  268. package/dist/cms/entities/content-type.entity.js +8 -34
  269. package/dist/cms/entities/content-type.entity.js.map +1 -1
  270. package/dist/cms/entities/content.entity.d.ts +8 -6
  271. package/dist/cms/entities/content.entity.js +30 -16
  272. package/dist/cms/entities/content.entity.js.map +1 -1
  273. package/dist/cms/entities/menu.entity.d.ts +8 -9
  274. package/dist/cms/entities/menu.entity.js +20 -27
  275. package/dist/cms/entities/menu.entity.js.map +1 -1
  276. package/dist/cms/enums/menu-type.enum.d.ts +5 -0
  277. package/dist/cms/enums/menu-type.enum.js +10 -0
  278. package/dist/cms/enums/menu-type.enum.js.map +1 -0
  279. package/dist/cms/index.d.ts +4 -0
  280. package/dist/cms/index.js +4 -0
  281. package/dist/cms/index.js.map +1 -1
  282. package/dist/cms/repositories/content-type.repository.d.ts +2 -3
  283. package/dist/cms/repositories/content-type.repository.js +1 -5
  284. package/dist/cms/repositories/content-type.repository.js.map +1 -1
  285. package/dist/cms/repositories/content.repository.d.ts +7 -3
  286. package/dist/cms/repositories/content.repository.js +20 -10
  287. package/dist/cms/repositories/content.repository.js.map +1 -1
  288. package/dist/cms/repositories/menu.repository.d.ts +1 -2
  289. package/dist/cms/repositories/menu.repository.js +1 -5
  290. package/dist/cms/repositories/menu.repository.js.map +1 -1
  291. package/dist/cms/services/content-type.service.d.ts +17 -3
  292. package/dist/cms/services/content-type.service.js +11 -17
  293. package/dist/cms/services/content-type.service.js.map +1 -1
  294. package/dist/cms/services/content.service.d.ts +12 -7
  295. package/dist/cms/services/content.service.js +15 -12
  296. package/dist/cms/services/content.service.js.map +1 -1
  297. package/dist/cms/services/menu.service.d.ts +1 -2
  298. package/dist/cms/services/menu.service.js.map +1 -1
  299. package/dist/cms/services/rag-backend.service.d.ts +39 -0
  300. package/dist/cms/services/rag-backend.service.js +348 -0
  301. package/dist/cms/services/rag-backend.service.js.map +1 -0
  302. package/dist/cms/services/rag-indexer.service.d.ts +23 -0
  303. package/dist/cms/services/rag-indexer.service.js +182 -0
  304. package/dist/cms/services/rag-indexer.service.js.map +1 -0
  305. package/dist/cms/services/rag-keyword-index-recovery.d.ts +3 -0
  306. package/dist/cms/services/rag-keyword-index-recovery.js +74 -0
  307. package/dist/cms/services/rag-keyword-index-recovery.js.map +1 -0
  308. package/dist/cms/services/rag-retriever.service.d.ts +25 -0
  309. package/dist/cms/services/rag-retriever.service.js +177 -0
  310. package/dist/cms/services/rag-retriever.service.js.map +1 -0
  311. package/dist/cms/services/rag.service.d.ts +31 -0
  312. package/dist/cms/services/rag.service.js +164 -0
  313. package/dist/cms/services/rag.service.js.map +1 -0
  314. package/dist/cms/types/content.d.ts +0 -2
  315. package/dist/cms/types/content.js +0 -2
  316. package/dist/cms/types/content.js.map +1 -1
  317. package/dist/cms/types/rag.d.ts +15 -0
  318. package/dist/cms/types/rag.js +3 -0
  319. package/dist/cms/types/rag.js.map +1 -0
  320. package/dist/config/i18n/en/chatbot_settings.json +17 -0
  321. package/dist/config/i18n/en/contact.json +23 -0
  322. package/dist/config/i18n/en/messages.json +0 -8
  323. package/dist/config/i18n/en/rag_settings.json +21 -0
  324. package/dist/config/i18n/fr/chatbot_settings.json +17 -0
  325. package/dist/config/i18n/fr/contact.json +23 -0
  326. package/dist/config/i18n/fr/messages.json +4 -11
  327. package/dist/config/i18n/fr/rag_settings.json +21 -0
  328. package/dist/config/index.js +2 -8
  329. package/dist/config/index.js.map +1 -1
  330. package/dist/config/types.d.ts +0 -3
  331. package/dist/database/decorators/orm-event-hooks.decorator.d.ts +20 -0
  332. package/dist/database/decorators/orm-event-hooks.decorator.js +49 -0
  333. package/dist/database/decorators/orm-event-hooks.decorator.js.map +1 -0
  334. package/dist/database/entities/base.entity.d.ts +7 -5
  335. package/dist/database/entities/base.entity.js +9 -17
  336. package/dist/database/entities/base.entity.js.map +1 -1
  337. package/dist/extension/cleanup.service.d.ts +4 -4
  338. package/dist/extension/cleanup.service.js +14 -14
  339. package/dist/extension/cleanup.service.js.map +1 -1
  340. package/dist/extension/types.d.ts +7 -12
  341. package/dist/extensions/actions/ai/agent.action.d.ts +66 -0
  342. package/dist/extensions/actions/ai/agent.action.js +101 -0
  343. package/dist/extensions/actions/ai/agent.action.js.map +1 -0
  344. package/dist/extensions/actions/ai/ai-base.action.d.ts +88 -0
  345. package/dist/extensions/actions/ai/ai-base.action.js +548 -0
  346. package/dist/extensions/actions/ai/ai-base.action.js.map +1 -0
  347. package/dist/extensions/actions/ai/ai-schemas.d.ts +333 -0
  348. package/dist/extensions/actions/ai/ai-schemas.js +242 -0
  349. package/dist/extensions/actions/ai/ai-schemas.js.map +1 -0
  350. package/dist/extensions/actions/ai/generate-object.action.d.ts +10 -0
  351. package/dist/extensions/actions/ai/generate-object.action.js +43 -0
  352. package/dist/extensions/actions/ai/generate-object.action.js.map +1 -0
  353. package/dist/extensions/actions/ai/generate-object.base.action.d.ts +42 -0
  354. package/dist/extensions/actions/ai/generate-object.base.action.js +73 -0
  355. package/dist/extensions/actions/ai/generate-object.base.action.js.map +1 -0
  356. package/dist/extensions/actions/ai/generate-reply.action.d.ts +10 -0
  357. package/dist/extensions/actions/ai/generate-reply.action.js +39 -0
  358. package/dist/extensions/actions/ai/generate-reply.action.js.map +1 -0
  359. package/dist/extensions/actions/ai/generate-text.action.d.ts +10 -0
  360. package/dist/extensions/actions/ai/generate-text.action.js +43 -0
  361. package/dist/extensions/actions/ai/generate-text.action.js.map +1 -0
  362. package/dist/extensions/actions/ai/generate-text.base.action.d.ts +41 -0
  363. package/dist/extensions/actions/ai/generate-text.base.action.js +64 -0
  364. package/dist/extensions/actions/ai/generate-text.base.action.js.map +1 -0
  365. package/dist/extensions/actions/ai/i18n/en.translations.json +166 -0
  366. package/dist/extensions/actions/ai/i18n/fr.translations.json +166 -0
  367. package/dist/extensions/actions/ai/infer-object.action.d.ts +10 -0
  368. package/dist/extensions/actions/ai/infer-object.action.js +39 -0
  369. package/dist/extensions/actions/ai/infer-object.action.js.map +1 -0
  370. package/dist/extensions/actions/ai/mcp.binding.d.ts +16 -0
  371. package/dist/extensions/actions/ai/mcp.binding.js +47 -0
  372. package/dist/extensions/actions/ai/mcp.binding.js.map +1 -0
  373. package/dist/extensions/actions/ai/memory.binding.d.ts +14 -0
  374. package/dist/extensions/actions/ai/memory.binding.js +30 -0
  375. package/dist/extensions/actions/ai/memory.binding.js.map +1 -0
  376. package/dist/extensions/actions/ai/model.binding.d.ts +105 -0
  377. package/dist/extensions/actions/ai/model.binding.js +106 -0
  378. package/dist/extensions/actions/ai/model.binding.js.map +1 -0
  379. package/dist/extensions/actions/ai/retrieve-content-rag.action.d.ts +20 -0
  380. package/dist/extensions/actions/ai/retrieve-content-rag.action.js +84 -0
  381. package/dist/extensions/actions/ai/retrieve-content-rag.action.js.map +1 -0
  382. package/dist/extensions/actions/ai/tools.binding.d.ts +10 -0
  383. package/dist/extensions/actions/ai/tools.binding.js +20 -0
  384. package/dist/extensions/actions/ai/tools.binding.js.map +1 -0
  385. package/dist/extensions/actions/memory/i18n/en.translations.json +5 -0
  386. package/dist/extensions/actions/memory/i18n/fr.translations.json +5 -0
  387. package/dist/extensions/actions/memory/update-memory.action.d.ts +17 -0
  388. package/dist/extensions/actions/memory/update-memory.action.js +47 -0
  389. package/dist/extensions/actions/memory/update-memory.action.js.map +1 -0
  390. package/dist/extensions/actions/messaging/attachment.action.d.ts +27 -0
  391. package/dist/extensions/actions/messaging/attachment.action.js +62 -0
  392. package/dist/extensions/actions/messaging/attachment.action.js.map +1 -0
  393. package/dist/extensions/actions/messaging/await-reply.action.d.ts +118 -0
  394. package/dist/extensions/actions/messaging/await-reply.action.js +49 -0
  395. package/dist/extensions/actions/messaging/await-reply.action.js.map +1 -0
  396. package/dist/extensions/actions/messaging/buttons.action.d.ts +16 -0
  397. package/dist/extensions/actions/messaging/buttons.action.js +62 -0
  398. package/dist/extensions/actions/messaging/buttons.action.js.map +1 -0
  399. package/dist/extensions/actions/messaging/i18n/en.translations.json +176 -0
  400. package/dist/extensions/actions/messaging/i18n/fr.translations.json +176 -0
  401. package/dist/extensions/actions/messaging/list.action.d.ts +58 -0
  402. package/dist/extensions/actions/messaging/list.action.js +106 -0
  403. package/dist/extensions/actions/messaging/list.action.js.map +1 -0
  404. package/dist/extensions/actions/messaging/message-action.base.d.ts +212 -0
  405. package/dist/extensions/actions/messaging/message-action.base.js +115 -0
  406. package/dist/extensions/actions/messaging/message-action.base.js.map +1 -0
  407. package/dist/extensions/actions/messaging/quick-replies.action.d.ts +19 -0
  408. package/dist/extensions/actions/messaging/quick-replies.action.js +58 -0
  409. package/dist/extensions/actions/messaging/quick-replies.action.js.map +1 -0
  410. package/dist/extensions/actions/messaging/text-message.action.d.ts +15 -0
  411. package/dist/extensions/actions/messaging/text-message.action.js +46 -0
  412. package/dist/extensions/actions/messaging/text-message.action.js.map +1 -0
  413. package/dist/extensions/actions/subscriber/handover.action.d.ts +12 -0
  414. package/dist/extensions/actions/subscriber/handover.action.js +81 -0
  415. package/dist/extensions/actions/subscriber/handover.action.js.map +1 -0
  416. package/dist/extensions/actions/subscriber/i18n/en.translations.json +16 -0
  417. package/dist/extensions/actions/subscriber/i18n/fr.translations.json +16 -0
  418. package/dist/extensions/actions/subscriber/update-labels.action.d.ts +10 -0
  419. package/dist/extensions/actions/subscriber/update-labels.action.js +78 -0
  420. package/dist/extensions/actions/subscriber/update-labels.action.js.map +1 -0
  421. package/dist/extensions/actions/web/http-request.action.d.ts +19 -0
  422. package/dist/extensions/actions/web/http-request.action.js +203 -0
  423. package/dist/extensions/actions/web/http-request.action.js.map +1 -0
  424. package/dist/extensions/actions/web/i18n/en.translations.json +29 -0
  425. package/dist/extensions/actions/web/i18n/fr.translations.json +29 -0
  426. package/dist/extensions/channels/console/console-channel.settings.d.ts +34 -0
  427. package/dist/extensions/channels/console/console-channel.settings.js +81 -0
  428. package/dist/extensions/channels/console/console-channel.settings.js.map +1 -0
  429. package/dist/extensions/channels/console/i18n/en.translations.json +24 -0
  430. package/dist/extensions/channels/console/i18n/fr.translations.json +24 -0
  431. package/dist/extensions/channels/console/index.channel.d.ts +2 -13
  432. package/dist/extensions/channels/console/index.channel.js +4 -26
  433. package/dist/extensions/channels/console/index.channel.js.map +1 -1
  434. package/dist/extensions/channels/web/__test__/data.mock.d.ts +6 -6
  435. package/dist/extensions/channels/web/__test__/data.mock.js +6 -10
  436. package/dist/extensions/channels/web/__test__/data.mock.js.map +1 -1
  437. package/dist/extensions/channels/web/__test__/events.mock.d.ts +2 -2
  438. package/dist/extensions/channels/web/__test__/events.mock.js +6 -6
  439. package/dist/extensions/channels/web/__test__/events.mock.js.map +1 -1
  440. package/dist/extensions/channels/web/base-web-channel.d.ts +31 -45
  441. package/dist/extensions/channels/web/base-web-channel.js +279 -558
  442. package/dist/extensions/channels/web/base-web-channel.js.map +1 -1
  443. package/dist/extensions/channels/web/i18n/en.translations.json +28 -0
  444. package/dist/extensions/channels/web/i18n/fr.translations.json +28 -0
  445. package/dist/extensions/channels/web/inbound/events/base-web-inbound.event.d.ts +10 -0
  446. package/dist/extensions/channels/web/inbound/events/base-web-inbound.event.js +24 -0
  447. package/dist/extensions/channels/web/inbound/events/base-web-inbound.event.js.map +1 -0
  448. package/dist/extensions/channels/web/inbound/events/delivery.event.d.ts +12 -0
  449. package/dist/extensions/channels/web/inbound/events/delivery.event.js +23 -0
  450. package/dist/extensions/channels/web/inbound/events/delivery.event.js.map +1 -0
  451. package/dist/extensions/channels/web/inbound/events/index.d.ts +10 -0
  452. package/dist/extensions/channels/web/inbound/events/index.js +27 -0
  453. package/dist/extensions/channels/web/inbound/events/index.js.map +1 -0
  454. package/dist/extensions/channels/web/inbound/events/messages/attachment.event.d.ts +27 -0
  455. package/dist/extensions/channels/web/inbound/events/messages/attachment.event.js +92 -0
  456. package/dist/extensions/channels/web/inbound/events/messages/attachment.event.js.map +1 -0
  457. package/dist/extensions/channels/web/inbound/events/messages/location.event.d.ts +15 -0
  458. package/dist/extensions/channels/web/inbound/events/messages/location.event.js +40 -0
  459. package/dist/extensions/channels/web/inbound/events/messages/location.event.js.map +1 -0
  460. package/dist/extensions/channels/web/inbound/events/messages/payload.event.d.ts +16 -0
  461. package/dist/extensions/channels/web/inbound/events/messages/payload.event.js +30 -0
  462. package/dist/extensions/channels/web/inbound/events/messages/payload.event.js.map +1 -0
  463. package/dist/extensions/channels/web/inbound/events/messages/postback.event.d.ts +8 -0
  464. package/dist/extensions/channels/web/inbound/events/messages/postback.event.js +16 -0
  465. package/dist/extensions/channels/web/inbound/events/messages/postback.event.js.map +1 -0
  466. package/dist/extensions/channels/web/inbound/events/messages/quick-reply.event.d.ts +8 -0
  467. package/dist/extensions/channels/web/inbound/events/messages/quick-reply.event.js +16 -0
  468. package/dist/extensions/channels/web/inbound/events/messages/quick-reply.event.js.map +1 -0
  469. package/dist/extensions/channels/web/inbound/events/messages/text.event.d.ts +12 -0
  470. package/dist/extensions/channels/web/inbound/events/messages/text.event.js +25 -0
  471. package/dist/extensions/channels/web/inbound/events/messages/text.event.js.map +1 -0
  472. package/dist/extensions/channels/web/inbound/events/messages/web-message.event.d.ts +14 -0
  473. package/dist/extensions/channels/web/inbound/events/messages/web-message.event.js +43 -0
  474. package/dist/extensions/channels/web/inbound/events/messages/web-message.event.js.map +1 -0
  475. package/dist/extensions/channels/web/inbound/events/read.event.d.ts +12 -0
  476. package/dist/extensions/channels/web/inbound/events/read.event.js +23 -0
  477. package/dist/extensions/channels/web/inbound/events/read.event.js.map +1 -0
  478. package/dist/extensions/channels/web/inbound/events/typing.event.d.ts +10 -0
  479. package/dist/extensions/channels/web/inbound/events/typing.event.js +19 -0
  480. package/dist/extensions/channels/web/inbound/events/typing.event.js.map +1 -0
  481. package/dist/extensions/channels/web/inbound/events/unsupported.event.d.ts +12 -0
  482. package/dist/extensions/channels/web/inbound/events/unsupported.event.js +23 -0
  483. package/dist/extensions/channels/web/inbound/events/unsupported.event.js.map +1 -0
  484. package/dist/extensions/channels/web/inbound/index.d.ts +4 -0
  485. package/dist/extensions/channels/web/inbound/index.js +21 -0
  486. package/dist/extensions/channels/web/inbound/index.js.map +1 -0
  487. package/dist/extensions/channels/web/inbound/web-inbound-event-decoder.d.ts +16 -0
  488. package/dist/extensions/channels/web/inbound/web-inbound-event-decoder.js +111 -0
  489. package/dist/extensions/channels/web/inbound/web-inbound-event-decoder.js.map +1 -0
  490. package/dist/extensions/channels/web/index.channel.d.ts +2 -13
  491. package/dist/extensions/channels/web/index.channel.js +4 -26
  492. package/dist/extensions/channels/web/index.channel.js.map +1 -1
  493. package/dist/extensions/channels/web/outbound/index.d.ts +1 -0
  494. package/dist/extensions/channels/web/outbound/index.js +18 -0
  495. package/dist/extensions/channels/web/outbound/index.js.map +1 -0
  496. package/dist/extensions/channels/web/outbound/web-outbound-message-encoder.d.ts +27 -0
  497. package/dist/extensions/channels/web/outbound/web-outbound-message-encoder.js +208 -0
  498. package/dist/extensions/channels/web/outbound/web-outbound-message-encoder.js.map +1 -0
  499. package/dist/extensions/channels/web/types.d.ts +380 -88
  500. package/dist/extensions/channels/web/types.js +122 -17
  501. package/dist/extensions/channels/web/types.js.map +1 -1
  502. package/dist/extensions/channels/web/web-channel.settings.d.ts +38 -0
  503. package/dist/extensions/channels/web/web-channel.settings.js +86 -0
  504. package/dist/extensions/channels/web/web-channel.settings.js.map +1 -0
  505. package/dist/extensions/helpers/local-storage/i18n/en.translations.json +6 -0
  506. package/dist/extensions/helpers/local-storage/i18n/fr.translations.json +6 -0
  507. package/dist/extensions/helpers/local-storage/index.helper.d.ts +6 -11
  508. package/dist/extensions/helpers/local-storage/index.helper.js +8 -15
  509. package/dist/extensions/helpers/local-storage/index.helper.js.map +1 -1
  510. package/dist/extensions/index.d.ts +14 -6
  511. package/dist/extensions/index.js +14 -6
  512. package/dist/extensions/index.js.map +1 -1
  513. package/dist/helper/helper.controller.d.ts +3 -3
  514. package/dist/helper/helper.controller.js +9 -1
  515. package/dist/helper/helper.controller.js.map +1 -1
  516. package/dist/helper/helper.module.js +1 -2
  517. package/dist/helper/helper.module.js.map +1 -1
  518. package/dist/helper/helper.service.d.ts +1 -2
  519. package/dist/helper/helper.service.js +4 -8
  520. package/dist/helper/helper.service.js.map +1 -1
  521. package/dist/helper/index.d.ts +0 -2
  522. package/dist/helper/index.js +0 -2
  523. package/dist/helper/index.js.map +1 -1
  524. package/dist/helper/lib/__test__/settings.d.ts +2 -5
  525. package/dist/helper/lib/__test__/settings.js +3 -6
  526. package/dist/helper/lib/__test__/settings.js.map +1 -1
  527. package/dist/helper/lib/base-helper.d.ts +4 -9
  528. package/dist/helper/lib/base-helper.js +21 -14
  529. package/dist/helper/lib/base-helper.js.map +1 -1
  530. package/dist/helper/lib/base-llm-helper.d.ts +1 -4
  531. package/dist/helper/lib/base-llm-helper.js +2 -2
  532. package/dist/helper/lib/base-llm-helper.js.map +1 -1
  533. package/dist/helper/lib/base-storage-helper.d.ts +1 -4
  534. package/dist/helper/lib/base-storage-helper.js +2 -2
  535. package/dist/helper/lib/base-storage-helper.js.map +1 -1
  536. package/dist/helper/types.d.ts +3 -46
  537. package/dist/helper/types.js +1 -12
  538. package/dist/helper/types.js.map +1 -1
  539. package/dist/i18n/controllers/language.controller.d.ts +4 -4
  540. package/dist/i18n/controllers/language.controller.js +9 -13
  541. package/dist/i18n/controllers/language.controller.js.map +1 -1
  542. package/dist/i18n/controllers/translation.controller.d.ts +4 -4
  543. package/dist/i18n/controllers/translation.controller.js +10 -16
  544. package/dist/i18n/controllers/translation.controller.js.map +1 -1
  545. package/dist/i18n/dto/language.dto.d.ts +5 -6
  546. package/dist/i18n/dto/language.dto.js.map +1 -1
  547. package/dist/i18n/dto/translation.dto.d.ts +5 -6
  548. package/dist/i18n/dto/translation.dto.js.map +1 -1
  549. package/dist/i18n/entities/language.entity.d.ts +6 -2
  550. package/dist/i18n/entities/language.entity.js +13 -7
  551. package/dist/i18n/entities/language.entity.js.map +1 -1
  552. package/dist/i18n/entities/translation.entity.d.ts +4 -1
  553. package/dist/i18n/entities/translation.entity.js +6 -0
  554. package/dist/i18n/entities/translation.entity.js.map +1 -1
  555. package/dist/i18n/i18n.module.js +2 -4
  556. package/dist/i18n/i18n.module.js.map +1 -1
  557. package/dist/i18n/index.d.ts +0 -1
  558. package/dist/i18n/index.js +0 -1
  559. package/dist/i18n/index.js.map +1 -1
  560. package/dist/i18n/loaders/extension-json.loader.d.ts +23 -0
  561. package/dist/i18n/loaders/extension-json.loader.js +159 -0
  562. package/dist/i18n/loaders/extension-json.loader.js.map +1 -0
  563. package/dist/i18n/localize-schema-metadata.d.ts +8 -0
  564. package/dist/i18n/localize-schema-metadata.js +34 -0
  565. package/dist/i18n/localize-schema-metadata.js.map +1 -0
  566. package/dist/i18n/repositories/language.repository.d.ts +1 -2
  567. package/dist/i18n/repositories/language.repository.js +1 -5
  568. package/dist/i18n/repositories/language.repository.js.map +1 -1
  569. package/dist/i18n/repositories/translation.repository.d.ts +1 -2
  570. package/dist/i18n/repositories/translation.repository.js +1 -5
  571. package/dist/i18n/repositories/translation.repository.js.map +1 -1
  572. package/dist/i18n/seeds/language.seed.d.ts +2 -2
  573. package/dist/i18n/seeds/language.seed.js.map +1 -1
  574. package/dist/i18n/seeds/translation.seed.d.ts +1 -2
  575. package/dist/i18n/seeds/translation.seed.js.map +1 -1
  576. package/dist/i18n/services/i18n.service.d.ts +9 -1
  577. package/dist/i18n/services/i18n.service.js +13 -1
  578. package/dist/i18n/services/i18n.service.js.map +1 -1
  579. package/dist/i18n/services/language.service.d.ts +4 -7
  580. package/dist/i18n/services/language.service.js +2 -4
  581. package/dist/i18n/services/language.service.js.map +1 -1
  582. package/dist/i18n/services/translation.service.d.ts +12 -15
  583. package/dist/i18n/services/translation.service.js +113 -110
  584. package/dist/i18n/services/translation.service.js.map +1 -1
  585. package/dist/index.d.ts +4 -2
  586. package/dist/index.js +4 -2
  587. package/dist/index.js.map +1 -1
  588. package/dist/license/decorators/requires-license-feature.decorator.d.ts +3 -0
  589. package/dist/license/decorators/requires-license-feature.decorator.js +9 -0
  590. package/dist/license/decorators/requires-license-feature.decorator.js.map +1 -0
  591. package/dist/license/guards/license-feature.guard.d.ts +9 -0
  592. package/dist/license/guards/license-feature.guard.js +45 -0
  593. package/dist/license/guards/license-feature.guard.js.map +1 -0
  594. package/dist/license/index.d.ts +9 -0
  595. package/dist/license/index.js +26 -0
  596. package/dist/license/index.js.map +1 -0
  597. package/dist/license/license.module.d.ts +2 -0
  598. package/dist/license/license.module.js +33 -0
  599. package/dist/license/license.module.js.map +1 -0
  600. package/dist/license/services/lemon-squeezy.service.d.ts +11 -0
  601. package/dist/license/services/lemon-squeezy.service.js +74 -0
  602. package/dist/license/services/lemon-squeezy.service.js.map +1 -0
  603. package/dist/license/services/license-orm-listener.service.d.ts +12 -0
  604. package/dist/license/services/license-orm-listener.service.js +80 -0
  605. package/dist/license/services/license-orm-listener.service.js.map +1 -0
  606. package/dist/license/services/license.service.d.ts +55 -0
  607. package/dist/license/services/license.service.js +429 -0
  608. package/dist/license/services/license.service.js.map +1 -0
  609. package/dist/license/types/lemon-squeezy.types.d.ts +47 -0
  610. package/dist/license/types/lemon-squeezy.types.js +3 -0
  611. package/dist/license/types/lemon-squeezy.types.js.map +1 -0
  612. package/dist/license/types/license-feature.enum.d.ts +19 -0
  613. package/dist/license/types/license-feature.enum.js +23 -0
  614. package/dist/license/types/license-feature.enum.js.map +1 -0
  615. package/dist/license/types/license-quota.d.ts +16 -0
  616. package/dist/license/types/license-quota.js +36 -0
  617. package/dist/license/types/license-quota.js.map +1 -0
  618. package/dist/migration/migration.service.js +7 -1
  619. package/dist/migration/migration.service.js.map +1 -1
  620. package/dist/seeder.js +17 -24
  621. package/dist/seeder.js.map +1 -1
  622. package/dist/setting/base-setting-group.d.ts +13 -0
  623. package/dist/setting/base-setting-group.js +39 -0
  624. package/dist/setting/base-setting-group.js.map +1 -0
  625. package/dist/setting/controllers/setting.controller.d.ts +4 -3
  626. package/dist/setting/controllers/setting.controller.js +13 -3
  627. package/dist/setting/controllers/setting.controller.js.map +1 -1
  628. package/dist/setting/create-setting-group.d.ts +4 -0
  629. package/dist/setting/create-setting-group.js +28 -0
  630. package/dist/setting/create-setting-group.js.map +1 -0
  631. package/dist/setting/default.settings.d.ts +123 -0
  632. package/dist/setting/default.settings.js +226 -0
  633. package/dist/setting/default.settings.js.map +1 -0
  634. package/dist/setting/dto/metadata.dto.d.ts +5 -6
  635. package/dist/setting/dto/metadata.dto.js.map +1 -1
  636. package/dist/setting/dto/setting.dto.d.ts +5 -18
  637. package/dist/setting/dto/setting.dto.js +0 -76
  638. package/dist/setting/dto/setting.dto.js.map +1 -1
  639. package/dist/setting/entities/metadata.entity.d.ts +4 -1
  640. package/dist/setting/entities/metadata.entity.js +6 -0
  641. package/dist/setting/entities/metadata.entity.js.map +1 -1
  642. package/dist/setting/entities/setting.entity.d.ts +4 -10
  643. package/dist/setting/entities/setting.entity.js +5 -83
  644. package/dist/setting/entities/setting.entity.js.map +1 -1
  645. package/dist/setting/index.d.ts +6 -0
  646. package/dist/setting/index.js +6 -0
  647. package/dist/setting/index.js.map +1 -1
  648. package/dist/setting/repositories/metadata.repository.d.ts +1 -2
  649. package/dist/setting/repositories/metadata.repository.js +1 -5
  650. package/dist/setting/repositories/metadata.repository.js.map +1 -1
  651. package/dist/setting/repositories/setting.repository.d.ts +2 -4
  652. package/dist/setting/repositories/setting.repository.js +1 -12
  653. package/dist/setting/repositories/setting.repository.js.map +1 -1
  654. package/dist/setting/runtime-settings.d.ts +23 -0
  655. package/dist/setting/runtime-settings.js +8 -0
  656. package/dist/setting/runtime-settings.js.map +1 -0
  657. package/dist/setting/runtime-settings.seed.d.ts +10 -0
  658. package/dist/setting/runtime-settings.seed.js +53 -0
  659. package/dist/setting/runtime-settings.seed.js.map +1 -0
  660. package/dist/setting/seeds/metadata.seed.d.ts +2 -2
  661. package/dist/setting/seeds/metadata.seed.js.map +1 -1
  662. package/dist/setting/seeds/setting.seed-model.d.ts +2 -152
  663. package/dist/setting/seeds/setting.seed-model.js +5 -174
  664. package/dist/setting/seeds/setting.seed-model.js.map +1 -1
  665. package/dist/setting/seeds/setting.seed.d.ts +3 -5
  666. package/dist/setting/seeds/setting.seed.js.map +1 -1
  667. package/dist/setting/services/metadata.service.d.ts +2 -2
  668. package/dist/setting/services/metadata.service.js.map +1 -1
  669. package/dist/setting/services/runtime-settings.service.d.ts +31 -0
  670. package/dist/setting/services/runtime-settings.service.js +92 -0
  671. package/dist/setting/services/runtime-settings.service.js.map +1 -0
  672. package/dist/setting/services/setting.service.d.ts +16 -3
  673. package/dist/setting/services/setting.service.js +97 -5
  674. package/dist/setting/services/setting.service.js.map +1 -1
  675. package/dist/setting/setting.module.js +15 -1
  676. package/dist/setting/setting.module.js.map +1 -1
  677. package/dist/setting/types/index.d.ts +3 -79
  678. package/dist/setting/types/index.js +1 -13
  679. package/dist/setting/types/index.js.map +1 -1
  680. package/dist/static/assets/abap-DLDM7-KI.js +1 -0
  681. package/dist/static/assets/apex-DNDY2TF8.js +1 -0
  682. package/dist/static/assets/azcli-Y6nb8tq_.js +1 -0
  683. package/dist/static/assets/bat-BwHxbl9M.js +1 -0
  684. package/dist/static/assets/bicep-CFznDFnq.js +2 -0
  685. package/dist/static/assets/cameligo-Bf6VGUru.js +1 -0
  686. package/dist/static/assets/clojure-Dnu-v4kV.js +1 -0
  687. package/dist/static/assets/codicon-ngg6Pgfi.ttf +0 -0
  688. package/dist/static/assets/coffee-Bd8akH9Z.js +1 -0
  689. package/dist/static/assets/cpp-BbWJElDN.js +1 -0
  690. package/dist/static/assets/csharp-Co3qMtFm.js +1 -0
  691. package/dist/static/assets/csp-D-4FJmMZ.js +1 -0
  692. package/dist/static/assets/css-DdJfP1eB.js +3 -0
  693. package/dist/static/assets/css.worker-BvV5MPou.js +93 -0
  694. package/dist/static/assets/cssMode-EfTI32jH.js +1 -0
  695. package/dist/static/assets/cypher-cTPe9QuQ.js +1 -0
  696. package/dist/static/assets/dart-BOtBlQCF.js +1 -0
  697. package/dist/static/assets/dockerfile-BG73LgW2.js +1 -0
  698. package/dist/static/assets/ecl-BEgZUVRK.js +1 -0
  699. package/dist/static/assets/editor.worker-CKy7Pnvo.js +26 -0
  700. package/dist/static/assets/elixir-BkW5O-1t.js +1 -0
  701. package/dist/static/assets/flow9-BeJ5waoc.js +1 -0
  702. package/dist/static/assets/freemarker2-Bp36bqQu.js +3 -0
  703. package/dist/static/assets/fsharp-PahG7c26.js +1 -0
  704. package/dist/static/assets/go-acbASCJo.js +1 -0
  705. package/dist/static/assets/graphql-BxJiqAUM.js +1 -0
  706. package/dist/static/assets/handlebars-DFcsacT2.js +1 -0
  707. package/dist/static/assets/hcl-DtV1sZF8.js +1 -0
  708. package/dist/static/assets/html-DoteNmPg.js +1 -0
  709. package/dist/static/assets/html.worker-BLJhxQJQ.js +470 -0
  710. package/dist/static/assets/htmlMode-D4qDYA_c.js +1 -0
  711. package/dist/static/assets/index-B0zbJ-Gv.css +1 -0
  712. package/dist/static/assets/index-Da34FzWk.js +10030 -0
  713. package/dist/static/assets/ini-Kd9XrMLS.js +1 -0
  714. package/dist/static/assets/java-CXBNlu9o.js +1 -0
  715. package/dist/static/assets/javascript-hq-XZ18j.js +1 -0
  716. package/dist/static/assets/json.worker-usMZ-FED.js +58 -0
  717. package/dist/static/assets/jsonMode-gxldbTjQ.js +7 -0
  718. package/dist/static/assets/julia-cl7-CwDS.js +1 -0
  719. package/dist/static/assets/kotlin-s7OhZKlX.js +1 -0
  720. package/dist/static/assets/less-9HpZscsL.js +2 -0
  721. package/dist/static/assets/lexon-OrD6JF1K.js +1 -0
  722. package/dist/static/assets/liquid-VombxSUL.js +1 -0
  723. package/dist/static/assets/lspLanguageFeatures-DjxTnuCT.js +4 -0
  724. package/dist/static/assets/lua-Cyyb5UIc.js +1 -0
  725. package/dist/static/assets/m3-B8OfTtLu.js +1 -0
  726. package/dist/static/assets/markdown-BFxVWTOG.js +1 -0
  727. package/dist/static/assets/mdx-Bv744ltm.js +1 -0
  728. package/dist/static/assets/mips-CiqrrVzr.js +1 -0
  729. package/dist/static/assets/msdax-DmeGPVcC.js +1 -0
  730. package/dist/static/assets/mysql-C_tMU-Nz.js +1 -0
  731. package/dist/static/assets/objective-c-BDtDVThU.js +1 -0
  732. package/dist/static/assets/pascal-vHIfCaH5.js +1 -0
  733. package/dist/static/assets/pascaligo-DtZ0uQbO.js +1 -0
  734. package/dist/static/assets/perl-Ub6l9XKa.js +1 -0
  735. package/dist/static/assets/pgsql-BlNEE0v7.js +1 -0
  736. package/dist/static/assets/php-BBUBE1dy.js +1 -0
  737. package/dist/static/assets/pla-DSh2-awV.js +1 -0
  738. package/dist/static/assets/postiats-CocnycG-.js +1 -0
  739. package/dist/static/assets/powerquery-tScXyioY.js +1 -0
  740. package/dist/static/assets/powershell-COWaemsV.js +1 -0
  741. package/dist/static/assets/protobuf-Brw8urJB.js +2 -0
  742. package/dist/static/assets/pug-8SOpv6rk.js +1 -0
  743. package/dist/static/assets/python-BB7rtHwG.js +1 -0
  744. package/dist/static/assets/qsharp-Bw9ernYp.js +1 -0
  745. package/dist/static/assets/r-j7ic8hl3.js +1 -0
  746. package/dist/static/assets/razor-BoLELWC9.js +1 -0
  747. package/dist/static/assets/redis-Bu5POkcn.js +1 -0
  748. package/dist/static/assets/redshift-Bs9aos_-.js +1 -0
  749. package/dist/static/assets/restructuredtext-CqXO7rUv.js +1 -0
  750. package/dist/static/assets/ruby-zBfavPgS.js +1 -0
  751. package/dist/static/assets/rust-BzKRNQWT.js +1 -0
  752. package/dist/static/assets/sb-BBc9UKZt.js +1 -0
  753. package/dist/static/assets/scala-D9hQfWCl.js +1 -0
  754. package/dist/static/assets/scheme-BPhDTwHR.js +1 -0
  755. package/dist/static/assets/scss-CBJaRo0y.js +3 -0
  756. package/dist/static/assets/shell-DiJ1NA_G.js +1 -0
  757. package/dist/static/assets/solidity-Db0IVjzk.js +1 -0
  758. package/dist/static/assets/sophia-CnS9iZB_.js +1 -0
  759. package/dist/static/assets/sparql-CJmd_6j2.js +1 -0
  760. package/dist/static/assets/sql-ClhHkBeG.js +1 -0
  761. package/dist/static/assets/st-CHwy0fLd.js +1 -0
  762. package/dist/static/assets/swift-Bqt4WxQ4.js +3 -0
  763. package/dist/static/assets/systemverilog-Bs9z6M-B.js +1 -0
  764. package/dist/static/assets/tcl-Dm6ycUr_.js +1 -0
  765. package/dist/static/assets/ts.worker-DGHjMaqB.js +67731 -0
  766. package/dist/static/assets/tsMode-DLSApW05.js +11 -0
  767. package/dist/static/assets/twig-Csy3S7wG.js +1 -0
  768. package/dist/static/assets/typescript-qlBdudA6.js +1 -0
  769. package/dist/static/assets/typespec-Btyra-wh.js +1 -0
  770. package/dist/static/assets/vb-Db0cS2oM.js +1 -0
  771. package/dist/static/assets/wgsl-BTesnYfV.js +298 -0
  772. package/dist/static/assets/xml-DMdTu6Mm.js +1 -0
  773. package/dist/static/assets/yaml-C9JqXvOt.js +1 -0
  774. package/dist/static/assets/yaml.worker.entry-BdO9k22I.js +419 -0
  775. package/dist/static/index.html +2 -2
  776. package/dist/static/locales/en/translation.json +492 -95
  777. package/dist/static/locales/fr/translation.json +491 -97
  778. package/dist/tsconfig.build.tsbuildinfo +1 -1
  779. package/dist/types/event-emitter.d.ts +77 -56
  780. package/dist/types/express-session.d.ts +3 -5
  781. package/dist/user/controllers/auth.controller.d.ts +8 -13
  782. package/dist/user/controllers/auth.controller.js +19 -75
  783. package/dist/user/controllers/auth.controller.js.map +1 -1
  784. package/dist/user/controllers/credential.controller.d.ts +19 -0
  785. package/dist/user/controllers/credential.controller.js +114 -0
  786. package/dist/user/controllers/credential.controller.js.map +1 -0
  787. package/dist/user/controllers/model.controller.d.ts +2 -3
  788. package/dist/user/controllers/model.controller.js +3 -5
  789. package/dist/user/controllers/model.controller.js.map +1 -1
  790. package/dist/user/controllers/permission.controller.d.ts +4 -4
  791. package/dist/user/controllers/permission.controller.js +8 -15
  792. package/dist/user/controllers/permission.controller.js.map +1 -1
  793. package/dist/user/controllers/role.controller.d.ts +5 -5
  794. package/dist/user/controllers/role.controller.js +14 -24
  795. package/dist/user/controllers/role.controller.js.map +1 -1
  796. package/dist/user/controllers/user.controller.d.ts +7 -11
  797. package/dist/user/controllers/user.controller.js +44 -55
  798. package/dist/user/controllers/user.controller.js.map +1 -1
  799. package/dist/user/dto/assigned-profile.dto.d.ts +25 -0
  800. package/dist/user/dto/assigned-profile.dto.js +97 -0
  801. package/dist/user/dto/assigned-profile.dto.js.map +1 -0
  802. package/dist/user/dto/credential.dto.d.ts +27 -0
  803. package/dist/user/dto/credential.dto.js +84 -0
  804. package/dist/user/dto/credential.dto.js.map +1 -0
  805. package/dist/user/dto/model.dto.d.ts +5 -6
  806. package/dist/user/dto/model.dto.js.map +1 -1
  807. package/dist/user/dto/permission.dto.d.ts +5 -6
  808. package/dist/user/dto/permission.dto.js.map +1 -1
  809. package/dist/user/dto/role.dto.d.ts +5 -6
  810. package/dist/user/dto/role.dto.js.map +1 -1
  811. package/dist/user/dto/user-profile.dto.d.ts +15 -0
  812. package/dist/user/dto/user-profile.dto.js +58 -0
  813. package/dist/user/dto/user-profile.dto.js.map +1 -0
  814. package/dist/user/dto/user.dto.d.ts +28 -19
  815. package/dist/user/dto/user.dto.js +64 -38
  816. package/dist/user/dto/user.dto.js.map +1 -1
  817. package/dist/user/entities/credential.entity.d.ts +11 -0
  818. package/dist/user/entities/credential.entity.js +51 -0
  819. package/dist/user/entities/credential.entity.js.map +1 -0
  820. package/dist/user/entities/model.entity.d.ts +4 -1
  821. package/dist/user/entities/model.entity.js +6 -0
  822. package/dist/user/entities/model.entity.js.map +1 -1
  823. package/dist/user/entities/permission.entity.d.ts +4 -1
  824. package/dist/user/entities/permission.entity.js +6 -0
  825. package/dist/user/entities/permission.entity.js.map +1 -1
  826. package/dist/user/entities/role.entity.d.ts +4 -1
  827. package/dist/user/entities/role.entity.js +6 -0
  828. package/dist/user/entities/role.entity.js.map +1 -1
  829. package/dist/user/entities/user-profile.entity.d.ts +20 -0
  830. package/dist/user/entities/user-profile.entity.js +78 -0
  831. package/dist/user/entities/user-profile.entity.js.map +1 -0
  832. package/dist/user/entities/user.entity.d.ts +5 -9
  833. package/dist/user/entities/user.entity.js +13 -36
  834. package/dist/user/entities/user.entity.js.map +1 -1
  835. package/dist/user/guards/ability.guard.js +1 -1
  836. package/dist/user/guards/ability.guard.js.map +1 -1
  837. package/dist/user/index.d.ts +5 -4
  838. package/dist/user/index.js +5 -4
  839. package/dist/user/index.js.map +1 -1
  840. package/dist/user/passport/auth-strategy/local.strategy.js.map +1 -1
  841. package/dist/user/passport/session.serializer.js +2 -2
  842. package/dist/user/passport/session.serializer.js.map +1 -1
  843. package/dist/user/repositories/credential.repository.d.ts +7 -0
  844. package/dist/user/repositories/credential.repository.js +38 -0
  845. package/dist/user/repositories/credential.repository.js.map +1 -0
  846. package/dist/user/repositories/model.repository.d.ts +1 -2
  847. package/dist/user/repositories/model.repository.js +1 -2
  848. package/dist/user/repositories/model.repository.js.map +1 -1
  849. package/dist/user/repositories/permission.repository.d.ts +1 -2
  850. package/dist/user/repositories/permission.repository.js +1 -5
  851. package/dist/user/repositories/permission.repository.js.map +1 -1
  852. package/dist/user/repositories/role.repository.d.ts +1 -2
  853. package/dist/user/repositories/role.repository.js +1 -5
  854. package/dist/user/repositories/role.repository.js.map +1 -1
  855. package/dist/user/repositories/user.repository.d.ts +3 -2
  856. package/dist/user/repositories/user.repository.js +19 -5
  857. package/dist/user/repositories/user.repository.js.map +1 -1
  858. package/dist/user/seeds/model.seed-model.js +41 -41
  859. package/dist/user/seeds/model.seed-model.js.map +1 -1
  860. package/dist/user/seeds/model.seed.d.ts +1 -2
  861. package/dist/user/seeds/model.seed.js.map +1 -1
  862. package/dist/user/seeds/permission.seed.d.ts +1 -2
  863. package/dist/user/seeds/permission.seed.js.map +1 -1
  864. package/dist/user/seeds/role.seed.d.ts +1 -2
  865. package/dist/user/seeds/role.seed.js.map +1 -1
  866. package/dist/user/seeds/user.seed-model.js +20 -5
  867. package/dist/user/seeds/user.seed-model.js.map +1 -1
  868. package/dist/user/seeds/user.seed.d.ts +1 -2
  869. package/dist/user/seeds/user.seed.js.map +1 -1
  870. package/dist/user/services/auth.service.js +1 -2
  871. package/dist/user/services/auth.service.js.map +1 -1
  872. package/dist/user/services/credential.service.d.ts +8 -0
  873. package/dist/user/services/credential.service.js +30 -0
  874. package/dist/user/services/credential.service.js.map +1 -0
  875. package/dist/user/services/model.service.d.ts +1 -2
  876. package/dist/user/services/model.service.js.map +1 -1
  877. package/dist/user/services/passwordReset.service.js +1 -1
  878. package/dist/user/services/passwordReset.service.js.map +1 -1
  879. package/dist/user/services/permission.service.d.ts +2 -2
  880. package/dist/user/services/permission.service.js.map +1 -1
  881. package/dist/user/services/role.service.d.ts +1 -2
  882. package/dist/user/services/role.service.js.map +1 -1
  883. package/dist/user/services/user.service.d.ts +2 -2
  884. package/dist/user/services/user.service.js +3 -0
  885. package/dist/user/services/user.service.js.map +1 -1
  886. package/dist/user/services/validate-account.service.d.ts +1 -1
  887. package/dist/user/services/validate-account.service.js +2 -3
  888. package/dist/user/services/validate-account.service.js.map +1 -1
  889. package/dist/user/types/model.type.d.ts +1 -1
  890. package/dist/user/user.module.js +9 -7
  891. package/dist/user/user.module.js.map +1 -1
  892. package/dist/utils/constants/cache.d.ts +0 -1
  893. package/dist/utils/constants/cache.js +1 -2
  894. package/dist/utils/constants/cache.js.map +1 -1
  895. package/dist/utils/constants/session-middleware.js +1 -1
  896. package/dist/utils/constants/session-middleware.js.map +1 -1
  897. package/dist/utils/decorators/uuid-param.decorator.d.ts +1 -0
  898. package/dist/utils/decorators/uuid-param.decorator.js +12 -0
  899. package/dist/utils/decorators/uuid-param.decorator.js.map +1 -0
  900. package/dist/utils/decorators/validate.decorator.js +4 -4
  901. package/dist/utils/decorators/validate.decorator.js.map +1 -1
  902. package/dist/utils/generics/base-orm.controller.d.ts +11 -6
  903. package/dist/utils/generics/base-orm.controller.js +51 -4
  904. package/dist/utils/generics/base-orm.controller.js.map +1 -1
  905. package/dist/utils/generics/base-orm.repository.d.ts +23 -27
  906. package/dist/utils/generics/base-orm.repository.js +149 -59
  907. package/dist/utils/generics/base-orm.repository.js.map +1 -1
  908. package/dist/utils/generics/base-orm.seeder.d.ts +6 -6
  909. package/dist/utils/generics/base-orm.seeder.js.map +1 -1
  910. package/dist/utils/generics/base-orm.service.d.ts +20 -17
  911. package/dist/utils/generics/base-orm.service.js +15 -0
  912. package/dist/utils/generics/base-orm.service.js.map +1 -1
  913. package/dist/utils/generics/extension.d.ts +4 -8
  914. package/dist/utils/generics/extension.js +15 -21
  915. package/dist/utils/generics/extension.js.map +1 -1
  916. package/dist/utils/helpers/avatar.d.ts +2 -2
  917. package/dist/utils/helpers/avatar.js +5 -5
  918. package/dist/utils/helpers/avatar.js.map +1 -1
  919. package/dist/utils/helpers/clone.d.ts +1 -0
  920. package/dist/utils/helpers/clone.js +15 -0
  921. package/dist/utils/helpers/clone.js.map +1 -0
  922. package/dist/utils/helpers/flatten.js +2 -4
  923. package/dist/utils/helpers/flatten.js.map +1 -1
  924. package/dist/utils/helpers/freeze.d.ts +1 -0
  925. package/dist/utils/helpers/freeze.js +15 -0
  926. package/dist/utils/helpers/freeze.js.map +1 -0
  927. package/dist/utils/helpers/misc.d.ts +0 -4
  928. package/dist/utils/helpers/misc.js +1 -24
  929. package/dist/utils/helpers/misc.js.map +1 -1
  930. package/dist/utils/helpers/object.d.ts +3 -0
  931. package/dist/utils/helpers/object.js +24 -0
  932. package/dist/utils/helpers/object.js.map +1 -0
  933. package/dist/utils/helpers/zod.d.ts +13 -0
  934. package/dist/utils/helpers/zod.js +34 -0
  935. package/dist/utils/helpers/zod.js.map +1 -0
  936. package/dist/utils/index.d.ts +4 -5
  937. package/dist/utils/index.js +4 -5
  938. package/dist/utils/index.js.map +1 -1
  939. package/dist/utils/pipes/zod.pipe.d.ts +2 -2
  940. package/dist/utils/pipes/zod.pipe.js +2 -1
  941. package/dist/utils/pipes/zod.pipe.js.map +1 -1
  942. package/dist/utils/test/constants.d.ts +1 -1
  943. package/dist/utils/test/constants.js +6 -1
  944. package/dist/utils/test/constants.js.map +1 -1
  945. package/dist/utils/test/dummy/controllers/dummy.controller.d.ts +7 -0
  946. package/dist/utils/test/dummy/controllers/dummy.controller.js +27 -0
  947. package/dist/utils/test/dummy/controllers/dummy.controller.js.map +1 -0
  948. package/dist/utils/test/dummy/dto/dummy.dto.d.ts +7 -8
  949. package/dist/utils/test/dummy/dto/dummy.dto.js.map +1 -1
  950. package/dist/utils/test/dummy/dummy.action.d.ts +8 -0
  951. package/dist/utils/test/dummy/dummy.action.js +27 -0
  952. package/dist/utils/test/dummy/dummy.action.js.map +1 -0
  953. package/dist/utils/test/dummy/dummy.module.js +2 -0
  954. package/dist/utils/test/dummy/dummy.module.js.map +1 -1
  955. package/dist/utils/test/dummy/entities/dummy.entity.d.ts +4 -1
  956. package/dist/utils/test/dummy/entities/dummy.entity.js +6 -0
  957. package/dist/utils/test/dummy/entities/dummy.entity.js.map +1 -1
  958. package/dist/utils/test/dummy/repositories/dummy.repository.d.ts +1 -2
  959. package/dist/utils/test/dummy/repositories/dummy.repository.js +1 -5
  960. package/dist/utils/test/dummy/repositories/dummy.repository.js.map +1 -1
  961. package/dist/utils/test/dummy/services/dummy.service.d.ts +1 -2
  962. package/dist/utils/test/dummy/services/dummy.service.js.map +1 -1
  963. package/dist/utils/test/fixtures/attachment.js +13 -5
  964. package/dist/utils/test/fixtures/attachment.js.map +1 -1
  965. package/dist/utils/test/fixtures/content.d.ts +1 -1
  966. package/dist/utils/test/fixtures/content.js +9 -9
  967. package/dist/utils/test/fixtures/content.js.map +1 -1
  968. package/dist/utils/test/fixtures/contenttype.d.ts +1 -1
  969. package/dist/utils/test/fixtures/contenttype.js +29 -83
  970. package/dist/utils/test/fixtures/contenttype.js.map +1 -1
  971. package/dist/utils/test/fixtures/label-group.d.ts +1 -1
  972. package/dist/utils/test/fixtures/label.d.ts +1 -1
  973. package/dist/utils/test/fixtures/language.js +0 -1
  974. package/dist/utils/test/fixtures/language.js.map +1 -1
  975. package/dist/utils/test/fixtures/mcp-server.d.ts +23 -0
  976. package/dist/utils/test/fixtures/mcp-server.js +44 -0
  977. package/dist/utils/test/fixtures/mcp-server.js.map +1 -0
  978. package/dist/utils/test/fixtures/memory-definition.d.ts +15 -0
  979. package/dist/utils/test/fixtures/memory-definition.js +65 -0
  980. package/dist/utils/test/fixtures/memory-definition.js.map +1 -0
  981. package/dist/utils/test/fixtures/memory-record.d.ts +19 -0
  982. package/dist/utils/test/fixtures/memory-record.js +148 -0
  983. package/dist/utils/test/fixtures/memory-record.js.map +1 -0
  984. package/dist/utils/test/fixtures/menu.js +0 -1
  985. package/dist/utils/test/fixtures/menu.js.map +1 -1
  986. package/dist/utils/test/fixtures/message.d.ts +1 -1
  987. package/dist/utils/test/fixtures/message.js +28 -0
  988. package/dist/utils/test/fixtures/message.js.map +1 -1
  989. package/dist/utils/test/fixtures/setting.js +10 -49
  990. package/dist/utils/test/fixtures/setting.js.map +1 -1
  991. package/dist/utils/test/fixtures/stats.d.ts +4 -0
  992. package/dist/utils/test/fixtures/stats.js +55 -0
  993. package/dist/utils/test/fixtures/stats.js.map +1 -0
  994. package/dist/utils/test/fixtures/subscriber.d.ts +2 -2
  995. package/dist/utils/test/fixtures/subscriber.js +21 -21
  996. package/dist/utils/test/fixtures/subscriber.js.map +1 -1
  997. package/dist/utils/test/fixtures/user.js +16 -3
  998. package/dist/utils/test/fixtures/user.js.map +1 -1
  999. package/dist/utils/test/fixtures/workflow-run.d.ts +21 -0
  1000. package/dist/utils/test/fixtures/workflow-run.js +185 -0
  1001. package/dist/utils/test/fixtures/workflow-run.js.map +1 -0
  1002. package/dist/utils/test/fixtures/workflow.d.ts +14 -0
  1003. package/dist/utils/test/fixtures/workflow.js +125 -0
  1004. package/dist/utils/test/fixtures/workflow.js.map +1 -0
  1005. package/dist/utils/test/mocks/subscriber.js +4 -5
  1006. package/dist/utils/test/mocks/subscriber.js.map +1 -1
  1007. package/dist/utils/test/modules/i18n-testing.module.d.ts +2 -0
  1008. package/dist/utils/test/modules/i18n-testing.module.js +22 -0
  1009. package/dist/utils/test/modules/i18n-testing.module.js.map +1 -0
  1010. package/dist/utils/test/postman-collections/hexabot_REST.postman_collection.json +7 -364
  1011. package/dist/utils/test/providers/i18n-service.provider.d.ts +9 -0
  1012. package/dist/utils/test/providers/i18n-service.provider.js +21 -0
  1013. package/dist/utils/test/providers/i18n-service.provider.js.map +1 -0
  1014. package/dist/utils/test/providers/mailer-service.provider.d.ts +10 -0
  1015. package/dist/utils/test/providers/mailer-service.provider.js +12 -0
  1016. package/dist/utils/test/providers/mailer-service.provider.js.map +1 -0
  1017. package/dist/utils/test/providers/setting-service.provider.d.ts +9 -0
  1018. package/dist/utils/test/providers/setting-service.provider.js +28 -0
  1019. package/dist/utils/test/providers/setting-service.provider.js.map +1 -0
  1020. package/dist/utils/test/utils.js +137 -2
  1021. package/dist/utils/test/utils.js.map +1 -1
  1022. package/dist/utils/types/dto.types.d.ts +32 -14
  1023. package/dist/utils/types/dto.types.js +10 -10
  1024. package/dist/utils/types/dto.types.js.map +1 -1
  1025. package/dist/utils/types/entity-event.types.d.ts +55 -0
  1026. package/dist/utils/types/entity-event.types.js +3 -0
  1027. package/dist/utils/types/entity-event.types.js.map +1 -0
  1028. package/dist/utils/types/extension.d.ts +1 -2
  1029. package/dist/websocket/services/socket-event-dispatcher.service.js +4 -0
  1030. package/dist/websocket/services/socket-event-dispatcher.service.js.map +1 -1
  1031. package/dist/websocket/types.d.ts +2 -1
  1032. package/dist/websocket/types.js +1 -0
  1033. package/dist/websocket/types.js.map +1 -1
  1034. package/dist/websocket/utils/gateway-options.js +1 -0
  1035. package/dist/websocket/utils/gateway-options.js.map +1 -1
  1036. package/dist/websocket/websocket.gateway.d.ts +21 -11
  1037. package/dist/websocket/websocket.gateway.js +83 -88
  1038. package/dist/websocket/websocket.gateway.js.map +1 -1
  1039. package/dist/websocket/websocket.module.js +2 -0
  1040. package/dist/websocket/websocket.module.js.map +1 -1
  1041. package/dist/workflow/contexts/conversational-workflow.context.d.ts +5 -0
  1042. package/dist/workflow/contexts/conversational-workflow.context.js +18 -0
  1043. package/dist/workflow/contexts/conversational-workflow.context.js.map +1 -0
  1044. package/dist/workflow/contexts/manual-workflow.context.d.ts +5 -0
  1045. package/dist/workflow/contexts/manual-workflow.context.js +18 -0
  1046. package/dist/workflow/contexts/manual-workflow.context.js.map +1 -0
  1047. package/dist/workflow/contexts/scheduled-workflow.context.d.ts +5 -0
  1048. package/dist/workflow/contexts/scheduled-workflow.context.js +18 -0
  1049. package/dist/workflow/contexts/scheduled-workflow.context.js.map +1 -0
  1050. package/dist/workflow/contexts/workflow-context-factory.d.ts +14 -0
  1051. package/dist/workflow/contexts/workflow-context-factory.js +64 -0
  1052. package/dist/workflow/contexts/workflow-context-factory.js.map +1 -0
  1053. package/dist/workflow/contexts/workflow-runtime.context.d.ts +58 -0
  1054. package/dist/workflow/contexts/workflow-runtime.context.js +173 -0
  1055. package/dist/workflow/contexts/workflow-runtime.context.js.map +1 -0
  1056. package/dist/workflow/controllers/mcp-server.controller.d.ts +22 -0
  1057. package/dist/workflow/controllers/mcp-server.controller.js +139 -0
  1058. package/dist/workflow/controllers/mcp-server.controller.js.map +1 -0
  1059. package/dist/workflow/controllers/memory-definition.controller.d.ts +19 -0
  1060. package/dist/workflow/controllers/memory-definition.controller.js +121 -0
  1061. package/dist/workflow/controllers/memory-definition.controller.js.map +1 -0
  1062. package/dist/workflow/controllers/workflow-run.controller.d.ts +14 -0
  1063. package/dist/workflow/controllers/workflow-run.controller.js +94 -0
  1064. package/dist/workflow/controllers/workflow-run.controller.js.map +1 -0
  1065. package/dist/workflow/controllers/workflow-version.controller.d.ts +19 -0
  1066. package/dist/workflow/controllers/workflow-version.controller.js +156 -0
  1067. package/dist/workflow/controllers/workflow-version.controller.js.map +1 -0
  1068. package/dist/workflow/controllers/workflow.controller.d.ts +54 -0
  1069. package/dist/workflow/controllers/workflow.controller.js +248 -0
  1070. package/dist/workflow/controllers/workflow.controller.js.map +1 -0
  1071. package/dist/workflow/decorators/is-workflow-definition.decorator.d.ts +2 -0
  1072. package/dist/workflow/decorators/is-workflow-definition.decorator.js +41 -0
  1073. package/dist/workflow/decorators/is-workflow-definition.decorator.js.map +1 -0
  1074. package/dist/workflow/decorators/is-workflow-yaml.decorator.d.ts +2 -0
  1075. package/dist/workflow/decorators/is-workflow-yaml.decorator.js +40 -0
  1076. package/dist/workflow/decorators/is-workflow-yaml.decorator.js.map +1 -0
  1077. package/dist/workflow/defaults/default-workflow.d.ts +4 -0
  1078. package/dist/workflow/defaults/default-workflow.js +23 -0
  1079. package/dist/workflow/defaults/default-workflow.js.map +1 -0
  1080. package/dist/workflow/dto/mcp-server.dto.d.ts +39 -0
  1081. package/dist/workflow/dto/mcp-server.dto.js +174 -0
  1082. package/dist/workflow/dto/mcp-server.dto.js.map +1 -0
  1083. package/dist/workflow/dto/memory-definition.dto.d.ts +32 -0
  1084. package/dist/workflow/dto/memory-definition.dto.js +110 -0
  1085. package/dist/workflow/dto/memory-definition.dto.js.map +1 -0
  1086. package/dist/workflow/dto/memory-record.dto.d.ts +48 -0
  1087. package/dist/workflow/dto/memory-record.dto.js +184 -0
  1088. package/dist/workflow/dto/memory-record.dto.js.map +1 -0
  1089. package/dist/workflow/dto/workflow-run.dto.d.ts +78 -0
  1090. package/dist/workflow/dto/workflow-run.dto.js +342 -0
  1091. package/dist/workflow/dto/workflow-run.dto.js.map +1 -0
  1092. package/dist/workflow/dto/workflow-version.dto.d.ts +45 -0
  1093. package/dist/workflow/dto/workflow-version.dto.js +173 -0
  1094. package/dist/workflow/dto/workflow-version.dto.js.map +1 -0
  1095. package/dist/workflow/dto/workflow.dto.d.ts +57 -0
  1096. package/dist/workflow/dto/workflow.dto.js +256 -0
  1097. package/dist/workflow/dto/workflow.dto.js.map +1 -0
  1098. package/dist/workflow/entities/mcp-server.entity.d.ts +25 -0
  1099. package/dist/workflow/entities/mcp-server.entity.js +155 -0
  1100. package/dist/workflow/entities/mcp-server.entity.js.map +1 -0
  1101. package/dist/workflow/entities/memory-definition.entity.d.ts +13 -0
  1102. package/dist/workflow/entities/memory-definition.entity.js +52 -0
  1103. package/dist/workflow/entities/memory-definition.entity.js.map +1 -0
  1104. package/dist/workflow/entities/memory-record.entity.d.ts +26 -0
  1105. package/dist/workflow/entities/memory-record.entity.js +114 -0
  1106. package/dist/workflow/entities/memory-record.entity.js.map +1 -0
  1107. package/dist/workflow/entities/workflow-run.entity.d.ts +40 -0
  1108. package/dist/workflow/entities/workflow-run.entity.js +190 -0
  1109. package/dist/workflow/entities/workflow-run.entity.js.map +1 -0
  1110. package/dist/workflow/entities/workflow-version.entity.d.ts +24 -0
  1111. package/dist/workflow/entities/workflow-version.entity.js +133 -0
  1112. package/dist/workflow/entities/workflow-version.entity.js.map +1 -0
  1113. package/dist/workflow/entities/workflow.entity.d.ts +33 -0
  1114. package/dist/workflow/entities/workflow.entity.js +228 -0
  1115. package/dist/workflow/entities/workflow.entity.js.map +1 -0
  1116. package/dist/workflow/index.d.ts +35 -0
  1117. package/dist/workflow/index.js +52 -0
  1118. package/dist/workflow/index.js.map +1 -0
  1119. package/dist/workflow/lib/trigger-event-wrapper.d.ts +40 -0
  1120. package/dist/workflow/lib/trigger-event-wrapper.js +85 -0
  1121. package/dist/workflow/lib/trigger-event-wrapper.js.map +1 -0
  1122. package/dist/workflow/lib/workflow-definition.d.ts +2 -0
  1123. package/dist/workflow/lib/workflow-definition.js +16 -0
  1124. package/dist/workflow/lib/workflow-definition.js.map +1 -0
  1125. package/dist/workflow/repositories/mcp-server.repository.d.ts +6 -0
  1126. package/dist/workflow/repositories/mcp-server.repository.js +32 -0
  1127. package/dist/workflow/repositories/mcp-server.repository.js.map +1 -0
  1128. package/dist/workflow/repositories/memory-definition.repository.d.ts +6 -0
  1129. package/dist/workflow/repositories/memory-definition.repository.js +32 -0
  1130. package/dist/workflow/repositories/memory-definition.repository.js.map +1 -0
  1131. package/dist/workflow/repositories/memory-record.repository.d.ts +6 -0
  1132. package/dist/workflow/repositories/memory-record.repository.js +32 -0
  1133. package/dist/workflow/repositories/memory-record.repository.js.map +1 -0
  1134. package/dist/workflow/repositories/workflow-run.repository.d.ts +6 -0
  1135. package/dist/workflow/repositories/workflow-run.repository.js +32 -0
  1136. package/dist/workflow/repositories/workflow-run.repository.js.map +1 -0
  1137. package/dist/workflow/repositories/workflow-version.repository.d.ts +6 -0
  1138. package/dist/workflow/repositories/workflow-version.repository.js +32 -0
  1139. package/dist/workflow/repositories/workflow-version.repository.js.map +1 -0
  1140. package/dist/workflow/repositories/workflow.repository.d.ts +6 -0
  1141. package/dist/workflow/repositories/workflow.repository.js +32 -0
  1142. package/dist/workflow/repositories/workflow.repository.js.map +1 -0
  1143. package/dist/workflow/schemas/workflow-input-schemas.d.ts +65 -0
  1144. package/dist/workflow/schemas/workflow-input-schemas.js +52 -0
  1145. package/dist/workflow/schemas/workflow-input-schemas.js.map +1 -0
  1146. package/dist/workflow/schemas/workflow-schemas.d.ts +2 -0
  1147. package/dist/workflow/schemas/workflow-schemas.js +50 -0
  1148. package/dist/workflow/schemas/workflow-schemas.js.map +1 -0
  1149. package/dist/workflow/seeds/memory-definition.seed-model.d.ts +2 -0
  1150. package/dist/workflow/seeds/memory-definition.seed-model.js +53 -0
  1151. package/dist/workflow/seeds/memory-definition.seed-model.js.map +1 -0
  1152. package/dist/workflow/seeds/memory-definition.seed.d.ts +6 -0
  1153. package/dist/workflow/seeds/memory-definition.seed.js +26 -0
  1154. package/dist/workflow/seeds/memory-definition.seed.js.map +1 -0
  1155. package/dist/workflow/seeds/workflow.seed-model.d.ts +2 -0
  1156. package/dist/workflow/seeds/workflow.seed-model.js +16 -0
  1157. package/dist/workflow/seeds/workflow.seed-model.js.map +1 -0
  1158. package/dist/workflow/seeds/workflow.seed.d.ts +10 -0
  1159. package/dist/workflow/seeds/workflow.seed.js +38 -0
  1160. package/dist/workflow/seeds/workflow.seed.js.map +1 -0
  1161. package/dist/workflow/services/agentic.service.d.ts +31 -0
  1162. package/dist/workflow/services/agentic.service.js +374 -0
  1163. package/dist/workflow/services/agentic.service.js.map +1 -0
  1164. package/dist/workflow/services/mcp-client-pool.service.d.ts +75 -0
  1165. package/dist/workflow/services/mcp-client-pool.service.js +344 -0
  1166. package/dist/workflow/services/mcp-client-pool.service.js.map +1 -0
  1167. package/dist/workflow/services/mcp-server.service.d.ts +11 -0
  1168. package/dist/workflow/services/mcp-server.service.js +37 -0
  1169. package/dist/workflow/services/mcp-server.service.js.map +1 -0
  1170. package/dist/workflow/services/memory-definition.service.d.ts +10 -0
  1171. package/dist/workflow/services/memory-definition.service.js +56 -0
  1172. package/dist/workflow/services/memory-definition.service.js.map +1 -0
  1173. package/dist/workflow/services/memory-record.service.d.ts +19 -0
  1174. package/dist/workflow/services/memory-record.service.js +126 -0
  1175. package/dist/workflow/services/memory-record.service.js.map +1 -0
  1176. package/dist/workflow/services/memory.service.d.ts +11 -0
  1177. package/dist/workflow/services/memory.service.js +43 -0
  1178. package/dist/workflow/services/memory.service.js.map +1 -0
  1179. package/dist/workflow/services/stdio-stderr-capture.transport.d.ts +13 -0
  1180. package/dist/workflow/services/stdio-stderr-capture.transport.js +61 -0
  1181. package/dist/workflow/services/stdio-stderr-capture.transport.js.map +1 -0
  1182. package/dist/workflow/services/workflow-run.service.d.ts +34 -0
  1183. package/dist/workflow/services/workflow-run.service.js +74 -0
  1184. package/dist/workflow/services/workflow-run.service.js.map +1 -0
  1185. package/dist/workflow/services/workflow-scheduler.service.d.ts +26 -0
  1186. package/dist/workflow/services/workflow-scheduler.service.js +170 -0
  1187. package/dist/workflow/services/workflow-scheduler.service.js.map +1 -0
  1188. package/dist/workflow/services/workflow-version.service.d.ts +16 -0
  1189. package/dist/workflow/services/workflow-version.service.js +69 -0
  1190. package/dist/workflow/services/workflow-version.service.js.map +1 -0
  1191. package/dist/workflow/services/workflow.service.d.ts +31 -0
  1192. package/dist/workflow/services/workflow.service.js +205 -0
  1193. package/dist/workflow/services/workflow.service.js.map +1 -0
  1194. package/dist/workflow/types.d.ts +83 -0
  1195. package/dist/workflow/types.js +34 -0
  1196. package/dist/workflow/types.js.map +1 -0
  1197. package/dist/workflow/utils/memory-store.d.ts +38 -0
  1198. package/dist/workflow/utils/memory-store.js +200 -0
  1199. package/dist/workflow/utils/memory-store.js.map +1 -0
  1200. package/dist/workflow/utils/schema-instance.d.ts +29 -0
  1201. package/dist/workflow/utils/schema-instance.js +148 -0
  1202. package/dist/workflow/utils/schema-instance.js.map +1 -0
  1203. package/dist/workflow/utils/workflow-run-duration.d.ts +9 -0
  1204. package/dist/workflow/utils/workflow-run-duration.js +28 -0
  1205. package/dist/workflow/utils/workflow-run-duration.js.map +1 -0
  1206. package/dist/workflow/workflow.module.d.ts +2 -0
  1207. package/dist/workflow/workflow.module.js +121 -0
  1208. package/dist/workflow/workflow.module.js.map +1 -0
  1209. package/package.json +25 -11
  1210. package/src/actions/actions.module.ts +25 -0
  1211. package/src/actions/actions.service.ts +102 -0
  1212. package/src/actions/base-action.ts +77 -0
  1213. package/src/actions/create-action.ts +56 -0
  1214. package/src/actions/index.ts +15 -0
  1215. package/src/actions/types.ts +63 -0
  1216. package/src/analytics/analytics.module.ts +14 -7
  1217. package/src/analytics/controllers/stats.controller.ts +100 -0
  1218. package/src/analytics/dto/stats.dto.ts +120 -0
  1219. package/src/analytics/entities/stats.entity.ts +103 -0
  1220. package/src/analytics/enums/stats-type.enum.ts +15 -0
  1221. package/src/analytics/index.ts +6 -6
  1222. package/src/analytics/repositories/stats.repository.ts +54 -0
  1223. package/src/analytics/services/stats.service.ts +176 -0
  1224. package/src/analytics/utilities/a-month-ago.ts +20 -0
  1225. package/src/app.controller.ts +2 -1
  1226. package/src/app.module.ts +16 -4
  1227. package/src/app.service.ts +95 -2
  1228. package/src/attachment/controllers/attachment.controller.ts +22 -24
  1229. package/src/attachment/dto/attachment.dto.ts +18 -22
  1230. package/src/attachment/entities/attachment.entity.ts +32 -5
  1231. package/src/attachment/guards/attachment-ability.guard.ts +2 -14
  1232. package/src/attachment/mocks/attachment.mock.ts +5 -9
  1233. package/src/attachment/repositories/attachment.repository.ts +2 -16
  1234. package/src/attachment/services/attachment.service.ts +1 -7
  1235. package/src/attachment/types/index.ts +0 -1
  1236. package/src/bindings/base-binding-kind.ts +65 -0
  1237. package/src/bindings/bindings.module.ts +25 -0
  1238. package/src/bindings/create-binding-kind.ts +35 -0
  1239. package/src/bindings/index.ts +11 -0
  1240. package/src/bindings/runtime-bindings.service.ts +116 -0
  1241. package/src/bindings/runtime-bindings.ts +79 -0
  1242. package/src/bootstrap.ts +0 -2
  1243. package/src/channel/channel.module.ts +14 -16
  1244. package/src/channel/channel.service.ts +61 -54
  1245. package/src/channel/index.ts +7 -3
  1246. package/src/channel/lib/Handler.ts +58 -249
  1247. package/src/channel/lib/__test__/common.mock.ts +1 -5
  1248. package/src/channel/lib/__test__/subscriber.mock.ts +4 -5
  1249. package/src/channel/lib/inbound-events/channel-inbound-event-context.ts +67 -0
  1250. package/src/channel/lib/inbound-events/channel-inbound-event-decoder.ts +21 -0
  1251. package/src/channel/lib/inbound-events/channel-inbound-event.ts +135 -0
  1252. package/src/channel/lib/inbound-events/index.ts +15 -0
  1253. package/src/channel/lib/inbound-events/message-inbound-event.ts +90 -0
  1254. package/src/channel/lib/inbound-events/synthetic-message-inbound-event.ts +75 -0
  1255. package/src/channel/lib/outbound/channel-outbound-encoder.ts +140 -0
  1256. package/src/channel/lib/outbound/index.ts +7 -0
  1257. package/src/channel/services/channel-attachment.service.ts +134 -0
  1258. package/src/channel/services/channel-download.service.ts +30 -0
  1259. package/src/channel/types.ts +3 -5
  1260. package/src/channel/webhook.controller.ts +59 -10
  1261. package/src/chat/chat.module.ts +15 -42
  1262. package/src/chat/controllers/label-group.controller.ts +16 -58
  1263. package/src/chat/controllers/label.controller.ts +16 -56
  1264. package/src/chat/controllers/message.controller.ts +73 -52
  1265. package/src/chat/controllers/subscriber.controller.ts +38 -46
  1266. package/src/chat/controllers/thread.controller.ts +93 -0
  1267. package/src/chat/dto/label-group.dto.ts +11 -16
  1268. package/src/chat/dto/label.dto.ts +11 -16
  1269. package/src/chat/dto/message.dto.ts +24 -16
  1270. package/src/chat/dto/subscriber.dto.ts +25 -59
  1271. package/src/chat/dto/thread.dto.ts +116 -0
  1272. package/src/chat/entities/label-group.entity.ts +11 -1
  1273. package/src/chat/entities/label.entity.ts +7 -10
  1274. package/src/chat/entities/message.entity.ts +18 -1
  1275. package/src/chat/entities/subscriber.entity.ts +26 -36
  1276. package/src/chat/entities/thread.entity.ts +57 -0
  1277. package/src/chat/helpers/README.md +7 -18
  1278. package/src/chat/helpers/envelope-builder.ts +1 -3
  1279. package/src/chat/helpers/envelope-factory.ts +8 -80
  1280. package/src/chat/index.ts +7 -59
  1281. package/src/chat/repositories/label-group.repository.ts +2 -15
  1282. package/src/chat/repositories/label.repository.ts +2 -15
  1283. package/src/chat/repositories/message.repository.ts +84 -67
  1284. package/src/chat/repositories/subscriber.repository.ts +85 -93
  1285. package/src/chat/repositories/thread.repository.ts +84 -0
  1286. package/src/chat/services/chat.service.ts +86 -141
  1287. package/src/chat/services/label-group.service.ts +1 -9
  1288. package/src/chat/services/label.service.ts +1 -6
  1289. package/src/chat/services/message.service.ts +30 -63
  1290. package/src/chat/services/subscriber.service.ts +232 -56
  1291. package/src/chat/services/thread.service.ts +236 -0
  1292. package/src/chat/types/attachment.ts +2 -2
  1293. package/src/chat/types/button.ts +63 -20
  1294. package/src/chat/types/channel.ts +5 -7
  1295. package/src/chat/types/message.ts +6 -117
  1296. package/src/chat/types/options.ts +98 -14
  1297. package/src/chat/types/quick-reply.ts +8 -10
  1298. package/src/cms/cms.module.ts +8 -0
  1299. package/src/cms/controllers/content-type.controller.ts +9 -24
  1300. package/src/cms/controllers/content.controller.ts +66 -33
  1301. package/src/cms/controllers/menu.controller.ts +13 -45
  1302. package/src/cms/dto/content.dto.ts +15 -18
  1303. package/src/cms/dto/contentType.dto.ts +23 -40
  1304. package/src/cms/dto/menu.dto.ts +12 -15
  1305. package/src/cms/entities/content-type.entity.ts +14 -41
  1306. package/src/cms/entities/content.entity.ts +34 -21
  1307. package/src/cms/entities/menu.entity.ts +27 -23
  1308. package/src/cms/enums/menu-type.enum.ts +11 -0
  1309. package/src/cms/index.ts +8 -0
  1310. package/src/cms/repositories/content-type.repository.ts +3 -19
  1311. package/src/cms/repositories/content.repository.ts +37 -21
  1312. package/src/cms/repositories/menu.repository.ts +2 -15
  1313. package/src/cms/services/content-type.service.ts +17 -29
  1314. package/src/cms/services/content.service.ts +40 -25
  1315. package/src/cms/services/menu.service.ts +1 -7
  1316. package/src/cms/services/rag-backend.service.ts +619 -0
  1317. package/src/cms/services/rag-indexer.service.ts +328 -0
  1318. package/src/cms/services/rag-keyword-index-recovery.ts +135 -0
  1319. package/src/cms/services/rag-retriever.service.ts +342 -0
  1320. package/src/cms/services/rag.service.ts +226 -0
  1321. package/src/cms/types/content.ts +0 -4
  1322. package/src/cms/types/rag.ts +23 -0
  1323. package/src/config/i18n/en/chatbot_settings.json +17 -0
  1324. package/src/config/i18n/en/contact.json +23 -0
  1325. package/src/config/i18n/en/messages.json +0 -8
  1326. package/src/config/i18n/en/rag_settings.json +21 -0
  1327. package/src/config/i18n/fr/chatbot_settings.json +17 -0
  1328. package/src/config/i18n/fr/contact.json +23 -0
  1329. package/src/config/i18n/fr/messages.json +4 -11
  1330. package/src/config/i18n/fr/rag_settings.json +21 -0
  1331. package/src/config/index.ts +2 -8
  1332. package/src/config/types.ts +0 -3
  1333. package/src/database/decorators/orm-event-hooks.decorator.ts +84 -0
  1334. package/src/database/entities/base.entity.ts +17 -30
  1335. package/src/extension/cleanup.service.ts +23 -23
  1336. package/src/extension/types.ts +9 -29
  1337. package/src/extensions/actions/ai/agent.action.ts +148 -0
  1338. package/src/extensions/actions/ai/ai-base.action.ts +826 -0
  1339. package/src/extensions/actions/ai/ai-schemas.ts +315 -0
  1340. package/src/extensions/actions/ai/generate-object.action.ts +51 -0
  1341. package/src/extensions/actions/ai/generate-object.base.action.ts +128 -0
  1342. package/src/extensions/actions/ai/generate-reply.action.ts +47 -0
  1343. package/src/extensions/actions/ai/generate-text.action.ts +51 -0
  1344. package/src/extensions/actions/ai/generate-text.base.action.ts +112 -0
  1345. package/src/extensions/actions/ai/i18n/en.translations.json +166 -0
  1346. package/src/extensions/actions/ai/i18n/fr.translations.json +166 -0
  1347. package/src/extensions/actions/ai/infer-object.action.ts +47 -0
  1348. package/src/extensions/actions/ai/mcp.binding.ts +58 -0
  1349. package/src/extensions/actions/ai/memory.binding.ts +41 -0
  1350. package/src/extensions/actions/ai/model.binding.ts +118 -0
  1351. package/src/extensions/actions/ai/retrieve-content-rag.action.ts +111 -0
  1352. package/src/extensions/actions/ai/tools.binding.ts +30 -0
  1353. package/src/extensions/actions/memory/i18n/en.translations.json +5 -0
  1354. package/src/extensions/actions/memory/i18n/fr.translations.json +5 -0
  1355. package/src/extensions/actions/memory/update-memory.action.ts +58 -0
  1356. package/src/extensions/actions/messaging/README.md +18 -0
  1357. package/src/extensions/actions/messaging/attachment.action.ts +86 -0
  1358. package/src/extensions/actions/messaging/await-reply.action.ts +68 -0
  1359. package/src/extensions/actions/messaging/buttons.action.ts +82 -0
  1360. package/src/extensions/actions/messaging/i18n/en.translations.json +176 -0
  1361. package/src/extensions/actions/messaging/i18n/fr.translations.json +176 -0
  1362. package/src/extensions/actions/messaging/list.action.ts +149 -0
  1363. package/src/extensions/actions/messaging/message-action.base.ts +204 -0
  1364. package/src/extensions/actions/messaging/quick-replies.action.ts +83 -0
  1365. package/src/extensions/actions/messaging/text-message.action.ts +67 -0
  1366. package/src/extensions/actions/subscriber/handover.action.ts +107 -0
  1367. package/src/extensions/actions/subscriber/i18n/en.translations.json +16 -0
  1368. package/src/extensions/actions/subscriber/i18n/fr.translations.json +16 -0
  1369. package/src/extensions/actions/subscriber/update-labels.action.ts +105 -0
  1370. package/src/extensions/actions/web/http-request.action.ts +243 -0
  1371. package/src/extensions/actions/web/i18n/en.translations.json +29 -0
  1372. package/src/extensions/actions/web/i18n/fr.translations.json +29 -0
  1373. package/src/extensions/channels/console/console-channel.settings.ts +100 -0
  1374. package/src/extensions/channels/console/globals.d.ts +6 -6
  1375. package/src/extensions/channels/console/i18n/en.translations.json +24 -0
  1376. package/src/extensions/channels/console/i18n/fr.translations.json +24 -0
  1377. package/src/extensions/channels/console/index.channel.ts +3 -41
  1378. package/src/extensions/channels/web/__test__/data.mock.ts +12 -16
  1379. package/src/extensions/channels/web/__test__/events.mock.ts +9 -9
  1380. package/src/extensions/channels/web/base-web-channel.ts +415 -819
  1381. package/src/extensions/channels/web/globals.d.ts +5 -7
  1382. package/src/extensions/channels/web/i18n/en.translations.json +28 -0
  1383. package/src/extensions/channels/web/i18n/fr.translations.json +28 -0
  1384. package/src/extensions/channels/web/inbound/events/base-web-inbound.event.ts +42 -0
  1385. package/src/extensions/channels/web/inbound/events/delivery.event.ts +38 -0
  1386. package/src/extensions/channels/web/inbound/events/index.ts +25 -0
  1387. package/src/extensions/channels/web/inbound/events/messages/attachment.event.ts +135 -0
  1388. package/src/extensions/channels/web/inbound/events/messages/location.event.ts +60 -0
  1389. package/src/extensions/channels/web/inbound/events/messages/payload.event.ts +53 -0
  1390. package/src/extensions/channels/web/inbound/events/messages/postback.event.ts +31 -0
  1391. package/src/extensions/channels/web/inbound/events/messages/quick-reply.event.ts +31 -0
  1392. package/src/extensions/channels/web/inbound/events/messages/text.event.ts +43 -0
  1393. package/src/extensions/channels/web/inbound/events/messages/web-message.event.ts +70 -0
  1394. package/src/extensions/channels/web/inbound/events/read.event.ts +38 -0
  1395. package/src/extensions/channels/web/inbound/events/typing.event.ts +33 -0
  1396. package/src/extensions/channels/web/inbound/events/unsupported.event.ts +34 -0
  1397. package/src/extensions/channels/web/inbound/index.ts +13 -0
  1398. package/src/extensions/channels/web/inbound/web-inbound-event-decoder.ts +196 -0
  1399. package/src/extensions/channels/web/index.channel.ts +3 -41
  1400. package/src/extensions/channels/web/outbound/index.ts +7 -0
  1401. package/src/extensions/channels/web/outbound/web-outbound-message-encoder.ts +283 -0
  1402. package/src/extensions/channels/web/types.ts +207 -128
  1403. package/src/extensions/channels/web/web-channel.settings.ts +105 -0
  1404. package/src/extensions/helpers/local-storage/i18n/en.translations.json +6 -0
  1405. package/src/extensions/helpers/local-storage/i18n/fr.translations.json +6 -0
  1406. package/src/extensions/helpers/local-storage/index.helper.ts +12 -27
  1407. package/src/extensions/index.ts +23 -7
  1408. package/src/global.d.ts +1 -0
  1409. package/src/helper/helper.controller.ts +14 -3
  1410. package/src/helper/helper.module.ts +1 -2
  1411. package/src/helper/helper.service.ts +7 -22
  1412. package/src/helper/index.ts +0 -4
  1413. package/src/helper/lib/__test__/settings.ts +2 -6
  1414. package/src/helper/lib/base-helper.ts +11 -23
  1415. package/src/helper/lib/base-llm-helper.ts +4 -12
  1416. package/src/helper/lib/base-storage-helper.ts +2 -10
  1417. package/src/helper/types.ts +3 -57
  1418. package/src/i18n/controllers/language.controller.ts +9 -21
  1419. package/src/i18n/controllers/translation.controller.ts +12 -32
  1420. package/src/i18n/dto/language.dto.ts +11 -14
  1421. package/src/i18n/dto/translation.dto.ts +11 -14
  1422. package/src/i18n/entities/language.entity.ts +20 -15
  1423. package/src/i18n/entities/translation.entity.ts +7 -1
  1424. package/src/i18n/i18n.module.ts +2 -4
  1425. package/src/i18n/index.ts +0 -2
  1426. package/src/i18n/loaders/extension-json.loader.ts +240 -0
  1427. package/src/i18n/localize-schema-metadata.ts +63 -0
  1428. package/src/i18n/repositories/language.repository.ts +2 -14
  1429. package/src/i18n/repositories/translation.repository.ts +2 -14
  1430. package/src/i18n/seeds/language.seed.ts +2 -10
  1431. package/src/i18n/seeds/translation.seed.ts +1 -9
  1432. package/src/i18n/services/i18n.service.ts +24 -3
  1433. package/src/i18n/services/language.service.ts +1 -8
  1434. package/src/i18n/services/translation.service.ts +174 -158
  1435. package/src/index.ts +8 -4
  1436. package/src/license/decorators/requires-license-feature.decorator.ts +18 -0
  1437. package/src/license/guards/license-feature.guard.ts +56 -0
  1438. package/src/license/index.ts +23 -0
  1439. package/src/license/license.module.ts +28 -0
  1440. package/src/license/services/lemon-squeezy.service.ts +101 -0
  1441. package/src/license/services/license-orm-listener.service.ts +121 -0
  1442. package/src/license/services/license.service.ts +621 -0
  1443. package/src/license/types/lemon-squeezy.types.ts +59 -0
  1444. package/src/license/types/license-feature.enum.ts +52 -0
  1445. package/src/license/types/license-quota.ts +72 -0
  1446. package/src/migration/migration.service.ts +8 -1
  1447. package/src/seeder.ts +20 -27
  1448. package/src/setting/base-setting-group.ts +56 -0
  1449. package/src/setting/controllers/setting.controller.ts +17 -16
  1450. package/src/setting/create-setting-group.ts +30 -0
  1451. package/src/setting/default.settings.ts +250 -0
  1452. package/src/setting/dto/metadata.dto.ts +11 -14
  1453. package/src/setting/dto/setting.dto.ts +14 -97
  1454. package/src/setting/entities/metadata.entity.ts +7 -1
  1455. package/src/setting/entities/setting.entity.ts +7 -87
  1456. package/src/setting/globals.d.ts +9 -30
  1457. package/src/setting/index.ts +12 -0
  1458. package/src/setting/repositories/metadata.repository.ts +2 -14
  1459. package/src/setting/repositories/setting.repository.ts +3 -32
  1460. package/src/setting/runtime-settings.seed.ts +99 -0
  1461. package/src/setting/runtime-settings.ts +62 -0
  1462. package/src/setting/seeds/metadata.seed.ts +2 -10
  1463. package/src/setting/seeds/setting.seed-model.ts +6 -174
  1464. package/src/setting/seeds/setting.seed.ts +4 -10
  1465. package/src/setting/services/metadata.service.ts +2 -11
  1466. package/src/setting/services/runtime-settings.service.ts +149 -0
  1467. package/src/setting/services/setting.service.ts +160 -16
  1468. package/src/setting/setting.module.ts +20 -1
  1469. package/src/setting/types/index.ts +3 -118
  1470. package/src/types/ai-sdk-mcp-stdio.d.ts +31 -0
  1471. package/src/user/controllers/auth.controller.ts +15 -94
  1472. package/src/user/controllers/credential.controller.ts +115 -0
  1473. package/src/user/controllers/model.controller.ts +5 -12
  1474. package/src/user/controllers/permission.controller.ts +8 -26
  1475. package/src/user/controllers/role.controller.ts +16 -36
  1476. package/src/user/controllers/user.controller.ts +49 -67
  1477. package/src/user/dto/assigned-profile.dto.ts +76 -0
  1478. package/src/user/dto/credential.dto.ts +73 -0
  1479. package/src/user/dto/model.dto.ts +10 -13
  1480. package/src/user/dto/permission.dto.ts +10 -13
  1481. package/src/user/dto/role.dto.ts +11 -14
  1482. package/src/user/dto/user-profile.dto.ts +43 -0
  1483. package/src/user/dto/user.dto.ts +65 -40
  1484. package/src/user/entities/credential.entity.ts +50 -0
  1485. package/src/user/entities/model.entity.ts +6 -1
  1486. package/src/user/entities/permission.entity.ts +10 -1
  1487. package/src/user/entities/role.entity.ts +7 -1
  1488. package/src/user/entities/user-profile.entity.ts +72 -0
  1489. package/src/user/entities/user.entity.ts +16 -35
  1490. package/src/user/guards/ability.guard.ts +1 -2
  1491. package/src/user/index.ts +10 -8
  1492. package/src/user/passport/auth-strategy/local.strategy.ts +0 -1
  1493. package/src/user/passport/session.serializer.ts +2 -2
  1494. package/src/user/repositories/credential.repository.ts +37 -0
  1495. package/src/user/repositories/model.repository.ts +2 -12
  1496. package/src/user/repositories/permission.repository.ts +2 -15
  1497. package/src/user/repositories/role.repository.ts +2 -15
  1498. package/src/user/repositories/user.repository.ts +33 -16
  1499. package/src/user/seeds/model.seed-model.ts +41 -41
  1500. package/src/user/seeds/model.seed.ts +1 -6
  1501. package/src/user/seeds/permission.seed.ts +1 -9
  1502. package/src/user/seeds/role.seed.ts +1 -6
  1503. package/src/user/seeds/user.seed-model.ts +23 -5
  1504. package/src/user/seeds/user.seed.ts +1 -6
  1505. package/src/user/services/auth.service.ts +2 -5
  1506. package/src/user/services/credential.service.ts +23 -0
  1507. package/src/user/services/model.service.ts +1 -6
  1508. package/src/user/services/passwordReset.service.ts +1 -1
  1509. package/src/user/services/permission.service.ts +2 -10
  1510. package/src/user/services/role.service.ts +1 -6
  1511. package/src/user/services/user.service.ts +8 -6
  1512. package/src/user/services/validate-account.service.ts +6 -9
  1513. package/src/user/types/model.type.ts +10 -6
  1514. package/src/user/user.module.ts +9 -7
  1515. package/src/utils/constants/cache.ts +0 -2
  1516. package/src/utils/constants/session-middleware.ts +2 -1
  1517. package/src/utils/decorators/uuid-param.decorator.ts +21 -0
  1518. package/src/utils/decorators/validate.decorator.ts +5 -5
  1519. package/src/utils/generics/base-orm.controller.ts +70 -19
  1520. package/src/utils/generics/base-orm.repository.ts +228 -120
  1521. package/src/utils/generics/base-orm.seeder.ts +7 -19
  1522. package/src/utils/generics/base-orm.service.ts +31 -39
  1523. package/src/utils/generics/extension.ts +6 -31
  1524. package/src/utils/helpers/avatar.ts +8 -10
  1525. package/src/utils/helpers/clone.ts +27 -0
  1526. package/src/utils/helpers/flatten.ts +1 -3
  1527. package/src/utils/helpers/freeze.ts +18 -0
  1528. package/src/utils/helpers/misc.ts +0 -23
  1529. package/src/utils/helpers/object.ts +31 -0
  1530. package/src/utils/helpers/zod.ts +66 -0
  1531. package/src/utils/index.ts +7 -9
  1532. package/src/utils/pipes/zod.pipe.ts +2 -2
  1533. package/src/utils/test/constants.ts +6 -1
  1534. package/src/utils/test/dummy/controllers/dummy.controller.ts +19 -0
  1535. package/src/utils/test/dummy/dto/dummy.dto.ts +11 -16
  1536. package/src/utils/test/dummy/dummy.action.ts +44 -0
  1537. package/src/utils/test/dummy/dummy.module.ts +2 -0
  1538. package/src/utils/test/dummy/entities/dummy.entity.ts +7 -1
  1539. package/src/utils/test/dummy/repositories/dummy.repository.ts +2 -10
  1540. package/src/utils/test/dummy/services/dummy.service.ts +1 -7
  1541. package/src/utils/test/fixtures/attachment.ts +15 -5
  1542. package/src/utils/test/fixtures/content.ts +12 -15
  1543. package/src/utils/test/fixtures/contenttype.ts +33 -86
  1544. package/src/utils/test/fixtures/language.ts +0 -2
  1545. package/src/utils/test/fixtures/mcp-server.ts +71 -0
  1546. package/src/utils/test/fixtures/memory-definition.ts +81 -0
  1547. package/src/utils/test/fixtures/memory-record.ts +196 -0
  1548. package/src/utils/test/fixtures/menu.ts +0 -2
  1549. package/src/utils/test/fixtures/message.ts +34 -0
  1550. package/src/utils/test/fixtures/setting.ts +11 -49
  1551. package/src/utils/test/fixtures/stats.ts +61 -0
  1552. package/src/utils/test/fixtures/subscriber.ts +24 -24
  1553. package/src/utils/test/fixtures/user.ts +17 -4
  1554. package/src/utils/test/fixtures/workflow-run.ts +241 -0
  1555. package/src/utils/test/fixtures/workflow.ts +171 -0
  1556. package/src/utils/test/mocks/subscriber.ts +4 -5
  1557. package/src/utils/test/modules/i18n-testing.module.ts +16 -0
  1558. package/src/utils/test/postman-collections/hexabot_REST.postman_collection.json +7 -364
  1559. package/src/utils/test/providers/i18n-service.provider.ts +24 -0
  1560. package/src/utils/test/providers/mailer-service.provider.ts +18 -0
  1561. package/src/utils/test/providers/setting-service.provider.ts +35 -0
  1562. package/src/utils/test/utils.ts +209 -4
  1563. package/src/utils/types/dto.types.ts +50 -24
  1564. package/src/utils/types/entity-event.types.ts +95 -0
  1565. package/src/utils/types/extension.ts +1 -2
  1566. package/src/websocket/services/socket-event-dispatcher.service.ts +5 -0
  1567. package/src/websocket/types.ts +1 -0
  1568. package/src/websocket/utils/gateway-options.ts +1 -0
  1569. package/src/websocket/websocket.gateway.ts +127 -138
  1570. package/src/websocket/websocket.module.ts +3 -0
  1571. package/src/workflow/contexts/conversational-workflow.context.ts +16 -0
  1572. package/src/workflow/contexts/manual-workflow.context.ts +16 -0
  1573. package/src/workflow/contexts/scheduled-workflow.context.ts +16 -0
  1574. package/src/workflow/contexts/workflow-context-factory.ts +78 -0
  1575. package/src/workflow/contexts/workflow-runtime.context.ts +197 -0
  1576. package/src/workflow/controllers/mcp-server.controller.ts +193 -0
  1577. package/src/workflow/controllers/memory-definition.controller.ts +166 -0
  1578. package/src/workflow/controllers/workflow-run.controller.ts +107 -0
  1579. package/src/workflow/controllers/workflow-version.controller.ts +200 -0
  1580. package/src/workflow/controllers/workflow.controller.ts +336 -0
  1581. package/src/workflow/decorators/is-workflow-definition.decorator.ts +57 -0
  1582. package/src/workflow/decorators/is-workflow-yaml.decorator.ts +52 -0
  1583. package/src/workflow/defaults/default-workflow.ts +37 -0
  1584. package/src/workflow/dto/mcp-server.dto.ts +173 -0
  1585. package/src/workflow/dto/memory-definition.dto.ts +107 -0
  1586. package/src/workflow/dto/memory-record.dto.ts +169 -0
  1587. package/src/workflow/dto/workflow-run.dto.ts +304 -0
  1588. package/src/workflow/dto/workflow-version.dto.ts +147 -0
  1589. package/src/workflow/dto/workflow.dto.ts +241 -0
  1590. package/src/workflow/entities/mcp-server.entity.ts +185 -0
  1591. package/src/workflow/entities/memory-definition.entity.ts +48 -0
  1592. package/src/workflow/entities/memory-record.entity.ts +119 -0
  1593. package/src/workflow/entities/workflow-run.entity.ts +193 -0
  1594. package/src/workflow/entities/workflow-version.entity.ts +147 -0
  1595. package/src/workflow/entities/workflow.entity.ts +255 -0
  1596. package/src/workflow/index.ts +75 -0
  1597. package/src/workflow/lib/trigger-event-wrapper.ts +153 -0
  1598. package/src/workflow/lib/workflow-definition.ts +25 -0
  1599. package/src/workflow/repositories/mcp-server.repository.ts +23 -0
  1600. package/src/workflow/repositories/memory-definition.repository.ts +23 -0
  1601. package/src/workflow/repositories/memory-record.repository.ts +23 -0
  1602. package/src/workflow/repositories/workflow-run.repository.ts +28 -0
  1603. package/src/workflow/repositories/workflow-version.repository.ts +23 -0
  1604. package/src/workflow/repositories/workflow.repository.ts +28 -0
  1605. package/src/workflow/schemas/workflow-input-schemas.ts +84 -0
  1606. package/src/workflow/schemas/workflow-schemas.ts +24 -0
  1607. package/src/workflow/seeds/memory-definition.seed-model.ts +59 -0
  1608. package/src/workflow/seeds/memory-definition.seed.ts +19 -0
  1609. package/src/workflow/seeds/workflow.seed-model.ts +19 -0
  1610. package/src/workflow/seeds/workflow.seed.ts +36 -0
  1611. package/src/workflow/services/agentic.service.ts +524 -0
  1612. package/src/workflow/services/mcp-client-pool.service.ts +633 -0
  1613. package/src/workflow/services/mcp-server.service.ts +58 -0
  1614. package/src/workflow/services/memory-definition.service.ts +78 -0
  1615. package/src/workflow/services/memory-record.service.ts +176 -0
  1616. package/src/workflow/services/memory.service.ts +57 -0
  1617. package/src/workflow/services/stdio-stderr-capture.transport.ts +96 -0
  1618. package/src/workflow/services/workflow-run.service.ts +154 -0
  1619. package/src/workflow/services/workflow-scheduler.service.ts +244 -0
  1620. package/src/workflow/services/workflow-version.service.ts +109 -0
  1621. package/src/workflow/services/workflow.service.ts +243 -0
  1622. package/src/workflow/types.ts +123 -0
  1623. package/src/workflow/utils/memory-store.ts +393 -0
  1624. package/src/workflow/utils/schema-instance.ts +308 -0
  1625. package/src/workflow/utils/workflow-run-duration.ts +45 -0
  1626. package/src/workflow/workflow.module.ts +116 -0
  1627. package/types/event-emitter.d.ts +77 -56
  1628. package/types/express-session.d.ts +3 -5
  1629. package/dist/analytics/controllers/bot-stats.controller.d.ts +0 -17
  1630. package/dist/analytics/controllers/bot-stats.controller.js +0 -107
  1631. package/dist/analytics/controllers/bot-stats.controller.js.map +0 -1
  1632. package/dist/analytics/dto/bot-stats.dto.d.ts +0 -35
  1633. package/dist/analytics/dto/bot-stats.dto.js +0 -112
  1634. package/dist/analytics/dto/bot-stats.dto.js.map +0 -1
  1635. package/dist/analytics/entities/bot-stats.entity.d.ts +0 -33
  1636. package/dist/analytics/entities/bot-stats.entity.js +0 -80
  1637. package/dist/analytics/entities/bot-stats.entity.js.map +0 -1
  1638. package/dist/analytics/repositories/bot-stats.repository.d.ts +0 -12
  1639. package/dist/analytics/repositories/bot-stats.repository.js +0 -68
  1640. package/dist/analytics/repositories/bot-stats.repository.js.map +0 -1
  1641. package/dist/analytics/services/bot-stats.service.d.ts +0 -22
  1642. package/dist/analytics/services/bot-stats.service.js +0 -132
  1643. package/dist/analytics/services/bot-stats.service.js.map +0 -1
  1644. package/dist/analytics/utilities/index.js +0 -6
  1645. package/dist/analytics/utilities/index.js.map +0 -1
  1646. package/dist/channel/channel.middleware.d.ts +0 -8
  1647. package/dist/channel/channel.middleware.js +0 -40
  1648. package/dist/channel/channel.middleware.js.map +0 -1
  1649. package/dist/channel/lib/EventWrapper.d.ts +0 -67
  1650. package/dist/channel/lib/EventWrapper.js +0 -126
  1651. package/dist/channel/lib/EventWrapper.js.map +0 -1
  1652. package/dist/chat/constants/block.d.ts +0 -3
  1653. package/dist/chat/constants/block.js +0 -13
  1654. package/dist/chat/constants/block.js.map +0 -1
  1655. package/dist/chat/constants/conversation.d.ts +0 -2
  1656. package/dist/chat/constants/conversation.js +0 -23
  1657. package/dist/chat/constants/conversation.js.map +0 -1
  1658. package/dist/chat/controllers/block.controller.d.ts +0 -56
  1659. package/dist/chat/controllers/block.controller.js +0 -253
  1660. package/dist/chat/controllers/block.controller.js.map +0 -1
  1661. package/dist/chat/controllers/category.controller.d.ts +0 -19
  1662. package/dist/chat/controllers/category.controller.js +0 -132
  1663. package/dist/chat/controllers/category.controller.js.map +0 -1
  1664. package/dist/chat/controllers/context-var.controller.d.ts +0 -19
  1665. package/dist/chat/controllers/context-var.controller.js +0 -132
  1666. package/dist/chat/controllers/context-var.controller.js.map +0 -1
  1667. package/dist/chat/dto/block.dto.d.ts +0 -80
  1668. package/dist/chat/dto/block.dto.js +0 -363
  1669. package/dist/chat/dto/block.dto.js.map +0 -1
  1670. package/dist/chat/dto/category.dto.d.ts +0 -33
  1671. package/dist/chat/dto/category.dto.js +0 -91
  1672. package/dist/chat/dto/category.dto.js.map +0 -1
  1673. package/dist/chat/dto/context-var.dto.d.ts +0 -28
  1674. package/dist/chat/dto/context-var.dto.js +0 -71
  1675. package/dist/chat/dto/context-var.dto.js.map +0 -1
  1676. package/dist/chat/dto/conversation.dto.d.ts +0 -38
  1677. package/dist/chat/dto/conversation.dto.js +0 -120
  1678. package/dist/chat/dto/conversation.dto.js.map +0 -1
  1679. package/dist/chat/entities/block.entity.d.ts +0 -39
  1680. package/dist/chat/entities/block.entity.js +0 -334
  1681. package/dist/chat/entities/block.entity.js.map +0 -1
  1682. package/dist/chat/entities/category.entity.d.ts +0 -10
  1683. package/dist/chat/entities/category.entity.js +0 -69
  1684. package/dist/chat/entities/category.entity.js.map +0 -1
  1685. package/dist/chat/entities/context-var.entity.d.ts +0 -7
  1686. package/dist/chat/entities/context-var.entity.js +0 -75
  1687. package/dist/chat/entities/context-var.entity.js.map +0 -1
  1688. package/dist/chat/entities/conversation.entity.d.ts +0 -14
  1689. package/dist/chat/entities/conversation.entity.js +0 -74
  1690. package/dist/chat/entities/conversation.entity.js.map +0 -1
  1691. package/dist/chat/repositories/block.repository.d.ts +0 -10
  1692. package/dist/chat/repositories/block.repository.js +0 -116
  1693. package/dist/chat/repositories/block.repository.js.map +0 -1
  1694. package/dist/chat/repositories/category.repository.d.ts +0 -7
  1695. package/dist/chat/repositories/category.repository.js +0 -36
  1696. package/dist/chat/repositories/category.repository.js.map +0 -1
  1697. package/dist/chat/repositories/context-var.repository.d.ts +0 -7
  1698. package/dist/chat/repositories/context-var.repository.js +0 -36
  1699. package/dist/chat/repositories/context-var.repository.js.map +0 -1
  1700. package/dist/chat/repositories/conversation.repository.d.ts +0 -8
  1701. package/dist/chat/repositories/conversation.repository.js +0 -39
  1702. package/dist/chat/repositories/conversation.repository.js.map +0 -1
  1703. package/dist/chat/seeds/category.seed-model.d.ts +0 -2
  1704. package/dist/chat/seeds/category.seed-model.js +0 -9
  1705. package/dist/chat/seeds/category.seed-model.js.map +0 -1
  1706. package/dist/chat/seeds/category.seed.d.ts +0 -8
  1707. package/dist/chat/seeds/category.seed.js +0 -27
  1708. package/dist/chat/seeds/category.seed.js.map +0 -1
  1709. package/dist/chat/seeds/context-var.seed-model.d.ts +0 -2
  1710. package/dist/chat/seeds/context-var.seed-model.js +0 -14
  1711. package/dist/chat/seeds/context-var.seed-model.js.map +0 -1
  1712. package/dist/chat/seeds/context-var.seed.d.ts +0 -8
  1713. package/dist/chat/seeds/context-var.seed.js +0 -27
  1714. package/dist/chat/seeds/context-var.seed.js.map +0 -1
  1715. package/dist/chat/services/block.service.d.ts +0 -51
  1716. package/dist/chat/services/block.service.js +0 -366
  1717. package/dist/chat/services/block.service.js.map +0 -1
  1718. package/dist/chat/services/bot.service.d.ts +0 -36
  1719. package/dist/chat/services/bot.service.js +0 -375
  1720. package/dist/chat/services/bot.service.js.map +0 -1
  1721. package/dist/chat/services/category.service.d.ts +0 -8
  1722. package/dist/chat/services/category.service.js +0 -27
  1723. package/dist/chat/services/category.service.js.map +0 -1
  1724. package/dist/chat/services/context-var.service.d.ts +0 -10
  1725. package/dist/chat/services/context-var.service.js +0 -41
  1726. package/dist/chat/services/context-var.service.js.map +0 -1
  1727. package/dist/chat/services/conversation.service.d.ts +0 -18
  1728. package/dist/chat/services/conversation.service.js +0 -149
  1729. package/dist/chat/services/conversation.service.js.map +0 -1
  1730. package/dist/chat/types/capture-var.d.ts +0 -12
  1731. package/dist/chat/types/capture-var.js +0 -9
  1732. package/dist/chat/types/capture-var.js.map +0 -1
  1733. package/dist/chat/types/context.d.ts +0 -25
  1734. package/dist/chat/types/context.js +0 -3
  1735. package/dist/chat/types/context.js.map +0 -1
  1736. package/dist/chat/types/pattern.d.ts +0 -100
  1737. package/dist/chat/types/pattern.js +0 -56
  1738. package/dist/chat/types/pattern.js.map +0 -1
  1739. package/dist/chat/types/position.d.ts +0 -12
  1740. package/dist/chat/types/position.js +0 -9
  1741. package/dist/chat/types/position.js.map +0 -1
  1742. package/dist/chat/types/subscriberContext.d.ts +0 -9
  1743. package/dist/chat/types/subscriberContext.js +0 -8
  1744. package/dist/chat/types/subscriberContext.js.map +0 -1
  1745. package/dist/extensions/channels/console/i18n/en/label.json +0 -21
  1746. package/dist/extensions/channels/console/i18n/en/title.json +0 -3
  1747. package/dist/extensions/channels/console/i18n/fr/label.json +0 -21
  1748. package/dist/extensions/channels/console/i18n/fr/title.json +0 -3
  1749. package/dist/extensions/channels/console/settings.d.ts +0 -56
  1750. package/dist/extensions/channels/console/settings.js +0 -71
  1751. package/dist/extensions/channels/console/settings.js.map +0 -1
  1752. package/dist/extensions/channels/web/i18n/en/label.json +0 -21
  1753. package/dist/extensions/channels/web/i18n/en/title.json +0 -3
  1754. package/dist/extensions/channels/web/i18n/fr/label.json +0 -21
  1755. package/dist/extensions/channels/web/i18n/fr/title.json +0 -3
  1756. package/dist/extensions/channels/web/settings.d.ts +0 -68
  1757. package/dist/extensions/channels/web/settings.js +0 -85
  1758. package/dist/extensions/channels/web/settings.js.map +0 -1
  1759. package/dist/extensions/channels/web/wrapper.d.ts +0 -63
  1760. package/dist/extensions/channels/web/wrapper.js +0 -167
  1761. package/dist/extensions/channels/web/wrapper.js.map +0 -1
  1762. package/dist/extensions/helpers/llm-nlu/i18n/en/help.json +0 -5
  1763. package/dist/extensions/helpers/llm-nlu/i18n/en/label.json +0 -5
  1764. package/dist/extensions/helpers/llm-nlu/i18n/en/title.json +0 -3
  1765. package/dist/extensions/helpers/llm-nlu/i18n/fr/help.json +0 -5
  1766. package/dist/extensions/helpers/llm-nlu/i18n/fr/label.json +0 -5
  1767. package/dist/extensions/helpers/llm-nlu/i18n/fr/title.json +0 -3
  1768. package/dist/extensions/helpers/llm-nlu/index.helper.d.ts +0 -21
  1769. package/dist/extensions/helpers/llm-nlu/index.helper.js +0 -138
  1770. package/dist/extensions/helpers/llm-nlu/index.helper.js.map +0 -1
  1771. package/dist/extensions/helpers/llm-nlu/package.json +0 -8
  1772. package/dist/extensions/helpers/llm-nlu/settings.d.ts +0 -20
  1773. package/dist/extensions/helpers/llm-nlu/settings.js +0 -39
  1774. package/dist/extensions/helpers/llm-nlu/settings.js.map +0 -1
  1775. package/dist/extensions/helpers/local-storage/settings.d.ts +0 -4
  1776. package/dist/extensions/helpers/local-storage/settings.js +0 -7
  1777. package/dist/extensions/helpers/local-storage/settings.js.map +0 -1
  1778. package/dist/helper/lib/base-flow-escape-helper.d.ts +0 -13
  1779. package/dist/helper/lib/base-flow-escape-helper.js +0 -15
  1780. package/dist/helper/lib/base-flow-escape-helper.js.map +0 -1
  1781. package/dist/helper/lib/base-nlp-helper.d.ts +0 -28
  1782. package/dist/helper/lib/base-nlp-helper.js +0 -168
  1783. package/dist/helper/lib/base-nlp-helper.js.map +0 -1
  1784. package/dist/i18n/controllers/i18n.controller.d.ts +0 -10
  1785. package/dist/i18n/controllers/i18n.controller.js +0 -46
  1786. package/dist/i18n/controllers/i18n.controller.js.map +0 -1
  1787. package/dist/nlp/controllers/nlp-entity.controller.d.ts +0 -19
  1788. package/dist/nlp/controllers/nlp-entity.controller.js +0 -160
  1789. package/dist/nlp/controllers/nlp-entity.controller.js.map +0 -1
  1790. package/dist/nlp/controllers/nlp-sample.controller.d.ts +0 -39
  1791. package/dist/nlp/controllers/nlp-sample.controller.js +0 -289
  1792. package/dist/nlp/controllers/nlp-sample.controller.js.map +0 -1
  1793. package/dist/nlp/controllers/nlp-value.controller.d.ts +0 -21
  1794. package/dist/nlp/controllers/nlp-value.controller.js +0 -141
  1795. package/dist/nlp/controllers/nlp-value.controller.js.map +0 -1
  1796. package/dist/nlp/dto/nlp-entity.dto.d.ts +0 -37
  1797. package/dist/nlp/dto/nlp-entity.dto.js +0 -141
  1798. package/dist/nlp/dto/nlp-entity.dto.js.map +0 -1
  1799. package/dist/nlp/dto/nlp-sample-entity.dto.d.ts +0 -32
  1800. package/dist/nlp/dto/nlp-sample-entity.dto.js +0 -110
  1801. package/dist/nlp/dto/nlp-sample-entity.dto.js.map +0 -1
  1802. package/dist/nlp/dto/nlp-sample.dto.d.ts +0 -43
  1803. package/dist/nlp/dto/nlp-sample.dto.js +0 -160
  1804. package/dist/nlp/dto/nlp-sample.dto.js.map +0 -1
  1805. package/dist/nlp/dto/nlp-value.dto.d.ts +0 -46
  1806. package/dist/nlp/dto/nlp-value.dto.js +0 -166
  1807. package/dist/nlp/dto/nlp-value.dto.js.map +0 -1
  1808. package/dist/nlp/entities/nlp-entity.entity.d.ts +0 -16
  1809. package/dist/nlp/entities/nlp-entity.entity.js +0 -66
  1810. package/dist/nlp/entities/nlp-entity.entity.js.map +0 -1
  1811. package/dist/nlp/entities/nlp-sample-entity.entity.d.ts +0 -14
  1812. package/dist/nlp/entities/nlp-sample-entity.entity.js +0 -73
  1813. package/dist/nlp/entities/nlp-sample-entity.entity.js.map +0 -1
  1814. package/dist/nlp/entities/nlp-sample.entity.d.ts +0 -12
  1815. package/dist/nlp/entities/nlp-sample.entity.js +0 -58
  1816. package/dist/nlp/entities/nlp-sample.entity.js.map +0 -1
  1817. package/dist/nlp/entities/nlp-value.entity.d.ts +0 -23
  1818. package/dist/nlp/entities/nlp-value.entity.js +0 -83
  1819. package/dist/nlp/entities/nlp-value.entity.js.map +0 -1
  1820. package/dist/nlp/index.d.ts +0 -26
  1821. package/dist/nlp/index.js +0 -43
  1822. package/dist/nlp/index.js.map +0 -1
  1823. package/dist/nlp/nlp.module.d.ts +0 -2
  1824. package/dist/nlp/nlp.module.js +0 -64
  1825. package/dist/nlp/nlp.module.js.map +0 -1
  1826. package/dist/nlp/repositories/nlp-entity.repository.d.ts +0 -7
  1827. package/dist/nlp/repositories/nlp-entity.repository.js +0 -36
  1828. package/dist/nlp/repositories/nlp-entity.repository.js.map +0 -1
  1829. package/dist/nlp/repositories/nlp-sample-entity.repository.d.ts +0 -7
  1830. package/dist/nlp/repositories/nlp-sample-entity.repository.js +0 -36
  1831. package/dist/nlp/repositories/nlp-sample-entity.repository.js.map +0 -1
  1832. package/dist/nlp/repositories/nlp-sample.repository.d.ts +0 -24
  1833. package/dist/nlp/repositories/nlp-sample.repository.js +0 -123
  1834. package/dist/nlp/repositories/nlp-sample.repository.js.map +0 -1
  1835. package/dist/nlp/repositories/nlp-value.repository.d.ts +0 -10
  1836. package/dist/nlp/repositories/nlp-value.repository.js +0 -93
  1837. package/dist/nlp/repositories/nlp-value.repository.js.map +0 -1
  1838. package/dist/nlp/seeds/nlp-entity.seed-model.d.ts +0 -2
  1839. package/dist/nlp/seeds/nlp-entity.seed-model.js +0 -12
  1840. package/dist/nlp/seeds/nlp-entity.seed-model.js.map +0 -1
  1841. package/dist/nlp/seeds/nlp-entity.seed.d.ts +0 -7
  1842. package/dist/nlp/seeds/nlp-entity.seed.js +0 -26
  1843. package/dist/nlp/seeds/nlp-entity.seed.js.map +0 -1
  1844. package/dist/nlp/seeds/nlp-value.seed-model.d.ts +0 -2
  1845. package/dist/nlp/seeds/nlp-value.seed-model.js +0 -5
  1846. package/dist/nlp/seeds/nlp-value.seed-model.js.map +0 -1
  1847. package/dist/nlp/seeds/nlp-value.seed.d.ts +0 -10
  1848. package/dist/nlp/seeds/nlp-value.seed.js +0 -41
  1849. package/dist/nlp/seeds/nlp-value.seed.js.map +0 -1
  1850. package/dist/nlp/services/nlp-entity.service.d.ts +0 -24
  1851. package/dist/nlp/services/nlp-entity.service.js +0 -120
  1852. package/dist/nlp/services/nlp-entity.service.js.map +0 -1
  1853. package/dist/nlp/services/nlp-sample-entity.service.d.ts +0 -17
  1854. package/dist/nlp/services/nlp-sample-entity.service.js +0 -72
  1855. package/dist/nlp/services/nlp-sample-entity.service.js.map +0 -1
  1856. package/dist/nlp/services/nlp-sample.service.d.ts +0 -42
  1857. package/dist/nlp/services/nlp-sample.service.js +0 -236
  1858. package/dist/nlp/services/nlp-sample.service.js.map +0 -1
  1859. package/dist/nlp/services/nlp-value.service.d.ts +0 -19
  1860. package/dist/nlp/services/nlp-value.service.js +0 -159
  1861. package/dist/nlp/services/nlp-value.service.js.map +0 -1
  1862. package/dist/nlp/services/nlp.service.d.ts +0 -26
  1863. package/dist/nlp/services/nlp.service.js +0 -241
  1864. package/dist/nlp/services/nlp.service.js.map +0 -1
  1865. package/dist/nlp/types.d.ts +0 -34
  1866. package/dist/nlp/types.js +0 -17
  1867. package/dist/nlp/types.js.map +0 -1
  1868. package/dist/plugins/base-block-plugin.d.ts +0 -16
  1869. package/dist/plugins/base-block-plugin.js +0 -47
  1870. package/dist/plugins/base-block-plugin.js.map +0 -1
  1871. package/dist/plugins/base-event-plugin.d.ts +0 -7
  1872. package/dist/plugins/base-event-plugin.js +0 -28
  1873. package/dist/plugins/base-event-plugin.js.map +0 -1
  1874. package/dist/plugins/base-plugin.service.d.ts +0 -11
  1875. package/dist/plugins/base-plugin.service.js +0 -32
  1876. package/dist/plugins/base-plugin.service.js.map +0 -1
  1877. package/dist/plugins/index.d.ts +0 -7
  1878. package/dist/plugins/index.js +0 -24
  1879. package/dist/plugins/index.js.map +0 -1
  1880. package/dist/plugins/map-types.d.ts +0 -11
  1881. package/dist/plugins/map-types.js +0 -10
  1882. package/dist/plugins/map-types.js.map +0 -1
  1883. package/dist/plugins/plugins.module.d.ts +0 -2
  1884. package/dist/plugins/plugins.module.js +0 -39
  1885. package/dist/plugins/plugins.module.js.map +0 -1
  1886. package/dist/plugins/plugins.service.d.ts +0 -12
  1887. package/dist/plugins/plugins.service.js +0 -50
  1888. package/dist/plugins/plugins.service.js.map +0 -1
  1889. package/dist/plugins/types.d.ts +0 -20
  1890. package/dist/plugins/types.js +0 -9
  1891. package/dist/plugins/types.js.map +0 -1
  1892. package/dist/static/assets/NlpEntity-pMPO8FJm.js +0 -1
  1893. package/dist/static/assets/index-CdV7RB70.css +0 -1
  1894. package/dist/static/assets/index-DYVFraRG.js +0 -990
  1895. package/dist/static/locales/en/chatbot_settings.json +0 -24
  1896. package/dist/static/locales/en/contact.json +0 -18
  1897. package/dist/static/locales/en/nlp_settings.json +0 -16
  1898. package/dist/static/locales/fr/chatbot_settings.json +0 -24
  1899. package/dist/static/locales/fr/contact.json +0 -18
  1900. package/dist/static/locales/fr/nlp_settings.json +0 -16
  1901. package/dist/templates/invitation.mjml +0 -42
  1902. package/dist/user/dto/invitation.dto.d.ts +0 -24
  1903. package/dist/user/dto/invitation.dto.js +0 -71
  1904. package/dist/user/dto/invitation.dto.js.map +0 -1
  1905. package/dist/user/entities/invitation.entity.d.ts +0 -10
  1906. package/dist/user/entities/invitation.entity.js +0 -66
  1907. package/dist/user/entities/invitation.entity.js.map +0 -1
  1908. package/dist/user/repositories/invitation.repository.d.ts +0 -7
  1909. package/dist/user/repositories/invitation.repository.js +0 -36
  1910. package/dist/user/repositories/invitation.repository.js.map +0 -1
  1911. package/dist/user/services/invitation.service.d.ts +0 -23
  1912. package/dist/user/services/invitation.service.js +0 -89
  1913. package/dist/user/services/invitation.service.js.map +0 -1
  1914. package/dist/utils/constants/nlp.d.ts +0 -1
  1915. package/dist/utils/constants/nlp.js +0 -5
  1916. package/dist/utils/constants/nlp.js.map +0 -1
  1917. package/dist/utils/helpers/fs.d.ts +0 -2
  1918. package/dist/utils/helpers/fs.js +0 -42
  1919. package/dist/utils/helpers/fs.js.map +0 -1
  1920. package/dist/utils/helpers/zod-validation.d.ts +0 -2
  1921. package/dist/utils/helpers/zod-validation.js +0 -6
  1922. package/dist/utils/helpers/zod-validation.js.map +0 -1
  1923. package/dist/utils/pipes/sanitize-query.pipe.d.ts +0 -7
  1924. package/dist/utils/pipes/sanitize-query.pipe.js +0 -46
  1925. package/dist/utils/pipes/sanitize-query.pipe.js.map +0 -1
  1926. package/dist/utils/test/dummy/dummy.plugin.d.ts +0 -17
  1927. package/dist/utils/test/dummy/dummy.plugin.js +0 -46
  1928. package/dist/utils/test/dummy/dummy.plugin.js.map +0 -1
  1929. package/dist/utils/test/dummy/settings.d.ts +0 -2
  1930. package/dist/utils/test/dummy/settings.js +0 -4
  1931. package/dist/utils/test/dummy/settings.js.map +0 -1
  1932. package/dist/utils/test/errors/messages.d.ts +0 -1
  1933. package/dist/utils/test/errors/messages.js +0 -6
  1934. package/dist/utils/test/errors/messages.js.map +0 -1
  1935. package/dist/utils/test/fixtures/block.d.ts +0 -10
  1936. package/dist/utils/test/fixtures/block.js +0 -212
  1937. package/dist/utils/test/fixtures/block.js.map +0 -1
  1938. package/dist/utils/test/fixtures/botstats.d.ts +0 -4
  1939. package/dist/utils/test/fixtures/botstats.js +0 -55
  1940. package/dist/utils/test/fixtures/botstats.js.map +0 -1
  1941. package/dist/utils/test/fixtures/category.d.ts +0 -9
  1942. package/dist/utils/test/fixtures/category.js +0 -41
  1943. package/dist/utils/test/fixtures/category.js.map +0 -1
  1944. package/dist/utils/test/fixtures/contextvar.d.ts +0 -9
  1945. package/dist/utils/test/fixtures/contextvar.js +0 -45
  1946. package/dist/utils/test/fixtures/contextvar.js.map +0 -1
  1947. package/dist/utils/test/fixtures/conversation.d.ts +0 -8
  1948. package/dist/utils/test/fixtures/conversation.js +0 -210
  1949. package/dist/utils/test/fixtures/conversation.js.map +0 -1
  1950. package/dist/utils/test/fixtures/invitation.d.ts +0 -10
  1951. package/dist/utils/test/fixtures/invitation.js +0 -47
  1952. package/dist/utils/test/fixtures/invitation.js.map +0 -1
  1953. package/dist/utils/test/fixtures/nlpentity.d.ts +0 -6
  1954. package/dist/utils/test/fixtures/nlpentity.js +0 -49
  1955. package/dist/utils/test/fixtures/nlpentity.js.map +0 -1
  1956. package/dist/utils/test/fixtures/nlpsample.d.ts +0 -9
  1957. package/dist/utils/test/fixtures/nlpsample.js +0 -66
  1958. package/dist/utils/test/fixtures/nlpsample.js.map +0 -1
  1959. package/dist/utils/test/fixtures/nlpsampleentity.d.ts +0 -5
  1960. package/dist/utils/test/fixtures/nlpsampleentity.js +0 -74
  1961. package/dist/utils/test/fixtures/nlpsampleentity.js.map +0 -1
  1962. package/dist/utils/test/fixtures/nlpvalue.d.ts +0 -5
  1963. package/dist/utils/test/fixtures/nlpvalue.js +0 -92
  1964. package/dist/utils/test/fixtures/nlpvalue.js.map +0 -1
  1965. package/dist/utils/test/mocks/block.d.ts +0 -27
  1966. package/dist/utils/test/mocks/block.js +0 -355
  1967. package/dist/utils/test/mocks/block.js.map +0 -1
  1968. package/dist/utils/test/mocks/conversation.d.ts +0 -8
  1969. package/dist/utils/test/mocks/conversation.js +0 -54
  1970. package/dist/utils/test/mocks/conversation.js.map +0 -1
  1971. package/dist/utils/test/mocks/nlp.d.ts +0 -4
  1972. package/dist/utils/test/mocks/nlp.js +0 -49
  1973. package/dist/utils/test/mocks/nlp.js.map +0 -1
  1974. package/dist/utils/types/misc.d.ts +0 -1
  1975. package/dist/utils/types/misc.js +0 -3
  1976. package/dist/utils/types/misc.js.map +0 -1
  1977. package/src/analytics/controllers/bot-stats.controller.ts +0 -133
  1978. package/src/analytics/dto/bot-stats.dto.ts +0 -116
  1979. package/src/analytics/entities/bot-stats.entity.ts +0 -114
  1980. package/src/analytics/repositories/bot-stats.repository.ts +0 -96
  1981. package/src/analytics/services/bot-stats.service.ts +0 -203
  1982. package/src/analytics/utilities/index.ts +0 -8
  1983. package/src/channel/channel.middleware.ts +0 -33
  1984. package/src/channel/lib/EventWrapper.ts +0 -410
  1985. package/src/chat/constants/block.ts +0 -18
  1986. package/src/chat/constants/conversation.ts +0 -30
  1987. package/src/chat/controllers/block.controller.ts +0 -334
  1988. package/src/chat/controllers/category.controller.ts +0 -162
  1989. package/src/chat/controllers/context-var.controller.ts +0 -157
  1990. package/src/chat/dto/block.dto.ts +0 -320
  1991. package/src/chat/dto/category.dto.ts +0 -88
  1992. package/src/chat/dto/context-var.dto.ts +0 -64
  1993. package/src/chat/dto/conversation.dto.ts +0 -115
  1994. package/src/chat/entities/block.entity.ts +0 -367
  1995. package/src/chat/entities/category.entity.ts +0 -54
  1996. package/src/chat/entities/context-var.entity.ts +0 -71
  1997. package/src/chat/entities/conversation.entity.ts +0 -68
  1998. package/src/chat/repositories/block.repository.ts +0 -164
  1999. package/src/chat/repositories/category.repository.ts +0 -36
  2000. package/src/chat/repositories/context-var.repository.ts +0 -36
  2001. package/src/chat/repositories/conversation.repository.ts +0 -47
  2002. package/src/chat/seeds/category.seed-model.ts +0 -13
  2003. package/src/chat/seeds/category.seed.ts +0 -24
  2004. package/src/chat/seeds/context-var.seed-model.ts +0 -18
  2005. package/src/chat/seeds/context-var.seed.ts +0 -27
  2006. package/src/chat/services/block.service.ts +0 -815
  2007. package/src/chat/services/bot.service.ts +0 -713
  2008. package/src/chat/services/category.service.ts +0 -24
  2009. package/src/chat/services/context-var.service.ts +0 -57
  2010. package/src/chat/services/conversation.service.ts +0 -212
  2011. package/src/chat/types/capture-var.ts +0 -17
  2012. package/src/chat/types/context.ts +0 -33
  2013. package/src/chat/types/pattern.ts +0 -77
  2014. package/src/chat/types/position.ts +0 -14
  2015. package/src/chat/types/subscriberContext.ts +0 -13
  2016. package/src/extensions/channels/console/i18n/en/label.json +0 -21
  2017. package/src/extensions/channels/console/i18n/en/title.json +0 -3
  2018. package/src/extensions/channels/console/i18n/fr/label.json +0 -21
  2019. package/src/extensions/channels/console/i18n/fr/title.json +0 -3
  2020. package/src/extensions/channels/console/settings.ts +0 -78
  2021. package/src/extensions/channels/web/i18n/en/label.json +0 -21
  2022. package/src/extensions/channels/web/i18n/en/title.json +0 -3
  2023. package/src/extensions/channels/web/i18n/fr/label.json +0 -21
  2024. package/src/extensions/channels/web/i18n/fr/title.json +0 -3
  2025. package/src/extensions/channels/web/settings.ts +0 -92
  2026. package/src/extensions/channels/web/wrapper.ts +0 -322
  2027. package/src/extensions/helpers/llm-nlu/globals.d.ts +0 -20
  2028. package/src/extensions/helpers/llm-nlu/i18n/en/help.json +0 -5
  2029. package/src/extensions/helpers/llm-nlu/i18n/en/label.json +0 -5
  2030. package/src/extensions/helpers/llm-nlu/i18n/en/title.json +0 -3
  2031. package/src/extensions/helpers/llm-nlu/i18n/fr/help.json +0 -5
  2032. package/src/extensions/helpers/llm-nlu/i18n/fr/label.json +0 -5
  2033. package/src/extensions/helpers/llm-nlu/i18n/fr/title.json +0 -3
  2034. package/src/extensions/helpers/llm-nlu/index.helper.ts +0 -162
  2035. package/src/extensions/helpers/llm-nlu/package.json +0 -8
  2036. package/src/extensions/helpers/llm-nlu/settings.ts +0 -45
  2037. package/src/extensions/helpers/local-storage/settings.ts +0 -15
  2038. package/src/extensions/plugins/.gitkeep +0 -0
  2039. package/src/helper/lib/base-flow-escape-helper.ts +0 -50
  2040. package/src/helper/lib/base-nlp-helper.ts +0 -389
  2041. package/src/i18n/controllers/i18n.controller.ts +0 -37
  2042. package/src/nlp/controllers/nlp-entity.controller.ts +0 -238
  2043. package/src/nlp/controllers/nlp-sample.controller.ts +0 -409
  2044. package/src/nlp/controllers/nlp-value.controller.ts +0 -207
  2045. package/src/nlp/dto/nlp-entity.dto.ts +0 -137
  2046. package/src/nlp/dto/nlp-sample-entity.dto.ts +0 -95
  2047. package/src/nlp/dto/nlp-sample.dto.ts +0 -148
  2048. package/src/nlp/dto/nlp-value.dto.ts +0 -158
  2049. package/src/nlp/entities/nlp-entity.entity.ts +0 -60
  2050. package/src/nlp/entities/nlp-sample-entity.entity.ts +0 -64
  2051. package/src/nlp/entities/nlp-sample.entity.ts +0 -52
  2052. package/src/nlp/entities/nlp-value.entity.ts +0 -93
  2053. package/src/nlp/index.ts +0 -57
  2054. package/src/nlp/nlp.module.ts +0 -59
  2055. package/src/nlp/repositories/nlp-entity.repository.ts +0 -36
  2056. package/src/nlp/repositories/nlp-sample-entity.repository.ts +0 -36
  2057. package/src/nlp/repositories/nlp-sample.repository.ts +0 -214
  2058. package/src/nlp/repositories/nlp-value.repository.ts +0 -139
  2059. package/src/nlp/seeds/nlp-entity.seed-model.ts +0 -16
  2060. package/src/nlp/seeds/nlp-entity.seed.ts +0 -27
  2061. package/src/nlp/seeds/nlp-value.seed-model.ts +0 -9
  2062. package/src/nlp/seeds/nlp-value.seed.ts +0 -47
  2063. package/src/nlp/services/nlp-entity.service.ts +0 -212
  2064. package/src/nlp/services/nlp-sample-entity.service.ts +0 -116
  2065. package/src/nlp/services/nlp-sample.service.ts +0 -382
  2066. package/src/nlp/services/nlp-value.service.ts +0 -264
  2067. package/src/nlp/services/nlp.service.ts +0 -311
  2068. package/src/nlp/types.ts +0 -45
  2069. package/src/plugins/base-block-plugin.ts +0 -73
  2070. package/src/plugins/base-event-plugin.ts +0 -20
  2071. package/src/plugins/base-plugin.service.ts +0 -29
  2072. package/src/plugins/index.ts +0 -19
  2073. package/src/plugins/map-types.ts +0 -23
  2074. package/src/plugins/plugins.module.ts +0 -41
  2075. package/src/plugins/plugins.service.ts +0 -101
  2076. package/src/plugins/types.ts +0 -41
  2077. package/src/templates/invitation.mjml +0 -42
  2078. package/src/user/dto/invitation.dto.ts +0 -65
  2079. package/src/user/entities/invitation.entity.ts +0 -61
  2080. package/src/user/repositories/invitation.repository.ts +0 -36
  2081. package/src/user/services/invitation.service.ts +0 -128
  2082. package/src/utils/constants/nlp.ts +0 -7
  2083. package/src/utils/helpers/fs.ts +0 -64
  2084. package/src/utils/helpers/zod-validation.ts +0 -12
  2085. package/src/utils/pipes/sanitize-query.pipe.ts +0 -57
  2086. package/src/utils/test/dummy/dummy.plugin.ts +0 -47
  2087. package/src/utils/test/dummy/settings.ts +0 -7
  2088. package/src/utils/test/errors/messages.ts +0 -8
  2089. package/src/utils/test/fixtures/block.ts +0 -243
  2090. package/src/utils/test/fixtures/botstats.ts +0 -66
  2091. package/src/utils/test/fixtures/category.ts +0 -68
  2092. package/src/utils/test/fixtures/contextvar.ts +0 -66
  2093. package/src/utils/test/fixtures/conversation.ts +0 -254
  2094. package/src/utils/test/fixtures/invitation.ts +0 -68
  2095. package/src/utils/test/fixtures/nlpentity.ts +0 -61
  2096. package/src/utils/test/fixtures/nlpsample.ts +0 -91
  2097. package/src/utils/test/fixtures/nlpsampleentity.ts +0 -99
  2098. package/src/utils/test/fixtures/nlpvalue.ts +0 -115
  2099. package/src/utils/test/mocks/block.ts +0 -395
  2100. package/src/utils/test/mocks/conversation.ts +0 -66
  2101. package/src/utils/test/mocks/nlp.ts +0 -55
  2102. package/src/utils/types/misc.ts +0 -7
  2103. /package/dist/analytics/utilities/{index.d.ts → a-month-ago.d.ts} +0 -0
@@ -5,113 +5,116 @@
5
5
  */
6
6
 
7
7
  import {
8
- BadRequestException,
9
8
  HttpException,
10
9
  HttpStatus,
10
+ Inject,
11
11
  Injectable,
12
+ OnModuleInit,
12
13
  } from '@nestjs/common';
13
- import { EventEmitter2, OnEvent } from '@nestjs/event-emitter';
14
- import bodyParser from 'body-parser';
15
- import { NextFunction, Request, Response } from 'express';
16
- import multer, { diskStorage, memoryStorage } from 'multer';
14
+ import { OnEvent } from '@nestjs/event-emitter';
15
+ import { Request, Response } from 'express';
17
16
  import { Socket } from 'socket.io';
18
- import { Raw } from 'typeorm';
19
17
  import { v4 as uuidv4 } from 'uuid';
20
18
 
21
19
  import { Attachment } from '@/attachment/dto/attachment.dto';
22
20
  import { AttachmentOrmEntity } from '@/attachment/entities/attachment.entity';
23
- import { AttachmentService } from '@/attachment/services/attachment.service';
24
21
  import {
25
22
  AttachmentAccess,
26
23
  AttachmentCreatedByRef,
27
24
  AttachmentResourceRef,
28
25
  } from '@/attachment/types';
29
- import { ChannelService } from '@/channel/channel.service';
30
26
  import ChannelHandler from '@/channel/lib/Handler';
27
+ import { MessageInboundEvent } from '@/channel/lib/inbound-events';
28
+ import {
29
+ inferOutgoingMessageEnvelope,
30
+ UnsupportedOutgoingFormatError,
31
+ } from '@/channel/lib/outbound';
32
+ import { ChannelAttachmentService } from '@/channel/services/channel-attachment.service';
31
33
  import { ChannelName } from '@/channel/types';
32
34
  import { MessageCreateDto } from '@/chat/dto/message.dto';
33
- import {
34
- Subscriber,
35
- SubscriberCreateDto,
36
- SubscriberFull,
37
- SubscriberStub,
38
- } from '@/chat/dto/subscriber.dto';
39
- import { VIEW_MORE_PAYLOAD } from '@/chat/helpers/constants';
35
+ import { Subscriber, SubscriberCreateDto } from '@/chat/dto/subscriber.dto';
36
+ import { Thread } from '@/chat/dto/thread.dto';
40
37
  import { MessageService } from '@/chat/services/message.service';
41
38
  import { SubscriberService } from '@/chat/services/subscriber.service';
42
- import { AttachmentRef } from '@/chat/types/attachment';
43
- import { Button, ButtonType, PayloadType } from '@/chat/types/button';
39
+ import { ThreadService } from '@/chat/services/thread.service';
40
+ import { PayloadType } from '@/chat/types/button';
44
41
  import {
45
42
  AnyMessage,
46
- ContentElement,
47
43
  IncomingMessage,
48
- IncomingMessageType,
49
44
  OutgoingMessage,
50
45
  OutgoingMessageFormat,
51
46
  StdEventType,
52
- StdOutgoingAttachmentMessage,
53
- StdOutgoingButtonsMessage,
54
47
  StdOutgoingEnvelope,
55
- StdOutgoingListMessage,
56
48
  StdOutgoingMessage,
57
- StdOutgoingQuickRepliesMessage,
58
- StdOutgoingTextMessage,
59
49
  } from '@/chat/types/message';
60
- import { BlockOptions } from '@/chat/types/options';
61
- import { ContentOrmEntity } from '@/cms/entities/content.entity';
50
+ import { ActionOptions } from '@/chat/types/options';
62
51
  import { MenuService } from '@/cms/services/menu.service';
63
52
  import { config } from '@/config';
64
- import { I18nService } from '@/i18n/services/i18n.service';
65
- import { LoggerService } from '@/logger/logger.service';
66
- import { SettingService } from '@/setting/services/setting.service';
67
53
  import { SocketRequest } from '@/websocket/utils/socket-request';
68
54
  import { SocketResponse } from '@/websocket/utils/socket-response';
69
55
  import { WebsocketGateway } from '@/websocket/websocket.gateway';
70
56
 
71
- import { WEB_CHANNEL_NAME, WEB_CHANNEL_NAMESPACE } from './settings';
57
+ import {
58
+ AttachmentMessageInboundEvent,
59
+ BaseWebInboundEvent,
60
+ createWebInboundEventDecoder,
61
+ WebInboundEventDecoder,
62
+ WebMessageInboundEvent,
63
+ } from './inbound';
64
+ import {
65
+ createWebOutboundMessageEncoder,
66
+ WebOutboundMessageEncoder,
67
+ } from './outbound';
72
68
  import { Web } from './types';
73
- import WebEventWrapper from './wrapper';
74
-
75
- // Handle multipart uploads (Long Pooling only)
76
- const upload = multer({
77
- limits: {
78
- fileSize: config.parameters.maxUploadSize,
79
- },
80
- storage: (() => {
81
- if (config.parameters.storageMode === 'memory') {
82
- return memoryStorage();
83
- } else {
84
- return diskStorage({});
85
- }
86
- })(),
87
- }).single('file'); // 'file' is the field name in the form
69
+ import { WEB_CHANNEL_NAME } from './web-channel.settings';
88
70
 
89
71
  @Injectable()
90
- export default abstract class BaseWebChannelHandler<
91
- N extends ChannelName,
92
- > extends ChannelHandler<N> {
93
- constructor(
94
- name: N,
95
- settingService: SettingService,
96
- channelService: ChannelService,
97
- logger: LoggerService,
98
- protected readonly eventEmitter: EventEmitter2,
99
- protected readonly i18n: I18nService,
100
- protected readonly subscriberService: SubscriberService,
101
- public readonly attachmentService: AttachmentService,
102
- protected readonly messageService: MessageService,
103
- protected readonly menuService: MenuService,
104
- protected readonly websocketGateway: WebsocketGateway,
105
- ) {
106
- super(name, settingService, channelService, logger);
72
+ export default abstract class BaseWebChannelHandler<N extends ChannelName>
73
+ extends ChannelHandler<N>
74
+ implements OnModuleInit
75
+ {
76
+ @Inject(SubscriberService)
77
+ protected readonly subscriberService: SubscriberService;
78
+
79
+ @Inject(MessageService)
80
+ protected readonly messageService: MessageService;
81
+
82
+ @Inject(MenuService)
83
+ protected readonly menuService: MenuService;
84
+
85
+ @Inject(WebsocketGateway)
86
+ protected readonly websocketGateway: WebsocketGateway;
87
+
88
+ @Inject(ThreadService)
89
+ protected readonly threadService: ThreadService;
90
+
91
+ @Inject(ChannelAttachmentService)
92
+ protected readonly channelAttachmentService: ChannelAttachmentService;
93
+
94
+ private outboundMessageEncoder!: WebOutboundMessageEncoder;
95
+
96
+ private inboundEventDecoder!: WebInboundEventDecoder<N>;
97
+
98
+ constructor(name: N) {
99
+ super(name);
107
100
  }
108
101
 
109
- /**
110
- * No init needed for the moment
111
- *
112
- * @returns -
113
- */
114
- init(): void {
102
+ async onModuleInit() {
103
+ await super.onModuleInit();
104
+ const OutboundMessageEncoderProvider = createWebOutboundMessageEncoder(
105
+ this.getName(),
106
+ );
107
+ const InboundEventDecoderProvider = createWebInboundEventDecoder(
108
+ this.getName(),
109
+ );
110
+ [this.outboundMessageEncoder, this.inboundEventDecoder] = await Promise.all(
111
+ [
112
+ this.createModuleRef(OutboundMessageEncoderProvider),
113
+ this.createModuleRef(InboundEventDecoderProvider) as Promise<
114
+ WebInboundEventDecoder<N>
115
+ >,
116
+ ],
117
+ );
115
118
  this.logger.debug('initialization ...');
116
119
  }
117
120
 
@@ -123,7 +126,6 @@ export default abstract class BaseWebChannelHandler<
123
126
  @OnEvent('hook:websocket:connection', { async: true })
124
127
  async onWebSocketConnection(client: Socket) {
125
128
  try {
126
- const settings = await this.getSettings();
127
129
  const handshake = client.handshake;
128
130
  const { channel } = handshake.query;
129
131
  const profile = client.request.session.web?.profile;
@@ -133,17 +135,33 @@ export default abstract class BaseWebChannelHandler<
133
135
  }
134
136
 
135
137
  let messages: Web.Message[] | undefined;
138
+ let threadId: string | undefined;
136
139
 
137
- if (profile?.foreign_id) {
138
- await client.join(profile.foreign_id);
139
- const messagesHistory =
140
- await this.messageService.findHistoryUntilDate(profile);
141
- messages = await this.formatMessages(
142
- messagesHistory.reverse() as unknown as AnyMessage[],
143
- );
140
+ if (profile?.foreignId) {
141
+ await client.join(profile.foreignId);
142
+ const thread = await this.threadService.resolveThread({
143
+ subscriberId: profile.id,
144
+ explicitThreadId: client.request.session.web?.threadId,
145
+ });
146
+ threadId = thread?.id;
147
+ const currentWebSession = client.request.session.web;
148
+ client.request.session.web = {
149
+ profile: currentWebSession?.profile,
150
+ threadId,
151
+ };
152
+ if (thread) {
153
+ const messagesHistory =
154
+ await this.messageService.findHistoryUntilDate(thread);
155
+ messages = await this.formatMessages(
156
+ messagesHistory.reverse() as AnyMessage[],
157
+ );
158
+ } else {
159
+ messages = [];
160
+ }
144
161
  }
145
162
 
146
163
  this.logger.debug('WS connected .. sending settings');
164
+ const settings = await this.getSettings();
147
165
 
148
166
  try {
149
167
  const menu = await this.menuService.getTree();
@@ -151,12 +169,18 @@ export default abstract class BaseWebChannelHandler<
151
169
  client.emit('settings', {
152
170
  menu,
153
171
  profile,
172
+ thread_id: threadId ?? null,
154
173
  messages,
155
174
  ...settings,
156
175
  });
157
176
  } catch (err) {
158
177
  this.logger.warn('Unable to retrieve menu ', err);
159
- client.emit('settings', { profile, messages, ...settings });
178
+ client.emit('settings', {
179
+ profile,
180
+ thread_id: threadId ?? null,
181
+ messages,
182
+ ...settings,
183
+ });
160
184
  }
161
185
  } catch (err) {
162
186
  this.logger.error('Unable to initiate websocket connection', err);
@@ -174,9 +198,7 @@ export default abstract class BaseWebChannelHandler<
174
198
  message: 'Internal Server Error',
175
199
  }
176
200
  ) as SocketResponse;
177
- const subscriber = socket.request.session.web?.profile as
178
- | Subscriber
179
- | undefined;
201
+ const subscriber = socket.request.session.web?.profile;
180
202
 
181
203
  if (socket.handshake.query.channel !== this.getName() || !subscriber) {
182
204
  return;
@@ -193,14 +215,14 @@ export default abstract class BaseWebChannelHandler<
193
215
  */
194
216
  private async formatIncomingHistoryMessage(
195
217
  incoming: IncomingMessage,
196
- ): Promise<Web.IncomingMessageBase> {
218
+ ): Promise<Web.InboundMessageBase> {
197
219
  // Format incoming message
198
220
  if ('type' in incoming.message) {
199
221
  if (incoming.message.type === PayloadType.location) {
200
222
  const coordinates = incoming.message.coordinates;
201
223
 
202
224
  return {
203
- type: Web.IncomingMessageType.location,
225
+ type: Web.InboundMessageType.location,
204
226
  data: {
205
227
  coordinates: {
206
228
  lat: coordinates.lat,
@@ -215,16 +237,19 @@ export default abstract class BaseWebChannelHandler<
215
237
  : incoming.message.attachment;
216
238
 
217
239
  return {
218
- type: Web.IncomingMessageType.file,
240
+ type: Web.InboundMessageType.file,
219
241
  data: {
220
242
  type: attachmentPayload.type,
221
- url: await this.getPublicUrl(attachmentPayload.payload),
243
+ url: await this.channelAttachmentService.getPublicUrl(
244
+ this.getName(),
245
+ attachmentPayload.payload,
246
+ ),
222
247
  },
223
248
  };
224
249
  }
225
250
  } else {
226
251
  return {
227
- type: Web.IncomingMessageType.text,
252
+ type: Web.InboundMessageType.text,
228
253
  data: incoming.message,
229
254
  };
230
255
  }
@@ -238,27 +263,16 @@ export default abstract class BaseWebChannelHandler<
238
263
  */
239
264
  private async formatOutgoingHistoryMessage(
240
265
  outgoing: OutgoingMessage,
241
- ): Promise<Web.OutgoingMessageBase> {
242
- // Format outgoing message
243
- if ('buttons' in outgoing.message) {
244
- return this._buttonsFormat(outgoing.message);
245
- } else if ('attachment' in outgoing.message) {
246
- return this._attachmentFormat(outgoing.message);
247
- } else if ('quickReplies' in outgoing.message) {
248
- return this._quickRepliesFormat(outgoing.message);
249
- } else if ('options' in outgoing.message) {
250
- if (outgoing.message.options.display === 'carousel') {
251
- return await this._carouselFormat(outgoing.message, {
252
- content: outgoing.message.options,
253
- });
254
- } else {
255
- return await this._listFormat(outgoing.message, {
256
- content: outgoing.message.options,
257
- });
258
- }
259
- } else {
260
- return this._textFormat(outgoing.message);
261
- }
266
+ ): Promise<Web.OutboundMessageBase> {
267
+ const envelope = inferOutgoingMessageEnvelope(outgoing.message);
268
+ const options: ActionOptions =
269
+ 'options' in outgoing.message
270
+ ? {
271
+ content: outgoing.message.options,
272
+ }
273
+ : {};
274
+
275
+ return await this.outboundMessageEncoder.encode(envelope, options);
262
276
  }
263
277
 
264
278
  /**
@@ -310,6 +324,50 @@ export default abstract class BaseWebChannelHandler<
310
324
  return formattedMessages;
311
325
  }
312
326
 
327
+ private normalizeThreadId(raw: unknown): string | undefined {
328
+ if (typeof raw !== 'string') {
329
+ return undefined;
330
+ }
331
+ const value = raw.trim();
332
+
333
+ return value.length > 0 ? value : undefined;
334
+ }
335
+
336
+ private getThreadIdFromQuery(req: SocketRequest): string | undefined {
337
+ const raw = req.query.thread_id;
338
+ const candidate = Array.isArray(raw) ? raw[0] : raw;
339
+
340
+ return this.normalizeThreadId(candidate);
341
+ }
342
+
343
+ private getThreadIdFromBody(req: SocketRequest): string | undefined {
344
+ const body = req.body as { thread_id?: unknown } | undefined;
345
+
346
+ return this.normalizeThreadId(body?.thread_id);
347
+ }
348
+
349
+ private async resolveThreadForHistory(
350
+ req: SocketRequest,
351
+ ): Promise<Thread | null> {
352
+ const profile = req.session.web?.profile;
353
+ if (!profile?.id) {
354
+ return null;
355
+ }
356
+
357
+ const explicitThreadId =
358
+ this.getThreadIdFromQuery(req) ?? this.getThreadIdFromBody(req);
359
+ const thread = await this.threadService.resolveThread({
360
+ subscriberId: profile.id,
361
+ explicitThreadId,
362
+ });
363
+
364
+ if (req.session.web) {
365
+ req.session.web.threadId = thread?.id;
366
+ }
367
+
368
+ return thread;
369
+ }
370
+
313
371
  /**
314
372
  * Fetches the messaging history from the DB.
315
373
  * @param req - Either an HTTP Express request or a WS SocketRequest (synthetic)
@@ -319,48 +377,19 @@ export default abstract class BaseWebChannelHandler<
319
377
  * Fetches the last 'n' messages for the session profile up to the given date.
320
378
  */
321
379
  protected async fetchHistory(
322
- req: Request | SocketRequest,
380
+ req: SocketRequest,
323
381
  until: Date = new Date(),
324
382
  n: number = 30,
325
383
  ): Promise<Web.Message[]> {
326
- const profile = req.session.web?.profile;
327
- if (profile) {
384
+ const thread = await this.resolveThreadForHistory(req);
385
+ if (thread) {
328
386
  const messages = await this.messageService.findHistoryUntilDate(
329
- profile,
387
+ thread,
330
388
  until,
331
389
  n,
332
390
  );
333
391
 
334
- return await this.formatMessages(
335
- messages.reverse() as unknown as AnyMessage[],
336
- );
337
- }
338
-
339
- return [];
340
- }
341
-
342
- /**
343
- * Poll new messages by a given start datetime
344
- * @param req - HTTP Express Request
345
- * @param since - Date after which to fetch
346
- * @param n - Number of messages to fetch
347
- * @returns Promise resolving to an array of messages.
348
- * Fetches the last 'n' new messages for the session profile since the given date.
349
- */
350
- private async pollMessages(
351
- req: Request,
352
- since: Date = new Date(10e14),
353
- n: number = 30,
354
- ): Promise<Web.Message[]> {
355
- const profile = req.session.web?.profile;
356
- if (profile) {
357
- const messages = await this.messageService.findHistorySinceDate(
358
- profile,
359
- since,
360
- n,
361
- );
362
-
363
- return await this.formatMessages(messages as unknown as AnyMessage[]);
392
+ return await this.formatMessages(messages.reverse() as AnyMessage[]);
364
393
  }
365
394
 
366
395
  return [];
@@ -372,12 +401,10 @@ export default abstract class BaseWebChannelHandler<
372
401
  * @param req
373
402
  * @param res
374
403
  */
375
- private async validateCors(
376
- req: Request | SocketRequest,
404
+ private async ensureValidCors(
405
+ req: SocketRequest,
377
406
  res: Response | SocketResponse,
378
407
  ) {
379
- const settings = await this.getSettings<typeof WEB_CHANNEL_NAMESPACE>();
380
-
381
408
  // Check if we have an origin header...
382
409
  if (!req.headers?.origin) {
383
410
  this.logger.debug('No origin ', req.headers);
@@ -390,6 +417,7 @@ export default abstract class BaseWebChannelHandler<
390
417
  throw new Error('CORS - Invalid origin!');
391
418
  }
392
419
 
420
+ const settings = await this.getSettings<typeof WEB_CHANNEL_NAME>();
393
421
  // Get the allowed origins
394
422
  const origins: string[] = settings.allowed_domains.split(',');
395
423
  const foundOrigin = origins
@@ -439,50 +467,53 @@ export default abstract class BaseWebChannelHandler<
439
467
  * @param req
440
468
  * @param res
441
469
  */
442
- private validateSession(
443
- req: Request | SocketRequest,
470
+ private async validateSession(
471
+ req: SocketRequest,
444
472
  res: Response | SocketResponse,
445
- next: <S extends SubscriberStub>(profile: S) => void,
446
- ) {
447
- if (!req.session.web?.profile?.id) {
448
- this.logger.warn('No session ID to be found!', req.session);
473
+ ): Promise<Subscriber | null> {
474
+ if (req.session.web?.profile?.id) {
475
+ return req.session.web.profile;
476
+ }
449
477
 
450
- return res
451
- .status(403)
452
- .json({ err: 'Web Channel Handler : Unauthorized!' });
453
- } else if (
454
- (this.isSocketRequest(req) &&
455
- !!req.isSocket !== req.session.web.isSocket) ||
456
- !Array.isArray(req.session.web.messageQueue)
457
- ) {
458
- this.logger.warn(
459
- 'Mixed channel request or invalid session data!',
460
- req.session,
461
- );
478
+ const body = req.body as { author?: unknown; data?: unknown } | undefined;
479
+ const authorForeignId =
480
+ typeof body?.author === 'string' && body.author.trim().length > 0
481
+ ? body.author.trim()
482
+ : undefined;
462
483
 
463
- return res
464
- .status(403)
465
- .json({ err: 'Web Channel Handler : Unauthorized!' });
466
- }
467
- next(req.session.web?.profile);
468
- }
484
+ if (authorForeignId) {
485
+ try {
486
+ const subscriber =
487
+ await this.subscriberService.findOneByForeignId(authorForeignId);
488
+ if (subscriber) {
489
+ const thread = await this.threadService.resolveThread({
490
+ subscriberId: subscriber.id,
491
+ explicitThreadId:
492
+ this.getThreadIdFromBody(req) ?? this.getThreadIdFromQuery(req),
493
+ });
494
+ req.session.web = {
495
+ profile: subscriber,
496
+ threadId: thread?.id,
497
+ };
469
498
 
470
- /**
471
- * Perform all security measures on the request
472
- *
473
- * @param req
474
- * @param res
475
- */
476
- protected async checkRequest(
477
- req: Request | SocketRequest,
478
- res: Response | SocketResponse,
479
- ) {
480
- try {
481
- await this.validateCors(req, res);
482
- } catch (err) {
483
- this.logger.warn('Attempt to access from an unauthorized origin', err);
484
- throw new Error('Unauthorized, invalid origin !');
499
+ this.logger.debug(
500
+ `Recovered missing web session from author ${authorForeignId}`,
501
+ );
502
+
503
+ return subscriber;
504
+ }
505
+ } catch (error) {
506
+ this.logger.warn(
507
+ `Unable to recover missing session from author ${authorForeignId}`,
508
+ error,
509
+ );
510
+ }
485
511
  }
512
+
513
+ this.logger.warn('No session ID to be found!', req.session);
514
+ res.status(403).json({ err: 'Web Channel Handler : Unauthorized!' });
515
+
516
+ return null;
486
517
  }
487
518
 
488
519
  /**
@@ -492,28 +523,31 @@ export default abstract class BaseWebChannelHandler<
492
523
  *
493
524
  * @returns Subscriber's profile
494
525
  */
495
- protected async getOrCreateSession(
496
- req: Request | SocketRequest,
497
- ): Promise<SubscriberFull> {
526
+ protected async getOrCreateSession(req: SocketRequest): Promise<Subscriber> {
498
527
  const data = req.query;
499
528
  // Subscriber has already a session
500
529
  const sessionProfile = req.session.web?.profile;
501
530
  if (sessionProfile) {
502
- const subscriber = await this.subscriberService.findOneAndPopulate(
531
+ const subscriber = await this.subscriberService.findOne(
503
532
  sessionProfile.id,
504
533
  );
505
534
  if (!subscriber || !req.session.web) {
506
535
  throw new Error('Subscriber session was not persisted in DB');
507
536
  }
537
+ const thread = await this.threadService.resolveThread({
538
+ subscriberId: subscriber.id,
539
+ explicitThreadId: req.session.web.threadId,
540
+ });
508
541
  req.session.web.profile = subscriber;
542
+ req.session.web.threadId = thread?.id;
509
543
 
510
544
  return subscriber;
511
545
  }
512
546
 
513
547
  const newProfile: SubscriberCreateDto = {
514
- foreign_id: this.generateId(),
515
- first_name: data.first_name ? data.first_name.toString() : 'Anon.',
516
- last_name: data.last_name ? data.last_name.toString() : 'Web User',
548
+ foreignId: this.generateId(),
549
+ firstName: data.first_name ? data.first_name.toString() : 'Anon.',
550
+ lastName: data.last_name ? data.last_name.toString() : 'Web User',
517
551
  assignedTo: null,
518
552
  assignedAt: null,
519
553
  lastvisit: new Date(),
@@ -529,95 +563,16 @@ export default abstract class BaseWebChannelHandler<
529
563
  gender: 'male',
530
564
  country: '',
531
565
  labels: [],
532
- context: { vars: {} },
533
- };
534
- const subscriber = await this.subscriberService.create(newProfile);
535
- // Init session
536
- const profile: SubscriberFull = {
537
- ...subscriber,
538
- labels: [],
539
- assignedTo: null,
540
- avatar: null,
541
566
  };
567
+ const profile = await this.subscriberService.create(newProfile);
542
568
 
543
569
  req.session.web = {
544
570
  profile,
545
- isSocket: this.isSocketRequest(req),
546
- messageQueue: [],
547
- polling: false,
548
571
  };
549
572
 
550
573
  return profile;
551
574
  }
552
575
 
553
- /**
554
- * Return message queue (using by long polling case only)
555
- *
556
- * @param req HTTP Express Request
557
- * @param res HTTP Express Response
558
- */
559
- private getMessageQueue(req: Request, res: Response) {
560
- // Polling not authorized when using websockets
561
- if (this.isSocketRequest(req)) {
562
- this.logger.warn('Polling not authorized when using websockets');
563
-
564
- return res
565
- .status(403)
566
- .json({ err: 'Polling not authorized when using websockets' });
567
- }
568
- // Session must be active
569
- if (!(req.session && req.session.web && req.session.web?.profile?.id)) {
570
- this.logger.warn('Must be connected to poll messages');
571
-
572
- return res
573
- .status(403)
574
- .json({ err: 'Polling not authorized : Must be connected' });
575
- }
576
-
577
- // Can only request polling once at a time
578
- if (req.session && req.session.web && req.session.web.polling) {
579
- this.logger.warn('Poll rejected ... already requested');
580
-
581
- return res
582
- .status(403)
583
- .json({ err: 'Poll rejected ... already requested' });
584
- }
585
-
586
- req.session.web.polling = true;
587
-
588
- const fetchMessages = async (req: Request, res: Response, retrials = 1) => {
589
- try {
590
- if (!req.query.since)
591
- throw new BadRequestException(`QueryParam 'since' is missing`);
592
-
593
- const since = new Date(req.query.since.toString());
594
- const messages = await this.pollMessages(req, since);
595
- if (messages.length === 0 && retrials <= 5) {
596
- // No messages found, retry after 5 sec
597
- setTimeout(async () => {
598
- await fetchMessages(req, res, retrials * 2);
599
- }, retrials * 1000);
600
- } else if (req.session.web) {
601
- req.session.web.polling = false;
602
-
603
- return res.status(200).json(messages.map((msg) => ['message', msg]));
604
- } else {
605
- this.logger.error('Polling failed .. no session data');
606
-
607
- return res.status(500).json({ err: 'No session data' });
608
- }
609
- } catch (err) {
610
- if (req.session.web) {
611
- req.session.web.polling = false;
612
- }
613
- this.logger.error('Polling failed', err);
614
-
615
- return res.status(500).json({ err: 'Polling failed' });
616
- }
617
- };
618
- fetchMessages(req, res);
619
- }
620
-
621
576
  /**
622
577
  * Allow the subscription to a web's webhook after verification
623
578
  *
@@ -625,28 +580,27 @@ export default abstract class BaseWebChannelHandler<
625
580
  * @param res
626
581
  */
627
582
  protected async subscribe(
628
- req: Request | SocketRequest,
583
+ req: SocketRequest,
629
584
  res: Response | SocketResponse,
630
585
  ) {
631
- this.logger.debug('subscribe (isSocket=' + this.isSocketRequest(req) + ')');
586
+ this.logger.debug('subscribe (isSocket=true)');
632
587
  try {
633
588
  const profile = await this.getOrCreateSession(req);
634
- // Join socket room when using websocket
635
- if (this.isSocketRequest(req)) {
636
- try {
637
- await req.socket.join(profile.foreign_id);
638
- } catch (err) {
639
- this.logger.error('Unable to subscribe via websocket', err);
640
- }
589
+ try {
590
+ await req.socket.join(profile.foreignId);
591
+ } catch (err) {
592
+ this.logger.error('Unable to subscribe via websocket', err);
641
593
  }
642
594
  // Fetch message history
643
595
  const criteria =
644
- 'since' in req.query
645
- ? req.query.since // Long polling case
646
- : req.body?.since || undefined; // Websocket case
596
+ 'since' in req.query ? req.query.since : req.body?.since || undefined;
647
597
  const messages = await this.fetchHistory(req, criteria);
648
598
 
649
- return res.status(200).json({ profile, messages });
599
+ return res.status(200).json({
600
+ profile,
601
+ messages,
602
+ thread_id: req.session.web?.threadId ?? null,
603
+ });
650
604
  } catch (err) {
651
605
  this.logger.warn('Unable to subscribe ', err);
652
606
 
@@ -665,24 +619,23 @@ export default abstract class BaseWebChannelHandler<
665
619
  */
666
620
  async handleWsUpload(req: SocketRequest): Promise<Attachment | null> {
667
621
  try {
668
- const { type, data } = req.body as Web.IncomingMessage;
622
+ const { type, data } = req.body as Web.InboundMessage;
669
623
 
670
624
  if (!req.session.web?.profile?.id) {
671
- this.logger.debug('No session');
625
+ this.logger.debug('No session provided');
672
626
 
673
627
  return null;
674
628
  }
675
629
 
676
630
  // Check if any file is provided
677
- if (
678
- type !== Web.IncomingMessageType.file ||
679
- !('file' in data) ||
680
- !data.file
681
- ) {
631
+ if (type !== Web.InboundMessageType.file) {
682
632
  this.logger.debug('No files provided');
683
633
 
684
634
  return null;
685
635
  }
636
+ if (!('file' in data) || !data.file) {
637
+ throw new Error('File payload is missing');
638
+ }
686
639
 
687
640
  const size = Buffer.byteLength(data.file);
688
641
 
@@ -705,74 +658,6 @@ export default abstract class BaseWebChannelHandler<
705
658
  }
706
659
  }
707
660
 
708
- /**
709
- * Handles file upload via HTTP multipart/form-data requests.
710
- *
711
- * @param req - The Express HTTP request.
712
- * @param _res - The Express HTTP response.
713
- * @returns A Promise that resolves to the stored `Attachment`, or `null`/`undefined`
714
- * if the session is invalid or no file is provided.
715
- * @throws Error when storing the uploaded file fails.
716
- */
717
- async handleWebUpload(
718
- req: Request,
719
- _res: Response,
720
- ): Promise<Attachment | null | undefined> {
721
- try {
722
- if (!req.session.web?.profile?.id) {
723
- this.logger.debug('Upload denied, no session is defined');
724
-
725
- return null;
726
- }
727
-
728
- // Check if any file is provided
729
- if (!req.file) {
730
- this.logger.debug('No files provided');
731
-
732
- return null;
733
- }
734
-
735
- return await this.attachmentService.store(req.file, {
736
- name: req.file.originalname,
737
- size: req.file.size,
738
- type: req.file.mimetype,
739
- resourceRef: AttachmentResourceRef.MessageAttachment,
740
- access: AttachmentAccess.Private,
741
- createdByRef: AttachmentCreatedByRef.Subscriber,
742
- createdBy: req.session.web.profile.id,
743
- });
744
- } catch (err) {
745
- this.logger.error('Unable to store uploaded file', err);
746
- throw err;
747
- }
748
- }
749
-
750
- /**
751
- * Upload file as attachment if provided
752
- *
753
- * @param req Either a HTTP Express request or a WS request (Synthetic Object)
754
- * @param res Either a HTTP Express response or a WS response (Synthetic Object)
755
- * @returns A Promise that resolves to the uploaded Attachment, or `null`/`undefined` if no file is uploaded.
756
- * @throws Error Propagated from underlying upload handlers.
757
- */
758
- async handleUpload(
759
- req: Request | SocketRequest,
760
- res: Response | SocketResponse,
761
- ): Promise<Attachment | null | undefined> {
762
- // Check if any file is provided
763
- if (!req.session.web) {
764
- this.logger.debug('No session provided');
765
-
766
- return null;
767
- }
768
-
769
- if (this.isSocketRequest(req)) {
770
- return this.handleWsUpload(req);
771
- } else {
772
- return this.handleWebUpload(req, res as Response);
773
- }
774
- }
775
-
776
661
  /**
777
662
  * Returns the request client IP address
778
663
  *
@@ -780,17 +665,8 @@ export default abstract class BaseWebChannelHandler<
780
665
  *
781
666
  * @returns IP Address
782
667
  */
783
- protected getIpAddress(req: Request | SocketRequest): string {
784
- if (this.isSocketRequest(req)) {
785
- return req.socket.handshake.address;
786
- } else if (Array.isArray(req.ips) && req.ips.length > 0) {
787
- // If config.http.trustProxy is enabled, this variable contains the IP addresses
788
- // in this request's "X-Forwarded-For" header as an array of the IP address strings.
789
- // Otherwise an empty array is returned.
790
- return req.ips.join(',');
791
- } else {
792
- return req.ip || '0.0.0.0';
793
- }
668
+ protected getIpAddress(req: SocketRequest): string {
669
+ return req.socket.handshake.address;
794
670
  }
795
671
 
796
672
  /**
@@ -801,10 +677,10 @@ export default abstract class BaseWebChannelHandler<
801
677
  * @returns The subscriber channel's attributes
802
678
  */
803
679
  getChannelAttributes(
804
- req: Request | SocketRequest,
680
+ req: SocketRequest,
805
681
  ): SubscriberChannelDict[typeof WEB_CHANNEL_NAME] {
806
682
  return {
807
- isSocket: this.isSocketRequest(req),
683
+ isSocket: true,
808
684
  ipAddress: this.getIpAddress(req),
809
685
  agent: req.headers['user-agent'] || 'browser',
810
686
  };
@@ -816,85 +692,167 @@ export default abstract class BaseWebChannelHandler<
816
692
  * @param req Either a HTTP Express request or a WS request (Synthetic Object)
817
693
  * @param res Either a HTTP Express response or a WS response (Synthetic Object)
818
694
  */
819
- _handleEvent(
820
- req: Request | SocketRequest,
695
+ async handleEvent(
696
+ req: SocketRequest,
821
697
  res: Response | SocketResponse,
822
- ): void {
823
- // @TODO: perform payload validation
698
+ workflowId?: string,
699
+ ): Promise<void> {
824
700
  if (!req.body) {
825
701
  this.logger.debug('Empty body');
826
702
  res.status(400).json({ err: 'Web Channel Handler : Bad Request!' });
827
703
 
828
704
  return;
829
- } else {
705
+ } else if (
706
+ typeof req.body === 'object' &&
707
+ req.body !== null &&
708
+ 'data' in req.body
709
+ ) {
830
710
  // Parse json form data (in case of content-type multipart/form-data)
831
- req.body.data =
832
- typeof req.body.data === 'string'
833
- ? JSON.parse(req.body.data)
834
- : req.body.data;
711
+ const payload = req.body as { data?: unknown };
712
+ payload.data =
713
+ typeof payload.data === 'string'
714
+ ? JSON.parse(payload.data)
715
+ : payload.data;
835
716
  }
836
717
 
837
- this.validateSession(req, res, async (profile) => {
838
- // Set data in file upload case
839
- const body: Web.IncomingMessage = req.body;
840
- const channelAttrs = this.getChannelAttributes(req);
841
- const event = new WebEventWrapper<N>(this, body, channelAttrs);
842
- if (event._adapter.eventType === StdEventType.message) {
718
+ const profile = await this.validateSession(req, res);
719
+ if (!profile) {
720
+ return;
721
+ }
722
+ const channelAttrs = this.getChannelAttributes(req);
723
+ let events: Array<
724
+ BaseWebInboundEvent<N> | WebMessageInboundEvent<N, Web.InboundMessage>
725
+ >;
726
+ try {
727
+ events = this.inboundEventDecoder.createEvents(
728
+ req.body,
729
+ channelAttrs,
730
+ ) as Array<
731
+ BaseWebInboundEvent<N> | WebMessageInboundEvent<N, Web.InboundMessage>
732
+ >;
733
+ } catch (err) {
734
+ this.logger.warn('Invalid event payload', err);
735
+
736
+ return void res
737
+ .status(400)
738
+ .json({ err: 'Web Channel Handler : Bad Request!' });
739
+ }
740
+
741
+ if (!events.length) {
742
+ return void res
743
+ .status(400)
744
+ .json({ err: 'Web Channel Handler : Bad Request!' });
745
+ }
746
+
747
+ const explicitThreadId =
748
+ this.getThreadIdFromBody(req) ??
749
+ this.getThreadIdFromQuery(req) ??
750
+ req.session.web?.threadId;
751
+ const responseBody = events[0].getRaw();
752
+
753
+ for (const event of events) {
754
+ event.setHandler(this);
755
+ if (explicitThreadId) {
756
+ event.setThreadId(explicitThreadId);
757
+ }
758
+ event.setInitiator(profile);
759
+ event.setWorkflowId(workflowId);
760
+
761
+ if (event.getEventType() === StdEventType.message) {
762
+ const messageEvent = event as WebMessageInboundEvent<
763
+ N,
764
+ Web.InboundMessage
765
+ >;
766
+
843
767
  // Handle upload when files are provided
844
- if (event._adapter.messageType === IncomingMessageType.attachments) {
768
+ if (messageEvent instanceof AttachmentMessageInboundEvent) {
845
769
  try {
846
- const attachment = await this.handleUpload(req, res);
770
+ const attachment = await this.handleWsUpload(req);
771
+
847
772
  if (attachment) {
848
- event._adapter.attachment = attachment;
849
- event._adapter.raw.data = {
850
- type: AttachmentOrmEntity.getTypeByMime(attachment.type),
851
- url: await this.getPublicUrl(attachment),
852
- };
773
+ messageEvent.setUploadedAttachment(attachment);
774
+ messageEvent.setUploadedRawData(
775
+ AttachmentOrmEntity.getTypeByMime(attachment.type),
776
+ await this.channelAttachmentService.getPublicUrl(
777
+ this.getName(),
778
+ attachment,
779
+ ),
780
+ );
853
781
  }
854
782
  } catch (err) {
855
783
  this.logger.warn('Unable to upload file ', err);
856
784
 
857
- return res
785
+ return void res
858
786
  .status(403)
859
787
  .json({ err: 'Web Channel Handler : File upload failed!' });
860
788
  }
861
789
  }
862
790
 
863
- // Handler sync message sent by chatbot
864
- if (body.sync && body.author === 'chatbot') {
791
+ // Handle sync message sent by chatbot
792
+ if (messageEvent.isSyncFromChatbot()) {
793
+ const thread = await this.threadService.resolveThread({
794
+ subscriberId: profile.id,
795
+ explicitThreadId,
796
+ });
797
+ if (!thread) {
798
+ return void res.status(409).json({
799
+ err: 'Web Channel Handler : No thread available before first user message',
800
+ });
801
+ }
802
+
803
+ messageEvent.setThreadId(thread.id);
804
+ if (req.session.web) {
805
+ req.session.web.threadId = thread.id;
806
+ }
865
807
  const sentMessage: MessageCreateDto = {
866
- mid: event.getId(),
867
- message: event.getMessage() as StdOutgoingMessage,
808
+ mid: messageEvent.getId(),
809
+ message: messageEvent.getMessage() as StdOutgoingMessage,
868
810
  recipient: profile.id,
811
+ thread: thread.id,
869
812
  read: true,
870
813
  delivery: true,
871
814
  };
872
- this.eventEmitter.emit('hook:chatbot:sent', sentMessage, event);
815
+ this.eventEmitter.emit(
816
+ 'hook:chatbot:sent',
817
+ sentMessage,
818
+ messageEvent,
819
+ );
873
820
 
874
- return res.status(200).json(event._adapter.raw);
875
- } else {
876
- // Generate unique ID and handle message
877
- event._adapter.raw.mid = this.generateId();
878
- // Force author id from session
879
- event._adapter.raw.author = profile.foreign_id;
821
+ continue;
880
822
  }
881
- }
882
823
 
883
- event.setSender(profile as unknown as Subscriber);
824
+ // Generate unique ID and handle message
825
+ messageEvent.setMessageId(this.generateId());
826
+ // Force author id from session
827
+ messageEvent.setAuthorForeignId(profile.foreignId);
828
+ // Use a server-side timestamp so realtime clients can sort deterministically.
829
+ messageEvent.setCreatedAt(new Date());
830
+
831
+ this.broadcast(profile, StdEventType.message, messageEvent.getRaw());
832
+ await this.eventEmitter.emitAsync('hook:chatbot:message', messageEvent);
833
+ const resolvedThreadId = messageEvent.getThreadId();
834
+
835
+ if (resolvedThreadId) {
836
+ messageEvent.setThreadIdOnRaw(resolvedThreadId);
837
+ if (req.session.web) {
838
+ req.session.web.threadId = resolvedThreadId;
839
+ }
840
+ }
841
+
842
+ continue;
843
+ }
884
844
 
885
845
  const type = event.getEventType();
886
- if (type) {
887
- this.broadcast(
888
- profile as unknown as Subscriber,
889
- type,
890
- event._adapter.raw,
891
- );
892
- this.eventEmitter.emit(`hook:chatbot:${type}`, event);
893
- } else {
894
- this.logger.error('Webhook received unknown event ', event);
846
+ const threadId = event.getThreadId();
847
+
848
+ if (threadId) {
849
+ event.setThreadIdOnRaw(threadId);
895
850
  }
896
- res.status(200).json(event._adapter.raw);
897
- });
851
+ this.broadcast(profile, type, event.getRaw());
852
+ this.eventEmitter.emit(`hook:chatbot:${type}`, event);
853
+ }
854
+
855
+ res.status(200).json(responseBody);
898
856
  }
899
857
 
900
858
  /**
@@ -913,40 +871,25 @@ export default abstract class BaseWebChannelHandler<
913
871
  * @param req Either a HTTP Express request or a WS request (Synthetic Object)
914
872
  * @param res Either a HTTP Express response or a WS response (Synthetic Object)
915
873
  */
916
- async handle(req: Request | SocketRequest, res: Response | SocketResponse) {
917
- const settings = await this.getSettings();
918
- // Web Channel messaging can be done through websockets or long-polling
874
+ async handle(
875
+ req: Request | SocketRequest,
876
+ res: Response | SocketResponse,
877
+ workflowId?: string,
878
+ ) {
879
+ if (!this.isSocketRequest(req)) {
880
+ this.logger.warn(
881
+ 'Web channel over HTTP is no longer supported. Use Socket.IO transport.',
882
+ );
883
+
884
+ return res
885
+ .status(403)
886
+ .json({ err: 'Web Channel Handler : Unauthorized!' });
887
+ }
888
+
919
889
  try {
920
- await this.checkRequest(req, res);
890
+ await this.ensureValidCors(req, res);
921
891
  if (req.method === 'GET') {
922
- if (!this.isSocketRequest(req) && req.query._get) {
923
- switch (req.query._get) {
924
- case 'settings':
925
- this.logger.debug('connected .. sending settings');
926
- try {
927
- const menu = await this.menuService.getTree();
928
-
929
- return res.status(200).json({
930
- menu,
931
- server_date: new Date().toISOString(),
932
- ...settings,
933
- });
934
- } catch (err) {
935
- this.logger.warn('Unable to retrieve menu ', err);
936
-
937
- return res.status(500).json({ err: 'Unable to retrieve menu' });
938
- }
939
- case 'polling':
940
- // Handle polling when user is not connected via websocket
941
- return this.getMessageQueue(req, res as Response);
942
- default:
943
- this.logger.error('Webhook received unknown command');
944
-
945
- return res
946
- .status(500)
947
- .json({ err: 'Webhook received unknown command' });
948
- }
949
- } else if (req.query._disconnect) {
892
+ if (req.query._disconnect) {
950
893
  req.session.web = undefined;
951
894
 
952
895
  return res.status(200).json({ _disconnect: true });
@@ -956,7 +899,7 @@ export default abstract class BaseWebChannelHandler<
956
899
  }
957
900
  } else {
958
901
  // Handle incoming messages (through POST)
959
- return this._handleEvent(req, res);
902
+ return this.handleEvent(req, res, workflowId);
960
903
  }
961
904
  } catch (err) {
962
905
  this.logger.warn('Request check failed', err);
@@ -973,298 +916,7 @@ export default abstract class BaseWebChannelHandler<
973
916
  * @returns UUID
974
917
  */
975
918
  generateId(): string {
976
- return 'web-' + uuidv4();
977
- }
978
-
979
- /**
980
- * Formats a text message that will be sent to the widget
981
- *
982
- * @param message - A text to be sent to the end user
983
- * @param _options - might contain additional settings
984
- *
985
- * @returns A ready to be sent text message
986
- */
987
- _textFormat(
988
- message: StdOutgoingTextMessage,
989
- _options?: BlockOptions,
990
- ): Web.OutgoingMessageBase {
991
- return {
992
- type: Web.OutgoingMessageType.text,
993
- data: message,
994
- };
995
- }
996
-
997
- /**
998
- * Formats a text + quick replies message that can be sent back
999
- *
1000
- * @param message - A text + quick replies to be sent to the end user
1001
- * @param _options - might contain additional settings
1002
- *
1003
- * @returns A ready to be sent text message
1004
- */
1005
- _quickRepliesFormat(
1006
- message: StdOutgoingQuickRepliesMessage,
1007
- _options?: BlockOptions,
1008
- ): Web.OutgoingMessageBase {
1009
- return {
1010
- type: Web.OutgoingMessageType.quick_replies,
1011
- data: {
1012
- text: message.text,
1013
- quick_replies: message.quickReplies,
1014
- },
1015
- };
1016
- }
1017
-
1018
- /**
1019
- * Formats a text + buttons message that can be sent back
1020
- *
1021
- * @param message - A text + buttons to be sent to the end user
1022
- * @param _options - Might contain additional settings
1023
- *
1024
- * @returns A formatted Object understandable by the widget
1025
- */
1026
- _buttonsFormat(
1027
- message: StdOutgoingButtonsMessage,
1028
- _options?: BlockOptions,
1029
- ): Web.OutgoingMessageBase {
1030
- return {
1031
- type: Web.OutgoingMessageType.buttons,
1032
- data: {
1033
- text: message.text,
1034
- buttons: message.buttons,
1035
- },
1036
- };
1037
- }
1038
-
1039
- /**
1040
- * Formats an attachment + quick replies message that can be sent to the widget
1041
- *
1042
- * @param message - An attachment + quick replies to be sent to the end user
1043
- * @param _options - Might contain additional settings
1044
- *
1045
- * @returns A ready to be sent attachment message
1046
- */
1047
- async _attachmentFormat(
1048
- message: StdOutgoingAttachmentMessage,
1049
- _options?: BlockOptions,
1050
- ): Promise<Web.OutgoingMessageBase> {
1051
- const payload: Web.OutgoingMessageBase = {
1052
- type: Web.OutgoingMessageType.file,
1053
- data: {
1054
- type: message.attachment.type,
1055
- url: await this.getPublicUrl(message.attachment.payload),
1056
- },
1057
- };
1058
- if (message.quickReplies && message.quickReplies.length > 0) {
1059
- return {
1060
- ...payload,
1061
- data: {
1062
- ...payload.data,
1063
- quick_replies: message.quickReplies,
1064
- } as Web.OutgoingFileMessageData,
1065
- };
1066
- }
1067
-
1068
- return payload;
1069
- }
1070
-
1071
- /**
1072
- * Formats a collection of items to be sent to the widget (carousel/list)
1073
- *
1074
- * @param data - A list of data items to be sent to the end user
1075
- * @param options - Might contain additional settings
1076
- *
1077
- * @returns An array of elements object
1078
- */
1079
- async _formatElements(
1080
- data: ContentElement[],
1081
- options: BlockOptions,
1082
- ): Promise<Web.MessageElement[]> {
1083
- if (!options.content || !options.content.fields) {
1084
- throw new Error('Content options are missing the fields');
1085
- }
1086
-
1087
- const fields = options.content.fields;
1088
- const buttons: Button[] = options.content.buttons;
1089
- const result: Web.MessageElement[] = [];
1090
-
1091
- for (const item of data) {
1092
- const element: Web.MessageElement = {
1093
- title: item[fields.title],
1094
- buttons: item.buttons || [],
1095
- };
1096
-
1097
- if (fields.subtitle && item[fields.subtitle]) {
1098
- element.subtitle = item[fields.subtitle];
1099
- }
1100
-
1101
- if (fields.image_url && item[fields.image_url]) {
1102
- const attachmentRef =
1103
- typeof item[fields.image_url] === 'string'
1104
- ? { url: item[fields.image_url] }
1105
- : (item[fields.image_url].payload as AttachmentRef);
1106
- element.image_url = await this.getPublicUrl(attachmentRef);
1107
- }
1108
-
1109
- buttons.forEach((button: Button, index) => {
1110
- const btn = { ...button };
1111
- if (btn.type === ButtonType.web_url) {
1112
- // Get built-in or an external URL from custom field
1113
- const urlField = fields.url;
1114
- btn.url =
1115
- urlField && item[urlField]
1116
- ? item[urlField]
1117
- : ContentOrmEntity.getUrl(item);
1118
- if (!btn.url.startsWith('http')) {
1119
- btn.url = 'https://' + btn.url;
1120
- }
1121
- // Set default action the same as the first web_url button
1122
- if (!element.default_action) {
1123
- const { title: _title, ...defaultAction } = btn;
1124
- element.default_action = defaultAction;
1125
- }
1126
- } else {
1127
- if (
1128
- 'action_payload' in fields &&
1129
- fields.action_payload &&
1130
- fields.action_payload in item
1131
- ) {
1132
- btn.payload = btn.title + ':' + item[fields.action_payload];
1133
- } else {
1134
- const postback = ContentOrmEntity.getPayload(item);
1135
- btn.payload = btn.title + ':' + postback;
1136
- }
1137
- }
1138
- // Set custom title for first button if provided
1139
- if (index === 0 && fields.action_title && item[fields.action_title]) {
1140
- btn.title = item[fields.action_title];
1141
- }
1142
- element.buttons?.push(btn);
1143
- });
1144
-
1145
- if (Array.isArray(element.buttons) && element.buttons.length === 0) {
1146
- delete element.buttons;
1147
- }
1148
-
1149
- result.push(element);
1150
- }
1151
-
1152
- return result;
1153
- }
1154
-
1155
- /**
1156
- * Format a list of elements
1157
- *
1158
- * @param message - Contains elements to be sent to the end user
1159
- * @param options - Might contain additional settings
1160
- *
1161
- * @returns A ready to be sent list template message
1162
- */
1163
- async _listFormat(
1164
- message: StdOutgoingListMessage,
1165
- options: BlockOptions,
1166
- ): Promise<Web.OutgoingMessageBase> {
1167
- const data = message.elements || [];
1168
- const pagination = message.pagination;
1169
- let buttons: Button[] = [],
1170
- elements: Web.MessageElement[] = [];
1171
-
1172
- // Items count min check
1173
- if (!data.length) {
1174
- this.logger.error('Insufficient content count (must be >= 0 for list)');
1175
- throw new Error('Insufficient content count (list >= 0)');
1176
- }
1177
-
1178
- // Toggle "View More" button (check if there's more items to display)
1179
- if (pagination.total - pagination.skip - pagination.limit > 0) {
1180
- buttons = [
1181
- {
1182
- type: ButtonType.postback,
1183
- title: this.i18n.t('View More'),
1184
- payload: VIEW_MORE_PAYLOAD,
1185
- },
1186
- ];
1187
- }
1188
-
1189
- // Populate items (elements/cards) with content
1190
- elements = await this._formatElements(data, options);
1191
- const topElementStyle = options.content?.top_element_style
1192
- ? {
1193
- top_element_style: options.content?.top_element_style,
1194
- }
1195
- : {};
1196
-
1197
- return {
1198
- type: Web.OutgoingMessageType.list,
1199
- data: {
1200
- elements,
1201
- buttons,
1202
- ...topElementStyle,
1203
- },
1204
- };
1205
- }
1206
-
1207
- /**
1208
- * Format a carousel message
1209
- *
1210
- * @param message - Contains elements to be sent to the end user
1211
- * @param options - Might contain additional settings
1212
- *
1213
- * @returns A carousel ready to be sent as a message
1214
- */
1215
- async _carouselFormat(
1216
- message: StdOutgoingListMessage,
1217
- options: BlockOptions,
1218
- ): Promise<Web.OutgoingMessageBase> {
1219
- const data = message.elements || [];
1220
- // Items count min check
1221
- if (data.length === 0) {
1222
- this.logger.error(
1223
- 'Insufficient content count (must be > 0 for carousel)',
1224
- );
1225
- throw new Error('Insufficient content count (carousel > 0)');
1226
- }
1227
-
1228
- // Populate items (elements/cards) with content
1229
- const elements = await this._formatElements(data, options);
1230
-
1231
- return {
1232
- type: Web.OutgoingMessageType.carousel,
1233
- data: {
1234
- elements,
1235
- },
1236
- };
1237
- }
1238
-
1239
- /**
1240
- * Creates an widget compliant data structure for any message envelope
1241
- *
1242
- * @param envelope - The message standard envelope
1243
- * @param options - The block options related to the message
1244
- *
1245
- * @returns A template filled with its payload
1246
- */
1247
- async _formatMessage(
1248
- envelope: StdOutgoingEnvelope,
1249
- options: BlockOptions,
1250
- ): Promise<Web.OutgoingMessageBase> {
1251
- switch (envelope.format) {
1252
- case OutgoingMessageFormat.attachment:
1253
- return await this._attachmentFormat(envelope.message, options);
1254
- case OutgoingMessageFormat.buttons:
1255
- return this._buttonsFormat(envelope.message, options);
1256
- case OutgoingMessageFormat.carousel:
1257
- return await this._carouselFormat(envelope.message, options);
1258
- case OutgoingMessageFormat.list:
1259
- return await this._listFormat(envelope.message, options);
1260
- case OutgoingMessageFormat.quickReplies:
1261
- return this._quickRepliesFormat(envelope.message, options);
1262
- case OutgoingMessageFormat.text:
1263
- return this._textFormat(envelope.message, options);
1264
-
1265
- default:
1266
- throw new Error('Unknown message format');
1267
- }
919
+ return `${this.name}-${uuidv4()}`;
1268
920
  }
1269
921
 
1270
922
  /**
@@ -1281,12 +933,7 @@ export default abstract class BaseWebChannelHandler<
1281
933
  content: any,
1282
934
  excludedRooms: string[] = [],
1283
935
  ): void {
1284
- const channelData = subscriber.channel;
1285
- if (channelData.data?.isSocket) {
1286
- this.websocketGateway.broadcast(subscriber, type, content, excludedRooms);
1287
- } else {
1288
- // Do nothing, messages will be retrieved via polling
1289
- }
936
+ this.websocketGateway.broadcast(subscriber, type, content, excludedRooms);
1290
937
  }
1291
938
 
1292
939
  /**
@@ -1295,25 +942,28 @@ export default abstract class BaseWebChannelHandler<
1295
942
  * @param event - Incoming event/message being responded to
1296
943
  * @param envelope - The message to be sent {format, message}
1297
944
  * @param options - Might contain additional settings
1298
- * @param _context - Contextual data
1299
945
  *
1300
946
  * @returns The web's response, otherwise an error
1301
947
  */
1302
948
  async sendMessage(
1303
- event: WebEventWrapper<N>,
949
+ event: MessageInboundEvent<N>,
1304
950
  envelope: StdOutgoingEnvelope,
1305
- options: BlockOptions,
1306
- _context?: any,
951
+ options: ActionOptions,
1307
952
  ): Promise<{ mid: string }> {
1308
- const messageBase: Web.OutgoingMessageBase = await this._formatMessage(
953
+ if (envelope.format === OutgoingMessageFormat.system) {
954
+ throw new UnsupportedOutgoingFormatError(envelope.format);
955
+ }
956
+
957
+ const messageBase = await this.outboundMessageEncoder.encode(
1309
958
  envelope,
1310
- options,
959
+ options ?? {},
1311
960
  );
1312
- const subscriber = event.getSender();
1313
- const message: Web.OutgoingMessage = {
961
+ const subscriber = event.getInitiator();
962
+ const message: Web.OutboundMessage = {
1314
963
  ...messageBase,
1315
964
  mid: this.generateId(),
1316
965
  author: 'chatbot',
966
+ thread_id: event.getThreadId(),
1317
967
  createdAt: new Date(),
1318
968
  handover: !!(options && options.assignTo),
1319
969
  };
@@ -1374,9 +1024,9 @@ export default abstract class BaseWebChannelHandler<
1374
1024
  * @returns The web's response, otherwise an error
1375
1025
  */
1376
1026
  async getSubscriberData(
1377
- event: WebEventWrapper<N>,
1027
+ event: MessageInboundEvent<N>,
1378
1028
  ): Promise<SubscriberCreateDto> {
1379
- const sender = event.getSender();
1029
+ const sender = event.getInitiator();
1380
1030
  const {
1381
1031
  id: _id,
1382
1032
  createdAt: _createdAt,
@@ -1398,11 +1048,8 @@ export default abstract class BaseWebChannelHandler<
1398
1048
  * @param req - The HTTP express request object.
1399
1049
  * @return True, if requester is authorized to download the attachment
1400
1050
  */
1401
- public async hasDownloadAccess(
1402
- attachment: AttachmentOrmEntity,
1403
- req: Request,
1404
- ) {
1405
- const subscriberId = req.session.web?.profile?.id as string;
1051
+ public async hasDownloadAccess(attachment: Attachment, req: Request) {
1052
+ const subscriberId = req.session.web?.profile?.id;
1406
1053
  if (attachment.access === AttachmentAccess.Public) {
1407
1054
  return true;
1408
1055
  } else if (!subscriberId) {
@@ -1419,61 +1066,10 @@ export default abstract class BaseWebChannelHandler<
1419
1066
  return true;
1420
1067
  } else {
1421
1068
  // Or, he would like to access an attachment sent to him privately
1422
- const message = await this.messageService.findOne({
1423
- where: {
1424
- recipient: { id: subscriberId },
1425
- // "message" is your JSONB column
1426
- message: Raw(
1427
- (alias) => `
1428
- (
1429
- jsonb_typeof(${alias}->'attachment') = 'object'
1430
- AND (${alias}->'attachment'->'payload'->>'id') = :attId
1431
- ) OR (
1432
- jsonb_typeof(${alias}->'attachment') = 'array'
1433
- AND EXISTS (
1434
- SELECT 1 FROM jsonb_array_elements(${alias}->'attachment') a
1435
- WHERE a->'payload'->>'id' = :attId
1436
- )
1437
- )
1438
- `,
1439
- { attId: attachment.id },
1440
- ),
1441
- },
1442
- });
1443
-
1444
- return !!message;
1445
- }
1446
- }
1447
-
1448
- /**
1449
- * Web channel middleware
1450
- *
1451
- * @param req Express Request
1452
- * @param res Express Response
1453
- * @param next Callback function
1454
- */
1455
- async middleware(req: Request, res: Response, next: NextFunction) {
1456
- if (!this.isSocketRequest(req)) {
1457
- if (req.headers['content-type']?.includes('multipart/form-data')) {
1458
- // Handle multipart uploads (Long Pooling only)
1459
- return upload(req, res, next);
1460
- } else if (req.headers['content-type']?.includes('text/plain')) {
1461
- // Handle plain text payloads as JSON (retro-compatibility)
1462
- const textParser = bodyParser.text({ type: 'text/plain' });
1463
-
1464
- return textParser(req, res, () => {
1465
- try {
1466
- req.body =
1467
- typeof req.body === 'string' ? JSON.parse(req.body) : req.body;
1468
- next();
1469
- } catch (err) {
1470
- next(err);
1471
- }
1472
- });
1473
- }
1069
+ return await this.messageService.isAttachmentAccessibleBySubscriber(
1070
+ subscriberId,
1071
+ attachment.id,
1072
+ );
1474
1073
  }
1475
-
1476
- // Do nothing
1477
- next();
1478
1074
  }
1479
1075
  }