@botpress/cli 2.2.4 → 3.0.0
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 +10 -10
- package/dist/api/bot-body.js.map +2 -2
- package/dist/api/client.js +10 -2
- package/dist/api/client.js.map +2 -2
- package/dist/api/find-previous-version.test.js +1 -1
- package/dist/api/find-previous-version.test.js.map +2 -2
- package/dist/api/index.js +1 -0
- package/dist/api/index.js.map +2 -2
- package/dist/api/integration-body.js +6 -19
- package/dist/api/integration-body.js.map +2 -2
- package/dist/api/interface-body.js +1 -5
- package/dist/api/interface-body.js.map +2 -2
- package/dist/api/plugin-body.js +3 -0
- package/dist/api/plugin-body.js.map +2 -2
- package/dist/api/types.js.map +1 -1
- package/dist/code-generation/bot-implementation/bot-implementation.js +5 -2
- package/dist/code-generation/bot-implementation/bot-implementation.js.map +2 -2
- package/dist/code-generation/bot-implementation/bot-plugins/plugin-module.js +3 -0
- package/dist/code-generation/bot-implementation/bot-plugins/plugin-module.js.map +2 -2
- package/dist/code-generation/bot-implementation/bot-typings/index.js +11 -2
- package/dist/code-generation/bot-implementation/bot-typings/index.js.map +2 -2
- package/dist/code-generation/bot-implementation/bot-typings/tables-module.js +64 -0
- package/dist/code-generation/bot-implementation/bot-typings/tables-module.js.map +7 -0
- package/dist/code-generation/generators.js +11 -2
- package/dist/code-generation/generators.js.map +3 -3
- package/dist/code-generation/integration-package/index.js +4 -21
- package/dist/code-generation/integration-package/index.js.map +2 -2
- package/dist/code-generation/integration-package/integration-package-definition/actions-module.js +10 -1
- package/dist/code-generation/integration-package/integration-package-definition/actions-module.js.map +2 -2
- package/dist/code-generation/integration-package/integration-package-definition/channels-module.js +11 -1
- package/dist/code-generation/integration-package/integration-package-definition/channels-module.js.map +2 -2
- package/dist/code-generation/integration-package/integration-package-definition/configuration-module.js +10 -8
- package/dist/code-generation/integration-package/integration-package-definition/configuration-module.js.map +2 -2
- package/dist/code-generation/integration-package/integration-package-definition/configurations-module.js +10 -5
- package/dist/code-generation/integration-package/integration-package-definition/configurations-module.js.map +2 -2
- package/dist/code-generation/integration-package/integration-package-definition/entities-module.js +9 -1
- package/dist/code-generation/integration-package/integration-package-definition/entities-module.js.map +2 -2
- package/dist/code-generation/integration-package/integration-package-definition/events-module.js +9 -4
- package/dist/code-generation/integration-package/integration-package-definition/events-module.js.map +2 -2
- package/dist/code-generation/integration-package/integration-package-definition/index.js +12 -3
- package/dist/code-generation/integration-package/integration-package-definition/index.js.map +2 -2
- package/dist/code-generation/integration-package/integration-package-definition/interfaces-module.js +61 -0
- package/dist/code-generation/integration-package/integration-package-definition/interfaces-module.js.map +7 -0
- package/dist/code-generation/integration-package/integration-package-definition/states-module.js +6 -1
- package/dist/code-generation/integration-package/integration-package-definition/states-module.js.map +2 -2
- package/dist/code-generation/integration-package/integration-package-definition/typings.js.map +1 -1
- package/dist/code-generation/interface-package/index.js +4 -21
- package/dist/code-generation/interface-package/index.js.map +2 -2
- package/dist/code-generation/interface-package/interface-package-definition/actions-module.js +10 -1
- package/dist/code-generation/interface-package/interface-package-definition/actions-module.js.map +2 -2
- package/dist/code-generation/interface-package/interface-package-definition/channels-module.js +9 -1
- package/dist/code-generation/interface-package/interface-package-definition/channels-module.js.map +2 -2
- package/dist/code-generation/interface-package/interface-package-definition/entities-module.js +9 -1
- package/dist/code-generation/interface-package/interface-package-definition/entities-module.js.map +2 -2
- package/dist/code-generation/interface-package/interface-package-definition/events-module.js +9 -1
- package/dist/code-generation/interface-package/interface-package-definition/events-module.js.map +2 -2
- package/dist/code-generation/interface-package/interface-package-definition/index.js +0 -2
- package/dist/code-generation/interface-package/interface-package-definition/index.js.map +2 -2
- package/dist/code-generation/interface-package/interface-package-definition/typings.js.map +1 -1
- package/dist/code-generation/module.js +13 -7
- package/dist/code-generation/module.js.map +2 -2
- package/dist/code-generation/plugin-implementation/plugin-implementation.js +27 -4
- package/dist/code-generation/plugin-implementation/plugin-implementation.js.map +2 -2
- package/dist/code-generation/plugin-implementation/plugin-typings/index.js +19 -2
- package/dist/code-generation/plugin-implementation/plugin-typings/index.js.map +2 -2
- package/dist/code-generation/plugin-implementation/plugin-typings/tables-module.js +64 -0
- package/dist/code-generation/plugin-implementation/plugin-typings/tables-module.js.map +7 -0
- package/dist/code-generation/plugin-package/index.js +4 -46
- package/dist/code-generation/plugin-package/index.js.map +2 -2
- package/dist/code-generation/plugin-package/plugin-package-definition/actions-module.js +8 -1
- package/dist/code-generation/plugin-package/plugin-package-definition/actions-module.js.map +2 -2
- package/dist/code-generation/plugin-package/plugin-package-definition/configuration-module.js +10 -1
- package/dist/code-generation/plugin-package/plugin-package-definition/configuration-module.js.map +2 -2
- package/dist/code-generation/plugin-package/plugin-package-definition/events-module.js +9 -4
- package/dist/code-generation/plugin-package/plugin-package-definition/events-module.js.map +2 -2
- package/dist/code-generation/plugin-package/plugin-package-definition/index.js +15 -3
- package/dist/code-generation/plugin-package/plugin-package-definition/index.js.map +2 -2
- package/dist/code-generation/plugin-package/plugin-package-definition/interfaces-module.js +58 -0
- package/dist/code-generation/plugin-package/plugin-package-definition/interfaces-module.js.map +7 -0
- package/dist/code-generation/plugin-package/plugin-package-definition/states-module.js +6 -1
- package/dist/code-generation/plugin-package/plugin-package-definition/states-module.js.map +2 -2
- package/dist/code-generation/plugin-package/plugin-package-definition/typings.js.map +1 -1
- package/dist/code-generation/strings.js +10 -5
- package/dist/code-generation/strings.js.map +2 -2
- package/dist/code-generation/typings.js.map +1 -1
- package/dist/code-generation/typings.test.js +15 -0
- package/dist/code-generation/typings.test.js.map +7 -0
- package/dist/command-implementations/add-command.js +70 -25
- package/dist/command-implementations/add-command.js.map +2 -2
- package/dist/command-implementations/bundle-command.js +34 -27
- package/dist/command-implementations/bundle-command.js.map +2 -2
- package/dist/command-implementations/deploy-command.js +26 -68
- package/dist/command-implementations/deploy-command.js.map +2 -2
- package/dist/command-implementations/dev-command.js +13 -17
- package/dist/command-implementations/dev-command.js.map +2 -2
- package/dist/command-implementations/lint-command.js +5 -8
- package/dist/command-implementations/lint-command.js.map +3 -3
- package/dist/command-implementations/plugin-commands.js +1 -2
- package/dist/command-implementations/plugin-commands.js.map +2 -2
- package/dist/command-implementations/project-command.js +82 -34
- package/dist/command-implementations/project-command.js.map +2 -2
- package/dist/command-implementations/read-command.js +23 -8
- package/dist/command-implementations/read-command.js.map +2 -2
- package/dist/command-implementations/serve-command.js +1 -1
- package/dist/command-implementations/serve-command.js.map +1 -1
- package/dist/consts.js +4 -2
- package/dist/consts.js.map +2 -2
- package/dist/errors.js +3 -3
- package/dist/errors.js.map +2 -2
- package/dist/linter/base-linter.test.js +6 -1
- package/dist/linter/base-linter.test.js.map +2 -2
- package/dist/linter/bot-linter.js.map +2 -2
- package/dist/linter/integration-linter.js.map +1 -1
- package/dist/linter/interface-linter.js.map +2 -2
- package/dist/linter/ruleset-tests/bot.ruleset.test.js.map +2 -2
- package/dist/linter/ruleset-tests/interface.ruleset.test.js.map +2 -2
- package/dist/sdk/index.js +0 -2
- package/dist/sdk/index.js.map +2 -2
- package/dist/{sdk/resolve-bot-interfaces.js → tables/index.js} +7 -21
- package/dist/tables/index.js.map +7 -0
- package/dist/tables/schemas.js +106 -0
- package/dist/tables/schemas.js.map +7 -0
- package/dist/tables/tables-publisher.js +157 -0
- package/dist/tables/tables-publisher.js.map +7 -0
- package/dist/utils/esbuild-utils.js +15 -13
- package/dist/utils/esbuild-utils.js.map +2 -2
- package/dist/utils/type-utils.js.map +1 -1
- package/package.json +2 -2
- package/templates/empty-bot/.botpress/implementation/index.ts +5 -2
- package/templates/empty-bot/.botpress/implementation/typings/index.ts +3 -0
- package/templates/empty-bot/.botpress/implementation/typings/tables/index.ts +6 -0
- package/templates/empty-bot/package.json +1 -1
- package/templates/empty-integration/package.json +1 -1
- package/templates/empty-plugin/.botpress/implementation/index.ts +27 -4
- package/templates/empty-plugin/.botpress/implementation/typings/index.ts +3 -0
- package/templates/empty-plugin/.botpress/implementation/typings/tables/index.ts +6 -0
- package/templates/empty-plugin/package.json +1 -1
- package/templates/hello-world/package.json +1 -1
- package/templates/webhook-message/package.json +1 -1
- package/dist/sdk/resolve-bot-interfaces.js.map +0 -7
- package/dist/sdk/resolve-integration-interfaces.js +0 -161
- package/dist/sdk/resolve-integration-interfaces.js.map +0 -7
|
@@ -44,15 +44,16 @@ class Module {
|
|
|
44
44
|
}
|
|
45
45
|
_localDependencies = [];
|
|
46
46
|
get path() {
|
|
47
|
-
return this._def.path;
|
|
47
|
+
return this._def.path.split(import_path.posix.sep).map(strings.fileName).join(import_path.posix.sep);
|
|
48
48
|
}
|
|
49
49
|
/**
|
|
50
|
-
* @returns file name without extension
|
|
50
|
+
* @returns module name (equivalent to unescaped file name without extension)
|
|
51
51
|
*/
|
|
52
52
|
get name() {
|
|
53
|
-
const
|
|
53
|
+
const path = this._def.path;
|
|
54
|
+
const basename = import_path.posix.basename(path);
|
|
54
55
|
if (basename === consts.INDEX_FILE || basename === consts.INDEX_DECLARATION_FILE) {
|
|
55
|
-
const dirPath = import_path.posix.dirname(
|
|
56
|
+
const dirPath = import_path.posix.dirname(path);
|
|
56
57
|
const dirname = import_path.posix.basename(dirPath);
|
|
57
58
|
return dirname;
|
|
58
59
|
}
|
|
@@ -133,11 +134,13 @@ class ReExportTypeModule extends Module {
|
|
|
133
134
|
}
|
|
134
135
|
}
|
|
135
136
|
class ReExportVariableModule extends Module {
|
|
137
|
+
_extraProps = {};
|
|
136
138
|
constructor(def) {
|
|
137
139
|
super({
|
|
138
140
|
...def,
|
|
139
141
|
path: consts.INDEX_FILE
|
|
140
142
|
});
|
|
143
|
+
this._extraProps = def.extraProps ?? {};
|
|
141
144
|
}
|
|
142
145
|
async getContent() {
|
|
143
146
|
let content = consts.GENERATED_HEADER;
|
|
@@ -151,11 +154,14 @@ class ReExportVariableModule extends Module {
|
|
|
151
154
|
`;
|
|
152
155
|
}
|
|
153
156
|
content += "\n";
|
|
157
|
+
const depProps = Object.fromEntries(
|
|
158
|
+
this.deps.map(({ name, exportName }) => [name, `${strings.importAlias(name)}.${exportName}`])
|
|
159
|
+
);
|
|
160
|
+
const allProps = { ...depProps, ...this._extraProps };
|
|
154
161
|
content += `export const ${this.exportName} = {
|
|
155
162
|
`;
|
|
156
|
-
for (const
|
|
157
|
-
|
|
158
|
-
content += ` "${name}": ${importAlias}.${exports},
|
|
163
|
+
for (const [key, value] of Object.entries(allProps)) {
|
|
164
|
+
content += ` "${key}": ${value},
|
|
159
165
|
`;
|
|
160
166
|
}
|
|
161
167
|
content += "}";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/code-generation/module.ts"],
|
|
4
|
-
"sourcesContent": ["import { posix as pathlib } from 'path'\nimport * as utils from '../utils'\nimport * as consts from './consts'\nimport * as strings from './strings'\nimport { File } from './typings'\n\nexport type ModuleProps = {\n path: string\n exportName: string\n}\n\nexport abstract class Module {\n private _localDependencies: Module[] = []\n\n public get path(): string {\n return this._def.path\n }\n\n /**\n * @returns file name without extension\n */\n public get name(): string {\n const basename = pathlib.basename(
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAiC;AACjC,YAAuB;AACvB,aAAwB;AACxB,cAAyB;AAQlB,MAAe,OAAO;AAAA,
|
|
4
|
+
"sourcesContent": ["import { posix as pathlib } from 'path'\nimport * as utils from '../utils'\nimport * as consts from './consts'\nimport * as strings from './strings'\nimport { File } from './typings'\n\nexport type ModuleProps = {\n path: string\n exportName: string\n}\n\nexport abstract class Module {\n private _localDependencies: Module[] = []\n\n public get path(): string {\n return this._def.path.split(pathlib.sep).map(strings.fileName).join(pathlib.sep)\n }\n\n /**\n * @returns module name (equivalent to unescaped file name without extension)\n */\n public get name(): string {\n const path = this._def.path\n const basename = pathlib.basename(path)\n if (basename === consts.INDEX_FILE || basename === consts.INDEX_DECLARATION_FILE) {\n const dirPath = pathlib.dirname(path)\n const dirname = pathlib.basename(dirPath)\n return dirname\n }\n const withoutExtension = utils.path.rmExtension(basename)\n return withoutExtension\n }\n\n public get isDefaultExport(): boolean {\n return this._def.exportName === consts.DEFAULT_EXPORT_NAME\n }\n\n public get exportName(): string {\n return this._def.exportName\n }\n\n public get deps(): Module[] {\n return [...this._localDependencies]\n }\n\n protected constructor(private _def: ModuleProps) {}\n\n public abstract getContent(): Promise<string>\n\n public pushDep(...dependencies: Module[]): this {\n this._localDependencies.push(...dependencies)\n return this\n }\n\n public unshift(...basePath: string[]): this {\n this._def = {\n ...this._def,\n path: pathlib.join(...basePath, this._def.path),\n }\n this._localDependencies = this._localDependencies.map((d) => d.unshift(...basePath))\n return this\n }\n\n public async toFile(): Promise<File> {\n return {\n path: this.path,\n content: await this.getContent(),\n }\n }\n\n public async flatten(): Promise<File[]> {\n const self = await this.toFile()\n const allFiles: File[] = [self]\n for (const dep of this._localDependencies) {\n const depFiles = await dep.flatten()\n allFiles.push(...depFiles)\n }\n return allFiles\n }\n\n public import(base: Module): string {\n let relativePath = pathlib.relative(pathlib.dirname(base.path), this.path)\n relativePath = pathlib.join('.', relativePath)\n return utils.path.rmExtension(relativePath)\n }\n}\n\nexport class ReExportTypeModule extends Module {\n protected constructor(def: { exportName: string }) {\n super({\n ...def,\n path: consts.INDEX_FILE,\n })\n }\n\n public async getContent(): Promise<string> {\n let content = consts.GENERATED_HEADER\n\n for (const m of this.deps) {\n const { name } = m\n const importAlias = strings.importAlias(name)\n const importFrom = m.import(this)\n content += `import * as ${importAlias} from \"./${importFrom}\";\\n`\n content += `export * as ${importAlias} from \"./${importFrom}\";\\n`\n }\n\n content += '\\n'\n\n content += `export type ${this.exportName} = {\\n`\n for (const { name, exportName: exports } of this.deps) {\n const importAlias = strings.importAlias(name)\n content += ` \"${name}\": ${importAlias}.${exports};\\n`\n }\n content += '}'\n\n content += '\\n'\n\n return content\n }\n}\n\nexport class ReExportVariableModule extends Module {\n private _extraProps: Record<string, string> = {}\n\n protected constructor(def: { exportName: string; extraProps?: Record<string, string> }) {\n super({\n ...def,\n path: consts.INDEX_FILE,\n })\n this._extraProps = def.extraProps ?? {}\n }\n\n public async getContent(): Promise<string> {\n let content = consts.GENERATED_HEADER\n\n for (const m of this.deps) {\n const { name } = m\n const importAlias = strings.importAlias(name)\n const importFrom = m.import(this)\n content += `import * as ${importAlias} from \"./${importFrom}\";\\n`\n content += `export * as ${importAlias} from \"./${importFrom}\";\\n`\n }\n\n content += '\\n'\n\n const depProps: Record<string, string> = Object.fromEntries(\n this.deps.map(({ name, exportName }) => [name, `${strings.importAlias(name)}.${exportName}`])\n )\n\n const allProps = { ...depProps, ...this._extraProps }\n\n content += `export const ${this.exportName} = {\\n`\n for (const [key, value] of Object.entries(allProps)) {\n content += ` \"${key}\": ${value},\\n`\n }\n content += '}'\n\n content += '\\n'\n\n return content\n }\n}\n\nexport class SingleFileModule extends Module {\n private _content: string\n public constructor(def: ModuleProps & { content: string }) {\n super(def)\n this._content = def.content\n }\n\n public async getContent(): Promise<string> {\n return this._content\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAiC;AACjC,YAAuB;AACvB,aAAwB;AACxB,cAAyB;AAQlB,MAAe,OAAO;AAAA,EAkCjB,YAAoB,MAAmB;AAAnB;AAAA,EAAoB;AAAA,EAjC1C,qBAA+B,CAAC;AAAA,EAExC,IAAW,OAAe;AACxB,WAAO,KAAK,KAAK,KAAK,MAAM,YAAAA,MAAQ,GAAG,EAAE,IAAI,QAAQ,QAAQ,EAAE,KAAK,YAAAA,MAAQ,GAAG;AAAA,EACjF;AAAA;AAAA;AAAA;AAAA,EAKA,IAAW,OAAe;AACxB,UAAM,OAAO,KAAK,KAAK;AACvB,UAAM,WAAW,YAAAA,MAAQ,SAAS,IAAI;AACtC,QAAI,aAAa,OAAO,cAAc,aAAa,OAAO,wBAAwB;AAChF,YAAM,UAAU,YAAAA,MAAQ,QAAQ,IAAI;AACpC,YAAM,UAAU,YAAAA,MAAQ,SAAS,OAAO;AACxC,aAAO;AAAA,IACT;AACA,UAAM,mBAAmB,MAAM,KAAK,YAAY,QAAQ;AACxD,WAAO;AAAA,EACT;AAAA,EAEA,IAAW,kBAA2B;AACpC,WAAO,KAAK,KAAK,eAAe,OAAO;AAAA,EACzC;AAAA,EAEA,IAAW,aAAqB;AAC9B,WAAO,KAAK,KAAK;AAAA,EACnB;AAAA,EAEA,IAAW,OAAiB;AAC1B,WAAO,CAAC,GAAG,KAAK,kBAAkB;AAAA,EACpC;AAAA,EAMO,WAAW,cAA8B;AAC9C,SAAK,mBAAmB,KAAK,GAAG,YAAY;AAC5C,WAAO;AAAA,EACT;AAAA,EAEO,WAAW,UAA0B;AAC1C,SAAK,OAAO;AAAA,MACV,GAAG,KAAK;AAAA,MACR,MAAM,YAAAA,MAAQ,KAAK,GAAG,UAAU,KAAK,KAAK,IAAI;AAAA,IAChD;AACA,SAAK,qBAAqB,KAAK,mBAAmB,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;AACnF,WAAO;AAAA,EACT;AAAA,EAEA,MAAa,SAAwB;AACnC,WAAO;AAAA,MACL,MAAM,KAAK;AAAA,MACX,SAAS,MAAM,KAAK,WAAW;AAAA,IACjC;AAAA,EACF;AAAA,EAEA,MAAa,UAA2B;AACtC,UAAM,OAAO,MAAM,KAAK,OAAO;AAC/B,UAAM,WAAmB,CAAC,IAAI;AAC9B,eAAW,OAAO,KAAK,oBAAoB;AACzC,YAAM,WAAW,MAAM,IAAI,QAAQ;AACnC,eAAS,KAAK,GAAG,QAAQ;AAAA,IAC3B;AACA,WAAO;AAAA,EACT;AAAA,EAEO,OAAO,MAAsB;AAClC,QAAI,eAAe,YAAAA,MAAQ,SAAS,YAAAA,MAAQ,QAAQ,KAAK,IAAI,GAAG,KAAK,IAAI;AACzE,mBAAe,YAAAA,MAAQ,KAAK,KAAK,YAAY;AAC7C,WAAO,MAAM,KAAK,YAAY,YAAY;AAAA,EAC5C;AACF;AAEO,MAAM,2BAA2B,OAAO;AAAA,EACnC,YAAY,KAA6B;AACjD,UAAM;AAAA,MACJ,GAAG;AAAA,MACH,MAAM,OAAO;AAAA,IACf,CAAC;AAAA,EACH;AAAA,EAEA,MAAa,aAA8B;AACzC,QAAI,UAAU,OAAO;AAErB,eAAW,KAAK,KAAK,MAAM;AACzB,YAAM,EAAE,KAAK,IAAI;AACjB,YAAM,cAAc,QAAQ,YAAY,IAAI;AAC5C,YAAM,aAAa,EAAE,OAAO,IAAI;AAChC,iBAAW,eAAe,uBAAuB;AAAA;AACjD,iBAAW,eAAe,uBAAuB;AAAA;AAAA,IACnD;AAEA,eAAW;AAEX,eAAW,eAAe,KAAK;AAAA;AAC/B,eAAW,EAAE,MAAM,YAAY,QAAQ,KAAK,KAAK,MAAM;AACrD,YAAM,cAAc,QAAQ,YAAY,IAAI;AAC5C,iBAAW,MAAM,UAAU,eAAe;AAAA;AAAA,IAC5C;AACA,eAAW;AAEX,eAAW;AAEX,WAAO;AAAA,EACT;AACF;AAEO,MAAM,+BAA+B,OAAO;AAAA,EACzC,cAAsC,CAAC;AAAA,EAErC,YAAY,KAAkE;AACtF,UAAM;AAAA,MACJ,GAAG;AAAA,MACH,MAAM,OAAO;AAAA,IACf,CAAC;AACD,SAAK,cAAc,IAAI,cAAc,CAAC;AAAA,EACxC;AAAA,EAEA,MAAa,aAA8B;AACzC,QAAI,UAAU,OAAO;AAErB,eAAW,KAAK,KAAK,MAAM;AACzB,YAAM,EAAE,KAAK,IAAI;AACjB,YAAM,cAAc,QAAQ,YAAY,IAAI;AAC5C,YAAM,aAAa,EAAE,OAAO,IAAI;AAChC,iBAAW,eAAe,uBAAuB;AAAA;AACjD,iBAAW,eAAe,uBAAuB;AAAA;AAAA,IACnD;AAEA,eAAW;AAEX,UAAM,WAAmC,OAAO;AAAA,MAC9C,KAAK,KAAK,IAAI,CAAC,EAAE,MAAM,WAAW,MAAM,CAAC,MAAM,GAAG,QAAQ,YAAY,IAAI,KAAK,YAAY,CAAC;AAAA,IAC9F;AAEA,UAAM,WAAW,EAAE,GAAG,UAAU,GAAG,KAAK,YAAY;AAEpD,eAAW,gBAAgB,KAAK;AAAA;AAChC,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,QAAQ,GAAG;AACnD,iBAAW,MAAM,SAAS;AAAA;AAAA,IAC5B;AACA,eAAW;AAEX,eAAW;AAEX,WAAO;AAAA,EACT;AACF;AAEO,MAAM,yBAAyB,OAAO;AAAA,EACnC;AAAA,EACD,YAAY,KAAwC;AACzD,UAAM,GAAG;AACT,SAAK,WAAW,IAAI;AAAA,EACtB;AAAA,EAEA,MAAa,aAA8B;AACzC,WAAO,KAAK;AAAA,EACd;AACF;",
|
|
6
6
|
"names": ["pathlib"]
|
|
7
7
|
}
|
|
@@ -57,18 +57,41 @@ class PluginImplementationModule extends import_module.Module {
|
|
|
57
57
|
"",
|
|
58
58
|
"export class Plugin extends sdk.Plugin<TPlugin> {}",
|
|
59
59
|
"",
|
|
60
|
+
"export type PluginProps = sdk.PluginProps<TPlugin>",
|
|
61
|
+
"export type PluginRuntimeProps = sdk.PluginRuntimeProps<TPlugin>",
|
|
62
|
+
"",
|
|
60
63
|
"// extra types",
|
|
61
64
|
"",
|
|
65
|
+
"type ValueOf<T> = T[keyof T]",
|
|
62
66
|
"type AsyncFunction = (...args: any[]) => Promise<any>",
|
|
67
|
+
"",
|
|
68
|
+
"export type PluginHandlers = sdk.PluginHandlers<TPlugin>",
|
|
69
|
+
"",
|
|
63
70
|
"export type EventHandlers = Required<{",
|
|
64
|
-
" [K in keyof
|
|
71
|
+
" [K in keyof PluginHandlers['eventHandlers']]: NonNullable<PluginHandlers['eventHandlers'][K]>[number]",
|
|
65
72
|
"}>",
|
|
66
73
|
"export type MessageHandlers = Required<{",
|
|
67
|
-
" [K in keyof
|
|
74
|
+
" [K in keyof PluginHandlers['messageHandlers']]: NonNullable<PluginHandlers['messageHandlers'][K]>[number]",
|
|
75
|
+
"}>",
|
|
76
|
+
"export type HookHandlers = Required<{",
|
|
77
|
+
" [H in keyof PluginHandlers['hookHandlers']]: {",
|
|
78
|
+
" [K in keyof PluginHandlers['hookHandlers'][H]]: NonNullable<PluginHandlers['hookHandlers'][H][K]>[number]",
|
|
79
|
+
" }",
|
|
68
80
|
"}>",
|
|
69
81
|
"",
|
|
70
|
-
"export type
|
|
71
|
-
"export type
|
|
82
|
+
"export type AnyMessageHandler = MessageHandlers['*']",
|
|
83
|
+
"export type AnyEventHandler = EventHandlers['*']",
|
|
84
|
+
"export type AnyActionHandler = ValueOf<PluginHandlers['actionHandlers']>",
|
|
85
|
+
"export type AnyHookHanders = {",
|
|
86
|
+
" [H in keyof HookHandlers]: HookHandlers[H]['*']",
|
|
87
|
+
"}",
|
|
88
|
+
"",
|
|
89
|
+
"export type MessageHandlerProps = Parameters<AnyMessageHandler>[0]",
|
|
90
|
+
"export type EventHandlerProps = Parameters<AnyEventHandler>[0]",
|
|
91
|
+
"export type ActionHandlerProps = Parameters<AnyActionHandler>[0]",
|
|
92
|
+
"export type HookHandlerProps = {",
|
|
93
|
+
" [H in keyof AnyHookHanders]: Parameters<NonNullable<AnyHookHanders[H]>>[0]",
|
|
94
|
+
"}",
|
|
72
95
|
"",
|
|
73
96
|
"export type Client = (MessageHandlerProps | EventHandlerProps)['client']",
|
|
74
97
|
"export type ClientOperation = keyof {",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/code-generation/plugin-implementation/plugin-implementation.ts"],
|
|
4
|
-
"sourcesContent": ["import * as sdk from '@botpress/sdk'\nimport * as consts from '../consts'\nimport { Module } from '../module'\nimport { PluginTypingsModule } from './plugin-typings'\n\nexport class PluginImplementationModule extends Module {\n private _typingsModule: PluginTypingsModule\n\n public constructor(plugin: sdk.PluginDefinition) {\n super({\n exportName: 'Plugin',\n path: consts.INDEX_FILE,\n })\n\n this._typingsModule = new PluginTypingsModule(plugin)\n this._typingsModule.unshift('typings')\n this.pushDep(this._typingsModule)\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 `export * from \"./${typingsImport}\"`,\n '',\n `type TPlugin = sdk.DefaultPlugin<${this._typingsModule.name}.${this._typingsModule.exportName}>`,\n '',\n 'export class Plugin extends sdk.Plugin<TPlugin> {}',\n '',\n '// extra types',\n '',\n 'type AsyncFunction = (...args: any[]) => Promise<any>',\n 'export type EventHandlers = Required<{',\n \" [K in keyof
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,aAAwB;AACxB,oBAAuB;AACvB,4BAAoC;AAE7B,MAAM,mCAAmC,qBAAO;AAAA,EAC7C;AAAA,EAED,YAAY,QAA8B;AAC/C,UAAM;AAAA,MACJ,YAAY;AAAA,MACZ,MAAM,OAAO;AAAA,IACf,CAAC;AAED,SAAK,iBAAiB,IAAI,0CAAoB,MAAM;AACpD,SAAK,eAAe,QAAQ,SAAS;AACrC,SAAK,QAAQ,KAAK,cAAc;AAAA,EAClC;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,oBAAoB;AAAA,MACpB;AAAA,MACA,oCAAoC,KAAK,eAAe,QAAQ,KAAK,eAAe;AAAA,MACpF;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;",
|
|
4
|
+
"sourcesContent": ["import * as sdk from '@botpress/sdk'\nimport * as consts from '../consts'\nimport { Module } from '../module'\nimport { PluginTypingsModule } from './plugin-typings'\n\nexport class PluginImplementationModule extends Module {\n private _typingsModule: PluginTypingsModule\n\n public constructor(plugin: sdk.PluginDefinition) {\n super({\n exportName: 'Plugin',\n path: consts.INDEX_FILE,\n })\n\n this._typingsModule = new PluginTypingsModule(plugin)\n this._typingsModule.unshift('typings')\n this.pushDep(this._typingsModule)\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 `export * from \"./${typingsImport}\"`,\n '',\n `type TPlugin = sdk.DefaultPlugin<${this._typingsModule.name}.${this._typingsModule.exportName}>`,\n '',\n 'export class Plugin extends sdk.Plugin<TPlugin> {}',\n '',\n 'export type PluginProps = sdk.PluginProps<TPlugin>',\n 'export type PluginRuntimeProps = sdk.PluginRuntimeProps<TPlugin>',\n '',\n '// extra types',\n '',\n 'type ValueOf<T> = T[keyof T]',\n 'type AsyncFunction = (...args: any[]) => Promise<any>',\n '',\n 'export type PluginHandlers = sdk.PluginHandlers<TPlugin>',\n '',\n 'export type EventHandlers = Required<{',\n \" [K in keyof PluginHandlers['eventHandlers']]: NonNullable<PluginHandlers['eventHandlers'][K]>[number]\",\n '}>',\n 'export type MessageHandlers = Required<{',\n \" [K in keyof PluginHandlers['messageHandlers']]: NonNullable<PluginHandlers['messageHandlers'][K]>[number]\",\n '}>',\n 'export type HookHandlers = Required<{',\n \" [H in keyof PluginHandlers['hookHandlers']]: {\",\n \" [K in keyof PluginHandlers['hookHandlers'][H]]: NonNullable<PluginHandlers['hookHandlers'][H][K]>[number]\",\n ' }',\n '}>',\n '',\n \"export type AnyMessageHandler = MessageHandlers['*']\",\n \"export type AnyEventHandler = EventHandlers['*']\",\n \"export type AnyActionHandler = ValueOf<PluginHandlers['actionHandlers']>\",\n 'export type AnyHookHanders = {',\n \" [H in keyof HookHandlers]: HookHandlers[H]['*']\",\n '}',\n '',\n 'export type MessageHandlerProps = Parameters<AnyMessageHandler>[0]',\n 'export type EventHandlerProps = Parameters<AnyEventHandler>[0]',\n 'export type ActionHandlerProps = Parameters<AnyActionHandler>[0]',\n 'export type HookHandlerProps = {',\n ' [H in keyof AnyHookHanders]: Parameters<NonNullable<AnyHookHanders[H]>>[0]',\n '}',\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,4BAAoC;AAE7B,MAAM,mCAAmC,qBAAO;AAAA,EAC7C;AAAA,EAED,YAAY,QAA8B;AAC/C,UAAM;AAAA,MACJ,YAAY;AAAA,MACZ,MAAM,OAAO;AAAA,IACf,CAAC;AAED,SAAK,iBAAiB,IAAI,0CAAoB,MAAM;AACpD,SAAK,eAAe,QAAQ,SAAS;AACrC,SAAK,QAAQ,KAAK,cAAc;AAAA,EAClC;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,oBAAoB;AAAA,MACpB;AAAA,MACA,oCAAoC,KAAK,eAAe,QAAQ,KAAK,eAAe;AAAA,MACpF;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,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
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -39,6 +39,7 @@ var import_actions_module = require("./actions-module");
|
|
|
39
39
|
var import_configuration_module = require("./configuration-module");
|
|
40
40
|
var import_events_module = require("./events-module");
|
|
41
41
|
var import_states_module = require("./states-module");
|
|
42
|
+
var import_tables_module = require("./tables-module");
|
|
42
43
|
class PluginIntegrationsModule extends import_module.ReExportTypeModule {
|
|
43
44
|
constructor(plugin) {
|
|
44
45
|
super({
|
|
@@ -99,23 +100,36 @@ class PluginTypingsModule extends import_module.Module {
|
|
|
99
100
|
const actionsModule = new import_actions_module.ActionsModule(plugin.actions ?? {});
|
|
100
101
|
actionsModule.unshift("actions");
|
|
101
102
|
this.pushDep(actionsModule);
|
|
103
|
+
const tablesModule = new import_tables_module.TablesModule(plugin.tables ?? {});
|
|
104
|
+
tablesModule.unshift("tables");
|
|
105
|
+
this.pushDep(tablesModule);
|
|
102
106
|
this._dependencies = {
|
|
103
107
|
integrationsModule,
|
|
104
108
|
interfacesModule,
|
|
105
109
|
defaultConfigModule,
|
|
106
110
|
eventsModule,
|
|
107
111
|
statesModule,
|
|
108
|
-
actionsModule
|
|
112
|
+
actionsModule,
|
|
113
|
+
tablesModule
|
|
109
114
|
};
|
|
110
115
|
}
|
|
111
116
|
async getContent() {
|
|
112
|
-
const {
|
|
117
|
+
const {
|
|
118
|
+
integrationsModule,
|
|
119
|
+
interfacesModule,
|
|
120
|
+
defaultConfigModule,
|
|
121
|
+
eventsModule,
|
|
122
|
+
statesModule,
|
|
123
|
+
actionsModule,
|
|
124
|
+
tablesModule
|
|
125
|
+
} = this._dependencies;
|
|
113
126
|
const integrationsImport = integrationsModule.import(this);
|
|
114
127
|
const interfacesImport = interfacesModule.import(this);
|
|
115
128
|
const defaultConfigImport = defaultConfigModule.import(this);
|
|
116
129
|
const eventsImport = eventsModule.import(this);
|
|
117
130
|
const statesImport = statesModule.import(this);
|
|
118
131
|
const actionsImport = actionsModule;
|
|
132
|
+
const tablesImport = tablesModule.import(this);
|
|
119
133
|
return [
|
|
120
134
|
consts.GENERATED_HEADER,
|
|
121
135
|
`import * as ${integrationsModule.name} from './${integrationsImport}'`,
|
|
@@ -124,6 +138,7 @@ class PluginTypingsModule extends import_module.Module {
|
|
|
124
138
|
`import * as ${eventsModule.name} from './${eventsModule.name}'`,
|
|
125
139
|
`import * as ${statesModule.name} from './${statesModule.name}'`,
|
|
126
140
|
`import * as ${actionsModule.name} from './${actionsImport.name}'`,
|
|
141
|
+
`import * as ${tablesModule.name} from './${tablesImport}'`,
|
|
127
142
|
"",
|
|
128
143
|
`export * as ${integrationsModule.name} from './${integrationsImport}'`,
|
|
129
144
|
`export * as ${interfacesModule.name} from './${interfacesImport}'`,
|
|
@@ -131,6 +146,7 @@ class PluginTypingsModule extends import_module.Module {
|
|
|
131
146
|
`export * as ${eventsModule.name} from './${eventsImport}'`,
|
|
132
147
|
`export * as ${statesModule.name} from './${statesImport}'`,
|
|
133
148
|
`export * as ${actionsModule.name} from './${actionsImport.name}'`,
|
|
149
|
+
`export * as ${tablesModule.name} from './${tablesImport}'`,
|
|
134
150
|
"",
|
|
135
151
|
"export type TPlugin = {",
|
|
136
152
|
` integrations: ${integrationsModule.name}.${integrationsModule.exportName}`,
|
|
@@ -139,6 +155,7 @@ class PluginTypingsModule extends import_module.Module {
|
|
|
139
155
|
` events: ${eventsModule.name}.${eventsModule.exportName}`,
|
|
140
156
|
` states: ${statesModule.name}.${statesModule.exportName}`,
|
|
141
157
|
` actions: ${actionsModule.name}.${actionsModule.exportName}`,
|
|
158
|
+
` tables: ${tablesModule.name}.${tablesModule.exportName}`,
|
|
142
159
|
"}"
|
|
143
160
|
].join("\n");
|
|
144
161
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/code-generation/plugin-implementation/plugin-typings/index.ts"],
|
|
4
|
-
"sourcesContent": ["import * as sdk from '@botpress/sdk'\nimport * as utils from '../../../utils'\nimport * as consts from '../../consts'\nimport { IntegrationTypingsModule } from '../../integration-implementation/integration-typings'\nimport { InterfaceTypingsModule } from '../../interface-implementation'\nimport { Module, ReExportTypeModule, SingleFileModule } from '../../module'\nimport { ActionsModule } from './actions-module'\nimport { DefaultConfigurationModule } from './configuration-module'\nimport { EventsModule } from './events-module'\nimport { StatesModule } from './states-module'\n\nclass PluginIntegrationsModule extends ReExportTypeModule {\n public constructor(plugin: sdk.PluginDefinition) {\n super({\n exportName: 'Integrations',\n })\n\n for (const [alias, integration] of Object.entries(plugin.integrations ?? {})) {\n const integrationModule = new IntegrationTypingsModule(integration.definition)\n integrationModule.unshift(alias)\n this.pushDep(integrationModule)\n }\n }\n}\n\nclass PluginInterfacesModule extends ReExportTypeModule {\n public constructor(plugin: sdk.PluginDefinition) {\n super({\n exportName: 'Interfaces',\n })\n\n for (const [alias, intrface] of Object.entries(plugin.interfaces ?? {})) {\n const interfaceModule = new InterfaceTypingsModule(intrface.definition)\n interfaceModule.unshift(alias)\n this.pushDep(interfaceModule)\n }\n }\n}\n\ntype PluginTypingsIndexDependencies = {\n integrationsModule: PluginIntegrationsModule\n interfacesModule: PluginInterfacesModule\n defaultConfigModule: DefaultConfigurationModule\n eventsModule: EventsModule\n statesModule: StatesModule\n actionsModule: ActionsModule\n}\n\ntype _assertPropsInPluginDefinition = utils.types.AssertKeyOf<'props', sdk.PluginDefinition>\nconst _isLocalPluginDefinition = (\n plugin: sdk.PluginDefinition | sdk.PluginPackage['definition']\n): plugin is sdk.PluginDefinition => {\n return 'props' in plugin\n}\n\nexport class PluginTypingsModule extends Module {\n private _dependencies: PluginTypingsIndexDependencies\n\n public constructor(plugin: sdk.PluginDefinition | sdk.PluginPackage['definition']) {\n super({\n exportName: 'TPlugin',\n path: consts.INDEX_FILE,\n })\n\n const integrationsModule = _isLocalPluginDefinition(plugin)\n ? new PluginIntegrationsModule(plugin)\n : new SingleFileModule({\n path: consts.INDEX_FILE,\n exportName: 'Integrations',\n content: 'export type Integrations = {}',\n })\n integrationsModule.unshift('integrations')\n this.pushDep(integrationsModule)\n\n const interfacesModule = _isLocalPluginDefinition(plugin)\n ? new PluginInterfacesModule(plugin)\n : new SingleFileModule({\n path: consts.INDEX_FILE,\n exportName: 'Interfaces',\n content: 'export type Interfaces = {}',\n })\n interfacesModule.unshift('interfaces')\n this.pushDep(interfacesModule)\n\n const defaultConfigModule = new DefaultConfigurationModule(plugin.configuration)\n defaultConfigModule.unshift('configuration')\n this.pushDep(defaultConfigModule)\n\n const eventsModule = new EventsModule(plugin.events ?? {})\n eventsModule.unshift('events')\n this.pushDep(eventsModule)\n\n const statesModule = new StatesModule(plugin.states ?? {})\n statesModule.unshift('states')\n this.pushDep(statesModule)\n\n const actionsModule = new ActionsModule(plugin.actions ?? {})\n actionsModule.unshift('actions')\n this.pushDep(actionsModule)\n\n this._dependencies = {\n integrationsModule,\n interfacesModule,\n defaultConfigModule,\n eventsModule,\n statesModule,\n actionsModule,\n }\n }\n\n public async getContent() {\n const {
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,aAAwB;AACxB,iCAAyC;AACzC,sCAAuC;AACvC,oBAA6D;AAC7D,4BAA8B;AAC9B,kCAA2C;AAC3C,2BAA6B;AAC7B,2BAA6B;AAE7B,MAAM,iCAAiC,iCAAmB;AAAA,EACjD,YAAY,QAA8B;AAC/C,UAAM;AAAA,MACJ,YAAY;AAAA,IACd,CAAC;AAED,eAAW,CAAC,OAAO,WAAW,KAAK,OAAO,QAAQ,OAAO,gBAAgB,CAAC,CAAC,GAAG;AAC5E,YAAM,oBAAoB,IAAI,oDAAyB,YAAY,UAAU;AAC7E,wBAAkB,QAAQ,KAAK;AAC/B,WAAK,QAAQ,iBAAiB;AAAA,IAChC;AAAA,EACF;AACF;AAEA,MAAM,+BAA+B,iCAAmB;AAAA,EAC/C,YAAY,QAA8B;AAC/C,UAAM;AAAA,MACJ,YAAY;AAAA,IACd,CAAC;AAED,eAAW,CAAC,OAAO,QAAQ,KAAK,OAAO,QAAQ,OAAO,cAAc,CAAC,CAAC,GAAG;AACvE,YAAM,kBAAkB,IAAI,uDAAuB,SAAS,UAAU;AACtE,sBAAgB,QAAQ,KAAK;AAC7B,WAAK,QAAQ,eAAe;AAAA,IAC9B;AAAA,EACF;AACF;
|
|
4
|
+
"sourcesContent": ["import * as sdk from '@botpress/sdk'\nimport * as utils from '../../../utils'\nimport * as consts from '../../consts'\nimport { IntegrationTypingsModule } from '../../integration-implementation/integration-typings'\nimport { InterfaceTypingsModule } from '../../interface-implementation'\nimport { Module, ReExportTypeModule, SingleFileModule } from '../../module'\nimport { ActionsModule } from './actions-module'\nimport { DefaultConfigurationModule } from './configuration-module'\nimport { EventsModule } from './events-module'\nimport { StatesModule } from './states-module'\nimport { TablesModule } from './tables-module'\n\nclass PluginIntegrationsModule extends ReExportTypeModule {\n public constructor(plugin: sdk.PluginDefinition) {\n super({\n exportName: 'Integrations',\n })\n\n for (const [alias, integration] of Object.entries(plugin.integrations ?? {})) {\n const integrationModule = new IntegrationTypingsModule(integration.definition)\n integrationModule.unshift(alias)\n this.pushDep(integrationModule)\n }\n }\n}\n\nclass PluginInterfacesModule extends ReExportTypeModule {\n public constructor(plugin: sdk.PluginDefinition) {\n super({\n exportName: 'Interfaces',\n })\n\n for (const [alias, intrface] of Object.entries(plugin.interfaces ?? {})) {\n const interfaceModule = new InterfaceTypingsModule(intrface.definition)\n interfaceModule.unshift(alias)\n this.pushDep(interfaceModule)\n }\n }\n}\n\ntype PluginTypingsIndexDependencies = {\n integrationsModule: PluginIntegrationsModule\n interfacesModule: PluginInterfacesModule\n defaultConfigModule: DefaultConfigurationModule\n eventsModule: EventsModule\n statesModule: StatesModule\n actionsModule: ActionsModule\n tablesModule: TablesModule\n}\n\ntype _assertPropsInPluginDefinition = utils.types.AssertKeyOf<'props', sdk.PluginDefinition>\nconst _isLocalPluginDefinition = (\n plugin: sdk.PluginDefinition | sdk.PluginPackage['definition']\n): plugin is sdk.PluginDefinition => {\n return 'props' in plugin\n}\n\nexport class PluginTypingsModule extends Module {\n private _dependencies: PluginTypingsIndexDependencies\n\n public constructor(plugin: sdk.PluginDefinition | sdk.PluginPackage['definition']) {\n super({\n exportName: 'TPlugin',\n path: consts.INDEX_FILE,\n })\n\n const integrationsModule = _isLocalPluginDefinition(plugin)\n ? new PluginIntegrationsModule(plugin)\n : new SingleFileModule({\n path: consts.INDEX_FILE,\n exportName: 'Integrations',\n content: 'export type Integrations = {}',\n })\n integrationsModule.unshift('integrations')\n this.pushDep(integrationsModule)\n\n const interfacesModule = _isLocalPluginDefinition(plugin)\n ? new PluginInterfacesModule(plugin)\n : new SingleFileModule({\n path: consts.INDEX_FILE,\n exportName: 'Interfaces',\n content: 'export type Interfaces = {}',\n })\n interfacesModule.unshift('interfaces')\n this.pushDep(interfacesModule)\n\n const defaultConfigModule = new DefaultConfigurationModule(plugin.configuration)\n defaultConfigModule.unshift('configuration')\n this.pushDep(defaultConfigModule)\n\n const eventsModule = new EventsModule(plugin.events ?? {})\n eventsModule.unshift('events')\n this.pushDep(eventsModule)\n\n const statesModule = new StatesModule(plugin.states ?? {})\n statesModule.unshift('states')\n this.pushDep(statesModule)\n\n const actionsModule = new ActionsModule(plugin.actions ?? {})\n actionsModule.unshift('actions')\n this.pushDep(actionsModule)\n\n const tablesModule = new TablesModule(plugin.tables ?? {})\n tablesModule.unshift('tables')\n this.pushDep(tablesModule)\n\n this._dependencies = {\n integrationsModule,\n interfacesModule,\n defaultConfigModule,\n eventsModule,\n statesModule,\n actionsModule,\n tablesModule,\n }\n }\n\n public async getContent() {\n const {\n integrationsModule,\n interfacesModule,\n defaultConfigModule,\n eventsModule,\n statesModule,\n actionsModule,\n tablesModule,\n } = this._dependencies\n\n const integrationsImport = integrationsModule.import(this)\n const interfacesImport = interfacesModule.import(this)\n const defaultConfigImport = defaultConfigModule.import(this)\n const eventsImport = eventsModule.import(this)\n const statesImport = statesModule.import(this)\n const actionsImport = actionsModule\n const tablesImport = tablesModule.import(this)\n\n return [\n consts.GENERATED_HEADER,\n `import * as ${integrationsModule.name} from './${integrationsImport}'`,\n `import * as ${interfacesModule.name} from './${interfacesImport}'`,\n `import * as ${defaultConfigModule.name} from './${defaultConfigImport}'`,\n `import * as ${eventsModule.name} from './${eventsModule.name}'`,\n `import * as ${statesModule.name} from './${statesModule.name}'`,\n `import * as ${actionsModule.name} from './${actionsImport.name}'`,\n `import * as ${tablesModule.name} from './${tablesImport}'`,\n '',\n `export * as ${integrationsModule.name} from './${integrationsImport}'`,\n `export * as ${interfacesModule.name} from './${interfacesImport}'`,\n `export * as ${defaultConfigModule.name} from './${defaultConfigImport}'`,\n `export * as ${eventsModule.name} from './${eventsImport}'`,\n `export * as ${statesModule.name} from './${statesImport}'`,\n `export * as ${actionsModule.name} from './${actionsImport.name}'`,\n `export * as ${tablesModule.name} from './${tablesImport}'`,\n '',\n 'export type TPlugin = {',\n ` integrations: ${integrationsModule.name}.${integrationsModule.exportName}`,\n ` interfaces: ${interfacesModule.name}.${interfacesModule.exportName}`,\n ` configuration: ${defaultConfigModule.name}.${defaultConfigModule.exportName}`,\n ` events: ${eventsModule.name}.${eventsModule.exportName}`,\n ` states: ${statesModule.name}.${statesModule.exportName}`,\n ` actions: ${actionsModule.name}.${actionsModule.exportName}`,\n ` tables: ${tablesModule.name}.${tablesModule.exportName}`,\n '}',\n ].join('\\n')\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,64 @@
|
|
|
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 tables_module_exports = {};
|
|
30
|
+
__export(tables_module_exports, {
|
|
31
|
+
TableModule: () => TableModule,
|
|
32
|
+
TablesModule: () => TablesModule
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(tables_module_exports);
|
|
35
|
+
var import_generators = require("../../generators");
|
|
36
|
+
var import_module = require("../../module");
|
|
37
|
+
var strings = __toESM(require("../../strings"));
|
|
38
|
+
class TableModule extends import_module.Module {
|
|
39
|
+
constructor(name, _table) {
|
|
40
|
+
super({
|
|
41
|
+
path: `${name}.ts`,
|
|
42
|
+
exportName: strings.typeName(name)
|
|
43
|
+
});
|
|
44
|
+
this._table = _table;
|
|
45
|
+
}
|
|
46
|
+
async getContent() {
|
|
47
|
+
return (0, import_generators.zuiSchemaToTypeScriptType)(this._table.schema, this.exportName);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
class TablesModule extends import_module.ReExportTypeModule {
|
|
51
|
+
constructor(tables) {
|
|
52
|
+
super({ exportName: strings.typeName("tables") });
|
|
53
|
+
for (const [tableName, table] of Object.entries(tables)) {
|
|
54
|
+
const module2 = new TableModule(tableName, table);
|
|
55
|
+
this.pushDep(module2);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
60
|
+
0 && (module.exports = {
|
|
61
|
+
TableModule,
|
|
62
|
+
TablesModule
|
|
63
|
+
});
|
|
64
|
+
//# sourceMappingURL=tables-module.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/code-generation/plugin-implementation/plugin-typings/tables-module.ts"],
|
|
4
|
+
"sourcesContent": ["import * as sdk from '@botpress/sdk'\nimport { zuiSchemaToTypeScriptType } from '../../generators'\nimport { Module, ReExportTypeModule } from '../../module'\nimport * as strings from '../../strings'\n\nexport class TableModule extends Module {\n public constructor(\n name: string,\n private _table: sdk.BotTableDefinition\n ) {\n super({\n path: `${name}.ts`,\n exportName: strings.typeName(name),\n })\n }\n\n public async getContent() {\n return zuiSchemaToTypeScriptType(this._table.schema, this.exportName)\n }\n}\n\nexport class TablesModule extends ReExportTypeModule {\n public constructor(tables: Record<string, sdk.BotTableDefinition>) {\n super({ exportName: strings.typeName('tables') })\n for (const [tableName, table] of Object.entries(tables)) {\n const module = new TableModule(tableName, table)\n this.pushDep(module)\n }\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,wBAA0C;AAC1C,oBAA2C;AAC3C,cAAyB;AAElB,MAAM,oBAAoB,qBAAO;AAAA,EAC/B,YACL,MACQ,QACR;AACA,UAAM;AAAA,MACJ,MAAM,GAAG;AAAA,MACT,YAAY,QAAQ,SAAS,IAAI;AAAA,IACnC,CAAC;AALO;AAAA,EAMV;AAAA,EAEA,MAAa,aAAa;AACxB,eAAO,6CAA0B,KAAK,OAAO,QAAQ,KAAK,UAAU;AAAA,EACtE;AACF;AAEO,MAAM,qBAAqB,iCAAmB;AAAA,EAC5C,YAAY,QAAgD;AACjE,UAAM,EAAE,YAAY,QAAQ,SAAS,QAAQ,EAAE,CAAC;AAChD,eAAW,CAAC,WAAW,KAAK,KAAK,OAAO,QAAQ,MAAM,GAAG;AACvD,YAAMA,UAAS,IAAI,YAAY,WAAW,KAAK;AAC/C,WAAK,QAAQA,OAAM;AAAA,IACrB;AAAA,EACF;AACF;",
|
|
6
|
+
"names": ["module"]
|
|
7
|
+
}
|
|
@@ -32,7 +32,6 @@ __export(plugin_package_exports, {
|
|
|
32
32
|
});
|
|
33
33
|
module.exports = __toCommonJS(plugin_package_exports);
|
|
34
34
|
var import_lodash = __toESM(require("lodash"));
|
|
35
|
-
var utils = __toESM(require("../../utils"));
|
|
36
35
|
var consts = __toESM(require("../consts"));
|
|
37
36
|
var gen = __toESM(require("../generators"));
|
|
38
37
|
var mod = __toESM(require("../module"));
|
|
@@ -56,55 +55,14 @@ class ImplementationModule extends mod.Module {
|
|
|
56
55
|
].join("\n");
|
|
57
56
|
}
|
|
58
57
|
}
|
|
59
|
-
class
|
|
58
|
+
class PluginModule extends mod.Module {
|
|
60
59
|
constructor(_pkg) {
|
|
61
60
|
super({
|
|
62
61
|
path: consts.INDEX_FILE,
|
|
63
62
|
exportName: consts.DEFAULT_EXPORT_NAME
|
|
64
63
|
});
|
|
65
64
|
this._pkg = _pkg;
|
|
66
|
-
this._implModule = new ImplementationModule(this._pkg.
|
|
67
|
-
this.pushDep(this._implModule);
|
|
68
|
-
}
|
|
69
|
-
_implModule;
|
|
70
|
-
async getContent() {
|
|
71
|
-
const implImport = this._implModule.import(this);
|
|
72
|
-
const id = void 0;
|
|
73
|
-
const uri = utils.path.toNormalizedPosixPath(this._pkg.path);
|
|
74
|
-
const definitionImport = utils.path.toNormalizedPosixPath(
|
|
75
|
-
utils.path.rmExtension(utils.path.join(this._pkg.path, consts.fromWorkDir.pluginDefinition))
|
|
76
|
-
);
|
|
77
|
-
const tsId = gen.primitiveToTypescriptValue(id);
|
|
78
|
-
const tsUri = gen.primitiveToTypescriptValue(uri);
|
|
79
|
-
const tsName = gen.primitiveToTypescriptValue(this._pkg.name);
|
|
80
|
-
const tsVersion = gen.primitiveToTypescriptValue(this._pkg.version);
|
|
81
|
-
return [
|
|
82
|
-
consts.GENERATED_HEADER,
|
|
83
|
-
'import * as sdk from "@botpress/sdk"',
|
|
84
|
-
"",
|
|
85
|
-
`import definition from "${definitionImport}"`,
|
|
86
|
-
`import implementation from "./${implImport}"`,
|
|
87
|
-
"",
|
|
88
|
-
"export default {",
|
|
89
|
-
' type: "plugin",',
|
|
90
|
-
` id: ${tsId},`,
|
|
91
|
-
` uri: ${tsUri},`,
|
|
92
|
-
` name: ${tsName},`,
|
|
93
|
-
` version: ${tsVersion},`,
|
|
94
|
-
" definition,",
|
|
95
|
-
" implementation,",
|
|
96
|
-
"} satisfies sdk.PluginPackage"
|
|
97
|
-
].join("\n");
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
class RemotePluginModule extends mod.Module {
|
|
101
|
-
constructor(_pkg) {
|
|
102
|
-
super({
|
|
103
|
-
path: consts.INDEX_FILE,
|
|
104
|
-
exportName: consts.DEFAULT_EXPORT_NAME
|
|
105
|
-
});
|
|
106
|
-
this._pkg = _pkg;
|
|
107
|
-
this._implModule = new ImplementationModule(this._pkg.plugin.code);
|
|
65
|
+
this._implModule = new ImplementationModule(this._pkg.code);
|
|
108
66
|
this.pushDep(this._implModule);
|
|
109
67
|
this._defModule = new import_plugin_package_definition.PluginPackageDefinitionModule(this._pkg.plugin);
|
|
110
68
|
this._defModule.unshift("definition");
|
|
@@ -116,7 +74,7 @@ class RemotePluginModule extends mod.Module {
|
|
|
116
74
|
const implImport = this._implModule.import(this);
|
|
117
75
|
const defImport = this._defModule.import(this);
|
|
118
76
|
const id = this._pkg.plugin.id;
|
|
119
|
-
const uri =
|
|
77
|
+
const uri = this._pkg.path;
|
|
120
78
|
const tsId = gen.primitiveToTypescriptValue(id);
|
|
121
79
|
const tsUri = gen.primitiveToTypescriptValue(uri);
|
|
122
80
|
const tsName = gen.primitiveToTypescriptValue(this._pkg.name);
|
|
@@ -141,7 +99,7 @@ class RemotePluginModule extends mod.Module {
|
|
|
141
99
|
}
|
|
142
100
|
}
|
|
143
101
|
const generatePluginPackage = async (pkg) => {
|
|
144
|
-
const module2 =
|
|
102
|
+
const module2 = new PluginModule(pkg);
|
|
145
103
|
return module2.flatten();
|
|
146
104
|
};
|
|
147
105
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/code-generation/plugin-package/index.ts"],
|
|
4
|
-
"sourcesContent": ["import _ from 'lodash'\nimport * as
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAc;AACd,
|
|
4
|
+
"sourcesContent": ["import _ from 'lodash'\nimport * as consts from '../consts'\nimport * as gen from '../generators'\nimport * as mod from '../module'\nimport * as types from '../typings'\nimport { PluginPackageDefinitionModule } from './plugin-package-definition'\n\nclass ImplementationModule extends mod.Module {\n public constructor(private _implementationCode: string) {\n super({\n path: 'implementation.ts',\n exportName: 'default',\n })\n }\n\n public async getContent(): Promise<string> {\n const base64Str = Buffer.from(this._implementationCode).toString('base64')\n const chunks: string[] = _.chunk(base64Str, 80).map((chunk) => chunk.join(''))\n\n return [\n //\n 'export default Buffer.from([',\n ...chunks.map((chunk) => ` \"${chunk}\",`),\n '].join(\"\"), \"base64\")',\n ].join('\\n')\n }\n}\n\nclass PluginModule extends mod.Module {\n private _implModule: ImplementationModule\n private _defModule: PluginPackageDefinitionModule\n\n public constructor(private _pkg: types.PluginInstallablePackage) {\n super({\n path: consts.INDEX_FILE,\n exportName: consts.DEFAULT_EXPORT_NAME,\n })\n\n this._implModule = new ImplementationModule(this._pkg.code)\n this.pushDep(this._implModule)\n\n this._defModule = new PluginPackageDefinitionModule(this._pkg.plugin)\n this._defModule.unshift('definition')\n this.pushDep(this._defModule)\n }\n\n public async getContent(): Promise<string> {\n const implImport = this._implModule.import(this)\n const defImport = this._defModule.import(this)\n\n const id = this._pkg.plugin.id\n const uri = this._pkg.path\n\n const tsId = gen.primitiveToTypescriptValue(id)\n const tsUri = gen.primitiveToTypescriptValue(uri)\n const tsName = gen.primitiveToTypescriptValue(this._pkg.name)\n const tsVersion = gen.primitiveToTypescriptValue(this._pkg.version)\n\n return [\n consts.GENERATED_HEADER,\n 'import * as sdk from \"@botpress/sdk\"',\n '',\n `import definition from \"./${defImport}\"`,\n `import implementation from \"./${implImport}\"`,\n '',\n 'export default {',\n ' type: \"plugin\",',\n ` id: ${tsId},`,\n ` uri: ${tsUri},`,\n ` name: ${tsName},`,\n ` version: ${tsVersion},`,\n ' definition,',\n ' implementation,',\n '} satisfies sdk.PluginPackage',\n ].join('\\n')\n }\n}\n\nexport const generatePluginPackage = async (pkg: types.PluginInstallablePackage): Promise<types.File[]> => {\n const module = new PluginModule(pkg)\n return module.flatten()\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAc;AACd,aAAwB;AACxB,UAAqB;AACrB,UAAqB;AAErB,uCAA8C;AAE9C,MAAM,6BAA6B,IAAI,OAAO;AAAA,EACrC,YAAoB,qBAA6B;AACtD,UAAM;AAAA,MACJ,MAAM;AAAA,MACN,YAAY;AAAA,IACd,CAAC;AAJwB;AAAA,EAK3B;AAAA,EAEA,MAAa,aAA8B;AACzC,UAAM,YAAY,OAAO,KAAK,KAAK,mBAAmB,EAAE,SAAS,QAAQ;AACzE,UAAM,SAAmB,cAAAA,QAAE,MAAM,WAAW,EAAE,EAAE,IAAI,CAAC,UAAU,MAAM,KAAK,EAAE,CAAC;AAE7E,WAAO;AAAA;AAAA,MAEL;AAAA,MACA,GAAG,OAAO,IAAI,CAAC,UAAU,MAAM,SAAS;AAAA,MACxC;AAAA,IACF,EAAE,KAAK,IAAI;AAAA,EACb;AACF;AAEA,MAAM,qBAAqB,IAAI,OAAO;AAAA,EAI7B,YAAoB,MAAsC;AAC/D,UAAM;AAAA,MACJ,MAAM,OAAO;AAAA,MACb,YAAY,OAAO;AAAA,IACrB,CAAC;AAJwB;AAMzB,SAAK,cAAc,IAAI,qBAAqB,KAAK,KAAK,IAAI;AAC1D,SAAK,QAAQ,KAAK,WAAW;AAE7B,SAAK,aAAa,IAAI,+DAA8B,KAAK,KAAK,MAAM;AACpE,SAAK,WAAW,QAAQ,YAAY;AACpC,SAAK,QAAQ,KAAK,UAAU;AAAA,EAC9B;AAAA,EAfQ;AAAA,EACA;AAAA,EAgBR,MAAa,aAA8B;AACzC,UAAM,aAAa,KAAK,YAAY,OAAO,IAAI;AAC/C,UAAM,YAAY,KAAK,WAAW,OAAO,IAAI;AAE7C,UAAM,KAAK,KAAK,KAAK,OAAO;AAC5B,UAAM,MAAM,KAAK,KAAK;AAEtB,UAAM,OAAO,IAAI,2BAA2B,EAAE;AAC9C,UAAM,QAAQ,IAAI,2BAA2B,GAAG;AAChD,UAAM,SAAS,IAAI,2BAA2B,KAAK,KAAK,IAAI;AAC5D,UAAM,YAAY,IAAI,2BAA2B,KAAK,KAAK,OAAO;AAElE,WAAO;AAAA,MACL,OAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA,6BAA6B;AAAA,MAC7B,iCAAiC;AAAA,MACjC;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS;AAAA,MACT,UAAU;AAAA,MACV,WAAW;AAAA,MACX,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,IACF,EAAE,KAAK,IAAI;AAAA,EACb;AACF;AAEO,MAAM,wBAAwB,OAAO,QAA+D;AACzG,QAAMC,UAAS,IAAI,aAAa,GAAG;AACnC,SAAOA,QAAO,QAAQ;AACxB;",
|
|
6
6
|
"names": ["_", "module"]
|
|
7
7
|
}
|
|
@@ -35,6 +35,7 @@ __export(actions_module_exports, {
|
|
|
35
35
|
});
|
|
36
36
|
module.exports = __toCommonJS(actions_module_exports);
|
|
37
37
|
var import_generators = require("../../generators");
|
|
38
|
+
var gen = __toESM(require("../../generators"));
|
|
38
39
|
var import_module = require("../../module");
|
|
39
40
|
var strings = __toESM(require("../../strings"));
|
|
40
41
|
class ActionInputModule extends import_module.Module {
|
|
@@ -61,7 +62,13 @@ class ActionOutputModule extends import_module.Module {
|
|
|
61
62
|
}
|
|
62
63
|
class ActionModule extends import_module.ReExportVariableModule {
|
|
63
64
|
constructor(actionName, action) {
|
|
64
|
-
super({
|
|
65
|
+
super({
|
|
66
|
+
exportName: strings.varName(actionName),
|
|
67
|
+
extraProps: gen.primitiveRecordToTypescriptValues({
|
|
68
|
+
title: action.title,
|
|
69
|
+
description: action.description
|
|
70
|
+
})
|
|
71
|
+
});
|
|
65
72
|
const inputModule = new ActionInputModule(action.input);
|
|
66
73
|
const outputModule = new ActionOutputModule(action.output);
|
|
67
74
|
this.pushDep(inputModule);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/code-generation/plugin-package/plugin-package-definition/actions-module.ts"],
|
|
4
|
-
"sourcesContent": ["import { jsonSchemaToTypescriptZuiSchema } from '../../generators'\nimport { Module, ReExportVariableModule } from '../../module'\nimport * as strings from '../../strings'\nimport * as types from './typings'\n\ntype ActionInput = types.
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAgD;AAChD,oBAA+C;AAC/C,cAAyB;AAMlB,MAAM,0BAA0B,qBAAO;AAAA,EACrC,YAAoB,QAAqB;AAC9C,UAAM,OAAO;AACb,UAAM,aAAa,QAAQ,QAAQ,IAAI;AACvC,UAAM,EAAE,MAAM,GAAG,WAAW,WAAW,CAAC;AAHf;AAAA,EAI3B;AAAA,EAEA,MAAa,aAAa;AACxB,eAAO,mDAAgC,KAAK,OAAO,QAAQ,KAAK,UAAU;AAAA,EAC5E;AACF;AAEO,MAAM,2BAA2B,qBAAO;AAAA,EACtC,YAAoB,SAAuB;AAChD,UAAM,OAAO;AACb,UAAM,aAAa,QAAQ,QAAQ,IAAI;AACvC,UAAM,EAAE,MAAM,GAAG,WAAW,WAAW,CAAC;AAHf;AAAA,EAI3B;AAAA,EAEA,MAAa,aAAa;AACxB,eAAO,mDAAgC,KAAK,QAAQ,QAAQ,KAAK,UAAU;AAAA,EAC7E;AACF;AAEO,MAAM,qBAAqB,qCAAuB;AAAA,EAChD,YAAY,YAAoB,
|
|
4
|
+
"sourcesContent": ["import { jsonSchemaToTypescriptZuiSchema } from '../../generators'\nimport * as gen from '../../generators'\nimport { Module, ReExportVariableModule } from '../../module'\nimport * as strings from '../../strings'\nimport * as types from './typings'\n\ntype ActionInput = types.ActionDefinition['input']\ntype ActionOutput = types.ActionDefinition['output']\n\nexport class ActionInputModule extends Module {\n public constructor(private _input: ActionInput) {\n const name = 'input'\n const exportName = strings.varName(name)\n super({ path: `${name}.ts`, exportName })\n }\n\n public async getContent() {\n return jsonSchemaToTypescriptZuiSchema(this._input.schema, this.exportName)\n }\n}\n\nexport class ActionOutputModule extends Module {\n public constructor(private _output: ActionOutput) {\n const name = 'output'\n const exportName = strings.varName(name)\n super({ path: `${name}.ts`, exportName })\n }\n\n public async getContent() {\n return jsonSchemaToTypescriptZuiSchema(this._output.schema, this.exportName)\n }\n}\n\nexport class ActionModule extends ReExportVariableModule {\n public constructor(actionName: string, action: types.ActionDefinition) {\n super({\n exportName: strings.varName(actionName),\n extraProps: gen.primitiveRecordToTypescriptValues({\n title: action.title,\n description: action.description,\n }),\n })\n\n const inputModule = new ActionInputModule(action.input)\n const outputModule = new ActionOutputModule(action.output)\n\n this.pushDep(inputModule)\n this.pushDep(outputModule)\n }\n}\n\nexport class ActionsModule extends ReExportVariableModule {\n public constructor(actions: Record<string, types.ActionDefinition>) {\n super({ exportName: strings.varName('actions') })\n for (const [actionName, action] of Object.entries(actions)) {\n const module = new ActionModule(actionName, action)\n module.unshift(actionName)\n this.pushDep(module)\n }\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAgD;AAChD,UAAqB;AACrB,oBAA+C;AAC/C,cAAyB;AAMlB,MAAM,0BAA0B,qBAAO;AAAA,EACrC,YAAoB,QAAqB;AAC9C,UAAM,OAAO;AACb,UAAM,aAAa,QAAQ,QAAQ,IAAI;AACvC,UAAM,EAAE,MAAM,GAAG,WAAW,WAAW,CAAC;AAHf;AAAA,EAI3B;AAAA,EAEA,MAAa,aAAa;AACxB,eAAO,mDAAgC,KAAK,OAAO,QAAQ,KAAK,UAAU;AAAA,EAC5E;AACF;AAEO,MAAM,2BAA2B,qBAAO;AAAA,EACtC,YAAoB,SAAuB;AAChD,UAAM,OAAO;AACb,UAAM,aAAa,QAAQ,QAAQ,IAAI;AACvC,UAAM,EAAE,MAAM,GAAG,WAAW,WAAW,CAAC;AAHf;AAAA,EAI3B;AAAA,EAEA,MAAa,aAAa;AACxB,eAAO,mDAAgC,KAAK,QAAQ,QAAQ,KAAK,UAAU;AAAA,EAC7E;AACF;AAEO,MAAM,qBAAqB,qCAAuB;AAAA,EAChD,YAAY,YAAoB,QAAgC;AACrE,UAAM;AAAA,MACJ,YAAY,QAAQ,QAAQ,UAAU;AAAA,MACtC,YAAY,IAAI,kCAAkC;AAAA,QAChD,OAAO,OAAO;AAAA,QACd,aAAa,OAAO;AAAA,MACtB,CAAC;AAAA,IACH,CAAC;AAED,UAAM,cAAc,IAAI,kBAAkB,OAAO,KAAK;AACtD,UAAM,eAAe,IAAI,mBAAmB,OAAO,MAAM;AAEzD,SAAK,QAAQ,WAAW;AACxB,SAAK,QAAQ,YAAY;AAAA,EAC3B;AACF;AAEO,MAAM,sBAAsB,qCAAuB;AAAA,EACjD,YAAY,SAAiD;AAClE,UAAM,EAAE,YAAY,QAAQ,QAAQ,SAAS,EAAE,CAAC;AAChD,eAAW,CAAC,YAAY,MAAM,KAAK,OAAO,QAAQ,OAAO,GAAG;AAC1D,YAAMA,UAAS,IAAI,aAAa,YAAY,MAAM;AAClD,MAAAA,QAAO,QAAQ,UAAU;AACzB,WAAK,QAAQA,OAAM;AAAA,IACrB;AAAA,EACF;AACF;",
|
|
6
6
|
"names": ["module"]
|
|
7
7
|
}
|
package/dist/code-generation/plugin-package/plugin-package-definition/configuration-module.js
CHANGED
|
@@ -33,6 +33,7 @@ __export(configuration_module_exports, {
|
|
|
33
33
|
module.exports = __toCommonJS(configuration_module_exports);
|
|
34
34
|
var import_consts = require("../../consts");
|
|
35
35
|
var import_generators = require("../../generators");
|
|
36
|
+
var gen = __toESM(require("../../generators"));
|
|
36
37
|
var import_module = require("../../module");
|
|
37
38
|
var strings = __toESM(require("../../strings"));
|
|
38
39
|
class DefaultConfigurationModule extends import_module.Module {
|
|
@@ -46,7 +47,15 @@ class DefaultConfigurationModule extends import_module.Module {
|
|
|
46
47
|
this._configuration = _configuration;
|
|
47
48
|
}
|
|
48
49
|
async getContent() {
|
|
49
|
-
|
|
50
|
+
const schema = this._configuration.schema ?? { type: "object", properties: {} };
|
|
51
|
+
return (0, import_generators.jsonSchemaToTypescriptZuiSchema)(
|
|
52
|
+
schema,
|
|
53
|
+
this.exportName,
|
|
54
|
+
gen.primitiveRecordToTypescriptValues({
|
|
55
|
+
title: this._configuration.title,
|
|
56
|
+
description: this._configuration.description
|
|
57
|
+
})
|
|
58
|
+
);
|
|
50
59
|
}
|
|
51
60
|
}
|
|
52
61
|
// Annotate the CommonJS export names for ESM import in node:
|
package/dist/code-generation/plugin-package/plugin-package-definition/configuration-module.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/code-generation/plugin-package/plugin-package-definition/configuration-module.ts"],
|
|
4
|
-
"sourcesContent": ["import { INDEX_FILE } from '../../consts'\nimport { jsonSchemaToTypescriptZuiSchema } from '../../generators'\nimport { Module } from '../../module'\nimport * as strings from '../../strings'\nimport * as types from './typings'\n\nexport class DefaultConfigurationModule extends Module {\n public constructor(private _configuration: types.
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"sourcesContent": ["import { JSONSchema7 } from 'json-schema'\nimport { INDEX_FILE } from '../../consts'\nimport { jsonSchemaToTypescriptZuiSchema } from '../../generators'\nimport * as gen from '../../generators'\nimport { Module } from '../../module'\nimport * as strings from '../../strings'\nimport * as types from './typings'\n\nexport class DefaultConfigurationModule extends Module {\n public constructor(private _configuration: types.ConfigurationDefinition) {\n const name = 'configuration'\n const exportName = strings.varName(name)\n super({\n path: INDEX_FILE,\n exportName,\n })\n }\n\n public async getContent() {\n const schema: JSONSchema7 = this._configuration.schema ?? { type: 'object', properties: {} }\n return jsonSchemaToTypescriptZuiSchema(\n schema,\n this.exportName,\n gen.primitiveRecordToTypescriptValues({\n title: this._configuration.title,\n description: this._configuration.description,\n })\n )\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA2B;AAC3B,wBAAgD;AAChD,UAAqB;AACrB,oBAAuB;AACvB,cAAyB;AAGlB,MAAM,mCAAmC,qBAAO;AAAA,EAC9C,YAAoB,gBAA+C;AACxE,UAAM,OAAO;AACb,UAAM,aAAa,QAAQ,QAAQ,IAAI;AACvC,UAAM;AAAA,MACJ,MAAM;AAAA,MACN;AAAA,IACF,CAAC;AANwB;AAAA,EAO3B;AAAA,EAEA,MAAa,aAAa;AACxB,UAAM,SAAsB,KAAK,eAAe,UAAU,EAAE,MAAM,UAAU,YAAY,CAAC,EAAE;AAC3F,eAAO;AAAA,MACL;AAAA,MACA,KAAK;AAAA,MACL,IAAI,kCAAkC;AAAA,QACpC,OAAO,KAAK,eAAe;AAAA,QAC3B,aAAa,KAAK,eAAe;AAAA,MACnC,CAAC;AAAA,IACH;AAAA,EACF;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -33,6 +33,7 @@ __export(events_module_exports, {
|
|
|
33
33
|
});
|
|
34
34
|
module.exports = __toCommonJS(events_module_exports);
|
|
35
35
|
var import_generators = require("../../generators");
|
|
36
|
+
var gen = __toESM(require("../../generators"));
|
|
36
37
|
var import_module = require("../../module");
|
|
37
38
|
var strings = __toESM(require("../../strings"));
|
|
38
39
|
class EventModule extends import_module.Module {
|
|
@@ -43,10 +44,14 @@ class EventModule extends import_module.Module {
|
|
|
43
44
|
this._event = _event;
|
|
44
45
|
}
|
|
45
46
|
async getContent() {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
return (0, import_generators.jsonSchemaToTypescriptZuiSchema)(
|
|
48
|
+
this._event.schema,
|
|
49
|
+
this.exportName,
|
|
50
|
+
gen.primitiveRecordToTypescriptValues({
|
|
51
|
+
title: this._event.title,
|
|
52
|
+
description: this._event.description
|
|
53
|
+
})
|
|
54
|
+
);
|
|
50
55
|
}
|
|
51
56
|
}
|
|
52
57
|
class EventsModule extends import_module.ReExportVariableModule {
|