@apimatic/cli 1.1.0-beta.11 → 1.1.0-beta.13

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 (103) hide show
  1. package/README.md +64 -1
  2. package/lib/actions/publishing/profile/list.d.ts +11 -0
  3. package/lib/actions/publishing/profile/list.js +29 -0
  4. package/lib/actions/publishing/profile/list.js.map +1 -0
  5. package/lib/actions/sdk/generate.d.ts +2 -1
  6. package/lib/actions/sdk/generate.js +3 -3
  7. package/lib/actions/sdk/generate.js.map +1 -1
  8. package/lib/actions/sdk/publish/interactive.d.ts +13 -0
  9. package/lib/actions/sdk/publish/interactive.js +105 -0
  10. package/lib/actions/sdk/publish/interactive.js.map +1 -0
  11. package/lib/actions/sdk/publish/non-interactive.d.ts +14 -0
  12. package/lib/actions/sdk/publish/non-interactive.js +101 -0
  13. package/lib/actions/sdk/publish/non-interactive.js.map +1 -0
  14. package/lib/actions/sdk/publish.d.ts +18 -0
  15. package/lib/actions/sdk/publish.js +56 -0
  16. package/lib/actions/sdk/publish.js.map +1 -0
  17. package/lib/commands/publishing/profile/list.d.ts +9 -0
  18. package/lib/commands/publishing/profile/list.js +28 -0
  19. package/lib/commands/publishing/profile/list.js.map +1 -0
  20. package/lib/commands/sdk/publish.d.ts +18 -0
  21. package/lib/commands/sdk/publish.js +73 -0
  22. package/lib/commands/sdk/publish.js.map +1 -0
  23. package/lib/infrastructure/env-info.d.ts +2 -0
  24. package/lib/infrastructure/env-info.js +22 -11
  25. package/lib/infrastructure/env-info.js.map +1 -1
  26. package/lib/infrastructure/file-service.d.ts +4 -0
  27. package/lib/infrastructure/file-service.js +43 -0
  28. package/lib/infrastructure/file-service.js.map +1 -1
  29. package/lib/infrastructure/git-service.d.ts +0 -1
  30. package/lib/infrastructure/git-service.js +0 -3
  31. package/lib/infrastructure/git-service.js.map +1 -1
  32. package/lib/infrastructure/launcher-service.d.ts +3 -0
  33. package/lib/infrastructure/launcher-service.js +13 -1
  34. package/lib/infrastructure/launcher-service.js.map +1 -1
  35. package/lib/infrastructure/os-extensions.d.ts +2 -0
  36. package/lib/infrastructure/os-extensions.js +6 -0
  37. package/lib/infrastructure/os-extensions.js.map +1 -0
  38. package/lib/infrastructure/service-error.d.ts +1 -0
  39. package/lib/infrastructure/service-error.js +3 -0
  40. package/lib/infrastructure/service-error.js.map +1 -1
  41. package/lib/infrastructure/services/portal-service.d.ts +2 -1
  42. package/lib/infrastructure/services/portal-service.js +2 -2
  43. package/lib/infrastructure/services/portal-service.js.map +1 -1
  44. package/lib/infrastructure/services/publishing-api-service.d.ts +19 -0
  45. package/lib/infrastructure/services/publishing-api-service.js +111 -0
  46. package/lib/infrastructure/services/publishing-api-service.js.map +1 -0
  47. package/lib/infrastructure/zip-service.d.ts +2 -2
  48. package/lib/infrastructure/zip-service.js +29 -11
  49. package/lib/infrastructure/zip-service.js.map +1 -1
  50. package/lib/prompts/format.d.ts +0 -2
  51. package/lib/prompts/format.js +0 -31
  52. package/lib/prompts/format.js.map +1 -1
  53. package/lib/prompts/prompt.d.ts +6 -0
  54. package/lib/prompts/prompt.js +45 -0
  55. package/lib/prompts/prompt.js.map +1 -1
  56. package/lib/prompts/publishing/profile/list.d.ts +9 -0
  57. package/lib/prompts/publishing/profile/list.js +27 -0
  58. package/lib/prompts/publishing/profile/list.js.map +1 -0
  59. package/lib/prompts/sdk/publish/interactive.d.ts +30 -0
  60. package/lib/prompts/sdk/publish/interactive.js +139 -0
  61. package/lib/prompts/sdk/publish/interactive.js.map +1 -0
  62. package/lib/prompts/sdk/publish/non-interactive.d.ts +27 -0
  63. package/lib/prompts/sdk/publish/non-interactive.js +97 -0
  64. package/lib/prompts/sdk/publish/non-interactive.js.map +1 -0
  65. package/lib/prompts/sdk/publish.d.ts +12 -0
  66. package/lib/prompts/sdk/publish.js +16 -0
  67. package/lib/prompts/sdk/publish.js.map +1 -0
  68. package/lib/types/build-context.d.ts +2 -1
  69. package/lib/types/build-context.js +12 -2
  70. package/lib/types/build-context.js.map +1 -1
  71. package/lib/types/events/sdk-publish-validation-failed.d.ts +5 -0
  72. package/lib/types/events/sdk-publish-validation-failed.js +8 -0
  73. package/lib/types/events/sdk-publish-validation-failed.js.map +1 -0
  74. package/lib/types/merge-source-tree-context.js +2 -1
  75. package/lib/types/merge-source-tree-context.js.map +1 -1
  76. package/lib/types/package-settings-context.d.ts +10 -0
  77. package/lib/types/package-settings-context.js +20 -0
  78. package/lib/types/package-settings-context.js.map +1 -0
  79. package/lib/types/publish/package-settings-configuration.d.ts +70 -0
  80. package/lib/types/publish/package-settings-configuration.js +46 -0
  81. package/lib/types/publish/package-settings-configuration.js.map +1 -0
  82. package/lib/types/publish/profile-id.d.ts +10 -0
  83. package/lib/types/publish/profile-id.js +22 -0
  84. package/lib/types/publish/profile-id.js.map +1 -0
  85. package/lib/types/publish/publishing-profile.d.ts +18 -0
  86. package/lib/types/publish/publishing-profile.js +105 -0
  87. package/lib/types/publish/publishing-profile.js.map +1 -0
  88. package/lib/types/publish/publishing-profiles.d.ts +12 -0
  89. package/lib/types/publish/publishing-profiles.js +36 -0
  90. package/lib/types/publish/publishing-profiles.js.map +1 -0
  91. package/lib/types/publish/version.d.ts +7 -0
  92. package/lib/types/publish/version.js +17 -0
  93. package/lib/types/publish/version.js.map +1 -0
  94. package/lib/types/publish-api/publish-log.d.ts +20 -0
  95. package/lib/types/publish-api/publish-log.js +2 -0
  96. package/lib/types/publish-api/publish-log.js.map +1 -0
  97. package/lib/types/publish-api/publishing-info.d.ts +4 -0
  98. package/lib/types/publish-api/publishing-info.js +2 -0
  99. package/lib/types/publish-api/publishing-info.js.map +1 -0
  100. package/lib/types/publish-api/publishing-profile-item.d.ts +183 -0
  101. package/lib/types/publish-api/publishing-profile-item.js +6 -0
  102. package/lib/types/publish-api/publishing-profile-item.js.map +1 -0
  103. package/package.json +16 -8
