@botonic/core 1.0.0-dev.2 → 2.23.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 (311) hide show
  1. package/CHANGELOG.md +226 -0
  2. package/README.md +7 -9
  3. package/package.json +19 -57
  4. package/src/index.d.ts +4 -0
  5. package/src/index.js +5 -0
  6. package/src/index.js.map +1 -0
  7. package/src/lib/core-bot/index.d.ts +33 -0
  8. package/src/lib/core-bot/index.js +113 -0
  9. package/src/lib/core-bot/index.js.map +1 -0
  10. package/src/lib/hubtype-service/handoff.d.ts +4 -0
  11. package/src/lib/hubtype-service/handoff.js +32 -0
  12. package/src/lib/hubtype-service/handoff.js.map +1 -0
  13. package/src/lib/hubtype-service/index.d.ts +10 -0
  14. package/src/lib/hubtype-service/index.js +96 -0
  15. package/src/lib/hubtype-service/index.js.map +1 -0
  16. package/src/lib/messages/button.d.ts +8 -0
  17. package/src/lib/messages/button.js +10 -0
  18. package/src/lib/messages/button.js.map +1 -0
  19. package/src/lib/plugins/index.d.ts +2 -0
  20. package/src/lib/plugins/index.js +23 -0
  21. package/src/lib/plugins/index.js.map +1 -0
  22. package/src/lib/routes/index.d.ts +0 -0
  23. package/src/lib/routes/index.js +2 -0
  24. package/src/lib/routes/index.js.map +1 -0
  25. package/src/lib/routes/router.d.ts +14 -0
  26. package/src/lib/routes/router.js +68 -0
  27. package/src/lib/routes/router.js.map +1 -0
  28. package/src/lib/routes/types.d.ts +15 -0
  29. package/src/lib/routes/types.js +2 -0
  30. package/src/lib/routes/types.js.map +1 -0
  31. package/{lib/cjs/utils.d.ts → src/lib/utils/index.d.ts} +0 -4
  32. package/{lib/esm/utils.js → src/lib/utils/index.js} +1 -34
  33. package/src/lib/utils/index.js.map +1 -0
  34. package/lib/cjs/constants.d.ts +0 -4
  35. package/lib/cjs/constants.js +0 -8
  36. package/lib/cjs/constants.js.map +0 -1
  37. package/lib/cjs/core-bot.d.ts +0 -36
  38. package/lib/cjs/core-bot.js +0 -96
  39. package/lib/cjs/core-bot.js.map +0 -1
  40. package/lib/cjs/debug/index.d.ts +0 -1
  41. package/lib/cjs/debug/index.js +0 -5
  42. package/lib/cjs/debug/index.js.map +0 -1
  43. package/lib/cjs/debug/inspector.d.ts +0 -24
  44. package/lib/cjs/debug/inspector.js +0 -72
  45. package/lib/cjs/debug/inspector.js.map +0 -1
  46. package/lib/cjs/handoff.d.ts +0 -67
  47. package/lib/cjs/handoff.js +0 -186
  48. package/lib/cjs/handoff.js.map +0 -1
  49. package/lib/cjs/hubtype-service.d.ts +0 -69
  50. package/lib/cjs/hubtype-service.js +0 -190
  51. package/lib/cjs/hubtype-service.js.map +0 -1
  52. package/lib/cjs/i18n.d.ts +0 -2
  53. package/lib/cjs/i18n.js +0 -11
  54. package/lib/cjs/i18n.js.map +0 -1
  55. package/lib/cjs/index.d.ts +0 -11
  56. package/lib/cjs/index.js +0 -15
  57. package/lib/cjs/index.js.map +0 -1
  58. package/lib/cjs/models/bot-state.d.ts +0 -11
  59. package/lib/cjs/models/bot-state.js +0 -3
  60. package/lib/cjs/models/bot-state.js.map +0 -1
  61. package/lib/cjs/models/channels.d.ts +0 -9
  62. package/lib/cjs/models/channels.js +0 -14
  63. package/lib/cjs/models/channels.js.map +0 -1
  64. package/lib/cjs/models/events/base-event.d.ts +0 -20
  65. package/lib/cjs/models/events/base-event.js +0 -17
  66. package/lib/cjs/models/events/base-event.js.map +0 -1
  67. package/lib/cjs/models/events/botonic-event.d.ts +0 -4
  68. package/lib/cjs/models/events/botonic-event.js +0 -3
  69. package/lib/cjs/models/events/botonic-event.js.map +0 -1
  70. package/lib/cjs/models/events/connection/connection-event.d.ts +0 -9
  71. package/lib/cjs/models/events/connection/connection-event.js +0 -9
  72. package/lib/cjs/models/events/connection/connection-event.js.map +0 -1
  73. package/lib/cjs/models/events/connection/index.d.ts +0 -1
  74. package/lib/cjs/models/events/connection/index.js +0 -5
  75. package/lib/cjs/models/events/connection/index.js.map +0 -1
  76. package/lib/cjs/models/events/index.d.ts +0 -4
  77. package/lib/cjs/models/events/index.js +0 -8
  78. package/lib/cjs/models/events/index.js.map +0 -1
  79. package/lib/cjs/models/events/integration/index.d.ts +0 -1
  80. package/lib/cjs/models/events/integration/index.js +0 -5
  81. package/lib/cjs/models/events/integration/index.js.map +0 -1
  82. package/lib/cjs/models/events/integration/integration-event.d.ts +0 -6
  83. package/lib/cjs/models/events/integration/integration-event.js +0 -3
  84. package/lib/cjs/models/events/integration/integration-event.js.map +0 -1
  85. package/lib/cjs/models/events/message/buttons.d.ts +0 -18
  86. package/lib/cjs/models/events/message/buttons.js +0 -3
  87. package/lib/cjs/models/events/message/buttons.js.map +0 -1
  88. package/lib/cjs/models/events/message/carousel.d.ts +0 -11
  89. package/lib/cjs/models/events/message/carousel.js +0 -3
  90. package/lib/cjs/models/events/message/carousel.js.map +0 -1
  91. package/lib/cjs/models/events/message/custom.d.ts +0 -6
  92. package/lib/cjs/models/events/message/custom.js +0 -3
  93. package/lib/cjs/models/events/message/custom.js.map +0 -1
  94. package/lib/cjs/models/events/message/index.d.ts +0 -9
  95. package/lib/cjs/models/events/message/index.js +0 -13
  96. package/lib/cjs/models/events/message/index.js.map +0 -1
  97. package/lib/cjs/models/events/message/location.d.ts +0 -6
  98. package/lib/cjs/models/events/message/location.js +0 -3
  99. package/lib/cjs/models/events/message/location.js.map +0 -1
  100. package/lib/cjs/models/events/message/media.d.ts +0 -18
  101. package/lib/cjs/models/events/message/media.js +0 -11
  102. package/lib/cjs/models/events/message/media.js.map +0 -1
  103. package/lib/cjs/models/events/message/message-event.d.ts +0 -30
  104. package/lib/cjs/models/events/message/message-event.js +0 -32
  105. package/lib/cjs/models/events/message/message-event.js.map +0 -1
  106. package/lib/cjs/models/events/message/postback.d.ts +0 -4
  107. package/lib/cjs/models/events/message/postback.js +0 -3
  108. package/lib/cjs/models/events/message/postback.js.map +0 -1
  109. package/lib/cjs/models/events/message/replies.d.ts +0 -7
  110. package/lib/cjs/models/events/message/replies.js +0 -3
  111. package/lib/cjs/models/events/message/replies.js.map +0 -1
  112. package/lib/cjs/models/events/message/text.d.ts +0 -8
  113. package/lib/cjs/models/events/message/text.js +0 -3
  114. package/lib/cjs/models/events/message/text.js.map +0 -1
  115. package/lib/cjs/models/index.d.ts +0 -6
  116. package/lib/cjs/models/index.js +0 -10
  117. package/lib/cjs/models/index.js.map +0 -1
  118. package/lib/cjs/models/legacy-types.d.ts +0 -184
  119. package/lib/cjs/models/legacy-types.js +0 -59
  120. package/lib/cjs/models/legacy-types.js.map +0 -1
  121. package/lib/cjs/models/session.d.ts +0 -3
  122. package/lib/cjs/models/session.js +0 -3
  123. package/lib/cjs/models/session.js.map +0 -1
  124. package/lib/cjs/models/user.d.ts +0 -14
  125. package/lib/cjs/models/user.js +0 -3
  126. package/lib/cjs/models/user.js.map +0 -1
  127. package/lib/cjs/output-parser/botonic-output-parser.d.ts +0 -16
  128. package/lib/cjs/output-parser/botonic-output-parser.js +0 -37
  129. package/lib/cjs/output-parser/botonic-output-parser.js.map +0 -1
  130. package/lib/cjs/output-parser/factory.d.ts +0 -4
  131. package/lib/cjs/output-parser/factory.js +0 -32
  132. package/lib/cjs/output-parser/factory.js.map +0 -1
  133. package/lib/cjs/output-parser/index.d.ts +0 -3
  134. package/lib/cjs/output-parser/index.js +0 -7
  135. package/lib/cjs/output-parser/index.js.map +0 -1
  136. package/lib/cjs/output-parser/parsers.d.ts +0 -22
  137. package/lib/cjs/output-parser/parsers.js +0 -147
  138. package/lib/cjs/output-parser/parsers.js.map +0 -1
  139. package/lib/cjs/plugins.d.ts +0 -6
  140. package/lib/cjs/plugins.js +0 -48
  141. package/lib/cjs/plugins.js.map +0 -1
  142. package/lib/cjs/routing/index.d.ts +0 -2
  143. package/lib/cjs/routing/index.js +0 -6
  144. package/lib/cjs/routing/index.js.map +0 -1
  145. package/lib/cjs/routing/router-utils.d.ts +0 -11
  146. package/lib/cjs/routing/router-utils.js +0 -89
  147. package/lib/cjs/routing/router-utils.js.map +0 -1
  148. package/lib/cjs/routing/router.d.ts +0 -54
  149. package/lib/cjs/routing/router.js +0 -319
  150. package/lib/cjs/routing/router.js.map +0 -1
  151. package/lib/cjs/utils.js +0 -90
  152. package/lib/cjs/utils.js.map +0 -1
  153. package/lib/esm/constants.d.ts +0 -4
  154. package/lib/esm/constants.js +0 -5
  155. package/lib/esm/constants.js.map +0 -1
  156. package/lib/esm/core-bot.d.ts +0 -36
  157. package/lib/esm/core-bot.js +0 -92
  158. package/lib/esm/core-bot.js.map +0 -1
  159. package/lib/esm/debug/index.d.ts +0 -1
  160. package/lib/esm/debug/index.js +0 -2
  161. package/lib/esm/debug/index.js.map +0 -1
  162. package/lib/esm/debug/inspector.d.ts +0 -24
  163. package/lib/esm/debug/inspector.js +0 -65
  164. package/lib/esm/debug/inspector.js.map +0 -1
  165. package/lib/esm/handoff.d.ts +0 -67
  166. package/lib/esm/handoff.js +0 -173
  167. package/lib/esm/handoff.js.map +0 -1
  168. package/lib/esm/hubtype-service.d.ts +0 -69
  169. package/lib/esm/hubtype-service.js +0 -185
  170. package/lib/esm/hubtype-service.js.map +0 -1
  171. package/lib/esm/i18n.d.ts +0 -2
  172. package/lib/esm/i18n.js +0 -7
  173. package/lib/esm/i18n.js.map +0 -1
  174. package/lib/esm/index.d.ts +0 -11
  175. package/lib/esm/index.js +0 -12
  176. package/lib/esm/index.js.map +0 -1
  177. package/lib/esm/models/bot-state.d.ts +0 -11
  178. package/lib/esm/models/bot-state.js +0 -2
  179. package/lib/esm/models/bot-state.js.map +0 -1
  180. package/lib/esm/models/channels.d.ts +0 -9
  181. package/lib/esm/models/channels.js +0 -11
  182. package/lib/esm/models/channels.js.map +0 -1
  183. package/lib/esm/models/events/base-event.d.ts +0 -20
  184. package/lib/esm/models/events/base-event.js +0 -14
  185. package/lib/esm/models/events/base-event.js.map +0 -1
  186. package/lib/esm/models/events/botonic-event.d.ts +0 -4
  187. package/lib/esm/models/events/botonic-event.js +0 -2
  188. package/lib/esm/models/events/botonic-event.js.map +0 -1
  189. package/lib/esm/models/events/connection/connection-event.d.ts +0 -9
  190. package/lib/esm/models/events/connection/connection-event.js +0 -6
  191. package/lib/esm/models/events/connection/connection-event.js.map +0 -1
  192. package/lib/esm/models/events/connection/index.d.ts +0 -1
  193. package/lib/esm/models/events/connection/index.js +0 -2
  194. package/lib/esm/models/events/connection/index.js.map +0 -1
  195. package/lib/esm/models/events/index.d.ts +0 -4
  196. package/lib/esm/models/events/index.js +0 -5
  197. package/lib/esm/models/events/index.js.map +0 -1
  198. package/lib/esm/models/events/integration/index.d.ts +0 -1
  199. package/lib/esm/models/events/integration/index.js +0 -2
  200. package/lib/esm/models/events/integration/index.js.map +0 -1
  201. package/lib/esm/models/events/integration/integration-event.d.ts +0 -6
  202. package/lib/esm/models/events/integration/integration-event.js +0 -2
  203. package/lib/esm/models/events/integration/integration-event.js.map +0 -1
  204. package/lib/esm/models/events/message/buttons.d.ts +0 -18
  205. package/lib/esm/models/events/message/buttons.js +0 -2
  206. package/lib/esm/models/events/message/buttons.js.map +0 -1
  207. package/lib/esm/models/events/message/carousel.d.ts +0 -11
  208. package/lib/esm/models/events/message/carousel.js +0 -2
  209. package/lib/esm/models/events/message/carousel.js.map +0 -1
  210. package/lib/esm/models/events/message/custom.d.ts +0 -6
  211. package/lib/esm/models/events/message/custom.js +0 -2
  212. package/lib/esm/models/events/message/custom.js.map +0 -1
  213. package/lib/esm/models/events/message/index.d.ts +0 -9
  214. package/lib/esm/models/events/message/index.js +0 -10
  215. package/lib/esm/models/events/message/index.js.map +0 -1
  216. package/lib/esm/models/events/message/location.d.ts +0 -6
  217. package/lib/esm/models/events/message/location.js +0 -2
  218. package/lib/esm/models/events/message/location.js.map +0 -1
  219. package/lib/esm/models/events/message/media.d.ts +0 -18
  220. package/lib/esm/models/events/message/media.js +0 -8
  221. package/lib/esm/models/events/message/media.js.map +0 -1
  222. package/lib/esm/models/events/message/message-event.d.ts +0 -30
  223. package/lib/esm/models/events/message/message-event.js +0 -29
  224. package/lib/esm/models/events/message/message-event.js.map +0 -1
  225. package/lib/esm/models/events/message/postback.d.ts +0 -4
  226. package/lib/esm/models/events/message/postback.js +0 -2
  227. package/lib/esm/models/events/message/postback.js.map +0 -1
  228. package/lib/esm/models/events/message/replies.d.ts +0 -7
  229. package/lib/esm/models/events/message/replies.js +0 -2
  230. package/lib/esm/models/events/message/replies.js.map +0 -1
  231. package/lib/esm/models/events/message/text.d.ts +0 -8
  232. package/lib/esm/models/events/message/text.js +0 -2
  233. package/lib/esm/models/events/message/text.js.map +0 -1
  234. package/lib/esm/models/index.d.ts +0 -6
  235. package/lib/esm/models/index.js +0 -7
  236. package/lib/esm/models/index.js.map +0 -1
  237. package/lib/esm/models/legacy-types.d.ts +0 -184
  238. package/lib/esm/models/legacy-types.js +0 -56
  239. package/lib/esm/models/legacy-types.js.map +0 -1
  240. package/lib/esm/models/session.d.ts +0 -3
  241. package/lib/esm/models/session.js +0 -2
  242. package/lib/esm/models/session.js.map +0 -1
  243. package/lib/esm/models/user.d.ts +0 -14
  244. package/lib/esm/models/user.js +0 -2
  245. package/lib/esm/models/user.js.map +0 -1
  246. package/lib/esm/output-parser/botonic-output-parser.d.ts +0 -16
  247. package/lib/esm/output-parser/botonic-output-parser.js +0 -33
  248. package/lib/esm/output-parser/botonic-output-parser.js.map +0 -1
  249. package/lib/esm/output-parser/factory.d.ts +0 -4
  250. package/lib/esm/output-parser/factory.js +0 -28
  251. package/lib/esm/output-parser/factory.js.map +0 -1
  252. package/lib/esm/output-parser/index.d.ts +0 -3
  253. package/lib/esm/output-parser/index.js +0 -4
  254. package/lib/esm/output-parser/index.js.map +0 -1
  255. package/lib/esm/output-parser/parsers.d.ts +0 -22
  256. package/lib/esm/output-parser/parsers.js +0 -130
  257. package/lib/esm/output-parser/parsers.js.map +0 -1
  258. package/lib/esm/plugins.d.ts +0 -6
  259. package/lib/esm/plugins.js +0 -43
  260. package/lib/esm/plugins.js.map +0 -1
  261. package/lib/esm/routing/index.d.ts +0 -2
  262. package/lib/esm/routing/index.js +0 -3
  263. package/lib/esm/routing/index.js.map +0 -1
  264. package/lib/esm/routing/router-utils.d.ts +0 -11
  265. package/lib/esm/routing/router-utils.js +0 -79
  266. package/lib/esm/routing/router-utils.js.map +0 -1
  267. package/lib/esm/routing/router.d.ts +0 -54
  268. package/lib/esm/routing/router.js +0 -315
  269. package/lib/esm/routing/router.js.map +0 -1
  270. package/lib/esm/utils.d.ts +0 -11
  271. package/lib/esm/utils.js.map +0 -1
  272. package/src/constants.ts +0 -6
  273. package/src/core-bot.ts +0 -181
  274. package/src/debug/index.ts +0 -1
  275. package/src/debug/inspector.ts +0 -102
  276. package/src/handoff.ts +0 -271
  277. package/src/hubtype-service.ts +0 -266
  278. package/src/i18n.ts +0 -12
  279. package/src/index.ts +0 -11
  280. package/src/models/bot-state.ts +0 -12
  281. package/src/models/channels.ts +0 -9
  282. package/src/models/events/base-event.ts +0 -22
  283. package/src/models/events/botonic-event.ts +0 -26
  284. package/src/models/events/connection/connection-event.ts +0 -11
  285. package/src/models/events/connection/index.ts +0 -1
  286. package/src/models/events/index.ts +0 -4
  287. package/src/models/events/integration/index.ts +0 -1
  288. package/src/models/events/integration/integration-event.ts +0 -13
  289. package/src/models/events/message/buttons.ts +0 -23
  290. package/src/models/events/message/carousel.ts +0 -13
  291. package/src/models/events/message/custom.ts +0 -7
  292. package/src/models/events/message/index.ts +0 -9
  293. package/src/models/events/message/location.ts +0 -7
  294. package/src/models/events/message/media.ts +0 -28
  295. package/src/models/events/message/message-event.ts +0 -37
  296. package/src/models/events/message/postback.ts +0 -5
  297. package/src/models/events/message/replies.ts +0 -8
  298. package/src/models/events/message/text.ts +0 -12
  299. package/src/models/index.ts +0 -6
  300. package/src/models/legacy-types.ts +0 -262
  301. package/src/models/session.ts +0 -3
  302. package/src/models/user.ts +0 -16
  303. package/src/output-parser/botonic-output-parser.ts +0 -38
  304. package/src/output-parser/factory.ts +0 -38
  305. package/src/output-parser/index.ts +0 -3
  306. package/src/output-parser/parsers.ts +0 -202
  307. package/src/plugins.ts +0 -59
  308. package/src/routing/index.ts +0 -2
  309. package/src/routing/router-utils.ts +0 -100
  310. package/src/routing/router.ts +0 -415
  311. package/src/utils.ts +0 -90
