@botonic/core 0.19.0 → 0.20.2-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/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 +115 -0
- package/lib/cjs/core-bot.js.map +1 -0
- package/lib/cjs/data-provider/dynamodb-data-provider.d.ts +26 -0
- package/lib/cjs/data-provider/dynamodb-data-provider.js +81 -0
- package/lib/cjs/data-provider/dynamodb-data-provider.js.map +1 -0
- package/lib/cjs/data-provider/dynamodb-utils.d.ts +11 -0
- package/lib/cjs/data-provider/dynamodb-utils.js +120 -0
- package/lib/cjs/data-provider/dynamodb-utils.js.map +1 -0
- package/lib/cjs/data-provider/factory.d.ts +25 -0
- package/lib/cjs/data-provider/factory.js +31 -0
- package/lib/cjs/data-provider/factory.js.map +1 -0
- package/lib/cjs/data-provider/index.d.ts +4 -0
- package/lib/cjs/data-provider/index.js +8 -0
- package/lib/cjs/data-provider/index.js.map +1 -0
- package/lib/cjs/data-provider/local-data-provider.d.ts +26 -0
- package/lib/cjs/data-provider/local-data-provider.js +137 -0
- package/lib/cjs/data-provider/local-data-provider.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} +2 -1
- 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} +25 -12
- 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 +17 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/cjs/models/events/base-event.d.ts +13 -0
- package/lib/{models/events/index.js → cjs/models/events/base-event.js} +1 -1
- package/lib/cjs/models/events/base-event.js.map +1 -0
- package/lib/cjs/models/events/botonic-event.d.ts +3 -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/connections/connection-event.d.ts} +1 -1
- package/lib/{models/events/connections/index.js → cjs/models/events/connections/connection-event.js} +1 -1
- package/lib/cjs/models/events/connections/connection-event.js.map +1 -0
- package/lib/cjs/models/events/connections/index.d.ts +1 -0
- package/lib/cjs/models/events/connections/index.js +5 -0
- package/lib/cjs/models/events/connections/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/{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} +1 -1
- package/lib/{models/events/message/index.js → cjs/models/events/message/message-event.js} +1 -1
- package/lib/cjs/models/events/message/message-event.js.map +1 -0
- package/lib/{models → cjs/models}/events/message/postback.d.ts +1 -1
- package/lib/{models → cjs/models}/events/message/postback.js +0 -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 +3 -0
- package/lib/cjs/models/index.js +7 -0
- package/lib/cjs/models/index.js.map +1 -0
- package/lib/cjs/models/legacy-types.d.ts +207 -0
- package/lib/cjs/models/legacy-types.js +60 -0
- package/lib/cjs/models/legacy-types.js.map +1 -0
- package/lib/{models → cjs/models}/user.d.ts +1 -1
- package/lib/{models → cjs/models}/user.js +0 -0
- package/lib/{models → cjs/models}/user.js.map +1 -1
- package/lib/{output-parser/index.d.ts → cjs/output-parser/botonic-output-parser.d.ts} +1 -1
- package/lib/{output-parser/index.js → cjs/output-parser/botonic-output-parser.js} +2 -1
- 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 +7 -8
- 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 +3 -9
- package/lib/{output-parser → cjs/output-parser}/parsers.js +21 -12
- package/lib/cjs/output-parser/parsers.js.map +1 -0
- package/lib/cjs/plugins.d.ts +7 -0
- package/lib/{plugins.js → cjs/plugins.js} +8 -5
- package/lib/cjs/plugins.js.map +1 -0
- package/lib/cjs/pusher-utils.d.ts +7 -0
- package/lib/cjs/pusher-utils.js +20 -0
- package/lib/cjs/pusher-utils.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 +315 -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 +111 -0
- package/lib/esm/core-bot.js.map +1 -0
- package/lib/esm/data-provider/dynamodb-data-provider.d.ts +26 -0
- package/lib/esm/data-provider/dynamodb-data-provider.js +77 -0
- package/lib/esm/data-provider/dynamodb-data-provider.js.map +1 -0
- package/lib/esm/data-provider/dynamodb-utils.d.ts +11 -0
- package/lib/esm/data-provider/dynamodb-utils.js +113 -0
- package/lib/esm/data-provider/dynamodb-utils.js.map +1 -0
- package/lib/esm/data-provider/factory.d.ts +25 -0
- package/lib/esm/data-provider/factory.js +27 -0
- package/lib/esm/data-provider/factory.js.map +1 -0
- package/lib/esm/data-provider/index.d.ts +4 -0
- package/lib/esm/data-provider/index.js +5 -0
- package/lib/esm/data-provider/index.js.map +1 -0
- package/lib/esm/data-provider/local-data-provider.d.ts +26 -0
- package/lib/esm/data-provider/local-data-provider.js +133 -0
- package/lib/esm/data-provider/local-data-provider.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 +171 -0
- package/lib/esm/handoff.js.map +1 -0
- package/lib/esm/hubtype-service.d.ts +69 -0
- package/lib/esm/hubtype-service.js +195 -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 +14 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/models/events/base-event.d.ts +13 -0
- package/lib/esm/models/events/base-event.js +8 -0
- package/lib/esm/models/events/base-event.js.map +1 -0
- package/lib/esm/models/events/botonic-event.d.ts +3 -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/connections/connection-event.d.ts +9 -0
- package/lib/esm/models/events/connections/connection-event.js +6 -0
- package/lib/esm/models/events/connections/connection-event.js.map +1 -0
- package/lib/esm/models/events/connections/index.d.ts +1 -0
- package/lib/esm/models/events/connections/index.js +2 -0
- package/lib/esm/models/events/connections/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/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 +3 -0
- package/lib/esm/models/index.js +4 -0
- package/lib/esm/models/index.js.map +1 -0
- package/lib/esm/models/legacy-types.d.ts +207 -0
- package/lib/esm/models/legacy-types.js +57 -0
- package/lib/esm/models/legacy-types.js.map +1 -0
- package/lib/esm/models/user.d.ts +10 -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 +7 -0
- package/lib/esm/plugins.js +42 -0
- package/lib/esm/plugins.js.map +1 -0
- package/lib/esm/pusher-utils.d.ts +7 -0
- package/lib/esm/pusher-utils.js +16 -0
- package/lib/esm/pusher-utils.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 +311 -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 +22 -9
- package/src/constants.ts +6 -0
- package/src/core-bot.ts +213 -0
- package/src/data-provider/dynamodb-data-provider.ts +103 -0
- package/src/data-provider/dynamodb-utils.ts +149 -0
- package/src/data-provider/factory.ts +60 -0
- package/src/data-provider/index.ts +4 -0
- package/src/data-provider/local-data-provider.ts +154 -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} +88 -24
- package/src/{hubtype-service.js → hubtype-service.ts} +85 -34
- package/src/{i18n.js → i18n.ts} +7 -1
- package/src/index.ts +13 -0
- package/src/models/events/base-event.ts +14 -0
- package/src/models/events/botonic-event.ts +24 -0
- package/src/models/events/connections/connection-event.ts +11 -0
- package/src/models/events/connections/index.ts +1 -11
- package/src/models/events/index.ts +4 -39
- 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 -37
- 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 +1 -1
- package/src/models/events/message/text.ts +1 -1
- package/src/models/index.ts +3 -0
- package/src/{types/index.d.ts → models/legacy-types.ts} +141 -80
- package/src/models/user.ts +2 -1
- package/src/output-parser/botonic-output-parser.ts +38 -0
- package/src/output-parser/factory.ts +1 -3
- package/src/output-parser/index.ts +3 -37
- package/src/output-parser/parsers.ts +27 -17
- package/src/{plugins.js → plugins.ts} +21 -12
- package/src/pusher-utils.ts +16 -0
- package/src/routing/index.ts +2 -0
- package/src/routing/router-utils.ts +100 -0
- package/src/routing/router.ts +409 -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 -78
- 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 -21
- 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/postback.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/output-parser/factory.js.map +0 -1
- 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 -271
- 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 -108
- 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 -52
- package/src/output-parser/util.ts +0 -8
- package/src/router.js +0 -273
- package/src/router.test.js +0 -345
- package/src/types/constants.d.ts +0 -14
- package/src/types/core-bot.d.ts +0 -46
- package/src/types/debug/inspector.d.ts +0 -33
- package/src/types/handoff.d.ts +0 -84
- package/src/types/hubtype-service.d.ts +0 -52
- package/src/types/i18n.d.ts +0 -8
- package/src/types/plugins.d.ts +0 -13
- package/src/types/router.d.ts +0 -57
- package/src/types/utils.d.ts +0 -12
|
@@ -1,39 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import {
|
|
6
|
-
AudioMessageEvent,
|
|
7
|
-
DocumentMessageEvent,
|
|
8
|
-
ImageMessageEvent,
|
|
9
|
-
VideoMessageEvent,
|
|
10
|
-
} from './message/media'
|
|
11
|
-
import { PostbackMessageEvent } from './message/postback'
|
|
12
|
-
import { TextMessageEvent } from './message/text'
|
|
13
|
-
|
|
14
|
-
export enum EventTypes {
|
|
15
|
-
CONNECTION = 'connection',
|
|
16
|
-
MESSAGE = 'message',
|
|
17
|
-
ACK = 'ack',
|
|
18
|
-
TRACK = 'track',
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export interface BaseEvent {
|
|
22
|
-
eventId: string
|
|
23
|
-
userId: string
|
|
24
|
-
eventType: EventTypes
|
|
25
|
-
createdAt: string
|
|
26
|
-
modifiedAt?: string
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export type BotonicEvent =
|
|
30
|
-
| TextMessageEvent
|
|
31
|
-
| PostbackMessageEvent
|
|
32
|
-
| AudioMessageEvent
|
|
33
|
-
| DocumentMessageEvent
|
|
34
|
-
| ImageMessageEvent
|
|
35
|
-
| VideoMessageEvent
|
|
36
|
-
| LocationMessageEvent
|
|
37
|
-
| CarouselMessageEvent
|
|
38
|
-
| CustomMessageEvent
|
|
39
|
-
| ConnectionEvent
|
|
1
|
+
export * from './base-event'
|
|
2
|
+
export * from './botonic-event'
|
|
3
|
+
export * from './connections'
|
|
4
|
+
export * from './message'
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { BotonicMessageEvent, MessageEventTypes } from '
|
|
1
|
+
import { BotonicMessageEvent, MessageEventTypes } from './message-event'
|
|
2
2
|
import { WithReplies } from './replies'
|
|
3
3
|
|
|
4
4
|
export interface CustomMessageEvent extends BotonicMessageEvent, WithReplies {
|
|
5
5
|
type: MessageEventTypes.CUSTOM
|
|
6
|
-
|
|
6
|
+
json: any
|
|
7
7
|
}
|
|
@@ -1,37 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
TEXT = 'text',
|
|
11
|
-
POSTBACK = 'postback',
|
|
12
|
-
VIDEO = 'video',
|
|
13
|
-
/**
|
|
14
|
-
* TODO: contact, buttonmessage?, webchatsettings, whatsapp template
|
|
15
|
-
*/
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export enum MessageEventAck {
|
|
19
|
-
DRAFT = 'draft',
|
|
20
|
-
READ = 'read',
|
|
21
|
-
RECEIVED = 'received',
|
|
22
|
-
SENT = 'sent',
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export enum MessageEventFrom {
|
|
26
|
-
AGENT = 'agent',
|
|
27
|
-
BOT = 'bot',
|
|
28
|
-
USER = 'user',
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export interface BotonicMessageEvent extends BaseEvent {
|
|
32
|
-
ack: MessageEventAck
|
|
33
|
-
from: MessageEventFrom
|
|
34
|
-
type: MessageEventTypes
|
|
35
|
-
typing: number
|
|
36
|
-
delay: number
|
|
37
|
-
}
|
|
1
|
+
export * from './buttons'
|
|
2
|
+
export * from './carousel'
|
|
3
|
+
export * from './custom'
|
|
4
|
+
export * from './location'
|
|
5
|
+
export * from './media'
|
|
6
|
+
export * from './message-event'
|
|
7
|
+
export * from './postback'
|
|
8
|
+
export * from './replies'
|
|
9
|
+
export * from './text'
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { BaseEvent } from '../base-event'
|
|
2
|
+
|
|
3
|
+
export enum MessageEventTypes {
|
|
4
|
+
AUDIO = 'audio',
|
|
5
|
+
CAROUSEL = 'carousel',
|
|
6
|
+
CUSTOM = 'custom',
|
|
7
|
+
DOCUMENT = 'document',
|
|
8
|
+
IMAGE = 'image',
|
|
9
|
+
LOCATION = 'location',
|
|
10
|
+
TEXT = 'text',
|
|
11
|
+
POSTBACK = 'postback',
|
|
12
|
+
VIDEO = 'video',
|
|
13
|
+
/**
|
|
14
|
+
* TODO: contact, buttonmessage?, webchatsettings, whatsapp template
|
|
15
|
+
*/
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export enum MessageEventAck {
|
|
19
|
+
DRAFT = 'draft',
|
|
20
|
+
READ = 'read',
|
|
21
|
+
RECEIVED = 'received',
|
|
22
|
+
SENT = 'sent',
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export enum MessageEventFrom {
|
|
26
|
+
AGENT = 'agent',
|
|
27
|
+
BOT = 'bot',
|
|
28
|
+
USER = 'user',
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export interface BotonicMessageEvent extends BaseEvent {
|
|
32
|
+
ack: MessageEventAck
|
|
33
|
+
from: MessageEventFrom
|
|
34
|
+
type: MessageEventTypes
|
|
35
|
+
typing: number
|
|
36
|
+
delay: number
|
|
37
|
+
}
|
|
@@ -1,11 +1,63 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export
|
|
7
|
-
|
|
8
|
-
|
|
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
|
+
|
|
3
|
+
import { DataProvider } from '../data-provider'
|
|
4
|
+
import { BotonicEvent } from './events'
|
|
5
|
+
|
|
6
|
+
export type CaseStatusType =
|
|
7
|
+
| typeof CASE_STATUS.ATTENDING
|
|
8
|
+
| typeof CASE_STATUS.IDLE
|
|
9
|
+
| typeof CASE_STATUS.RESOLVED
|
|
10
|
+
| typeof CASE_STATUS.WAITING
|
|
11
|
+
|
|
12
|
+
export type CaseResolution =
|
|
13
|
+
| typeof CASE_RESOLUTION.BANNED
|
|
14
|
+
| typeof CASE_RESOLUTION.NOK
|
|
15
|
+
| typeof CASE_RESOLUTION.NOT_SOLVED
|
|
16
|
+
| typeof CASE_RESOLUTION.OK
|
|
17
|
+
|
|
18
|
+
export const PROVIDER = Object.freeze({
|
|
19
|
+
DEV: 'dev',
|
|
20
|
+
FACEBOOK: 'facebook',
|
|
21
|
+
GENERIC: 'generic',
|
|
22
|
+
INTERCOM: 'intercom',
|
|
23
|
+
SMOOCH: 'smooch',
|
|
24
|
+
TELEGRAM: 'telegram',
|
|
25
|
+
TWITTER: 'twitter',
|
|
26
|
+
WEBCHAT: 'webchat',
|
|
27
|
+
WECHAT: 'wechat',
|
|
28
|
+
WHATSAPP: 'whatsapp',
|
|
29
|
+
})
|
|
30
|
+
|
|
31
|
+
export const INPUT = Object.freeze({
|
|
32
|
+
TEXT: 'text',
|
|
33
|
+
POSTBACK: 'postback',
|
|
34
|
+
AUDIO: 'audio',
|
|
35
|
+
IMAGE: 'image',
|
|
36
|
+
VIDEO: 'video',
|
|
37
|
+
DOCUMENT: 'document',
|
|
38
|
+
LOCATION: 'location',
|
|
39
|
+
CONTACT: 'contact',
|
|
40
|
+
BUTTON_MESSAGE: 'buttonmessage',
|
|
41
|
+
CAROUSEL: 'carousel',
|
|
42
|
+
CUSTOM: 'custom',
|
|
43
|
+
WEBCHAT_SETTINGS: 'webchatsettings',
|
|
44
|
+
WHATSAPP_TEMPLATE: 'whatsapptemplate',
|
|
45
|
+
RAW: 'raw',
|
|
46
|
+
})
|
|
47
|
+
|
|
48
|
+
export const CASE_STATUS = Object.freeze({
|
|
49
|
+
WAITING: 'status_waiting',
|
|
50
|
+
ATTENDING: 'status_attending',
|
|
51
|
+
IDLE: 'status_idle',
|
|
52
|
+
RESOLVED: 'status_resolved',
|
|
53
|
+
})
|
|
54
|
+
|
|
55
|
+
export const CASE_RESOLUTION = Object.freeze({
|
|
56
|
+
OK: 'result_ok',
|
|
57
|
+
NOK: 'result_nok',
|
|
58
|
+
NOT_SOLVED: 'result_not_solved',
|
|
59
|
+
BANNED: 'result_banned',
|
|
60
|
+
})
|
|
9
61
|
|
|
10
62
|
export interface Locales {
|
|
11
63
|
[id: string]: string | string[] | Locales
|
|
@@ -21,22 +73,6 @@ export interface PluginConfig<T> {
|
|
|
21
73
|
resolve: { default: PluginConstructor<T> }
|
|
22
74
|
}
|
|
23
75
|
|
|
24
|
-
export const INPUT: Readonly<{
|
|
25
|
-
AUDIO: 'audio'
|
|
26
|
-
BUTTON_MESSAGE: 'buttonmessage'
|
|
27
|
-
CAROUSEL: 'carousel'
|
|
28
|
-
CONTACT: 'contact'
|
|
29
|
-
CUSTOM: 'custom'
|
|
30
|
-
DOCUMENT: 'document'
|
|
31
|
-
IMAGE: 'image'
|
|
32
|
-
LOCATION: 'location'
|
|
33
|
-
POSTBACK: 'postback'
|
|
34
|
-
TEXT: 'text'
|
|
35
|
-
VIDEO: 'video'
|
|
36
|
-
WEBCHAT_SETTINGS: 'webchatsettings'
|
|
37
|
-
WHATSAPP_TEMPLATE: 'whatsapptemplate'
|
|
38
|
-
}>
|
|
39
|
-
|
|
40
76
|
export type InputType =
|
|
41
77
|
| typeof INPUT.AUDIO
|
|
42
78
|
| typeof INPUT.BUTTON_MESSAGE
|
|
@@ -75,25 +111,14 @@ export interface NluResult {
|
|
|
75
111
|
}
|
|
76
112
|
|
|
77
113
|
export interface Input extends Partial<NluResult> {
|
|
114
|
+
text?: string
|
|
115
|
+
src?: string
|
|
78
116
|
data?: string
|
|
79
117
|
path?: string
|
|
80
118
|
payload?: string
|
|
81
119
|
type: InputType
|
|
82
120
|
}
|
|
83
121
|
|
|
84
|
-
export const PROVIDER: Readonly<{
|
|
85
|
-
DEV: 'dev'
|
|
86
|
-
FACEBOOK: 'facebook'
|
|
87
|
-
GENERIC: 'generic'
|
|
88
|
-
INTERCOM: 'intercom'
|
|
89
|
-
SMOOCH: 'smooch'
|
|
90
|
-
TELEGRAM: 'telegram'
|
|
91
|
-
TWITTER: 'twitter'
|
|
92
|
-
WEBCHAT: 'webchat'
|
|
93
|
-
WECHAT: 'wechat'
|
|
94
|
-
WHATSAPP: 'whatsapp'
|
|
95
|
-
}>
|
|
96
|
-
|
|
97
122
|
export type ProviderType =
|
|
98
123
|
| typeof PROVIDER.DEV
|
|
99
124
|
| typeof PROVIDER.FACEBOOK
|
|
@@ -127,7 +152,7 @@ export interface Session {
|
|
|
127
152
|
name?: string
|
|
128
153
|
}
|
|
129
154
|
__locale?: string
|
|
130
|
-
__retries
|
|
155
|
+
__retries: number
|
|
131
156
|
is_first_interaction: boolean
|
|
132
157
|
last_session?: any
|
|
133
158
|
organization?: string
|
|
@@ -139,13 +164,13 @@ export interface Session {
|
|
|
139
164
|
}
|
|
140
165
|
// eslint-enable @typescript-eslint/naming-convention
|
|
141
166
|
|
|
142
|
-
type InputMatcher = (input: Input) => boolean
|
|
143
|
-
type ParamsMatcher =
|
|
167
|
+
export type InputMatcher = (input: Input) => boolean
|
|
168
|
+
export type ParamsMatcher =
|
|
144
169
|
| { [key: string]: string }
|
|
145
170
|
| ((params: { [key: string]: string }) => boolean)
|
|
146
|
-
type SessionMatcher = (session: Session) => boolean
|
|
147
|
-
type RequestMatcher = (request: BotRequest) => boolean
|
|
148
|
-
type StringMatcher = RegExp | string | ((data: string) => boolean)
|
|
171
|
+
export type SessionMatcher = (session: Session) => boolean
|
|
172
|
+
export type RequestMatcher = (request: BotRequest) => boolean
|
|
173
|
+
export type StringMatcher = RegExp | string | ((data: string) => boolean)
|
|
149
174
|
|
|
150
175
|
export type RouteMatcher =
|
|
151
176
|
| InputMatcher
|
|
@@ -157,13 +182,11 @@ export type RouteMatcher =
|
|
|
157
182
|
export interface Route {
|
|
158
183
|
action?: any
|
|
159
184
|
childRoutes?: Route[]
|
|
160
|
-
defaultAction?: any
|
|
161
185
|
lastRoutePath?: string
|
|
162
186
|
ignoreRetry?: boolean
|
|
163
|
-
path
|
|
187
|
+
path: RoutePath
|
|
164
188
|
redirect?: string
|
|
165
189
|
retry?: number
|
|
166
|
-
retryAction?: any
|
|
167
190
|
|
|
168
191
|
// matchers
|
|
169
192
|
input?: InputMatcher
|
|
@@ -179,38 +202,11 @@ export interface Route {
|
|
|
179
202
|
|
|
180
203
|
export type Routes<R = Route> = R[] | ((_: BotRequest) => R[])
|
|
181
204
|
|
|
182
|
-
// Desk
|
|
183
|
-
|
|
184
|
-
export const CASE_STATUS: Readonly<{
|
|
185
|
-
ATTENDING: 'status_attending'
|
|
186
|
-
IDLE: 'status_idle'
|
|
187
|
-
RESOLVED: 'status_resolved'
|
|
188
|
-
WAITING: 'status_waiting'
|
|
189
|
-
}>
|
|
190
|
-
|
|
191
|
-
export type CaseStatusType =
|
|
192
|
-
| typeof CASE_STATUS.ATTENDING
|
|
193
|
-
| typeof CASE_STATUS.IDLE
|
|
194
|
-
| typeof CASE_STATUS.RESOLVED
|
|
195
|
-
| typeof CASE_STATUS.WAITING
|
|
196
|
-
|
|
197
|
-
export const CASE_RESOLUTION: Readonly<{
|
|
198
|
-
BANNED: 'result_banned'
|
|
199
|
-
NOK: 'result_nok'
|
|
200
|
-
NOT_SOLVED: 'result_not_solved'
|
|
201
|
-
OK: 'result_ok'
|
|
202
|
-
}>
|
|
203
|
-
|
|
204
|
-
export type CaseResolution =
|
|
205
|
-
| typeof CASE_RESOLUTION.BANNED
|
|
206
|
-
| typeof CASE_RESOLUTION.NOK
|
|
207
|
-
| typeof CASE_RESOLUTION.NOT_SOLVED
|
|
208
|
-
| typeof CASE_RESOLUTION.OK
|
|
209
|
-
|
|
210
205
|
export interface BotRequest {
|
|
211
206
|
input: Input
|
|
212
|
-
lastRoutePath:
|
|
207
|
+
lastRoutePath: RoutePath
|
|
213
208
|
session: Session
|
|
209
|
+
dataProvider?: DataProvider
|
|
214
210
|
}
|
|
215
211
|
|
|
216
212
|
/** The response of the bot for the triggered actions, which can be
|
|
@@ -219,14 +215,79 @@ export interface BotRequest {
|
|
|
219
215
|
* */
|
|
220
216
|
export interface BotResponse extends BotRequest {
|
|
221
217
|
response: any
|
|
218
|
+
messageEvents: Partial<BotonicEvent>[] | null
|
|
222
219
|
}
|
|
223
220
|
|
|
224
|
-
export
|
|
225
|
-
|
|
221
|
+
export interface PluginPreRequest extends BotRequest {
|
|
222
|
+
plugins: Plugin[]
|
|
223
|
+
}
|
|
224
|
+
export interface PluginPostRequest extends BotResponse {
|
|
225
|
+
plugins: Plugin[]
|
|
226
|
+
}
|
|
226
227
|
|
|
227
228
|
export interface Plugin {
|
|
228
|
-
post(
|
|
229
|
-
pre(
|
|
229
|
+
post(request: PluginPostRequest): void
|
|
230
|
+
pre(request: PluginPreRequest): void
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
export interface Params {
|
|
234
|
+
[key: string]: any
|
|
230
235
|
}
|
|
231
236
|
|
|
232
|
-
export
|
|
237
|
+
export const Providers = Object.freeze({
|
|
238
|
+
Messaging: {
|
|
239
|
+
FACEBOOK: 'facebook',
|
|
240
|
+
GENERIC: 'generic',
|
|
241
|
+
IMBEE: 'imbee',
|
|
242
|
+
INTERCOM: 'intercom',
|
|
243
|
+
SMOOCH_WEB: 'smooch_web',
|
|
244
|
+
SMOOCH: 'smooch',
|
|
245
|
+
TELEGRAM: 'telegram',
|
|
246
|
+
TWITTER: 'twitter',
|
|
247
|
+
WEBCHAT: 'webchat',
|
|
248
|
+
WECHAT: 'wechat',
|
|
249
|
+
WHATSAPP: 'whatsapp',
|
|
250
|
+
},
|
|
251
|
+
})
|
|
252
|
+
|
|
253
|
+
export type Nullable<T> = T | null
|
|
254
|
+
|
|
255
|
+
export type Action = Nullable<() => any>
|
|
256
|
+
export type RoutePath = Nullable<string>
|
|
257
|
+
|
|
258
|
+
export interface ProcessInputResult {
|
|
259
|
+
action: Action
|
|
260
|
+
emptyAction: Action
|
|
261
|
+
fallbackAction: Action
|
|
262
|
+
lastRoutePath: RoutePath
|
|
263
|
+
params: Params
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
export type MatchedValue = boolean | RegExpExecArray | null
|
|
267
|
+
|
|
268
|
+
export type RoutingState = {
|
|
269
|
+
currentRoute: Nullable<Route>
|
|
270
|
+
matchedRoute: Nullable<Route>
|
|
271
|
+
params: Params
|
|
272
|
+
isFlowBroken: boolean
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
export interface RouteParams {
|
|
276
|
+
route: Nullable<Route>
|
|
277
|
+
params: Params
|
|
278
|
+
}
|
|
279
|
+
export interface PathParams {
|
|
280
|
+
path: RoutePath
|
|
281
|
+
params: Params
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
export type MatchingProp =
|
|
285
|
+
| 'text'
|
|
286
|
+
| 'payload'
|
|
287
|
+
| 'intent'
|
|
288
|
+
| 'type'
|
|
289
|
+
| 'input'
|
|
290
|
+
| 'session'
|
|
291
|
+
| 'request'
|
|
292
|
+
|
|
293
|
+
export type Matcher = string | RegExp | ((args) => boolean)
|
package/src/models/user.ts
CHANGED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// eslint-disable-next-line import/named
|
|
2
|
+
import { parse, X2jOptions } from 'fast-xml-parser'
|
|
3
|
+
import { decode } from 'html-entities'
|
|
4
|
+
|
|
5
|
+
import { BotonicEvent } from '../models'
|
|
6
|
+
import { MessageParsingFactory } from './factory'
|
|
7
|
+
|
|
8
|
+
export const TEXT_NODE_NAME = 'text'
|
|
9
|
+
|
|
10
|
+
export class BotonicOutputParser {
|
|
11
|
+
private static OPTIONS: Partial<X2jOptions> = {
|
|
12
|
+
ignoreAttributes: false,
|
|
13
|
+
attributeNamePrefix: '',
|
|
14
|
+
textNodeName: TEXT_NODE_NAME,
|
|
15
|
+
arrayMode: true,
|
|
16
|
+
attrValueProcessor: a => decode(a),
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
constructor(private readonly factory = new MessageParsingFactory()) {}
|
|
20
|
+
|
|
21
|
+
xmlToMessageEvents(html: string): Partial<BotonicEvent>[] {
|
|
22
|
+
const jsonMessages = this.xmlToJSONMessages(html)
|
|
23
|
+
return jsonMessages.map(msgToParse => this.factory.parse(msgToParse))
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Right now, when saving BotonicEvents to DataProvider, we need the standarized Botonic event
|
|
28
|
+
* to be saved. This is, converting a botonic input like: '{id: 'msgId', data: 'rawData', payload: 'somePayload'}'
|
|
29
|
+
* into a BotonicEvent with the expected properties.
|
|
30
|
+
*/
|
|
31
|
+
parseFromUserInput(input: any): Partial<BotonicEvent> {
|
|
32
|
+
return this.factory.parse(input)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
private xmlToJSONMessages(html: any): any {
|
|
36
|
+
return parse(html, BotonicOutputParser.OPTIONS).message
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import { BotonicEvent } from '../models
|
|
2
|
-
import { MessageEventTypes } from '../models/events/message'
|
|
3
|
-
import { MEDIA_TYPES } from '../models/events/message/media'
|
|
1
|
+
import { BotonicEvent, MEDIA_TYPES, MessageEventTypes } from '../models'
|
|
4
2
|
import {
|
|
5
3
|
parseButtons,
|
|
6
4
|
parseCarousel,
|
|
@@ -1,37 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import { BotonicEvent } from '../models/events'
|
|
5
|
-
import { MessageParsingFactory } from './factory'
|
|
6
|
-
|
|
7
|
-
export const TEXT_NODE_NAME = 'text'
|
|
8
|
-
|
|
9
|
-
export class BotonicOutputParser {
|
|
10
|
-
private static OPTIONS: Partial<X2jOptions> = {
|
|
11
|
-
ignoreAttributes: false,
|
|
12
|
-
attributeNamePrefix: '',
|
|
13
|
-
textNodeName: TEXT_NODE_NAME,
|
|
14
|
-
arrayMode: true,
|
|
15
|
-
attrValueProcessor: a => decode(a),
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
constructor(private readonly factory = new MessageParsingFactory()) {}
|
|
19
|
-
|
|
20
|
-
xmlToMessageEvents(html: string): Partial<BotonicEvent>[] {
|
|
21
|
-
const jsonMessages = this.xmlToJSONMessages(html)
|
|
22
|
-
return jsonMessages.map(msgToParse => this.factory.parse(msgToParse))
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Right now, when saving BotonicEvents to DataProvider, we need the standarized Botonic event
|
|
27
|
-
* to be saved. This is, converting a botonic input like: '{id: 'msgId', data: 'rawData', payload: 'somePayload'}'
|
|
28
|
-
* into a BotonicEvent with the expected properties.
|
|
29
|
-
*/
|
|
30
|
-
parseFromUserInput(input: any): Partial<BotonicEvent> {
|
|
31
|
-
return this.factory.parse(input)
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
private xmlToJSONMessages(html: any): any {
|
|
35
|
-
return parse(html, BotonicOutputParser.OPTIONS).message
|
|
36
|
-
}
|
|
37
|
-
}
|
|
1
|
+
export * from './botonic-output-parser'
|
|
2
|
+
export * from './factory'
|
|
3
|
+
export * from './parsers'
|
|
@@ -1,23 +1,31 @@
|
|
|
1
|
-
import { EventTypes } from '../models/events'
|
|
2
|
-
import { BotonicMessageEvent } from '../models/events/message'
|
|
3
|
-
import { Button, WithButtons } from '../models/events/message/buttons'
|
|
4
1
|
import {
|
|
2
|
+
AudioMessageEvent,
|
|
3
|
+
BotonicMessageEvent,
|
|
4
|
+
Button,
|
|
5
5
|
CarouselElement,
|
|
6
6
|
CarouselMessageEvent,
|
|
7
|
-
|
|
8
|
-
import { CustomMessageEvent } from '../models/events/message/custom'
|
|
9
|
-
import { LocationMessageEvent } from '../models/events/message/location'
|
|
10
|
-
import {
|
|
11
|
-
AudioMessageEvent,
|
|
7
|
+
CustomMessageEvent,
|
|
12
8
|
DocumentMessageEvent,
|
|
9
|
+
EventTypes,
|
|
13
10
|
ImageMessageEvent,
|
|
11
|
+
LocationMessageEvent,
|
|
12
|
+
PostbackMessageEvent,
|
|
13
|
+
Reply,
|
|
14
|
+
TextMessageEvent,
|
|
14
15
|
VideoMessageEvent,
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
import { TEXT_NODE_NAME } from '
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
WithButtons,
|
|
17
|
+
WithReplies,
|
|
18
|
+
} from '../models'
|
|
19
|
+
import { TEXT_NODE_NAME } from './botonic-output-parser'
|
|
20
|
+
|
|
21
|
+
export function parseNumber(strNumber: string): number {
|
|
22
|
+
return parseInt(strNumber)
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export function parseBoolean(strNumber: string): boolean {
|
|
26
|
+
if (strNumber === '0') return false
|
|
27
|
+
return true
|
|
28
|
+
}
|
|
21
29
|
|
|
22
30
|
export type ParseFunction<Out> = (args: {
|
|
23
31
|
toParse: any
|
|
@@ -42,6 +50,8 @@ export const parseMessage: ParseFunction<BotonicMessageEvent> = args => {
|
|
|
42
50
|
// Following properties added later before saving event: eventId, userId, createdAt, from, ack
|
|
43
51
|
eventType: EventTypes.MESSAGE,
|
|
44
52
|
type: args.toParse.type,
|
|
53
|
+
ack: args.toParse.ack,
|
|
54
|
+
from: args.toParse.from,
|
|
45
55
|
...typingAndDelay,
|
|
46
56
|
},
|
|
47
57
|
}
|
|
@@ -110,7 +120,7 @@ export const parseText: ParseFunction<TextMessageEvent> = args => {
|
|
|
110
120
|
toParse: args.toParse,
|
|
111
121
|
parsed: {
|
|
112
122
|
...args.parsed,
|
|
113
|
-
text: args.toParse[TEXT_NODE_NAME]
|
|
123
|
+
text: args.toParse[TEXT_NODE_NAME],
|
|
114
124
|
markdown: parseBoolean(args.toParse.markdown),
|
|
115
125
|
},
|
|
116
126
|
}
|
|
@@ -139,7 +149,7 @@ export const parseMedia: ParseFunction<
|
|
|
139
149
|
toParse: args.toParse,
|
|
140
150
|
parsed: {
|
|
141
151
|
...args.parsed,
|
|
142
|
-
src: args.toParse.src
|
|
152
|
+
src: args.toParse.src,
|
|
143
153
|
},
|
|
144
154
|
}
|
|
145
155
|
}
|
|
@@ -184,7 +194,7 @@ export const parseCustom: ParseFunction<CustomMessageEvent> = args => {
|
|
|
184
194
|
toParse: args.toParse,
|
|
185
195
|
parsed: {
|
|
186
196
|
...args.parsed,
|
|
187
|
-
|
|
197
|
+
json: JSON.parse(args.toParse.json),
|
|
188
198
|
},
|
|
189
199
|
}
|
|
190
200
|
}
|