@botonic/core 0.26.0-beta.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 +44 -40
  9. package/lib/cjs/models/legacy-types.js +16 -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 +44 -40
  25. package/lib/esm/models/legacy-types.js +15 -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 +77 -75
  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,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,113 +0,0 @@
1
- import DynamoDB from 'aws-sdk/clients/dynamodb';
2
- import { Entity, Table } from 'dynamodb-toolbox';
3
- import { MessageEventTypes } from '../models';
4
- // Table Definitions
5
- export const GLOBAL_SECONDARY_INDEX_NAME = 'GSI1';
6
- export const GLOBAL_SECONDARY_INDEX_ATTR = 'websocketId';
7
- export const PARTITION_KEY_NAME = 'PK';
8
- export const SORT_KEY_NAME = 'SK';
9
- // Entities Definitions
10
- export const USER_PREFIX = 'USR#';
11
- export const EVENT_PREFIX = 'EVT#';
12
- function capitalize(string) {
13
- return string.charAt(0).toUpperCase() + string.slice(1);
14
- }
15
- export function getUserEventsTable(tableName, region) {
16
- const documentClient = new DynamoDB.DocumentClient({
17
- apiVersion: '2012-08-10',
18
- region: region,
19
- });
20
- return new Table({
21
- name: tableName,
22
- partitionKey: PARTITION_KEY_NAME,
23
- sortKey: SORT_KEY_NAME,
24
- entityField: true,
25
- indexes: {
26
- GSI1: {
27
- partitionKey: GLOBAL_SECONDARY_INDEX_ATTR,
28
- },
29
- },
30
- DocumentClient: documentClient,
31
- });
32
- }
33
- export function getUserEntity(table) {
34
- return new Entity({
35
- name: 'User',
36
- attributes: {
37
- id: { partitionKey: true, prefix: USER_PREFIX },
38
- [`${SORT_KEY_NAME}`]: {
39
- hidden: true,
40
- sortKey: true,
41
- prefix: USER_PREFIX,
42
- },
43
- userId: [SORT_KEY_NAME, 0],
44
- websocketId: 'string',
45
- isOnline: 'boolean',
46
- route: 'string',
47
- session: 'string',
48
- },
49
- table,
50
- });
51
- }
52
- export function getConnectionEventEntity(table) {
53
- return new Entity({
54
- name: 'Connection Event',
55
- attributes: {
56
- userId: { partitionKey: true, prefix: USER_PREFIX },
57
- [`${SORT_KEY_NAME}`]: {
58
- hidden: true,
59
- sortKey: true,
60
- prefix: EVENT_PREFIX,
61
- },
62
- eventId: [SORT_KEY_NAME, 0],
63
- eventType: 'string',
64
- createdAt: 'string',
65
- modifiedAt: 'string',
66
- status: 'string',
67
- },
68
- table,
69
- });
70
- }
71
- export function getMessageEventEntities(table) {
72
- const textAttributes = {
73
- text: 'string',
74
- markdown: 'boolean',
75
- buttons: 'list',
76
- replies: 'list',
77
- };
78
- const mediaAttributes = {
79
- src: 'string',
80
- buttons: 'list',
81
- };
82
- const locationAttributes = {
83
- lat: 'number',
84
- long: 'number',
85
- };
86
- const carouselAttributes = {
87
- elements: 'list',
88
- };
89
- const customAttributes = {
90
- json: 'map',
91
- replies: 'list',
92
- };
93
- const entityWithAttributes = (type, attributes) => new Entity({
94
- name: `${capitalize(type)} Message Event`,
95
- attributes: Object.assign({ userId: { partitionKey: true, prefix: USER_PREFIX }, [`${SORT_KEY_NAME}`]: {
96
- hidden: true,
97
- sortKey: true,
98
- prefix: EVENT_PREFIX,
99
- }, eventId: [SORT_KEY_NAME, 0], eventType: 'string', createdAt: 'string', modifiedAt: 'string', from: 'string', ack: 'string', typing: 'number', delay: 'number', type: 'string' }, attributes),
100
- table,
101
- });
102
- return {
103
- text: entityWithAttributes(MessageEventTypes.TEXT, textAttributes),
104
- audio: entityWithAttributes(MessageEventTypes.AUDIO, mediaAttributes),
105
- image: entityWithAttributes(MessageEventTypes.IMAGE, mediaAttributes),
106
- document: entityWithAttributes(MessageEventTypes.DOCUMENT, mediaAttributes),
107
- video: entityWithAttributes(MessageEventTypes.VIDEO, mediaAttributes),
108
- location: entityWithAttributes(MessageEventTypes.LOCATION, locationAttributes),
109
- carousel: entityWithAttributes(MessageEventTypes.CAROUSEL, carouselAttributes),
110
- custom: entityWithAttributes(MessageEventTypes.CUSTOM, customAttributes),
111
- };
112
- }
113
- //# 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,27 +0,0 @@
1
- import { DynamoDBDataProvider } from './dynamodb-data-provider';
2
- import { LocalDevDataProvider } from './local-data-provider';
3
- export const dataProviderProtocols = {
4
- DYNAMO_DB: 'dynamodb',
5
- FILE: 'file',
6
- };
7
- /** URL examples:
8
- * dynamodb://my-table.my-region.aws.com
9
- * postgresql://my-database.my-db-provider.com
10
- * file://path/to/local/db.json
11
- */
12
- export function dataProviderFactory(url) {
13
- if (!url) {
14
- return new LocalDevDataProvider();
15
- }
16
- const protocol = url.split('://')[0];
17
- switch (protocol) {
18
- case dataProviderProtocols.DYNAMO_DB:
19
- return new DynamoDBDataProvider(url);
20
- case dataProviderProtocols.FILE:
21
- return new LocalDevDataProvider(url);
22
- default:
23
- console.error(`Protocol ${protocol} not implemented, using local DB instead.`);
24
- return new LocalDevDataProvider();
25
- }
26
- }
27
- //# sourceMappingURL=factory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/data-provider/factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAE5D,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,SAAS,EAAE,UAAU;IACrB,IAAI,EAAE,MAAM;CACb,CAAA;AA8BD;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAY;IAC9C,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,IAAI,oBAAoB,EAAE,CAAA;KAClC;IAED,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACpC,QAAQ,QAAQ,EAAE;QAChB,KAAK,qBAAqB,CAAC,SAAS;YAClC,OAAO,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAA;QACtC,KAAK,qBAAqB,CAAC,IAAI;YAC7B,OAAO,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAA;QACtC;YACE,OAAO,CAAC,KAAK,CACX,YAAY,QAAQ,2CAA2C,CAChE,CAAA;YACD,OAAO,IAAI,oBAAoB,EAAE,CAAA;KACpC;AACH,CAAC"}
@@ -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,5 +0,0 @@
1
- export * from './dynamodb-data-provider';
2
- export * from './dynamodb-utils';
3
- export * from './factory';
4
- export * from './local-data-provider';
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/data-provider/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,kBAAkB,CAAA;AAChC,cAAc,WAAW,CAAA;AACzB,cAAc,uBAAuB,CAAA"}
@@ -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,133 +0,0 @@
1
- import { JsonDB } from 'node-json-db';
2
- import { Config } from 'node-json-db/dist/lib/JsonDBConfig';
3
- export class LocalDevDataProvider {
4
- constructor(url) {
5
- this.DB_PATH = 'tmp/localDb';
6
- this.SEPARATOR = '/';
7
- this.paths = {
8
- USERS: '/users',
9
- EVENTS: '/events',
10
- CONNECTIONS: '/connections',
11
- };
12
- const dbPath = url ? url.split('://')[1] : this.DB_PATH;
13
- this.db = new JsonDB(new Config(dbPath, true, false, this.SEPARATOR));
14
- }
15
- getUsers(limit = 10, offset = 0) {
16
- const path = this.paths.USERS;
17
- this.db.reload();
18
- const userList = this.db.getObject(path);
19
- const users = Object.values(userList);
20
- const to = limit !== 0 ? offset + limit : undefined;
21
- return users.slice(offset, to);
22
- }
23
- getUser(userId) {
24
- const path = this.createPath([this.paths.USERS, userId]);
25
- this.db.reload();
26
- return this.db.exists(path) ? this.db.getObject(path) : undefined;
27
- }
28
- getUserByWebsocketId(websocketId) {
29
- return this.getUserByField('websocketId', websocketId);
30
- }
31
- getUserByField(field, value) {
32
- const path = this.paths.USERS;
33
- this.db.reload();
34
- const dbUser = this.db.exists(path)
35
- ? this.db.find(path, (user) => user[field] === value)
36
- : undefined;
37
- return dbUser;
38
- }
39
- saveUser(user) {
40
- const path = this.createPath([this.paths.USERS, user.id]);
41
- this.db.reload();
42
- if (!this.db.exists(path)) {
43
- this.db.push(path, user);
44
- }
45
- return user;
46
- }
47
- updateUser(user) {
48
- const path = this.createPath([this.paths.USERS, user.id]);
49
- this.db.reload();
50
- if (this.db.exists(path)) {
51
- this.db.push(path, user, true);
52
- }
53
- return user;
54
- }
55
- deleteUser(id) {
56
- const path = this.createPath([this.paths.USERS, id]);
57
- this.db.reload();
58
- const user = this.db.exists(path)
59
- ? this.db.getObject(path)
60
- : undefined;
61
- if (user) {
62
- this.db.delete(path);
63
- return user;
64
- }
65
- return undefined;
66
- }
67
- getEvents(limit = 10, offset = 0) {
68
- const path = this.paths.EVENTS;
69
- this.db.reload();
70
- const eventList = this.db.getObject(path);
71
- const events = Object.values(eventList);
72
- const to = limit !== 0 ? offset + limit : undefined;
73
- return events.slice(offset, to);
74
- }
75
- getEvent(id) {
76
- const path = this.createPath([this.paths.EVENTS, id]);
77
- this.db.reload();
78
- return this.db.exists(path)
79
- ? this.db.getObject(path)
80
- : undefined;
81
- }
82
- saveEvent(event) {
83
- const path = this.createPath([this.paths.EVENTS, event.eventId]);
84
- this.db.reload();
85
- if (!this.db.exists(path)) {
86
- this.db.push(path, event);
87
- }
88
- return event;
89
- }
90
- updateEvent(event) {
91
- const path = this.createPath([this.paths.EVENTS, event.eventId]);
92
- this.db.reload();
93
- if (this.db.exists(path)) {
94
- this.db.push(path, event, true);
95
- }
96
- return event;
97
- }
98
- deleteEvent(id) {
99
- const path = this.createPath([this.paths.EVENTS, id]);
100
- this.db.reload();
101
- const event = this.db.exists(path)
102
- ? this.db.getObject(path)
103
- : undefined;
104
- if (event) {
105
- this.db.delete(path);
106
- return event;
107
- }
108
- return undefined;
109
- }
110
- addConnection(websocketId) {
111
- const path = this.createPath([this.paths.CONNECTIONS, websocketId]);
112
- this.db.reload();
113
- if (!this.db.exists(path)) {
114
- this.db.push(path, '', false);
115
- }
116
- }
117
- updateConnection(websocketId, userId) {
118
- const path = this.createPath([this.paths.CONNECTIONS, websocketId]);
119
- this.db.reload();
120
- if (this.db.exists(path)) {
121
- this.db.push(path, userId, true);
122
- }
123
- }
124
- deleteConnection(websocketId) {
125
- const path = this.createPath([this.paths.CONNECTIONS, websocketId]);
126
- this.db.reload();
127
- this.db.delete(path);
128
- }
129
- createPath(urlChunks) {
130
- return urlChunks.join(this.SEPARATOR);
131
- }
132
- }
133
- //# 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,33 +0,0 @@
1
- // eslint-disable-next-line import/named
2
- import { parse } from 'fast-xml-parser';
3
- import { decode } from 'html-entities';
4
- import { MessageParsingFactory } from './factory';
5
- export const TEXT_NODE_NAME = 'text';
6
- export class BotonicOutputParser {
7
- constructor(factory = new MessageParsingFactory()) {
8
- this.factory = factory;
9
- }
10
- xmlToMessageEvents(html) {
11
- const jsonMessages = this.xmlToJSONMessages(html);
12
- return jsonMessages.map(msgToParse => this.factory.parse(msgToParse));
13
- }
14
- /**
15
- * Right now, when saving BotonicEvents to DataProvider, we need the standarized Botonic event
16
- * to be saved. This is, converting a botonic input like: '{id: 'msgId', data: 'rawData', payload: 'somePayload'}'
17
- * into a BotonicEvent with the expected properties.
18
- */
19
- parseFromUserInput(input) {
20
- return this.factory.parse(input);
21
- }
22
- xmlToJSONMessages(html) {
23
- return parse(html, BotonicOutputParser.OPTIONS).message;
24
- }
25
- }
26
- BotonicOutputParser.OPTIONS = {
27
- ignoreAttributes: false,
28
- attributeNamePrefix: '',
29
- textNodeName: TEXT_NODE_NAME,
30
- arrayMode: true,
31
- attrValueProcessor: a => decode(a),
32
- };
33
- //# 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,OAAO,EAAE,KAAK,EAAc,MAAM,iBAAiB,CAAA;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAGtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AAEjD,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAA;AAEpC,MAAM,OAAO,mBAAmB;IAS9B,YAA6B,UAAU,IAAI,qBAAqB,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,KAAK,CAAC,IAAI,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAA;IACzD,CAAC;;AA1Bc,2BAAO,GAAwB;IAC5C,gBAAgB,EAAE,KAAK;IACvB,mBAAmB,EAAE,EAAE;IACvB,YAAY,EAAE,cAAc;IAC5B,SAAS,EAAE,IAAI;IACf,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;CACnC,CAAA"}
@@ -1,4 +0,0 @@
1
- import { BotonicEvent } from '../models';
2
- export declare class MessageParsingFactory {
3
- parse(msgToParse: any): Partial<BotonicEvent>;
4
- }
@@ -1,32 +0,0 @@
1
- import { MEDIA_TYPES, MessageEventTypes } from '../models';
2
- import { parseButtons, parseCarousel, parseContact, parseCustom, parseForm, parseLocation, parseMedia, parseMessage, parseMissed, parsePostback, parseReplies, parseText, } from './parsers';
3
- export class MessageParsingFactory {
4
- parse(msgToParse) {
5
- const type = msgToParse.type;
6
- const parsedMessage = parseMessage({ toParse: msgToParse });
7
- if (MEDIA_TYPES.includes(type)) {
8
- return parseMedia(parseButtons(parsedMessage)).parsed;
9
- }
10
- switch (type) {
11
- case MessageEventTypes.TEXT:
12
- // statement 1
13
- return parseText(parseReplies(parseButtons(parsedMessage))).parsed;
14
- case MessageEventTypes.POSTBACK:
15
- return parsePostback(parsedMessage).parsed;
16
- case MessageEventTypes.LOCATION:
17
- return parseLocation(parsedMessage).parsed;
18
- case MessageEventTypes.CAROUSEL:
19
- return parseCarousel(parsedMessage).parsed;
20
- case MessageEventTypes.CUSTOM:
21
- return parseCustom(parseReplies(parsedMessage)).parsed;
22
- case MessageEventTypes.FORM:
23
- return parseForm(parsedMessage).parsed;
24
- case MessageEventTypes.CONTACT:
25
- return parseContact(parsedMessage).parsed;
26
- case MessageEventTypes.MISSED:
27
- return parseMissed(parsedMessage).parsed;
28
- }
29
- throw new Error(`Parsing for type: '${type}' not implemented.`);
30
- }
31
- }
32
- //# sourceMappingURL=factory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/output-parser/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,WAAW,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AACxE,OAAO,EACL,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,WAAW,EACX,SAAS,EACT,aAAa,EACb,UAAU,EACV,YAAY,EACZ,WAAW,EACX,aAAa,EACb,YAAY,EACZ,SAAS,GACV,MAAM,WAAW,CAAA;AAElB,MAAM,OAAO,qBAAqB;IAChC,KAAK,CAAC,UAAe;QACnB,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAA;QAC5B,MAAM,aAAa,GAAG,YAAY,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAA;QAC3D,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YAC9B,OAAO,UAAU,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAA;SACtD;QACD,QAAQ,IAAI,EAAE;YACZ,KAAK,iBAAiB,CAAC,IAAI;gBACzB,cAAc;gBACd,OAAO,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;YACpE,KAAK,iBAAiB,CAAC,QAAQ;gBAC7B,OAAO,aAAa,CAAC,aAAa,CAAC,CAAC,MAAM,CAAA;YAC5C,KAAK,iBAAiB,CAAC,QAAQ;gBAC7B,OAAO,aAAa,CAAC,aAAa,CAAC,CAAC,MAAM,CAAA;YAC5C,KAAK,iBAAiB,CAAC,QAAQ;gBAC7B,OAAO,aAAa,CAAC,aAAa,CAAC,CAAC,MAAM,CAAA;YAC5C,KAAK,iBAAiB,CAAC,MAAM;gBAC3B,OAAO,WAAW,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAA;YACxD,KAAK,iBAAiB,CAAC,IAAI;gBACzB,OAAO,SAAS,CAAC,aAAa,CAAC,CAAC,MAAM,CAAA;YACxC,KAAK,iBAAiB,CAAC,OAAO;gBAC5B,OAAO,YAAY,CAAC,aAAa,CAAC,CAAC,MAAM,CAAA;YAC3C,KAAK,iBAAiB,CAAC,MAAM;gBAC3B,OAAO,WAAW,CAAC,aAAa,CAAC,CAAC,MAAM,CAAA;SAC3C;QACD,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,oBAAoB,CAAC,CAAA;IACjE,CAAC;CACF"}
@@ -1,3 +0,0 @@
1
- export * from './botonic-output-parser';
2
- export * from './factory';
3
- export * from './parsers';
@@ -1,4 +0,0 @@
1
- export * from './botonic-output-parser';
2
- export * from './factory';
3
- export * from './parsers';
4
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/output-parser/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA"}
@@ -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>;