@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.
- 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 +1 -1
- 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-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-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/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/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
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var chat_exports = {};
|
|
30
|
+
__export(chat_exports, {
|
|
31
|
+
Chat: () => Chat
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(chat_exports);
|
|
34
|
+
var chalk = __toESM(require("chalk"));
|
|
35
|
+
var readline = __toESM(require("readline"));
|
|
36
|
+
var uuid = __toESM(require("uuid"));
|
|
37
|
+
var utils = __toESM(require("../utils"));
|
|
38
|
+
const USER_ICONS = {
|
|
39
|
+
myself: "\u{1F464}",
|
|
40
|
+
bot: "\u{1F916}",
|
|
41
|
+
other: "\u{1F465}"
|
|
42
|
+
};
|
|
43
|
+
const MESSAGE_ICONS = {
|
|
44
|
+
audio: "\u{1F3B5}",
|
|
45
|
+
card: "\u{1F0CF}",
|
|
46
|
+
carousel: "\u{1F3A0}",
|
|
47
|
+
choice: "\u{1F53D}",
|
|
48
|
+
dropdown: "\u{1F53D}",
|
|
49
|
+
file: "\u{1F4C1}",
|
|
50
|
+
image: "\u{1F305}",
|
|
51
|
+
location: "\u{1F4CD}",
|
|
52
|
+
text: "",
|
|
53
|
+
video: "\u{1F3A5}",
|
|
54
|
+
markdown: ""
|
|
55
|
+
};
|
|
56
|
+
const EXIT_KEYWORDS = ["exit", ".exit"];
|
|
57
|
+
class Chat {
|
|
58
|
+
constructor(_props) {
|
|
59
|
+
this._props = _props;
|
|
60
|
+
}
|
|
61
|
+
_events = new utils.emitter.EventEmitter();
|
|
62
|
+
_state = { status: "stopped" };
|
|
63
|
+
static launch(props) {
|
|
64
|
+
const instance = new Chat(props);
|
|
65
|
+
void instance._run();
|
|
66
|
+
return instance;
|
|
67
|
+
}
|
|
68
|
+
async _run() {
|
|
69
|
+
this._switchAlternateScreenBuffer();
|
|
70
|
+
this._events.on("state", this._renderMessages);
|
|
71
|
+
const connection = await this._props.client.listenConversation({ id: this._props.conversationId });
|
|
72
|
+
const keyboard = readline.createInterface({
|
|
73
|
+
input: process.stdin,
|
|
74
|
+
output: process.stdout
|
|
75
|
+
});
|
|
76
|
+
connection.on("message_created", (m) => void this._onMessageReceived(m));
|
|
77
|
+
keyboard.on("line", (l) => void this._onKeyboardInput(l));
|
|
78
|
+
process.stdin.on("keypress", (_, key) => {
|
|
79
|
+
if (key.name === "escape") {
|
|
80
|
+
void this._onExit();
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
this._setState({ status: "running", messages: [], connection, keyboard });
|
|
84
|
+
}
|
|
85
|
+
_setState = (newState) => {
|
|
86
|
+
this._state = newState;
|
|
87
|
+
this._events.emit("state", this._state);
|
|
88
|
+
};
|
|
89
|
+
_onMessageReceived = async (message) => {
|
|
90
|
+
if (this._state.status === "stopped") {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
if (message.userId === this._props.client.user.id) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
const source = message.isBot ? "bot" : "other";
|
|
97
|
+
this._setState({ ...this._state, messages: [...this._state.messages, { ...message, source }] });
|
|
98
|
+
};
|
|
99
|
+
_onKeyboardInput = async (line) => {
|
|
100
|
+
if (this._state.status === "stopped") {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
if (EXIT_KEYWORDS.includes(line)) {
|
|
104
|
+
await this._onExit();
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
if (!line) {
|
|
108
|
+
this._setState({ ...this._state });
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
const message = this._textToMessage(line);
|
|
112
|
+
this._setState({ ...this._state, messages: [...this._state.messages, message] });
|
|
113
|
+
await this._props.client.createMessage(message);
|
|
114
|
+
};
|
|
115
|
+
_onExit = async () => {
|
|
116
|
+
if (this._state.status === "stopped") {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
const { connection, keyboard } = this._state;
|
|
120
|
+
await connection.disconnect();
|
|
121
|
+
connection.cleanup();
|
|
122
|
+
keyboard.close();
|
|
123
|
+
this._setState({ status: "stopped" });
|
|
124
|
+
this._clearStdOut();
|
|
125
|
+
this._restoreOriginalScreenBuffer();
|
|
126
|
+
};
|
|
127
|
+
wait() {
|
|
128
|
+
return new Promise((resolve) => {
|
|
129
|
+
const cb = (state) => {
|
|
130
|
+
if (state.status === "stopped") {
|
|
131
|
+
this._events.off("state", cb);
|
|
132
|
+
resolve();
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
this._events.on("state", cb);
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
_renderMessages = () => {
|
|
139
|
+
if (this._state.status === "stopped") {
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
this._clearStdOut();
|
|
143
|
+
this._printHeader();
|
|
144
|
+
for (const message of this._state.messages) {
|
|
145
|
+
const prefix = USER_ICONS[message.source];
|
|
146
|
+
const text = this._messageToText(message);
|
|
147
|
+
const coloredText = message.source === "bot" ? text : chalk.gray(text);
|
|
148
|
+
process.stdout.write(`${prefix} ${coloredText}
|
|
149
|
+
`);
|
|
150
|
+
}
|
|
151
|
+
this._state.keyboard.setPrompt(">> ");
|
|
152
|
+
this._state.keyboard.prompt(true);
|
|
153
|
+
};
|
|
154
|
+
_printHeader = () => {
|
|
155
|
+
process.stdout.write(chalk.bold("Botpress Chat\n"));
|
|
156
|
+
process.stdout.write(chalk.gray('Type "exit" or press ESC key to quit\n'));
|
|
157
|
+
};
|
|
158
|
+
_switchAlternateScreenBuffer = () => {
|
|
159
|
+
process.stdout.write("\x1B[?1049h");
|
|
160
|
+
};
|
|
161
|
+
_restoreOriginalScreenBuffer = () => {
|
|
162
|
+
process.stdout.write("\x1B[?1049l");
|
|
163
|
+
};
|
|
164
|
+
_clearStdOut = () => {
|
|
165
|
+
process.stdout.write("\x1B[2J\x1B[0;0H");
|
|
166
|
+
};
|
|
167
|
+
_messageToText = (message) => {
|
|
168
|
+
const prefix = MESSAGE_ICONS[message.payload.type];
|
|
169
|
+
switch (message.payload.type) {
|
|
170
|
+
case "audio":
|
|
171
|
+
return prefix + message.payload.audioUrl;
|
|
172
|
+
case "card":
|
|
173
|
+
return prefix + JSON.stringify(message.payload);
|
|
174
|
+
case "carousel":
|
|
175
|
+
return prefix + JSON.stringify(message.payload);
|
|
176
|
+
case "choice":
|
|
177
|
+
return prefix + [message.payload.text, ...message.payload.options.map((o) => ` - ${o.label} (${o.value})`)].join("\n");
|
|
178
|
+
case "dropdown":
|
|
179
|
+
return prefix + [message.payload.text, ...message.payload.options.map((o) => ` - ${o.label} (${o.value})`)].join("\n");
|
|
180
|
+
case "file":
|
|
181
|
+
return prefix + message.payload.fileUrl;
|
|
182
|
+
case "image":
|
|
183
|
+
return prefix + message.payload.imageUrl;
|
|
184
|
+
case "location":
|
|
185
|
+
return prefix + `${message.payload.latitude},${message.payload.longitude} (${message.payload.address})`;
|
|
186
|
+
case "text":
|
|
187
|
+
return prefix + message.payload.text;
|
|
188
|
+
case "video":
|
|
189
|
+
return prefix + message.payload.videoUrl;
|
|
190
|
+
case "markdown":
|
|
191
|
+
return prefix + message.payload.markdown;
|
|
192
|
+
default:
|
|
193
|
+
return "<unknown>";
|
|
194
|
+
}
|
|
195
|
+
};
|
|
196
|
+
_textToMessage = (text) => {
|
|
197
|
+
return {
|
|
198
|
+
id: uuid.v4(),
|
|
199
|
+
userId: this._props.client.user.id,
|
|
200
|
+
source: "myself",
|
|
201
|
+
conversationId: this._props.conversationId,
|
|
202
|
+
createdAt: new Date().toISOString(),
|
|
203
|
+
payload: { type: "text", text }
|
|
204
|
+
};
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
208
|
+
0 && (module.exports = {
|
|
209
|
+
Chat
|
|
210
|
+
});
|
|
211
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/chat/index.ts"],
|
|
4
|
+
"sourcesContent": ["import * as chat from '@botpress/chat'\nimport * as chalk from 'chalk'\nimport * as readline from 'readline'\nimport * as uuid from 'uuid'\nimport * as utils from '../utils'\n\ntype MessageSource = 'myself' | 'bot' | 'other'\ntype ChatMessage = chat.Message & { source: MessageSource }\ntype ChatState =\n | {\n status: 'stopped'\n }\n | {\n status: 'running'\n messages: ChatMessage[]\n connection: chat.SignalListener\n keyboard: readline.Interface\n }\n\nconst USER_ICONS: Record<MessageSource, string> = {\n myself: '\uD83D\uDC64',\n bot: '\uD83E\uDD16',\n other: '\uD83D\uDC65',\n}\n\nconst MESSAGE_ICONS: Record<chat.Message['payload']['type'], string> = {\n audio: '\uD83C\uDFB5',\n card: '\uD83C\uDCCF',\n carousel: '\uD83C\uDFA0',\n choice: '\uD83D\uDD3D',\n dropdown: '\uD83D\uDD3D',\n file: '\uD83D\uDCC1',\n image: '\uD83C\uDF05',\n location: '\uD83D\uDCCD',\n text: '',\n video: '\uD83C\uDFA5',\n markdown: '',\n}\n\nconst EXIT_KEYWORDS = ['exit', '.exit']\n\nexport type ChatProps = {\n client: chat.AuthenticatedClient\n conversationId: string\n}\n\nexport class Chat {\n private _events = new utils.emitter.EventEmitter<{ state: ChatState }>()\n private _state: ChatState = { status: 'stopped' }\n\n public static launch(props: ChatProps): Chat {\n const instance = new Chat(props)\n void instance._run()\n return instance\n }\n\n private constructor(private _props: ChatProps) {}\n\n private async _run() {\n this._switchAlternateScreenBuffer()\n this._events.on('state', this._renderMessages)\n\n const connection = await this._props.client.listenConversation({ id: this._props.conversationId })\n const keyboard = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n })\n\n connection.on('message_created', (m) => void this._onMessageReceived(m))\n keyboard.on('line', (l) => void this._onKeyboardInput(l))\n process.stdin.on('keypress', (_, key) => {\n if (key.name === 'escape') {\n void this._onExit()\n }\n })\n\n this._setState({ status: 'running', messages: [], connection, keyboard })\n }\n\n private _setState = (newState: ChatState) => {\n this._state = newState\n this._events.emit('state', this._state)\n }\n\n private _onMessageReceived = async (message: chat.Signals['message_created']) => {\n if (this._state.status === 'stopped') {\n return\n }\n if (message.userId === this._props.client.user.id) {\n return\n }\n const source: MessageSource = message.isBot ? 'bot' : 'other'\n this._setState({ ...this._state, messages: [...this._state.messages, { ...message, source }] })\n }\n\n private _onKeyboardInput = async (line: string) => {\n if (this._state.status === 'stopped') {\n return\n }\n\n if (EXIT_KEYWORDS.includes(line)) {\n await this._onExit()\n return\n }\n\n if (!line) {\n this._setState({ ...this._state })\n return\n }\n\n const message = this._textToMessage(line)\n this._setState({ ...this._state, messages: [...this._state.messages, message] })\n await this._props.client.createMessage(message)\n }\n\n private _onExit = async () => {\n if (this._state.status === 'stopped') {\n return\n }\n const { connection, keyboard } = this._state\n await connection.disconnect()\n connection.cleanup()\n keyboard.close()\n this._setState({ status: 'stopped' })\n this._clearStdOut()\n this._restoreOriginalScreenBuffer()\n }\n\n public wait(): Promise<void> {\n return new Promise<void>((resolve) => {\n const cb = (state: ChatState) => {\n if (state.status === 'stopped') {\n this._events.off('state', cb)\n resolve()\n }\n }\n this._events.on('state', cb)\n })\n }\n\n private _renderMessages = () => {\n if (this._state.status === 'stopped') {\n return\n }\n\n this._clearStdOut()\n this._printHeader()\n\n for (const message of this._state.messages) {\n const prefix = USER_ICONS[message.source]\n const text = this._messageToText(message)\n const coloredText = message.source === 'bot' ? text : chalk.gray(text)\n process.stdout.write(`${prefix} ${coloredText}\\n`)\n }\n\n this._state.keyboard.setPrompt('>> ')\n this._state.keyboard.prompt(true) // Redisplay the prompt and maintain current input\n }\n\n private _printHeader = () => {\n process.stdout.write(chalk.bold('Botpress Chat\\n'))\n process.stdout.write(chalk.gray('Type \"exit\" or press ESC key to quit\\n'))\n }\n\n private _switchAlternateScreenBuffer = () => {\n process.stdout.write('\\x1B[?1049h')\n }\n\n private _restoreOriginalScreenBuffer = () => {\n process.stdout.write('\\x1B[?1049l')\n }\n\n private _clearStdOut = () => {\n process.stdout.write('\\x1B[2J\\x1B[0;0H')\n }\n\n private _messageToText = (message: chat.Message): string => {\n const prefix = MESSAGE_ICONS[message.payload.type]\n switch (message.payload.type) {\n case 'audio':\n return prefix + message.payload.audioUrl\n case 'card':\n return prefix + JSON.stringify(message.payload)\n case 'carousel':\n return prefix + JSON.stringify(message.payload)\n case 'choice':\n return (\n prefix +\n [message.payload.text, ...message.payload.options.map((o) => ` - ${o.label} (${o.value})`)].join('\\n')\n )\n case 'dropdown':\n return (\n prefix +\n [message.payload.text, ...message.payload.options.map((o) => ` - ${o.label} (${o.value})`)].join('\\n')\n )\n case 'file':\n return prefix + message.payload.fileUrl\n case 'image':\n return prefix + message.payload.imageUrl\n case 'location':\n return prefix + `${message.payload.latitude},${message.payload.longitude} (${message.payload.address})`\n case 'text':\n return prefix + message.payload.text\n case 'video':\n return prefix + message.payload.videoUrl\n case 'markdown':\n return prefix + message.payload.markdown\n default:\n type _assertion = utils.types.AssertNever<typeof message.payload>\n return '<unknown>'\n }\n }\n\n private _textToMessage = (text: string): ChatMessage => {\n return {\n id: uuid.v4(),\n userId: this._props.client.user.id,\n source: 'myself',\n conversationId: this._props.conversationId,\n createdAt: new Date().toISOString(),\n payload: { type: 'text', text },\n }\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var bot_implementation_exports = {};
|
|
30
|
+
__export(bot_implementation_exports, {
|
|
31
|
+
BotImplementationModule: () => BotImplementationModule
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(bot_implementation_exports);
|
|
34
|
+
var consts = __toESM(require("../consts"));
|
|
35
|
+
var import_module = require("../module");
|
|
36
|
+
var import_bot_plugins = require("./bot-plugins");
|
|
37
|
+
var import_bot_typings = require("./bot-typings");
|
|
38
|
+
class BotImplementationModule extends import_module.Module {
|
|
39
|
+
_typingsModule;
|
|
40
|
+
_pluginsModule;
|
|
41
|
+
constructor(bot) {
|
|
42
|
+
super({
|
|
43
|
+
exportName: "Bot",
|
|
44
|
+
path: consts.INDEX_FILE
|
|
45
|
+
});
|
|
46
|
+
this._typingsModule = new import_bot_typings.BotTypingsModule(bot);
|
|
47
|
+
this._typingsModule.unshift("typings");
|
|
48
|
+
this.pushDep(this._typingsModule);
|
|
49
|
+
this._pluginsModule = new import_bot_plugins.BotPluginsIndexModule(bot);
|
|
50
|
+
this._pluginsModule.unshift(consts.fromOutDir.pluginsDir);
|
|
51
|
+
this.pushDep(this._pluginsModule);
|
|
52
|
+
}
|
|
53
|
+
async getContent() {
|
|
54
|
+
const {
|
|
55
|
+
//
|
|
56
|
+
_typingsModule: typingsModule,
|
|
57
|
+
_pluginsModule: pluginsModule
|
|
58
|
+
} = this;
|
|
59
|
+
const typingsImport = typingsModule.import(this);
|
|
60
|
+
const pluginsImport = pluginsModule.import(this);
|
|
61
|
+
return [
|
|
62
|
+
consts.GENERATED_HEADER,
|
|
63
|
+
'import * as sdk from "@botpress/sdk"',
|
|
64
|
+
`import * as ${typingsModule.name} from "./${typingsImport}"`,
|
|
65
|
+
`import * as ${pluginsModule.name} from "./${pluginsImport}"`,
|
|
66
|
+
"",
|
|
67
|
+
`export * from "./${typingsImport}"`,
|
|
68
|
+
`export * from "./${pluginsImport}"`,
|
|
69
|
+
"",
|
|
70
|
+
`type TPlugins = ${pluginsModule.name}.TPlugins`,
|
|
71
|
+
`type TBot = sdk.DefaultBot<${typingsModule.name}.${typingsModule.exportName}>`,
|
|
72
|
+
"",
|
|
73
|
+
"export type BotProps = {",
|
|
74
|
+
' actions: sdk.BotProps<TBot, TPlugins>["actions"]',
|
|
75
|
+
"}",
|
|
76
|
+
"",
|
|
77
|
+
"export class Bot extends sdk.Bot<TBot, TPlugins> {",
|
|
78
|
+
" public constructor(props: BotProps) {",
|
|
79
|
+
" super({",
|
|
80
|
+
" actions: props.actions,",
|
|
81
|
+
` plugins: ${pluginsModule.name}.${pluginsModule.exportName}`,
|
|
82
|
+
" })",
|
|
83
|
+
" }",
|
|
84
|
+
"}",
|
|
85
|
+
"",
|
|
86
|
+
"// extra types",
|
|
87
|
+
"",
|
|
88
|
+
"type AsyncFunction = (...args: any[]) => Promise<any>",
|
|
89
|
+
"export type EventHandlers = Required<{",
|
|
90
|
+
" [K in keyof Bot['eventHandlers']]: NonNullable<Bot['eventHandlers'][K]>[number]",
|
|
91
|
+
"}>",
|
|
92
|
+
"export type MessageHandlers = Required<{",
|
|
93
|
+
" [K in keyof Bot['messageHandlers']]: NonNullable<Bot['messageHandlers'][K]>[number]",
|
|
94
|
+
"}>",
|
|
95
|
+
"",
|
|
96
|
+
"export type MessageHandlerProps = Parameters<MessageHandlers['*']>[0]",
|
|
97
|
+
"export type EventHandlerProps = Parameters<EventHandlers['*']>[0]",
|
|
98
|
+
"",
|
|
99
|
+
"export type Client = (MessageHandlerProps | EventHandlerProps)['client']",
|
|
100
|
+
"export type ClientOperation = keyof {",
|
|
101
|
+
" [K in keyof Client as Client[K] extends AsyncFunction ? K : never]: null",
|
|
102
|
+
"}",
|
|
103
|
+
"export type ClientInputs = {",
|
|
104
|
+
" [K in ClientOperation]: Parameters<Client[K]>[0]",
|
|
105
|
+
"}",
|
|
106
|
+
"export type ClientOutputs = {",
|
|
107
|
+
" [K in ClientOperation]: Awaited<ReturnType<Client[K]>>",
|
|
108
|
+
"}"
|
|
109
|
+
].join("\n");
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
113
|
+
0 && (module.exports = {
|
|
114
|
+
BotImplementationModule
|
|
115
|
+
});
|
|
116
|
+
//# sourceMappingURL=bot-implementation.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/code-generation/bot-implementation/bot-implementation.ts"],
|
|
4
|
+
"sourcesContent": ["import * as sdk from '@botpress/sdk'\nimport * as consts from '../consts'\nimport { Module } from '../module'\nimport { BotPluginsIndexModule } from './bot-plugins'\nimport { BotTypingsModule } from './bot-typings'\n\nexport class BotImplementationModule extends Module {\n private _typingsModule: BotTypingsModule\n private _pluginsModule: BotPluginsIndexModule\n\n public constructor(bot: sdk.BotDefinition) {\n super({\n exportName: 'Bot',\n path: consts.INDEX_FILE,\n })\n\n this._typingsModule = new BotTypingsModule(bot)\n this._typingsModule.unshift('typings')\n this.pushDep(this._typingsModule)\n\n this._pluginsModule = new BotPluginsIndexModule(bot)\n this._pluginsModule.unshift(consts.fromOutDir.pluginsDir)\n this.pushDep(this._pluginsModule)\n }\n\n public async getContent() {\n const {\n //\n _typingsModule: typingsModule,\n _pluginsModule: pluginsModule,\n } = this\n\n const typingsImport = typingsModule.import(this)\n const pluginsImport = pluginsModule.import(this)\n\n return [\n consts.GENERATED_HEADER,\n 'import * as sdk from \"@botpress/sdk\"',\n `import * as ${typingsModule.name} from \"./${typingsImport}\"`,\n `import * as ${pluginsModule.name} from \"./${pluginsImport}\"`,\n '',\n `export * from \"./${typingsImport}\"`,\n `export * from \"./${pluginsImport}\"`,\n '',\n `type TPlugins = ${pluginsModule.name}.TPlugins`,\n `type TBot = sdk.DefaultBot<${typingsModule.name}.${typingsModule.exportName}>`,\n '',\n 'export type BotProps = {',\n ' actions: sdk.BotProps<TBot, TPlugins>[\"actions\"]',\n '}',\n '',\n 'export class Bot extends sdk.Bot<TBot, TPlugins> {',\n ' public constructor(props: BotProps) {',\n ' super({',\n ' actions: props.actions,',\n ` plugins: ${pluginsModule.name}.${pluginsModule.exportName}`,\n ' })',\n ' }',\n '}',\n '',\n '// extra types',\n '',\n 'type AsyncFunction = (...args: any[]) => Promise<any>',\n 'export type EventHandlers = Required<{',\n \" [K in keyof Bot['eventHandlers']]: NonNullable<Bot['eventHandlers'][K]>[number]\",\n '}>',\n 'export type MessageHandlers = Required<{',\n \" [K in keyof Bot['messageHandlers']]: NonNullable<Bot['messageHandlers'][K]>[number]\",\n '}>',\n '',\n \"export type MessageHandlerProps = Parameters<MessageHandlers['*']>[0]\",\n \"export type EventHandlerProps = Parameters<EventHandlers['*']>[0]\",\n '',\n \"export type Client = (MessageHandlerProps | EventHandlerProps)['client']\",\n 'export type ClientOperation = keyof {',\n ' [K in keyof Client as Client[K] extends AsyncFunction ? K : never]: null',\n '}',\n 'export type ClientInputs = {',\n ' [K in ClientOperation]: Parameters<Client[K]>[0]',\n '}',\n 'export type ClientOutputs = {',\n ' [K in ClientOperation]: Awaited<ReturnType<Client[K]>>',\n '}',\n ].join('\\n')\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,aAAwB;AACxB,oBAAuB;AACvB,yBAAsC;AACtC,yBAAiC;AAE1B,MAAM,gCAAgC,qBAAO;AAAA,EAC1C;AAAA,EACA;AAAA,EAED,YAAY,KAAwB;AACzC,UAAM;AAAA,MACJ,YAAY;AAAA,MACZ,MAAM,OAAO;AAAA,IACf,CAAC;AAED,SAAK,iBAAiB,IAAI,oCAAiB,GAAG;AAC9C,SAAK,eAAe,QAAQ,SAAS;AACrC,SAAK,QAAQ,KAAK,cAAc;AAEhC,SAAK,iBAAiB,IAAI,yCAAsB,GAAG;AACnD,SAAK,eAAe,QAAQ,OAAO,WAAW,UAAU;AACxD,SAAK,QAAQ,KAAK,cAAc;AAAA,EAClC;AAAA,EAEA,MAAa,aAAa;AACxB,UAAM;AAAA;AAAA,MAEJ,gBAAgB;AAAA,MAChB,gBAAgB;AAAA,IAClB,IAAI;AAEJ,UAAM,gBAAgB,cAAc,OAAO,IAAI;AAC/C,UAAM,gBAAgB,cAAc,OAAO,IAAI;AAE/C,WAAO;AAAA,MACL,OAAO;AAAA,MACP;AAAA,MACA,eAAe,cAAc,gBAAgB;AAAA,MAC7C,eAAe,cAAc,gBAAgB;AAAA,MAC7C;AAAA,MACA,oBAAoB;AAAA,MACpB,oBAAoB;AAAA,MACpB;AAAA,MACA,mBAAmB,cAAc;AAAA,MACjC,8BAA8B,cAAc,QAAQ,cAAc;AAAA,MAClE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,kBAAkB,cAAc,QAAQ,cAAc;AAAA,MACtD;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,EAAE,KAAK,IAAI;AAAA,EACb;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod2, isNodeMode, target) => (target = mod2 != null ? __create(__getProtoOf(mod2)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod2 || !mod2.__esModule ? __defProp(target, "default", { value: mod2, enumerable: true }) : target,
|
|
26
|
+
mod2
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod2) => __copyProps(__defProp({}, "__esModule", { value: true }), mod2);
|
|
29
|
+
var bot_plugins_exports = {};
|
|
30
|
+
__export(bot_plugins_exports, {
|
|
31
|
+
BotPluginsIndexModule: () => BotPluginsIndexModule
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(bot_plugins_exports);
|
|
34
|
+
var consts = __toESM(require("../../consts"));
|
|
35
|
+
var mod = __toESM(require("../../module"));
|
|
36
|
+
var strings = __toESM(require("../../strings"));
|
|
37
|
+
var import_plugin_module = require("./plugin-module");
|
|
38
|
+
class BotPluginsIndexModule extends mod.Module {
|
|
39
|
+
_pluginModules;
|
|
40
|
+
constructor(sdkBotDefinition) {
|
|
41
|
+
super({
|
|
42
|
+
path: consts.INDEX_FILE,
|
|
43
|
+
exportName: "plugins"
|
|
44
|
+
});
|
|
45
|
+
const pluginsModules = [];
|
|
46
|
+
for (const plugin of Object.values(sdkBotDefinition.plugins ?? {})) {
|
|
47
|
+
const pluginModule = new import_plugin_module.BotPluginModule(plugin);
|
|
48
|
+
pluginModule.unshift(plugin.name);
|
|
49
|
+
this.pushDep(pluginModule);
|
|
50
|
+
pluginsModules.push(pluginModule);
|
|
51
|
+
}
|
|
52
|
+
this._pluginModules = pluginsModules;
|
|
53
|
+
}
|
|
54
|
+
async getContent() {
|
|
55
|
+
const modules = this._pluginModules.map((module2) => ({
|
|
56
|
+
importAlias: strings.importAlias(module2.name),
|
|
57
|
+
importFrom: module2.import(this),
|
|
58
|
+
module: module2
|
|
59
|
+
}));
|
|
60
|
+
return [
|
|
61
|
+
consts.GENERATED_HEADER,
|
|
62
|
+
'import * as sdk from "@botpress/sdk"',
|
|
63
|
+
...modules.map(({ importAlias, importFrom }) => `import * as ${importAlias} from "./${importFrom}";`),
|
|
64
|
+
...modules.map(({ importAlias, importFrom }) => `export * as ${importAlias} from "./${importFrom}";`),
|
|
65
|
+
"",
|
|
66
|
+
`export const ${this.exportName} = {`,
|
|
67
|
+
...modules.map(({ module: module2, importAlias }) => ` "${module2.pluginName}": ${importAlias}.${module2.exportName},`),
|
|
68
|
+
"}",
|
|
69
|
+
"",
|
|
70
|
+
"export type TPlugins = {",
|
|
71
|
+
...modules.map(({ module: module2, importAlias }) => ` "${module2.pluginName}": ${importAlias}.TPlugin;`),
|
|
72
|
+
"}"
|
|
73
|
+
].join("\n");
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
77
|
+
0 && (module.exports = {
|
|
78
|
+
BotPluginsIndexModule
|
|
79
|
+
});
|
|
80
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/code-generation/bot-implementation/bot-plugins/index.ts"],
|
|
4
|
+
"sourcesContent": ["import * as sdk from '@botpress/sdk'\nimport * as consts from '../../consts'\nimport * as mod from '../../module'\nimport * as strings from '../../strings'\nimport { BotPluginModule } from './plugin-module'\n\nexport class BotPluginsIndexModule extends mod.Module {\n private _pluginModules: BotPluginModule[]\n\n public constructor(sdkBotDefinition: sdk.BotDefinition) {\n super({\n path: consts.INDEX_FILE,\n exportName: 'plugins',\n })\n\n const pluginsModules: BotPluginModule[] = []\n for (const plugin of Object.values(sdkBotDefinition.plugins ?? {})) {\n const pluginModule = new BotPluginModule(plugin)\n pluginModule.unshift(plugin.name)\n this.pushDep(pluginModule)\n pluginsModules.push(pluginModule)\n }\n\n this._pluginModules = pluginsModules\n }\n\n public async getContent(): Promise<string> {\n const modules = this._pluginModules.map((module) => ({\n importAlias: strings.importAlias(module.name),\n importFrom: module.import(this),\n module,\n }))\n\n return [\n consts.GENERATED_HEADER,\n 'import * as sdk from \"@botpress/sdk\"',\n ...modules.map(({ importAlias, importFrom }) => `import * as ${importAlias} from \"./${importFrom}\";`),\n ...modules.map(({ importAlias, importFrom }) => `export * as ${importAlias} from \"./${importFrom}\";`),\n '',\n `export const ${this.exportName} = {`,\n ...modules.map(({ module, importAlias }) => ` \"${module.pluginName}\": ${importAlias}.${module.exportName},`),\n '}',\n '',\n 'export type TPlugins = {',\n ...modules.map(({ module, importAlias }) => ` \"${module.pluginName}\": ${importAlias}.TPlugin;`),\n '}',\n ].join('\\n')\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,aAAwB;AACxB,UAAqB;AACrB,cAAyB;AACzB,2BAAgC;AAEzB,MAAM,8BAA8B,IAAI,OAAO;AAAA,EAC5C;AAAA,EAED,YAAY,kBAAqC;AACtD,UAAM;AAAA,MACJ,MAAM,OAAO;AAAA,MACb,YAAY;AAAA,IACd,CAAC;AAED,UAAM,iBAAoC,CAAC;AAC3C,eAAW,UAAU,OAAO,OAAO,iBAAiB,WAAW,CAAC,CAAC,GAAG;AAClE,YAAM,eAAe,IAAI,qCAAgB,MAAM;AAC/C,mBAAa,QAAQ,OAAO,IAAI;AAChC,WAAK,QAAQ,YAAY;AACzB,qBAAe,KAAK,YAAY;AAAA,IAClC;AAEA,SAAK,iBAAiB;AAAA,EACxB;AAAA,EAEA,MAAa,aAA8B;AACzC,UAAM,UAAU,KAAK,eAAe,IAAI,CAACA,aAAY;AAAA,MACnD,aAAa,QAAQ,YAAYA,QAAO,IAAI;AAAA,MAC5C,YAAYA,QAAO,OAAO,IAAI;AAAA,MAC9B,QAAAA;AAAA,IACF,EAAE;AAEF,WAAO;AAAA,MACL,OAAO;AAAA,MACP;AAAA,MACA,GAAG,QAAQ,IAAI,CAAC,EAAE,aAAa,WAAW,MAAM,eAAe,uBAAuB,cAAc;AAAA,MACpG,GAAG,QAAQ,IAAI,CAAC,EAAE,aAAa,WAAW,MAAM,eAAe,uBAAuB,cAAc;AAAA,MACpG;AAAA,MACA,gBAAgB,KAAK;AAAA,MACrB,GAAG,QAAQ,IAAI,CAAC,EAAE,QAAAA,SAAQ,YAAY,MAAM,MAAMA,QAAO,gBAAgB,eAAeA,QAAO,aAAa;AAAA,MAC5G;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG,QAAQ,IAAI,CAAC,EAAE,QAAAA,SAAQ,YAAY,MAAM,MAAMA,QAAO,gBAAgB,sBAAsB;AAAA,MAC/F;AAAA,IACF,EAAE,KAAK,IAAI;AAAA,EACb;AACF;",
|
|
6
|
+
"names": ["module"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var plugin_module_exports = {};
|
|
30
|
+
__export(plugin_module_exports, {
|
|
31
|
+
BotPluginModule: () => BotPluginModule
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(plugin_module_exports);
|
|
34
|
+
var consts = __toESM(require("../../consts"));
|
|
35
|
+
var import_module = require("../../module");
|
|
36
|
+
var import_plugin_typings = require("../../plugin-implementation/plugin-typings");
|
|
37
|
+
class BundleJsModule extends import_module.Module {
|
|
38
|
+
_indexJs;
|
|
39
|
+
constructor(plugin) {
|
|
40
|
+
super({
|
|
41
|
+
path: "bundle.js",
|
|
42
|
+
exportName: "default"
|
|
43
|
+
});
|
|
44
|
+
this._indexJs = plugin.implementation.toString();
|
|
45
|
+
}
|
|
46
|
+
async getContent() {
|
|
47
|
+
return this._indexJs;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
class BundleDtsModule extends import_module.Module {
|
|
51
|
+
constructor(_typingsModule) {
|
|
52
|
+
super({
|
|
53
|
+
path: "bundle.d.ts",
|
|
54
|
+
exportName: "default"
|
|
55
|
+
});
|
|
56
|
+
this._typingsModule = _typingsModule;
|
|
57
|
+
}
|
|
58
|
+
async getContent() {
|
|
59
|
+
const typingsImport = this._typingsModule.import(this);
|
|
60
|
+
return [
|
|
61
|
+
consts.GENERATED_HEADER,
|
|
62
|
+
'import * as sdk from "@botpress/sdk"',
|
|
63
|
+
`import * as ${this._typingsModule.name} from "./${typingsImport}"`,
|
|
64
|
+
`type TPlugin = sdk.DefaultPlugin<${this._typingsModule.name}.${this._typingsModule.exportName}>`,
|
|
65
|
+
"export default new sdk.Plugin<TPlugin>({})",
|
|
66
|
+
""
|
|
67
|
+
].join("\n");
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
class PluginConfigModule extends import_module.Module {
|
|
71
|
+
_plugin;
|
|
72
|
+
constructor(config) {
|
|
73
|
+
super(config);
|
|
74
|
+
this._plugin = config.plugin;
|
|
75
|
+
}
|
|
76
|
+
async getContent() {
|
|
77
|
+
const { interfaces, configuration } = this._plugin;
|
|
78
|
+
const content = JSON.stringify({ interfaces, configuration }, null, 2);
|
|
79
|
+
return `export default ${content}`;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
class BotPluginModule extends import_module.Module {
|
|
83
|
+
_typingsModule;
|
|
84
|
+
_bundleJsModule;
|
|
85
|
+
_bundleDtsModule;
|
|
86
|
+
_configModule;
|
|
87
|
+
pluginName;
|
|
88
|
+
constructor(plugin) {
|
|
89
|
+
super({
|
|
90
|
+
exportName: "default",
|
|
91
|
+
path: consts.INDEX_FILE
|
|
92
|
+
});
|
|
93
|
+
this.pluginName = plugin.name;
|
|
94
|
+
this._typingsModule = new import_plugin_typings.PluginTypingsModule(plugin.definition);
|
|
95
|
+
this._typingsModule.unshift("typings");
|
|
96
|
+
this.pushDep(this._typingsModule);
|
|
97
|
+
this._bundleJsModule = new BundleJsModule(plugin);
|
|
98
|
+
this.pushDep(this._bundleJsModule);
|
|
99
|
+
this._bundleDtsModule = new BundleDtsModule(this._typingsModule);
|
|
100
|
+
this.pushDep(this._bundleDtsModule);
|
|
101
|
+
this._configModule = new PluginConfigModule({
|
|
102
|
+
path: "config.ts",
|
|
103
|
+
exportName: "default",
|
|
104
|
+
plugin
|
|
105
|
+
});
|
|
106
|
+
this.pushDep(this._configModule);
|
|
107
|
+
}
|
|
108
|
+
async getContent() {
|
|
109
|
+
const configImport = this._configModule.import(this);
|
|
110
|
+
const typingsImport = this._typingsModule.import(this);
|
|
111
|
+
return [
|
|
112
|
+
consts.GENERATED_HEADER,
|
|
113
|
+
'import * as sdk from "@botpress/sdk"',
|
|
114
|
+
'import bundle from "./bundle"',
|
|
115
|
+
`import * as ${this._typingsModule.name} from "./${typingsImport}"`,
|
|
116
|
+
`import * as ${this._configModule.name} from "./${configImport}"`,
|
|
117
|
+
"",
|
|
118
|
+
`export type TPlugin = sdk.DefaultPlugin<${this._typingsModule.name}.${this._typingsModule.exportName}>`,
|
|
119
|
+
"",
|
|
120
|
+
`export default bundle.initialize(${this._configModule.name}.${this._configModule.exportName})`,
|
|
121
|
+
""
|
|
122
|
+
].join("\n");
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
126
|
+
0 && (module.exports = {
|
|
127
|
+
BotPluginModule
|
|
128
|
+
});
|
|
129
|
+
//# sourceMappingURL=plugin-module.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/code-generation/bot-implementation/bot-plugins/plugin-module.ts"],
|
|
4
|
+
"sourcesContent": ["import * as sdk from '@botpress/sdk'\nimport * as consts from '../../consts'\nimport { Module, ModuleProps } from '../../module'\nimport { PluginTypingsModule } from '../../plugin-implementation/plugin-typings'\n\ntype PluginInstance = NonNullable<sdk.BotDefinition['plugins']>[string]\n\nclass BundleJsModule extends Module {\n private _indexJs: string\n public constructor(plugin: PluginInstance) {\n super({\n path: 'bundle.js',\n exportName: 'default',\n })\n this._indexJs = plugin.implementation.toString()\n }\n\n public async getContent() {\n return this._indexJs\n }\n}\n\nclass BundleDtsModule extends Module {\n public constructor(private _typingsModule: PluginTypingsModule) {\n super({\n path: 'bundle.d.ts',\n exportName: 'default',\n })\n }\n\n public async getContent() {\n const typingsImport = this._typingsModule.import(this)\n\n return [\n consts.GENERATED_HEADER,\n 'import * as sdk from \"@botpress/sdk\"',\n `import * as ${this._typingsModule.name} from \"./${typingsImport}\"`,\n `type TPlugin = sdk.DefaultPlugin<${this._typingsModule.name}.${this._typingsModule.exportName}>`,\n 'export default new sdk.Plugin<TPlugin>({})',\n '',\n ].join('\\n')\n }\n}\n\nclass PluginConfigModule extends Module {\n private _plugin: PluginInstance\n public constructor(config: ModuleProps & { plugin: PluginInstance }) {\n super(config)\n this._plugin = config.plugin\n }\n\n public async getContent() {\n const { interfaces, configuration } = this._plugin\n const content = JSON.stringify({ interfaces, configuration }, null, 2)\n return `export default ${content}`\n }\n}\n\nexport class BotPluginModule extends Module {\n private _typingsModule: PluginTypingsModule\n private _bundleJsModule: BundleJsModule\n private _bundleDtsModule: BundleDtsModule\n private _configModule: PluginConfigModule\n\n public readonly pluginName: string\n\n public constructor(plugin: PluginInstance) {\n super({\n exportName: 'default',\n path: consts.INDEX_FILE,\n })\n\n this.pluginName = plugin.name\n\n this._typingsModule = new PluginTypingsModule(plugin.definition)\n this._typingsModule.unshift('typings')\n this.pushDep(this._typingsModule)\n\n this._bundleJsModule = new BundleJsModule(plugin)\n this.pushDep(this._bundleJsModule)\n\n this._bundleDtsModule = new BundleDtsModule(this._typingsModule)\n this.pushDep(this._bundleDtsModule)\n\n this._configModule = new PluginConfigModule({\n path: 'config.ts',\n exportName: 'default',\n plugin,\n })\n this.pushDep(this._configModule)\n }\n\n public async getContent() {\n const configImport = this._configModule.import(this)\n const typingsImport = this._typingsModule.import(this)\n return [\n consts.GENERATED_HEADER,\n 'import * as sdk from \"@botpress/sdk\"',\n 'import bundle from \"./bundle\"',\n `import * as ${this._typingsModule.name} from \"./${typingsImport}\"`,\n `import * as ${this._configModule.name} from \"./${configImport}\"`,\n '',\n `export type TPlugin = sdk.DefaultPlugin<${this._typingsModule.name}.${this._typingsModule.exportName}>`,\n '',\n `export default bundle.initialize(${this._configModule.name}.${this._configModule.exportName})`,\n '',\n ].join('\\n')\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,aAAwB;AACxB,oBAAoC;AACpC,4BAAoC;AAIpC,MAAM,uBAAuB,qBAAO;AAAA,EAC1B;AAAA,EACD,YAAY,QAAwB;AACzC,UAAM;AAAA,MACJ,MAAM;AAAA,MACN,YAAY;AAAA,IACd,CAAC;AACD,SAAK,WAAW,OAAO,eAAe,SAAS;AAAA,EACjD;AAAA,EAEA,MAAa,aAAa;AACxB,WAAO,KAAK;AAAA,EACd;AACF;AAEA,MAAM,wBAAwB,qBAAO;AAAA,EAC5B,YAAoB,gBAAqC;AAC9D,UAAM;AAAA,MACJ,MAAM;AAAA,MACN,YAAY;AAAA,IACd,CAAC;AAJwB;AAAA,EAK3B;AAAA,EAEA,MAAa,aAAa;AACxB,UAAM,gBAAgB,KAAK,eAAe,OAAO,IAAI;AAErD,WAAO;AAAA,MACL,OAAO;AAAA,MACP;AAAA,MACA,eAAe,KAAK,eAAe,gBAAgB;AAAA,MACnD,oCAAoC,KAAK,eAAe,QAAQ,KAAK,eAAe;AAAA,MACpF;AAAA,MACA;AAAA,IACF,EAAE,KAAK,IAAI;AAAA,EACb;AACF;AAEA,MAAM,2BAA2B,qBAAO;AAAA,EAC9B;AAAA,EACD,YAAY,QAAkD;AACnE,UAAM,MAAM;AACZ,SAAK,UAAU,OAAO;AAAA,EACxB;AAAA,EAEA,MAAa,aAAa;AACxB,UAAM,EAAE,YAAY,cAAc,IAAI,KAAK;AAC3C,UAAM,UAAU,KAAK,UAAU,EAAE,YAAY,cAAc,GAAG,MAAM,CAAC;AACrE,WAAO,kBAAkB;AAAA,EAC3B;AACF;AAEO,MAAM,wBAAwB,qBAAO;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEQ;AAAA,EAET,YAAY,QAAwB;AACzC,UAAM;AAAA,MACJ,YAAY;AAAA,MACZ,MAAM,OAAO;AAAA,IACf,CAAC;AAED,SAAK,aAAa,OAAO;AAEzB,SAAK,iBAAiB,IAAI,0CAAoB,OAAO,UAAU;AAC/D,SAAK,eAAe,QAAQ,SAAS;AACrC,SAAK,QAAQ,KAAK,cAAc;AAEhC,SAAK,kBAAkB,IAAI,eAAe,MAAM;AAChD,SAAK,QAAQ,KAAK,eAAe;AAEjC,SAAK,mBAAmB,IAAI,gBAAgB,KAAK,cAAc;AAC/D,SAAK,QAAQ,KAAK,gBAAgB;AAElC,SAAK,gBAAgB,IAAI,mBAAmB;AAAA,MAC1C,MAAM;AAAA,MACN,YAAY;AAAA,MACZ;AAAA,IACF,CAAC;AACD,SAAK,QAAQ,KAAK,aAAa;AAAA,EACjC;AAAA,EAEA,MAAa,aAAa;AACxB,UAAM,eAAe,KAAK,cAAc,OAAO,IAAI;AACnD,UAAM,gBAAgB,KAAK,eAAe,OAAO,IAAI;AACrD,WAAO;AAAA,MACL,OAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA,eAAe,KAAK,eAAe,gBAAgB;AAAA,MACnD,eAAe,KAAK,cAAc,gBAAgB;AAAA,MAClD;AAAA,MACA,2CAA2C,KAAK,eAAe,QAAQ,KAAK,eAAe;AAAA,MAC3F;AAAA,MACA,oCAAoC,KAAK,cAAc,QAAQ,KAAK,cAAc;AAAA,MAClF;AAAA,IACF,EAAE,KAAK,IAAI;AAAA,EACb;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|