@apimatic/cli 1.1.0-beta.10 → 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 (166) hide show
  1. package/README.md +105 -6
  2. package/lib/actions/portal/generate.js +7 -1
  3. package/lib/actions/portal/generate.js.map +1 -1
  4. package/lib/actions/publishing/profile/list.d.ts +11 -0
  5. package/lib/actions/publishing/profile/list.js +29 -0
  6. package/lib/actions/publishing/profile/list.js.map +1 -0
  7. package/lib/actions/sdk/generate.d.ts +5 -1
  8. package/lib/actions/sdk/generate.js +55 -40
  9. package/lib/actions/sdk/generate.js.map +1 -1
  10. package/lib/actions/sdk/merge-source-tree.d.ts +12 -0
  11. package/lib/actions/sdk/merge-source-tree.js +78 -0
  12. package/lib/actions/sdk/merge-source-tree.js.map +1 -0
  13. package/lib/actions/sdk/publish/interactive.d.ts +13 -0
  14. package/lib/actions/sdk/publish/interactive.js +105 -0
  15. package/lib/actions/sdk/publish/interactive.js.map +1 -0
  16. package/lib/actions/sdk/publish/non-interactive.d.ts +14 -0
  17. package/lib/actions/sdk/publish/non-interactive.js +101 -0
  18. package/lib/actions/sdk/publish/non-interactive.js.map +1 -0
  19. package/lib/actions/sdk/publish.d.ts +18 -0
  20. package/lib/actions/sdk/publish.js +56 -0
  21. package/lib/actions/sdk/publish.js.map +1 -0
  22. package/lib/actions/sdk/quickstart.js +1 -1
  23. package/lib/actions/sdk/quickstart.js.map +1 -1
  24. package/lib/actions/sdk/save-changes.d.ts +8 -0
  25. package/lib/actions/sdk/save-changes.js +93 -0
  26. package/lib/actions/sdk/save-changes.js.map +1 -0
  27. package/lib/commands/portal/recipe/new.js +2 -2
  28. package/lib/commands/portal/recipe/new.js.map +1 -1
  29. package/lib/commands/portal/toc/new.js +2 -2
  30. package/lib/commands/portal/toc/new.js.map +1 -1
  31. package/lib/commands/publishing/profile/list.d.ts +9 -0
  32. package/lib/commands/publishing/profile/list.js +28 -0
  33. package/lib/commands/publishing/profile/list.js.map +1 -0
  34. package/lib/commands/quickstart.js +1 -1
  35. package/lib/commands/quickstart.js.map +1 -1
  36. package/lib/commands/sdk/generate.d.ts +4 -2
  37. package/lib/commands/sdk/generate.js +26 -8
  38. package/lib/commands/sdk/generate.js.map +1 -1
  39. package/lib/commands/sdk/publish.d.ts +18 -0
  40. package/lib/commands/sdk/publish.js +73 -0
  41. package/lib/commands/sdk/publish.js.map +1 -0
  42. package/lib/commands/sdk/save-changes.d.ts +14 -0
  43. package/lib/commands/sdk/save-changes.js +51 -0
  44. package/lib/commands/sdk/save-changes.js.map +1 -0
  45. package/lib/hooks/not-found.js +1 -1
  46. package/lib/hooks/not-found.js.map +1 -1
  47. package/lib/infrastructure/env-info.d.ts +2 -0
  48. package/lib/infrastructure/env-info.js +22 -11
  49. package/lib/infrastructure/env-info.js.map +1 -1
  50. package/lib/infrastructure/file-service.d.ts +9 -0
  51. package/lib/infrastructure/file-service.js +94 -5
  52. package/lib/infrastructure/file-service.js.map +1 -1
  53. package/lib/infrastructure/git-service.d.ts +14 -0
  54. package/lib/infrastructure/git-service.js +90 -0
  55. package/lib/infrastructure/git-service.js.map +1 -0
  56. package/lib/infrastructure/launcher-service.d.ts +5 -0
  57. package/lib/infrastructure/launcher-service.js +35 -2
  58. package/lib/infrastructure/launcher-service.js.map +1 -1
  59. package/lib/infrastructure/os-extensions.d.ts +2 -0
  60. package/lib/infrastructure/os-extensions.js +6 -0
  61. package/lib/infrastructure/os-extensions.js.map +1 -0
  62. package/lib/infrastructure/service-error.d.ts +14 -2
  63. package/lib/infrastructure/service-error.js +26 -9
  64. package/lib/infrastructure/service-error.js.map +1 -1
  65. package/lib/infrastructure/services/portal-service.d.ts +6 -1
  66. package/lib/infrastructure/services/portal-service.js +37 -18
  67. package/lib/infrastructure/services/portal-service.js.map +1 -1
  68. package/lib/infrastructure/services/publishing-api-service.d.ts +19 -0
  69. package/lib/infrastructure/services/publishing-api-service.js +111 -0
  70. package/lib/infrastructure/services/publishing-api-service.js.map +1 -0
  71. package/lib/infrastructure/zip-service.d.ts +2 -2
  72. package/lib/infrastructure/zip-service.js +29 -11
  73. package/lib/infrastructure/zip-service.js.map +1 -1
  74. package/lib/prompts/format.d.ts +0 -2
  75. package/lib/prompts/format.js +0 -31
  76. package/lib/prompts/format.js.map +1 -1
  77. package/lib/prompts/portal/generate.d.ts +1 -1
  78. package/lib/prompts/portal/generate.js +9 -3
  79. package/lib/prompts/portal/generate.js.map +1 -1
  80. package/lib/prompts/prompt.d.ts +6 -0
  81. package/lib/prompts/prompt.js +45 -0
  82. package/lib/prompts/prompt.js.map +1 -1
  83. package/lib/prompts/publishing/profile/list.d.ts +9 -0
  84. package/lib/prompts/publishing/profile/list.js +27 -0
  85. package/lib/prompts/publishing/profile/list.js.map +1 -0
  86. package/lib/prompts/sdk/generate.d.ts +5 -3
  87. package/lib/prompts/sdk/generate.js +20 -14
  88. package/lib/prompts/sdk/generate.js.map +1 -1
  89. package/lib/prompts/sdk/merge-source-tree.d.ts +22 -0
  90. package/lib/prompts/sdk/merge-source-tree.js +90 -0
  91. package/lib/prompts/sdk/merge-source-tree.js.map +1 -0
  92. package/lib/prompts/sdk/publish/interactive.d.ts +30 -0
  93. package/lib/prompts/sdk/publish/interactive.js +139 -0
  94. package/lib/prompts/sdk/publish/interactive.js.map +1 -0
  95. package/lib/prompts/sdk/publish/non-interactive.d.ts +27 -0
  96. package/lib/prompts/sdk/publish/non-interactive.js +97 -0
  97. package/lib/prompts/sdk/publish/non-interactive.js.map +1 -0
  98. package/lib/prompts/sdk/publish.d.ts +12 -0
  99. package/lib/prompts/sdk/publish.js +16 -0
  100. package/lib/prompts/sdk/publish.js.map +1 -0
  101. package/lib/prompts/sdk/save-changes.d.ts +21 -0
  102. package/lib/prompts/sdk/save-changes.js +84 -0
  103. package/lib/prompts/sdk/save-changes.js.map +1 -0
  104. package/lib/types/build/build.d.ts +2 -0
  105. package/lib/types/build/build.js.map +1 -1
  106. package/lib/types/build-context.d.ts +11 -0
  107. package/lib/types/build-context.js +81 -1
  108. package/lib/types/build-context.js.map +1 -1
  109. package/lib/types/events/sdk-changes-saved.d.ts +8 -0
  110. package/lib/types/events/sdk-changes-saved.js +11 -0
  111. package/lib/types/events/sdk-changes-saved.js.map +1 -0
  112. package/lib/types/events/sdk-changes-tracked.d.ts +8 -0
  113. package/lib/types/events/sdk-changes-tracked.js +11 -0
  114. package/lib/types/events/sdk-changes-tracked.js.map +1 -0
  115. package/lib/types/events/sdk-conflicts-resolved.d.ts +8 -0
  116. package/lib/types/events/sdk-conflicts-resolved.js +11 -0
  117. package/lib/types/events/sdk-conflicts-resolved.js.map +1 -0
  118. package/lib/types/events/sdk-publish-validation-failed.d.ts +5 -0
  119. package/lib/types/events/sdk-publish-validation-failed.js +8 -0
  120. package/lib/types/events/sdk-publish-validation-failed.js.map +1 -0
  121. package/lib/types/file/directory.d.ts +10 -1
  122. package/lib/types/file/directory.js +63 -5
  123. package/lib/types/file/directory.js.map +1 -1
  124. package/lib/types/file/directoryPath.js.map +1 -1
  125. package/lib/types/merge-source-tree-context.d.ts +28 -0
  126. package/lib/types/merge-source-tree-context.js +63 -0
  127. package/lib/types/merge-source-tree-context.js.map +1 -0
  128. package/lib/types/package-settings-context.d.ts +10 -0
  129. package/lib/types/package-settings-context.js +20 -0
  130. package/lib/types/package-settings-context.js.map +1 -0
  131. package/lib/types/publish/package-settings-configuration.d.ts +70 -0
  132. package/lib/types/publish/package-settings-configuration.js +46 -0
  133. package/lib/types/publish/package-settings-configuration.js.map +1 -0
  134. package/lib/types/publish/profile-id.d.ts +10 -0
  135. package/lib/types/publish/profile-id.js +22 -0
  136. package/lib/types/publish/profile-id.js.map +1 -0
  137. package/lib/types/publish/publishing-profile.d.ts +18 -0
  138. package/lib/types/publish/publishing-profile.js +105 -0
  139. package/lib/types/publish/publishing-profile.js.map +1 -0
  140. package/lib/types/publish/publishing-profiles.d.ts +12 -0
  141. package/lib/types/publish/publishing-profiles.js +36 -0
  142. package/lib/types/publish/publishing-profiles.js.map +1 -0
  143. package/lib/types/publish/version.d.ts +7 -0
  144. package/lib/types/publish/version.js +17 -0
  145. package/lib/types/publish/version.js.map +1 -0
  146. package/lib/types/publish-api/publish-log.d.ts +20 -0
  147. package/lib/types/publish-api/publish-log.js +2 -0
  148. package/lib/types/publish-api/publish-log.js.map +1 -0
  149. package/lib/types/publish-api/publishing-info.d.ts +4 -0
  150. package/lib/types/publish-api/publishing-info.js +2 -0
  151. package/lib/types/publish-api/publishing-info.js.map +1 -0
  152. package/lib/types/publish-api/publishing-profile-item.d.ts +183 -0
  153. package/lib/types/publish-api/publishing-profile-item.js +6 -0
  154. package/lib/types/publish-api/publishing-profile-item.js.map +1 -0
  155. package/lib/types/save-changes-context.d.ts +17 -0
  156. package/lib/types/save-changes-context.js +42 -0
  157. package/lib/types/save-changes-context.js.map +1 -0
  158. package/lib/types/sdk-context.d.ts +5 -4
  159. package/lib/types/sdk-context.js +26 -13
  160. package/lib/types/sdk-context.js.map +1 -1
  161. package/lib/types/spec-context.js.map +1 -1
  162. package/lib/types/temp-context.js.map +1 -1
  163. package/package.json +18 -9
  164. package/lib/types/versioned-build-context.d.ts +0 -15
  165. package/lib/types/versioned-build-context.js +0 -28
  166. package/lib/types/versioned-build-context.js.map +0 -1
