@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
@@ -0,0 +1,90 @@
1
+ import git from "isomorphic-git";
2
+ import fs from "fs";
3
+ import { FileName } from "../types/file/fileName.js";
4
+ import { FilePath } from "../types/file/filePath.js";
5
+ import { Directory } from "../types/file/directory.js";
6
+ const GIT_AUTHOR = { name: "APIMatic-bot", email: "developer@apimatic.io" };
7
+ const CUSTOM_BRANCH = "custom-code";
8
+ const MAIN_BRANCH = "main";
9
+ export class GitService {
10
+ async checkoutCustomBranch(dirPath) {
11
+ const dir = dirPath.toString();
12
+ if (!await this.hasCustomBranch(dirPath)) {
13
+ await git.branch({ fs, dir, ref: CUSTOM_BRANCH });
14
+ }
15
+ await git.checkout({ fs, dir, ref: CUSTOM_BRANCH });
16
+ }
17
+ async hasCustomBranch(dirPath) {
18
+ const dir = dirPath.toString();
19
+ const branches = await git.listBranches({ fs, dir });
20
+ return branches.includes(CUSTOM_BRANCH);
21
+ }
22
+ getMergeFiles(dirPath) {
23
+ const gitDir = dirPath.join(".git");
24
+ const mergeFiles = ["MERGE_HEAD", "MERGE_MODE", "MERGE_MSG"];
25
+ return mergeFiles.map((filename) => new FilePath(gitDir, new FileName(filename)));
26
+ }
27
+ async forceCheckoutMainBranch(dirPath) {
28
+ await git.checkout({ fs, dir: dirPath.toString(), ref: MAIN_BRANCH, force: true });
29
+ }
30
+ async getDirectoryWithUpdatedFiles(dirPath) {
31
+ const statusMatrix = await git.statusMatrix({ fs, dir: dirPath.toString() });
32
+ const relativeUncommitedFiles = statusMatrix
33
+ // include updated and resolved conflict files
34
+ .filter(([, headStatus, workdirStatus, stageStatus]) => headStatus !== workdirStatus || stageStatus === 3)
35
+ .map(([relativePath, workdirStatus, headStatus]) => {
36
+ if (headStatus === 0) {
37
+ return { fileName: new FileName(relativePath), description: "# Deleted" };
38
+ }
39
+ if (workdirStatus === 0) {
40
+ return { fileName: new FileName(relativePath), description: "# Added" };
41
+ }
42
+ return { fileName: new FileName(relativePath), description: "# Modified" };
43
+ });
44
+ return Directory.createFromRelativePaths(dirPath, relativeUncommitedFiles);
45
+ }
46
+ async stageAll(dir) {
47
+ const statusMatrix = await git.statusMatrix({ fs, dir: dir.toString() });
48
+ await Promise.all(statusMatrix
49
+ // include updated and resolved conflict files
50
+ .filter(([, headStatus, workdirStatus, stageStatus]) => headStatus !== workdirStatus || stageStatus === 3)
51
+ .map(([relativePath, , workdirStatus]) => {
52
+ if (workdirStatus === 0) {
53
+ return git.remove({ fs, dir: dir.toString(), filepath: relativePath });
54
+ }
55
+ return git.add({ fs, dir: dir.toString(), filepath: relativePath });
56
+ }));
57
+ }
58
+ async getDirectoryWithUnmergedFiles(dir) {
59
+ try {
60
+ await git.merge({ fs, dir: dir.toString(), ours: CUSTOM_BRANCH, theirs: MAIN_BRANCH, author: GIT_AUTHOR });
61
+ return new Directory(dir, []);
62
+ }
63
+ catch (error) {
64
+ if (error instanceof git.Errors.UnmergedPathsError) {
65
+ return Directory.createFromRelativePaths(dir, error.data.filepaths.map((filePath) => ({ fileName: new FileName(filePath), description: "# Conflicted file" })));
66
+ }
67
+ if (error instanceof git.Errors.MergeConflictError) {
68
+ return new Directory(dir, []);
69
+ }
70
+ throw error;
71
+ }
72
+ }
73
+ async commitResolvedConflicts(dir) {
74
+ await this.stageAll(dir);
75
+ const headOid = await git.resolveRef({ fs, dir: dir.toString(), ref: "HEAD" });
76
+ const mainOid = await git.resolveRef({ fs, dir: dir.toString(), ref: MAIN_BRANCH });
77
+ await git.commit({
78
+ fs,
79
+ dir: dir.toString(),
80
+ message: `Merge branch '${MAIN_BRANCH}' into ${CUSTOM_BRANCH}`,
81
+ author: GIT_AUTHOR,
82
+ parent: [headOid, mainOid],
83
+ });
84
+ }
85
+ async commitReviewedChanges(dir) {
86
+ await this.stageAll(dir);
87
+ await git.commit({ fs, dir: dir.toString(), message: "feat: add customizations to generated SDK", author: GIT_AUTHOR });
88
+ }
89
+ }
90
+ //# sourceMappingURL=git-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-service.js","sourceRoot":"","sources":["../../src/infrastructure/git-service.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,12 @@ import { UrlPath } from "../types/file/urlPath.js";
3
3
  import { DirectoryPath } from "../types/file/directoryPath.js";
