@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.
Files changed (454) hide show
  1. package/README.md +161 -0
  2. package/bin/cli.js +4 -0
  3. package/dist/bot/Bot.d.ts +44 -0
  4. package/dist/bot/Bot.d.ts.map +1 -0
  5. package/dist/bot/Bot.js +226 -0
  6. package/dist/bot/Bot.js.map +1 -0
  7. package/dist/bot/Connector.d.ts +23 -0
  8. package/dist/bot/Connector.d.ts.map +1 -0
  9. package/dist/bot/Connector.js +3 -0
  10. package/dist/bot/Connector.js.map +1 -0
  11. package/dist/bottender.d.ts +7 -0
  12. package/dist/bottender.d.ts.map +1 -0
  13. package/dist/bottender.js +15 -0
  14. package/dist/bottender.js.map +1 -0
  15. package/dist/browser.d.ts +9 -0
  16. package/dist/browser.d.ts.map +1 -0
  17. package/dist/browser.js +23 -0
  18. package/dist/browser.js.map +1 -0
  19. package/dist/cache/CacheStore.d.ts +12 -0
  20. package/dist/cache/CacheStore.d.ts.map +1 -0
  21. package/dist/cache/CacheStore.js +3 -0
  22. package/dist/cache/CacheStore.js.map +1 -0
  23. package/dist/cache/MemoryCacheStore.d.ts +13 -0
  24. package/dist/cache/MemoryCacheStore.d.ts.map +1 -0
  25. package/dist/cache/MemoryCacheStore.js +59 -0
  26. package/dist/cache/MemoryCacheStore.js.map +1 -0
  27. package/dist/cache/RedisCacheStore.d.ts +18 -0
  28. package/dist/cache/RedisCacheStore.d.ts.map +1 -0
  29. package/dist/cache/RedisCacheStore.js +79 -0
  30. package/dist/cache/RedisCacheStore.js.map +1 -0
  31. package/dist/chain.d.ts +5 -0
  32. package/dist/chain.d.ts.map +1 -0
  33. package/dist/chain.js +27 -0
  34. package/dist/chain.js.map +1 -0
  35. package/dist/cli/index.d.ts +11 -0
  36. package/dist/cli/index.d.ts.map +1 -0
  37. package/dist/cli/index.js +99 -0
  38. package/dist/cli/index.js.map +1 -0
  39. package/dist/cli/providers/index.d.ts +37 -0
  40. package/dist/cli/providers/index.d.ts.map +1 -0
  41. package/dist/cli/providers/index.js +18 -0
  42. package/dist/cli/providers/index.js.map +1 -0
  43. package/dist/cli/providers/line/help.d.ts +3 -0
  44. package/dist/cli/providers/line/help.d.ts.map +1 -0
  45. package/dist/cli/providers/line/help.js +9 -0
  46. package/dist/cli/providers/line/help.js.map +1 -0
  47. package/dist/cli/providers/line/index.d.ts +7 -0
  48. package/dist/cli/providers/line/index.d.ts.map +1 -0
  49. package/dist/cli/providers/line/index.js +10 -0
  50. package/dist/cli/providers/line/index.js.map +1 -0
  51. package/dist/cli/providers/messenger/help.d.ts +3 -0
  52. package/dist/cli/providers/messenger/help.d.ts.map +1 -0
  53. package/dist/cli/providers/messenger/help.js +31 -0
  54. package/dist/cli/providers/messenger/help.js.map +1 -0
  55. package/dist/cli/providers/messenger/index.d.ts +10 -0
  56. package/dist/cli/providers/messenger/index.d.ts.map +1 -0
  57. package/dist/cli/providers/messenger/index.js +19 -0
  58. package/dist/cli/providers/messenger/index.js.map +1 -0
  59. package/dist/cli/providers/messenger/persona.d.ts +7 -0
  60. package/dist/cli/providers/messenger/persona.d.ts.map +1 -0
  61. package/dist/cli/providers/messenger/persona.js +235 -0
  62. package/dist/cli/providers/messenger/persona.js.map +1 -0
  63. package/dist/cli/providers/messenger/profile.d.ts +9 -0
  64. package/dist/cli/providers/messenger/profile.d.ts.map +1 -0
  65. package/dist/cli/providers/messenger/profile.js +233 -0
  66. package/dist/cli/providers/messenger/profile.js.map +1 -0
  67. package/dist/cli/providers/messenger/webhook.d.ts +4 -0
  68. package/dist/cli/providers/messenger/webhook.d.ts.map +1 -0
  69. package/dist/cli/providers/messenger/webhook.js +165 -0
  70. package/dist/cli/providers/messenger/webhook.js.map +1 -0
  71. package/dist/cli/providers/sh/dev.d.ts +4 -0
  72. package/dist/cli/providers/sh/dev.d.ts.map +1 -0
  73. package/dist/cli/providers/sh/dev.js +79 -0
  74. package/dist/cli/providers/sh/dev.js.map +1 -0
  75. package/dist/cli/providers/sh/help.d.ts +3 -0
  76. package/dist/cli/providers/sh/help.d.ts.map +1 -0
  77. package/dist/cli/providers/sh/help.js +42 -0
  78. package/dist/cli/providers/sh/help.js.map +1 -0
  79. package/dist/cli/providers/sh/index.d.ts +10 -0
  80. package/dist/cli/providers/sh/index.d.ts.map +1 -0
  81. package/dist/cli/providers/sh/index.js +19 -0
  82. package/dist/cli/providers/sh/index.js.map +1 -0
  83. package/dist/cli/providers/sh/init.d.ts +3 -0
  84. package/dist/cli/providers/sh/init.d.ts.map +1 -0
  85. package/dist/cli/providers/sh/init.js +22 -0
  86. package/dist/cli/providers/sh/init.js.map +1 -0
  87. package/dist/cli/providers/sh/start.d.ts +4 -0
  88. package/dist/cli/providers/sh/start.d.ts.map +1 -0
  89. package/dist/cli/providers/sh/start.js +51 -0
  90. package/dist/cli/providers/sh/start.js.map +1 -0
  91. package/dist/cli/providers/sh/utils/argCommon.d.ts +8 -0
  92. package/dist/cli/providers/sh/utils/argCommon.d.ts.map +1 -0
  93. package/dist/cli/providers/sh/utils/argCommon.js +10 -0
  94. package/dist/cli/providers/sh/utils/argCommon.js.map +1 -0
  95. package/dist/cli/providers/sh/utils/getArgs.d.ts +9 -0
  96. package/dist/cli/providers/sh/utils/getArgs.d.ts.map +1 -0
  97. package/dist/cli/providers/sh/utils/getArgs.js +10 -0
  98. package/dist/cli/providers/sh/utils/getArgs.js.map +1 -0
  99. package/dist/cli/providers/sh/utils/getSubArgs.d.ts +6 -0
  100. package/dist/cli/providers/sh/utils/getSubArgs.d.ts.map +1 -0
  101. package/dist/cli/providers/sh/utils/getSubArgs.js +23 -0
  102. package/dist/cli/providers/sh/utils/getSubArgs.js.map +1 -0
  103. package/dist/cli/providers/telegram/help.d.ts +3 -0
  104. package/dist/cli/providers/telegram/help.d.ts.map +1 -0
  105. package/dist/cli/providers/telegram/help.js +34 -0
  106. package/dist/cli/providers/telegram/help.js.map +1 -0
  107. package/dist/cli/providers/telegram/index.d.ts +8 -0
  108. package/dist/cli/providers/telegram/index.d.ts.map +1 -0
  109. package/dist/cli/providers/telegram/index.js +13 -0
  110. package/dist/cli/providers/telegram/index.js.map +1 -0
  111. package/dist/cli/providers/telegram/webhook.d.ts +6 -0
  112. package/dist/cli/providers/telegram/webhook.d.ts.map +1 -0
  113. package/dist/cli/providers/telegram/webhook.js +149 -0
  114. package/dist/cli/providers/telegram/webhook.js.map +1 -0
  115. package/dist/cli/providers/viber/help.d.ts +3 -0
  116. package/dist/cli/providers/viber/help.d.ts.map +1 -0
  117. package/dist/cli/providers/viber/help.js +33 -0
  118. package/dist/cli/providers/viber/help.js.map +1 -0
  119. package/dist/cli/providers/viber/index.d.ts +8 -0
  120. package/dist/cli/providers/viber/index.d.ts.map +1 -0
  121. package/dist/cli/providers/viber/index.js +13 -0
  122. package/dist/cli/providers/viber/index.js.map +1 -0
  123. package/dist/cli/providers/viber/webhook.d.ts +5 -0
  124. package/dist/cli/providers/viber/webhook.d.ts.map +1 -0
  125. package/dist/cli/providers/viber/webhook.js +122 -0
  126. package/dist/cli/providers/viber/webhook.js.map +1 -0
  127. package/dist/console/ConsoleBot.d.ts +17 -0
  128. package/dist/console/ConsoleBot.d.ts.map +1 -0
  129. package/dist/console/ConsoleBot.js +80 -0
  130. package/dist/console/ConsoleBot.js.map +1 -0
  131. package/dist/console/ConsoleClient.d.ts +4 -0
  132. package/dist/console/ConsoleClient.d.ts.map +1 -0
  133. package/dist/console/ConsoleClient.js +3 -0
  134. package/dist/console/ConsoleClient.js.map +1 -0
  135. package/dist/console/ConsoleConnector.d.ts +35 -0
  136. package/dist/console/ConsoleConnector.d.ts.map +1 -0
  137. package/dist/console/ConsoleConnector.js +62 -0
  138. package/dist/console/ConsoleConnector.js.map +1 -0
  139. package/dist/console/ConsoleContext.d.ts +28 -0
  140. package/dist/console/ConsoleContext.d.ts.map +1 -0
  141. package/dist/console/ConsoleContext.js +66 -0
  142. package/dist/console/ConsoleContext.js.map +1 -0
  143. package/dist/console/ConsoleEvent.d.ts +24 -0
  144. package/dist/console/ConsoleEvent.d.ts.map +1 -0
  145. package/dist/console/ConsoleEvent.js +36 -0
  146. package/dist/console/ConsoleEvent.js.map +1 -0
  147. package/dist/context/Context.d.ts +52 -0
  148. package/dist/context/Context.d.ts.map +1 -0
  149. package/dist/context/Context.js +118 -0
  150. package/dist/context/Context.js.map +1 -0
  151. package/dist/context/Event.d.ts +8 -0
  152. package/dist/context/Event.d.ts.map +1 -0
  153. package/dist/context/Event.js +3 -0
  154. package/dist/context/Event.js.map +1 -0
  155. package/dist/index.d.ts +69 -0
  156. package/dist/index.d.ts.map +1 -0
  157. package/dist/index.js +155 -0
  158. package/dist/index.js.map +1 -0
  159. package/dist/initializeServer.d.ts +10 -0
  160. package/dist/initializeServer.d.ts.map +1 -0
  161. package/dist/initializeServer.js +98 -0
  162. package/dist/initializeServer.js.map +1 -0
  163. package/dist/line/LineBot.d.ts +15 -0
  164. package/dist/line/LineBot.d.ts.map +1 -0
  165. package/dist/line/LineBot.js +27 -0
  166. package/dist/line/LineBot.js.map +1 -0
  167. package/dist/line/LineConnector.d.ts +92 -0
  168. package/dist/line/LineConnector.d.ts.map +1 -0
  169. package/dist/line/LineConnector.js +283 -0
  170. package/dist/line/LineConnector.js.map +1 -0
  171. package/dist/line/LineContext.d.ts +135 -0
  172. package/dist/line/LineContext.d.ts.map +1 -0
  173. package/dist/line/LineContext.js +419 -0
  174. package/dist/line/LineContext.js.map +1 -0
  175. package/dist/line/LineEvent.d.ts +61 -0
  176. package/dist/line/LineEvent.d.ts.map +1 -0
  177. package/dist/line/LineEvent.js +217 -0
  178. package/dist/line/LineEvent.js.map +1 -0
  179. package/dist/line/LineTypes.d.ts +199 -0
  180. package/dist/line/LineTypes.d.ts.map +1 -0
  181. package/dist/line/LineTypes.js +18 -0
  182. package/dist/line/LineTypes.js.map +1 -0
  183. package/dist/line/routes.d.ts +33 -0
  184. package/dist/line/routes.d.ts.map +1 -0
  185. package/dist/line/routes.js +89 -0
  186. package/dist/line/routes.js.map +1 -0
  187. package/dist/messenger/FacebookBaseConnector.d.ts +66 -0
  188. package/dist/messenger/FacebookBaseConnector.d.ts.map +1 -0
  189. package/dist/messenger/FacebookBaseConnector.js +118 -0
  190. package/dist/messenger/FacebookBaseConnector.js.map +1 -0
  191. package/dist/messenger/MessengerBot.d.ts +15 -0
  192. package/dist/messenger/MessengerBot.d.ts.map +1 -0
  193. package/dist/messenger/MessengerBot.js +27 -0
  194. package/dist/messenger/MessengerBot.js.map +1 -0
  195. package/dist/messenger/MessengerConnector.d.ts +37 -0
  196. package/dist/messenger/MessengerConnector.d.ts.map +1 -0
  197. package/dist/messenger/MessengerConnector.js +204 -0
  198. package/dist/messenger/MessengerConnector.js.map +1 -0
  199. package/dist/messenger/MessengerContext.d.ts +114 -0
  200. package/dist/messenger/MessengerContext.d.ts.map +1 -0
  201. package/dist/messenger/MessengerContext.js +547 -0
  202. package/dist/messenger/MessengerContext.js.map +1 -0
  203. package/dist/messenger/MessengerEvent.d.ts +76 -0
  204. package/dist/messenger/MessengerEvent.d.ts.map +1 -0
  205. package/dist/messenger/MessengerEvent.js +380 -0
  206. package/dist/messenger/MessengerEvent.js.map +1 -0
  207. package/dist/messenger/MessengerTypes.d.ts +292 -0
  208. package/dist/messenger/MessengerTypes.d.ts.map +1 -0
  209. package/dist/messenger/MessengerTypes.js +18 -0
  210. package/dist/messenger/MessengerTypes.js.map +1 -0
  211. package/dist/messenger/routes.d.ts +39 -0
  212. package/dist/messenger/routes.d.ts.map +1 -0
  213. package/dist/messenger/routes.js +109 -0
  214. package/dist/messenger/routes.js.map +1 -0
  215. package/dist/plugins/withTyping.d.ts +6 -0
  216. package/dist/plugins/withTyping.d.ts.map +1 -0
  217. package/dist/plugins/withTyping.js +135 -0
  218. package/dist/plugins/withTyping.js.map +1 -0
  219. package/dist/router/index.d.ts +39 -0
  220. package/dist/router/index.d.ts.map +1 -0
  221. package/dist/router/index.js +166 -0
  222. package/dist/router/index.js.map +1 -0
  223. package/dist/server/DevServer.d.ts +6 -0
  224. package/dist/server/DevServer.d.ts.map +1 -0
  225. package/dist/server/DevServer.js +27 -0
  226. package/dist/server/DevServer.js.map +1 -0
  227. package/dist/server/Server.d.ts +26 -0
  228. package/dist/server/Server.d.ts.map +1 -0
  229. package/dist/server/Server.js +86 -0
  230. package/dist/server/Server.js.map +1 -0
  231. package/dist/session/CacheBasedSessionStore.d.ts +14 -0
  232. package/dist/session/CacheBasedSessionStore.d.ts.map +1 -0
  233. package/dist/session/CacheBasedSessionStore.js +44 -0
  234. package/dist/session/CacheBasedSessionStore.js.map +1 -0
  235. package/dist/session/FileSessionStore.d.ts +20 -0
  236. package/dist/session/FileSessionStore.d.ts.map +1 -0
  237. package/dist/session/FileSessionStore.js +118 -0
  238. package/dist/session/FileSessionStore.js.map +1 -0
  239. package/dist/session/MemorySessionStore.d.ts +10 -0
  240. package/dist/session/MemorySessionStore.d.ts.map +1 -0
  241. package/dist/session/MemorySessionStore.js +25 -0
  242. package/dist/session/MemorySessionStore.js.map +1 -0
  243. package/dist/session/MongoSessionStore.d.ts +23 -0
  244. package/dist/session/MongoSessionStore.d.ts.map +1 -0
  245. package/dist/session/MongoSessionStore.js +97 -0
  246. package/dist/session/MongoSessionStore.js.map +1 -0
  247. package/dist/session/RedisSessionStore.d.ts +14 -0
  248. package/dist/session/RedisSessionStore.d.ts.map +1 -0
  249. package/dist/session/RedisSessionStore.js +15 -0
  250. package/dist/session/RedisSessionStore.js.map +1 -0
  251. package/dist/session/Session.d.ts +3 -0
  252. package/dist/session/Session.d.ts.map +1 -0
  253. package/dist/session/Session.js +3 -0
  254. package/dist/session/Session.js.map +1 -0
  255. package/dist/session/SessionStore.d.ts +10 -0
  256. package/dist/session/SessionStore.d.ts.map +1 -0
  257. package/dist/session/SessionStore.js +3 -0
  258. package/dist/session/SessionStore.js.map +1 -0
  259. package/dist/shared/getBottenderConfig.d.ts +5 -0
  260. package/dist/shared/getBottenderConfig.d.ts.map +1 -0
  261. package/dist/shared/getBottenderConfig.js +24 -0
  262. package/dist/shared/getBottenderConfig.js.map +1 -0
  263. package/dist/shared/getChannelBotAndRequestContext.d.ts +10 -0
  264. package/dist/shared/getChannelBotAndRequestContext.d.ts.map +1 -0
  265. package/dist/shared/getChannelBotAndRequestContext.js +41 -0
  266. package/dist/shared/getChannelBotAndRequestContext.js.map +1 -0
  267. package/dist/shared/getChannelBots.d.ts +6 -0
  268. package/dist/shared/getChannelBots.d.ts.map +1 -0
  269. package/dist/shared/getChannelBots.js +84 -0
  270. package/dist/shared/getChannelBots.js.map +1 -0
  271. package/dist/shared/getChannelConfig.d.ts +5 -0
  272. package/dist/shared/getChannelConfig.d.ts.map +1 -0
  273. package/dist/shared/getChannelConfig.js +28 -0
  274. package/dist/shared/getChannelConfig.js.map +1 -0
  275. package/dist/shared/getChannelSchema.d.ts +4 -0
  276. package/dist/shared/getChannelSchema.d.ts.map +1 -0
  277. package/dist/shared/getChannelSchema.js +110 -0
  278. package/dist/shared/getChannelSchema.js.map +1 -0
  279. package/dist/shared/getClient.d.ts +11 -0
  280. package/dist/shared/getClient.d.ts.map +1 -0
  281. package/dist/shared/getClient.js +36 -0
  282. package/dist/shared/getClient.js.map +1 -0
  283. package/dist/shared/getConsoleBot.d.ts +5 -0
  284. package/dist/shared/getConsoleBot.d.ts.map +1 -0
  285. package/dist/shared/getConsoleBot.js +43 -0
  286. package/dist/shared/getConsoleBot.js.map +1 -0
  287. package/dist/shared/getSessionStore.d.ts +5 -0
  288. package/dist/shared/getSessionStore.d.ts.map +1 -0
  289. package/dist/shared/getSessionStore.js +41 -0
  290. package/dist/shared/getSessionStore.js.map +1 -0
  291. package/dist/shared/getWebhookFromNgrok.d.ts +2 -0
  292. package/dist/shared/getWebhookFromNgrok.d.ts.map +1 -0
  293. package/dist/shared/getWebhookFromNgrok.js +33 -0
  294. package/dist/shared/getWebhookFromNgrok.js.map +1 -0
  295. package/dist/shared/log.d.ts +6 -0
  296. package/dist/shared/log.d.ts.map +1 -0
  297. package/dist/shared/log.js +29 -0
  298. package/dist/shared/log.js.map +1 -0
  299. package/dist/slack/SlackBot.d.ts +22 -0
  300. package/dist/slack/SlackBot.d.ts.map +1 -0
  301. package/dist/slack/SlackBot.js +30 -0
  302. package/dist/slack/SlackBot.js.map +1 -0
  303. package/dist/slack/SlackConnector.d.ts +72 -0
  304. package/dist/slack/SlackConnector.d.ts.map +1 -0
  305. package/dist/slack/SlackConnector.js +302 -0
  306. package/dist/slack/SlackConnector.js.map +1 -0
  307. package/dist/slack/SlackContext.d.ts +65 -0
  308. package/dist/slack/SlackContext.d.ts.map +1 -0
  309. package/dist/slack/SlackContext.js +131 -0
  310. package/dist/slack/SlackContext.js.map +1 -0
  311. package/dist/slack/SlackEvent.d.ts +28 -0
  312. package/dist/slack/SlackEvent.d.ts.map +1 -0
  313. package/dist/slack/SlackEvent.js +171 -0
  314. package/dist/slack/SlackEvent.js.map +1 -0
  315. package/dist/slack/SlackTypes.d.ts +79 -0
  316. package/dist/slack/SlackTypes.d.ts.map +1 -0
  317. package/dist/slack/SlackTypes.js +18 -0
  318. package/dist/slack/SlackTypes.js.map +1 -0
  319. package/dist/slack/routes.d.ts +24 -0
  320. package/dist/slack/routes.d.ts.map +1 -0
  321. package/dist/slack/routes.js +25 -0
  322. package/dist/slack/routes.js.map +1 -0
  323. package/dist/telegram/TelegramBot.d.ts +20 -0
  324. package/dist/telegram/TelegramBot.d.ts.map +1 -0
  325. package/dist/telegram/TelegramBot.js +68 -0
  326. package/dist/telegram/TelegramBot.js.map +1 -0
  327. package/dist/telegram/TelegramConnector.d.ts +42 -0
  328. package/dist/telegram/TelegramConnector.d.ts.map +1 -0
  329. package/dist/telegram/TelegramConnector.js +191 -0
  330. package/dist/telegram/TelegramConnector.js.map +1 -0
  331. package/dist/telegram/TelegramContext.d.ts +64 -0
  332. package/dist/telegram/TelegramContext.d.ts.map +1 -0
  333. package/dist/telegram/TelegramContext.js +742 -0
  334. package/dist/telegram/TelegramContext.js.map +1 -0
  335. package/dist/telegram/TelegramEvent.d.ts +61 -0
  336. package/dist/telegram/TelegramEvent.d.ts.map +1 -0
  337. package/dist/telegram/TelegramEvent.js +246 -0
  338. package/dist/telegram/TelegramEvent.js.map +1 -0
  339. package/dist/telegram/TelegramTypes.d.ts +27 -0
  340. package/dist/telegram/TelegramTypes.d.ts.map +1 -0
  341. package/dist/telegram/TelegramTypes.js +18 -0
  342. package/dist/telegram/TelegramTypes.js.map +1 -0
  343. package/dist/telegram/routes.d.ts +25 -0
  344. package/dist/telegram/routes.d.ts.map +1 -0
  345. package/dist/telegram/routes.js +53 -0
  346. package/dist/telegram/routes.js.map +1 -0
  347. package/dist/test-utils/ContextSimulator.d.ts +196 -0
  348. package/dist/test-utils/ContextSimulator.d.ts.map +1 -0
  349. package/dist/test-utils/ContextSimulator.js +237 -0
  350. package/dist/test-utils/ContextSimulator.js.map +1 -0
  351. package/dist/test-utils/SimulatedContext.d.ts +9 -0
  352. package/dist/test-utils/SimulatedContext.d.ts.map +1 -0
  353. package/dist/test-utils/SimulatedContext.js +18 -0
  354. package/dist/test-utils/SimulatedContext.js.map +1 -0
  355. package/dist/test-utils/index.d.ts +2 -0
  356. package/dist/test-utils/index.d.ts.map +1 -0
  357. package/dist/test-utils/index.js +9 -0
  358. package/dist/test-utils/index.js.map +1 -0
  359. package/dist/types.d.ts +107 -0
  360. package/dist/types.d.ts.map +1 -0
  361. package/dist/types.js +22 -0
  362. package/dist/types.js.map +1 -0
  363. package/dist/utils.d.ts +4 -0
  364. package/dist/utils.d.ts.map +1 -0
  365. package/dist/utils.js +13 -0
  366. package/dist/utils.js.map +1 -0
  367. package/dist/viber/ViberBot.d.ts +15 -0
  368. package/dist/viber/ViberBot.d.ts.map +1 -0
  369. package/dist/viber/ViberBot.js +27 -0
  370. package/dist/viber/ViberBot.js.map +1 -0
  371. package/dist/viber/ViberConnector.d.ts +62 -0
  372. package/dist/viber/ViberConnector.d.ts.map +1 -0
  373. package/dist/viber/ViberConnector.js +152 -0
  374. package/dist/viber/ViberConnector.js.map +1 -0
  375. package/dist/viber/ViberContext.d.ts +20 -0
  376. package/dist/viber/ViberContext.d.ts.map +1 -0
  377. package/dist/viber/ViberContext.js +132 -0
  378. package/dist/viber/ViberContext.js.map +1 -0
  379. package/dist/viber/ViberEvent.d.ts +39 -0
  380. package/dist/viber/ViberEvent.d.ts.map +1 -0
  381. package/dist/viber/ViberEvent.js +150 -0
  382. package/dist/viber/ViberEvent.js.map +1 -0
  383. package/dist/viber/ViberTypes.d.ts +82 -0
  384. package/dist/viber/ViberTypes.d.ts.map +1 -0
  385. package/dist/viber/ViberTypes.js +18 -0
  386. package/dist/viber/ViberTypes.js.map +1 -0
  387. package/dist/viber/routes.d.ts +21 -0
  388. package/dist/viber/routes.d.ts.map +1 -0
  389. package/dist/viber/routes.js +37 -0
  390. package/dist/viber/routes.js.map +1 -0
  391. package/dist/whatsapp/TwilioClient.d.ts +55 -0
  392. package/dist/whatsapp/TwilioClient.d.ts.map +1 -0
  393. package/dist/whatsapp/TwilioClient.js +66 -0
  394. package/dist/whatsapp/TwilioClient.js.map +1 -0
  395. package/dist/whatsapp/WhatsappBot.d.ts +15 -0
  396. package/dist/whatsapp/WhatsappBot.d.ts.map +1 -0
  397. package/dist/whatsapp/WhatsappBot.js +27 -0
  398. package/dist/whatsapp/WhatsappBot.js.map +1 -0
  399. package/dist/whatsapp/WhatsappConnector.d.ts +64 -0
  400. package/dist/whatsapp/WhatsappConnector.d.ts.map +1 -0
  401. package/dist/whatsapp/WhatsappConnector.js +111 -0
  402. package/dist/whatsapp/WhatsappConnector.js.map +1 -0
  403. package/dist/whatsapp/WhatsappContext.d.ts +17 -0
  404. package/dist/whatsapp/WhatsappContext.d.ts.map +1 -0
  405. package/dist/whatsapp/WhatsappContext.js +30 -0
  406. package/dist/whatsapp/WhatsappContext.js.map +1 -0
  407. package/dist/whatsapp/WhatsappEvent.d.ts +25 -0
  408. package/dist/whatsapp/WhatsappEvent.d.ts.map +1 -0
  409. package/dist/whatsapp/WhatsappEvent.js +60 -0
  410. package/dist/whatsapp/WhatsappEvent.js.map +1 -0
  411. package/dist/whatsapp/WhatsappTypes.d.ts +59 -0
  412. package/dist/whatsapp/WhatsappTypes.d.ts.map +1 -0
  413. package/dist/whatsapp/WhatsappTypes.js +3 -0
  414. package/dist/whatsapp/WhatsappTypes.js.map +1 -0
  415. package/dist/whatsapp/routes.d.ts +20 -0
  416. package/dist/whatsapp/routes.d.ts.map +1 -0
  417. package/dist/whatsapp/routes.js +33 -0
  418. package/dist/whatsapp/routes.js.map +1 -0
  419. package/dist/whatsapp-by-meta/MetaClient.d.ts +297 -0
  420. package/dist/whatsapp-by-meta/MetaClient.d.ts.map +1 -0
  421. package/dist/whatsapp-by-meta/MetaClient.js +74 -0
  422. package/dist/whatsapp-by-meta/MetaClient.js.map +1 -0
  423. package/dist/whatsapp-by-meta/WhatsappByMetaBot.d.ts +15 -0
  424. package/dist/whatsapp-by-meta/WhatsappByMetaBot.d.ts.map +1 -0
  425. package/dist/whatsapp-by-meta/WhatsappByMetaBot.js +27 -0
  426. package/dist/whatsapp-by-meta/WhatsappByMetaBot.js.map +1 -0
  427. package/dist/whatsapp-by-meta/WhatsappByMetaConnector.d.ts +67 -0
  428. package/dist/whatsapp-by-meta/WhatsappByMetaConnector.d.ts.map +1 -0
  429. package/dist/whatsapp-by-meta/WhatsappByMetaConnector.js +130 -0
  430. package/dist/whatsapp-by-meta/WhatsappByMetaConnector.js.map +1 -0
  431. package/dist/whatsapp-by-meta/WhatsappByMetaContext.d.ts +45 -0
  432. package/dist/whatsapp-by-meta/WhatsappByMetaContext.d.ts.map +1 -0
  433. package/dist/whatsapp-by-meta/WhatsappByMetaContext.js +49 -0
  434. package/dist/whatsapp-by-meta/WhatsappByMetaContext.js.map +1 -0
  435. package/dist/whatsapp-by-meta/WhatsappByMetaTypes.d.ts +236 -0
  436. package/dist/whatsapp-by-meta/WhatsappByMetaTypes.d.ts.map +1 -0
  437. package/dist/whatsapp-by-meta/WhatsappByMetaTypes.js +3 -0
  438. package/dist/whatsapp-by-meta/WhatsappByMetaTypes.js.map +1 -0
  439. package/dist/whatsapp-by-meta/events/BaseEvent.d.ts +26 -0
  440. package/dist/whatsapp-by-meta/events/BaseEvent.d.ts.map +1 -0
  441. package/dist/whatsapp-by-meta/events/BaseEvent.js +61 -0
  442. package/dist/whatsapp-by-meta/events/BaseEvent.js.map +1 -0
  443. package/dist/whatsapp-by-meta/routes.d.ts +20 -0
  444. package/dist/whatsapp-by-meta/routes.d.ts.map +1 -0
  445. package/dist/whatsapp-by-meta/routes.js +33 -0
  446. package/dist/whatsapp-by-meta/routes.js.map +1 -0
  447. package/dist/withProps.d.ts +5 -0
  448. package/dist/withProps.d.ts.map +1 -0
  449. package/dist/withProps.js +16 -0
  450. package/dist/withProps.js.map +1 -0
  451. package/package.json +110 -0
  452. package/router.d.ts +1 -0
  453. package/router.js +2 -0
  454. package/test-utils.js +2 -0
