@botpress/cli 4.17.13 → 4.17.15
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 +16 -12
- package/bin.js +1 -1
- package/dist/api/bot-body.d.ts +5 -0
- package/dist/api/client.d.ts +50 -0
- package/dist/api/client.js +2 -1
- package/dist/api/client.js.map +1 -1
- package/dist/api/index.d.ts +6 -0
- package/dist/api/index.js +9 -0
- package/dist/api/integration-body.d.ts +5 -0
- package/dist/api/interface-body.d.ts +7 -0
- package/dist/api/paging.d.ts +9 -0
- package/dist/api/plugin-body.d.ts +5 -0
- package/dist/api/retry.d.ts +2 -0
- package/dist/api/types.d.ts +62 -0
- package/dist/chat/index.d.ts +25 -0
- package/dist/chat/index.js +1 -1
- package/dist/chat/index.js.map +1 -1
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +51 -0
- package/dist/cli.js.map +7 -0
- package/dist/code-generation/bot-implementation/bot-implementation.d.ts +8 -0
- package/dist/code-generation/bot-implementation/bot-implementation.js.map +1 -1
- package/dist/code-generation/bot-implementation/bot-plugins/index.d.ts +7 -0
- package/dist/code-generation/bot-implementation/bot-plugins/index.js.map +1 -1
- package/dist/code-generation/bot-implementation/bot-plugins/plugin-module.d.ts +13 -0
- package/dist/code-generation/bot-implementation/bot-plugins/plugin-module.js.map +1 -1
- package/dist/code-generation/bot-implementation/bot-typings/actions-module.d.ts +21 -0
- package/dist/code-generation/bot-implementation/bot-typings/actions-module.js.map +1 -1
- package/dist/code-generation/bot-implementation/bot-typings/events-module.d.ts +10 -0
- package/dist/code-generation/bot-implementation/bot-typings/events-module.js.map +1 -1
- package/dist/code-generation/bot-implementation/bot-typings/index.d.ts +7 -0
- package/dist/code-generation/bot-implementation/bot-typings/index.js.map +1 -1
- package/dist/code-generation/bot-implementation/bot-typings/states-module.d.ts +17 -0
- package/dist/code-generation/bot-implementation/bot-typings/states-module.js.map +1 -1
- package/dist/code-generation/bot-implementation/bot-typings/tables-module.d.ts +10 -0
- package/dist/code-generation/bot-implementation/bot-typings/tables-module.js.map +1 -1
- package/dist/code-generation/bot-implementation/bot-typings/workflows-module.d.ts +27 -0
- package/dist/code-generation/bot-implementation/bot-typings/workflows-module.js.map +1 -1
- package/dist/code-generation/bot-implementation/index.d.ts +3 -0
- package/dist/code-generation/bot-implementation/index.js.map +1 -1
- package/dist/code-generation/consts.d.ts +5 -0
- package/dist/code-generation/consts.js +2 -1
- package/dist/code-generation/generators.d.ts +10 -0
- package/dist/code-generation/generators.js.map +1 -1
- package/dist/code-generation/index.d.ts +8 -0
- package/dist/code-generation/index.js +2 -1
- package/dist/code-generation/integration-implementation/index.d.ts +3 -0
- package/dist/code-generation/integration-implementation/index.js.map +1 -1
- package/dist/code-generation/integration-implementation/integration-implementation.d.ts +7 -0
- package/dist/code-generation/integration-implementation/integration-implementation.js.map +1 -1
- package/dist/code-generation/integration-implementation/integration-secret.d.ts +8 -0
- package/dist/code-generation/integration-implementation/integration-secret.js.map +1 -1
- package/dist/code-generation/integration-implementation/integration-typings/actions-module.d.ts +21 -0
- package/dist/code-generation/integration-implementation/integration-typings/actions-module.js.map +1 -1
- package/dist/code-generation/integration-implementation/integration-typings/channels-module.d.ts +5 -0
- package/dist/code-generation/integration-implementation/integration-typings/channels-module.js.map +1 -1
- package/dist/code-generation/integration-implementation/integration-typings/configuration-module.d.ts +7 -0
- package/dist/code-generation/integration-implementation/integration-typings/configurations-module.d.ts +10 -0
- package/dist/code-generation/integration-implementation/integration-typings/configurations-module.js.map +1 -1
- package/dist/code-generation/integration-implementation/integration-typings/entities-module.d.ts +10 -0
- package/dist/code-generation/integration-implementation/integration-typings/entities-module.js.map +1 -1
- package/dist/code-generation/integration-implementation/integration-typings/events-module.d.ts +10 -0
- package/dist/code-generation/integration-implementation/integration-typings/events-module.js.map +1 -1
- package/dist/code-generation/integration-implementation/integration-typings/index.d.ts +8 -0
- package/dist/code-generation/integration-implementation/integration-typings/index.js.map +1 -1
- package/dist/code-generation/integration-implementation/integration-typings/states-module.d.ts +17 -0
- package/dist/code-generation/integration-implementation/integration-typings/states-module.js.map +1 -1
- package/dist/code-generation/integration-package/index.d.ts +2 -0
- package/dist/code-generation/integration-package/index.js.map +1 -1
- package/dist/code-generation/integration-package/integration-package-definition/actions-module.d.ts +21 -0
- package/dist/code-generation/integration-package/integration-package-definition/actions-module.js.map +1 -1
- package/dist/code-generation/integration-package/integration-package-definition/channels-module.d.ts +5 -0
- package/dist/code-generation/integration-package/integration-package-definition/channels-module.js.map +1 -1
- package/dist/code-generation/integration-package/integration-package-definition/configuration-module.d.ts +7 -0
- package/dist/code-generation/integration-package/integration-package-definition/configurations-module.d.ts +10 -0
- package/dist/code-generation/integration-package/integration-package-definition/configurations-module.js.map +1 -1
- package/dist/code-generation/integration-package/integration-package-definition/entities-module.d.ts +10 -0
- package/dist/code-generation/integration-package/integration-package-definition/entities-module.js.map +1 -1
- package/dist/code-generation/integration-package/integration-package-definition/events-module.d.ts +10 -0
- package/dist/code-generation/integration-package/integration-package-definition/events-module.js.map +1 -1
- package/dist/code-generation/integration-package/integration-package-definition/index.d.ts +8 -0
- package/dist/code-generation/integration-package/integration-package-definition/index.js.map +1 -1
- package/dist/code-generation/integration-package/integration-package-definition/interfaces-module.d.ts +10 -0
- package/dist/code-generation/integration-package/integration-package-definition/interfaces-module.js.map +1 -1
- package/dist/code-generation/integration-package/integration-package-definition/states-module.d.ts +10 -0
- package/dist/code-generation/integration-package/integration-package-definition/states-module.js.map +1 -1
- package/dist/code-generation/integration-package/integration-package-definition/typings.d.ts +10 -0
- package/dist/code-generation/interface-implementation/index.d.ts +4 -0
- package/dist/code-generation/interface-implementation/integration-typings/actions-module.d.ts +21 -0
- package/dist/code-generation/interface-implementation/integration-typings/actions-module.js.map +1 -1
- package/dist/code-generation/interface-implementation/integration-typings/channels-module.d.ts +5 -0
- package/dist/code-generation/interface-implementation/integration-typings/channels-module.js.map +1 -1
- package/dist/code-generation/interface-implementation/integration-typings/entities-module.d.ts +10 -0
- package/dist/code-generation/interface-implementation/integration-typings/entities-module.js.map +1 -1
- package/dist/code-generation/interface-implementation/integration-typings/events-module.d.ts +10 -0
- package/dist/code-generation/interface-implementation/integration-typings/events-module.js.map +1 -1
- package/dist/code-generation/interface-implementation/integration-typings/index.d.ts +8 -0
- package/dist/code-generation/interface-implementation/integration-typings/index.js.map +1 -1
- package/dist/code-generation/interface-package/index.d.ts +2 -0
- package/dist/code-generation/interface-package/index.js.map +1 -1
- package/dist/code-generation/interface-package/interface-package-definition/actions-module.d.ts +21 -0
- package/dist/code-generation/interface-package/interface-package-definition/actions-module.js.map +1 -1
- package/dist/code-generation/interface-package/interface-package-definition/channels-module.d.ts +5 -0
- package/dist/code-generation/interface-package/interface-package-definition/channels-module.js.map +1 -1
- package/dist/code-generation/interface-package/interface-package-definition/entities-module.d.ts +10 -0
- package/dist/code-generation/interface-package/interface-package-definition/entities-module.js.map +1 -1
- package/dist/code-generation/interface-package/interface-package-definition/events-module.d.ts +10 -0
- package/dist/code-generation/interface-package/interface-package-definition/events-module.js.map +1 -1
- package/dist/code-generation/interface-package/interface-package-definition/index.d.ts +8 -0
- package/dist/code-generation/interface-package/interface-package-definition/index.js.map +1 -1
- package/dist/code-generation/interface-package/interface-package-definition/typings.d.ts +7 -0
- package/dist/code-generation/module.d.ts +49 -0
- package/dist/code-generation/module.js +2 -2
- package/dist/code-generation/module.js.map +2 -2
- package/dist/code-generation/plugin-implementation/index.d.ts +3 -0
- package/dist/code-generation/plugin-implementation/index.js.map +1 -1
- package/dist/code-generation/plugin-implementation/plugin-implementation.d.ts +7 -0
- package/dist/code-generation/plugin-implementation/plugin-implementation.js.map +1 -1
- package/dist/code-generation/plugin-implementation/plugin-typings/actions-module.d.ts +21 -0
- package/dist/code-generation/plugin-implementation/plugin-typings/actions-module.js.map +1 -1
- package/dist/code-generation/plugin-implementation/plugin-typings/configuration-module.d.ts +7 -0
- package/dist/code-generation/plugin-implementation/plugin-typings/events-module.d.ts +10 -0
- package/dist/code-generation/plugin-implementation/plugin-typings/events-module.js.map +1 -1
- package/dist/code-generation/plugin-implementation/plugin-typings/index.d.ts +8 -0
- package/dist/code-generation/plugin-implementation/plugin-typings/index.js.map +1 -1
- package/dist/code-generation/plugin-implementation/plugin-typings/states-module.d.ts +17 -0
- package/dist/code-generation/plugin-implementation/plugin-typings/states-module.js.map +1 -1
- package/dist/code-generation/plugin-implementation/plugin-typings/tables-module.d.ts +10 -0
- package/dist/code-generation/plugin-implementation/plugin-typings/tables-module.js.map +1 -1
- package/dist/code-generation/plugin-implementation/plugin-typings/workflows-module.d.ts +27 -0
- package/dist/code-generation/plugin-implementation/plugin-typings/workflows-module.js.map +1 -1
- package/dist/code-generation/plugin-package/index.d.ts +2 -0
- package/dist/code-generation/plugin-package/index.js.map +1 -1
- package/dist/code-generation/plugin-package/plugin-package-definition/actions-module.d.ts +21 -0
- package/dist/code-generation/plugin-package/plugin-package-definition/actions-module.js.map +1 -1
- package/dist/code-generation/plugin-package/plugin-package-definition/configuration-module.d.ts +7 -0
- package/dist/code-generation/plugin-package/plugin-package-definition/events-module.d.ts +10 -0
- package/dist/code-generation/plugin-package/plugin-package-definition/events-module.js.map +1 -1
- package/dist/code-generation/plugin-package/plugin-package-definition/index.d.ts +8 -0
- package/dist/code-generation/plugin-package/plugin-package-definition/index.js.map +1 -1
- package/dist/code-generation/plugin-package/plugin-package-definition/interfaces-module.d.ts +7 -0
- package/dist/code-generation/plugin-package/plugin-package-definition/interfaces-module.js.map +1 -1
- package/dist/code-generation/plugin-package/plugin-package-definition/recurring-events-module.d.ts +5 -0
- package/dist/code-generation/plugin-package/plugin-package-definition/recurring-events-module.js.map +1 -1
- package/dist/code-generation/plugin-package/plugin-package-definition/states-module.d.ts +10 -0
- package/dist/code-generation/plugin-package/plugin-package-definition/states-module.js.map +1 -1
- package/dist/code-generation/plugin-package/plugin-package-definition/typings.d.ts +7 -0
- package/dist/code-generation/strings.d.ts +4 -0
- package/dist/code-generation/strings.js.map +1 -1
- package/dist/code-generation/typings.d.ts +162 -0
- package/dist/code-generation/typings.test.d.ts +1 -0
- package/dist/command-definitions.d.ts +1480 -0
- package/dist/command-definitions.js +0 -2
- package/dist/command-implementations/add-command.d.ts +15 -0
- package/dist/command-implementations/add-command.js.map +1 -1
- package/dist/command-implementations/base-command.d.ts +13 -0
- package/dist/command-implementations/base-command.js.map +1 -1
- package/dist/command-implementations/bot-commands.d.ts +20 -0
- package/dist/command-implementations/bot-commands.js.map +1 -1
- package/dist/command-implementations/build-command.d.ts +9 -0
- package/dist/command-implementations/build-command.js +4 -4
- package/dist/command-implementations/build-command.js.map +2 -2
- package/dist/command-implementations/bundle-command.d.ts +10 -0
- package/dist/command-implementations/bundle-command.js +8 -7
- package/dist/command-implementations/bundle-command.js.map +2 -2
- package/dist/command-implementations/chat-command.d.ts +13 -0
- package/dist/command-implementations/chat-command.js.map +1 -1
- package/dist/command-implementations/deploy-command.d.ts +18 -0
- package/dist/command-implementations/deploy-command.js +1 -2
- package/dist/command-implementations/deploy-command.js.map +1 -1
- package/dist/command-implementations/dev-command.d.ts +21 -0
- package/dist/command-implementations/dev-command.js +6 -1
- package/dist/command-implementations/dev-command.js.map +2 -2
- package/dist/command-implementations/gen-command.d.ts +11 -0
- package/dist/command-implementations/gen-command.js.map +1 -1
- package/dist/command-implementations/global-command.d.ts +57 -0
- package/dist/command-implementations/global-command.js.map +1 -1
- package/dist/command-implementations/index.d.ts +1534 -0
- package/dist/command-implementations/index.js +0 -2
- package/dist/command-implementations/init-command.d.ts +17 -0
- package/dist/command-implementations/init-command.js.map +1 -1
- package/dist/command-implementations/integration-commands.d.ts +15 -0
- package/dist/command-implementations/integration-commands.js.map +1 -1
- package/dist/command-implementations/interface-commands.d.ts +14 -0
- package/dist/command-implementations/interface-commands.js.map +1 -1
- package/dist/command-implementations/lint-command.d.ts +15 -0
- package/dist/command-implementations/login-command.d.ts +6 -0
- package/dist/command-implementations/login-command.js +1 -2
- package/dist/command-implementations/login-command.js.map +1 -1
- package/dist/command-implementations/logout-command.d.ts +6 -0
- package/dist/command-implementations/plugin-commands.d.ts +14 -0
- package/dist/command-implementations/plugin-commands.js.map +1 -1
- package/dist/command-implementations/profile-commands.d.ts +14 -0
- package/dist/command-implementations/profile-commands.js +1 -2
- package/dist/command-implementations/profile-commands.js.map +1 -1
- package/dist/command-implementations/project-command.d.ts +67 -0
- package/dist/command-implementations/project-command.js.map +1 -1
- package/dist/command-implementations/read-command.d.ts +10 -0
- package/dist/command-implementations/serve-command.d.ts +6 -0
- package/dist/command-implementations/serve-command.js.map +1 -1
- package/dist/command-tree.d.ts +39 -0
- package/dist/config.d.ts +1441 -0
- package/dist/consts.d.ts +41 -0
- package/dist/errors.d.ts +56 -0
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +1524 -0
- package/dist/index.js +50 -25
- package/dist/index.js.map +3 -3
- package/dist/init.d.ts +1 -0
- package/dist/linter/base-linter.d.ts +21 -0
- package/dist/linter/base-linter.js.map +1 -1
- package/dist/linter/base-linter.test.d.ts +1 -0
- package/dist/linter/base-linter.test.js +4 -4
- package/dist/linter/base-linter.test.js.map +1 -1
- package/dist/linter/bot-linter.d.ts +5 -0
- package/dist/linter/integration-linter.d.ts +7 -0
- package/dist/linter/interface-linter.d.ts +5 -0
- package/dist/linter/ruleset-tests/bot.ruleset.test.d.ts +1 -0
- package/dist/linter/ruleset-tests/common.d.ts +9 -0
- package/dist/linter/ruleset-tests/integration.ruleset.test.d.ts +1 -0
- package/dist/linter/ruleset-tests/interface.ruleset.test.d.ts +1 -0
- package/dist/linter/rulesets/bot.ruleset.d.ts +165 -0
- package/dist/linter/rulesets/bot.ruleset.js.map +1 -1
- package/dist/linter/rulesets/integration.ruleset.d.ts +390 -0
- package/dist/linter/rulesets/integration.ruleset.js.map +1 -1
- package/dist/linter/rulesets/interface.ruleset.d.ts +141 -0
- package/dist/linter/rulesets/interface.ruleset.js.map +1 -1
- package/dist/linter/spectral-functions.d.ts +11 -0
- package/dist/logger/base-logger.d.ts +43 -0
- package/dist/logger/base-logger.js.map +1 -1
- package/dist/logger/index.d.ts +22 -0
- package/dist/logger/index.js.map +1 -1
- package/dist/logger/logger.test.d.ts +1 -0
- package/dist/package-ref.d.ts +22 -0
- package/dist/package-ref.js.map +1 -1
- package/dist/package-ref.test.d.ts +1 -0
- package/dist/package-ref.test.js.map +1 -1
- package/dist/project-templates.d.ts +42 -0
- package/dist/register-yargs.d.ts +4 -0
- package/dist/register-yargs.js.map +1 -1
- package/dist/root.d.ts +7 -0
- package/dist/sdk/index.d.ts +2 -0
- package/dist/sdk/index.js +5 -0
- package/dist/sdk/validate-bot.d.ts +2 -0
- package/dist/sdk/validate-bot.js.map +1 -1
- package/dist/sdk/validate-bot.test.d.ts +1 -0
- package/dist/sdk/validate-integration.d.ts +2 -0
- package/dist/sdk/validate-integration.js.map +1 -1
- package/dist/tables/index.d.ts +1 -0
- package/dist/tables/schemas.d.ts +1259 -0
- package/dist/tables/tables-publisher.d.ts +22 -0
- package/dist/tables/tables-publisher.js.map +1 -1
- package/dist/typings.d.ts +27 -0
- package/dist/utils/attribute-utils.d.ts +10 -0
- package/dist/utils/cache-utils.d.ts +14 -0
- package/dist/utils/case-utils.d.ts +14 -0
- package/dist/utils/case-utils.test.d.ts +1 -0
- package/dist/utils/case-utils.test.js.map +1 -1
- package/dist/utils/concurrency-utils.d.ts +1 -0
- package/dist/utils/concurrency-utils.test.d.ts +1 -0
- package/dist/utils/esbuild-utils.d.ts +29 -0
- package/dist/utils/esbuild-utils.js +32 -1
- package/dist/utils/esbuild-utils.js.map +3 -3
- package/dist/utils/event-emitter.d.ts +7 -0
- package/dist/utils/file-watcher.d.ts +17 -0
- package/dist/utils/file-watcher.js.map +1 -1
- package/dist/utils/guard-utils.d.ts +4 -0
- package/dist/utils/id-utils.d.ts +2 -0
- package/dist/utils/index.d.ts +22 -0
- package/dist/utils/object-utils.d.ts +1 -0
- package/dist/utils/path-utils.d.ts +28 -0
- package/dist/utils/path-utils.test.d.ts +1 -0
- package/dist/utils/pkgjson-utils.d.ts +17 -0
- package/dist/utils/promise-utils.d.ts +2 -0
- package/dist/utils/promise-utils.test.d.ts +1 -0
- package/dist/utils/prompt-utils.d.ts +33 -0
- package/dist/utils/prompt-utils.js.map +1 -1
- package/dist/utils/record-utils.d.ts +8 -0
- package/dist/utils/record-utils.test.d.ts +1 -0
- package/dist/utils/require-utils.d.ts +2 -0
- package/dist/utils/require-utils.js.map +1 -1
- package/dist/utils/require-utils.test.d.ts +1 -0
- package/dist/utils/require-utils.test.js.map +1 -1
- package/dist/utils/schema-utils.d.ts +13 -0
- package/dist/utils/schema-utils.test.d.ts +1 -0
- package/dist/utils/semver-utils.d.ts +8 -0
- package/dist/utils/string-utils.d.ts +2 -0
- package/dist/utils/template-utils.d.ts +1 -0
- package/dist/utils/tunnel-utils.d.ts +49 -0
- package/dist/utils/tunnel-utils.js.map +1 -1
- package/dist/utils/type-utils.d.ts +19 -0
- package/dist/utils/url-utils.d.ts +19 -0
- package/dist/utils/url-utils.js.map +1 -1
- package/dist/worker/child-entrypoint.d.ts +1 -0
- package/dist/worker/child-entrypoint.js.map +1 -1
- package/dist/worker/child-wrapper.d.ts +18 -0
- package/dist/worker/child-wrapper.js.map +1 -1
- package/dist/worker/config.d.ts +28 -0
- package/dist/worker/index.d.ts +2 -0
- package/dist/worker/is-child.d.ts +14 -0
- package/dist/worker/is-child.js.map +1 -1
- package/dist/worker/worker-state.d.ts +30 -0
- package/dist/worker/worker.d.ts +20 -0
- package/package.json +7 -5
- package/tsconfig.build.json +14 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export type LoggerOptions = {
|
|
2
|
+
verbose: boolean;
|
|
3
|
+
json: boolean;
|
|
4
|
+
outStream: NodeJS.WriteStream;
|
|
5
|
+
errStream: NodeJS.WriteStream;
|
|
6
|
+
};
|
|
7
|
+
type Symbol = '✓' | '⚠' | '×' | '●' | ' ' | '○';
|
|
8
|
+
type Color = 'blue' | 'green' | 'yellow' | 'red' | 'pink' | 'white' | 'orange' | 'purple';
|
|
9
|
+
type LogPrefix = {
|
|
10
|
+
symbol: Symbol;
|
|
11
|
+
fg?: Color;
|
|
12
|
+
bg?: Color;
|
|
13
|
+
indent?: number;
|
|
14
|
+
} | string;
|
|
15
|
+
type LogProps = {
|
|
16
|
+
prefix: LogPrefix;
|
|
17
|
+
stderr?: boolean;
|
|
18
|
+
};
|
|
19
|
+
type PrintProps = {
|
|
20
|
+
metadata: any;
|
|
21
|
+
prefix: string;
|
|
22
|
+
stderr?: boolean;
|
|
23
|
+
};
|
|
24
|
+
export type StreamType = 'out' | 'err';
|
|
25
|
+
export declare abstract class BaseLogger {
|
|
26
|
+
protected opts: LoggerOptions;
|
|
27
|
+
constructor(opts?: Partial<LoggerOptions>);
|
|
28
|
+
log(message: string, props?: Partial<LogProps>): void;
|
|
29
|
+
json(data: any, opts?: Partial<{
|
|
30
|
+
depth: number;
|
|
31
|
+
}>): void;
|
|
32
|
+
debug(message: string): void;
|
|
33
|
+
started(message: string): void;
|
|
34
|
+
success(message: string): void;
|
|
35
|
+
warn(message: string): void;
|
|
36
|
+
error(message: string): void;
|
|
37
|
+
box(message: string): void;
|
|
38
|
+
protected abstract print(message: string, props?: Partial<PrintProps>): void;
|
|
39
|
+
private _resolvePrefix;
|
|
40
|
+
private _renderSymbol;
|
|
41
|
+
protected render(message: string, streamType?: StreamType): void;
|
|
42
|
+
}
|
|
43
|
+
export {};
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/logger/base-logger.ts"],
|
|
4
4
|
"sourcesContent": ["import boxen from 'boxen'\nimport chalk from 'chalk'\nimport _ from 'lodash'\nimport util from 'util'\nimport * as utils from '../utils'\n\nexport type LoggerOptions = {\n verbose: boolean\n json: boolean // prevents loggin anything else than json\n outStream: NodeJS.WriteStream\n errStream: NodeJS.WriteStream\n}\n\nconst STDOUT_CHUNK_SIZE = 100\nconst DEFAULT_OPTIONS: LoggerOptions = {\n verbose: false,\n json: false,\n outStream: process.stdout,\n errStream: process.stderr,\n}\n\ntype ChalkColor = (str: string) => string\nconst NO_COLOR: ChalkColor = (str: string) => str\n\nconst PINK = [255, 100, 255] as const\nconst ORANGE = [255, 165, 0] as const\nconst PURPLE = [128, 0, 128] as const\n\nconst BG_COLORS: Record<Color, ChalkColor> = {\n blue: chalk.bgBlueBright,\n green: chalk.bgGreenBright,\n yellow: chalk.bgYellowBright,\n red: chalk.bgRedBright,\n white: chalk.bgWhite,\n pink: (str: string) => chalk.bgRgb(...PINK)(str),\n orange: (str: string) => chalk.bgRgb(...ORANGE)(str),\n purple: (str: string) => chalk.bgRgb(...PURPLE)(str),\n}\n\nconst FG_COLORS: Record<Color, ChalkColor> = {\n blue: chalk.blueBright,\n green: chalk.green,\n yellow: chalk.yellowBright,\n red: chalk.red,\n white: chalk.white,\n pink: (str: string) => chalk.rgb(...PINK)(str),\n orange: (str: string) => chalk.rgb(...ORANGE)(str),\n purple: (str: string) => chalk.rgb(...PURPLE)(str),\n}\n\ntype Symbol = '\u2713' | '\u26A0' | '\u00D7' | '\u25CF' | ' ' | '\u25CB'\ntype Color = 'blue' | 'green' | 'yellow' | 'red' | 'pink' | 'white' | 'orange' | 'purple'\ntype LogPrefix = { symbol: Symbol; fg?: Color; bg?: Color; indent?: number } | string\ntype SymbolRenderer<T extends Symbol> = { default: T; windows?: string; mac?: string }\n\ntype LogProps = {\n prefix: LogPrefix\n stderr?: boolean\n}\n\ntype PrintProps = {\n metadata: any\n prefix: string\n stderr?: boolean\n}\n\nconst checkmark: SymbolRenderer<'\u2713'> = {\n default: '\u2713',\n windows: '\u221A',\n mac: '\u2714',\n}\n\nconst cross: SymbolRenderer<'\u00D7'> = {\n default: '\u00D7',\n mac: '\u2716',\n}\n\nconst danger: SymbolRenderer<'\u26A0'> = { default: '\u26A0' }\nconst circle: SymbolRenderer<'\u25CB'> = { default: '\u25CB' }\nconst disc: SymbolRenderer<'\u25CF'> = { default: '\u25CF' }\nconst space: SymbolRenderer<' '> = { default: ' ' }\n\nconst renderers: Record<Symbol, SymbolRenderer<Symbol>> = {\n '\u2713': checkmark,\n '\u00D7': cross,\n '\u26A0': danger,\n '\u25CB': circle,\n '\u25CF': disc,\n ' ': space,\n}\n\nconst BOX_OPTIONS: boxen.Options = {\n padding: 1,\n margin: 1,\n borderStyle: 'round',\n borderColor: 'yellow',\n}\n\nexport type StreamType = 'out' | 'err'\n\nexport abstract class BaseLogger {\n protected opts: LoggerOptions\n\n public constructor(opts: Partial<LoggerOptions> = {}) {\n this.opts = { ...DEFAULT_OPTIONS, ...opts }\n }\n\n public log(message: string, props: Partial<LogProps> = {}): void {\n if (this.opts.json && !props.stderr) {\n return\n }\n\n const prefix = this._resolvePrefix(props.prefix)\n this.print(message, { ...props, prefix })\n }\n\n public json(data: any, opts: Partial<{ depth: number }> = { depth: Infinity }): void {\n if (this.opts.json) {\n this.print(JSON.stringify(data, undefined, 2))\n return\n }\n\n const { depth } = opts\n const msg = util.inspect(data, { colors: true, depth })\n this.log(msg)\n }\n\n public debug(message: string): void {\n if (!this.opts.verbose) {\n return\n }\n this.log(chalk.grey(message), { prefix: { symbol: '\u25CF', fg: 'blue' } })\n }\n\n public started(message: string): void {\n this.log(message, { prefix: { symbol: '\u25CB', fg: 'purple' } })\n }\n\n public success(message: string): void {\n this.log(message, { prefix: { symbol: '\u2713', fg: 'green' } })\n }\n\n public warn(message: string): void {\n this.log(message, { prefix: { symbol: '\u26A0', fg: 'yellow' } })\n }\n\n public error(message: string): void {\n this.log(message, { prefix: { symbol: '\u00D7', fg: 'red' }, stderr: true })\n }\n\n public box(message: string): void {\n const box = boxen(message, BOX_OPTIONS)\n this.log(box)\n }\n\n protected abstract print(message: string, props?: Partial<PrintProps>): void\n\n private _resolvePrefix(prefix: LogPrefix | undefined): string | undefined {\n if (!prefix) {\n return\n }\n\n if (_.isString(prefix)) {\n return prefix\n }\n\n const { symbol, fg, bg, indent } = prefix\n const renderedSymbol = this._renderSymbol(symbol)\n const fgcolor = fg ? FG_COLORS[fg] : NO_COLOR\n const bgcolor = bg ? BG_COLORS[bg] : NO_COLOR\n const indentStr = indent ? ' '.repeat(indent) : ''\n const symbolStr = fgcolor(bgcolor(renderedSymbol))\n return `${indentStr}${symbolStr}`\n }\n\n private _renderSymbol(symbol: Symbol): string {\n const renderer = renderers[symbol]\n if (process.platform === 'win32') {\n return renderer.windows || renderer.default\n } else if (process.platform === 'darwin') {\n return renderer.mac || renderer.default\n } else {\n return renderer.default\n }\n }\n\n protected render(message: string, streamType: StreamType = 'out'): void {\n // chunking the message ensures that the process won't exit before the message is fully written\n const stream = streamType === 'err' ? this.opts.errStream : this.opts.outStream\n for (const chunk of utils.string.chunkString(message, STDOUT_CHUNK_SIZE)) {\n stream.write(chunk)\n }\n }\n}\n"],
|
|
5
|
-
"mappings": "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
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["chalk", "util", "boxen", "_"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { BaseLogger } from './base-logger';
|
|
2
|
+
export declare class Logger extends BaseLogger {
|
|
3
|
+
private static _previousLine;
|
|
4
|
+
protected print(message: string, props?: Partial<{
|
|
5
|
+
prefix: string;
|
|
6
|
+
stderr?: boolean;
|
|
7
|
+
}>): void;
|
|
8
|
+
line(): _SingleLineLogger;
|
|
9
|
+
cleanup(): void;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Prints to a single line unless it is committed.
|
|
13
|
+
* When committed or if the stream is not TTY, it prints normally using new lines.
|
|
14
|
+
*/
|
|
15
|
+
declare class _SingleLineLogger extends BaseLogger {
|
|
16
|
+
private _commited;
|
|
17
|
+
commit(): void;
|
|
18
|
+
protected print(message: string, props?: Partial<{
|
|
19
|
+
prefix: string;
|
|
20
|
+
}>): void;
|
|
21
|
+
}
|
|
22
|
+
export {};
|
package/dist/logger/index.js.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/logger/index.ts"],
|
|
4
4
|
"sourcesContent": ["import { BaseLogger, StreamType } from './base-logger'\n\nexport class Logger extends BaseLogger {\n private static _previousLine: _SingleLineLogger | undefined // this is global to the whole process\n\n protected print(message: string, props: Partial<{ prefix: string; stderr?: boolean }> = {}): void {\n this.cleanup()\n const stream: StreamType = props.stderr ? 'err' : 'out'\n const { prefix } = props\n if (prefix) {\n this.render(`${prefix} ${message}\\n`, stream)\n return\n }\n this.render(`${message}\\n`, stream)\n }\n\n public line(): _SingleLineLogger {\n this.cleanup()\n const currentLine = new _SingleLineLogger({ ...this.opts })\n Logger._previousLine = currentLine\n return currentLine\n }\n\n public cleanup(): void {\n if (Logger._previousLine) {\n Logger._previousLine.commit()\n Logger._previousLine = undefined\n }\n }\n}\n\n/**\n * Prints to a single line unless it is committed.\n * When committed or if the stream is not TTY, it prints normally using new lines.\n */\nclass _SingleLineLogger extends BaseLogger {\n private _commited = false\n\n public commit(): void {\n if (this._commited) {\n return\n }\n this._commited = true\n this.print('')\n }\n\n protected print(message: string, props: Partial<{ prefix: string }> = {}): void {\n let suffix: string\n if (!this._commited && this.opts.outStream.isTTY) {\n this.opts.outStream.clearLine(0)\n this.opts.outStream.cursorTo(0)\n suffix = ''\n } else {\n suffix = '\\n'\n }\n\n const { prefix } = props\n if (prefix) {\n this.render(`${prefix} ${message}${suffix}`)\n return\n }\n this.render(message + suffix)\n }\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAAuC;AAEhC,MAAM,eAAe,8BAAW;AAAA,EACrC,OAAe;AAAA;AAAA,EAEL,MAAM,SAAiB,QAAuD,CAAC,GAAS;AAChG,SAAK,QAAQ;AACb,UAAM,SAAqB,MAAM,SAAS,QAAQ;AAClD,UAAM,EAAE,OAAO,IAAI;AACnB,QAAI,QAAQ;AACV,WAAK,OAAO,GAAG,
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAAuC;AAEhC,MAAM,eAAe,8BAAW;AAAA,EACrC,OAAe;AAAA;AAAA,EAEL,MAAM,SAAiB,QAAuD,CAAC,GAAS;AAChG,SAAK,QAAQ;AACb,UAAM,SAAqB,MAAM,SAAS,QAAQ;AAClD,UAAM,EAAE,OAAO,IAAI;AACnB,QAAI,QAAQ;AACV,WAAK,OAAO,GAAG,MAAM,IAAI,OAAO;AAAA,GAAM,MAAM;AAC5C;AAAA,IACF;AACA,SAAK,OAAO,GAAG,OAAO;AAAA,GAAM,MAAM;AAAA,EACpC;AAAA,EAEO,OAA0B;AAC/B,SAAK,QAAQ;AACb,UAAM,cAAc,IAAI,kBAAkB,EAAE,GAAG,KAAK,KAAK,CAAC;AAC1D,WAAO,gBAAgB;AACvB,WAAO;AAAA,EACT;AAAA,EAEO,UAAgB;AACrB,QAAI,OAAO,eAAe;AACxB,aAAO,cAAc,OAAO;AAC5B,aAAO,gBAAgB;AAAA,IACzB;AAAA,EACF;AACF;AAMA,MAAM,0BAA0B,8BAAW;AAAA,EACjC,YAAY;AAAA,EAEb,SAAe;AACpB,QAAI,KAAK,WAAW;AAClB;AAAA,IACF;AACA,SAAK,YAAY;AACjB,SAAK,MAAM,EAAE;AAAA,EACf;AAAA,EAEU,MAAM,SAAiB,QAAqC,CAAC,GAAS;AAC9E,QAAI;AACJ,QAAI,CAAC,KAAK,aAAa,KAAK,KAAK,UAAU,OAAO;AAChD,WAAK,KAAK,UAAU,UAAU,CAAC;AAC/B,WAAK,KAAK,UAAU,SAAS,CAAC;AAC9B,eAAS;AAAA,IACX,OAAO;AACL,eAAS;AAAA,IACX;AAEA,UAAM,EAAE,OAAO,IAAI;AACnB,QAAI,QAAQ;AACV,WAAK,OAAO,GAAG,MAAM,IAAI,OAAO,GAAG,MAAM,EAAE;AAC3C;AAAA,IACF;AACA,SAAK,OAAO,UAAU,MAAM;AAAA,EAC9B;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as sdk from '@botpress/sdk';
|
|
2
|
+
type PackageType = sdk.Package['type'];
|
|
3
|
+
export type UUIDPackageRef = {
|
|
4
|
+
type: 'id';
|
|
5
|
+
id: string;
|
|
6
|
+
};
|
|
7
|
+
export type NamePackageRef = {
|
|
8
|
+
type: 'name';
|
|
9
|
+
pkg?: PackageType;
|
|
10
|
+
name: string;
|
|
11
|
+
version: string;
|
|
12
|
+
};
|
|
13
|
+
export type LocalPackageRef = {
|
|
14
|
+
type: 'path';
|
|
15
|
+
path: string;
|
|
16
|
+
};
|
|
17
|
+
export type ApiPackageRef = UUIDPackageRef | NamePackageRef;
|
|
18
|
+
export type PackageRef = ApiPackageRef | LocalPackageRef;
|
|
19
|
+
export declare const LATEST_TAG = "latest";
|
|
20
|
+
export declare const formatPackageRef: (ref: PackageRef) => string;
|
|
21
|
+
export declare const parsePackageRef: (ref: string) => PackageRef | undefined;
|
|
22
|
+
export {};
|
package/dist/package-ref.js.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/package-ref.ts"],
|
|
4
4
|
"sourcesContent": ["import * as sdk from '@botpress/sdk'\nimport semver from 'semver'\nimport * as utils from './utils'\n\ntype PackageType = sdk.Package['type']\nconst packageTypes: Record<PackageType, null> = {\n integration: null,\n interface: null,\n plugin: null,\n}\nconst isPackageType = (type: string): type is PackageType => type in packageTypes\n\nexport type UUIDPackageRef = {\n type: 'id'\n id: string\n}\n\nexport type NamePackageRef = {\n type: 'name'\n pkg?: PackageType\n name: string\n version: string\n}\n\nexport type LocalPackageRef = {\n type: 'path'\n path: string\n}\n\nexport type ApiPackageRef = UUIDPackageRef | NamePackageRef\nexport type PackageRef = ApiPackageRef | LocalPackageRef\n\nexport const LATEST_TAG = 'latest'\n\nexport const formatPackageRef = (ref: PackageRef): string => {\n if (ref.type === 'path') {\n return ref.path\n }\n if (ref.type === 'id') {\n return ref.id\n }\n if (ref.pkg) {\n return `${ref.pkg}:${ref.name}@${ref.version}`\n }\n return `${ref.name}@${ref.version}`\n}\n\nexport const parsePackageRef = (ref: string): PackageRef | undefined => {\n if (!ref) {\n return\n }\n\n if (utils.id.isValidID(ref)) {\n return { type: 'id', id: ref }\n }\n\n if (utils.path.isPath(ref)) {\n return { type: 'path', path: ref }\n }\n\n return parseNamePackageRef(ref)\n}\n\nconst parseNamePackageRef = (ref: string): NamePackageRef | undefined => {\n if (!ref) {\n return\n }\n\n if (ref.includes(':')) {\n const [pkg, nameVersion] = ref.split(':')\n if (!pkg || !nameVersion) {\n return\n }\n if (!isPackageType(pkg)) {\n return\n }\n const parsed = parseNamePackageRef(nameVersion)\n if (!parsed) {\n return\n }\n return { ...parsed, pkg }\n }\n\n if (!ref.includes('@')) {\n return { type: 'name', name: ref, version: LATEST_TAG }\n }\n\n const [name, version] = ref.split('@')\n if (!name || !version) {\n return\n }\n\n const cleanedVersion = version === LATEST_TAG ? version : semver.validRange(version)\n if (!cleanedVersion) {\n return\n }\n\n return { type: 'name', name, version: cleanedVersion }\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAAmB;AACnB,YAAuB;AAGvB,MAAM,eAA0C;AAAA,EAC9C,aAAa;AAAA,EACb,WAAW;AAAA,EACX,QAAQ;AACV;AACA,MAAM,gBAAgB,CAAC,SAAsC,QAAQ;AAsB9D,MAAM,aAAa;AAEnB,MAAM,mBAAmB,CAAC,QAA4B;AAC3D,MAAI,IAAI,SAAS,QAAQ;AACvB,WAAO,IAAI;AAAA,EACb;AACA,MAAI,IAAI,SAAS,MAAM;AACrB,WAAO,IAAI;AAAA,EACb;AACA,MAAI,IAAI,KAAK;AACX,WAAO,GAAG,IAAI,
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAAmB;AACnB,YAAuB;AAGvB,MAAM,eAA0C;AAAA,EAC9C,aAAa;AAAA,EACb,WAAW;AAAA,EACX,QAAQ;AACV;AACA,MAAM,gBAAgB,CAAC,SAAsC,QAAQ;AAsB9D,MAAM,aAAa;AAEnB,MAAM,mBAAmB,CAAC,QAA4B;AAC3D,MAAI,IAAI,SAAS,QAAQ;AACvB,WAAO,IAAI;AAAA,EACb;AACA,MAAI,IAAI,SAAS,MAAM;AACrB,WAAO,IAAI;AAAA,EACb;AACA,MAAI,IAAI,KAAK;AACX,WAAO,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO;AAAA,EAC9C;AACA,SAAO,GAAG,IAAI,IAAI,IAAI,IAAI,OAAO;AACnC;AAEO,MAAM,kBAAkB,CAAC,QAAwC;AACtE,MAAI,CAAC,KAAK;AACR;AAAA,EACF;AAEA,MAAI,MAAM,GAAG,UAAU,GAAG,GAAG;AAC3B,WAAO,EAAE,MAAM,MAAM,IAAI,IAAI;AAAA,EAC/B;AAEA,MAAI,MAAM,KAAK,OAAO,GAAG,GAAG;AAC1B,WAAO,EAAE,MAAM,QAAQ,MAAM,IAAI;AAAA,EACnC;AAEA,SAAO,oBAAoB,GAAG;AAChC;AAEA,MAAM,sBAAsB,CAAC,QAA4C;AACvE,MAAI,CAAC,KAAK;AACR;AAAA,EACF;AAEA,MAAI,IAAI,SAAS,GAAG,GAAG;AACrB,UAAM,CAAC,KAAK,WAAW,IAAI,IAAI,MAAM,GAAG;AACxC,QAAI,CAAC,OAAO,CAAC,aAAa;AACxB;AAAA,IACF;AACA,QAAI,CAAC,cAAc,GAAG,GAAG;AACvB;AAAA,IACF;AACA,UAAM,SAAS,oBAAoB,WAAW;AAC9C,QAAI,CAAC,QAAQ;AACX;AAAA,IACF;AACA,WAAO,EAAE,GAAG,QAAQ,IAAI;AAAA,EAC1B;AAEA,MAAI,CAAC,IAAI,SAAS,GAAG,GAAG;AACtB,WAAO,EAAE,MAAM,QAAQ,MAAM,KAAK,SAAS,WAAW;AAAA,EACxD;AAEA,QAAM,CAAC,MAAM,OAAO,IAAI,IAAI,MAAM,GAAG;AACrC,MAAI,CAAC,QAAQ,CAAC,SAAS;AACrB;AAAA,EACF;AAEA,QAAM,iBAAiB,YAAY,aAAa,UAAU,cAAAA,QAAO,WAAW,OAAO;AACnF,MAAI,CAAC,gBAAgB;AACnB;AAAA,EACF;AAEA,SAAO,EAAE,MAAM,QAAQ,MAAM,SAAS,eAAe;AACvD;",
|
|
6
6
|
"names": ["semver"]
|
|
7
7
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/package-ref.test.ts"],
|
|
4
4
|
"sourcesContent": ["import { test, expect, describe } from 'vitest'\nimport { formatPackageRef, PackageRef, parsePackageRef } from './package-ref'\n\nconst path = '/my/path'\nconst prefixedUlid = 'intver_01HF58RDKE3M7K5RJ5XZ7GF6HE'\nconst uuid = 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11'\nconst name = 'myintegration'\n\ndescribe('parsePackageRef', () => {\n test('parse empty string should return undefined', () => {\n // arrange\n const ref = ''\n // act\n const result = parsePackageRef(ref)\n // assert\n expect(result).toBeUndefined()\n })\n\n test('parse with invalid version should return undefined', () => {\n // arrange\n const ref0 = `${name}@lol`\n const ref1 = `${name}@>>1`\n const ref2 = `${name}@1.0.b`\n // act\n const result0 = parsePackageRef(ref0)\n const result1 = parsePackageRef(ref1)\n const result2 = parsePackageRef(ref2)\n // assert\n expect(result0).toBeUndefined()\n expect(result1).toBeUndefined()\n expect(result2).toBeUndefined()\n })\n\n test('parse with an absolute path should return path', () => {\n // arrange\n const ref = path\n // act\n const result = parsePackageRef(ref)\n // assert\n const expected: PackageRef = { type: 'path', path: ref }\n expect(result).toEqual(expected)\n })\n\n test('parse with a prefixed ULID sets `id` type', () => {\n // arrange\n const ref = prefixedUlid\n // act\n const result = parsePackageRef(ref)\n // assert\n const expected: PackageRef = { type: 'id', id: ref }\n expect(result).toEqual(expected)\n })\n\n test('parse with a legacy UUID sets `id` type', () => {\n // arrange\n const ref = uuid\n // act\n const result = parsePackageRef(ref)\n // assert\n const expected: PackageRef = { type: 'id', id: ref }\n expect(result).toEqual(expected)\n })\n\n test('parse with a name and version should return name and version', () => {\n // arrange\n const version = '1.0.0'\n const ref = `${name}@${version}`\n // act\n const result = parsePackageRef(ref)\n // assert\n const expected: PackageRef = { type: 'name', name, version }\n expect(result).toEqual(expected)\n })\n\n test('parse with a name and latest should return name and latest', () => {\n // arrange\n const version = 'latest'\n const ref = `${name}@${version}`\n // act\n const result = parsePackageRef(ref)\n // assert\n const expected: PackageRef = { type: 'name', name, version }\n expect(result).toEqual(expected)\n })\n\n test('parse with only a name should return name and latest', () => {\n // arrange\n const ref = name\n // act\n const result = parsePackageRef(ref)\n // assert\n const expected: PackageRef = { type: 'name', name, version: 'latest' }\n expect(result).toEqual(expected)\n })\n\n test('parse with a package type and a name should return the pkg, name and latest', () => {\n // arrange\n const ref = `integration:${name}`\n // act\n const result = parsePackageRef(ref)\n // assert\n const expected: PackageRef = { type: 'name', name, version: 'latest', pkg: 'integration' }\n expect(result).toEqual(expected)\n })\n\n test('parse with a package type, a name and a version should return all', () => {\n // arrange\n const ref = `integration:${name}@1.0.0`\n // act\n const result = parsePackageRef(ref)\n // assert\n const expected: PackageRef = { type: 'name', name, version: '1.0.0', pkg: 'integration' }\n expect(result).toEqual(expected)\n })\n\n test('parse with a package type and a version should return undefined', () => {\n // arrange\n const ref = `plugin:@1.0.0`\n // act\n const result = parsePackageRef(ref)\n // assert\n expect(result).toBeUndefined()\n })\n\n test('parse with an invalid package type should return undefined', () => {\n // arrange\n const ref = `bot:${name}@1.0.0`\n // act\n const result = parsePackageRef(ref)\n // assert\n expect(result).toBeUndefined()\n })\n})\n\ndescribe('formatPackageRef', () => {\n test('format with a path should return path', () => {\n // arrange\n const ref: PackageRef = { type: 'path', path }\n // act\n const result = formatPackageRef(ref)\n // assert\n expect(result).toEqual(ref.path)\n })\n\n test('format with a prefixed ULID uses `id` type', () => {\n // arrange\n const ref: PackageRef = { type: 'id', id: prefixedUlid }\n // act\n const result = formatPackageRef(ref)\n // assert\n expect(result).toEqual(ref.id)\n })\n\n test('format with a legacy UUID uses `id` type', () => {\n // arrange\n const ref: PackageRef = { type: 'id', id: uuid }\n // act\n const result = formatPackageRef(ref)\n // assert\n expect(result).toEqual(ref.id)\n })\n\n test('format with a name and version should return name and version', () => {\n // arrange\n const version = '1.0.0'\n const ref: PackageRef = { type: 'name', name, version }\n // act\n const result = formatPackageRef(ref)\n // assert\n expect(result).toEqual(`${name}@${version}`)\n })\n})\n"],
|
|
5
|
-
"mappings": ";AAAA,oBAAuC;AACvC,yBAA8D;AAE9D,MAAM,OAAO;AACb,MAAM,eAAe;AACrB,MAAM,OAAO;AACb,MAAM,OAAO;AAAA,IAEb,wBAAS,mBAAmB,MAAM;AAChC,0BAAK,8CAA8C,MAAM;AAEvD,UAAM,MAAM;AAEZ,UAAM,aAAS,oCAAgB,GAAG;AAElC,8BAAO,MAAM,EAAE,cAAc;AAAA,EAC/B,CAAC;AAED,0BAAK,sDAAsD,MAAM;AAE/D,UAAM,OAAO,GAAG;
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import * as utils from './utils';
|
|
2
|
+
export declare namespace ProjectTemplates {
|
|
3
|
+
type Template = Readonly<{
|
|
4
|
+
fullName: string;
|
|
5
|
+
identifier: string;
|
|
6
|
+
defaultProjectName: string;
|
|
7
|
+
absolutePath: utils.path.AbsolutePath;
|
|
8
|
+
}>;
|
|
9
|
+
type TemplateArray = Readonly<[Template, ...Template[]]>;
|
|
10
|
+
type ProjectType = 'bot' | 'plugin' | 'integration';
|
|
11
|
+
const templates: {
|
|
12
|
+
readonly bot: readonly [{
|
|
13
|
+
readonly fullName: "Empty Bot";
|
|
14
|
+
readonly identifier: "empty";
|
|
15
|
+
readonly defaultProjectName: "empty-bot";
|
|
16
|
+
readonly absolutePath: utils.path.AbsolutePath;
|
|
17
|
+
}];
|
|
18
|
+
readonly plugin: readonly [{
|
|
19
|
+
readonly fullName: "Empty Plugin";
|
|
20
|
+
readonly identifier: "empty";
|
|
21
|
+
readonly defaultProjectName: "empty-plugin";
|
|
22
|
+
readonly absolutePath: utils.path.AbsolutePath;
|
|
23
|
+
}];
|
|
24
|
+
readonly integration: readonly [{
|
|
25
|
+
readonly fullName: "Empty Integration";
|
|
26
|
+
readonly identifier: "empty";
|
|
27
|
+
readonly defaultProjectName: "empty-integration";
|
|
28
|
+
readonly absolutePath: utils.path.AbsolutePath;
|
|
29
|
+
}, {
|
|
30
|
+
readonly fullName: "Hello World";
|
|
31
|
+
readonly identifier: "hello-world";
|
|
32
|
+
readonly defaultProjectName: "hello-world";
|
|
33
|
+
readonly absolutePath: utils.path.AbsolutePath;
|
|
34
|
+
}, {
|
|
35
|
+
readonly fullName: "Webhook Message";
|
|
36
|
+
readonly identifier: "webhook-message";
|
|
37
|
+
readonly defaultProjectName: "webhook-message";
|
|
38
|
+
readonly absolutePath: utils.path.AbsolutePath;
|
|
39
|
+
}];
|
|
40
|
+
};
|
|
41
|
+
const getAllChoices: () => ("empty" | "hello-world" | "webhook-message")[];
|
|
42
|
+
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/register-yargs.ts"],
|
|
4
4
|
"sourcesContent": ["import yargs, { YargsArgv, YargsConfig, cleanupConfig, parseEnv } from '@bpinternal/yargs-extra'\nimport _ from 'lodash'\nimport * as tree from './command-tree'\nimport type * as typings from './typings'\n\nexport type YargsInstance = typeof yargs\n\nconst parseArguments = <S extends typings.CommandSchema>(schema: S, argv: YargsArgv<S>): YargsConfig<S> => {\n const yargsEnv = parseEnv(schema, 'BP')\n return cleanupConfig(schema, { ...argv, ...yargsEnv })\n}\n\nexport const registerYargs = (yargz: YargsInstance, commands: tree.CommandTree) => {\n for (const cmdName in commands) {\n const command = commands[cmdName] as tree.CommandTreeNode\n\n if (tree.guards.command.isSubTree(command)) {\n yargz.command(cmdName, command.description ?? cmdName, (y) => {\n registerYargs(y, command.subcommands)\n return y\n })\n continue\n }\n\n const { schema, description, alias } = command\n const aliases = alias ? [cmdName, alias] : [cmdName]\n\n const options = Object.entries(schema)\n let positionals = options.filter(\n (value): value is [string, typings.CommandPositionalOption] => !!value[1].positional\n )\n\n let usage = aliases\n if (positionals.length) {\n positionals = _.sortBy(positionals, ([, option]) => option.idx)\n const positionalArgs = positionals.map(([optName, option]) =>\n option.demandOption ? `<${optName}>` : `[${optName}]`\n )\n const positionalStr = positionalArgs.join(' ')\n usage = aliases.map((optAlias) => `${optAlias} ${positionalStr}`)\n }\n\n yargz.command(\n usage,\n description ?? cmdName,\n (y) => {\n for (const [key, option] of Object.entries(schema)) {\n if (option.positional) {\n y = y.positional(key, option)\n } else {\n y = y.option(key, option)\n }\n }\n return y\n },\n async (argv) => {\n const parsed = parseArguments(schema, argv)\n const { exitCode } = await command.handler({ ...parsed })\n process.exit(exitCode)\n }\n )\n }\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAAuE;AACvE,oBAAc;AACd,WAAsB;AAKtB,MAAM,iBAAiB,CAAkC,QAAW,SAAuC;AACzG,QAAM,eAAW,6BAAS,QAAQ,IAAI;AACtC,aAAO,kCAAc,QAAQ,EAAE,GAAG,MAAM,GAAG,SAAS,CAAC;AACvD;AAEO,MAAM,gBAAgB,CAAC,OAAsB,aAA+B;AACjF,aAAW,WAAW,UAAU;AAC9B,UAAM,UAAU,SAAS,OAAO;AAEhC,QAAI,KAAK,OAAO,QAAQ,UAAU,OAAO,GAAG;AAC1C,YAAM,QAAQ,SAAS,QAAQ,eAAe,SAAS,CAAC,MAAM;AAC5D,sBAAc,GAAG,QAAQ,WAAW;AACpC,eAAO;AAAA,MACT,CAAC;AACD;AAAA,IACF;AAEA,UAAM,EAAE,QAAQ,aAAa,MAAM,IAAI;AACvC,UAAM,UAAU,QAAQ,CAAC,SAAS,KAAK,IAAI,CAAC,OAAO;AAEnD,UAAM,UAAU,OAAO,QAAQ,MAAM;AACrC,QAAI,cAAc,QAAQ;AAAA,MACxB,CAAC,UAA8D,CAAC,CAAC,MAAM,CAAC,EAAE;AAAA,IAC5E;AAEA,QAAI,QAAQ;AACZ,QAAI,YAAY,QAAQ;AACtB,oBAAc,cAAAA,QAAE,OAAO,aAAa,CAAC,CAAC,EAAE,MAAM,MAAM,OAAO,GAAG;AAC9D,YAAM,iBAAiB,YAAY;AAAA,QAAI,CAAC,CAAC,SAAS,MAAM,MACtD,OAAO,eAAe,IAAI,
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAAuE;AACvE,oBAAc;AACd,WAAsB;AAKtB,MAAM,iBAAiB,CAAkC,QAAW,SAAuC;AACzG,QAAM,eAAW,6BAAS,QAAQ,IAAI;AACtC,aAAO,kCAAc,QAAQ,EAAE,GAAG,MAAM,GAAG,SAAS,CAAC;AACvD;AAEO,MAAM,gBAAgB,CAAC,OAAsB,aAA+B;AACjF,aAAW,WAAW,UAAU;AAC9B,UAAM,UAAU,SAAS,OAAO;AAEhC,QAAI,KAAK,OAAO,QAAQ,UAAU,OAAO,GAAG;AAC1C,YAAM,QAAQ,SAAS,QAAQ,eAAe,SAAS,CAAC,MAAM;AAC5D,sBAAc,GAAG,QAAQ,WAAW;AACpC,eAAO;AAAA,MACT,CAAC;AACD;AAAA,IACF;AAEA,UAAM,EAAE,QAAQ,aAAa,MAAM,IAAI;AACvC,UAAM,UAAU,QAAQ,CAAC,SAAS,KAAK,IAAI,CAAC,OAAO;AAEnD,UAAM,UAAU,OAAO,QAAQ,MAAM;AACrC,QAAI,cAAc,QAAQ;AAAA,MACxB,CAAC,UAA8D,CAAC,CAAC,MAAM,CAAC,EAAE;AAAA,IAC5E;AAEA,QAAI,QAAQ;AACZ,QAAI,YAAY,QAAQ;AACtB,oBAAc,cAAAA,QAAE,OAAO,aAAa,CAAC,CAAC,EAAE,MAAM,MAAM,OAAO,GAAG;AAC9D,YAAM,iBAAiB,YAAY;AAAA,QAAI,CAAC,CAAC,SAAS,MAAM,MACtD,OAAO,eAAe,IAAI,OAAO,MAAM,IAAI,OAAO;AAAA,MACpD;AACA,YAAM,gBAAgB,eAAe,KAAK,GAAG;AAC7C,cAAQ,QAAQ,IAAI,CAAC,aAAa,GAAG,QAAQ,IAAI,aAAa,EAAE;AAAA,IAClE;AAEA,UAAM;AAAA,MACJ;AAAA,MACA,eAAe;AAAA,MACf,CAAC,MAAM;AACL,mBAAW,CAAC,KAAK,MAAM,KAAK,OAAO,QAAQ,MAAM,GAAG;AAClD,cAAI,OAAO,YAAY;AACrB,gBAAI,EAAE,WAAW,KAAK,MAAM;AAAA,UAC9B,OAAO;AACL,gBAAI,EAAE,OAAO,KAAK,MAAM;AAAA,UAC1B;AAAA,QACF;AACA,eAAO;AAAA,MACT;AAAA,MACA,OAAO,SAAS;AACd,cAAM,SAAS,eAAe,QAAQ,IAAI;AAC1C,cAAM,EAAE,SAAS,IAAI,MAAM,QAAQ,QAAQ,EAAE,GAAG,OAAO,CAAC;AACxD,gBAAQ,KAAK,QAAQ;AAAA,MACvB;AAAA,IACF;AAAA,EACF;AACF;",
|
|
6
6
|
"names": ["_"]
|
|
7
7
|
}
|
package/dist/root.d.ts
ADDED
package/dist/sdk/index.js
CHANGED
|
@@ -17,4 +17,9 @@ var sdk_exports = {};
|
|
|
17
17
|
module.exports = __toCommonJS(sdk_exports);
|
|
18
18
|
__reExport(sdk_exports, require("./validate-integration"), module.exports);
|
|
19
19
|
__reExport(sdk_exports, require("./validate-bot"), module.exports);
|
|
20
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
21
|
+
0 && (module.exports = {
|
|
22
|
+
...require("./validate-integration"),
|
|
23
|
+
...require("./validate-bot")
|
|
24
|
+
});
|
|
20
25
|
//# sourceMappingURL=index.js.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/sdk/validate-bot.ts"],
|
|
4
4
|
"sourcesContent": ["import type * as sdk from '@botpress/sdk'\nimport * as errors from '../errors'\nimport * as utils from '../utils'\n\ntype PackageRef = { name: string; version: string }\n\nconst PLUGIN_PREFIX_SEP = '#'\n\nexport const validateBotDefinition = (b: sdk.BotDefinition): void => {\n const { actions, events, states } = b\n\n const invalidActionNames = _nonCamelCaseKeys(actions ?? {})\n if (invalidActionNames.length) {\n throw new errors.BotpressCLIError(\n `The following action names are not in camelCase: ${invalidActionNames.join(', ')}`\n )\n }\n\n const invalidEventNames = _nonCamelCaseKeys(events ?? {})\n if (invalidEventNames.length) {\n throw new errors.BotpressCLIError(`The following event names are not in camelCase: ${invalidEventNames.join(', ')}`)\n }\n\n const invalidStateNames = _nonCamelCaseKeys(states ?? {})\n if (invalidStateNames.length) {\n throw new errors.BotpressCLIError(`The following state names are not in camelCase: ${invalidStateNames.join(', ')}`)\n }\n\n for (const [pluginName, plugin] of Object.entries(b.plugins ?? {})) {\n const integrationDependencies = plugin.definition.integrations ?? {}\n for (const dep of Object.values(integrationDependencies)) {\n if (!_hasIntegrationDependency(b, dep)) {\n throw new errors.BotpressCLIError(\n `Plugin \"${pluginName}\" has a dependency on integration \"${dep.name}@${dep.version}\", but it is not present in the bot definition. Please install it.`\n )\n }\n }\n\n const interfaceDependencies = plugin.definition.interfaces ?? {}\n for (const [interfaceAlias, dep] of Object.entries(interfaceDependencies)) {\n const interfaceImpl = plugin.interfaces[interfaceAlias]\n if (!interfaceImpl) {\n throw new errors.BotpressCLIError(\n `Plugin \"${pluginName}\" has a dependency on interface \"${dep.name}@${dep.version}\" (aliased as \"${interfaceAlias}\"), but the bot does not specify an implementation for it.`\n )\n }\n\n if (!_hasIntegrationDependency(b, interfaceImpl)) {\n throw new errors.BotpressCLIError(\n `Integration \"${interfaceImpl.name}@${interfaceImpl.version}\" is not installed in the bot, but specified as an implementation for interface \"${dep.name}@${dep.version}\"`\n )\n }\n }\n }\n}\n\nconst _nonCamelCaseKeys = (obj: Record<string, any>): string[] =>\n Object.keys(obj).filter((key) => {\n const tokens: string[] = key.split(PLUGIN_PREFIX_SEP, 2)\n return !utils.casing.is.camelCase(tokens.at(-1)!)\n })\n\nconst _hasIntegrationDependency = (b: sdk.BotDefinition, dep: PackageRef): boolean => {\n const integrationInstances = Object.entries(b.integrations ?? {}).map(([_k, v]) => v)\n return integrationInstances.some(\n (integration) => integration.name === dep.name && integration.version === dep.version\n )\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,aAAwB;AACxB,YAAuB;AAIvB,MAAM,oBAAoB;AAEnB,MAAM,wBAAwB,CAAC,MAA+B;AACnE,QAAM,EAAE,SAAS,QAAQ,OAAO,IAAI;AAEpC,QAAM,qBAAqB,kBAAkB,WAAW,CAAC,CAAC;AAC1D,MAAI,mBAAmB,QAAQ;AAC7B,UAAM,IAAI,OAAO;AAAA,MACf,oDAAoD,mBAAmB,KAAK,IAAI;AAAA,
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,aAAwB;AACxB,YAAuB;AAIvB,MAAM,oBAAoB;AAEnB,MAAM,wBAAwB,CAAC,MAA+B;AACnE,QAAM,EAAE,SAAS,QAAQ,OAAO,IAAI;AAEpC,QAAM,qBAAqB,kBAAkB,WAAW,CAAC,CAAC;AAC1D,MAAI,mBAAmB,QAAQ;AAC7B,UAAM,IAAI,OAAO;AAAA,MACf,oDAAoD,mBAAmB,KAAK,IAAI,CAAC;AAAA,IACnF;AAAA,EACF;AAEA,QAAM,oBAAoB,kBAAkB,UAAU,CAAC,CAAC;AACxD,MAAI,kBAAkB,QAAQ;AAC5B,UAAM,IAAI,OAAO,iBAAiB,mDAAmD,kBAAkB,KAAK,IAAI,CAAC,EAAE;AAAA,EACrH;AAEA,QAAM,oBAAoB,kBAAkB,UAAU,CAAC,CAAC;AACxD,MAAI,kBAAkB,QAAQ;AAC5B,UAAM,IAAI,OAAO,iBAAiB,mDAAmD,kBAAkB,KAAK,IAAI,CAAC,EAAE;AAAA,EACrH;AAEA,aAAW,CAAC,YAAY,MAAM,KAAK,OAAO,QAAQ,EAAE,WAAW,CAAC,CAAC,GAAG;AAClE,UAAM,0BAA0B,OAAO,WAAW,gBAAgB,CAAC;AACnE,eAAW,OAAO,OAAO,OAAO,uBAAuB,GAAG;AACxD,UAAI,CAAC,0BAA0B,GAAG,GAAG,GAAG;AACtC,cAAM,IAAI,OAAO;AAAA,UACf,WAAW,UAAU,sCAAsC,IAAI,IAAI,IAAI,IAAI,OAAO;AAAA,QACpF;AAAA,MACF;AAAA,IACF;AAEA,UAAM,wBAAwB,OAAO,WAAW,cAAc,CAAC;AAC/D,eAAW,CAAC,gBAAgB,GAAG,KAAK,OAAO,QAAQ,qBAAqB,GAAG;AACzE,YAAM,gBAAgB,OAAO,WAAW,cAAc;AACtD,UAAI,CAAC,eAAe;AAClB,cAAM,IAAI,OAAO;AAAA,UACf,WAAW,UAAU,oCAAoC,IAAI,IAAI,IAAI,IAAI,OAAO,kBAAkB,cAAc;AAAA,QAClH;AAAA,MACF;AAEA,UAAI,CAAC,0BAA0B,GAAG,aAAa,GAAG;AAChD,cAAM,IAAI,OAAO;AAAA,UACf,gBAAgB,cAAc,IAAI,IAAI,cAAc,OAAO,oFAAoF,IAAI,IAAI,IAAI,IAAI,OAAO;AAAA,QACxK;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,MAAM,oBAAoB,CAAC,QACzB,OAAO,KAAK,GAAG,EAAE,OAAO,CAAC,QAAQ;AAC/B,QAAM,SAAmB,IAAI,MAAM,mBAAmB,CAAC;AACvD,SAAO,CAAC,MAAM,OAAO,GAAG,UAAU,OAAO,GAAG,EAAE,CAAE;AAClD,CAAC;AAEH,MAAM,4BAA4B,CAAC,GAAsB,QAA6B;AACpF,QAAM,uBAAuB,OAAO,QAAQ,EAAE,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;AACpF,SAAO,qBAAqB;AAAA,IAC1B,CAAC,gBAAgB,YAAY,SAAS,IAAI,QAAQ,YAAY,YAAY,IAAI;AAAA,EAChF;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/sdk/validate-integration.ts"],
|
|
4
4
|
"sourcesContent": ["import type * as sdk from '@botpress/sdk'\nimport * as errors from '../errors'\nimport * as utils from '../utils'\n\nexport const validateIntegrationDefinition = (i: sdk.IntegrationDefinition): void => {\n const { actions, channels, events, states } = i\n\n const invalidActionNames = _nonCamelCaseKeys(actions ?? {})\n if (invalidActionNames.length) {\n throw new errors.BotpressCLIError(\n `The following action names are not in camelCase: ${invalidActionNames.join(', ')}`\n )\n }\n\n const invalidChannelNames = _nonCamelCaseKeys(channels ?? {})\n if (invalidChannelNames.length) {\n throw new errors.BotpressCLIError(\n `The following channel names are not in camelCase: ${invalidChannelNames.join(', ')}`\n )\n }\n\n const invalidMessageNames = Object.entries(channels ?? {}).flatMap(([channelName, channel]) =>\n _nonCamelCaseKeys(channel.messages ?? {}).map((message) => `${channelName}.${message}`)\n )\n if (invalidMessageNames.length) {\n throw new errors.BotpressCLIError(\n `The following message names are not in camelCase: ${invalidMessageNames.join(', ')}`\n )\n }\n\n const invalidEventNames = _nonCamelCaseKeys(events ?? {})\n if (invalidEventNames.length) {\n throw new errors.BotpressCLIError(`The following event names are not in camelCase: ${invalidEventNames.join(', ')}`)\n }\n\n const invalidStateNames = _nonCamelCaseKeys(states ?? {})\n if (invalidStateNames.length) {\n throw new errors.BotpressCLIError(`The following state names are not in camelCase: ${invalidStateNames.join(', ')}`)\n }\n}\n\nconst _nonCamelCaseKeys = (obj: Record<string, any>): string[] =>\n Object.keys(obj).filter((k) => !utils.casing.is.camelCase(k))\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,aAAwB;AACxB,YAAuB;AAEhB,MAAM,gCAAgC,CAAC,MAAuC;AACnF,QAAM,EAAE,SAAS,UAAU,QAAQ,OAAO,IAAI;AAE9C,QAAM,qBAAqB,kBAAkB,WAAW,CAAC,CAAC;AAC1D,MAAI,mBAAmB,QAAQ;AAC7B,UAAM,IAAI,OAAO;AAAA,MACf,oDAAoD,mBAAmB,KAAK,IAAI;AAAA,
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,aAAwB;AACxB,YAAuB;AAEhB,MAAM,gCAAgC,CAAC,MAAuC;AACnF,QAAM,EAAE,SAAS,UAAU,QAAQ,OAAO,IAAI;AAE9C,QAAM,qBAAqB,kBAAkB,WAAW,CAAC,CAAC;AAC1D,MAAI,mBAAmB,QAAQ;AAC7B,UAAM,IAAI,OAAO;AAAA,MACf,oDAAoD,mBAAmB,KAAK,IAAI,CAAC;AAAA,IACnF;AAAA,EACF;AAEA,QAAM,sBAAsB,kBAAkB,YAAY,CAAC,CAAC;AAC5D,MAAI,oBAAoB,QAAQ;AAC9B,UAAM,IAAI,OAAO;AAAA,MACf,qDAAqD,oBAAoB,KAAK,IAAI,CAAC;AAAA,IACrF;AAAA,EACF;AAEA,QAAM,sBAAsB,OAAO,QAAQ,YAAY,CAAC,CAAC,EAAE;AAAA,IAAQ,CAAC,CAAC,aAAa,OAAO,MACvF,kBAAkB,QAAQ,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,GAAG,WAAW,IAAI,OAAO,EAAE;AAAA,EACxF;AACA,MAAI,oBAAoB,QAAQ;AAC9B,UAAM,IAAI,OAAO;AAAA,MACf,qDAAqD,oBAAoB,KAAK,IAAI,CAAC;AAAA,IACrF;AAAA,EACF;AAEA,QAAM,oBAAoB,kBAAkB,UAAU,CAAC,CAAC;AACxD,MAAI,kBAAkB,QAAQ;AAC5B,UAAM,IAAI,OAAO,iBAAiB,mDAAmD,kBAAkB,KAAK,IAAI,CAAC,EAAE;AAAA,EACrH;AAEA,QAAM,oBAAoB,kBAAkB,UAAU,CAAC,CAAC;AACxD,MAAI,kBAAkB,QAAQ;AAC5B,UAAM,IAAI,OAAO,iBAAiB,mDAAmD,kBAAkB,KAAK,IAAI,CAAC,EAAE;AAAA,EACrH;AACF;AAEA,MAAM,oBAAoB,CAAC,QACzB,OAAO,KAAK,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { TablesPublisher } from './tables-publisher';
|