@botpress/cli 2.1.0 → 2.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (397) hide show
  1. package/.turbo/turbo-build.log +22 -0
  2. package/dist/api/bot-body.js +89 -0
  3. package/dist/api/bot-body.js.map +7 -0
  4. package/dist/api/client.js +169 -0
  5. package/dist/api/client.js.map +7 -0
  6. package/dist/api/find-previous-version.js +66 -0
  7. package/dist/api/find-previous-version.js.map +7 -0
  8. package/dist/api/find-previous-version.test.js +76 -0
  9. package/dist/api/find-previous-version.test.js.map +7 -0
  10. package/dist/api/index.js +23 -0
  11. package/dist/api/index.js.map +7 -0
  12. package/dist/api/integration-body.js +146 -0
  13. package/dist/api/integration-body.js.map +7 -0
  14. package/dist/api/interface-body.js +95 -0
  15. package/dist/api/interface-body.js.map +7 -0
  16. package/dist/api/paging.js +42 -0
  17. package/dist/api/paging.js.map +7 -0
  18. package/dist/api/plugin-body.js +84 -0
  19. package/dist/api/plugin-body.js.map +7 -0
  20. package/dist/api/types.js +17 -0
  21. package/dist/api/types.js.map +7 -0
  22. package/dist/chat/index.js +211 -0
  23. package/dist/chat/index.js.map +7 -0
  24. package/dist/code-generation/bot-implementation/bot-implementation.js +116 -0
  25. package/dist/code-generation/bot-implementation/bot-implementation.js.map +7 -0
  26. package/dist/code-generation/bot-implementation/bot-plugins/index.js +80 -0
  27. package/dist/code-generation/bot-implementation/bot-plugins/index.js.map +7 -0
  28. package/dist/code-generation/bot-implementation/bot-plugins/plugin-module.js +129 -0
  29. package/dist/code-generation/bot-implementation/bot-plugins/plugin-module.js.map +7 -0
  30. package/dist/code-generation/bot-implementation/bot-typings/actions-module.js +88 -0
  31. package/dist/code-generation/bot-implementation/bot-typings/actions-module.js.map +7 -0
  32. package/dist/code-generation/bot-implementation/bot-typings/events-module.js +63 -0
  33. package/dist/code-generation/bot-implementation/bot-typings/events-module.js.map +7 -0
  34. package/dist/code-generation/bot-implementation/bot-typings/index.js +109 -0
  35. package/dist/code-generation/bot-implementation/bot-typings/index.js.map +7 -0
  36. package/dist/code-generation/bot-implementation/bot-typings/states-module.js +64 -0
  37. package/dist/code-generation/bot-implementation/bot-typings/states-module.js.map +7 -0
  38. package/dist/code-generation/bot-implementation/index.js +66 -0
  39. package/dist/code-generation/bot-implementation/index.js.map +7 -0
  40. package/dist/code-generation/consts.js +45 -0
  41. package/dist/code-generation/consts.js.map +7 -0
  42. package/dist/code-generation/generators.js +81 -0
  43. package/dist/code-generation/generators.js.map +7 -0
  44. package/dist/code-generation/index.js +49 -0
  45. package/dist/code-generation/index.js.map +7 -0
  46. package/dist/code-generation/integration-implementation/index.js +70 -0
  47. package/dist/code-generation/integration-implementation/index.js.map +7 -0
  48. package/dist/code-generation/integration-implementation/integration-implementation.js +114 -0
  49. package/dist/code-generation/integration-implementation/integration-implementation.js.map +7 -0
  50. package/dist/code-generation/integration-implementation/integration-secret.js +78 -0
  51. package/dist/code-generation/integration-implementation/integration-secret.js.map +7 -0
  52. package/dist/code-generation/integration-implementation/integration-typings/actions-module.js +88 -0
  53. package/dist/code-generation/integration-implementation/integration-typings/actions-module.js.map +7 -0
  54. package/dist/code-generation/integration-implementation/integration-typings/channels-module.js +107 -0
  55. package/dist/code-generation/integration-implementation/integration-typings/channels-module.js.map +7 -0
  56. package/dist/code-generation/integration-implementation/integration-typings/configuration-module.js +62 -0
  57. package/dist/code-generation/integration-implementation/integration-typings/configuration-module.js.map +7 -0
  58. package/dist/code-generation/integration-implementation/integration-typings/configurations-module.js +70 -0
  59. package/dist/code-generation/integration-implementation/integration-typings/configurations-module.js.map +7 -0
  60. package/dist/code-generation/integration-implementation/integration-typings/entities-module.js +63 -0
  61. package/dist/code-generation/integration-implementation/integration-typings/entities-module.js.map +7 -0
  62. package/dist/code-generation/integration-implementation/integration-typings/events-module.js +63 -0
  63. package/dist/code-generation/integration-implementation/integration-typings/events-module.js.map +7 -0
  64. package/dist/code-generation/integration-implementation/integration-typings/index.js +128 -0
  65. package/dist/code-generation/integration-implementation/integration-typings/index.js.map +7 -0
  66. package/dist/code-generation/integration-implementation/integration-typings/states-module.js +64 -0
  67. package/dist/code-generation/integration-implementation/integration-typings/states-module.js.map +7 -0
  68. package/dist/code-generation/integration-package/index.js +94 -0
  69. package/dist/code-generation/integration-package/index.js.map +7 -0
  70. package/dist/code-generation/integration-package/integration-package-definition/actions-module.js +88 -0
  71. package/dist/code-generation/integration-package/integration-package-definition/actions-module.js.map +7 -0
  72. package/dist/code-generation/integration-package/integration-package-definition/channels-module.js +107 -0
  73. package/dist/code-generation/integration-package/integration-package-definition/channels-module.js.map +7 -0
  74. package/dist/code-generation/integration-package/integration-package-definition/configuration-module.js +63 -0
  75. package/dist/code-generation/integration-package/integration-package-definition/configuration-module.js.map +7 -0
  76. package/dist/code-generation/integration-package/integration-package-definition/configurations-module.js +70 -0
  77. package/dist/code-generation/integration-package/integration-package-definition/configurations-module.js.map +7 -0
  78. package/dist/code-generation/integration-package/integration-package-definition/entities-module.js +63 -0
  79. package/dist/code-generation/integration-package/integration-package-definition/entities-module.js.map +7 -0
  80. package/dist/code-generation/integration-package/integration-package-definition/events-module.js +66 -0
  81. package/dist/code-generation/integration-package/integration-package-definition/events-module.js.map +7 -0
  82. package/dist/code-generation/integration-package/integration-package-definition/index.js +140 -0
  83. package/dist/code-generation/integration-package/integration-package-definition/index.js.map +7 -0
  84. package/dist/code-generation/integration-package/integration-package-definition/states-module.js +66 -0
  85. package/dist/code-generation/integration-package/integration-package-definition/states-module.js.map +7 -0
  86. package/dist/code-generation/integration-package/integration-package-definition/typings.js +17 -0
  87. package/dist/code-generation/integration-package/integration-package-definition/typings.js.map +7 -0
  88. package/dist/code-generation/interface-implementation/index.js +29 -0
  89. package/dist/code-generation/interface-implementation/index.js.map +7 -0
  90. package/dist/code-generation/interface-implementation/integration-typings/actions-module.js +88 -0
  91. package/dist/code-generation/interface-implementation/integration-typings/actions-module.js.map +7 -0
  92. package/dist/code-generation/interface-implementation/integration-typings/channels-module.js +107 -0
  93. package/dist/code-generation/interface-implementation/integration-typings/channels-module.js.map +7 -0
  94. package/dist/code-generation/interface-implementation/integration-typings/entities-module.js +63 -0
  95. package/dist/code-generation/interface-implementation/integration-typings/entities-module.js.map +7 -0
  96. package/dist/code-generation/interface-implementation/integration-typings/events-module.js +63 -0
  97. package/dist/code-generation/interface-implementation/integration-typings/events-module.js.map +7 -0
  98. package/dist/code-generation/interface-implementation/integration-typings/index.js +121 -0
  99. package/dist/code-generation/interface-implementation/integration-typings/index.js.map +7 -0
  100. package/dist/code-generation/interface-package/index.js +94 -0
  101. package/dist/code-generation/interface-package/index.js.map +7 -0
  102. package/dist/code-generation/interface-package/interface-package-definition/actions-module.js +88 -0
  103. package/dist/code-generation/interface-package/interface-package-definition/actions-module.js.map +7 -0
  104. package/dist/code-generation/interface-package/interface-package-definition/channels-module.js +98 -0
  105. package/dist/code-generation/interface-package/interface-package-definition/channels-module.js.map +7 -0
  106. package/dist/code-generation/interface-package/interface-package-definition/entities-module.js +63 -0
  107. package/dist/code-generation/interface-package/interface-package-definition/entities-module.js.map +7 -0
  108. package/dist/code-generation/interface-package/interface-package-definition/events-module.js +66 -0
  109. package/dist/code-generation/interface-package/interface-package-definition/events-module.js.map +7 -0
  110. package/dist/code-generation/interface-package/interface-package-definition/index.js +104 -0
  111. package/dist/code-generation/interface-package/interface-package-definition/index.js.map +7 -0
  112. package/dist/code-generation/interface-package/interface-package-definition/typings.js +17 -0
  113. package/dist/code-generation/interface-package/interface-package-definition/typings.js.map +7 -0
  114. package/dist/code-generation/module.js +183 -0
  115. package/dist/code-generation/module.js.map +7 -0
  116. package/dist/code-generation/plugin-implementation/index.js +60 -0
  117. package/dist/code-generation/plugin-implementation/index.js.map +7 -0
  118. package/dist/code-generation/plugin-implementation/plugin-implementation.js +90 -0
  119. package/dist/code-generation/plugin-implementation/plugin-implementation.js.map +7 -0
  120. package/dist/code-generation/plugin-implementation/plugin-typings/actions-module.js +88 -0
  121. package/dist/code-generation/plugin-implementation/plugin-typings/actions-module.js.map +7 -0
  122. package/dist/code-generation/plugin-implementation/plugin-typings/configuration-module.js +61 -0
  123. package/dist/code-generation/plugin-implementation/plugin-typings/configuration-module.js.map +7 -0
  124. package/dist/code-generation/plugin-implementation/plugin-typings/events-module.js +63 -0
  125. package/dist/code-generation/plugin-implementation/plugin-typings/events-module.js.map +7 -0
  126. package/dist/code-generation/plugin-implementation/plugin-typings/index.js +150 -0
  127. package/dist/code-generation/plugin-implementation/plugin-typings/index.js.map +7 -0
  128. package/dist/code-generation/plugin-implementation/plugin-typings/states-module.js +64 -0
  129. package/dist/code-generation/plugin-implementation/plugin-typings/states-module.js.map +7 -0
  130. package/dist/code-generation/plugin-package/index.js +151 -0
  131. package/dist/code-generation/plugin-package/index.js.map +7 -0
  132. package/dist/code-generation/plugin-package/plugin-package-definition/actions-module.js +88 -0
  133. package/dist/code-generation/plugin-package/plugin-package-definition/actions-module.js.map +7 -0
  134. package/dist/code-generation/plugin-package/plugin-package-definition/configuration-module.js +56 -0
  135. package/dist/code-generation/plugin-package/plugin-package-definition/configuration-module.js.map +7 -0
  136. package/dist/code-generation/plugin-package/plugin-package-definition/events-module.js +66 -0
  137. package/dist/code-generation/plugin-package/plugin-package-definition/events-module.js.map +7 -0
  138. package/dist/code-generation/plugin-package/plugin-package-definition/index.js +107 -0
  139. package/dist/code-generation/plugin-package/plugin-package-definition/index.js.map +7 -0
  140. package/dist/code-generation/plugin-package/plugin-package-definition/states-module.js +66 -0
  141. package/dist/code-generation/plugin-package/plugin-package-definition/states-module.js.map +7 -0
  142. package/dist/code-generation/plugin-package/plugin-package-definition/typings.js +17 -0
  143. package/dist/code-generation/plugin-package/plugin-package-definition/typings.js.map +7 -0
  144. package/dist/code-generation/strings.js +115 -0
  145. package/dist/code-generation/strings.js.map +7 -0
  146. package/dist/code-generation/typings.js +17 -0
  147. package/dist/code-generation/typings.js.map +7 -0
  148. package/dist/command-definitions.js +85 -0
  149. package/dist/command-definitions.js.map +7 -0
  150. package/dist/command-implementations/add-command.js +262 -0
  151. package/dist/command-implementations/add-command.js.map +7 -0
  152. package/dist/command-implementations/base-command.js +69 -0
  153. package/dist/command-implementations/base-command.js.map +7 -0
  154. package/dist/command-implementations/bot-commands.js +117 -0
  155. package/dist/command-implementations/bot-commands.js.map +7 -0
  156. package/dist/command-implementations/build-command.js +53 -0
  157. package/dist/command-implementations/build-command.js.map +7 -0
  158. package/dist/command-implementations/bundle-command.js +87 -0
  159. package/dist/command-implementations/bundle-command.js.map +7 -0
  160. package/dist/command-implementations/chat-command.js +152 -0
  161. package/dist/command-implementations/chat-command.js.map +7 -0
  162. package/dist/command-implementations/deploy-command.js +503 -0
  163. package/dist/command-implementations/deploy-command.js.map +7 -0
  164. package/dist/command-implementations/dev-command.js +345 -0
  165. package/dist/command-implementations/dev-command.js.map +7 -0
  166. package/dist/command-implementations/gen-command.js +110 -0
  167. package/dist/command-implementations/gen-command.js.map +7 -0
  168. package/dist/command-implementations/global-command.js +137 -0
  169. package/dist/command-implementations/global-command.js.map +7 -0
  170. package/dist/command-implementations/index.js +105 -0
  171. package/dist/command-implementations/index.js.map +7 -0
  172. package/dist/command-implementations/init-command.js +162 -0
  173. package/dist/command-implementations/init-command.js.map +7 -0
  174. package/dist/command-implementations/integration-commands.js +130 -0
  175. package/dist/command-implementations/integration-commands.js.map +7 -0
  176. package/dist/command-implementations/interface-commands.js +110 -0
  177. package/dist/command-implementations/interface-commands.js.map +7 -0
  178. package/dist/command-implementations/lint-command.js +151 -0
  179. package/dist/command-implementations/lint-command.js.map +7 -0
  180. package/dist/command-implementations/login-command.js +82 -0
  181. package/dist/command-implementations/login-command.js.map +7 -0
  182. package/dist/command-implementations/logout-command.js +35 -0
  183. package/dist/command-implementations/logout-command.js.map +7 -0
  184. package/dist/command-implementations/plugin-commands.js +111 -0
  185. package/dist/command-implementations/plugin-commands.js.map +7 -0
  186. package/dist/command-implementations/project-command.js +383 -0
  187. package/dist/command-implementations/project-command.js.map +7 -0
  188. package/dist/command-implementations/read-command.js +70 -0
  189. package/dist/command-implementations/read-command.js.map +7 -0
  190. package/dist/command-implementations/serve-command.js +68 -0
  191. package/dist/command-implementations/serve-command.js.map +7 -0
  192. package/dist/command-tree.js +60 -0
  193. package/dist/command-tree.js.map +7 -0
  194. package/dist/config.js +352 -0
  195. package/dist/config.js.map +7 -0
  196. package/dist/consts.js +127 -0
  197. package/dist/consts.js.map +7 -0
  198. package/dist/errors.js +202 -0
  199. package/dist/errors.js.map +7 -0
  200. package/dist/index.js +51 -0
  201. package/dist/index.js.map +7 -0
  202. package/dist/init.js +50 -0
  203. package/dist/init.js.map +7 -0
  204. package/dist/linter/base-linter.js +75 -0
  205. package/dist/linter/base-linter.js.map +7 -0
  206. package/dist/linter/base-linter.test.js +187 -0
  207. package/dist/linter/base-linter.test.js.map +7 -0
  208. package/dist/linter/bot-linter.js +35 -0
  209. package/dist/linter/bot-linter.js.map +7 -0
  210. package/dist/linter/integration-linter.js +35 -0
  211. package/dist/linter/integration-linter.js.map +7 -0
  212. package/dist/linter/interface-linter.js +35 -0
  213. package/dist/linter/interface-linter.js.map +7 -0
  214. package/dist/linter/ruleset-tests/bot.ruleset.test.js +358 -0
  215. package/dist/linter/ruleset-tests/bot.ruleset.test.js.map +7 -0
  216. package/dist/linter/ruleset-tests/common.js +37 -0
  217. package/dist/linter/ruleset-tests/common.js.map +7 -0
  218. package/dist/linter/ruleset-tests/integration.ruleset.test.js +887 -0
  219. package/dist/linter/ruleset-tests/integration.ruleset.test.js.map +7 -0
  220. package/dist/linter/ruleset-tests/interface.ruleset.test.js +383 -0
  221. package/dist/linter/ruleset-tests/interface.ruleset.test.js.map +7 -0
  222. package/dist/linter/rulesets/bot.ruleset.js +191 -0
  223. package/dist/linter/rulesets/bot.ruleset.js.map +7 -0
  224. package/dist/linter/rulesets/integration.ruleset.js +378 -0
  225. package/dist/linter/rulesets/integration.ruleset.js.map +7 -0
  226. package/dist/linter/rulesets/interface.ruleset.js +157 -0
  227. package/dist/linter/rulesets/interface.ruleset.js.map +7 -0
  228. package/dist/linter/spectral-functions.js +36 -0
  229. package/dist/linter/spectral-functions.js.map +7 -0
  230. package/dist/logger/base-logger.js +170 -0
  231. package/dist/logger/base-logger.js.map +7 -0
  232. package/dist/logger/index.js +86 -0
  233. package/dist/logger/index.js.map +7 -0
  234. package/dist/package-ref.js +107 -0
  235. package/dist/package-ref.js.map +7 -0
  236. package/dist/package-ref.test.js +109 -0
  237. package/dist/package-ref.test.js.map +7 -0
  238. package/dist/register-yargs.js +91 -0
  239. package/dist/register-yargs.js.map +7 -0
  240. package/dist/root.js +41 -0
  241. package/dist/root.js.map +7 -0
  242. package/dist/sdk/index.js +22 -0
  243. package/dist/sdk/index.js.map +7 -0
  244. package/dist/sdk/resolve-bot-interfaces.js +43 -0
  245. package/dist/sdk/resolve-bot-interfaces.js.map +7 -0
  246. package/dist/sdk/resolve-integration-interfaces.js +161 -0
  247. package/dist/sdk/resolve-integration-interfaces.js.map +7 -0
  248. package/dist/sdk/validate-bot.js +88 -0
  249. package/dist/sdk/validate-bot.js.map +7 -0
  250. package/dist/sdk/validate-integration.js +72 -0
  251. package/dist/sdk/validate-integration.js.map +7 -0
  252. package/dist/typings.js +17 -0
  253. package/dist/typings.js.map +7 -0
  254. package/dist/utils/cache-utils.js +104 -0
  255. package/dist/utils/cache-utils.js.map +7 -0
  256. package/dist/utils/case-utils.js +84 -0
  257. package/dist/utils/case-utils.js.map +7 -0
  258. package/dist/utils/case-utils.test.js +75 -0
  259. package/dist/utils/case-utils.test.js.map +7 -0
  260. package/dist/utils/esbuild-utils.js +92 -0
  261. package/dist/utils/esbuild-utils.js.map +7 -0
  262. package/dist/utils/event-emitter.js +63 -0
  263. package/dist/utils/event-emitter.js.map +7 -0
  264. package/dist/utils/file-watcher.js +73 -0
  265. package/dist/utils/file-watcher.js.map +7 -0
  266. package/dist/utils/guard-utils.js +32 -0
  267. package/dist/utils/guard-utils.js.map +7 -0
  268. package/dist/utils/id-utils.js +59 -0
  269. package/dist/utils/id-utils.js.map +7 -0
  270. package/dist/utils/index.js +99 -0
  271. package/dist/utils/index.js.map +7 -0
  272. package/dist/utils/object-utils.js +32 -0
  273. package/dist/utils/object-utils.js.map +7 -0
  274. package/dist/utils/path-utils.js +106 -0
  275. package/dist/utils/path-utils.js.map +7 -0
  276. package/dist/utils/path-utils.test.js +72 -0
  277. package/dist/utils/path-utils.test.js.map +7 -0
  278. package/dist/utils/pkgjson-utils.js +57 -0
  279. package/dist/utils/pkgjson-utils.js.map +7 -0
  280. package/dist/utils/promise-utils.js +36 -0
  281. package/dist/utils/promise-utils.js.map +7 -0
  282. package/dist/utils/promise-utils.test.js +14 -0
  283. package/dist/utils/promise-utils.test.js.map +7 -0
  284. package/dist/utils/prompt-utils.js +105 -0
  285. package/dist/utils/prompt-utils.js.map +7 -0
  286. package/dist/utils/record-utils.js +118 -0
  287. package/dist/utils/record-utils.js.map +7 -0
  288. package/dist/utils/record-utils.test.js +38 -0
  289. package/dist/utils/record-utils.test.js.map +7 -0
  290. package/dist/utils/require-utils.js +90 -0
  291. package/dist/utils/require-utils.js.map +7 -0
  292. package/dist/utils/require-utils.test.js +54 -0
  293. package/dist/utils/require-utils.test.js.map +7 -0
  294. package/dist/utils/schema-utils.js +64 -0
  295. package/dist/utils/schema-utils.js.map +7 -0
  296. package/dist/utils/schema-utils.test.js +50 -0
  297. package/dist/utils/schema-utils.test.js.map +7 -0
  298. package/dist/utils/semver-utils.js +45 -0
  299. package/dist/utils/semver-utils.js.map +7 -0
  300. package/dist/utils/string-utils.js +42 -0
  301. package/dist/utils/string-utils.js.map +7 -0
  302. package/dist/utils/template-utils.js +51 -0
  303. package/dist/utils/template-utils.js.map +7 -0
  304. package/dist/utils/tunnel-utils.js +129 -0
  305. package/dist/utils/tunnel-utils.js.map +7 -0
  306. package/dist/utils/type-utils.js +17 -0
  307. package/dist/utils/type-utils.js.map +7 -0
  308. package/dist/utils/url-utils.js +67 -0
  309. package/dist/utils/url-utils.js.map +7 -0
  310. package/dist/worker/child-entrypoint.js +58 -0
  311. package/dist/worker/child-entrypoint.js.map +7 -0
  312. package/dist/worker/child-wrapper.js +119 -0
  313. package/dist/worker/child-wrapper.js.map +7 -0
  314. package/dist/worker/config.js +44 -0
  315. package/dist/worker/config.js.map +7 -0
  316. package/dist/worker/index.js +32 -0
  317. package/dist/worker/index.js.map +7 -0
  318. package/dist/worker/is-child.js +55 -0
  319. package/dist/worker/is-child.js.map +7 -0
  320. package/dist/worker/worker-state.js +71 -0
  321. package/dist/worker/worker-state.js.map +7 -0
  322. package/dist/worker/worker.js +91 -0
  323. package/dist/worker/worker.js.map +7 -0
  324. package/package.json +3 -3
  325. package/templates/empty-bot/.botpress/implementation/index.ts +50 -0
  326. package/templates/empty-bot/.botpress/implementation/plugins/index.ts +11 -0
  327. package/templates/empty-bot/.botpress/implementation/typings/actions/index.ts +6 -0
  328. package/templates/empty-bot/.botpress/implementation/typings/events/index.ts +6 -0
  329. package/templates/empty-bot/.botpress/implementation/typings/index.ts +20 -0
  330. package/templates/empty-bot/.botpress/implementation/typings/integrations/index.ts +6 -0
  331. package/templates/empty-bot/.botpress/implementation/typings/states/index.ts +6 -0
  332. package/templates/empty-bot/.botpress/index.ts +5 -0
  333. package/templates/empty-bot/package.json +2 -2
  334. package/templates/empty-integration/.botpress/implementation/index.ts +57 -0
  335. package/templates/empty-integration/.botpress/implementation/typings/actions/index.ts +6 -0
  336. package/templates/empty-integration/.botpress/implementation/typings/channels/index.ts +6 -0
  337. package/templates/empty-integration/.botpress/implementation/typings/configuration/index.ts +2 -0
  338. package/templates/empty-integration/.botpress/implementation/typings/configurations/index.ts +6 -0
  339. package/templates/empty-integration/.botpress/implementation/typings/entities/index.ts +6 -0
  340. package/templates/empty-integration/.botpress/implementation/typings/events/index.ts +6 -0
  341. package/templates/empty-integration/.botpress/implementation/typings/index.ts +31 -0
  342. package/templates/empty-integration/.botpress/implementation/typings/states/index.ts +6 -0
  343. package/templates/empty-integration/.botpress/index.ts +2 -0
  344. package/templates/empty-integration/.botpress/secrets/index.ts +6 -0
  345. package/templates/empty-integration/package.json +2 -2
  346. package/templates/empty-plugin/.botpress/implementation/index.ts +35 -0
  347. package/templates/empty-plugin/.botpress/implementation/typings/actions/index.ts +6 -0
  348. package/templates/empty-plugin/.botpress/implementation/typings/configuration/index.ts +2 -0
  349. package/templates/empty-plugin/.botpress/implementation/typings/events/index.ts +6 -0
  350. package/templates/empty-plugin/.botpress/implementation/typings/index.ts +26 -0
  351. package/templates/empty-plugin/.botpress/implementation/typings/integrations/index.ts +6 -0
  352. package/templates/empty-plugin/.botpress/implementation/typings/interfaces/index.ts +6 -0
  353. package/templates/empty-plugin/.botpress/implementation/typings/states/index.ts +6 -0
  354. package/templates/empty-plugin/.botpress/index.ts +1 -0
  355. package/templates/empty-plugin/package.json +1 -1
  356. package/templates/hello-world/.botpress/implementation/index.ts +57 -0
  357. package/templates/hello-world/.botpress/implementation/typings/actions/helloWorld/index.ts +12 -0
  358. package/templates/hello-world/.botpress/implementation/typings/actions/helloWorld/input.ts +5 -0
  359. package/templates/hello-world/.botpress/implementation/typings/actions/helloWorld/output.ts +5 -0
  360. package/templates/hello-world/.botpress/implementation/typings/actions/index.ts +9 -0
  361. package/templates/hello-world/.botpress/implementation/typings/channels/index.ts +6 -0
  362. package/templates/hello-world/.botpress/implementation/typings/configuration/index.ts +2 -0
  363. package/templates/hello-world/.botpress/implementation/typings/configurations/index.ts +6 -0
  364. package/templates/hello-world/.botpress/implementation/typings/entities/index.ts +6 -0
  365. package/templates/hello-world/.botpress/implementation/typings/events/index.ts +6 -0
  366. package/templates/hello-world/.botpress/implementation/typings/index.ts +31 -0
  367. package/templates/hello-world/.botpress/implementation/typings/states/index.ts +6 -0
  368. package/templates/hello-world/.botpress/index.ts +2 -0
  369. package/templates/hello-world/.botpress/secrets/index.ts +6 -0
  370. package/templates/hello-world/package.json +2 -2
  371. package/templates/webhook-message/.botpress/implementation/index.ts +57 -0
  372. package/templates/webhook-message/.botpress/implementation/typings/actions/index.ts +6 -0
  373. package/templates/webhook-message/.botpress/implementation/typings/channels/index.ts +9 -0
  374. package/templates/webhook-message/.botpress/implementation/typings/channels/webhook/index.ts +12 -0
  375. package/templates/webhook-message/.botpress/implementation/typings/channels/webhook/messages/index.ts +9 -0
  376. package/templates/webhook-message/.botpress/implementation/typings/channels/webhook/messages/text.ts +5 -0
  377. package/templates/webhook-message/.botpress/implementation/typings/configuration/index.ts +8 -0
  378. package/templates/webhook-message/.botpress/implementation/typings/configurations/index.ts +6 -0
  379. package/templates/webhook-message/.botpress/implementation/typings/entities/index.ts +6 -0
  380. package/templates/webhook-message/.botpress/implementation/typings/events/index.ts +6 -0
  381. package/templates/webhook-message/.botpress/implementation/typings/index.ts +31 -0
  382. package/templates/webhook-message/.botpress/implementation/typings/states/index.ts +6 -0
  383. package/templates/webhook-message/.botpress/index.ts +2 -0
  384. package/templates/webhook-message/.botpress/secrets/index.ts +6 -0
  385. package/templates/webhook-message/package.json +2 -2
  386. package/e2e/api.ts +0 -25
  387. package/e2e/defaults.ts +0 -20
  388. package/e2e/index.ts +0 -118
  389. package/e2e/tests/create-deploy-bot.ts +0 -51
  390. package/e2e/tests/create-deploy-integration.ts +0 -62
  391. package/e2e/tests/dev-bot.ts +0 -59
  392. package/e2e/tests/install-interfaces.ts +0 -49
  393. package/e2e/tests/install-package.ts +0 -164
  394. package/e2e/tests/integration-secrets.ts +0 -102
  395. package/e2e/tests/manage-workspace-handle.ts +0 -105
  396. package/e2e/typings.ts +0 -17
  397. package/e2e/utils.ts +0 -99
