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

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 (136) hide show
  1. package/README.md +53 -10
  2. package/lib/actions/action-result.d.ts +12 -6
  3. package/lib/actions/action-result.js +36 -10
  4. package/lib/actions/action-result.js.map +1 -1
  5. package/lib/actions/api/validate.d.ts +3 -1
  6. package/lib/actions/api/validate.js +14 -3
  7. package/lib/actions/api/validate.js.map +1 -1
  8. package/lib/actions/portal/copilot.js +2 -2
  9. package/lib/actions/portal/generate.js +7 -1
  10. package/lib/actions/portal/generate.js.map +1 -1
  11. package/lib/actions/portal/quickstart.d.ts +4 -3
  12. package/lib/actions/portal/quickstart.js +42 -19
  13. package/lib/actions/portal/quickstart.js.map +1 -1
  14. package/lib/actions/portal/serve.js +0 -14
  15. package/lib/actions/portal/serve.js.map +1 -1
  16. package/lib/actions/portal/toc/new-toc.d.ts +5 -5
  17. package/lib/actions/portal/toc/new-toc.js +39 -40
  18. package/lib/actions/portal/toc/new-toc.js.map +1 -1
  19. package/lib/actions/sdk/generate.d.ts +4 -1
  20. package/lib/actions/sdk/generate.js +62 -17
  21. package/lib/actions/sdk/generate.js.map +1 -1
  22. package/lib/actions/sdk/merge-source-tree.d.ts +12 -0
  23. package/lib/actions/sdk/merge-source-tree.js +78 -0
  24. package/lib/actions/sdk/merge-source-tree.js.map +1 -0
  25. package/lib/actions/sdk/quickstart.d.ts +6 -3
  26. package/lib/actions/sdk/quickstart.js +48 -26
  27. package/lib/actions/sdk/quickstart.js.map +1 -1
  28. package/lib/actions/sdk/save-changes.d.ts +8 -0
  29. package/lib/actions/sdk/save-changes.js +93 -0
  30. package/lib/actions/sdk/save-changes.js.map +1 -0
  31. package/lib/application/portal/toc/toc-structure-generator.d.ts +23 -2
  32. package/lib/application/portal/toc/toc-structure-generator.js +131 -60
  33. package/lib/application/portal/toc/toc-structure-generator.js.map +1 -1
  34. package/lib/commands/portal/recipe/new.js +2 -2
  35. package/lib/commands/portal/recipe/new.js.map +1 -1
  36. package/lib/commands/portal/toc/new.d.ts +5 -3
  37. package/lib/commands/portal/toc/new.js +34 -26
  38. package/lib/commands/portal/toc/new.js.map +1 -1
  39. package/lib/commands/quickstart.js +1 -1
  40. package/lib/commands/quickstart.js.map +1 -1
  41. package/lib/commands/sdk/generate.d.ts +4 -2
  42. package/lib/commands/sdk/generate.js +29 -11
  43. package/lib/commands/sdk/generate.js.map +1 -1
  44. package/lib/commands/sdk/save-changes.d.ts +14 -0
  45. package/lib/commands/sdk/save-changes.js +51 -0
  46. package/lib/commands/sdk/save-changes.js.map +1 -0
  47. package/lib/hooks/not-found.js +1 -1
  48. package/lib/hooks/not-found.js.map +1 -1
  49. package/lib/infrastructure/debounce-service.js +3 -0
  50. package/lib/infrastructure/debounce-service.js.map +1 -1
  51. package/lib/infrastructure/file-service.d.ts +6 -0
  52. package/lib/infrastructure/file-service.js +58 -1
  53. package/lib/infrastructure/file-service.js.map +1 -1
  54. package/lib/infrastructure/git-service.d.ts +15 -0
  55. package/lib/infrastructure/git-service.js +93 -0
  56. package/lib/infrastructure/git-service.js.map +1 -0
  57. package/lib/infrastructure/launcher-service.d.ts +2 -0
  58. package/lib/infrastructure/launcher-service.js +22 -1
  59. package/lib/infrastructure/launcher-service.js.map +1 -1
  60. package/lib/infrastructure/service-error.d.ts +13 -2
  61. package/lib/infrastructure/service-error.js +23 -9
  62. package/lib/infrastructure/service-error.js.map +1 -1
  63. package/lib/infrastructure/services/api-service.d.ts +2 -1
  64. package/lib/infrastructure/services/api-service.js +24 -0
  65. package/lib/infrastructure/services/api-service.js.map +1 -1
  66. package/lib/infrastructure/services/portal-service.d.ts +6 -4
  67. package/lib/infrastructure/services/portal-service.js +96 -59
  68. package/lib/infrastructure/services/portal-service.js.map +1 -1
  69. package/lib/infrastructure/services/validation-service.d.ts +28 -2
  70. package/lib/infrastructure/services/validation-service.js +108 -15
  71. package/lib/infrastructure/services/validation-service.js.map +1 -1
  72. package/lib/infrastructure/zip-service.js +1 -1
  73. package/lib/infrastructure/zip-service.js.map +1 -1
  74. package/lib/prompts/api/validate.d.ts +5 -2
  75. package/lib/prompts/api/validate.js +36 -0
  76. package/lib/prompts/api/validate.js.map +1 -1
  77. package/lib/prompts/format.d.ts +1 -1
  78. package/lib/prompts/format.js.map +1 -1
  79. package/lib/prompts/portal/generate.d.ts +1 -1
  80. package/lib/prompts/portal/generate.js +9 -3
  81. package/lib/prompts/portal/generate.js.map +1 -1
  82. package/lib/prompts/portal/quickstart.d.ts +3 -0
  83. package/lib/prompts/portal/quickstart.js +39 -2
  84. package/lib/prompts/portal/quickstart.js.map +1 -1
  85. package/lib/prompts/portal/toc/new-toc.d.ts +1 -1
  86. package/lib/prompts/portal/toc/new-toc.js +10 -2
  87. package/lib/prompts/portal/toc/new-toc.js.map +1 -1
  88. package/lib/prompts/sdk/generate.d.ts +11 -4
  89. package/lib/prompts/sdk/generate.js +37 -11
  90. package/lib/prompts/sdk/generate.js.map +1 -1
  91. package/lib/prompts/sdk/merge-source-tree.d.ts +22 -0
  92. package/lib/prompts/sdk/merge-source-tree.js +90 -0
  93. package/lib/prompts/sdk/merge-source-tree.js.map +1 -0
  94. package/lib/prompts/sdk/quickstart.d.ts +4 -1
  95. package/lib/prompts/sdk/quickstart.js +41 -4
  96. package/lib/prompts/sdk/quickstart.js.map +1 -1
  97. package/lib/prompts/sdk/save-changes.d.ts +21 -0
  98. package/lib/prompts/sdk/save-changes.js +84 -0
  99. package/lib/prompts/sdk/save-changes.js.map +1 -0
  100. package/lib/types/build/build.d.ts +2 -0
  101. package/lib/types/build/build.js.map +1 -1
  102. package/lib/types/build-context.d.ts +10 -0
  103. package/lib/types/build-context.js +71 -1
  104. package/lib/types/build-context.js.map +1 -1
  105. package/lib/types/events/sdk-changes-saved.d.ts +8 -0
  106. package/lib/types/events/sdk-changes-saved.js +11 -0
  107. package/lib/types/events/sdk-changes-saved.js.map +1 -0
  108. package/lib/types/events/sdk-changes-tracked.d.ts +8 -0
  109. package/lib/types/events/sdk-changes-tracked.js +11 -0
  110. package/lib/types/events/sdk-changes-tracked.js.map +1 -0
  111. package/lib/types/events/sdk-conflicts-resolved.d.ts +8 -0
  112. package/lib/types/events/sdk-conflicts-resolved.js +11 -0
  113. package/lib/types/events/sdk-conflicts-resolved.js.map +1 -0
  114. package/lib/types/file/directory.d.ts +10 -1
  115. package/lib/types/file/directory.js +63 -5
  116. package/lib/types/file/directory.js.map +1 -1
  117. package/lib/types/file/directoryPath.js.map +1 -1
  118. package/lib/types/merge-source-tree-context.d.ts +28 -0
  119. package/lib/types/merge-source-tree-context.js +62 -0
  120. package/lib/types/merge-source-tree-context.js.map +1 -0
  121. package/lib/types/save-changes-context.d.ts +17 -0
  122. package/lib/types/save-changes-context.js +42 -0
  123. package/lib/types/save-changes-context.js.map +1 -0
  124. package/lib/types/sdk-context.d.ts +5 -4
  125. package/lib/types/sdk-context.js +26 -13
  126. package/lib/types/sdk-context.js.map +1 -1
  127. package/lib/types/sdl/sdl.d.ts +20 -3
  128. package/lib/types/sdl/sdl.js +120 -22
  129. package/lib/types/sdl/sdl.js.map +1 -1
  130. package/lib/types/spec-context.js.map +1 -1
  131. package/lib/types/temp-context.js.map +1 -1
  132. package/lib/types/toc/toc.d.ts +31 -6
  133. package/lib/utils/string-utils.d.ts +1 -0
  134. package/lib/utils/string-utils.js +42 -0
  135. package/lib/utils/string-utils.js.map +1 -1
  136. package/package.json +3 -2
