@botonic/core 0.26.0 → 0.26.1-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/lib/cjs/core-bot.d.ts +1 -3
  2. package/lib/cjs/core-bot.js +3 -33
  3. package/lib/cjs/core-bot.js.map +1 -1
  4. package/lib/cjs/handoff.d.ts +1 -1
  5. package/lib/cjs/index.d.ts +0 -1
  6. package/lib/cjs/index.js +0 -3
  7. package/lib/cjs/index.js.map +1 -1
  8. package/lib/cjs/models/legacy-types.d.ts +42 -39
  9. package/lib/cjs/models/legacy-types.js +15 -32
  10. package/lib/cjs/models/legacy-types.js.map +1 -1
  11. package/lib/cjs/plugins.d.ts +2 -3
  12. package/lib/cjs/plugins.js +2 -4
  13. package/lib/cjs/plugins.js.map +1 -1
  14. package/lib/cjs/utils.d.ts +8 -0
  15. package/lib/cjs/utils.js +32 -1
  16. package/lib/cjs/utils.js.map +1 -1
  17. package/lib/esm/core-bot.d.ts +1 -3
  18. package/lib/esm/core-bot.js +4 -34
  19. package/lib/esm/core-bot.js.map +1 -1
  20. package/lib/esm/handoff.d.ts +1 -1
  21. package/lib/esm/index.d.ts +0 -1
  22. package/lib/esm/index.js +0 -3
  23. package/lib/esm/index.js.map +1 -1
  24. package/lib/esm/models/legacy-types.d.ts +42 -39
  25. package/lib/esm/models/legacy-types.js +14 -31
  26. package/lib/esm/models/legacy-types.js.map +1 -1
  27. package/lib/esm/plugins.d.ts +2 -3
  28. package/lib/esm/plugins.js +2 -4
  29. package/lib/esm/plugins.js.map +1 -1
  30. package/lib/esm/utils.d.ts +8 -0
  31. package/lib/esm/utils.js +24 -0
  32. package/lib/esm/utils.js.map +1 -1
  33. package/package.json +1 -6
  34. package/src/core-bot.ts +2 -56
  35. package/src/handoff.ts +1 -1
  36. package/src/index.ts +0 -3
  37. package/src/models/legacy-types.ts +76 -76
  38. package/src/plugins.ts +2 -8
  39. package/src/utils.ts +32 -0
  40. package/lib/cjs/data-provider/dynamodb-data-provider.d.ts +0 -26
  41. package/lib/cjs/data-provider/dynamodb-data-provider.js +0 -107
  42. package/lib/cjs/data-provider/dynamodb-data-provider.js.map +0 -1
  43. package/lib/cjs/data-provider/dynamodb-utils.d.ts +0 -11
  44. package/lib/cjs/data-provider/dynamodb-utils.js +0 -121
  45. package/lib/cjs/data-provider/dynamodb-utils.js.map +0 -1
  46. package/lib/cjs/data-provider/factory.d.ts +0 -25
  47. package/lib/cjs/data-provider/factory.js +0 -31
  48. package/lib/cjs/data-provider/factory.js.map +0 -1
  49. package/lib/cjs/data-provider/index.d.ts +0 -4
  50. package/lib/cjs/data-provider/index.js +0 -8
  51. package/lib/cjs/data-provider/index.js.map +0 -1
  52. package/lib/cjs/data-provider/local-data-provider.d.ts +0 -26
  53. package/lib/cjs/data-provider/local-data-provider.js +0 -137
  54. package/lib/cjs/data-provider/local-data-provider.js.map +0 -1
  55. package/lib/cjs/output-parser/botonic-output-parser.d.ts +0 -16
  56. package/lib/cjs/output-parser/botonic-output-parser.js +0 -37
  57. package/lib/cjs/output-parser/botonic-output-parser.js.map +0 -1
  58. package/lib/cjs/output-parser/factory.d.ts +0 -4
  59. package/lib/cjs/output-parser/factory.js +0 -36
  60. package/lib/cjs/output-parser/factory.js.map +0 -1
  61. package/lib/cjs/output-parser/index.d.ts +0 -3
  62. package/lib/cjs/output-parser/index.js +0 -7
  63. package/lib/cjs/output-parser/index.js.map +0 -1
  64. package/lib/cjs/output-parser/parsers.d.ts +0 -26
  65. package/lib/cjs/output-parser/parsers.js +0 -171
  66. package/lib/cjs/output-parser/parsers.js.map +0 -1
  67. package/lib/esm/data-provider/dynamodb-data-provider.d.ts +0 -26
  68. package/lib/esm/data-provider/dynamodb-data-provider.js +0 -103
  69. package/lib/esm/data-provider/dynamodb-data-provider.js.map +0 -1
  70. package/lib/esm/data-provider/dynamodb-utils.d.ts +0 -11
  71. package/lib/esm/data-provider/dynamodb-utils.js +0 -113
  72. package/lib/esm/data-provider/dynamodb-utils.js.map +0 -1
  73. package/lib/esm/data-provider/factory.d.ts +0 -25
  74. package/lib/esm/data-provider/factory.js +0 -27
  75. package/lib/esm/data-provider/factory.js.map +0 -1
  76. package/lib/esm/data-provider/index.d.ts +0 -4
  77. package/lib/esm/data-provider/index.js +0 -5
  78. package/lib/esm/data-provider/index.js.map +0 -1
  79. package/lib/esm/data-provider/local-data-provider.d.ts +0 -26
  80. package/lib/esm/data-provider/local-data-provider.js +0 -133
  81. package/lib/esm/data-provider/local-data-provider.js.map +0 -1
  82. package/lib/esm/output-parser/botonic-output-parser.d.ts +0 -16
  83. package/lib/esm/output-parser/botonic-output-parser.js +0 -33
  84. package/lib/esm/output-parser/botonic-output-parser.js.map +0 -1
  85. package/lib/esm/output-parser/factory.d.ts +0 -4
  86. package/lib/esm/output-parser/factory.js +0 -32
  87. package/lib/esm/output-parser/factory.js.map +0 -1
  88. package/lib/esm/output-parser/index.d.ts +0 -3
  89. package/lib/esm/output-parser/index.js +0 -4
  90. package/lib/esm/output-parser/index.js.map +0 -1
  91. package/lib/esm/output-parser/parsers.d.ts +0 -26
  92. package/lib/esm/output-parser/parsers.js +0 -151
  93. package/lib/esm/output-parser/parsers.js.map +0 -1
  94. package/src/data-provider/dynamodb-data-provider.ts +0 -105
  95. package/src/data-provider/dynamodb-utils.ts +0 -149
  96. package/src/data-provider/factory.ts +0 -60
  97. package/src/data-provider/index.ts +0 -4
  98. package/src/data-provider/local-data-provider.ts +0 -154
  99. package/src/output-parser/botonic-output-parser.ts +0 -38
  100. package/src/output-parser/factory.ts +0 -45
  101. package/src/output-parser/index.ts +0 -3
  102. package/src/output-parser/parsers.ts +0 -237
