@botpress/cli 0.11.6 → 1.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 (216) hide show
  1. package/.turbo/turbo-build.log +9 -9
  2. package/dist/api/bot-body.js.map +2 -2
  3. package/dist/api/client.js +14 -28
  4. package/dist/api/client.js.map +3 -3
  5. package/dist/api/find-previous-version.js.map +1 -1
  6. package/dist/api/index.js +23 -0
  7. package/dist/api/index.js.map +7 -0
  8. package/dist/api/interface-body.js +25 -10
  9. package/dist/api/interface-body.js.map +2 -2
  10. package/dist/code-generation/bot-implementation/bot-implementation.js +92 -0
  11. package/dist/code-generation/bot-implementation/bot-implementation.js.map +7 -0
  12. package/dist/code-generation/{integration-schemas → bot-implementation/bot-typings}/events-module.js +15 -22
  13. package/dist/code-generation/bot-implementation/bot-typings/events-module.js.map +7 -0
  14. package/dist/code-generation/bot-implementation/bot-typings/index.js +96 -0
  15. package/dist/code-generation/bot-implementation/bot-typings/index.js.map +7 -0
  16. package/dist/code-generation/{integration-schemas → bot-implementation/bot-typings}/states-module.js +17 -22
  17. package/dist/code-generation/bot-implementation/bot-typings/states-module.js.map +7 -0
  18. package/dist/code-generation/bot-implementation/index.js +56 -0
  19. package/dist/code-generation/bot-implementation/index.js.map +7 -0
  20. package/dist/code-generation/{const.js → consts.js} +9 -4
  21. package/dist/code-generation/consts.js.map +7 -0
  22. package/dist/code-generation/generators.js +37 -7
  23. package/dist/code-generation/generators.js.map +2 -2
  24. package/dist/code-generation/index.js +15 -105
  25. package/dist/code-generation/index.js.map +3 -3
  26. package/dist/code-generation/integration-implementation/index.js +66 -0
  27. package/dist/code-generation/integration-implementation/index.js.map +7 -0
  28. package/dist/code-generation/integration-implementation/integration-implementation.js +110 -0
  29. package/dist/code-generation/integration-implementation/integration-implementation.js.map +7 -0
  30. package/dist/code-generation/{integration-secret.js → integration-implementation/integration-secret.js} +17 -7
  31. package/dist/code-generation/integration-implementation/integration-secret.js.map +7 -0
  32. package/dist/code-generation/{integration-schemas → integration-implementation/integration-typings}/actions-module.js +28 -40
  33. package/dist/code-generation/integration-implementation/integration-typings/actions-module.js.map +7 -0
  34. package/dist/code-generation/integration-implementation/integration-typings/channels-module.js +103 -0
  35. package/dist/code-generation/integration-implementation/integration-typings/channels-module.js.map +7 -0
  36. package/dist/code-generation/{integration-schemas → integration-implementation/integration-typings}/configuration-module.js +18 -20
  37. package/dist/code-generation/integration-implementation/integration-typings/configuration-module.js.map +7 -0
  38. package/dist/code-generation/{integration-schemas → integration-implementation/integration-typings}/configurations-module.js +21 -27
  39. package/dist/code-generation/integration-implementation/integration-typings/configurations-module.js.map +7 -0
  40. package/dist/code-generation/{integration-schemas → integration-implementation/integration-typings}/entities-module.js +15 -22
  41. package/dist/code-generation/integration-implementation/integration-typings/entities-module.js.map +7 -0
  42. package/dist/code-generation/integration-implementation/integration-typings/events-module.js +59 -0
  43. package/dist/code-generation/integration-implementation/integration-typings/events-module.js.map +7 -0
  44. package/dist/code-generation/integration-implementation/integration-typings/index.js +128 -0
  45. package/dist/code-generation/integration-implementation/integration-typings/index.js.map +7 -0
  46. package/dist/code-generation/integration-implementation/integration-typings/states-module.js +60 -0
  47. package/dist/code-generation/integration-implementation/integration-typings/states-module.js.map +7 -0
  48. package/dist/code-generation/integration-package/index.js +81 -0
  49. package/dist/code-generation/integration-package/index.js.map +7 -0
  50. package/dist/code-generation/integration-package/integration-package-definition/actions-module.js +84 -0
  51. package/dist/code-generation/integration-package/integration-package-definition/actions-module.js.map +7 -0
  52. package/dist/code-generation/integration-package/integration-package-definition/channels-module.js +103 -0
  53. package/dist/code-generation/integration-package/integration-package-definition/channels-module.js.map +7 -0
  54. package/dist/code-generation/integration-package/integration-package-definition/configuration-module.js +58 -0
  55. package/dist/code-generation/integration-package/integration-package-definition/configuration-module.js.map +7 -0
  56. package/dist/code-generation/integration-package/integration-package-definition/configurations-module.js +66 -0
  57. package/dist/code-generation/integration-package/integration-package-definition/configurations-module.js.map +7 -0
  58. package/dist/code-generation/integration-package/integration-package-definition/entities-module.js +59 -0
  59. package/dist/code-generation/integration-package/integration-package-definition/entities-module.js.map +7 -0
  60. package/dist/code-generation/integration-package/integration-package-definition/events-module.js +62 -0
  61. package/dist/code-generation/integration-package/integration-package-definition/events-module.js.map +7 -0
  62. package/dist/code-generation/integration-package/integration-package-definition/index.js +136 -0
  63. package/dist/code-generation/integration-package/integration-package-definition/index.js.map +7 -0
  64. package/dist/code-generation/integration-package/integration-package-definition/states-module.js +62 -0
  65. package/dist/code-generation/integration-package/integration-package-definition/states-module.js.map +7 -0
  66. package/dist/code-generation/integration-package/integration-package-definition/typings.js +17 -0
  67. package/dist/code-generation/integration-package/integration-package-definition/typings.js.map +7 -0
  68. package/dist/code-generation/interface-package/index.js +81 -0
  69. package/dist/code-generation/interface-package/index.js.map +7 -0
  70. package/dist/code-generation/interface-package/interface-package-definition/actions-module.js +84 -0
  71. package/dist/code-generation/interface-package/interface-package-definition/actions-module.js.map +7 -0
  72. package/dist/code-generation/interface-package/interface-package-definition/channels-module.js +94 -0
  73. package/dist/code-generation/interface-package/interface-package-definition/channels-module.js.map +7 -0
  74. package/dist/code-generation/interface-package/interface-package-definition/entities-module.js +59 -0
  75. package/dist/code-generation/interface-package/interface-package-definition/entities-module.js.map +7 -0
  76. package/dist/code-generation/interface-package/interface-package-definition/events-module.js +62 -0
  77. package/dist/code-generation/interface-package/interface-package-definition/events-module.js.map +7 -0
  78. package/dist/code-generation/interface-package/interface-package-definition/index.js +100 -0
  79. package/dist/code-generation/interface-package/interface-package-definition/index.js.map +7 -0
  80. package/dist/code-generation/interface-package/interface-package-definition/typings.js +17 -0
  81. package/dist/code-generation/interface-package/interface-package-definition/typings.js.map +7 -0
  82. package/dist/code-generation/module.js +60 -16
  83. package/dist/code-generation/module.js.map +2 -2
  84. package/dist/code-generation/strings.js +5 -2
  85. package/dist/code-generation/strings.js.map +2 -2
  86. package/dist/code-generation/typings.js.map +1 -1
  87. package/dist/command-implementations/add-command.js +102 -91
  88. package/dist/command-implementations/add-command.js.map +3 -3
  89. package/dist/command-implementations/bundle-command.js +16 -9
  90. package/dist/command-implementations/bundle-command.js.map +2 -2
  91. package/dist/command-implementations/deploy-command.js +27 -19
  92. package/dist/command-implementations/deploy-command.js.map +2 -2
  93. package/dist/command-implementations/dev-command.js +15 -12
  94. package/dist/command-implementations/dev-command.js.map +2 -2
  95. package/dist/command-implementations/gen-command.js +31 -12
  96. package/dist/command-implementations/gen-command.js.map +3 -3
  97. package/dist/command-implementations/init-command.js +2 -2
  98. package/dist/command-implementations/init-command.js.map +2 -2
  99. package/dist/command-implementations/integration-commands.js +5 -5
  100. package/dist/command-implementations/integration-commands.js.map +2 -2
  101. package/dist/command-implementations/interface-commands.js +5 -5
  102. package/dist/command-implementations/interface-commands.js.map +2 -2
  103. package/dist/command-implementations/lint-command.js +3 -1
  104. package/dist/command-implementations/lint-command.js.map +3 -3
  105. package/dist/command-implementations/project-command.js +40 -23
  106. package/dist/command-implementations/project-command.js.map +3 -3
  107. package/dist/command-implementations/read-command.js +0 -5
  108. package/dist/command-implementations/read-command.js.map +2 -2
  109. package/dist/config.js +22 -7
  110. package/dist/config.js.map +2 -2
  111. package/dist/consts.js +15 -6
  112. package/dist/consts.js.map +2 -2
  113. package/dist/errors.js +19 -11
  114. package/dist/errors.js.map +2 -2
  115. package/dist/logger/index.js +4 -2
  116. package/dist/logger/index.js.map +2 -2
  117. package/dist/{integration-ref.js → package-ref.js} +11 -11
  118. package/dist/package-ref.js.map +7 -0
  119. package/dist/{integration-ref.test.js → package-ref.test.js} +18 -18
  120. package/dist/package-ref.test.js.map +7 -0
  121. package/dist/sdk/index.js +21 -0
  122. package/dist/sdk/index.js.map +7 -0
  123. package/dist/sdk/resolve-bot-interfaces.js +38 -0
  124. package/dist/sdk/resolve-bot-interfaces.js.map +7 -0
  125. package/dist/sdk/resolve-integration-interfaces.js +148 -0
  126. package/dist/sdk/resolve-integration-interfaces.js.map +7 -0
  127. package/dist/utils/index.js +3 -0
  128. package/dist/utils/index.js.map +2 -2
  129. package/dist/utils/path-utils.js +25 -8
  130. package/dist/utils/path-utils.js.map +3 -3
  131. package/dist/utils/path-utils.test.js +69 -0
  132. package/dist/utils/path-utils.test.js.map +7 -0
  133. package/dist/utils/record-utils.js +25 -0
  134. package/dist/utils/record-utils.js.map +3 -3
  135. package/dist/utils/schema-utils.js +11 -0
  136. package/dist/utils/schema-utils.js.map +2 -2
  137. package/dist/utils/schema-utils.test.js +51 -0
  138. package/dist/utils/schema-utils.test.js.map +7 -0
  139. package/dist/utils/template-utils.js +47 -0
  140. package/dist/utils/template-utils.js.map +7 -0
  141. package/dist/utils/type-utils.js.map +1 -1
  142. package/e2e/index.ts +2 -0
  143. package/e2e/tests/install-package.ts +163 -0
  144. package/e2e/utils.ts +25 -2
  145. package/package.json +5 -4
  146. package/templates/empty-bot/.botpress/implementation/index.ts +41 -0
  147. package/templates/empty-bot/.botpress/implementation/typings/index.ts +17 -0
  148. package/templates/empty-bot/.botpress/implementation/typings/integrations/index.ts +6 -0
  149. package/templates/empty-bot/.botpress/index.ts +1 -0
  150. package/templates/empty-bot/bot.definition.ts +2 -0
  151. package/templates/{echo-bot → empty-bot}/package.json +2 -2
  152. package/templates/empty-bot/src/index.ts +5 -0
  153. package/templates/empty-integration/.botpress/implementation/index.ts +7 -35
  154. package/templates/empty-integration/.botpress/implementation/typings/configuration/index.ts +2 -0
  155. package/templates/empty-integration/.botpress/implementation/typings/index.ts +31 -0
  156. package/templates/empty-integration/package.json +1 -1
  157. package/templates/hello-world/.botpress/implementation/index.ts +7 -35
  158. package/templates/hello-world/.botpress/implementation/typings/actions/helloWorld/input.ts +5 -0
  159. package/templates/hello-world/.botpress/implementation/typings/actions/helloWorld/output.ts +5 -0
  160. package/templates/hello-world/.botpress/implementation/typings/configuration/index.ts +2 -0
  161. package/templates/hello-world/.botpress/implementation/typings/index.ts +31 -0
  162. package/templates/hello-world/package.json +1 -1
  163. package/templates/webhook-message/.botpress/implementation/index.ts +7 -35
  164. package/templates/webhook-message/.botpress/implementation/typings/channels/webhook/messages/text.ts +5 -0
  165. package/templates/webhook-message/.botpress/implementation/typings/configuration/index.ts +8 -0
  166. package/templates/webhook-message/.botpress/implementation/typings/events/index.ts +6 -0
  167. package/templates/webhook-message/.botpress/implementation/typings/index.ts +31 -0
  168. package/templates/webhook-message/.botpress/implementation/typings/states/index.ts +6 -0
  169. package/templates/webhook-message/package.json +1 -1
  170. package/dist/code-generation/const.js.map +0 -7
  171. package/dist/code-generation/integration-implementation.js +0 -192
  172. package/dist/code-generation/integration-implementation.js.map +0 -7
  173. package/dist/code-generation/integration-instance.js +0 -185
  174. package/dist/code-generation/integration-instance.js.map +0 -7
  175. package/dist/code-generation/integration-schemas/actions-module.js.map +0 -7
  176. package/dist/code-generation/integration-schemas/channels-module.js +0 -117
  177. package/dist/code-generation/integration-schemas/channels-module.js.map +0 -7
  178. package/dist/code-generation/integration-schemas/configuration-module.js.map +0 -7
  179. package/dist/code-generation/integration-schemas/configurations-module.js.map +0 -7
  180. package/dist/code-generation/integration-schemas/entities-module.js.map +0 -7
  181. package/dist/code-generation/integration-schemas/events-module.js.map +0 -7
  182. package/dist/code-generation/integration-schemas/states-module.js.map +0 -7
  183. package/dist/code-generation/integration-secret.js.map +0 -7
  184. package/dist/code-generation/map-integration.js +0 -76
  185. package/dist/code-generation/map-integration.js.map +0 -7
  186. package/dist/integration-ref.js.map +0 -7
  187. package/dist/integration-ref.test.js.map +0 -7
  188. package/templates/echo-bot/src/index.ts +0 -30
  189. package/templates/empty-integration/.botpress/implementation/configuration/index.ts +0 -10
  190. package/templates/hello-world/.botpress/implementation/actions/helloWorld/input.ts +0 -10
  191. package/templates/hello-world/.botpress/implementation/actions/helloWorld/output.ts +0 -10
  192. package/templates/hello-world/.botpress/implementation/configuration/index.ts +0 -10
  193. package/templates/webhook-message/.botpress/implementation/channels/webhook/messages/text.ts +0 -10
  194. package/templates/webhook-message/.botpress/implementation/configuration/index.ts +0 -13
  195. /package/templates/{empty-integration/.botpress/implementation → empty-bot/.botpress/implementation/typings}/events/index.ts +0 -0
  196. /package/templates/{empty-integration/.botpress/implementation → empty-bot/.botpress/implementation/typings}/states/index.ts +0 -0
  197. /package/templates/{echo-bot → empty-bot}/tsconfig.json +0 -0
  198. /package/templates/empty-integration/.botpress/implementation/{actions → typings/actions}/index.ts +0 -0
  199. /package/templates/empty-integration/.botpress/implementation/{channels → typings/channels}/index.ts +0 -0
  200. /package/templates/empty-integration/.botpress/implementation/{configurations → typings/configurations}/index.ts +0 -0
  201. /package/templates/empty-integration/.botpress/implementation/{entities → typings/entities}/index.ts +0 -0
  202. /package/templates/{hello-world/.botpress/implementation → empty-integration/.botpress/implementation/typings}/events/index.ts +0 -0
  203. /package/templates/{hello-world/.botpress/implementation → empty-integration/.botpress/implementation/typings}/states/index.ts +0 -0
  204. /package/templates/hello-world/.botpress/implementation/{actions → typings/actions}/helloWorld/index.ts +0 -0
  205. /package/templates/hello-world/.botpress/implementation/{actions → typings/actions}/index.ts +0 -0
  206. /package/templates/hello-world/.botpress/implementation/{channels → typings/channels}/index.ts +0 -0
  207. /package/templates/hello-world/.botpress/implementation/{configurations → typings/configurations}/index.ts +0 -0
  208. /package/templates/hello-world/.botpress/implementation/{entities → typings/entities}/index.ts +0 -0
  209. /package/templates/{webhook-message/.botpress/implementation → hello-world/.botpress/implementation/typings}/events/index.ts +0 -0
  210. /package/templates/{webhook-message/.botpress/implementation → hello-world/.botpress/implementation/typings}/states/index.ts +0 -0
  211. /package/templates/webhook-message/.botpress/implementation/{actions → typings/actions}/index.ts +0 -0
  212. /package/templates/webhook-message/.botpress/implementation/{channels → typings/channels}/index.ts +0 -0
  213. /package/templates/webhook-message/.botpress/implementation/{channels → typings/channels}/webhook/index.ts +0 -0
  214. /package/templates/webhook-message/.botpress/implementation/{channels → typings/channels}/webhook/messages/index.ts +0 -0
  215. /package/templates/webhook-message/.botpress/implementation/{configurations → typings/configurations}/index.ts +0 -0
  216. /package/templates/webhook-message/.botpress/implementation/{entities → typings/entities}/index.ts +0 -0
