@vraksha/bottender 1.6.1-beta.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/README.md +161 -0
- package/bin/cli.js +4 -0
- package/dist/bot/Bot.d.ts +44 -0
- package/dist/bot/Bot.d.ts.map +1 -0
- package/dist/bot/Bot.js +226 -0
- package/dist/bot/Bot.js.map +1 -0
- package/dist/bot/Connector.d.ts +23 -0
- package/dist/bot/Connector.d.ts.map +1 -0
- package/dist/bot/Connector.js +3 -0
- package/dist/bot/Connector.js.map +1 -0
- package/dist/bottender.d.ts +7 -0
- package/dist/bottender.d.ts.map +1 -0
- package/dist/bottender.js +15 -0
- package/dist/bottender.js.map +1 -0
- package/dist/browser.d.ts +9 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +23 -0
- package/dist/browser.js.map +1 -0
- package/dist/cache/CacheStore.d.ts +12 -0
- package/dist/cache/CacheStore.d.ts.map +1 -0
- package/dist/cache/CacheStore.js +3 -0
- package/dist/cache/CacheStore.js.map +1 -0
- package/dist/cache/MemoryCacheStore.d.ts +13 -0
- package/dist/cache/MemoryCacheStore.d.ts.map +1 -0
- package/dist/cache/MemoryCacheStore.js +59 -0
- package/dist/cache/MemoryCacheStore.js.map +1 -0
- package/dist/cache/RedisCacheStore.d.ts +18 -0
- package/dist/cache/RedisCacheStore.d.ts.map +1 -0
- package/dist/cache/RedisCacheStore.js +79 -0
- package/dist/cache/RedisCacheStore.js.map +1 -0
- package/dist/chain.d.ts +5 -0
- package/dist/chain.d.ts.map +1 -0
- package/dist/chain.js +27 -0
- package/dist/chain.js.map +1 -0
- package/dist/cli/index.d.ts +11 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +99 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/providers/index.d.ts +37 -0
- package/dist/cli/providers/index.d.ts.map +1 -0
- package/dist/cli/providers/index.js +18 -0
- package/dist/cli/providers/index.js.map +1 -0
- package/dist/cli/providers/line/help.d.ts +3 -0
- package/dist/cli/providers/line/help.d.ts.map +1 -0
- package/dist/cli/providers/line/help.js +9 -0
- package/dist/cli/providers/line/help.js.map +1 -0
- package/dist/cli/providers/line/index.d.ts +7 -0
- package/dist/cli/providers/line/index.d.ts.map +1 -0
- package/dist/cli/providers/line/index.js +10 -0
- package/dist/cli/providers/line/index.js.map +1 -0
- package/dist/cli/providers/messenger/help.d.ts +3 -0
- package/dist/cli/providers/messenger/help.d.ts.map +1 -0
- package/dist/cli/providers/messenger/help.js +31 -0
- package/dist/cli/providers/messenger/help.js.map +1 -0
- package/dist/cli/providers/messenger/index.d.ts +10 -0
- package/dist/cli/providers/messenger/index.d.ts.map +1 -0
- package/dist/cli/providers/messenger/index.js +19 -0
- package/dist/cli/providers/messenger/index.js.map +1 -0
- package/dist/cli/providers/messenger/persona.d.ts +7 -0
- package/dist/cli/providers/messenger/persona.d.ts.map +1 -0
- package/dist/cli/providers/messenger/persona.js +235 -0
- package/dist/cli/providers/messenger/persona.js.map +1 -0
- package/dist/cli/providers/messenger/profile.d.ts +9 -0
- package/dist/cli/providers/messenger/profile.d.ts.map +1 -0
- package/dist/cli/providers/messenger/profile.js +233 -0
- package/dist/cli/providers/messenger/profile.js.map +1 -0
- package/dist/cli/providers/messenger/webhook.d.ts +4 -0
- package/dist/cli/providers/messenger/webhook.d.ts.map +1 -0
- package/dist/cli/providers/messenger/webhook.js +165 -0
- package/dist/cli/providers/messenger/webhook.js.map +1 -0
- package/dist/cli/providers/sh/dev.d.ts +4 -0
- package/dist/cli/providers/sh/dev.d.ts.map +1 -0
- package/dist/cli/providers/sh/dev.js +79 -0
- package/dist/cli/providers/sh/dev.js.map +1 -0
- package/dist/cli/providers/sh/help.d.ts +3 -0
- package/dist/cli/providers/sh/help.d.ts.map +1 -0
- package/dist/cli/providers/sh/help.js +42 -0
- package/dist/cli/providers/sh/help.js.map +1 -0
- package/dist/cli/providers/sh/index.d.ts +10 -0
- package/dist/cli/providers/sh/index.d.ts.map +1 -0
- package/dist/cli/providers/sh/index.js +19 -0
- package/dist/cli/providers/sh/index.js.map +1 -0
- package/dist/cli/providers/sh/init.d.ts +3 -0
- package/dist/cli/providers/sh/init.d.ts.map +1 -0
- package/dist/cli/providers/sh/init.js +22 -0
- package/dist/cli/providers/sh/init.js.map +1 -0
- package/dist/cli/providers/sh/start.d.ts +4 -0
- package/dist/cli/providers/sh/start.d.ts.map +1 -0
- package/dist/cli/providers/sh/start.js +51 -0
- package/dist/cli/providers/sh/start.js.map +1 -0
- package/dist/cli/providers/sh/utils/argCommon.d.ts +8 -0
- package/dist/cli/providers/sh/utils/argCommon.d.ts.map +1 -0
- package/dist/cli/providers/sh/utils/argCommon.js +10 -0
- package/dist/cli/providers/sh/utils/argCommon.js.map +1 -0
- package/dist/cli/providers/sh/utils/getArgs.d.ts +9 -0
- package/dist/cli/providers/sh/utils/getArgs.d.ts.map +1 -0
- package/dist/cli/providers/sh/utils/getArgs.js +10 -0
- package/dist/cli/providers/sh/utils/getArgs.js.map +1 -0
- package/dist/cli/providers/sh/utils/getSubArgs.d.ts +6 -0
- package/dist/cli/providers/sh/utils/getSubArgs.d.ts.map +1 -0
- package/dist/cli/providers/sh/utils/getSubArgs.js +23 -0
- package/dist/cli/providers/sh/utils/getSubArgs.js.map +1 -0
- package/dist/cli/providers/telegram/help.d.ts +3 -0
- package/dist/cli/providers/telegram/help.d.ts.map +1 -0
- package/dist/cli/providers/telegram/help.js +34 -0
- package/dist/cli/providers/telegram/help.js.map +1 -0
- package/dist/cli/providers/telegram/index.d.ts +8 -0
- package/dist/cli/providers/telegram/index.d.ts.map +1 -0
- package/dist/cli/providers/telegram/index.js +13 -0
- package/dist/cli/providers/telegram/index.js.map +1 -0
- package/dist/cli/providers/telegram/webhook.d.ts +6 -0
- package/dist/cli/providers/telegram/webhook.d.ts.map +1 -0
- package/dist/cli/providers/telegram/webhook.js +149 -0
- package/dist/cli/providers/telegram/webhook.js.map +1 -0
- package/dist/cli/providers/viber/help.d.ts +3 -0
- package/dist/cli/providers/viber/help.d.ts.map +1 -0
- package/dist/cli/providers/viber/help.js +33 -0
- package/dist/cli/providers/viber/help.js.map +1 -0
- package/dist/cli/providers/viber/index.d.ts +8 -0
- package/dist/cli/providers/viber/index.d.ts.map +1 -0
- package/dist/cli/providers/viber/index.js +13 -0
- package/dist/cli/providers/viber/index.js.map +1 -0
- package/dist/cli/providers/viber/webhook.d.ts +5 -0
- package/dist/cli/providers/viber/webhook.d.ts.map +1 -0
- package/dist/cli/providers/viber/webhook.js +122 -0
- package/dist/cli/providers/viber/webhook.js.map +1 -0
- package/dist/console/ConsoleBot.d.ts +17 -0
- package/dist/console/ConsoleBot.d.ts.map +1 -0
- package/dist/console/ConsoleBot.js +80 -0
- package/dist/console/ConsoleBot.js.map +1 -0
- package/dist/console/ConsoleClient.d.ts +4 -0
- package/dist/console/ConsoleClient.d.ts.map +1 -0
- package/dist/console/ConsoleClient.js +3 -0
- package/dist/console/ConsoleClient.js.map +1 -0
- package/dist/console/ConsoleConnector.d.ts +35 -0
- package/dist/console/ConsoleConnector.d.ts.map +1 -0
- package/dist/console/ConsoleConnector.js +62 -0
- package/dist/console/ConsoleConnector.js.map +1 -0
- package/dist/console/ConsoleContext.d.ts +28 -0
- package/dist/console/ConsoleContext.d.ts.map +1 -0
- package/dist/console/ConsoleContext.js +66 -0
- package/dist/console/ConsoleContext.js.map +1 -0
- package/dist/console/ConsoleEvent.d.ts +24 -0
- package/dist/console/ConsoleEvent.d.ts.map +1 -0
- package/dist/console/ConsoleEvent.js +36 -0
- package/dist/console/ConsoleEvent.js.map +1 -0
- package/dist/context/Context.d.ts +52 -0
- package/dist/context/Context.d.ts.map +1 -0
- package/dist/context/Context.js +118 -0
- package/dist/context/Context.js.map +1 -0
- package/dist/context/Event.d.ts +8 -0
- package/dist/context/Event.d.ts.map +1 -0
- package/dist/context/Event.js +3 -0
- package/dist/context/Event.js.map +1 -0
- package/dist/index.d.ts +69 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +155 -0
- package/dist/index.js.map +1 -0
- package/dist/initializeServer.d.ts +10 -0
- package/dist/initializeServer.d.ts.map +1 -0
- package/dist/initializeServer.js +98 -0
- package/dist/initializeServer.js.map +1 -0
- package/dist/line/LineBot.d.ts +15 -0
- package/dist/line/LineBot.d.ts.map +1 -0
- package/dist/line/LineBot.js +27 -0
- package/dist/line/LineBot.js.map +1 -0
- package/dist/line/LineConnector.d.ts +92 -0
- package/dist/line/LineConnector.d.ts.map +1 -0
- package/dist/line/LineConnector.js +283 -0
- package/dist/line/LineConnector.js.map +1 -0
- package/dist/line/LineContext.d.ts +135 -0
- package/dist/line/LineContext.d.ts.map +1 -0
- package/dist/line/LineContext.js +419 -0
- package/dist/line/LineContext.js.map +1 -0
- package/dist/line/LineEvent.d.ts +61 -0
- package/dist/line/LineEvent.d.ts.map +1 -0
- package/dist/line/LineEvent.js +217 -0
- package/dist/line/LineEvent.js.map +1 -0
- package/dist/line/LineTypes.d.ts +199 -0
- package/dist/line/LineTypes.d.ts.map +1 -0
- package/dist/line/LineTypes.js +18 -0
- package/dist/line/LineTypes.js.map +1 -0
- package/dist/line/routes.d.ts +33 -0
- package/dist/line/routes.d.ts.map +1 -0
- package/dist/line/routes.js +89 -0
- package/dist/line/routes.js.map +1 -0
- package/dist/messenger/FacebookBaseConnector.d.ts +66 -0
- package/dist/messenger/FacebookBaseConnector.d.ts.map +1 -0
- package/dist/messenger/FacebookBaseConnector.js +118 -0
- package/dist/messenger/FacebookBaseConnector.js.map +1 -0
- package/dist/messenger/MessengerBot.d.ts +15 -0
- package/dist/messenger/MessengerBot.d.ts.map +1 -0
- package/dist/messenger/MessengerBot.js +27 -0
- package/dist/messenger/MessengerBot.js.map +1 -0
- package/dist/messenger/MessengerConnector.d.ts +37 -0
- package/dist/messenger/MessengerConnector.d.ts.map +1 -0
- package/dist/messenger/MessengerConnector.js +204 -0
- package/dist/messenger/MessengerConnector.js.map +1 -0
- package/dist/messenger/MessengerContext.d.ts +114 -0
- package/dist/messenger/MessengerContext.d.ts.map +1 -0
- package/dist/messenger/MessengerContext.js +547 -0
- package/dist/messenger/MessengerContext.js.map +1 -0
- package/dist/messenger/MessengerEvent.d.ts +76 -0
- package/dist/messenger/MessengerEvent.d.ts.map +1 -0
- package/dist/messenger/MessengerEvent.js +380 -0
- package/dist/messenger/MessengerEvent.js.map +1 -0
- package/dist/messenger/MessengerTypes.d.ts +292 -0
- package/dist/messenger/MessengerTypes.d.ts.map +1 -0
- package/dist/messenger/MessengerTypes.js +18 -0
- package/dist/messenger/MessengerTypes.js.map +1 -0
- package/dist/messenger/routes.d.ts +39 -0
- package/dist/messenger/routes.d.ts.map +1 -0
- package/dist/messenger/routes.js +109 -0
- package/dist/messenger/routes.js.map +1 -0
- package/dist/plugins/withTyping.d.ts +6 -0
- package/dist/plugins/withTyping.d.ts.map +1 -0
- package/dist/plugins/withTyping.js +135 -0
- package/dist/plugins/withTyping.js.map +1 -0
- package/dist/router/index.d.ts +39 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/router/index.js +166 -0
- package/dist/router/index.js.map +1 -0
- package/dist/server/DevServer.d.ts +6 -0
- package/dist/server/DevServer.d.ts.map +1 -0
- package/dist/server/DevServer.js +27 -0
- package/dist/server/DevServer.js.map +1 -0
- package/dist/server/Server.d.ts +26 -0
- package/dist/server/Server.d.ts.map +1 -0
- package/dist/server/Server.js +86 -0
- package/dist/server/Server.js.map +1 -0
- package/dist/session/CacheBasedSessionStore.d.ts +14 -0
- package/dist/session/CacheBasedSessionStore.d.ts.map +1 -0
- package/dist/session/CacheBasedSessionStore.js +44 -0
- package/dist/session/CacheBasedSessionStore.js.map +1 -0
- package/dist/session/FileSessionStore.d.ts +20 -0
- package/dist/session/FileSessionStore.d.ts.map +1 -0
- package/dist/session/FileSessionStore.js +118 -0
- package/dist/session/FileSessionStore.js.map +1 -0
- package/dist/session/MemorySessionStore.d.ts +10 -0
- package/dist/session/MemorySessionStore.d.ts.map +1 -0
- package/dist/session/MemorySessionStore.js +25 -0
- package/dist/session/MemorySessionStore.js.map +1 -0
- package/dist/session/MongoSessionStore.d.ts +23 -0
- package/dist/session/MongoSessionStore.d.ts.map +1 -0
- package/dist/session/MongoSessionStore.js +97 -0
- package/dist/session/MongoSessionStore.js.map +1 -0
- package/dist/session/RedisSessionStore.d.ts +14 -0
- package/dist/session/RedisSessionStore.d.ts.map +1 -0
- package/dist/session/RedisSessionStore.js +15 -0
- package/dist/session/RedisSessionStore.js.map +1 -0
- package/dist/session/Session.d.ts +3 -0
- package/dist/session/Session.d.ts.map +1 -0
- package/dist/session/Session.js +3 -0
- package/dist/session/Session.js.map +1 -0
- package/dist/session/SessionStore.d.ts +10 -0
- package/dist/session/SessionStore.d.ts.map +1 -0
- package/dist/session/SessionStore.js +3 -0
- package/dist/session/SessionStore.js.map +1 -0
- package/dist/shared/getBottenderConfig.d.ts +5 -0
- package/dist/shared/getBottenderConfig.d.ts.map +1 -0
- package/dist/shared/getBottenderConfig.js +24 -0
- package/dist/shared/getBottenderConfig.js.map +1 -0
- package/dist/shared/getChannelBotAndRequestContext.d.ts +10 -0
- package/dist/shared/getChannelBotAndRequestContext.d.ts.map +1 -0
- package/dist/shared/getChannelBotAndRequestContext.js +41 -0
- package/dist/shared/getChannelBotAndRequestContext.js.map +1 -0
- package/dist/shared/getChannelBots.d.ts +6 -0
- package/dist/shared/getChannelBots.d.ts.map +1 -0
- package/dist/shared/getChannelBots.js +84 -0
- package/dist/shared/getChannelBots.js.map +1 -0
- package/dist/shared/getChannelConfig.d.ts +5 -0
- package/dist/shared/getChannelConfig.d.ts.map +1 -0
- package/dist/shared/getChannelConfig.js +28 -0
- package/dist/shared/getChannelConfig.js.map +1 -0
- package/dist/shared/getChannelSchema.d.ts +4 -0
- package/dist/shared/getChannelSchema.d.ts.map +1 -0
- package/dist/shared/getChannelSchema.js +110 -0
- package/dist/shared/getChannelSchema.js.map +1 -0
- package/dist/shared/getClient.d.ts +11 -0
- package/dist/shared/getClient.d.ts.map +1 -0
- package/dist/shared/getClient.js +36 -0
- package/dist/shared/getClient.js.map +1 -0
- package/dist/shared/getConsoleBot.d.ts +5 -0
- package/dist/shared/getConsoleBot.d.ts.map +1 -0
- package/dist/shared/getConsoleBot.js +43 -0
- package/dist/shared/getConsoleBot.js.map +1 -0
- package/dist/shared/getSessionStore.d.ts +5 -0
- package/dist/shared/getSessionStore.d.ts.map +1 -0
- package/dist/shared/getSessionStore.js +41 -0
- package/dist/shared/getSessionStore.js.map +1 -0
- package/dist/shared/getWebhookFromNgrok.d.ts +2 -0
- package/dist/shared/getWebhookFromNgrok.d.ts.map +1 -0
- package/dist/shared/getWebhookFromNgrok.js +33 -0
- package/dist/shared/getWebhookFromNgrok.js.map +1 -0
- package/dist/shared/log.d.ts +6 -0
- package/dist/shared/log.d.ts.map +1 -0
- package/dist/shared/log.js +29 -0
- package/dist/shared/log.js.map +1 -0
- package/dist/slack/SlackBot.d.ts +22 -0
- package/dist/slack/SlackBot.d.ts.map +1 -0
- package/dist/slack/SlackBot.js +30 -0
- package/dist/slack/SlackBot.js.map +1 -0
- package/dist/slack/SlackConnector.d.ts +72 -0
- package/dist/slack/SlackConnector.d.ts.map +1 -0
- package/dist/slack/SlackConnector.js +302 -0
- package/dist/slack/SlackConnector.js.map +1 -0
- package/dist/slack/SlackContext.d.ts +65 -0
- package/dist/slack/SlackContext.d.ts.map +1 -0
- package/dist/slack/SlackContext.js +131 -0
- package/dist/slack/SlackContext.js.map +1 -0
- package/dist/slack/SlackEvent.d.ts +28 -0
- package/dist/slack/SlackEvent.d.ts.map +1 -0
- package/dist/slack/SlackEvent.js +171 -0
- package/dist/slack/SlackEvent.js.map +1 -0
- package/dist/slack/SlackTypes.d.ts +79 -0
- package/dist/slack/SlackTypes.d.ts.map +1 -0
- package/dist/slack/SlackTypes.js +18 -0
- package/dist/slack/SlackTypes.js.map +1 -0
- package/dist/slack/routes.d.ts +24 -0
- package/dist/slack/routes.d.ts.map +1 -0
- package/dist/slack/routes.js +25 -0
- package/dist/slack/routes.js.map +1 -0
- package/dist/telegram/TelegramBot.d.ts +20 -0
- package/dist/telegram/TelegramBot.d.ts.map +1 -0
- package/dist/telegram/TelegramBot.js +68 -0
- package/dist/telegram/TelegramBot.js.map +1 -0
- package/dist/telegram/TelegramConnector.d.ts +42 -0
- package/dist/telegram/TelegramConnector.d.ts.map +1 -0
- package/dist/telegram/TelegramConnector.js +191 -0
- package/dist/telegram/TelegramConnector.js.map +1 -0
- package/dist/telegram/TelegramContext.d.ts +64 -0
- package/dist/telegram/TelegramContext.d.ts.map +1 -0
- package/dist/telegram/TelegramContext.js +742 -0
- package/dist/telegram/TelegramContext.js.map +1 -0
- package/dist/telegram/TelegramEvent.d.ts +61 -0
- package/dist/telegram/TelegramEvent.d.ts.map +1 -0
- package/dist/telegram/TelegramEvent.js +246 -0
- package/dist/telegram/TelegramEvent.js.map +1 -0
- package/dist/telegram/TelegramTypes.d.ts +27 -0
- package/dist/telegram/TelegramTypes.d.ts.map +1 -0
- package/dist/telegram/TelegramTypes.js +18 -0
- package/dist/telegram/TelegramTypes.js.map +1 -0
- package/dist/telegram/routes.d.ts +25 -0
- package/dist/telegram/routes.d.ts.map +1 -0
- package/dist/telegram/routes.js +53 -0
- package/dist/telegram/routes.js.map +1 -0
- package/dist/test-utils/ContextSimulator.d.ts +196 -0
- package/dist/test-utils/ContextSimulator.d.ts.map +1 -0
- package/dist/test-utils/ContextSimulator.js +237 -0
- package/dist/test-utils/ContextSimulator.js.map +1 -0
- package/dist/test-utils/SimulatedContext.d.ts +9 -0
- package/dist/test-utils/SimulatedContext.d.ts.map +1 -0
- package/dist/test-utils/SimulatedContext.js +18 -0
- package/dist/test-utils/SimulatedContext.js.map +1 -0
- package/dist/test-utils/index.d.ts +2 -0
- package/dist/test-utils/index.d.ts.map +1 -0
- package/dist/test-utils/index.js +9 -0
- package/dist/test-utils/index.js.map +1 -0
- package/dist/types.d.ts +107 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +22 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +4 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +13 -0
- package/dist/utils.js.map +1 -0
- package/dist/viber/ViberBot.d.ts +15 -0
- package/dist/viber/ViberBot.d.ts.map +1 -0
- package/dist/viber/ViberBot.js +27 -0
- package/dist/viber/ViberBot.js.map +1 -0
- package/dist/viber/ViberConnector.d.ts +62 -0
- package/dist/viber/ViberConnector.d.ts.map +1 -0
- package/dist/viber/ViberConnector.js +152 -0
- package/dist/viber/ViberConnector.js.map +1 -0
- package/dist/viber/ViberContext.d.ts +20 -0
- package/dist/viber/ViberContext.d.ts.map +1 -0
- package/dist/viber/ViberContext.js +132 -0
- package/dist/viber/ViberContext.js.map +1 -0
- package/dist/viber/ViberEvent.d.ts +39 -0
- package/dist/viber/ViberEvent.d.ts.map +1 -0
- package/dist/viber/ViberEvent.js +150 -0
- package/dist/viber/ViberEvent.js.map +1 -0
- package/dist/viber/ViberTypes.d.ts +82 -0
- package/dist/viber/ViberTypes.d.ts.map +1 -0
- package/dist/viber/ViberTypes.js +18 -0
- package/dist/viber/ViberTypes.js.map +1 -0
- package/dist/viber/routes.d.ts +21 -0
- package/dist/viber/routes.d.ts.map +1 -0
- package/dist/viber/routes.js +37 -0
- package/dist/viber/routes.js.map +1 -0
- package/dist/whatsapp/TwilioClient.d.ts +55 -0
- package/dist/whatsapp/TwilioClient.d.ts.map +1 -0
- package/dist/whatsapp/TwilioClient.js +66 -0
- package/dist/whatsapp/TwilioClient.js.map +1 -0
- package/dist/whatsapp/WhatsappBot.d.ts +15 -0
- package/dist/whatsapp/WhatsappBot.d.ts.map +1 -0
- package/dist/whatsapp/WhatsappBot.js +27 -0
- package/dist/whatsapp/WhatsappBot.js.map +1 -0
- package/dist/whatsapp/WhatsappConnector.d.ts +64 -0
- package/dist/whatsapp/WhatsappConnector.d.ts.map +1 -0
- package/dist/whatsapp/WhatsappConnector.js +111 -0
- package/dist/whatsapp/WhatsappConnector.js.map +1 -0
- package/dist/whatsapp/WhatsappContext.d.ts +17 -0
- package/dist/whatsapp/WhatsappContext.d.ts.map +1 -0
- package/dist/whatsapp/WhatsappContext.js +30 -0
- package/dist/whatsapp/WhatsappContext.js.map +1 -0
- package/dist/whatsapp/WhatsappEvent.d.ts +25 -0
- package/dist/whatsapp/WhatsappEvent.d.ts.map +1 -0
- package/dist/whatsapp/WhatsappEvent.js +60 -0
- package/dist/whatsapp/WhatsappEvent.js.map +1 -0
- package/dist/whatsapp/WhatsappTypes.d.ts +59 -0
- package/dist/whatsapp/WhatsappTypes.d.ts.map +1 -0
- package/dist/whatsapp/WhatsappTypes.js +3 -0
- package/dist/whatsapp/WhatsappTypes.js.map +1 -0
- package/dist/whatsapp/routes.d.ts +20 -0
- package/dist/whatsapp/routes.d.ts.map +1 -0
- package/dist/whatsapp/routes.js +33 -0
- package/dist/whatsapp/routes.js.map +1 -0
- package/dist/whatsapp-by-meta/MetaClient.d.ts +297 -0
- package/dist/whatsapp-by-meta/MetaClient.d.ts.map +1 -0
- package/dist/whatsapp-by-meta/MetaClient.js +74 -0
- package/dist/whatsapp-by-meta/MetaClient.js.map +1 -0
- package/dist/whatsapp-by-meta/WhatsappByMetaBot.d.ts +15 -0
- package/dist/whatsapp-by-meta/WhatsappByMetaBot.d.ts.map +1 -0
- package/dist/whatsapp-by-meta/WhatsappByMetaBot.js +27 -0
- package/dist/whatsapp-by-meta/WhatsappByMetaBot.js.map +1 -0
- package/dist/whatsapp-by-meta/WhatsappByMetaConnector.d.ts +67 -0
- package/dist/whatsapp-by-meta/WhatsappByMetaConnector.d.ts.map +1 -0
- package/dist/whatsapp-by-meta/WhatsappByMetaConnector.js +130 -0
- package/dist/whatsapp-by-meta/WhatsappByMetaConnector.js.map +1 -0
- package/dist/whatsapp-by-meta/WhatsappByMetaContext.d.ts +45 -0
- package/dist/whatsapp-by-meta/WhatsappByMetaContext.d.ts.map +1 -0
- package/dist/whatsapp-by-meta/WhatsappByMetaContext.js +49 -0
- package/dist/whatsapp-by-meta/WhatsappByMetaContext.js.map +1 -0
- package/dist/whatsapp-by-meta/WhatsappByMetaTypes.d.ts +236 -0
- package/dist/whatsapp-by-meta/WhatsappByMetaTypes.d.ts.map +1 -0
- package/dist/whatsapp-by-meta/WhatsappByMetaTypes.js +3 -0
- package/dist/whatsapp-by-meta/WhatsappByMetaTypes.js.map +1 -0
- package/dist/whatsapp-by-meta/events/BaseEvent.d.ts +26 -0
- package/dist/whatsapp-by-meta/events/BaseEvent.d.ts.map +1 -0
- package/dist/whatsapp-by-meta/events/BaseEvent.js +61 -0
- package/dist/whatsapp-by-meta/events/BaseEvent.js.map +1 -0
- package/dist/whatsapp-by-meta/routes.d.ts +20 -0
- package/dist/whatsapp-by-meta/routes.d.ts.map +1 -0
- package/dist/whatsapp-by-meta/routes.js +33 -0
- package/dist/whatsapp-by-meta/routes.js.map +1 -0
- package/dist/withProps.d.ts +5 -0
- package/dist/withProps.d.ts.map +1 -0
- package/dist/withProps.js +16 -0
- package/dist/withProps.js.map +1 -0
- package/package.json +110 -0
- package/router.d.ts +1 -0
- package/router.js +2 -0
- package/test-utils.js +2 -0
package/README.md
ADDED
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
# Bottender
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/bottender)
|
|
4
|
+
[](https://circleci.com/gh/Yoctol/bottender)
|
|
5
|
+
[](https://codecov.io/gh/Yoctol/bottender)
|
|
6
|
+
[](https://opensource.org/licenses/MIT)
|
|
7
|
+
[](https://github.com/Yoctol/bottender#contributing)
|
|
8
|
+
[](https://discord.gg/apNsWBz)
|
|
9
|
+
[](https://gitpod.io/#https://github.com/Yoctol/bottender)
|
|
10
|
+
[](https://twitter.com/intent/follow?screen_name=bottenderjs)
|
|
11
|
+
|
|
12
|
+

|
|
13
|
+
|
|
14
|
+
> The readme below is the documentation for the v1 (stable) version of Bottender. To view the documentation:
|
|
15
|
+
>
|
|
16
|
+
> - for the latest Bottender version (v1.x), visit https://bottender.js.org/docs
|
|
17
|
+
> - for the legacy Bottender version (v0.15), visit https://bottender.js.org/docs/0.15.17
|
|
18
|
+
|
|
19
|
+
- **Declarative** - Bottender takes care of the complexity of conversational UIs for you. Design actions for each event and state in your application, and Bottender will run accordingly. This approach makes your code more predictable and easier to debug.
|
|
20
|
+
|
|
21
|
+
- **Native User Experience** - Bottender lets you create apps on every channel and never compromise on your users’ experience. You can apply progressive enhancement or graceful degradation strategy on your building blocks.
|
|
22
|
+
|
|
23
|
+
- **Easy Setup** - With Bottender, you only need a few configurations to make your bot work with channels, automatic server listening, webhook setup, signature verification and so much more.
|
|
24
|
+
|
|
25
|
+
- **Ready for Production** - There are thousands of bots powered by Bottender. It has been optimized for real world use cases, automatic batching request and dozens of other compelling features.
|
|
26
|
+
|
|
27
|
+
Bottender is built on top of
|
|
28
|
+
[Messaging APIs](https://github.com/bottenderjs/messaging-apis).
|
|
29
|
+
|
|
30
|
+
## Installation
|
|
31
|
+
|
|
32
|
+
You can create a new Bottender app using the CLI tools:
|
|
33
|
+
|
|
34
|
+
```sh
|
|
35
|
+
npx create-bottender-app my-app
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Installation may fail on Windows during compilation of the native dependencies with `node-gyp`. To solve this problem, you can install [`windows-build-tools`](https://github.com/felixrieseberg/windows-build-tools#readme) or check [`node-gyp` documentation](https://github.com/nodejs/node-gyp#on-windows).
|
|
39
|
+
|
|
40
|
+
## Documentation
|
|
41
|
+
|
|
42
|
+
You can find the Bottender documentation [on the website](https://bottender.js.org?new).
|
|
43
|
+
|
|
44
|
+
Check out the [Getting Started](https://bottender.js.org/docs) page for a quick overview.
|
|
45
|
+
|
|
46
|
+
## Community
|
|
47
|
+
|
|
48
|
+
[](https://discord.gg/unmFzmR)
|
|
49
|
+
|
|
50
|
+
You can discuss anything about Bottender or chatbot development in our [Discord](https://discordapp.com/) Server. [Join now!](https://discord.gg/unmFzmR)
|
|
51
|
+
|
|
52
|
+
## Examples
|
|
53
|
+
|
|
54
|
+
We have a bunch of examples in the
|
|
55
|
+
[examples](https://github.com/Yoctol/bottender/tree/master/examples) folder.
|
|
56
|
+
Here is the first one to get you started:
|
|
57
|
+
|
|
58
|
+
```js
|
|
59
|
+
// index.js
|
|
60
|
+
const { router, text } = require('bottender/router');
|
|
61
|
+
|
|
62
|
+
async function SayHi(context) {
|
|
63
|
+
await context.sendText('Hi!');
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
async function Unknown(context) {
|
|
67
|
+
await context.sendText('Sorry, I don’t know what you say.');
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
module.export = function App(context) {
|
|
71
|
+
return router([text('hi', SayHi), text('*', Unknown)]);
|
|
72
|
+
};
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Notable Features
|
|
76
|
+
|
|
77
|
+
### Messenger
|
|
78
|
+
|
|
79
|
+
- Messenger Profile Sync
|
|
80
|
+
- Attachment Upload
|
|
81
|
+
- Handover Protocol
|
|
82
|
+
- Persona
|
|
83
|
+
- Built-in NLP
|
|
84
|
+
- Multiple Pages
|
|
85
|
+
|
|
86
|
+
### LINE
|
|
87
|
+
|
|
88
|
+
- Reply, Push, Multicast, Narrowcast
|
|
89
|
+
- Imagemap
|
|
90
|
+
- Rich menu
|
|
91
|
+
- Room, Group Chat
|
|
92
|
+
- Beacon
|
|
93
|
+
- Icon Switch
|
|
94
|
+
- Line Notify
|
|
95
|
+
- LIFF (LINE Front-end Framework)
|
|
96
|
+
|
|
97
|
+
### Slack
|
|
98
|
+
|
|
99
|
+
- Channel Chat
|
|
100
|
+
- Interactive Message
|
|
101
|
+
- Slash Command
|
|
102
|
+
|
|
103
|
+
### Telegram
|
|
104
|
+
|
|
105
|
+
- Webhook, Long Polling
|
|
106
|
+
- Updating, Deleting Messages
|
|
107
|
+
- Keyboard
|
|
108
|
+
- Group Chat
|
|
109
|
+
- Inline Query
|
|
110
|
+
- Message Live Location
|
|
111
|
+
- Payment
|
|
112
|
+
|
|
113
|
+
### Viber
|
|
114
|
+
|
|
115
|
+
- Subscribed, Unsubscribed Event
|
|
116
|
+
- Delivered, Seen Event
|
|
117
|
+
|
|
118
|
+
## Ecosystem
|
|
119
|
+
|
|
120
|
+
- [bottender-compose](https://github.com/bottenderjs/bottender-compose) - An utility library for Bottender and higher-order handlers.
|
|
121
|
+
|
|
122
|
+
## Contributing
|
|
123
|
+
|
|
124
|
+
Pull Requests and issue reports are welcome. You can follow steps below to submit your pull requests:
|
|
125
|
+
|
|
126
|
+
Fork, then clone the repo:
|
|
127
|
+
|
|
128
|
+
```sh
|
|
129
|
+
git clone git@github.com:your-username/bottender.git
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
Install the dependencies:
|
|
133
|
+
|
|
134
|
+
```sh
|
|
135
|
+
cd bottender
|
|
136
|
+
yarn
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
Make sure the tests pass (including ESLint, TypeScript checks and Jest tests):
|
|
140
|
+
|
|
141
|
+
```sh
|
|
142
|
+
yarn test
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Make your changes and tests, and make sure the tests pass.
|
|
146
|
+
|
|
147
|
+
### Contribute using the online one-click setup
|
|
148
|
+
|
|
149
|
+
You can use Gitpod(a free online VS Code-like) for contributing. With a single click it will launch a workspace and automatically:
|
|
150
|
+
|
|
151
|
+
- clone the bottender repo.
|
|
152
|
+
- install the dependencies.
|
|
153
|
+
- run `yarn run start`.
|
|
154
|
+
|
|
155
|
+
So that you can start straight away.
|
|
156
|
+
|
|
157
|
+
[](https://gitpod.io/#https://github.com/Yoctol/bottender)
|
|
158
|
+
|
|
159
|
+
## License
|
|
160
|
+
|
|
161
|
+
MIT © [Yoctol](https://github.com/Yoctol/bottender)
|
package/bin/cli.js
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { EventEmitter } from 'events';
|
|
3
|
+
import { JsonObject } from 'type-fest';
|
|
4
|
+
import Context from '../context/Context';
|
|
5
|
+
import SessionStore from '../session/SessionStore';
|
|
6
|
+
import { Action, Client, Plugin, RequestContext } from '../types';
|
|
7
|
+
import { Event } from '../context/Event';
|
|
8
|
+
import { Connector } from './Connector';
|
|
9
|
+
type Builder<C extends Context> = {
|
|
10
|
+
build: () => Action<C, any>;
|
|
11
|
+
};
|
|
12
|
+
export declare function run<C extends Context>(action: Action<C, any>): Action<C, any>;
|
|
13
|
+
type RequestHandler<B> = (body: B, requestContext?: RequestContext) => void | Promise<void>;
|
|
14
|
+
export type OnRequest = (body: JsonObject, requestContext?: RequestContext) => void;
|
|
15
|
+
export default class Bot<B extends JsonObject, C extends Client, E extends Event, Ctx extends Context<C, E>, P extends string = string> {
|
|
16
|
+
_sessions: SessionStore;
|
|
17
|
+
_initialized: boolean;
|
|
18
|
+
_connector: Connector<B, C, P>;
|
|
19
|
+
_handler: Action<Ctx, any> | null;
|
|
20
|
+
_errorHandler: Action<Ctx, any> | null;
|
|
21
|
+
_initialState: JsonObject;
|
|
22
|
+
_plugins: Function[];
|
|
23
|
+
_sync: boolean;
|
|
24
|
+
_emitter: EventEmitter;
|
|
25
|
+
_onRequest: OnRequest | undefined;
|
|
26
|
+
constructor({ connector, sessionStore, sync, onRequest, }: {
|
|
27
|
+
connector: Connector<B, C, P>;
|
|
28
|
+
sessionStore?: SessionStore;
|
|
29
|
+
sync?: boolean;
|
|
30
|
+
onRequest?: OnRequest;
|
|
31
|
+
});
|
|
32
|
+
get connector(): Connector<B, C, P>;
|
|
33
|
+
get sessions(): SessionStore;
|
|
34
|
+
get handler(): Action<Ctx, any> | null;
|
|
35
|
+
get emitter(): EventEmitter;
|
|
36
|
+
onEvent(handler: Action<Ctx, any> | Builder<Ctx>): Bot<B, C, E, Ctx>;
|
|
37
|
+
onError(handler: Action<Ctx, any> | Builder<Ctx>): Bot<B, C, E, Ctx>;
|
|
38
|
+
setInitialState(initialState: JsonObject): Bot<B, C, E, Ctx>;
|
|
39
|
+
use(plugin: Plugin<Ctx>): Bot<B, C, E, Ctx>;
|
|
40
|
+
initSessionStore(): Promise<void>;
|
|
41
|
+
createRequestHandler(): RequestHandler<B>;
|
|
42
|
+
}
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=Bot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Bot.d.ts","sourceRoot":"","sources":["../../src/bot/Bot.ts"],"names":[],"mappings":"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"}
|
package/dist/bot/Bot.js
ADDED
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.run = void 0;
|
|
16
|
+
const events_1 = require("events");
|
|
17
|
+
const debug_1 = __importDefault(require("debug"));
|
|
18
|
+
const invariant_1 = __importDefault(require("invariant"));
|
|
19
|
+
const p_map_1 = __importDefault(require("p-map"));
|
|
20
|
+
const CacheBasedSessionStore_1 = __importDefault(require("../session/CacheBasedSessionStore"));
|
|
21
|
+
const MemoryCacheStore_1 = __importDefault(require("../cache/MemoryCacheStore"));
|
|
22
|
+
const utils_1 = require("../utils");
|
|
23
|
+
const debugRequest = (0, debug_1.default)('bottender:request');
|
|
24
|
+
const debugResponse = (0, debug_1.default)('bottender:response');
|
|
25
|
+
const debugSessionRead = (0, debug_1.default)('bottender:session:read');
|
|
26
|
+
const debugSessionWrite = (0, debug_1.default)('bottender:session:write');
|
|
27
|
+
const debugAction = (0, debug_1.default)('bottender:action');
|
|
28
|
+
const MINUTES_IN_ONE_YEAR = 365 * 24 * 60;
|
|
29
|
+
function createMemorySessionStore() {
|
|
30
|
+
const cache = new MemoryCacheStore_1.default(500);
|
|
31
|
+
return new CacheBasedSessionStore_1.default(cache, MINUTES_IN_ONE_YEAR);
|
|
32
|
+
}
|
|
33
|
+
function run(action) {
|
|
34
|
+
return function Run(context, props = {}) {
|
|
35
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
36
|
+
let nextDialog = action;
|
|
37
|
+
(0, invariant_1.default)(typeof nextDialog === 'function', 'Invalid entry action. You may have forgotten to export your entry action in your `index.js` or `src/index.js`.');
|
|
38
|
+
debugAction(`Current Action: ${nextDialog.name || 'Anonymous'}`);
|
|
39
|
+
nextDialog = yield nextDialog(context, props);
|
|
40
|
+
while (typeof nextDialog === 'function') {
|
|
41
|
+
debugAction(`Current Action: ${nextDialog.name || 'Anonymous'}`);
|
|
42
|
+
nextDialog = yield nextDialog(context, {});
|
|
43
|
+
}
|
|
44
|
+
return nextDialog;
|
|
45
|
+
});
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
exports.run = run;
|
|
49
|
+
class Bot {
|
|
50
|
+
constructor({ connector, sessionStore = createMemorySessionStore(), sync = false, onRequest, }) {
|
|
51
|
+
this._initialState = {};
|
|
52
|
+
this._plugins = [];
|
|
53
|
+
this._sessions = sessionStore;
|
|
54
|
+
this._initialized = false;
|
|
55
|
+
this._connector = connector;
|
|
56
|
+
this._handler = null;
|
|
57
|
+
this._errorHandler = null;
|
|
58
|
+
this._sync = sync;
|
|
59
|
+
this._emitter = new events_1.EventEmitter();
|
|
60
|
+
this._onRequest = onRequest;
|
|
61
|
+
}
|
|
62
|
+
get connector() {
|
|
63
|
+
return this._connector;
|
|
64
|
+
}
|
|
65
|
+
get sessions() {
|
|
66
|
+
return this._sessions;
|
|
67
|
+
}
|
|
68
|
+
get handler() {
|
|
69
|
+
return this._handler;
|
|
70
|
+
}
|
|
71
|
+
get emitter() {
|
|
72
|
+
return this._emitter;
|
|
73
|
+
}
|
|
74
|
+
onEvent(handler) {
|
|
75
|
+
(0, invariant_1.default)(handler, 'onEvent: Can not pass `undefined`, `null` or any falsy value as handler');
|
|
76
|
+
this._handler = 'build' in handler ? handler.build() : handler;
|
|
77
|
+
return this;
|
|
78
|
+
}
|
|
79
|
+
onError(handler) {
|
|
80
|
+
(0, invariant_1.default)(handler, 'onError: Can not pass `undefined`, `null` or any falsy value as error handler');
|
|
81
|
+
this._errorHandler = 'build' in handler ? handler.build() : handler;
|
|
82
|
+
return this;
|
|
83
|
+
}
|
|
84
|
+
setInitialState(initialState) {
|
|
85
|
+
this._initialState = initialState;
|
|
86
|
+
return this;
|
|
87
|
+
}
|
|
88
|
+
use(plugin) {
|
|
89
|
+
this._plugins.push(plugin);
|
|
90
|
+
return this;
|
|
91
|
+
}
|
|
92
|
+
initSessionStore() {
|
|
93
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
94
|
+
if (!this._initialized) {
|
|
95
|
+
yield this._sessions.init();
|
|
96
|
+
this._initialized = true;
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
createRequestHandler() {
|
|
101
|
+
if (this._handler == null) {
|
|
102
|
+
throw new Error('Bot: Missing event handler function. You should assign it using onEvent(...)');
|
|
103
|
+
}
|
|
104
|
+
if (!this._emitter.listenerCount('error')) {
|
|
105
|
+
this._emitter.on('error', console.error);
|
|
106
|
+
}
|
|
107
|
+
return (inputBody, requestContext) => __awaiter(this, void 0, void 0, function* () {
|
|
108
|
+
if (!inputBody) {
|
|
109
|
+
throw new Error('Bot.createRequestHandler: Missing argument.');
|
|
110
|
+
}
|
|
111
|
+
debugRequest('Incoming request body:');
|
|
112
|
+
debugRequest(JSON.stringify(inputBody, null, 2));
|
|
113
|
+
yield this.initSessionStore();
|
|
114
|
+
const body = (0, utils_1.camelcaseKeysDeep)(inputBody);
|
|
115
|
+
if (this._onRequest) {
|
|
116
|
+
this._onRequest(body, requestContext);
|
|
117
|
+
}
|
|
118
|
+
const events = this._connector.mapRequestToEvents(body);
|
|
119
|
+
const contexts = yield (0, p_map_1.default)(events, (event) => __awaiter(this, void 0, void 0, function* () {
|
|
120
|
+
const { platform } = this._connector;
|
|
121
|
+
const sessionKey = this._connector.getUniqueSessionKey((['telegram', 'slack', 'viber', 'whatsapp'].includes(this._connector.platform)
|
|
122
|
+
? body
|
|
123
|
+
: event), requestContext);
|
|
124
|
+
let sessionId;
|
|
125
|
+
let session;
|
|
126
|
+
if (sessionKey) {
|
|
127
|
+
sessionId = `${platform}:${sessionKey}`;
|
|
128
|
+
session =
|
|
129
|
+
(yield this._sessions.read(sessionId)) ||
|
|
130
|
+
Object.create(null);
|
|
131
|
+
debugSessionRead(`Read session: ${sessionId}`);
|
|
132
|
+
debugSessionRead(JSON.stringify(session, null, 2));
|
|
133
|
+
Object.defineProperty(session, 'id', {
|
|
134
|
+
configurable: false,
|
|
135
|
+
enumerable: true,
|
|
136
|
+
writable: false,
|
|
137
|
+
value: session.id || sessionId,
|
|
138
|
+
});
|
|
139
|
+
if (!session.platform)
|
|
140
|
+
session.platform = platform;
|
|
141
|
+
Object.defineProperty(session, 'platform', {
|
|
142
|
+
configurable: false,
|
|
143
|
+
enumerable: true,
|
|
144
|
+
writable: false,
|
|
145
|
+
value: session.platform,
|
|
146
|
+
});
|
|
147
|
+
yield this._connector.updateSession(session, (['telegram', 'slack', 'viber', 'whatsapp'].includes(this._connector.platform)
|
|
148
|
+
? body
|
|
149
|
+
: event));
|
|
150
|
+
}
|
|
151
|
+
return this._connector.createContext({
|
|
152
|
+
event,
|
|
153
|
+
session,
|
|
154
|
+
initialState: this._initialState,
|
|
155
|
+
requestContext,
|
|
156
|
+
emitter: this._emitter,
|
|
157
|
+
});
|
|
158
|
+
}), {
|
|
159
|
+
concurrency: 5,
|
|
160
|
+
});
|
|
161
|
+
yield Promise.all(contexts.map((context) => __awaiter(this, void 0, void 0, function* () { return Promise.all(this._plugins.map((ext) => ext(context))); })));
|
|
162
|
+
if (this._handler == null) {
|
|
163
|
+
throw new Error('Bot: Missing event handler function. You should assign it using onEvent(...)');
|
|
164
|
+
}
|
|
165
|
+
const handler = this._handler;
|
|
166
|
+
const errorHandler = this._errorHandler;
|
|
167
|
+
const promises = Promise.all(contexts.map((context) => Promise.resolve()
|
|
168
|
+
.then(() => run(handler)(context, {}))
|
|
169
|
+
.then(() => {
|
|
170
|
+
if (context.handlerDidEnd) {
|
|
171
|
+
return context.handlerDidEnd();
|
|
172
|
+
}
|
|
173
|
+
})
|
|
174
|
+
.catch((err) => {
|
|
175
|
+
if (errorHandler) {
|
|
176
|
+
return run(errorHandler)(context, { error: err });
|
|
177
|
+
}
|
|
178
|
+
throw err;
|
|
179
|
+
})
|
|
180
|
+
.catch((err) => {
|
|
181
|
+
context.emitError(err);
|
|
182
|
+
throw err;
|
|
183
|
+
})));
|
|
184
|
+
if (this._sync) {
|
|
185
|
+
try {
|
|
186
|
+
yield promises;
|
|
187
|
+
yield Promise.all(contexts.map((context) => __awaiter(this, void 0, void 0, function* () {
|
|
188
|
+
context.isSessionWritten = true;
|
|
189
|
+
const { session } = context;
|
|
190
|
+
if (session) {
|
|
191
|
+
session.lastActivity = Date.now();
|
|
192
|
+
debugSessionWrite(`Write session: ${session.id}`);
|
|
193
|
+
debugSessionWrite(JSON.stringify(session, null, 2));
|
|
194
|
+
yield this._sessions.write(session.id, session);
|
|
195
|
+
}
|
|
196
|
+
})));
|
|
197
|
+
}
|
|
198
|
+
catch (err) {
|
|
199
|
+
console.error(err);
|
|
200
|
+
}
|
|
201
|
+
const response = contexts[0].response;
|
|
202
|
+
if (response && typeof response === 'object') {
|
|
203
|
+
debugResponse('Outgoing response:');
|
|
204
|
+
debugResponse(JSON.stringify(response, null, 2));
|
|
205
|
+
}
|
|
206
|
+
return response;
|
|
207
|
+
}
|
|
208
|
+
promises
|
|
209
|
+
.then(() => __awaiter(this, void 0, void 0, function* () {
|
|
210
|
+
yield Promise.all(contexts.map((context) => __awaiter(this, void 0, void 0, function* () {
|
|
211
|
+
context.isSessionWritten = true;
|
|
212
|
+
const { session } = context;
|
|
213
|
+
if (session) {
|
|
214
|
+
session.lastActivity = Date.now();
|
|
215
|
+
debugSessionWrite(`Write session: ${session.id}`);
|
|
216
|
+
debugSessionWrite(JSON.stringify(session, null, 2));
|
|
217
|
+
yield this._sessions.write(session.id, session);
|
|
218
|
+
}
|
|
219
|
+
})));
|
|
220
|
+
}))
|
|
221
|
+
.catch(console.error);
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
exports.default = Bot;
|
|
226
|
+
//# sourceMappingURL=Bot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Bot.js","sourceRoot":"","sources":["../../src/bot/Bot.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { EventEmitter } from 'events';
|
|
3
|
+
import { JsonObject } from 'type-fest';
|
|
4
|
+
import Session from '../session/Session';
|
|
5
|
+
import { Event } from '../context/Event';
|
|
6
|
+
import { RequestContext } from '../types';
|
|
7
|
+
type PlatformWithBodyArg = 'telegram' | 'slack' | 'viber' | 'whatsapp';
|
|
8
|
+
export interface Connector<B, C, P extends string = string, Ev extends Event<any> = Event<any>> {
|
|
9
|
+
client?: C;
|
|
10
|
+
platform: P;
|
|
11
|
+
getUniqueSessionKey(bodyOrEvent: P extends PlatformWithBodyArg ? B : Ev, requestContext?: RequestContext): string | null;
|
|
12
|
+
updateSession(session: Session, bodyOrEvent: P extends PlatformWithBodyArg ? B : Ev): Promise<void>;
|
|
13
|
+
mapRequestToEvents(body: B): Event<any>[];
|
|
14
|
+
createContext(params: {
|
|
15
|
+
event: Event<any>;
|
|
16
|
+
session?: Session | null;
|
|
17
|
+
initialState?: JsonObject | null;
|
|
18
|
+
requestContext?: RequestContext;
|
|
19
|
+
emitter?: EventEmitter | null;
|
|
20
|
+
}): any;
|
|
21
|
+
}
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=Connector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Connector.d.ts","sourceRoot":"","sources":["../../src/bot/Connector.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,OAAO,OAAO,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,KAAK,mBAAmB,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;AAEvE,MAAM,WAAW,SAAS,CACxB,CAAC,EACD,CAAC,EACD,CAAC,SAAS,MAAM,GAAG,MAAM,EACzB,EAAE,SAAS,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC;IAElC,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,QAAQ,EAAE,CAAC,CAAC;IACZ,mBAAmB,CACjB,WAAW,EAAE,CAAC,SAAS,mBAAmB,GAAG,CAAC,GAAG,EAAE,EACnD,cAAc,CAAC,EAAE,cAAc,GAC9B,MAAM,GAAG,IAAI,CAAC;IACjB,aAAa,CACX,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,CAAC,SAAS,mBAAmB,GAAG,CAAC,GAAG,EAAE,GAClD,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,kBAAkB,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;IAC1C,aAAa,CAAC,MAAM,EAAE;QACpB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAClB,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;QACzB,YAAY,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;QACjC,cAAc,CAAC,EAAE,cAAc,CAAC;QAChC,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;KAC/B,GAAG,GAAG,CAAC;CACT"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Connector.js","sourceRoot":"","sources":["../../src/bot/Connector.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import Server, { ServerOptions } from './server/Server';
|
|
2
|
+
type BottenderServerOptions = ServerOptions & {
|
|
3
|
+
dev?: boolean;
|
|
4
|
+
};
|
|
5
|
+
declare function bottender(options: BottenderServerOptions): Server;
|
|
6
|
+
export default bottender;
|
|
7
|
+
//# sourceMappingURL=bottender.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bottender.d.ts","sourceRoot":"","sources":["../src/bottender.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAExD,KAAK,sBAAsB,GAAG,aAAa,GAAG;IAI5C,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,iBAAS,SAAS,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,CAO1D;AAED,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const Server_1 = __importDefault(require("./server/Server"));
|
|
7
|
+
function bottender(options) {
|
|
8
|
+
if (options.dev) {
|
|
9
|
+
const DevServer = require('./server/DevServer').default;
|
|
10
|
+
return new DevServer(options);
|
|
11
|
+
}
|
|
12
|
+
return new Server_1.default(options);
|
|
13
|
+
}
|
|
14
|
+
exports.default = bottender;
|
|
15
|
+
//# sourceMappingURL=bottender.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bottender.js","sourceRoot":"","sources":["../src/bottender.ts"],"names":[],"mappings":";;;;;AAAA,6DAAwD;AASxD,SAAS,SAAS,CAAC,OAA+B;IAChD,IAAI,OAAO,CAAC,GAAG,EAAE;QACf,MAAM,SAAS,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC;QACxD,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;KAC/B;IAED,OAAO,IAAI,gBAAM,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC;AAED,kBAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { default as Bot } from './bot/Bot';
|
|
2
|
+
export { default as Context } from './context/Context';
|
|
3
|
+
export { default as chain } from './chain';
|
|
4
|
+
export { default as withProps } from './withProps';
|
|
5
|
+
export { default as MemoryCacheStore } from './cache/MemoryCacheStore';
|
|
6
|
+
export { default as CacheBasedSessionStore } from './session/CacheBasedSessionStore';
|
|
7
|
+
export { default as MemorySessionStore } from './session/MemorySessionStore';
|
|
8
|
+
export { default as withTyping } from './plugins/withTyping';
|
|
9
|
+
//# sourceMappingURL=browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAGvD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AAGnD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGvE,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AACrF,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAO7E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/browser.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.withTyping = exports.MemorySessionStore = exports.CacheBasedSessionStore = exports.MemoryCacheStore = exports.withProps = exports.chain = exports.Context = exports.Bot = void 0;
|
|
7
|
+
var Bot_1 = require("./bot/Bot");
|
|
8
|
+
Object.defineProperty(exports, "Bot", { enumerable: true, get: function () { return __importDefault(Bot_1).default; } });
|
|
9
|
+
var Context_1 = require("./context/Context");
|
|
10
|
+
Object.defineProperty(exports, "Context", { enumerable: true, get: function () { return __importDefault(Context_1).default; } });
|
|
11
|
+
var chain_1 = require("./chain");
|
|
12
|
+
Object.defineProperty(exports, "chain", { enumerable: true, get: function () { return __importDefault(chain_1).default; } });
|
|
13
|
+
var withProps_1 = require("./withProps");
|
|
14
|
+
Object.defineProperty(exports, "withProps", { enumerable: true, get: function () { return __importDefault(withProps_1).default; } });
|
|
15
|
+
var MemoryCacheStore_1 = require("./cache/MemoryCacheStore");
|
|
16
|
+
Object.defineProperty(exports, "MemoryCacheStore", { enumerable: true, get: function () { return __importDefault(MemoryCacheStore_1).default; } });
|
|
17
|
+
var CacheBasedSessionStore_1 = require("./session/CacheBasedSessionStore");
|
|
18
|
+
Object.defineProperty(exports, "CacheBasedSessionStore", { enumerable: true, get: function () { return __importDefault(CacheBasedSessionStore_1).default; } });
|
|
19
|
+
var MemorySessionStore_1 = require("./session/MemorySessionStore");
|
|
20
|
+
Object.defineProperty(exports, "MemorySessionStore", { enumerable: true, get: function () { return __importDefault(MemorySessionStore_1).default; } });
|
|
21
|
+
var withTyping_1 = require("./plugins/withTyping");
|
|
22
|
+
Object.defineProperty(exports, "withTyping", { enumerable: true, get: function () { return __importDefault(withTyping_1).default; } });
|
|
23
|
+
//# sourceMappingURL=browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":";;;;;;AACA,iCAA2C;AAAlC,2GAAA,OAAO,OAAO;AACvB,6CAAuD;AAA9C,mHAAA,OAAO,OAAW;AAG3B,iCAA2C;AAAlC,+GAAA,OAAO,OAAS;AACzB,yCAAmD;AAA1C,uHAAA,OAAO,OAAa;AAG7B,6DAAuE;AAA9D,qIAAA,OAAO,OAAoB;AAGpC,2EAAqF;AAA5E,iJAAA,OAAO,OAA0B;AAC1C,mEAA6E;AAApE,yIAAA,OAAO,OAAsB;AAOtC,mDAA6D;AAApD,yHAAA,OAAO,OAAc"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { JsonObject } from 'type-fest';
|
|
2
|
+
export type CacheValue = number | JsonObject;
|
|
3
|
+
type CacheStore = {
|
|
4
|
+
get(key: string): Promise<CacheValue | null>;
|
|
5
|
+
all(): Promise<CacheValue[]>;
|
|
6
|
+
put(key: string, value: CacheValue, minutes: number): Promise<void>;
|
|
7
|
+
forget(key: string): Promise<void>;
|
|
8
|
+
flush(): Promise<void>;
|
|
9
|
+
getPrefix(): string;
|
|
10
|
+
};
|
|
11
|
+
export default CacheStore;
|
|
12
|
+
//# sourceMappingURL=CacheStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CacheStore.d.ts","sourceRoot":"","sources":["../../src/cache/CacheStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC;AAE7C,KAAK,UAAU,GAAG;IAChB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAE7C,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAE7B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB,SAAS,IAAI,MAAM,CAAC;CACrB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CacheStore.js","sourceRoot":"","sources":["../../src/cache/CacheStore.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import LRU from 'lru-cache';
|
|
2
|
+
import CacheStore, { CacheValue } from './CacheStore';
|
|
3
|
+
export default class MemoryCacheStore implements CacheStore {
|
|
4
|
+
_lru: LRU<string, any>;
|
|
5
|
+
constructor(max?: number);
|
|
6
|
+
get(key: string): Promise<CacheValue | null>;
|
|
7
|
+
all(): Promise<CacheValue[]>;
|
|
8
|
+
put(key: string, value: CacheValue, minutes: number): Promise<void>;
|
|
9
|
+
forget(key: string): Promise<void>;
|
|
10
|
+
flush(): Promise<void>;
|
|
11
|
+
getPrefix(): string;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=MemoryCacheStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemoryCacheStore.d.ts","sourceRoot":"","sources":["../../src/cache/MemoryCacheStore.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,WAAW,CAAC;AAG5B,OAAO,UAAU,EAAE,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,CAAC,OAAO,OAAO,gBAAiB,YAAW,UAAU;IACzD,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAEX,GAAG,CAAC,EAAE,MAAM;IAIlB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAU5C,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAI5B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWnE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,SAAS,IAAI,MAAM;CAGpB"}
|