@botonic/core 0.24.0 → 0.25.0-alpha.1
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.
- package/lib/cjs/core-bot.js +29 -3
- package/lib/cjs/core-bot.js.map +1 -1
- package/lib/cjs/data-provider/dynamodb-data-provider.js +10 -2
- package/lib/cjs/data-provider/dynamodb-data-provider.js.map +1 -1
- package/lib/cjs/data-provider/dynamodb-utils.js +15 -2
- package/lib/cjs/data-provider/dynamodb-utils.js.map +1 -1
- package/lib/cjs/data-provider/local-data-provider.js +8 -7
- package/lib/cjs/data-provider/local-data-provider.js.map +1 -1
- package/lib/cjs/debug/inspector.js +3 -0
- package/lib/cjs/debug/inspector.js.map +1 -1
- package/lib/cjs/handoff.js +12 -0
- package/lib/cjs/handoff.js.map +1 -1
- package/lib/cjs/hubtype-service.js +22 -4
- package/lib/cjs/hubtype-service.js.map +1 -1
- package/lib/cjs/output-parser/botonic-output-parser.js +8 -7
- package/lib/cjs/output-parser/botonic-output-parser.js.map +1 -1
- package/lib/cjs/output-parser/parsers.js +60 -17
- package/lib/cjs/output-parser/parsers.js.map +1 -1
- package/lib/cjs/routing/router-utils.js +2 -1
- package/lib/cjs/routing/router-utils.js.map +1 -1
- package/lib/cjs/routing/router.js +22 -16
- package/lib/cjs/routing/router.js.map +1 -1
- package/lib/cjs/utils.js +2 -3
- package/lib/cjs/utils.js.map +1 -1
- package/lib/esm/constants.js +7 -4
- package/lib/esm/constants.js.map +1 -1
- package/lib/esm/core-bot.js +50 -20
- package/lib/esm/core-bot.js.map +1 -1
- package/lib/esm/data-provider/dynamodb-data-provider.js +25 -13
- package/lib/esm/data-provider/dynamodb-data-provider.js.map +1 -1
- package/lib/esm/data-provider/dynamodb-utils.js +60 -40
- package/lib/esm/data-provider/dynamodb-utils.js.map +1 -1
- package/lib/esm/data-provider/factory.js +14 -10
- package/lib/esm/data-provider/factory.js.map +1 -1
- package/lib/esm/data-provider/index.js +20 -4
- package/lib/esm/data-provider/index.js.map +1 -1
- package/lib/esm/data-provider/local-data-provider.js +16 -11
- package/lib/esm/data-provider/local-data-provider.js.map +1 -1
- package/lib/esm/debug/index.js +17 -1
- package/lib/esm/debug/index.js.map +1 -1
- package/lib/esm/debug/inspector.js +14 -4
- package/lib/esm/debug/inspector.js.map +1 -1
- package/lib/esm/handoff.js +44 -17
- package/lib/esm/handoff.js.map +1 -1
- package/lib/esm/hubtype-service.js +36 -11
- package/lib/esm/hubtype-service.js.map +1 -1
- package/lib/esm/i18n.js +5 -1
- package/lib/esm/i18n.js.map +1 -1
- package/lib/esm/index.js +27 -11
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/models/events/base-event.js +5 -2
- package/lib/esm/models/events/base-event.js.map +1 -1
- package/lib/esm/models/events/botonic-event.js +2 -1
- package/lib/esm/models/events/connections/connection-event.js +5 -2
- package/lib/esm/models/events/connections/connection-event.js.map +1 -1
- package/lib/esm/models/events/connections/index.js +17 -1
- package/lib/esm/models/events/connections/index.js.map +1 -1
- package/lib/esm/models/events/index.js +20 -4
- package/lib/esm/models/events/index.js.map +1 -1
- package/lib/esm/models/events/message/buttons.js +2 -1
- package/lib/esm/models/events/message/carousel.js +2 -1
- package/lib/esm/models/events/message/contact.js +2 -1
- package/lib/esm/models/events/message/custom.js +2 -1
- package/lib/esm/models/events/message/form.js +2 -1
- package/lib/esm/models/events/message/index.js +27 -11
- package/lib/esm/models/events/message/index.js.map +1 -1
- package/lib/esm/models/events/message/location.js +2 -1
- package/lib/esm/models/events/message/media.js +9 -6
- package/lib/esm/models/events/message/media.js.map +1 -1
- package/lib/esm/models/events/message/message-event.js +9 -6
- package/lib/esm/models/events/message/message-event.js.map +1 -1
- package/lib/esm/models/events/message/missed.js +2 -1
- package/lib/esm/models/events/message/postback.js +2 -1
- package/lib/esm/models/events/message/replies.js +2 -1
- package/lib/esm/models/events/message/text.js +2 -1
- package/lib/esm/models/index.js +19 -3
- package/lib/esm/models/index.js.map +1 -1
- package/lib/esm/models/legacy-types.js +12 -9
- package/lib/esm/models/legacy-types.js.map +1 -1
- package/lib/esm/models/user.js +2 -1
- package/lib/esm/output-parser/botonic-output-parser.js +19 -14
- package/lib/esm/output-parser/botonic-output-parser.js.map +1 -1
- package/lib/esm/output-parser/factory.js +26 -22
- package/lib/esm/output-parser/factory.js.map +1 -1
- package/lib/esm/output-parser/index.js +19 -3
- package/lib/esm/output-parser/index.js.map +1 -1
- package/lib/esm/output-parser/parsers.js +104 -41
- package/lib/esm/output-parser/parsers.js.map +1 -1
- package/lib/esm/plugins.js +7 -2
- package/lib/esm/plugins.js.map +1 -1
- package/lib/esm/pusher-utils.js +7 -3
- package/lib/esm/pusher-utils.js.map +1 -1
- package/lib/esm/routing/index.js +18 -2
- package/lib/esm/routing/index.js.map +1 -1
- package/lib/esm/routing/router-utils.js +26 -15
- package/lib/esm/routing/router-utils.js.map +1 -1
- package/lib/esm/routing/router.js +47 -37
- package/lib/esm/routing/router.js.map +1 -1
- package/lib/esm/utils.js +22 -12
- package/lib/esm/utils.js.map +1 -1
- package/package.json +3 -9
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getComputedRoutes = exports.getNotFoundAction = exports.getEmptyAction = exports.pathParamsToParams = exports.getPathParamsFromPathPayload = exports.isPathPayload = exports.NoMatchingRouteError = void 0;
|
|
4
4
|
const constants_1 = require("../constants");
|
|
5
5
|
class NoMatchingRouteError extends Error {
|
|
6
|
+
input;
|
|
6
7
|
constructor(input) {
|
|
7
8
|
super(`No route found for input '${JSON.stringify(input)}' and no ${constants_1.NOT_FOUND_PATH} route defined`);
|
|
8
9
|
this.input = input;
|
|
@@ -31,7 +32,7 @@ function getPathParamsFromPathPayload(payload) {
|
|
|
31
32
|
throw `${constants_1.PATH_PAYLOAD_IDENTIFIER} is empty`;
|
|
32
33
|
}
|
|
33
34
|
const [path, params] = pathWithParams.split('?');
|
|
34
|
-
return { path: path
|
|
35
|
+
return { path: path ?? null, params: pathParamsToParams(params) };
|
|
35
36
|
}
|
|
36
37
|
catch (e) {
|
|
37
38
|
console.error('Error getting path and params from input.payload:', e);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router-utils.js","sourceRoot":"","sources":["../../../src/routing/router-utils.ts"],"names":[],"mappings":";;;AAAA,4CAKqB;AAWrB,MAAa,oBAAqB,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"router-utils.js","sourceRoot":"","sources":["../../../src/routing/router-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,8 @@ const inspector_1 = require("../debug/inspector");
|
|
|
6
6
|
const utils_1 = require("../utils");
|
|
7
7
|
const router_utils_1 = require("./router-utils");
|
|
8
8
|
class Router {
|
|
9
|
+
routes;
|
|
10
|
+
routeInspector;
|
|
9
11
|
constructor(routes, routeInspector = undefined) {
|
|
10
12
|
this.routes = routes;
|
|
11
13
|
this.routeInspector = routeInspector || new inspector_1.RouteInspector();
|
|
@@ -22,12 +24,11 @@ class Router {
|
|
|
22
24
|
*/
|
|
23
25
|
// eslint-disable-next-line complexity
|
|
24
26
|
processInput(input, session, lastRoutePath = null) {
|
|
25
|
-
|
|
26
|
-
session.__retries = (_a = session === null || session === void 0 ? void 0 : session.__retries) !== null && _a !== void 0 ? _a : 0;
|
|
27
|
+
session.__retries = session?.__retries ?? 0;
|
|
27
28
|
// 1. Getting the current routing state.
|
|
28
29
|
const { currentRoute, matchedRoute, params, isFlowBroken } = this.getRoutingState(input, session, lastRoutePath);
|
|
29
|
-
const currentRoutePath =
|
|
30
|
-
const matchedRoutePath =
|
|
30
|
+
const currentRoutePath = currentRoute?.path ?? null;
|
|
31
|
+
const matchedRoutePath = matchedRoute?.path ?? null;
|
|
31
32
|
// 2. Given a routing state, resolve the different possible scenarios and return the new bot state.
|
|
32
33
|
/**
|
|
33
34
|
* Redirect Scenario:
|
|
@@ -89,7 +90,7 @@ class Router {
|
|
|
89
90
|
};
|
|
90
91
|
}
|
|
91
92
|
return {
|
|
92
|
-
action:
|
|
93
|
+
action: currentRoute.action ?? null,
|
|
93
94
|
emptyAction: (0, router_utils_1.getEmptyAction)(currentRoute.childRoutes),
|
|
94
95
|
fallbackAction: (0, router_utils_1.getNotFoundAction)(input, this.routes),
|
|
95
96
|
lastRoutePath: currentRoutePath,
|
|
@@ -107,7 +108,7 @@ class Router {
|
|
|
107
108
|
*/
|
|
108
109
|
if (matchedRoute && matchedRoutePath !== constants_1.NOT_FOUND_PATH) {
|
|
109
110
|
return {
|
|
110
|
-
action:
|
|
111
|
+
action: matchedRoute.action ?? null,
|
|
111
112
|
emptyAction: (0, router_utils_1.getEmptyAction)(matchedRoute.childRoutes),
|
|
112
113
|
fallbackAction: null,
|
|
113
114
|
lastRoutePath: matchedRoutePath,
|
|
@@ -139,7 +140,7 @@ class Router {
|
|
|
139
140
|
try {
|
|
140
141
|
if (match !== null && typeof match !== 'boolean' && match.groups) {
|
|
141
142
|
// Strip '[Object: null prototype]' from groups result: https://stackoverflow.com/a/62945609/6237608
|
|
142
|
-
params =
|
|
143
|
+
params = { ...match.groups };
|
|
143
144
|
}
|
|
144
145
|
}
|
|
145
146
|
catch (e) { }
|
|
@@ -237,16 +238,18 @@ class Router {
|
|
|
237
238
|
* 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.
|
|
238
239
|
* */
|
|
239
240
|
getRoutingStateFromInput(currentRoute, input, session) {
|
|
240
|
-
var _a, _b, _c;
|
|
241
241
|
// get route depending of current ChildRoutes
|
|
242
242
|
if (currentRoute && currentRoute.childRoutes) {
|
|
243
243
|
const routeParams = this.getRoute(input, currentRoute.childRoutes, session, currentRoute.path);
|
|
244
244
|
if (routeParams) {
|
|
245
245
|
return {
|
|
246
246
|
currentRoute,
|
|
247
|
-
matchedRoute:
|
|
247
|
+
matchedRoute: {
|
|
248
|
+
...routeParams.route,
|
|
249
|
+
path: routeParams.route && currentRoute.path
|
|
248
250
|
? `${currentRoute.path}/${routeParams.route.path}`
|
|
249
|
-
: currentRoute.path
|
|
251
|
+
: currentRoute.path,
|
|
252
|
+
},
|
|
250
253
|
params: routeParams.params,
|
|
251
254
|
isFlowBroken: false,
|
|
252
255
|
};
|
|
@@ -256,12 +259,15 @@ class Router {
|
|
|
256
259
|
* we couldn't find a route in the state of the currentRoute childRoutes,
|
|
257
260
|
* so let's find in the general routes
|
|
258
261
|
*/
|
|
259
|
-
const routeParams = this.getRoute(input, this.routes, session,
|
|
260
|
-
const isFlowBroken = Boolean(currentRoute
|
|
261
|
-
if (routeParams
|
|
262
|
+
const routeParams = this.getRoute(input, this.routes, session, currentRoute?.path ?? null);
|
|
263
|
+
const isFlowBroken = Boolean(currentRoute?.path);
|
|
264
|
+
if (routeParams?.route) {
|
|
262
265
|
return {
|
|
263
266
|
currentRoute,
|
|
264
|
-
matchedRoute:
|
|
267
|
+
matchedRoute: {
|
|
268
|
+
...routeParams.route,
|
|
269
|
+
path: routeParams.route?.path ?? null,
|
|
270
|
+
},
|
|
265
271
|
params: routeParams.params,
|
|
266
272
|
isFlowBroken,
|
|
267
273
|
};
|
|
@@ -293,7 +299,7 @@ class Router {
|
|
|
293
299
|
}
|
|
294
300
|
return {
|
|
295
301
|
currentRoute,
|
|
296
|
-
matchedRoute:
|
|
302
|
+
matchedRoute: { ...matchedRoute, path: seekPath },
|
|
297
303
|
params,
|
|
298
304
|
isFlowBroken: false,
|
|
299
305
|
};
|
|
@@ -302,7 +308,7 @@ class Router {
|
|
|
302
308
|
* Given a valid path: 'Flow1/Subflow1' we are in one of the two scenarios below.
|
|
303
309
|
*/
|
|
304
310
|
// 1. Received __PATH_PAYLOAD__Subflow2, so we need to first try to concatenate it with Flow1 (lastRoutePath)
|
|
305
|
-
if (currentRoute
|
|
311
|
+
if (currentRoute?.path) {
|
|
306
312
|
const routingState = getRoutingStateFromPath(`${currentRoute.path}/${path}`);
|
|
307
313
|
if (routingState.matchedRoute)
|
|
308
314
|
return routingState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/routing/router.ts"],"names":[],"mappings":";;;AAAA,4CAA6C;AAC7C,kDAAmD;AAcnD,oCAAsC;AACtC,iDAMuB;AAEvB,MAAa,MAAM;
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/routing/router.ts"],"names":[],"mappings":";;;AAAA,4CAA6C;AAC7C,kDAAmD;AAcnD,oCAAsC;AACtC,iDAMuB;AAEvB,MAAa,MAAM;IACjB,MAAM,CAAS;IACf,cAAc,CAAgB;IAE9B,YACE,MAAe,EACf,iBAA6C,SAAS;QAEtD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,cAAc,GAAG,cAAc,IAAI,IAAI,0BAAc,EAAE,CAAA;IAC9D,CAAC;IAED;;;;;;;;;OASG;IAEH,sCAAsC;IACtC,YAAY,CACV,KAAY,EACZ,OAAgB,EAChB,gBAA2B,IAAI;QAE/B,OAAO,CAAC,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,CAAC,CAAA;QAE3C,wCAAwC;QACxC,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,GACxD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC,CAAA;QAErD,MAAM,gBAAgB,GAAG,YAAY,EAAE,IAAI,IAAI,IAAI,CAAA;QACnD,MAAM,gBAAgB,GAAG,YAAY,EAAE,IAAI,IAAI,IAAI,CAAA;QAEnD,mGAAmG;QAEnG;;;;;WAKG;QACH,IAAI,YAAY,IAAI,YAAY,CAAC,QAAQ,EAAE;YACzC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAA;YACrB,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;YACnE,IAAI,gBAAgB,EAAE;gBACpB,OAAO;oBACL,MAAM,EAAE,gBAAgB,CAAC,MAAM;oBAC/B,WAAW,EAAE,IAAA,6BAAc,EAAC,gBAAgB,CAAC,WAAW,CAAC;oBACzD,cAAc,EAAE,IAAI;oBACpB,aAAa,EAAE,YAAY,CAAC,QAAQ;oBACpC,MAAM;iBACP,CAAA;aACF;YACD,OAAO;gBACL,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,IAAI;gBACjB,cAAc,EAAE,IAAA,gCAAiB,EAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;gBACrD,aAAa,EAAE,IAAI;gBACnB,MAAM;aACP,CAAA;SACF;QAED;;;WAGG;QACH,IAAI,YAAY,IAAI,YAAY,CAAC,WAAW,EAAE;YAC5C,OAAO,CAAC,SAAS,GAAG,CAAC,CAAA;YACrB,OAAO;gBACL,MAAM,EAAE,YAAY,CAAC,MAAM;gBAC3B,WAAW,EAAE,IAAA,6BAAc,EAAC,YAAY,CAAC,WAAW,CAAC;gBACrD,cAAc,EAAE,IAAI;gBACpB,aAAa,EAAE,gBAAgB;gBAC/B,MAAM;aACP,CAAA;SACF;QAED;;;;WAIG;QACH,IACE,YAAY;YACZ,YAAY;YACZ,YAAY,CAAC,KAAK;YAClB,OAAO,CAAC,SAAS,GAAG,YAAY,CAAC,KAAK,EACtC;YACA,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACvE,IAAI,YAAY,IAAI,gBAAgB,KAAK,0BAAc,EAAE;gBACvD,OAAO;oBACL,MAAM,EAAE,YAAY,CAAC,MAAM;oBAC3B,WAAW,EAAE,IAAA,6BAAc,EAAC,YAAY,CAAC,WAAW,CAAC;oBACrD,cAAc,EAAE,YAAY,CAAC,MAAM;oBACnC,aAAa,EAAE,gBAAgB;oBAC/B,MAAM;iBACP,CAAA;aACF;YACD,OAAO;gBACL,MAAM,EAAE,YAAY,CAAC,MAAM,IAAI,IAAI;gBACnC,WAAW,EAAE,IAAA,6BAAc,EAAC,YAAY,CAAC,WAAW,CAAC;gBACrD,cAAc,EAAE,IAAA,gCAAiB,EAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;gBACrD,aAAa,EAAE,gBAAgB;gBAC/B,MAAM;aACP,CAAA;SACF;QAED;;;WAGG;QACH,OAAO,CAAC,SAAS,GAAG,CAAC,CAAA;QAErB;;;WAGG;QACH,IAAI,YAAY,IAAI,gBAAgB,KAAK,0BAAc,EAAE;YACvD,OAAO;gBACL,MAAM,EAAE,YAAY,CAAC,MAAM,IAAI,IAAI;gBACnC,WAAW,EAAE,IAAA,6BAAc,EAAC,YAAY,CAAC,WAAW,CAAC;gBACrD,cAAc,EAAE,IAAI;gBACpB,aAAa,EAAE,gBAAgB;gBAC/B,MAAM;aACP,CAAA;SACF;QAED;;;WAGG;QACH,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,IAAI;YACjB,cAAc,EAAE,IAAA,gCAAiB,EAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;YACrD,MAAM;YACN,aAAa,EAAE,gBAAgB;SAChC,CAAA;IACH,CAAC;IAED;;;SAGK;IACL,QAAQ,CACN,KAA6B,EAC7B,MAAe,EACf,OAAgB,EAChB,aAAwB;QAExB,IAAI,MAAM,GAAG,EAAE,CAAA;QACf,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAC5B,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;aACd,MAAM,CACL,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CACX,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,aAAa,IAAI,GAAG,KAAK,MAAM,CAC9D;aACA,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACrB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAC3B,CAAC,EACD,GAAmB,EACnB,KAAgB,EAChB,KAAc,EACd,OAAO,EACP,aAAa,CACd,CAAA;YACD,IAAI;gBACF,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,EAAE;oBAChE,oGAAoG;oBACpG,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,CAAA;iBAC7B;aACF;YAAC,OAAO,CAAC,EAAE,GAAE;YACd,OAAO,OAAO,CAAC,KAAK,CAAC,CAAA;QACvB,CAAC,CAAC,CACL,CAAA;QACD,IAAI,KAAK;YAAE,OAAO,EAAE,KAAK,EAAE,IAAA,mBAAW,EAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;QACvD,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;SAGK;IACL,cAAc,CACZ,IAAe,EACf,YAAqB,IAAI,CAAC,MAAM;QAEhC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA;QACtB,MAAM,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACnD,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE;YAC7B,6BAA6B;YAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE;gBAC9B,IACE,KAAK,CAAC,WAAW;oBACjB,KAAK,CAAC,WAAW,CAAC,MAAM;oBACxB,SAAS,CAAC,MAAM,GAAG,CAAC,EACpB;oBACA,wCAAwC;oBACxC,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CACvC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EACnB,KAAK,CAAC,WAAW,CAClB,CAAA;oBACD,6FAA6F;oBAC7F,IAAI,aAAa;wBAAE,OAAO,IAAA,mBAAW,EAAC,aAAa,CAAC,CAAA;iBACrD;qBAAM,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;oBACjC,OAAO,IAAA,mBAAW,EAAC,KAAK,CAAC,CAAA,CAAC,8BAA8B;iBACzD;aACF;SACF;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;;SAKK;IACL,UAAU,CACR,KAAY,EACZ,IAAkB,EAClB,OAAgB,EAChB,KAAY,EACZ,OAAgB,EAChB,aAAwB;QAExB,IAAI,KAAK,GAAQ,IAAI,CAAA;QACrB,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAAE,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;aACzD,IAAI,IAAI,KAAK,MAAM;YAAE,KAAK,GAAG,KAAK,CAAC,IAAI,CAAA;aACvC,IAAI,IAAI,KAAK,OAAO;YAAE,KAAK,GAAG,KAAK,CAAA;aACnC,IAAI,IAAI,KAAK,SAAS;YAAE,KAAK,GAAG,OAAO,CAAA;aACvC,IAAI,IAAI,KAAK,SAAS;YAAE,KAAK,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,CAAA;QACtE,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAC/C,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;SAC9D;aAAM;YACL,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;SACjE;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAED;;;SAGK;IACL,UAAU,CAAC,OAAgB,EAAE,KAAU;QACrC,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,KAAK,KAAK,OAAO,CAAA;QACzD,IAAI,OAAO,YAAY,MAAM,EAAE;YAC7B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAA;YACvD,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;SAC3B;QACD,IAAI,OAAO,OAAO,KAAK,UAAU;YAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAA;QACxD,OAAO,KAAK,CAAA;IACd,CAAC;IAED;;;;SAIK;IACL,eAAe,CACb,KAAY,EACZ,OAAgB,EAChB,aAAwB;QAExB,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAA;QACvD,IAAI,YAAY,IAAI,aAAa;YAAE,YAAY,CAAC,IAAI,GAAG,aAAa,CAAA;QACpE,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAA,4BAAa,EAAC,KAAK,CAAC,OAAO,CAAC,EAAE;YACrE,OAAO,IAAI,CAAC,8BAA8B,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;SACxE;QACD,OAAO,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;IACpE,CAAC;IAED;;SAEK;IACL,wBAAwB,CACtB,YAA6B,EAC7B,KAAY,EACZ,OAAgB;QAEhB,6CAA6C;QAC7C,IAAI,YAAY,IAAI,YAAY,CAAC,WAAW,EAAE;YAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAC/B,KAAK,EACL,YAAY,CAAC,WAAW,EACxB,OAAO,EACP,YAAY,CAAC,IAAI,CAClB,CAAA;YACD,IAAI,WAAW,EAAE;gBACf,OAAO;oBACL,YAAY;oBACZ,YAAY,EAAE;wBACZ,GAAG,WAAW,CAAC,KAAK;wBACpB,IAAI,EACF,WAAW,CAAC,KAAK,IAAI,YAAY,CAAC,IAAI;4BACpC,CAAC,CAAC,GAAG,YAAY,CAAC,IAAI,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE;4BAClD,CAAC,CAAC,YAAY,CAAC,IAAI;qBACxB;oBACD,MAAM,EAAE,WAAW,CAAC,MAAM;oBAC1B,YAAY,EAAE,KAAK;iBACpB,CAAA;aACF;SACF;QACD;;;WAGG;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAC/B,KAAK,EACL,IAAI,CAAC,MAAM,EACX,OAAO,EACP,YAAY,EAAE,IAAI,IAAI,IAAI,CAC3B,CAAA;QACD,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;QAChD,IAAI,WAAW,EAAE,KAAK,EAAE;YACtB,OAAO;gBACL,YAAY;gBACZ,YAAY,EAAE;oBACZ,GAAG,WAAW,CAAC,KAAK;oBACpB,IAAI,EAAE,WAAW,CAAC,KAAK,EAAE,IAAI,IAAI,IAAI;iBACtC;gBACD,MAAM,EAAE,WAAW,CAAC,MAAM;gBAC1B,YAAY;aACb,CAAA;SACF;QACD,OAAO;YACL,YAAY;YACZ,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,EAAE;YACV,YAAY;SACb,CAAA;IACH,CAAC;IAED;;SAEK;IACL,8BAA8B,CAC5B,YAA6B,EAC7B,WAAmB;QAEnB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAA,2CAA4B,EAAC,WAAW,CAAC,CAAA;QAClE;;WAEG;QACH,MAAM,uBAAuB,GAAG,CAAC,QAAgB,EAAgB,EAAE;YACjE,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;YAClD,IAAI,CAAC,YAAY,EAAE;gBACjB,OAAO;oBACL,YAAY;oBACZ,YAAY,EAAE,IAAI;oBAClB,MAAM,EAAE,EAAE;oBACV,YAAY,EAAE,IAAI;iBACnB,CAAA;aACF;YACD,OAAO;gBACL,YAAY;gBACZ,YAAY,EAAE,EAAE,GAAG,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACjD,MAAM;gBACN,YAAY,EAAE,KAAK;aACpB,CAAA;QACH,CAAC,CAAA;QACD;;WAEG;QACH,8GAA8G;QAC9G,IAAI,YAAY,EAAE,IAAI,EAAE;YACtB,MAAM,YAAY,GAAG,uBAAuB,CAC1C,GAAG,YAAY,CAAC,IAAI,IAAI,IAAI,EAAE,CAC/B,CAAA;YACD,IAAI,YAAY,CAAC,YAAY;gBAAE,OAAO,YAAY,CAAA;SACnD;QACD,4EAA4E;QAC5E,OAAO,uBAAuB,CAAC,IAAc,CAAC,CAAA;IAChD,CAAC;CACF;AA5XD,wBA4XC"}
|
package/lib/cjs/utils.js
CHANGED
|
@@ -12,14 +12,13 @@ const isNode = () => {
|
|
|
12
12
|
};
|
|
13
13
|
exports.isNode = isNode;
|
|
14
14
|
const isBrowser = () => {
|
|
15
|
-
var _a, _b;
|
|
16
15
|
// @ts-ignore
|
|
17
16
|
return typeof IS_BROWSER !== 'undefined'
|
|
18
17
|
? // @ts-ignore
|
|
19
18
|
IS_BROWSER
|
|
20
19
|
: typeof window !== 'undefined' &&
|
|
21
20
|
typeof window.document !== 'undefined' &&
|
|
22
|
-
!
|
|
21
|
+
!window.process?.versions?.node;
|
|
23
22
|
};
|
|
24
23
|
exports.isBrowser = isBrowser;
|
|
25
24
|
const isMobile = (mobileBreakpoint = 460) => {
|
|
@@ -39,7 +38,7 @@ exports.isFunction = isFunction;
|
|
|
39
38
|
function cloneObject(object) {
|
|
40
39
|
if (!object)
|
|
41
40
|
return {};
|
|
42
|
-
return
|
|
41
|
+
return { ...object };
|
|
43
42
|
}
|
|
44
43
|
exports.cloneObject = cloneObject;
|
|
45
44
|
const params2queryString = (params) => Object.entries(params)
|
package/lib/cjs/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;;AAAO,MAAM,MAAM,GAAG,GAAY,EAAE;IAClC,aAAa;IACb,OAAO,OAAO,OAAO,KAAK,WAAW;QACnC,CAAC,CAAC,aAAa;YACb,OAAO;QACT,CAAC,CAAC,OAAO,OAAO,KAAK,WAAW;YAC5B,OAAO,CAAC,QAAQ,KAAK,IAAI;YACzB,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAA;AACtC,CAAC,CAAA;AARY,QAAA,MAAM,UAQlB;AAEM,MAAM,SAAS,GAAG,GAAY,EAAE
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/constants.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PATH_PAYLOAD_REGEXP = exports.PATH_PAYLOAD_IDENTIFIER = exports.EMPTY_ACTION_PATH = exports.NOT_FOUND_PATH = void 0;
|
|
4
|
+
exports.NOT_FOUND_PATH = '404';
|
|
5
|
+
exports.EMPTY_ACTION_PATH = '';
|
|
6
|
+
exports.PATH_PAYLOAD_IDENTIFIER = '__PATH_PAYLOAD__';
|
|
7
|
+
exports.PATH_PAYLOAD_REGEXP = new RegExp(`\\b^${exports.PATH_PAYLOAD_IDENTIFIER}(.*)\\b`);
|
|
5
8
|
//# sourceMappingURL=constants.js.map
|
package/lib/esm/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG,KAAK,CAAA;AACtB,QAAA,iBAAiB,GAAG,EAAE,CAAA;AACtB,QAAA,uBAAuB,GAAG,kBAAkB,CAAA;AAC5C,QAAA,mBAAmB,GAAG,IAAI,MAAM,CAC3C,OAAO,+BAAuB,SAAS,CACxC,CAAA"}
|
package/lib/esm/core-bot.js
CHANGED
|
@@ -1,17 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CoreBot = void 0;
|
|
4
|
+
const ulid_1 = require("ulid");
|
|
5
|
+
const debug_1 = require("./debug");
|
|
6
|
+
const i18n_1 = require("./i18n");
|
|
7
|
+
const models_1 = require("./models");
|
|
8
|
+
const output_parser_1 = require("./output-parser");
|
|
9
|
+
const plugins_1 = require("./plugins");
|
|
10
|
+
const routing_1 = require("./routing");
|
|
11
|
+
class CoreBot {
|
|
12
|
+
appId;
|
|
13
|
+
defaultDelay;
|
|
14
|
+
defaultRoutes;
|
|
15
|
+
defaultTyping;
|
|
16
|
+
inspector;
|
|
17
|
+
locales;
|
|
18
|
+
plugins;
|
|
19
|
+
renderer;
|
|
20
|
+
rootElement;
|
|
21
|
+
router;
|
|
22
|
+
routes;
|
|
23
|
+
theme;
|
|
24
|
+
botonicOutputParser = new output_parser_1.BotonicOutputParser();
|
|
9
25
|
constructor({
|
|
10
26
|
// TODO: Receives dataProvider
|
|
11
27
|
renderer, routes, locales, theme, plugins, appId, defaultTyping, defaultDelay, defaultRoutes, inspector, }) {
|
|
12
|
-
this.botonicOutputParser = new BotonicOutputParser();
|
|
13
28
|
this.renderer = renderer;
|
|
14
|
-
this.plugins = loadPlugins(plugins);
|
|
29
|
+
this.plugins = (0, plugins_1.loadPlugins)(plugins);
|
|
15
30
|
this.theme = theme || {};
|
|
16
31
|
this.defaultTyping =
|
|
17
32
|
typeof defaultTyping !== 'undefined' ? defaultTyping : 0.6;
|
|
@@ -22,17 +37,17 @@ export class CoreBot {
|
|
|
22
37
|
return;
|
|
23
38
|
}
|
|
24
39
|
this.rootElement = null;
|
|
25
|
-
this.inspector = inspector || new Inspector();
|
|
40
|
+
this.inspector = inspector || new debug_1.Inspector();
|
|
26
41
|
this.routes = routes;
|
|
27
42
|
this.defaultRoutes = defaultRoutes || [];
|
|
28
43
|
this.router =
|
|
29
44
|
this.routes instanceof Function
|
|
30
45
|
? null
|
|
31
|
-
: new Router([...this.routes, ...this.defaultRoutes], this.inspector.routeInspector);
|
|
46
|
+
: new routing_1.Router([...this.routes, ...this.defaultRoutes], this.inspector.routeInspector);
|
|
32
47
|
}
|
|
33
48
|
getString(id, session) {
|
|
34
49
|
// @ts-ignore
|
|
35
|
-
return getString(this.locales, session.__locale, id);
|
|
50
|
+
return (0, i18n_1.getString)(this.locales, session.__locale, id);
|
|
36
51
|
}
|
|
37
52
|
setLocale(locale, session) {
|
|
38
53
|
session.__locale = locale;
|
|
@@ -41,7 +56,7 @@ export class CoreBot {
|
|
|
41
56
|
session = session || {};
|
|
42
57
|
if (!session.__locale)
|
|
43
58
|
session.__locale = 'en';
|
|
44
|
-
if (input.type === INPUT.CHAT_EVENT) {
|
|
59
|
+
if (input.type === models_1.INPUT.CHAT_EVENT) {
|
|
45
60
|
return {
|
|
46
61
|
input,
|
|
47
62
|
session,
|
|
@@ -56,14 +71,21 @@ export class CoreBot {
|
|
|
56
71
|
if (dataProvider) {
|
|
57
72
|
// TODO: Next iterations. Review cycle of commited events to DB when messages change their ACK
|
|
58
73
|
// @ts-ignore
|
|
59
|
-
const userEvent = await dataProvider.saveEvent(
|
|
74
|
+
const userEvent = await dataProvider.saveEvent({
|
|
75
|
+
...parsedUserEvent,
|
|
76
|
+
userId,
|
|
77
|
+
eventId: (0, ulid_1.ulid)(),
|
|
78
|
+
createdAt: new Date().toISOString(),
|
|
79
|
+
from: models_1.MessageEventFrom.USER,
|
|
80
|
+
ack: models_1.MessageEventAck.RECEIVED,
|
|
81
|
+
});
|
|
60
82
|
}
|
|
61
83
|
if (this.plugins) {
|
|
62
|
-
await runPlugins(this.plugins, 'pre', input, session, lastRoutePath, undefined, undefined, dataProvider);
|
|
84
|
+
await (0, plugins_1.runPlugins)(this.plugins, 'pre', input, session, lastRoutePath, undefined, undefined, dataProvider);
|
|
63
85
|
}
|
|
64
86
|
if (this.routes instanceof Function) {
|
|
65
|
-
this.router = new Router([
|
|
66
|
-
...(await getComputedRoutes(this.routes, {
|
|
87
|
+
this.router = new routing_1.Router([
|
|
88
|
+
...(await (0, routing_1.getComputedRoutes)(this.routes, {
|
|
67
89
|
input,
|
|
68
90
|
session,
|
|
69
91
|
lastRoutePath,
|
|
@@ -98,13 +120,20 @@ export class CoreBot {
|
|
|
98
120
|
}
|
|
99
121
|
lastRoutePath = output.lastRoutePath;
|
|
100
122
|
if (this.plugins) {
|
|
101
|
-
await runPlugins(this.plugins, 'post', input, session, lastRoutePath, response, messageEvents, dataProvider);
|
|
123
|
+
await (0, plugins_1.runPlugins)(this.plugins, 'post', input, session, lastRoutePath, response, messageEvents, dataProvider);
|
|
102
124
|
}
|
|
103
125
|
if (dataProvider) {
|
|
104
126
|
// TODO: save bot responses to db and update user with new session and new params
|
|
105
127
|
for (const messageEvent of messageEvents) {
|
|
106
128
|
// @ts-ignore
|
|
107
|
-
const botEvent = await dataProvider.saveEvent(
|
|
129
|
+
const botEvent = await dataProvider.saveEvent({
|
|
130
|
+
...messageEvent,
|
|
131
|
+
userId,
|
|
132
|
+
eventId: (0, ulid_1.ulid)(),
|
|
133
|
+
createdAt: new Date().toISOString(),
|
|
134
|
+
from: models_1.MessageEventFrom.BOT,
|
|
135
|
+
ack: models_1.MessageEventAck.SENT,
|
|
136
|
+
});
|
|
108
137
|
}
|
|
109
138
|
}
|
|
110
139
|
session.is_first_interaction = false;
|
|
@@ -118,4 +147,5 @@ export class CoreBot {
|
|
|
118
147
|
};
|
|
119
148
|
}
|
|
120
149
|
}
|
|
150
|
+
exports.CoreBot = CoreBot;
|
|
121
151
|
//# sourceMappingURL=core-bot.js.map
|
package/lib/esm/core-bot.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-bot.js","sourceRoot":"","sources":["../../src/core-bot.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"core-bot.js","sourceRoot":"","sources":["../../src/core-bot.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DynamoDBDataProvider = void 0;
|
|
4
|
+
const models_1 = require("../models");
|
|
5
|
+
const dynamodb_utils_1 = require("./dynamodb-utils");
|
|
6
|
+
class DynamoDBDataProvider {
|
|
7
|
+
region;
|
|
8
|
+
tableName;
|
|
9
|
+
userEventsTable;
|
|
10
|
+
userEntity;
|
|
11
|
+
eventEntity;
|
|
12
|
+
messageEventEntities;
|
|
13
|
+
textMessageEventEntity;
|
|
14
|
+
connectionEventEntity;
|
|
4
15
|
constructor(url) {
|
|
5
16
|
try {
|
|
6
17
|
;
|
|
7
18
|
[this.tableName, this.region] = url.split('://')[1].split('.');
|
|
8
|
-
this.userEventsTable = getUserEventsTable(this.tableName, this.region);
|
|
9
|
-
this.userEntity = getUserEntity(this.userEventsTable);
|
|
10
|
-
this.connectionEventEntity = getConnectionEventEntity(this.userEventsTable);
|
|
11
|
-
this.messageEventEntities = getMessageEventEntities(this.userEventsTable);
|
|
19
|
+
this.userEventsTable = (0, dynamodb_utils_1.getUserEventsTable)(this.tableName, this.region);
|
|
20
|
+
this.userEntity = (0, dynamodb_utils_1.getUserEntity)(this.userEventsTable);
|
|
21
|
+
this.connectionEventEntity = (0, dynamodb_utils_1.getConnectionEventEntity)(this.userEventsTable);
|
|
22
|
+
this.messageEventEntities = (0, dynamodb_utils_1.getMessageEventEntities)(this.userEventsTable);
|
|
12
23
|
}
|
|
13
24
|
catch (e) {
|
|
14
25
|
console.log({ e });
|
|
@@ -18,7 +29,7 @@ export class DynamoDBDataProvider {
|
|
|
18
29
|
async getUsers(limit = 10, offset = 0) {
|
|
19
30
|
// TODO: finish to implement with offset
|
|
20
31
|
const result = await this.userEventsTable.scan({
|
|
21
|
-
filters: { attr: SORT_KEY_NAME, beginsWith: USER_PREFIX },
|
|
32
|
+
filters: { attr: dynamodb_utils_1.SORT_KEY_NAME, beginsWith: dynamodb_utils_1.USER_PREFIX },
|
|
22
33
|
limit,
|
|
23
34
|
});
|
|
24
35
|
return result.Items;
|
|
@@ -35,7 +46,7 @@ export class DynamoDBDataProvider {
|
|
|
35
46
|
}
|
|
36
47
|
async getUserByWebsocketId(websocketId) {
|
|
37
48
|
const result = await this.userEventsTable.query(websocketId, {
|
|
38
|
-
index: GLOBAL_SECONDARY_INDEX_NAME,
|
|
49
|
+
index: dynamodb_utils_1.GLOBAL_SECONDARY_INDEX_NAME,
|
|
39
50
|
});
|
|
40
51
|
if (result.Count === 0)
|
|
41
52
|
return undefined;
|
|
@@ -44,12 +55,12 @@ export class DynamoDBDataProvider {
|
|
|
44
55
|
// @ts-ignore
|
|
45
56
|
async getUserByField(field, value) { } //TODO: Implement
|
|
46
57
|
async saveUser(user) {
|
|
47
|
-
const putUser =
|
|
58
|
+
const putUser = { ...user, id: user.id, userId: user.id };
|
|
48
59
|
await this.userEntity.put(putUser);
|
|
49
60
|
return user;
|
|
50
61
|
}
|
|
51
62
|
async updateUser(user) {
|
|
52
|
-
const updateUser =
|
|
63
|
+
const updateUser = { ...user, id: user.id, userId: user.id };
|
|
53
64
|
const res = await this.userEntity.update(updateUser);
|
|
54
65
|
return user;
|
|
55
66
|
}
|
|
@@ -60,10 +71,10 @@ export class DynamoDBDataProvider {
|
|
|
60
71
|
// @ts-ignore
|
|
61
72
|
async getEvent(id) { } // TODO: Implement
|
|
62
73
|
async saveEvent(event) {
|
|
63
|
-
if (event.eventType === EventTypes.CONNECTION) {
|
|
74
|
+
if (event.eventType === models_1.EventTypes.CONNECTION) {
|
|
64
75
|
await this.connectionEventEntity.put(event);
|
|
65
76
|
}
|
|
66
|
-
if (event.eventType === EventTypes.MESSAGE) {
|
|
77
|
+
if (event.eventType === models_1.EventTypes.MESSAGE) {
|
|
67
78
|
await this.messageEventEntities[event.type].put(event);
|
|
68
79
|
}
|
|
69
80
|
// TODO: Implementation of other event types
|
|
@@ -74,4 +85,5 @@ export class DynamoDBDataProvider {
|
|
|
74
85
|
// @ts-ignore
|
|
75
86
|
async deleteEvent(id) { } // TODO: Implement
|
|
76
87
|
}
|
|
88
|
+
exports.DynamoDBDataProvider = DynamoDBDataProvider;
|
|
77
89
|
//# sourceMappingURL=dynamodb-data-provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamodb-data-provider.js","sourceRoot":"","sources":["../../../src/data-provider/dynamodb-data-provider.ts"],"names":[],"mappings":"AAEA,
|
|
1
|
+
{"version":3,"file":"dynamodb-data-provider.js","sourceRoot":"","sources":["../../../src/data-provider/dynamodb-data-provider.ts"],"names":[],"mappings":"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"}
|