@@ -1,5 +1,5 @@
1
- import { DirectoryPath } from "../types/file/directoryPath.js";
2
- import { FilePath } from "../types/file/filePath.js";
1
+ import { DirectoryPath } from '../types/file/directoryPath.js';
2
+ import { FilePath } from '../types/file/filePath.js';
3
3
  export declare class ZipService {
4
4
  archive(sourceDir: DirectoryPath, outputZipPath: FilePath): Promise<void>;
5
5
  unArchive(sourceFile: FilePath, destinationDirectory: DirectoryPath): Promise<void>;
@@ -1,16 +1,34 @@
1
- import fs from "fs";
2
- import archiver from "archiver";
3
- import extract from "extract-zip";
1
+ import fs from 'fs';
2
+ import yazl from 'yazl';
3
+ import extract from 'extract-zip';
4
4
  export class ZipService {
5
5
  async archive(sourceDir, outputZipPath) {
6
6
  return new Promise((resolve, reject) => {
7
+ const zipfile = new yazl.ZipFile();
8
+ const addDirectory = (dir, relativePrefix) => {
9
+ for (const entry of fs.readdirSync(dir.toString(), { withFileTypes: true })) {
10
+ const fullPath = dir.join(entry.name);
11
+ // Always use forward slashes as metadataPath — zip format requires it
12
+ const metadataPath = relativePrefix ? `${relativePrefix}/${entry.name}` : entry.name;
13
+ if (entry.isDirectory()) {
14
+ addDirectory(fullPath, metadataPath);
15
+ }
16
+ else {
17
+ zipfile.addFile(fullPath.toString(), metadataPath);
18
+ }
19
+ }
20
+ };
21
+ try {
22
+ addDirectory(sourceDir, '');
23
+ }
24
+ catch (err) {
25
+ return reject(err);
26
+ }
27
+ zipfile.end();
7
28
  const output = fs.createWriteStream(outputZipPath.toString());
8
- const archive = archiver("zip");
9
- output.on("close", () => resolve());
10
- archive.on("error", (err) => reject(err));
11
- archive.pipe(output);
12
- archive.directory(sourceDir.toString(), false); // false: don't nest under folder
13
- archive.finalize();
29
+ zipfile.outputStream.pipe(output);
30
+ output.on('close', resolve);
31
+ output.on('error', reject);
14
32
  });
15
33
  }
16
34
  async unArchive(sourceFile, destinationDirectory) {
@@ -23,14 +41,14 @@ export class ZipService {
23
41
  onEntry: function (entry) {
24
42
  fileCount++;
25
43
  if (fileCount > MAX_FILES) {
26
- throw new Error("Reached max. file count");
44
+ throw new Error('Reached max. file count');
27
45
  }
28
46
  // The uncompressedSize comes from the zip headers, so it might not be trustworthy.
29
47
  // Alternatively, calculate the size from the readStream.
30
48
  let entrySize = entry.uncompressedSize;
31
49
  totalSize += entrySize;
32
50
  if (totalSize > MAX_SIZE) {
33
- throw new Error("Reached max. size");
51
+ throw new Error('Reached max. size');
34
52
  }
35
53
  }
36
54
  });
@@ -1 +1 @@
1
- {"version":3,"file":"zip-service.js","sourceRoot":"","sources":["../../src/infrastructure/zip-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,OAAO,MAAM,aAAa,CAAC;AAIlC,MAAM,OAAO,UAAU;IACd,KAAK,CAAC,OAAO,CAAC,SAAwB,EAAE,aAAuB;QACpE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,EAAE,CAAC,iBAAiB,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC9D,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YAEhC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YACpC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAE1C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,iCAAiC;YACjF,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,UAAoB,EAAE,oBAAmC;QAC9E,MAAM,SAAS,GAAG,MAAO,CAAC;QAC1B,MAAM,QAAQ,GAAG,UAAa,CAAC,CAAC,OAAO;QACvC,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE;YACnC,GAAG,EAAE,oBAAoB,CAAC,QAAQ,EAAE;YACpC,OAAO,EAAE,UAAU,KAAK;gBACtB,SAAS,EAAE,CAAC;gBACZ,IAAI,SAAS,GAAG,SAAS,EAAE,CAAC;oBAC1B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;gBAC7C,CAAC;gBACD,mFAAmF;gBACnF,yDAAyD;gBACzD,IAAI,SAAS,GAAG,KAAK,CAAC,gBAAgB,CAAC;gBACvC,SAAS,IAAI,SAAS,CAAC;gBACvB,IAAI,SAAS,GAAG,QAAQ,EAAE,CAAC;oBACzB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"zip-service.js","sourceRoot":"","sources":["../../src/infrastructure/zip-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,OAAO,MAAM,aAAa,CAAC;AAIlC,MAAM,OAAO,UAAU;IACd,KAAK,CAAC,OAAO,CAAC,SAAwB,EAAE,aAAuB;QACpE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAEnC,MAAM,YAAY,GAAG,CAAC,GAAkB,EAAE,cAAsB,EAAE,EAAE;gBAClE,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;oBAC5E,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACtC,sEAAsE;oBACtE,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;oBACrF,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;wBACxB,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;oBACvC,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,YAAY,CAAC,CAAC;oBACrD,CAAC;gBACH,CAAC;YACH,CAAC,CAAC;YAEF,IAAI,CAAC;gBACH,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC9B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;YAED,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,MAAM,GAAG,EAAE,CAAC,iBAAiB,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC9D,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC5B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,UAAoB,EAAE,oBAAmC;QAC9E,MAAM,SAAS,GAAG,MAAO,CAAC;QAC1B,MAAM,QAAQ,GAAG,UAAa,CAAC,CAAC,OAAO;QACvC,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE;YACnC,GAAG,EAAE,oBAAoB,CAAC,QAAQ,EAAE;YACpC,OAAO,EAAE,UAAU,KAAK;gBACtB,SAAS,EAAE,CAAC;gBACZ,IAAI,SAAS,GAAG,SAAS,EAAE,CAAC;oBAC1B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;gBAC7C,CAAC;gBACD,mFAAmF;gBACnF,yDAAyD;gBACzD,IAAI,SAAS,GAAG,KAAK,CAAC,gBAAgB,CAAC;gBACvC,SAAS,IAAI,SAAS,CAAC;gBACvB,IAAI,SAAS,GAAG,QAAQ,EAAE,CAAC;oBACzB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1,5 +1,4 @@
1
1
  import { ActionResult } from "../actions/action-result.js";
2
- import { Directory } from "../types/file/directory.js";
3
2
  import { DirectoryPath } from "../types/file/directoryPath.js";
4
3
  import { FilePath } from "../types/file/filePath.js";
5
4
  export declare const format: {
@@ -20,7 +19,6 @@ export declare const format: {
20
19
  };
21
20
  export declare function intro(text: string): void;
22
21
  export declare function outro<T>(result: ActionResult<T>): void;
23
- export declare function getDirectoryTree(dir: Directory, prefix?: string, isLast?: boolean): string;
24
22
  export interface LeafNode {
25
23
  name: string;
26
24
  description?: string;
@@ -1,6 +1,5 @@
1
1
  import pc from "picocolors";
2
2
  import { intro as i, outro as o } from '@clack/prompts';
3
- import { Directory } from "../types/file/directory.js";
4
3
  export const format = {
5
4
  // Core element types
6
5
  var: (text) => pc.magenta(`'${text}'`),
@@ -35,36 +34,6 @@ export function outro(result) {
35
34
  o(outroMessage);
36
35
  process.exitCode = exitCode;
37
36
  }
38
- export function getDirectoryTree(dir, prefix = "", isLast = true) {
39
- const folderDescription = {
40
- spec: "# Contains all API definition files",
41
- content: "# Includes custom documentation pages in Markdown",
42
- static: "# Includes all static files, such as images, GIFs, and PDFs"
43
- };
44
- const fileDescriptions = {
45
- "toc.yml": "# Controls the structure of the side navigation bar in the API portal",
46
- "APIMATIC-BUILD.json": "# Defines all configurations for the API portal, including programming languages and themes"
47
- };
48
- const pointer = isLast ? "└─ " : "├─ ";
49
- const folderName = dir.directoryPath.leafName();
50
- const description = folderDescription[folderName] ? format.description(folderDescription[folderName]) : "";
51
- let output = `${prefix}${pointer}${folderName}${description ? " " + description : ""}\n`;
52
- const items = dir.items;
53
- const newPrefix = prefix + (isLast ? " " : "| ");
54
- items.forEach((item, index) => {
55
- const last = index === items.length - 1;
56
- if (item instanceof Directory) {
57
- output += getDirectoryTree(item, newPrefix, last);
58
- }
59
- else {
60
- const filePointer = last ? "└─ " : "├─ ";
61
- const fileName = item.toString();
62
- const fileDescription = fileDescriptions[fileName] ? format.description(fileDescriptions[fileName]) : "";
63
- output += `${newPrefix}${filePointer}${fileName}${fileDescription ? " " + fileDescription : ""}\n`;
64
- }
65
- });
66
- return output;
67
- }
68
37
  export function getTree(dir, prefix = "", isLast = true) {
69
38
  const pointer = isLast ? "└─ " : "├─ ";
70
39
  const folderName = dir.name;
@@ -1 +1 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/prompts/format.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/prompts/format.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ export declare class PortalGeneratePrompts {
9
9
  portalDirectoryNotEmpty(): void;
10
10
  generatePortal(fn: Promise<Result<NodeJS.ReadableStream, ServiceError | NodeJS.ReadableStream>>): Promise<Result<NodeJS.ReadableStream, NodeJS.ReadableStream | ServiceError>>;
11
11
  portalGenerationError(error: string): void;
12
- portalGenerationServiceError(serviceError: ServiceError): void;
12
+ portalGenerationSdkMergeFailed(sdkMergeFailedErrors: string[]): void;
13
13
  portalGenerationErrorWithReport(reportPath: FilePath): void;
14
14
  portalGenerated(portal: DirectoryPath): void;
15
15
  }
@@ -1,6 +1,6 @@
1
1
  import { isCancel, confirm, log } from "@clack/prompts";
2
2
  import { format as f } from "../format.js";
3
- import { withSpinner } from "../prompt.js";
3
+ import { noteWrapped, withSpinner } from "../prompt.js";
4
4
  export class PortalGeneratePrompts {
5
5
  async overwritePortal(directory) {
6
6
  const overwrite = await confirm({
@@ -30,8 +30,14 @@ export class PortalGeneratePrompts {
30
30
  portalGenerationError(error) {
31
31
  log.error(error);
32
32
  }
33
- portalGenerationServiceError(serviceError) {
34
- log.error(serviceError.errorMessage);
33
+ portalGenerationSdkMergeFailed(sdkMergeFailedErrors) {
34
+ log.error(`Saved changes couldn't be applied to one or more SDKs.`);
35
+ const language = sdkMergeFailedErrors.length === 1 ? sdkMergeFailedErrors[0] : "<language>";
36
+ log.error(`Merge conflicts found in:\n- ${sdkMergeFailedErrors.join("\n- ")}`);
37
+ const message = `Review and resolve the conflicts first by running:
38
+ '${f.cmdAlt("apimatic", "sdk", "generate")} ${f.flag("language", language)}'
39
+ After resolving merge conflicts, retry ${f.cmdAlt("apimatic", "portal", "generate")}.`;
40
+ noteWrapped(message, "Next Steps");
35
41
  }
36
42
  portalGenerationErrorWithReport(reportPath) {
37
43
  const message = `An error occurred during portal generation.
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/prompts/portal/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,cAAc,CAAC;AAI3C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,OAAO,qBAAqB;IACzB,KAAK,CAAC,eAAe,CAAC,SAAwB;QACnD,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,qBAAqB,CAAC,SAAwB;QACnD,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,kDAAkD,CAAC,CAAC,IAAI,CAChH,SAAS,CACV,EAAE,CAAC;QACJ,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAEM,iBAAiB,CAAC,SAAwB;QAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACjG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAEM,uBAAuB;QAC5B,MAAM,OAAO,GAAG,yFAAyF,CAAC;QAC1G,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAEM,cAAc,CAAC,EAAgF;QACpG,OAAO,WAAW,CAAC,mBAAmB,EAAE,gCAAgC,EAAE,2BAA2B,EAAE,EAAE,CAAC,CAAC;IAC7G,CAAC;IAEM,qBAAqB,CAAC,KAAa;QACxC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAEM,4BAA4B,CAAC,YAA0B;QAC5D,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC;IAEM,+BAA+B,CAAC,UAAoB;QACzD,MAAM,OAAO,GAAG;oDACgC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACrE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAEM,eAAe,CAAC,MAAqB;QAC1C,GAAG,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAClE,CAAC;CACF"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/prompts/portal/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,cAAc,CAAC;AAI3C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAExD,MAAM,OAAO,qBAAqB;IACzB,KAAK,CAAC,eAAe,CAAC,SAAwB;QACnD,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,qBAAqB,CAAC,SAAwB;QACnD,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,kDAAkD,CAAC,CAAC,IAAI,CAChH,SAAS,CACV,EAAE,CAAC;QACJ,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAEM,iBAAiB,CAAC,SAAwB;QAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACjG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAEM,uBAAuB;QAC5B,MAAM,OAAO,GAAG,yFAAyF,CAAC;QAC1G,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAEM,cAAc,CAAC,EAAgF;QACpG,OAAO,WAAW,CAAC,mBAAmB,EAAE,gCAAgC,EAAE,2BAA2B,EAAE,EAAE,CAAC,CAAC;IAC7G,CAAC;IAEM,qBAAqB,CAAC,KAAa;QACxC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAEM,8BAA8B,CAAC,oBAA8B;QAClE,GAAG,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QAC5F,GAAG,CAAC,KAAK,CAAC,gCAAgC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/E,MAAM,OAAO,GAAG;GACjB,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC;yCACjC,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC;QACnF,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACrC,CAAC;IAEM,+BAA+B,CAAC,UAAoB;QACzD,MAAM,OAAO,GAAG;oDACgC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACrE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAEM,eAAe,CAAC,MAAqB;QAC1C,GAAG,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAClE,CAAC;CACF"}
@@ -1,3 +1,9 @@
1
1
  import { Result } from "neverthrow";
2
2
  export declare function withSpinner<T, E>(intro: string, success: string, failure: string, fn: Promise<Result<T, E>>): Promise<Result<T, E>>;
3
3
  export declare const noteWrapped: (message: string, title: string) => void;
4
+ export declare function buildTableWithHeading(groups: {
5
+ heading: string;
6
+ rows: string[][];
7
+ }[], headers: string[], columnStyles?: ColumnStyle[]): string;
8
+ type ColumnStyle = 'primary' | 'secondary' | 'item';
9
+ export {};
@@ -34,4 +34,49 @@ export const noteWrapped = (message, title) => {
34
34
  note(message, title, opts);
35
35
  }
36
36
  };
37
+ export function buildTableWithHeading(groups, headers, columnStyles) {
38
+ return groups
39
+ .map((group) => `${pc.bold(pc.white(group.heading))}\n${buildTable(headers, group.rows, true, columnStyles)}`)
40
+ .join('\n\n');
41
+ }
42
+ function buildTable(headers, rows, rowSeparators = false, columnStyles) {
43
+ const COL_PAD = 2;
44
+ const MIN_COL_WIDTH = 4;
45
+ const coloredHeaders = headers.map((h) => pc.bold(pc.white(h)));
46
+ let widths = headers.map((h, i) => Math.max(stripAnsi(h).length, ...rows.map((r) => stripAnsi(r[i]).length)) + COL_PAD);
47
+ const terminalColumns = getColumns(process.stdout) || 80;
48
+ const totalWidth = 1 + 3 * headers.length + widths.reduce((a, b) => a + b, 0);
49
+ if (totalWidth > terminalColumns) {
50
+ const availableWidth = terminalColumns - 1 - 3 * headers.length;
51
+ const naturalTotal = widths.reduce((a, b) => a + b, 0);
52
+ widths = widths.map((w) => Math.max(MIN_COL_WIDTH, Math.floor((w / naturalTotal) * availableWidth)));
53
+ }
54
+ const columnStyleMap = {
55
+ primary: (text) => pc.magenta(text),
56
+ secondary: (text) => pc.dim(text),
57
+ item: (text) => pc.cyan(text)
58
+ };
59
+ const divider = (l, m, r) => pc.gray(l + widths.map((w) => '─'.repeat(w + 2)).join(m) + r);
60
+ const renderRow = (cells, applyStyles = false) => pc.gray('│') +
61
+ cells
62
+ .map((cell, i) => {
63
+ const styled = applyStyles && (columnStyles === null || columnStyles === void 0 ? void 0 : columnStyles[i]) ? columnStyleMap[columnStyles[i]](cell) : cell;
64
+ return ` ${pad(styled, widths[i])} ` + pc.gray('│');
65
+ })
66
+ .join('');
67
+ const lines = [divider('┌', '┬', '┐'), renderRow(coloredHeaders), divider('├', '┼', '┤')];
68
+ rows.forEach((row, i) => {
69
+ lines.push(renderRow(row, true));
70
+ if (rowSeparators) {
71
+ lines.push(i < rows.length - 1 ? divider('├', '┼', '┤') : divider('└', '┴', '┘'));
72
+ }
73
+ });
74
+ if (!rowSeparators)
75
+ lines.push(divider('└', '┴', '┘'));
76
+ return lines.join('\n');
77
+ }
78
+ /** Pad `text` to `width` visible characters (ANSI-safe). */
79
+ function pad(text, width) {
80
+ return text + ' '.repeat(Math.max(0, width - stripAnsi(text).length));
81
+ }
37
82
  //# sourceMappingURL=prompt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/prompts/prompt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAe,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE1F,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAO,KAAa,EAAE,OAAe,EAAE,OAAe,EAAE,EAAyB;IAChH,MAAM,CAAC,GAAG,OAAO,CAAC;QAChB,aAAa,EAAE,WAAW;QAC1B,YAAY,EAAE,QAAQ;QACtB,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;KAC3D,CAAC,CAAC;IACH,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,MAAM,CAAC,KAAK,CACV,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EACxB,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CACzB,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,KAAa,EAAE,EAAE;IAC5D,MAAM,MAAM,GAAa,OAAO,CAAC,MAAM,CAAC;IACxC,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;QAC/C,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAC7B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC;IACpC,CAAC,CAAC,CAAC;IACH,IAAI,kBAAkB,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC7D,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC3C,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7E,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAgB;YACxB,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI;SACvB,CAAC;QACF,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/prompts/prompt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAe,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE1F,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAO,KAAa,EAAE,OAAe,EAAE,OAAe,EAAE,EAAyB;IAChH,MAAM,CAAC,GAAG,OAAO,CAAC;QAChB,aAAa,EAAE,WAAW;QAC1B,YAAY,EAAE,QAAQ;QACtB,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;KAC3D,CAAC,CAAC;IACH,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,MAAM,CAAC,KAAK,CACV,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,EACxB,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CACzB,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,KAAa,EAAE,EAAE;IAC5D,MAAM,MAAM,GAAa,OAAO,CAAC,MAAM,CAAC;IACxC,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;QAC/C,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAC7B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC;IACpC,CAAC,CAAC,CAAC;IACH,IAAI,kBAAkB,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC7D,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC3C,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7E,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAgB;YACxB,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI;SACvB,CAAC;QACF,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,UAAU,qBAAqB,CACnC,MAA+C,EAC/C,OAAiB,EACjB,YAA4B;IAE5B,OAAO,MAAM;SACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC;SAC7G,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,UAAU,CACjB,OAAiB,EACjB,IAAgB,EAChB,aAAa,GAAG,KAAK,EACrB,YAA4B;IAE5B,MAAM,OAAO,GAAG,CAAC,CAAC;IAClB,MAAM,aAAa,GAAG,CAAC,CAAC;IACxB,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhE,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,CACtB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAC9F,CAAC;IAEF,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACzD,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9E,IAAI,UAAU,GAAG,eAAe,EAAE,CAAC;QACjC,MAAM,cAAc,GAAG,eAAe,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;QAChE,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACvD,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IACvG,CAAC;IAED,MAAM,cAAc,GAAkD;QACpE,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QACnC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;QACjC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;KAC9B,CAAC;IACF,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACnH,MAAM,SAAS,GAAG,CAAC,KAAe,EAAE,WAAW,GAAG,KAAK,EAAE,EAAE,CACzD,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;QACZ,KAAK;aACF,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACf,MAAM,MAAM,GAAG,WAAW,KAAI,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAG,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC/F,OAAO,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtD,CAAC,CAAC;aACD,IAAI,CAAC,EAAE,CAAC,CAAC;IAEd,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,SAAS,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAC1F,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QACtB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;QACjC,IAAI,aAAa,EAAE,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACpF,CAAC;IACH,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,aAAa;QAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACvD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,4DAA4D;AAC5D,SAAS,GAAG,CAAC,IAAY,EAAE,KAAa;IACtC,OAAO,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AACxE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { Result } from 'neverthrow';
2
+ import { ServiceError } from '../../../infrastructure/service-error.js';
3
+ import { PublishingProfileSummaryGroup, PublishingProfileItem } from '../../../types/publish-api/publishing-profile-item.js';
4
+ export declare class PublishingProfileListPrompts {
5
+ fetchProfiles(fn: Promise<Result<PublishingProfileItem[], ServiceError>>): Promise<Result<PublishingProfileItem[], ServiceError>>;
6
+ fetchError(error: ServiceError): void;
7
+ noProfilesFound(): void;
8
+ displayProfiles(groups: PublishingProfileSummaryGroup[]): void;
9
+ }
@@ -0,0 +1,27 @@
1
+ import { log } from '@clack/prompts';
2
+ import { buildTableWithHeading, withSpinner } from '../../prompt.js';
3
+ export class PublishingProfileListPrompts {
4
+ fetchProfiles(fn) {
5
+ return withSpinner('Fetching publishing profiles', 'Publishing profiles fetched successfully.', 'Failed to fetch publishing profiles.', fn);
6
+ }
7
+ fetchError(error) {
8
+ log.error(error.errorMessage);
9
+ }
10
+ noProfilesFound() {
11
+ log.info('No publishing profiles found. Please create a publishing profile on the APIMatic App to view it here.');
12
+ }
13
+ displayProfiles(groups) {
14
+ const count = groups.reduce((sum, g) => sum + g.profiles.length, 0);
15
+ const label = count === 1 ? '1 profile' : `${count} profiles`;
16
+ const tableGroups = groups.map((group) => ({
17
+ heading: group.apiGroupName,
18
+ rows: group.profiles.map((profile) => [
19
+ profile.name,
20
+ profile.id,
21
+ profile.enabledLanguages.length === 0 ? '—' : profile.enabledLanguages.join(', '),
22
+ ]),
23
+ }));
24
+ log.info(`Publishing Profiles (${label})\n\n${buildTableWithHeading(tableGroups, ['Name', 'ID', 'Languages'], ['primary', 'secondary', 'item'])}`);
25
+ }
26
+ }
27
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/prompts/publishing/profile/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAIrC,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAErE,MAAM,OAAO,4BAA4B;IAChC,aAAa,CAAC,EAA0D;QAC7E,OAAO,WAAW,CAChB,8BAA8B,EAC9B,2CAA2C,EAC3C,sCAAsC,EACtC,EAAE,CACH,CAAC;IACJ,CAAC;IAEM,UAAU,CAAC,KAAmB;QACnC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;IAEM,eAAe;QACpB,GAAG,CAAC,IAAI,CAAC,uGAAuG,CAAC,CAAC;IACpH,CAAC;IAEM,eAAe,CAAC,MAAuC;QAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC;QAC9D,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACzC,OAAO,EAAE,KAAK,CAAC,YAAY;YAC3B,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;gBACpC,OAAO,CAAC,IAAI;gBACZ,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;aAClF,CAAC;SACH,CAAC,CAAC,CAAC;QACJ,GAAG,CAAC,IAAI,CAAC,wBAAwB,KAAK,QAAQ,qBAAqB,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;IACrJ,CAAC;CACF"}
@@ -1,15 +1,17 @@
1
1
  import { DirectoryPath } from "../../types/file/directoryPath.js";
2
2
  import { Result } from "neverthrow";
3
3
  import { ServiceError } from "../../infrastructure/service-error.js";
4
+ import { GeneratedSdkResult } from "../../infrastructure/services/portal-service.js";
4
5
  export declare class SdkGeneratePrompts {
5
6
  overwriteSdk(directory: DirectoryPath): Promise<boolean>;
6
7
  sameBuildAndSdkDir(directory: DirectoryPath): void;
8
+ srcDirectoryEmpty(directory: DirectoryPath): void;
7
9
  specDirectoryEmpty(directory: DirectoryPath): void;
8
10
  destinationDirNotEmpty(): void;
9
- generateSDK(fn: Promise<Result<NodeJS.ReadableStream, ServiceError>>): Promise<Result<NodeJS.ReadableStream, ServiceError>>;
10
- logGenerationError(error: string): void;
11
+ generateSDK(fn: Promise<Result<GeneratedSdkResult, ServiceError>>): Promise<Result<GeneratedSdkResult, ServiceError>>;
11
12
  sdkGenerationServiceError(serviceError: ServiceError): void;
12
- versionedBuildEmpty(directory: DirectoryPath): void;
13
+ invalidVersionedDocsDirectory(directory: DirectoryPath): void;
14
+ apiVersionOnlyApplicableWithVersionedBuild(): void;
13
15
  versionNotFound(): void;
14
16
  selectVersion(versions: string[]): Promise<string | undefined>;
15
17
  sdkGenerated(sdk: DirectoryPath): void;
@@ -1,5 +1,5 @@
1
1
  import { isCancel, confirm, log, select } from "@clack/prompts";
2
- import { format as f, } from "../format.js";
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,32 +13,38 @@ 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);
32
- }
33
35
  sdkGenerationServiceError(serviceError) {
34
36
  log.error(serviceError.errorMessage);
35
37
  }
36
- versionedBuildEmpty(directory) {
37
- const message = `The ${f.var(directory.leafName())} directory is either empty or invalid: ${f.path(directory)}`;
38
- this.logGenerationError(message);
38
+ invalidVersionedDocsDirectory(directory) {
39
+ const message = `The ${f.var("versioned_docs")} directory is either empty or invalid: ${f.path(directory)}`;
40
+ log.error(message);
41
+ }
42
+ apiVersionOnlyApplicableWithVersionedBuild() {
43
+ log.warn(`The ${f.flag("api-version")} is only applicable with a versioned build.`);
39
44
  }
40
45
  versionNotFound() {
41
- this.logGenerationError(`The API version is invalid.`);
46
+ const message = `The selected API version is invalid.`;
47
+ log.error(message);
42
48
  }
43
49
  async selectVersion(versions) {
44
50
  const version = await select({
@@ -51,7 +57,7 @@ export class SdkGeneratePrompts {
51
57
  return version;
52
58
  }
53
59
  sdkGenerated(sdk) {
54
- log.info(`Generated SDK can be found at ${f.path(sdk)}.`);
60
+ log.info(`The generated SDK can be found at ${f.path(sdk)}.`);
55
61
  }
56
62
  }
57
63
  //# 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,EAAE,MAAM,gBAAgB,CAAC;AAEhE,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,CAAC,SAAwB;QACjD,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,0CAA0C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAChH,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAEM,eAAe;QACpB,IAAI,CAAC,kBAAkB,CAAC,6BAA6B,CAAC,CAAC;IACzD,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,QAAkB;QAC3C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC;YAC3B,OAAO,EAAE,2CAA2C;YACpD,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;SACvD,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACtB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,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
+ }