@@ -1,14 +1,13 @@
1
- import { ok } from "neverthrow";
2
- import { PortalNewTocPrompts } from "../../../prompts/portal/toc/new-toc.js";
3
- import { TocStructureGenerator } from "../../../application/portal/toc/toc-structure-generator.js";
4
- import { ActionResult } from "../../action-result.js";
5
- import { TocContext } from "../../../types/toc-context.js";
6
- import { FileService } from "../../../infrastructure/file-service.js";
7
- import { BuildContext } from "../../../types/build-context.js";
8
- import { getEndpointGroupsAndModels } from "../../../types/sdl/sdl.js";
9
- import { withDirPath } from "../../../infrastructure/tmp-extensions.js";
10
- import { TempContext } from "../../../types/temp-context.js";
11
- import { PortalService } from "../../../infrastructure/services/portal-service.js";
1
+ import { PortalNewTocPrompts } from '../../../prompts/portal/toc/new-toc.js';
2
+ import { TocStructureGenerator } from '../../../application/portal/toc/toc-structure-generator.js';
3
+ import { ActionResult } from '../../action-result.js';
4
+ import { TocContext } from '../../../types/toc-context.js';
5
+ import { FileService } from '../../../infrastructure/file-service.js';
6
+ import { BuildContext } from '../../../types/build-context.js';
7
+ import { extractCallbacksForToc, extractEndpointGroupsForToc, extractModelsForToc, extractWebhooksForToc } from '../../../types/sdl/sdl.js';
8
+ import { withDirPath } from '../../../infrastructure/tmp-extensions.js';
9
+ import { TempContext } from '../../../types/temp-context.js';
10
+ import { PortalService } from '../../../infrastructure/services/portal-service.js';
12
11
  export class ContentContext {
13
12
  constructor(contentDirectory) {
14
13
  this.contentDirectory = contentDirectory;
@@ -31,7 +30,7 @@ export class PortalNewTocAction {
31
30
  this.fileService = new FileService();
32
31
  this.portalService = new PortalService();
33
32
  }
34
- async execute(buildDirectory, tocDirectory, force = false, expandEndpoints = false, expandModels = false) {
33
+ async execute(buildDirectory, tocDirectory, force = false, expandEndpoints = false, expandModels = false, expandWebhooks = false, expandCallbacks = false) {
35
34
  var _a, _b;
36
35
  // Validate build directory
37
36
  const buildContext = new BuildContext(buildDirectory);
@@ -40,43 +39,43 @@ export class PortalNewTocAction {
40
39
  return ActionResult.failed();
41
40
  }
42
41
  const buildConfig = await buildContext.getBuildFileContents();
43
- const contentDirectory = buildDirectory.join((_b = (_a = buildConfig.generatePortal) === null || _a === void 0 ? void 0 : _a.contentFolder) !== null && _b !== void 0 ? _b : "content");
42
+ const contentDirectory = buildDirectory.join((_b = (_a = buildConfig.generatePortal) === null || _a === void 0 ? void 0 : _a.contentFolder) !== null && _b !== void 0 ? _b : 'content');
44
43
  const tocDir = tocDirectory !== null && tocDirectory !== void 0 ? tocDirectory : contentDirectory;
45
44
  const tocContext = new TocContext(tocDir);
46
45
  if (!force && (await tocContext.exists()) && !(await this.prompts.overwriteToc(tocContext.tocPath))) {
47
46
  this.prompts.tocFileAlreadyExists();
48
47
  return ActionResult.cancelled();
49
48
  }
50
- let sdlComponents = { endpointGroups: new Map(), models: [] };
51
- if (expandEndpoints || expandModels) {
52
- const specDirectory = buildDirectory.join("spec");
49
+ const sdlTocComponents = await (async () => {
50
+ const defaultComponents = {
51
+ endpointGroups: new Map(),
52
+ models: [],
53
+ webhookGroups: new Map(),
54
+ callbackGroups: new Map()
55
+ };
56
+ const specDirectory = buildDirectory.join('spec');
53
57
  if (!(await this.fileService.directoryExists(specDirectory))) {
54
58
  this.prompts.fallingBackToDefault();
59
+ return defaultComponents;
55
60
  }
56
- else {
57
- const sdlResult = await withDirPath(async (tempDirectory) => {
58
- const tempContext = new TempContext(tempDirectory);
59
- const specZipPath = await tempContext.zip(specDirectory);
60
- const specFileStream = await this.fileService.getStream(specZipPath);
61
- try {
62
- const result = await this.prompts.extractEndpointGroupsAndModels(this.portalService.generateSdl(specFileStream, this.configDirectory, this.commandMetadata));
63
- if (result.isErr()) {
64
- this.prompts.fallingBackToDefault();
65
- return ok({ endpointGroups: new Map(), models: [] });
66
- }
67
- return ok(getEndpointGroupsAndModels(result.value));
68
- }
69
- finally {
70
- specFileStream.close();
71
- }
72
- });
73
- if (sdlResult.isErr()) {
74
- this.prompts.logError(sdlResult.error);
75
- return ActionResult.failed();
61
+ return await withDirPath(async (tempDirectory) => {
62
+ const tempContext = new TempContext(tempDirectory);
63
+ const specZipPath = await tempContext.zip(specDirectory);
64
+ const specFileStream = await this.fileService.getStream(specZipPath);
65
+ const result = await this.prompts.extractComponents(this.portalService.generateSdl(specFileStream, this.configDirectory, this.commandMetadata), expandEndpoints, expandModels, expandWebhooks, expandCallbacks);
66
+ specFileStream.close();
67
+ if (result.isErr()) {
68
+ this.prompts.fallingBackToDefault();
69
+ return defaultComponents;
76
70
  }
77
- sdlComponents = sdlResult.value;
78
- }
79
- }
71
+ return {
72
+ endpointGroups: extractEndpointGroupsForToc(result.value),
73
+ models: extractModelsForToc(result.value),
74
+ webhookGroups: extractWebhooksForToc(result.value),
75
+ callbackGroups: extractCallbacksForToc(result.value)
76
+ };
77
+ });
78
+ })();
80
79
  const contentContext = new ContentContext(contentDirectory);
81
80
  const contentExists = await contentContext.exists();
82
81
  let contentGroups;
@@ -87,7 +86,7 @@ export class PortalNewTocAction {
87
86
  else {
88
87
  contentGroups = await contentContext.extractContentGroups();
89
88
  }
90
- const toc = this.tocGenerator.createTocStructure(sdlComponents.endpointGroups, sdlComponents.models, expandEndpoints, expandModels, contentGroups);
89
+ const toc = this.tocGenerator.createTocStructure({ data: sdlTocComponents.endpointGroups, expand: expandEndpoints }, { data: sdlTocComponents.models, expand: expandModels }, { data: sdlTocComponents.webhookGroups, expand: expandWebhooks }, { data: sdlTocComponents.callbackGroups, expand: expandCallbacks }, contentGroups);
91
90
  const yamlString = this.tocGenerator.transformToYaml(toc);
92
91
  const tocFilePath = await tocContext.save(yamlString);
93
92
  this.prompts.tocCreated(tocFilePath);
@@ -1 +1 @@
1
- {"version":3,"file":"new-toc.js","sourceRoot":"","sources":["../../../../src/actions/portal/toc/new-toc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"new-toc.js","sourceRoot":"","sources":["../../../../src/actions/portal/toc/new-toc.ts"],"names":[],"mappings":"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"}
@@ -9,5 +9,8 @@ export declare class GenerateAction {
9
9
  private readonly commandMetadata;
10
10
  private readonly authKey;
11
11
  constructor(configDir: DirectoryPath, commandMetadata: CommandMetadata, authKey?: string | null);
12
- readonly execute: (specDirectory: DirectoryPath, sdkDirectory: DirectoryPath, language: Language, force: boolean, zipSdk: boolean) => Promise<ActionResult>;
12
+ readonly execute: (buildDirectory: DirectoryPath, destinationSdkDirectory: DirectoryPath, language: Language, force: boolean, zipSdk: boolean, skipChanges: boolean, trackChanges: boolean, apiVersion?: string) => Promise<ActionResult<{
13
+ sourceTreeTrackingInitiated: boolean;
14
+ conflictsResolved: boolean;
15
+ }>>;
13
16
  }
@@ -2,41 +2,86 @@ import { PortalService } from "../../infrastructure/services/portal-service.js";
2
2
  import { ActionResult } from "../action-result.js";
3
3
  import { withDirPath } from "../../infrastructure/tmp-extensions.js";
4
4
  import { SdkContext } from "../../types/sdk-context.js";
5
- import { SpecContext } from "../../types/spec-context.js";
6
5
  import { SdkGeneratePrompts } from "../../prompts/sdk/generate.js";
7
6
  import { TempContext } from "../../types/temp-context.js";
7
+ import { MergeSourceTreeAction } from "./merge-source-tree.js";
8
+ import { BuildContext } from "../../types/build-context.js";
8
9
  export class GenerateAction {
9
10
  constructor(configDir, commandMetadata, authKey = null) {
10
11
  this.prompts = new SdkGeneratePrompts();
11
12
  this.portalService = new PortalService();
12
- this.execute = async (specDirectory, sdkDirectory, language, force, zipSdk) => {
13
- if (specDirectory.isEqual(sdkDirectory)) {
14
- this.prompts.sameSpecAndSdkDir(specDirectory);
13
+ this.execute = async (buildDirectory, destinationSdkDirectory, language, force, zipSdk, skipChanges, trackChanges, apiVersion) => {
14
+ if (buildDirectory.isEqual(destinationSdkDirectory)) {
15
+ this.prompts.sameBuildAndSdkDir(buildDirectory);
15
16
  return ActionResult.failed();
16
17
  }
17
- const specContext = new SpecContext(specDirectory);
18
- if (!(await specContext.validate())) {
19
- this.prompts.invalidSpecDirectory(specDirectory);
18
+ const rootBuildContext = new BuildContext(buildDirectory);
19
+ if (!(await rootBuildContext.exists())) {
20
+ this.prompts.srcDirectoryEmpty(buildDirectory);
20
21
  return ActionResult.failed();
21
22
  }
22
- const sdkContext = new SdkContext(sdkDirectory, language);
23
- if (!force && (await sdkContext.exists()) && !(await this.prompts.overwriteSdk(sdkContext.sdkLanguageDirectory))) {
23
+ const versionedContextGetter = async () => {
24
+ if (!await rootBuildContext.isVersionedBuild()) {
25
+ if (apiVersion)
26
+ this.prompts.apiVersionOnlyApplicableWithVersionedBuild();
27
+ return { version: undefined, buildContext: rootBuildContext };
28
+ }
29
+ const versionedBuildDirectory = await rootBuildContext.getVersionedBuildDirectory();
30
+ if (!versionedBuildDirectory) {
31
+ this.prompts.invalidVersionedDocsDirectory(buildDirectory);
32
+ return ActionResult.failed();
33
+ }
34
+ const singleVersionedBuildDirectory = await rootBuildContext.getSingleVersionedBuildDirectory();
35
+ if (!apiVersion && singleVersionedBuildDirectory) {
36
+ return {
37
+ version: singleVersionedBuildDirectory.leafName(),
38
+ buildContext: new BuildContext(singleVersionedBuildDirectory)
39
+ };
40
+ }
41
+ const selectedVersionedBuildDirectory = await rootBuildContext.getSelectedVersionedBuildDirectory(apiVersion ? async () => apiVersion : this.prompts.selectVersion);
42
+ if (!selectedVersionedBuildDirectory) {
43
+ this.prompts.versionNotFound();
44
+ return ActionResult.failed();
45
+ }
46
+ return {
47
+ version: selectedVersionedBuildDirectory.leafName(),
48
+ buildContext: new BuildContext(selectedVersionedBuildDirectory)
49
+ };
50
+ };
51
+ const versionedContext = await versionedContextGetter();
52
+ if (versionedContext instanceof ActionResult) {
53
+ return versionedContext;
54
+ }
55
+ const { version, buildContext } = versionedContext;
56
+ if (!(await buildContext.getSpecContext().validate())) {
57
+ this.prompts.specDirectoryEmpty(buildDirectory);
58
+ return ActionResult.failed();
59
+ }
60
+ const hasSdkSourceTree = await buildContext.hasSdkSourceTree(language);
61
+ const sdkContext = new SdkContext(language, destinationSdkDirectory, skipChanges && hasSdkSourceTree, version);
62
+ if (!force && await sdkContext.exists() && !(await this.prompts.overwriteSdk(destinationSdkDirectory))) {
24
63
  this.prompts.destinationDirNotEmpty();
25
64
  return ActionResult.cancelled();
26
65
  }
27
66
  return await withDirPath(async (tempDirectory) => {
28
67
  const tempContext = new TempContext(tempDirectory);
29
- const specZipPath = await tempContext.zip(specDirectory);
30
- const response = await this.prompts.generateSDK(this.portalService.generateSdk(specZipPath, language, this.configDir, this.commandMetadata, this.authKey));
31
- // TODO: this should be service error
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));
32
70
  if (response.isErr()) {
33
- this.prompts.logGenerationError(response.error);
71
+ this.prompts.sdkGenerationServiceError(response.error);
34
72
  return ActionResult.failed();
35
73
  }
36
- const tempSdkFilePath = await tempContext.save(response.value);
37
- const sdkLanguageDirectory = await sdkContext.save(tempSdkFilePath, zipSdk);
38
- this.prompts.sdkGenerated(sdkLanguageDirectory);
39
- return ActionResult.success();
74
+ const responseSdkZipPath = await tempContext.save(response.value.sdk);
75
+ const tempSdk = await sdkContext.loadSdkInTempDirectory(tempDirectory, responseSdkZipPath);
76
+ if (!trackChanges && !hasSdkSourceTree) {
77
+ this.prompts.sdkGenerated(await sdkContext.save(tempSdk, zipSdk));
78
+ return ActionResult.success();
79
+ }
80
+ const sdkSourceTreeTempFilePath = await tempContext.save(response.value.sdkSourceTree);
81
+ const tempSdkWithSourceTree = await sdkContext.loadSdkWithSourceTreeInTempDirectory(tempDirectory, responseSdkZipPath, sdkSourceTreeTempFilePath);
82
+ const destinationSourceTreePath = buildContext.getSdkSourceTree(language);
83
+ const mergeSourceTree = new MergeSourceTreeAction();
84
+ return await mergeSourceTree.execute(tempSdkWithSourceTree, tempSdk, destinationSourceTreePath, trackChanges, skipChanges, hasSdkSourceTree, language, destinationSdkDirectory, version, zipSdk);
40
85
  });
41
86
  };
42
87
  this.configDir = configDir;
@@ -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,12 @@
1
+ import { DirectoryPath } from "../../types/file/directoryPath.js";
2
+ import { FilePath } from "../../types/file/filePath.js";
3
+ import { Language } from "../../types/sdk/generate.js";
4
+ import { ActionResult } from "../action-result.js";
5
+ export declare class MergeSourceTreeAction {
6
+ private readonly prompts;
7
+ private readonly launcherService;
8
+ readonly execute: (sdkWithSourceTree: DirectoryPath, sdkWithoutSourceTree: DirectoryPath, destinationSourceTreePath: FilePath, trackChanges: boolean, skipChanges: boolean, hasSdkSourceTree: boolean, language: Language, outputSdkDirectory: DirectoryPath, version: string | undefined, zipSdk: boolean) => Promise<ActionResult<{
9
+ sourceTreeTrackingInitiated: boolean;
10
+ conflictsResolved: boolean;
11
+ }>>;
12
+ }
@@ -0,0 +1,78 @@
1
+ import { LauncherService } from "../../infrastructure/launcher-service.js";
2
+ import { MergeSourceTreePrompts } from "../../prompts/sdk/merge-source-tree.js";
3
+ import { ActionResult } from "../action-result.js";
4
+ import isInCi from "is-in-ci";
5
+ import { MergeSourceTreeContext } from "../../types/merge-source-tree-context.js";
6
+ import { SdkContext } from "../../types/sdk-context.js";
7
+ export class MergeSourceTreeAction {
8
+ constructor() {
9
+ this.prompts = new MergeSourceTreePrompts();
10
+ this.launcherService = new LauncherService();
11
+ this.execute = async (sdkWithSourceTree, sdkWithoutSourceTree, destinationSourceTreePath, trackChanges, skipChanges, hasSdkSourceTree, language, outputSdkDirectory, version, zipSdk) => {
12
+ const mergeSourceTreeContext = new MergeSourceTreeContext(sdkWithSourceTree, sdkWithoutSourceTree, destinationSourceTreePath, trackChanges, skipChanges, hasSdkSourceTree);
13
+ const sdkContext = new SdkContext(language, outputSdkDirectory, skipChanges && hasSdkSourceTree, version);
14
+ const saveSdk = async () => await sdkContext.save(sdkWithoutSourceTree, zipSdk);
15
+ const { hasSkippedChangesEnabled, hasSkippedCustomizations } = await mergeSourceTreeContext.saveSkippingChanges();
16
+ if (hasSkippedCustomizations) {
17
+ this.prompts.successfullySkippedChanges(language);
18
+ this.prompts.sdkGenerated(await saveSdk());
19
+ return ActionResult.success();
20
+ }
21
+ if (hasSkippedChangesEnabled) {
22
+ this.prompts.sdkGenerated(await saveSdk());
23
+ return ActionResult.success();
24
+ }
25
+ const { hasSourceTreeTracked, hasSourceTreeAlreadyTracked, hasAppliedCustomizations } = await mergeSourceTreeContext.saveWithoutConflicts();
26
+ if (hasAppliedCustomizations) {
27
+ this.prompts.successfullyAppliedChanges(language);
28
+ this.prompts.sdkGeneratedWithSourceTree(await saveSdk(), destinationSourceTreePath);
29
+ return ActionResult.success();
30
+ }
31
+ if (hasSourceTreeAlreadyTracked) {
32
+ this.prompts.changeTrackingAlreadyEnabled(language);
33
+ this.prompts.sdkGeneratedWithSourceTree(await saveSdk(), destinationSourceTreePath);
34
+ return ActionResult.success();
35
+ }
36
+ if (hasSourceTreeTracked) {
37
+ this.prompts.sdkGenerated(await saveSdk());
38
+ this.prompts.changeTrackingEnabled(language, destinationSourceTreePath);
39
+ return ActionResult.success({ sourceTreeTrackingInitiated: true, conflictsResolved: false });
40
+ }
41
+ this.prompts.startApplyingConflictedChanges(language);
42
+ let conflictedFilesDirectory = await mergeSourceTreeContext.getConflictedFilesDirectory();
43
+ if (isInCi) {
44
+ this.prompts.conflictsDetectedInCi(language, conflictedFilesDirectory);
45
+ return ActionResult.failed();
46
+ }
47
+ while (!conflictedFilesDirectory.isEmpty()) {
48
+ this.prompts.conflictsDetected(conflictedFilesDirectory);
49
+ if (!await this.prompts.resolveNowOrAbandon()) {
50
+ this.prompts.mergeAbandoned(language);
51
+ return ActionResult.failed();
52
+ }
53
+ if (await this.launcherService.isIdeAvailable()) {
54
+ this.prompts.openingVsCodeForConflictResolution(language);
55
+ await this.launcherService.openFolderInIdeWithWait(sdkWithSourceTree, conflictedFilesDirectory.getAllFiles());
56
+ }
57
+ else {
58
+ this.prompts.openFilesForConflictResolution(language, sdkWithSourceTree);
59
+ }
60
+ const response = await this.prompts.confirmConflictsResolved();
61
+ if (response === "cancelled") {
62
+ this.prompts.mergeAbandoned(language);
63
+ return ActionResult.failed();
64
+ }
65
+ if (response === "resolved") {
66
+ break;
67
+ }
68
+ conflictedFilesDirectory = await mergeSourceTreeContext.getConflictedFilesDirectory();
69
+ }
70
+ await mergeSourceTreeContext.saveWithResolvedConflicts();
71
+ this.prompts.conflictsResolved(language);
72
+ this.prompts.sdkGeneratedWithSourceTree(await saveSdk(), destinationSourceTreePath);
73
+ await mergeSourceTreeContext.cleanUp(() => this.prompts.directoryStillOpen(sdkWithSourceTree));
74
+ return ActionResult.success({ sourceTreeTrackingInitiated: false, conflictsResolved: true });
75
+ };
76
+ }
77
+ }
78
+ //# sourceMappingURL=merge-source-tree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-source-tree.js","sourceRoot":"","sources":["../../../src/actions/sdk/merge-source-tree.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAEhF,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,MAAM,OAAO,qBAAqB;IAAlC;QACmB,YAAO,GAAG,IAAI,sBAAsB,EAAE,CAAC;QACvC,oBAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAEzC,YAAO,GAAG,KAAK,EAC7B,iBAAgC,EAChC,oBAAmC,EACnC,yBAAmC,EACnC,YAAqB,EACrB,WAAoB,EACpB,gBAAyB,EACzB,QAAkB,EAClB,kBAAiC,EACjC,OAA2B,EAC3B,MAAe,EAC4E,EAAE;YAC7F,MAAM,sBAAsB,GAAG,IAAI,sBAAsB,CACvD,iBAAiB,EAAE,oBAAoB,EAAE,yBAAyB,EAClE,YAAY,EAAE,WAAW,EAAE,gBAAgB,CAC5C,CAAC;YACF,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,QAAQ,EAAE,kBAAkB,EAAE,WAAW,IAAI,gBAAgB,EAAE,OAAO,CAAC,CAAC;YAC1G,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;YAEhF,MAAM,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,GAAG,MAAM,sBAAsB,CAAC,mBAAmB,EAAE,CAAC;YAClH,IAAI,wBAAwB,EAAE,CAAC;gBAC7B,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;gBAClD,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;gBAC3C,OAAO,YAAY,CAAC,OAAO,EAAE,CAAC;YAChC,CAAC;YACD,IAAI,wBAAwB,EAAE,CAAC;gBAC7B,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;gBAC3C,OAAO,YAAY,CAAC,OAAO,EAAE,CAAC;YAChC,CAAC;YAED,MAAM,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,wBAAwB,EAAE,GAAG,MAAM,sBAAsB,CAAC,oBAAoB,EAAE,CAAC;YAC5I,IAAI,wBAAwB,EAAE,CAAC;gBAC7B,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;gBAClD,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,MAAM,OAAO,EAAE,EAAE,yBAAyB,CAAC,CAAC;gBACpF,OAAO,YAAY,CAAC,OAAO,EAAE,CAAC;YAChC,CAAC;YACD,IAAI,2BAA2B,EAAE,CAAC;gBAChC,IAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC;gBACpD,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,MAAM,OAAO,EAAE,EAAE,yBAAyB,CAAC,CAAC;gBACpF,OAAO,YAAY,CAAC,OAAO,EAAE,CAAC;YAChC,CAAC;YACD,IAAI,oBAAoB,EAAE,CAAC;gBACzB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;gBAC3C,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,QAAQ,EAAE,yBAAyB,CAAC,CAAC;gBACxE,OAAO,YAAY,CAAC,OAAO,CAAC,EAAC,2BAA2B,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAC,CAAC,CAAC;YAC7F,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,8BAA8B,CAAC,QAAQ,CAAC,CAAC;YAEtD,IAAI,wBAAwB,GAAG,MAAM,sBAAsB,CAAC,2BAA2B,EAAE,CAAC;YAE1F,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC;gBACvE,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;YAC/B,CAAC;YAED,OAAO,CAAC,wBAAwB,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC3C,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,CAAC;gBAEzD,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;oBAC9C,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;oBACtC,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;gBAC/B,CAAC;gBAED,IAAI,MAAM,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,EAAE,CAAC;oBAChD,IAAI,CAAC,OAAO,CAAC,kCAAkC,CAAC,QAAQ,CAAC,CAAC;oBAC1D,MAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,iBAAiB,EAAE,wBAAwB,CAAC,WAAW,EAAE,CAAC,CAAA;gBAC/G,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,OAAO,CAAC,8BAA8B,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;gBAC3E,CAAC;gBAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE,CAAC;gBAE/D,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;oBAC7B,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;oBACtC,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC;gBAC/B,CAAC;gBAED,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;oBAC5B,MAAM;gBACR,CAAC;gBAED,wBAAwB,GAAG,MAAM,sBAAsB,CAAC,2BAA2B,EAAE,CAAC;YACxF,CAAC;YAED,MAAM,sBAAsB,CAAC,yBAAyB,EAAE,CAAC;YACzD,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,MAAM,OAAO,EAAE,EAAE,yBAAyB,CAAC,CAAC;YAEpF,MAAM,sBAAsB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC/F,OAAO,YAAY,CAAC,OAAO,CAAC,EAAC,2BAA2B,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAC,CAAC,CAAC;QAC7F,CAAC,CAAC;IACJ,CAAC;CAAA"}
@@ -1,6 +1,6 @@
1
- import { ActionResult } from "../action-result.js";
2
- import { CommandMetadata } from "../../types/common/command-metadata.js";
3
- import { DirectoryPath } from "../../types/file/directoryPath.js";
1
+ import { ActionResult } from '../action-result.js';
2
+ import { CommandMetadata } from '../../types/common/command-metadata.js';
3
+ import { DirectoryPath } from '../../types/file/directoryPath.js';
4
4
  export declare class SdkQuickstartAction {
5
5
  private readonly configDir;
6
6
  private readonly commandMetadata;
@@ -9,6 +9,9 @@ export declare class SdkQuickstartAction {
9
9
  private readonly fileService;
10
10
  private readonly launcherService;
11
11
  private readonly zipService;
12
+ private readonly validationService;
13
+ private readonly metadataFileUrl;
14
+ private readonly defaultSpecUrl;
12
15
  constructor(configDir: DirectoryPath, commandMetadata: CommandMetadata);
13
16
  readonly execute: () => Promise<ActionResult>;
14
17
  }
@@ -1,20 +1,19 @@
1
- import { SdkQuickstartPrompts } from "../../prompts/sdk/quickstart.js";
2
- import { ActionResult } from "../action-result.js";
3
- import { UrlPath } from "../../types/file/urlPath.js";
4
- import { LoginAction } from "../auth/login.js";
5
- import { getAuthInfo } from "../../client-utils/auth-manager.js";
6
- import { withDirPath } from "../../infrastructure/tmp-extensions.js";
7
- import { FilePath } from "../../types/file/filePath.js";
8
- import { SpecContext } from "../../types/spec-context.js";
9
- import { ValidateAction } from "../api/validate.js";
10
- import { FileDownloadService } from "../../infrastructure/services/file-download-service.js";
11
- import { FileService } from "../../infrastructure/file-service.js";
12
- import { GenerateAction } from "./generate.js";
13
- import { LauncherService } from "../../infrastructure/launcher-service.js";
14
- import { ZipService } from "../../infrastructure/zip-service.js";
15
- import { FileName } from "../../types/file/fileName.js";
16
- const defaultSpecUrl = new UrlPath(`https://raw.githubusercontent.com/apimatic/sample-docs-as-code-portal/refs/heads/master/src/spec/openapi.json`);
17
- const metadataFileUrl = new UrlPath(`https://raw.githubusercontent.com/apimatic/sample-docs-as-code-portal/refs/heads/master/src/spec/APIMATIC-META.json`);
1
+ import { SdkQuickstartPrompts } from '../../prompts/sdk/quickstart.js';
2
+ import { ActionResult } from '../action-result.js';
3
+ import { UrlPath } from '../../types/file/urlPath.js';
4
+ import { LoginAction } from '../auth/login.js';
5
+ import { getAuthInfo } from '../../client-utils/auth-manager.js';
6
+ import { withDirPath } from '../../infrastructure/tmp-extensions.js';
7
+ import { FilePath } from '../../types/file/filePath.js';
8
+ import { SpecContext } from '../../types/spec-context.js';
9
+ import { ValidateAction } from '../api/validate.js';
10
+ import { FileDownloadService } from '../../infrastructure/services/file-download-service.js';
11
+ import { FileService } from '../../infrastructure/file-service.js';
12
+ import { GenerateAction } from './generate.js';
13
+ import { LauncherService } from '../../infrastructure/launcher-service.js';
14
+ import { ZipService } from '../../infrastructure/zip-service.js';
15
+ import { FileName } from '../../types/file/fileName.js';
16
+ import { ValidationService } from '../../infrastructure/services/validation-service.js';
18
17
  export class SdkQuickstartAction {
19
18
  constructor(configDir, commandMetadata) {
20
19
  this.configDir = configDir;
@@ -24,6 +23,9 @@ export class SdkQuickstartAction {
24
23
  this.fileService = new FileService();
25
24
  this.launcherService = new LauncherService();
26
25
  this.zipService = new ZipService();
26
+ this.validationService = new ValidationService(this.configDir);
27
+ this.metadataFileUrl = new UrlPath(`https://raw.githubusercontent.com/apimatic/sample-docs-as-code-portal/refs/heads/master/src/spec/APIMATIC-META.json`);
28
+ this.defaultSpecUrl = new UrlPath(`https://raw.githubusercontent.com/apimatic/sample-docs-as-code-portal/refs/heads/master/src/spec/openapi.json`);
27
29
  this.execute = async () => {
28
30
  const storedAuth = await getAuthInfo(this.configDir.toString());
29
31
  if (!(storedAuth === null || storedAuth === void 0 ? void 0 : storedAuth.authKey)) {
@@ -33,11 +35,12 @@ export class SdkQuickstartAction {
33
35
  }
34
36
  }
35
37
  return await withDirPath(async (tempDirectory) => {
38
+ var _a;
36
39
  // Step 1/4
37
40
  this.prompts.importSpecStep();
38
41
  let specPath;
39
42
  while (!specPath) {
40
- const inputPath = await this.prompts.specPathPrompt(defaultSpecUrl);
43
+ const inputPath = await this.prompts.specPathPrompt(this.defaultSpecUrl);
41
44
  if (!inputPath) {
42
45
  this.prompts.noSpecSpecified();
43
46
  return ActionResult.cancelled();
@@ -72,7 +75,7 @@ export class SdkQuickstartAction {
72
75
  this.prompts.fixYourSpec();
73
76
  return ActionResult.cancelled();
74
77
  }
75
- const downloadFileResult = await this.prompts.downloadSpecFile(this.fileDownloadService.downloadFile(defaultSpecUrl));
78
+ const downloadFileResult = await this.prompts.downloadSpecFile(this.fileDownloadService.downloadFile(this.defaultSpecUrl));
76
79
  if (downloadFileResult.isErr()) {
77
80
  this.prompts.serviceError(downloadFileResult.error);
78
81
  }
@@ -81,6 +84,25 @@ export class SdkQuickstartAction {
81
84
  specPath = await specContext.save(downloadFileResult.value.stream, downloadFileResult.value.filename);
82
85
  }
83
86
  }
87
+ if (validationResult.isSuccess()) {
88
+ const unallowed = validationResult.getValue();
89
+ if (unallowed && (((_a = unallowed.Features) === null || _a === void 0 ? void 0 : _a.length) > 0 || unallowed.EndpointCount > unallowed.EndpointLimit)) {
90
+ const config = {
91
+ features: unallowed.Features.filter((name) => !!name),
92
+ endpointsToKeep: unallowed.EndpointLimit
93
+ };
94
+ const stripUnallowedFeaturesResult = await this.validationService.stripUnallowedFeatures(specPath, config);
95
+ if (stripUnallowedFeaturesResult.isErr()) {
96
+ this.prompts.splitSpecDetected(unallowed);
97
+ return ActionResult.failed();
98
+ }
99
+ else {
100
+ this.prompts.stripUnallowedFeaturesStep(unallowed);
101
+ const specContext = new SpecContext(tempDirectory);
102
+ specPath = await specContext.save(stripUnallowedFeaturesResult.value, new FileName('pruned-spec.zip'));
103
+ }
104
+ }
105
+ }
84
106
  // Step 3/4
85
107
  this.prompts.selectLanguageStep();
86
108
  const language = await this.prompts.selectLanguagePrompt();
@@ -109,12 +131,12 @@ export class SdkQuickstartAction {
109
131
  break;
110
132
  }
111
133
  // Setup source directory with the spec folder
112
- const apimaticMetaFile = await this.prompts.downloadMetadataFile(this.fileDownloadService.downloadFile(metadataFileUrl));
134
+ const apimaticMetaFile = await this.prompts.downloadMetadataFile(this.fileDownloadService.downloadFile(this.metadataFileUrl));
113
135
  if (apimaticMetaFile.isErr()) {
114
136
  this.prompts.serviceError(apimaticMetaFile.error);
115
137
  return ActionResult.failed();
116
138
  }
117
- const tempSpecDirectory = tempDirectory.join("spec");
139
+ const tempSpecDirectory = tempDirectory.join('spec');
118
140
  await this.fileService.createDirectoryIfNotExists(tempSpecDirectory);
119
141
  const metadataFilePath = new FilePath(tempSpecDirectory, apimaticMetaFile.value.filename);
120
142
  await this.fileService.writeFile(metadataFilePath, apimaticMetaFile.value.stream);
@@ -124,19 +146,19 @@ export class SdkQuickstartAction {
124
146
  else {
125
147
  await this.fileService.copyToDir(specPath, tempSpecDirectory);
126
148
  }
127
- const sourceDirectory = inputDirectory.join("src");
128
- const specDirectory = sourceDirectory.join("spec");
149
+ const sourceDirectory = inputDirectory.join('src');
150
+ const specDirectory = sourceDirectory.join('spec');
129
151
  await this.fileService.copyDirectoryContents(tempSpecDirectory, specDirectory);
130
152
  const srcDirectoryStructure = await this.fileService.getDirectory(sourceDirectory);
131
153
  this.prompts.printDirectoryStructure(inputDirectory, srcDirectoryStructure);
132
- const sdkDirectory = inputDirectory.join("sdk");
154
+ const sdkDirectory = inputDirectory.join('sdk');
133
155
  const sdkGenerateAction = new GenerateAction(this.configDir, this.commandMetadata);
134
- const result = await sdkGenerateAction.execute(specDirectory, sdkDirectory, language, true, false);
156
+ const result = await sdkGenerateAction.execute(sourceDirectory, sdkDirectory, language, true, false, false, false);
135
157
  if (result.isFailed()) {
136
158
  return ActionResult.failed();
137
159
  }
138
160
  const languageDirectory = sdkDirectory.join(language);
139
- const readmeFilePath = new FilePath(languageDirectory, new FileName("README.md"));
161
+ const readmeFilePath = new FilePath(languageDirectory, new FileName('README.md'));
140
162
  if (await this.launcherService.openFolderInIde(languageDirectory, readmeFilePath)) {
141
163
  this.prompts.sdkOpenedInEditor();
142
164
  }
@@ -1 +1 @@
1
- {"version":3,"file":"quickstart.js","sourceRoot":"","sources":["../../../src/actions/sdk/quickstart.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quickstart.js","sourceRoot":"","sources":["../../../src/actions/sdk/quickstart.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { DirectoryPath } from "../../types/file/directoryPath.js";
2
+ import { ActionResult } from "../action-result.js";
3
+ import { Language } from "../../types/sdk/generate.js";
4
+ export declare class SaveChangesAction {
5
+ private readonly prompts;
6
+ private readonly launcherService;
7
+ readonly execute: (workingDirectory: DirectoryPath, buildDirectory: DirectoryPath, sdkDirectory: DirectoryPath | undefined, language: Language, apiVersion?: string) => Promise<ActionResult>;
8
+ }