@@ -0,0 +1,6 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ // This file is generated. Do not edit it manually.
4
+
5
+ export type Actions = {
6
+ }
@@ -0,0 +1,2 @@
1
+ /** Default Configuration of the Plugin */
2
+ export type Configuration = Record<string, never>;
@@ -0,0 +1,6 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ // This file is generated. Do not edit it manually.
4
+
5
+ export type Events = {
6
+ }
@@ -0,0 +1,26 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ // This file is generated. Do not edit it manually.
4
+
5
+ import * as integrations from './integrations/index'
6
+ import * as interfaces from './interfaces/index'
7
+ import * as configuration from './configuration/index'
8
+ import * as events from './events'
9
+ import * as states from './states'
10
+ import * as actions from './actions'
11
+
12
+ export * as integrations from './integrations/index'
13
+ export * as interfaces from './interfaces/index'
14
+ export * as configuration from './configuration/index'
15
+ export * as events from './events/index'
16
+ export * as states from './states/index'
17
+ export * as actions from './actions'
18
+
19
+ export type TPlugin = {
20
+ integrations: integrations.Integrations
21
+ interfaces: interfaces.Interfaces
22
+ configuration: configuration.Configuration
23
+ events: events.Events
24
+ states: states.States
25
+ actions: actions.Actions
26
+ }
@@ -0,0 +1,6 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ // This file is generated. Do not edit it manually.
4
+
5
+ export type Integrations = {
6
+ }
@@ -0,0 +1,6 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ // This file is generated. Do not edit it manually.
4
+
5
+ export type Interfaces = {
6
+ }
@@ -0,0 +1,6 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ // This file is generated. Do not edit it manually.
4
+
5
+ export type States = {
6
+ }
@@ -0,0 +1 @@
1
+ export * from './implementation'
@@ -6,7 +6,7 @@
6
6
  },
