@botpress/cli 1.7.2 → 2.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 (134) hide show
  1. package/.turbo/turbo-build.log +11 -9
  2. package/dist/api/bot-body.js +20 -6
  3. package/dist/api/bot-body.js.map +2 -2
  4. package/dist/api/client.js +18 -0
  5. package/dist/api/client.js.map +2 -2
  6. package/dist/api/interface-body.js.map +2 -2
  7. package/dist/api/plugin-body.js +79 -0
  8. package/dist/api/plugin-body.js.map +7 -0
  9. package/dist/api/types.js.map +1 -1
  10. package/dist/code-generation/bot-implementation/bot-implementation.js +40 -21
  11. package/dist/code-generation/bot-implementation/bot-implementation.js.map +2 -2
  12. package/dist/code-generation/bot-implementation/bot-plugins/index.js +76 -0
  13. package/dist/code-generation/bot-implementation/bot-plugins/index.js.map +7 -0
  14. package/dist/code-generation/bot-implementation/bot-plugins/plugin-module.js +125 -0
  15. package/dist/code-generation/bot-implementation/bot-plugins/plugin-module.js.map +7 -0
  16. package/dist/code-generation/bot-implementation/index.js +27 -22
  17. package/dist/code-generation/bot-implementation/index.js.map +2 -2
  18. package/dist/code-generation/consts.js +3 -0
  19. package/dist/code-generation/consts.js.map +2 -2
  20. package/dist/code-generation/generators.js +8 -0
  21. package/dist/code-generation/generators.js.map +2 -2
  22. package/dist/code-generation/index.js +6 -0
  23. package/dist/code-generation/index.js.map +2 -2
  24. package/dist/code-generation/integration-package/index.js +11 -2
  25. package/dist/code-generation/integration-package/index.js.map +2 -2
  26. package/dist/code-generation/interface-implementation/index.js +29 -0
  27. package/dist/code-generation/interface-implementation/index.js.map +7 -0
  28. package/dist/code-generation/interface-implementation/integration-typings/actions-module.js +84 -0
  29. package/dist/code-generation/interface-implementation/integration-typings/actions-module.js.map +7 -0
  30. package/dist/code-generation/interface-implementation/integration-typings/channels-module.js +103 -0
  31. package/dist/code-generation/interface-implementation/integration-typings/channels-module.js.map +7 -0
  32. package/dist/code-generation/interface-implementation/integration-typings/entities-module.js +59 -0
  33. package/dist/code-generation/interface-implementation/integration-typings/entities-module.js.map +7 -0
  34. package/dist/code-generation/interface-implementation/integration-typings/events-module.js +59 -0
  35. package/dist/code-generation/interface-implementation/integration-typings/events-module.js.map +7 -0
  36. package/dist/code-generation/interface-implementation/integration-typings/index.js +117 -0
  37. package/dist/code-generation/interface-implementation/integration-typings/index.js.map +7 -0
  38. package/dist/code-generation/interface-package/index.js +11 -2
  39. package/dist/code-generation/interface-package/index.js.map +2 -2
  40. package/dist/code-generation/module.js +17 -4
  41. package/dist/code-generation/module.js.map +2 -2
  42. package/dist/code-generation/plugin-implementation/index.js +56 -0
  43. package/dist/code-generation/plugin-implementation/index.js.map +7 -0
  44. package/dist/code-generation/plugin-implementation/plugin-implementation.js +86 -0
  45. package/dist/code-generation/plugin-implementation/plugin-implementation.js.map +7 -0
  46. package/dist/code-generation/plugin-implementation/plugin-typings/actions-module.js +84 -0
  47. package/dist/code-generation/plugin-implementation/plugin-typings/actions-module.js.map +7 -0
  48. package/dist/code-generation/plugin-implementation/plugin-typings/configuration-module.js +57 -0
  49. package/dist/code-generation/plugin-implementation/plugin-typings/configuration-module.js.map +7 -0
  50. package/dist/code-generation/plugin-implementation/plugin-typings/events-module.js +59 -0
  51. package/dist/code-generation/plugin-implementation/plugin-typings/events-module.js.map +7 -0
  52. package/dist/code-generation/plugin-implementation/plugin-typings/index.js +146 -0
  53. package/dist/code-generation/plugin-implementation/plugin-typings/index.js.map +7 -0
  54. package/dist/code-generation/plugin-implementation/plugin-typings/states-module.js +60 -0
  55. package/dist/code-generation/plugin-implementation/plugin-typings/states-module.js.map +7 -0
  56. package/dist/code-generation/plugin-package/index.js +146 -0
  57. package/dist/code-generation/plugin-package/index.js.map +7 -0
  58. package/dist/code-generation/plugin-package/plugin-package-definition/actions-module.js +84 -0
  59. package/dist/code-generation/plugin-package/plugin-package-definition/actions-module.js.map +7 -0
  60. package/dist/code-generation/plugin-package/plugin-package-definition/configuration-module.js +52 -0
  61. package/dist/code-generation/plugin-package/plugin-package-definition/configuration-module.js.map +7 -0
  62. package/dist/code-generation/plugin-package/plugin-package-definition/events-module.js +62 -0
  63. package/dist/code-generation/plugin-package/plugin-package-definition/events-module.js.map +7 -0
  64. package/dist/code-generation/plugin-package/plugin-package-definition/index.js +103 -0
  65. package/dist/code-generation/plugin-package/plugin-package-definition/index.js.map +7 -0
  66. package/dist/code-generation/plugin-package/plugin-package-definition/states-module.js +62 -0
  67. package/dist/code-generation/plugin-package/plugin-package-definition/states-module.js.map +7 -0
  68. package/dist/code-generation/plugin-package/plugin-package-definition/typings.js +17 -0
  69. package/dist/code-generation/plugin-package/plugin-package-definition/typings.js.map +7 -0
  70. package/dist/code-generation/typings.js.map +1 -1
  71. package/dist/command-definitions.js +8 -0
  72. package/dist/command-definitions.js.map +2 -2
  73. package/dist/command-implementations/add-command.js +47 -10
  74. package/dist/command-implementations/add-command.js.map +2 -2
  75. package/dist/command-implementations/bundle-command.js +7 -2
  76. package/dist/command-implementations/bundle-command.js.map +2 -2
  77. package/dist/command-implementations/deploy-command.js +51 -0
  78. package/dist/command-implementations/deploy-command.js.map +2 -2
  79. package/dist/command-implementations/gen-command.js +11 -0
  80. package/dist/command-implementations/gen-command.js.map +2 -2
  81. package/dist/command-implementations/index.js +8 -0
  82. package/dist/command-implementations/index.js.map +2 -2
  83. package/dist/command-implementations/init-command.js +36 -8
  84. package/dist/command-implementations/init-command.js.map +2 -2
  85. package/dist/command-implementations/lint-command.js +1 -1
  86. package/dist/command-implementations/lint-command.js.map +2 -2
  87. package/dist/command-implementations/plugin-commands.js +107 -0
  88. package/dist/command-implementations/plugin-commands.js.map +7 -0
  89. package/dist/command-implementations/project-command.js +30 -3
  90. package/dist/command-implementations/project-command.js.map +2 -2
  91. package/dist/command-implementations/read-command.js +13 -1
  92. package/dist/command-implementations/read-command.js.map +2 -2
  93. package/dist/config.js +23 -2
  94. package/dist/config.js.map +2 -2
  95. package/dist/consts.js +7 -0
  96. package/dist/consts.js.map +2 -2
  97. package/dist/sdk/index.js +1 -0
  98. package/dist/sdk/index.js.map +2 -2
  99. package/dist/sdk/resolve-bot-interfaces.js +6 -1
  100. package/dist/sdk/resolve-bot-interfaces.js.map +2 -2
  101. package/dist/sdk/resolve-integration-interfaces.js +16 -8
  102. package/dist/sdk/resolve-integration-interfaces.js.map +2 -2
  103. package/dist/sdk/validate-bot.js +84 -0
  104. package/dist/sdk/validate-bot.js.map +7 -0
  105. package/dist/utils/esbuild-utils.js +3 -2
  106. package/dist/utils/esbuild-utils.js.map +2 -2
  107. package/dist/utils/index.js +3 -0
  108. package/dist/utils/index.js.map +2 -2
  109. package/dist/utils/object-utils.js +32 -0
  110. package/dist/utils/object-utils.js.map +7 -0
  111. package/dist/utils/schema-utils.js.map +2 -2
  112. package/dist/utils/type-utils.js.map +1 -1
  113. package/e2e/tests/install-package.ts +1 -1
  114. package/package.json +3 -3
  115. package/templates/empty-bot/.botpress/implementation/index.ts +27 -18
  116. package/templates/empty-bot/.botpress/implementation/plugins/index.ts +11 -0
  117. package/templates/empty-bot/.botpress/index.ts +5 -1
  118. package/templates/empty-bot/package.json +2 -2
  119. package/templates/empty-integration/package.json +2 -2
  120. package/templates/empty-plugin/.botpress/implementation/index.ts +35 -0
  121. package/templates/empty-plugin/.botpress/implementation/typings/actions/index.ts +6 -0
  122. package/templates/empty-plugin/.botpress/implementation/typings/configuration/index.ts +2 -0
  123. package/templates/empty-plugin/.botpress/implementation/typings/events/index.ts +6 -0
  124. package/templates/empty-plugin/.botpress/implementation/typings/index.ts +26 -0
  125. package/templates/empty-plugin/.botpress/implementation/typings/integrations/index.ts +6 -0
  126. package/templates/empty-plugin/.botpress/implementation/typings/interfaces/index.ts +6 -0
  127. package/templates/empty-plugin/.botpress/implementation/typings/states/index.ts +6 -0
  128. package/templates/empty-plugin/.botpress/index.ts +1 -0
  129. package/templates/empty-plugin/package.json +16 -0
  130. package/templates/empty-plugin/plugin.definition.ts +7 -0
  131. package/templates/empty-plugin/src/index.ts +7 -0
  132. package/templates/empty-plugin/tsconfig.json +28 -0
  133. package/templates/hello-world/package.json +2 -2
  134. package/templates/webhook-message/package.json +2 -2
@@ -1,20 +1,22 @@
1
1
 
