@apimatic/cli 1.2.1 → 1.3.0-beta.2

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 (132) hide show
  1. package/README.md +65 -1
  2. package/lib/actions/action-result.d.ts +1 -0
  3. package/lib/actions/action-result.js +3 -0
  4. package/lib/actions/action-result.js.map +1 -1
  5. package/lib/actions/plugin/generate.d.ts +12 -0
  6. package/lib/actions/plugin/generate.js +71 -0
  7. package/lib/actions/plugin/generate.js.map +1 -0
  8. package/lib/actions/plugin/publish.d.ts +6 -0
  9. package/lib/actions/plugin/publish.js +43 -0
  10. package/lib/actions/plugin/publish.js.map +1 -0
  11. package/lib/actions/plugin/record-metadata.d.ts +18 -0
  12. package/lib/actions/plugin/record-metadata.js +57 -0
  13. package/lib/actions/plugin/record-metadata.js.map +1 -0
  14. package/lib/actions/plugin/record-sdk.d.ts +14 -0
  15. package/lib/actions/plugin/record-sdk.js +60 -0
  16. package/lib/actions/plugin/record-sdk.js.map +1 -0
  17. package/lib/actions/sdk/generate.d.ts +2 -2
  18. package/lib/actions/sdk/generate.js +4 -4
  19. package/lib/actions/sdk/generate.js.map +1 -1
  20. package/lib/actions/sdk/publish/interactive.js +23 -4
  21. package/lib/actions/sdk/publish/interactive.js.map +1 -1
  22. package/lib/actions/sdk/publish/non-interactive.d.ts +2 -2
  23. package/lib/actions/sdk/publish/non-interactive.js +19 -12
  24. package/lib/actions/sdk/publish/non-interactive.js.map +1 -1
  25. package/lib/actions/sdk/publish.d.ts +2 -3
  26. package/lib/actions/sdk/publish.js +26 -5
  27. package/lib/actions/sdk/publish.js.map +1 -1
  28. package/lib/actions/sdk/quickstart.js +2 -2
  29. package/lib/actions/sdk/quickstart.js.map +1 -1
  30. package/lib/commands/plugin/generate.d.ts +14 -0
  31. package/lib/commands/plugin/generate.js +37 -0
  32. package/lib/commands/plugin/generate.js.map +1 -0
  33. package/lib/commands/plugin/publish.d.ts +11 -0
  34. package/lib/commands/plugin/publish.js +29 -0
  35. package/lib/commands/plugin/publish.js.map +1 -0
  36. package/lib/commands/sdk/generate.js +4 -3
  37. package/lib/commands/sdk/generate.js.map +1 -1
  38. package/lib/commands/sdk/publish.d.ts +3 -0
  39. package/lib/commands/sdk/publish.js +18 -5
  40. package/lib/commands/sdk/publish.js.map +1 -1
  41. package/lib/config/axios-config.d.ts +6 -0
  42. package/lib/config/axios-config.js +8 -2
  43. package/lib/config/axios-config.js.map +1 -1
  44. package/lib/infrastructure/generation-status-poller.d.ts +31 -0
  45. package/lib/infrastructure/generation-status-poller.js +56 -0
  46. package/lib/infrastructure/generation-status-poller.js.map +1 -0
  47. package/lib/infrastructure/service-error.d.ts +10 -1
  48. package/lib/infrastructure/service-error.js +47 -0
  49. package/lib/infrastructure/service-error.js.map +1 -1
  50. package/lib/infrastructure/services/api-service.d.ts +0 -7
  51. package/lib/infrastructure/services/api-service.js +0 -42
  52. package/lib/infrastructure/services/api-service.js.map +1 -1
  53. package/lib/infrastructure/services/plugin-service.d.ts +24 -0
  54. package/lib/infrastructure/services/plugin-service.js +141 -0
  55. package/lib/infrastructure/services/plugin-service.js.map +1 -0
  56. package/lib/infrastructure/services/portal-service.d.ts +16 -8
  57. package/lib/infrastructure/services/portal-service.js +147 -39
  58. package/lib/infrastructure/services/portal-service.js.map +1 -1
  59. package/lib/prompts/format.d.ts +4 -3
  60. package/lib/prompts/format.js +14 -13
  61. package/lib/prompts/format.js.map +1 -1
  62. package/lib/prompts/plugin/generate.d.ts +19 -0
  63. package/lib/prompts/plugin/generate.js +64 -0
  64. package/lib/prompts/plugin/generate.js.map +1 -0
  65. package/lib/prompts/plugin/publish.d.ts +25 -0
  66. package/lib/prompts/plugin/publish.js +77 -0
  67. package/lib/prompts/plugin/publish.js.map +1 -0
  68. package/lib/prompts/plugin/record-metadata.d.ts +25 -0
  69. package/lib/prompts/plugin/record-metadata.js +70 -0
  70. package/lib/prompts/plugin/record-metadata.js.map +1 -0
  71. package/lib/prompts/plugin/record-sdk.d.ts +9 -0
  72. package/lib/prompts/plugin/record-sdk.js +40 -0
  73. package/lib/prompts/plugin/record-sdk.js.map +1 -0
  74. package/lib/prompts/publishing/links.d.ts +1 -0
  75. package/lib/prompts/publishing/links.js +2 -0
  76. package/lib/prompts/publishing/links.js.map +1 -0
  77. package/lib/prompts/publishing/profile/list.js +5 -3
  78. package/lib/prompts/publishing/profile/list.js.map +1 -1
  79. package/lib/prompts/sdk/generate.d.ts +2 -0
  80. package/lib/prompts/sdk/generate.js +7 -0
  81. package/lib/prompts/sdk/generate.js.map +1 -1
  82. package/lib/prompts/sdk/publish/interactive.d.ts +7 -5
  83. package/lib/prompts/sdk/publish/interactive.js +29 -14
  84. package/lib/prompts/sdk/publish/interactive.js.map +1 -1
  85. package/lib/prompts/sdk/publish/non-interactive.d.ts +1 -6
  86. package/lib/prompts/sdk/publish/non-interactive.js +11 -52
  87. package/lib/prompts/sdk/publish/non-interactive.js.map +1 -1
  88. package/lib/prompts/sdk/publish.d.ts +15 -2
  89. package/lib/prompts/sdk/publish.js +71 -5
  90. package/lib/prompts/sdk/publish.js.map +1 -1
  91. package/lib/types/file/directory.d.ts +3 -0
  92. package/lib/types/file/directory.js +13 -0
  93. package/lib/types/file/directory.js.map +1 -1
  94. package/lib/types/plugin/generation-status.d.ts +23 -0
  95. package/lib/types/plugin/generation-status.js +18 -0
  96. package/lib/types/plugin/generation-status.js.map +1 -0
  97. package/lib/types/plugin/language-entry.d.ts +9 -0
  98. package/lib/types/plugin/language-entry.js +64 -0
  99. package/lib/types/plugin/language-entry.js.map +1 -0
  100. package/lib/types/plugin/plugin-config.d.ts +72 -0
  101. package/lib/types/plugin/plugin-config.js +4 -0
  102. package/lib/types/plugin/plugin-config.js.map +1 -0
  103. package/lib/types/plugin/plugin-contents.d.ts +5 -0
  104. package/lib/types/plugin/plugin-contents.js +2 -0
  105. package/lib/types/plugin/plugin-contents.js.map +1 -0
  106. package/lib/types/plugin-config-context.d.ts +63 -0
  107. package/lib/types/plugin-config-context.js +179 -0
  108. package/lib/types/plugin-config-context.js.map +1 -0
  109. package/lib/types/plugin-context.d.ts +13 -0
  110. package/lib/types/plugin-context.js +28 -0
  111. package/lib/types/plugin-context.js.map +1 -0
  112. package/lib/types/publish/package-settings-configuration.d.ts +11 -1
  113. package/lib/types/publish/package-settings-configuration.js +1 -1
  114. package/lib/types/publish/package-settings-configuration.js.map +1 -1
  115. package/lib/types/publish/publishing-profile.d.ts +3 -2
  116. package/lib/types/publish/publishing-profile.js +24 -18
  117. package/lib/types/publish/publishing-profile.js.map +1 -1
  118. package/lib/types/publish/publishing-profiles.d.ts +1 -1
  119. package/lib/types/publish/publishing-profiles.js +1 -1
  120. package/lib/types/publish/publishing-profiles.js.map +1 -1
  121. package/lib/types/publish/version.d.ts +6 -1
  122. package/lib/types/publish/version.js +2 -1
  123. package/lib/types/publish/version.js.map +1 -1
  124. package/lib/types/sdk/generate.d.ts +19 -0
  125. package/lib/types/sdk/generate.js +44 -0
  126. package/lib/types/sdk/generate.js.map +1 -1
  127. package/lib/types/utils.d.ts +1 -0
  128. package/oclif.manifest.json +1040 -0
  129. package/package.json +7 -4
  130. package/lib/types/api/generation-status-endpoint.d.ts +0 -8
  131. package/lib/types/api/generation-status-endpoint.js +0 -12
  132. package/lib/types/api/generation-status-endpoint.js.map +0 -1