7
7
  "private": true,
8
8
  "dependencies": {
9
- "@botpress/sdk": "2.0.3"
9
+ "@botpress/sdk": "2.0.4"
10
10
  },
11
11
  "devDependencies": {
12
12
  "@types/node": "^18.19.67",
@@ -0,0 +1,57 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ // This file is generated. Do not edit it manually.
4
+
5
+ import * as sdk from "@botpress/sdk"
6
+ import * as typings from "./typings/index"
7
+ export * from "./typings/index"
8
+
9
+ type TIntegration = sdk.DefaultIntegration<typings.TIntegration>
10
+
11
+ export type IntegrationProps = sdk.IntegrationProps<TIntegration>
12
+
13
+ export class Integration extends sdk.Integration<TIntegration> {}
14
+
15
+ export type Client = sdk.IntegrationSpecificClient<TIntegration>
16
+
17
+ // extra types
18
+
19
+ type Cast<X, Y> = X extends Y ? X : Y
20
+ type ValueOf<T> = T[keyof T]
21
+ type AsyncFunction = (...args: any[]) => Promise<any>
22
+
23
+ export type HandlerProps = Parameters<IntegrationProps['handler']>[0]
24
+
25
+ export type ActionProps = {
26
+ [K in keyof IntegrationProps['actions']]: Parameters<IntegrationProps['actions'][K]>[0]
27
+ }
28
+ export type AnyActionProps = ValueOf<ActionProps>
29
+
30
+ export type MessageProps = {
31
+ [TChannel in keyof IntegrationProps['channels']]: {
32
+ [TMessage in keyof IntegrationProps['channels'][TChannel]['messages']]: Parameters<
33
+ IntegrationProps['channels'][TChannel]['messages'][TMessage]
34
+ >[0]
35
+ }
36
+ }
37
+ export type AnyMessageProps = ValueOf<ValueOf<MessageProps>>
38
+
39
+ export type Context = HandlerProps['ctx']
40
+ export type Logger = HandlerProps['logger']
41
+
42
+ export type AckFunctions = {
43
+ [TChannel in keyof MessageProps]: {
44
+ [TMessage in keyof MessageProps[TChannel]]: Cast<MessageProps[TChannel][TMessage], AnyMessageProps>['ack']
45
+ }
46
+ }
47
+ export type AnyAckFunction = ValueOf<ValueOf<AckFunctions>>
48
+
49
+ export type ClientOperation = ValueOf<{
50
+ [K in keyof Client as Client[K] extends AsyncFunction ? K : never]: K
51
+ }>
52
+ export type ClientRequests = {
53
+ [K in ClientOperation]: Parameters<Client[K]>[0]
54
+ }
55
+ export type ClientResponses = {
56
+ [K in ClientOperation]: Awaited<ReturnType<Client[K]>>
57
+ }
@@ -0,0 +1,12 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ // This file is generated. Do not edit it manually.
4
+ import * as input from "./input";
5
+ export * as input from "./input";
6
+ import * as output from "./output";
7
+ export * as output from "./output";
8
+
9
+ export type HelloWorld = {
10
+ "input": input.Input;
11
+ "output": output.Output;
12
+ }
@@ -0,0 +1,5 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ // This file is generated. Do not edit it manually.
4
+
5
+ export type Input = { name?: string };
@@ -0,0 +1,5 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ // This file is generated. Do not edit it manually.
4
+
5
+ export type Output = { message: string };
@@ -0,0 +1,9 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ // This file is generated. Do not edit it manually.
4
+ import * as helloWorld from "./helloWorld/index";
5
+ export * as helloWorld from "./helloWorld/index";
6
+
7
+ export type Actions = {
8
+ "helloWorld": helloWorld.HelloWorld;
9
+ }
@@ -0,0 +1,6 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ // This file is generated. Do not edit it manually.
4
+
5
+ export type Channels = {
6
+ }
@@ -0,0 +1,2 @@
1
+ /** Default Configuration of the Integration */
2
+ export type Configuration = Record<string, never>;
@@ -0,0 +1,6 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ // This file is generated. Do not edit it manually.
4
+
5
+ export type Configurations = {
6
+ }
@@ -0,0 +1,6 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ // This file is generated. Do not edit it manually.
4
+
5
+ export type Entities = {
6
+ }
@@ -0,0 +1,6 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ // This file is generated. Do not edit it manually.
4
+
5
+ export type Events = {
6
+ }
@@ -0,0 +1,31 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ // This file is generated. Do not edit it manually.
4
+
5
+ import * as configuration from "./configuration/index"
6
+ import * as configurations from "./configurations/index"
7
+ import * as actions from "./actions/index"
8
+ import * as channels from "./channels/index"
9
+ import * as events from "./events/index"
10
+ import * as states from "./states/index"
11
+ import * as entities from "./entities/index"
12
+ export * as configuration from "./configuration/index"
13
+ export * as configurations from "./configurations/index"
14
+ export * as actions from "./actions/index"
15
+ export * as channels from "./channels/index"
16
+ export * as events from "./events/index"
17
+ export * as states from "./states/index"
18
+ export * as entities from "./entities/index"
19
+
20
+ export type TIntegration = {
21
+ name: "hello-world"
22
+ version: "0.0.1"
23
+ user: { "tags": {}, "creation": { "enabled": false, "requiredTags": [] } }
24
+ configuration: configuration.Configuration
25
+ configurations: configurations.Configurations
26
+ actions: actions.Actions
27
+ channels: channels.Channels
28
+ events: events.Events
29
+ states: states.States
30
+ entities: entities.Entities
31
+ }
@@ -0,0 +1,6 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ // This file is generated. Do not edit it manually.
4
+
5
+ export type States = {
6
+ }
@@ -0,0 +1,2 @@
1
+ export * from './implementation'
2
+ export * from './secrets'
@@ -0,0 +1,6 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ // This file is generated. Do not edit it manually.
4
+ class Secrets {
5
+ }
6
+ export const secrets = new Secrets()
@@ -6,8 +6,8 @@
6
6
  },
