@apimatic/cli 1.1.0-beta.8 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/README.md +117 -13
  2. package/lib/actions/portal/copilot.d.ts +1 -0
  3. package/lib/actions/portal/copilot.js +12 -12
  4. package/lib/actions/portal/copilot.js.map +1 -1
  5. package/lib/actions/portal/generate.js +7 -1
  6. package/lib/actions/portal/generate.js.map +1 -1
  7. package/lib/actions/portal/quickstart.d.ts +1 -0
  8. package/lib/actions/portal/quickstart.js +40 -6
  9. package/lib/actions/portal/quickstart.js.map +1 -1
  10. package/lib/actions/portal/serve.d.ts +1 -0
  11. package/lib/actions/portal/serve.js +77 -20
  12. package/lib/actions/portal/serve.js.map +1 -1
  13. package/lib/actions/portal/toc/new-toc.js +8 -20
  14. package/lib/actions/portal/toc/new-toc.js.map +1 -1
  15. package/lib/actions/publishing/profile/list.d.ts +11 -0
  16. package/lib/actions/publishing/profile/list.js +29 -0
  17. package/lib/actions/publishing/profile/list.js.map +1 -0
  18. package/lib/actions/sdk/generate.d.ts +9 -5
  19. package/lib/actions/sdk/generate.js +76 -30
  20. package/lib/actions/sdk/generate.js.map +1 -1
  21. package/lib/actions/sdk/merge-source-tree.d.ts +12 -0
  22. package/lib/actions/sdk/merge-source-tree.js +78 -0
  23. package/lib/actions/sdk/merge-source-tree.js.map +1 -0
  24. package/lib/actions/sdk/publish/interactive.d.ts +13 -0
  25. package/lib/actions/sdk/publish/interactive.js +105 -0
  26. package/lib/actions/sdk/publish/interactive.js.map +1 -0
  27. package/lib/actions/sdk/publish/non-interactive.d.ts +14 -0
  28. package/lib/actions/sdk/publish/non-interactive.js +101 -0
  29. package/lib/actions/sdk/publish/non-interactive.js.map +1 -0
  30. package/lib/actions/sdk/publish.d.ts +18 -0
  31. package/lib/actions/sdk/publish.js +56 -0
  32. package/lib/actions/sdk/publish.js.map +1 -0
  33. package/lib/actions/sdk/quickstart.js +2 -1
  34. package/lib/actions/sdk/quickstart.js.map +1 -1
  35. package/lib/actions/sdk/save-changes.d.ts +8 -0
  36. package/lib/actions/sdk/save-changes.js +93 -0
  37. package/lib/actions/sdk/save-changes.js.map +1 -0
  38. package/lib/application/portal/recipe/recipe-generator.js +14 -29
  39. package/lib/application/portal/recipe/recipe-generator.js.map +1 -1
  40. package/lib/application/portal/toc/toc-structure-generator.d.ts +3 -19
  41. package/lib/application/portal/toc/toc-structure-generator.js +43 -33
  42. package/lib/application/portal/toc/toc-structure-generator.js.map +1 -1
  43. package/lib/commands/portal/recipe/new.js +2 -2
  44. package/lib/commands/portal/recipe/new.js.map +1 -1
  45. package/lib/commands/portal/serve.js +3 -3
  46. package/lib/commands/portal/serve.js.map +1 -1
  47. package/lib/commands/portal/toc/new.js +2 -2
  48. package/lib/commands/portal/toc/new.js.map +1 -1
  49. package/lib/commands/publishing/profile/list.d.ts +9 -0
  50. package/lib/commands/publishing/profile/list.js +28 -0
  51. package/lib/commands/publishing/profile/list.js.map +1 -0
  52. package/lib/commands/quickstart.js +1 -1
  53. package/lib/commands/quickstart.js.map +1 -1
  54. package/lib/commands/sdk/generate.d.ts +7 -2
  55. package/lib/commands/sdk/generate.js +37 -9
  56. package/lib/commands/sdk/generate.js.map +1 -1
  57. package/lib/commands/sdk/publish.d.ts +18 -0
  58. package/lib/commands/sdk/publish.js +73 -0
  59. package/lib/commands/sdk/publish.js.map +1 -0
  60. package/lib/commands/sdk/save-changes.d.ts +14 -0
  61. package/lib/commands/sdk/save-changes.js +51 -0
  62. package/lib/commands/sdk/save-changes.js.map +1 -0
  63. package/lib/hooks/not-found.js +1 -1
  64. package/lib/hooks/not-found.js.map +1 -1
  65. package/lib/infrastructure/debounce-service.js +3 -0
  66. package/lib/infrastructure/debounce-service.js.map +1 -1
  67. package/lib/infrastructure/env-info.d.ts +2 -0
  68. package/lib/infrastructure/env-info.js +23 -12
  69. package/lib/infrastructure/env-info.js.map +1 -1
  70. package/lib/infrastructure/file-service.d.ts +9 -0
  71. package/lib/infrastructure/file-service.js +94 -5
  72. package/lib/infrastructure/file-service.js.map +1 -1
  73. package/lib/infrastructure/git-service.d.ts +14 -0
  74. package/lib/infrastructure/git-service.js +90 -0
  75. package/lib/infrastructure/git-service.js.map +1 -0
  76. package/lib/infrastructure/launcher-service.d.ts +5 -0
  77. package/lib/infrastructure/launcher-service.js +35 -2
  78. package/lib/infrastructure/launcher-service.js.map +1 -1
  79. package/lib/infrastructure/os-extensions.d.ts +2 -0
  80. package/lib/infrastructure/os-extensions.js +6 -0
  81. package/lib/infrastructure/os-extensions.js.map +1 -0
  82. package/lib/infrastructure/service-error.d.ts +14 -2
  83. package/lib/infrastructure/service-error.js +26 -9
  84. package/lib/infrastructure/service-error.js.map +1 -1
  85. package/lib/infrastructure/services/api-service.d.ts +1 -0
  86. package/lib/infrastructure/services/api-service.js +26 -2
  87. package/lib/infrastructure/services/api-service.js.map +1 -1
  88. package/lib/infrastructure/services/portal-service.d.ts +11 -2
  89. package/lib/infrastructure/services/portal-service.js +123 -18
  90. package/lib/infrastructure/services/portal-service.js.map +1 -1
  91. package/lib/infrastructure/services/publishing-api-service.d.ts +19 -0
  92. package/lib/infrastructure/services/publishing-api-service.js +111 -0
  93. package/lib/infrastructure/services/publishing-api-service.js.map +1 -0
  94. package/lib/infrastructure/services/validation-service.js.map +1 -1
  95. package/lib/infrastructure/zip-service.d.ts +2 -2
  96. package/lib/infrastructure/zip-service.js +46 -25
  97. package/lib/infrastructure/zip-service.js.map +1 -1
  98. package/lib/prompts/format.d.ts +0 -2
  99. package/lib/prompts/format.js +0 -31
  100. package/lib/prompts/format.js.map +1 -1
  101. package/lib/prompts/portal/generate.d.ts +1 -1
  102. package/lib/prompts/portal/generate.js +9 -3
  103. package/lib/prompts/portal/generate.js.map +1 -1
  104. package/lib/prompts/portal/quickstart.d.ts +4 -0
  105. package/lib/prompts/portal/quickstart.js +22 -0
  106. package/lib/prompts/portal/quickstart.js.map +1 -1
  107. package/lib/prompts/portal/serve.d.ts +4 -0
  108. package/lib/prompts/portal/serve.js +20 -1
  109. package/lib/prompts/portal/serve.js.map +1 -1
  110. package/lib/prompts/portal/toc/new-toc.d.ts +2 -2
  111. package/lib/prompts/portal/toc/new-toc.js +3 -3
  112. package/lib/prompts/portal/toc/new-toc.js.map +1 -1
  113. package/lib/prompts/prompt.d.ts +6 -0
  114. package/lib/prompts/prompt.js +45 -0
  115. package/lib/prompts/prompt.js.map +1 -1
  116. package/lib/prompts/publishing/profile/list.d.ts +9 -0
  117. package/lib/prompts/publishing/profile/list.js +27 -0
  118. package/lib/prompts/publishing/profile/list.js.map +1 -0
  119. package/lib/prompts/sdk/generate.d.ts +9 -4
  120. package/lib/prompts/sdk/generate.js +37 -15
  121. package/lib/prompts/sdk/generate.js.map +1 -1
  122. package/lib/prompts/sdk/merge-source-tree.d.ts +22 -0
  123. package/lib/prompts/sdk/merge-source-tree.js +90 -0
  124. package/lib/prompts/sdk/merge-source-tree.js.map +1 -0
  125. package/lib/prompts/sdk/publish/interactive.d.ts +30 -0
  126. package/lib/prompts/sdk/publish/interactive.js +139 -0
  127. package/lib/prompts/sdk/publish/interactive.js.map +1 -0
  128. package/lib/prompts/sdk/publish/non-interactive.d.ts +27 -0
  129. package/lib/prompts/sdk/publish/non-interactive.js +97 -0
  130. package/lib/prompts/sdk/publish/non-interactive.js.map +1 -0
  131. package/lib/prompts/sdk/publish.d.ts +12 -0
  132. package/lib/prompts/sdk/publish.js +16 -0
  133. package/lib/prompts/sdk/publish.js.map +1 -0
  134. package/lib/prompts/sdk/save-changes.d.ts +21 -0
  135. package/lib/prompts/sdk/save-changes.js +84 -0
  136. package/lib/prompts/sdk/save-changes.js.map +1 -0
  137. package/lib/types/build/build.d.ts +81 -2
  138. package/lib/types/build/build.js +158 -0
  139. package/lib/types/build/build.js.map +1 -1
  140. package/lib/types/build-context.d.ts +12 -1
  141. package/lib/types/build-context.js +78 -4
  142. package/lib/types/build-context.js.map +1 -1
  143. package/lib/types/events/sdk-changes-saved.d.ts +8 -0
  144. package/lib/types/events/sdk-changes-saved.js +11 -0
  145. package/lib/types/events/sdk-changes-saved.js.map +1 -0
  146. package/lib/types/events/sdk-changes-tracked.d.ts +8 -0
  147. package/lib/types/events/sdk-changes-tracked.js +11 -0
  148. package/lib/types/events/sdk-changes-tracked.js.map +1 -0
  149. package/lib/types/events/sdk-conflicts-resolved.d.ts +8 -0
  150. package/lib/types/events/sdk-conflicts-resolved.js +11 -0
  151. package/lib/types/events/sdk-conflicts-resolved.js.map +1 -0
  152. package/lib/types/events/sdk-publish-validation-failed.d.ts +5 -0
  153. package/lib/types/events/sdk-publish-validation-failed.js +8 -0
  154. package/lib/types/events/sdk-publish-validation-failed.js.map +1 -0
  155. package/lib/types/file/directory.d.ts +10 -1
  156. package/lib/types/file/directory.js +63 -5
  157. package/lib/types/file/directory.js.map +1 -1
  158. package/lib/types/file/directoryPath.js.map +1 -1
  159. package/lib/types/file/urlPath.d.ts +4 -0
  160. package/lib/types/file/urlPath.js +9 -0
  161. package/lib/types/file/urlPath.js.map +1 -1
  162. package/lib/types/merge-source-tree-context.d.ts +28 -0
  163. package/lib/types/merge-source-tree-context.js +63 -0
  164. package/lib/types/merge-source-tree-context.js.map +1 -0
  165. package/lib/types/package-settings-context.d.ts +10 -0
  166. package/lib/types/package-settings-context.js +20 -0
  167. package/lib/types/package-settings-context.js.map +1 -0
  168. package/lib/types/publish/package-settings-configuration.d.ts +74 -0
  169. package/lib/types/publish/package-settings-configuration.js +2 -0
  170. package/lib/types/publish/package-settings-configuration.js.map +1 -0
  171. package/lib/types/publish/profile-id.d.ts +10 -0
  172. package/lib/types/publish/profile-id.js +22 -0
  173. package/lib/types/publish/profile-id.js.map +1 -0
  174. package/lib/types/publish/publishing-profile.d.ts +26 -0
  175. package/lib/types/publish/publishing-profile.js +154 -0
  176. package/lib/types/publish/publishing-profile.js.map +1 -0
  177. package/lib/types/publish/publishing-profiles.d.ts +12 -0
  178. package/lib/types/publish/publishing-profiles.js +36 -0
  179. package/lib/types/publish/publishing-profiles.js.map +1 -0
  180. package/lib/types/publish/version.d.ts +7 -0
  181. package/lib/types/publish/version.js +17 -0
  182. package/lib/types/publish/version.js.map +1 -0
  183. package/lib/types/publish-api/publish-log.d.ts +20 -0
  184. package/lib/types/publish-api/publish-log.js +2 -0
  185. package/lib/types/publish-api/publish-log.js.map +1 -0
  186. package/lib/types/publish-api/publishing-info.d.ts +4 -0
  187. package/lib/types/publish-api/publishing-info.js +2 -0
  188. package/lib/types/publish-api/publishing-info.js.map +1 -0
  189. package/lib/types/publish-api/publishing-profile-item.d.ts +190 -0
  190. package/lib/types/publish-api/publishing-profile-item.js +6 -0
  191. package/lib/types/publish-api/publishing-profile-item.js.map +1 -0
  192. package/lib/types/save-changes-context.d.ts +17 -0
  193. package/lib/types/save-changes-context.js +42 -0
  194. package/lib/types/save-changes-context.js.map +1 -0
  195. package/lib/types/sdk/generate.d.ts +8 -0
  196. package/lib/types/sdk/generate.js +10 -0
  197. package/lib/types/sdk/generate.js.map +1 -1
  198. package/lib/types/sdk-context.d.ts +5 -4
  199. package/lib/types/sdk-context.js +26 -13
  200. package/lib/types/sdk-context.js.map +1 -1
  201. package/lib/types/sdl/sdl.d.ts +0 -28
  202. package/lib/types/sdl/sdl.js +1 -128
  203. package/lib/types/sdl/sdl.js.map +1 -1
  204. package/lib/types/spec-context.js.map +1 -1
  205. package/lib/types/temp-context.js.map +1 -1
  206. package/lib/types/toc/toc-components.d.ts +37 -0
  207. package/lib/types/toc/toc-components.js +97 -0
  208. package/lib/types/toc/toc-components.js.map +1 -0
  209. package/lib/types/toc/toc.d.ts +11 -0
  210. package/lib/utils/string-utils.d.ts +0 -1
  211. package/lib/utils/string-utils.js +0 -42
  212. package/lib/utils/string-utils.js.map +1 -1
  213. package/package.json +28 -20
  214. package/lib/types/versioned-build-context.d.ts +0 -9
  215. package/lib/types/versioned-build-context.js +0 -21
  216. package/lib/types/versioned-build-context.js.map +0 -1