4
4
  export declare class LauncherService {
5
5
  openFolderInIde(directoryPath: DirectoryPath, fileToOpen: FilePath): Promise<boolean>;
6
+ isIdeAvailable(): Promise<boolean>;
7
+ openFolderInIdeWithWait(directoryPath: DirectoryPath, filesToOpen: FilePath[]): Promise<boolean>;
6
8
  openInEditor(filePath: FilePath): Promise<void>;
7
9
  openFile(filePath: FilePath): Promise<void>;
10
+ openDirectory(directoryPath: DirectoryPath): Promise<void>;
11
+ openDirectoryInEditorOrFileExplorer(directoryPath: DirectoryPath, fileToOpen: FilePath): Promise<void>;
12
+ private openPath;
8
13
  openUrlInBrowser(url: UrlPath): Promise<import("child_process").ChildProcess> | undefined;
9
14
  }
@@ -8,7 +8,28 @@ export class LauncherService {
8
8
  if (isInCi)
9
9
  return false;
10
10
  try {
11
- await execa("code", [directoryPath.toString(), fileToOpen.toString()]);
11
+ const args = [directoryPath.toString(), fileToOpen.toString()];
12
+ await execa("code", args);
13
+ return true;
14
+ }
15
+ catch (_a) {
16
+ return false;
17
+ }
18
+ }
19
+ async isIdeAvailable() {
20
+ try {
21
+ const command = process.platform === "win32" ? "where" : "which";
22
+ await execa(command, ["code"]);
23
+ return true;
24
+ }
25
+ catch (_a) {
26
+ return false;
27
+ }
28
+ }
29
+ async openFolderInIdeWithWait(directoryPath, filesToOpen) {
30
+ try {
31
+ const args = [directoryPath.toString(), ...filesToOpen.map(f => f.toString())];
32
+ await execa("code", ["--new-window", "--wait", ...args]);
12
33
  return true;
13
34
  }
14
35
  catch (_a) {
@@ -32,7 +53,19 @@ export class LauncherService {
32
53
  }
33
54
  }
34
55
  async openFile(filePath) {
35
- const targetPath = filePath.toString();
56
+ await this.openPath(filePath.toString());
57
+ }
58
+ async openDirectory(directoryPath) {
59
+ await this.openPath(directoryPath.toString());
60
+ }
61
+ async openDirectoryInEditorOrFileExplorer(directoryPath, fileToOpen) {
62
+ if (isInCi)
63
+ return;
64
+ if (!(await this.openFolderInIde(directoryPath, fileToOpen))) {
65
+ await this.openDirectory(directoryPath);
66
+ }
67
+ }
68
+ async openPath(targetPath) {
36
69
  // Determine the command and args without using the shell
37
70
  let command;
38
71
  let args;
@@ -1 +1 @@
1
- {"version":3,"file":"launcher-service.js","sourceRoot":"","sources":["../../src/infrastructure/launcher-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,MAAM,MAAM,UAAU,CAAC;AAG9B,MAAM,OAAO,eAAe;IACnB,KAAK,CAAC,eAAe,CAAC,aAA4B,EAAE,UAAoB;QAC7E,IAAI,MAAM;YAAE,OAAO,KAAK,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YACvE,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,WAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,QAAkB;QAC1C,IAAI,MAAM;YAAE,OAAO;QACnB,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACvD,CAAC;QAAC,WAAM,CAAC;YACP,mCAAmC;YACnC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;gBACjC,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YACpG,CAAC;iBAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACzC,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,QAAkB;QACtC,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAEvC,yDAAyD;QACzD,IAAI,OAAe,CAAC;QACpB,IAAI,IAAc,CAAC;QAEnB,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;YACtB,KAAK,OAAO;gBACV,OAAO,GAAG,KAAK,CAAC;gBAChB,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC;gBACvC,MAAM;YACR,KAAK,QAAQ;gBACX,OAAO,GAAG,MAAM,CAAC;gBACjB,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;gBACpB,MAAM;YACR;gBACE,OAAO,GAAG,UAAU,CAAC;gBACrB,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;gBACpB,MAAM;QACV,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YACxE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,8BAA8B;QAC/C,CAAC;QAAC,WAAM,CAAC;YACP,yBAAyB;QAC3B,CAAC;IACH,CAAC;IAEM,gBAAgB,CAAC,GAAY;QAClC,IAAI,MAAM;YAAE,OAAO;QACnB,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9B,CAAC;QAAC,WAAM,CAAC;YACP,yBAAyB;QAC3B,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"launcher-service.js","sourceRoot":"","sources":["../../src/infrastructure/launcher-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { DirectoryPath } from '../types/file/directoryPath.js';
2
+ export declare function getDownloadsDirectory(prefix?: string): DirectoryPath;
@@ -0,0 +1,6 @@
1
+ import os from 'os';
2
+ import { DirectoryPath } from '../types/file/directoryPath.js';
3
+ export function getDownloadsDirectory(prefix = 'apimatic') {
4
+ return new DirectoryPath(os.homedir()).join('Downloads').join(prefix);
5
+ }
6
+ //# sourceMappingURL=os-extensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"os-extensions.js","sourceRoot":"","sources":["../../src/infrastructure/os-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,MAAM,UAAU,qBAAqB,CAAC,MAAM,GAAE,UAAU;IACtD,OAAO,IAAI,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACxE,CAAC"}
@@ -1,16 +1,28 @@
1
+ export declare enum ServiceErrorCode {
2
+ NotFound = "NOT_FOUND",
3
+ ServerError = "SERVER_ERROR",
4
+ NetworkError = "NETWORK_ERROR",
5
+ InvalidResponse = "INVALID_RESPONSE",
6
+ UnAuthorized = "UNAUTHORIZED",
7
+ BadRequest = "BAD_REQUEST",
8
+ Forbidden = "FORBIDDEN"
9
+ }
1
10
  export declare class ServiceError {
2
- readonly code: string;
11
+ readonly code: ServiceErrorCode;
3
12
  private readonly defaultMessage;
13
+ private readonly errors;
4
14
  private static defaultErrorMessage;
5
15
  static readonly NotFound: ServiceError;
6
16
  static readonly ServerError: ServiceError;
7
17
  static readonly NetworkError: ServiceError;
8
18
  static readonly InvalidResponse: ServiceError;
9
19
  static readonly UnAuthorized: ServiceError;
10
- static badRequest(customMessage: string): ServiceError;
20
+ static badRequest(customMessage: string, errors: Record<string, string[]>): ServiceError;
11
21
  static forbidden(customMessage: string): ServiceError;
22
+ static notFound(customMessage: string): ServiceError;
12
23
  static readonly values: ServiceError[];
13
24
  private constructor();
14
25
  get errorMessage(): string;
26
+ getError(key: string): string[] | undefined;
15
27
  }
16
28
  export declare function handleServiceError(error: unknown): ServiceError;
@@ -1,28 +1,45 @@
1
1
  var _a;
2
2
  import axios from "axios";
3
3
  import { format as f } from "../prompts/format.js";
4
+ export var ServiceErrorCode;
5
+ (function (ServiceErrorCode) {
6
+ ServiceErrorCode["NotFound"] = "NOT_FOUND";
7
+ ServiceErrorCode["ServerError"] = "SERVER_ERROR";
8
+ ServiceErrorCode["NetworkError"] = "NETWORK_ERROR";
9
+ ServiceErrorCode["InvalidResponse"] = "INVALID_RESPONSE";
10
+ ServiceErrorCode["UnAuthorized"] = "UNAUTHORIZED";
11
+ ServiceErrorCode["BadRequest"] = "BAD_REQUEST";
12
+ ServiceErrorCode["Forbidden"] = "FORBIDDEN";
13
+ })(ServiceErrorCode || (ServiceErrorCode = {}));
4
14
  export class ServiceError {
5
- static badRequest(customMessage) {
6
- return new _a("BAD_REQUEST", customMessage);
15
+ static badRequest(customMessage, errors) {
16
+ return new _a(ServiceErrorCode.BadRequest, customMessage, errors);
7
17
  }
8
18
  static forbidden(customMessage) {
9
- return new _a("FORBIDDEN", customMessage);
19
+ return new _a(ServiceErrorCode.Forbidden, customMessage, {});
10
20
  }
11
- constructor(code, defaultMessage) {
21
+ static notFound(customMessage) {
22
+ return new _a(ServiceErrorCode.NotFound, customMessage, {});
23
+ }
24
+ constructor(code, defaultMessage, errors) {
12
25
  this.code = code;
13
26
  this.defaultMessage = defaultMessage;
27
+ this.errors = errors;
14
28
  }
15
29
  get errorMessage() {
16
30
  return this.defaultMessage;
17
31
  }
32
+ getError(key) {
33
+ return this.errors[key];
34
+ }
18
35
  }
19
36
  _a = ServiceError;
20
37
  ServiceError.defaultErrorMessage = `An unexpected error occurred, please try again later. If the problem persists, please reach out to our team at ${f.var("support@apimatic.io")}`;
21
- ServiceError.NotFound = new _a("NOT_FOUND", "Resource not found.");
22
- ServiceError.ServerError = new _a("SERVER_ERROR", _a.defaultErrorMessage);
23
- ServiceError.NetworkError = new _a("NETWORK_ERROR", "Unable to connect to the server.");
24
- ServiceError.InvalidResponse = new _a("INVALID_RESPONSE", _a.defaultErrorMessage);
25
- ServiceError.UnAuthorized = new _a("UNAUTHORIZED", "Unauthorized access.");
38
+ ServiceError.NotFound = new _a(ServiceErrorCode.NotFound, "Resource not found.", {});
39
+ ServiceError.ServerError = new _a(ServiceErrorCode.ServerError, _a.defaultErrorMessage, {});
40
+ ServiceError.NetworkError = new _a(ServiceErrorCode.NetworkError, "Unable to connect to the server.", {});
41
+ ServiceError.InvalidResponse = new _a(ServiceErrorCode.InvalidResponse, _a.defaultErrorMessage, {});
42
+ ServiceError.UnAuthorized = new _a(ServiceErrorCode.UnAuthorized, "Unauthorized access.", {});
26
43
  ServiceError.values = [
27
44
  _a.NotFound,
28
45
  _a.ServerError,
@@ -1 +1 @@
1
- {"version":3,"file":"service-error.js","sourceRoot":"","sources":["../../src/infrastructure/service-error.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,sBAAsB,CAAC;AAEnD,MAAM,OAAO,YAAY;IAUvB,MAAM,CAAC,UAAU,CAAC,aAAqB;QACrC,OAAO,IAAI,EAAY,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,CAAC,SAAS,CAAC,aAAqB;QACpC,OAAO,IAAI,EAAY,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACtD,CAAC;IAUD,YAAoC,IAAY,EAAmB,cAAsB;QAArD,SAAI,GAAJ,IAAI,CAAQ;QAAmB,mBAAc,GAAd,cAAc,CAAQ;IAAG,CAAC;IAE7F,IAAW,YAAY;QACrB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;;;AA5Bc,gCAAmB,GAAG,kHAAkH,CAAC,CAAC,GAAG,CAC1J,qBAAqB,CACtB,EAAE,AAF+B,CAE9B;AAEY,qBAAQ,GAAG,IAAI,EAAY,CAAC,WAAW,EAAE,qBAAqB,CAAC,AAAvD,CAAwD;AAChE,wBAAW,GAAG,IAAI,EAAY,CAAC,cAAc,EAAE,EAAI,CAAC,mBAAmB,CAAC,AAA7D,CAA8D;AACzE,yBAAY,GAAG,IAAI,EAAY,CAAC,eAAe,EAAE,kCAAkC,CAAC,AAAxE,CAAyE;AACrF,4BAAe,GAAG,IAAI,EAAY,CAAC,kBAAkB,EAAE,EAAI,CAAC,mBAAmB,CAAC,AAAjE,CAAkE;AACjF,yBAAY,GAAG,IAAI,EAAY,CAAC,cAAc,EAAE,sBAAsB,CAAC,AAA3D,CAA4D;AAQxE,mBAAM,GAAmB;IACvC,EAAY,CAAC,QAAQ;IACrB,EAAY,CAAC,WAAW;IACxB,EAAY,CAAC,YAAY;IACzB,EAAY,CAAC,eAAe;IAC5B,EAAY,CAAC,YAAY;CAC1B,AANqB,CAMpB;AASJ,MAAM,UAAU,kBAAkB,CAAC,KAAc;;IAC/C,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,MAAA,KAAK,CAAC,QAAQ,0CAAE,MAAM,CAAC;QACtC,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,YAAY,CAAC,YAAY,CAAC;QACrD,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,YAAY,CAAC,QAAQ,CAAC;QACjD,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,YAAY,CAAC,WAAW,CAAC;QAEpD,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACjG,OAAO,YAAY,CAAC,YAAY,CAAC;QACnC,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC,WAAW,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"service-error.js","sourceRoot":"","sources":["../../src/infrastructure/service-error.ts"],"names":[],"mappings":"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"}
@@ -6,12 +6,17 @@ import { CommandMetadata } from "../../types/common/command-metadata.js";
6
6
  import { Result } from "neverthrow";
7
7
  import { Language } from "../../types/sdk/generate.js";
8
8
  import { ServiceError } from "../service-error.js";
9
+ import { SemVersion } from "../../types/publish/version.js";
10
+ export interface GeneratedSdkResult {
11
+ sdk: NodeJS.ReadableStream;
12
+ sdkSourceTree: NodeJS.ReadableStream;
13
+ }
9
14
  export declare class PortalService {
10
15
  private readonly CONTENT_TYPE;
11
16
  private readonly fileService;
12
17
  private readonly apiService;
13
18
  generatePortal(buildPath: FilePath, configDir: DirectoryPath, commandMetadata: CommandMetadata, authKey: string | null): Promise<Result<NodeJS.ReadableStream, ServiceError | NodeJS.ReadableStream>>;
14
- generateSdk(buildPath: FilePath, language: Language, configDir: DirectoryPath, commandMetadata: CommandMetadata, authKey: string | null): Promise<Result<NodeJS.ReadableStream, ServiceError>>;
19
+ generateSdk(buildPath: FilePath, language: Language, configDir: DirectoryPath, commandMetadata: CommandMetadata, authKey: string | null, version?: SemVersion): Promise<Result<GeneratedSdkResult, ServiceError>>;
15
20
  generateSdl(specFileStream: ReadStream, configDir: DirectoryPath, commandMetadata: CommandMetadata): Promise<Result<Sdl, ServiceError>>;
16
21
  private createAuthorizationHeader;
17
22
  private createOriginQueryParameter;
@@ -1,4 +1,4 @@
1
- import { ApiError, SdkGenerationAsyncController, ContentType, DocsPortalGenerationAsyncController, ProblemDetailsError, FileWrapper, TransformationController, ExportFormats, SdkLanguages, Status, } from "@apimatic/sdk";
1
+ import { ApiError, SdkGenerationAsyncController, ContentType, DocsPortalGenerationAsyncController, SdkSourceTreeGenerationAsyncController, ProblemDetailsError, FileWrapper, TransformationController, ExportFormats, SdkLanguages, Status, } from "@apimatic/sdk";
2
2
  import { getAuthInfo } from "../../client-utils/auth-manager.js";
3
3
  import { parseStreamBodyToJson } from "../../utils/utils.js";
4
4
  import { FileService } from "../file-service.js";
@@ -47,11 +47,12 @@ export class PortalService {
47
47
  }
48
48
  catch (error) {
49
49
  if (error instanceof ProblemDetailsError) {
50
+ const errors = error.result.errors;
50
51
  // TODO: This only picks the first error message, improve it to show all errors.
51
- const message = (_b = (_a = Object.values(error.result.errors)[0]) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : null;
52
+ const message = (_b = (_a = Object.values(errors)[0]) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : null;
52
53
  const errorMessage = error.result.title + "\n- " + message;
53
54
  if (error.statusCode === 400) {
54
- return err(ServiceError.badRequest(errorMessage));
55
+ return err(ServiceError.badRequest(errorMessage, errors));
55
56
  }
56
57
  if (error.statusCode === 403) {
57
58
  return err(ServiceError.forbidden(errorMessage));
@@ -74,14 +75,16 @@ export class PortalService {
74
75
  return err(ServiceError.ServerError);
75
76
  }
76
77
  if (statusResult.value.errors && statusResult.value.status === Status.ValidationError) {
77
- // TODO: This only picks the first error message, improve it to show all errors.
78
- const message = (_d = (_c = Object.values(statusResult.value.errors)[0]) === null || _c === void 0 ? void 0 : _c[0]) !== null && _d !== void 0 ? _d : null;
79
- const errorMessage = "One or more validation errors occurred." + "\n- " + message;
80
- return err(ServiceError.badRequest(errorMessage));
78
+ const errors = statusResult.value.errors;
79
+ const message = (_d = (_c = Object.values(errors)[0]) === null || _c === void 0 ? void 0 : _c[0]) !== null && _d !== void 0 ? _d : null;
80
+ const errorMessage = "One or more validation errors occurred." +
81
+ "\n- " + message;
82
+ return err(ServiceError.badRequest(errorMessage, errors));
81
83
  }
82
84
  if (statusResult.value.errors && statusResult.value.status === Status.SubscriptionError) {
85
+ const errors = statusResult.value.errors;
83
86
  // TODO: This only picks the first error message, improve it to show all errors.
84
- const message = (_f = (_e = Object.values(statusResult.value.errors)[0]) === null || _e === void 0 ? void 0 : _e[0]) !== null && _f !== void 0 ? _f : null;
87
+ const message = (_f = (_e = Object.values(errors)[0]) === null || _e === void 0 ? void 0 : _e[0]) !== null && _f !== void 0 ? _f : null;
85
88
  const errorMessage = "Access denied to resource." + "\n- " + message;
86
89
  return err(ServiceError.forbidden(errorMessage));
87
90
  }
@@ -98,8 +101,8 @@ export class PortalService {
98
101
  }
99
102
  }
100
103
  // TODO: Pass stream as parameter instead of file path.
101
- async generateSdk(buildPath, language, configDir, commandMetadata, authKey) {
102
- var _a, _b, _c, _d;
104
+ async generateSdk(buildPath, language, configDir, commandMetadata, authKey, version) {
105
+ var _a, _b, _c;
103
106
  const buildFileStream = await this.fileService.getStream(buildPath);
104
107
  const file = new FileWrapper(buildFileStream);
105
108
  const authInfo = await getAuthInfo(configDir.toString());
@@ -108,16 +111,17 @@ export class PortalService {
108
111
  const sdkGenerationController = new SdkGenerationAsyncController(client);
109
112
  let generationId;
110
113
  try {
111
- const response = await sdkGenerationController.generateSdkViaBuildInputAsync(this.CONTENT_TYPE, file, this.languageSdk[language]);
114
+ const response = await sdkGenerationController.generateSdkViaBuildInputAsync(this.CONTENT_TYPE, file, this.languageSdk[language], undefined, version === null || version === void 0 ? void 0 : version.toString());
112
115
  generationId = response.result.id;
113
116
  }
114
117
  catch (error) {
115
118
  if (error instanceof ProblemDetailsError) {
116
119
  // TODO: This only picks the first error message, improve it to show all errors.
117
- const message = (_b = (_a = Object.values(error.result.errors)[0]) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : null;
120
+ const errors = error.result.errors;
121
+ const message = (_b = (_a = Object.values(errors)[0]) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : null;
118
122
  const errorMessage = error.result.title + "\n- " + message;
119
123
  if (error.statusCode === 400) {
120
- return err(ServiceError.badRequest(errorMessage));
124
+ return err(ServiceError.badRequest(errorMessage, errors));
121
125
  }
122
126
  if (error.statusCode === 403) {
123
127
  return err(ServiceError.forbidden(errorMessage));
@@ -140,19 +144,34 @@ export class PortalService {
140
144
  return err(ServiceError.ServerError);
141
145
  }
142
146
  if (statusResult.value.errors && statusResult.value.status === Status.ValidationError) {
143
- const message = (_c = Object.values(statusResult.value.errors).flat()[0]) !== null && _c !== void 0 ? _c : null;
144
- const errorMessage = "One or more validation errors occurred." + "\n- " + message;
145
- return err(ServiceError.badRequest(errorMessage));
147
+ const errors = statusResult.value.errors;
148
+ const sdkMergeFailedLanguages = errors.sdkMergeFailed;
149
+ if (sdkMergeFailedLanguages === null || sdkMergeFailedLanguages === void 0 ? void 0 : sdkMergeFailedLanguages.length) {
150
+ const errorMessage = "SDK generation failed for these languages due to merge conflict." +
151
+ "\n- " +
152
+ sdkMergeFailedLanguages.join("\n- ");
153
+ return err(ServiceError.badRequest(errorMessage, errors));
154
+ }
155
+ const messages = Object.values(errors).flat();
156
+ const errorMessage = "One or more validation errors occurred." +
157
+ (messages.length ? "\n- " + messages.join("\n- ") : "");
158
+ return err(ServiceError.badRequest(errorMessage, errors));
146
159
  }
147
160
  if (statusResult.value.errors && statusResult.value.status === Status.SubscriptionError) {
148
- const message = (_d = Object.values(statusResult.value.errors).flat()[0]) !== null && _d !== void 0 ? _d : null;
161
+ const errors = statusResult.value.errors;
162
+ const message = (_c = Object.values(errors).flat()[0]) !== null && _c !== void 0 ? _c : null;
149
163
  const errorMessage = "Access denied to resource." + "\n- " + message;
150
164
  return err(ServiceError.forbidden(errorMessage));
151
165
  }
152
166
  } while (statusResult.value.status !== Status.Completed);
153
167
  try {
154
168
  const sdkResponse = await sdkGenerationController.downloadGeneratedSdk(generationId);
155
- return ok(sdkResponse.result);
169
+ const sdkSourceTreeController = new SdkSourceTreeGenerationAsyncController(client);
170
+ const sdkSourceTreeResponse = await sdkSourceTreeController.downloadGeneratedSdkSourceTree(generationId);
171
+ return ok({
172
+ sdk: sdkResponse.result,
173
+ sdkSourceTree: sdkSourceTreeResponse.result
174
+ });
156
175
  }
157
176
  catch (error) {
158
177
  return err(handleServiceError(error));
@@ -1 +1 @@
1
- {"version":3,"file":"portal-service.js","sourceRoot":"","sources":["../../../src/infrastructure/services/portal-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"portal-service.js","sourceRoot":"","sources":["../../../src/infrastructure/services/portal-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { Result } from 'neverthrow';
2
+ import { PublishingProfileItem } from '../../types/publish-api/publishing-profile-item.js';
3
+ import { ServiceError } from '../service-error.js';
4
+ import { DirectoryPath } from '../../types/file/directoryPath.js';
5
+ import { Language } from '../../types/sdk/generate.js';
6
+ import { FilePath } from '../../types/file/filePath.js';
7
+ import { PublishingInfo } from '../../types/publish-api/publishing-info.js';
8
+ import { PublishType } from '../../types/publish-api/publishing-profile-item.js';
9
+ import { PublishLogItem } from '../../types/publish-api/publish-log.js';
10
+ import { SemVersion } from '../../types/publish/version.js';
11
+ import { ProfileId } from '../../types/publish/profile-id.js';
12
+ export declare class PublishingApiService {
13
+ private readonly apiBaseUrl;
14
+ private readonly fileService;
15
+ getPublishingProfiles(configDir: DirectoryPath, shell: string): Promise<Result<PublishingProfileItem[], ServiceError>>;
16
+ publishSdkPackage(sdkFilePath: FilePath, profileId: ProfileId, language: Language, packageVersion: SemVersion, publishType: PublishType[], configDir: DirectoryPath, shell: string): Promise<Result<PublishingInfo, ServiceError>>;
17
+ getSdkPublishingLog(publishingLogId: string, configDir: DirectoryPath, shell: string): Promise<Result<PublishLogItem, ServiceError>>;
18
+ private axiosInstance;
19
+ }
@@ -0,0 +1,111 @@
1
+ import axios, { AxiosError } from 'axios';
2
+ import { err, ok } from 'neverthrow';
3
+ import FormData from 'form-data';
4
+ import { handleServiceError, ServiceError } from '../service-error.js';
5
+ import { getAuthInfo } from '../../client-utils/auth-manager.js';
6
+ import { envInfo } from '../env-info.js';
7
+ import { FileService } from '../file-service.js';
8
+ export class PublishingApiService {
9
+ constructor() {
10
+ this.apiBaseUrl = 'https://api.package-publishing.apimatic.io/api';
11
+ this.fileService = new FileService();
12
+ }
13
+ async getPublishingProfiles(configDir, shell) {
14
+ const authInfo = await getAuthInfo(configDir.toString());
15
+ if (authInfo === null) {
16
+ return err(ServiceError.UnAuthorized);
17
+ }
18
+ try {
19
+ const token = authInfo.authKey;
20
+ const response = await this.axiosInstance(shell, token).get(`/publishing-profile/user`);
21
+ if (response.status === 200) {
22
+ return ok(response.data);
23
+ }
24
+ return err(ServiceError.InvalidResponse);
25
+ }
26
+ catch (error) {
27
+ return err(handleServiceError(error));
28
+ }
29
+ }
30
+ async publishSdkPackage(sdkFilePath, profileId, language, packageVersion, publishType, configDir, shell) {
31
+ var _a, _b;
32
+ const authInfo = await getAuthInfo(configDir.toString());
33
+ if (authInfo === null) {
34
+ return err(ServiceError.UnAuthorized);
35
+ }
36
+ const sdkFileStream = await this.fileService.getStream(sdkFilePath);
37
+ try {
38
+ const token = authInfo.authKey;
39
+ const formData = new FormData();
40
+ formData.append('file', sdkFileStream);
41
+ formData.append('packageVersion', packageVersion.toString());
42
+ // If both package and source code publishing are not selected, publishType array will contain only one of them, so we need to specify which one to the API.
43
+ // If both are selected, we will omit this field as API defaults to both types being selected.
44
+ if (publishType.length !== 2) {
45
+ formData.append('publishType', publishType[0]);
46
+ }
47
+ const response = await this.axiosInstance(shell, token).post(`/publish/${profileId}/${language}`, formData, {
48
+ headers: formData.getHeaders(),
49
+ responseType: 'json'
50
+ });
51
+ if (response.status === 200) {
52
+ return ok(response.data);
53
+ }
54
+ return err(ServiceError.InvalidResponse);
55
+ }
56
+ catch (error) {
57
+ if (error instanceof AxiosError) {
58
+ const data = (_a = error.response) === null || _a === void 0 ? void 0 : _a.data;
59
+ if (error.status === 400) {
60
+ const errors = data.errors;
61
+ const detail = errors ? (_b = Object.values(errors)[0]) === null || _b === void 0 ? void 0 : _b[0] : data.detail;
62
+ const errorMessage = data.title + '\n- ' + detail;
63
+ return err(ServiceError.badRequest(errorMessage, errors !== null && errors !== void 0 ? errors : {}));
64
+ }
65
+ if (error.status === 403) {
66
+ const errorMessage = data.title + '\n- ' + data.detail;
67
+ return err(ServiceError.forbidden(errorMessage));
68
+ }
69
+ if (error.status === 404) {
70
+ const errorMessage = data.title + '\n- ' + data.detail;
71
+ return err(ServiceError.notFound(errorMessage));
72
+ }
73
+ }
74
+ return err(handleServiceError(error));
75
+ }
76
+ finally {
77
+ sdkFileStream.close();
78
+ }
79
+ }
80
+ async getSdkPublishingLog(publishingLogId, configDir, shell) {
81
+ const authInfo = await getAuthInfo(configDir.toString());
82
+ if (authInfo === null) {
83
+ return err(ServiceError.UnAuthorized);
84
+ }
85
+ try {
86
+ const token = authInfo.authKey;
87
+ const response = await this.axiosInstance(shell, token).get(`/publish-logs/${publishingLogId}`);
88
+ if (response.status === 200) {
89
+ return ok(response.data);
90
+ }
91
+ return err(ServiceError.InvalidResponse);
92
+ }
93
+ catch (error) {
94
+ return err(handleServiceError(error));
95
+ }
96
+ }
97
+ axiosInstance(shell, apiKey) {
98
+ var _a;
99
+ const headers = {
100
+ 'User-Agent': envInfo.getUserAgent(shell)
101
+ };
102
+ if (apiKey) {
103
+ headers.Authorization = `X-Auth-Key ${apiKey}`;
104
+ }
105
+ return axios.create({
106
+ baseURL: (_a = envInfo.getPublishingBaseUrl()) !== null && _a !== void 0 ? _a : this.apiBaseUrl,
107
+ headers
108
+ });
109
+ }
110
+ }
111
+ //# sourceMappingURL=publishing-api-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publishing-api-service.js","sourceRoot":"","sources":["../../../src/infrastructure/services/publishing-api-service.ts"],"names":[],"mappings":"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"}