@@ -1,16 +0,0 @@
1
- import { BotonicEvent } from '../models';
2
- import { MessageParsingFactory } from './factory';
3
- export declare const TEXT_NODE_NAME = "text";
4
- export declare class BotonicOutputParser {
5
- private readonly factory;
6
- private static OPTIONS;
7
- constructor(factory?: MessageParsingFactory);
8
- xmlToMessageEvents(html: string): Partial<BotonicEvent>[];
9
- /**
10
- * Right now, when saving BotonicEvents to DataProvider, we need the standarized Botonic event
11
- * to be saved. This is, converting a botonic input like: '{id: 'msgId', data: 'rawData', payload: 'somePayload'}'
12
- * into a BotonicEvent with the expected properties.
13
- */
14
- inputToBotonicEvent(input: any): Partial<BotonicEvent>;
15
- private xmlToJSONMessages;
16
- }
@@ -1,37 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BotonicOutputParser = exports.TEXT_NODE_NAME = void 0;
4
- // eslint-disable-next-line import/named
5
- const fast_xml_parser_1 = require("fast-xml-parser");
6
- const html_entities_1 = require("html-entities");
7
- const factory_1 = require("./factory");
8
- exports.TEXT_NODE_NAME = 'text';
9
- class BotonicOutputParser {
10
- constructor(factory = new factory_1.MessageParsingFactory()) {
11
- this.factory = factory;
12
- }
13
- xmlToMessageEvents(html) {
14
- const jsonMessages = this.xmlToJSONMessages(html);
15
- return jsonMessages.map(msgToParse => this.factory.parse(msgToParse));
16
- }
17
- /**
18
- * Right now, when saving BotonicEvents to DataProvider, we need the standarized Botonic event
19
- * to be saved. This is, converting a botonic input like: '{id: 'msgId', data: 'rawData', payload: 'somePayload'}'
20
- * into a BotonicEvent with the expected properties.
21
- */
22
- inputToBotonicEvent(input) {
23
- return this.factory.parse(input);
24
- }
25
- xmlToJSONMessages(html) {
26
- return fast_xml_parser_1.parse(html, BotonicOutputParser.OPTIONS).message;
27
- }
28
- }
29
- exports.BotonicOutputParser = BotonicOutputParser;
30
- BotonicOutputParser.OPTIONS = {
31
- ignoreAttributes: false,
32
- attributeNamePrefix: '',
33
- textNodeName: exports.TEXT_NODE_NAME,
34
- arrayMode: true,
35
- attrValueProcessor: a => html_entities_1.decode(a),
36
- };
37
- //# sourceMappingURL=botonic-output-parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"botonic-output-parser.js","sourceRoot":"","sources":["../../../src/output-parser/botonic-output-parser.ts"],"names":[],"mappings":";;;AAAA,wCAAwC;AACxC,qDAAmD;AACnD,iDAAsC;AAGtC,uCAAiD;AAEpC,QAAA,cAAc,GAAG,MAAM,CAAA;AAEpC,MAAa,mBAAmB;IAS9B,YAA6B,UAAU,IAAI,+BAAqB,EAAE;QAArC,YAAO,GAAP,OAAO,CAA8B;IAAG,CAAC;IAEtE,kBAAkB,CAAC,IAAY;QAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QACjD,OAAO,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAA;IACvE,CAAC;IAED;;;;OAIG;IACH,mBAAmB,CAAC,KAAU;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC;IAEO,iBAAiB,CAAC,IAAS;QACjC,OAAO,uBAAK,CAAC,IAAI,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAA;IACzD,CAAC;;AA3BH,kDA4BC;AA3BgB,2BAAO,GAAwB;IAC5C,gBAAgB,EAAE,KAAK;IACvB,mBAAmB,EAAE,EAAE;IACvB,YAAY,EAAE,sBAAc;IAC5B,SAAS,EAAE,IAAI;IACf,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,sBAAM,CAAC,CAAC,CAAC;CACnC,CAAA"}
@@ -1,4 +0,0 @@
1
- import { BotonicEvent } from '../models';
2
- export declare class MessageParsingFactory {
3
- parse(msgToParse: any): Partial<BotonicEvent>;
4
- }
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MessageParsingFactory = void 0;
4
- const models_1 = require("../models");
5
- const parsers_1 = require("./parsers");
6
- class MessageParsingFactory {
7
- parse(msgToParse) {
8
- const type = msgToParse.type;
9
- const parsedMessage = parsers_1.parseMessage({ toParse: msgToParse });
10
- if (type === models_1.MessageEventTypes.TEXT) {
11
- return parsers_1.parseText(parsers_1.parseReplies(parsers_1.parseButtons(parsedMessage))).parsed;
12
- }
13
- if (type === models_1.MessageEventTypes.POSTBACK) {
14
- return parsers_1.parsePostback(parsedMessage).parsed;
15
- }
16
- if (models_1.MEDIA_TYPES.includes(type)) {
17
- return parsers_1.parseMedia(parsers_1.parseButtons(parsedMessage)).parsed;
18
- }
19
- if (type === models_1.MessageEventTypes.LOCATION) {
20
- return parsers_1.parseLocation(parsedMessage).parsed;
21
- }
22
- if (type === models_1.MessageEventTypes.CAROUSEL) {
23
- return parsers_1.parseCarousel(parsedMessage).parsed;
24
- }
25
- if (type === models_1.MessageEventTypes.CUSTOM) {
26
- return parsers_1.parseCustom(parsers_1.parseReplies(parsedMessage)).parsed;
27
- }
28
- throw new Error(`Parsing for type: '${type}' not implemented.`);
29
- }
30
- }
31
- exports.MessageParsingFactory = MessageParsingFactory;
32
- //# sourceMappingURL=factory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/output-parser/factory.ts"],"names":[],"mappings":";;;AAAA,sCAAwE;AACxE,uCAUkB;AAElB,MAAa,qBAAqB;IAChC,KAAK,CAAC,UAAe;QACnB,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAA;QAC5B,MAAM,aAAa,GAAG,sBAAY,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAA;QAC3D,IAAI,IAAI,KAAK,0BAAiB,CAAC,IAAI,EAAE;YACnC,OAAO,mBAAS,CAAC,sBAAY,CAAC,sBAAY,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;SACnE;QACD,IAAI,IAAI,KAAK,0BAAiB,CAAC,QAAQ,EAAE;YACvC,OAAO,uBAAa,CAAC,aAAa,CAAC,CAAC,MAAM,CAAA;SAC3C;QACD,IAAI,oBAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YAC9B,OAAO,oBAAU,CAAC,sBAAY,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAA;SACtD;QACD,IAAI,IAAI,KAAK,0BAAiB,CAAC,QAAQ,EAAE;YACvC,OAAO,uBAAa,CAAC,aAAa,CAAC,CAAC,MAAM,CAAA;SAC3C;QACD,IAAI,IAAI,KAAK,0BAAiB,CAAC,QAAQ,EAAE;YACvC,OAAO,uBAAa,CAAC,aAAa,CAAC,CAAC,MAAM,CAAA;SAC3C;QACD,IAAI,IAAI,KAAK,0BAAiB,CAAC,MAAM,EAAE;YACrC,OAAO,qBAAW,CAAC,sBAAY,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAA;SACvD;QACD,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,oBAAoB,CAAC,CAAA;IACjE,CAAC;CACF;AAxBD,sDAwBC"}
@@ -1,3 +0,0 @@
1
- export * from './botonic-output-parser';
2
- export * from './factory';
3
- export * from './parsers';
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./botonic-output-parser"), exports);
5
- tslib_1.__exportStar(require("./factory"), exports);
6
- tslib_1.__exportStar(require("./parsers"), exports);
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/output-parser/index.ts"],"names":[],"mappings":";;;AAAA,kEAAuC;AACvC,oDAAyB;AACzB,oDAAyB"}
@@ -1,22 +0,0 @@
1
- import { AudioMessageEvent, BotonicMessageEvent, Button, CarouselElement, CarouselMessageEvent, CustomMessageEvent, DocumentMessageEvent, ImageMessageEvent, LocationMessageEvent, PostbackMessageEvent, Reply, TextMessageEvent, VideoMessageEvent, WithButtons, WithReplies } from '../models';
2
- export declare function parseNumber(strNumber: string): number;
3
- export declare function parseBoolean(strNumber: string): boolean;
4
- export declare type ParseFunction<Out> = (args: {
5
- toParse: any;
6
- parsed?: any;
7
- }) => {
8
- toParse: any;
9
- parsed: Partial<Out>;
10
- };
11
- export declare const parseMessage: ParseFunction<BotonicMessageEvent>;
12
- export declare const parseButton: (button: any) => Button;
13
- export declare const parseButtons: ParseFunction<WithButtons>;
14
- export declare const parseReply: (reply: any) => Reply;
15
- export declare const parseReplies: ParseFunction<WithReplies>;
16
- export declare const parseText: ParseFunction<TextMessageEvent>;
17
- export declare const parsePostback: ParseFunction<PostbackMessageEvent>;
18
- export declare const parseMedia: ParseFunction<AudioMessageEvent | DocumentMessageEvent | ImageMessageEvent | VideoMessageEvent>;
19
- export declare const parseLocation: ParseFunction<LocationMessageEvent>;
20
- export declare const parseElement: (element: any) => CarouselElement;
21
- export declare const parseCarousel: ParseFunction<CarouselMessageEvent>;
22
- export declare const parseCustom: ParseFunction<CustomMessageEvent>;
@@ -1,147 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseCustom = exports.parseCarousel = exports.parseElement = exports.parseLocation = exports.parseMedia = exports.parsePostback = exports.parseText = exports.parseReplies = exports.parseReply = exports.parseButtons = exports.parseButton = exports.parseMessage = exports.parseBoolean = exports.parseNumber = void 0;
4
- const models_1 = require("../models");
5
- const botonic_output_parser_1 = require("./botonic-output-parser");
6
- function parseNumber(strNumber) {
7
- return parseInt(strNumber);
8
- }
9
- exports.parseNumber = parseNumber;
10
- function parseBoolean(strNumber) {
11
- if (strNumber === '0')
12
- return false;
13
- return true;
14
- }
15
- exports.parseBoolean = parseBoolean;
16
- // COMMON
17
- const parseMessage = args => {
18
- const typingAndDelay = {};
19
- if (args.toParse.delay !== undefined) {
20
- typingAndDelay['delay'] = parseNumber(args.toParse.delay);
21
- }
22
- if (args.toParse.typing !== undefined) {
23
- typingAndDelay['typing'] = parseNumber(args.toParse.typing);
24
- }
25
- return {
26
- toParse: args.toParse,
27
- parsed: Object.assign({
28
- // Following properties added later before saving event: eventId, userId, createdAt, from, ack
29
- eventType: models_1.EventTypes.MESSAGE, type: args.toParse.type, ack: args.toParse.ack, from: args.toParse.from, channel: args.toParse.channel, idFromChannel: args.toParse.idFromChannel }, typingAndDelay),
30
- };
31
- };
32
- exports.parseMessage = parseMessage;
33
- // BUTTONS
34
- const parseButton = (button) => {
35
- const title = button[botonic_output_parser_1.TEXT_NODE_NAME];
36
- if ('payload' in button) {
37
- return { title, payload: button.payload };
38
- }
39
- if ('url' in button) {
40
- const b = { title, url: button.url, target: button.target };
41
- if (button.target)
42
- b.target = button.target;
43
- return b;
44
- }
45
- if ('webview' in button) {
46
- return {
47
- title,
48
- webview: button.webview,
49
- params: button.params,
50
- };
51
- }
52
- throw new Error('Invalid parsed Button');
53
- };
54
- exports.parseButton = parseButton;
55
- const parseButtons = args => {
56
- var _a, _b;
57
- const hasButtons = ((_b = (_a = args.toParse) === null || _a === void 0 ? void 0 : _a.button) === null || _b === void 0 ? void 0 : _b.length) > 0;
58
- let buttons = [];
59
- if (hasButtons) {
60
- buttons = args.toParse.button.map(button => exports.parseButton(button));
61
- }
62
- return {
63
- toParse: args.toParse,
64
- parsed: Object.assign(Object.assign({}, args.parsed), { buttons }),
65
- };
66
- };
67
- exports.parseButtons = parseButtons;
68
- // REPLIES
69
- const parseReply = (reply) => ({
70
- title: reply[botonic_output_parser_1.TEXT_NODE_NAME],
71
- payload: reply.payload,
72
- });
73
- exports.parseReply = parseReply;
74
- const parseReplies = args => {
75
- var _a, _b;
76
- const hasReplies = ((_b = (_a = args.toParse) === null || _a === void 0 ? void 0 : _a.reply) === null || _b === void 0 ? void 0 : _b.length) > 0;
77
- let replies = [];
78
- if (hasReplies) {
79
- replies = args.toParse.reply.map(reply => exports.parseReply(reply));
80
- }
81
- return {
82
- toParse: args.toParse,
83
- parsed: Object.assign(Object.assign({}, args.parsed), { replies }),
84
- };
85
- };
86
- exports.parseReplies = parseReplies;
87
- // TEXT
88
- const parseText = args => {
89
- return {
90
- toParse: args.toParse,
91
- parsed: Object.assign(Object.assign({}, args.parsed), { text: args.toParse[botonic_output_parser_1.TEXT_NODE_NAME], markdown: parseBoolean(args.toParse.markdown) }),
92
- };
93
- };
94
- exports.parseText = parseText;
95
- // POSTBACK
96
- const parsePostback = args => {
97
- return {
98
- toParse: args.toParse,
99
- parsed: Object.assign(Object.assign({}, args.parsed), { payload: args.toParse.payload }),
100
- };
101
- };
102
- exports.parsePostback = parsePostback;
103
- // MEDIA
104
- const parseMedia = args => {
105
- return {
106
- toParse: args.toParse,
107
- parsed: Object.assign(Object.assign({}, args.parsed), { src: args.toParse.src }),
108
- };
109
- };
110
- exports.parseMedia = parseMedia;
111
- // LOCATION
112
- const parseLocation = args => {
113
- return {
114
- toParse: args.toParse,
115
- parsed: Object.assign(Object.assign({}, args.parsed), { lat: args.toParse.lat, long: args.toParse.long }),
116
- };
117
- };
118
- exports.parseLocation = parseLocation;
119
- // CAROUSEL
120
- const parseElement = (element) => {
121
- const e = {
122
- pic: element.pic,
123
- title: element.title,
124
- subtitle: element.desc,
125
- };
126
- const hasButtons = element.button !== undefined;
127
- if (hasButtons)
128
- e.buttons = element.button.map(b => exports.parseButton(b));
129
- return e;
130
- };
131
- exports.parseElement = parseElement;
132
- const parseCarousel = args => {
133
- return {
134
- toParse: args.toParse,
135
- parsed: Object.assign(Object.assign({}, args.parsed), { elements: args.toParse.element.map(element => exports.parseElement(element)) }),
136
- };
137
- };
138
- exports.parseCarousel = parseCarousel;
139
- // CUSTOM
140
- const parseCustom = args => {
141
- return {
142
- toParse: args.toParse,
143
- parsed: Object.assign(Object.assign({}, args.parsed), { json: JSON.parse(args.toParse.json) }),
144
- };
145
- };
146
- exports.parseCustom = parseCustom;
147
- //# sourceMappingURL=parsers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../../src/output-parser/parsers.ts"],"names":[],"mappings":";;;AAAA,sCAiBkB;AAClB,mEAAwD;AAExD,SAAgB,WAAW,CAAC,SAAiB;IAC3C,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAA;AAC5B,CAAC;AAFD,kCAEC;AAED,SAAgB,YAAY,CAAC,SAAiB;IAC5C,IAAI,SAAS,KAAK,GAAG;QAAE,OAAO,KAAK,CAAA;IACnC,OAAO,IAAI,CAAA;AACb,CAAC;AAHD,oCAGC;AAUD,SAAS;AACF,MAAM,YAAY,GAAuC,IAAI,CAAC,EAAE;IACrE,MAAM,cAAc,GAAG,EAAE,CAAA;IACzB,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE;QACpC,cAAc,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;KAC1D;IACD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE;QACrC,cAAc,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;KAC5D;IACD,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM;YACJ,8FAA8F;YAC9F,SAAS,EAAE,mBAAU,CAAC,OAAO,EAC7B,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EACvB,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EACrB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EACvB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAC7B,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,IACtC,cAAc,CAClB;KACF,CAAA;AACH,CAAC,CAAA;AArBY,QAAA,YAAY,gBAqBxB;AAED,UAAU;AACH,MAAM,WAAW,GAAG,CAAC,MAAW,EAAU,EAAE;IACjD,MAAM,KAAK,GAAG,MAAM,CAAC,sCAAc,CAAC,CAAA;IACpC,IAAI,SAAS,IAAI,MAAM,EAAE;QACvB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAA;KAC1C;IACD,IAAI,KAAK,IAAI,MAAM,EAAE;QACnB,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAA;QAC3D,IAAI,MAAM,CAAC,MAAM;YAAE,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;QAC3C,OAAO,CAAC,CAAA;KACT;IACD,IAAI,SAAS,IAAI,MAAM,EAAE;QACvB,OAAO;YACL,KAAK;YACL,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAA;KACF;IACD,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;AAC1C,CAAC,CAAA;AAlBY,QAAA,WAAW,eAkBvB;AAEM,MAAM,YAAY,GAA+B,IAAI,CAAC,EAAE;;IAC7D,MAAM,UAAU,GAAG,CAAA,MAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,MAAM,0CAAE,MAAM,IAAG,CAAC,CAAA;IACnD,IAAI,OAAO,GAAa,EAAE,CAAA;IAC1B,IAAI,UAAU,EAAE;QACd,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,mBAAW,CAAC,MAAM,CAAC,CAAC,CAAA;KACjE;IACD,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,kCACD,IAAI,CAAC,MAAM,KACd,OAAO,GACR;KACF,CAAA;AACH,CAAC,CAAA;AAbY,QAAA,YAAY,gBAaxB;AAED,UAAU;AACH,MAAM,UAAU,GAAG,CAAC,KAAU,EAAS,EAAE,CAAC,CAAC;IAChD,KAAK,EAAE,KAAK,CAAC,sCAAc,CAAC;IAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;CACvB,CAAC,CAAA;AAHW,QAAA,UAAU,cAGrB;AAEK,MAAM,YAAY,GAA+B,IAAI,CAAC,EAAE;;IAC7D,MAAM,UAAU,GAAG,CAAA,MAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,KAAK,0CAAE,MAAM,IAAG,CAAC,CAAA;IAClD,IAAI,OAAO,GAAY,EAAE,CAAA;IACzB,IAAI,UAAU,EAAE;QACd,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,kBAAU,CAAC,KAAK,CAAC,CAAC,CAAA;KAC7D;IACD,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,kCACD,IAAI,CAAC,MAAM,KACd,OAAO,GACR;KACF,CAAA;AACH,CAAC,CAAA;AAbY,QAAA,YAAY,gBAaxB;AAED,OAAO;AACA,MAAM,SAAS,GAAoC,IAAI,CAAC,EAAE;IAC/D,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,kCACD,IAAI,CAAC,MAAM,KACd,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,sCAAc,CAAC,EAClC,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAC9C;KACF,CAAA;AACH,CAAC,CAAA;AATY,QAAA,SAAS,aASrB;AAED,WAAW;AAEJ,MAAM,aAAa,GAAwC,IAAI,CAAC,EAAE;IACvE,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,kCACD,IAAI,CAAC,MAAM,KACd,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,GAC9B;KACF,CAAA;AACH,CAAC,CAAA;AARY,QAAA,aAAa,iBAQzB;AAED,QAAQ;AACD,MAAM,UAAU,GAKnB,IAAI,CAAC,EAAE;IACT,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,kCACD,IAAI,CAAC,MAAM,KACd,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,GACtB;KACF,CAAA;AACH,CAAC,CAAA;AAbY,QAAA,UAAU,cAatB;AAED,WAAW;AACJ,MAAM,aAAa,GAAwC,IAAI,CAAC,EAAE;IACvE,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,kCACD,IAAI,CAAC,MAAM,KACd,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EACrB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,GACxB;KACF,CAAA;AACH,CAAC,CAAA;AATY,QAAA,aAAa,iBASzB;AAED,WAAW;AACJ,MAAM,YAAY,GAAG,CAAC,OAAY,EAAmB,EAAE;IAC5D,MAAM,CAAC,GAAoB;QACzB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,QAAQ,EAAE,OAAO,CAAC,IAAI;KACvB,CAAA;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS,CAAA;IAC/C,IAAI,UAAU;QAAE,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,mBAAW,CAAC,CAAC,CAAC,CAAC,CAAA;IACnE,OAAO,CAAC,CAAA;AACV,CAAC,CAAA;AATY,QAAA,YAAY,gBASxB;AAEM,MAAM,aAAa,GAAwC,IAAI,CAAC,EAAE;IACvE,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,kCACD,IAAI,CAAC,MAAM,KACd,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,oBAAY,CAAC,OAAO,CAAC,CAAC,GACrE;KACF,CAAA;AACH,CAAC,CAAA;AARY,QAAA,aAAa,iBAQzB;AAED,SAAS;AACF,MAAM,WAAW,GAAsC,IAAI,CAAC,EAAE;IACnE,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,kCACD,IAAI,CAAC,MAAM,KACd,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GACpC;KACF,CAAA;AACH,CAAC,CAAA;AARY,QAAA,WAAW,eAQvB"}
@@ -1,6 +0,0 @@
1
- import { BotonicEvent, BotState, Input, PluginConfig, Session } from './models';
2
- declare type PluginMode = 'pre' | 'post';
3
- export declare function loadPlugins(plugins: PluginConfig<any>[]): any;
4
- export declare function runPlugins(plugins: any, // // TODO: Add type for resolvedPlugins, they differ from loaded plugins
5
- mode: PluginMode, input: Input, session: Session, botState: BotState, response?: string | null, messageEvents?: Partial<BotonicEvent>[] | null, dataProvider?: any): Promise<void>;
6
- export {};
@@ -1,48 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.runPlugins = exports.loadPlugins = void 0;
4
- function loadPlugins(plugins) {
5
- if (!plugins)
6
- return [];
7
- const _plugins = {};
8
- const pluginsLength = plugins.length;
9
- for (let i = 0; i < pluginsLength; i++) {
10
- const pluginRequired = plugins[i].resolve;
11
- const options = plugins[i].options;
12
- const Plugin = pluginRequired.default;
13
- const instance = new Plugin(options);
14
- const id = plugins[i].id || `${instance.constructor.name}`;
15
- _plugins[id] = instance;
16
- _plugins[id].id = id;
17
- _plugins[id].config = options;
18
- _plugins[id].name = `${instance.constructor.name}`;
19
- }
20
- return _plugins;
21
- }
22
- exports.loadPlugins = loadPlugins;
23
- async function runPlugins(plugins, // // TODO: Add type for resolvedPlugins, they differ from loaded plugins
24
- mode, input, session, botState, response = null, messageEvents = null, dataProvider // TODO: type as dataProvider
25
- ) {
26
- for (const key in plugins) {
27
- const p = await plugins[key];
28
- try {
29
- if (mode === 'pre')
30
- await p.pre({ input, session, botState, dataProvider, plugins });
31
- if (mode === 'post')
32
- await p.post({
33
- input,
34
- session,
35
- botState,
36
- response,
37
- messageEvents,
38
- dataProvider,
39
- plugins,
40
- });
41
- }
42
- catch (e) {
43
- console.log(e);
44
- }
45
- }
46
- }
47
- exports.runPlugins = runPlugins;
48
- //# sourceMappingURL=plugins.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/plugins.ts"],"names":[],"mappings":";;;AAWA,SAAgB,WAAW,CAAC,OAA4B;IACtD,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAA;IACvB,MAAM,QAAQ,GAAG,EAAE,CAAA;IACnB,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAA;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;QACtC,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;QACzC,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;QAClC,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAA;QACrC,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAA;QACpC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;QAC1D,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAA;QACvB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAA;QACpB,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,OAAO,CAAA;QAC7B,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;KACnD;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAhBD,kCAgBC;AAEM,KAAK,UAAU,UAAU,CAC9B,OAAY,EAAE,yEAAyE;AACvF,IAAgB,EAChB,KAAY,EACZ,OAAgB,EAChB,QAAkB,EAClB,WAA0B,IAAI,EAC9B,gBAAgD,IAAI,EACpD,YAAkB,CAAC,6BAA6B;;IAEhD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;QACzB,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAA;QAC5B,IAAI;YACF,IAAI,IAAI,KAAK,KAAK;gBAChB,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAA;YAClE,IAAI,IAAI,KAAK,MAAM;gBACjB,MAAM,CAAC,CAAC,IAAI,CAAC;oBACX,KAAK;oBACL,OAAO;oBACP,QAAQ;oBACR,QAAQ;oBACR,aAAa;oBACb,YAAY;oBACZ,OAAO;iBACR,CAAC,CAAA;SACL;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;SACf;KACF;AACH,CAAC;AA7BD,gCA6BC"}
@@ -1,2 +0,0 @@
1
- export * from './router';
2
- export * from './router-utils';
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./router"), exports);
5
- tslib_1.__exportStar(require("./router-utils"), exports);
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routing/index.ts"],"names":[],"mappings":";;;AAAA,mDAAwB;AACxB,yDAA8B"}
@@ -1,11 +0,0 @@
1
- import { Action, BotRequest, Input, Params, PathParams, Route, Routes } from '../models';
2
- export declare class NoMatchingRouteError extends Error {
3
- input: Input;
4
- constructor(input: Input);
5
- }
6
- export declare function isPathPayload(payload?: string): boolean;
7
- export declare function getPathParamsFromPathPayload(payload?: string): PathParams;
8
- export declare function pathParamsToParams(pathParams?: string): Params;
9
- export declare function getEmptyAction(childRoutes?: Route[]): Action;
10
- export declare function getNotFoundAction(input: Input, routes: Route[]): Action;
11
- export declare function getComputedRoutes(routes: Routes, request: BotRequest): Promise<Route[]>;
@@ -1,89 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getComputedRoutes = exports.getNotFoundAction = exports.getEmptyAction = exports.pathParamsToParams = exports.getPathParamsFromPathPayload = exports.isPathPayload = exports.NoMatchingRouteError = void 0;
4
- const constants_1 = require("../constants");
5
- class NoMatchingRouteError extends Error {
6
- constructor(input) {
7
- super(`No route found for input '${JSON.stringify(input)}' and no ${constants_1.NOT_FOUND_PATH} route defined`);
8
- this.input = input;
9
- }
10
- }
11
- exports.NoMatchingRouteError = NoMatchingRouteError;
12
- function isPathPayload(payload) {
13
- if (!payload)
14
- return false;
15
- const isPathPayload = constants_1.PATH_PAYLOAD_REGEXP.exec(payload);
16
- return Boolean(isPathPayload);
17
- }
18
- exports.isPathPayload = isPathPayload;
19
- function getPathParamsFromPathPayload(payload) {
20
- const defaultPathParams = {
21
- path: null,
22
- params: {},
23
- };
24
- if (!payload)
25
- return defaultPathParams;
26
- if (!isPathPayload(payload))
27
- return defaultPathParams;
28
- try {
29
- const pathWithParams = payload.split(constants_1.PATH_PAYLOAD_IDENTIFIER)[1];
30
- if (!pathWithParams) {
31
- throw `${constants_1.PATH_PAYLOAD_IDENTIFIER} is empty`;
32
- }
33
- const [path, params] = pathWithParams.split('?');
34
- return { path: path !== null && path !== void 0 ? path : null, params: pathParamsToParams(params) };
35
- }
36
- catch (e) {
37
- console.error('Error getting path and params from input.payload:', e);
38
- return defaultPathParams;
39
- }
40
- }
41
- exports.getPathParamsFromPathPayload = getPathParamsFromPathPayload;
42
- function pathParamsToParams(pathParams) {
43
- if (!pathParams)
44
- return {};
45
- try {
46
- const params = {};
47
- const searchParams = new URLSearchParams(pathParams);
48
- for (const [key, value] of searchParams) {
49
- params[key] = value;
50
- }
51
- return params;
52
- }
53
- catch (e) {
54
- return {};
55
- }
56
- }
57
- exports.pathParamsToParams = pathParamsToParams;
58
- function getEmptyAction(childRoutes) {
59
- if (!childRoutes)
60
- return null;
61
- const emptyActionRoute = childRoutes.find(r => r.path === constants_1.EMPTY_ACTION_PATH);
62
- if (!emptyActionRoute)
63
- return null;
64
- return emptyActionRoute.action;
65
- }
66
- exports.getEmptyAction = getEmptyAction;
67
- function getNotFoundAction(input, routes) {
68
- const notFoundActionRoute = routes.find(r => r.path === constants_1.NOT_FOUND_PATH);
69
- if (!notFoundActionRoute)
70
- throw new NoMatchingRouteError(input);
71
- return notFoundActionRoute.action;
72
- }
73
- exports.getNotFoundAction = getNotFoundAction;
74
- async function getComputedRoutes(routes, request) {
75
- if (routes instanceof Function) {
76
- return await getComputedRoutes(await routes(request), request);
77
- }
78
- for (const [key, route] of Object.entries(routes)) {
79
- if (route.childRoutes && route.childRoutes instanceof Function) {
80
- routes[key].childRoutes = await getComputedRoutes(await route.childRoutes(request), request);
81
- }
82
- else {
83
- routes[key] = route;
84
- }
85
- }
86
- return routes;
87
- }
88
- exports.getComputedRoutes = getComputedRoutes;
89
- //# sourceMappingURL=router-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"router-utils.js","sourceRoot":"","sources":["../../../src/routing/router-utils.ts"],"names":[],"mappings":"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"}
@@ -1,54 +0,0 @@
1
- import { RouteInspector } from '../debug/inspector';
2
- import { BotState, Input, MatchedValue, Matcher, MatchingProp, Nullable, ProcessInputResult, Route, RouteParams, RoutePath, RoutingState, Session } from '../models';
3
- export declare class Router {
4
- routes: Route[];
5
- routeInspector: RouteInspector;
6
- constructor(routes: Route[], routeInspector?: RouteInspector | undefined);
7
- /**
8
- * Processes an input and return a representation of the new bot state.
9
- * The algorithm is splitted in two main parts:
10
- * 1. Getting the current routing state.
11
- * 2. Given a routing state, resolve the different possible scenarios and return the new bot state.
12
- * The new bot state can return three type of actions:
13
- * - action: an action directly resolved from a matching route
14
- * - emptyAction: optional action that can exists or not only within childRoutes
15
- * - fallbackAction: any other action that acts as a fallback (404, )
16
- */
17
- processInput(input: Input, session: Session, botState: BotState): ProcessInputResult;
18
- /**
19
- * Find the route that matches the given input, if it match with some of the entries, return the whole Route of the entry with optional params captured if matcher was a regex.
20
- * IMPORTANT: It returns a cloned route instead of the route itself to avoid modifying original routes and introduce side effects
21
- * */
22
- getRoute(input: Input | Partial<Input>, routes: Route[], session: Session, lastRoutePath: RoutePath): RouteParams | null;
23
- /**
24
- * Find the route that matches the given path. Path can include concatenations, e.g: 'Flow1/Subflow1.1'.
25
- * IMPORTANT: It returns a cloned route instead of the route itself to avoid modifying original routes and introduce side effects
26
- * */
27
- getRouteByPath(path: RoutePath, routeList?: Route[]): Nullable<Route>;
28
- /**
29
- * Returns the matched value for a specific route.
30
- * Matching Props: ('text' | 'payload' | 'intent' | 'type' | 'input' | 'session' | 'request' ...)
31
- * Matchers: (string: exact match | regex: regular expression match | function: return true)
32
- * input: user input object, e.g.: {type: 'text', data: 'Hi'}
33
- * */
34
- matchRoute(route: Route, prop: MatchingProp, matcher: Matcher, input: Input, session: Session, lastRoutePath: RoutePath): MatchedValue;
35
- /**
36
- * Runs the matcher against the given value.
37
- * If there is a match, it will return a truthy value (true, RegExp result), o.w., it will return a falsy value.
38
- * */
39
- matchValue(matcher: Matcher, value: any): MatchedValue;
40
- /**
41
- * It resolves the current state of navigation. Two scenarios:
42
- * 1. Given a path payload input (__PATH_PAYLOAD__somePath?someParam=someValue), we can resolve the routing state directly from it (using getRouteByPath).
43
- * 2. Given any other type of input, we resolve the routing state with normal resolution (using getRoute).
44
- * */
45
- getRoutingState(input: Input, session: Session, botState: BotState): RoutingState;
46
- /**
47
- * Given a non path payload input, try to run it against the routes, update matching routes information in consequence and dictamine if the flow has been broken.
48
- * */
49
- getRoutingStateFromInput(currentRoute: Nullable<Route>, input: Input, session: Session): RoutingState;
50
- /**
51
- * Given a path payload input, try to run the path against the routes, update matching routes information in consequence and dictamine if the flow has been broken.
52
- * */
53
- getRoutingStateFromPathPayload(currentRoute: Nullable<Route>, pathPayload: string): RoutingState;
54
- }