package/README.md CHANGED
@@ -24,7 +24,7 @@ $ npm install -g @apimatic/cli
24
24
  $ apimatic COMMAND
25
25
  running command...
26
26
  $ apimatic (--version)
27
- @apimatic/cli/1.1.0-beta.8 win32-x64 node-v23.4.0
27
+ @apimatic/cli/1.1.0-beta.11 win32-x64 node-v23.4.0
28
28
  $ apimatic --help [COMMAND]
29
29
  USAGE
30
30
  $ apimatic COMMAND
@@ -46,8 +46,10 @@ USAGE
46
46
  * [`apimatic portal recipe new`](#apimatic-portal-recipe-new)
47
47
  * [`apimatic portal serve`](#apimatic-portal-serve)
48
48
  * [`apimatic portal toc new`](#apimatic-portal-toc-new)
49
+ * [`apimatic publishing profile list`](#apimatic-publishing-profile-list)
49
50
  * [`apimatic quickstart`](#apimatic-quickstart)
50
51
  * [`apimatic sdk generate`](#apimatic-sdk-generate)
52
+ * [`apimatic sdk publish`](#apimatic-sdk-publish)
51
53
  * [`apimatic sdk save-changes`](#apimatic-sdk-save-changes)
52
54
 
53
55
  ## `apimatic api transform`
@@ -387,6 +389,25 @@ EXAMPLES
387
389
 
388
390
  _See code: [src/commands/portal/toc/new.ts](https://github.com/apimatic/apimatic-cli/blob/beta/src/commands/portal/toc/new.ts)_
389
391
 
392
+ ## `apimatic publishing profile list`
393
+
394
+ List all publishing profiles
395
+
396
+ ```
397
+ USAGE
398
+ $ apimatic publishing profile list
399
+
400
+ DESCRIPTION
401
+ List all publishing profiles
402
+
403
+ Display all publishing profiles associated with your account, including each profile's name, ID and enabled languages.
404
+
405
+ EXAMPLES
406
+ apimatic publishing profile list
407
+ ```
408
+
409
+ _See code: [src/commands/publishing/profile/list.ts](https://github.com/apimatic/apimatic-cli/blob/beta/src/commands/publishing/profile/list.ts)_
410
+
390
411
  ## `apimatic quickstart`
391
412
 
392
413
  Create your first SDK or API Portal using APIMatic.
@@ -445,6 +466,48 @@ EXAMPLES
445
466
 
446
467
  _See code: [src/commands/sdk/generate.ts](https://github.com/apimatic/apimatic-cli/blob/beta/src/commands/sdk/generate.ts)_
447
468
 
469
+ ## `apimatic sdk publish`
470
+
471
+ Generate and publish an SDK to a package registry and/or source repository
472
+
473
+ ```
474
+ USAGE
475
+ $ apimatic sdk publish [-p <value>] [-v <value>] [-d <value>] [-l csharp|java|php|python|ruby|typescript] [-f]
476
+ [-i <value>] [--publish-type package|sourcecode...] [--dry-run]
477
+
478
+ FLAGS
479
+ -d, --destination=<value> [default: <input>/sdk] path where the sdk will be generated.
480
+ -f, --force overwrite changes without asking for user consent.
481
+ -i, --input=<value> [default: ./] path to the parent directory containing the 'src' directory, which
482
+ includes API specifications and configuration files.
483
+ -l, --language=<option> Language of the SDK to generate and publish.
484
+ <options: csharp|java|php|python|ruby|typescript>
485
+ -p, --profile-id=<value> Id of the publishing profile to use.
486
+ -v, --version=<value> Semantic version of the SDK to publish (e.g. 1.0.0).
487
+ --dry-run Generate the SDK locally for review without publishing.
488
+ --publish-type=<option>... One or more publishing targets: 'package' for a package registry, 'sourcecode' for a
489
+ git repository.
490
+ <options: package|sourcecode>
491
+
492
+ DESCRIPTION
493
+ Generate and publish an SDK to a package registry and/or source repository
494
+
495
+ Generate and publish an SDK using a publishing profile configured in the APIMatic App. Requires an input directory
496
+ containing the API specification. Run without flags for a step-by-step interactive experience, or pass all required
497
+ flags for CI/CD automation.
498
+
499
+ EXAMPLES
500
+ apimatic sdk publish
501
+
502
+ apimatic sdk publish --profile-id=a1b2c3d4e5f6a1b2c3d4e5f6 --language=typescript --version=1.0.0 --publish-type=package --publish-type=sourcecode
503
+
504
+ apimatic sdk publish --profile-id=b2c3d4e5f6a1b2c3d4e5f6a1 --language=java --version=2.0.0 --publish-type=sourcecode
505
+
506
+ apimatic sdk publish --profile-id=c3d4e5f6a1b2c3d4e5f6a1b2 --language=python --version=1.0.0 --publish-type=package --dry-run
507
+ ```
508
+
509
+ _See code: [src/commands/sdk/publish.ts](https://github.com/apimatic/apimatic-cli/blob/beta/src/commands/sdk/publish.ts)_
510
+
448
511
  ## `apimatic sdk save-changes`
449
512
 
450
513
  Save customizations made to an auto-generated SDK
@@ -0,0 +1,11 @@
1
+ import { DirectoryPath } from '../../../types/file/directoryPath.js';
2
+ import { CommandMetadata } from '../../../types/common/command-metadata.js';
3
+ import { ActionResult } from '../../action-result.js';
4
+ export declare class PublishingProfileListAction {
5
+ private readonly configDir;
6
+ private readonly commandMetadata;
7
+ private readonly prompts;
8
+ private readonly publishingApiService;
9
+ constructor(configDir: DirectoryPath, commandMetadata: CommandMetadata);
10
+ execute(): Promise<ActionResult>;
11
+ }
@@ -0,0 +1,29 @@
1
+ import { PublishingApiService } from '../../../infrastructure/services/publishing-api-service.js';
2
+ import { PublishingProfileListPrompts } from '../../../prompts/publishing/profile/list.js';
3
+ import { ActionResult } from '../../action-result.js';
4
+ import { PublishingProfiles } from '../../../types/publish/publishing-profiles.js';
5
+ export class PublishingProfileListAction {
6
+ constructor(configDir, commandMetadata) {
7
+ this.configDir = configDir;
8
+ this.commandMetadata = commandMetadata;
9
+ this.prompts = new PublishingProfileListPrompts();
10
+ this.publishingApiService = new PublishingApiService();
11
+ }
12
+ async execute() {
13
+ const profilesResult = await this.prompts.fetchProfiles(this.publishingApiService.getPublishingProfiles(this.configDir, this.commandMetadata.shell));
14
+ if (profilesResult.isErr()) {
15
+ this.prompts.fetchError(profilesResult.error);
16
+ return ActionResult.failed();
17
+ }
18
+ const publishingProfilesResult = PublishingProfiles.create(profilesResult.value);
19
+ if (publishingProfilesResult.isErr()) {
20
+ this.prompts.noProfilesFound();
21
+ return ActionResult.success();
22
+ }
23
+ const publishingProfiles = publishingProfilesResult.value;
24
+ const publishingProfileSummariesByApiGroups = publishingProfiles.toPublishingProfileSummariesByApiGroups();
25
+ this.prompts.displayProfiles(publishingProfileSummariesByApiGroups);
26
+ return ActionResult.success();
27
+ }
28
+ }
29
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/actions/publishing/profile/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4DAA4D,CAAC;AAGlG,OAAO,EAAE,4BAA4B,EAAE,MAAM,6CAA6C,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AAEnF,MAAM,OAAO,2BAA2B;IAItC,YAA6B,SAAwB,EAAmB,eAAgC;QAA3E,cAAS,GAAT,SAAS,CAAe;QAAmB,oBAAe,GAAf,eAAe,CAAiB;QAHvF,YAAO,GAAG,IAAI,4BAA4B,EAAE,CAAC;QAC7C,yBAAoB,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAEwC,CAAC;IAErG,KAAK,CAAC,OAAO;QAClB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CACrD,IAAI,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAC5F,CAAC;QAEF,IAAI,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAC9C,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;QAC/B,CAAC;QAED,MAAM,wBAAwB,GAAG,kBAAkB,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACjF,IAAI,wBAAwB,CAAC,KAAK,EAAE,EAAE,CAAC;YACrC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;YAC/B,OAAO,YAAY,CAAC,OAAO,EAAE,CAAC;QAChC,CAAC;QAED,MAAM,kBAAkB,GAAG,wBAAwB,CAAC,KAAK,CAAC;QAC1D,MAAM,qCAAqC,GAAG,kBAAkB,CAAC,uCAAuC,EAAE,CAAC;QAC3G,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,qCAAqC,CAAC,CAAC;QACpE,OAAO,YAAY,CAAC,OAAO,EAAE,CAAC;IAChC,CAAC;CACF"}
@@ -2,6 +2,7 @@ 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
4
  import { Language } from "../../types/sdk/generate.js";
5
+ import { SemVersion } from "../../types/publish/version.js";
5
6
  export declare class GenerateAction {
6
7
  private readonly prompts;
7
8
  private readonly portalService;
@@ -9,7 +10,7 @@ export declare class GenerateAction {
9
10
  private readonly commandMetadata;
10
11
  private readonly authKey;
11
12
  constructor(configDir: DirectoryPath, commandMetadata: CommandMetadata, authKey?: string | null);
12
- readonly execute: (buildDirectory: DirectoryPath, destinationSdkDirectory: DirectoryPath, language: Language, force: boolean, zipSdk: boolean, skipChanges: boolean, trackChanges: boolean, apiVersion?: string) => Promise<ActionResult<{
13
+ readonly execute: (buildDirectory: DirectoryPath, destinationSdkDirectory: DirectoryPath, language: Language, force: boolean, zipSdk: boolean, skipChanges: boolean, trackChanges: boolean, apiVersion?: string, packageVersion?: SemVersion, packageSettingsDirectory?: DirectoryPath) => Promise<ActionResult<{
13
14
  sourceTreeTrackingInitiated: boolean;
14
15
  conflictsResolved: boolean;
15
16
  }>>;
@@ -10,7 +10,7 @@ export class GenerateAction {
10
10
  constructor(configDir, commandMetadata, authKey = null) {
11
11
  this.prompts = new SdkGeneratePrompts();
12
12
  this.portalService = new PortalService();
13
- this.execute = async (buildDirectory, destinationSdkDirectory, language, force, zipSdk, skipChanges, trackChanges, apiVersion) => {
13
+ this.execute = async (buildDirectory, destinationSdkDirectory, language, force, zipSdk, skipChanges, trackChanges, apiVersion, packageVersion, packageSettingsDirectory) => {
14
14
  if (buildDirectory.isEqual(destinationSdkDirectory)) {
15
15
  this.prompts.sameBuildAndSdkDir(buildDirectory);
16
16
  return ActionResult.failed();
@@ -65,8 +65,8 @@ export class GenerateAction {
65
65
  }
66
66
  return await withDirPath(async (tempDirectory) => {
67
67
  const tempContext = new TempContext(tempDirectory);
68
- const buildZipPath = await tempContext.zip(buildContext.getBuildDirectory());
69
- const response = await this.prompts.generateSDK(this.portalService.generateSdk(buildZipPath, language, this.configDir, this.commandMetadata, this.authKey));
68
+ const buildZipPath = await buildContext.getBuildZipPath(tempDirectory, packageSettingsDirectory);
69
+ const response = await this.prompts.generateSDK(this.portalService.generateSdk(buildZipPath, language, this.configDir, this.commandMetadata, this.authKey, packageVersion));
70
70
  if (response.isErr()) {
71
71
  this.prompts.sdkGenerationServiceError(response.error);
72
72
  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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"}
@@ -0,0 +1,13 @@
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 SdkPublishInteractiveAction {
5
+ private readonly configDir;
6
+ private readonly commandMetadata;
7
+ private readonly prompts;
8
+ private readonly publishingApiService;
9
+ constructor(configDir: DirectoryPath, commandMetadata: CommandMetadata);
10
+ readonly execute: (defaultBuildDirectory: DirectoryPath, onPublishSdkError: (errorMessage: string) => void) => Promise<ActionResult>;
11
+ static workingDirectoryValidator(defaultBuildDirectory: DirectoryPath): (value: string | undefined) => string | undefined;
12
+ static sdkDirectoryValidator(buildDirectory: DirectoryPath): (value: string | undefined) => string | undefined;
13
+ }
@@ -0,0 +1,105 @@
1
+ import { PublishingApiService } from '../../../infrastructure/services/publishing-api-service.js';
2
+ import { SdkPublishInteractivePrompts } from '../../../prompts/sdk/publish/interactive.js';
3
+ import { DirectoryPath } from '../../../types/file/directoryPath.js';
4
+ import { PublishType } from '../../../types/publish-api/publishing-profile-item.js';
5
+ import { PublishingProfile } from '../../../types/publish/publishing-profile.js';
6
+ import { PublishingProfiles } from '../../../types/publish/publishing-profiles.js';
7
+ import { ActionResult } from '../../action-result.js';
8
+ import { SdkPublishAction } from '../publish.js';
9
+ import { BuildContext } from '../../../types/build-context.js';
10
+ import { ProfileId } from '../../../types/publish/profile-id.js';
11
+ import { removeQuotes } from '../../../utils/string-utils.js';
12
+ export class SdkPublishInteractiveAction {
13
+ constructor(configDir, commandMetadata) {
14
+ this.configDir = configDir;
15
+ this.commandMetadata = commandMetadata;
16
+ this.prompts = new SdkPublishInteractivePrompts();
17
+ this.publishingApiService = new PublishingApiService();
18
+ this.execute = async (defaultBuildDirectory, onPublishSdkError) => {
19
+ const workingDirectory = await this.prompts.inputWorkingDirectory(defaultBuildDirectory, SdkPublishInteractiveAction.workingDirectoryValidator(defaultBuildDirectory));
20
+ if (!workingDirectory) {
21
+ await this.prompts.noInputDirectoryProvided();
22
+ return ActionResult.cancelled();
23
+ }
24
+ const buildDirectory = workingDirectory.join('src');
25
+ const defaultSdkDirectory = workingDirectory.join('sdk');
26
+ const sdkDirectory = await this.prompts.inputSdkDirectory(defaultSdkDirectory, SdkPublishInteractiveAction.sdkDirectoryValidator(buildDirectory));
27
+ if (!sdkDirectory) {
28
+ await this.prompts.noSdkDirectoryProvided();
29
+ return ActionResult.cancelled();
30
+ }
31
+ const publishingProfilesResponse = await this.prompts.getPublishingProfiles(this.publishingApiService.getPublishingProfiles(this.configDir, this.commandMetadata.shell));
32
+ if (publishingProfilesResponse.isErr()) {
33
+ this.prompts.getPublishingProfilesServiceError(publishingProfilesResponse.error);
34
+ return ActionResult.failed();
35
+ }
36
+ const publishingProfileItems = publishingProfilesResponse.value;
37
+ const publishingProfilesResult = PublishingProfiles.create(publishingProfileItems);
38
+ if (publishingProfilesResult.isErr()) {
39
+ this.prompts.noPublishingProfilesFound(publishingProfilesResult.error);
40
+ return ActionResult.failed();
41
+ }
42
+ const activePublishingProfiles = publishingProfilesResult.value.getActiveProfiles();
43
+ if (activePublishingProfiles.length === 0) {
44
+ this.prompts.noProfileWithEnabledLanguagesFound();
45
+ return ActionResult.failed();
46
+ }
47
+ const publishingProfileItem = await this.prompts.selectPublishingProfile(publishingProfilesResult.value.toActiveProfilesGroups());
48
+ if (!publishingProfileItem) {
49
+ this.prompts.noPublishingProfileSelected();
50
+ return ActionResult.cancelled();
51
+ }
52
+ const publishingProfile = PublishingProfile.create(publishingProfileItem);
53
+ const language = await this.prompts.selectLanguage(publishingProfile);
54
+ if (!language) {
55
+ this.prompts.noLanguageSelected();
56
+ return ActionResult.cancelled();
57
+ }
58
+ const version = await this.prompts.inputVersion();
59
+ if (!version) {
60
+ this.prompts.noVersionSpecified();
61
+ return ActionResult.cancelled();
62
+ }
63
+ const publishTypes = publishingProfile.getPublishTypesForLanguage(language);
64
+ this.prompts.publishingSummary(publishingProfile, language, version, publishTypes);
65
+ const confirmed = await this.prompts.confirmPublishing();
66
+ if (!confirmed) {
67
+ this.prompts.publishingCancelled();
68
+ return ActionResult.cancelled();
69
+ }
70
+ if (!publishTypes.includes(PublishType.PackagePublishing)) {
71
+ this.prompts.sourceCodeOnlyPublishingNotice();
72
+ }
73
+ 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);
75
+ if (publishResult.isFailed()) {
76
+ return ActionResult.failed();
77
+ }
78
+ if (publishResult.isCancelled()) {
79
+ return ActionResult.cancelled();
80
+ }
81
+ this.prompts.sdkPublishingInProgress(publishResult.getValue().publishingLogUrl);
82
+ return ActionResult.success();
83
+ };
84
+ }
85
+ static workingDirectoryValidator(defaultBuildDirectory) {
86
+ return (value) => {
87
+ if (!value) {
88
+ if (!new BuildContext(defaultBuildDirectory.join('src')).existsSync())
89
+ return "The 'src' directory does not exist at the provided location. Please check the path and try again.";
90
+ return;
91
+ }
92
+ if (!new BuildContext(new DirectoryPath(removeQuotes(value.trim())).join('src')).existsSync())
93
+ return "The 'src' directory does not exist at the provided location. Please check the path and try again.";
94
+ };
95
+ }
96
+ static sdkDirectoryValidator(buildDirectory) {
97
+ return (value) => {
98
+ if (!value)
99
+ return;
100
+ if (new DirectoryPath(removeQuotes(value.trim())).isEqual(buildDirectory))
101
+ return 'SDK directory must be different from the src directory.';
102
+ };
103
+ }
104
+ }
105
+ //# sourceMappingURL=interactive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../../../src/actions/sdk/publish/interactive.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { CommandMetadata } from '../../../types/common/command-metadata.js';
2
+ import { DirectoryPath } from '../../../types/file/directoryPath.js';
3
+ import { PublishType } from '../../../types/publish-api/publishing-profile-item.js';
4
+ import { Language } from '../../../types/sdk/generate.js';
5
+ import { ActionResult } from '../../action-result.js';
6
+ export declare class SdkPublishNonInteractiveAction {
7
+ private readonly configDir;
8
+ private readonly commandMetadata;
9
+ private readonly prompts;
10
+ private readonly publishingApiService;
11
+ private readonly fileService;
12
+ constructor(configDir: DirectoryPath, commandMetadata: CommandMetadata);
13
+ readonly execute: (buildDirectory: DirectoryPath, sdkDirectory: DirectoryPath, language: Language, publishTypes: PublishType[], force: boolean, dryRun: boolean, onPublishSdkError: (errorMessage: string) => void, profileId?: string, version?: string) => Promise<ActionResult>;
14
+ }
@@ -0,0 +1,101 @@
1
+ import { PublishingApiService } from '../../../infrastructure/services/publishing-api-service.js';
2
+ import { SdkPublishNonInteractivePrompts } from '../../../prompts/sdk/publish/non-interactive.js';
3
+ import { PublishType } from '../../../types/publish-api/publishing-profile-item.js';
4
+ import { PublishingProfile } from '../../../types/publish/publishing-profile.js';
5
+ import { ActionResult } from '../../action-result.js';
6
+ import { getDownloadsDirectory } from '../../../infrastructure/os-extensions.js';
7
+ import { SemVersion } from '../../../types/publish/version.js';
8
+ import { ProfileId } from '../../../types/publish/profile-id.js';
9
+ import { BuildContext } from '../../../types/build-context.js';
10
+ import { SdkPublishAction } from '../publish.js';
11
+ import { FileService } from '../../../infrastructure/file-service.js';
12
+ export class SdkPublishNonInteractiveAction {
13
+ constructor(configDir, commandMetadata) {
14
+ this.configDir = configDir;
15
+ this.commandMetadata = commandMetadata;
16
+ this.prompts = new SdkPublishNonInteractivePrompts();
17
+ this.publishingApiService = new PublishingApiService();
18
+ this.fileService = new FileService();
19
+ this.execute = async (buildDirectory, sdkDirectory, language, publishTypes, force, dryRun, onPublishSdkError, profileId, version) => {
20
+ if (buildDirectory.isEqual(sdkDirectory)) {
21
+ this.prompts.directoryCannotBeSame(sdkDirectory);
22
+ return ActionResult.failed();
23
+ }
24
+ const buildContext = new BuildContext(buildDirectory);
25
+ if (!(await buildContext.exists())) {
26
+ this.prompts.srcDirectoryDoesNotExist(buildDirectory);
27
+ return ActionResult.failed();
28
+ }
29
+ const missing = [];
30
+ if (!profileId)
31
+ missing.push('--profile-id');
32
+ if (!language)
33
+ missing.push('--language');
34
+ if (!version)
35
+ missing.push('--version');
36
+ if (!publishTypes || publishTypes.length === 0)
37
+ missing.push('--publish-type');
38
+ if (missing.length > 0) {
39
+ this.prompts.missingRequiredFlags(missing);
40
+ this.prompts.interactiveModeNotice();
41
+ return ActionResult.failed();
42
+ }
43
+ const semVersionResult = SemVersion.tryCreate(version);
44
+ if (semVersionResult.isErr()) {
45
+ this.prompts.invalidVersion(version);
46
+ return ActionResult.failed();
47
+ }
48
+ const profileIdResult = ProfileId.tryCreate(profileId);
49
+ if (profileIdResult.isErr()) {
50
+ this.prompts.invalidProfileId(profileId);
51
+ return ActionResult.failed();
52
+ }
53
+ const publishingProfilesResponse = await this.prompts.getPublishingProfiles(this.publishingApiService.getPublishingProfiles(this.configDir, this.commandMetadata.shell));
54
+ if (publishingProfilesResponse.isErr()) {
55
+ this.prompts.getPublishingProfilesServiceError(publishingProfilesResponse.error);
56
+ return ActionResult.failed();
57
+ }
58
+ const publishingProfileId = profileIdResult.value;
59
+ const publishingProfileItem = publishingProfilesResponse.value.find((profile) => ProfileId.tryCreate(profile.id).match((id) => publishingProfileId.isEqual(id), () => false));
60
+ if (!publishingProfileItem) {
61
+ this.prompts.publishingProfileNotFound(publishingProfileId);
62
+ return ActionResult.failed();
63
+ }
64
+ const publishingProfile = PublishingProfile.create(publishingProfileItem);
65
+ if (!publishingProfile.isLanguageEnabled(language)) {
66
+ this.prompts.languageNotConfiguredForProfile(language);
67
+ return ActionResult.failed();
68
+ }
69
+ const unallowedPublishTypes = publishingProfile.getUnallowedPublishTypes(language, publishTypes);
70
+ if (unallowedPublishTypes.length > 0) {
71
+ this.prompts.publishTypesNotAvailableForLanguage(unallowedPublishTypes, language);
72
+ return ActionResult.failed();
73
+ }
74
+ if (!publishTypes.includes(PublishType.PackagePublishing)) {
75
+ this.prompts.sourceCodeOnlyPublishingNotice();
76
+ }
77
+ const semVersion = semVersionResult.value;
78
+ const outputDir = dryRun ? await this.fileService.getAvailableDirectoryPath(getDownloadsDirectory('apimatic-sdk')) : sdkDirectory;
79
+ const publishResult = await new SdkPublishAction(this.configDir, this.commandMetadata).execute(buildDirectory, outputDir, language, publishTypes, force, publishingProfileId, semVersion, publishingProfile, dryRun, onPublishSdkError);
80
+ if (publishResult.isFailed()) {
81
+ return ActionResult.failed();
82
+ }
83
+ if (publishResult.isCancelled()) {
84
+ return ActionResult.cancelled();
85
+ }
86
+ // Since publishing was not initiated, skip the next steps for polling.
87
+ if (dryRun) {
88
+ return ActionResult.success();
89
+ }
90
+ const publishingInfo = publishResult.getValue();
91
+ this.prompts.publishingRunningNotice(publishingProfile, language, semVersion, publishTypes);
92
+ const publishingSucceeded = await this.prompts.pollPublishingStatus(() => this.publishingApiService.getSdkPublishingLog(publishingInfo.publishLogId, this.configDir, this.commandMetadata.shell));
93
+ this.prompts.postPublishingMessage(publishingInfo.publishingLogUrl);
94
+ if (!publishingSucceeded) {
95
+ return ActionResult.failed();
96
+ }
97
+ return ActionResult.success();
98
+ };
99
+ }
100
+ }
101
+ //# sourceMappingURL=non-interactive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"non-interactive.js","sourceRoot":"","sources":["../../../../src/actions/sdk/publish/non-interactive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4DAA4D,CAAC;AAClG,OAAO,EAAE,+BAA+B,EAAE,MAAM,iDAAiD,CAAC;AAGlG,OAAO,EAAyB,WAAW,EAAE,MAAM,uDAAuD,CAAC;AAC3G,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AAEjF,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAEtE,MAAM,OAAO,8BAA8B;IAKzC,YAAoC,SAAwB,EAAmB,eAAgC;QAA3E,cAAS,GAAT,SAAS,CAAe;QAAmB,oBAAe,GAAf,eAAe,CAAiB;QAJ9F,YAAO,GAAoC,IAAI,+BAA+B,EAAE,CAAC;QACjF,yBAAoB,GAAyB,IAAI,oBAAoB,EAAE,CAAC;QACxE,gBAAW,GAAgB,IAAI,WAAW,EAAE,CAAC;QAI9C,YAAO,GAAG,KAAK,EAC7B,cAA6B,EAC7B,YAA2B,EAC3B,QAAkB,EAClB,YAA2B,EAC3B,KAAc,EACd,MAAe,EACf,iBAAiD,EACjD,SAAkB,EAClB,OAAgB,EACO,EAAE;YACzB,IAAI,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC;gBACjD,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;YAC/B,CAAC;YAED,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,cAAc,CAAC,CAAC;YACtD,IAAI,CAAC,CAAC,MAAM,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;gBACtD,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;YAC/B,CAAC;YAED,MAAM,OAAO,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC7C,IAAI,CAAC,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1C,IAAI,CAAC,OAAO;gBAAE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACxC,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC/E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;gBAC3C,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;gBACrC,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;YAC/B,CAAC;YAED,MAAM,gBAAgB,GAAG,UAAU,CAAC,SAAS,CAAC,OAAQ,CAAC,CAAC;YACxD,IAAI,gBAAgB,CAAC,KAAK,EAAE,EAAE,CAAC;gBAC7B,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,OAAQ,CAAC,CAAC;gBACtC,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;YAC/B,CAAC;YAED,MAAM,eAAe,GAAG,SAAS,CAAC,SAAS,CAAC,SAAU,CAAC,CAAC;YACxD,IAAI,eAAe,CAAC,KAAK,EAAE,EAAE,CAAC;gBAC5B,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAU,CAAC,CAAC;gBAC1C,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;YAC/B,CAAC;YAED,MAAM,0BAA0B,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,qBAAqB,CACzE,IAAI,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAC5F,CAAC;YACF,IAAI,0BAA0B,CAAC,KAAK,EAAE,EAAE,CAAC;gBACvC,IAAI,CAAC,OAAO,CAAC,iCAAiC,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;gBACjF,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;YAC/B,CAAC;YAED,MAAM,mBAAmB,GAAG,eAAe,CAAC,KAAK,CAAC;YAClD,MAAM,qBAAqB,GAAG,0BAA0B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAA8B,EAAE,EAAE,CACrG,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,CACnC,CAAC,EAAE,EAAE,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC,EACvC,GAAG,EAAE,CAAC,KAAK,CACZ,CACF,CAAC;YACF,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC3B,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,mBAAmB,CAAC,CAAC;gBAC5D,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;YAC/B,CAAC;YAED,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;YAC1E,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnD,IAAI,CAAC,OAAO,CAAC,+BAA+B,CAAC,QAAQ,CAAC,CAAC;gBACvD,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;YAC/B,CAAC;YAED,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,wBAAwB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YACjG,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrC,IAAI,CAAC,OAAO,CAAC,mCAAmC,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;gBAClF,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;YAC/B,CAAC;YAED,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBAC1D,IAAI,CAAC,OAAO,CAAC,8BAA8B,EAAE,CAAC;YAChD,CAAC;YAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC;YAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;YAClI,MAAM,aAAa,GAAG,MAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAC5F,cAAc,EACd,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,KAAK,EACL,mBAAmB,EACnB,UAAU,EACV,iBAAiB,EACjB,MAAM,EACN,iBAAiB,CAClB,CAAC;YACF,IAAI,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC;gBAC7B,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;YAC/B,CAAC;YACD,IAAI,aAAa,CAAC,WAAW,EAAE,EAAE,CAAC;gBAChC,OAAO,YAAY,CAAC,SAAS,EAAE,CAAC;YAClC,CAAC;YAED,uEAAuE;YACvE,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,YAAY,CAAC,OAAO,EAAE,CAAC;YAChC,CAAC;YAED,MAAM,cAAc,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;YAChD,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,iBAAiB,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;YAE5F,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,GAAG,EAAE,CACvE,IAAI,CAAC,oBAAoB,CAAC,mBAAmB,CAC3C,cAAc,CAAC,YAAY,EAC3B,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,eAAe,CAAC,KAAK,CAC3B,CACF,CAAC;YAEF,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;YAEpE,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACzB,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;YAC/B,CAAC;YAED,OAAO,YAAY,CAAC,OAAO,EAAE,CAAC;QAChC,CAAC,CAAC;IA/HgH,CAAC;CAgIpH"}
@@ -0,0 +1,18 @@
1
+ import { CommandMetadata } from '../../types/common/command-metadata.js';
2
+ import { DirectoryPath } from '../../types/file/directoryPath.js';
3
+ import { PublishType } from '../../types/publish-api/publishing-profile-item.js';
4
+ import { PublishingInfo } from '../../types/publish-api/publishing-info.js';
5
+ import { ProfileId } from '../../types/publish/profile-id.js';
6
+ import { SemVersion } from '../../types/publish/version.js';
7
+ import { Language } from '../../types/sdk/generate.js';
8
+ import { PublishingProfile } from '../../types/publish/publishing-profile.js';
9
+ import { ActionResult } from '../action-result.js';
10
+ export declare class SdkPublishAction {
11
+ private readonly configDir;
12
+ private readonly commandMetadata;
13
+ private readonly prompts;
14
+ private readonly publishingApiService;
15
+ private readonly launcherService;
16
+ constructor(configDir: DirectoryPath, commandMetadata: CommandMetadata);
17
+ readonly execute: (buildDirectory: DirectoryPath, outputDirectory: DirectoryPath, language: Language, publishType: PublishType[], force: boolean, profileId: ProfileId, semVersion: SemVersion, publishingProfile: PublishingProfile, dryRun: boolean, onPublishSdkError: (errorMessage: string) => void) => Promise<ActionResult<PublishingInfo>>;
18
+ }
@@ -0,0 +1,56 @@
1
+ import { PublishingApiService } from '../../infrastructure/services/publishing-api-service.js';
2
+ import { withDirPath } from '../../infrastructure/tmp-extensions.js';
3
+ import { LauncherService } from '../../infrastructure/launcher-service.js';
4
+ import { SdkPublishPrompts } from '../../prompts/sdk/publish.js';
5
+ import { PackageSettingsConfiguration } from '../../types/publish/package-settings-configuration.js';
6
+ import { PackageSettingsContext } from '../../types/package-settings-context.js';
7
+ import { TempContext } from '../../types/temp-context.js';
8
+ import { ActionResult } from '../action-result.js';
9
+ import { GenerateAction } from './generate.js';
10
+ import { FileName } from '../../types/file/fileName.js';
11
+ import { FilePath } from '../../types/file/filePath.js';
12
+ export class SdkPublishAction {
13
+ constructor(configDir, commandMetadata) {
14
+ this.configDir = configDir;
15
+ this.commandMetadata = commandMetadata;
16
+ this.prompts = new SdkPublishPrompts();
17
+ this.publishingApiService = new PublishingApiService();
18
+ this.launcherService = new LauncherService();
19
+ this.execute = async (buildDirectory, outputDirectory, language, publishType, force, profileId, semVersion, publishingProfile, dryRun, onPublishSdkError) => {
20
+ return await withDirPath(async (tempDirectory) => {
21
+ const packageConfiguration = publishingProfile.getPackageConfigurationForLanguage(language);
22
+ if (packageConfiguration !== null && packageConfiguration.isEnabled) {
23
+ const packageSettingsConfiguration = PackageSettingsConfiguration.create(language, packageConfiguration);
24
+ const packageSettingsDirectory = tempDirectory.join('package-settings');
25
+ const packageSettingsContext = new PackageSettingsContext(packageSettingsDirectory);
26
+ await packageSettingsContext.writeConfiguration(packageSettingsConfiguration, language);
27
+ }
28
+ const sdkGenerateAction = new GenerateAction(this.configDir, this.commandMetadata);
29
+ const sdkGenerationResult = await sdkGenerateAction.execute(buildDirectory, outputDirectory, language, force, false, false, false, undefined, semVersion, tempDirectory);
30
+ if (sdkGenerationResult.isFailed()) {
31
+ return ActionResult.failed();
32
+ }
33
+ if (sdkGenerationResult.isCancelled()) {
34
+ return ActionResult.cancelled();
35
+ }
36
+ const sdkLanguageDirectory = outputDirectory.join(language);
37
+ if (dryRun) {
38
+ this.prompts.dryRunNotice(publishingProfile, language, semVersion, publishType);
39
+ const readmeFilePath = new FilePath(sdkLanguageDirectory, new FileName('README.md'));
40
+ await this.launcherService.openDirectoryInEditorOrFileExplorer(sdkLanguageDirectory, readmeFilePath);
41
+ return ActionResult.success();
42
+ }
43
+ const tempContext = new TempContext(tempDirectory);
44
+ const sdkFilePath = await tempContext.zip(sdkLanguageDirectory);
45
+ const publishSdkResponse = await this.prompts.publishSdk(this.publishingApiService.publishSdkPackage(sdkFilePath, profileId, language, semVersion, publishType, this.configDir, this.commandMetadata.shell));
46
+ if (publishSdkResponse.isErr()) {
47
+ this.prompts.sdkPublishingServiceError(publishSdkResponse.error);
48
+ onPublishSdkError(publishSdkResponse.error.errorMessage);
49
+ return ActionResult.failed();
50
+ }
51
+ return ActionResult.success(publishSdkResponse.value);
52
+ });
53
+ };
54
+ }
55
+ }
56
+ //# sourceMappingURL=publish.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../src/actions/sdk/publish.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Command } from '@oclif/core';
2
+ export default class PublishingProfileList extends Command {
3
+ static readonly summary = "List all publishing profiles";
4
+ static readonly description = "Display all publishing profiles associated with your account, including each profile's name, ID and enabled languages.";
5
+ private static readonly cmdTxt;
6
+ static examples: string[];
7
+ run(): Promise<void>;
8
+ private readonly getConfigDir;
9
+ }
@@ -0,0 +1,28 @@
1
+ import { Command } from '@oclif/core';
2
+ import { DirectoryPath } from '../../../types/file/directoryPath.js';
3
+ import { format, intro, outro } from '../../../prompts/format.js';
4
+ import { PublishingProfileListAction } from '../../../actions/publishing/profile/list.js';
5
+ class PublishingProfileList extends Command {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.getConfigDir = () => {
9
+ return new DirectoryPath(this.config.configDir);
10
+ };
11
+ }
12
+ async run() {
13
+ const commandMetadata = {
14
+ commandName: PublishingProfileList.id,
15
+ shell: this.config.shell
16
+ };
17
+ intro('Publishing Profile List');
18
+ const action = new PublishingProfileListAction(this.getConfigDir(), commandMetadata);
19
+ const result = await action.execute();
20
+ outro(result);
21
+ }
22
+ }
23
+ PublishingProfileList.summary = 'List all publishing profiles';
24
+ PublishingProfileList.description = `Display all publishing profiles associated with your account, including each profile's name, ID and enabled languages.`;
25
+ PublishingProfileList.cmdTxt = format.cmd('apimatic', 'publishing', 'profile', 'list');
26
+ PublishingProfileList.examples = [PublishingProfileList.cmdTxt];
27
+ export default PublishingProfileList;
28
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/publishing/profile/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,6CAA6C,CAAC;AAE1F,MAAqB,qBAAsB,SAAQ,OAAO;IAA1D;;QAqBmB,iBAAY,GAAG,GAAG,EAAE;YACnC,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,CAAC,CAAC;IACJ,CAAC;IAfC,KAAK,CAAC,GAAG;QACP,MAAM,eAAe,GAAoB;YACvC,WAAW,EAAE,qBAAqB,CAAC,EAAE;YACrC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;SACzB,CAAC;QAEF,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,2BAA2B,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,eAAe,CAAC,CAAC;QACrF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACtC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;;AAlBe,6BAAO,GAAG,8BAA8B,AAAjC,CAAkC;AAEzC,iCAAW,GAAG,wHAAwH,AAA3H,CAA4H;AAE/H,4BAAM,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,AAA1D,CAA2D;AAElF,8BAAQ,GAAG,CAAC,qBAAqB,CAAC,MAAM,CAAC,AAAjC,CAAkC;eAP9B,qBAAqB"}
@@ -0,0 +1,18 @@
1
+ import { Command } from '@oclif/core';
2
+ export default class SdkPublish extends Command {
3
+ static readonly summary = "Generate and publish an SDK to a package registry and/or source repository";
4
+ static readonly description = "Generate and publish an SDK using a publishing profile configured in the APIMatic App. Requires an input directory containing the API specification. Run without flags for a step-by-step interactive experience, or pass all required flags for CI/CD automation.";
5
+ static readonly cmdTxt: string;
6
+ static flags: {
7
+ 'publish-type': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
8
+ 'dry-run': import("@oclif/core/interfaces").BooleanFlag<boolean>;
9
+ force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
+ language: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
+ destination: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
+ 'profile-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
+ version: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
+ };
15
+ static examples: string[];
16
+ run(): Promise<void>;
17
+ private readonly getConfigDir;
18
+ }