@botonic/core 1.0.0-dev.0 → 1.0.0-dev.2

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 (258) hide show
  1. package/lib/cjs/constants.d.ts +4 -15
  2. package/lib/cjs/constants.js +5 -16
  3. package/lib/cjs/constants.js.map +1 -1
  4. package/lib/cjs/core-bot.d.ts +12 -9
  5. package/lib/cjs/core-bot.js +54 -43
  6. package/lib/cjs/core-bot.js.map +1 -1
  7. package/lib/cjs/debug/index.d.ts +1 -1
  8. package/lib/cjs/debug/index.js +2 -6
  9. package/lib/cjs/debug/index.js.map +1 -1
  10. package/lib/cjs/debug/inspector.d.ts +1 -1
  11. package/lib/cjs/handoff.d.ts +5 -5
  12. package/lib/cjs/handoff.js +13 -10
  13. package/lib/cjs/handoff.js.map +1 -1
  14. package/lib/cjs/hubtype-service.d.ts +4 -4
  15. package/lib/cjs/hubtype-service.js +1 -1
  16. package/lib/cjs/hubtype-service.js.map +1 -1
  17. package/lib/cjs/i18n.d.ts +1 -1
  18. package/lib/cjs/index.d.ts +8 -163
  19. package/lib/cjs/index.js +8 -51
  20. package/lib/cjs/index.js.map +1 -1
  21. package/lib/cjs/models/bot-state.d.ts +11 -0
  22. package/lib/cjs/models/bot-state.js +3 -0
  23. package/lib/cjs/models/bot-state.js.map +1 -0
  24. package/lib/cjs/models/channels.d.ts +9 -0
  25. package/lib/cjs/models/channels.js +14 -0
  26. package/lib/cjs/models/channels.js.map +1 -0
  27. package/lib/cjs/models/events/base-event.d.ts +20 -0
  28. package/lib/cjs/models/events/base-event.js +17 -0
  29. package/lib/cjs/models/events/base-event.js.map +1 -0
  30. package/lib/cjs/models/events/botonic-event.d.ts +4 -0
  31. package/lib/cjs/models/events/botonic-event.js +3 -0
  32. package/lib/cjs/models/events/botonic-event.js.map +1 -0
  33. package/lib/{esm/models/events/connections/index.d.ts → cjs/models/events/connection/connection-event.d.ts} +1 -1
  34. package/lib/cjs/models/events/{connections/index.js → connection/connection-event.js} +1 -1
  35. package/lib/cjs/models/events/connection/connection-event.js.map +1 -0
  36. package/lib/cjs/models/events/connection/index.d.ts +1 -0
  37. package/lib/cjs/models/events/connection/index.js +5 -0
  38. package/lib/cjs/models/events/connection/index.js.map +1 -0
  39. package/lib/cjs/models/events/index.d.ts +4 -21
  40. package/lib/cjs/models/events/index.js +5 -8
  41. package/lib/cjs/models/events/index.js.map +1 -1
  42. package/lib/cjs/models/events/integration/index.d.ts +1 -0
  43. package/lib/cjs/models/events/integration/index.js +5 -0
  44. package/lib/cjs/models/events/integration/index.js.map +1 -0
  45. package/lib/cjs/models/events/integration/integration-event.d.ts +6 -0
  46. package/lib/cjs/models/events/integration/integration-event.js +3 -0
  47. package/lib/cjs/models/events/integration/integration-event.js.map +1 -0
  48. package/lib/cjs/models/events/message/carousel.d.ts +1 -1
  49. package/lib/cjs/models/events/message/custom.d.ts +2 -2
  50. package/lib/cjs/models/events/message/index.d.ts +9 -30
  51. package/lib/cjs/models/events/message/index.js +10 -29
  52. package/lib/cjs/models/events/message/index.js.map +1 -1
  53. package/lib/cjs/models/events/message/location.d.ts +1 -1
  54. package/lib/cjs/models/events/message/media.d.ts +1 -1
  55. package/lib/cjs/models/events/message/media.js +5 -5
  56. package/lib/cjs/models/events/message/media.js.map +1 -1
  57. package/lib/cjs/models/events/message/message-event.d.ts +30 -0
  58. package/lib/cjs/models/events/message/message-event.js +32 -0
  59. package/lib/cjs/models/events/message/message-event.js.map +1 -0
  60. package/lib/cjs/models/events/message/postback.d.ts +1 -1
  61. package/lib/cjs/models/events/message/text.d.ts +1 -1
  62. package/lib/cjs/models/index.d.ts +6 -0
  63. package/lib/cjs/models/index.js +10 -0
  64. package/lib/cjs/models/index.js.map +1 -0
  65. package/lib/cjs/models/legacy-types.d.ts +184 -0
  66. package/lib/cjs/models/legacy-types.js +59 -0
  67. package/lib/cjs/models/legacy-types.js.map +1 -0
  68. package/lib/cjs/models/session.d.ts +3 -0
  69. package/lib/cjs/models/session.js +3 -0
  70. package/lib/cjs/models/session.js.map +1 -0
  71. package/lib/cjs/models/user.d.ts +8 -4
  72. package/lib/cjs/output-parser/botonic-output-parser.d.ts +16 -0
  73. package/lib/cjs/output-parser/botonic-output-parser.js +37 -0
  74. package/lib/cjs/output-parser/botonic-output-parser.js.map +1 -0
  75. package/lib/cjs/output-parser/factory.d.ts +1 -1
  76. package/lib/cjs/output-parser/factory.js +7 -8
  77. package/lib/cjs/output-parser/factory.js.map +1 -1
  78. package/lib/cjs/output-parser/index.d.ts +3 -16
  79. package/lib/cjs/output-parser/index.js +4 -34
  80. package/lib/cjs/output-parser/index.js.map +1 -1
  81. package/lib/cjs/output-parser/parsers.d.ts +3 -9
  82. package/lib/cjs/output-parser/parsers.js +21 -12
  83. package/lib/cjs/output-parser/parsers.js.map +1 -1
  84. package/lib/cjs/plugins.d.ts +2 -3
  85. package/lib/cjs/plugins.js +9 -6
  86. package/lib/cjs/plugins.js.map +1 -1
  87. package/lib/cjs/routing/index.d.ts +2 -0
  88. package/lib/cjs/routing/index.js +6 -0
  89. package/lib/cjs/routing/index.js.map +1 -0
  90. package/lib/cjs/routing/router-utils.d.ts +11 -0
  91. package/lib/cjs/routing/router-utils.js +89 -0
  92. package/lib/cjs/routing/router-utils.js.map +1 -0
  93. package/lib/cjs/routing/router.d.ts +54 -0
  94. package/lib/cjs/routing/router.js +319 -0
  95. package/lib/cjs/routing/router.js.map +1 -0
  96. package/lib/cjs/utils.d.ts +1 -0
  97. package/lib/cjs/utils.js +7 -1
  98. package/lib/cjs/utils.js.map +1 -1
  99. package/lib/esm/constants.d.ts +4 -15
  100. package/lib/esm/constants.js +4 -15
  101. package/lib/esm/constants.js.map +1 -1
  102. package/lib/esm/core-bot.d.ts +12 -9
  103. package/lib/esm/core-bot.js +52 -41
  104. package/lib/esm/core-bot.js.map +1 -1
  105. package/lib/esm/debug/index.d.ts +1 -1
  106. package/lib/esm/debug/index.js +1 -1
  107. package/lib/esm/debug/index.js.map +1 -1
  108. package/lib/esm/debug/inspector.d.ts +1 -1
  109. package/lib/esm/handoff.d.ts +5 -5
  110. package/lib/esm/handoff.js +13 -10
  111. package/lib/esm/handoff.js.map +1 -1
  112. package/lib/esm/hubtype-service.d.ts +4 -4
  113. package/lib/esm/hubtype-service.js +1 -1
  114. package/lib/esm/hubtype-service.js.map +1 -1
  115. package/lib/esm/i18n.d.ts +1 -1
  116. package/lib/esm/index.d.ts +8 -163
  117. package/lib/esm/index.js +8 -45
  118. package/lib/esm/index.js.map +1 -1
  119. package/lib/esm/models/bot-state.d.ts +11 -0
  120. package/lib/esm/models/bot-state.js +2 -0
  121. package/lib/esm/models/bot-state.js.map +1 -0
  122. package/lib/esm/models/channels.d.ts +9 -0
  123. package/lib/esm/models/channels.js +11 -0
  124. package/lib/esm/models/channels.js.map +1 -0
  125. package/lib/esm/models/events/base-event.d.ts +20 -0
  126. package/lib/esm/models/events/base-event.js +14 -0
  127. package/lib/esm/models/events/base-event.js.map +1 -0
  128. package/lib/esm/models/events/botonic-event.d.ts +4 -0
  129. package/lib/esm/models/events/botonic-event.js +2 -0
  130. package/lib/esm/models/events/botonic-event.js.map +1 -0
  131. package/lib/{cjs/models/events/connections/index.d.ts → esm/models/events/connection/connection-event.d.ts} +1 -1
  132. package/lib/esm/models/events/{connections/index.js → connection/connection-event.js} +1 -1
  133. package/lib/esm/models/events/connection/connection-event.js.map +1 -0
  134. package/lib/esm/models/events/connection/index.d.ts +1 -0
  135. package/lib/esm/models/events/connection/index.js +2 -0
  136. package/lib/esm/models/events/connection/index.js.map +1 -0
  137. package/lib/esm/models/events/index.d.ts +4 -21
  138. package/lib/esm/models/events/index.js +4 -7
  139. package/lib/esm/models/events/index.js.map +1 -1
  140. package/lib/esm/models/events/integration/index.d.ts +1 -0
  141. package/lib/esm/models/events/integration/index.js +2 -0
  142. package/lib/esm/models/events/integration/index.js.map +1 -0
  143. package/lib/esm/models/events/integration/integration-event.d.ts +6 -0
  144. package/lib/esm/models/events/integration/integration-event.js +2 -0
  145. package/lib/esm/models/events/integration/integration-event.js.map +1 -0
  146. package/lib/esm/models/events/message/carousel.d.ts +1 -1
  147. package/lib/esm/models/events/message/custom.d.ts +2 -2
  148. package/lib/esm/models/events/message/index.d.ts +9 -30
  149. package/lib/esm/models/events/message/index.js +9 -28
  150. package/lib/esm/models/events/message/index.js.map +1 -1
  151. package/lib/esm/models/events/message/location.d.ts +1 -1
  152. package/lib/esm/models/events/message/media.d.ts +1 -1
  153. package/lib/esm/models/events/message/media.js +1 -1
  154. package/lib/esm/models/events/message/media.js.map +1 -1
  155. package/lib/esm/models/events/message/message-event.d.ts +30 -0
  156. package/lib/esm/models/events/message/message-event.js +29 -0
  157. package/lib/esm/models/events/message/message-event.js.map +1 -0
  158. package/lib/esm/models/events/message/postback.d.ts +1 -1
  159. package/lib/esm/models/events/message/text.d.ts +1 -1
  160. package/lib/esm/models/index.d.ts +6 -0
  161. package/lib/esm/models/index.js +7 -0
  162. package/lib/esm/models/index.js.map +1 -0
  163. package/lib/esm/models/legacy-types.d.ts +184 -0
  164. package/lib/esm/models/legacy-types.js +56 -0
  165. package/lib/esm/models/legacy-types.js.map +1 -0
  166. package/lib/esm/models/session.d.ts +3 -0
  167. package/lib/esm/models/session.js +2 -0
  168. package/lib/esm/models/session.js.map +1 -0
  169. package/lib/esm/models/user.d.ts +8 -4
  170. package/lib/esm/output-parser/botonic-output-parser.d.ts +16 -0
  171. package/lib/esm/output-parser/botonic-output-parser.js +33 -0
  172. package/lib/esm/output-parser/botonic-output-parser.js.map +1 -0
  173. package/lib/esm/output-parser/factory.d.ts +1 -1
  174. package/lib/esm/output-parser/factory.js +1 -2
  175. package/lib/esm/output-parser/factory.js.map +1 -1
  176. package/lib/esm/output-parser/index.d.ts +3 -16
  177. package/lib/esm/output-parser/index.js +3 -32
  178. package/lib/esm/output-parser/index.js.map +1 -1
  179. package/lib/esm/output-parser/parsers.d.ts +3 -9
  180. package/lib/esm/output-parser/parsers.js +14 -7
  181. package/lib/esm/output-parser/parsers.js.map +1 -1
  182. package/lib/esm/plugins.d.ts +2 -3
  183. package/lib/esm/plugins.js +9 -6
  184. package/lib/esm/plugins.js.map +1 -1
  185. package/lib/esm/routing/index.d.ts +2 -0
  186. package/lib/esm/routing/index.js +3 -0
  187. package/lib/esm/routing/index.js.map +1 -0
  188. package/lib/esm/routing/router-utils.d.ts +11 -0
  189. package/lib/esm/routing/router-utils.js +79 -0
  190. package/lib/esm/routing/router-utils.js.map +1 -0
  191. package/lib/esm/routing/router.d.ts +54 -0
  192. package/lib/esm/routing/router.js +315 -0
  193. package/lib/esm/routing/router.js.map +1 -0
  194. package/lib/esm/utils.d.ts +1 -0
  195. package/lib/esm/utils.js +5 -0
  196. package/lib/esm/utils.js.map +1 -1
  197. package/package.json +6 -6
  198. package/src/constants.ts +6 -15
  199. package/src/core-bot.ts +84 -47
  200. package/src/debug/index.ts +1 -6
  201. package/src/debug/inspector.ts +1 -1
  202. package/src/handoff.ts +15 -12
  203. package/src/hubtype-service.ts +5 -5
  204. package/src/i18n.ts +1 -1
  205. package/src/index.ts +8 -230
  206. package/src/models/bot-state.ts +12 -0
  207. package/src/models/channels.ts +9 -0
  208. package/src/models/events/base-event.ts +22 -0
  209. package/src/models/events/botonic-event.ts +26 -0
  210. package/src/models/events/{connections/index.ts → connection/connection-event.ts} +1 -1
  211. package/src/models/events/connection/index.ts +1 -0
  212. package/src/models/events/index.ts +4 -39
  213. package/src/models/events/integration/index.ts +1 -0
  214. package/src/models/events/integration/integration-event.ts +13 -0
  215. package/src/models/events/message/carousel.ts +1 -1
  216. package/src/models/events/message/custom.ts +2 -2
  217. package/src/models/events/message/index.ts +9 -37
  218. package/src/models/events/message/location.ts +1 -1
  219. package/src/models/events/message/media.ts +1 -1
  220. package/src/models/events/message/message-event.ts +37 -0
  221. package/src/models/events/message/postback.ts +1 -1
  222. package/src/models/events/message/text.ts +1 -1
  223. package/src/models/index.ts +6 -0
  224. package/src/models/legacy-types.ts +262 -0
  225. package/src/models/session.ts +3 -0
  226. package/src/models/user.ts +10 -4
  227. package/src/output-parser/botonic-output-parser.ts +38 -0
  228. package/src/output-parser/factory.ts +1 -3
  229. package/src/output-parser/index.ts +3 -38
  230. package/src/output-parser/parsers.ts +29 -17
  231. package/src/plugins.ts +18 -8
  232. package/src/routing/index.ts +2 -0
  233. package/src/routing/router-utils.ts +100 -0
  234. package/src/routing/router.ts +415 -0
  235. package/src/utils.ts +6 -0
  236. package/lib/cjs/errors.d.ts +0 -5
  237. package/lib/cjs/errors.js +0 -11
  238. package/lib/cjs/errors.js.map +0 -1
  239. package/lib/cjs/models/events/connections/index.js.map +0 -1
  240. package/lib/cjs/output-parser/util.d.ts +0 -2
  241. package/lib/cjs/output-parser/util.js +0 -14
  242. package/lib/cjs/output-parser/util.js.map +0 -1
  243. package/lib/cjs/router.d.ts +0 -35
  244. package/lib/cjs/router.js +0 -262
  245. package/lib/cjs/router.js.map +0 -1
  246. package/lib/esm/errors.d.ts +0 -5
  247. package/lib/esm/errors.js +0 -7
  248. package/lib/esm/errors.js.map +0 -1
  249. package/lib/esm/models/events/connections/index.js.map +0 -1
  250. package/lib/esm/output-parser/util.d.ts +0 -2
  251. package/lib/esm/output-parser/util.js +0 -9
  252. package/lib/esm/output-parser/util.js.map +0 -1
  253. package/lib/esm/router.d.ts +0 -35
  254. package/lib/esm/router.js +0 -258
  255. package/lib/esm/router.js.map +0 -1
  256. package/src/errors.ts +0 -11
  257. package/src/output-parser/util.ts +0 -8
  258. package/src/router.ts +0 -316