7
7
  "private": true,
8
8
  "dependencies": {
9
- "@botpress/client": "0.37.1",
10
- "@botpress/sdk": "2.0.3"
9
+ "@botpress/client": "0.38.0",
10
+ "@botpress/sdk": "2.0.4"
11
11
  },
12
12
  "devDependencies": {
13
13
  "@types/node": "^18.19.67",
@@ -0,0 +1,57 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ // This file is generated. Do not edit it manually.
4
+
5
+ import * as sdk from "@botpress/sdk"
6
+ import * as typings from "./typings/index"
7
+ export * from "./typings/index"
8
+
9
+ type TIntegration = sdk.DefaultIntegration<typings.TIntegration>
10
+
11
+ export type IntegrationProps = sdk.IntegrationProps<TIntegration>
12
+
13
+ export class Integration extends sdk.Integration<TIntegration> {}
14
+
15
+ export type Client = sdk.IntegrationSpecificClient<TIntegration>
16
+
17
+ // extra types
18
+
19
+ type Cast<X, Y> = X extends Y ? X : Y
20
+ type ValueOf<T> = T[keyof T]
21
+ type AsyncFunction = (...args: any[]) => Promise<any>
22
+
23
+ export type HandlerProps = Parameters<IntegrationProps['handler']>[0]
24
+
25
+ export type ActionProps = {
26
+ [K in keyof IntegrationProps['actions']]: Parameters<IntegrationProps['actions'][K]>[0]
27
+ }
28
+ export type AnyActionProps = ValueOf<ActionProps>
29
+
30
+ export type MessageProps = {
31
+ [TChannel in keyof IntegrationProps['channels']]: {
32
+ [TMessage in keyof IntegrationProps['channels'][TChannel]['messages']]: Parameters<
33
+ IntegrationProps['channels'][TChannel]['messages'][TMessage]
34
+ >[0]
35
+ }
36
+ }
37
+ export type AnyMessageProps = ValueOf<ValueOf<MessageProps>>
38
+
39
+ export type Context = HandlerProps['ctx']
40
+ export type Logger = HandlerProps['logger']
41
+
42
+ export type AckFunctions = {
43
+ [TChannel in keyof MessageProps]: {
44
+ [TMessage in keyof MessageProps[TChannel]]: Cast<MessageProps[TChannel][TMessage], AnyMessageProps>['ack']
45
+ }
46
+ }
47
+ export type AnyAckFunction = ValueOf<ValueOf<AckFunctions>>
48
+
49
+ export type ClientOperation = ValueOf<{
50
+ [K in keyof Client as Client[K] extends AsyncFunction ? K : never]: K
51
+ }>
52
+ export type ClientRequests = {
53
+ [K in ClientOperation]: Parameters<Client[K]>[0]
54
+ }
55
+ export type ClientResponses = {
56
+ [K in ClientOperation]: Awaited<ReturnType<Client[K]>>
57
+ }
@@ -0,0 +1,6 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ // This file is generated. Do not edit it manually.
4
+
5
+ export type Actions = {
6
+ }
@@ -0,0 +1,9 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ // This file is generated. Do not edit it manually.
4
+ import * as webhook from "./webhook/index";
5
+ export * as webhook from "./webhook/index";
6
+
7
+ export type Channels = {
8
+ "webhook": webhook.Webhook;
9
+ }
@@ -0,0 +1,12 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ // This file is generated. Do not edit it manually.
4
+
5
+ import { Messages } from './messages/index'
6
+ export * from './messages/index'
7
+
8
+ export type Webhook = {
9
+ messages: Messages
10
+ message: { "tags": {} }
11
+ conversation: { "tags": { "id": { "title": "Conversation ID", "description": "The ID of the conversation" } }, "creation": { "enabled": false, "requiredTags": [] } }
12
+ }
@@ -0,0 +1,9 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ // This file is generated. Do not edit it manually.
4
+ import * as text from "./text";
5
+ export * as text from "./text";
6
+
7
+ export type Messages = {
8
+ "text": text.Text;
9
+ }
@@ -0,0 +1,5 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ // This file is generated. Do not edit it manually.
4
+
5
+ export type Text = { text: string };
@@ -0,0 +1,8 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ // This file is generated. Do not edit it manually.
4
+
5
+ export type Configuration = {
6
+ /** The url to post the bot answers to. */
7
+ webhookUrl: string;
8
+ };
@@ -0,0 +1,6 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ // This file is generated. Do not edit it manually.
4
+
5
+ export type Configurations = {
6
+ }
@@ -0,0 +1,6 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ // This file is generated. Do not edit it manually.
4
+
5
+ export type Entities = {
6
+ }
@@ -0,0 +1,6 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ // This file is generated. Do not edit it manually.
4
+
5
+ export type Events = {
6
+ }
@@ -0,0 +1,31 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ // This file is generated. Do not edit it manually.
4
+
5
+ import * as configuration from "./configuration/index"
6
+ import * as configurations from "./configurations/index"
7
+ import * as actions from "./actions/index"
8
+ import * as channels from "./channels/index"
9
+ import * as events from "./events/index"
10
+ import * as states from "./states/index"
11
+ import * as entities from "./entities/index"
12
+ export * as configuration from "./configuration/index"
13
+ export * as configurations from "./configurations/index"
14
+ export * as actions from "./actions/index"
15
+ export * as channels from "./channels/index"
16
+ export * as events from "./events/index"
17
+ export * as states from "./states/index"
18
+ export * as entities from "./entities/index"
19
+
20
+ export type TIntegration = {
21
+ name: "webhook-message"
22
+ version: "0.0.1"
23
+ user: { "tags": { "id": { "title": "User ID", "description": "The ID of the user" } }, "creation": { "enabled": false, "requiredTags": [] } }
24
+ configuration: configuration.Configuration
25
+ configurations: configurations.Configurations
26
+ actions: actions.Actions
27
+ channels: channels.Channels
28
+ events: events.Events
29
+ states: states.States
30
+ entities: entities.Entities
31
+ }
@@ -0,0 +1,6 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ // This file is generated. Do not edit it manually.
4
+
5
+ export type States = {
6
+ }
@@ -0,0 +1,2 @@
1
+ export * from './implementation'
2
+ export * from './secrets'
@@ -0,0 +1,6 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ // This file is generated. Do not edit it manually.
4
+ class Secrets {
5
+ }
6
+ export const secrets = new Secrets()
@@ -6,8 +6,8 @@
6
6
  },