package/README.md ADDED
@@ -0,0 +1,161 @@
1
+ # Bottender
2
+
3
+ [![npm](https://img.shields.io/npm/v/bottender.svg)](https://www.npmjs.com/package/bottender)
4
+ [![CircleCI](https://circleci.com/gh/Yoctol/bottender.svg?style=shield)](https://circleci.com/gh/Yoctol/bottender)
5
+ [![coverage](https://codecov.io/gh/Yoctol/bottender/branch/master/graph/badge.svg)](https://codecov.io/gh/Yoctol/bottender)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
7
+ [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/Yoctol/bottender#contributing)
8
+ [![join chat](https://img.shields.io/badge/discord-join%20chat-green.svg)](https://discord.gg/apNsWBz)
9
+ [![Gitpod Ready-to-Code](https://img.shields.io/badge/Gitpod-Ready--to--Code-blue?logo=gitpod)](https://gitpod.io/#https://github.com/Yoctol/bottender)
10
+ [![Follow @bottenderjs](https://img.shields.io/twitter/follow/bottenderjs.svg?label=Follow%20@bottenderjs)](https://twitter.com/intent/follow?screen_name=bottenderjs)
11
+
12
+ ![](https://user-images.githubusercontent.com/3382565/76295244-3c80c800-62ef-11ea-88dc-a6039b3918c2.png)
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
+ [![join chat](https://img.shields.io/badge/discord-join%20chat-green.svg)](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
+ [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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,4 @@
1
+ #!/usr/bin/env node
2
+
3
+ // eslint-disable-next-line import/no-unresolved
4
+ require('../dist/cli');
@@ -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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"}
@@ -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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=Connector.js.map
@@ -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"}
@@ -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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=CacheStore.js.map
@@ -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"}