2
- > @botpress/cli@1.7.2 build /home/runner/work/botpress/botpress/packages/cli
2
+ > @botpress/cli@2.0.0 build /home/runner/work/botpress/botpress/packages/cli
3
3
  > pnpm run bundle && pnpm run template:gen
4
4
 
5
5
 
6
- > @botpress/cli@1.7.2 bundle /home/runner/work/botpress/botpress/packages/cli
6
+ > @botpress/cli@2.0.0 bundle /home/runner/work/botpress/botpress/packages/cli
7
7
  > ts-node -T build.ts
8
8
 
9
9
 
10
- > @botpress/cli@1.7.2 template:gen /home/runner/work/botpress/botpress/packages/cli
10
+ > @botpress/cli@2.0.0 template:gen /home/runner/work/botpress/botpress/packages/cli
11
11
  > pnpm -r --stream -F @bp-templates/* exec bp gen
12
12
 
13
- 🤖 Botpress CLI v1.7.2
14
- 🤖 Botpress CLI v1.7.2
15
- 🤖 Botpress CLI v1.7.2
16
- 🤖 Botpress CLI v1.7.2
13
+ 🤖 Botpress CLI v2.0.0
14
+ 🤖 Botpress CLI v2.0.0
15
+ 🤖 Botpress CLI v2.0.0
16
+ 🤖 Botpress CLI v2.0.0
17
+ ○ Generating typings for integration hello-world...○ Generating typings for integration empty-integration...✓ Typings available at .botpress
17
18
  ○ Generating typings for bot...✓ Typings available at .botpress
18
- ○ Generating typings for integration empty-integration...○ Generating typings for integration webhook-message...✓ Typings available at .botpress
19
- ○ Generating typings for integration hello-world...✓ Typings available at .botpress
19
+ ○ Generating typings for plugin...✓ Typings available at .botpress
20
20
  ✓ Typings available at .botpress
21
+ 🤖 Botpress CLI v2.0.0
22
+ ○ Generating typings for integration webhook-message...✓ Typings available at .botpress
@@ -30,16 +30,30 @@ __export(bot_body_exports, {
30
30
  module.exports = __toCommonJS(bot_body_exports);
31
31
  var utils = __toESM(require("../utils"));
32
32
  const prepareCreateBotBody = async (bot) => ({
33
- ...bot.props,
34
- configuration: bot.props.configuration ? {
35
- ...bot.props.configuration,
36
- schema: await utils.schema.mapZodToJsonSchema(bot.props.configuration)
33
+ user: bot.user,
34
+ conversation: bot.conversation,
35
+ message: bot.message,
36
+ recurringEvents: bot.recurringEvents,
37
+ actions: bot.actions ? await utils.records.mapValuesAsync(bot.actions, async (action) => ({
38
+ ...action,
39
+ input: {
40
+ ...action.input,
41
+ schema: await utils.schema.mapZodToJsonSchema(action.input)
42
+ },
43
+ output: {
44
+ ...action.output,
45
+ schema: await utils.schema.mapZodToJsonSchema(action.output)
46
+ }
47
+ })) : void 0,
48
+ configuration: bot.configuration ? {
49
+ ...bot.configuration,
50
+ schema: await utils.schema.mapZodToJsonSchema(bot.configuration)
37
51
  } : void 0,
38
- events: bot.props.events ? await utils.records.mapValuesAsync(bot.props.events, async (event) => ({
52
+ events: bot.events ? await utils.records.mapValuesAsync(bot.events, async (event) => ({
39
53
  ...event,
40
54
  schema: await utils.schema.mapZodToJsonSchema(event)
41
55
  })) : void 0,
42
- states: bot.props.states ? await utils.records.mapValuesAsync(bot.props.states, async (state) => ({
56
+ states: bot.states ? await utils.records.mapValuesAsync(bot.states, async (state) => ({
43
57
  ...state,
44
58
  schema: await utils.schema.mapZodToJsonSchema(state)
45
59
  })) : void 0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/api/bot-body.ts"],
4
- "sourcesContent": ["import type * as client from '@botpress/client'\nimport type * as sdk from '@botpress/sdk'\nimport * as utils from '../utils'\n\nexport type CreateBotBody = Parameters<client.Client['createBot']>[0]\nexport type UpdateBotBody = Parameters<client.Client['updateBot']>[0]\n\nexport const prepareCreateBotBody = async (bot: sdk.BotDefinition): Promise<CreateBotBody> => ({\n ...bot.props,\n configuration: bot.props.configuration\n ? {\n ...bot.props.configuration,\n schema: await utils.schema.mapZodToJsonSchema(bot.props.configuration),\n }\n : undefined,\n events: bot.props.events\n ? await utils.records.mapValuesAsync(bot.props.events, async (event) => ({\n ...event,\n schema: await utils.schema.mapZodToJsonSchema(event),\n }))\n : undefined,\n states: bot.props.states\n ? await utils.records.mapValuesAsync(bot.props.states, async (state) => ({\n ...state,\n schema: await utils.schema.mapZodToJsonSchema(state),\n }))\n : undefined,\n})\n\nexport const prepareUpdateBotBody = (localBot: UpdateBotBody, remoteBot: client.Bot): UpdateBotBody => ({\n ...localBot,\n states: utils.records.setNullOnMissingValues(localBot.states, remoteBot.states),\n recurringEvents: utils.records.setNullOnMissingValues(localBot.recurringEvents, remoteBot.recurringEvents),\n events: utils.records.setNullOnMissingValues(localBot.events, remoteBot.events),\n user: {\n ...localBot.user,\n tags: utils.records.setNullOnMissingValues(localBot.user?.tags, remoteBot.user?.tags),\n },\n conversation: {\n ...localBot.conversation,\n tags: utils.records.setNullOnMissingValues(localBot.conversation?.tags, remoteBot.conversation?.tags),\n },\n message: {\n ...localBot.message,\n tags: utils.records.setNullOnMissingValues(localBot.message?.tags, remoteBot.message?.tags),\n },\n integrations: utils.records.setNullOnMissingValues(localBot.integrations, remoteBot.integrations),\n})\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,YAAuB;AAKhB,MAAM,uBAAuB,OAAO,SAAoD;AAAA,EAC7F,GAAG,IAAI;AAAA,EACP,eAAe,IAAI,MAAM,gBACrB;AAAA,IACE,GAAG,IAAI,MAAM;AAAA,IACb,QAAQ,MAAM,MAAM,OAAO,mBAAmB,IAAI,MAAM,aAAa;AAAA,EACvE,IACA;AAAA,EACJ,QAAQ,IAAI,MAAM,SACd,MAAM,MAAM,QAAQ,eAAe,IAAI,MAAM,QAAQ,OAAO,WAAW;AAAA,IACrE,GAAG;AAAA,IACH,QAAQ,MAAM,MAAM,OAAO,mBAAmB,KAAK;AAAA,EACrD,EAAE,IACF;AAAA,EACJ,QAAQ,IAAI,MAAM,SACd,MAAM,MAAM,QAAQ,eAAe,IAAI,MAAM,QAAQ,OAAO,WAAW;AAAA,IACrE,GAAG;AAAA,IACH,QAAQ,MAAM,MAAM,OAAO,mBAAmB,KAAK;AAAA,EACrD,EAAE,IACF;AACN;AAEO,MAAM,uBAAuB,CAAC,UAAyB,eAA0C;AAAA,EACtG,GAAG;AAAA,EACH,QAAQ,MAAM,QAAQ,uBAAuB,SAAS,QAAQ,UAAU,MAAM;AAAA,EAC9E,iBAAiB,MAAM,QAAQ,uBAAuB,SAAS,iBAAiB,UAAU,eAAe;AAAA,EACzG,QAAQ,MAAM,QAAQ,uBAAuB,SAAS,QAAQ,UAAU,MAAM;AAAA,EAC9E,MAAM;AAAA,IACJ,GAAG,SAAS;AAAA,IACZ,MAAM,MAAM,QAAQ,uBAAuB,SAAS,MAAM,MAAM,UAAU,MAAM,IAAI;AAAA,EACtF;AAAA,EACA,cAAc;AAAA,IACZ,GAAG,SAAS;AAAA,IACZ,MAAM,MAAM,QAAQ,uBAAuB,SAAS,cAAc,MAAM,UAAU,cAAc,IAAI;AAAA,EACtG;AAAA,EACA,SAAS;AAAA,IACP,GAAG,SAAS;AAAA,IACZ,MAAM,MAAM,QAAQ,uBAAuB,SAAS,SAAS,MAAM,UAAU,SAAS,IAAI;AAAA,EAC5F;AAAA,EACA,cAAc,MAAM,QAAQ,uBAAuB,SAAS,cAAc,UAAU,YAAY;AAClG;",
4
+ "sourcesContent": ["import type * as client from '@botpress/client'\nimport type * as sdk from '@botpress/sdk'\nimport * as utils from '../utils'\n\nexport type CreateBotBody = Parameters<client.Client['createBot']>[0]\nexport type UpdateBotBody = Parameters<client.Client['updateBot']>[0]\n\nexport const prepareCreateBotBody = async (bot: sdk.BotDefinition): Promise<CreateBotBody> => ({\n user: bot.user,\n conversation: bot.conversation,\n message: bot.message,\n recurringEvents: bot.recurringEvents,\n actions: bot.actions\n ? await utils.records.mapValuesAsync(bot.actions, async (action) => ({\n ...action,\n input: {\n ...action.input,\n schema: await utils.schema.mapZodToJsonSchema(action.input),\n },\n output: {\n ...action.output,\n schema: await utils.schema.mapZodToJsonSchema(action.output),\n },\n }))\n : undefined,\n configuration: bot.configuration\n ? {\n ...bot.configuration,\n schema: await utils.schema.mapZodToJsonSchema(bot.configuration),\n }\n : undefined,\n events: bot.events\n ? await utils.records.mapValuesAsync(bot.events, async (event) => ({\n ...event,\n schema: await utils.schema.mapZodToJsonSchema(event),\n }))\n : undefined,\n states: bot.states\n ? await utils.records.mapValuesAsync(bot.states, async (state) => ({\n ...state,\n schema: await utils.schema.mapZodToJsonSchema(state),\n }))\n : undefined,\n})\n\nexport const prepareUpdateBotBody = (localBot: UpdateBotBody, remoteBot: client.Bot): UpdateBotBody => ({\n ...localBot,\n states: utils.records.setNullOnMissingValues(localBot.states, remoteBot.states),\n recurringEvents: utils.records.setNullOnMissingValues(localBot.recurringEvents, remoteBot.recurringEvents),\n events: utils.records.setNullOnMissingValues(localBot.events, remoteBot.events),\n user: {\n ...localBot.user,\n tags: utils.records.setNullOnMissingValues(localBot.user?.tags, remoteBot.user?.tags),\n },\n conversation: {\n ...localBot.conversation,\n tags: utils.records.setNullOnMissingValues(localBot.conversation?.tags, remoteBot.conversation?.tags),\n },\n message: {\n ...localBot.message,\n tags: utils.records.setNullOnMissingValues(localBot.message?.tags, remoteBot.message?.tags),\n },\n integrations: utils.records.setNullOnMissingValues(localBot.integrations, remoteBot.integrations),\n})\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,YAAuB;AAKhB,MAAM,uBAAuB,OAAO,SAAoD;AAAA,EAC7F,MAAM,IAAI;AAAA,EACV,cAAc,IAAI;AAAA,EAClB,SAAS,IAAI;AAAA,EACb,iBAAiB,IAAI;AAAA,EACrB,SAAS,IAAI,UACT,MAAM,MAAM,QAAQ,eAAe,IAAI,SAAS,OAAO,YAAY;AAAA,IACjE,GAAG;AAAA,IACH,OAAO;AAAA,MACL,GAAG,OAAO;AAAA,MACV,QAAQ,MAAM,MAAM,OAAO,mBAAmB,OAAO,KAAK;AAAA,IAC5D;AAAA,IACA,QAAQ;AAAA,MACN,GAAG,OAAO;AAAA,MACV,QAAQ,MAAM,MAAM,OAAO,mBAAmB,OAAO,MAAM;AAAA,IAC7D;AAAA,EACF,EAAE,IACF;AAAA,EACJ,eAAe,IAAI,gBACf;AAAA,IACE,GAAG,IAAI;AAAA,IACP,QAAQ,MAAM,MAAM,OAAO,mBAAmB,IAAI,aAAa;AAAA,EACjE,IACA;AAAA,EACJ,QAAQ,IAAI,SACR,MAAM,MAAM,QAAQ,eAAe,IAAI,QAAQ,OAAO,WAAW;AAAA,IAC/D,GAAG;AAAA,IACH,QAAQ,MAAM,MAAM,OAAO,mBAAmB,KAAK;AAAA,EACrD,EAAE,IACF;AAAA,EACJ,QAAQ,IAAI,SACR,MAAM,MAAM,QAAQ,eAAe,IAAI,QAAQ,OAAO,WAAW;AAAA,IAC/D,GAAG;AAAA,IACH,QAAQ,MAAM,MAAM,OAAO,mBAAmB,KAAK;AAAA,EACrD,EAAE,IACF;AACN;AAEO,MAAM,uBAAuB,CAAC,UAAyB,eAA0C;AAAA,EACtG,GAAG;AAAA,EACH,QAAQ,MAAM,QAAQ,uBAAuB,SAAS,QAAQ,UAAU,MAAM;AAAA,EAC9E,iBAAiB,MAAM,QAAQ,uBAAuB,SAAS,iBAAiB,UAAU,eAAe;AAAA,EACzG,QAAQ,MAAM,QAAQ,uBAAuB,SAAS,QAAQ,UAAU,MAAM;AAAA,EAC9E,MAAM;AAAA,IACJ,GAAG,SAAS;AAAA,IACZ,MAAM,MAAM,QAAQ,uBAAuB,SAAS,MAAM,MAAM,UAAU,MAAM,IAAI;AAAA,EACtF;AAAA,EACA,cAAc;AAAA,IACZ,GAAG,SAAS;AAAA,IACZ,MAAM,MAAM,QAAQ,uBAAuB,SAAS,cAAc,MAAM,UAAU,cAAc,IAAI;AAAA,EACtG;AAAA,EACA,SAAS;AAAA,IACP,GAAG,SAAS;AAAA,IACZ,MAAM,MAAM,QAAQ,uBAAuB,SAAS,SAAS,MAAM,UAAU,SAAS,IAAI;AAAA,EAC5F;AAAA,EACA,cAAc,MAAM,QAAQ,uBAAuB,SAAS,cAAc,UAAU,YAAY;AAClG;",
6
6
  "names": []
7
7
  }
@@ -102,6 +102,15 @@ class ApiClient {
102
102
  }
103
103
  return this.client.getInterfaceByName(ref).then((r) => r.interface).catch(this._returnUndefinedOnError("ResourceNotFound"));
104
104
  }
105
+ async findPublicPlugin(ref) {
106
+ if (ref.type === "id") {
107
+ return this.client.getPlugin(ref).then((r) => r.plugin).catch(this._returnUndefinedOnError("ResourceNotFound"));
108
+ }
109
+ if ((0, import_package_ref.isLatest)(ref)) {
110
+ return this._findLatestPluginVersion(ref);
111
+ }
112
+ return this.client.getPluginByName(ref).then((r) => r.plugin).catch(this._returnUndefinedOnError("ResourceNotFound"));
113
+ }
105
114
  _findLatestInterfaceVersion = async ({ name }) => {
106
115
  const { interfaces: allVersions } = await this.client.listInterfaces({ name });
107
116
  const sorted = allVersions.sort((a, b) => import_semver.default.compare(b.version, a.version));
@@ -111,6 +120,15 @@ class ApiClient {
111
120
  }
112
121
  return this.client.getInterface({ id: latestVersion.id }).then((r) => r.interface);
113
122
  };
123
+ _findLatestPluginVersion = async ({ name }) => {
124
+ const { plugins: allVersions } = await this.client.listPlugins({ name });
125
+ const sorted = allVersions.sort((a, b) => import_semver.default.compare(b.version, a.version));
126
+ const latestVersion = sorted[0];
127
+ if (!latestVersion) {
128
+ return;
129
+ }
130
+ return this.client.getPlugin({ id: latestVersion.id }).then((r) => r.plugin);
131
+ };
114
132
  async testLogin() {
115
133
  await this.client.listBots({});
116
134
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/api/client.ts"],
4
- "sourcesContent": ["import * as client from '@botpress/client'\nimport semver from 'semver'\nimport yn from 'yn'\nimport type { Logger } from '../logger'\nimport { formatPackageRef, ApiPackageRef, NamePackageRef, isLatest } from '../package-ref'\nimport { findPreviousIntegrationVersion } from './find-previous-version'\nimport * as paging from './paging'\n\nimport {\n ApiClientProps,\n PublicIntegration,\n PrivateIntegration,\n Integration,\n Requests,\n Responses,\n Interface,\n BotSummary,\n} from './types'\n\nexport * from './types'\n\n/**\n * This class is used to wrap the Botpress API and provide a more convenient way to interact with it.\n */\nexport class ApiClient {\n public readonly client: client.Client\n public readonly url: string\n public readonly token: string\n public readonly workspaceId: string\n\n public static newClient = (props: ApiClientProps, logger: Logger) => new ApiClient(props, logger)\n\n public constructor(props: ApiClientProps, private _logger: Logger) {\n const { apiUrl, token, workspaceId } = props\n this.client = new client.Client({ apiUrl, token, workspaceId })\n this.url = apiUrl\n this.token = token\n this.workspaceId = workspaceId\n }\n\n public get isBotpressWorkspace(): boolean {\n // this environment variable is undocumented and only used internally for dev purposes\n const isBotpressWorkspace = yn(process.env.BP_IS_BOTPRESS_WORKSPACE)\n if (isBotpressWorkspace !== undefined) {\n return isBotpressWorkspace\n }\n return [\n '6a76fa10-e150-4ff6-8f59-a300feec06c1',\n '95de33eb-1551-4af9-9088-e5dcb02efd09',\n '11111111-1111-1111-aaaa-111111111111',\n ].includes(this.workspaceId)\n }\n\n public async getWorkspace(): Promise<Responses['getWorkspace']> {\n return this.client.getWorkspace({ id: this.workspaceId })\n }\n\n public async updateWorkspace(props: Omit<Requests['updateWorkspace'], 'id'>): Promise<Responses['updateWorkspace']> {\n return this.client.updateWorkspace({ id: this.workspaceId, ...props })\n }\n\n public async findIntegration(ref: ApiPackageRef): Promise<Integration | undefined> {\n const formatted = formatPackageRef(ref)\n\n const privateIntegration = await this.findPrivateIntegration(ref)\n if (privateIntegration) {\n this._logger.debug(`Found integration \"${formatted}\" in workspace`)\n return privateIntegration\n }\n\n const publicIntegration = await this.findPublicIntegration(ref)\n if (publicIntegration) {\n this._logger.debug(`Found integration \"${formatted}\" in hub`)\n return publicIntegration\n }\n\n return\n }\n\n public async findPrivateIntegration(ref: ApiPackageRef): Promise<PrivateIntegration | undefined> {\n const { workspaceId } = this\n if (ref.type === 'id') {\n return this.client\n .getIntegration(ref)\n .then((r) => ({ ...r.integration, workspaceId }))\n .catch(this._returnUndefinedOnError('ResourceNotFound'))\n }\n return this.client\n .getIntegrationByName(ref)\n .then((r) => ({ ...r.integration, workspaceId }))\n .catch(this._returnUndefinedOnError('ResourceNotFound'))\n }\n\n public async findPublicIntegration(ref: ApiPackageRef): Promise<PublicIntegration | undefined> {\n if (ref.type === 'id') {\n return this.client\n .getPublicIntegrationById(ref)\n .then((r) => r.integration)\n .catch(this._returnUndefinedOnError('ResourceNotFound'))\n }\n return this.client\n .getPublicIntegration(ref)\n .then((r) => r.integration)\n .catch(this._returnUndefinedOnError('ResourceNotFound'))\n }\n\n public async findPublicInterface(ref: ApiPackageRef): Promise<Interface | undefined> {\n if (ref.type === 'id') {\n return this.client\n .getInterface(ref)\n .then((r) => r.interface)\n .catch(this._returnUndefinedOnError('ResourceNotFound'))\n }\n\n if (isLatest(ref)) {\n // TODO: handle latest keyword in backend\n return this._findLatestInterfaceVersion(ref)\n }\n\n return this.client\n .getInterfaceByName(ref)\n .then((r) => r.interface)\n .catch(this._returnUndefinedOnError('ResourceNotFound'))\n }\n\n private _findLatestInterfaceVersion = async ({ name }: NamePackageRef): Promise<Interface | undefined> => {\n const { interfaces: allVersions } = await this.client.listInterfaces({ name })\n const sorted = allVersions.sort((a, b) => semver.compare(b.version, a.version))\n const latestVersion = sorted[0]\n if (!latestVersion) {\n return\n }\n return this.client.getInterface({ id: latestVersion.id }).then((r) => r.interface)\n }\n\n public async testLogin(): Promise<void> {\n await this.client.listBots({})\n }\n\n public listAllPages = paging.listAllPages\n\n public async findPreviousIntegrationVersion(ref: NamePackageRef): Promise<Integration | undefined> {\n const previous = await findPreviousIntegrationVersion(this.client, ref)\n if (!previous) {\n return\n }\n return this.findIntegration({ type: 'id', id: previous.id })\n }\n\n public async findBotByName(name: string): Promise<BotSummary | undefined> {\n // api does not allow filtering bots by name\n const allBots = await this.listAllPages(this.client.listBots, (r) => r.bots)\n return allBots.find((b) => b.name === name)\n }\n\n private _returnUndefinedOnError =\n (type: client.ApiError['type']) =>\n (thrown: any): undefined => {\n if (client.isApiError(thrown) && thrown.type === type) {\n return\n }\n throw thrown\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import * as client from '@botpress/client'\nimport semver from 'semver'\nimport yn from 'yn'\nimport type { Logger } from '../logger'\nimport { formatPackageRef, ApiPackageRef, NamePackageRef, isLatest } from '../package-ref'\nimport { findPreviousIntegrationVersion } from './find-previous-version'\nimport * as paging from './paging'\n\nimport {\n ApiClientProps,\n PublicIntegration,\n PrivateIntegration,\n Integration,\n Requests,\n Responses,\n Interface,\n Plugin,\n BotSummary,\n} from './types'\n\nexport * from './types'\n\n/**\n * This class is used to wrap the Botpress API and provide a more convenient way to interact with it.\n */\nexport class ApiClient {\n public readonly client: client.Client\n public readonly url: string\n public readonly token: string\n public readonly workspaceId: string\n\n public static newClient = (props: ApiClientProps, logger: Logger) => new ApiClient(props, logger)\n\n public constructor(props: ApiClientProps, private _logger: Logger) {\n const { apiUrl, token, workspaceId } = props\n this.client = new client.Client({ apiUrl, token, workspaceId })\n this.url = apiUrl\n this.token = token\n this.workspaceId = workspaceId\n }\n\n public get isBotpressWorkspace(): boolean {\n // this environment variable is undocumented and only used internally for dev purposes\n const isBotpressWorkspace = yn(process.env.BP_IS_BOTPRESS_WORKSPACE)\n if (isBotpressWorkspace !== undefined) {\n return isBotpressWorkspace\n }\n return [\n '6a76fa10-e150-4ff6-8f59-a300feec06c1',\n '95de33eb-1551-4af9-9088-e5dcb02efd09',\n '11111111-1111-1111-aaaa-111111111111',\n ].includes(this.workspaceId)\n }\n\n public async getWorkspace(): Promise<Responses['getWorkspace']> {\n return this.client.getWorkspace({ id: this.workspaceId })\n }\n\n public async updateWorkspace(props: Omit<Requests['updateWorkspace'], 'id'>): Promise<Responses['updateWorkspace']> {\n return this.client.updateWorkspace({ id: this.workspaceId, ...props })\n }\n\n public async findIntegration(ref: ApiPackageRef): Promise<Integration | undefined> {\n const formatted = formatPackageRef(ref)\n\n const privateIntegration = await this.findPrivateIntegration(ref)\n if (privateIntegration) {\n this._logger.debug(`Found integration \"${formatted}\" in workspace`)\n return privateIntegration\n }\n\n const publicIntegration = await this.findPublicIntegration(ref)\n if (publicIntegration) {\n this._logger.debug(`Found integration \"${formatted}\" in hub`)\n return publicIntegration\n }\n\n return\n }\n\n public async findPrivateIntegration(ref: ApiPackageRef): Promise<PrivateIntegration | undefined> {\n const { workspaceId } = this\n if (ref.type === 'id') {\n return this.client\n .getIntegration(ref)\n .then((r) => ({ ...r.integration, workspaceId }))\n .catch(this._returnUndefinedOnError('ResourceNotFound'))\n }\n return this.client\n .getIntegrationByName(ref)\n .then((r) => ({ ...r.integration, workspaceId }))\n .catch(this._returnUndefinedOnError('ResourceNotFound'))\n }\n\n public async findPublicIntegration(ref: ApiPackageRef): Promise<PublicIntegration | undefined> {\n if (ref.type === 'id') {\n return this.client\n .getPublicIntegrationById(ref)\n .then((r) => r.integration)\n .catch(this._returnUndefinedOnError('ResourceNotFound'))\n }\n return this.client\n .getPublicIntegration(ref)\n .then((r) => r.integration)\n .catch(this._returnUndefinedOnError('ResourceNotFound'))\n }\n\n public async findPublicInterface(ref: ApiPackageRef): Promise<Interface | undefined> {\n if (ref.type === 'id') {\n return this.client\n .getInterface(ref)\n .then((r) => r.interface)\n .catch(this._returnUndefinedOnError('ResourceNotFound'))\n }\n\n if (isLatest(ref)) {\n // TODO: handle latest keyword in backend\n return this._findLatestInterfaceVersion(ref)\n }\n\n return this.client\n .getInterfaceByName(ref)\n .then((r) => r.interface)\n .catch(this._returnUndefinedOnError('ResourceNotFound'))\n }\n\n public async findPublicPlugin(ref: ApiPackageRef): Promise<Plugin | undefined> {\n if (ref.type === 'id') {\n return this.client\n .getPlugin(ref)\n .then((r) => r.plugin)\n .catch(this._returnUndefinedOnError('ResourceNotFound'))\n }\n\n if (isLatest(ref)) {\n // TODO: handle latest keyword in backend\n return this._findLatestPluginVersion(ref)\n }\n\n return this.client\n .getPluginByName(ref)\n .then((r) => r.plugin)\n .catch(this._returnUndefinedOnError('ResourceNotFound'))\n }\n\n private _findLatestInterfaceVersion = async ({ name }: NamePackageRef): Promise<Interface | undefined> => {\n const { interfaces: allVersions } = await this.client.listInterfaces({ name })\n const sorted = allVersions.sort((a, b) => semver.compare(b.version, a.version))\n const latestVersion = sorted[0]\n if (!latestVersion) {\n return\n }\n return this.client.getInterface({ id: latestVersion.id }).then((r) => r.interface)\n }\n\n private _findLatestPluginVersion = async ({ name }: NamePackageRef): Promise<Plugin | undefined> => {\n const { plugins: allVersions } = await this.client.listPlugins({ name })\n const sorted = allVersions.sort((a, b) => semver.compare(b.version, a.version))\n const latestVersion = sorted[0]\n if (!latestVersion) {\n return\n }\n return this.client.getPlugin({ id: latestVersion.id }).then((r) => r.plugin)\n }\n\n public async testLogin(): Promise<void> {\n await this.client.listBots({})\n }\n\n public listAllPages = paging.listAllPages\n\n public async findPreviousIntegrationVersion(ref: NamePackageRef): Promise<Integration | undefined> {\n const previous = await findPreviousIntegrationVersion(this.client, ref)\n if (!previous) {\n return\n }\n return this.findIntegration({ type: 'id', id: previous.id })\n }\n\n public async findBotByName(name: string): Promise<BotSummary | undefined> {\n // api does not allow filtering bots by name\n const allBots = await this.listAllPages(this.client.listBots, (r) => r.bots)\n return allBots.find((b) => b.name === name)\n }\n\n private _returnUndefinedOnError =\n (type: client.ApiError['type']) =>\n (thrown: any): undefined => {\n if (client.isApiError(thrown) && thrown.type === type) {\n return\n }\n throw thrown\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["yn", "semver"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/api/interface-body.ts"],
4
- "sourcesContent": ["import type { Client, Interface } from '@botpress/client'\nimport type * as sdk from '@botpress/sdk'\nimport * as utils from '../utils'\n\nexport type CreateInterfaceBody = Parameters<Client['createInterface']>[0]\nexport type UpdateInterfaceBody = Parameters<Client['updateInterface']>[0]\n\nexport const prepareCreateInterfaceBody = async (intrface: sdk.InterfaceDeclaration): Promise<CreateInterfaceBody> => ({\n name: intrface.name,\n version: intrface.version,\n entities: intrface.entities\n ? await utils.records.mapValuesAsync(intrface.entities, async (entity) => ({\n ...entity,\n schema: await utils.schema.mapZodToJsonSchema(entity),\n }))\n : {},\n events: intrface.events\n ? await utils.records.mapValuesAsync(intrface.events, async (event) => ({\n ...event,\n schema: await utils.schema.mapZodToJsonSchema(event),\n }))\n : {},\n actions: intrface.actions\n ? await utils.records.mapValuesAsync(intrface.actions, async (action) => ({\n ...action,\n input: {\n ...action.input,\n schema: await utils.schema.mapZodToJsonSchema(action.input),\n },\n output: {\n ...action.output,\n schema: await utils.schema.mapZodToJsonSchema(action.output),\n },\n }))\n : {},\n channels: intrface.channels\n ? await utils.records.mapValuesAsync(intrface.channels, async (channel) => ({\n ...channel,\n messages: await utils.records.mapValuesAsync(channel.messages, async (message) => ({\n ...message,\n schema: await utils.schema.mapZodToJsonSchema(message),\n })),\n }))\n : {},\n nameTemplate: intrface.templateName\n ? {\n script: intrface.templateName,\n language: 'handlebars',\n }\n : undefined,\n})\n\nexport const prepareUpdateInterfaceBody = (\n localInterface: CreateInterfaceBody & { id: string },\n remoteInterface: Interface\n): UpdateInterfaceBody => {\n const actions = utils.records.setNullOnMissingValues(localInterface.actions, remoteInterface.actions)\n const events = utils.records.setNullOnMissingValues(localInterface.events, remoteInterface.events)\n const entities = utils.records.setNullOnMissingValues(localInterface.entities, remoteInterface.entities)\n\n const currentChannels: UpdateInterfaceBody['channels'] = localInterface.channels\n ? utils.records.mapValues(localInterface.channels, (channel, channelName) => ({\n ...channel,\n messages: utils.records.setNullOnMissingValues(\n channel?.messages,\n remoteInterface.channels[channelName]?.messages\n ),\n }))\n : undefined\n\n const channels = utils.records.setNullOnMissingValues(currentChannels, remoteInterface.channels)\n\n return {\n ...localInterface,\n entities,\n actions,\n events,\n channels,\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,YAAuB;AAKhB,MAAM,6BAA6B,OAAO,cAAsE;AAAA,EACrH,MAAM,SAAS;AAAA,EACf,SAAS,SAAS;AAAA,EAClB,UAAU,SAAS,WACf,MAAM,MAAM,QAAQ,eAAe,SAAS,UAAU,OAAO,YAAY;AAAA,IACvE,GAAG;AAAA,IACH,QAAQ,MAAM,MAAM,OAAO,mBAAmB,MAAM;AAAA,EACtD,EAAE,IACF,CAAC;AAAA,EACL,QAAQ,SAAS,SACb,MAAM,MAAM,QAAQ,eAAe,SAAS,QAAQ,OAAO,WAAW;AAAA,IACpE,GAAG;AAAA,IACH,QAAQ,MAAM,MAAM,OAAO,mBAAmB,KAAK;AAAA,EACrD,EAAE,IACF,CAAC;AAAA,EACL,SAAS,SAAS,UACd,MAAM,MAAM,QAAQ,eAAe,SAAS,SAAS,OAAO,YAAY;AAAA,IACtE,GAAG;AAAA,IACH,OAAO;AAAA,MACL,GAAG,OAAO;AAAA,MACV,QAAQ,MAAM,MAAM,OAAO,mBAAmB,OAAO,KAAK;AAAA,IAC5D;AAAA,IACA,QAAQ;AAAA,MACN,GAAG,OAAO;AAAA,MACV,QAAQ,MAAM,MAAM,OAAO,mBAAmB,OAAO,MAAM;AAAA,IAC7D;AAAA,EACF,EAAE,IACF,CAAC;AAAA,EACL,UAAU,SAAS,WACf,MAAM,MAAM,QAAQ,eAAe,SAAS,UAAU,OAAO,aAAa;AAAA,IACxE,GAAG;AAAA,IACH,UAAU,MAAM,MAAM,QAAQ,eAAe,QAAQ,UAAU,OAAO,aAAa;AAAA,MACjF,GAAG;AAAA,MACH,QAAQ,MAAM,MAAM,OAAO,mBAAmB,OAAO;AAAA,IACvD,EAAE;AAAA,EACJ,EAAE,IACF,CAAC;AAAA,EACL,cAAc,SAAS,eACnB;AAAA,IACE,QAAQ,SAAS;AAAA,IACjB,UAAU;AAAA,EACZ,IACA;AACN;AAEO,MAAM,6BAA6B,CACxC,gBACA,oBACwB;AACxB,QAAM,UAAU,MAAM,QAAQ,uBAAuB,eAAe,SAAS,gBAAgB,OAAO;AACpG,QAAM,SAAS,MAAM,QAAQ,uBAAuB,eAAe,QAAQ,gBAAgB,MAAM;AACjG,QAAM,WAAW,MAAM,QAAQ,uBAAuB,eAAe,UAAU,gBAAgB,QAAQ;AAEvG,QAAM,kBAAmD,eAAe,WACpE,MAAM,QAAQ,UAAU,eAAe,UAAU,CAAC,SAAS,iBAAiB;AAAA,IAC1E,GAAG;AAAA,IACH,UAAU,MAAM,QAAQ;AAAA,MACtB,SAAS;AAAA,MACT,gBAAgB,SAAS,cAAc;AAAA,IACzC;AAAA,EACF,EAAE,IACF;AAEJ,QAAM,WAAW,MAAM,QAAQ,uBAAuB,iBAAiB,gBAAgB,QAAQ;AAE/F,SAAO;AAAA,IACL,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
4
+ "sourcesContent": ["import type { Client, Interface } from '@botpress/client'\nimport type * as sdk from '@botpress/sdk'\nimport * as utils from '../utils'\n\nexport type CreateInterfaceBody = Parameters<Client['createInterface']>[0]\nexport type UpdateInterfaceBody = Parameters<Client['updateInterface']>[0]\n\nexport const prepareCreateInterfaceBody = async (intrface: sdk.InterfaceDefinition): Promise<CreateInterfaceBody> => ({\n name: intrface.name,\n version: intrface.version,\n entities: intrface.entities\n ? await utils.records.mapValuesAsync(intrface.entities, async (entity) => ({\n ...entity,\n schema: await utils.schema.mapZodToJsonSchema(entity),\n }))\n : {},\n events: intrface.events\n ? await utils.records.mapValuesAsync(intrface.events, async (event) => ({\n ...event,\n schema: await utils.schema.mapZodToJsonSchema(event),\n }))\n : {},\n actions: intrface.actions\n ? await utils.records.mapValuesAsync(intrface.actions, async (action) => ({\n ...action,\n input: {\n ...action.input,\n schema: await utils.schema.mapZodToJsonSchema(action.input),\n },\n output: {\n ...action.output,\n schema: await utils.schema.mapZodToJsonSchema(action.output),\n },\n }))\n : {},\n channels: intrface.channels\n ? await utils.records.mapValuesAsync(intrface.channels, async (channel) => ({\n ...channel,\n messages: await utils.records.mapValuesAsync(channel.messages, async (message) => ({\n ...message,\n schema: await utils.schema.mapZodToJsonSchema(message),\n })),\n }))\n : {},\n nameTemplate: intrface.templateName\n ? {\n script: intrface.templateName,\n language: 'handlebars',\n }\n : undefined,\n})\n\nexport const prepareUpdateInterfaceBody = (\n localInterface: CreateInterfaceBody & { id: string },\n remoteInterface: Interface\n): UpdateInterfaceBody => {\n const actions = utils.records.setNullOnMissingValues(localInterface.actions, remoteInterface.actions)\n const events = utils.records.setNullOnMissingValues(localInterface.events, remoteInterface.events)\n const entities = utils.records.setNullOnMissingValues(localInterface.entities, remoteInterface.entities)\n\n const currentChannels: UpdateInterfaceBody['channels'] = localInterface.channels\n ? utils.records.mapValues(localInterface.channels, (channel, channelName) => ({\n ...channel,\n messages: utils.records.setNullOnMissingValues(\n channel?.messages,\n remoteInterface.channels[channelName]?.messages\n ),\n }))\n : undefined\n\n const channels = utils.records.setNullOnMissingValues(currentChannels, remoteInterface.channels)\n\n return {\n ...localInterface,\n entities,\n actions,\n events,\n channels,\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,YAAuB;AAKhB,MAAM,6BAA6B,OAAO,cAAqE;AAAA,EACpH,MAAM,SAAS;AAAA,EACf,SAAS,SAAS;AAAA,EAClB,UAAU,SAAS,WACf,MAAM,MAAM,QAAQ,eAAe,SAAS,UAAU,OAAO,YAAY;AAAA,IACvE,GAAG;AAAA,IACH,QAAQ,MAAM,MAAM,OAAO,mBAAmB,MAAM;AAAA,EACtD,EAAE,IACF,CAAC;AAAA,EACL,QAAQ,SAAS,SACb,MAAM,MAAM,QAAQ,eAAe,SAAS,QAAQ,OAAO,WAAW;AAAA,IACpE,GAAG;AAAA,IACH,QAAQ,MAAM,MAAM,OAAO,mBAAmB,KAAK;AAAA,EACrD,EAAE,IACF,CAAC;AAAA,EACL,SAAS,SAAS,UACd,MAAM,MAAM,QAAQ,eAAe,SAAS,SAAS,OAAO,YAAY;AAAA,IACtE,GAAG;AAAA,IACH,OAAO;AAAA,MACL,GAAG,OAAO;AAAA,MACV,QAAQ,MAAM,MAAM,OAAO,mBAAmB,OAAO,KAAK;AAAA,IAC5D;AAAA,IACA,QAAQ;AAAA,MACN,GAAG,OAAO;AAAA,MACV,QAAQ,MAAM,MAAM,OAAO,mBAAmB,OAAO,MAAM;AAAA,IAC7D;AAAA,EACF,EAAE,IACF,CAAC;AAAA,EACL,UAAU,SAAS,WACf,MAAM,MAAM,QAAQ,eAAe,SAAS,UAAU,OAAO,aAAa;AAAA,IACxE,GAAG;AAAA,IACH,UAAU,MAAM,MAAM,QAAQ,eAAe,QAAQ,UAAU,OAAO,aAAa;AAAA,MACjF,GAAG;AAAA,MACH,QAAQ,MAAM,MAAM,OAAO,mBAAmB,OAAO;AAAA,IACvD,EAAE;AAAA,EACJ,EAAE,IACF,CAAC;AAAA,EACL,cAAc,SAAS,eACnB;AAAA,IACE,QAAQ,SAAS;AAAA,IACjB,UAAU;AAAA,EACZ,IACA;AACN;AAEO,MAAM,6BAA6B,CACxC,gBACA,oBACwB;AACxB,QAAM,UAAU,MAAM,QAAQ,uBAAuB,eAAe,SAAS,gBAAgB,OAAO;AACpG,QAAM,SAAS,MAAM,QAAQ,uBAAuB,eAAe,QAAQ,gBAAgB,MAAM;AACjG,QAAM,WAAW,MAAM,QAAQ,uBAAuB,eAAe,UAAU,gBAAgB,QAAQ;AAEvG,QAAM,kBAAmD,eAAe,WACpE,MAAM,QAAQ,UAAU,eAAe,UAAU,CAAC,SAAS,iBAAiB;AAAA,IAC1E,GAAG;AAAA,IACH,UAAU,MAAM,QAAQ;AAAA,MACtB,SAAS;AAAA,MACT,gBAAgB,SAAS,cAAc;AAAA,IACzC;AAAA,EACF,EAAE,IACF;AAEJ,QAAM,WAAW,MAAM,QAAQ,uBAAuB,iBAAiB,gBAAgB,QAAQ;AAE/F,SAAO;AAAA,IACL,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,79 @@
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 plugin_body_exports = {};
26
+ __export(plugin_body_exports, {
27
+ prepareCreatePluginBody: () => prepareCreatePluginBody,
28
+ prepareUpdatePluginBody: () => prepareUpdatePluginBody
29
+ });
30
+ module.exports = __toCommonJS(plugin_body_exports);
31
+ var utils = __toESM(require("../utils"));
32
+ const prepareCreatePluginBody = async (plugin) => ({
33
+ name: plugin.name,
34
+ version: plugin.version,
35
+ user: {
36
+ tags: plugin.user?.tags ?? {}
37
+ },
38
+ configuration: plugin.configuration ? {
39
+ ...plugin.configuration,
40
+ schema: await utils.schema.mapZodToJsonSchema(plugin.configuration)
41
+ } : void 0,
42
+ events: plugin.events ? await utils.records.mapValuesAsync(plugin.events, async (event) => ({
43
+ ...event,
44
+ schema: await utils.schema.mapZodToJsonSchema(event)
45
+ })) : void 0,
46
+ actions: plugin.actions ? await utils.records.mapValuesAsync(plugin.actions, async (action) => ({
47
+ ...action,
48
+ input: {
49
+ ...action.input,
50
+ schema: await utils.schema.mapZodToJsonSchema(action.input)
51
+ },
52
+ output: {
53
+ ...action.output,
54
+ schema: await utils.schema.mapZodToJsonSchema(action.output)
55
+ }
56
+ })) : void 0,
57
+ states: plugin.states ? await utils.records.mapValuesAsync(plugin.states, async (state) => ({
58
+ ...state,
59
+ schema: await utils.schema.mapZodToJsonSchema(state)
60
+ })) : void 0
61
+ });
62
+ const prepareUpdatePluginBody = (localPlugin, remotePlugin) => {
63
+ const actions = utils.records.setNullOnMissingValues(localPlugin.actions, remotePlugin.actions);
64
+ const events = utils.records.setNullOnMissingValues(localPlugin.events, remotePlugin.events);
65
+ const states = utils.records.setNullOnMissingValues(localPlugin.states, remotePlugin.states);
66
+ return {
67
+ ...localPlugin,
68
+ actions,
69
+ events,
70
+ states,
71
+ user: localPlugin.user
72
+ };
73
+ };
74
+ // Annotate the CommonJS export names for ESM import in node:
75
+ 0 && (module.exports = {
76
+ prepareCreatePluginBody,
77
+ prepareUpdatePluginBody
78
+ });
79
+ //# sourceMappingURL=plugin-body.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/api/plugin-body.ts"],
4
+ "sourcesContent": ["import type { Client, Plugin } from '@botpress/client'\nimport type * as sdk from '@botpress/sdk'\nimport * as utils from '../utils'\n\nexport type CreatePluginBody = utils.types.Merge<\n Parameters<Client['createPlugin']>[0],\n {\n code?: string\n }\n>\nexport type UpdatePluginBody = Parameters<Client['updatePlugin']>[0]\n\nexport const prepareCreatePluginBody = async (plugin: sdk.PluginDefinition): Promise<CreatePluginBody> => ({\n name: plugin.name,\n version: plugin.version,\n user: {\n tags: plugin.user?.tags ?? {},\n },\n configuration: plugin.configuration\n ? {\n ...plugin.configuration,\n schema: await utils.schema.mapZodToJsonSchema(plugin.configuration),\n }\n : undefined,\n events: plugin.events\n ? await utils.records.mapValuesAsync(plugin.events, async (event) => ({\n ...event,\n schema: await utils.schema.mapZodToJsonSchema(event),\n }))\n : undefined,\n actions: plugin.actions\n ? await utils.records.mapValuesAsync(plugin.actions, async (action) => ({\n ...action,\n input: {\n ...action.input,\n schema: await utils.schema.mapZodToJsonSchema(action.input),\n },\n output: {\n ...action.output,\n schema: await utils.schema.mapZodToJsonSchema(action.output),\n },\n }))\n : undefined,\n states: plugin.states\n ? await utils.records.mapValuesAsync(plugin.states, async (state) => ({\n ...state,\n schema: await utils.schema.mapZodToJsonSchema(state),\n }))\n : undefined,\n})\n\nexport const prepareUpdatePluginBody = (localPlugin: UpdatePluginBody, remotePlugin: Plugin): UpdatePluginBody => {\n const actions = utils.records.setNullOnMissingValues(localPlugin.actions, remotePlugin.actions)\n const events = utils.records.setNullOnMissingValues(localPlugin.events, remotePlugin.events)\n const states = utils.records.setNullOnMissingValues(localPlugin.states, remotePlugin.states)\n\n return {\n ...localPlugin,\n actions,\n events,\n states,\n user: localPlugin.user, // TODO: allow deleting user tags with null\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,YAAuB;AAUhB,MAAM,0BAA0B,OAAO,YAA6D;AAAA,EACzG,MAAM,OAAO;AAAA,EACb,SAAS,OAAO;AAAA,EAChB,MAAM;AAAA,IACJ,MAAM,OAAO,MAAM,QAAQ,CAAC;AAAA,EAC9B;AAAA,EACA,eAAe,OAAO,gBAClB;AAAA,IACE,GAAG,OAAO;AAAA,IACV,QAAQ,MAAM,MAAM,OAAO,mBAAmB,OAAO,aAAa;AAAA,EACpE,IACA;AAAA,EACJ,QAAQ,OAAO,SACX,MAAM,MAAM,QAAQ,eAAe,OAAO,QAAQ,OAAO,WAAW;AAAA,IAClE,GAAG;AAAA,IACH,QAAQ,MAAM,MAAM,OAAO,mBAAmB,KAAK;AAAA,EACrD,EAAE,IACF;AAAA,EACJ,SAAS,OAAO,UACZ,MAAM,MAAM,QAAQ,eAAe,OAAO,SAAS,OAAO,YAAY;AAAA,IACpE,GAAG;AAAA,IACH,OAAO;AAAA,MACL,GAAG,OAAO;AAAA,MACV,QAAQ,MAAM,MAAM,OAAO,mBAAmB,OAAO,KAAK;AAAA,IAC5D;AAAA,IACA,QAAQ;AAAA,MACN,GAAG,OAAO;AAAA,MACV,QAAQ,MAAM,MAAM,OAAO,mBAAmB,OAAO,MAAM;AAAA,IAC7D;AAAA,EACF,EAAE,IACF;AAAA,EACJ,QAAQ,OAAO,SACX,MAAM,MAAM,QAAQ,eAAe,OAAO,QAAQ,OAAO,WAAW;AAAA,IAClE,GAAG;AAAA,IACH,QAAQ,MAAM,MAAM,OAAO,mBAAmB,KAAK;AAAA,EACrD,EAAE,IACF;AACN;AAEO,MAAM,0BAA0B,CAAC,aAA+B,iBAA2C;AAChH,QAAM,UAAU,MAAM,QAAQ,uBAAuB,YAAY,SAAS,aAAa,OAAO;AAC9F,QAAM,SAAS,MAAM,QAAQ,uBAAuB,YAAY,QAAQ,aAAa,MAAM;AAC3F,QAAM,SAAS,MAAM,QAAQ,uBAAuB,YAAY,QAAQ,aAAa,MAAM;AAE3F,SAAO;AAAA,IACL,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA,MAAM,YAAY;AAAA,EACpB;AACF;",
6
+ "names": []
7
+ }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/api/types.ts"],
4
- "sourcesContent": ["import * as client from '@botpress/client'\nimport { Logger } from 'src/logger'\nimport { ApiClient } from './client'\n\nexport type ApiClientProps = {\n apiUrl: string\n token: string\n workspaceId: string\n}\n\nexport type ApiClientFactory = {\n newClient: (props: ApiClientProps, logger: Logger) => ApiClient\n}\n\nexport type PublicIntegration = client.Integration\nexport type PrivateIntegration = client.Integration & { workspaceId: string }\nexport type Integration = client.Integration & { workspaceId?: string }\nexport type IntegrationSummary = client.ClientOutputs['listIntegrations']['integrations'][number]\n\nexport type BotSummary = client.ClientOutputs['listBots']['bots'][number]\n\nexport type Interface = client.Interface\n\nexport type BaseOperation = (...args: any[]) => Promise<any>\nexport type Operations = {\n [K in keyof client.Client as client.Client[K] extends BaseOperation ? K : never]: client.Client[K]\n}\nexport type Requests = {\n [K in keyof Operations]: Parameters<Operations[K]>[0]\n}\nexport type Responses = {\n [K in keyof Operations]: ReturnType<Operations[K]>\n}\n"],
4
+ "sourcesContent": ["import * as client from '@botpress/client'\nimport { Logger } from 'src/logger'\nimport { ApiClient } from './client'\n\nexport type ApiClientProps = {\n apiUrl: string\n token: string\n workspaceId: string\n}\n\nexport type ApiClientFactory = {\n newClient: (props: ApiClientProps, logger: Logger) => ApiClient\n}\n\nexport type PublicIntegration = client.Integration\nexport type PrivateIntegration = client.Integration & { workspaceId: string }\nexport type Integration = client.Integration & { workspaceId?: string }\nexport type IntegrationSummary = client.ClientOutputs['listIntegrations']['integrations'][number]\n\nexport type BotSummary = client.ClientOutputs['listBots']['bots'][number]\n\nexport type Interface = client.Interface\nexport type Plugin = client.Plugin\n\nexport type BaseOperation = (...args: any[]) => Promise<any>\nexport type Operations = {\n [K in keyof client.Client as client.Client[K] extends BaseOperation ? K : never]: client.Client[K]\n}\nexport type Requests = {\n [K in keyof Operations]: Parameters<Operations[K]>[0]\n}\nexport type Responses = {\n [K in keyof Operations]: ReturnType<Operations[K]>\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;AAAA;AAAA;",
6
6
  "names": []
7
7
  }
@@ -29,9 +29,11 @@ __export(bot_implementation_exports, {
29
29
  module.exports = __toCommonJS(bot_implementation_exports);
30
30
  var consts = __toESM(require("../consts"));
31
31
  var import_module = require("../module");
32
+ var import_bot_plugins = require("./bot-plugins");
32
33
  var import_bot_typings = require("./bot-typings");
33
34
  class BotImplementationModule extends import_module.Module {
34
35
  _typingsModule;
36
+ _pluginsModule;
35
37
  constructor(bot) {
36
38
  super({
37
39
  exportName: "Bot",
@@ -40,27 +42,56 @@ class BotImplementationModule extends import_module.Module {
40
42
  this._typingsModule = new import_bot_typings.BotTypingsModule(bot);
41
43
  this._typingsModule.unshift("typings");
42
44
  this.pushDep(this._typingsModule);
45
+ this._pluginsModule = new import_bot_plugins.BotPluginsIndexModule(bot);
46
+ this._pluginsModule.unshift(consts.fromOutDir.pluginsDir);
47
+ this.pushDep(this._pluginsModule);
43
48
  }
44
49
  async getContent() {
45
- const typingsImport = this._typingsModule.import(this);
50
+ const {
51
+ _typingsModule: typingsModule,
52
+ _pluginsModule: pluginsModule
53
+ } = this;
54
+ const typingsImport = typingsModule.import(this);
55
+ const pluginsImport = pluginsModule.import(this);
46
56
  return [
47
57
  consts.GENERATED_HEADER,
48
58
  'import * as sdk from "@botpress/sdk"',
49
- `import * as ${this._typingsModule.name} from "./${typingsImport}"`,
59
+ `import * as ${typingsModule.name} from "./${typingsImport}"`,
60
+ `import * as ${pluginsModule.name} from "./${pluginsImport}"`,
61
+ "",
50
62
  `export * from "./${typingsImport}"`,
63
+ `export * from "./${pluginsImport}"`,
64
+ "",
65
+ `type TPlugins = ${pluginsModule.name}.TPlugins`,
66
+ `type TBot = sdk.DefaultBot<${typingsModule.name}.${typingsModule.exportName}>`,
51
67
  "",
52
- `type TBot = sdk.DefaultBot<${this._typingsModule.name}.${this._typingsModule.exportName}>`,
68
+ "export type BotProps = {",
69
+ ' actions: sdk.BotProps<TBot, TPlugins>["actions"]',
70
+ "}",
53
71
  "",
54
- "export class Bot extends sdk.Bot<TBot> {}",
72
+ "export class Bot extends sdk.Bot<TBot, TPlugins> {",
73
+ " public constructor(props: BotProps) {",
74
+ " super({",
75
+ " actions: props.actions,",
76
+ ` plugins: ${pluginsModule.name}.${pluginsModule.exportName}`,
77
+ " })",
78
+ " }",
79
+ "}",
55
80
  "",
56
81
  "// extra types",
57
82
  "",
58
83
  "type AsyncFunction = (...args: any[]) => Promise<any>",
59
- "export type EventHandler = Parameters<Bot['event']>[0]",
60
- "export type EventHandlerProps = Parameters<EventHandler>[0]",
61
- "export type MessageHandler = Parameters<Bot['message']>[0]",
62
- "export type MessageHandlerProps = Parameters<MessageHandler>[0]",
63
- "export type Client = EventHandlerProps['client']",
84
+ "export type EventHandlers = Required<{",
85
+ " [K in keyof Bot['eventHandlers']]: NonNullable<Bot['eventHandlers'][K]>[number]",
86
+ "}>",
87
+ "export type MessageHandlers = Required<{",
88
+ " [K in keyof Bot['messageHandlers']]: NonNullable<Bot['messageHandlers'][K]>[number]",
89
+ "}>",
90
+ "",
91
+ "export type MessageHandlerProps = Parameters<MessageHandlers['*']>[0]",
92
+ "export type EventHandlerProps = Parameters<EventHandlers['*']>[0]",
93
+ "",
94
+ "export type Client = (MessageHandlerProps | EventHandlerProps)['client']",
64
95
  "export type ClientOperation = keyof {",
65
96
  " [K in keyof Client as Client[K] extends AsyncFunction ? K : never]: null",
66
97
  "}",
@@ -69,18 +100,6 @@ class BotImplementationModule extends import_module.Module {
69
100
  "}",
70
101
  "export type ClientOutputs = {",
71
102
  " [K in ClientOperation]: Awaited<ReturnType<Client[K]>>",
72
- "}",
73
- "// @deprecated",
74
- "export type BotEvent = EventHandlerProps['event']",
75
- "// @deprecated",
76
- "export type BotEvents = {",
77
- " [K in BotEvent['type']]: Extract<BotEvent, { type: K }>",
78
- "}",
79
- "// @deprecated",
80
- "export type BotState = ClientOutputs['getState']['state']",
81
- "// @deprecated",
82
- "export type BotStates = {",
83
- " [K in BotState['name']]: Extract<BotState, { type: K }>['payload']",
84
103
  "}"
85
104
  ].join("\n");
86
105
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/code-generation/bot-implementation/bot-implementation.ts"],
4
- "sourcesContent": ["import * as sdk from '@botpress/sdk'\nimport * as consts from '../consts'\nimport { Module } from '../module'\nimport { BotTypingsModule } from './bot-typings'\n\nexport class BotImplementationModule extends Module {\n private _typingsModule: BotTypingsModule\n\n public constructor(bot: sdk.BotDefinition) {\n super({\n exportName: 'Bot',\n path: consts.INDEX_FILE,\n })\n\n this._typingsModule = new BotTypingsModule(bot)\n this._typingsModule.unshift('typings')\n this.pushDep(this._typingsModule)\n }\n\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 TBot = sdk.DefaultBot<${this._typingsModule.name}.${this._typingsModule.exportName}>`,\n '',\n 'export class Bot extends sdk.Bot<TBot> {}',\n '',\n '// extra types',\n '',\n 'type AsyncFunction = (...args: any[]) => Promise<any>',\n \"export type EventHandler = Parameters<Bot['event']>[0]\",\n 'export type EventHandlerProps = Parameters<EventHandler>[0]',\n \"export type MessageHandler = Parameters<Bot['message']>[0]\",\n 'export type MessageHandlerProps = Parameters<MessageHandler>[0]',\n \"export type Client = 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 '// @deprecated',\n \"export type BotEvent = EventHandlerProps['event']\",\n '// @deprecated',\n 'export type BotEvents = {',\n \" [K in BotEvent['type']]: Extract<BotEvent, { type: K }>\",\n '}',\n '// @deprecated',\n \"export type BotState = ClientOutputs['getState']['state']\",\n '// @deprecated',\n 'export type BotStates = {',\n \" [K in BotState['name']]: Extract<BotState, { type: K }>['payload']\",\n '}',\n ].join('\\n')\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,aAAwB;AACxB,oBAAuB;AACvB,yBAAiC;AAE1B,MAAM,gCAAgC,qBAAO;AAAA,EAC1C;AAAA,EAED,YAAY,KAAwB;AACzC,UAAM;AAAA,MACJ,YAAY;AAAA,MACZ,MAAM,OAAO;AAAA,IACf,CAAC;AAED,SAAK,iBAAiB,IAAI,oCAAiB,GAAG;AAC9C,SAAK,eAAe,QAAQ,SAAS;AACrC,SAAK,QAAQ,KAAK,cAAc;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,8BAA8B,KAAK,eAAe,QAAQ,KAAK,eAAe;AAAA,MAC9E;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;",
4
+ "sourcesContent": ["import * as sdk from '@botpress/sdk'\nimport * as consts from '../consts'\nimport { Module } from '../module'\nimport { BotPluginsIndexModule } from './bot-plugins'\nimport { BotTypingsModule } from './bot-typings'\n\nexport class BotImplementationModule extends Module {\n private _typingsModule: BotTypingsModule\n private _pluginsModule: BotPluginsIndexModule\n\n public constructor(bot: sdk.BotDefinition) {\n super({\n exportName: 'Bot',\n path: consts.INDEX_FILE,\n })\n\n this._typingsModule = new BotTypingsModule(bot)\n this._typingsModule.unshift('typings')\n this.pushDep(this._typingsModule)\n\n this._pluginsModule = new BotPluginsIndexModule(bot)\n this._pluginsModule.unshift(consts.fromOutDir.pluginsDir)\n this.pushDep(this._pluginsModule)\n }\n\n public async getContent() {\n const {\n //\n _typingsModule: typingsModule,\n _pluginsModule: pluginsModule,\n } = this\n\n const typingsImport = typingsModule.import(this)\n const pluginsImport = pluginsModule.import(this)\n\n return [\n consts.GENERATED_HEADER,\n 'import * as sdk from \"@botpress/sdk\"',\n `import * as ${typingsModule.name} from \"./${typingsImport}\"`,\n `import * as ${pluginsModule.name} from \"./${pluginsImport}\"`,\n '',\n `export * from \"./${typingsImport}\"`,\n `export * from \"./${pluginsImport}\"`,\n '',\n `type TPlugins = ${pluginsModule.name}.TPlugins`,\n `type TBot = sdk.DefaultBot<${typingsModule.name}.${typingsModule.exportName}>`,\n '',\n 'export type BotProps = {',\n ' actions: sdk.BotProps<TBot, TPlugins>[\"actions\"]',\n '}',\n '',\n 'export class Bot extends sdk.Bot<TBot, TPlugins> {',\n ' public constructor(props: BotProps) {',\n ' super({',\n ' actions: props.actions,',\n ` plugins: ${pluginsModule.name}.${pluginsModule.exportName}`,\n ' })',\n ' }',\n '}',\n '',\n '// extra types',\n '',\n 'type AsyncFunction = (...args: any[]) => Promise<any>',\n 'export type EventHandlers = Required<{',\n \" [K in keyof Bot['eventHandlers']]: NonNullable<Bot['eventHandlers'][K]>[number]\",\n '}>',\n 'export type MessageHandlers = Required<{',\n \" [K in keyof Bot['messageHandlers']]: NonNullable<Bot['messageHandlers'][K]>[number]\",\n '}>',\n '',\n \"export type MessageHandlerProps = Parameters<MessageHandlers['*']>[0]\",\n \"export type EventHandlerProps = Parameters<EventHandlers['*']>[0]\",\n '',\n \"export type Client = (MessageHandlerProps | EventHandlerProps)['client']\",\n 'export type ClientOperation = keyof {',\n ' [K in keyof Client as Client[K] extends AsyncFunction ? K : never]: null',\n '}',\n 'export type ClientInputs = {',\n ' [K in ClientOperation]: Parameters<Client[K]>[0]',\n '}',\n 'export type ClientOutputs = {',\n ' [K in ClientOperation]: Awaited<ReturnType<Client[K]>>',\n '}',\n ].join('\\n')\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,aAAwB;AACxB,oBAAuB;AACvB,yBAAsC;AACtC,yBAAiC;AAE1B,MAAM,gCAAgC,qBAAO;AAAA,EAC1C;AAAA,EACA;AAAA,EAED,YAAY,KAAwB;AACzC,UAAM;AAAA,MACJ,YAAY;AAAA,MACZ,MAAM,OAAO;AAAA,IACf,CAAC;AAED,SAAK,iBAAiB,IAAI,oCAAiB,GAAG;AAC9C,SAAK,eAAe,QAAQ,SAAS;AACrC,SAAK,QAAQ,KAAK,cAAc;AAEhC,SAAK,iBAAiB,IAAI,yCAAsB,GAAG;AACnD,SAAK,eAAe,QAAQ,OAAO,WAAW,UAAU;AACxD,SAAK,QAAQ,KAAK,cAAc;AAAA,EAClC;AAAA,EAEA,MAAa,aAAa;AACxB,UAAM;AAAA,MAEJ,gBAAgB;AAAA,MAChB,gBAAgB;AAAA,IAClB,IAAI;AAEJ,UAAM,gBAAgB,cAAc,OAAO,IAAI;AAC/C,UAAM,gBAAgB,cAAc,OAAO,IAAI;AAE/C,WAAO;AAAA,MACL,OAAO;AAAA,MACP;AAAA,MACA,eAAe,cAAc,gBAAgB;AAAA,MAC7C,eAAe,cAAc,gBAAgB;AAAA,MAC7C;AAAA,MACA,oBAAoB;AAAA,MACpB,oBAAoB;AAAA,MACpB;AAAA,MACA,mBAAmB,cAAc;AAAA,MACjC,8BAA8B,cAAc,QAAQ,cAAc;AAAA,MAClE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,kBAAkB,cAAc,QAAQ,cAAc;AAAA,MACtD;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,EAAE,KAAK,IAAI;AAAA,EACb;AACF;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod2, isNodeMode, target) => (target = mod2 != null ? __create(__getProtoOf(mod2)) : {}, __copyProps(
21
+ isNodeMode || !mod2 || !mod2.__esModule ? __defProp(target, "default", { value: mod2, enumerable: true }) : target,
22
+ mod2
23
+ ));
24
+ var __toCommonJS = (mod2) => __copyProps(__defProp({}, "__esModule", { value: true }), mod2);
25
+ var bot_plugins_exports = {};
26
+ __export(bot_plugins_exports, {
27
+ BotPluginsIndexModule: () => BotPluginsIndexModule
28
+ });
29
+ module.exports = __toCommonJS(bot_plugins_exports);
30
+ var consts = __toESM(require("../../consts"));
31
+ var mod = __toESM(require("../../module"));
32
+ var strings = __toESM(require("../../strings"));
33
+ var import_plugin_module = require("./plugin-module");
34
+ class BotPluginsIndexModule extends mod.Module {
35
+ _pluginModules;
36
+ constructor(sdkBotDefinition) {
37
+ super({
38
+ path: consts.INDEX_FILE,
39
+ exportName: "plugins"
40
+ });
41
+ const pluginsModules = [];
42
+ for (const plugin of Object.values(sdkBotDefinition.plugins ?? {})) {
43
+ const pluginModule = new import_plugin_module.BotPluginModule(plugin);
44
+ pluginModule.unshift(plugin.name);
45
+ this.pushDep(pluginModule);
46
+ pluginsModules.push(pluginModule);
47
+ }
48
+ this._pluginModules = pluginsModules;
49
+ }
50
+ async getContent() {
51
+ const modules = this._pluginModules.map((module2) => ({
52
+ importAlias: strings.importAlias(module2.name),
53
+ importFrom: module2.import(this),
54
+ module: module2
55
+ }));
56
+ return [
57
+ consts.GENERATED_HEADER,
58
+ 'import * as sdk from "@botpress/sdk"',
59
+ ...modules.map(({ importAlias, importFrom }) => `import * as ${importAlias} from "./${importFrom}";`),
60
+ ...modules.map(({ importAlias, importFrom }) => `export * as ${importAlias} from "./${importFrom}";`),
61
+ "",
62
+ `export const ${this.exportName} = {`,
63
+ ...modules.map(({ module: module2, importAlias }) => ` "${module2.pluginName}": ${importAlias}.${module2.exportName},`),
64
+ "}",
65
+ "",
66
+ "export type TPlugins = {",
67
+ ...modules.map(({ module: module2, importAlias }) => ` "${module2.pluginName}": ${importAlias}.TPlugin;`),
68
+ "}"
69
+ ].join("\n");
70
+ }
71
+ }
72
+ // Annotate the CommonJS export names for ESM import in node:
73
+ 0 && (module.exports = {
74
+ BotPluginsIndexModule
75
+ });
76
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/code-generation/bot-implementation/bot-plugins/index.ts"],
4
+ "sourcesContent": ["import * as sdk from '@botpress/sdk'\nimport * as consts from '../../consts'\nimport * as mod from '../../module'\nimport * as strings from '../../strings'\nimport { BotPluginModule } from './plugin-module'\n\nexport class BotPluginsIndexModule extends mod.Module {\n private _pluginModules: BotPluginModule[]\n\n public constructor(sdkBotDefinition: sdk.BotDefinition) {\n super({\n path: consts.INDEX_FILE,\n exportName: 'plugins',\n })\n\n const pluginsModules: BotPluginModule[] = []\n for (const plugin of Object.values(sdkBotDefinition.plugins ?? {})) {\n const pluginModule = new BotPluginModule(plugin)\n pluginModule.unshift(plugin.name)\n this.pushDep(pluginModule)\n pluginsModules.push(pluginModule)\n }\n\n this._pluginModules = pluginsModules\n }\n\n public async getContent(): Promise<string> {\n const modules = this._pluginModules.map((module) => ({\n importAlias: strings.importAlias(module.name),\n importFrom: module.import(this),\n module,\n }))\n\n return [\n consts.GENERATED_HEADER,\n 'import * as sdk from \"@botpress/sdk\"',\n ...modules.map(({ importAlias, importFrom }) => `import * as ${importAlias} from \"./${importFrom}\";`),\n ...modules.map(({ importAlias, importFrom }) => `export * as ${importAlias} from \"./${importFrom}\";`),\n '',\n `export const ${this.exportName} = {`,\n ...modules.map(({ module, importAlias }) => ` \"${module.pluginName}\": ${importAlias}.${module.exportName},`),\n '}',\n '',\n 'export type TPlugins = {',\n ...modules.map(({ module, importAlias }) => ` \"${module.pluginName}\": ${importAlias}.TPlugin;`),\n '}',\n ].join('\\n')\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,aAAwB;AACxB,UAAqB;AACrB,cAAyB;AACzB,2BAAgC;AAEzB,MAAM,8BAA8B,IAAI,OAAO;AAAA,EAC5C;AAAA,EAED,YAAY,kBAAqC;AACtD,UAAM;AAAA,MACJ,MAAM,OAAO;AAAA,MACb,YAAY;AAAA,IACd,CAAC;AAED,UAAM,iBAAoC,CAAC;AAC3C,eAAW,UAAU,OAAO,OAAO,iBAAiB,WAAW,CAAC,CAAC,GAAG;AAClE,YAAM,eAAe,IAAI,qCAAgB,MAAM;AAC/C,mBAAa,QAAQ,OAAO,IAAI;AAChC,WAAK,QAAQ,YAAY;AACzB,qBAAe,KAAK,YAAY;AAAA,IAClC;AAEA,SAAK,iBAAiB;AAAA,EACxB;AAAA,EAEA,MAAa,aAA8B;AACzC,UAAM,UAAU,KAAK,eAAe,IAAI,CAACA,aAAY;AAAA,MACnD,aAAa,QAAQ,YAAYA,QAAO,IAAI;AAAA,MAC5C,YAAYA,QAAO,OAAO,IAAI;AAAA,MAC9B,QAAAA;AAAA,IACF,EAAE;AAEF,WAAO;AAAA,MACL,OAAO;AAAA,MACP;AAAA,MACA,GAAG,QAAQ,IAAI,CAAC,EAAE,aAAa,WAAW,MAAM,eAAe,uBAAuB,cAAc;AAAA,MACpG,GAAG,QAAQ,IAAI,CAAC,EAAE,aAAa,WAAW,MAAM,eAAe,uBAAuB,cAAc;AAAA,MACpG;AAAA,MACA,gBAAgB,KAAK;AAAA,MACrB,GAAG,QAAQ,IAAI,CAAC,EAAE,QAAAA,SAAQ,YAAY,MAAM,MAAMA,QAAO,gBAAgB,eAAeA,QAAO,aAAa;AAAA,MAC5G;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG,QAAQ,IAAI,CAAC,EAAE,QAAAA,SAAQ,YAAY,MAAM,MAAMA,QAAO,gBAAgB,sBAAsB;AAAA,MAC/F;AAAA,IACF,EAAE,KAAK,IAAI;AAAA,EACb;AACF;",
6
+ "names": ["module"]
7
+ }