@@ -28,33 +28,28 @@ __export(states_module_exports, {
28
28
  StatesModule: () => StatesModule
29
29
  });
30
30
  module.exports = __toCommonJS(states_module_exports);
31
- var import_bluebird = __toESM(require("bluebird"));
32
- var import_generators = require("../generators");
33
- var import_module = require("../module");
34
- var strings = __toESM(require("../strings"));
31
+ var import_generators = require("../../generators");
32
+ var import_module = require("../../module");
33
+ var strings = __toESM(require("../../strings"));
35
34
  class StateModule extends import_module.Module {
36
- static async create(name, state) {
37
- const schema = state.schema;
38
- const exportName = strings.typeName(name);
39
- const def = {
35
+ constructor(name, _state) {
36
+ super({
40
37
  path: `${name}.ts`,
41
- exportName,
42
- content: await (0, import_generators.jsonSchemaToTypeScriptType)(schema, exportName)
43
- };
44
- return new StateModule(def);
38
+ exportName: strings.typeName(name)
39
+ });
40
+ this._state = _state;
41
+ }
42
+ async getContent() {
43
+ return (0, import_generators.zuiSchemaToTypeScriptType)(this._state.schema, this.exportName);
45
44
  }
46
45
  }
47
46
  class StatesModule extends import_module.ReExportTypeModule {
48
- static async create(states) {
49
- const stateModules = await import_bluebird.default.map(
50
- Object.entries(states),
51
- async ([stateName, state]) => StateModule.create(stateName, state)
52
- );
53
- const inst = new StatesModule({
54
- exportName: strings.typeName("states")
55
- });
56
- inst.pushDep(...stateModules);
57
- return inst;
47
+ constructor(states) {
48
+ super({ exportName: strings.typeName("states") });
49
+ for (const [stateName, state] of Object.entries(states)) {
50
+ const module2 = new StateModule(stateName, state);
51
+ this.pushDep(module2);
52
+ }
58
53
  }
59
54
  }
60
55
  // Annotate the CommonJS export names for ESM import in node:
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/code-generation/bot-implementation/bot-typings/states-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 StateModule extends Module {\n public constructor(name: string, private _state: sdk.BotStateDefinition) {\n super({\n path: `${name}.ts`,\n exportName: strings.typeName(name),\n })\n }\n\n public async getContent() {\n return zuiSchemaToTypeScriptType(this._state.schema, this.exportName)\n }\n}\n\nexport class StatesModule extends ReExportTypeModule {\n public constructor(states: Record<string, sdk.BotStateDefinition>) {\n super({ exportName: strings.typeName('states') })\n for (const [stateName, state] of Object.entries(states)) {\n const module = new StateModule(stateName, state)\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,YAAY,MAAsB,QAAgC;AACvE,UAAM;AAAA,MACJ,MAAM,GAAG;AAAA,MACT,YAAY,QAAQ,SAAS,IAAI;AAAA,IACnC,CAAC;AAJsC;AAAA,EAKzC;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
+ }
@@ -0,0 +1,56 @@
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
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
+ mod
23
+ ));
24
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
+ var bot_implementation_exports = {};
26
+ __export(bot_implementation_exports, {
27
+ generateBotImplementation: () => generateBotImplementation
28
+ });
29
+ module.exports = __toCommonJS(bot_implementation_exports);
30
+ var consts = __toESM(require("../consts"));
31
+ var import_bot_implementation = require("./bot-implementation");
32
+ const generateBotImplementationCls = async (sdkBotDefinition, implPath) => {
33
+ const indexModule = new import_bot_implementation.BotImplementationModule(sdkBotDefinition);
34
+ indexModule.unshift(implPath);
35
+ return indexModule.flatten();
36
+ };
37
+ const generateBotIndex = async (implPath) => {
38
+ let content = "";
39
+ content += `export * from './${implPath}'
40
+ `;
41
+ return {
42
+ path: consts.INDEX_FILE,
43
+ content
44
+ };
45
+ };
46
+ const generateBotImplementation = async (sdkBotDefinition) => {
47
+ const implPath = consts.fromOutDir.implementationDir;
48
+ const typingFiles = await generateBotImplementationCls(sdkBotDefinition, implPath);
49
+ const indexFile = await generateBotIndex(implPath);
50
+ return [...typingFiles, indexFile];
51
+ };
52
+ // Annotate the CommonJS export names for ESM import in node:
53
+ 0 && (module.exports = {
54
+ generateBotImplementation
55
+ });
56
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/code-generation/bot-implementation/index.ts"],
4
+ "sourcesContent": ["import * as sdk from '@botpress/sdk'\nimport * as consts from '../consts'\nimport * as types from '../typings'\nimport { BotImplementationModule } from './bot-implementation'\n\nconst generateBotImplementationCls = async (\n sdkBotDefinition: sdk.BotDefinition,\n implPath: string\n): Promise<types.File[]> => {\n const indexModule = new BotImplementationModule(sdkBotDefinition)\n indexModule.unshift(implPath)\n return indexModule.flatten()\n}\n\nconst generateBotIndex = async (implPath: string): Promise<types.File> => {\n let content = ''\n content += `export * from './${implPath}'\\n`\n return {\n path: consts.INDEX_FILE,\n content,\n }\n}\n\nexport const generateBotImplementation = async (sdkBotDefinition: sdk.BotDefinition): Promise<types.File[]> => {\n const implPath = consts.fromOutDir.implementationDir\n const typingFiles = await generateBotImplementationCls(sdkBotDefinition, implPath)\n const indexFile = await generateBotIndex(implPath)\n return [...typingFiles, indexFile]\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,aAAwB;AAExB,gCAAwC;AAExC,MAAM,+BAA+B,OACnC,kBACA,aAC0B;AAC1B,QAAM,cAAc,IAAI,kDAAwB,gBAAgB;AAChE,cAAY,QAAQ,QAAQ;AAC5B,SAAO,YAAY,QAAQ;AAC7B;AAEA,MAAM,mBAAmB,OAAO,aAA0C;AACxE,MAAI,UAAU;AACd,aAAW,oBAAoB;AAAA;AAC/B,SAAO;AAAA,IACL,MAAM,OAAO;AAAA,IACb;AAAA,EACF;AACF;AAEO,MAAM,4BAA4B,OAAO,qBAA+D;AAC7G,QAAM,WAAW,OAAO,WAAW;AACnC,QAAM,cAAc,MAAM,6BAA6B,kBAAkB,QAAQ;AACjF,QAAM,YAAY,MAAM,iBAAiB,QAAQ;AACjD,SAAO,CAAC,GAAG,aAAa,SAAS;AACnC;",
6
+ "names": []
7
+ }
@@ -15,18 +15,23 @@ var __copyProps = (to, from, except, desc) => {
15
15
  }
16
16
  return to;
17
17
  };
18
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
18
19
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var const_exports = {};
20
- __export(const_exports, {
20
+ var consts_exports = {};
21
+ __export(consts_exports, {
22
+ DEFAULT_EXPORT_NAME: () => DEFAULT_EXPORT_NAME,
21
23
  GENERATED_HEADER: () => GENERATED_HEADER,
22
24
  INDEX_FILE: () => INDEX_FILE
23
25
  });
24
- module.exports = __toCommonJS(const_exports);
26
+ module.exports = __toCommonJS(consts_exports);
27
+ __reExport(consts_exports, require("../consts"), module.exports);
25
28
  const GENERATED_HEADER = "/* tslint:disable */\n// This file is generated\n// Do not edit this file\n";
26
29
  const INDEX_FILE = "index.ts";
30
+ const DEFAULT_EXPORT_NAME = "default";
27
31
  // Annotate the CommonJS export names for ESM import in node:
28
32
  0 && (module.exports = {
33
+ DEFAULT_EXPORT_NAME,
29
34
  GENERATED_HEADER,
30
35
  INDEX_FILE
31
36
  });
32
- //# sourceMappingURL=const.js.map
37
+ //# sourceMappingURL=consts.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/code-generation/consts.ts"],
4
+ "sourcesContent": ["export * from '../consts'\nexport const GENERATED_HEADER = '/* tslint:disable */\\n// This file is generated\\n// Do not edit this file\\n'\nexport const INDEX_FILE = 'index.ts'\nexport const DEFAULT_EXPORT_NAME = 'default'\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAAc,sBAAd;AACO,MAAM,mBAAmB;AACzB,MAAM,aAAa;AACnB,MAAM,sBAAsB;",
6
+ "names": []
7
+ }
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
+ var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
5
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
8
  var __export = (target, all) => {
7
9
  for (var name in all)
@@ -15,16 +17,43 @@ var __copyProps = (to, from, except, desc) => {
15
17
  }
16
18
  return to;
17
19
  };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
+ mod
23
+ ));
18
24
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
25
  var generators_exports = {};
20
26
  __export(generators_exports, {
21
- jsonSchemaToTypeScriptType: () => jsonSchemaToTypeScriptType,
22
- stringifySingleLine: () => stringifySingleLine
27
+ jsonSchemaToTypescriptZuiSchema: () => jsonSchemaToTypescriptZuiSchema,
28
+ stringifySingleLine: () => stringifySingleLine,
29
+ zuiSchemaToTypeScriptType: () => zuiSchemaToTypeScriptType
23
30
  });
24
31
  module.exports = __toCommonJS(generators_exports);
25
- var import_json_schema_to_typescript = require("json-schema-to-typescript");
26
- const jsonSchemaToTypeScriptType = async (jsonSchema, name) => {
27
- const code = await (0, import_json_schema_to_typescript.compile)(jsonSchema, name, { unknownAny: false });
32
+ var sdk = __toESM(require("@botpress/sdk"));
33
+ var prettier = __toESM(require("prettier"));
34
+ var utils = __toESM(require("../utils"));
35
+ var consts = __toESM(require("./consts"));
36
+ const zuiSchemaToTypeScriptType = async (zuiSchema, name) => {
37
+ let code = zuiSchema.toTypescript();
38
+ code = `export type ${name} = ${code}`;
39
+ code = prettier.format(code, { parser: "typescript" });
40
+ return [
41
+ consts.GENERATED_HEADER,
42
+ code
43
+ ].join("\n");
44
+ };
45
+ const jsonSchemaToTypescriptZuiSchema = async (schema, name, extraProps = {}) => {
46
+ schema = await utils.schema.dereferenceSchema(schema);
47
+ const zuiSchema = sdk.z.fromJsonSchema(schema);
48
+ let code = [
49
+ consts.GENERATED_HEADER,
50
+ 'import { z } from "@botpress/sdk"',
51
+ `export const ${name} = {`,
52
+ ...Object.entries(extraProps).map(([key, value]) => ` ${key}: ${value},`),
53
+ ` schema: ${zuiSchema.toTypescriptSchema()}`,
54
+ "}"
55
+ ].join("\n");
56
+ code = prettier.format(code, { parser: "typescript" });
28
57
  return code;
29
58
  };
30
59
  const stringifySingleLine = (x) => {
@@ -32,7 +61,8 @@ const stringifySingleLine = (x) => {
32
61
  };
33
62
  // Annotate the CommonJS export names for ESM import in node:
34
63
  0 && (module.exports = {
35
- jsonSchemaToTypeScriptType,
36
- stringifySingleLine
64
+ jsonSchemaToTypescriptZuiSchema,
65
+ stringifySingleLine,
66
+ zuiSchemaToTypeScriptType
37
67
  });
38
68
  //# sourceMappingURL=generators.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/code-generation/generators.ts"],
4
- "sourcesContent": ["import { JSONSchema4 } from 'json-schema'\nimport { compile } from 'json-schema-to-typescript'\n\nexport const jsonSchemaToTypeScriptType = async (jsonSchema: JSONSchema4, name: string): Promise<string> => {\n const code = await compile(jsonSchema, name, { unknownAny: false })\n return code\n}\n\nexport const stringifySingleLine = (x: object): string => {\n return JSON.stringify(x, null, 1).replace(/\\n */g, ' ')\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,uCAAwB;AAEjB,MAAM,6BAA6B,OAAO,YAAyB,SAAkC;AAC1G,QAAM,OAAO,UAAM,0CAAQ,YAAY,MAAM,EAAE,YAAY,MAAM,CAAC;AAClE,SAAO;AACT;AAEO,MAAM,sBAAsB,CAAC,MAAsB;AACxD,SAAO,KAAK,UAAU,GAAG,MAAM,CAAC,EAAE,QAAQ,SAAS,GAAG;AACxD;",
4
+ "sourcesContent": ["import * as sdk from '@botpress/sdk'\nimport { JSONSchema7 } from 'json-schema'\nimport * as prettier from 'prettier'\nimport * as utils from '../utils'\nimport * as consts from './consts'\n\nexport const zuiSchemaToTypeScriptType = async (zuiSchema: sdk.z.AnyZodObject, name: string): Promise<string> => {\n let code = zuiSchema.toTypescript()\n code = `export type ${name} = ${code}`\n code = prettier.format(code, { parser: 'typescript' })\n return [\n //\n consts.GENERATED_HEADER,\n code,\n ].join('\\n')\n}\n\nexport const jsonSchemaToTypescriptZuiSchema = async (\n schema: JSONSchema7,\n name: string,\n extraProps: Record<string, string> = {}\n): Promise<string> => {\n schema = await utils.schema.dereferenceSchema(schema)\n const zuiSchema = sdk.z.fromJsonSchema(schema)\n let code = [\n consts.GENERATED_HEADER,\n 'import { z } from \"@botpress/sdk\"',\n `export const ${name} = {`,\n ...Object.entries(extraProps).map(([key, value]) => ` ${key}: ${value},`),\n ` schema: ${zuiSchema.toTypescriptSchema()}`,\n '}',\n ].join('\\n')\n code = prettier.format(code, { parser: 'typescript' })\n return code\n}\n\nexport const stringifySingleLine = (x: object): string => {\n return JSON.stringify(x, null, 1).replace(/\\n */g, ' ')\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAAqB;AAErB,eAA0B;AAC1B,YAAuB;AACvB,aAAwB;AAEjB,MAAM,4BAA4B,OAAO,WAA+B,SAAkC;AAC/G,MAAI,OAAO,UAAU,aAAa;AAClC,SAAO,eAAe,UAAU;AAChC,SAAO,SAAS,OAAO,MAAM,EAAE,QAAQ,aAAa,CAAC;AACrD,SAAO;AAAA,IAEL,OAAO;AAAA,IACP;AAAA,EACF,EAAE,KAAK,IAAI;AACb;AAEO,MAAM,kCAAkC,OAC7C,QACA,MACA,aAAqC,CAAC,MAClB;AACpB,WAAS,MAAM,MAAM,OAAO,kBAAkB,MAAM;AACpD,QAAM,YAAY,IAAI,EAAE,eAAe,MAAM;AAC7C,MAAI,OAAO;AAAA,IACT,OAAO;AAAA,IACP;AAAA,IACA,gBAAgB;AAAA,IAChB,GAAG,OAAO,QAAQ,UAAU,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,KAAK,QAAQ,QAAQ;AAAA,IACzE,aAAa,UAAU,mBAAmB;AAAA,IAC1C;AAAA,EACF,EAAE,KAAK,IAAI;AACX,SAAO,SAAS,OAAO,MAAM,EAAE,QAAQ,aAAa,CAAC;AACrD,SAAO;AACT;AAEO,MAAM,sBAAsB,CAAC,MAAsB;AACxD,SAAO,KAAK,UAAU,GAAG,MAAM,CAAC,EAAE,QAAQ,SAAS,GAAG;AACxD;",
6
6
  "names": []
7
7
  }
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
- var __create = Object.create;
3
2
  var __defProp = Object.defineProperty;
4
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
6
  var __export = (target, all) => {
9
7
  for (var name in all)
@@ -17,117 +15,29 @@ var __copyProps = (to, from, except, desc) => {
17
15
  }
18
16
  return to;
19
17
  };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
- mod
23
- ));
18
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
24
19
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
20
  var code_generation_exports = {};
26
21
  __export(code_generation_exports, {
27
- File: () => import_typings.File,
28
- INTEGRATION_JSON: () => INTEGRATION_JSON,
29
- generateBotIndex: () => generateBotIndex,
30
- generateIntegrationImplementationTypings: () => generateIntegrationImplementationTypings,
31
- generateIntegrationIndex: () => generateIntegrationIndex,
32
- generateIntegrationInstance: () => generateIntegrationInstance,
33
- generateIntegrationSecrets: () => generateIntegrationSecrets,
34
- secretEnvVariableName: () => import_integration_secret2.secretEnvVariableName
22
+ generateBotImplementation: () => import_bot_implementation.generateBotImplementation,
23
+ generateIntegrationImplementation: () => import_integration_implementation.generateIntegrationImplementation,
24
+ generateIntegrationPackage: () => import_integration_package.generateIntegrationPackage,
25
+ generateInterfacePackage: () => import_interface_package.generateInterfacePackage,
26
+ secretEnvVariableName: () => import_integration_secret.secretEnvVariableName
35
27
  });
36
28
  module.exports = __toCommonJS(code_generation_exports);
37
- var import_path = __toESM(require("path"));
38
- var utils = __toESM(require("../utils"));
39
- var import_const = require("./const");
29
+ __reExport(code_generation_exports, require("./typings"), module.exports);
30
+ var import_integration_secret = require("./integration-implementation/integration-secret");
31
+ var import_bot_implementation = require("./bot-implementation");
40
32
  var import_integration_implementation = require("./integration-implementation");
41
- var import_integration_instance = require("./integration-instance");
42
- var import_integration_secret = require("./integration-secret");
43
- var mapIntegration = __toESM(require("./map-integration"));
44
- var import_typings = require("./typings");
45
- var import_integration_secret2 = require("./integration-secret");
46
- const INTEGRATION_JSON = "integration.json";
47
- const generateIntegrationImplementationTypings = async (sdkIntegration, implementationTypingsPath) => {
48
- const integration = await mapIntegration.from.sdk(sdkIntegration);
49
- const indexModule = await import_integration_implementation.IntegrationImplementationIndexModule.create(integration);
50
- indexModule.unshift(implementationTypingsPath);
51
- return indexModule.flatten();
52
- };
53
- const generateIntegrationSecrets = async (sdkIntegration, secretsPath) => {
54
- const indexModule = await import_integration_secret.IntegrationSecretIndexModule.create(sdkIntegration);
55
- indexModule.unshift(secretsPath);
56
- return indexModule.flatten();
57
- };
58
- const generateIntegrationIndex = async (implementationTypingsPath, implementationSecretsPath) => {
59
- let content = "";
60
- content += `export * from './${implementationTypingsPath}'
61
- `;
62
- content += `export * from './${implementationSecretsPath}'
63
- `;
64
- return {
65
- path: import_const.INDEX_FILE,
66
- content
67
- };
68
- };
69
- const generateIntegrationInstance = async (anyIntegration, installPath) => {
70
- let integration;
71
- if ("id" in anyIntegration) {
72
- integration = mapIntegration.from.client(anyIntegration);
73
- } else {
74
- integration = await mapIntegration.from.sdk(anyIntegration);
75
- }
76
- const indexModule = await import_integration_instance.IntegrationInstanceIndexModule.create(integration);
77
- const dirname = utils.casing.to.kebabCase(integration.name);
78
- indexModule.unshift(installPath, dirname);
79
- const files = indexModule.flatten();
80
- const { name, version, id } = integration;
81
- const json = {
82
- name,
83
- version,
84
- id
85
- };
86
- files.push({
87
- path: import_path.default.join(installPath, dirname, INTEGRATION_JSON),
88
- content: JSON.stringify(json, null, 2)
89
- });
90
- return files;
91
- };
92
- const generateBotIndex = async (installPath, instances) => {
93
- const lines = [
94
- import_const.GENERATED_HEADER,
95
- "import * as sdk from '@botpress/sdk'",
96
- ...instances.map((i) => `import * as ${utils.casing.to.camelCase(i.name)} from './${installPath}/${i.dirname}'`),
97
- ...instances.map((i) => `export * as ${utils.casing.to.camelCase(i.name)} from './${installPath}/${i.dirname}'`),
98
- "",
99
- "type TIntegrations = {",
100
- ...instances.map(
101
- (i) => ` "${i.name}": ${utils.casing.to.camelCase(i.name)}.T${utils.casing.to.pascalCase(i.dirname)}`
102
- ),
103
- "}",
104
- "",
105
- "type BaseStates = sdk.Bot extends sdk.Bot<any, infer TStates, any> ? TStates : never",
106
- "type BaseEvents = sdk.Bot extends sdk.Bot<any, any, infer TEvents> ? TEvents : never",
107
- "",
108
- "export class Bot<",
109
- " TStates extends BaseStates,",
110
- " TEvents extends BaseEvents",
111
- "> extends sdk.Bot<",
112
- " TIntegrations,",
113
- " TStates,",
114
- " TEvents",
115
- "> {}"
116
- ];
117
- return {
118
- path: import_const.INDEX_FILE,
119
- content: lines.join("\n")
120
- };
121
- };
33
+ var import_integration_package = require("./integration-package");
34
+ var import_interface_package = require("./interface-package");
122
35
  // Annotate the CommonJS export names for ESM import in node:
123
36
  0 && (module.exports = {
124
- File,
125
- INTEGRATION_JSON,
126
- generateBotIndex,
127
- generateIntegrationImplementationTypings,
128
- generateIntegrationIndex,
129
- generateIntegrationInstance,
130
- generateIntegrationSecrets,
37
+ generateBotImplementation,
38
+ generateIntegrationImplementation,
39
+ generateIntegrationPackage,
40
+ generateInterfacePackage,
131
41
  secretEnvVariableName
132
42
  });
133
43
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/code-generation/index.ts"],
4
- "sourcesContent": ["import type * as client from '@botpress/client'\nimport type * as sdk from '@botpress/sdk'\nimport pathlib from 'path'\nimport * as utils from '../utils'\nimport { GENERATED_HEADER, INDEX_FILE } from './const'\nimport { IntegrationImplementationIndexModule } from './integration-implementation'\nimport { IntegrationInstanceIndexModule } from './integration-instance'\nimport { IntegrationSecretIndexModule } from './integration-secret'\nimport * as mapIntegration from './map-integration'\nimport type * as types from './typings'\n\nexport { File } from './typings'\nexport { secretEnvVariableName } from './integration-secret'\nexport const INTEGRATION_JSON = 'integration.json'\n\nexport const generateIntegrationImplementationTypings = async (\n sdkIntegration: sdk.IntegrationDefinition,\n implementationTypingsPath: string\n): Promise<types.File[]> => {\n const integration = await mapIntegration.from.sdk(sdkIntegration)\n const indexModule = await IntegrationImplementationIndexModule.create(integration)\n indexModule.unshift(implementationTypingsPath)\n return indexModule.flatten()\n}\n\nexport const generateIntegrationSecrets = async (\n sdkIntegration: sdk.IntegrationDefinition,\n secretsPath: string\n): Promise<types.File[]> => {\n const indexModule = await IntegrationSecretIndexModule.create(sdkIntegration)\n indexModule.unshift(secretsPath)\n return indexModule.flatten()\n}\n\nexport const generateIntegrationIndex = async (\n implementationTypingsPath: string,\n implementationSecretsPath: string\n): Promise<types.File> => {\n let content = ''\n content += `export * from './${implementationTypingsPath}'\\n`\n content += `export * from './${implementationSecretsPath}'\\n`\n return {\n path: INDEX_FILE,\n content,\n }\n}\n\nexport type IntegrationInstanceJson = {\n name: string\n version: string\n id: string | null\n}\n\nexport const generateIntegrationInstance = async (\n anyIntegration: client.Integration | sdk.IntegrationDefinition,\n installPath: string\n): Promise<types.File[]> => {\n let integration: types.IntegrationDefinition\n if ('id' in anyIntegration) {\n integration = mapIntegration.from.client(anyIntegration)\n } else {\n integration = await mapIntegration.from.sdk(anyIntegration)\n }\n\n const indexModule = await IntegrationInstanceIndexModule.create(integration)\n const dirname = utils.casing.to.kebabCase(integration.name)\n indexModule.unshift(installPath, dirname)\n const files = indexModule.flatten()\n\n const { name, version, id } = integration\n const json: IntegrationInstanceJson = {\n name,\n version,\n id,\n }\n files.push({\n path: pathlib.join(installPath, dirname, INTEGRATION_JSON),\n content: JSON.stringify(json, null, 2),\n })\n\n return files\n}\n\nexport const generateBotIndex = async (\n installPath: string,\n instances: { name: string; dirname: string }[]\n): Promise<types.File> => {\n const lines: string[] = [\n GENERATED_HEADER,\n \"import * as sdk from '@botpress/sdk'\",\n ...instances.map((i) => `import * as ${utils.casing.to.camelCase(i.name)} from './${installPath}/${i.dirname}'`),\n ...instances.map((i) => `export * as ${utils.casing.to.camelCase(i.name)} from './${installPath}/${i.dirname}'`),\n '',\n 'type TIntegrations = {',\n ...instances.map(\n (i) => ` \"${i.name}\": ${utils.casing.to.camelCase(i.name)}.T${utils.casing.to.pascalCase(i.dirname)}`\n ),\n '}',\n '',\n 'type BaseStates = sdk.Bot extends sdk.Bot<any, infer TStates, any> ? TStates : never',\n 'type BaseEvents = sdk.Bot extends sdk.Bot<any, any, infer TEvents> ? TEvents : never',\n '',\n 'export class Bot<',\n ' TStates extends BaseStates,',\n ' TEvents extends BaseEvents',\n '> extends sdk.Bot<',\n ' TIntegrations,',\n ' TStates,',\n ' TEvents',\n '> {}',\n ]\n\n return {\n path: INDEX_FILE,\n content: lines.join('\\n'),\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,kBAAoB;AACpB,YAAuB;AACvB,mBAA6C;AAC7C,wCAAqD;AACrD,kCAA+C;AAC/C,gCAA6C;AAC7C,qBAAgC;AAGhC,qBAAqB;AACrB,IAAAA,6BAAsC;AAC/B,MAAM,mBAAmB;AAEzB,MAAM,2CAA2C,OACtD,gBACA,8BAC0B;AAC1B,QAAM,cAAc,MAAM,eAAe,KAAK,IAAI,cAAc;AAChE,QAAM,cAAc,MAAM,uEAAqC,OAAO,WAAW;AACjF,cAAY,QAAQ,yBAAyB;AAC7C,SAAO,YAAY,QAAQ;AAC7B;AAEO,MAAM,6BAA6B,OACxC,gBACA,gBAC0B;AAC1B,QAAM,cAAc,MAAM,uDAA6B,OAAO,cAAc;AAC5E,cAAY,QAAQ,WAAW;AAC/B,SAAO,YAAY,QAAQ;AAC7B;AAEO,MAAM,2BAA2B,OACtC,2BACA,8BACwB;AACxB,MAAI,UAAU;AACd,aAAW,oBAAoB;AAAA;AAC/B,aAAW,oBAAoB;AAAA;AAC/B,SAAO;AAAA,IACL,MAAM;AAAA,IACN;AAAA,EACF;AACF;AAQO,MAAM,8BAA8B,OACzC,gBACA,gBAC0B;AAC1B,MAAI;AACJ,MAAI,QAAQ,gBAAgB;AAC1B,kBAAc,eAAe,KAAK,OAAO,cAAc;AAAA,EACzD,OAAO;AACL,kBAAc,MAAM,eAAe,KAAK,IAAI,cAAc;AAAA,EAC5D;AAEA,QAAM,cAAc,MAAM,2DAA+B,OAAO,WAAW;AAC3E,QAAM,UAAU,MAAM,OAAO,GAAG,UAAU,YAAY,IAAI;AAC1D,cAAY,QAAQ,aAAa,OAAO;AACxC,QAAM,QAAQ,YAAY,QAAQ;AAElC,QAAM,EAAE,MAAM,SAAS,GAAG,IAAI;AAC9B,QAAM,OAAgC;AAAA,IACpC;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,QAAM,KAAK;AAAA,IACT,MAAM,YAAAC,QAAQ,KAAK,aAAa,SAAS,gBAAgB;AAAA,IACzD,SAAS,KAAK,UAAU,MAAM,MAAM,CAAC;AAAA,EACvC,CAAC;AAED,SAAO;AACT;AAEO,MAAM,mBAAmB,OAC9B,aACA,cACwB;AACxB,QAAM,QAAkB;AAAA,IACtB;AAAA,IACA;AAAA,IACA,GAAG,UAAU,IAAI,CAAC,MAAM,eAAe,MAAM,OAAO,GAAG,UAAU,EAAE,IAAI,aAAa,eAAe,EAAE,UAAU;AAAA,IAC/G,GAAG,UAAU,IAAI,CAAC,MAAM,eAAe,MAAM,OAAO,GAAG,UAAU,EAAE,IAAI,aAAa,eAAe,EAAE,UAAU;AAAA,IAC/G;AAAA,IACA;AAAA,IACA,GAAG,UAAU;AAAA,MACX,CAAC,MAAM,MAAM,EAAE,UAAU,MAAM,OAAO,GAAG,UAAU,EAAE,IAAI,MAAM,MAAM,OAAO,GAAG,WAAW,EAAE,OAAO;AAAA,IACrG;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS,MAAM,KAAK,IAAI;AAAA,EAC1B;AACF;",
6
- "names": ["import_integration_secret", "pathlib"]
4
+ "sourcesContent": ["export * from './typings'\nexport { secretEnvVariableName } from './integration-implementation/integration-secret'\nexport { generateBotImplementation } from './bot-implementation'\nexport { generateIntegrationImplementation } from './integration-implementation'\nexport { generateIntegrationPackage } from './integration-package'\nexport { generateInterfacePackage } from './interface-package'\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oCAAc,sBAAd;AACA,gCAAsC;AACtC,gCAA0C;AAC1C,wCAAkD;AAClD,iCAA2C;AAC3C,+BAAyC;",
6
+ "names": []
7
7
  }
@@ -0,0 +1,66 @@
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
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
+ mod
23
+ ));
24
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
+ var integration_implementation_exports = {};
26
+ __export(integration_implementation_exports, {
27
+ generateIntegrationImplementation: () => generateIntegrationImplementation
28
+ });
29
+ module.exports = __toCommonJS(integration_implementation_exports);
30
+ var consts = __toESM(require("../consts"));
31
+ var import_integration_implementation = require("./integration-implementation");
32
+ var import_integration_secret = require("./integration-secret");
33
+ const generateIntegrationImplementationCls = async (sdkIntegrationDefinition, implPath) => {
34
+ const indexModule = new import_integration_implementation.IntegrationImplementationModule(sdkIntegrationDefinition);
35
+ indexModule.unshift(implPath);
36
+ return indexModule.flatten();
37
+ };
38
+ const generateIntegrationSecrets = async (sdkIntegrationDefinition, secretsPath) => {
39
+ const indexModule = new import_integration_secret.IntegrationSecretIndexModule(sdkIntegrationDefinition);
40
+ indexModule.unshift(secretsPath);
41
+ return indexModule.flatten();
42
+ };
43
+ const generateIntegrationImplementationIndex = async (implPath, secretsPath) => {
44
+ let content = "";
45
+ content += `export * from './${implPath}'
46
+ `;
47
+ content += `export * from './${secretsPath}'
48
+ `;
49
+ return {
50
+ path: consts.INDEX_FILE,
51
+ content
52
+ };
53
+ };
54
+ const generateIntegrationImplementation = async (sdkIntegrationDefinition) => {
55
+ const implPath = consts.fromOutDir.implementationDir;
56
+ const secretsPath = consts.fromOutDir.secretsDir;
57
+ const implFiles = await generateIntegrationImplementationCls(sdkIntegrationDefinition, implPath);
58
+ const secretFiles = await generateIntegrationSecrets(sdkIntegrationDefinition, secretsPath);
59
+ const indexFile = await generateIntegrationImplementationIndex(implPath, secretsPath);
60
+ return [...implFiles, ...secretFiles, indexFile];
61
+ };
62
+ // Annotate the CommonJS export names for ESM import in node:
63
+ 0 && (module.exports = {
64
+ generateIntegrationImplementation
65
+ });
66
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/code-generation/integration-implementation/index.ts"],
4
+ "sourcesContent": ["import * as sdk from '@botpress/sdk'\nimport * as consts from '../consts'\nimport * as types from '../typings'\nimport { IntegrationImplementationModule } from './integration-implementation'\nimport { IntegrationSecretIndexModule } from './integration-secret'\n\nconst generateIntegrationImplementationCls = async (\n sdkIntegrationDefinition: sdk.IntegrationDefinition,\n implPath: string\n): Promise<types.File[]> => {\n const indexModule = new IntegrationImplementationModule(sdkIntegrationDefinition)\n indexModule.unshift(implPath)\n return indexModule.flatten()\n}\n\nconst generateIntegrationSecrets = async (\n sdkIntegrationDefinition: sdk.IntegrationDefinition,\n secretsPath: string\n): Promise<types.File[]> => {\n const indexModule = new IntegrationSecretIndexModule(sdkIntegrationDefinition)\n indexModule.unshift(secretsPath)\n return indexModule.flatten()\n}\n\nconst generateIntegrationImplementationIndex = async (implPath: string, secretsPath: string): Promise<types.File> => {\n let content = ''\n content += `export * from './${implPath}'\\n`\n content += `export * from './${secretsPath}'\\n`\n return {\n path: consts.INDEX_FILE,\n content,\n }\n}\n\nexport const generateIntegrationImplementation = async (\n sdkIntegrationDefinition: sdk.IntegrationDefinition\n): Promise<types.File[]> => {\n const implPath = consts.fromOutDir.implementationDir\n const secretsPath = consts.fromOutDir.secretsDir\n const implFiles = await generateIntegrationImplementationCls(sdkIntegrationDefinition, implPath)\n const secretFiles = await generateIntegrationSecrets(sdkIntegrationDefinition, secretsPath)\n const indexFile = await generateIntegrationImplementationIndex(implPath, secretsPath)\n return [...implFiles, ...secretFiles, indexFile]\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,aAAwB;AAExB,wCAAgD;AAChD,gCAA6C;AAE7C,MAAM,uCAAuC,OAC3C,0BACA,aAC0B;AAC1B,QAAM,cAAc,IAAI,kEAAgC,wBAAwB;AAChF,cAAY,QAAQ,QAAQ;AAC5B,SAAO,YAAY,QAAQ;AAC7B;AAEA,MAAM,6BAA6B,OACjC,0BACA,gBAC0B;AAC1B,QAAM,cAAc,IAAI,uDAA6B,wBAAwB;AAC7E,cAAY,QAAQ,WAAW;AAC/B,SAAO,YAAY,QAAQ;AAC7B;AAEA,MAAM,yCAAyC,OAAO,UAAkB,gBAA6C;AACnH,MAAI,UAAU;AACd,aAAW,oBAAoB;AAAA;AAC/B,aAAW,oBAAoB;AAAA;AAC/B,SAAO;AAAA,IACL,MAAM,OAAO;AAAA,IACb;AAAA,EACF;AACF;AAEO,MAAM,oCAAoC,OAC/C,6BAC0B;AAC1B,QAAM,WAAW,OAAO,WAAW;AACnC,QAAM,cAAc,OAAO,WAAW;AACtC,QAAM,YAAY,MAAM,qCAAqC,0BAA0B,QAAQ;AAC/F,QAAM,cAAc,MAAM,2BAA2B,0BAA0B,WAAW;AAC1F,QAAM,YAAY,MAAM,uCAAuC,UAAU,WAAW;AACpF,SAAO,CAAC,GAAG,WAAW,GAAG,aAAa,SAAS;AACjD;",
6
+ "names": []
7
+ }
@@ -0,0 +1,110 @@
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
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
22
+ mod
23
+ ));
24
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
+ var integration_implementation_exports = {};
26
+ __export(integration_implementation_exports, {
27
+ IntegrationImplementationModule: () => IntegrationImplementationModule
28
+ });
29
+ module.exports = __toCommonJS(integration_implementation_exports);
30
+ var consts = __toESM(require("../consts"));
31
+ var import_module = require("../module");
32
+ var import_integration_typings = require("./integration-typings");
33
+ class IntegrationImplementationModule extends import_module.Module {
34
+ _typingsModule;
35
+ constructor(integration) {
36
+ super({
37
+ path: consts.INDEX_FILE,
38
+ exportName: "Integration"
39
+ });
40
+ this._typingsModule = new import_integration_typings.IntegrationTypingsModule(integration);
41
+ this._typingsModule.unshift("typings");
42
+ this.pushDep(this._typingsModule);
43
+ }
44
+ async getContent() {
45
+ let content = "";
46
+ const typingsImport = this._typingsModule.import(this);
47
+ content += [
48
+ consts.GENERATED_HEADER,
49
+ 'import * as sdk from "@botpress/sdk"',
50
+ `import * as ${this._typingsModule.name} from "./${typingsImport}"`,
51
+ `export * from "./${typingsImport}"`,
52
+ "",
53
+ `type TIntegration = ${this._typingsModule.name}.${this._typingsModule.exportName}`,
54
+ "",
55
+ "export type IntegrationProps = sdk.IntegrationProps<TIntegration>",
56
+ "",
57
+ "export class Integration extends sdk.Integration<TIntegration> {}",
58
+ "",
59
+ "export type Client = sdk.IntegrationSpecificClient<TIntegration>",
60
+ "",
61
+ "// extra types",
62
+ "",
63
+ "type Cast<X, Y> = X extends Y ? X : Y",
64
+ "type ValueOf<T> = T[keyof T]",
65
+ "type AsyncFunction = (...args: any[]) => Promise<any>",
66
+ "",
67
+ "export type HandlerProps = Parameters<IntegrationProps['handler']>[0]",
68
+ "",
69
+ "export type ActionProps = {",
70
+ " [K in keyof IntegrationProps['actions']]: Parameters<IntegrationProps['actions'][K]>[0]",
71
+ "}",
72
+ "export type AnyActionProps = ValueOf<ActionProps>",
73
+ "",
74
+ "export type MessageProps = {",
75
+ " [TChannel in keyof IntegrationProps['channels']]: {",
76
+ " [TMessage in keyof IntegrationProps['channels'][TChannel]['messages']]: Parameters<",
77
+ " IntegrationProps['channels'][TChannel]['messages'][TMessage]",
78
+ " >[0]",
79
+ " }",
80
+ "}",
81
+ "export type AnyMessageProps = ValueOf<ValueOf<MessageProps>>",
82
+ "",
83
+ "export type Context = HandlerProps['ctx']",
84
+ "export type Logger = HandlerProps['logger']",
85
+ "",
86
+ "export type AckFunctions = {",
87
+ " [TChannel in keyof MessageProps]: {",
88
+ " [TMessage in keyof MessageProps[TChannel]]: Cast<MessageProps[TChannel][TMessage], AnyMessageProps>['ack']",
89
+ " }",
90
+ "}",
91
+ "export type AnyAckFunction = ValueOf<ValueOf<AckFunctions>>",
92
+ "",
93
+ "export type ClientOperation = ValueOf<{",
94
+ " [K in keyof Client as Client[K] extends AsyncFunction ? K : never]: K",
95
+ "}>",
96
+ "export type ClientRequests = {",
97
+ " [K in ClientOperation]: Parameters<Client[K]>[0]",
98
+ "}",
99
+ "export type ClientResponses = {",
100
+ " [K in ClientOperation]: Awaited<ReturnType<Client[K]>>",
101
+ "}"
102
+ ].join("\n");
103
+ return content;
104
+ }
105
+ }
106
+ // Annotate the CommonJS export names for ESM import in node:
107
+ 0 && (module.exports = {
108
+ IntegrationImplementationModule
109
+ });
110
+ //# sourceMappingURL=integration-implementation.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/code-generation/integration-implementation/integration-implementation.ts"],
4
+ "sourcesContent": ["import * as sdk from '@botpress/sdk'\nimport * as consts from '../consts'\nimport { Module } from '../module'\nimport { IntegrationTypingsModule } from './integration-typings'\n\nexport class IntegrationImplementationModule extends Module {\n private _typingsModule: IntegrationTypingsModule\n\n public constructor(integration: sdk.IntegrationDefinition) {\n super({\n path: consts.INDEX_FILE,\n exportName: 'Integration',\n })\n this._typingsModule = new IntegrationTypingsModule(integration)\n this._typingsModule.unshift('typings')\n this.pushDep(this._typingsModule)\n }\n\n public async getContent() {\n let content = ''\n\n const typingsImport = this._typingsModule.import(this)\n\n content += [\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 TIntegration = ${this._typingsModule.name}.${this._typingsModule.exportName}`,\n '',\n 'export type IntegrationProps = sdk.IntegrationProps<TIntegration>',\n '',\n 'export class Integration extends sdk.Integration<TIntegration> {}',\n '',\n 'export type Client = sdk.IntegrationSpecificClient<TIntegration>',\n '',\n '// extra types',\n '',\n 'type Cast<X, Y> = X extends Y ? X : Y',\n 'type ValueOf<T> = T[keyof T]',\n 'type AsyncFunction = (...args: any[]) => Promise<any>',\n '',\n \"export type HandlerProps = Parameters<IntegrationProps['handler']>[0]\",\n '',\n 'export type ActionProps = {',\n \" [K in keyof IntegrationProps['actions']]: Parameters<IntegrationProps['actions'][K]>[0]\",\n '}',\n 'export type AnyActionProps = ValueOf<ActionProps>',\n '',\n 'export type MessageProps = {',\n \" [TChannel in keyof IntegrationProps['channels']]: {\",\n \" [TMessage in keyof IntegrationProps['channels'][TChannel]['messages']]: Parameters<\",\n \" IntegrationProps['channels'][TChannel]['messages'][TMessage]\",\n ' >[0]',\n ' }',\n '}',\n 'export type AnyMessageProps = ValueOf<ValueOf<MessageProps>>',\n '',\n \"export type Context = HandlerProps['ctx']\",\n \"export type Logger = HandlerProps['logger']\",\n '',\n 'export type AckFunctions = {',\n ' [TChannel in keyof MessageProps]: {',\n \" [TMessage in keyof MessageProps[TChannel]]: Cast<MessageProps[TChannel][TMessage], AnyMessageProps>['ack']\",\n ' }',\n '}',\n 'export type AnyAckFunction = ValueOf<ValueOf<AckFunctions>>',\n '',\n 'export type ClientOperation = ValueOf<{',\n ' [K in keyof Client as Client[K] extends AsyncFunction ? K : never]: K',\n '}>',\n 'export type ClientRequests = {',\n ' [K in ClientOperation]: Parameters<Client[K]>[0]',\n '}',\n 'export type ClientResponses = {',\n ' [K in ClientOperation]: Awaited<ReturnType<Client[K]>>',\n '}',\n ].join('\\n')\n\n return content\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,aAAwB;AACxB,oBAAuB;AACvB,iCAAyC;AAElC,MAAM,wCAAwC,qBAAO;AAAA,EAClD;AAAA,EAED,YAAY,aAAwC;AACzD,UAAM;AAAA,MACJ,MAAM,OAAO;AAAA,MACb,YAAY;AAAA,IACd,CAAC;AACD,SAAK,iBAAiB,IAAI,oDAAyB,WAAW;AAC9D,SAAK,eAAe,QAAQ,SAAS;AACrC,SAAK,QAAQ,KAAK,cAAc;AAAA,EAClC;AAAA,EAEA,MAAa,aAAa;AACxB,QAAI,UAAU;AAEd,UAAM,gBAAgB,KAAK,eAAe,OAAO,IAAI;AAErD,eAAW;AAAA,MACT,OAAO;AAAA,MACP;AAAA,MACA,eAAe,KAAK,eAAe,gBAAgB;AAAA,MACnD,oBAAoB;AAAA,MACpB;AAAA,MACA,uBAAuB,KAAK,eAAe,QAAQ,KAAK,eAAe;AAAA,MACvE;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;AAEX,WAAO;AAAA,EACT;AACF;",
6
+ "names": []
7
+ }