@botpress/cli 2.1.1 → 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 (380) 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 +1 -1
  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-integration/.botpress/implementation/index.ts +57 -0
  334. package/templates/empty-integration/.botpress/implementation/typings/actions/index.ts +6 -0
  335. package/templates/empty-integration/.botpress/implementation/typings/channels/index.ts +6 -0
  336. package/templates/empty-integration/.botpress/implementation/typings/configuration/index.ts +2 -0
  337. package/templates/empty-integration/.botpress/implementation/typings/configurations/index.ts +6 -0
  338. package/templates/empty-integration/.botpress/implementation/typings/entities/index.ts +6 -0
  339. package/templates/empty-integration/.botpress/implementation/typings/events/index.ts +6 -0
  340. package/templates/empty-integration/.botpress/implementation/typings/index.ts +31 -0
  341. package/templates/empty-integration/.botpress/implementation/typings/states/index.ts +6 -0
  342. package/templates/empty-integration/.botpress/index.ts +2 -0
  343. package/templates/empty-integration/.botpress/secrets/index.ts +6 -0
  344. package/templates/empty-plugin/.botpress/implementation/index.ts +35 -0
  345. package/templates/empty-plugin/.botpress/implementation/typings/actions/index.ts +6 -0
  346. package/templates/empty-plugin/.botpress/implementation/typings/configuration/index.ts +2 -0
  347. package/templates/empty-plugin/.botpress/implementation/typings/events/index.ts +6 -0
  348. package/templates/empty-plugin/.botpress/implementation/typings/index.ts +26 -0
  349. package/templates/empty-plugin/.botpress/implementation/typings/integrations/index.ts +6 -0
  350. package/templates/empty-plugin/.botpress/implementation/typings/interfaces/index.ts +6 -0
  351. package/templates/empty-plugin/.botpress/implementation/typings/states/index.ts +6 -0
  352. package/templates/empty-plugin/.botpress/index.ts +1 -0
  353. package/templates/hello-world/.botpress/implementation/index.ts +57 -0
  354. package/templates/hello-world/.botpress/implementation/typings/actions/helloWorld/index.ts +12 -0
  355. package/templates/hello-world/.botpress/implementation/typings/actions/helloWorld/input.ts +5 -0
  356. package/templates/hello-world/.botpress/implementation/typings/actions/helloWorld/output.ts +5 -0
  357. package/templates/hello-world/.botpress/implementation/typings/actions/index.ts +9 -0
  358. package/templates/hello-world/.botpress/implementation/typings/channels/index.ts +6 -0
  359. package/templates/hello-world/.botpress/implementation/typings/configuration/index.ts +2 -0
  360. package/templates/hello-world/.botpress/implementation/typings/configurations/index.ts +6 -0
  361. package/templates/hello-world/.botpress/implementation/typings/entities/index.ts +6 -0
  362. package/templates/hello-world/.botpress/implementation/typings/events/index.ts +6 -0
  363. package/templates/hello-world/.botpress/implementation/typings/index.ts +31 -0
  364. package/templates/hello-world/.botpress/implementation/typings/states/index.ts +6 -0
  365. package/templates/hello-world/.botpress/index.ts +2 -0
  366. package/templates/hello-world/.botpress/secrets/index.ts +6 -0
  367. package/templates/webhook-message/.botpress/implementation/index.ts +57 -0
  368. package/templates/webhook-message/.botpress/implementation/typings/actions/index.ts +6 -0
  369. package/templates/webhook-message/.botpress/implementation/typings/channels/index.ts +9 -0
  370. package/templates/webhook-message/.botpress/implementation/typings/channels/webhook/index.ts +12 -0
  371. package/templates/webhook-message/.botpress/implementation/typings/channels/webhook/messages/index.ts +9 -0
  372. package/templates/webhook-message/.botpress/implementation/typings/channels/webhook/messages/text.ts +5 -0
  373. package/templates/webhook-message/.botpress/implementation/typings/configuration/index.ts +8 -0
  374. package/templates/webhook-message/.botpress/implementation/typings/configurations/index.ts +6 -0
  375. package/templates/webhook-message/.botpress/implementation/typings/entities/index.ts +6 -0
  376. package/templates/webhook-message/.botpress/implementation/typings/events/index.ts +6 -0
  377. package/templates/webhook-message/.botpress/implementation/typings/index.ts +31 -0
  378. package/templates/webhook-message/.botpress/implementation/typings/states/index.ts +6 -0
  379. package/templates/webhook-message/.botpress/index.ts +2 -0
  380. package/templates/webhook-message/.botpress/secrets/index.ts +6 -0