7
7
  "private": true,
8
8
  "dependencies": {
9
- "@botpress/client": "0.37.1",
10
- "@botpress/sdk": "2.0.3",
9
+ "@botpress/client": "0.38.0",
10
+ "@botpress/sdk": "2.0.4",
11
11
  "axios": "^1.6.8"
12
12
  },
13
13
  "devDependencies": {
package/e2e/api.ts DELETED
@@ -1,25 +0,0 @@
1
- import { Client } from '@botpress/client'
2
-
3
- export type ApiBot = Awaited<ReturnType<Client['listBots']>>['bots'][0]
4
- export const fetchAllBots = async (client: Client): Promise<ApiBot[]> => {
5
- let allBots: ApiBot[] = []
6
- let nextToken: string | undefined
7
- do {
8
- const { bots, meta } = await client.listBots({ nextToken })
9
- allBots = [...allBots, ...bots]
10
- nextToken = meta.nextToken
11
- } while (nextToken)
12
- return allBots
13
- }
14
-
15
- export type ApiIntegration = Awaited<ReturnType<Client['listIntegrations']>>['integrations'][0]
16
- export const fetchAllIntegrations = async (client: Client): Promise<ApiIntegration[]> => {
17
- let allIntegrations: ApiIntegration[] = []
18
- let nextToken: string | undefined
19
- do {
20
- const { integrations, meta } = await client.listIntegrations({ nextToken })
21
- allIntegrations = [...allIntegrations, ...integrations]
22
- nextToken = meta.nextToken
23
- } while (nextToken)
24
- return allIntegrations
25
- }
package/e2e/defaults.ts DELETED
@@ -1,20 +0,0 @@
1
- const noBuild = false
2
- const secrets = [] satisfies string[]
3
- const sourceMap = false
4
- const verbose = false
5
- const confirm = true
6
- const json = false
7
- const allowDeprecated = false
8
- const isPublic = false
9
- const minify = true
10
- export default {
11
- minify,
12
- noBuild,
13
- secrets,
14
- sourceMap,
15
- verbose,
16
- confirm,
17
- json,
18
- allowDeprecated,
19
- public: isPublic,
20
- }
package/e2e/index.ts DELETED
@@ -1,118 +0,0 @@
1
- import { Logger } from '@bpinternal/log4bot'
2
- import yargs, { YargsConfig, YargsSchema } from '@bpinternal/yargs-extra'
3
- import * as consts from '../src/consts'
4
- import { createDeployBot } from './tests/create-deploy-bot'
5
- import { createDeployIntegration } from './tests/create-deploy-integration'
6
- import { devBot } from './tests/dev-bot'
7
- import { installAllInterfaces } from './tests/install-interfaces'
8
- import { addIntegration } from './tests/install-package'
9
- import { requiredSecrets } from './tests/integration-secrets'
10
- import { prependWorkspaceHandle, enforceWorkspaceHandle } from './tests/manage-workspace-handle'
11
- import { Test } from './typings'
12
- import { sleep, TmpDirectory } from './utils'
13
-
14
- const tests: Test[] = [
15
- createDeployBot,
16
- createDeployIntegration,
17
- devBot,
18
- requiredSecrets,
19
- prependWorkspaceHandle,
20
- enforceWorkspaceHandle,
21
- addIntegration,
22
- installAllInterfaces,
23
- ]
24
-
25
- const timeout = (ms: number) =>
26
- sleep(ms).then(() => {
27
- throw new Error(`Timeout after ${ms}ms`)
28
- })
29
-
30
- const TIMEOUT = 45_000
31
-
32
- const configSchema = {
33
- timeout: {
34
- type: 'number',
35
- default: TIMEOUT,
36
- },
37
- verbose: {
38
- type: 'boolean',
39
- default: false,
40
- alias: 'v',
41
- },
42
- filter: {
43
- type: 'string',
44
- },
45
- workspaceId: {
46
- type: 'string',
47
- demandOption: true,
48
- },
49
- workspaceHandle: {
50
- type: 'string',
51
- demandOption: true,
52
- },
53
- token: {
54
- type: 'string',
55
- demandOption: true,
56
- },
57
- apiUrl: {
58
- type: 'string',
59
- default: consts.defaultBotpressApiUrl,
60
- },
61
- tunnelUrl: {
62
- type: 'string',
63
- default: consts.defaultTunnelUrl,
64
- },
65
- sdkPath: {
66
- type: 'string',
67
- description: 'Path to the Botpress SDK to install; Allows using a version not released on NPM yet.',
68
- },
69
- clientPath: {
70
- type: 'string',
71
- description: 'Path to the Botpress Client to install; Allows using a version not released on NPM yet.',
72
- },
73
- } satisfies YargsSchema
74
-
75
- const main = async (argv: YargsConfig<typeof configSchema>): Promise<never> => {
76
- const logger = new Logger('e2e', { level: argv.verbose ? 'debug' : 'info' })
77
-
78
- const filterRegex = argv.filter ? new RegExp(argv.filter) : null
79
- const filteredTests = tests.filter(({ name }) => (filterRegex ? filterRegex.test(name) : true))
80
- logger.info(`Running ${filteredTests.length} / ${tests.length} tests`)
81
-
82
- const dependencies = { '@botpress/sdk': argv.sdkPath, '@botpress/client': argv.clientPath } satisfies Record<
83
- string,
84
- string | undefined
85
- >
86
-
87
- for (const { name, handler } of filteredTests) {
88
- const logLine = `### Running test: "${name}" ###`
89
- const logPad = '#'.repeat(logLine.length)
90
- logger.info(logPad)
91
- logger.info(logLine)
92
- logger.info(logPad + '\n')
93
-
94
- const loggerNamespace = name.replace(/ /g, '_').replace(/[^a-zA-Z0-9_]/g, '')
95
-
96
- const tmpDir = TmpDirectory.create()
97
- try {
98
- const t0 = Date.now()
99
- await Promise.race([
100
- handler({ tmpDir: tmpDir.path, dependencies, logger: logger.sub(loggerNamespace), ...argv }),
101
- timeout(argv.timeout),
102
- ])
103
- const t1 = Date.now()
104
- logger.info(`SUCCESS: "${name}" (${t1 - t0}ms)`)
105
- } catch (thrown) {
106
- const err = thrown instanceof Error ? thrown : new Error(`${thrown}`)
107
- logger.attachError(err).error(`FAILURE: "${name}"`)
108
- process.exit(1)
109
- } finally {
110
- tmpDir.cleanup()
111
- }
112
- }
113
-
114
- logger.info('All tests passed')
115
- process.exit(0)
116
- }
117
-
118
- void yargs.command('$0', 'Run E2E Tests', configSchema, main).parse()