@@ -1,5 +1,5 @@
1
- import { isCancel, confirm, log } from "@clack/prompts";
2
- import { format as f, } from "../format.js";
1
+ import { isCancel, confirm, log, select } from "@clack/prompts";
2
+ import { format as f } from "../format.js";
3
3
  import { withSpinner } from "../prompt.js";
4
4
  export class SdkGeneratePrompts {
5
5
  async overwriteSdk(directory) {
@@ -13,35 +13,57 @@ export class SdkGeneratePrompts {
13
13
  return overwrite;
14
14
  }
15
15
  sameBuildAndSdkDir(directory) {
16
- const message = `The ${f.var("src")} and ${f.var("sdk")} directories must be different. Current value: ${f.path(directory)}`;
17
- this.logGenerationError(message);
16
+ const message = `The ${f.var("src")} and ${f.var("sdk")} directories must be different. ` +
17
+ `Current value: ${f.path(directory)}`;
18
+ log.error(message);
19
+ }
20
+ srcDirectoryEmpty(directory) {
21
+ const message = `The ${f.var("src")} directory is either empty or invalid: ${f.path(directory)}`;
22
+ log.error(message);
18
23
  }
19
24
  specDirectoryEmpty(directory) {
20
- const message = `The ${f.var("spec")} directory is either empty or invalid: ${f.path(directory)}`;
21
- this.logGenerationError(message);
25
+ const message = `The ${f.var('spec')} directory is either empty or invalid: ${f.path(directory)}`;
26
+ log.error(message);
22
27
  }
23
28
  destinationDirNotEmpty() {
24
29
  const message = `Please enter a different destination folder or remove the existing files and try again.`;
25
- this.logGenerationError(message);
30
+ log.error(message);
26
31
  }
27
32
  generateSDK(fn) {
28
33
  return withSpinner("Generating SDK", "SDK generated successfully.", "SDK Generation failed.", fn);
29
34
  }
30
- logGenerationError(error) {
31
- log.error(error);
35
+ generateV4SDK(fn) {
36
+ return withSpinner("Generating SDK", "SDK generated successfully.", "SDK Generation failed.", fn);
32
37
  }
33
38
  sdkGenerationServiceError(serviceError) {
34
39
  log.error(serviceError.errorMessage);
35
40
  }
36
- versionedBuildEmpty() {
37
- const message = `The ${f.var("versioned_docs")} directory is empty or contains no valid versions.`;
38
- this.logGenerationError(message);
41
+ invalidVersionedDocsDirectory(directory) {
42
+ const message = `The ${f.var("versioned_docs")} directory is either empty or invalid: ${f.path(directory)}`;
43
+ log.error(message);
39
44
  }
40
- versionedBuild(relativePath) {
41
- log.warning(`SDK Generation for multi-versioned builds is not supported. Generating SDK for ${f.var(relativePath)} instead.`);
45
+ apiVersionOnlyApplicableWithVersionedBuild() {
46
+ log.warn(`The ${f.flag("api-version")} is only applicable with a versioned build.`);
47
+ }
48
+ versionNotFound() {
49
+ const message = `The selected API version is invalid.`;
50
+ log.error(message);
51
+ }
52
+ async selectVersion(versions) {
53
+ const version = await select({
54
+ message: "Select an API version for SDK generation:",
55
+ options: versions.map((v) => ({ label: v, value: v }))
56
+ });
57
+ if (isCancel(version)) {
58
+ return undefined;
59
+ }
60
+ return version;
42
61
  }
43
62
  sdkGenerated(sdk) {
44
- log.info(`Generated SDK can be found at ${f.path(sdk)}.`);
63
+ log.info(`The generated SDK can be found at ${f.path(sdk)}.`);
64
+ }
65
+ sdkCustomizationsNotSupportedForV4() {
66
+ log.warn(`The V4 Code Generator does not currently support SDK customizations.`);
45
67
  }
46
68
  }
47
69
  //# sourceMappingURL=generate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/prompts/sdk/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EAAE,MAAM,IAAI,CAAC,GAAG,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,MAAM,OAAO,kBAAkB;IACtB,KAAK,CAAC,YAAY,CAAC,SAAwB;QAChD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC;YAC9B,OAAO,EAAE,mBAAmB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,0CAA0C;YACvF,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,kBAAkB,CAAC,SAAwB;QACjD,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC,IAAI,CAC5G,SAAS,CACV,EAAE,CAAC;QAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAEM,kBAAkB,CAAC,SAAwB;QAChD,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,0CAA0C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAClG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAEM,sBAAsB;QAC3B,MAAM,OAAO,GAAG,yFAAyF,CAAC;QAC1G,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAEM,WAAW,CAAC,EAAwD;QACzE,OAAO,WAAW,CAAC,gBAAgB,EAAE,6BAA6B,EAAE,wBAAwB,EAAE,EAAE,CAAC,CAAC;IACpG,CAAC;IAEM,kBAAkB,CAAC,KAAa;QACrC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAEM,yBAAyB,CAAC,YAA0B;QACzD,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC;IAEM,mBAAmB;QACxB,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,oDAAoD,CAAC;QACnG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAEM,cAAc,CAAC,YAAoB;QACxC,GAAG,CAAC,OAAO,CAAC,kFAAkF,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IAChI,CAAC;IAEM,YAAY,CAAC,GAAkB;QACpC,GAAG,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5D,CAAC;CACF"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/prompts/sdk/generate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { DirectoryPath } from "../../types/file/directoryPath.js";
2
+ import { Language } from "../../types/sdk/generate.js";
3
+ import { Directory } from "../../types/file/directory.js";
4
+ import { FilePath } from "../../types/file/filePath.js";
5
+ export declare class MergeSourceTreePrompts {
6
+ successfullySkippedChanges(language: Language): void;
7
+ successfullyAppliedChanges(language: Language): void;
8
+ changeTrackingEnabled(language: Language, destinationSourceTreePath: FilePath): void;
9
+ changeTrackingAlreadyEnabled(language: Language): void;
10
+ sdkGenerated(sdk: DirectoryPath): void;
11
+ sdkGeneratedWithSourceTree(sdk: DirectoryPath, sourceTree: FilePath): void;
12
+ startApplyingConflictedChanges(language: Language): void;
13
+ conflictsDetectedInCi(language: Language, directory: Directory): void;
14
+ conflictsDetected(directory: Directory): void;
15
+ resolveNowOrAbandon(): Promise<boolean>;
16
+ openingVsCodeForConflictResolution(language: Language): void;
17
+ openFilesForConflictResolution(language: Language, sdkDir: DirectoryPath): void;
18
+ confirmConflictsResolved(): Promise<"resolved" | "unresolved" | "cancelled">;
19
+ conflictsResolved(language: Language): void;
20
+ mergeAbandoned(language: Language): void;
21
+ directoryStillOpen(directory: DirectoryPath): Promise<void>;
22
+ }
@@ -0,0 +1,90 @@
1
+ import { isCancel, log, confirm } from "@clack/prompts";
2
+ import { format as f, getTree } from "../format.js";
3
+ import { noteWrapped } from "../prompt.js";
4
+ export class MergeSourceTreePrompts {
5
+ successfullySkippedChanges(language) {
6
+ log.info(`Skipped saved changes for ${f.var(language)} SDK.`);
7
+ }
8
+ successfullyAppliedChanges(language) {
9
+ log.info(`Successfully applied saved changes for ${f.var(language)} SDK.`);
10
+ }
11
+ changeTrackingEnabled(language, destinationSourceTreePath) {
12
+ log.info(`Change tracking is enabled for ${f.var(language)}. The 'sdk-source-tree' has been saved to ${f.path(destinationSourceTreePath)}.`);
13
+ const message = `Customize your SDK, then run:
14
+ '${f.cmdAlt("apimatic", "sdk", "save-changes")} ${f.flag("language", language)}'
15
+ This persists your changes so they reapply on every future generation.`;
16
+ noteWrapped(message, "Next Steps");
17
+ }
18
+ changeTrackingAlreadyEnabled(language) {
19
+ log.warn(`Change tracking is already enabled for ${f.var(language)}. The ${f.flag("track-changes")} flag will be ignored.`);
20
+ }
21
+ sdkGenerated(sdk) {
22
+ log.info(`The generated SDK can be found at ${f.path(sdk)}.`);
23
+ }
24
+ sdkGeneratedWithSourceTree(sdk, sourceTree) {
25
+ log.info(`The generated SDK can be found at ${f.path(sdk)}
26
+ and the 'sdk-source-tree' can be found at ${f.path(sourceTree)}.`);
27
+ }
28
+ startApplyingConflictedChanges(language) {
29
+ log.info(`Applying saved changes for '${f.var(language)}'...`);
30
+ }
31
+ conflictsDetectedInCi(language, directory) {
32
+ log.error(`Merge conflicts found while applying saved changes:
33
+ ${getTree(directory.toTreeNode())}`);
34
+ noteWrapped(`Run the command
35
+ '${f.cmdAlt("apimatic", "sdk", "generate")} ${f.flag("language", language)}'
36
+ interactively to review and resolve the conflicts with SDK generation.`, "Next Steps");
37
+ }
38
+ conflictsDetected(directory) {
39
+ log.warn(`Merge conflicts found while applying saved changes:
40
+ ${getTree(directory.toTreeNode())}
41
+ Your SDK may not work until all issues are resolved. Conflict markers have been added to the affected files. Resolve each conflict and remove the markers.`);
42
+ }
43
+ async resolveNowOrAbandon() {
44
+ const continueResolving = await confirm({
45
+ message: `Resolve now, or abandon SDK generation?`,
46
+ active: "Resolve now",
47
+ inactive: "Abandon",
48
+ initialValue: true
49
+ });
50
+ if (isCancel(continueResolving)) {
51
+ return false;
52
+ }
53
+ return continueResolving;
54
+ }
55
+ openingVsCodeForConflictResolution(language) {
56
+ log.info(`Opening ${f.var(language)} SDK in VS Code for conflicts resolution.
57
+ 1. Resolve each conflict block.
58
+ 2. Save the files.
59
+ 3. Close the editor.`);
60
+ }
61
+ openFilesForConflictResolution(language, sdkDir) {
62
+ log.info(`Open ${f.var(language)} SDK at ${f.path(sdkDir)} in your editor for conflicts resolution.
63
+ 1. Resolve each conflict block.
64
+ 2. Save the files.
65
+ 3. Close the editor.`);
66
+ }
67
+ async confirmConflictsResolved() {
68
+ const conflictsResolved = await confirm({
69
+ message: `Have you finished resolving all conflicts?`,
70
+ initialValue: false
71
+ });
72
+ if (isCancel(conflictsResolved)) {
73
+ return "cancelled";
74
+ }
75
+ return conflictsResolved ? "resolved" : "unresolved";
76
+ }
77
+ conflictsResolved(language) {
78
+ log.info(`Saved the current state of ${f.var(language)} SDK as resolved.`);
79
+ }
80
+ mergeAbandoned(language) {
81
+ log.error(`SDK generation has been abandoned. The generated SDK will be discarded.`);
82
+ noteWrapped(`Run the command
83
+ '${f.cmdAlt("apimatic", "sdk", "generate")} ${f.flag("language", language)}'
84
+ to regenerate the SDK and resolve merge conflicts.`, "Next Steps");
85
+ }
86
+ async directoryStillOpen(directory) {
87
+ log.info(`Please close all applications using the directory ${f.path(directory)} to allow cleanup of temporary files.`);
88
+ }
89
+ }
90
+ //# sourceMappingURL=merge-source-tree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-source-tree.js","sourceRoot":"","sources":["../../../src/prompts/sdk/merge-source-tree.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { Result } from 'neverthrow';
2
+ import { DirectoryPath } from '../../../types/file/directoryPath.js';
3
+ import { ServiceError } from '../../../infrastructure/service-error.js';
4
+ import { PublishingProfileWithLanguagesGroup, PublishingProfileItem, PublishType } from '../../../types/publish-api/publishing-profile-item.js';
5
+ import { PublishingProfile } from '../../../types/publish/publishing-profile.js';
6
+ import { Language } from '../../../types/sdk/generate.js';
7
+ import { SemVersion } from '../../../types/publish/version.js';
8
+ export declare class SdkPublishInteractivePrompts {
9
+ inputWorkingDirectory(defaultDirectory: DirectoryPath, validator: (value: string | undefined) => string | Error | undefined): Promise<DirectoryPath | undefined>;
10
+ noInputDirectoryProvided(): Promise<void>;
11
+ srcDirectoryInvalid(directory: DirectoryPath): void;
12
+ inputSdkDirectory(defaultDirectory: DirectoryPath, validator: (value: string | undefined) => string | Error | undefined): Promise<DirectoryPath | undefined>;
13
+ sdkDirectoryCannotBeSameAsBuildDirectory(): void;
14
+ noSdkDirectoryProvided(): Promise<void>;
15
+ getPublishingProfiles(fn: Promise<Result<PublishingProfileItem[], ServiceError>>): Promise<Result<PublishingProfileItem[], ServiceError>>;
16
+ getPublishingProfilesServiceError(serviceError: ServiceError): void;
17
+ noPublishingProfilesFound(errorMessage: string): void;
18
+ noProfileWithEnabledLanguagesFound(): void;
19
+ selectPublishingProfile(groups: PublishingProfileWithLanguagesGroup[]): Promise<PublishingProfileItem | undefined>;
20
+ noPublishingProfileSelected(): void;
21
+ selectLanguage(publishingProfile: PublishingProfile): Promise<Language | undefined>;
22
+ noLanguageSelected(): void;
23
+ inputVersion(): Promise<SemVersion | undefined>;
24
+ noVersionSpecified(): void;
25
+ publishingSummary(profile: PublishingProfile, language: Language, version: SemVersion, publishType: PublishType[]): void;
26
+ confirmPublishing(): Promise<boolean>;
27
+ publishingCancelled(): void;
28
+ sourceCodeOnlyPublishingNotice(): void;
29
+ sdkPublishingInProgress(publishingLogUrl: string): void;
30
+ }
@@ -0,0 +1,139 @@
1
+ import { confirm, isCancel, log, select, text } from '@clack/prompts';
2
+ import { format as f } from '../../../prompts/format.js';
3
+ import { noteWrapped, withSpinner } from '../../prompt.js';
4
+ import { DirectoryPath } from '../../../types/file/directoryPath.js';
5
+ import { PublishType } from '../../../types/publish-api/publishing-profile-item.js';
6
+ import { SemVersion } from '../../../types/publish/version.js';
7
+ import { removeQuotes } from '../../../utils/string-utils.js';
8
+ export class SdkPublishInteractivePrompts {
9
+ async inputWorkingDirectory(defaultDirectory, validator) {
10
+ const value = await text({
11
+ message: `Enter the path to the directory containing the ${f.var('src')} folder:`,
12
+ placeholder: defaultDirectory.toString(),
13
+ defaultValue: defaultDirectory.toString(),
14
+ validate: validator
15
+ });
16
+ if (isCancel(value)) {
17
+ return undefined;
18
+ }
19
+ return new DirectoryPath(removeQuotes(value.trim()));
20
+ }
21
+ async noInputDirectoryProvided() {
22
+ log.error('No input directory was provided.');
23
+ }
24
+ srcDirectoryInvalid(directory) {
25
+ log.error(`${f.path(directory)} does not contain a valid ${f.var('APIMATIC-BUILD.json')}. Please check the path and try again.`);
26
+ }
27
+ async inputSdkDirectory(defaultDirectory, validator) {
28
+ const value = await text({
29
+ message: 'Enter the destination path for the generated SDK:',
30
+ placeholder: defaultDirectory.toString(),
31
+ defaultValue: defaultDirectory.toString(),
32
+ validate: validator
33
+ });
34
+ if (isCancel(value)) {
35
+ return undefined;
36
+ }
37
+ return new DirectoryPath(removeQuotes(value.trim()));
38
+ }
39
+ sdkDirectoryCannotBeSameAsBuildDirectory() {
40
+ log.error(`SDK directory must be different from the ${f.var('src')} directory.`);
41
+ }
42
+ async noSdkDirectoryProvided() {
43
+ log.error('No SDK directory was provided.');
44
+ }
45
+ async getPublishingProfiles(fn) {
46
+ return withSpinner('Searching for publishing profiles', 'Profile search complete.', 'Failed to fetch publishing profiles.', fn);
47
+ }
48
+ getPublishingProfilesServiceError(serviceError) {
49
+ log.error(serviceError.errorMessage);
50
+ }
51
+ noPublishingProfilesFound(errorMessage) {
52
+ log.error(errorMessage);
53
+ }
54
+ noProfileWithEnabledLanguagesFound() {
55
+ log.error('No publishing profiles found with languages enabled for Source Code Publishing or Package Publishing. Please enable at least one language in a publishing profile before publishing an SDK.');
56
+ }
57
+ async selectPublishingProfile(groups) {
58
+ const publishingProfile = await select({
59
+ message: 'Select a publishing profile:',
60
+ options: groups.flatMap((group) => group.profiles.map(({ profile, enabledLanguages }) => ({
61
+ value: profile,
62
+ hint: group.apiGroupName,
63
+ label: `${profile.name} | ${enabledLanguages.join(', ')} | ID: ${profile.id}`
64
+ })))
65
+ });
66
+ if (isCancel(publishingProfile)) {
67
+ return undefined;
68
+ }
69
+ return publishingProfile;
70
+ }
71
+ noPublishingProfileSelected() {
72
+ log.error('No publishing profile was selected.');
73
+ }
74
+ async selectLanguage(publishingProfile) {
75
+ const options = publishingProfile.getEnabledLanguages().map((language) => ({
76
+ value: language,
77
+ label: `${language} (${publishingProfile
78
+ .getPublishTypesForLanguage(language)
79
+ .map((t) => (t === PublishType.PackagePublishing ? 'Package' : 'Source Code'))
80
+ .join(' + ')})`
81
+ }));
82
+ const language = await select({
83
+ message: 'Select a language to publish:',
84
+ options
85
+ });
86
+ if (isCancel(language)) {
87
+ return undefined;
88
+ }
89
+ return language;
90
+ }
91
+ noLanguageSelected() {
92
+ log.error('No language was selected for publishing.');
93
+ }
94
+ async inputVersion() {
95
+ const version = await text({
96
+ message: 'Enter version to publish (e.g. 1.0.0):',
97
+ validate: (value) => {
98
+ if (!value)
99
+ return 'Version is required.';
100
+ if (SemVersion.tryCreate(value).isErr())
101
+ return 'Please enter a valid version in the format major.minor.patch (e.g., 1.0.0).';
102
+ }
103
+ });
104
+ if (isCancel(version)) {
105
+ return undefined;
106
+ }
107
+ const versionResult = SemVersion.tryCreate(version);
108
+ if (versionResult.isErr())
109
+ return undefined;
110
+ return versionResult.value;
111
+ }
112
+ noVersionSpecified() {
113
+ log.error('No version was specified for publishing the SDK.');
114
+ }
115
+ publishingSummary(profile, language, version, publishType) {
116
+ const targets = publishType
117
+ .map((t) => (t === PublishType.PackagePublishing ? 'Package' : 'Source Code'))
118
+ .join(' + ');
119
+ log.info(`Ready to publish:\n\n Profile: ${profile}\n Language: ${language}\n Version: ${version}\n Targets: ${targets}`);
120
+ }
121
+ async confirmPublishing() {
122
+ const result = await confirm({ message: 'Do you want to proceed?' });
123
+ if (isCancel(result))
124
+ return false;
125
+ return result;
126
+ }
127
+ publishingCancelled() {
128
+ log.error('Publishing cancelled.');
129
+ }
130
+ sourceCodeOnlyPublishingNotice() {
131
+ log.info('Version tags will not be created in your Git repository because you have opted to publish Source Code only.');
132
+ }
133
+ sdkPublishingInProgress(publishingLogUrl) {
134
+ const message = `To view the status of publishing, please visit:
135
+ ${f.link(publishingLogUrl)}`;
136
+ noteWrapped(message, 'Next Steps');
137
+ }
138
+ }
139
+ //# sourceMappingURL=interactive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../../../src/prompts/sdk/publish/interactive.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { Result } from 'neverthrow';
2
+ import { PublishType } from '../../../types/publish-api/publishing-profile-item.js';
3
+ import { SemVersion } from '../../../types/publish/version.js';
4
+ import { DirectoryPath } from '../../../types/file/directoryPath.js';
5
+ import { ServiceError } from '../../../infrastructure/service-error.js';
6
+ import { PublishingProfileItem } from '../../../types/publish-api/publishing-profile-item.js';
7
+ import { PublishLogItem } from '../../../types/publish-api/publish-log.js';
8
+ import { ProfileId } from '../../../types/publish/profile-id.js';
9
+ import { PublishingProfile } from '../../../types/publish/publishing-profile.js';
10
+ import { Language } from '../../../types/sdk/generate.js';
11
+ export declare class SdkPublishNonInteractivePrompts {
12
+ directoryCannotBeSame(directory: DirectoryPath): void;
13
+ srcDirectoryDoesNotExist(directory: DirectoryPath): void;
14
+ missingRequiredFlags(options: string[]): void;
15
+ interactiveModeNotice(): void;
16
+ invalidVersion(version: string): void;
17
+ invalidProfileId(profileId: string): void;
18
+ getPublishingProfiles(fn: Promise<Result<PublishingProfileItem[], ServiceError>>): Promise<Result<PublishingProfileItem[], ServiceError>>;
19
+ getPublishingProfilesServiceError(serviceError: ServiceError): void;
20
+ publishingProfileNotFound(profileId: ProfileId): void;
21
+ languageNotConfiguredForProfile(language: Language): void;
22
+ publishTypesNotAvailableForLanguage(publishTypes: PublishType[], language: Language): void;
23
+ sourceCodeOnlyPublishingNotice(): void;
24
+ publishingRunningNotice(profile: PublishingProfile, language: Language, version: SemVersion, publishType: PublishType[]): void;
25
+ postPublishingMessage(publishingLogUrl: string): void;
26
+ pollPublishingStatus(getSdkPublishingLogFn: () => Promise<Result<PublishLogItem, ServiceError>>): Promise<boolean>;
27
+ }
@@ -0,0 +1,97 @@
1
+ import { log, spinner } from '@clack/prompts';
2
+ import { PublishType } from '../../../types/publish-api/publishing-profile-item.js';
3
+ import { format as f } from '../../../prompts/format.js';
4
+ import { noteWrapped, withSpinner } from '../../prompt.js';
5
+ export class SdkPublishNonInteractivePrompts {
6
+ directoryCannotBeSame(directory) {
7
+ const message = `The ${f.var('src')} and ${f.var('sdk')} directories must be different. Current value: ${f.path(directory)}`;
8
+ log.error(message);
9
+ }
10
+ srcDirectoryDoesNotExist(directory) {
11
+ log.error(`The ${f.var('src')} does not exist at the provided location: ${f.path(directory)}`);
12
+ }
13
+ missingRequiredFlags(options) {
14
+ const message = `Missing required flag(s): ${options.join(', ')}`;
15
+ log.error(message);
16
+ }
17
+ interactiveModeNotice() {
18
+ log.info('You can run the command in interactive mode by not passing any flags.');
19
+ }
20
+ invalidVersion(version) {
21
+ log.error(`Invalid version '${version}'. Please provide a valid version in the format major.minor.patch (e.g., 1.0.0).`);
22
+ }
23
+ invalidProfileId(profileId) {
24
+ log.error(`Invalid profile id '${profileId}' provided. Please provide a valid profile id.`);
25
+ }
26
+ async getPublishingProfiles(fn) {
27
+ return withSpinner('Searching for publishing profile', 'Profile search complete.', 'Failed to search for publishing profile.', fn);
28
+ }
29
+ getPublishingProfilesServiceError(serviceError) {
30
+ log.error(serviceError.errorMessage);
31
+ }
32
+ publishingProfileNotFound(profileId) {
33
+ log.error(`Publishing profile with id '${profileId}' not found. Please check if the provided profile id is correct or create a new publishing profile on the APIMatic App.`);
34
+ }
35
+ languageNotConfiguredForProfile(language) {
36
+ log.error(`No configuration found for '${language}' in the selected publishing profile. Please check the provided profile's configuration on the APIMatic App and try again.`);
37
+ }
38
+ publishTypesNotAvailableForLanguage(publishTypes, language) {
39
+ const types = [...publishTypes]
40
+ .sort((a, b) => (a === PublishType.SourceCodePublishing ? -1 : b === PublishType.SourceCodePublishing ? 1 : 0))
41
+ .join(' + ');
42
+ const noun = publishTypes.length === 1 ? 'type' : 'types';
43
+ log.error(`Publish ${noun} '${types}' not found or not enabled for '${language}' in the selected publishing profile. Please check your profile configuration on the APIMatic App and try again.`);
44
+ }
45
+ sourceCodeOnlyPublishingNotice() {
46
+ log.info('Version tags will not be created in your Git repository because you have opted to publish Source Code only.');
47
+ }
48
+ publishingRunningNotice(profile, language, version, publishType) {
49
+ const targets = [...publishType]
50
+ .sort((a, b) => (a === PublishType.SourceCodePublishing ? -1 : b === PublishType.SourceCodePublishing ? 1 : 0))
51
+ .map((t) => (t === PublishType.PackagePublishing ? 'Package' : 'Source Code'))
52
+ .join(' + ');
53
+ log.info(`Publishing is running for the following:\n\n Profile: ${profile}\n Language: ${language}\n Version: ${version}\n Targets: ${targets}`);
54
+ }
55
+ postPublishingMessage(publishingLogUrl) {
56
+ const message = `To view publishing logs, please visit:
57
+ ${f.link(publishingLogUrl)}`;
58
+ noteWrapped(message, 'Next Steps');
59
+ }
60
+ async pollPublishingStatus(getSdkPublishingLogFn) {
61
+ const TERMINAL_STATES = new Set(['Succeeded', 'Failed', 'Exception', 'InternalError']);
62
+ const POLL_INTERVAL_MS = 10000; // poll after every 10 seconds.
63
+ const spin = spinner();
64
+ spin.start('Waiting for publishing status...');
65
+ while (true) {
66
+ const publishingLogResult = await getSdkPublishingLogFn();
67
+ if (publishingLogResult.isErr()) {
68
+ spin.stop('Failed to fetch publishing status.', 1);
69
+ return false;
70
+ }
71
+ const { events } = publishingLogResult.value;
72
+ const executionCompleted = events.every((event) => TERMINAL_STATES.has(event.eventType));
73
+ const statusMessage = [...events]
74
+ .sort((a, b) => (a.publishType === 'SourceCode' ? -1 : b.publishType === 'SourceCode' ? 1 : 0))
75
+ .map((event) => {
76
+ var _a;
77
+ const target = event.publishType === 'SourceCode' ? 'Source Code' : 'Package';
78
+ const eventLabels = {
79
+ Queued: 'Queued',
80
+ InProgress: 'In Progress',
81
+ Succeeded: 'Published'
82
+ };
83
+ const label = (_a = eventLabels[event.eventType]) !== null && _a !== void 0 ? _a : 'Failed';
84
+ return `${target}: [${label}]`;
85
+ })
86
+ .join(' | ');
87
+ if (executionCompleted) {
88
+ const isExecutionSuccessful = events.every((event) => event.eventType === 'Succeeded');
89
+ spin.stop(statusMessage, isExecutionSuccessful ? 0 : 1);
90
+ return isExecutionSuccessful;
91
+ }
92
+ spin.message(statusMessage);
93
+ await new Promise((resolve) => setTimeout(resolve, POLL_INTERVAL_MS));
94
+ }
95
+ }
96
+ }
97
+ //# sourceMappingURL=non-interactive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"non-interactive.js","sourceRoot":"","sources":["../../../../src/prompts/sdk/publish/non-interactive.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { Result } from 'neverthrow';
2
+ import { ServiceError } from '../../infrastructure/service-error.js';
3
+ import { PublishingInfo } from '../../types/publish-api/publishing-info.js';
4
+ import { PublishType } from '../../types/publish-api/publishing-profile-item.js';
5
+ import { SemVersion } from '../../types/publish/version.js';
6
+ import { Language } from '../../types/sdk/generate.js';
7
+ import { PublishingProfile } from '../../types/publish/publishing-profile.js';
8
+ export declare class SdkPublishPrompts {
9
+ publishSdk(fn: Promise<Result<PublishingInfo, ServiceError>>): Promise<Result<PublishingInfo, ServiceError>>;
10
+ sdkPublishingServiceError(serviceError: ServiceError): void;
11
+ dryRunNotice(publishingProfile: PublishingProfile, language: Language, version: SemVersion, publishType: PublishType[]): void;
12
+ }
@@ -0,0 +1,16 @@
1
+ import { log } from '@clack/prompts';
2
+ import { PublishType } from '../../types/publish-api/publishing-profile-item.js';
3
+ import { withSpinner } from '../prompt.js';
4
+ export class SdkPublishPrompts {
5
+ publishSdk(fn) {
6
+ return withSpinner('Publishing SDK', 'Publishing initiated.', 'SDK Publishing failed.', fn);
7
+ }
8
+ sdkPublishingServiceError(serviceError) {
9
+ log.error(serviceError.errorMessage);
10
+ }
11
+ dryRunNotice(publishingProfile, language, version, publishType) {
12
+ const targets = publishType.map((t) => (t === PublishType.PackagePublishing ? 'Package' : 'Source Code')).join(' + ');
13
+ log.info(`You can publish this SDK by removing the --dry-run flag. It will be published for the following:\n\n Profile: ${publishingProfile}\n Language: ${language}\n Version: ${version}\n Targets: ${targets}`);
14
+ }
15
+ }
16
+ //# sourceMappingURL=publish.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../src/prompts/sdk/publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAIrC,OAAO,EAAE,WAAW,EAAE,MAAM,oDAAoD,CAAC;AAGjF,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,MAAM,OAAO,iBAAiB;IACrB,UAAU,CAAC,EAAiD;QACjE,OAAO,WAAW,CAAC,gBAAgB,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,EAAE,CAAC,CAAC;IAC9F,CAAC;IAEM,yBAAyB,CAAC,YAA0B;QACzD,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC;IAEM,YAAY,CAAC,iBAAoC,EAAE,QAAkB,EAAE,OAAmB,EAAE,WAA0B;QAC3H,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtH,GAAG,CAAC,IAAI,CACN,oHAAoH,iBAAiB,kBAAkB,QAAQ,kBAAkB,OAAO,kBAAkB,OAAO,EAAE,CACpN,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,21 @@
1
+ import { DirectoryPath } from "../../types/file/directoryPath.js";
2
+ import { FilePath } from "../../types/file/filePath.js";
3
+ import { Directory } from "../../types/file/directory.js";
4
+ export declare class SaveChangesPrompts {
5
+ srcDirectoryEmpty(directory: DirectoryPath): void;
6
+ invalidSdkDirectory(directory: DirectoryPath): void;
7
+ invalidVersionedDocsDirectory(directory: DirectoryPath): void;
8
+ apiVersionOnlyApplicableWithVersionedBuild(): void;
9
+ versionNotFound(): void;
10
+ selectVersion(versions: string[]): Promise<string | undefined>;
11
+ sdkSourceTreeNotFound(language: string): void;
12
+ operationCancelled(): void;
13
+ directoryStillOpen(directory: DirectoryPath): Promise<void>;
14
+ modifiedFilesDetected(directory: Directory): void;
15
+ confirmReviewChanges(): Promise<boolean>;
16
+ noChangesDetected(): void;
17
+ openingDirectoryToReviewChanges(): void;
18
+ reviewChangesManually(tempDirectory: DirectoryPath): Promise<void>;
19
+ confirmSaveChanges(): Promise<boolean>;
20
+ changesSaved(sourceTreePath: FilePath): void;
21
+ }