@botonic/core 1.0.0-alpha.0 → 1.0.0-dev.2
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/constants.d.ts +4 -0
- package/lib/cjs/constants.js +8 -0
- package/lib/cjs/constants.js.map +1 -0
- package/lib/cjs/core-bot.d.ts +36 -0
- package/lib/cjs/core-bot.js +96 -0
- package/lib/cjs/core-bot.js.map +1 -0
- package/lib/cjs/debug/index.d.ts +1 -0
- package/lib/cjs/debug/index.js +5 -0
- package/lib/cjs/debug/index.js.map +1 -0
- package/lib/cjs/debug/inspector.d.ts +24 -0
- package/lib/{debug → cjs/debug}/inspector.js +5 -3
- package/lib/cjs/debug/inspector.js.map +1 -0
- package/lib/cjs/handoff.d.ts +67 -0
- package/lib/{handoff.js → cjs/handoff.js} +25 -12
- package/lib/cjs/handoff.js.map +1 -0
- package/lib/cjs/hubtype-service.d.ts +69 -0
- package/lib/{hubtype-service.js → cjs/hubtype-service.js} +17 -14
- package/lib/cjs/hubtype-service.js.map +1 -0
- package/lib/cjs/i18n.d.ts +2 -0
- package/lib/{i18n.js → cjs/i18n.js} +0 -1
- package/lib/cjs/i18n.js.map +1 -0
- package/lib/cjs/index.d.ts +11 -0
- package/lib/cjs/index.js +15 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/cjs/models/bot-state.d.ts +11 -0
- package/lib/cjs/models/bot-state.js +3 -0
- package/lib/cjs/models/bot-state.js.map +1 -0
- package/lib/cjs/models/channels.d.ts +9 -0
- package/lib/cjs/models/channels.js +14 -0
- package/lib/cjs/models/channels.js.map +1 -0
- package/lib/cjs/models/events/base-event.d.ts +20 -0
- package/lib/{models/events/index.js → cjs/models/events/base-event.js} +7 -1
- package/lib/cjs/models/events/base-event.js.map +1 -0
- package/lib/cjs/models/events/botonic-event.d.ts +4 -0
- package/lib/cjs/models/events/botonic-event.js +3 -0
- package/lib/cjs/models/events/botonic-event.js.map +1 -0
- package/lib/{models/events/connections/index.d.ts → cjs/models/events/connection/connection-event.d.ts} +1 -1
- package/lib/{models/events/connections/index.js → cjs/models/events/connection/connection-event.js} +1 -1
- package/lib/cjs/models/events/connection/connection-event.js.map +1 -0
- package/lib/cjs/models/events/connection/index.d.ts +1 -0
- package/lib/cjs/models/events/connection/index.js +5 -0
- package/lib/cjs/models/events/connection/index.js.map +1 -0
- package/lib/cjs/models/events/index.d.ts +4 -0
- package/lib/cjs/models/events/index.js +8 -0
- package/lib/cjs/models/events/index.js.map +1 -0
- package/lib/cjs/models/events/integration/index.d.ts +1 -0
- package/lib/cjs/models/events/integration/index.js +5 -0
- package/lib/cjs/models/events/integration/index.js.map +1 -0
- package/lib/cjs/models/events/integration/integration-event.d.ts +6 -0
- package/lib/cjs/models/events/integration/integration-event.js +3 -0
- package/lib/cjs/models/events/integration/integration-event.js.map +1 -0
- package/lib/{models → cjs/models}/events/message/buttons.d.ts +0 -0
- package/lib/{models → cjs/models}/events/message/buttons.js +0 -0
- package/lib/cjs/models/events/message/buttons.js.map +1 -0
- package/lib/{models → cjs/models}/events/message/carousel.d.ts +1 -1
- package/lib/{models → cjs/models}/events/message/carousel.js +0 -0
- package/lib/cjs/models/events/message/carousel.js.map +1 -0
- package/lib/{models → cjs/models}/events/message/custom.d.ts +2 -2
- package/lib/{models → cjs/models}/events/message/custom.js +0 -0
- package/lib/cjs/models/events/message/custom.js.map +1 -0
- package/lib/cjs/models/events/message/index.d.ts +9 -0
- package/lib/cjs/models/events/message/index.js +13 -0
- package/lib/cjs/models/events/message/index.js.map +1 -0
- package/lib/{models → cjs/models}/events/message/location.d.ts +1 -1
- package/lib/{models → cjs/models}/events/message/location.js +0 -0
- package/lib/cjs/models/events/message/location.js.map +1 -0
- package/lib/{models → cjs/models}/events/message/media.d.ts +1 -1
- package/lib/cjs/models/events/message/media.js +11 -0
- package/lib/cjs/models/events/message/media.js.map +1 -0
- package/lib/{models/events/message/index.d.ts → cjs/models/events/message/message-event.d.ts} +2 -1
- package/lib/{models/events/message/index.js → cjs/models/events/message/message-event.js} +5 -1
- package/lib/cjs/models/events/message/message-event.js.map +1 -0
- package/lib/cjs/models/events/message/postback.d.ts +4 -0
- package/lib/cjs/models/events/message/postback.js +3 -0
- package/lib/cjs/models/events/message/postback.js.map +1 -0
- package/lib/{models → cjs/models}/events/message/replies.d.ts +0 -0
- package/lib/{models → cjs/models}/events/message/replies.js +0 -0
- package/lib/cjs/models/events/message/replies.js.map +1 -0
- package/lib/{models → cjs/models}/events/message/text.d.ts +1 -1
- package/lib/{models → cjs/models}/events/message/text.js +0 -0
- package/lib/cjs/models/events/message/text.js.map +1 -0
- package/lib/cjs/models/index.d.ts +6 -0
- package/lib/cjs/models/index.js +10 -0
- package/lib/cjs/models/index.js.map +1 -0
- package/lib/cjs/models/legacy-types.d.ts +184 -0
- package/lib/cjs/models/legacy-types.js +59 -0
- package/lib/cjs/models/legacy-types.js.map +1 -0
- package/lib/cjs/models/session.d.ts +3 -0
- package/lib/cjs/models/session.js +3 -0
- package/lib/cjs/models/session.js.map +1 -0
- package/lib/cjs/models/user.d.ts +14 -0
- package/lib/{models → cjs/models}/user.js +0 -0
- package/lib/{models → cjs/models}/user.js.map +1 -1
- package/lib/cjs/output-parser/botonic-output-parser.d.ts +16 -0
- package/lib/{output-parser/index.js → cjs/output-parser/botonic-output-parser.js} +8 -2
- package/lib/cjs/output-parser/botonic-output-parser.js.map +1 -0
- package/lib/{output-parser → cjs/output-parser}/factory.d.ts +1 -1
- package/lib/{output-parser → cjs/output-parser}/factory.js +9 -7
- package/lib/cjs/output-parser/factory.js.map +1 -0
- package/lib/cjs/output-parser/index.d.ts +3 -0
- package/lib/cjs/output-parser/index.js +7 -0
- package/lib/cjs/output-parser/index.js.map +1 -0
- package/lib/{output-parser → cjs/output-parser}/parsers.d.ts +4 -8
- package/lib/{output-parser → cjs/output-parser}/parsers.js +41 -26
- package/lib/cjs/output-parser/parsers.js.map +1 -0
- package/lib/cjs/plugins.d.ts +6 -0
- package/lib/{plugins.js → cjs/plugins.js} +10 -6
- package/lib/cjs/plugins.js.map +1 -0
- package/lib/cjs/routing/index.d.ts +2 -0
- package/lib/cjs/routing/index.js +6 -0
- package/lib/cjs/routing/index.js.map +1 -0
- package/lib/cjs/routing/router-utils.d.ts +11 -0
- package/lib/cjs/routing/router-utils.js +89 -0
- package/lib/cjs/routing/router-utils.js.map +1 -0
- package/lib/cjs/routing/router.d.ts +54 -0
- package/lib/cjs/routing/router.js +319 -0
- package/lib/cjs/routing/router.js.map +1 -0
- package/lib/cjs/utils.d.ts +11 -0
- package/lib/{utils.js → cjs/utils.js} +14 -5
- package/lib/cjs/utils.js.map +1 -0
- package/lib/esm/constants.d.ts +4 -0
- package/lib/esm/constants.js +5 -0
- package/lib/esm/constants.js.map +1 -0
- package/lib/esm/core-bot.d.ts +36 -0
- package/lib/esm/core-bot.js +92 -0
- package/lib/esm/core-bot.js.map +1 -0
- package/lib/esm/debug/index.d.ts +1 -0
- package/lib/esm/debug/index.js +2 -0
- package/lib/esm/debug/index.js.map +1 -0
- package/lib/esm/debug/inspector.d.ts +24 -0
- package/lib/esm/debug/inspector.js +65 -0
- package/lib/esm/debug/inspector.js.map +1 -0
- package/lib/esm/handoff.d.ts +67 -0
- package/lib/esm/handoff.js +173 -0
- package/lib/esm/handoff.js.map +1 -0
- package/lib/esm/hubtype-service.d.ts +69 -0
- package/lib/esm/hubtype-service.js +185 -0
- package/lib/esm/hubtype-service.js.map +1 -0
- package/lib/esm/i18n.d.ts +2 -0
- package/lib/esm/i18n.js +7 -0
- package/lib/esm/i18n.js.map +1 -0
- package/lib/esm/index.d.ts +11 -0
- package/lib/esm/index.js +12 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/models/bot-state.d.ts +11 -0
- package/lib/esm/models/bot-state.js +2 -0
- package/lib/esm/models/bot-state.js.map +1 -0
- package/lib/esm/models/channels.d.ts +9 -0
- package/lib/esm/models/channels.js +11 -0
- package/lib/esm/models/channels.js.map +1 -0
- package/lib/esm/models/events/base-event.d.ts +20 -0
- package/lib/esm/models/events/base-event.js +14 -0
- package/lib/esm/models/events/base-event.js.map +1 -0
- package/lib/esm/models/events/botonic-event.d.ts +4 -0
- package/lib/esm/models/events/botonic-event.js +2 -0
- package/lib/esm/models/events/botonic-event.js.map +1 -0
- package/lib/esm/models/events/connection/connection-event.d.ts +9 -0
- package/lib/esm/models/events/connection/connection-event.js +6 -0
- package/lib/esm/models/events/connection/connection-event.js.map +1 -0
- package/lib/esm/models/events/connection/index.d.ts +1 -0
- package/lib/esm/models/events/connection/index.js +2 -0
- package/lib/esm/models/events/connection/index.js.map +1 -0
- package/lib/esm/models/events/index.d.ts +4 -0
- package/lib/esm/models/events/index.js +5 -0
- package/lib/esm/models/events/index.js.map +1 -0
- package/lib/esm/models/events/integration/index.d.ts +1 -0
- package/lib/esm/models/events/integration/index.js +2 -0
- package/lib/esm/models/events/integration/index.js.map +1 -0
- package/lib/esm/models/events/integration/integration-event.d.ts +6 -0
- package/lib/esm/models/events/integration/integration-event.js +2 -0
- package/lib/esm/models/events/integration/integration-event.js.map +1 -0
- package/lib/esm/models/events/message/buttons.d.ts +18 -0
- package/lib/esm/models/events/message/buttons.js +2 -0
- package/lib/esm/models/events/message/buttons.js.map +1 -0
- package/lib/esm/models/events/message/carousel.d.ts +11 -0
- package/lib/esm/models/events/message/carousel.js +2 -0
- package/lib/esm/models/events/message/carousel.js.map +1 -0
- package/lib/esm/models/events/message/custom.d.ts +6 -0
- package/lib/esm/models/events/message/custom.js +2 -0
- package/lib/esm/models/events/message/custom.js.map +1 -0
- package/lib/esm/models/events/message/index.d.ts +9 -0
- package/lib/esm/models/events/message/index.js +10 -0
- package/lib/esm/models/events/message/index.js.map +1 -0
- package/lib/esm/models/events/message/location.d.ts +6 -0
- package/lib/esm/models/events/message/location.js +2 -0
- package/lib/esm/models/events/message/location.js.map +1 -0
- package/lib/esm/models/events/message/media.d.ts +18 -0
- package/lib/esm/models/events/message/media.js +8 -0
- package/lib/esm/models/events/message/media.js.map +1 -0
- package/lib/esm/models/events/message/message-event.d.ts +30 -0
- package/lib/esm/models/events/message/message-event.js +29 -0
- package/lib/esm/models/events/message/message-event.js.map +1 -0
- package/lib/esm/models/events/message/postback.d.ts +4 -0
- package/lib/esm/models/events/message/postback.js +2 -0
- package/lib/esm/models/events/message/postback.js.map +1 -0
- package/lib/esm/models/events/message/replies.d.ts +7 -0
- package/lib/esm/models/events/message/replies.js +2 -0
- package/lib/esm/models/events/message/replies.js.map +1 -0
- package/lib/esm/models/events/message/text.d.ts +8 -0
- package/lib/esm/models/events/message/text.js +2 -0
- package/lib/esm/models/events/message/text.js.map +1 -0
- package/lib/esm/models/index.d.ts +6 -0
- package/lib/esm/models/index.js +7 -0
- package/lib/esm/models/index.js.map +1 -0
- package/lib/esm/models/legacy-types.d.ts +184 -0
- package/lib/esm/models/legacy-types.js +56 -0
- package/lib/esm/models/legacy-types.js.map +1 -0
- package/lib/esm/models/session.d.ts +3 -0
- package/lib/esm/models/session.js +2 -0
- package/lib/esm/models/session.js.map +1 -0
- package/lib/esm/models/user.d.ts +14 -0
- package/lib/esm/models/user.js +2 -0
- package/lib/esm/models/user.js.map +1 -0
- package/lib/esm/output-parser/botonic-output-parser.d.ts +16 -0
- package/lib/esm/output-parser/botonic-output-parser.js +33 -0
- package/lib/esm/output-parser/botonic-output-parser.js.map +1 -0
- package/lib/esm/output-parser/factory.d.ts +4 -0
- package/lib/esm/output-parser/factory.js +28 -0
- package/lib/esm/output-parser/factory.js.map +1 -0
- package/lib/esm/output-parser/index.d.ts +3 -0
- package/lib/esm/output-parser/index.js +4 -0
- package/lib/esm/output-parser/index.js.map +1 -0
- package/lib/esm/output-parser/parsers.d.ts +22 -0
- package/lib/esm/output-parser/parsers.js +130 -0
- package/lib/esm/output-parser/parsers.js.map +1 -0
- package/lib/esm/plugins.d.ts +6 -0
- package/lib/esm/plugins.js +43 -0
- package/lib/esm/plugins.js.map +1 -0
- package/lib/esm/routing/index.d.ts +2 -0
- package/lib/esm/routing/index.js +3 -0
- package/lib/esm/routing/index.js.map +1 -0
- package/lib/esm/routing/router-utils.d.ts +11 -0
- package/lib/esm/routing/router-utils.js +79 -0
- package/lib/esm/routing/router-utils.js.map +1 -0
- package/lib/esm/routing/router.d.ts +54 -0
- package/lib/esm/routing/router.js +315 -0
- package/lib/esm/routing/router.js.map +1 -0
- package/lib/esm/utils.d.ts +11 -0
- package/lib/esm/utils.js +78 -0
- package/lib/esm/utils.js.map +1 -0
- package/package.json +15 -8
- package/src/constants.ts +6 -0
- package/src/core-bot.ts +181 -0
- package/src/{types/debug/index.d.ts → debug/index.ts} +0 -0
- package/src/debug/{inspector.js → inspector.ts} +39 -14
- package/src/{handoff.js → handoff.ts} +103 -26
- package/src/{hubtype-service.js → hubtype-service.ts} +77 -35
- package/src/{i18n.js → i18n.ts} +7 -1
- package/src/index.ts +11 -0
- package/src/models/bot-state.ts +12 -0
- package/src/models/channels.ts +9 -0
- package/src/models/events/base-event.ts +22 -0
- package/src/models/events/botonic-event.ts +26 -0
- package/src/models/events/{connections/index.ts → connection/connection-event.ts} +1 -1
- package/src/models/events/connection/index.ts +1 -0
- package/src/models/events/index.ts +4 -37
- package/src/models/events/integration/index.ts +1 -0
- package/src/models/events/integration/integration-event.ts +13 -0
- package/src/models/events/message/carousel.ts +1 -1
- package/src/models/events/message/custom.ts +2 -2
- package/src/models/events/message/index.ts +9 -33
- package/src/models/events/message/location.ts +1 -1
- package/src/models/events/message/media.ts +1 -1
- package/src/models/events/message/message-event.ts +37 -0
- package/src/models/events/message/postback.ts +5 -0
- package/src/models/events/message/text.ts +1 -1
- package/src/models/index.ts +6 -0
- package/src/models/legacy-types.ts +262 -0
- package/src/models/session.ts +3 -0
- package/src/models/user.ts +10 -3
- package/src/output-parser/botonic-output-parser.ts +38 -0
- package/src/output-parser/factory.ts +5 -3
- package/src/output-parser/index.ts +3 -32
- package/src/output-parser/parsers.ts +45 -18
- package/src/{plugins.js → plugins.ts} +28 -13
- package/src/routing/index.ts +2 -0
- package/src/routing/router-utils.ts +100 -0
- package/src/routing/router.ts +415 -0
- package/src/{utils.js → utils.ts} +26 -13
- package/index.d.ts +0 -1
- package/lib/constants.d.ts +0 -15
- package/lib/constants.js +0 -19
- package/lib/constants.js.map +0 -1
- package/lib/core-bot.d.ts +0 -40
- package/lib/core-bot.js +0 -80
- package/lib/core-bot.js.map +0 -1
- package/lib/debug/index.d.ts +0 -1
- package/lib/debug/index.js +0 -9
- package/lib/debug/index.js.map +0 -1
- package/lib/debug/inspector.d.ts +0 -20
- package/lib/debug/inspector.js.map +0 -1
- package/lib/debug/inspector.test.d.ts +0 -1
- package/lib/debug/inspector.test.js +0 -8
- package/lib/debug/inspector.test.js.map +0 -1
- package/lib/errors.d.ts +0 -4
- package/lib/errors.js +0 -11
- package/lib/errors.js.map +0 -1
- package/lib/handoff.d.ts +0 -34
- package/lib/handoff.js.map +0 -1
- package/lib/handoff.test.d.ts +0 -1
- package/lib/handoff.test.js +0 -62
- package/lib/handoff.test.js.map +0 -1
- package/lib/hubtype-service.d.ts +0 -58
- package/lib/hubtype-service.js.map +0 -1
- package/lib/hubtype-service.test.d.ts +0 -1
- package/lib/hubtype-service.test.js +0 -21
- package/lib/hubtype-service.test.js.map +0 -1
- package/lib/i18n.d.ts +0 -1
- package/lib/i18n.js.map +0 -1
- package/lib/index.d.ts +0 -48
- package/lib/index.js +0 -58
- package/lib/index.js.map +0 -1
- package/lib/models/events/connections/index.js.map +0 -1
- package/lib/models/events/index.d.ts +0 -20
- package/lib/models/events/index.js.map +0 -1
- package/lib/models/events/message/buttons.js.map +0 -1
- package/lib/models/events/message/carousel.js.map +0 -1
- package/lib/models/events/message/custom.js.map +0 -1
- package/lib/models/events/message/index.js.map +0 -1
- package/lib/models/events/message/location.js.map +0 -1
- package/lib/models/events/message/media.js +0 -11
- package/lib/models/events/message/media.js.map +0 -1
- package/lib/models/events/message/replies.js.map +0 -1
- package/lib/models/events/message/text.js.map +0 -1
- package/lib/models/user.d.ts +0 -9
- package/lib/output-parser/factory.js.map +0 -1
- package/lib/output-parser/index.d.ts +0 -11
- package/lib/output-parser/index.js.map +0 -1
- package/lib/output-parser/parsers.js.map +0 -1
- package/lib/output-parser/util.d.ts +0 -2
- package/lib/output-parser/util.js +0 -14
- package/lib/output-parser/util.js.map +0 -1
- package/lib/plugins.d.ts +0 -2
- package/lib/plugins.js.map +0 -1
- package/lib/router.d.ts +0 -55
- package/lib/router.js +0 -268
- package/lib/router.js.map +0 -1
- package/lib/router.test.d.ts +0 -1
- package/lib/router.test.js +0 -273
- package/lib/router.test.js.map +0 -1
- package/lib/utils.d.ts +0 -8
- package/lib/utils.js.map +0 -1
- package/src/constants.js +0 -15
- package/src/core-bot.js +0 -106
- package/src/debug/index.js +0 -6
- package/src/debug/inspector.test.js +0 -6
- package/src/errors.js +0 -8
- package/src/handoff.test.js +0 -61
- package/src/hubtype-service.test.js +0 -23
- package/src/index.js +0 -51
- package/src/output-parser/util.ts +0 -8
- package/src/router.js +0 -273
- package/src/router.test.js +0 -347
- package/src/types/constants.d.ts +0 -14
- package/src/types/core-bot.d.ts +0 -45
- package/src/types/debug/inspector.d.ts +0 -33
- package/src/types/handoff.d.ts +0 -75
- package/src/types/hubtype-service.d.ts +0 -52
- package/src/types/i18n.d.ts +0 -8
- package/src/types/index.d.ts +0 -226
- package/src/types/plugins.d.ts +0 -13
- package/src/types/router.d.ts +0 -57
- package/src/types/utils.d.ts +0 -12
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PATH_PAYLOAD_REGEXP = exports.PATH_PAYLOAD_IDENTIFIER = exports.EMPTY_ACTION_PATH = exports.NOT_FOUND_PATH = void 0;
|
|
4
|
+
exports.NOT_FOUND_PATH = '404';
|
|
5
|
+
exports.EMPTY_ACTION_PATH = '';
|
|
6
|
+
exports.PATH_PAYLOAD_IDENTIFIER = '__PATH_PAYLOAD__';
|
|
7
|
+
exports.PATH_PAYLOAD_REGEXP = new RegExp(`\\b^${exports.PATH_PAYLOAD_IDENTIFIER}(.*)\\b`);
|
|
8
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG,KAAK,CAAA;AACtB,QAAA,iBAAiB,GAAG,EAAE,CAAA;AACtB,QAAA,uBAAuB,GAAG,kBAAkB,CAAA;AAC5C,QAAA,mBAAmB,GAAG,IAAI,MAAM,CAC3C,OAAO,+BAAuB,SAAS,CACxC,CAAA"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Inspector } from './debug';
|
|
2
|
+
import { BotRequest, BotResponse, BotState, Locales, Route, Routes } from './models';
|
|
3
|
+
import { BotonicOutputParser } from './output-parser';
|
|
4
|
+
import { Router } from './routing';
|
|
5
|
+
interface CoreBotConfig {
|
|
6
|
+
appId?: string;
|
|
7
|
+
defaultDelay?: number;
|
|
8
|
+
defaultRoutes?: Route[];
|
|
9
|
+
defaultTyping?: number;
|
|
10
|
+
inspector?: Inspector;
|
|
11
|
+
locales: Locales;
|
|
12
|
+
plugins?: any;
|
|
13
|
+
renderer: any;
|
|
14
|
+
routes: Routes;
|
|
15
|
+
theme?: any;
|
|
16
|
+
}
|
|
17
|
+
export declare class CoreBot {
|
|
18
|
+
appId?: string;
|
|
19
|
+
defaultDelay?: number;
|
|
20
|
+
defaultRoutes: Route[];
|
|
21
|
+
defaultTyping?: number;
|
|
22
|
+
inspector: Inspector;
|
|
23
|
+
locales: Locales;
|
|
24
|
+
plugins?: Record<string, Plugin>;
|
|
25
|
+
renderer: any;
|
|
26
|
+
rootElement: any;
|
|
27
|
+
router: Router | null;
|
|
28
|
+
routes: Routes;
|
|
29
|
+
theme?: any;
|
|
30
|
+
botonicOutputParser: BotonicOutputParser;
|
|
31
|
+
constructor({ renderer, routes, locales, theme, plugins, appId, defaultTyping, defaultDelay, defaultRoutes, inspector, }: CoreBotConfig);
|
|
32
|
+
getString(id: string, botState: BotState): string;
|
|
33
|
+
setLocale(locale: string, botState: BotState): void;
|
|
34
|
+
input({ input, session, botState, dataProvider, }: BotRequest): Promise<BotResponse>;
|
|
35
|
+
}
|
|
36
|
+
export {};
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CoreBot = void 0;
|
|
4
|
+
const debug_1 = require("./debug");
|
|
5
|
+
const i18n_1 = require("./i18n");
|
|
6
|
+
const output_parser_1 = require("./output-parser");
|
|
7
|
+
const plugins_1 = require("./plugins");
|
|
8
|
+
const routing_1 = require("./routing");
|
|
9
|
+
class CoreBot {
|
|
10
|
+
constructor({
|
|
11
|
+
// TODO: Receives dataProvider
|
|
12
|
+
renderer, routes, locales, theme, plugins, appId, defaultTyping, defaultDelay, defaultRoutes, inspector, }) {
|
|
13
|
+
this.botonicOutputParser = new output_parser_1.BotonicOutputParser();
|
|
14
|
+
this.renderer = renderer;
|
|
15
|
+
this.plugins = plugins_1.loadPlugins(plugins);
|
|
16
|
+
this.theme = theme || {};
|
|
17
|
+
this.defaultTyping =
|
|
18
|
+
typeof defaultTyping !== 'undefined' ? defaultTyping : 0.6;
|
|
19
|
+
this.defaultDelay = typeof defaultDelay !== 'undefined' ? defaultDelay : 0.4;
|
|
20
|
+
this.locales = locales;
|
|
21
|
+
if (appId) {
|
|
22
|
+
this.appId = appId;
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
this.rootElement = null;
|
|
26
|
+
this.inspector = inspector || new debug_1.Inspector();
|
|
27
|
+
this.routes = routes;
|
|
28
|
+
this.defaultRoutes = defaultRoutes || [];
|
|
29
|
+
this.router =
|
|
30
|
+
this.routes instanceof Function
|
|
31
|
+
? null
|
|
32
|
+
: new routing_1.Router([...this.routes, ...this.defaultRoutes], this.inspector.routeInspector);
|
|
33
|
+
}
|
|
34
|
+
getString(id, botState) {
|
|
35
|
+
if (!botState.locale) {
|
|
36
|
+
console.error('Locale is not defined');
|
|
37
|
+
return '';
|
|
38
|
+
}
|
|
39
|
+
return i18n_1.getString(this.locales, botState.locale, id);
|
|
40
|
+
}
|
|
41
|
+
setLocale(locale, botState) {
|
|
42
|
+
botState.locale = locale;
|
|
43
|
+
}
|
|
44
|
+
async input({ input, session, botState, dataProvider, }) {
|
|
45
|
+
if (!(botState === null || botState === void 0 ? void 0 : botState.locale))
|
|
46
|
+
botState.locale = 'en';
|
|
47
|
+
if (this.plugins) {
|
|
48
|
+
await plugins_1.runPlugins(this.plugins, 'pre', input, session, botState, undefined, undefined, dataProvider);
|
|
49
|
+
}
|
|
50
|
+
if (this.routes instanceof Function) {
|
|
51
|
+
this.router = new routing_1.Router([
|
|
52
|
+
...(await routing_1.getComputedRoutes(this.routes, {
|
|
53
|
+
input,
|
|
54
|
+
session,
|
|
55
|
+
botState,
|
|
56
|
+
})),
|
|
57
|
+
...this.defaultRoutes,
|
|
58
|
+
], this.inspector.routeInspector);
|
|
59
|
+
}
|
|
60
|
+
const output = this.router.processInput(input, session, botState);
|
|
61
|
+
const request = {
|
|
62
|
+
getString: stringId => this.getString(stringId, botState),
|
|
63
|
+
setLocale: locale => this.setLocale(locale, botState),
|
|
64
|
+
session: session || {},
|
|
65
|
+
params: output.params || {},
|
|
66
|
+
input: input,
|
|
67
|
+
plugins: this.plugins,
|
|
68
|
+
defaultTyping: this.defaultTyping,
|
|
69
|
+
defaultDelay: this.defaultDelay,
|
|
70
|
+
botState,
|
|
71
|
+
dataProvider,
|
|
72
|
+
};
|
|
73
|
+
const response = await this.renderer({
|
|
74
|
+
request,
|
|
75
|
+
actions: [output.fallbackAction, output.action, output.emptyAction],
|
|
76
|
+
});
|
|
77
|
+
const messageEvents = this.botonicOutputParser.xmlToMessageEvents(response);
|
|
78
|
+
botState.lastRoutePath = output.botState.lastRoutePath; // not needed if updated below
|
|
79
|
+
if (this.plugins) {
|
|
80
|
+
await plugins_1.runPlugins(this.plugins, 'post', input, session, // passing output.session instead
|
|
81
|
+
botState, // passing output.botState instead
|
|
82
|
+
response, messageEvents, dataProvider);
|
|
83
|
+
}
|
|
84
|
+
botState.isFirstInteraction = false;
|
|
85
|
+
return {
|
|
86
|
+
input,
|
|
87
|
+
response,
|
|
88
|
+
messageEvents,
|
|
89
|
+
session,
|
|
90
|
+
botState,
|
|
91
|
+
dataProvider, // no need to return it
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
exports.CoreBot = CoreBot;
|
|
96
|
+
//# sourceMappingURL=core-bot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core-bot.js","sourceRoot":"","sources":["../../src/core-bot.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './inspector';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/debug/index.ts"],"names":[],"mappings":";;;AAAA,sDAA2B"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Route, RouteMatcher } from '../models';
|
|
2
|
+
export declare class RouteInspector {
|
|
3
|
+
routeMatched(_route: Route, _routeKey: string, _routeValue: RouteMatcher, _input: any): void;
|
|
4
|
+
routeNotMatched(_route: Route, _routeKey: string, _routeValue: RouteMatcher, _input: any): void;
|
|
5
|
+
}
|
|
6
|
+
export declare class FocusRouteInspector extends RouteInspector {
|
|
7
|
+
focusRoutePaths: string[] | null;
|
|
8
|
+
focusOnMatches: boolean;
|
|
9
|
+
constructor();
|
|
10
|
+
focusOnlyOnRoutes(focusRoutePaths: string[]): this;
|
|
11
|
+
focusOnlyOnMatches(): this;
|
|
12
|
+
_isOnFocus(route: Route): boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare class LogRouteInspector extends FocusRouteInspector {
|
|
15
|
+
routeMatched(route: Route, routeKey: string, routeValue: RouteMatcher, inputValue: string): void;
|
|
16
|
+
routeNotMatched(route: Route, routeKey: string, routeValue: RouteMatcher, inputValue: string): void;
|
|
17
|
+
_routeName(obj: Route): string;
|
|
18
|
+
_log(message: string, ...optionalParams: string[]): void;
|
|
19
|
+
}
|
|
20
|
+
export declare class Inspector {
|
|
21
|
+
routeInspector: RouteInspector;
|
|
22
|
+
constructor(routeInspector?: RouteInspector | undefined);
|
|
23
|
+
getRouteInspector(): RouteInspector;
|
|
24
|
+
}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Inspector = exports.LogRouteInspector = exports.FocusRouteInspector = exports.RouteInspector = void 0;
|
|
4
4
|
class RouteInspector {
|
|
5
|
-
routeMatched(
|
|
6
|
-
routeNotMatched(
|
|
5
|
+
routeMatched(_route, _routeKey, _routeValue, _input) { }
|
|
6
|
+
routeNotMatched(_route, _routeKey, _routeValue, _input) { }
|
|
7
7
|
}
|
|
8
8
|
exports.RouteInspector = RouteInspector;
|
|
9
9
|
class FocusRouteInspector extends RouteInspector {
|
|
@@ -21,9 +21,10 @@ class FocusRouteInspector extends RouteInspector {
|
|
|
21
21
|
return this;
|
|
22
22
|
}
|
|
23
23
|
_isOnFocus(route) {
|
|
24
|
-
if (this.focusRoutePaths
|
|
24
|
+
if (this.focusRoutePaths === null) {
|
|
25
25
|
return true;
|
|
26
26
|
}
|
|
27
|
+
// @ts-ignore
|
|
27
28
|
return this.focusRoutePaths.includes(route.path);
|
|
28
29
|
}
|
|
29
30
|
}
|
|
@@ -36,6 +37,7 @@ class LogRouteInspector extends FocusRouteInspector {
|
|
|
36
37
|
this._log(`Route ${this._routeName(route)} selected ` +
|
|
37
38
|
`because Input.${routeKey} (${inputValue}) matched '${routeValue}'`);
|
|
38
39
|
}
|
|
40
|
+
// @ts-ignore
|
|
39
41
|
routeNotMatched(route, routeKey, routeValue, inputValue) {
|
|
40
42
|
if (!this._isOnFocus(route) || this.focusOnMatches) {
|
|
41
43
|
return;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inspector.js","sourceRoot":"","sources":["../../../src/debug/inspector.ts"],"names":[],"mappings":";;;AACA,MAAa,cAAc;IACzB,YAAY,CACV,MAAa,EACb,SAAiB,EACjB,WAAyB,EACzB,MAAW,IACJ,CAAC;IACV,eAAe,CACb,MAAa,EACb,SAAiB,EACjB,WAAyB,EACzB,MAAW,IACJ,CAAC;CACX;AAbD,wCAaC;AAED,MAAa,mBAAoB,SAAQ,cAAc;IAGrD;QACE,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;QAC3B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAA;IAC7B,CAAC;IAED,iBAAiB,CAAC,eAAyB;QACzC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;QACtC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAA;QAC1B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,UAAU,CAAC,KAAY;QACrB,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE;YACjC,OAAO,IAAI,CAAA;SACZ;QACD,aAAa;QACb,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAClD,CAAC;CACF;AA1BD,kDA0BC;AAED,MAAa,iBAAkB,SAAQ,mBAAmB;IACxD,YAAY,CACV,KAAY,EACZ,QAAgB,EAChB,UAAwB,EACxB,UAAkB;QAElB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;YAC3B,OAAM;SACP;QACD,IAAI,CAAC,IAAI,CACP,SAAS,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY;YACzC,iBAAiB,QAAQ,KAAK,UAAU,cAAc,UAAU,GAAG,CACtE,CAAA;IACH,CAAC;IAED,aAAa;IACb,eAAe,CACb,KAAY,EACZ,QAAgB,EAChB,UAAwB,EACxB,UAAkB;QAElB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE;YAClD,OAAM;SACP;QACD,IAAI,CAAC,IAAI,CACP,SAAS,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,gBAAgB;YAC7C,iBAAiB,QAAQ,KAAK,UAAU,oBAAoB,UAAU,GAAG,CAC5E,CAAA;IACH,CAAC;IAED,UAAU,CAAC,GAAU;QACnB,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,qBAAqB,CAAA;QAC5C,IAAI,GAAG,CAAC,MAAM,EAAE;YACd,IAAI,GAAG,IAAI,IAAI,iBAAiB,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAA;SACpD;QACD,IAAI,GAAG,CAAC,QAAQ,EAAE;YAChB,IAAI,GAAG,IAAI,IAAI,wBAAwB,GAAG,CAAC,QAAQ,IAAI,CAAA;SACxD;QACD,OAAO,IAAc,CAAA;IACvB,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,GAAG,cAAwB;QAC/C,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,CAAA;IACzC,CAAC;CACF;AA9CD,8CA8CC;AAED,MAAa,SAAS;IAEpB,YAAY,iBAA6C,SAAS;QAChE,IAAI,CAAC,cAAc,GAAG,cAAc,IAAI,IAAI,cAAc,EAAE,CAAA;IAC9D,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,CAAA;IAC5B,CAAC;CACF;AATD,8BASC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { BotState, Session } from './models';
|
|
2
|
+
export interface HubtypeAgentsInfo {
|
|
3
|
+
attending_count: number;
|
|
4
|
+
email: string;
|
|
5
|
+
idle_count: number;
|
|
6
|
+
last_message_sent: string;
|
|
7
|
+
status: string;
|
|
8
|
+
}
|
|
9
|
+
export interface HubtypeSession extends Session {
|
|
10
|
+
_hubtype_api?: string;
|
|
11
|
+
_access_token: string;
|
|
12
|
+
}
|
|
13
|
+
export interface SessionWithBotonicAction extends Session {
|
|
14
|
+
_botonic_action: string;
|
|
15
|
+
}
|
|
16
|
+
export interface BackendContext {
|
|
17
|
+
timeoutMs: number;
|
|
18
|
+
}
|
|
19
|
+
export interface VacationRange {
|
|
20
|
+
end_date: number;
|
|
21
|
+
id: number;
|
|
22
|
+
start_date: number;
|
|
23
|
+
}
|
|
24
|
+
export declare function getOpenQueues(session: HubtypeSession, context?: {}): Promise<{
|
|
25
|
+
queues: string[];
|
|
26
|
+
}>;
|
|
27
|
+
export declare class HandOffBuilder {
|
|
28
|
+
_botState: any;
|
|
29
|
+
_queue: string;
|
|
30
|
+
_onFinish: string;
|
|
31
|
+
_email: string;
|
|
32
|
+
_agentId: string;
|
|
33
|
+
_note: string;
|
|
34
|
+
_caseInfo: string;
|
|
35
|
+
_shadowing: boolean;
|
|
36
|
+
constructor(botState: any);
|
|
37
|
+
withQueue(queueNameOrId: string): this;
|
|
38
|
+
withOnFinishPayload(payload: string): this;
|
|
39
|
+
withOnFinishPath(path: string): this;
|
|
40
|
+
withAgentEmail(email: string): this;
|
|
41
|
+
withAgentId(agentId: string): this;
|
|
42
|
+
withNote(note: string): this;
|
|
43
|
+
withCaseInfo(caseInfo: string): this;
|
|
44
|
+
withShadowing(shadowing?: boolean): this;
|
|
45
|
+
handOff(): Promise<void>;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* @deprecated use {@link HandOffBuilder} class instead
|
|
49
|
+
*/
|
|
50
|
+
export declare function humanHandOff(session: any, queueNameOrId: string | undefined, onFinish: any): Promise<void>;
|
|
51
|
+
export declare function storeCaseRating(session: HubtypeSession, rating: number, context?: any): Promise<{
|
|
52
|
+
status: string;
|
|
53
|
+
}>;
|
|
54
|
+
export declare function getAvailableAgentsByQueue(session: HubtypeSession, queueId: string): Promise<{
|
|
55
|
+
agents: string[];
|
|
56
|
+
}>;
|
|
57
|
+
export declare function getAvailableAgents(session: HubtypeSession): Promise<{
|
|
58
|
+
agents: HubtypeAgentsInfo[];
|
|
59
|
+
}>;
|
|
60
|
+
export declare function getAgentVacationRanges(session: HubtypeSession, { agentId, agentEmail }: {
|
|
61
|
+
agentId?: string;
|
|
62
|
+
agentEmail?: string;
|
|
63
|
+
}): Promise<{
|
|
64
|
+
vacation_ranges: VacationRange[];
|
|
65
|
+
}>;
|
|
66
|
+
export declare function cancelHandoff(botState: BotState, typification?: string | null): void;
|
|
67
|
+
export declare function deleteUser(botState: BotState): void;
|
|
@@ -3,10 +3,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.deleteUser = exports.cancelHandoff = exports.getAgentVacationRanges = exports.getAvailableAgents = exports.getAvailableAgentsByQueue = exports.storeCaseRating = exports.humanHandOff = exports.HandOffBuilder = exports.getOpenQueues = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const axios_1 = tslib_1.__importDefault(require("axios"));
|
|
6
|
+
const constants_1 = require("./constants");
|
|
6
7
|
const HUBTYPE_API_URL = 'https://api.hubtype.com';
|
|
7
|
-
|
|
8
|
+
function contextDefaults(context) {
|
|
9
|
+
return {
|
|
10
|
+
timeoutMs: context.timeoutMs || 10000,
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
async function getOpenQueues(session, context = {}) {
|
|
14
|
+
//be aware of https://github.com/axios/axios/issues/1543
|
|
8
15
|
const baseUrl = session._hubtype_api || HUBTYPE_API_URL;
|
|
9
16
|
const endpointUrl = `${baseUrl}/v1/queues/get_open_queues/`;
|
|
17
|
+
context = contextDefaults(context);
|
|
10
18
|
const resp = await axios_1.default({
|
|
11
19
|
headers: {
|
|
12
20
|
Authorization: `Bearer ${session._access_token}`,
|
|
@@ -14,13 +22,14 @@ async function getOpenQueues(session) {
|
|
|
14
22
|
method: 'post',
|
|
15
23
|
url: endpointUrl,
|
|
16
24
|
data: { bot_id: session.bot.id },
|
|
25
|
+
timeout: context.timeoutMs,
|
|
17
26
|
});
|
|
18
27
|
return resp.data;
|
|
19
28
|
}
|
|
20
29
|
exports.getOpenQueues = getOpenQueues;
|
|
21
30
|
class HandOffBuilder {
|
|
22
|
-
constructor(
|
|
23
|
-
this.
|
|
31
|
+
constructor(botState) {
|
|
32
|
+
this._botState = botState;
|
|
24
33
|
}
|
|
25
34
|
withQueue(queueNameOrId) {
|
|
26
35
|
this._queue = queueNameOrId;
|
|
@@ -31,7 +40,7 @@ class HandOffBuilder {
|
|
|
31
40
|
return this;
|
|
32
41
|
}
|
|
33
42
|
withOnFinishPath(path) {
|
|
34
|
-
this._onFinish =
|
|
43
|
+
this._onFinish = `${constants_1.PATH_PAYLOAD_IDENTIFIER}${path}`;
|
|
35
44
|
return this;
|
|
36
45
|
}
|
|
37
46
|
withAgentEmail(email) {
|
|
@@ -55,7 +64,7 @@ class HandOffBuilder {
|
|
|
55
64
|
return this;
|
|
56
65
|
}
|
|
57
66
|
async handOff() {
|
|
58
|
-
return _humanHandOff(this.
|
|
67
|
+
return _humanHandOff(this._botState, this._queue, this._onFinish, this._email, this._agentId, this._caseInfo, this._note, this._shadowing);
|
|
59
68
|
}
|
|
60
69
|
}
|
|
61
70
|
exports.HandOffBuilder = HandOffBuilder;
|
|
@@ -81,7 +90,7 @@ async function humanHandOff(session, queueNameOrId = '', onFinish) {
|
|
|
81
90
|
return builder.handOff();
|
|
82
91
|
}
|
|
83
92
|
exports.humanHandOff = humanHandOff;
|
|
84
|
-
async function _humanHandOff(
|
|
93
|
+
async function _humanHandOff(botState, queueNameOrId = '', onFinish, agentEmail = '', agentId = '', caseInfo = '', note = '', shadowing = false) {
|
|
85
94
|
const params = {};
|
|
86
95
|
if (queueNameOrId) {
|
|
87
96
|
params.queue = queueNameOrId;
|
|
@@ -104,11 +113,13 @@ async function _humanHandOff(session, queueNameOrId = '', onFinish, agentEmail =
|
|
|
104
113
|
if (onFinish) {
|
|
105
114
|
params.on_finish = onFinish;
|
|
106
115
|
}
|
|
107
|
-
|
|
116
|
+
botState.botonicAction = `create_case:${JSON.stringify(params)}`;
|
|
117
|
+
botState.isHandoff = true;
|
|
108
118
|
}
|
|
109
|
-
async function storeCaseRating(session, rating) {
|
|
119
|
+
async function storeCaseRating(session, rating, context = {}) {
|
|
110
120
|
const baseUrl = session._hubtype_api || HUBTYPE_API_URL;
|
|
111
121
|
const chatId = session.user.id;
|
|
122
|
+
context = contextDefaults(context);
|
|
112
123
|
const resp = await axios_1.default({
|
|
113
124
|
headers: {
|
|
114
125
|
Authorization: `Bearer ${session._access_token}`,
|
|
@@ -116,6 +127,7 @@ async function storeCaseRating(session, rating) {
|
|
|
116
127
|
method: 'post',
|
|
117
128
|
url: `${baseUrl}/v1/chats/${chatId}/store_case_rating/`,
|
|
118
129
|
data: { chat_id: chatId, rating },
|
|
130
|
+
timeout: context.timeoutMs,
|
|
119
131
|
});
|
|
120
132
|
return resp.data;
|
|
121
133
|
}
|
|
@@ -159,15 +171,16 @@ async function getAgentVacationRanges(session, { agentId, agentEmail }) {
|
|
|
159
171
|
return resp.data;
|
|
160
172
|
}
|
|
161
173
|
exports.getAgentVacationRanges = getAgentVacationRanges;
|
|
162
|
-
function cancelHandoff(
|
|
174
|
+
function cancelHandoff(botState, typification = null) {
|
|
163
175
|
let action = 'discard_case';
|
|
164
176
|
if (typification)
|
|
165
177
|
action = `${action}:${JSON.stringify({ typification })}`;
|
|
166
|
-
|
|
178
|
+
botState.botonicAction = action;
|
|
179
|
+
botState.isHandoff = false; // TODO: Review handoff functionalities
|
|
167
180
|
}
|
|
168
181
|
exports.cancelHandoff = cancelHandoff;
|
|
169
|
-
function deleteUser(
|
|
170
|
-
|
|
182
|
+
function deleteUser(botState) {
|
|
183
|
+
botState.botonicAction = `delete_user`;
|
|
171
184
|
}
|
|
172
185
|
exports.deleteUser = deleteUser;
|
|
173
186
|
//# sourceMappingURL=handoff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handoff.js","sourceRoot":"","sources":["../../src/handoff.ts"],"names":[],"mappings":";;;;AAAA,0DAAyB;AAEzB,2CAAqD;AAGrD,MAAM,eAAe,GAAG,yBAAyB,CAAA;AA2BjD,SAAS,eAAe,CAAC,OAAY;IACnC,OAAO;QACL,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,KAAK;KACtC,CAAA;AACH,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,OAAuB,EACvB,OAAO,GAAG,EAAE;IAEZ,wDAAwD;IACxD,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,IAAI,eAAe,CAAA;IACvD,MAAM,WAAW,GAAG,GAAG,OAAO,6BAA6B,CAAA;IAC3D,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;IAClC,MAAM,IAAI,GAAG,MAAM,eAAK,CAAC;QACvB,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,OAAO,CAAC,aAAa,EAAE;SACjD;QACD,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,WAAW;QAChB,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE;QAChC,OAAO,EAAG,OAA0B,CAAC,SAAS;KAC/C,CAAC,CAAA;IACF,OAAO,IAAI,CAAC,IAAI,CAAA;AAClB,CAAC;AAlBD,sCAkBC;AAED,MAAa,cAAc;IAUzB,YAAY,QAAa;QACvB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;IAC3B,CAAC;IAED,SAAS,CAAC,aAAqB;QAC7B,IAAI,CAAC,MAAM,GAAG,aAAa,CAAA;QAC3B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,mBAAmB,CAAC,OAAe;QACjC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAA;QACxB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,gBAAgB,CAAC,IAAY;QAC3B,IAAI,CAAC,SAAS,GAAG,GAAG,mCAAuB,GAAG,IAAI,EAAE,CAAA;QACpD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,cAAc,CAAC,KAAa;QAC1B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,WAAW,CAAC,OAAe;QACzB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;QACvB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,QAAQ,CAAC,IAAY;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,YAAY,CAAC,QAAgB;QAC3B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;QACzB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,aAAa,CAAC,SAAS,GAAG,IAAI;QAC5B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;QAC3B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,OAAO;QACX,OAAO,aAAa,CAClB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,UAAU,CAChB,CAAA;IACH,CAAC;CACF;AAlED,wCAkEC;AAED;;GAEG;AACI,KAAK,UAAU,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,EAAE,EAAE,QAAQ;IACtE,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,CAAA;IAC3C,IAAI,aAAa,EAAE;QACjB,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;KACjC;IACD,IAAI,QAAQ,EAAE;QACZ,IAAI,QAAQ,CAAC,IAAI,EAAE;YACjB,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;SACxC;aAAM,IAAI,QAAQ,CAAC,OAAO,EAAE;YAC3B,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;SAC9C;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;SAC3D;KACF;IACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;AAC1B,CAAC;AAfD,oCAeC;AAWD,KAAK,UAAU,aAAa,CAC1B,QAAa,EACb,aAAa,GAAG,EAAE,EAClB,QAAgB,EAChB,UAAU,GAAG,EAAE,EACf,OAAO,GAAG,EAAE,EACZ,QAAQ,GAAG,EAAE,EACb,IAAI,GAAG,EAAE,EACT,SAAS,GAAG,KAAK;IAEjB,MAAM,MAAM,GAAyB,EAAE,CAAA;IACvC,IAAI,aAAa,EAAE;QACjB,MAAM,CAAC,KAAK,GAAG,aAAa,CAAA;KAC7B;IACD,IAAI,UAAU,EAAE;QACd,MAAM,CAAC,WAAW,GAAG,UAAU,CAAA;KAChC;IACD,IAAI,OAAO,EAAE;QACX,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAA;KAC1B;IACD,IAAI,QAAQ,EAAE;QACZ,MAAM,CAAC,SAAS,GAAG,QAAQ,CAAA;KAC5B;IACD,IAAI,IAAI,EAAE;QACR,MAAM,CAAC,IAAI,GAAG,IAAI,CAAA;KACnB;IACD,IAAI,SAAS,EAAE;QACb,MAAM,CAAC,SAAS,GAAG,SAAS,CAAA;KAC7B;IACD,IAAI,QAAQ,EAAE;QACZ,MAAM,CAAC,SAAS,GAAG,QAAQ,CAAA;KAC5B;IACD,QAAQ,CAAC,aAAa,GAAG,eAAe,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAA;IAChE,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAA;AAC3B,CAAC;AAEM,KAAK,UAAU,eAAe,CACnC,OAAuB,EACvB,MAAc,EACd,UAAe,EAAE;IAEjB,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,IAAI,eAAe,CAAA;IACvD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAA;IAC9B,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;IAClC,MAAM,IAAI,GAAG,MAAM,eAAK,CAAC;QACvB,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,OAAO,CAAC,aAAa,EAAE;SACjD;QACD,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,GAAG,OAAO,aAAa,MAAM,qBAAqB;QACvD,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE;QACjC,OAAO,EAAG,OAA0B,CAAC,SAAS;KAC/C,CAAC,CAAA;IACF,OAAO,IAAI,CAAC,IAAI,CAAA;AAClB,CAAC;AAlBD,0CAkBC;AAEM,KAAK,UAAU,yBAAyB,CAC7C,OAAuB,EACvB,OAAe;IAEf,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,IAAI,eAAe,CAAA;IACvD,MAAM,IAAI,GAAG,MAAM,eAAK,CAAC;QACvB,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,OAAO,CAAC,aAAa,EAAE;SACjD;QACD,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,GAAG,OAAO,cAAc,OAAO,wBAAwB;KAC7D,CAAC,CAAA;IACF,OAAO,IAAI,CAAC,IAAI,CAAA;AAClB,CAAC;AAbD,8DAaC;AAEM,KAAK,UAAU,kBAAkB,CACtC,OAAuB;IAEvB,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,IAAI,eAAe,CAAA;IACvD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAA;IAC5B,MAAM,IAAI,GAAG,MAAM,eAAK,CAAC;QACvB,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,OAAO,CAAC,aAAa,EAAE;SACjD;QACD,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,GAAG,OAAO,YAAY,KAAK,cAAc;KAC/C,CAAC,CAAA;IACF,OAAO,IAAI,CAAC,IAAI,CAAA;AAClB,CAAC;AAbD,gDAaC;AAEM,KAAK,UAAU,sBAAsB,CAC1C,OAAuB,EACvB,EAAE,OAAO,EAAE,UAAU,EAA6C;IAElE,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,IAAI,eAAe,CAAA;IACvD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAA;IAC5B,MAAM,IAAI,GAAG,MAAM,eAAK,CAAC;QACvB,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,OAAO,CAAC,aAAa,EAAE;SACjD;QACD,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,GAAG,OAAO,YAAY,KAAK,6BAA6B;QAC7D,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE;KACvD,CAAC,CAAA;IACF,OAAO,IAAI,CAAC,IAAI,CAAA;AAClB,CAAC;AAfD,wDAeC;AAED,SAAgB,aAAa,CAC3B,QAAkB,EAClB,eAA8B,IAAI;IAElC,IAAI,MAAM,GAAG,cAAc,CAAA;IAC3B,IAAI,YAAY;QAAE,MAAM,GAAG,GAAG,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAA;IAC1E,QAAQ,CAAC,aAAa,GAAG,MAAM,CAAA;IAC/B,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAA,CAAC,uCAAuC;AACpE,CAAC;AARD,sCAQC;AAED,SAAgB,UAAU,CAAC,QAAkB;IAC3C,QAAQ,CAAC,aAAa,GAAG,aAAa,CAAA;AACxC,CAAC;AAFD,gCAEC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { AxiosResponse } from 'axios';
|
|
2
|
+
import Pusher, { Channel } from 'pusher-js';
|
|
3
|
+
import { Input } from './models';
|
|
4
|
+
interface UnsentInput {
|
|
5
|
+
id: string;
|
|
6
|
+
ack: number;
|
|
7
|
+
unsentInput: Input;
|
|
8
|
+
}
|
|
9
|
+
interface BotonicHeaders {
|
|
10
|
+
'X-BOTONIC-USER-ID': string;
|
|
11
|
+
'X-BOTONIC-LAST-MESSAGE-ID': string;
|
|
12
|
+
'X-BOTONIC-LAST-MESSAGE-UPDATE-DATE': string;
|
|
13
|
+
}
|
|
14
|
+
interface ServerConfig {
|
|
15
|
+
activityTimeout?: number;
|
|
16
|
+
pongTimeout?: number;
|
|
17
|
+
}
|
|
18
|
+
interface HubtypeServiceArgs {
|
|
19
|
+
appId: string;
|
|
20
|
+
user: any;
|
|
21
|
+
lastMessageId: string;
|
|
22
|
+
lastMessageUpdateDate: string;
|
|
23
|
+
onEvent: any;
|
|
24
|
+
unsentInputs: () => UnsentInput[];
|
|
25
|
+
server: ServerConfig;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Calls Hubtype APIs from Webchat
|
|
29
|
+
*/
|
|
30
|
+
export declare class HubtypeService {
|
|
31
|
+
appId: string;
|
|
32
|
+
user: any;
|
|
33
|
+
lastMessageId: string;
|
|
34
|
+
lastMessageUpdateDate: string;
|
|
35
|
+
onEvent: any;
|
|
36
|
+
unsentInputs: () => UnsentInput[];
|
|
37
|
+
pusher: Pusher | null;
|
|
38
|
+
channel: Channel;
|
|
39
|
+
server: ServerConfig;
|
|
40
|
+
PUSHER_CONNECT_TIMEOUT_MS: number;
|
|
41
|
+
constructor({ appId, user, lastMessageId, lastMessageUpdateDate, onEvent, unsentInputs, server, }: HubtypeServiceArgs);
|
|
42
|
+
/**
|
|
43
|
+
* @returns {Promise<void>}
|
|
44
|
+
*/
|
|
45
|
+
init(user: any, lastMessageId: any, lastMessageUpdateDate: any): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* @returns {Promise<void>}
|
|
48
|
+
*/
|
|
49
|
+
_initPusher(): Promise<void>;
|
|
50
|
+
constructHeaders(): BotonicHeaders;
|
|
51
|
+
resolveServerConfig(): ServerConfig;
|
|
52
|
+
updateAuthHeaders(): void;
|
|
53
|
+
handleConnectionChange(online: boolean): void;
|
|
54
|
+
onPusherEvent(event: any): void;
|
|
55
|
+
get pusherChannel(): string;
|
|
56
|
+
handleSentInput(message: any): void;
|
|
57
|
+
handleUnsentInput(message: any): void;
|
|
58
|
+
/**
|
|
59
|
+
* @return {Promise<void>}
|
|
60
|
+
*/
|
|
61
|
+
postMessage(user: any, message: any): Promise<void>;
|
|
62
|
+
static getWebchatVisibility({ appId, }: {
|
|
63
|
+
appId: string;
|
|
64
|
+
}): Promise<AxiosResponse<any>>;
|
|
65
|
+
destroyPusher(): void;
|
|
66
|
+
onConnectionRegained(): Promise<void>;
|
|
67
|
+
resendUnsentInputs(): Promise<void>;
|
|
68
|
+
}
|
|
69
|
+
export {};
|
|
@@ -6,10 +6,10 @@ const axios_1 = tslib_1.__importDefault(require("axios"));
|
|
|
6
6
|
const pusher_js_1 = tslib_1.__importDefault(require("pusher-js"));
|
|
7
7
|
const utils_1 = require("./utils");
|
|
8
8
|
const _WEBCHAT_PUSHER_KEY_ = utils_1.getWebpackEnvVar(
|
|
9
|
-
//
|
|
9
|
+
// @ts-ignore
|
|
10
10
|
typeof WEBCHAT_PUSHER_KEY !== 'undefined' && WEBCHAT_PUSHER_KEY, 'WEBCHAT_PUSHER_KEY', '434ca667c8e6cb3f641c');
|
|
11
11
|
const _HUBTYPE_API_URL_ = utils_1.getWebpackEnvVar(
|
|
12
|
-
//
|
|
12
|
+
// @ts-ignore
|
|
13
13
|
typeof HUBTYPE_API_URL !== 'undefined' && HUBTYPE_API_URL, 'HUBTYPE_API_URL', 'https://api.hubtype.com');
|
|
14
14
|
const ACTIVITY_TIMEOUT = 20 * 1000; // https://pusher.com/docs/channels/using_channels/connection#activitytimeout-integer-
|
|
15
15
|
const PONG_TIMEOUT = 5 * 1000; // https://pusher.com/docs/channels/using_channels/connection#pongtimeout-integer-
|
|
@@ -30,6 +30,7 @@ class HubtypeService {
|
|
|
30
30
|
// It's safe not awaiting Promise because:
|
|
31
31
|
// * it will never be called from AWS lambda
|
|
32
32
|
// * though init() is called again from postMesage, it does nothing if Pusher already created
|
|
33
|
+
// @ts-ignore
|
|
33
34
|
this.init();
|
|
34
35
|
}
|
|
35
36
|
}
|
|
@@ -75,16 +76,17 @@ class HubtypeService {
|
|
|
75
76
|
});
|
|
76
77
|
this.channel.bind('botonic_response', data => this.onPusherEvent(data));
|
|
77
78
|
this.channel.bind('update_message_info', data => this.onPusherEvent(data));
|
|
78
|
-
this.pusher
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
79
|
+
this.pusher &&
|
|
80
|
+
this.pusher.connection.bind('error', event => {
|
|
81
|
+
if (event.type == 'WebSocketError')
|
|
82
|
+
this.handleConnectionChange(false);
|
|
83
|
+
else {
|
|
84
|
+
const errorMsg = event.error && event.error.data
|
|
85
|
+
? event.error.data.code || event.error.data.message
|
|
86
|
+
: 'Connection error';
|
|
87
|
+
cleanAndReject(`Pusher error (${errorMsg})`);
|
|
88
|
+
}
|
|
89
|
+
});
|
|
88
90
|
});
|
|
89
91
|
this.pusher.connection.bind('state_change', states => {
|
|
90
92
|
if (states.current === 'connecting')
|
|
@@ -121,7 +123,7 @@ class HubtypeService {
|
|
|
121
123
|
}
|
|
122
124
|
}
|
|
123
125
|
handleConnectionChange(online) {
|
|
124
|
-
this.onPusherEvent({ action: '
|
|
126
|
+
this.onPusherEvent({ action: 'connection_change', online });
|
|
125
127
|
}
|
|
126
128
|
onPusherEvent(event) {
|
|
127
129
|
if (this.onEvent && typeof this.onEvent === 'function')
|
|
@@ -147,6 +149,7 @@ class HubtypeService {
|
|
|
147
149
|
*/
|
|
148
150
|
async postMessage(user, message) {
|
|
149
151
|
try {
|
|
152
|
+
// @ts-ignore
|
|
150
153
|
await this.init(user);
|
|
151
154
|
await axios_1.default.post(`${_HUBTYPE_API_URL_}/v1/provider_accounts/webhooks/webchat/${this.appId}/`, {
|
|
152
155
|
sender: this.user,
|
|
@@ -161,7 +164,7 @@ class HubtypeService {
|
|
|
161
164
|
}
|
|
162
165
|
return Promise.resolve();
|
|
163
166
|
}
|
|
164
|
-
static async getWebchatVisibility({ appId }) {
|
|
167
|
+
static async getWebchatVisibility({ appId, }) {
|
|
165
168
|
return axios_1.default.get(`${_HUBTYPE_API_URL_}/v1/provider_accounts/${appId}/visibility/`);
|
|
166
169
|
}
|
|
167
170
|
destroyPusher() {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hubtype-service.js","sourceRoot":"","sources":["../../src/hubtype-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getString = void 0;
|
|
4
|
-
// eslint-disable-next-line filenames/match-regex
|
|
5
4
|
const getString = (locales, locale, stringID) => {
|
|
6
5
|
let l = stringID.split('.').reduce((o, i) => o[i], locales[locale]);
|
|
7
6
|
if (l instanceof Array)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/i18n.ts"],"names":[],"mappings":";;;AAGO,MAAM,SAAS,GAAG,CACvB,OAAgB,EAChB,MAAc,EACd,QAAgB,EACR,EAAE;IACV,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;IACnE,IAAI,CAAC,YAAY,KAAK;QAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IACnE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;AAClB,CAAC,CAAA;AARY,QAAA,SAAS,aAQrB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './constants';
|
|
2
|
+
export * from './core-bot';
|
|
3
|
+
export * from './debug';
|
|
4
|
+
export * from './handoff';
|
|
5
|
+
export * from './hubtype-service';
|
|
6
|
+
export * from './i18n';
|
|
7
|
+
export * from './models';
|
|
8
|
+
export * from './output-parser';
|
|
9
|
+
export * from './plugins';
|
|
10
|
+
export * from './routing';
|
|
11
|
+
export * from './utils';
|
package/lib/cjs/index.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./constants"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./core-bot"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./debug"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./handoff"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./hubtype-service"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./i18n"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./models"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./output-parser"), exports);
|
|
12
|
+
tslib_1.__exportStar(require("./plugins"), exports);
|
|
13
|
+
tslib_1.__exportStar(require("./routing"), exports);
|
|
14
|
+
tslib_1.__exportStar(require("./utils"), exports);
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,sDAA2B;AAC3B,qDAA0B;AAC1B,kDAAuB;AACvB,oDAAyB;AACzB,4DAAiC;AACjC,iDAAsB;AACtB,mDAAwB;AACxB,0DAA+B;AAC/B,oDAAyB;AACzB,oDAAyB;AACzB,kDAAuB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { RoutePath } from './legacy-types';
|
|
2
|
+
export interface BotState {
|
|
3
|
+
botId: string;
|
|
4
|
+
isFirstInteraction: boolean;
|
|
5
|
+
isHandoff: boolean;
|
|
6
|
+
isShadowing: boolean;
|
|
7
|
+
lastRoutePath: RoutePath;
|
|
8
|
+
locale?: string;
|
|
9
|
+
retries: number;
|
|
10
|
+
botonicAction?: any;
|
|
11
|
+
}
|