@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.
- package/.turbo/turbo-build.log +22 -0
- package/dist/api/bot-body.js +89 -0
- package/dist/api/bot-body.js.map +7 -0
- package/dist/api/client.js +169 -0
- package/dist/api/client.js.map +7 -0
- package/dist/api/find-previous-version.js +66 -0
- package/dist/api/find-previous-version.js.map +7 -0
- package/dist/api/find-previous-version.test.js +76 -0
- package/dist/api/find-previous-version.test.js.map +7 -0
- package/dist/api/index.js +23 -0
- package/dist/api/index.js.map +7 -0
- package/dist/api/integration-body.js +146 -0
- package/dist/api/integration-body.js.map +7 -0
- package/dist/api/interface-body.js +95 -0
- package/dist/api/interface-body.js.map +7 -0
- package/dist/api/paging.js +42 -0
- package/dist/api/paging.js.map +7 -0
- package/dist/api/plugin-body.js +84 -0
- package/dist/api/plugin-body.js.map +7 -0
- package/dist/api/types.js +17 -0
- package/dist/api/types.js.map +7 -0
- package/dist/chat/index.js +211 -0
- package/dist/chat/index.js.map +7 -0
- package/dist/code-generation/bot-implementation/bot-implementation.js +116 -0
- package/dist/code-generation/bot-implementation/bot-implementation.js.map +7 -0
- package/dist/code-generation/bot-implementation/bot-plugins/index.js +80 -0
- package/dist/code-generation/bot-implementation/bot-plugins/index.js.map +7 -0
- package/dist/code-generation/bot-implementation/bot-plugins/plugin-module.js +129 -0
- package/dist/code-generation/bot-implementation/bot-plugins/plugin-module.js.map +7 -0
- package/dist/code-generation/bot-implementation/bot-typings/actions-module.js +88 -0
- package/dist/code-generation/bot-implementation/bot-typings/actions-module.js.map +7 -0
- package/dist/code-generation/bot-implementation/bot-typings/events-module.js +63 -0
- package/dist/code-generation/bot-implementation/bot-typings/events-module.js.map +7 -0
- package/dist/code-generation/bot-implementation/bot-typings/index.js +109 -0
- package/dist/code-generation/bot-implementation/bot-typings/index.js.map +7 -0
- package/dist/code-generation/bot-implementation/bot-typings/states-module.js +64 -0
- package/dist/code-generation/bot-implementation/bot-typings/states-module.js.map +7 -0
- package/dist/code-generation/bot-implementation/index.js +66 -0
- package/dist/code-generation/bot-implementation/index.js.map +7 -0
- package/dist/code-generation/consts.js +45 -0
- package/dist/code-generation/consts.js.map +7 -0
- package/dist/code-generation/generators.js +81 -0
- package/dist/code-generation/generators.js.map +7 -0
- package/dist/code-generation/index.js +49 -0
- package/dist/code-generation/index.js.map +7 -0
- package/dist/code-generation/integration-implementation/index.js +70 -0
- package/dist/code-generation/integration-implementation/index.js.map +7 -0
- package/dist/code-generation/integration-implementation/integration-implementation.js +114 -0
- package/dist/code-generation/integration-implementation/integration-implementation.js.map +7 -0
- package/dist/code-generation/integration-implementation/integration-secret.js +78 -0
- package/dist/code-generation/integration-implementation/integration-secret.js.map +7 -0
- package/dist/code-generation/integration-implementation/integration-typings/actions-module.js +88 -0
- package/dist/code-generation/integration-implementation/integration-typings/actions-module.js.map +7 -0
- package/dist/code-generation/integration-implementation/integration-typings/channels-module.js +107 -0
- package/dist/code-generation/integration-implementation/integration-typings/channels-module.js.map +7 -0
- package/dist/code-generation/integration-implementation/integration-typings/configuration-module.js +62 -0
- package/dist/code-generation/integration-implementation/integration-typings/configuration-module.js.map +7 -0
- package/dist/code-generation/integration-implementation/integration-typings/configurations-module.js +70 -0
- package/dist/code-generation/integration-implementation/integration-typings/configurations-module.js.map +7 -0
- package/dist/code-generation/integration-implementation/integration-typings/entities-module.js +63 -0
- package/dist/code-generation/integration-implementation/integration-typings/entities-module.js.map +7 -0
- package/dist/code-generation/integration-implementation/integration-typings/events-module.js +63 -0
- package/dist/code-generation/integration-implementation/integration-typings/events-module.js.map +7 -0
- package/dist/code-generation/integration-implementation/integration-typings/index.js +128 -0
- package/dist/code-generation/integration-implementation/integration-typings/index.js.map +7 -0
- package/dist/code-generation/integration-implementation/integration-typings/states-module.js +64 -0
- package/dist/code-generation/integration-implementation/integration-typings/states-module.js.map +7 -0
- package/dist/code-generation/integration-package/index.js +94 -0
- package/dist/code-generation/integration-package/index.js.map +7 -0
- package/dist/code-generation/integration-package/integration-package-definition/actions-module.js +88 -0
- package/dist/code-generation/integration-package/integration-package-definition/actions-module.js.map +7 -0
- package/dist/code-generation/integration-package/integration-package-definition/channels-module.js +107 -0
- package/dist/code-generation/integration-package/integration-package-definition/channels-module.js.map +7 -0
- package/dist/code-generation/integration-package/integration-package-definition/configuration-module.js +63 -0
- package/dist/code-generation/integration-package/integration-package-definition/configuration-module.js.map +7 -0
- package/dist/code-generation/integration-package/integration-package-definition/configurations-module.js +70 -0
- package/dist/code-generation/integration-package/integration-package-definition/configurations-module.js.map +7 -0
- package/dist/code-generation/integration-package/integration-package-definition/entities-module.js +63 -0
- package/dist/code-generation/integration-package/integration-package-definition/entities-module.js.map +7 -0
- package/dist/code-generation/integration-package/integration-package-definition/events-module.js +66 -0
- package/dist/code-generation/integration-package/integration-package-definition/events-module.js.map +7 -0
- package/dist/code-generation/integration-package/integration-package-definition/index.js +140 -0
- package/dist/code-generation/integration-package/integration-package-definition/index.js.map +7 -0
- package/dist/code-generation/integration-package/integration-package-definition/states-module.js +66 -0
- package/dist/code-generation/integration-package/integration-package-definition/states-module.js.map +7 -0
- package/dist/code-generation/integration-package/integration-package-definition/typings.js +17 -0
- package/dist/code-generation/integration-package/integration-package-definition/typings.js.map +7 -0
- package/dist/code-generation/interface-implementation/index.js +29 -0
- package/dist/code-generation/interface-implementation/index.js.map +7 -0
- package/dist/code-generation/interface-implementation/integration-typings/actions-module.js +88 -0
- package/dist/code-generation/interface-implementation/integration-typings/actions-module.js.map +7 -0
- package/dist/code-generation/interface-implementation/integration-typings/channels-module.js +107 -0
- package/dist/code-generation/interface-implementation/integration-typings/channels-module.js.map +7 -0
- package/dist/code-generation/interface-implementation/integration-typings/entities-module.js +63 -0
- package/dist/code-generation/interface-implementation/integration-typings/entities-module.js.map +7 -0
- package/dist/code-generation/interface-implementation/integration-typings/events-module.js +63 -0
- package/dist/code-generation/interface-implementation/integration-typings/events-module.js.map +7 -0
- package/dist/code-generation/interface-implementation/integration-typings/index.js +121 -0
- package/dist/code-generation/interface-implementation/integration-typings/index.js.map +7 -0
- package/dist/code-generation/interface-package/index.js +94 -0
- package/dist/code-generation/interface-package/index.js.map +7 -0
- package/dist/code-generation/interface-package/interface-package-definition/actions-module.js +88 -0
- package/dist/code-generation/interface-package/interface-package-definition/actions-module.js.map +7 -0
- package/dist/code-generation/interface-package/interface-package-definition/channels-module.js +98 -0
- package/dist/code-generation/interface-package/interface-package-definition/channels-module.js.map +7 -0
- package/dist/code-generation/interface-package/interface-package-definition/entities-module.js +63 -0
- package/dist/code-generation/interface-package/interface-package-definition/entities-module.js.map +7 -0
- package/dist/code-generation/interface-package/interface-package-definition/events-module.js +66 -0
- package/dist/code-generation/interface-package/interface-package-definition/events-module.js.map +7 -0
- package/dist/code-generation/interface-package/interface-package-definition/index.js +104 -0
- package/dist/code-generation/interface-package/interface-package-definition/index.js.map +7 -0
- package/dist/code-generation/interface-package/interface-package-definition/typings.js +17 -0
- package/dist/code-generation/interface-package/interface-package-definition/typings.js.map +7 -0
- package/dist/code-generation/module.js +183 -0
- package/dist/code-generation/module.js.map +7 -0
- package/dist/code-generation/plugin-implementation/index.js +60 -0
- package/dist/code-generation/plugin-implementation/index.js.map +7 -0
- package/dist/code-generation/plugin-implementation/plugin-implementation.js +90 -0
- package/dist/code-generation/plugin-implementation/plugin-implementation.js.map +7 -0
- package/dist/code-generation/plugin-implementation/plugin-typings/actions-module.js +88 -0
- package/dist/code-generation/plugin-implementation/plugin-typings/actions-module.js.map +7 -0
- package/dist/code-generation/plugin-implementation/plugin-typings/configuration-module.js +61 -0
- package/dist/code-generation/plugin-implementation/plugin-typings/configuration-module.js.map +7 -0
- package/dist/code-generation/plugin-implementation/plugin-typings/events-module.js +63 -0
- package/dist/code-generation/plugin-implementation/plugin-typings/events-module.js.map +7 -0
- package/dist/code-generation/plugin-implementation/plugin-typings/index.js +150 -0
- package/dist/code-generation/plugin-implementation/plugin-typings/index.js.map +7 -0
- package/dist/code-generation/plugin-implementation/plugin-typings/states-module.js +64 -0
- package/dist/code-generation/plugin-implementation/plugin-typings/states-module.js.map +7 -0
- package/dist/code-generation/plugin-package/index.js +151 -0
- package/dist/code-generation/plugin-package/index.js.map +7 -0
- package/dist/code-generation/plugin-package/plugin-package-definition/actions-module.js +88 -0
- package/dist/code-generation/plugin-package/plugin-package-definition/actions-module.js.map +7 -0
- package/dist/code-generation/plugin-package/plugin-package-definition/configuration-module.js +56 -0
- package/dist/code-generation/plugin-package/plugin-package-definition/configuration-module.js.map +7 -0
- package/dist/code-generation/plugin-package/plugin-package-definition/events-module.js +66 -0
- package/dist/code-generation/plugin-package/plugin-package-definition/events-module.js.map +7 -0
- package/dist/code-generation/plugin-package/plugin-package-definition/index.js +107 -0
- package/dist/code-generation/plugin-package/plugin-package-definition/index.js.map +7 -0
- package/dist/code-generation/plugin-package/plugin-package-definition/states-module.js +66 -0
- package/dist/code-generation/plugin-package/plugin-package-definition/states-module.js.map +7 -0
- package/dist/code-generation/plugin-package/plugin-package-definition/typings.js +17 -0
- package/dist/code-generation/plugin-package/plugin-package-definition/typings.js.map +7 -0
- package/dist/code-generation/strings.js +115 -0
- package/dist/code-generation/strings.js.map +7 -0
- package/dist/code-generation/typings.js +17 -0
- package/dist/code-generation/typings.js.map +7 -0
- package/dist/command-definitions.js +85 -0
- package/dist/command-definitions.js.map +7 -0
- package/dist/command-implementations/add-command.js +262 -0
- package/dist/command-implementations/add-command.js.map +7 -0
- package/dist/command-implementations/base-command.js +69 -0
- package/dist/command-implementations/base-command.js.map +7 -0
- package/dist/command-implementations/bot-commands.js +117 -0
- package/dist/command-implementations/bot-commands.js.map +7 -0
- package/dist/command-implementations/build-command.js +53 -0
- package/dist/command-implementations/build-command.js.map +7 -0
- package/dist/command-implementations/bundle-command.js +87 -0
- package/dist/command-implementations/bundle-command.js.map +7 -0
- package/dist/command-implementations/chat-command.js +152 -0
- package/dist/command-implementations/chat-command.js.map +7 -0
- package/dist/command-implementations/deploy-command.js +503 -0
- package/dist/command-implementations/deploy-command.js.map +7 -0
- package/dist/command-implementations/dev-command.js +345 -0
- package/dist/command-implementations/dev-command.js.map +7 -0
- package/dist/command-implementations/gen-command.js +110 -0
- package/dist/command-implementations/gen-command.js.map +7 -0
- package/dist/command-implementations/global-command.js +137 -0
- package/dist/command-implementations/global-command.js.map +7 -0
- package/dist/command-implementations/index.js +105 -0
- package/dist/command-implementations/index.js.map +7 -0
- package/dist/command-implementations/init-command.js +162 -0
- package/dist/command-implementations/init-command.js.map +7 -0
- package/dist/command-implementations/integration-commands.js +130 -0
- package/dist/command-implementations/integration-commands.js.map +7 -0
- package/dist/command-implementations/interface-commands.js +110 -0
- package/dist/command-implementations/interface-commands.js.map +7 -0
- package/dist/command-implementations/lint-command.js +151 -0
- package/dist/command-implementations/lint-command.js.map +7 -0
- package/dist/command-implementations/login-command.js +82 -0
- package/dist/command-implementations/login-command.js.map +7 -0
- package/dist/command-implementations/logout-command.js +35 -0
- package/dist/command-implementations/logout-command.js.map +7 -0
- package/dist/command-implementations/plugin-commands.js +111 -0
- package/dist/command-implementations/plugin-commands.js.map +7 -0
- package/dist/command-implementations/project-command.js +383 -0
- package/dist/command-implementations/project-command.js.map +7 -0
- package/dist/command-implementations/read-command.js +70 -0
- package/dist/command-implementations/read-command.js.map +7 -0
- package/dist/command-implementations/serve-command.js +68 -0
- package/dist/command-implementations/serve-command.js.map +7 -0
- package/dist/command-tree.js +60 -0
- package/dist/command-tree.js.map +7 -0
- package/dist/config.js +352 -0
- package/dist/config.js.map +7 -0
- package/dist/consts.js +127 -0
- package/dist/consts.js.map +7 -0
- package/dist/errors.js +202 -0
- package/dist/errors.js.map +7 -0
- package/dist/index.js +51 -0
- package/dist/index.js.map +7 -0
- package/dist/init.js +50 -0
- package/dist/init.js.map +7 -0
- package/dist/linter/base-linter.js +75 -0
- package/dist/linter/base-linter.js.map +7 -0
- package/dist/linter/base-linter.test.js +187 -0
- package/dist/linter/base-linter.test.js.map +7 -0
- package/dist/linter/bot-linter.js +35 -0
- package/dist/linter/bot-linter.js.map +7 -0
- package/dist/linter/integration-linter.js +35 -0
- package/dist/linter/integration-linter.js.map +7 -0
- package/dist/linter/interface-linter.js +35 -0
- package/dist/linter/interface-linter.js.map +7 -0
- package/dist/linter/ruleset-tests/bot.ruleset.test.js +358 -0
- package/dist/linter/ruleset-tests/bot.ruleset.test.js.map +7 -0
- package/dist/linter/ruleset-tests/common.js +37 -0
- package/dist/linter/ruleset-tests/common.js.map +7 -0
- package/dist/linter/ruleset-tests/integration.ruleset.test.js +887 -0
- package/dist/linter/ruleset-tests/integration.ruleset.test.js.map +7 -0
- package/dist/linter/ruleset-tests/interface.ruleset.test.js +383 -0
- package/dist/linter/ruleset-tests/interface.ruleset.test.js.map +7 -0
- package/dist/linter/rulesets/bot.ruleset.js +191 -0
- package/dist/linter/rulesets/bot.ruleset.js.map +7 -0
- package/dist/linter/rulesets/integration.ruleset.js +378 -0
- package/dist/linter/rulesets/integration.ruleset.js.map +7 -0
- package/dist/linter/rulesets/interface.ruleset.js +157 -0
- package/dist/linter/rulesets/interface.ruleset.js.map +7 -0
- package/dist/linter/spectral-functions.js +36 -0
- package/dist/linter/spectral-functions.js.map +7 -0
- package/dist/logger/base-logger.js +170 -0
- package/dist/logger/base-logger.js.map +7 -0
- package/dist/logger/index.js +86 -0
- package/dist/logger/index.js.map +7 -0
- package/dist/package-ref.js +107 -0
- package/dist/package-ref.js.map +7 -0
- package/dist/package-ref.test.js +109 -0
- package/dist/package-ref.test.js.map +7 -0
- package/dist/register-yargs.js +91 -0
- package/dist/register-yargs.js.map +7 -0
- package/dist/root.js +41 -0
- package/dist/root.js.map +7 -0
- package/dist/sdk/index.js +22 -0
- package/dist/sdk/index.js.map +7 -0
- package/dist/sdk/resolve-bot-interfaces.js +43 -0
- package/dist/sdk/resolve-bot-interfaces.js.map +7 -0
- package/dist/sdk/resolve-integration-interfaces.js +161 -0
- package/dist/sdk/resolve-integration-interfaces.js.map +7 -0
- package/dist/sdk/validate-bot.js +88 -0
- package/dist/sdk/validate-bot.js.map +7 -0
- package/dist/sdk/validate-integration.js +72 -0
- package/dist/sdk/validate-integration.js.map +7 -0
- package/dist/typings.js +17 -0
- package/dist/typings.js.map +7 -0
- package/dist/utils/cache-utils.js +104 -0
- package/dist/utils/cache-utils.js.map +7 -0
- package/dist/utils/case-utils.js +84 -0
- package/dist/utils/case-utils.js.map +7 -0
- package/dist/utils/case-utils.test.js +75 -0
- package/dist/utils/case-utils.test.js.map +7 -0
- package/dist/utils/esbuild-utils.js +92 -0
- package/dist/utils/esbuild-utils.js.map +7 -0
- package/dist/utils/event-emitter.js +63 -0
- package/dist/utils/event-emitter.js.map +7 -0
- package/dist/utils/file-watcher.js +73 -0
- package/dist/utils/file-watcher.js.map +7 -0
- package/dist/utils/guard-utils.js +32 -0
- package/dist/utils/guard-utils.js.map +7 -0
- package/dist/utils/id-utils.js +59 -0
- package/dist/utils/id-utils.js.map +7 -0
- package/dist/utils/index.js +99 -0
- package/dist/utils/index.js.map +7 -0
- package/dist/utils/object-utils.js +32 -0
- package/dist/utils/object-utils.js.map +7 -0
- package/dist/utils/path-utils.js +106 -0
- package/dist/utils/path-utils.js.map +7 -0
- package/dist/utils/path-utils.test.js +72 -0
- package/dist/utils/path-utils.test.js.map +7 -0
- package/dist/utils/pkgjson-utils.js +57 -0
- package/dist/utils/pkgjson-utils.js.map +7 -0
- package/dist/utils/promise-utils.js +36 -0
- package/dist/utils/promise-utils.js.map +7 -0
- package/dist/utils/promise-utils.test.js +14 -0
- package/dist/utils/promise-utils.test.js.map +7 -0
- package/dist/utils/prompt-utils.js +105 -0
- package/dist/utils/prompt-utils.js.map +7 -0
- package/dist/utils/record-utils.js +118 -0
- package/dist/utils/record-utils.js.map +7 -0
- package/dist/utils/record-utils.test.js +38 -0
- package/dist/utils/record-utils.test.js.map +7 -0
- package/dist/utils/require-utils.js +90 -0
- package/dist/utils/require-utils.js.map +7 -0
- package/dist/utils/require-utils.test.js +54 -0
- package/dist/utils/require-utils.test.js.map +7 -0
- package/dist/utils/schema-utils.js +64 -0
- package/dist/utils/schema-utils.js.map +7 -0
- package/dist/utils/schema-utils.test.js +50 -0
- package/dist/utils/schema-utils.test.js.map +7 -0
- package/dist/utils/semver-utils.js +45 -0
- package/dist/utils/semver-utils.js.map +7 -0
- package/dist/utils/string-utils.js +42 -0
- package/dist/utils/string-utils.js.map +7 -0
- package/dist/utils/template-utils.js +51 -0
- package/dist/utils/template-utils.js.map +7 -0
- package/dist/utils/tunnel-utils.js +129 -0
- package/dist/utils/tunnel-utils.js.map +7 -0
- package/dist/utils/type-utils.js +17 -0
- package/dist/utils/type-utils.js.map +7 -0
- package/dist/utils/url-utils.js +67 -0
- package/dist/utils/url-utils.js.map +7 -0
- package/dist/worker/child-entrypoint.js +58 -0
- package/dist/worker/child-entrypoint.js.map +7 -0
- package/dist/worker/child-wrapper.js +119 -0
- package/dist/worker/child-wrapper.js.map +7 -0
- package/dist/worker/config.js +44 -0
- package/dist/worker/config.js.map +7 -0
- package/dist/worker/index.js +32 -0
- package/dist/worker/index.js.map +7 -0
- package/dist/worker/is-child.js +55 -0
- package/dist/worker/is-child.js.map +7 -0
- package/dist/worker/worker-state.js +71 -0
- package/dist/worker/worker-state.js.map +7 -0
- package/dist/worker/worker.js +91 -0
- package/dist/worker/worker.js.map +7 -0
- package/package.json +3 -3
- package/templates/empty-bot/.botpress/implementation/index.ts +50 -0
- package/templates/empty-bot/.botpress/implementation/plugins/index.ts +11 -0
- package/templates/empty-bot/.botpress/implementation/typings/actions/index.ts +6 -0
- package/templates/empty-bot/.botpress/implementation/typings/events/index.ts +6 -0
- package/templates/empty-bot/.botpress/implementation/typings/index.ts +20 -0
- package/templates/empty-bot/.botpress/implementation/typings/integrations/index.ts +6 -0
- package/templates/empty-bot/.botpress/implementation/typings/states/index.ts +6 -0
- package/templates/empty-bot/.botpress/index.ts +5 -0
- package/templates/empty-bot/package.json +2 -2
- package/templates/empty-integration/.botpress/implementation/index.ts +57 -0
- package/templates/empty-integration/.botpress/implementation/typings/actions/index.ts +6 -0
- package/templates/empty-integration/.botpress/implementation/typings/channels/index.ts +6 -0
- package/templates/empty-integration/.botpress/implementation/typings/configuration/index.ts +2 -0
- package/templates/empty-integration/.botpress/implementation/typings/configurations/index.ts +6 -0
- package/templates/empty-integration/.botpress/implementation/typings/entities/index.ts +6 -0
- package/templates/empty-integration/.botpress/implementation/typings/events/index.ts +6 -0
- package/templates/empty-integration/.botpress/implementation/typings/index.ts +31 -0
- package/templates/empty-integration/.botpress/implementation/typings/states/index.ts +6 -0
- package/templates/empty-integration/.botpress/index.ts +2 -0
- package/templates/empty-integration/.botpress/secrets/index.ts +6 -0
- package/templates/empty-integration/package.json +2 -2
- package/templates/empty-plugin/.botpress/implementation/index.ts +35 -0
- package/templates/empty-plugin/.botpress/implementation/typings/actions/index.ts +6 -0
- package/templates/empty-plugin/.botpress/implementation/typings/configuration/index.ts +2 -0
- package/templates/empty-plugin/.botpress/implementation/typings/events/index.ts +6 -0
- package/templates/empty-plugin/.botpress/implementation/typings/index.ts +26 -0
- package/templates/empty-plugin/.botpress/implementation/typings/integrations/index.ts +6 -0
- package/templates/empty-plugin/.botpress/implementation/typings/interfaces/index.ts +6 -0
- package/templates/empty-plugin/.botpress/implementation/typings/states/index.ts +6 -0
- package/templates/empty-plugin/.botpress/index.ts +1 -0
- package/templates/empty-plugin/package.json +1 -1
- package/templates/hello-world/.botpress/implementation/index.ts +57 -0
- package/templates/hello-world/.botpress/implementation/typings/actions/helloWorld/index.ts +12 -0
- package/templates/hello-world/.botpress/implementation/typings/actions/helloWorld/input.ts +5 -0
- package/templates/hello-world/.botpress/implementation/typings/actions/helloWorld/output.ts +5 -0
- package/templates/hello-world/.botpress/implementation/typings/actions/index.ts +9 -0
- package/templates/hello-world/.botpress/implementation/typings/channels/index.ts +6 -0
- package/templates/hello-world/.botpress/implementation/typings/configuration/index.ts +2 -0
- package/templates/hello-world/.botpress/implementation/typings/configurations/index.ts +6 -0
- package/templates/hello-world/.botpress/implementation/typings/entities/index.ts +6 -0
- package/templates/hello-world/.botpress/implementation/typings/events/index.ts +6 -0
- package/templates/hello-world/.botpress/implementation/typings/index.ts +31 -0
- package/templates/hello-world/.botpress/implementation/typings/states/index.ts +6 -0
- package/templates/hello-world/.botpress/index.ts +2 -0
- package/templates/hello-world/.botpress/secrets/index.ts +6 -0
- package/templates/hello-world/package.json +2 -2
- package/templates/webhook-message/.botpress/implementation/index.ts +57 -0
- package/templates/webhook-message/.botpress/implementation/typings/actions/index.ts +6 -0
- package/templates/webhook-message/.botpress/implementation/typings/channels/index.ts +9 -0
- package/templates/webhook-message/.botpress/implementation/typings/channels/webhook/index.ts +12 -0
- package/templates/webhook-message/.botpress/implementation/typings/channels/webhook/messages/index.ts +9 -0
- package/templates/webhook-message/.botpress/implementation/typings/channels/webhook/messages/text.ts +5 -0
- package/templates/webhook-message/.botpress/implementation/typings/configuration/index.ts +8 -0
- package/templates/webhook-message/.botpress/implementation/typings/configurations/index.ts +6 -0
- package/templates/webhook-message/.botpress/implementation/typings/entities/index.ts +6 -0
- package/templates/webhook-message/.botpress/implementation/typings/events/index.ts +6 -0
- package/templates/webhook-message/.botpress/implementation/typings/index.ts +31 -0
- package/templates/webhook-message/.botpress/implementation/typings/states/index.ts +6 -0
- package/templates/webhook-message/.botpress/index.ts +2 -0
- package/templates/webhook-message/.botpress/secrets/index.ts +6 -0
- package/templates/webhook-message/package.json +2 -2
- package/e2e/api.ts +0 -25
- package/e2e/defaults.ts +0 -20
- package/e2e/index.ts +0 -118
- package/e2e/tests/create-deploy-bot.ts +0 -51
- package/e2e/tests/create-deploy-integration.ts +0 -62
- package/e2e/tests/dev-bot.ts +0 -59
- package/e2e/tests/install-interfaces.ts +0 -49
- package/e2e/tests/install-package.ts +0 -164
- package/e2e/tests/integration-secrets.ts +0 -102
- package/e2e/tests/manage-workspace-handle.ts +0 -105
- package/e2e/typings.ts +0 -17
- package/e2e/utils.ts +0 -99
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/linter/ruleset-tests/interface.ruleset.test.ts"],
|
|
4
|
+
"sourcesContent": ["import { test, expect } from 'vitest'\nimport { INTERFACE_RULESET } from '../rulesets/interface.ruleset'\nimport { createDescribeRule, type RecursivePartial } from './common'\nimport { type CreateInterfaceBody } from '../../api/interface-body'\n\ntype PartialInterface = RecursivePartial<CreateInterfaceBody>\nconst describeRule = createDescribeRule<CreateInterfaceBody>()(INTERFACE_RULESET)\n\nconst EMPTY_STRING = ''\nconst TRUTHY_STRING = 'truthy'\nconst ACTION_NAME = 'actionName'\nconst EVENT_NAME = 'eventName'\nconst PARAM_NAME = 'paramName'\nconst PROPERTIES_PARAM = 'properties'\nconst PARAM_NAMES = [PARAM_NAME, PROPERTIES_PARAM] as const\nconst CHANNEL_NAME = 'channelName'\nconst ENTITY_NAME = 'entityName'\nconst MESSAGE_TYPE = 'text'\nconst ZUI = 'x-zui'\nconst LEGACY_ZUI = 'ui'\n\ndescribeRule('action-inputparams-should-have-a-title', (lint) => {\n test.each(PARAM_NAMES)('missing title should trigger (%s)', async (paramName) => {\n // arrange\n const definition = {\n actions: { [ACTION_NAME]: { input: { schema: { properties: { [paramName]: { [ZUI]: {} } } } } } },\n } as const satisfies PartialInterface\n\n // act\n const results = await lint(definition)\n\n // assert\n expect(results).toHaveLength(1)\n expect(results[0]?.path).toEqual(['actions', ACTION_NAME, 'input', 'schema', 'properties', paramName, ZUI])\n expect(results[0]?.message).toContain('title')\n })\n\n test.each(PARAM_NAMES)('empty title should trigger (%s)', async (paramName) => {\n // arrange\n const definition = {\n actions: {\n [ACTION_NAME]: { input: { schema: { properties: { [paramName]: { [ZUI]: { title: EMPTY_STRING } } } } } },\n },\n } as const satisfies PartialInterface\n\n // act\n const results = await lint(definition)\n\n // assert\n expect(results).toHaveLength(1)\n expect(results[0]?.path).toEqual(['actions', ACTION_NAME, 'input', 'schema', 'properties', paramName, ZUI, 'title'])\n expect(results[0]?.message).toContain('title')\n })\n\n test.each(PARAM_NAMES)('valid title should not trigger (%s)', async (paramName) => {\n // arrange\n const definition = {\n actions: {\n [ACTION_NAME]: { input: { schema: { properties: { [paramName]: { [ZUI]: { title: TRUTHY_STRING } } } } } },\n },\n } as const satisfies PartialInterface\n\n // act\n const results = await lint(definition)\n\n // assert\n expect(results).toHaveLength(0)\n })\n})\n\ndescribeRule('action-inputparams-must-have-a-description', (lint) => {\n test.each(PARAM_NAMES)('missing description should trigger (%s)', async (paramName) => {\n // arrange\n const definition = {\n actions: { [ACTION_NAME]: { input: { schema: { properties: { [paramName]: {} } } } } },\n } as const satisfies PartialInterface\n\n // act\n const results = await lint(definition)\n\n // assert\n expect(results).toHaveLength(1)\n expect(results[0]?.path).toEqual(['actions', ACTION_NAME, 'input', 'schema', 'properties', paramName])\n expect(results[0]?.message).toContain('description')\n })\n\n test.each(PARAM_NAMES)('empty description should trigger (%s)', async (paramName) => {\n // arrange\n const definition = {\n actions: {\n [ACTION_NAME]: { input: { schema: { properties: { [paramName]: { description: EMPTY_STRING } } } } },\n },\n } as const satisfies PartialInterface\n\n // act\n const results = await lint(definition)\n\n // assert\n expect(results).toHaveLength(1)\n expect(results[0]?.path).toEqual([\n 'actions',\n ACTION_NAME,\n 'input',\n 'schema',\n 'properties',\n paramName,\n 'description',\n ])\n expect(results[0]?.message).toContain('description')\n })\n\n test.each(PARAM_NAMES)('valid description should not trigger (%s)', async (paramName) => {\n // arrange\n const definition = {\n actions: {\n [ACTION_NAME]: { input: { schema: { properties: { [paramName]: { description: TRUTHY_STRING } } } } },\n },\n } as const satisfies PartialInterface\n\n // act\n const results = await lint(definition)\n\n // assert\n expect(results).toHaveLength(0)\n })\n})\n\ndescribeRule('action-outputparams-should-have-a-title', (lint) => {\n test.each(PARAM_NAMES)('missing title should trigger (%s)', async (paramName) => {\n // arrange\n const definition = {\n actions: { [ACTION_NAME]: { output: { schema: { properties: { [paramName]: { [ZUI]: {} } } } } } },\n } as const satisfies PartialInterface\n\n // act\n const results = await lint(definition)\n\n // assert\n expect(results).toHaveLength(1)\n expect(results[0]?.path).toEqual(['actions', ACTION_NAME, 'output', 'schema', 'properties', paramName, ZUI])\n expect(results[0]?.message).toContain('title')\n })\n\n test.each(PARAM_NAMES)('empty title should trigger (%s)', async (paramName) => {\n // arrange\n const definition = {\n actions: {\n [ACTION_NAME]: { output: { schema: { properties: { [paramName]: { [ZUI]: { title: EMPTY_STRING } } } } } },\n },\n } as const satisfies PartialInterface\n\n // act\n const results = await lint(definition)\n\n // assert\n expect(results).toHaveLength(1)\n expect(results[0]?.path).toEqual([\n 'actions',\n ACTION_NAME,\n 'output',\n 'schema',\n 'properties',\n paramName,\n ZUI,\n 'title',\n ])\n expect(results[0]?.message).toContain('title')\n })\n\n test.each(PARAM_NAMES)('valid title should not trigger (%s)', async (paramName) => {\n // arrange\n const definition = {\n actions: {\n [ACTION_NAME]: { output: { schema: { properties: { [paramName]: { [ZUI]: { title: TRUTHY_STRING } } } } } },\n },\n } as const satisfies PartialInterface\n\n // act\n const results = await lint(definition)\n\n // assert\n expect(results).toHaveLength(0)\n })\n})\n\ndescribeRule('action-outputparams-must-have-a-description', (lint) => {\n test.each(PARAM_NAMES)('missing description should trigger (%s)', async (paramName) => {\n // arrange\n const definition = {\n actions: { [ACTION_NAME]: { output: { schema: { properties: { [paramName]: {} } } } } },\n } as const satisfies PartialInterface\n\n // act\n const results = await lint(definition)\n\n // assert\n expect(results).toHaveLength(1)\n expect(results[0]?.path).toEqual(['actions', ACTION_NAME, 'output', 'schema', 'properties', paramName])\n expect(results[0]?.message).toContain('description')\n })\n\n test.each(PARAM_NAMES)('empty description should trigger (%s)', async (paramName) => {\n // arrange\n const definition = {\n actions: {\n [ACTION_NAME]: { output: { schema: { properties: { [paramName]: { description: EMPTY_STRING } } } } },\n },\n } as const satisfies PartialInterface\n\n // act\n const results = await lint(definition)\n\n // assert\n expect(results).toHaveLength(1)\n expect(results[0]?.path).toEqual([\n 'actions',\n ACTION_NAME,\n 'output',\n 'schema',\n 'properties',\n paramName,\n 'description',\n ])\n expect(results[0]?.message).toContain('description')\n })\n\n test.each(PARAM_NAMES)('valid description should not trigger (%s)', async (paramName) => {\n // arrange\n const definition = {\n actions: {\n [ACTION_NAME]: { output: { schema: { properties: { [paramName]: { description: TRUTHY_STRING } } } } },\n },\n } as const satisfies PartialInterface\n\n // act\n const results = await lint(definition)\n\n // assert\n expect(results).toHaveLength(0)\n })\n})\n\ndescribeRule('event-outputparams-should-have-title', (lint) => {\n test.each(PARAM_NAMES)('missing title should trigger (%s)', async (paramName) => {\n // arrange\n const definition = {\n events: { [EVENT_NAME]: { schema: { properties: { [paramName]: { [ZUI]: {} } } } } },\n } as const satisfies PartialInterface\n\n // act\n const results = await lint(definition)\n\n // assert\n expect(results).toHaveLength(1)\n expect(results[0]?.path).toEqual(['events', EVENT_NAME, 'schema', 'properties', paramName, ZUI])\n expect(results[0]?.message).toContain('title')\n })\n\n test.each(PARAM_NAMES)('empty title should trigger (%s)', async (paramName) => {\n // arrange\n const definition = {\n events: {\n [EVENT_NAME]: { schema: { properties: { [paramName]: { [ZUI]: { title: EMPTY_STRING } } } } },\n },\n } as const satisfies PartialInterface\n\n // act\n const results = await lint(definition)\n\n // assert\n expect(results).toHaveLength(1)\n expect(results[0]?.path).toEqual(['events', EVENT_NAME, 'schema', 'properties', paramName, ZUI, 'title'])\n expect(results[0]?.message).toContain('title')\n })\n\n test.each(PARAM_NAMES)('valid title should not trigger (%s)', async (paramName) => {\n // arrange\n const definition = {\n events: {\n [EVENT_NAME]: { schema: { properties: { [paramName]: { [ZUI]: { title: TRUTHY_STRING } } } } },\n },\n } as const satisfies PartialInterface\n\n // act\n const results = await lint(definition)\n\n // assert\n expect(results).toHaveLength(0)\n })\n})\n\ndescribeRule('event-outputparams-must-have-description', (lint) => {\n test.each(PARAM_NAMES)('missing description should trigger (%s)', async (paramName) => {\n // arrange\n const definition = {\n events: { [EVENT_NAME]: { schema: { properties: { [paramName]: {} } } } },\n } as const satisfies PartialInterface\n\n // act\n const results = await lint(definition)\n\n // assert\n expect(results).toHaveLength(1)\n expect(results[0]?.path).toEqual(['events', EVENT_NAME, 'schema', 'properties', paramName])\n expect(results[0]?.message).toContain('description')\n })\n\n test.each(PARAM_NAMES)('empty description should trigger (%s)', async (paramName) => {\n // arrange\n const definition = {\n events: {\n [EVENT_NAME]: { schema: { properties: { [paramName]: { description: EMPTY_STRING } } } },\n },\n } as const satisfies PartialInterface\n\n // act\n const results = await lint(definition)\n\n // assert\n expect(results).toHaveLength(1)\n expect(results[0]?.path).toEqual(['events', EVENT_NAME, 'schema', 'properties', paramName, 'description'])\n expect(results[0]?.message).toContain('description')\n })\n\n test.each(PARAM_NAMES)('valid description should not trigger (%s)', async (paramName) => {\n // arrange\n const definition = {\n events: {\n [EVENT_NAME]: { schema: { properties: { [paramName]: { description: TRUTHY_STRING } } } },\n },\n } as const satisfies PartialInterface\n\n // act\n const results = await lint(definition)\n\n // assert\n expect(results).toHaveLength(0)\n })\n})\n\ndescribeRule('legacy-zui-title-should-be-removed', (lint) => {\n test.each(PARAM_NAMES)('legacy zui title should trigger (%s)', async (paramName) => {\n // arrange\n const definition = {\n actions: {\n [ACTION_NAME]: { input: { [LEGACY_ZUI]: { [paramName]: { title: TRUTHY_STRING } }, schema: {} } },\n },\n events: { [EVENT_NAME]: { [LEGACY_ZUI]: { [paramName]: { title: TRUTHY_STRING } }, schema: {} } },\n channels: {\n [CHANNEL_NAME]: {\n messages: { [MESSAGE_TYPE]: { [LEGACY_ZUI]: { [paramName]: { title: TRUTHY_STRING } }, schema: {} } },\n },\n },\n entities: { [ENTITY_NAME]: { [LEGACY_ZUI]: { [paramName]: { title: TRUTHY_STRING } }, schema: {} } },\n } as const satisfies PartialInterface\n\n // act\n const results = await lint(definition)\n\n // assert\n expect(results).toHaveLength(4)\n expect(results[0]?.message).toContain('.title()')\n })\n})\n\ndescribeRule('legacy-zui-examples-should-be-removed', (lint) => {\n test.each(PARAM_NAMES)('legacy zui examples should trigger (%s)', async (paramName) => {\n // arrange\n const definition = {\n actions: {\n [ACTION_NAME]: { input: { [LEGACY_ZUI]: { [paramName]: { examples: [TRUTHY_STRING] } }, schema: {} } },\n },\n events: { [EVENT_NAME]: { [LEGACY_ZUI]: { [paramName]: { examples: [TRUTHY_STRING] } }, schema: {} } },\n channels: {\n [CHANNEL_NAME]: {\n messages: { [MESSAGE_TYPE]: { [LEGACY_ZUI]: { [paramName]: { examples: [TRUTHY_STRING] } }, schema: {} } },\n },\n },\n entities: { [ENTITY_NAME]: { [LEGACY_ZUI]: { [paramName]: { examples: [TRUTHY_STRING] } }, schema: {} } },\n } as const satisfies PartialInterface\n\n // act\n const results = await lint(definition)\n\n // assert\n expect(results).toHaveLength(4)\n expect(results[0]?.message).toContain('examples')\n })\n})\n\ndescribeRule('entities-should-have-a-title', (lint) => {\n test('missing title should trigger', async () => {\n // arrange\n const definition = {\n entities: { [ENTITY_NAME]: {} },\n } as const satisfies PartialInterface\n\n // act\n const results = await lint(definition)\n\n // assert\n expect(results).toHaveLength(1)\n expect(results[0]?.path).toEqual(['entities', ENTITY_NAME])\n expect(results[0]?.message).toContain('title')\n })\n\n test('empty title should trigger', async () => {\n // arrange\n const definition = {\n entities: { [ENTITY_NAME]: { title: EMPTY_STRING } },\n } as const satisfies PartialInterface\n\n // act\n const results = await lint(definition)\n\n // assert\n expect(results).toHaveLength(1)\n expect(results[0]?.path).toEqual(['entities', ENTITY_NAME, 'title'])\n expect(results[0]?.message).toContain('title')\n })\n\n test('valid title should not trigger', async () => {\n // arrange\n const definition = {\n entities: { [ENTITY_NAME]: { title: TRUTHY_STRING } },\n } as const satisfies PartialInterface\n\n // act\n const results = await lint(definition)\n\n // assert\n expect(results).toHaveLength(0)\n })\n})\n\ndescribeRule('entities-must-have-a-description', (lint) => {\n test('missing description should trigger', async () => {\n // arrange\n const definition = {\n entities: { [ENTITY_NAME]: {} },\n } as const satisfies PartialInterface\n\n // act\n const results = await lint(definition)\n\n // assert\n expect(results).toHaveLength(1)\n expect(results[0]?.path).toEqual(['entities', ENTITY_NAME])\n expect(results[0]?.message).toContain('description')\n })\n\n test('empty description should trigger', async () => {\n // arrange\n const definition = {\n entities: { [ENTITY_NAME]: { description: EMPTY_STRING } },\n } as const satisfies PartialInterface\n\n // act\n const results = await lint(definition)\n\n // assert\n expect(results).toHaveLength(1)\n expect(results[0]?.path).toEqual(['entities', ENTITY_NAME, 'description'])\n expect(results[0]?.message).toContain('description')\n })\n\n test('valid description should not trigger', async () => {\n // arrange\n const definition = {\n entities: { [ENTITY_NAME]: { description: TRUTHY_STRING } },\n } as const satisfies PartialInterface\n\n // act\n const results = await lint(definition)\n\n // assert\n expect(results).toHaveLength(0)\n })\n})\n\ndescribeRule('entity-fields-should-have-a-title', (lint) => {\n test.each(PARAM_NAMES)('missing title should trigger (%s)', async (paramName) => {\n // arrange\n const definition = {\n entities: { [ENTITY_NAME]: { schema: { properties: { [paramName]: { [ZUI]: {} } } } } },\n } as const satisfies PartialInterface\n\n // act\n const results = await lint(definition)\n\n // assert\n expect(results).toHaveLength(1)\n expect(results[0]?.path).toEqual(['entities', ENTITY_NAME, 'schema', 'properties', paramName, ZUI])\n expect(results[0]?.message).toContain('title')\n })\n\n test.each(PARAM_NAMES)('empty title should trigger (%s)', async (paramName) => {\n // arrange\n const definition = {\n entities: {\n [ENTITY_NAME]: { schema: { properties: { [paramName]: { [ZUI]: { title: EMPTY_STRING } } } } },\n },\n } as const satisfies PartialInterface\n\n // act\n const results = await lint(definition)\n\n // assert\n expect(results).toHaveLength(1)\n expect(results[0]?.path).toEqual(['entities', ENTITY_NAME, 'schema', 'properties', paramName, ZUI, 'title'])\n expect(results[0]?.message).toContain('title')\n })\n\n test.each(PARAM_NAMES)('valid title should not trigger (%s)', async (paramName) => {\n // arrange\n const definition = {\n entities: {\n [ENTITY_NAME]: { schema: { properties: { [paramName]: { [ZUI]: { title: TRUTHY_STRING } } } } },\n },\n } as const satisfies PartialInterface\n\n // act\n const results = await lint(definition)\n\n // assert\n expect(results).toHaveLength(0)\n })\n})\n\ndescribeRule('entity-fields-must-have-a-description', (lint) => {\n test.each(PARAM_NAMES)('missing description should trigger (%s)', async (paramName) => {\n // arrange\n const definition = {\n entities: { [ENTITY_NAME]: { schema: { properties: { [paramName]: {} } } } },\n } as const satisfies PartialInterface\n\n // act\n const results = await lint(definition)\n\n // assert\n expect(results).toHaveLength(1)\n expect(results[0]?.path).toEqual(['entities', ENTITY_NAME, 'schema', 'properties', paramName])\n expect(results[0]?.message).toContain('description')\n })\n\n test.each(PARAM_NAMES)('empty description should trigger (%s)', async (paramName) => {\n // arrange\n const definition = {\n entities: {\n [ENTITY_NAME]: { schema: { properties: { [paramName]: { description: EMPTY_STRING } } } },\n },\n } as const satisfies PartialInterface\n\n // act\n const results = await lint(definition)\n\n // assert\n expect(results).toHaveLength(1)\n expect(results[0]?.path).toEqual(['entities', ENTITY_NAME, 'schema', 'properties', paramName, 'description'])\n expect(results[0]?.message).toContain('description')\n })\n\n test.each(PARAM_NAMES)('valid description should not trigger (%s)', async (paramName) => {\n // arrange\n const definition = {\n entities: {\n [ENTITY_NAME]: { schema: { properties: { [paramName]: { description: TRUTHY_STRING } } } },\n },\n } as const satisfies PartialInterface\n\n // act\n const results = await lint(definition)\n\n // assert\n expect(results).toHaveLength(0)\n })\n})\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,191 @@
|
|
|
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 bot_ruleset_exports = {};
|
|
20
|
+
__export(bot_ruleset_exports, {
|
|
21
|
+
BOT_RULESET: () => BOT_RULESET
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(bot_ruleset_exports);
|
|
24
|
+
var import_spectral_functions = require("@stoplight/spectral-functions");
|
|
25
|
+
var import_spectral_functions2 = require("../spectral-functions");
|
|
26
|
+
const BOT_RULESET = {
|
|
27
|
+
extends: [],
|
|
28
|
+
rules: {
|
|
29
|
+
"event-outputparams-should-have-title": {
|
|
30
|
+
description: "All event output 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: "$.events[*]..schema.properties[*]",
|
|
34
|
+
then: [
|
|
35
|
+
{
|
|
36
|
+
field: "x-zui.title",
|
|
37
|
+
function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `output parameter "${path.at(-3)}" of event "${path[1]}"`)
|
|
38
|
+
}
|
|
39
|
+
]
|
|
40
|
+
},
|
|
41
|
+
"event-outputparams-must-have-description": {
|
|
42
|
+
description: "All event output parameters MUST have a description",
|
|
43
|
+
message: "{{description}}: {{error}} SHOULD provide a non-empty description by using .describe() in its Zod schema",
|
|
44
|
+
severity: "error",
|
|
45
|
+
given: "$.events[*]..schema.properties[*]",
|
|
46
|
+
then: [
|
|
47
|
+
{
|
|
48
|
+
field: "description",
|
|
49
|
+
function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `output parameter "${path.at(-2)}" of event "${path[1]}"`)
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
},
|
|
53
|
+
"configuration-fields-must-have-a-title": {
|
|
54
|
+
description: "All configuration fields MUST have a title",
|
|
55
|
+
message: "{{description}}: {{error}} MUST provide a non-empty title by using .title() in its Zod schema",
|
|
56
|
+
severity: "error",
|
|
57
|
+
given: "$.configuration..schema.properties[*].x-zui",
|
|
58
|
+
then: [
|
|
59
|
+
{
|
|
60
|
+
field: "title",
|
|
61
|
+
function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `configuration parameter "${path.at(-3)}"`)
|
|
62
|
+
}
|
|
63
|
+
]
|
|
64
|
+
},
|
|
65
|
+
"configuration-fields-must-have-a-description": {
|
|
66
|
+
description: "All configuration fields 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: "$.configuration..schema.properties[*]",
|
|
70
|
+
then: [
|
|
71
|
+
{
|
|
72
|
+
field: "description",
|
|
73
|
+
function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `configuration parameter "${path.at(-2)}"`)
|
|
74
|
+
}
|
|
75
|
+
]
|
|
76
|
+
},
|
|
77
|
+
"user-tags-should-have-a-title": {
|
|
78
|
+
description: "All user tags SHOULD have a title",
|
|
79
|
+
message: "{{description}}: {{error}} SHOULD have a non-empty title",
|
|
80
|
+
severity: "warn",
|
|
81
|
+
given: "$.user.tags[*]",
|
|
82
|
+
then: [
|
|
83
|
+
{
|
|
84
|
+
field: "title",
|
|
85
|
+
function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `user tag "${path[2]}"`)
|
|
86
|
+
}
|
|
87
|
+
]
|
|
88
|
+
},
|
|
89
|
+
"user-tags-must-have-a-description": {
|
|
90
|
+
description: "All user tags MUST have a description",
|
|
91
|
+
message: "{{description}}: {{error}} MUST have a non-empty description",
|
|
92
|
+
severity: "error",
|
|
93
|
+
given: "$.user.tags[*]",
|
|
94
|
+
then: [
|
|
95
|
+
{
|
|
96
|
+
field: "description",
|
|
97
|
+
function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `user tag "${path[2]}"`)
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
},
|
|
101
|
+
"conversation-tags-should-have-a-title": {
|
|
102
|
+
description: "All conversation tags SHOULD have a title",
|
|
103
|
+
message: "{{description}}: {{error}} SHOULD have a non-empty title",
|
|
104
|
+
severity: "warn",
|
|
105
|
+
given: "$.conversation.tags[*]",
|
|
106
|
+
then: [
|
|
107
|
+
{
|
|
108
|
+
field: "title",
|
|
109
|
+
function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `conversation tag "${path[2]}"`)
|
|
110
|
+
}
|
|
111
|
+
]
|
|
112
|
+
},
|
|
113
|
+
"conversation-tags-must-have-a-description": {
|
|
114
|
+
description: "All conversation tags MUST have a description",
|
|
115
|
+
message: "{{description}}: {{error}} MUST have a non-empty description",
|
|
116
|
+
severity: "error",
|
|
117
|
+
given: "$.conversation.tags[*]",
|
|
118
|
+
then: [
|
|
119
|
+
{
|
|
120
|
+
field: "description",
|
|
121
|
+
function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `conversation tag "${path[2]}"`)
|
|
122
|
+
}
|
|
123
|
+
]
|
|
124
|
+
},
|
|
125
|
+
"message-tags-should-have-a-title": {
|
|
126
|
+
description: "All message tags SHOULD have a title",
|
|
127
|
+
message: "{{description}}: {{error}} SHOULD have a non-empty title",
|
|
128
|
+
severity: "warn",
|
|
129
|
+
given: "$.message.tags[*]",
|
|
130
|
+
then: [
|
|
131
|
+
{
|
|
132
|
+
field: "title",
|
|
133
|
+
function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `message tag "${path[2]}"`)
|
|
134
|
+
}
|
|
135
|
+
]
|
|
136
|
+
},
|
|
137
|
+
"message-tags-must-have-a-description": {
|
|
138
|
+
description: "All message tags MUST have a description",
|
|
139
|
+
message: "{{description}}: {{error}} MUST have a non-empty description",
|
|
140
|
+
severity: "error",
|
|
141
|
+
given: "$.message.tags[*]",
|
|
142
|
+
then: [
|
|
143
|
+
{
|
|
144
|
+
field: "description",
|
|
145
|
+
function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `message tag "${path[2]}"`)
|
|
146
|
+
}
|
|
147
|
+
]
|
|
148
|
+
},
|
|
149
|
+
"legacy-zui-title-should-be-removed": {
|
|
150
|
+
description: "Legacy ZUI title fields (ui.title) SHOULD be removed. Please use .title() in your Zod schemas instead",
|
|
151
|
+
severity: "error",
|
|
152
|
+
given: "$..ui[*].title",
|
|
153
|
+
then: [{ function: import_spectral_functions.falsy }]
|
|
154
|
+
},
|
|
155
|
+
"legacy-zui-examples-should-be-removed": {
|
|
156
|
+
description: "Legacy ZUI examples fields (ui.examples) SHOULD be removed. There are currently no alternatives",
|
|
157
|
+
severity: "hint",
|
|
158
|
+
given: "$..ui[*].examples",
|
|
159
|
+
then: [{ function: import_spectral_functions.falsy }]
|
|
160
|
+
},
|
|
161
|
+
"state-fields-should-have-title": {
|
|
162
|
+
description: "All state fields SHOULD have a title",
|
|
163
|
+
message: "{{description}}: {{error}} SHOULD provide a non-empty title by using .title() in its Zod schema",
|
|
164
|
+
severity: "warn",
|
|
165
|
+
given: "$.states[*]..schema.properties[*]",
|
|
166
|
+
then: [
|
|
167
|
+
{
|
|
168
|
+
field: "x-zui.title",
|
|
169
|
+
function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `field "${path.at(-3)}" of state "${path[1]}"`)
|
|
170
|
+
}
|
|
171
|
+
]
|
|
172
|
+
},
|
|
173
|
+
"state-fields-must-have-description": {
|
|
174
|
+
description: "All state fields MUST have a description",
|
|
175
|
+
message: "{{description}}: {{error}} SHOULD provide a non-empty description by using .describe() in its Zod schema",
|
|
176
|
+
severity: "error",
|
|
177
|
+
given: "$.states[*]..schema.properties[*]",
|
|
178
|
+
then: [
|
|
179
|
+
{
|
|
180
|
+
field: "description",
|
|
181
|
+
function: (0, import_spectral_functions2.truthyWithMessage)(({ path }) => `field "${path.at(-2)}" of state "${path[1]}"`)
|
|
182
|
+
}
|
|
183
|
+
]
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
};
|
|
187
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
188
|
+
0 && (module.exports = {
|
|
189
|
+
BOT_RULESET
|
|
190
|
+
});
|
|
191
|
+
//# sourceMappingURL=bot.ruleset.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/linter/rulesets/bot.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 BOT_RULESET = {\n extends: [],\n rules: {\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 '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 '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 '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: '$.conversation.tags[*]',\n then: [\n {\n field: 'title',\n function: truthyWithMessage(({ path }) => `conversation tag \"${path[2]}\"`),\n },\n ],\n },\n '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: '$.conversation.tags[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(({ path }) => `conversation tag \"${path[2]}\"`),\n },\n ],\n },\n '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: '$.message.tags[*]',\n then: [\n {\n field: 'title',\n function: truthyWithMessage(({ path }) => `message tag \"${path[2]}\"`),\n },\n ],\n },\n '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: '$.message.tags[*]',\n then: [\n {\n field: 'description',\n function: truthyWithMessage(({ path }) => `message tag \"${path[2]}\"`),\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 },\n} satisfies RulesetDefinition\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_spectral_functions"]
|
|
7
|
+
}
|