@@ -0,0 +1,378 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var integration_ruleset_exports = {};
20
+ __export(integration_ruleset_exports, {
21
+ INTEGRATION_RULESET: () => INTEGRATION_RULESET
22
+ });
23
+ module.exports = __toCommonJS(integration_ruleset_exports);
24
+ var import_spectral_functions = require("@stoplight/spectral-functions");
25
+ var import_spectral_functions2 = require("../spectral-functions");
26
+ const INTEGRATION_RULESET = {
27
+ extends: [],
28
+ rules: {
29
+ "integration-title-must-be-present": {
30
+ description: "The integration MUST have a non-empty title",
31
+ severity: "error",
32
+ given: "$",
33
+ then: [{ field: "title", function: import_spectral_functions.truthy }]
34
+ },
35
+ "integration-description-must-be-present": {
36
+ description: "The integration MUST have a non-empty description",
37
+ severity: "error",
38
+ given: "$",
39
+ then: [{ field: "description", function: import_spectral_functions.truthy }]
40
+ },
41
+ "integration-must-have-an-icon": {
42
+ description: "The integration MUST have an icon",
43
+ severity: "error",
44
+ given: "$",
45
+ then: [{ field: "icon", function: import_spectral_functions.truthy }]
46
+ },
47
+ "integration-must-have-a-readme-file": {
48
+ description: "The integration MUST have a readme file",
49
+ severity: "error",
50
+ given: "$",
51
+ then: [{ field: "readme", function: import_spectral_functions.truthy }]
52
+ },
53
+ "actions-should-have-a-title": {
54
+ description: "All actions SHOULD have a title",
55
+ message: "{{description}}: {{error}} SHOULD have a non-empty title",
56
+ severity: "warn",
57
+ given: "$.actions[*]",
58
+ then: [{ field: "title", function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `action "${path[1]}"`) }]
59
+ },
60
+ "actions-must-have-a-description": {
61
+ description: "All actions MUST have a description",
62
+ message: "{{description}}: {{error}} MUST have a non-empty description",
63
+ severity: "error",
64
+ given: "$.actions[*]",
65
+ then: [{ field: "description", function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `action "${path[1]}"`) }]
66
+ },
67
+ "action-inputparams-should-have-a-title": {
68
+ description: "All action input parameters SHOULD have a title",
69
+ message: "{{description}}: {{error}} SHOULD provide a non-empty title by using .title() in its Zod schema",
70
+ severity: "warn",
71
+ given: "$.actions[*].input..schema.properties[*].x-zui",
72
+ then: [
73
+ {
74
+ field: "title",
75
+ function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `input parameter "${path.at(-3)}" of action "${path[1]}"`)
76
+ }
77
+ ]
78
+ },
79
+ "action-inputparams-must-have-a-description": {
80
+ description: "All action input parameters MUST have a description",
81
+ message: "{{description}}: {{error}} MUST provide a non-empty description by using .describe() in its Zod schema",
82
+ severity: "error",
83
+ given: "$.actions[*].input..schema.properties[*]",
84
+ then: [
85
+ {
86
+ field: "description",
87
+ function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `input parameter "${path.at(-2)}" of action "${path[1]}"`)
88
+ }
89
+ ]
90
+ },
91
+ "action-outputparams-should-have-a-title": {
92
+ description: "All action output parameters SHOULD have a title",
93
+ message: "{{description}}: {{error}} SHOULD provide a non-empty title by using .title() in its Zod schema",
94
+ severity: "warn",
95
+ given: "$.actions[*].output..schema.properties[*].x-zui",
96
+ then: [
97
+ {
98
+ field: "title",
99
+ function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `output parameter "${path.at(-3)}" of action "${path[1]}"`)
100
+ }
101
+ ]
102
+ },
103
+ "action-outputparams-must-have-a-description": {
104
+ description: "All action output parameters MUST have a description",
105
+ message: "{{description}}: {{error}} MUST provide a non-empty description by using .describe() in its Zod schema",
106
+ severity: "error",
107
+ given: "$.actions[*].output..schema.properties[*]",
108
+ then: [
109
+ {
110
+ field: "description",
111
+ function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `output parameter "${path.at(-2)}" of action "${path[1]}"`)
112
+ }
113
+ ]
114
+ },
115
+ "event-outputparams-should-have-title": {
116
+ description: "All event output parameters SHOULD have a title",
117
+ message: "{{description}}: {{error}} SHOULD provide a non-empty title by using .title() in its Zod schema",
118
+ severity: "warn",
119
+ given: "$.events[*]..schema.properties[*]",
120
+ then: [
121
+ {
122
+ field: "x-zui.title",
123
+ function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `output parameter "${path.at(-3)}" of event "${path[1]}"`)
124
+ }
125
+ ]
126
+ },
127
+ "event-outputparams-must-have-description": {
128
+ description: "All event output parameters MUST have a description",
129
+ message: "{{description}}: {{error}} SHOULD provide a non-empty description by using .describe() in its Zod schema",
130
+ severity: "error",
131
+ given: "$.events[*]..schema.properties[*]",
132
+ then: [
133
+ {
134
+ field: "description",
135
+ function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `output parameter "${path.at(-2)}" of event "${path[1]}"`)
136
+ }
137
+ ]
138
+ },
139
+ "events-must-have-a-title": {
140
+ description: "All events MUST have a title",
141
+ message: "{{description}}: {{error}} MUST be a non-empty string",
142
+ severity: "error",
143
+ given: "$.events[*]",
144
+ then: [{ field: "title", function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `event "${path[1]}"`) }]
145
+ },
146
+ "events-must-have-a-description": {
147
+ description: "All events MUST have a description",
148
+ message: "{{description}}: {{error}} MUST be a non-empty string",
149
+ severity: "error",
150
+ given: "$.events[*]",
151
+ then: [{ field: "description", function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `event "${path[1]}"`) }]
152
+ },
153
+ "consider-migrating-to-configurations": {
154
+ description: 'Consider migrating to the new multiple configuration format: you MAY move your configuration from "configuration" to "configurations" and remove the "configuration" property',
155
+ severity: "off",
156
+ given: "$",
157
+ then: [
158
+ { field: "configuration", function: import_spectral_functions.falsy },
159
+ { field: "configurations", function: import_spectral_functions.truthy }
160
+ ]
161
+ },
162
+ "configuration-fields-must-have-a-title": {
163
+ description: "All configuration fields MUST have a title",
164
+ message: "{{description}}: {{error}} MUST provide a non-empty title by using .title() in its Zod schema",
165
+ severity: "error",
166
+ given: "$.configuration..schema.properties[*].x-zui",
167
+ then: [
168
+ {
169
+ field: "title",
170
+ function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `configuration parameter "${path.at(-3)}"`)
171
+ }
172
+ ]
173
+ },
174
+ "configuration-fields-must-have-a-description": {
175
+ description: "All configuration fields MUST have a description",
176
+ message: "{{description}}: {{error}} MUST provide a non-empty description by using .describe() in its Zod schema",
177
+ severity: "error",
178
+ given: "$.configuration..schema.properties[*]",
179
+ then: [
180
+ {
181
+ field: "description",
182
+ function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `configuration parameter "${path.at(-2)}"`)
183
+ }
184
+ ]
185
+ },
186
+ "multiple-configurations-must-have-a-title": {
187
+ description: "Multiple configuration definitions MUST have a title",
188
+ message: "{{description}}: {{error}} MUST have a title",
189
+ severity: "error",
190
+ given: "$.configurations[*]",
191
+ then: [{ field: "title", function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `configuration "${path[1]}"`) }]
192
+ },
193
+ "multiple-configurations-must-have-a-description": {
194
+ description: "Multiple configuration definitions MUST have a description",
195
+ message: "{{description}}: {{error}} MUST have a description",
196
+ severity: "error",
197
+ given: "$.configurations[*]",
198
+ then: [{ field: "description", function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `configuration "${path[1]}"`) }]
199
+ },
200
+ "multipes-configurations-fields-must-have-a-title": {
201
+ description: "All configuration fields in multiple configurations MUST have a title",
202
+ message: "{{description}}: {{error}} MUST provide a non-empty title by using .title() in its Zod schema",
203
+ severity: "error",
204
+ given: "$.configurations[*]..schema.properties[*].x-zui",
205
+ then: [
206
+ {
207
+ field: "title",
208
+ function: (0, import_spectral_functions2.truthyWithMessage)(
209
+ ({ path }) => `configuration field "${path.at(-3)}" of configuration "${path[1]}"`
210
+ )
211
+ }
212
+ ]
213
+ },
214
+ "multipes-configurations-fields-must-have-a-description": {
215
+ description: "All configuration fields in multiple configurations MUST have a description",
216
+ message: "{{description}}: {{error}} MUST provide a non-empty description by using .describe() in its Zod schema",
217
+ severity: "error",
218
+ given: "$.configurations[*]..schema.properties[*]",
219
+ then: [
220
+ {
221
+ field: "description",
222
+ function: (0, import_spectral_functions2.truthyWithMessage)(
223
+ ({ path }) => `configuration field "${path.at(-2)}" of configuration "${path[1]}"`
224
+ )
225
+ }
226
+ ]
227
+ },
228
+ "user-tags-should-have-a-title": {
229
+ description: "All user tags SHOULD have a title",
230
+ message: "{{description}}: {{error}} SHOULD have a non-empty title",
231
+ severity: "warn",
232
+ given: "$.user.tags[*]",
233
+ then: [
234
+ {
235
+ field: "title",
236
+ function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `user tag "${path[2]}"`)
237
+ }
238
+ ]
239
+ },
240
+ "user-tags-must-have-a-description": {
241
+ description: "All user tags MUST have a description",
242
+ message: "{{description}}: {{error}} MUST have a non-empty description",
243
+ severity: "error",
244
+ given: "$.user.tags[*]",
245
+ then: [
246
+ {
247
+ field: "description",
248
+ function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `user tag "${path[2]}"`)
249
+ }
250
+ ]
251
+ },
252
+ "channels-should-have-a-title": {
253
+ description: "All channels SHOULD have a title",
254
+ message: "{{description}}: {{error}} SHOULD have a non-empty title",
255
+ severity: "warn",
256
+ given: "$.channels[*]",
257
+ then: [
258
+ {
259
+ field: "title",
260
+ function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `channel "${path[1]}"`)
261
+ }
262
+ ]
263
+ },
264
+ "channels-must-have-a-description": {
265
+ description: "All channels MUST have a description",
266
+ message: "{{description}}: {{error}} MUST have a non-empty description",
267
+ severity: "error",
268
+ given: "$.channels[*]",
269
+ then: [
270
+ {
271
+ field: "description",
272
+ function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `channel "${path[1]}"`)
273
+ }
274
+ ]
275
+ },
276
+ "channels-conversation-tags-should-have-a-title": {
277
+ description: "All conversation tags SHOULD have a title",
278
+ message: "{{description}}: {{error}} SHOULD have a non-empty title",
279
+ severity: "warn",
280
+ given: "$.channels[*].conversation.tags[*]",
281
+ then: [
282
+ {
283
+ field: "title",
284
+ function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `conversation tag "${path.at(-2)}" of channel "${path[1]}"`)
285
+ }
286
+ ]
287
+ },
288
+ "channels-conversation-tags-must-have-a-description": {
289
+ description: "All conversation tags MUST have a description",
290
+ message: "{{description}}: {{error}} MUST have a non-empty description",
291
+ severity: "error",
292
+ given: "$.channels[*].conversation.tags[*]",
293
+ then: [
294
+ {
295
+ field: "description",
296
+ function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `conversation tag "${path.at(-2)}" of channel "${path[1]}"`)
297
+ }
298
+ ]
299
+ },
300
+ "channels-message-tags-should-have-a-title": {
301
+ description: "All message tags SHOULD have a title",
302
+ message: "{{description}}: {{error}} SHOULD have a non-empty title",
303
+ severity: "warn",
304
+ given: "$.channels[*].message.tags[*]",
305
+ then: [
306
+ {
307
+ field: "title",
308
+ function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `message tag "${path.at(-2)}" of channel "${path[1]}"`)
309
+ }
310
+ ]
311
+ },
312
+ "channels-message-tags-must-have-a-description": {
313
+ description: "All message tags MUST have a description",
314
+ message: "{{description}}: {{error}} MUST have a non-empty description",
315
+ severity: "error",
316
+ given: "$.channels[*].message.tags[*]",
317
+ then: [
318
+ {
319
+ field: "description",
320
+ function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `message tag "${path.at(-2)}" of channel "${path[1]}"`)
321
+ }
322
+ ]
323
+ },
324
+ "legacy-zui-title-should-be-removed": {
325
+ description: "Legacy ZUI title fields (ui.title) SHOULD be removed. Please use .title() in your Zod schemas instead",
326
+ severity: "error",
327
+ given: "$..ui[*].title",
328
+ then: [{ function: import_spectral_functions.falsy }]
329
+ },
330
+ "legacy-zui-examples-should-be-removed": {
331
+ description: "Legacy ZUI examples fields (ui.examples) SHOULD be removed. There are currently no alternatives",
332
+ severity: "hint",
333
+ given: "$..ui[*].examples",
334
+ then: [{ function: import_spectral_functions.falsy }]
335
+ },
336
+ "state-fields-should-have-title": {
337
+ description: "All state fields SHOULD have a title",
338
+ message: "{{description}}: {{error}} SHOULD provide a non-empty title by using .title() in its Zod schema",
339
+ severity: "warn",
340
+ given: "$.states[*]..schema.properties[*]",
341
+ then: [
342
+ {
343
+ field: "x-zui.title",
344
+ function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `field "${path.at(-3)}" of state "${path[1]}"`)
345
+ }
346
+ ]
347
+ },
348
+ "state-fields-must-have-description": {
349
+ description: "All state fields MUST have a description",
350
+ message: "{{description}}: {{error}} SHOULD provide a non-empty description by using .describe() in its Zod schema",
351
+ severity: "error",
352
+ given: "$.states[*]..schema.properties[*]",
353
+ then: [
354
+ {
355
+ field: "description",
356
+ function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `field "${path.at(-2)}" of state "${path[1]}"`)
357
+ }
358
+ ]
359
+ },
360
+ "secrets-must-have-a-description": {
361
+ description: "All secrets MUST have a description",
362
+ message: "{{description}}: {{error}} MUST have a non-empty description",
363
+ severity: "error",
364
+ given: "$.secrets[*]",
365
+ then: [
366
+ {
367
+ field: "description",
368
+ function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `secret "${path[1]}"`)
369
+ }
370
+ ]
371
+ }
372
+ }
373
+ };
374
+ // Annotate the CommonJS export names for ESM import in node:
375
+ 0 && (module.exports = {
376
+ INTEGRATION_RULESET
377
+ });
378
+ //# sourceMappingURL=integration.ruleset.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/linter/rulesets/integration.ruleset.ts"],
4
+ "sourcesContent": ["import { type RulesetDefinition } from '@stoplight/spectral-core'\nimport { falsy, truthy } from '@stoplight/spectral-functions'\nimport { truthyWithMessage } from '../spectral-functions'\n\nexport const INTEGRATION_RULESET = {\n extends: [],\n rules: {\n 'integration-title-must-be-present': {\n description: 'The integration MUST have a non-empty title',\n severity: 'error',\n given: '$',\n then: [{ field: 'title', function: truthy }],\n },\n 'integration-description-must-be-present': {\n description: 'The integration MUST have a non-empty description',\n severity: 'error',\n given: '$',\n then: [{ field: 'description', function: truthy }],\n },\n 'integration-must-have-an-icon': {\n description: 'The integration MUST have an icon',\n severity: 'error',\n given: '$',\n then: [{ field: 'icon', function: truthy }],\n },\n 'integration-must-have-a-readme-file': {\n description: 'The integration MUST have a readme file',\n severity: 'error',\n given: '$',\n then: [{ field: 'readme', function: truthy }],\n },\n 'actions-should-have-a-title': {\n description: 'All actions SHOULD have a title',\n message: '{{description}}: {{error}} SHOULD have a non-empty title',\n severity: 'warn',\n given: '$.actions[*]',\n then: [{ field: 'title', function: truthyWithMessage(({ path }) => `action \"${path[1]}\"`) }],\n },\n 'actions-must-have-a-description': {\n description: 'All actions MUST have a description',\n message: '{{description}}: {{error}} MUST have a non-empty description',\n severity: 'error',\n given: '$.actions[*]',\n then: [{ field: 'description', function: truthyWithMessage(({ path }) => `action \"${path[1]}\"`) }],\n },\n 'action-inputparams-should-have-a-title': {\n description: 'All action input parameters SHOULD have a title',\n message: '{{description}}: {{error}} SHOULD provide a non-empty title by using .title() in its Zod schema',\n severity: 'warn',\n given: '$.actions[*].input..schema.properties[*].x-zui',\n then: [\n {\n field: 'title',\n function: truthyWithMessage(({ path }) => `input parameter \"${path.at(-3)}\" of action \"${path[1]}\"`),\n },\n ],\n },\n 'action-inputparams-must-have-a-description': {\n description: 'All action input parameters MUST have a description',\n message: '{{description}}: {{error}} MUST provide a non-empty description by using .describe() in its Zod schema',\n severity: 'error',\n given: '$.actions[*].input..schema.properties[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(({ path }) => `input parameter \"${path.at(-2)}\" of action \"${path[1]}\"`),\n },\n ],\n },\n 'action-outputparams-should-have-a-title': {\n description: 'All action output parameters SHOULD have a title',\n message: '{{description}}: {{error}} SHOULD provide a non-empty title by using .title() in its Zod schema',\n severity: 'warn',\n given: '$.actions[*].output..schema.properties[*].x-zui',\n then: [\n {\n field: 'title',\n function: truthyWithMessage(({ path }) => `output parameter \"${path.at(-3)}\" of action \"${path[1]}\"`),\n },\n ],\n },\n 'action-outputparams-must-have-a-description': {\n description: 'All action output parameters MUST have a description',\n message: '{{description}}: {{error}} MUST provide a non-empty description by using .describe() in its Zod schema',\n severity: 'error',\n given: '$.actions[*].output..schema.properties[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(({ path }) => `output parameter \"${path.at(-2)}\" of action \"${path[1]}\"`),\n },\n ],\n },\n 'event-outputparams-should-have-title': {\n description: 'All event output parameters SHOULD have a title',\n message: '{{description}}: {{error}} SHOULD provide a non-empty title by using .title() in its Zod schema',\n severity: 'warn',\n given: '$.events[*]..schema.properties[*]',\n then: [\n {\n field: 'x-zui.title',\n function: truthyWithMessage(({ path }) => `output parameter \"${path.at(-3)}\" of event \"${path[1]}\"`),\n },\n ],\n },\n 'event-outputparams-must-have-description': {\n description: 'All event output parameters MUST have a description',\n message:\n '{{description}}: {{error}} SHOULD provide a non-empty description by using .describe() in its Zod schema',\n severity: 'error',\n given: '$.events[*]..schema.properties[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(({ path }) => `output parameter \"${path.at(-2)}\" of event \"${path[1]}\"`),\n },\n ],\n },\n 'events-must-have-a-title': {\n description: 'All events MUST have a title',\n message: '{{description}}: {{error}} MUST be a non-empty string',\n severity: 'error',\n given: '$.events[*]',\n then: [{ field: 'title', function: truthyWithMessage(({ path }) => `event \"${path[1]}\"`) }],\n },\n 'events-must-have-a-description': {\n description: 'All events MUST have a description',\n message: '{{description}}: {{error}} MUST be a non-empty string',\n severity: 'error',\n given: '$.events[*]',\n then: [{ field: 'description', function: truthyWithMessage(({ path }) => `event \"${path[1]}\"`) }],\n },\n 'consider-migrating-to-configurations': {\n description:\n 'Consider migrating to the new multiple configuration format: you MAY move your configuration from \"configuration\" to \"configurations\" and remove the \"configuration\" property',\n severity: 'off',\n given: '$',\n then: [\n { field: 'configuration', function: falsy },\n { field: 'configurations', function: truthy },\n ],\n },\n 'configuration-fields-must-have-a-title': {\n description: 'All configuration fields MUST have a title',\n message: '{{description}}: {{error}} MUST provide a non-empty title by using .title() in its Zod schema',\n severity: 'error',\n given: '$.configuration..schema.properties[*].x-zui',\n then: [\n {\n field: 'title',\n function: truthyWithMessage(({ path }) => `configuration parameter \"${path.at(-3)}\"`),\n },\n ],\n },\n 'configuration-fields-must-have-a-description': {\n description: 'All configuration fields MUST have a description',\n message: '{{description}}: {{error}} MUST provide a non-empty description by using .describe() in its Zod schema',\n severity: 'error',\n given: '$.configuration..schema.properties[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(({ path }) => `configuration parameter \"${path.at(-2)}\"`),\n },\n ],\n },\n 'multiple-configurations-must-have-a-title': {\n description: 'Multiple configuration definitions MUST have a title',\n message: '{{description}}: {{error}} MUST have a title',\n severity: 'error',\n given: '$.configurations[*]',\n then: [{ field: 'title', function: truthyWithMessage(({ path }) => `configuration \"${path[1]}\"`) }],\n },\n 'multiple-configurations-must-have-a-description': {\n description: 'Multiple configuration definitions MUST have a description',\n message: '{{description}}: {{error}} MUST have a description',\n severity: 'error',\n given: '$.configurations[*]',\n then: [{ field: 'description', function: truthyWithMessage(({ path }) => `configuration \"${path[1]}\"`) }],\n },\n 'multipes-configurations-fields-must-have-a-title': {\n description: 'All configuration fields in multiple configurations MUST have a title',\n message: '{{description}}: {{error}} MUST provide a non-empty title by using .title() in its Zod schema',\n severity: 'error',\n given: '$.configurations[*]..schema.properties[*].x-zui',\n then: [\n {\n field: 'title',\n function: truthyWithMessage(\n ({ path }) => `configuration field \"${path.at(-3)}\" of configuration \"${path[1]}\"`\n ),\n },\n ],\n },\n 'multipes-configurations-fields-must-have-a-description': {\n description: 'All configuration fields in multiple configurations MUST have a description',\n message: '{{description}}: {{error}} MUST provide a non-empty description by using .describe() in its Zod schema',\n severity: 'error',\n given: '$.configurations[*]..schema.properties[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(\n ({ path }) => `configuration field \"${path.at(-2)}\" of configuration \"${path[1]}\"`\n ),\n },\n ],\n },\n 'user-tags-should-have-a-title': {\n description: 'All user tags SHOULD have a title',\n message: '{{description}}: {{error}} SHOULD have a non-empty title',\n severity: 'warn',\n given: '$.user.tags[*]',\n then: [\n {\n field: 'title',\n function: truthyWithMessage(({ path }) => `user tag \"${path[2]}\"`),\n },\n ],\n },\n 'user-tags-must-have-a-description': {\n description: 'All user tags MUST have a description',\n message: '{{description}}: {{error}} MUST have a non-empty description',\n severity: 'error',\n given: '$.user.tags[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(({ path }) => `user tag \"${path[2]}\"`),\n },\n ],\n },\n 'channels-should-have-a-title': {\n description: 'All channels SHOULD have a title',\n message: '{{description}}: {{error}} SHOULD have a non-empty title',\n severity: 'warn',\n given: '$.channels[*]',\n then: [\n {\n field: 'title',\n function: truthyWithMessage(({ path }) => `channel \"${path[1]}\"`),\n },\n ],\n },\n 'channels-must-have-a-description': {\n description: 'All channels MUST have a description',\n message: '{{description}}: {{error}} MUST have a non-empty description',\n severity: 'error',\n given: '$.channels[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(({ path }) => `channel \"${path[1]}\"`),\n },\n ],\n },\n 'channels-conversation-tags-should-have-a-title': {\n description: 'All conversation tags SHOULD have a title',\n message: '{{description}}: {{error}} SHOULD have a non-empty title',\n severity: 'warn',\n given: '$.channels[*].conversation.tags[*]',\n then: [\n {\n field: 'title',\n function: truthyWithMessage(({ path }) => `conversation tag \"${path.at(-2)}\" of channel \"${path[1]}\"`),\n },\n ],\n },\n 'channels-conversation-tags-must-have-a-description': {\n description: 'All conversation tags MUST have a description',\n message: '{{description}}: {{error}} MUST have a non-empty description',\n severity: 'error',\n given: '$.channels[*].conversation.tags[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(({ path }) => `conversation tag \"${path.at(-2)}\" of channel \"${path[1]}\"`),\n },\n ],\n },\n 'channels-message-tags-should-have-a-title': {\n description: 'All message tags SHOULD have a title',\n message: '{{description}}: {{error}} SHOULD have a non-empty title',\n severity: 'warn',\n given: '$.channels[*].message.tags[*]',\n then: [\n {\n field: 'title',\n function: truthyWithMessage(({ path }) => `message tag \"${path.at(-2)}\" of channel \"${path[1]}\"`),\n },\n ],\n },\n 'channels-message-tags-must-have-a-description': {\n description: 'All message tags MUST have a description',\n message: '{{description}}: {{error}} MUST have a non-empty description',\n severity: 'error',\n given: '$.channels[*].message.tags[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(({ path }) => `message tag \"${path.at(-2)}\" of channel \"${path[1]}\"`),\n },\n ],\n },\n 'legacy-zui-title-should-be-removed': {\n description:\n 'Legacy ZUI title fields (ui.title) SHOULD be removed. Please use .title() in your Zod schemas instead',\n severity: 'error',\n given: '$..ui[*].title',\n then: [{ function: falsy }],\n },\n 'legacy-zui-examples-should-be-removed': {\n description: 'Legacy ZUI examples fields (ui.examples) SHOULD be removed. There are currently no alternatives',\n severity: 'hint',\n given: '$..ui[*].examples',\n then: [{ function: falsy }],\n },\n 'state-fields-should-have-title': {\n description: 'All state fields SHOULD have a title',\n message: '{{description}}: {{error}} SHOULD provide a non-empty title by using .title() in its Zod schema',\n severity: 'warn',\n given: '$.states[*]..schema.properties[*]',\n then: [\n {\n field: 'x-zui.title',\n function: truthyWithMessage(({ path }) => `field \"${path.at(-3)}\" of state \"${path[1]}\"`),\n },\n ],\n },\n 'state-fields-must-have-description': {\n description: 'All state fields MUST have a description',\n message:\n '{{description}}: {{error}} SHOULD provide a non-empty description by using .describe() in its Zod schema',\n severity: 'error',\n given: '$.states[*]..schema.properties[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(({ path }) => `field \"${path.at(-2)}\" of state \"${path[1]}\"`),\n },\n ],\n },\n 'secrets-must-have-a-description': {\n description: 'All secrets MUST have a description',\n message: '{{description}}: {{error}} MUST have a non-empty description',\n severity: 'error',\n given: '$.secrets[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(({ path }) => `secret \"${path[1]}\"`),\n },\n ],\n },\n },\n} satisfies RulesetDefinition\n"],
5
+ "mappings": "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",
6
+ "names": ["import_spectral_functions"]
7
+ }
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var interface_ruleset_exports = {};
20
+ __export(interface_ruleset_exports, {
21
+ INTERFACE_RULESET: () => INTERFACE_RULESET
22
+ });
23
+ module.exports = __toCommonJS(interface_ruleset_exports);
24
+ var import_spectral_functions = require("@stoplight/spectral-functions");
25
+ var import_spectral_functions2 = require("../spectral-functions");
26
+ const INTERFACE_RULESET = {
27
+ extends: [],
28
+ rules: {
29
+ "action-inputparams-should-have-a-title": {
30
+ description: "All action input parameters SHOULD have a title",
31
+ message: "{{description}}: {{error}} SHOULD provide a non-empty title by using .title() in its Zod schema",
32
+ severity: "warn",
33
+ given: "$.actions[*].input..schema.properties[*].x-zui",
34
+ then: [
35
+ {
36
+ field: "title",
37
+ function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `input parameter "${path.at(-3)}" of action "${path[1]}"`)
38
+ }
39
+ ]
40
+ },
41
+ "action-inputparams-must-have-a-description": {
42
+ description: "All action input parameters MUST have a description",
43
+ message: "{{description}}: {{error}} MUST provide a non-empty description by using .describe() in its Zod schema",
44
+ severity: "error",
45
+ given: "$.actions[*].input..schema.properties[*]",
46
+ then: [
47
+ {
48
+ field: "description",
49
+ function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `input parameter "${path.at(-2)}" of action "${path[1]}"`)
50
+ }
51
+ ]
52
+ },
53
+ "action-outputparams-should-have-a-title": {
54
+ description: "All action output parameters SHOULD have a title",
55
+ message: "{{description}}: {{error}} SHOULD provide a non-empty title by using .title() in its Zod schema",
56
+ severity: "warn",
57
+ given: "$.actions[*].output..schema.properties[*].x-zui",
58
+ then: [
59
+ {
60
+ field: "title",
61
+ function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `output parameter "${path.at(-3)}" of action "${path[1]}"`)
62
+ }
63
+ ]
64
+ },
65
+ "action-outputparams-must-have-a-description": {
66
+ description: "All action output parameters MUST have a description",
67
+ message: "{{description}}: {{error}} MUST provide a non-empty description by using .describe() in its Zod schema",
68
+ severity: "error",
69
+ given: "$.actions[*].output..schema.properties[*]",
70
+ then: [
71
+ {
72
+ field: "description",
73
+ function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `output parameter "${path.at(-2)}" of action "${path[1]}"`)
74
+ }
75
+ ]
76
+ },
77
+ "event-outputparams-should-have-title": {
78
+ description: "All event output parameters SHOULD have a title",
79
+ message: "{{description}}: {{error}} SHOULD provide a non-empty title by using .title() in its Zod schema",
80
+ severity: "warn",
81
+ given: "$.events[*]..schema.properties[*]",
82
+ then: [
83
+ {
84
+ field: "x-zui.title",
85
+ function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `output parameter "${path.at(-3)}" of event "${path[1]}"`)
86
+ }
87
+ ]
88
+ },
89
+ "event-outputparams-must-have-description": {
90
+ description: "All event output parameters MUST have a description",
91
+ message: "{{description}}: {{error}} SHOULD provide a non-empty description by using .describe() in its Zod schema",
92
+ severity: "error",
93
+ given: "$.events[*]..schema.properties[*]",
94
+ then: [
95
+ {
96
+ field: "description",
97
+ function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `output parameter "${path.at(-2)}" of event "${path[1]}"`)
98
+ }
99
+ ]
100
+ },
101
+ "legacy-zui-title-should-be-removed": {
102
+ description: "Legacy ZUI title fields (ui.title) SHOULD be removed. Please use .title() in your Zod schemas instead",
103
+ severity: "error",
104
+ given: "$..ui[*].title",
105
+ then: [{ function: import_spectral_functions.falsy }]
106
+ },
107
+ "legacy-zui-examples-should-be-removed": {
108
+ description: "Legacy ZUI examples fields (ui.examples) SHOULD be removed. There are currently no alternatives",
109
+ severity: "hint",
110
+ given: "$..ui[*].examples",
111
+ then: [{ function: import_spectral_functions.falsy }]
112
+ },
113
+ "entities-should-have-a-title": {
114
+ description: "All entities SHOULD have a title",
115
+ message: "{{description}}: {{error}} SHOULD have a non-empty title",
116
+ severity: "warn",
117
+ given: "$.entities[*]",
118
+ then: [{ field: "title", function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `entity "${path[1]}"`) }]
119
+ },
120
+ "entities-must-have-a-description": {
121
+ description: "All entities MUST have a description",
122
+ message: "{{description}}: {{error}} MUST have a non-empty description",
123
+ severity: "error",
124
+ given: "$.entities[*]",
125
+ then: [{ field: "description", function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `entity "${path[1]}"`) }]
126
+ },
127
+ "entity-fields-should-have-a-title": {
128
+ description: "All entity fields SHOULD have a title",
129
+ message: "{{description}}: {{error}} SHOULD provide a non-empty title by using .title() in its Zod schema",
130
+ severity: "warn",
131
+ given: "$.entities[*]..schema.properties[*]",
132
+ then: [
133
+ {
134
+ field: "x-zui.title",
135
+ function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `field "${path.at(-3)}" of entity "${path[1]}"`)
136
+ }
137
+ ]
138
+ },
139
+ "entity-fields-must-have-a-description": {
140
+ description: "All entity fields MUST have a description",
141
+ message: "{{description}}: {{error}} MUST provide a non-empty description by using .describe() in its Zod schema",
142
+ severity: "error",
143
+ given: "$.entities[*]..schema.properties[*]",
144
+ then: [
145
+ {
146
+ field: "description",
147
+ function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `field "${path.at(-2)}" of entity "${path[1]}"`)
148
+ }
149
+ ]
150
+ }
151
+ }
152
+ };
153
+ // Annotate the CommonJS export names for ESM import in node:
154
+ 0 && (module.exports = {
155
+ INTERFACE_RULESET
156
+ });
157
+ //# sourceMappingURL=interface.ruleset.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/linter/rulesets/interface.ruleset.ts"],
4
+ "sourcesContent": ["import { type RulesetDefinition } from '@stoplight/spectral-core'\nimport { falsy } from '@stoplight/spectral-functions'\nimport { truthyWithMessage } from '../spectral-functions'\n\nexport const INTERFACE_RULESET = {\n extends: [],\n rules: {\n 'action-inputparams-should-have-a-title': {\n description: 'All action input parameters SHOULD have a title',\n message: '{{description}}: {{error}} SHOULD provide a non-empty title by using .title() in its Zod schema',\n severity: 'warn',\n given: '$.actions[*].input..schema.properties[*].x-zui',\n then: [\n {\n field: 'title',\n function: truthyWithMessage(({ path }) => `input parameter \"${path.at(-3)}\" of action \"${path[1]}\"`),\n },\n ],\n },\n 'action-inputparams-must-have-a-description': {\n description: 'All action input parameters MUST have a description',\n message: '{{description}}: {{error}} MUST provide a non-empty description by using .describe() in its Zod schema',\n severity: 'error',\n given: '$.actions[*].input..schema.properties[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(({ path }) => `input parameter \"${path.at(-2)}\" of action \"${path[1]}\"`),\n },\n ],\n },\n 'action-outputparams-should-have-a-title': {\n description: 'All action output parameters SHOULD have a title',\n message: '{{description}}: {{error}} SHOULD provide a non-empty title by using .title() in its Zod schema',\n severity: 'warn',\n given: '$.actions[*].output..schema.properties[*].x-zui',\n then: [\n {\n field: 'title',\n function: truthyWithMessage(({ path }) => `output parameter \"${path.at(-3)}\" of action \"${path[1]}\"`),\n },\n ],\n },\n 'action-outputparams-must-have-a-description': {\n description: 'All action output parameters MUST have a description',\n message: '{{description}}: {{error}} MUST provide a non-empty description by using .describe() in its Zod schema',\n severity: 'error',\n given: '$.actions[*].output..schema.properties[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(({ path }) => `output parameter \"${path.at(-2)}\" of action \"${path[1]}\"`),\n },\n ],\n },\n 'event-outputparams-should-have-title': {\n description: 'All event output parameters SHOULD have a title',\n message: '{{description}}: {{error}} SHOULD provide a non-empty title by using .title() in its Zod schema',\n severity: 'warn',\n given: '$.events[*]..schema.properties[*]',\n then: [\n {\n field: 'x-zui.title',\n function: truthyWithMessage(({ path }) => `output parameter \"${path.at(-3)}\" of event \"${path[1]}\"`),\n },\n ],\n },\n 'event-outputparams-must-have-description': {\n description: 'All event output parameters MUST have a description',\n message:\n '{{description}}: {{error}} SHOULD provide a non-empty description by using .describe() in its Zod schema',\n severity: 'error',\n given: '$.events[*]..schema.properties[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(({ path }) => `output parameter \"${path.at(-2)}\" of event \"${path[1]}\"`),\n },\n ],\n },\n 'legacy-zui-title-should-be-removed': {\n description:\n 'Legacy ZUI title fields (ui.title) SHOULD be removed. Please use .title() in your Zod schemas instead',\n severity: 'error',\n given: '$..ui[*].title',\n then: [{ function: falsy }],\n },\n 'legacy-zui-examples-should-be-removed': {\n description: 'Legacy ZUI examples fields (ui.examples) SHOULD be removed. There are currently no alternatives',\n severity: 'hint',\n given: '$..ui[*].examples',\n then: [{ function: falsy }],\n },\n 'entities-should-have-a-title': {\n description: 'All entities SHOULD have a title',\n message: '{{description}}: {{error}} SHOULD have a non-empty title',\n severity: 'warn',\n given: '$.entities[*]',\n then: [{ field: 'title', function: truthyWithMessage(({ path }) => `entity \"${path[1]}\"`) }],\n },\n 'entities-must-have-a-description': {\n description: 'All entities MUST have a description',\n message: '{{description}}: {{error}} MUST have a non-empty description',\n severity: 'error',\n given: '$.entities[*]',\n then: [{ field: 'description', function: truthyWithMessage(({ path }) => `entity \"${path[1]}\"`) }],\n },\n 'entity-fields-should-have-a-title': {\n description: 'All entity fields SHOULD have a title',\n message: '{{description}}: {{error}} SHOULD provide a non-empty title by using .title() in its Zod schema',\n severity: 'warn',\n given: '$.entities[*]..schema.properties[*]',\n then: [\n {\n field: 'x-zui.title',\n function: truthyWithMessage(({ path }) => `field \"${path.at(-3)}\" of entity \"${path[1]}\"`),\n },\n ],\n },\n 'entity-fields-must-have-a-description': {\n description: 'All entity fields MUST have a description',\n message: '{{description}}: {{error}} MUST provide a non-empty description by using .describe() in its Zod schema',\n severity: 'error',\n given: '$.entities[*]..schema.properties[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(({ path }) => `field \"${path.at(-2)}\" of entity \"${path[1]}\"`),\n },\n ],\n },\n },\n} satisfies RulesetDefinition\n"],
5
+ "mappings": "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",
6
+ "names": ["import_spectral_functions"]
7
+ }
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var spectral_functions_exports = {};
20
+ __export(spectral_functions_exports, {
21
+ truthyWithMessage: () => truthyWithMessage
22
+ });
23
+ module.exports = __toCommonJS(spectral_functions_exports);
24
+ const truthyWithMessage = (fn) => (input, _, context) => {
25
+ const messages = [];
26
+ if (!input) {
27
+ const message = fn({ path: context.path });
28
+ messages.push({ message });
29
+ }
30
+ return messages;
31
+ };
32
+ // Annotate the CommonJS export names for ESM import in node:
33
+ 0 && (module.exports = {
34
+ truthyWithMessage
35
+ });
36
+ //# sourceMappingURL=spectral-functions.js.map