@botonic/core 0.21.5 → 0.22.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.
- package/lib/cjs/core-bot.d.ts +2 -2
- package/lib/cjs/core-bot.js.map +1 -1
- package/lib/cjs/models/legacy-types.d.ts +53 -47
- package/lib/cjs/models/legacy-types.js +47 -43
- package/lib/cjs/models/legacy-types.js.map +1 -1
- package/lib/cjs/plugins.d.ts +3 -4
- package/lib/cjs/plugins.js +6 -5
- package/lib/cjs/plugins.js.map +1 -1
- package/lib/esm/core-bot.d.ts +2 -2
- package/lib/esm/core-bot.js.map +1 -1
- package/lib/esm/models/legacy-types.d.ts +53 -47
- package/lib/esm/models/legacy-types.js +47 -43
- package/lib/esm/models/legacy-types.js.map +1 -1
- package/lib/esm/plugins.d.ts +3 -4
- package/lib/esm/plugins.js +6 -5
- package/lib/esm/plugins.js.map +1 -1
- package/package.json +8 -6
- package/src/core-bot.ts +2 -1
- package/src/models/legacy-types.ts +54 -47
- package/src/plugins.ts +15 -6
package/lib/cjs/core-bot.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Inspector } from './debug';
|
|
2
|
-
import { BotRequest, BotResponse, Locales, Route, Routes, Session } from './models';
|
|
2
|
+
import { BotRequest, BotResponse, Locales, ResolvedPlugins, Route, Routes, Session } from './models';
|
|
3
3
|
import { BotonicOutputParser } from './output-parser';
|
|
4
4
|
import { Router } from './routing';
|
|
5
5
|
export interface CoreBotConfig {
|
|
@@ -21,7 +21,7 @@ export declare class CoreBot {
|
|
|
21
21
|
defaultTyping?: number;
|
|
22
22
|
inspector: Inspector;
|
|
23
23
|
locales: Locales;
|
|
24
|
-
plugins?:
|
|
24
|
+
plugins?: ResolvedPlugins;
|
|
25
25
|
renderer: any;
|
|
26
26
|
rootElement: any;
|
|
27
27
|
router: Router | null;
|
package/lib/cjs/core-bot.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-bot.js","sourceRoot":"","sources":["../../src/core-bot.ts"],"names":[],"mappings":";;;AAAA,+BAA2B;AAE3B,mCAAmC;AACnC,iCAAkC;AAClC,
|
|
1
|
+
{"version":3,"file":"core-bot.js","sourceRoot":"","sources":["../../src/core-bot.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,49 +2,49 @@ import { DataProvider } from '../data-provider';
|
|
|
2
2
|
import { BotonicEvent } from './events';
|
|
3
3
|
export type CaseStatusType = typeof CASE_STATUS.ATTENDING | typeof CASE_STATUS.IDLE | typeof CASE_STATUS.RESOLVED | typeof CASE_STATUS.WAITING;
|
|
4
4
|
export type CaseResolution = typeof CASE_RESOLUTION.BANNED | typeof CASE_RESOLUTION.NOK | typeof CASE_RESOLUTION.NOT_SOLVED | typeof CASE_RESOLUTION.OK;
|
|
5
|
-
export declare
|
|
6
|
-
APPLE
|
|
7
|
-
DEV
|
|
8
|
-
FACEBOOK
|
|
9
|
-
GENERIC
|
|
10
|
-
INSTAGRAM
|
|
11
|
-
INTERCOM
|
|
12
|
-
SMOOCH
|
|
13
|
-
TELEGRAM
|
|
14
|
-
TWITTER
|
|
15
|
-
WEBCHAT
|
|
16
|
-
WECHAT
|
|
17
|
-
WHATSAPP
|
|
18
|
-
}
|
|
19
|
-
export declare
|
|
20
|
-
TEXT
|
|
21
|
-
POSTBACK
|
|
22
|
-
AUDIO
|
|
23
|
-
IMAGE
|
|
24
|
-
VIDEO
|
|
25
|
-
DOCUMENT
|
|
26
|
-
LOCATION
|
|
27
|
-
CONTACT
|
|
28
|
-
BUTTON_MESSAGE
|
|
29
|
-
CAROUSEL
|
|
30
|
-
CUSTOM
|
|
31
|
-
WEBCHAT_SETTINGS
|
|
32
|
-
WHATSAPP_TEMPLATE
|
|
33
|
-
RAW
|
|
34
|
-
CHAT_EVENT
|
|
35
|
-
}
|
|
36
|
-
export declare
|
|
37
|
-
WAITING
|
|
38
|
-
ATTENDING
|
|
39
|
-
IDLE
|
|
40
|
-
RESOLVED
|
|
41
|
-
}
|
|
42
|
-
export declare
|
|
43
|
-
OK
|
|
44
|
-
NOK
|
|
45
|
-
NOT_SOLVED
|
|
46
|
-
BANNED
|
|
47
|
-
}
|
|
5
|
+
export declare enum PROVIDER {
|
|
6
|
+
APPLE = "apple",
|
|
7
|
+
DEV = "dev",
|
|
8
|
+
FACEBOOK = "facebook",
|
|
9
|
+
GENERIC = "generic",
|
|
10
|
+
INSTAGRAM = "instagram",
|
|
11
|
+
INTERCOM = "intercom",
|
|
12
|
+
SMOOCH = "smooch",
|
|
13
|
+
TELEGRAM = "telegram",
|
|
14
|
+
TWITTER = "twitter",
|
|
15
|
+
WEBCHAT = "webchat",
|
|
16
|
+
WECHAT = "wechat",
|
|
17
|
+
WHATSAPP = "whatsapp"
|
|
18
|
+
}
|
|
19
|
+
export declare enum INPUT {
|
|
20
|
+
TEXT = "text",
|
|
21
|
+
POSTBACK = "postback",
|
|
22
|
+
AUDIO = "audio",
|
|
23
|
+
IMAGE = "image",
|
|
24
|
+
VIDEO = "video",
|
|
25
|
+
DOCUMENT = "document",
|
|
26
|
+
LOCATION = "location",
|
|
27
|
+
CONTACT = "contact",
|
|
28
|
+
BUTTON_MESSAGE = "buttonmessage",
|
|
29
|
+
CAROUSEL = "carousel",
|
|
30
|
+
CUSTOM = "custom",
|
|
31
|
+
WEBCHAT_SETTINGS = "webchatsettings",
|
|
32
|
+
WHATSAPP_TEMPLATE = "whatsapptemplate",
|
|
33
|
+
RAW = "raw",
|
|
34
|
+
CHAT_EVENT = "chatevent"
|
|
35
|
+
}
|
|
36
|
+
export declare enum CASE_STATUS {
|
|
37
|
+
WAITING = "status_waiting",
|
|
38
|
+
ATTENDING = "status_attending",
|
|
39
|
+
IDLE = "status_idle",
|
|
40
|
+
RESOLVED = "status_resolved"
|
|
41
|
+
}
|
|
42
|
+
export declare enum CASE_RESOLUTION {
|
|
43
|
+
OK = "result_ok",
|
|
44
|
+
NOK = "result_nok",
|
|
45
|
+
NOT_SOLVED = "result_not_solved",
|
|
46
|
+
BANNED = "result_banned"
|
|
47
|
+
}
|
|
48
48
|
export interface Locales {
|
|
49
49
|
[id: string]: string | string[] | Locales;
|
|
50
50
|
}
|
|
@@ -58,6 +58,12 @@ export interface PluginConfig<T> {
|
|
|
58
58
|
default: PluginConstructor<T>;
|
|
59
59
|
};
|
|
60
60
|
}
|
|
61
|
+
export interface ResolvedPlugin extends Plugin {
|
|
62
|
+
id: string;
|
|
63
|
+
name: string;
|
|
64
|
+
config: any;
|
|
65
|
+
}
|
|
66
|
+
export type ResolvedPlugins = Record<string, ResolvedPlugin>;
|
|
61
67
|
export type InputType = typeof INPUT.AUDIO | typeof INPUT.BUTTON_MESSAGE | typeof INPUT.CAROUSEL | typeof INPUT.CONTACT | typeof INPUT.CUSTOM | typeof INPUT.DOCUMENT | typeof INPUT.IMAGE | typeof INPUT.LOCATION | typeof INPUT.POSTBACK | typeof INPUT.TEXT | typeof INPUT.VIDEO | typeof INPUT.WEBCHAT_SETTINGS | typeof INPUT.WHATSAPP_TEMPLATE;
|
|
62
68
|
export interface IntentResult {
|
|
63
69
|
intent: string;
|
|
@@ -155,14 +161,14 @@ export interface BotResponse extends BotRequest {
|
|
|
155
161
|
messageEvents: Partial<BotonicEvent>[] | null;
|
|
156
162
|
}
|
|
157
163
|
export interface PluginPreRequest extends BotRequest {
|
|
158
|
-
plugins:
|
|
164
|
+
plugins: ResolvedPlugins;
|
|
159
165
|
}
|
|
160
166
|
export interface PluginPostRequest extends BotResponse {
|
|
161
|
-
plugins:
|
|
167
|
+
plugins: ResolvedPlugins;
|
|
162
168
|
}
|
|
163
169
|
export interface Plugin {
|
|
164
|
-
post(request: PluginPostRequest): void
|
|
165
|
-
pre(request: PluginPreRequest): void
|
|
170
|
+
post?(request: PluginPostRequest): void | Promise<void>;
|
|
171
|
+
pre?(request: PluginPreRequest): void | Promise<void>;
|
|
166
172
|
}
|
|
167
173
|
export interface Params {
|
|
168
174
|
[key: string]: any;
|
|
@@ -2,49 +2,53 @@
|
|
|
2
2
|
// TODO: This file contains all the legacy types we had in index.ts. After some refactors, we should be able to get rid of many of them.
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.Providers = exports.CASE_RESOLUTION = exports.CASE_STATUS = exports.INPUT = exports.PROVIDER = void 0;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
exports.
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
5
|
+
var PROVIDER;
|
|
6
|
+
(function (PROVIDER) {
|
|
7
|
+
PROVIDER["APPLE"] = "apple";
|
|
8
|
+
PROVIDER["DEV"] = "dev";
|
|
9
|
+
PROVIDER["FACEBOOK"] = "facebook";
|
|
10
|
+
PROVIDER["GENERIC"] = "generic";
|
|
11
|
+
PROVIDER["INSTAGRAM"] = "instagram";
|
|
12
|
+
PROVIDER["INTERCOM"] = "intercom";
|
|
13
|
+
PROVIDER["SMOOCH"] = "smooch";
|
|
14
|
+
PROVIDER["TELEGRAM"] = "telegram";
|
|
15
|
+
PROVIDER["TWITTER"] = "twitter";
|
|
16
|
+
PROVIDER["WEBCHAT"] = "webchat";
|
|
17
|
+
PROVIDER["WECHAT"] = "wechat";
|
|
18
|
+
PROVIDER["WHATSAPP"] = "whatsapp";
|
|
19
|
+
})(PROVIDER = exports.PROVIDER || (exports.PROVIDER = {}));
|
|
20
|
+
var INPUT;
|
|
21
|
+
(function (INPUT) {
|
|
22
|
+
INPUT["TEXT"] = "text";
|
|
23
|
+
INPUT["POSTBACK"] = "postback";
|
|
24
|
+
INPUT["AUDIO"] = "audio";
|
|
25
|
+
INPUT["IMAGE"] = "image";
|
|
26
|
+
INPUT["VIDEO"] = "video";
|
|
27
|
+
INPUT["DOCUMENT"] = "document";
|
|
28
|
+
INPUT["LOCATION"] = "location";
|
|
29
|
+
INPUT["CONTACT"] = "contact";
|
|
30
|
+
INPUT["BUTTON_MESSAGE"] = "buttonmessage";
|
|
31
|
+
INPUT["CAROUSEL"] = "carousel";
|
|
32
|
+
INPUT["CUSTOM"] = "custom";
|
|
33
|
+
INPUT["WEBCHAT_SETTINGS"] = "webchatsettings";
|
|
34
|
+
INPUT["WHATSAPP_TEMPLATE"] = "whatsapptemplate";
|
|
35
|
+
INPUT["RAW"] = "raw";
|
|
36
|
+
INPUT["CHAT_EVENT"] = "chatevent";
|
|
37
|
+
})(INPUT = exports.INPUT || (exports.INPUT = {}));
|
|
38
|
+
var CASE_STATUS;
|
|
39
|
+
(function (CASE_STATUS) {
|
|
40
|
+
CASE_STATUS["WAITING"] = "status_waiting";
|
|
41
|
+
CASE_STATUS["ATTENDING"] = "status_attending";
|
|
42
|
+
CASE_STATUS["IDLE"] = "status_idle";
|
|
43
|
+
CASE_STATUS["RESOLVED"] = "status_resolved";
|
|
44
|
+
})(CASE_STATUS = exports.CASE_STATUS || (exports.CASE_STATUS = {}));
|
|
45
|
+
var CASE_RESOLUTION;
|
|
46
|
+
(function (CASE_RESOLUTION) {
|
|
47
|
+
CASE_RESOLUTION["OK"] = "result_ok";
|
|
48
|
+
CASE_RESOLUTION["NOK"] = "result_nok";
|
|
49
|
+
CASE_RESOLUTION["NOT_SOLVED"] = "result_not_solved";
|
|
50
|
+
CASE_RESOLUTION["BANNED"] = "result_banned";
|
|
51
|
+
})(CASE_RESOLUTION = exports.CASE_RESOLUTION || (exports.CASE_RESOLUTION = {}));
|
|
48
52
|
exports.Providers = Object.freeze({
|
|
49
53
|
Messaging: {
|
|
50
54
|
APPLE: 'apple',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"legacy-types.js","sourceRoot":"","sources":["../../../src/models/legacy-types.ts"],"names":[],"mappings":";AAAA,wIAAwI;;;
|
|
1
|
+
{"version":3,"file":"legacy-types.js","sourceRoot":"","sources":["../../../src/models/legacy-types.ts"],"names":[],"mappings":";AAAA,wIAAwI;;;AAiBxI,IAAY,QAaX;AAbD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,uBAAW,CAAA;IACX,iCAAqB,CAAA;IACrB,+BAAmB,CAAA;IACnB,mCAAuB,CAAA;IACvB,iCAAqB,CAAA;IACrB,6BAAiB,CAAA;IACjB,iCAAqB,CAAA;IACrB,+BAAmB,CAAA;IACnB,+BAAmB,CAAA;IACnB,6BAAiB,CAAA;IACjB,iCAAqB,CAAA;AACvB,CAAC,EAbW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAanB;AAED,IAAY,KAgBX;AAhBD,WAAY,KAAK;IACf,sBAAa,CAAA;IACb,8BAAqB,CAAA;IACrB,wBAAe,CAAA;IACf,wBAAe,CAAA;IACf,wBAAe,CAAA;IACf,8BAAqB,CAAA;IACrB,8BAAqB,CAAA;IACrB,4BAAmB,CAAA;IACnB,yCAAgC,CAAA;IAChC,8BAAqB,CAAA;IACrB,0BAAiB,CAAA;IACjB,6CAAoC,CAAA;IACpC,+CAAsC,CAAA;IACtC,oBAAW,CAAA;IACX,iCAAwB,CAAA;AAC1B,CAAC,EAhBW,KAAK,GAAL,aAAK,KAAL,aAAK,QAgBhB;AAED,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,yCAA0B,CAAA;IAC1B,6CAA8B,CAAA;IAC9B,mCAAoB,CAAA;IACpB,2CAA4B,CAAA;AAC9B,CAAC,EALW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAKtB;AAED,IAAY,eAKX;AALD,WAAY,eAAe;IACzB,mCAAgB,CAAA;IAChB,qCAAkB,CAAA;IAClB,mDAAgC,CAAA;IAChC,2CAAwB,CAAA;AAC1B,CAAC,EALW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAK1B;AA2LY,QAAA,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;IACrC,SAAS,EAAE;QACT,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,OAAO;QACd,SAAS,EAAE,WAAW;QACtB,QAAQ,EAAE,UAAU;QACpB,UAAU,EAAE,YAAY;QACxB,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,UAAU;KACrB;CACF,CAAC,CAAA"}
|
package/lib/cjs/plugins.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { DataProvider } from './data-provider';
|
|
2
|
-
import { BotonicEvent, Input, PluginConfig, RoutePath, Session } from './models';
|
|
2
|
+
import { BotonicEvent, Input, PluginConfig, ResolvedPlugins, RoutePath, Session } from './models';
|
|
3
3
|
type PluginMode = 'pre' | 'post';
|
|
4
|
-
export declare function loadPlugins(plugins: PluginConfig<any>[]):
|
|
5
|
-
export declare function runPlugins(plugins:
|
|
6
|
-
mode: PluginMode, input: Input, session: Session, lastRoutePath: RoutePath, response?: string | null, messageEvents?: Partial<BotonicEvent>[] | null, dataProvider?: DataProvider): Promise<void>;
|
|
4
|
+
export declare function loadPlugins(plugins: PluginConfig<any>[]): ResolvedPlugins;
|
|
5
|
+
export declare function runPlugins(plugins: ResolvedPlugins, mode: PluginMode, input: Input, session: Session, lastRoutePath: RoutePath, response?: string | null, messageEvents?: Partial<BotonicEvent>[] | null, dataProvider?: DataProvider): Promise<void>;
|
|
7
6
|
export {};
|
package/lib/cjs/plugins.js
CHANGED
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.runPlugins = exports.loadPlugins = void 0;
|
|
4
4
|
function loadPlugins(plugins) {
|
|
5
5
|
if (!plugins)
|
|
6
|
-
return
|
|
6
|
+
return {};
|
|
7
7
|
const _plugins = {};
|
|
8
8
|
const pluginsLength = plugins.length;
|
|
9
9
|
for (let i = 0; i < pluginsLength; i++) {
|
|
@@ -20,14 +20,14 @@ function loadPlugins(plugins) {
|
|
|
20
20
|
return _plugins;
|
|
21
21
|
}
|
|
22
22
|
exports.loadPlugins = loadPlugins;
|
|
23
|
-
async function runPlugins(plugins,
|
|
24
|
-
mode, input, session, lastRoutePath, response = null, messageEvents = null, dataProvider) {
|
|
23
|
+
async function runPlugins(plugins, mode, input, session, lastRoutePath, response = null, messageEvents = null, dataProvider) {
|
|
25
24
|
for (const key in plugins) {
|
|
26
25
|
const p = await plugins[key];
|
|
27
26
|
try {
|
|
28
|
-
if (mode === 'pre')
|
|
27
|
+
if (mode === 'pre' && p.pre) {
|
|
29
28
|
await p.pre({ input, session, lastRoutePath, dataProvider, plugins });
|
|
30
|
-
|
|
29
|
+
}
|
|
30
|
+
if (mode === 'post' && p.post) {
|
|
31
31
|
await p.post({
|
|
32
32
|
input,
|
|
33
33
|
session,
|
|
@@ -37,6 +37,7 @@ mode, input, session, lastRoutePath, response = null, messageEvents = null, data
|
|
|
37
37
|
dataProvider,
|
|
38
38
|
plugins,
|
|
39
39
|
});
|
|
40
|
+
}
|
|
40
41
|
}
|
|
41
42
|
catch (e) {
|
|
42
43
|
console.log(e);
|
package/lib/cjs/plugins.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/plugins.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/plugins.ts"],"names":[],"mappings":";;;AAYA,SAAgB,WAAW,CAAC,OAA4B;IACtD,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAA;IACvB,MAAM,QAAQ,GAAG,EAAE,CAAA;IACnB,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAA;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;QACtC,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;QACzC,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;QAClC,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAA;QACrC,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAA;QACpC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;QAC1D,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAA;QACvB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAA;QACpB,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,OAAO,CAAA;QAC7B,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;KACnD;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAhBD,kCAgBC;AAEM,KAAK,UAAU,UAAU,CAC9B,OAAwB,EACxB,IAAgB,EAChB,KAAY,EACZ,OAAgB,EAChB,aAAwB,EACxB,WAA0B,IAAI,EAC9B,gBAAgD,IAAI,EACpD,YAA2B;IAE3B,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;QACzB,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAA;QAC5B,IAAI;YACF,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE;gBAC3B,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAA;aACtE;YACD,IAAI,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,EAAE;gBAC7B,MAAM,CAAC,CAAC,IAAI,CAAC;oBACX,KAAK;oBACL,OAAO;oBACP,aAAa;oBACb,QAAQ;oBACR,aAAa;oBACb,YAAY;oBACZ,OAAO;iBACR,CAAC,CAAA;aACH;SACF;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;SACf;KACF;AACH,CAAC;AA/BD,gCA+BC"}
|
package/lib/esm/core-bot.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Inspector } from './debug';
|
|
2
|
-
import { BotRequest, BotResponse, Locales, Route, Routes, Session } from './models';
|
|
2
|
+
import { BotRequest, BotResponse, Locales, ResolvedPlugins, Route, Routes, Session } from './models';
|
|
3
3
|
import { BotonicOutputParser } from './output-parser';
|
|
4
4
|
import { Router } from './routing';
|
|
5
5
|
export interface CoreBotConfig {
|
|
@@ -21,7 +21,7 @@ export declare class CoreBot {
|
|
|
21
21
|
defaultTyping?: number;
|
|
22
22
|
inspector: Inspector;
|
|
23
23
|
locales: Locales;
|
|
24
|
-
plugins?:
|
|
24
|
+
plugins?: ResolvedPlugins;
|
|
25
25
|
renderer: any;
|
|
26
26
|
rootElement: any;
|
|
27
27
|
router: Router | null;
|
package/lib/esm/core-bot.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-bot.js","sourceRoot":"","sources":["../../src/core-bot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAClC,OAAO,EAKL,eAAe,EACf,gBAAgB,
|
|
1
|
+
{"version":3,"file":"core-bot.js","sourceRoot":"","sources":["../../src/core-bot.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,49 +2,49 @@ import { DataProvider } from '../data-provider';
|
|
|
2
2
|
import { BotonicEvent } from './events';
|
|
3
3
|
export type CaseStatusType = typeof CASE_STATUS.ATTENDING | typeof CASE_STATUS.IDLE | typeof CASE_STATUS.RESOLVED | typeof CASE_STATUS.WAITING;
|
|
4
4
|
export type CaseResolution = typeof CASE_RESOLUTION.BANNED | typeof CASE_RESOLUTION.NOK | typeof CASE_RESOLUTION.NOT_SOLVED | typeof CASE_RESOLUTION.OK;
|
|
5
|
-
export declare
|
|
6
|
-
APPLE
|
|
7
|
-
DEV
|
|
8
|
-
FACEBOOK
|
|
9
|
-
GENERIC
|
|
10
|
-
INSTAGRAM
|
|
11
|
-
INTERCOM
|
|
12
|
-
SMOOCH
|
|
13
|
-
TELEGRAM
|
|
14
|
-
TWITTER
|
|
15
|
-
WEBCHAT
|
|
16
|
-
WECHAT
|
|
17
|
-
WHATSAPP
|
|
18
|
-
}
|
|
19
|
-
export declare
|
|
20
|
-
TEXT
|
|
21
|
-
POSTBACK
|
|
22
|
-
AUDIO
|
|
23
|
-
IMAGE
|
|
24
|
-
VIDEO
|
|
25
|
-
DOCUMENT
|
|
26
|
-
LOCATION
|
|
27
|
-
CONTACT
|
|
28
|
-
BUTTON_MESSAGE
|
|
29
|
-
CAROUSEL
|
|
30
|
-
CUSTOM
|
|
31
|
-
WEBCHAT_SETTINGS
|
|
32
|
-
WHATSAPP_TEMPLATE
|
|
33
|
-
RAW
|
|
34
|
-
CHAT_EVENT
|
|
35
|
-
}
|
|
36
|
-
export declare
|
|
37
|
-
WAITING
|
|
38
|
-
ATTENDING
|
|
39
|
-
IDLE
|
|
40
|
-
RESOLVED
|
|
41
|
-
}
|
|
42
|
-
export declare
|
|
43
|
-
OK
|
|
44
|
-
NOK
|
|
45
|
-
NOT_SOLVED
|
|
46
|
-
BANNED
|
|
47
|
-
}
|
|
5
|
+
export declare enum PROVIDER {
|
|
6
|
+
APPLE = "apple",
|
|
7
|
+
DEV = "dev",
|
|
8
|
+
FACEBOOK = "facebook",
|
|
9
|
+
GENERIC = "generic",
|
|
10
|
+
INSTAGRAM = "instagram",
|
|
11
|
+
INTERCOM = "intercom",
|
|
12
|
+
SMOOCH = "smooch",
|
|
13
|
+
TELEGRAM = "telegram",
|
|
14
|
+
TWITTER = "twitter",
|
|
15
|
+
WEBCHAT = "webchat",
|
|
16
|
+
WECHAT = "wechat",
|
|
17
|
+
WHATSAPP = "whatsapp"
|
|
18
|
+
}
|
|
19
|
+
export declare enum INPUT {
|
|
20
|
+
TEXT = "text",
|
|
21
|
+
POSTBACK = "postback",
|
|
22
|
+
AUDIO = "audio",
|
|
23
|
+
IMAGE = "image",
|
|
24
|
+
VIDEO = "video",
|
|
25
|
+
DOCUMENT = "document",
|
|
26
|
+
LOCATION = "location",
|
|
27
|
+
CONTACT = "contact",
|
|
28
|
+
BUTTON_MESSAGE = "buttonmessage",
|
|
29
|
+
CAROUSEL = "carousel",
|
|
30
|
+
CUSTOM = "custom",
|
|
31
|
+
WEBCHAT_SETTINGS = "webchatsettings",
|
|
32
|
+
WHATSAPP_TEMPLATE = "whatsapptemplate",
|
|
33
|
+
RAW = "raw",
|
|
34
|
+
CHAT_EVENT = "chatevent"
|
|
35
|
+
}
|
|
36
|
+
export declare enum CASE_STATUS {
|
|
37
|
+
WAITING = "status_waiting",
|
|
38
|
+
ATTENDING = "status_attending",
|
|
39
|
+
IDLE = "status_idle",
|
|
40
|
+
RESOLVED = "status_resolved"
|
|
41
|
+
}
|
|
42
|
+
export declare enum CASE_RESOLUTION {
|
|
43
|
+
OK = "result_ok",
|
|
44
|
+
NOK = "result_nok",
|
|
45
|
+
NOT_SOLVED = "result_not_solved",
|
|
46
|
+
BANNED = "result_banned"
|
|
47
|
+
}
|
|
48
48
|
export interface Locales {
|
|
49
49
|
[id: string]: string | string[] | Locales;
|
|
50
50
|
}
|
|
@@ -58,6 +58,12 @@ export interface PluginConfig<T> {
|
|
|
58
58
|
default: PluginConstructor<T>;
|
|
59
59
|
};
|
|
60
60
|
}
|
|
61
|
+
export interface ResolvedPlugin extends Plugin {
|
|
62
|
+
id: string;
|
|
63
|
+
name: string;
|
|
64
|
+
config: any;
|
|
65
|
+
}
|
|
66
|
+
export type ResolvedPlugins = Record<string, ResolvedPlugin>;
|
|
61
67
|
export type InputType = typeof INPUT.AUDIO | typeof INPUT.BUTTON_MESSAGE | typeof INPUT.CAROUSEL | typeof INPUT.CONTACT | typeof INPUT.CUSTOM | typeof INPUT.DOCUMENT | typeof INPUT.IMAGE | typeof INPUT.LOCATION | typeof INPUT.POSTBACK | typeof INPUT.TEXT | typeof INPUT.VIDEO | typeof INPUT.WEBCHAT_SETTINGS | typeof INPUT.WHATSAPP_TEMPLATE;
|
|
62
68
|
export interface IntentResult {
|
|
63
69
|
intent: string;
|
|
@@ -155,14 +161,14 @@ export interface BotResponse extends BotRequest {
|
|
|
155
161
|
messageEvents: Partial<BotonicEvent>[] | null;
|
|
156
162
|
}
|
|
157
163
|
export interface PluginPreRequest extends BotRequest {
|
|
158
|
-
plugins:
|
|
164
|
+
plugins: ResolvedPlugins;
|
|
159
165
|
}
|
|
160
166
|
export interface PluginPostRequest extends BotResponse {
|
|
161
|
-
plugins:
|
|
167
|
+
plugins: ResolvedPlugins;
|
|
162
168
|
}
|
|
163
169
|
export interface Plugin {
|
|
164
|
-
post(request: PluginPostRequest): void
|
|
165
|
-
pre(request: PluginPreRequest): void
|
|
170
|
+
post?(request: PluginPostRequest): void | Promise<void>;
|
|
171
|
+
pre?(request: PluginPreRequest): void | Promise<void>;
|
|
166
172
|
}
|
|
167
173
|
export interface Params {
|
|
168
174
|
[key: string]: any;
|
|
@@ -1,47 +1,51 @@
|
|
|
1
1
|
// TODO: This file contains all the legacy types we had in index.ts. After some refactors, we should be able to get rid of many of them.
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
2
|
+
export var PROVIDER;
|
|
3
|
+
(function (PROVIDER) {
|
|
4
|
+
PROVIDER["APPLE"] = "apple";
|
|
5
|
+
PROVIDER["DEV"] = "dev";
|
|
6
|
+
PROVIDER["FACEBOOK"] = "facebook";
|
|
7
|
+
PROVIDER["GENERIC"] = "generic";
|
|
8
|
+
PROVIDER["INSTAGRAM"] = "instagram";
|
|
9
|
+
PROVIDER["INTERCOM"] = "intercom";
|
|
10
|
+
PROVIDER["SMOOCH"] = "smooch";
|
|
11
|
+
PROVIDER["TELEGRAM"] = "telegram";
|
|
12
|
+
PROVIDER["TWITTER"] = "twitter";
|
|
13
|
+
PROVIDER["WEBCHAT"] = "webchat";
|
|
14
|
+
PROVIDER["WECHAT"] = "wechat";
|
|
15
|
+
PROVIDER["WHATSAPP"] = "whatsapp";
|
|
16
|
+
})(PROVIDER || (PROVIDER = {}));
|
|
17
|
+
export var INPUT;
|
|
18
|
+
(function (INPUT) {
|
|
19
|
+
INPUT["TEXT"] = "text";
|
|
20
|
+
INPUT["POSTBACK"] = "postback";
|
|
21
|
+
INPUT["AUDIO"] = "audio";
|
|
22
|
+
INPUT["IMAGE"] = "image";
|
|
23
|
+
INPUT["VIDEO"] = "video";
|
|
24
|
+
INPUT["DOCUMENT"] = "document";
|
|
25
|
+
INPUT["LOCATION"] = "location";
|
|
26
|
+
INPUT["CONTACT"] = "contact";
|
|
27
|
+
INPUT["BUTTON_MESSAGE"] = "buttonmessage";
|
|
28
|
+
INPUT["CAROUSEL"] = "carousel";
|
|
29
|
+
INPUT["CUSTOM"] = "custom";
|
|
30
|
+
INPUT["WEBCHAT_SETTINGS"] = "webchatsettings";
|
|
31
|
+
INPUT["WHATSAPP_TEMPLATE"] = "whatsapptemplate";
|
|
32
|
+
INPUT["RAW"] = "raw";
|
|
33
|
+
INPUT["CHAT_EVENT"] = "chatevent";
|
|
34
|
+
})(INPUT || (INPUT = {}));
|
|
35
|
+
export var CASE_STATUS;
|
|
36
|
+
(function (CASE_STATUS) {
|
|
37
|
+
CASE_STATUS["WAITING"] = "status_waiting";
|
|
38
|
+
CASE_STATUS["ATTENDING"] = "status_attending";
|
|
39
|
+
CASE_STATUS["IDLE"] = "status_idle";
|
|
40
|
+
CASE_STATUS["RESOLVED"] = "status_resolved";
|
|
41
|
+
})(CASE_STATUS || (CASE_STATUS = {}));
|
|
42
|
+
export var CASE_RESOLUTION;
|
|
43
|
+
(function (CASE_RESOLUTION) {
|
|
44
|
+
CASE_RESOLUTION["OK"] = "result_ok";
|
|
45
|
+
CASE_RESOLUTION["NOK"] = "result_nok";
|
|
46
|
+
CASE_RESOLUTION["NOT_SOLVED"] = "result_not_solved";
|
|
47
|
+
CASE_RESOLUTION["BANNED"] = "result_banned";
|
|
48
|
+
})(CASE_RESOLUTION || (CASE_RESOLUTION = {}));
|
|
45
49
|
export const Providers = Object.freeze({
|
|
46
50
|
Messaging: {
|
|
47
51
|
APPLE: 'apple',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"legacy-types.js","sourceRoot":"","sources":["../../../src/models/legacy-types.ts"],"names":[],"mappings":"AAAA,wIAAwI;AAiBxI,MAAM,
|
|
1
|
+
{"version":3,"file":"legacy-types.js","sourceRoot":"","sources":["../../../src/models/legacy-types.ts"],"names":[],"mappings":"AAAA,wIAAwI;AAiBxI,MAAM,CAAN,IAAY,QAaX;AAbD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,uBAAW,CAAA;IACX,iCAAqB,CAAA;IACrB,+BAAmB,CAAA;IACnB,mCAAuB,CAAA;IACvB,iCAAqB,CAAA;IACrB,6BAAiB,CAAA;IACjB,iCAAqB,CAAA;IACrB,+BAAmB,CAAA;IACnB,+BAAmB,CAAA;IACnB,6BAAiB,CAAA;IACjB,iCAAqB,CAAA;AACvB,CAAC,EAbW,QAAQ,KAAR,QAAQ,QAanB;AAED,MAAM,CAAN,IAAY,KAgBX;AAhBD,WAAY,KAAK;IACf,sBAAa,CAAA;IACb,8BAAqB,CAAA;IACrB,wBAAe,CAAA;IACf,wBAAe,CAAA;IACf,wBAAe,CAAA;IACf,8BAAqB,CAAA;IACrB,8BAAqB,CAAA;IACrB,4BAAmB,CAAA;IACnB,yCAAgC,CAAA;IAChC,8BAAqB,CAAA;IACrB,0BAAiB,CAAA;IACjB,6CAAoC,CAAA;IACpC,+CAAsC,CAAA;IACtC,oBAAW,CAAA;IACX,iCAAwB,CAAA;AAC1B,CAAC,EAhBW,KAAK,KAAL,KAAK,QAgBhB;AAED,MAAM,CAAN,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,yCAA0B,CAAA;IAC1B,6CAA8B,CAAA;IAC9B,mCAAoB,CAAA;IACpB,2CAA4B,CAAA;AAC9B,CAAC,EALW,WAAW,KAAX,WAAW,QAKtB;AAED,MAAM,CAAN,IAAY,eAKX;AALD,WAAY,eAAe;IACzB,mCAAgB,CAAA;IAChB,qCAAkB,CAAA;IAClB,mDAAgC,CAAA;IAChC,2CAAwB,CAAA;AAC1B,CAAC,EALW,eAAe,KAAf,eAAe,QAK1B;AA2LD,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;IACrC,SAAS,EAAE;QACT,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE,OAAO;QACd,SAAS,EAAE,WAAW;QACtB,QAAQ,EAAE,UAAU;QACpB,UAAU,EAAE,YAAY;QACxB,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,UAAU;KACrB;CACF,CAAC,CAAA"}
|
package/lib/esm/plugins.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { DataProvider } from './data-provider';
|
|
2
|
-
import { BotonicEvent, Input, PluginConfig, RoutePath, Session } from './models';
|
|
2
|
+
import { BotonicEvent, Input, PluginConfig, ResolvedPlugins, RoutePath, Session } from './models';
|
|
3
3
|
type PluginMode = 'pre' | 'post';
|
|
4
|
-
export declare function loadPlugins(plugins: PluginConfig<any>[]):
|
|
5
|
-
export declare function runPlugins(plugins:
|
|
6
|
-
mode: PluginMode, input: Input, session: Session, lastRoutePath: RoutePath, response?: string | null, messageEvents?: Partial<BotonicEvent>[] | null, dataProvider?: DataProvider): Promise<void>;
|
|
4
|
+
export declare function loadPlugins(plugins: PluginConfig<any>[]): ResolvedPlugins;
|
|
5
|
+
export declare function runPlugins(plugins: ResolvedPlugins, mode: PluginMode, input: Input, session: Session, lastRoutePath: RoutePath, response?: string | null, messageEvents?: Partial<BotonicEvent>[] | null, dataProvider?: DataProvider): Promise<void>;
|
|
7
6
|
export {};
|
package/lib/esm/plugins.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export function loadPlugins(plugins) {
|
|
2
2
|
if (!plugins)
|
|
3
|
-
return
|
|
3
|
+
return {};
|
|
4
4
|
const _plugins = {};
|
|
5
5
|
const pluginsLength = plugins.length;
|
|
6
6
|
for (let i = 0; i < pluginsLength; i++) {
|
|
@@ -16,14 +16,14 @@ export function loadPlugins(plugins) {
|
|
|
16
16
|
}
|
|
17
17
|
return _plugins;
|
|
18
18
|
}
|
|
19
|
-
export async function runPlugins(plugins,
|
|
20
|
-
mode, input, session, lastRoutePath, response = null, messageEvents = null, dataProvider) {
|
|
19
|
+
export async function runPlugins(plugins, mode, input, session, lastRoutePath, response = null, messageEvents = null, dataProvider) {
|
|
21
20
|
for (const key in plugins) {
|
|
22
21
|
const p = await plugins[key];
|
|
23
22
|
try {
|
|
24
|
-
if (mode === 'pre')
|
|
23
|
+
if (mode === 'pre' && p.pre) {
|
|
25
24
|
await p.pre({ input, session, lastRoutePath, dataProvider, plugins });
|
|
26
|
-
|
|
25
|
+
}
|
|
26
|
+
if (mode === 'post' && p.post) {
|
|
27
27
|
await p.post({
|
|
28
28
|
input,
|
|
29
29
|
session,
|
|
@@ -33,6 +33,7 @@ mode, input, session, lastRoutePath, response = null, messageEvents = null, data
|
|
|
33
33
|
dataProvider,
|
|
34
34
|
plugins,
|
|
35
35
|
});
|
|
36
|
+
}
|
|
36
37
|
}
|
|
37
38
|
catch (e) {
|
|
38
39
|
console.log(e);
|
package/lib/esm/plugins.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/plugins.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/plugins.ts"],"names":[],"mappings":"AAYA,MAAM,UAAU,WAAW,CAAC,OAA4B;IACtD,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAA;IACvB,MAAM,QAAQ,GAAG,EAAE,CAAA;IACnB,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAA;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;QACtC,MAAM,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;QACzC,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;QAClC,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAA;QACrC,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,CAAA;QACpC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;QAC1D,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAA;QACvB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAA;QACpB,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,OAAO,CAAA;QAC7B,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA;KACnD;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAAwB,EACxB,IAAgB,EAChB,KAAY,EACZ,OAAgB,EAChB,aAAwB,EACxB,WAA0B,IAAI,EAC9B,gBAAgD,IAAI,EACpD,YAA2B;IAE3B,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;QACzB,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAA;QAC5B,IAAI;YACF,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,EAAE;gBAC3B,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAA;aACtE;YACD,IAAI,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,EAAE;gBAC7B,MAAM,CAAC,CAAC,IAAI,CAAC;oBACX,KAAK;oBACL,OAAO;oBACP,aAAa;oBACb,QAAQ;oBACR,aAAa;oBACb,YAAY;oBACZ,OAAO;iBACR,CAAC,CAAA;aACH;SACF;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;SACf;KACF;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@botonic/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.22.0-alpha.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Build Chatbots using React",
|
|
6
6
|
"main": "./lib/cjs/index.js",
|
|
@@ -30,14 +30,15 @@
|
|
|
30
30
|
"README.md"
|
|
31
31
|
],
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"aws-sdk": "^2.
|
|
34
|
-
"axios": "^
|
|
33
|
+
"aws-sdk": "^2.1354.0",
|
|
34
|
+
"axios": "^1.4.0",
|
|
35
35
|
"decode": "^0.3.0",
|
|
36
36
|
"dynamodb-toolbox": "^0.3.4",
|
|
37
37
|
"fast-xml-parser": "^3.19.0",
|
|
38
|
-
"html-entities": "^2.3.
|
|
39
|
-
"node-json-db": "^1.
|
|
40
|
-
"pako": "^2.0
|
|
38
|
+
"html-entities": "^2.3.3",
|
|
39
|
+
"node-json-db": "^1.6.0",
|
|
40
|
+
"pako": "^2.1.0",
|
|
41
|
+
"process": "^0.11.10",
|
|
41
42
|
"pusher-js": "^5.1.1",
|
|
42
43
|
"ulid": "^2.3.0"
|
|
43
44
|
},
|
|
@@ -48,6 +49,7 @@
|
|
|
48
49
|
"@babel/plugin-proposal-object-rest-spread": "^7.9.6",
|
|
49
50
|
"@babel/plugin-transform-runtime": "^7.9.6",
|
|
50
51
|
"@babel/preset-env": "^7.9.6",
|
|
52
|
+
"@types/minipass": "^3.3.5",
|
|
51
53
|
"@types/pako": "^1.0.2",
|
|
52
54
|
"babel-plugin-add-module-exports": "^1.0.2"
|
|
53
55
|
},
|
package/src/core-bot.ts
CHANGED
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
Locales,
|
|
10
10
|
MessageEventAck,
|
|
11
11
|
MessageEventFrom,
|
|
12
|
+
ResolvedPlugins,
|
|
12
13
|
Route,
|
|
13
14
|
Routes,
|
|
14
15
|
Session,
|
|
@@ -36,7 +37,7 @@ export class CoreBot {
|
|
|
36
37
|
defaultTyping?: number
|
|
37
38
|
inspector: Inspector
|
|
38
39
|
locales: Locales
|
|
39
|
-
plugins?:
|
|
40
|
+
plugins?: ResolvedPlugins
|
|
40
41
|
renderer: any
|
|
41
42
|
rootElement: any
|
|
42
43
|
router: Router | null
|
|
@@ -15,52 +15,52 @@ export type CaseResolution =
|
|
|
15
15
|
| typeof CASE_RESOLUTION.NOT_SOLVED
|
|
16
16
|
| typeof CASE_RESOLUTION.OK
|
|
17
17
|
|
|
18
|
-
export
|
|
19
|
-
APPLE
|
|
20
|
-
DEV
|
|
21
|
-
FACEBOOK
|
|
22
|
-
GENERIC
|
|
23
|
-
INSTAGRAM
|
|
24
|
-
INTERCOM
|
|
25
|
-
SMOOCH
|
|
26
|
-
TELEGRAM
|
|
27
|
-
TWITTER
|
|
28
|
-
WEBCHAT
|
|
29
|
-
WECHAT
|
|
30
|
-
WHATSAPP
|
|
31
|
-
}
|
|
18
|
+
export enum PROVIDER {
|
|
19
|
+
APPLE = 'apple',
|
|
20
|
+
DEV = 'dev',
|
|
21
|
+
FACEBOOK = 'facebook',
|
|
22
|
+
GENERIC = 'generic',
|
|
23
|
+
INSTAGRAM = 'instagram',
|
|
24
|
+
INTERCOM = 'intercom',
|
|
25
|
+
SMOOCH = 'smooch',
|
|
26
|
+
TELEGRAM = 'telegram',
|
|
27
|
+
TWITTER = 'twitter',
|
|
28
|
+
WEBCHAT = 'webchat',
|
|
29
|
+
WECHAT = 'wechat',
|
|
30
|
+
WHATSAPP = 'whatsapp',
|
|
31
|
+
}
|
|
32
32
|
|
|
33
|
-
export
|
|
34
|
-
TEXT
|
|
35
|
-
POSTBACK
|
|
36
|
-
AUDIO
|
|
37
|
-
IMAGE
|
|
38
|
-
VIDEO
|
|
39
|
-
DOCUMENT
|
|
40
|
-
LOCATION
|
|
41
|
-
CONTACT
|
|
42
|
-
BUTTON_MESSAGE
|
|
43
|
-
CAROUSEL
|
|
44
|
-
CUSTOM
|
|
45
|
-
WEBCHAT_SETTINGS
|
|
46
|
-
WHATSAPP_TEMPLATE
|
|
47
|
-
RAW
|
|
48
|
-
CHAT_EVENT
|
|
49
|
-
}
|
|
33
|
+
export enum INPUT {
|
|
34
|
+
TEXT = 'text',
|
|
35
|
+
POSTBACK = 'postback',
|
|
36
|
+
AUDIO = 'audio',
|
|
37
|
+
IMAGE = 'image',
|
|
38
|
+
VIDEO = 'video',
|
|
39
|
+
DOCUMENT = 'document',
|
|
40
|
+
LOCATION = 'location',
|
|
41
|
+
CONTACT = 'contact',
|
|
42
|
+
BUTTON_MESSAGE = 'buttonmessage',
|
|
43
|
+
CAROUSEL = 'carousel',
|
|
44
|
+
CUSTOM = 'custom',
|
|
45
|
+
WEBCHAT_SETTINGS = 'webchatsettings',
|
|
46
|
+
WHATSAPP_TEMPLATE = 'whatsapptemplate',
|
|
47
|
+
RAW = 'raw',
|
|
48
|
+
CHAT_EVENT = 'chatevent',
|
|
49
|
+
}
|
|
50
50
|
|
|
51
|
-
export
|
|
52
|
-
WAITING
|
|
53
|
-
ATTENDING
|
|
54
|
-
IDLE
|
|
55
|
-
RESOLVED
|
|
56
|
-
}
|
|
51
|
+
export enum CASE_STATUS {
|
|
52
|
+
WAITING = 'status_waiting',
|
|
53
|
+
ATTENDING = 'status_attending',
|
|
54
|
+
IDLE = 'status_idle',
|
|
55
|
+
RESOLVED = 'status_resolved',
|
|
56
|
+
}
|
|
57
57
|
|
|
58
|
-
export
|
|
59
|
-
OK
|
|
60
|
-
NOK
|
|
61
|
-
NOT_SOLVED
|
|
62
|
-
BANNED
|
|
63
|
-
}
|
|
58
|
+
export enum CASE_RESOLUTION {
|
|
59
|
+
OK = 'result_ok',
|
|
60
|
+
NOK = 'result_nok',
|
|
61
|
+
NOT_SOLVED = 'result_not_solved',
|
|
62
|
+
BANNED = 'result_banned',
|
|
63
|
+
}
|
|
64
64
|
|
|
65
65
|
export interface Locales {
|
|
66
66
|
[id: string]: string | string[] | Locales
|
|
@@ -76,6 +76,13 @@ export interface PluginConfig<T> {
|
|
|
76
76
|
resolve: { default: PluginConstructor<T> }
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
+
export interface ResolvedPlugin extends Plugin {
|
|
80
|
+
id: string
|
|
81
|
+
name: string
|
|
82
|
+
config: any
|
|
83
|
+
}
|
|
84
|
+
export type ResolvedPlugins = Record<string, ResolvedPlugin>
|
|
85
|
+
|
|
79
86
|
export type InputType =
|
|
80
87
|
| typeof INPUT.AUDIO
|
|
81
88
|
| typeof INPUT.BUTTON_MESSAGE
|
|
@@ -225,15 +232,15 @@ export interface BotResponse extends BotRequest {
|
|
|
225
232
|
}
|
|
226
233
|
|
|
227
234
|
export interface PluginPreRequest extends BotRequest {
|
|
228
|
-
plugins:
|
|
235
|
+
plugins: ResolvedPlugins
|
|
229
236
|
}
|
|
230
237
|
export interface PluginPostRequest extends BotResponse {
|
|
231
|
-
plugins:
|
|
238
|
+
plugins: ResolvedPlugins
|
|
232
239
|
}
|
|
233
240
|
|
|
234
241
|
export interface Plugin {
|
|
235
|
-
post(request: PluginPostRequest): void
|
|
236
|
-
pre(request: PluginPreRequest): void
|
|
242
|
+
post?(request: PluginPostRequest): void | Promise<void>
|
|
243
|
+
pre?(request: PluginPreRequest): void | Promise<void>
|
|
237
244
|
}
|
|
238
245
|
|
|
239
246
|
export interface Params {
|
package/src/plugins.ts
CHANGED
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
import { DataProvider } from './data-provider'
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
BotonicEvent,
|
|
4
|
+
Input,
|
|
5
|
+
PluginConfig,
|
|
6
|
+
ResolvedPlugins,
|
|
7
|
+
RoutePath,
|
|
8
|
+
Session,
|
|
9
|
+
} from './models'
|
|
3
10
|
|
|
4
11
|
type PluginMode = 'pre' | 'post'
|
|
5
12
|
|
|
6
|
-
export function loadPlugins(plugins: PluginConfig<any>[]):
|
|
7
|
-
if (!plugins) return
|
|
13
|
+
export function loadPlugins(plugins: PluginConfig<any>[]): ResolvedPlugins {
|
|
14
|
+
if (!plugins) return {}
|
|
8
15
|
const _plugins = {}
|
|
9
16
|
const pluginsLength = plugins.length
|
|
10
17
|
for (let i = 0; i < pluginsLength; i++) {
|
|
@@ -22,7 +29,7 @@ export function loadPlugins(plugins: PluginConfig<any>[]): any {
|
|
|
22
29
|
}
|
|
23
30
|
|
|
24
31
|
export async function runPlugins(
|
|
25
|
-
plugins:
|
|
32
|
+
plugins: ResolvedPlugins,
|
|
26
33
|
mode: PluginMode,
|
|
27
34
|
input: Input,
|
|
28
35
|
session: Session,
|
|
@@ -34,9 +41,10 @@ export async function runPlugins(
|
|
|
34
41
|
for (const key in plugins) {
|
|
35
42
|
const p = await plugins[key]
|
|
36
43
|
try {
|
|
37
|
-
if (mode === 'pre')
|
|
44
|
+
if (mode === 'pre' && p.pre) {
|
|
38
45
|
await p.pre({ input, session, lastRoutePath, dataProvider, plugins })
|
|
39
|
-
|
|
46
|
+
}
|
|
47
|
+
if (mode === 'post' && p.post) {
|
|
40
48
|
await p.post({
|
|
41
49
|
input,
|
|
42
50
|
session,
|
|
@@ -46,6 +54,7 @@ export async function runPlugins(
|
|
|
46
54
|
dataProvider,
|
|
47
55
|
plugins,
|
|
48
56
|
})
|
|
57
|
+
}
|
|
49
58
|
} catch (e) {
|
|
50
59
|
console.log(e)
|
|
51
60
|
}
|