@@ -1,26 +0,0 @@
1
- import { JsonDB } from 'node-json-db';
2
- import { BotonicEvent, User } from '../models';
3
- import { DataProvider } from './factory';
4
- export declare class LocalDevDataProvider implements DataProvider {
5
- private readonly DB_PATH;
6
- private readonly SEPARATOR;
7
- private readonly paths;
8
- db: JsonDB;
9
- constructor(url?: string);
10
- getUsers(limit?: number, offset?: number): User[];
11
- getUser(userId: string): User | undefined;
12
- getUserByWebsocketId(websocketId: string): User | undefined;
13
- getUserByField(field: string, value: any): User | undefined;
14
- saveUser(user: User): User;
15
- updateUser(user: User): User;
16
- deleteUser(id: string): User | undefined;
17
- getEvents(limit?: number, offset?: number): BotonicEvent[];
18
- getEvent(id: string): BotonicEvent | undefined;
19
- saveEvent(event: BotonicEvent): BotonicEvent;
20
- updateEvent(event: BotonicEvent): BotonicEvent;
21
- deleteEvent(id: string): BotonicEvent | undefined;
22
- addConnection(websocketId: string): void;
23
- updateConnection(websocketId: string, userId: string): void;
24
- deleteConnection(websocketId: string): void;
25
- private createPath;
26
- }
@@ -1,137 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LocalDevDataProvider = void 0;
4
- const node_json_db_1 = require("node-json-db");
5
- const JsonDBConfig_1 = require("node-json-db/dist/lib/JsonDBConfig");
6
- class LocalDevDataProvider {
7
- constructor(url) {
8
- this.DB_PATH = 'tmp/localDb';
9
- this.SEPARATOR = '/';
10
- this.paths = {
11
- USERS: '/users',
12
- EVENTS: '/events',
13
- CONNECTIONS: '/connections',
14
- };
15
- const dbPath = url ? url.split('://')[1] : this.DB_PATH;
16
- this.db = new node_json_db_1.JsonDB(new JsonDBConfig_1.Config(dbPath, true, false, this.SEPARATOR));
17
- }
18
- getUsers(limit = 10, offset = 0) {
19
- const path = this.paths.USERS;
20
- this.db.reload();
21
- const userList = this.db.getObject(path);
22
- const users = Object.values(userList);
23
- const to = limit !== 0 ? offset + limit : undefined;
24
- return users.slice(offset, to);
25
- }
26
- getUser(userId) {
27
- const path = this.createPath([this.paths.USERS, userId]);
28
- this.db.reload();
29
- return this.db.exists(path) ? this.db.getObject(path) : undefined;
30
- }
31
- getUserByWebsocketId(websocketId) {
32
- return this.getUserByField('websocketId', websocketId);
33
- }
34
- getUserByField(field, value) {
35
- const path = this.paths.USERS;
36
- this.db.reload();
37
- const dbUser = this.db.exists(path)
38
- ? this.db.find(path, (user) => user[field] === value)
39
- : undefined;
40
- return dbUser;
41
- }
42
- saveUser(user) {
43
- const path = this.createPath([this.paths.USERS, user.id]);
44
- this.db.reload();
45
- if (!this.db.exists(path)) {
46
- this.db.push(path, user);
47
- }
48
- return user;
49
- }
50
- updateUser(user) {
51
- const path = this.createPath([this.paths.USERS, user.id]);
52
- this.db.reload();
53
- if (this.db.exists(path)) {
54
- this.db.push(path, user, true);
55
- }
56
- return user;
57
- }
58
- deleteUser(id) {
59
- const path = this.createPath([this.paths.USERS, id]);
60
- this.db.reload();
61
- const user = this.db.exists(path)
62
- ? this.db.getObject(path)
63
- : undefined;
64
- if (user) {
65
- this.db.delete(path);
66
- return user;
67
- }
68
- return undefined;
69
- }
70
- getEvents(limit = 10, offset = 0) {
71
- const path = this.paths.EVENTS;
72
- this.db.reload();
73
- const eventList = this.db.getObject(path);
74
- const events = Object.values(eventList);
75
- const to = limit !== 0 ? offset + limit : undefined;
76
- return events.slice(offset, to);
77
- }
78
- getEvent(id) {
79
- const path = this.createPath([this.paths.EVENTS, id]);
80
- this.db.reload();
81
- return this.db.exists(path)
82
- ? this.db.getObject(path)
83
- : undefined;
84
- }
85
- saveEvent(event) {
86
- const path = this.createPath([this.paths.EVENTS, event.eventId]);
87
- this.db.reload();
88
- if (!this.db.exists(path)) {
89
- this.db.push(path, event);
90
- }
91
- return event;
92
- }
93
- updateEvent(event) {
94
- const path = this.createPath([this.paths.EVENTS, event.eventId]);
95
- this.db.reload();
96
- if (this.db.exists(path)) {
97
- this.db.push(path, event, true);
98
- }
99
- return event;
100
- }
101
- deleteEvent(id) {
102
- const path = this.createPath([this.paths.EVENTS, id]);
103
- this.db.reload();
104
- const event = this.db.exists(path)
105
- ? this.db.getObject(path)
106
- : undefined;
107
- if (event) {
108
- this.db.delete(path);
109
- return event;
110
- }
111
- return undefined;
112
- }
113
- addConnection(websocketId) {
114
- const path = this.createPath([this.paths.CONNECTIONS, websocketId]);
115
- this.db.reload();
116
- if (!this.db.exists(path)) {
117
- this.db.push(path, '', false);
118
- }
119
- }
120
- updateConnection(websocketId, userId) {
121
- const path = this.createPath([this.paths.CONNECTIONS, websocketId]);
122
- this.db.reload();
123
- if (this.db.exists(path)) {
124
- this.db.push(path, userId, true);
125
- }
126
- }
127
- deleteConnection(websocketId) {
128
- const path = this.createPath([this.paths.CONNECTIONS, websocketId]);
129
- this.db.reload();
130
- this.db.delete(path);
131
- }
132
- createPath(urlChunks) {
133
- return urlChunks.join(this.SEPARATOR);
134
- }
135
- }
136
- exports.LocalDevDataProvider = LocalDevDataProvider;
137
- //# sourceMappingURL=local-data-provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"local-data-provider.js","sourceRoot":"","sources":["../../../src/data-provider/local-data-provider.ts"],"names":[],"mappings":"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"}
@@ -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
- parseFromUserInput(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
- parseFromUserInput(input) {
23
- return this.factory.parse(input);
24
- }
25
- xmlToJSONMessages(html) {
26
- return (0, 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 => (0, 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,kBAAkB,CAAC,KAAU;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC;IAEO,iBAAiB,CAAC,IAAS;QACjC,OAAO,IAAA,uBAAK,EAAC,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,IAAA,sBAAM,EAAC,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,36 +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 = (0, parsers_1.parseMessage)({ toParse: msgToParse });
10
- if (models_1.MEDIA_TYPES.includes(type)) {
11
- return (0, parsers_1.parseMedia)((0, parsers_1.parseButtons)(parsedMessage)).parsed;
12
- }
13
- switch (type) {
14
- case models_1.MessageEventTypes.TEXT:
15
- // statement 1
16
- return (0, parsers_1.parseText)((0, parsers_1.parseReplies)((0, parsers_1.parseButtons)(parsedMessage))).parsed;
17
- case models_1.MessageEventTypes.POSTBACK:
18
- return (0, parsers_1.parsePostback)(parsedMessage).parsed;
19
- case models_1.MessageEventTypes.LOCATION:
20
- return (0, parsers_1.parseLocation)(parsedMessage).parsed;
21
- case models_1.MessageEventTypes.CAROUSEL:
22
- return (0, parsers_1.parseCarousel)(parsedMessage).parsed;
23
- case models_1.MessageEventTypes.CUSTOM:
24
- return (0, parsers_1.parseCustom)((0, parsers_1.parseReplies)(parsedMessage)).parsed;
25
- case models_1.MessageEventTypes.FORM:
26
- return (0, parsers_1.parseForm)(parsedMessage).parsed;
27
- case models_1.MessageEventTypes.CONTACT:
28
- return (0, parsers_1.parseContact)(parsedMessage).parsed;
29
- case models_1.MessageEventTypes.MISSED:
30
- return (0, parsers_1.parseMissed)(parsedMessage).parsed;
31
- }
32
- throw new Error(`Parsing for type: '${type}' not implemented.`);
33
- }
34
- }
35
- exports.MessageParsingFactory = MessageParsingFactory;
36
- //# 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,uCAakB;AAElB,MAAa,qBAAqB;IAChC,KAAK,CAAC,UAAe;QACnB,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAA;QAC5B,MAAM,aAAa,GAAG,IAAA,sBAAY,EAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAA;QAC3D,IAAI,oBAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YAC9B,OAAO,IAAA,oBAAU,EAAC,IAAA,sBAAY,EAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAA;SACtD;QACD,QAAQ,IAAI,EAAE;YACZ,KAAK,0BAAiB,CAAC,IAAI;gBACzB,cAAc;gBACd,OAAO,IAAA,mBAAS,EAAC,IAAA,sBAAY,EAAC,IAAA,sBAAY,EAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;YACpE,KAAK,0BAAiB,CAAC,QAAQ;gBAC7B,OAAO,IAAA,uBAAa,EAAC,aAAa,CAAC,CAAC,MAAM,CAAA;YAC5C,KAAK,0BAAiB,CAAC,QAAQ;gBAC7B,OAAO,IAAA,uBAAa,EAAC,aAAa,CAAC,CAAC,MAAM,CAAA;YAC5C,KAAK,0BAAiB,CAAC,QAAQ;gBAC7B,OAAO,IAAA,uBAAa,EAAC,aAAa,CAAC,CAAC,MAAM,CAAA;YAC5C,KAAK,0BAAiB,CAAC,MAAM;gBAC3B,OAAO,IAAA,qBAAW,EAAC,IAAA,sBAAY,EAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAA;YACxD,KAAK,0BAAiB,CAAC,IAAI;gBACzB,OAAO,IAAA,mBAAS,EAAC,aAAa,CAAC,CAAC,MAAM,CAAA;YACxC,KAAK,0BAAiB,CAAC,OAAO;gBAC5B,OAAO,IAAA,sBAAY,EAAC,aAAa,CAAC,CAAC,MAAM,CAAA;YAC3C,KAAK,0BAAiB,CAAC,MAAM;gBAC3B,OAAO,IAAA,qBAAW,EAAC,aAAa,CAAC,CAAC,MAAM,CAAA;SAC3C;QACD,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,oBAAoB,CAAC,CAAA;IACjE,CAAC;CACF;AA5BD,sDA4BC"}
@@ -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,26 +0,0 @@
1
- import { AudioMessageEvent, BotonicMessageEvent, Button, CarouselElement, CarouselMessageEvent, CustomMessageEvent, DocumentMessageEvent, FormMessageEvent, ImageMessageEvent, LocationMessageEvent, MissedMessageEvent, PostbackMessageEvent, Reply, TextMessageEvent, VideoMessageEvent, WithButtons, WithReplies } from '../models';
2
- import { ContactMessageEvent } from '../models/events/message/contact';
3
- export declare function parseNumber(strNumber: string): number;
4
- export declare function parseBoolean(strNumber: string): boolean;
5
- export type ParseFunction<Out> = (args: {
6
- toParse: any;
7
- parsed?: any;
8
- }) => {
9
- toParse: any;
10
- parsed: Partial<Out>;
11
- };
12
- export declare const parseMessage: ParseFunction<BotonicMessageEvent>;
13
- export declare const parseButton: (button: any) => Button;
14
- export declare const parseButtons: ParseFunction<WithButtons>;
15
- export declare const parseReply: (reply: any) => Reply;
16
- export declare const parseReplies: ParseFunction<WithReplies>;
17
- export declare const parseText: ParseFunction<TextMessageEvent>;
18
- export declare const parsePostback: ParseFunction<PostbackMessageEvent>;
19
- export declare const parseMedia: ParseFunction<AudioMessageEvent | DocumentMessageEvent | ImageMessageEvent | VideoMessageEvent>;
20
- export declare const parseLocation: ParseFunction<LocationMessageEvent>;
21
- export declare const parseElement: (element: any) => CarouselElement;
22
- export declare const parseCarousel: ParseFunction<CarouselMessageEvent>;
23
- export declare const parseCustom: ParseFunction<CustomMessageEvent>;
24
- export declare const parseMissed: ParseFunction<MissedMessageEvent>;
25
- export declare const parseForm: ParseFunction<FormMessageEvent>;
26
- export declare const parseContact: ParseFunction<ContactMessageEvent>;
@@ -1,171 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseContact = exports.parseForm = exports.parseMissed = 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 }, 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 => (0, 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 => (0, 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 => (0, 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 => (0, 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
- // MISSED
148
- const parseMissed = args => {
149
- return {
150
- toParse: args.toParse,
151
- parsed: Object.assign(Object.assign({}, args.parsed), { reason: args.toParse.reason, media_type: args.toParse.media_type }),
152
- };
153
- };
154
- exports.parseMissed = parseMissed;
155
- // FORM
156
- const parseForm = args => {
157
- return {
158
- toParse: args.toParse,
159
- parsed: Object.assign(Object.assign({}, args.parsed), { form_title: args.toParse.form_title, form_answers: args.toParse.form_answers }),
160
- };
161
- };
162
- exports.parseForm = parseForm;
163
- // CONTACT
164
- const parseContact = args => {
165
- return {
166
- toParse: args.toParse,
167
- parsed: Object.assign(Object.assign({}, args.parsed), { phone_number: args.toParse.phone_number, first_name: args.toParse.first_name, last_name: args.toParse.last_name, vcard: args.toParse.vcard }),
168
- };
169
- };
170
- exports.parseContact = parseContact;
171
- //# sourceMappingURL=parsers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../../src/output-parser/parsers.ts"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- import { Entity, Table } from 'dynamodb-toolbox';
2
- import { BotonicEvent, User } from '../models';
3
- import { DataProvider } from './factory';
4
- export declare class DynamoDBDataProvider implements DataProvider {
5
- region: string;
6
- tableName: string;
7
- userEventsTable: Table;
8
- userEntity: Entity<any>;
9
- eventEntity: Entity<any>;
10
- messageEventEntities: Record<string, Entity<any>>;
11
- textMessageEventEntity: Entity<any>;
12
- connectionEventEntity: Entity<any>;
13
- constructor(url: string);
14
- getUsers(limit?: number, offset?: number): Promise<User[]>;
15
- getUser(id: string): Promise<User | undefined>;
16
- getUserByWebsocketId(websocketId: string): Promise<User | undefined>;
17
- getUserByField(field: string, value: any): Promise<User | undefined>;
18
- saveUser(user: User): Promise<User>;
19
- updateUser(user: User): Promise<User>;
20
- deleteUser(id: string): Promise<User | undefined>;
21
- getEvents(limit?: number, offset?: number): Promise<BotonicEvent[]>;
22
- getEvent(id: string): Promise<BotonicEvent | undefined>;
23
- saveEvent(event: BotonicEvent): Promise<BotonicEvent>;
24
- updateEvent(event: BotonicEvent): Promise<BotonicEvent>;
25
- deleteEvent(id: string): Promise<BotonicEvent | undefined>;
26
- }
@@ -1,103 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { EventTypes } from '../models';
3
- import { getConnectionEventEntity, getMessageEventEntities, getUserEntity, getUserEventsTable, GLOBAL_SECONDARY_INDEX_NAME, SORT_KEY_NAME, USER_PREFIX, } from './dynamodb-utils';
4
- export class DynamoDBDataProvider {
5
- constructor(url) {
6
- try {
7
- const urlParts = url.split('://')[1].split('.');
8
- this.tableName = urlParts[0];
9
- this.region = urlParts[1];
10
- this.userEventsTable = getUserEventsTable(this.tableName, this.region);
11
- this.userEntity = getUserEntity(this.userEventsTable);
12
- this.connectionEventEntity = getConnectionEventEntity(this.userEventsTable);
13
- this.messageEventEntities = getMessageEventEntities(this.userEventsTable);
14
- }
15
- catch (e) {
16
- console.log({ e });
17
- }
18
- }
19
- // @ts-ignore
20
- getUsers(limit = 10, offset = 0) {
21
- return __awaiter(this, void 0, void 0, function* () {
22
- // TODO: finish to implement with offset
23
- const result = yield this.userEventsTable.scan({
24
- filters: { attr: SORT_KEY_NAME, beginsWith: USER_PREFIX },
25
- limit,
26
- });
27
- return result.Items;
28
- });
29
- }
30
- getUser(id) {
31
- return __awaiter(this, void 0, void 0, function* () {
32
- const userById = {
33
- id: id,
34
- SK: id,
35
- };
36
- const result = yield this.userEntity.get(userById);
37
- if (Object.keys(result).length === 0)
38
- return undefined;
39
- return result.Item;
40
- });
41
- }
42
- getUserByWebsocketId(websocketId) {
43
- return __awaiter(this, void 0, void 0, function* () {
44
- const result = yield this.userEventsTable.query(websocketId, {
45
- index: GLOBAL_SECONDARY_INDEX_NAME,
46
- });
47
- if (result.Count === 0)
48
- return undefined;
49
- return result.Items[0];
50
- });
51
- }
52
- // @ts-ignore
53
- getUserByField(field, value) {
54
- return __awaiter(this, void 0, void 0, function* () { });
55
- } //TODO: Implement
56
- saveUser(user) {
57
- return __awaiter(this, void 0, void 0, function* () {
58
- const putUser = Object.assign(Object.assign({}, user), { id: user.id, userId: user.id });
59
- yield this.userEntity.put(putUser);
60
- return user;
61
- });
62
- }
63
- updateUser(user) {
64
- return __awaiter(this, void 0, void 0, function* () {
65
- const updateUser = Object.assign(Object.assign({}, user), { id: user.id, userId: user.id });
66
- const res = yield this.userEntity.update(updateUser);
67
- return user;
68
- });
69
- }
70
- // @ts-ignore
71
- deleteUser(id) {
72
- return __awaiter(this, void 0, void 0, function* () { });
73
- } // TODO: Implement
74
- // @ts-ignore
75
- getEvents(limit = 10, offset = 0) {
76
- return __awaiter(this, void 0, void 0, function* () { });
77
- } // TODO: Implement
78
- // @ts-ignore
79
- getEvent(id) {
80
- return __awaiter(this, void 0, void 0, function* () { });
81
- } // TODO: Implement
82
- saveEvent(event) {
83
- return __awaiter(this, void 0, void 0, function* () {
84
- if (event.eventType === EventTypes.CONNECTION) {
85
- yield this.connectionEventEntity.put(event);
86
- }
87
- if (event.eventType === EventTypes.MESSAGE) {
88
- yield this.messageEventEntities[event.type].put(event);
89
- }
90
- // TODO: Implementation of other event types
91
- return event;
92
- });
93
- }
94
- // @ts-ignore
95
- updateEvent(event) {
96
- return __awaiter(this, void 0, void 0, function* () { });
97
- } // TODO: Implement
98
- // @ts-ignore
99
- deleteEvent(id) {
100
- return __awaiter(this, void 0, void 0, function* () { });
101
- } // TODO: Implement
102
- }
103
- //# sourceMappingURL=dynamodb-data-provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dynamodb-data-provider.js","sourceRoot":"","sources":["../../../src/data-provider/dynamodb-data-provider.ts"],"names":[],"mappings":"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"}