package/lib/cjs/router.js DELETED
@@ -1,262 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Router = void 0;
4
- const inspector_1 = require("./debug/inspector");
5
- const errors_1 = require("./errors");
6
- const utils_1 = require("./utils");
7
- class Router {
8
- /**
9
- * @param {Route[]} routes
10
- * @param routeInspector
11
- */
12
- constructor(routes, routeInspector = undefined) {
13
- this.routes = routes;
14
- this.routeInspector = routeInspector || new inspector_1.RouteInspector();
15
- }
16
- // eslint-disable-next-line complexity
17
- processInput(input, session = {}, lastRoutePath = null) {
18
- let routeParams = {};
19
- if (input.payload && input.payload.includes('__PATH_PAYLOAD__')) {
20
- const pathParam = input.payload.split('__PATH_PAYLOAD__');
21
- routeParams.route = this.getRouteByPath(pathParam[1], this.routes);
22
- }
23
- const pathParams = this.getOnFinishParams(input);
24
- let brokenFlow = false;
25
- const lastRoute = this.getRouteByPath(lastRoutePath, this.routes);
26
- if (!lastRoute && input.path)
27
- routeParams.route = this.getRouteByPath(input.path, this.routes);
28
- if (lastRoute && lastRoute.childRoutes && !routeParams.route)
29
- //get route depending of current ChildRoute
30
- routeParams = this.getRoute(input, lastRoute.childRoutes, session, lastRoutePath);
31
- if (!routeParams || !Object.keys(routeParams).length) {
32
- /*
33
- we couldn't find a route in the state of the lastRoute, so let's find in
34
- the general conf.route
35
- */
36
- brokenFlow = Boolean(lastRoutePath);
37
- routeParams = this.getRoute(input, this.routes, session, lastRoutePath);
38
- }
39
- try {
40
- if (pathParams) {
41
- const searchParams = new URLSearchParams(pathParams);
42
- for (const [key, value] of searchParams) {
43
- routeParams.params
44
- ? (routeParams.params[key] = value)
45
- : (routeParams.params = { [key]: value });
46
- }
47
- }
48
- }
49
- catch (e) { }
50
- if (routeParams && Object.keys(routeParams).length) {
51
- //get in childRoute if one has path ''
52
- let defaultAction;
53
- if (routeParams.route) {
54
- if (!routeParams.route.path &&
55
- routeParams.route.childRoutes &&
56
- routeParams.route.childRoutes.length) {
57
- defaultAction = this.getRoute({ path: '' }, routeParams.route.childRoutes, session, lastRoutePath);
58
- }
59
- if ('action' in routeParams.route) {
60
- if (brokenFlow &&
61
- routeParams.route.ignoreRetry != true &&
62
- lastRoute &&
63
- (session.__retries || 0) < (lastRoute.retry || 0) &&
64
- routeParams.route.path != lastRoute.action) {
65
- session.__retries = session.__retries ? session.__retries + 1 : 1;
66
- // The flow was broken, but we want to recover it
67
- return {
68
- action: routeParams.route.action,
69
- params: routeParams.params,
70
- retryAction: lastRoute ? lastRoute.action : null,
71
- defaultAction: defaultAction ? defaultAction.route.action : null,
72
- lastRoutePath: lastRoutePath,
73
- };
74
- }
75
- else {
76
- session.__retries = 0;
77
- if (lastRoutePath && !brokenFlow)
78
- lastRoutePath = `${lastRoutePath}/${routeParams.route.path}`;
79
- else
80
- lastRoutePath = routeParams.route.path;
81
- return {
82
- action: routeParams.route.action,
83
- params: routeParams.params,
84
- retryAction: null,
85
- defaultAction: defaultAction ? defaultAction.route.action : null,
86
- lastRoutePath: lastRoutePath,
87
- };
88
- }
89
- }
90
- else if (defaultAction) {
91
- return {
92
- action: defaultAction.route.action,
93
- params: defaultAction.params,
94
- lastRoutePath: lastRoutePath,
95
- };
96
- }
97
- else if ('redirect' in routeParams.route) {
98
- lastRoutePath = routeParams.route.redirect;
99
- const redirectRoute = this.getRouteByPath(lastRoutePath, this.routes);
100
- if (redirectRoute) {
101
- return {
102
- action: redirectRoute.action,
103
- params: redirectRoute.params,
104
- lastRoutePath: lastRoutePath,
105
- };
106
- }
107
- }
108
- }
109
- }
110
- const notFound = this.getRouteByPath('404', this.routes);
111
- if (!notFound)
112
- throw new errors_1.NoMatchingRouteError(input);
113
- if (lastRoute && (session.__retries || 0) < (lastRoute.retry || 0)) {
114
- session.__retries = session.__retries ? session.__retries + 1 : 1;
115
- return {
116
- action: notFound.action,
117
- params: {},
118
- retryAction: lastRoute.action,
119
- lastRoutePath: lastRoutePath,
120
- };
121
- }
122
- else {
123
- this.lastRoutePath = null;
124
- session.__retries = 0;
125
- return {
126
- action: notFound.action,
127
- params: {},
128
- retryAction: null,
129
- lastRoutePath: lastRoutePath,
130
- };
131
- }
132
- }
133
- getOnFinishParams(input) {
134
- try {
135
- if (!input.payload) {
136
- return undefined;
137
- }
138
- const params = input.payload.split('__PATH_PAYLOAD__');
139
- if (params.length < 2) {
140
- return undefined;
141
- }
142
- const pathParams = params[1].split('?');
143
- if (pathParams.length > 0) {
144
- input.path = pathParams[0];
145
- delete input.payload;
146
- }
147
- if (pathParams.length > 1) {
148
- return pathParams[1];
149
- }
150
- }
151
- catch (e) {
152
- console.error('ERROR getOnFinishParams', e);
153
- }
154
- return undefined;
155
- }
156
- /**
157
- * @return {null|RouteParams}
158
- */
159
- getRoute(input, routes, session, lastRoutePath) {
160
- const computedRoutes = utils_1.isFunction(routes)
161
- ? // @ts-ignore
162
- routes({ input, session, lastRoutePath })
163
- : routes;
164
- /* Find the route that matches the given input, if it match with some of the entries,
165
- return the whole Route of the entry with optional params captured if matcher was a regex */
166
- /** @type {{ [key: string]: string }}*/
167
- let params = {};
168
- const route = computedRoutes.find(r => Object.entries(r)
169
- .filter(([key, _]) => key != 'action' && key != 'childRoutes')
170
- .some(([key, value]) => {
171
- const match = this.matchRoute(r, key, value, input, session, lastRoutePath);
172
- try {
173
- params = match.groups;
174
- }
175
- catch (e) { }
176
- return Boolean(match);
177
- }));
178
- if (route) {
179
- return { route, params };
180
- }
181
- return null;
182
- }
183
- getRouteByPath(path, routeList = null) {
184
- if (!path)
185
- return null;
186
- let route = null;
187
- routeList = routeList || this.routes;
188
- const [currentPath, ...childPath] = path.split('/');
189
- if (Array.isArray(routeList)) {
190
- for (const r of routeList) {
191
- //iterate over all routeList
192
- if (r.path == currentPath) {
193
- route = r;
194
- if (r.childRoutes && r.childRoutes.length && childPath.length > 0) {
195
- //evaluate childroute over next actions
196
- route = this.getRouteByPath(childPath.join('/'), r.childRoutes);
197
- if (route)
198
- return route;
199
- }
200
- else if (childPath.length === 0)
201
- return route; //last action and found route
202
- }
203
- }
204
- }
205
- return null;
206
- }
207
- /**
208
- * @return {Params|boolean}
209
- */
210
- matchRoute(route, prop, matcher, input, session, lastRoutePath) {
211
- /*
212
- prop: ('text' | 'payload' | 'intent' | 'type' | 'input' | 'session' | 'request' ...)
213
- matcher: (string: exact match | regex: regular expression match | function: return true)
214
- input: user input object, ex: {type: 'text', data: 'Hi'}
215
- */
216
- /** @type {any} */
217
- let value = '';
218
- if (Object.keys(input).indexOf(prop) > -1)
219
- value = input[prop];
220
- if (prop === 'text') {
221
- if (input.type === 'text')
222
- value = input.data;
223
- }
224
- else if (prop === 'input')
225
- value = input;
226
- else if (prop === 'session')
227
- value = session;
228
- else if (prop === 'request')
229
- value = { input, session, lastRoutePath };
230
- const matched = this.matchValue(matcher, value);
231
- if (matched) {
232
- this.routeInspector.routeMatched(route, prop, matcher, value);
233
- }
234
- else {
235
- this.routeInspector.routeNotMatched(route, prop, matcher, value);
236
- }
237
- return matched;
238
- }
239
- /**
240
- *
241
- * @return {*|boolean|Params}
242
- */
243
- matchValue(matcher, value) {
244
- if (typeof matcher === 'string') {
245
- // TODO should this be === to avoid matching '' with undefined?
246
- return value == matcher;
247
- }
248
- if (matcher instanceof RegExp) {
249
- // check if undefined to avoid conversion to 'undefined'
250
- if (value === undefined) {
251
- return false;
252
- }
253
- return Boolean(matcher.exec(value));
254
- }
255
- if (typeof matcher === 'function') {
256
- return matcher(value);
257
- }
258
- return false;
259
- }
260
- }
261
- exports.Router = Router;
262
- //# sourceMappingURL=router.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/router.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import { Input } from './index';
2
- export declare class NoMatchingRouteError extends Error {
3
- input: Input;
4
- constructor(input: Input);
5
- }
package/lib/esm/errors.js DELETED
@@ -1,7 +0,0 @@
1
- export class NoMatchingRouteError extends Error {
2
- constructor(input) {
3
- super(`No route found for input '${String(input)}' and no 404 route defined`);
4
- this.input = input;
5
- }
6
- }
7
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAE7C,YAAY,KAAY;QACtB,KAAK,CACH,6BAA6B,MAAM,CAAC,KAAK,CAAC,4BAA4B,CACvE,CAAA;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;CACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/models/events/connections/index.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,uBAGX;AAHD,WAAY,uBAAuB;IACjC,kDAAuB,CAAA;IACvB,wDAA6B,CAAA;AAC/B,CAAC,EAHW,uBAAuB,KAAvB,uBAAuB,QAGlC"}
@@ -1,2 +0,0 @@
1
- export declare function parseNumber(strNumber: string): number;
2
- export declare function parseBoolean(strNumber: string): boolean;
@@ -1,9 +0,0 @@
1
- export function parseNumber(strNumber) {
2
- return parseInt(strNumber);
3
- }
4
- export function parseBoolean(strNumber) {
5
- if (strNumber === '0')
6
- return false;
7
- return true;
8
- }
9
- //# sourceMappingURL=util.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/output-parser/util.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,WAAW,CAAC,SAAiB;IAC3C,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAA;AAC5B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,SAAiB;IAC5C,IAAI,SAAS,KAAK,GAAG;QAAE,OAAO,KAAK,CAAA;IACnC,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -1,35 +0,0 @@
1
- import { RouteInspector } from './debug/inspector';
2
- import { Input, Route, Routes, Session } from './index';
3
- interface RouteParams {
4
- route: Route;
5
- params: any;
6
- }
7
- declare type MatchingProp = 'text' | 'payload' | 'intent' | 'type' | 'input' | 'session' | 'request';
8
- declare type Matcher = string | RegExp | ((args: any) => boolean);
9
- export declare class Router {
10
- routes: Routes;
11
- routeInspector: RouteInspector;
12
- lastRoutePath: string | null;
13
- /**
14
- * @param {Route[]} routes
15
- * @param routeInspector
16
- */
17
- constructor(routes: Routes, routeInspector?: RouteInspector | undefined);
18
- processInput(input: Input, session?: Partial<Session>, lastRoutePath?: string | null): any;
19
- getOnFinishParams(input: Input): string | undefined;
20
- /**
21
- * @return {null|RouteParams}
22
- */
23
- getRoute(input: Input | Partial<Input>, routes: Routes, session: Session, lastRoutePath: string | null): RouteParams | null;
24
- getRouteByPath(path: string | null, routeList?: Routes | null): Route | null;
25
- /**
26
- * @return {Params|boolean}
27
- */
28
- matchRoute(route: Route, prop: MatchingProp, matcher: Matcher, input: Input, session: Session, lastRoutePath: string | null): any;
29
- /**
30
- *
31
- * @return {*|boolean|Params}
32
- */
33
- matchValue(matcher: string | RegExp | ((args: any) => boolean), value: any): boolean;
34
- }
35
- export {};
package/lib/esm/router.js DELETED
@@ -1,258 +0,0 @@
1
- import { RouteInspector } from './debug/inspector';
2
- import { NoMatchingRouteError } from './errors';
3
- import { isFunction } from './utils';
4
- export class Router {
5
- /**
6
- * @param {Route[]} routes
7
- * @param routeInspector
8
- */
9
- constructor(routes, routeInspector = undefined) {
10
- this.routes = routes;
11
- this.routeInspector = routeInspector || new RouteInspector();
12
- }
13
- // eslint-disable-next-line complexity
14
- processInput(input, session = {}, lastRoutePath = null) {
15
- let routeParams = {};
16
- if (input.payload && input.payload.includes('__PATH_PAYLOAD__')) {
17
- const pathParam = input.payload.split('__PATH_PAYLOAD__');
18
- routeParams.route = this.getRouteByPath(pathParam[1], this.routes);
19
- }
20
- const pathParams = this.getOnFinishParams(input);
21
- let brokenFlow = false;
22
- const lastRoute = this.getRouteByPath(lastRoutePath, this.routes);
23
- if (!lastRoute && input.path)
24
- routeParams.route = this.getRouteByPath(input.path, this.routes);
25
- if (lastRoute && lastRoute.childRoutes && !routeParams.route)
26
- //get route depending of current ChildRoute
27
- routeParams = this.getRoute(input, lastRoute.childRoutes, session, lastRoutePath);
28
- if (!routeParams || !Object.keys(routeParams).length) {
29
- /*
30
- we couldn't find a route in the state of the lastRoute, so let's find in
31
- the general conf.route
32
- */
33
- brokenFlow = Boolean(lastRoutePath);
34
- routeParams = this.getRoute(input, this.routes, session, lastRoutePath);
35
- }
36
- try {
37
- if (pathParams) {
38
- const searchParams = new URLSearchParams(pathParams);
39
- for (const [key, value] of searchParams) {
40
- routeParams.params
41
- ? (routeParams.params[key] = value)
42
- : (routeParams.params = { [key]: value });
43
- }
44
- }
45
- }
46
- catch (e) { }
47
- if (routeParams && Object.keys(routeParams).length) {
48
- //get in childRoute if one has path ''
49
- let defaultAction;
50
- if (routeParams.route) {
51
- if (!routeParams.route.path &&
52
- routeParams.route.childRoutes &&
53
- routeParams.route.childRoutes.length) {
54
- defaultAction = this.getRoute({ path: '' }, routeParams.route.childRoutes, session, lastRoutePath);
55
- }
56
- if ('action' in routeParams.route) {
57
- if (brokenFlow &&
58
- routeParams.route.ignoreRetry != true &&
59
- lastRoute &&
60
- (session.__retries || 0) < (lastRoute.retry || 0) &&
61
- routeParams.route.path != lastRoute.action) {
62
- session.__retries = session.__retries ? session.__retries + 1 : 1;
63
- // The flow was broken, but we want to recover it
64
- return {
65
- action: routeParams.route.action,
66
- params: routeParams.params,
67
- retryAction: lastRoute ? lastRoute.action : null,
68
- defaultAction: defaultAction ? defaultAction.route.action : null,
69
- lastRoutePath: lastRoutePath,
70
- };
71
- }
72
- else {
73
- session.__retries = 0;
74
- if (lastRoutePath && !brokenFlow)
75
- lastRoutePath = `${lastRoutePath}/${routeParams.route.path}`;
76
- else
77
- lastRoutePath = routeParams.route.path;
78
- return {
79
- action: routeParams.route.action,
80
- params: routeParams.params,
81
- retryAction: null,
82
- defaultAction: defaultAction ? defaultAction.route.action : null,
83
- lastRoutePath: lastRoutePath,
84
- };
85
- }
86
- }
87
- else if (defaultAction) {
88
- return {
89
- action: defaultAction.route.action,
90
- params: defaultAction.params,
91
- lastRoutePath: lastRoutePath,
92
- };
93
- }
94
- else if ('redirect' in routeParams.route) {
95
- lastRoutePath = routeParams.route.redirect;
96
- const redirectRoute = this.getRouteByPath(lastRoutePath, this.routes);
97
- if (redirectRoute) {
98
- return {
99
- action: redirectRoute.action,
100
- params: redirectRoute.params,
101
- lastRoutePath: lastRoutePath,
102
- };
103
- }
104
- }
105
- }
106
- }
107
- const notFound = this.getRouteByPath('404', this.routes);
108
- if (!notFound)
109
- throw new NoMatchingRouteError(input);
110
- if (lastRoute && (session.__retries || 0) < (lastRoute.retry || 0)) {
111
- session.__retries = session.__retries ? session.__retries + 1 : 1;
112
- return {
113
- action: notFound.action,
114
- params: {},
115
- retryAction: lastRoute.action,
116
- lastRoutePath: lastRoutePath,
117
- };
118
- }
119
- else {
120
- this.lastRoutePath = null;
121
- session.__retries = 0;
122
- return {
123
- action: notFound.action,
124
- params: {},
125
- retryAction: null,
126
- lastRoutePath: lastRoutePath,
127
- };
128
- }
129
- }
130
- getOnFinishParams(input) {
131
- try {
132
- if (!input.payload) {
133
- return undefined;
134
- }
135
- const params = input.payload.split('__PATH_PAYLOAD__');
136
- if (params.length < 2) {
137
- return undefined;
138
- }
139
- const pathParams = params[1].split('?');
140
- if (pathParams.length > 0) {
141
- input.path = pathParams[0];
142
- delete input.payload;
143
- }
144
- if (pathParams.length > 1) {
145
- return pathParams[1];
146
- }
147
- }
148
- catch (e) {
149
- console.error('ERROR getOnFinishParams', e);
150
- }
151
- return undefined;
152
- }
153
- /**
154
- * @return {null|RouteParams}
155
- */
156
- getRoute(input, routes, session, lastRoutePath) {
157
- const computedRoutes = isFunction(routes)
158
- ? // @ts-ignore
159
- routes({ input, session, lastRoutePath })
160
- : routes;
161
- /* Find the route that matches the given input, if it match with some of the entries,
162
- return the whole Route of the entry with optional params captured if matcher was a regex */
163
- /** @type {{ [key: string]: string }}*/
164
- let params = {};
165
- const route = computedRoutes.find(r => Object.entries(r)
166
- .filter(([key, _]) => key != 'action' && key != 'childRoutes')
167
- .some(([key, value]) => {
168
- const match = this.matchRoute(r, key, value, input, session, lastRoutePath);
169
- try {
170
- params = match.groups;
171
- }
172
- catch (e) { }
173
- return Boolean(match);
174
- }));
175
- if (route) {
176
- return { route, params };
177
- }
178
- return null;
179
- }
180
- getRouteByPath(path, routeList = null) {
181
- if (!path)
182
- return null;
183
- let route = null;
184
- routeList = routeList || this.routes;
185
- const [currentPath, ...childPath] = path.split('/');
186
- if (Array.isArray(routeList)) {
187
- for (const r of routeList) {
188
- //iterate over all routeList
189
- if (r.path == currentPath) {
190
- route = r;
191
- if (r.childRoutes && r.childRoutes.length && childPath.length > 0) {
192
- //evaluate childroute over next actions
193
- route = this.getRouteByPath(childPath.join('/'), r.childRoutes);
194
- if (route)
195
- return route;
196
- }
197
- else if (childPath.length === 0)
198
- return route; //last action and found route
199
- }
200
- }
201
- }
202
- return null;
203
- }
204
- /**
205
- * @return {Params|boolean}
206
- */
207
- matchRoute(route, prop, matcher, input, session, lastRoutePath) {
208
- /*
209
- prop: ('text' | 'payload' | 'intent' | 'type' | 'input' | 'session' | 'request' ...)
210
- matcher: (string: exact match | regex: regular expression match | function: return true)
211
- input: user input object, ex: {type: 'text', data: 'Hi'}
212
- */
213
- /** @type {any} */
214
- let value = '';
215
- if (Object.keys(input).indexOf(prop) > -1)
216
- value = input[prop];
217
- if (prop === 'text') {
218
- if (input.type === 'text')
219
- value = input.data;
220
- }
221
- else if (prop === 'input')
222
- value = input;
223
- else if (prop === 'session')
224
- value = session;
225
- else if (prop === 'request')
226
- value = { input, session, lastRoutePath };
227
- const matched = this.matchValue(matcher, value);
228
- if (matched) {
229
- this.routeInspector.routeMatched(route, prop, matcher, value);
230
- }
231
- else {
232
- this.routeInspector.routeNotMatched(route, prop, matcher, value);
233
- }
234
- return matched;
235
- }
236
- /**
237
- *
238
- * @return {*|boolean|Params}
239
- */
240
- matchValue(matcher, value) {
241
- if (typeof matcher === 'string') {
242
- // TODO should this be === to avoid matching '' with undefined?
243
- return value == matcher;
244
- }
245
- if (matcher instanceof RegExp) {
246
- // check if undefined to avoid conversion to 'undefined'
247
- if (value === undefined) {
248
- return false;
249
- }
250
- return Boolean(matcher.exec(value));
251
- }
252
- if (typeof matcher === 'function') {
253
- return matcher(value);
254
- }
255
- return false;
256
- }
257
- }
258
- //# sourceMappingURL=router.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/router.ts"],"names":[],"mappings":"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"}
package/src/errors.ts DELETED
@@ -1,11 +0,0 @@
1
- import { Input } from './index'
2
-
3
- export class NoMatchingRouteError extends Error {
4
- input: Input
5
- constructor(input: Input) {
6
- super(
7
- `No route found for input '${String(input)}' and no 404 route defined`
8
- )
9
- this.input = input
10
- }
11
- }
@@ -1,8 +0,0 @@
1
- export function parseNumber(strNumber: string): number {
2
- return parseInt(strNumber)
3
- }
4
-
5
- export function parseBoolean(strNumber: string): boolean {
6
- if (strNumber === '0') return false
7
- return true
8
- }