package/README.md CHANGED
@@ -40,6 +40,8 @@ USAGE
40
40
  * [`apimatic auth status`](#apimatic-auth-status)
41
41
  * [`apimatic autocomplete [SHELL]`](#apimatic-autocomplete-shell)
42
42
  * [`apimatic help [COMMAND]`](#apimatic-help-command)
43
+ * [`apimatic plugin generate`](#apimatic-plugin-generate)
44
+ * [`apimatic plugin publish`](#apimatic-plugin-publish)
43
45
  * [`apimatic portal copilot`](#apimatic-portal-copilot)
44
46
  * [`apimatic portal generate`](#apimatic-portal-generate)
45
47
  * [`apimatic portal recipe new`](#apimatic-portal-recipe-new)
@@ -222,6 +224,62 @@ DESCRIPTION
222
224
 
223
225
  _See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/main/src/commands/help.ts)_
224
226
 
227
+ ## `apimatic plugin generate`
228
+
229
+ Generate a Claude Code context plugin for your published SDKs.
230
+
231
+ ```
232
+ USAGE
233
+ $ apimatic plugin generate [-i <value>] [-d <value>] [-f] [-k <value>]
234
+
235
+ FLAGS
236
+ -d, --destination=<value> [default: <input>/plugin] path where the plugin will be generated.
237
+ -f, --force overwrite changes without asking for user consent.
238
+ -i, --input=<value> [default: ./] path to the parent directory containing the 'src' directory, which includes
239
+ API specifications and configuration files.
240
+ -k, --auth-key=<value> override current authentication state with an authentication key.
241
+
242
+ DESCRIPTION
243
+ Generate a Claude Code context plugin for your published SDKs.
244
+
245
+ Generate a context plugin that teaches an AI coding assistant how to use your SDKs. Requires an input directory
246
+ containing a `src` directory with a `plugin-config.json`.
247
+
248
+ EXAMPLES
249
+ apimatic plugin generate
250
+
251
+ apimatic plugin generate --input="./" --destination="./plugin"
252
+ ```
253
+
254
+ _See code: [src/commands/plugin/generate.ts](https://github.com/apimatic/apimatic-cli/blob/beta/src/commands/plugin/generate.ts)_
255
+
256
+ ## `apimatic plugin publish`
257
+
258
+ Print the git commands for publishing your context plugin to GitHub.
259
+
260
+ ```
261
+ USAGE
262
+ $ apimatic plugin publish [-i <value>] [-d <value>]
263
+
264
+ FLAGS
265
+ -d, --destination=<value> [default: <input>/plugin] path where the plugin was generated.
266
+ -i, --input=<value> [default: ./] path to the parent directory containing the 'src' directory, which includes
267
+ API specifications and configuration files.
268
+
269
+ DESCRIPTION
270
+ Print the git commands for publishing your context plugin to GitHub.
271
+
272
+ Print the commands that publish a generated context plugin to a GitHub repository. The commands are printed for you to
273
+ run — this command never touches your repository.
274
+
275
+ EXAMPLES
276
+ apimatic plugin publish
277
+
278
+ apimatic plugin publish --input="./" --destination="./plugin"
279
+ ```
280
+
281
+ _See code: [src/commands/plugin/publish.ts](https://github.com/apimatic/apimatic-cli/blob/beta/src/commands/plugin/publish.ts)_
282
+
225
283
  ## `apimatic portal copilot`
226
284
 
227
285
  Configure API Copilot for your API Documentation portal
@@ -477,7 +535,7 @@ Generate and publish an SDK to a package registry and/or source repository
477
535
  ```
478
536
  USAGE
479
537
  $ apimatic sdk publish [-p <value>] [-v <value>] [-d <value>] [-l csharp|java|php|python|ruby|typescript] [-f]
480
- [-i <value>] [--publish-type package|sourcecode...] [--dry-run]
538
+ [-i <value>] [--publish-type package|sourcecode...] [--dry-run] [--codegen-version v3|v4] [--stability stable|beta]
481
539
 
482
540
  FLAGS
483
541
  -d, --destination=<value> [default: <input>/sdk] path where the sdk will be generated.
@@ -488,10 +546,14 @@ FLAGS
488
546
  <options: csharp|java|php|python|ruby|typescript>
489
547
  -p, --profile-id=<value> Id of the publishing profile to use.
490
548
  -v, --version=<value> Semantic version of the SDK to publish (e.g. 1.0.0).
549
+ --codegen-version=<option> [default: v3] Version of the code generator to use
550
+ <options: v3|v4>
491
551
  --dry-run Generate the SDK locally for review without publishing.
492
552
  --publish-type=<option>... One or more publishing targets: 'package' for a package registry, 'sourcecode' for a
493
553
  git repository.
494
554
  <options: package|sourcecode>
555
+ --stability=<option> [default: stable] Stability level of the generated SDK
556
+ <options: stable|beta>
495
557
 
496
558
  DESCRIPTION
497
559
  Generate and publish an SDK to a package registry and/or source repository
@@ -508,6 +570,8 @@ EXAMPLES
508
570
  apimatic sdk publish --profile-id=b2c3d4e5f6a1b2c3d4e5f6a1 --language=java --version=2.0.0 --publish-type=sourcecode
509
571
 
510
572
  apimatic sdk publish --profile-id=c3d4e5f6a1b2c3d4e5f6a1b2 --language=python --version=1.0.0 --publish-type=package --dry-run
573
+
574
+ apimatic sdk publish --profile-id=d4e5f6a1b2c3d4e5f6a1b2c3 --language=csharp --version=1.0.0 --publish-type=package --codegen-version=v4 --stability=beta
511
575
  ```
512
576
 
513
577
  _See code: [src/commands/sdk/publish.ts](https://github.com/apimatic/apimatic-cli/blob/beta/src/commands/sdk/publish.ts)_
@@ -15,5 +15,6 @@ export declare class ActionResult<T = void> {
15
15
  match<R>(onSuccess: (value: T) => R, onFailure: (message: string) => R, onCancel: (message: string) => R): R;
16
16
  getValue(): T;
17
17
  getValueOr(defaultValue: T): T;
18
+ discardValue(): ActionResult;
18
19
  mapAll<R>(onSuccess: (value?: T) => R, onFailure: () => R, onCancel: () => R): R;
19
20
  }
@@ -56,6 +56,9 @@ export class ActionResult {
56
56
  getValueOr(defaultValue) {
57
57
  return this.isSuccess() ? this.value : defaultValue;
58
58
  }
59
+ discardValue() {
60
+ return new ActionResult(this.resultType, this.message);
61
+ }
59
62
  mapAll(onSuccess, onFailure, onCancel) {
60
63
  switch (this.resultType) {
61
64
  case ResultType.Success:
@@ -1 +1 @@
1
- {"version":3,"file":"action-result.js","sourceRoot":"","sources":["../../src/actions/action-result.ts"],"names":[],"mappings":"AAAA,IAAK,UAIJ;AAJD,WAAK,UAAU;IACb,iDAAW,CAAA;IACX,iDAAY,CAAA;IACZ,iDAAW,CAAA;AACb,CAAC,EAJI,UAAU,KAAV,UAAU,QAId;AAED,MAAM,OAAO,YAAY;IAKvB,YAAoB,UAAsB,EAAE,OAAe,EAAE,KAAS;QACpE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,OAAO,CAAI,KAAS;QACzB,OAAO,IAAI,YAAY,CAAI,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,CAAC,MAAM,CAAY,OAAO,GAAG,QAAQ;QACzC,OAAO,IAAI,YAAY,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,CAAC,SAAS,CAAY,OAAO,GAAG,WAAW;QAC/C,OAAO,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,CAAC,OAAO,CAAY,OAAO,GAAG,SAAS;QAC3C,OAAO,IAAI,YAAY,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAEM,UAAU;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;IAEM,QAAQ;QACb,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,OAAO,CAAC;IAChD,CAAC;IAEM,SAAS;QACd,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,OAAO,CAAC;IAChD,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,MAAM,CAAC;IAC/C,CAAC;IAEM,KAAK,CACV,SAA0B,EAC1B,SAAiC,EACjC,QAAgC;QAEhC,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;YACxB,KAAK,UAAU,CAAC,OAAO;gBACrB,OAAO,SAAS,CAAC,IAAI,CAAC,KAAM,CAAC,CAAC;YAChC,KAAK,UAAU,CAAC,OAAO;gBACrB,OAAO,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACjC,KAAK,UAAU,CAAC,MAAM;gBACpB,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAEM,QAAQ;QACb,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,iBAAiB,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1F,CAAC;QACD,OAAO,IAAI,CAAC,KAAM,CAAC;IACrB,CAAC;IAEM,UAAU,CAAC,YAAe;QAC/B,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAM,CAAC,CAAC,CAAC,YAAY,CAAC;IACvD,CAAC;IAEM,MAAM,CACX,SAA2B,EAC3B,SAAkB,EAClB,QAAiB;QAEjB,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;YACxB,KAAK,UAAU,CAAC,OAAO;gBACrB,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/B,KAAK,UAAU,CAAC,OAAO;gBACrB,OAAO,SAAS,EAAE,CAAC;YACrB,KAAK,UAAU,CAAC,MAAM;gBACpB,OAAO,QAAQ,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"action-result.js","sourceRoot":"","sources":["../../src/actions/action-result.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { CommandMetadata } from '../../types/common/command-metadata.js';
2
+ import { DirectoryPath } from '../../types/file/directoryPath.js';
3
+ import { ActionResult } from '../action-result.js';
4
+ export declare class PluginGenerateAction {
5
+ private readonly prompts;
6
+ private readonly pluginService;
7
+ private readonly configDir;
8
+ private readonly commandMetadata;
9
+ private readonly authKey;
10
+ constructor(configDir: DirectoryPath, commandMetadata: CommandMetadata, authKey?: string | null);
11
+ readonly execute: (buildDirectory: DirectoryPath, pluginDirectory: DirectoryPath, force: boolean) => Promise<ActionResult>;
12
+ }
@@ -0,0 +1,71 @@
1
+ import { withDirPath } from '../../infrastructure/tmp-extensions.js';
2
+ import { PluginService } from '../../infrastructure/services/plugin-service.js';
3
+ import { PluginGeneratePrompts } from '../../prompts/plugin/generate.js';
4
+ import { BuildContext } from '../../types/build-context.js';
5
+ import { PluginConfigContext } from '../../types/plugin-config-context.js';
6
+ import { PluginContext } from '../../types/plugin-context.js';
7
+ import { TempContext } from '../../types/temp-context.js';
8
+ import { ActionResult } from '../action-result.js';
9
+ import { PluginRecordMetadataAction } from './record-metadata.js';
10
+ export class PluginGenerateAction {
11
+ constructor(configDir, commandMetadata, authKey = null) {
12
+ this.prompts = new PluginGeneratePrompts();
13
+ this.pluginService = new PluginService();
14
+ this.execute = async (buildDirectory, pluginDirectory, force) => {
15
+ if (buildDirectory.isEqual(pluginDirectory)) {
16
+ this.prompts.directoryCannotBeSame(pluginDirectory);
17
+ return ActionResult.failed();
18
+ }
19
+ const buildContext = new BuildContext(buildDirectory);
20
+ if (!(await buildContext.validate())) {
21
+ this.prompts.srcDirectoryEmpty(buildDirectory);
22
+ return ActionResult.failed();
23
+ }
24
+ const pluginContext = new PluginContext(pluginDirectory);
25
+ if (!force && (await pluginContext.exists()) && !(await this.prompts.overwritePlugin(pluginDirectory))) {
26
+ this.prompts.pluginDirectoryNotEmpty();
27
+ return ActionResult.cancelled();
28
+ }
29
+ let configState = await new PluginConfigContext(buildDirectory).getPluginConfigState();
30
+ if (configState.state === 'unreadable') {
31
+ this.prompts.pluginConfigUnreadable(configState.reason, configState.path);
32
+ return ActionResult.failed();
33
+ }
34
+ if (configState.state === 'missing' || !configState.hasMetadata()) {
35
+ const metadataResult = await new PluginRecordMetadataAction(this.configDir, this.commandMetadata, this.authKey).execute(buildDirectory);
36
+ if (metadataResult.isCancelled()) {
37
+ this.prompts.metadataCancelled(metadataResult.getMessage());
38
+ return ActionResult.cancelled();
39
+ }
40
+ if (!metadataResult.isSuccess()) {
41
+ return metadataResult.discardValue();
42
+ }
43
+ configState = metadataResult.getValue();
44
+ }
45
+ if (!configState.hasPublishedSdks()) {
46
+ this.prompts.noPublishedSdks();
47
+ this.prompts.nextStepsPublishSdks();
48
+ return ActionResult.success();
49
+ }
50
+ return await withDirPath(async (tempDirectory) => {
51
+ const tempContext = new TempContext(tempDirectory);
52
+ const buildZipPath = await tempContext.zip(buildDirectory);
53
+ const response = await this.prompts.generatePlugin(this.pluginService.generatePlugin(buildZipPath, this.configDir, this.commandMetadata, this.authKey));
54
+ if (response.isErr()) {
55
+ this.prompts.pluginGenerationError(response.error.errorMessage);
56
+ return ActionResult.failed();
57
+ }
58
+ const tempPluginZipPath = await tempContext.save(response.value);
59
+ await pluginContext.save(tempPluginZipPath);
60
+ this.prompts.pluginGenerated(pluginDirectory);
61
+ this.prompts.tryPluginInClaudeCode(pluginDirectory);
62
+ this.prompts.nextStepsPublishPlugin();
63
+ return ActionResult.success();
64
+ });
65
+ };
66
+ this.configDir = configDir;
67
+ this.commandMetadata = commandMetadata;
68
+ this.authKey = authKey;
69
+ }
70
+ }
71
+ //# sourceMappingURL=generate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/actions/plugin/generate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { DirectoryPath } from '../../types/file/directoryPath.js';
2
+ import { ActionResult } from '../action-result.js';
3
+ export declare class PluginPublishAction {
4
+ private readonly prompts;
5
+ readonly execute: (buildDirectory: DirectoryPath, pluginDirectory: DirectoryPath) => Promise<ActionResult>;
6
+ }
@@ -0,0 +1,43 @@
1
+ import { PluginPublishPrompts } from '../../prompts/plugin/publish.js';
2
+ import { PluginConfigContext } from '../../types/plugin-config-context.js';
3
+ import { PluginContext } from '../../types/plugin-context.js';
4
+ import { ActionResult } from '../action-result.js';
5
+ export class PluginPublishAction {
6
+ constructor() {
7
+ this.prompts = new PluginPublishPrompts();
8
+ this.execute = async (buildDirectory, pluginDirectory) => {
9
+ if (buildDirectory.isEqual(pluginDirectory)) {
10
+ this.prompts.directoryCannotBeSame(pluginDirectory);
11
+ return ActionResult.failed();
12
+ }
13
+ const pluginContext = new PluginContext(pluginDirectory);
14
+ if (!(await pluginContext.exists())) {
15
+ this.prompts.pluginNotGenerated(pluginDirectory);
16
+ return ActionResult.failed();
17
+ }
18
+ const configState = await new PluginConfigContext(buildDirectory).getPluginConfigState();
19
+ if (configState.state === 'unreadable') {
20
+ this.prompts.pluginConfigUnreadable(configState.reason, configState.path);
21
+ return ActionResult.failed();
22
+ }
23
+ if (configState.state === 'missing') {
24
+ this.prompts.pluginConfigMissing(buildDirectory);
25
+ return ActionResult.failed();
26
+ }
27
+ const release = configState.getRelease();
28
+ if (!release) {
29
+ this.prompts.pluginDetailsNotSet();
30
+ return ActionResult.failed();
31
+ }
32
+ const contents = await pluginContext.describeContents();
33
+ if (await pluginContext.isGitInitialized()) {
34
+ this.prompts.updateInstructions(release, contents, pluginDirectory);
35
+ }
36
+ else {
37
+ this.prompts.firstPublishInstructions(release, contents, pluginDirectory);
38
+ }
39
+ return ActionResult.success();
40
+ };
41
+ }
42
+ }
43
+ //# sourceMappingURL=publish.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../src/actions/plugin/publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,OAAO,mBAAmB;IAAhC;QACmB,YAAO,GAAyB,IAAI,oBAAoB,EAAE,CAAC;QAE5D,YAAO,GAAG,KAAK,EAC7B,cAA6B,EAC7B,eAA8B,EACP,EAAE;YACzB,IAAI,cAAc,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC5C,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;gBACpD,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;YAC/B,CAAC;YAED,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,eAAe,CAAC,CAAC;YACzD,IAAI,CAAC,CAAC,MAAM,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;gBACjD,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;YAC/B,CAAC;YAED,MAAM,WAAW,GAAG,MAAM,IAAI,mBAAmB,CAAC,cAAc,CAAC,CAAC,oBAAoB,EAAE,CAAC;YACzF,IAAI,WAAW,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;gBACvC,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC1E,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;YAC/B,CAAC;YAED,IAAI,WAAW,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACpC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;gBACjD,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;YAC/B,CAAC;YAED,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC;YACzC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;gBACnC,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;YAC/B,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,gBAAgB,EAAE,CAAC;YAExD,IAAI,MAAM,aAAa,CAAC,gBAAgB,EAAE,EAAE,CAAC;gBAC3C,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;YACtE,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;YAC5E,CAAC;YAED,OAAO,YAAY,CAAC,OAAO,EAAE,CAAC;QAChC,CAAC,CAAC;IACJ,CAAC;CAAA"}
@@ -0,0 +1,18 @@
1
+ import { CommandMetadata } from '../../types/common/command-metadata.js';
2
+ import { DirectoryPath } from '../../types/file/directoryPath.js';
3
+ import { PluginConfigPresent } from '../../types/plugin-config-context.js';
4
+ import { ActionResult } from '../action-result.js';
5
+ /**
6
+ * Only `plugin generate` writes the plugin's identity: `sdk publish` records languages and leaves
7
+ * identity alone, so a project can be published from long before anyone decides to build a context
8
+ * plugin.
9
+ */
10
+ export declare class PluginRecordMetadataAction {
11
+ private readonly prompts;
12
+ private readonly apiService;
13
+ private readonly configDir;
14
+ private readonly commandMetadata;
15
+ private readonly authKey;
16
+ constructor(configDir: DirectoryPath, commandMetadata: CommandMetadata, authKey?: string | null);
17
+ readonly execute: (buildDirectory: DirectoryPath) => Promise<ActionResult<PluginConfigPresent>>;
18
+ }
@@ -0,0 +1,57 @@
1
+ import { ApiService } from '../../infrastructure/services/api-service.js';
2
+ import { PluginRecordMetadataPrompts } from '../../prompts/plugin/record-metadata.js';
3
+ import { PluginConfigContext } from '../../types/plugin-config-context.js';
4
+ import { ActionResult } from '../action-result.js';
5
+ /**
6
+ * Suggested in the prompts as an example of the shape each field takes.
7
+ */
8
+ const DEFAULT_METADATA = {
9
+ pluginId: 'acme-payments',
10
+ pluginName: 'Acme Payments',
11
+ pluginVersion: '0.1.0'
12
+ };
13
+ /**
14
+ * Only `plugin generate` writes the plugin's identity: `sdk publish` records languages and leaves
15
+ * identity alone, so a project can be published from long before anyone decides to build a context
16
+ * plugin.
17
+ */
18
+ export class PluginRecordMetadataAction {
19
+ constructor(configDir, commandMetadata, authKey = null) {
20
+ this.prompts = new PluginRecordMetadataPrompts();
21
+ this.apiService = new ApiService();
22
+ this.execute = async (buildDirectory) => {
23
+ const input = await this.prompts.inputPluginMetadata(DEFAULT_METADATA);
24
+ if ('cancelled' in input) {
25
+ return ActionResult.cancelled(input.cancelled);
26
+ }
27
+ const metadata = input.metadata;
28
+ const account = await this.prompts.spinnerAccountInfo(this.apiService.getAccountInfo(this.configDir, this.commandMetadata.shell, this.authKey));
29
+ if (account.isErr()) {
30
+ this.prompts.accountInfoUnavailable();
31
+ }
32
+ const author = account.isOk() ? authorOf(account.value) : undefined;
33
+ const writeResult = await new PluginConfigContext(buildDirectory).upsertMetadata(metadata, author);
34
+ if (writeResult.isErr()) {
35
+ switch (writeResult.error) {
36
+ case 'unreadable':
37
+ this.prompts.pluginConfigUnreadable();
38
+ return ActionResult.failed();
39
+ case 'unwritable':
40
+ this.prompts.pluginConfigNotWritten();
41
+ return ActionResult.failed();
42
+ default:
43
+ throw writeResult.error;
44
+ }
45
+ }
46
+ this.prompts.metadataRecorded(metadata);
47
+ return ActionResult.success(writeResult.value);
48
+ };
49
+ this.configDir = configDir;
50
+ this.commandMetadata = commandMetadata;
51
+ this.authKey = authKey;
52
+ }
53
+ }
54
+ function authorOf(account) {
55
+ return account.FullName ? { name: account.FullName, email: account.Email || undefined } : undefined;
56
+ }
57
+ //# sourceMappingURL=record-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-metadata.js","sourceRoot":"","sources":["../../../src/actions/plugin/record-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,8CAA8C,CAAC;AAC1E,OAAO,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AAKtF,OAAO,EAAE,mBAAmB,EAAuB,MAAM,sCAAsC,CAAC;AAChG,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD;;GAEG;AACH,MAAM,gBAAgB,GAAmB;IACvC,QAAQ,EAAE,eAAe;IACzB,UAAU,EAAE,eAAe;IAC3B,aAAa,EAAE,OAAO;CACvB,CAAC;AAEF;;;;GAIG;AACH,MAAM,OAAO,0BAA0B;IAOrC,YAAY,SAAwB,EAAE,eAAgC,EAAE,UAAyB,IAAI;QANpF,YAAO,GAAgC,IAAI,2BAA2B,EAAE,CAAC;QACzE,eAAU,GAAe,IAAI,UAAU,EAAE,CAAC;QAW3C,YAAO,GAAG,KAAK,EAC7B,cAA6B,EACe,EAAE;YAC9C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;YACvE,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;gBACzB,OAAO,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACjD,CAAC;YAED,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;YAChC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,CACnD,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CACzF,CAAC;YACF,IAAI,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;gBACpB,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC;YACxC,CAAC;YAED,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACpE,MAAM,WAAW,GAAG,MAAM,IAAI,mBAAmB,CAAC,cAAc,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACnG,IAAI,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC;gBACxB,QAAQ,WAAW,CAAC,KAAK,EAAE,CAAC;oBAC1B,KAAK,YAAY;wBACf,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC;wBACtC,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;oBAC/B,KAAK,YAAY;wBACf,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC;wBACtC,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;oBAC/B;wBACE,MAAM,WAAW,CAAC,KAAqB,CAAC;gBAC5C,CAAC;YACH,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACxC,OAAO,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACjD,CAAC,CAAC;QAtCA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CAoCF;AAED,SAAS,QAAQ,CAAC,OAAyB;IACzC,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACtG,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { DirectoryPath } from '../../types/file/directoryPath.js';
2
+ import { PublishType } from '../../types/publish-api/publishing-profile-item.js';
3
+ import { PublishingProfile } from '../../types/publish/publishing-profile.js';
4
+ import { SemVersion } from '../../types/publish/version.js';
5
+ import { CodeGenerationVersion, Language } from '../../types/sdk/generate.js';
6
+ import { ActionResult } from '../action-result.js';
7
+ /**
8
+ * Callers discard the result: this runs after a publish that already succeeded, and no outcome here
9
+ * may change that.
10
+ */
11
+ export declare class PluginRecordSdkAction {
12
+ private readonly prompts;
13
+ readonly execute: (buildDirectory: DirectoryPath, language: Language, publishingProfile: PublishingProfile, publishTypes: PublishType[], packageVersion: SemVersion, codegenVersion: CodeGenerationVersion, isInteractive: boolean) => Promise<ActionResult>;
14
+ }
@@ -0,0 +1,60 @@
1
+ import { PluginRecordSdkPrompts } from '../../prompts/plugin/record-sdk.js';
2
+ import { buildLanguageEntry } from '../../types/plugin/language-entry.js';
3
+ import { PluginConfigContext } from '../../types/plugin-config-context.js';
4
+ import { PublishType } from '../../types/publish-api/publishing-profile-item.js';
5
+ import { ActionResult } from '../action-result.js';
6
+ /**
7
+ * Callers discard the result: this runs after a publish that already succeeded, and no outcome here
8
+ * may change that.
9
+ */
10
+ export class PluginRecordSdkAction {
11
+ constructor() {
12
+ this.prompts = new PluginRecordSdkPrompts();
13
+ this.execute = async (buildDirectory, language, publishingProfile, publishTypes, packageVersion, codegenVersion, isInteractive) => {
14
+ // The entry has to describe what this run published, not what the profile happens to enable.
15
+ // A package-only run must not claim a repository it never pushed to, nor a source-only run a
16
+ // package that was never released.
17
+ const entry = buildLanguageEntry(language, publishTypes.includes(PublishType.SourceCodePublishing)
18
+ ? publishingProfile.getGitConfigurationForLanguage(language)
19
+ : undefined, publishTypes.includes(PublishType.PackagePublishing)
20
+ ? publishingProfile.getPackageConfigurationDataForLanguage(language)
21
+ : undefined, packageVersion, codegenVersion);
22
+ const pluginConfigContext = new PluginConfigContext(buildDirectory);
23
+ const configState = await pluginConfigContext.getPluginConfigState();
24
+ if (configState.state === 'unreadable') {
25
+ this.prompts.pluginConfigUnreadable(configState.reason);
26
+ return ActionResult.failed();
27
+ }
28
+ const configExisted = configState.state === 'present';
29
+ if (configExisted) {
30
+ const result = configState.assertNoCodegenVersionMismatch(codegenVersion, language, entry);
31
+ if (result.isErr()) {
32
+ this.prompts.codegenVersionMismatch(language, result.error.actual, result.error.expected);
33
+ if (isInteractive && !(await this.prompts.confirmCodegenVersionOverwrite())) {
34
+ return ActionResult.cancelled();
35
+ }
36
+ }
37
+ }
38
+ if (!entry.source && (!configExisted || configState.hasNoSourceRepository(language))) {
39
+ this.prompts.noSourceRepository(language);
40
+ }
41
+ const writeResult = await pluginConfigContext.upsertLanguage(language, entry);
42
+ if (writeResult.isErr()) {
43
+ switch (writeResult.error) {
44
+ // Readable a moment ago, so this only happens if the file changed underneath us.
45
+ case 'unreadable':
46
+ this.prompts.pluginConfigUnreadable();
47
+ return ActionResult.failed();
48
+ case 'unwritable':
49
+ this.prompts.pluginConfigNotWritten();
50
+ return ActionResult.failed();
51
+ default:
52
+ throw writeResult.error;
53
+ }
54
+ }
55
+ this.prompts.sdkRecorded(language, configExisted);
56
+ return ActionResult.success();
57
+ };
58
+ }
59
+ }
60
+ //# sourceMappingURL=record-sdk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-sdk.js","sourceRoot":"","sources":["../../../src/actions/plugin/record-sdk.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { DirectoryPath } from '../../types/file/directoryPath.js';
2
2
  import { ActionResult } from '../action-result.js';
3
3
  import { CommandMetadata } from '../../types/common/command-metadata.js';
4
- import { CodeGenerationVersion, Language, Stability } from '../../types/sdk/generate.js';
4
+ import { CodegenOption, Language } from '../../types/sdk/generate.js';
5
5
  import { SemVersion } from '../../types/publish/version.js';
6
6
  export declare class GenerateAction {
7
7
  private readonly prompts;
@@ -10,7 +10,7 @@ export declare class GenerateAction {
10
10
  private readonly commandMetadata;
11
11
  private readonly authKey;
12
12
  constructor(configDir: DirectoryPath, commandMetadata: CommandMetadata, authKey?: string | null);
13
- readonly execute: (buildDirectory: DirectoryPath, destinationSdkDirectory: DirectoryPath, language: Language, force: boolean, zipSdk: boolean, skipChanges: boolean, trackChanges: boolean, codeGenVersion: CodeGenerationVersion, stability: Stability, apiVersion?: string, packageVersion?: SemVersion, packageSettingsDirectory?: DirectoryPath) => Promise<ActionResult<{
13
+ readonly execute: (buildDirectory: DirectoryPath, destinationSdkDirectory: DirectoryPath, language: Language, force: boolean, zipSdk: boolean, skipChanges: boolean, trackChanges: boolean, codegenOption: CodegenOption, stabilityWasProvided: boolean, apiVersion?: string, packageVersion?: SemVersion, packageSettingsDirectory?: DirectoryPath) => Promise<ActionResult<{
14
14
  sourceTreeTrackingInitiated: boolean;
15
15
  conflictsResolved: boolean;
16
16
  }>>;
@@ -4,14 +4,14 @@ import { withDirPath } from '../../infrastructure/tmp-extensions.js';
4
4
  import { SdkContext } from '../../types/sdk-context.js';
5
5
  import { SdkGeneratePrompts } from '../../prompts/sdk/generate.js';
6
6
  import { TempContext } from '../../types/temp-context.js';
7
- import { CodeGenerationVersion } from '../../types/sdk/generate.js';
8
7
  import { MergeSourceTreeAction } from './merge-source-tree.js';
9
8
  import { BuildContext } from '../../types/build-context.js';
10
9
  export class GenerateAction {
11
10
  constructor(configDir, commandMetadata, authKey = null) {
12
11
  this.prompts = new SdkGeneratePrompts();
13
12
  this.portalService = new PortalService();
14
- this.execute = async (buildDirectory, destinationSdkDirectory, language, force, zipSdk, skipChanges, trackChanges, codeGenVersion, stability, apiVersion, packageVersion, packageSettingsDirectory) => {
13
+ this.execute = async (buildDirectory, destinationSdkDirectory, language, force, zipSdk, skipChanges, trackChanges, codegenOption, stabilityWasProvided, apiVersion, packageVersion, packageSettingsDirectory) => {
14
+ this.prompts.warnIfStabilityIgnored(codegenOption, stabilityWasProvided);
15
15
  if (buildDirectory.isEqual(destinationSdkDirectory)) {
16
16
  this.prompts.sameBuildAndSdkDir(buildDirectory);
17
17
  return ActionResult.failed();
@@ -67,9 +67,9 @@ export class GenerateAction {
67
67
  return await withDirPath(async (tempDirectory) => {
68
68
  const tempContext = new TempContext(tempDirectory);
69
69
  const buildZipPath = await buildContext.getBuildZipPath(tempDirectory, packageSettingsDirectory);
70
- if (codeGenVersion === CodeGenerationVersion.V4) {
70
+ if (codegenOption.isV4()) {
71
71
  this.prompts.sdkCustomizationsNotSupportedForV4();
72
- const response = await this.prompts.generateV4SDK(this.portalService.generateV4Sdk(buildZipPath, language, stability, this.configDir, this.commandMetadata, this.authKey));
72
+ const response = await this.prompts.generateV4SDK(this.portalService.generateV4Sdk(buildZipPath, language, codegenOption.stabilityLevel(), this.configDir, this.commandMetadata, this.authKey));
73
73
  if (response.isErr()) {
74
74
  this.prompts.sdkGenerationServiceError(response.error);
75
75
  return ActionResult.failed();
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/actions/sdk/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/actions/sdk/generate.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,10 @@ import { DirectoryPath } from '../../../types/file/directoryPath.js';
4
4
  import { PublishType } from '../../../types/publish-api/publishing-profile-item.js';
5
5
  import { PublishingProfile } from '../../../types/publish/publishing-profile.js';
6
6
  import { PublishingProfiles } from '../../../types/publish/publishing-profiles.js';
7
+ import { getCodegenOptions } from '../../../types/sdk/generate.js';
8
+ import { formatPublishingDetails } from '../../../prompts/sdk/publish.js';
7
9
  import { ActionResult } from '../../action-result.js';
10
+ import { PluginRecordSdkAction } from '../../plugin/record-sdk.js';
8
11
  import { SdkPublishAction } from '../publish.js';
9
12
  import { BuildContext } from '../../../types/build-context.js';
10
13
  import { ProfileId } from '../../../types/publish/profile-id.js';
@@ -36,7 +39,7 @@ export class SdkPublishInteractiveAction {
36
39
  const publishingProfileItems = publishingProfilesResponse.value;
37
40
  const publishingProfilesResult = PublishingProfiles.create(publishingProfileItems);
38
41
  if (publishingProfilesResult.isErr()) {
39
- this.prompts.noPublishingProfilesFound(publishingProfilesResult.error);
42
+ this.prompts.noPublishingProfilesFound();
40
43
  return ActionResult.failed();
41
44
  }
42
45
  const activePublishingProfiles = publishingProfilesResult.value.getActiveProfiles();
@@ -55,13 +58,27 @@ export class SdkPublishInteractiveAction {
55
58
  this.prompts.noLanguageSelected();
56
59
  return ActionResult.cancelled();
57
60
  }
61
+ const codegenOptions = getCodegenOptions(language);
62
+ const codegenOption = codegenOptions.length === 1 ? codegenOptions[0]
63
+ : await this.prompts.selectCodegenVersion(codegenOptions);
64
+ if (!codegenOption) {
65
+ this.prompts.noCodegenVersionSelected();
66
+ return ActionResult.cancelled();
67
+ }
58
68
  const version = await this.prompts.inputVersion();
59
69
  if (!version) {
60
70
  this.prompts.noVersionSpecified();
61
71
  return ActionResult.cancelled();
62
72
  }
63
73
  const publishTypes = publishingProfile.getPublishTypesForLanguage(language);
64
- this.prompts.publishingSummary(publishingProfile, language, version, publishTypes);
74
+ const publishingSummary = formatPublishingDetails({
75
+ profile: publishingProfile,
76
+ language,
77
+ version,
78
+ publishType: publishTypes,
79
+ codegenOption: codegenOptions.length === 1 ? undefined : codegenOption
80
+ });
81
+ this.prompts.publishingSummary(publishingSummary);
65
82
  const confirmed = await this.prompts.confirmPublishing();
66
83
  if (!confirmed) {
67
84
  this.prompts.publishingCancelled();
@@ -71,14 +88,16 @@ export class SdkPublishInteractiveAction {
71
88
  this.prompts.sourceCodeOnlyPublishingNotice();
72
89
  }
73
90
  const publishingProfileId = ProfileId.createFromPublishingProfileItem(publishingProfileItem);
74
- const publishResult = await new SdkPublishAction(this.configDir, this.commandMetadata).execute(buildDirectory, sdkDirectory, language, publishTypes, false, publishingProfileId, version, publishingProfile, false, onPublishSdkError);
91
+ const publishResult = await new SdkPublishAction(this.configDir, this.commandMetadata).execute(buildDirectory, sdkDirectory, language, publishTypes, false, publishingProfileId, version, publishingProfile, false, codegenOption, false, publishingSummary, onPublishSdkError);
75
92
  if (publishResult.isFailed()) {
76
93
  return ActionResult.failed();
77
94
  }
78
95
  if (publishResult.isCancelled()) {
79
96
  return ActionResult.cancelled();
80
97
  }
81
- this.prompts.sdkPublishingInProgress(publishResult.getValue().publishingLogUrl);
98
+ if (await this.prompts.confirmRecordSdk()) {
99
+ await new PluginRecordSdkAction().execute(buildDirectory, language, publishingProfile, publishTypes, version, codegenOption.codeGenerationVersion(), true);
100
+ }
82
101
  return ActionResult.success();
83
102
  };
84
103
  }