@botpress/cli 2.2.5 → 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.
Files changed (142) hide show
  1. package/.turbo/turbo-build.log +8 -8
  2. package/dist/api/bot-body.js.map +2 -2
  3. package/dist/api/client.js +10 -2
  4. package/dist/api/client.js.map +2 -2
  5. package/dist/api/find-previous-version.test.js +1 -1
  6. package/dist/api/find-previous-version.test.js.map +2 -2
  7. package/dist/api/index.js +1 -0
  8. package/dist/api/index.js.map +2 -2
  9. package/dist/api/integration-body.js +6 -19
  10. package/dist/api/integration-body.js.map +2 -2
  11. package/dist/api/interface-body.js +1 -5
  12. package/dist/api/interface-body.js.map +2 -2
  13. package/dist/api/plugin-body.js +3 -0
  14. package/dist/api/plugin-body.js.map +2 -2
  15. package/dist/api/types.js.map +1 -1
  16. package/dist/code-generation/bot-implementation/bot-implementation.js +5 -2
  17. package/dist/code-generation/bot-implementation/bot-implementation.js.map +2 -2
  18. package/dist/code-generation/bot-implementation/bot-plugins/plugin-module.js +3 -0
  19. package/dist/code-generation/bot-implementation/bot-plugins/plugin-module.js.map +2 -2
  20. package/dist/code-generation/bot-implementation/bot-typings/index.js +11 -2
  21. package/dist/code-generation/bot-implementation/bot-typings/index.js.map +2 -2
  22. package/dist/code-generation/bot-implementation/bot-typings/tables-module.js +64 -0
  23. package/dist/code-generation/bot-implementation/bot-typings/tables-module.js.map +7 -0
  24. package/dist/code-generation/generators.js +11 -2
  25. package/dist/code-generation/generators.js.map +3 -3
  26. package/dist/code-generation/integration-package/index.js +4 -21
  27. package/dist/code-generation/integration-package/index.js.map +2 -2
  28. package/dist/code-generation/integration-package/integration-package-definition/actions-module.js +10 -1
  29. package/dist/code-generation/integration-package/integration-package-definition/actions-module.js.map +2 -2
  30. package/dist/code-generation/integration-package/integration-package-definition/channels-module.js +11 -1
  31. package/dist/code-generation/integration-package/integration-package-definition/channels-module.js.map +2 -2
  32. package/dist/code-generation/integration-package/integration-package-definition/configuration-module.js +10 -8
  33. package/dist/code-generation/integration-package/integration-package-definition/configuration-module.js.map +2 -2
  34. package/dist/code-generation/integration-package/integration-package-definition/configurations-module.js +10 -5
  35. package/dist/code-generation/integration-package/integration-package-definition/configurations-module.js.map +2 -2
  36. package/dist/code-generation/integration-package/integration-package-definition/entities-module.js +9 -1
  37. package/dist/code-generation/integration-package/integration-package-definition/entities-module.js.map +2 -2
  38. package/dist/code-generation/integration-package/integration-package-definition/events-module.js +9 -4
  39. package/dist/code-generation/integration-package/integration-package-definition/events-module.js.map +2 -2
  40. package/dist/code-generation/integration-package/integration-package-definition/index.js +12 -3
  41. package/dist/code-generation/integration-package/integration-package-definition/index.js.map +2 -2
  42. package/dist/code-generation/integration-package/integration-package-definition/interfaces-module.js +61 -0
  43. package/dist/code-generation/integration-package/integration-package-definition/interfaces-module.js.map +7 -0
  44. package/dist/code-generation/integration-package/integration-package-definition/states-module.js +6 -1
  45. package/dist/code-generation/integration-package/integration-package-definition/states-module.js.map +2 -2
  46. package/dist/code-generation/integration-package/integration-package-definition/typings.js.map +1 -1
  47. package/dist/code-generation/interface-package/index.js +4 -21
  48. package/dist/code-generation/interface-package/index.js.map +2 -2
  49. package/dist/code-generation/interface-package/interface-package-definition/actions-module.js +10 -1
  50. package/dist/code-generation/interface-package/interface-package-definition/actions-module.js.map +2 -2
  51. package/dist/code-generation/interface-package/interface-package-definition/channels-module.js +9 -1
  52. package/dist/code-generation/interface-package/interface-package-definition/channels-module.js.map +2 -2
  53. package/dist/code-generation/interface-package/interface-package-definition/entities-module.js +9 -1
  54. package/dist/code-generation/interface-package/interface-package-definition/entities-module.js.map +2 -2
  55. package/dist/code-generation/interface-package/interface-package-definition/events-module.js +9 -1
  56. package/dist/code-generation/interface-package/interface-package-definition/events-module.js.map +2 -2
  57. package/dist/code-generation/interface-package/interface-package-definition/index.js +0 -2
  58. package/dist/code-generation/interface-package/interface-package-definition/index.js.map +2 -2
  59. package/dist/code-generation/interface-package/interface-package-definition/typings.js.map +1 -1
  60. package/dist/code-generation/module.js +13 -7
  61. package/dist/code-generation/module.js.map +2 -2
  62. package/dist/code-generation/plugin-implementation/plugin-implementation.js +27 -4
  63. package/dist/code-generation/plugin-implementation/plugin-implementation.js.map +2 -2
  64. package/dist/code-generation/plugin-implementation/plugin-typings/index.js +19 -2
  65. package/dist/code-generation/plugin-implementation/plugin-typings/index.js.map +2 -2
  66. package/dist/code-generation/plugin-implementation/plugin-typings/tables-module.js +64 -0
  67. package/dist/code-generation/plugin-implementation/plugin-typings/tables-module.js.map +7 -0
  68. package/dist/code-generation/plugin-package/index.js +4 -46
  69. package/dist/code-generation/plugin-package/index.js.map +2 -2
  70. package/dist/code-generation/plugin-package/plugin-package-definition/actions-module.js +8 -1
  71. package/dist/code-generation/plugin-package/plugin-package-definition/actions-module.js.map +2 -2
  72. package/dist/code-generation/plugin-package/plugin-package-definition/configuration-module.js +10 -1
  73. package/dist/code-generation/plugin-package/plugin-package-definition/configuration-module.js.map +2 -2
  74. package/dist/code-generation/plugin-package/plugin-package-definition/events-module.js +9 -4
  75. package/dist/code-generation/plugin-package/plugin-package-definition/events-module.js.map +2 -2
  76. package/dist/code-generation/plugin-package/plugin-package-definition/index.js +15 -3
  77. package/dist/code-generation/plugin-package/plugin-package-definition/index.js.map +2 -2
  78. package/dist/code-generation/plugin-package/plugin-package-definition/interfaces-module.js +58 -0
  79. package/dist/code-generation/plugin-package/plugin-package-definition/interfaces-module.js.map +7 -0
  80. package/dist/code-generation/plugin-package/plugin-package-definition/states-module.js +6 -1
  81. package/dist/code-generation/plugin-package/plugin-package-definition/states-module.js.map +2 -2
  82. package/dist/code-generation/plugin-package/plugin-package-definition/typings.js.map +1 -1
  83. package/dist/code-generation/strings.js +10 -5
  84. package/dist/code-generation/strings.js.map +2 -2
  85. package/dist/code-generation/typings.js.map +1 -1
  86. package/dist/code-generation/typings.test.js +15 -0
  87. package/dist/code-generation/typings.test.js.map +7 -0
  88. package/dist/command-implementations/add-command.js +70 -25
  89. package/dist/command-implementations/add-command.js.map +2 -2
  90. package/dist/command-implementations/bundle-command.js +34 -27
  91. package/dist/command-implementations/bundle-command.js.map +2 -2
  92. package/dist/command-implementations/deploy-command.js +26 -68
  93. package/dist/command-implementations/deploy-command.js.map +2 -2
  94. package/dist/command-implementations/dev-command.js +13 -17
  95. package/dist/command-implementations/dev-command.js.map +2 -2
  96. package/dist/command-implementations/lint-command.js +5 -8
  97. package/dist/command-implementations/lint-command.js.map +3 -3
  98. package/dist/command-implementations/plugin-commands.js +1 -2
  99. package/dist/command-implementations/plugin-commands.js.map +2 -2
  100. package/dist/command-implementations/project-command.js +82 -34
  101. package/dist/command-implementations/project-command.js.map +2 -2
  102. package/dist/command-implementations/read-command.js +23 -8
  103. package/dist/command-implementations/read-command.js.map +2 -2
  104. package/dist/command-implementations/serve-command.js +1 -1
  105. package/dist/command-implementations/serve-command.js.map +1 -1
  106. package/dist/consts.js +4 -2
  107. package/dist/consts.js.map +2 -2
  108. package/dist/errors.js +3 -3
  109. package/dist/errors.js.map +2 -2
  110. package/dist/linter/base-linter.test.js +6 -1
  111. package/dist/linter/base-linter.test.js.map +2 -2
  112. package/dist/linter/bot-linter.js.map +2 -2
  113. package/dist/linter/integration-linter.js.map +1 -1
  114. package/dist/linter/interface-linter.js.map +2 -2
  115. package/dist/linter/ruleset-tests/bot.ruleset.test.js.map +2 -2
  116. package/dist/linter/ruleset-tests/interface.ruleset.test.js.map +2 -2
  117. package/dist/sdk/index.js +0 -2
  118. package/dist/sdk/index.js.map +2 -2
  119. package/dist/{sdk/resolve-bot-interfaces.js → tables/index.js} +7 -21
  120. package/dist/tables/index.js.map +7 -0
  121. package/dist/tables/schemas.js +106 -0
  122. package/dist/tables/schemas.js.map +7 -0
  123. package/dist/tables/tables-publisher.js +157 -0
  124. package/dist/tables/tables-publisher.js.map +7 -0
  125. package/dist/utils/esbuild-utils.js +15 -13
  126. package/dist/utils/esbuild-utils.js.map +2 -2
  127. package/dist/utils/type-utils.js.map +1 -1
  128. package/package.json +2 -2
  129. package/templates/empty-bot/.botpress/implementation/index.ts +5 -2
  130. package/templates/empty-bot/.botpress/implementation/typings/index.ts +3 -0
  131. package/templates/empty-bot/.botpress/implementation/typings/tables/index.ts +6 -0
  132. package/templates/empty-bot/package.json +1 -1
  133. package/templates/empty-integration/package.json +1 -1
  134. package/templates/empty-plugin/.botpress/implementation/index.ts +27 -4
  135. package/templates/empty-plugin/.botpress/implementation/typings/index.ts +3 -0
  136. package/templates/empty-plugin/.botpress/implementation/typings/tables/index.ts +6 -0
  137. package/templates/empty-plugin/package.json +1 -1
  138. package/templates/hello-world/package.json +1 -1
  139. package/templates/webhook-message/package.json +1 -1
  140. package/dist/sdk/resolve-bot-interfaces.js.map +0 -7
  141. package/dist/sdk/resolve-integration-interfaces.js +0 -161
  142. 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 basename = import_path.posix.basename(this.path);
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(this.path);
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 { name, exportName: exports } of this.deps) {
157
- const importAlias = strings.importAlias(name);
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(this.path)\n if (basename === consts.INDEX_FILE || basename === consts.INDEX_DECLARATION_FILE) {\n const dirPath = pathlib.dirname(this.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 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 const ${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 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": "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",
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": "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",
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 Plugin['eventHandlers']]: NonNullable<Plugin['eventHandlers'][K]>[number]",
71
+ " [K in keyof PluginHandlers['eventHandlers']]: NonNullable<PluginHandlers['eventHandlers'][K]>[number]",
65
72
  "}>",
66
73
  "export type MessageHandlers = Required<{",
67
- " [K in keyof Plugin['messageHandlers']]: NonNullable<Plugin['messageHandlers'][K]>[number]",
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 MessageHandlerProps = Parameters<MessageHandlers['*']>[0]",
71
- "export type EventHandlerProps = Parameters<EventHandlers['*']>[0]",
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 Plugin['eventHandlers']]: NonNullable<Plugin['eventHandlers'][K]>[number]\",\n '}>',\n 'export type MessageHandlers = Required<{',\n \" [K in keyof Plugin['messageHandlers']]: NonNullable<Plugin['messageHandlers'][K]>[number]\",\n '}>',\n '',\n \"export type MessageHandlerProps = Parameters<MessageHandlers['*']>[0]\",\n \"export type EventHandlerProps = Parameters<EventHandlers['*']>[0]\",\n '',\n \"export type Client = (MessageHandlerProps | EventHandlerProps)['client']\",\n 'export type ClientOperation = keyof {',\n ' [K in keyof Client as Client[K] extends AsyncFunction ? K : never]: null',\n '}',\n 'export type ClientInputs = {',\n ' [K in ClientOperation]: Parameters<Client[K]>[0]',\n '}',\n 'export type ClientOutputs = {',\n ' [K in ClientOperation]: Awaited<ReturnType<Client[K]>>',\n '}',\n ].join('\\n')\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,aAAwB;AACxB,oBAAuB;AACvB,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 { integrationsModule, interfacesModule, defaultConfigModule, eventsModule, statesModule, actionsModule } = this._dependencies;
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 { integrationsModule, interfacesModule, defaultConfigModule, eventsModule, statesModule, actionsModule } =\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\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 '',\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 '',\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 '}',\n ].join('\\n')\n }\n}\n"],
5
- "mappings": "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",
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 LocalPluginModule extends mod.Module {
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.implementationCode);
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 = void 0;
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 = pkg.source === "local" ? new LocalPluginModule(pkg) : new RemotePluginModule(pkg);
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 utils from '../../utils'\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 LocalPluginModule extends mod.Module {\n private _implModule: ImplementationModule\n\n public constructor(private _pkg: Extract<types.PluginInstallablePackage, { source: 'local' }>) {\n super({\n path: consts.INDEX_FILE,\n exportName: consts.DEFAULT_EXPORT_NAME,\n })\n\n this._implModule = new ImplementationModule(this._pkg.implementationCode)\n this.pushDep(this._implModule)\n }\n\n public async getContent(): Promise<string> {\n const implImport = this._implModule.import(this)\n\n const id = undefined\n const uri = utils.path.toNormalizedPosixPath(this._pkg.path)\n\n const definitionImport = utils.path.toNormalizedPosixPath(\n utils.path.rmExtension(utils.path.join(this._pkg.path, consts.fromWorkDir.pluginDefinition))\n )\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 \"${definitionImport}\"`,\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\nclass RemotePluginModule extends mod.Module {\n private _implModule: ImplementationModule\n private _defModule: PluginPackageDefinitionModule\n\n public constructor(private _pkg: Extract<types.PluginInstallablePackage, { source: 'remote' }>) {\n super({\n path: consts.INDEX_FILE,\n exportName: consts.DEFAULT_EXPORT_NAME,\n })\n\n this._implModule = new ImplementationModule(this._pkg.plugin.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 = undefined\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 = pkg.source === 'local' ? new LocalPluginModule(pkg) : new RemotePluginModule(pkg)\n return module.flatten()\n}\n"],
5
- "mappings": "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",
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({ exportName: strings.varName(actionName) });
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.ApiActionDefinition['input']\ntype ActionOutput = types.ApiActionDefinition['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.ApiActionDefinition) {\n super({ exportName: strings.varName(actionName) })\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.ApiActionDefinition>) {\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,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,QAAmC;AACxE,UAAM,EAAE,YAAY,QAAQ,QAAQ,UAAU,EAAE,CAAC;AAEjD,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,SAAoD;AACrE,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;",
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
  }
@@ -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
- return (0, import_generators.jsonSchemaToTypescriptZuiSchema)(this._configuration.schema, this.exportName);
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:
@@ -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.ApiConfigurationDefinition) {\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 return jsonSchemaToTypescriptZuiSchema(this._configuration.schema, this.exportName)\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAC3B,wBAAgD;AAChD,oBAAuB;AACvB,cAAyB;AAGlB,MAAM,mCAAmC,qBAAO;AAAA,EAC9C,YAAoB,gBAAkD;AAC3E,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,eAAO,mDAAgC,KAAK,eAAe,QAAQ,KAAK,UAAU;AAAA,EACpF;AACF;",
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
- if (!this._event.schema) {
47
- return `export const ${this.exportName} = z.object({});`;
48
- }
49
- return (0, import_generators.jsonSchemaToTypescriptZuiSchema)(this._event.schema, this.exportName);
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 {