@botonic/core 0.26.0 → 0.27.0-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 (106) 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 +16 -16
  5. package/lib/cjs/handoff.js +9 -2
  6. package/lib/cjs/handoff.js.map +1 -1
  7. package/lib/cjs/index.d.ts +0 -1
  8. package/lib/cjs/index.js +0 -3
  9. package/lib/cjs/index.js.map +1 -1
  10. package/lib/cjs/models/legacy-types.d.ts +44 -39
  11. package/lib/cjs/models/legacy-types.js +15 -32
  12. package/lib/cjs/models/legacy-types.js.map +1 -1
  13. package/lib/cjs/plugins.d.ts +2 -3
  14. package/lib/cjs/plugins.js +2 -4
  15. package/lib/cjs/plugins.js.map +1 -1
  16. package/lib/cjs/utils.d.ts +8 -0
  17. package/lib/cjs/utils.js +32 -1
  18. package/lib/cjs/utils.js.map +1 -1
  19. package/lib/esm/core-bot.d.ts +1 -3
  20. package/lib/esm/core-bot.js +4 -34
  21. package/lib/esm/core-bot.js.map +1 -1
  22. package/lib/esm/handoff.d.ts +16 -16
  23. package/lib/esm/handoff.js +9 -2
  24. package/lib/esm/handoff.js.map +1 -1
  25. package/lib/esm/index.d.ts +0 -1
  26. package/lib/esm/index.js +0 -3
  27. package/lib/esm/index.js.map +1 -1
  28. package/lib/esm/models/legacy-types.d.ts +44 -39
  29. package/lib/esm/models/legacy-types.js +14 -31
  30. package/lib/esm/models/legacy-types.js.map +1 -1
  31. package/lib/esm/plugins.d.ts +2 -3
  32. package/lib/esm/plugins.js +2 -4
  33. package/lib/esm/plugins.js.map +1 -1
  34. package/lib/esm/utils.d.ts +8 -0
  35. package/lib/esm/utils.js +24 -0
  36. package/lib/esm/utils.js.map +1 -1
  37. package/package.json +1 -6
  38. package/src/core-bot.ts +2 -56
  39. package/src/handoff.ts +29 -19
  40. package/src/index.ts +0 -3
  41. package/src/models/legacy-types.ts +78 -76
  42. package/src/plugins.ts +2 -8
  43. package/src/utils.ts +32 -0
  44. package/lib/cjs/data-provider/dynamodb-data-provider.d.ts +0 -26
  45. package/lib/cjs/data-provider/dynamodb-data-provider.js +0 -107
  46. package/lib/cjs/data-provider/dynamodb-data-provider.js.map +0 -1
  47. package/lib/cjs/data-provider/dynamodb-utils.d.ts +0 -11
  48. package/lib/cjs/data-provider/dynamodb-utils.js +0 -121
  49. package/lib/cjs/data-provider/dynamodb-utils.js.map +0 -1
  50. package/lib/cjs/data-provider/factory.d.ts +0 -25
  51. package/lib/cjs/data-provider/factory.js +0 -31
  52. package/lib/cjs/data-provider/factory.js.map +0 -1
  53. package/lib/cjs/data-provider/index.d.ts +0 -4
  54. package/lib/cjs/data-provider/index.js +0 -8
  55. package/lib/cjs/data-provider/index.js.map +0 -1
  56. package/lib/cjs/data-provider/local-data-provider.d.ts +0 -26
  57. package/lib/cjs/data-provider/local-data-provider.js +0 -137
  58. package/lib/cjs/data-provider/local-data-provider.js.map +0 -1
  59. package/lib/cjs/output-parser/botonic-output-parser.d.ts +0 -16
  60. package/lib/cjs/output-parser/botonic-output-parser.js +0 -37
  61. package/lib/cjs/output-parser/botonic-output-parser.js.map +0 -1
  62. package/lib/cjs/output-parser/factory.d.ts +0 -4
  63. package/lib/cjs/output-parser/factory.js +0 -36
  64. package/lib/cjs/output-parser/factory.js.map +0 -1
  65. package/lib/cjs/output-parser/index.d.ts +0 -3
  66. package/lib/cjs/output-parser/index.js +0 -7
  67. package/lib/cjs/output-parser/index.js.map +0 -1
  68. package/lib/cjs/output-parser/parsers.d.ts +0 -26
  69. package/lib/cjs/output-parser/parsers.js +0 -171
  70. package/lib/cjs/output-parser/parsers.js.map +0 -1
  71. package/lib/esm/data-provider/dynamodb-data-provider.d.ts +0 -26
  72. package/lib/esm/data-provider/dynamodb-data-provider.js +0 -103
  73. package/lib/esm/data-provider/dynamodb-data-provider.js.map +0 -1
  74. package/lib/esm/data-provider/dynamodb-utils.d.ts +0 -11
  75. package/lib/esm/data-provider/dynamodb-utils.js +0 -113
  76. package/lib/esm/data-provider/dynamodb-utils.js.map +0 -1
  77. package/lib/esm/data-provider/factory.d.ts +0 -25
  78. package/lib/esm/data-provider/factory.js +0 -27
  79. package/lib/esm/data-provider/factory.js.map +0 -1
  80. package/lib/esm/data-provider/index.d.ts +0 -4
  81. package/lib/esm/data-provider/index.js +0 -5
  82. package/lib/esm/data-provider/index.js.map +0 -1
  83. package/lib/esm/data-provider/local-data-provider.d.ts +0 -26
  84. package/lib/esm/data-provider/local-data-provider.js +0 -133
  85. package/lib/esm/data-provider/local-data-provider.js.map +0 -1
  86. package/lib/esm/output-parser/botonic-output-parser.d.ts +0 -16
  87. package/lib/esm/output-parser/botonic-output-parser.js +0 -33
  88. package/lib/esm/output-parser/botonic-output-parser.js.map +0 -1
  89. package/lib/esm/output-parser/factory.d.ts +0 -4
  90. package/lib/esm/output-parser/factory.js +0 -32
  91. package/lib/esm/output-parser/factory.js.map +0 -1
  92. package/lib/esm/output-parser/index.d.ts +0 -3
  93. package/lib/esm/output-parser/index.js +0 -4
  94. package/lib/esm/output-parser/index.js.map +0 -1
  95. package/lib/esm/output-parser/parsers.d.ts +0 -26
  96. package/lib/esm/output-parser/parsers.js +0 -151
  97. package/lib/esm/output-parser/parsers.js.map +0 -1
  98. package/src/data-provider/dynamodb-data-provider.ts +0 -105
  99. package/src/data-provider/dynamodb-utils.ts +0 -149
  100. package/src/data-provider/factory.ts +0 -60
  101. package/src/data-provider/index.ts +0 -4
  102. package/src/data-provider/local-data-provider.ts +0 -154
  103. package/src/output-parser/botonic-output-parser.ts +0 -38
  104. package/src/output-parser/factory.ts +0 -45
  105. package/src/output-parser/index.ts +0 -3
  106. package/src/output-parser/parsers.ts +0 -237
@@ -1,107 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DynamoDBDataProvider = void 0;
4
- const tslib_1 = require("tslib");
5
- const models_1 = require("../models");
6
- const dynamodb_utils_1 = require("./dynamodb-utils");
7
- class DynamoDBDataProvider {
8
- constructor(url) {
9
- try {
10
- const urlParts = url.split('://')[1].split('.');
11
- this.tableName = urlParts[0];
12
- this.region = urlParts[1];
13
- this.userEventsTable = (0, dynamodb_utils_1.getUserEventsTable)(this.tableName, this.region);
14
- this.userEntity = (0, dynamodb_utils_1.getUserEntity)(this.userEventsTable);
15
- this.connectionEventEntity = (0, dynamodb_utils_1.getConnectionEventEntity)(this.userEventsTable);
16
- this.messageEventEntities = (0, dynamodb_utils_1.getMessageEventEntities)(this.userEventsTable);
17
- }
18
- catch (e) {
19
- console.log({ e });
20
- }
21
- }
22
- // @ts-ignore
23
- getUsers(limit = 10, offset = 0) {
24
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
25
- // TODO: finish to implement with offset
26
- const result = yield this.userEventsTable.scan({
27
- filters: { attr: dynamodb_utils_1.SORT_KEY_NAME, beginsWith: dynamodb_utils_1.USER_PREFIX },
28
- limit,
29
- });
30
- return result.Items;
31
- });
32
- }
33
- getUser(id) {
34
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
35
- const userById = {
36
- id: id,
37
- SK: id,
38
- };
39
- const result = yield this.userEntity.get(userById);
40
- if (Object.keys(result).length === 0)
41
- return undefined;
42
- return result.Item;
43
- });
44
- }
45
- getUserByWebsocketId(websocketId) {
46
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
47
- const result = yield this.userEventsTable.query(websocketId, {
48
- index: dynamodb_utils_1.GLOBAL_SECONDARY_INDEX_NAME,
49
- });
50
- if (result.Count === 0)
51
- return undefined;
52
- return result.Items[0];
53
- });
54
- }
55
- // @ts-ignore
56
- getUserByField(field, value) {
57
- return tslib_1.__awaiter(this, void 0, void 0, function* () { });
58
- } //TODO: Implement
59
- saveUser(user) {
60
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
61
- const putUser = Object.assign(Object.assign({}, user), { id: user.id, userId: user.id });
62
- yield this.userEntity.put(putUser);
63
- return user;
64
- });
65
- }
66
- updateUser(user) {
67
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
68
- const updateUser = Object.assign(Object.assign({}, user), { id: user.id, userId: user.id });
69
- const res = yield this.userEntity.update(updateUser);
70
- return user;
71
- });
72
- }
73
- // @ts-ignore
74
- deleteUser(id) {
75
- return tslib_1.__awaiter(this, void 0, void 0, function* () { });
76
- } // TODO: Implement
77
- // @ts-ignore
78
- getEvents(limit = 10, offset = 0) {
79
- return tslib_1.__awaiter(this, void 0, void 0, function* () { });
80
- } // TODO: Implement
81
- // @ts-ignore
82
- getEvent(id) {
83
- return tslib_1.__awaiter(this, void 0, void 0, function* () { });
84
- } // TODO: Implement
85
- saveEvent(event) {
86
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
87
- if (event.eventType === models_1.EventTypes.CONNECTION) {
88
- yield this.connectionEventEntity.put(event);
89
- }
90
- if (event.eventType === models_1.EventTypes.MESSAGE) {
91
- yield this.messageEventEntities[event.type].put(event);
92
- }
93
- // TODO: Implementation of other event types
94
- return event;
95
- });
96
- }
97
- // @ts-ignore
98
- updateEvent(event) {
99
- return tslib_1.__awaiter(this, void 0, void 0, function* () { });
100
- } // TODO: Implement
101
- // @ts-ignore
102
- deleteEvent(id) {
103
- return tslib_1.__awaiter(this, void 0, void 0, function* () { });
104
- } // TODO: Implement
105
- }
106
- exports.DynamoDBDataProvider = DynamoDBDataProvider;
107
- //# 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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"}
@@ -1,11 +0,0 @@
1
- import { Entity, Table } from 'dynamodb-toolbox';
2
- export declare const GLOBAL_SECONDARY_INDEX_NAME = "GSI1";
3
- export declare const GLOBAL_SECONDARY_INDEX_ATTR = "websocketId";
4
- export declare const PARTITION_KEY_NAME = "PK";
5
- export declare const SORT_KEY_NAME = "SK";
6
- export declare const USER_PREFIX = "USR#";
7
- export declare const EVENT_PREFIX = "EVT#";
8
- export declare function getUserEventsTable(tableName: string, region: string): Table;
9
- export declare function getUserEntity(table: Table): Entity<any>;
10
- export declare function getConnectionEventEntity(table: Table): Entity<any>;
11
- export declare function getMessageEventEntities(table: Table): Record<string, Entity<any>>;
@@ -1,121 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getMessageEventEntities = exports.getConnectionEventEntity = exports.getUserEntity = exports.getUserEventsTable = exports.EVENT_PREFIX = exports.USER_PREFIX = exports.SORT_KEY_NAME = exports.PARTITION_KEY_NAME = exports.GLOBAL_SECONDARY_INDEX_ATTR = exports.GLOBAL_SECONDARY_INDEX_NAME = void 0;
4
- const tslib_1 = require("tslib");
5
- const dynamodb_1 = tslib_1.__importDefault(require("aws-sdk/clients/dynamodb"));
6
- const dynamodb_toolbox_1 = require("dynamodb-toolbox");
7
- const models_1 = require("../models");
8
- // Table Definitions
9
- exports.GLOBAL_SECONDARY_INDEX_NAME = 'GSI1';
10
- exports.GLOBAL_SECONDARY_INDEX_ATTR = 'websocketId';
11
- exports.PARTITION_KEY_NAME = 'PK';
12
- exports.SORT_KEY_NAME = 'SK';
13
- // Entities Definitions
14
- exports.USER_PREFIX = 'USR#';
15
- exports.EVENT_PREFIX = 'EVT#';
16
- function capitalize(string) {
17
- return string.charAt(0).toUpperCase() + string.slice(1);
18
- }
19
- function getUserEventsTable(tableName, region) {
20
- const documentClient = new dynamodb_1.default.DocumentClient({
21
- apiVersion: '2012-08-10',
22
- region: region,
23
- });
24
- return new dynamodb_toolbox_1.Table({
25
- name: tableName,
26
- partitionKey: exports.PARTITION_KEY_NAME,
27
- sortKey: exports.SORT_KEY_NAME,
28
- entityField: true,
29
- indexes: {
30
- GSI1: {
31
- partitionKey: exports.GLOBAL_SECONDARY_INDEX_ATTR,
32
- },
33
- },
34
- DocumentClient: documentClient,
35
- });
36
- }
37
- exports.getUserEventsTable = getUserEventsTable;
38
- function getUserEntity(table) {
39
- return new dynamodb_toolbox_1.Entity({
40
- name: 'User',
41
- attributes: {
42
- id: { partitionKey: true, prefix: exports.USER_PREFIX },
43
- [`${exports.SORT_KEY_NAME}`]: {
44
- hidden: true,
45
- sortKey: true,
46
- prefix: exports.USER_PREFIX,
47
- },
48
- userId: [exports.SORT_KEY_NAME, 0],
49
- websocketId: 'string',
50
- isOnline: 'boolean',
51
- route: 'string',
52
- session: 'string',
53
- },
54
- table,
55
- });
56
- }
57
- exports.getUserEntity = getUserEntity;
58
- function getConnectionEventEntity(table) {
59
- return new dynamodb_toolbox_1.Entity({
60
- name: 'Connection Event',
61
- attributes: {
62
- userId: { partitionKey: true, prefix: exports.USER_PREFIX },
63
- [`${exports.SORT_KEY_NAME}`]: {
64
- hidden: true,
65
- sortKey: true,
66
- prefix: exports.EVENT_PREFIX,
67
- },
68
- eventId: [exports.SORT_KEY_NAME, 0],
69
- eventType: 'string',
70
- createdAt: 'string',
71
- modifiedAt: 'string',
72
- status: 'string',
73
- },
74
- table,
75
- });
76
- }
77
- exports.getConnectionEventEntity = getConnectionEventEntity;
78
- function getMessageEventEntities(table) {
79
- const textAttributes = {
80
- text: 'string',
81
- markdown: 'boolean',
82
- buttons: 'list',
83
- replies: 'list',
84
- };
85
- const mediaAttributes = {
86
- src: 'string',
87
- buttons: 'list',
88
- };
89
- const locationAttributes = {
90
- lat: 'number',
91
- long: 'number',
92
- };
93
- const carouselAttributes = {
94
- elements: 'list',
95
- };
96
- const customAttributes = {
97
- json: 'map',
98
- replies: 'list',
99
- };
100
- const entityWithAttributes = (type, attributes) => new dynamodb_toolbox_1.Entity({
101
- name: `${capitalize(type)} Message Event`,
102
- attributes: Object.assign({ userId: { partitionKey: true, prefix: exports.USER_PREFIX }, [`${exports.SORT_KEY_NAME}`]: {
103
- hidden: true,
104
- sortKey: true,
105
- prefix: exports.EVENT_PREFIX,
106
- }, eventId: [exports.SORT_KEY_NAME, 0], eventType: 'string', createdAt: 'string', modifiedAt: 'string', from: 'string', ack: 'string', typing: 'number', delay: 'number', type: 'string' }, attributes),
107
- table,
108
- });
109
- return {
110
- text: entityWithAttributes(models_1.MessageEventTypes.TEXT, textAttributes),
111
- audio: entityWithAttributes(models_1.MessageEventTypes.AUDIO, mediaAttributes),
112
- image: entityWithAttributes(models_1.MessageEventTypes.IMAGE, mediaAttributes),
113
- document: entityWithAttributes(models_1.MessageEventTypes.DOCUMENT, mediaAttributes),
114
- video: entityWithAttributes(models_1.MessageEventTypes.VIDEO, mediaAttributes),
115
- location: entityWithAttributes(models_1.MessageEventTypes.LOCATION, locationAttributes),
116
- carousel: entityWithAttributes(models_1.MessageEventTypes.CAROUSEL, carouselAttributes),
117
- custom: entityWithAttributes(models_1.MessageEventTypes.CUSTOM, customAttributes),
118
- };
119
- }
120
- exports.getMessageEventEntities = getMessageEventEntities;
121
- //# sourceMappingURL=dynamodb-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dynamodb-utils.js","sourceRoot":"","sources":["../../../src/data-provider/dynamodb-utils.ts"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- import { BotonicEvent, User } from '../models';
2
- export declare const dataProviderProtocols: {
3
- DYNAMO_DB: string;
4
- FILE: string;
5
- };
6
- export interface DataProvider {
7
- getUsers(limit?: number, offset?: number): User[] | Promise<User[]>;
8
- getUser(id: string): User | Promise<User | undefined> | undefined;
9
- getUserByWebsocketId(websocketId: string): User | Promise<User | undefined> | undefined;
10
- getUserByField(field: string, value: any): User | Promise<User | undefined> | undefined;
11
- saveUser(user: User): User | Promise<User>;
12
- updateUser(user: User): User | Promise<User>;
13
- deleteUser(id: string): User | Promise<User | undefined> | undefined;
14
- getEvents(limit?: number, offset?: number): BotonicEvent[] | Promise<BotonicEvent[]>;
15
- getEvent(id: string): BotonicEvent | Promise<BotonicEvent | undefined> | undefined;
16
- saveEvent(event: BotonicEvent): BotonicEvent | Promise<BotonicEvent>;
17
- updateEvent(event: BotonicEvent): BotonicEvent | Promise<BotonicEvent>;
18
- deleteEvent(id: string): BotonicEvent | Promise<BotonicEvent | undefined> | undefined;
19
- }
20
- /** URL examples:
21
- * dynamodb://my-table.my-region.aws.com
22
- * postgresql://my-database.my-db-provider.com
23
- * file://path/to/local/db.json
24
- */
25
- export declare function dataProviderFactory(url?: string): DataProvider;
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.dataProviderFactory = exports.dataProviderProtocols = void 0;
4
- const dynamodb_data_provider_1 = require("./dynamodb-data-provider");
5
- const local_data_provider_1 = require("./local-data-provider");
6
- exports.dataProviderProtocols = {
7
- DYNAMO_DB: 'dynamodb',
8
- FILE: 'file',
9
- };
10
- /** URL examples:
11
- * dynamodb://my-table.my-region.aws.com
12
- * postgresql://my-database.my-db-provider.com
13
- * file://path/to/local/db.json
14
- */
15
- function dataProviderFactory(url) {
16
- if (!url) {
17
- return new local_data_provider_1.LocalDevDataProvider();
18
- }
19
- const protocol = url.split('://')[0];
20
- switch (protocol) {
21
- case exports.dataProviderProtocols.DYNAMO_DB:
22
- return new dynamodb_data_provider_1.DynamoDBDataProvider(url);
23
- case exports.dataProviderProtocols.FILE:
24
- return new local_data_provider_1.LocalDevDataProvider(url);
25
- default:
26
- console.error(`Protocol ${protocol} not implemented, using local DB instead.`);
27
- return new local_data_provider_1.LocalDevDataProvider();
28
- }
29
- }
30
- exports.dataProviderFactory = dataProviderFactory;
31
- //# sourceMappingURL=factory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/data-provider/factory.ts"],"names":[],"mappings":";;;AACA,qEAA+D;AAC/D,+DAA4D;AAE/C,QAAA,qBAAqB,GAAG;IACnC,SAAS,EAAE,UAAU;IACrB,IAAI,EAAE,MAAM;CACb,CAAA;AA8BD;;;;GAIG;AACH,SAAgB,mBAAmB,CAAC,GAAY;IAC9C,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,IAAI,0CAAoB,EAAE,CAAA;KAClC;IAED,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACpC,QAAQ,QAAQ,EAAE;QAChB,KAAK,6BAAqB,CAAC,SAAS;YAClC,OAAO,IAAI,6CAAoB,CAAC,GAAG,CAAC,CAAA;QACtC,KAAK,6BAAqB,CAAC,IAAI;YAC7B,OAAO,IAAI,0CAAoB,CAAC,GAAG,CAAC,CAAA;QACtC;YACE,OAAO,CAAC,KAAK,CACX,YAAY,QAAQ,2CAA2C,CAChE,CAAA;YACD,OAAO,IAAI,0CAAoB,EAAE,CAAA;KACpC;AACH,CAAC;AAjBD,kDAiBC"}
@@ -1,4 +0,0 @@
1
- export * from './dynamodb-data-provider';
2
- export * from './dynamodb-utils';
3
- export * from './factory';
4
- export * from './local-data-provider';
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./dynamodb-data-provider"), exports);
5
- tslib_1.__exportStar(require("./dynamodb-utils"), exports);
6
- tslib_1.__exportStar(require("./factory"), exports);
7
- tslib_1.__exportStar(require("./local-data-provider"), exports);
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/data-provider/index.ts"],"names":[],"mappings":";;;AAAA,mEAAwC;AACxC,2DAAgC;AAChC,oDAAyB;AACzB,gEAAqC"}
@@ -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"}