@apimatic/cli 1.2.0 → 1.3.0-beta.1

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 (168) hide show
  1. package/README.md +65 -1
  2. package/lib/actions/action-result.d.ts +1 -0
  3. package/lib/actions/action-result.js +3 -0
  4. package/lib/actions/action-result.js.map +1 -1
  5. package/lib/actions/auth/status.js +5 -1
  6. package/lib/actions/auth/status.js.map +1 -1
  7. package/lib/actions/plugin/generate.d.ts +12 -0
  8. package/lib/actions/plugin/generate.js +71 -0
  9. package/lib/actions/plugin/generate.js.map +1 -0
  10. package/lib/actions/plugin/publish.d.ts +6 -0
  11. package/lib/actions/plugin/publish.js +43 -0
  12. package/lib/actions/plugin/publish.js.map +1 -0
  13. package/lib/actions/plugin/record-metadata.d.ts +18 -0
  14. package/lib/actions/plugin/record-metadata.js +57 -0
  15. package/lib/actions/plugin/record-metadata.js.map +1 -0
  16. package/lib/actions/plugin/record-sdk.d.ts +14 -0
  17. package/lib/actions/plugin/record-sdk.js +60 -0
  18. package/lib/actions/plugin/record-sdk.js.map +1 -0
  19. package/lib/actions/portal/quickstart.js +1 -1
  20. package/lib/actions/portal/quickstart.js.map +1 -1
  21. package/lib/actions/portal/toc/new-toc.js +27 -16
  22. package/lib/actions/portal/toc/new-toc.js.map +1 -1
  23. package/lib/actions/sdk/generate.d.ts +2 -2
  24. package/lib/actions/sdk/generate.js +4 -4
  25. package/lib/actions/sdk/generate.js.map +1 -1
  26. package/lib/actions/sdk/publish/interactive.js +22 -3
  27. package/lib/actions/sdk/publish/interactive.js.map +1 -1
  28. package/lib/actions/sdk/publish/non-interactive.d.ts +2 -2
  29. package/lib/actions/sdk/publish/non-interactive.js +19 -12
  30. package/lib/actions/sdk/publish/non-interactive.js.map +1 -1
  31. package/lib/actions/sdk/publish.d.ts +2 -3
  32. package/lib/actions/sdk/publish.js +26 -5
  33. package/lib/actions/sdk/publish.js.map +1 -1
  34. package/lib/actions/sdk/quickstart.js +2 -2
  35. package/lib/actions/sdk/quickstart.js.map +1 -1
  36. package/lib/commands/plugin/generate.d.ts +14 -0
  37. package/lib/commands/plugin/generate.js +37 -0
  38. package/lib/commands/plugin/generate.js.map +1 -0
  39. package/lib/commands/plugin/publish.d.ts +11 -0
  40. package/lib/commands/plugin/publish.js +29 -0
  41. package/lib/commands/plugin/publish.js.map +1 -0
  42. package/lib/commands/portal/generate.js +1 -1
  43. package/lib/commands/portal/generate.js.map +1 -1
  44. package/lib/commands/quickstart.js +1 -1
  45. package/lib/commands/quickstart.js.map +1 -1
  46. package/lib/commands/sdk/generate.js +4 -3
  47. package/lib/commands/sdk/generate.js.map +1 -1
  48. package/lib/commands/sdk/publish.d.ts +3 -0
  49. package/lib/commands/sdk/publish.js +18 -5
  50. package/lib/commands/sdk/publish.js.map +1 -1
  51. package/lib/config/axios-config.d.ts +6 -0
  52. package/lib/config/axios-config.js +8 -2
  53. package/lib/config/axios-config.js.map +1 -1
  54. package/lib/infrastructure/generation-status-poller.d.ts +31 -0
  55. package/lib/infrastructure/generation-status-poller.js +56 -0
  56. package/lib/infrastructure/generation-status-poller.js.map +1 -0
  57. package/lib/infrastructure/service-error.d.ts +11 -1
  58. package/lib/infrastructure/service-error.js +102 -0
  59. package/lib/infrastructure/service-error.js.map +1 -1
  60. package/lib/infrastructure/services/api-service.d.ts +0 -4
  61. package/lib/infrastructure/services/api-service.js +0 -72
  62. package/lib/infrastructure/services/api-service.js.map +1 -1
  63. package/lib/infrastructure/services/plugin-service.d.ts +24 -0
  64. package/lib/infrastructure/services/plugin-service.js +141 -0
  65. package/lib/infrastructure/services/plugin-service.js.map +1 -0
  66. package/lib/infrastructure/services/portal-service.d.ts +16 -1
  67. package/lib/infrastructure/services/portal-service.js +176 -130
  68. package/lib/infrastructure/services/portal-service.js.map +1 -1
  69. package/lib/infrastructure/services/publishing-api-service.js +12 -6
  70. package/lib/infrastructure/services/publishing-api-service.js.map +1 -1
  71. package/lib/infrastructure/services/transformation-service.d.ts +1 -0
  72. package/lib/infrastructure/services/transformation-service.js +29 -14
  73. package/lib/infrastructure/services/transformation-service.js.map +1 -1
  74. package/lib/infrastructure/services/validation-service.js +1 -1
  75. package/lib/infrastructure/services/validation-service.js.map +1 -1
  76. package/lib/prompts/auth/login.js +9 -2
  77. package/lib/prompts/auth/login.js.map +1 -1
  78. package/lib/prompts/auth/status.d.ts +1 -0
  79. package/lib/prompts/auth/status.js +5 -0
  80. package/lib/prompts/auth/status.js.map +1 -1
  81. package/lib/prompts/format.d.ts +4 -3
  82. package/lib/prompts/format.js +14 -13
  83. package/lib/prompts/format.js.map +1 -1
  84. package/lib/prompts/plugin/generate.d.ts +19 -0
  85. package/lib/prompts/plugin/generate.js +64 -0
  86. package/lib/prompts/plugin/generate.js.map +1 -0
  87. package/lib/prompts/plugin/publish.d.ts +25 -0
  88. package/lib/prompts/plugin/publish.js +77 -0
  89. package/lib/prompts/plugin/publish.js.map +1 -0
  90. package/lib/prompts/plugin/record-metadata.d.ts +25 -0
  91. package/lib/prompts/plugin/record-metadata.js +70 -0
  92. package/lib/prompts/plugin/record-metadata.js.map +1 -0
  93. package/lib/prompts/plugin/record-sdk.d.ts +9 -0
  94. package/lib/prompts/plugin/record-sdk.js +40 -0
  95. package/lib/prompts/plugin/record-sdk.js.map +1 -0
  96. package/lib/prompts/portal/generate.js +1 -1
  97. package/lib/prompts/portal/generate.js.map +1 -1
  98. package/lib/prompts/portal/quickstart.d.ts +1 -1
  99. package/lib/prompts/portal/quickstart.js +12 -5
  100. package/lib/prompts/portal/quickstart.js.map +1 -1
  101. package/lib/prompts/portal/toc/new-toc.d.ts +3 -2
  102. package/lib/prompts/portal/toc/new-toc.js +7 -3
  103. package/lib/prompts/portal/toc/new-toc.js.map +1 -1
  104. package/lib/prompts/publishing/profile/list.js +8 -3
  105. package/lib/prompts/publishing/profile/list.js.map +1 -1
  106. package/lib/prompts/quickstart.js +4 -4
  107. package/lib/prompts/quickstart.js.map +1 -1
  108. package/lib/prompts/sdk/generate.d.ts +2 -0
  109. package/lib/prompts/sdk/generate.js +7 -0
  110. package/lib/prompts/sdk/generate.js.map +1 -1
  111. package/lib/prompts/sdk/publish/interactive.d.ts +6 -4
  112. package/lib/prompts/sdk/publish/interactive.js +25 -11
  113. package/lib/prompts/sdk/publish/interactive.js.map +1 -1
  114. package/lib/prompts/sdk/publish/non-interactive.d.ts +1 -6
  115. package/lib/prompts/sdk/publish/non-interactive.js +7 -49
  116. package/lib/prompts/sdk/publish/non-interactive.js.map +1 -1
  117. package/lib/prompts/sdk/publish.d.ts +15 -2
  118. package/lib/prompts/sdk/publish.js +71 -5
  119. package/lib/prompts/sdk/publish.js.map +1 -1
  120. package/lib/prompts/sdk/quickstart.js +2 -0
  121. package/lib/prompts/sdk/quickstart.js.map +1 -1
  122. package/lib/types/api/generation-status.d.ts +5 -0
  123. package/lib/types/api/generation-status.js +2 -0
  124. package/lib/types/api/generation-status.js.map +1 -0
  125. package/lib/types/build/build.d.ts +1 -0
  126. package/lib/types/build/build.js +14 -0
  127. package/lib/types/build/build.js.map +1 -1
  128. package/lib/types/file/directory.d.ts +3 -0
  129. package/lib/types/file/directory.js +13 -0
  130. package/lib/types/file/directory.js.map +1 -1
  131. package/lib/types/plugin/generation-status.d.ts +23 -0
  132. package/lib/types/plugin/generation-status.js +18 -0
  133. package/lib/types/plugin/generation-status.js.map +1 -0
  134. package/lib/types/plugin/language-entry.d.ts +9 -0
  135. package/lib/types/plugin/language-entry.js +64 -0
  136. package/lib/types/plugin/language-entry.js.map +1 -0
  137. package/lib/types/plugin/plugin-config.d.ts +72 -0
  138. package/lib/types/plugin/plugin-config.js +4 -0
  139. package/lib/types/plugin/plugin-config.js.map +1 -0
  140. package/lib/types/plugin/plugin-contents.d.ts +5 -0
  141. package/lib/types/plugin/plugin-contents.js +2 -0
  142. package/lib/types/plugin/plugin-contents.js.map +1 -0
  143. package/lib/types/plugin-config-context.d.ts +63 -0
  144. package/lib/types/plugin-config-context.js +179 -0
  145. package/lib/types/plugin-config-context.js.map +1 -0
  146. package/lib/types/plugin-context.d.ts +13 -0
  147. package/lib/types/plugin-context.js +28 -0
  148. package/lib/types/plugin-context.js.map +1 -0
  149. package/lib/types/publish/package-settings-configuration.d.ts +11 -1
  150. package/lib/types/publish/package-settings-configuration.js +1 -1
  151. package/lib/types/publish/package-settings-configuration.js.map +1 -1
  152. package/lib/types/publish/publishing-profile.d.ts +3 -2
  153. package/lib/types/publish/publishing-profile.js +24 -18
  154. package/lib/types/publish/publishing-profile.js.map +1 -1
  155. package/lib/types/publish/version.d.ts +6 -1
  156. package/lib/types/publish/version.js +2 -1
  157. package/lib/types/publish/version.js.map +1 -1
  158. package/lib/types/sdk/generate.d.ts +19 -0
  159. package/lib/types/sdk/generate.js +44 -0
  160. package/lib/types/sdk/generate.js.map +1 -1
  161. package/lib/types/toc/toc-components.d.ts +0 -1
  162. package/lib/types/toc/toc-components.js +0 -3
  163. package/lib/types/toc/toc-components.js.map +1 -1
  164. package/lib/types/utils.d.ts +1 -0
  165. package/lib/utils/utils.d.ts +1 -0
  166. package/lib/utils/utils.js +22 -0
  167. package/lib/utils/utils.js.map +1 -1
  168. package/package.json +6 -3
@@ -0,0 +1,141 @@
1
+ import axios from 'axios';
2
+ import FormData from 'form-data';
3
+ import { err, ok } from 'neverthrow';
4
+ import { getAuthInfo } from '../../client-utils/auth-manager.js';
5
+ import { REQUEST_TIMEOUT_MS } from '../../config/axios-config.js';
6
+ import { PluginGenerationStatus } from '../../types/plugin/generation-status.js';
7
+ import { discardStreamBody } from '../../utils/utils.js';
8
+ import { envInfo } from '../env-info.js';
9
+ import { GENERATION_TIMEOUT_MS, pollUntilCompleted, STATUS_POLL_INTERVAL_MS } from '../generation-status-poller.js';
10
+ import { FileService } from '../file-service.js';
11
+ import { mapRequestError, mapTransportError, ServiceError } from '../service-error.js';
12
+ const TIMING_DEFAULTS = {
13
+ pollIntervalMs: STATUS_POLL_INTERVAL_MS,
14
+ generationTimeoutMs: GENERATION_TIMEOUT_MS,
15
+ requestTimeoutMs: REQUEST_TIMEOUT_MS
16
+ };
17
+ export class PluginService {
18
+ constructor(timings = {}) {
19
+ this.apiBaseUrl = 'https://api.apimatic.io';
20
+ this.fileService = new FileService();
21
+ this.timings = Object.assign(Object.assign({}, TIMING_DEFAULTS), timings);
22
+ }
23
+ async generatePlugin(buildPath, configDir, commandMetadata, authKey) {
24
+ const authInfo = await getAuthInfo(configDir.toString());
25
+ // `auth logout` blanks config.json rather than deleting it, so a logged-out user
26
+ // still has a non-null AuthInfo with an empty key — check the key, not the object.
27
+ const token = authKey || (authInfo === null || authInfo === void 0 ? void 0 : authInfo.authKey);
28
+ if (!token) {
29
+ return err(ServiceError.unauthorizedWithHint(null));
30
+ }
31
+ const initiated = await this.initiateGeneration(buildPath, commandMetadata, token);
32
+ if (initiated.isErr()) {
33
+ return err(initiated.error);
34
+ }
35
+ const generationId = initiated.value.id;
36
+ const completed = await pollUntilCompleted({
37
+ pollIntervalMs: this.timings.pollIntervalMs,
38
+ fetchStatus: () => this.getGenerationStatus(generationId, commandMetadata.shell, token),
39
+ timeout: { budgetMs: this.timings.generationTimeoutMs, label: 'Plugin generation' },
40
+ formatValidationError: formatPluginValidationError
41
+ });
42
+ if (completed.isErr()) {
43
+ return err(completed.error);
44
+ }
45
+ return await this.downloadPlugin(generationId, commandMetadata.shell, token);
46
+ }
47
+ async initiateGeneration(buildPath, commandMetadata, token) {
48
+ var _a;
49
+ const buildFileStream = await this.fileService.getStream(buildPath);
50
+ try {
51
+ const formData = new FormData();
52
+ formData.append('file', buildFileStream);
53
+ const response = await this.axiosInstance(commandMetadata.shell, token).post('/plugin', formData, {
54
+ headers: formData.getHeaders(),
55
+ params: { origin: `APIMATIC CLI ${commandMetadata.commandName}` },
56
+ responseType: 'json'
57
+ });
58
+ const id = (_a = response.data) === null || _a === void 0 ? void 0 : _a.id;
59
+ return id ? ok({ id }) : err(ServiceError.InvalidResponse);
60
+ }
61
+ catch (error) {
62
+ return err(mapRequestError(error));
63
+ }
64
+ finally {
65
+ buildFileStream.close();
66
+ }
67
+ }
68
+ async getGenerationStatus(generationId, shell, token) {
69
+ try {
70
+ const response = await this.axiosInstance(shell, token).get(`/plugin/${generationId}/status`, {
71
+ headers: { Accept: 'application/json' },
72
+ maxRedirects: 0,
73
+ validateStatus: () => true
74
+ });
75
+ if (response.status === 200) {
76
+ return ok(response.data);
77
+ }
78
+ // Once generation finishes, the API redirects to the download location.
79
+ if (response.status === 302) {
80
+ return ok({ status: PluginGenerationStatus.Completed });
81
+ }
82
+ // `validateStatus` above stops axios throwing, so nothing reaches the catch block.
83
+ if (response.status === 401) {
84
+ return err(ServiceError.unauthorizedWithHint(null));
85
+ }
86
+ if (response.status === 404) {
87
+ return err(ServiceError.NotFound);
88
+ }
89
+ if (response.status === 500) {
90
+ return err(ServiceError.ServerError);
91
+ }
92
+ return err(ServiceError.InvalidResponse);
93
+ }
94
+ catch (error) {
95
+ return err(mapRequestError(error));
96
+ }
97
+ }
98
+ async downloadPlugin(generationId, shell, token) {
99
+ var _a;
100
+ try {
101
+ const response = await this.axiosInstance(shell, token).get(`/plugin/${generationId}/download`, {
102
+ responseType: 'stream'
103
+ });
104
+ return ok(response.data);
105
+ }
106
+ catch (error) {
107
+ // The body of a failed streamed response is itself a stream; leaving it open hangs the CLI.
108
+ // Discarding it also rules out reading ProblemDetails here, so only the status code maps.
109
+ if (axios.isAxiosError(error)) {
110
+ discardStreamBody((_a = error.response) === null || _a === void 0 ? void 0 : _a.data);
111
+ }
112
+ return err(mapTransportError(error));
113
+ }
114
+ }
115
+ axiosInstance(shell, apiKey) {
116
+ var _a;
117
+ return axios.create({
118
+ baseURL: (_a = envInfo.getBaseUrl()) !== null && _a !== void 0 ? _a : this.apiBaseUrl,
119
+ timeout: this.timings.requestTimeoutMs,
120
+ headers: {
121
+ 'User-Agent': envInfo.getUserAgent(shell),
122
+ Authorization: `X-Auth-Key ${apiKey}`
123
+ }
124
+ });
125
+ }
126
+ }
127
+ const formatPluginValidationError = (errors) => {
128
+ const messages = Object.entries(errors).flatMap(([path, pathMessages]) => pathMessages.map((message) => qualify(path, message)));
129
+ return 'One or more validation errors occurred.' + (messages.length ? '\n- ' + messages.join('\n- ') : '');
130
+ };
131
+ const qualify = (path, message) => {
132
+ if (!path)
133
+ return message;
134
+ const quotedProperty = /^'([^']+)'/.exec(message);
135
+ const property = quotedProperty === null || quotedProperty === void 0 ? void 0 : quotedProperty[1];
136
+ if (property && (path === property || path.endsWith(`.${property}`))) {
137
+ return `'${path}'${message.slice(quotedProperty[0].length)}`;
138
+ }
139
+ return `${path}: ${message}`;
140
+ };
141
+ //# sourceMappingURL=plugin-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-service.js","sourceRoot":"","sources":["../../../src/infrastructure/services/plugin-service.ts"],"names":[],"mappings":"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"}
@@ -12,17 +12,32 @@ export interface GeneratedSdkResult {
12
12
  sdk: NodeJS.ReadableStream;
13
13
  sdkSourceTree: NodeJS.ReadableStream;
14
14
  }
15
+ declare const TIMING_DEFAULTS: {
16
+ pollIntervalMs: number;
17
+ generationTimeoutMs: number;
18
+ requestTimeoutMs: number;
19
+ };
20
+ /** Overridable so tests are not paced by the production defaults; nothing else overrides them. */
21
+ export type GenerationTimings = Partial<typeof TIMING_DEFAULTS>;
15
22
  export declare class PortalService {
16
23
  private readonly CONTENT_TYPE;
24
+ private readonly apiBaseUrl;
17
25
  private readonly fileService;
18
- private readonly apiService;
26
+ private readonly timings;
27
+ constructor(timings?: GenerationTimings);
19
28
  generatePortal(buildPath: FilePath, configDir: DirectoryPath, commandMetadata: CommandMetadata, authKey: string | null): Promise<Result<NodeJS.ReadableStream, ServiceError | NodeJS.ReadableStream>>;
20
29
  generateSdk(buildPath: FilePath, language: Language, configDir: DirectoryPath, commandMetadata: CommandMetadata, authKey: string | null, version?: SemVersion): Promise<Result<GeneratedSdkResult, ServiceError>>;
21
30
  generateV4Sdk(buildPath: FilePath, language: Language, stability: Stability, configDir: DirectoryPath, commandMetadata: CommandMetadata, authKey: string | null): Promise<Result<NodeJS.ReadableStream, ServiceError>>;
22
31
  generateSdl(specFileStream: ReadStream, configDir: DirectoryPath, commandMetadata: CommandMetadata): Promise<Result<Sdl, ServiceError>>;
23
32
  generateTocData(specFileStream: ReadStream, configDir: DirectoryPath, commandMetadata: CommandMetadata): Promise<Result<TocData, ServiceError>>;
24
33
  private createAuthorizationHeader;
34
+ private resolveToken;
35
+ private getPortalGenerationStatus;
36
+ private getSdkGenerationStatus;
37
+ private getV4SdkGenerationStatus;
38
+ private axiosInstance;
25
39
  private createOriginQueryParameter;
26
40
  private readonly languageSdk;
27
41
  private readonly stabilityTag;
28
42
  }
43
+ export {};
@@ -1,4 +1,5 @@
1
- import { ApiError, SdkGenerationAsyncController, ContentType, DocsPortalGenerationAsyncController, SdkSourceTreeGenerationAsyncController, ProblemDetailsError, FileWrapper, TransformationController, ExportFormats, SdkLanguages, Status, TableOfContentsController, StabilityLevelTag, V2SdkGenerationController, } from "@apimatic/sdk";
1
+ import axios from "axios";
2
+ import { ApiError, SdkGenerationAsyncController, ContentType, DocsPortalGenerationAsyncController, SdkSourceTreeGenerationAsyncController, FileWrapper, TransformationController, ExportFormats, SdkLanguages, Status, TableOfContentsController, StabilityLevelTag, V2SdkGenerationController, } from "@apimatic/sdk";
2
3
  import { getAuthInfo } from "../../client-utils/auth-manager.js";
3
4
  import { parseStreamBodyToJson } from "../../utils/utils.js";
4
5
  import { FileService } from "../file-service.js";
@@ -6,15 +7,25 @@ import { apiClientFactory } from "./api-client-factory.js";
6
7
  import { err, ok } from "neverthrow";
7
8
  import { Language, Stability } from "../../types/sdk/generate.js";
8
9
  import { handleServiceError, ServiceError } from "../service-error.js";
9
- import { ApiService } from "./api-service.js";
10
+ import { formatValidationErrors, GENERATION_TIMEOUT_MS, pollUntilCompleted, STATUS_POLL_INTERVAL_MS } from "../generation-status-poller.js";
11
+ import { envInfo } from "../env-info.js";
12
+ import { REQUEST_TIMEOUT_MS } from "../../config/axios-config.js";
13
+ const TIMING_DEFAULTS = {
14
+ pollIntervalMs: STATUS_POLL_INTERVAL_MS,
15
+ generationTimeoutMs: GENERATION_TIMEOUT_MS,
16
+ requestTimeoutMs: REQUEST_TIMEOUT_MS
17
+ };
10
18
  export class PortalService {
11
- constructor() {
19
+ constructor(timings = {}) {
12
20
  this.CONTENT_TYPE = ContentType.EnumMultipartformdata;
21
+ this.apiBaseUrl = "https://api.apimatic.io";
13
22
  this.fileService = new FileService();
14
- this.apiService = new ApiService();
15
23
  this.createAuthorizationHeader = (authInfo, overrideAuthKey) => {
16
- const key = overrideAuthKey || (authInfo === null || authInfo === void 0 ? void 0 : authInfo.authKey);
17
- return `X-Auth-Key ${key !== null && key !== void 0 ? key : ""}`;
24
+ var _a;
25
+ return `X-Auth-Key ${(_a = this.resolveToken(authInfo, overrideAuthKey)) !== null && _a !== void 0 ? _a : ""}`;
26
+ };
27
+ this.resolveToken = (authInfo, overrideAuthKey) => {
28
+ return overrideAuthKey || (authInfo === null || authInfo === void 0 ? void 0 : authInfo.authKey);
18
29
  };
19
30
  this.createOriginQueryParameter = (commandName) => {
20
31
  return {
@@ -34,10 +45,10 @@ export class PortalService {
34
45
  [Stability.STABLE]: StabilityLevelTag.Stable,
35
46
  [Stability.BETA]: StabilityLevelTag.Beta
36
47
  };
48
+ this.timings = Object.assign(Object.assign({}, TIMING_DEFAULTS), timings);
37
49
  }
38
50
  // TODO: Pass stream as parameter instead of file path.
39
51
  async generatePortal(buildPath, configDir, commandMetadata, authKey) {
40
- var _a, _b, _c, _d, _e, _f;
41
52
  const buildFileStream = await this.fileService.getStream(buildPath);
42
53
  const file = new FileWrapper(buildFileStream);
43
54
  const authInfo = await getAuthInfo(configDir.toString());
@@ -50,49 +61,20 @@ export class PortalService {
50
61
  generationId = portalInstance.result.id;
51
62
  }
52
63
  catch (error) {
53
- if (error instanceof ProblemDetailsError) {
54
- const errors = error.result.errors;
55
- // TODO: This only picks the first error message, improve it to show all errors.
56
- const message = (_b = (_a = Object.values(errors)[0]) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : null;
57
- const errorMessage = error.result.title + "\n- " + message;
58
- if (error.statusCode === 400) {
59
- return err(ServiceError.badRequest(errorMessage, errors));
60
- }
61
- if (error.statusCode === 403) {
62
- return err(ServiceError.forbidden(errorMessage));
63
- }
64
- }
65
- const serviceError = handleServiceError(error);
66
- return err(serviceError);
64
+ // ProblemDetails (400/403), 401 and other SDK statuses are mapped centrally.
65
+ return err(handleServiceError(error));
67
66
  }
68
67
  finally {
69
68
  buildFileStream.close();
70
69
  }
71
- let statusResult;
72
- do {
73
- await new Promise((resolve) => setTimeout(resolve, 3000));
74
- statusResult = await this.apiService.getPortalGenerationStatus(generationId, configDir, commandMetadata.shell, authKey);
75
- if (statusResult.isErr()) {
76
- return err(statusResult.error);
77
- }
78
- if (statusResult.value.status === Status.Failed) {
79
- return err(ServiceError.ServerError);
80
- }
81
- if (statusResult.value.errors && statusResult.value.status === Status.ValidationError) {
82
- const errors = statusResult.value.errors;
83
- const message = (_d = (_c = Object.values(errors)[0]) === null || _c === void 0 ? void 0 : _c[0]) !== null && _d !== void 0 ? _d : null;
84
- const errorMessage = "One or more validation errors occurred." +
85
- "\n- " + message;
86
- return err(ServiceError.badRequest(errorMessage, errors));
87
- }
88
- if (statusResult.value.errors && statusResult.value.status === Status.SubscriptionError) {
89
- const errors = statusResult.value.errors;
90
- // TODO: This only picks the first error message, improve it to show all errors.
91
- const message = (_f = (_e = Object.values(errors)[0]) === null || _e === void 0 ? void 0 : _e[0]) !== null && _f !== void 0 ? _f : null;
92
- const errorMessage = "Access denied to resource." + "\n- " + message;
93
- return err(ServiceError.forbidden(errorMessage));
94
- }
95
- } while (statusResult.value.status !== Status.Completed);
70
+ const statusResult = await pollUntilCompleted({
71
+ pollIntervalMs: this.timings.pollIntervalMs,
72
+ fetchStatus: () => this.getPortalGenerationStatus(generationId, commandMetadata.shell, this.resolveToken(authInfo, authKey)),
73
+ timeout: { budgetMs: this.timings.generationTimeoutMs, label: "Portal generation" }
74
+ });
75
+ if (statusResult.isErr()) {
76
+ return err(statusResult.error);
77
+ }
96
78
  try {
97
79
  const portalDownloadResponse = await docsPortalAsyncController.downloadGeneratedPortal(generationId);
98
80
  return ok(portalDownloadResponse.result);
@@ -106,7 +88,6 @@ export class PortalService {
106
88
  }
107
89
  // TODO: Pass stream as parameter instead of file path.
108
90
  async generateSdk(buildPath, language, configDir, commandMetadata, authKey, version) {
109
- var _a, _b, _c;
110
91
  const buildFileStream = await this.fileService.getStream(buildPath);
111
92
  const file = new FileWrapper(buildFileStream);
112
93
  const authInfo = await getAuthInfo(configDir.toString());
@@ -119,55 +100,20 @@ export class PortalService {
119
100
  generationId = response.result.id;
120
101
  }
121
102
  catch (error) {
122
- if (error instanceof ProblemDetailsError) {
123
- // TODO: This only picks the first error message, improve it to show all errors.
124
- const errors = error.result.errors;
125
- const message = (_b = (_a = Object.values(errors)[0]) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : null;
126
- const errorMessage = error.result.title + "\n- " + message;
127
- if (error.statusCode === 400) {
128
- return err(ServiceError.badRequest(errorMessage, errors));
129
- }
130
- if (error.statusCode === 403) {
131
- return err(ServiceError.forbidden(errorMessage));
132
- }
133
- }
134
- const serviceError = handleServiceError(error);
135
- return err(serviceError);
103
+ return err(handleServiceError(error));
136
104
  }
137
105
  finally {
138
106
  buildFileStream.close();
139
107
  }
140
- let statusResult;
141
- do {
142
- await new Promise((resolve) => setTimeout(resolve, 3000));
143
- statusResult = await this.apiService.getSdkGenerationStatus(generationId, configDir, commandMetadata.shell, authKey);
144
- if (statusResult.isErr()) {
145
- return err(statusResult.error);
146
- }
147
- if (statusResult.value.status === Status.Failed) {
148
- return err(ServiceError.ServerError);
149
- }
150
- if (statusResult.value.errors && statusResult.value.status === Status.ValidationError) {
151
- const errors = statusResult.value.errors;
152
- const sdkMergeFailedLanguages = errors.sdkMergeFailed;
153
- if (sdkMergeFailedLanguages === null || sdkMergeFailedLanguages === void 0 ? void 0 : sdkMergeFailedLanguages.length) {
154
- const errorMessage = "SDK generation failed for these languages due to merge conflict." +
155
- "\n- " +
156
- sdkMergeFailedLanguages.join("\n- ");
157
- return err(ServiceError.badRequest(errorMessage, errors));
158
- }
159
- const messages = Object.values(errors).flat();
160
- const errorMessage = "One or more validation errors occurred." +
161
- (messages.length ? "\n- " + messages.join("\n- ") : "");
162
- return err(ServiceError.badRequest(errorMessage, errors));
163
- }
164
- if (statusResult.value.errors && statusResult.value.status === Status.SubscriptionError) {
165
- const errors = statusResult.value.errors;
166
- const message = (_c = Object.values(errors).flat()[0]) !== null && _c !== void 0 ? _c : null;
167
- const errorMessage = "Access denied to resource." + "\n- " + message;
168
- return err(ServiceError.forbidden(errorMessage));
169
- }
170
- } while (statusResult.value.status !== Status.Completed);
108
+ const statusResult = await pollUntilCompleted({
109
+ pollIntervalMs: this.timings.pollIntervalMs,
110
+ fetchStatus: () => this.getSdkGenerationStatus(generationId, commandMetadata.shell, this.resolveToken(authInfo, authKey)),
111
+ timeout: { budgetMs: this.timings.generationTimeoutMs, label: "SDK generation" },
112
+ formatValidationError: formatSdkValidationError
113
+ });
114
+ if (statusResult.isErr()) {
115
+ return err(statusResult.error);
116
+ }
171
117
  try {
172
118
  const sdkResponse = await sdkGenerationController.downloadGeneratedSdk(generationId);
173
119
  const sdkSourceTreeController = new SdkSourceTreeGenerationAsyncController(client);
@@ -182,7 +128,6 @@ export class PortalService {
182
128
  }
183
129
  }
184
130
  async generateV4Sdk(buildPath, language, stability, configDir, commandMetadata, authKey) {
185
- var _a, _b, _c;
186
131
  const buildFileStream = await this.fileService.getStream(buildPath);
187
132
  const file = new FileWrapper(buildFileStream);
188
133
  const authInfo = await getAuthInfo(configDir.toString());
@@ -195,47 +140,19 @@ export class PortalService {
195
140
  generationId = response.result.id;
196
141
  }
197
142
  catch (error) {
198
- if (error instanceof ProblemDetailsError) {
199
- // TODO: This only picks the first error message, improve it to show all errors.
200
- const errors = error.result.errors;
201
- const message = (_b = (_a = Object.values(errors)[0]) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : null;
202
- const errorMessage = error.result.title + '\n- ' + message;
203
- if (error.statusCode === 400) {
204
- return err(ServiceError.badRequest(errorMessage, errors));
205
- }
206
- if (error.statusCode === 403) {
207
- return err(ServiceError.forbidden(errorMessage));
208
- }
209
- }
210
- const serviceError = handleServiceError(error);
211
- return err(serviceError);
143
+ return err(handleServiceError(error));
212
144
  }
213
145
  finally {
214
146
  buildFileStream.close();
215
147
  }
216
- let statusResult;
217
- do {
218
- await new Promise((resolve) => setTimeout(resolve, 3000));
219
- statusResult = await this.apiService.getV4SdkGenerationStatus(generationId, configDir, commandMetadata.shell, authKey);
220
- if (statusResult.isErr()) {
221
- return err(statusResult.error);
222
- }
223
- if (statusResult.value.status === Status.Failed) {
224
- return err(ServiceError.ServerError);
225
- }
226
- if (statusResult.value.errors && statusResult.value.status === Status.ValidationError) {
227
- const errors = statusResult.value.errors;
228
- const messages = Object.values(errors).flat();
229
- const errorMessage = 'One or more validation errors occurred.' + (messages.length ? '\n- ' + messages.join('\n- ') : '');
230
- return err(ServiceError.badRequest(errorMessage, errors));
231
- }
232
- if (statusResult.value.errors && statusResult.value.status === Status.SubscriptionError) {
233
- const errors = statusResult.value.errors;
234
- const message = (_c = Object.values(errors).flat()[0]) !== null && _c !== void 0 ? _c : null;
235
- const errorMessage = 'Access denied to resource.' + '\n- ' + message;
236
- return err(ServiceError.forbidden(errorMessage));
237
- }
238
- } while (statusResult.value.status !== Status.Completed);
148
+ const statusResult = await pollUntilCompleted({
149
+ pollIntervalMs: this.timings.pollIntervalMs,
150
+ fetchStatus: () => this.getV4SdkGenerationStatus(generationId, commandMetadata.shell, this.resolveToken(authInfo, authKey)),
151
+ timeout: { budgetMs: this.timings.generationTimeoutMs, label: "SDK generation" }
152
+ });
153
+ if (statusResult.isErr()) {
154
+ return err(statusResult.error);
155
+ }
239
156
  try {
240
157
  const sdkResponse = await v2sdkGenerationController.downloadGeneratedV2Sdk(generationId);
241
158
  return ok(sdkResponse.result);
@@ -287,5 +204,134 @@ export class PortalService {
287
204
  return err(handleServiceError(error));
288
205
  }
289
206
  }
207
+ async getPortalGenerationStatus(requestId, shell, token) {
208
+ if (!token) {
209
+ return err(ServiceError.UnAuthorized);
210
+ }
211
+ try {
212
+ const response = await this.axiosInstance(shell, token).get(`/portal/v2/${requestId}/status`, {
213
+ headers: { Accept: "application/json" },
214
+ maxRedirects: 0,
215
+ validateStatus: () => true
216
+ });
217
+ if (response.status === 200) {
218
+ return ok(response.data);
219
+ }
220
+ // Once generation finishes, the API redirects to the download location.
221
+ if (response.status === 302) {
222
+ return ok({ status: Status.Completed });
223
+ }
224
+ // `validateStatus` above stops axios throwing, so nothing reaches the
225
+ // catch block — classify the status here, or a mistyped endpoint path and
226
+ // an expired auth key both surface as a generic "unexpected error".
227
+ if (response.status === 401) {
228
+ return err(ServiceError.UnAuthorized);
229
+ }
230
+ if (response.status === 404) {
231
+ return err(ServiceError.NotFound);
232
+ }
233
+ if (response.status === 500) {
234
+ return err(ServiceError.ServerError);
235
+ }
236
+ return err(ServiceError.InvalidResponse);
237
+ }
238
+ catch (error) {
239
+ return err(handleServiceError(error));
240
+ }
241
+ }
242
+ async getSdkGenerationStatus(requestId, shell, token) {
243
+ if (!token) {
244
+ return err(ServiceError.UnAuthorized);
245
+ }
246
+ try {
247
+ const response = await this.axiosInstance(shell, token).get(`/sdk/${requestId}/status`, {
248
+ headers: { Accept: "application/json" },
249
+ maxRedirects: 0,
250
+ validateStatus: () => true
251
+ });
252
+ if (response.status === 200) {
253
+ return ok(response.data);
254
+ }
255
+ // Once generation finishes, the API redirects to the download location.
256
+ if (response.status === 302) {
257
+ return ok({ status: Status.Completed });
258
+ }
259
+ // `validateStatus` above stops axios throwing, so nothing reaches the
260
+ // catch block — classify the status here, or a mistyped endpoint path and
261
+ // an expired auth key both surface as a generic "unexpected error".
262
+ if (response.status === 401) {
263
+ return err(ServiceError.UnAuthorized);
264
+ }
265
+ if (response.status === 404) {
266
+ return err(ServiceError.NotFound);
267
+ }
268
+ if (response.status === 500) {
269
+ return err(ServiceError.ServerError);
270
+ }
271
+ return err(ServiceError.InvalidResponse);
272
+ }
273
+ catch (error) {
274
+ return err(handleServiceError(error));
275
+ }
276
+ }
277
+ async getV4SdkGenerationStatus(requestId, shell, token) {
278
+ if (!token) {
279
+ return err(ServiceError.UnAuthorized);
280
+ }
281
+ try {
282
+ const response = await this.axiosInstance(shell, token).get(`/sdk/v2/${requestId}/status`, {
283
+ headers: { Accept: "application/json" },
284
+ maxRedirects: 0,
285
+ validateStatus: () => true
286
+ });
287
+ if (response.status === 200) {
288
+ return ok(response.data);
289
+ }
290
+ // Once generation finishes, the API redirects to the download location.
291
+ if (response.status === 302) {
292
+ return ok({ status: Status.Completed });
293
+ }
294
+ // `validateStatus` above stops axios throwing, so nothing reaches the
295
+ // catch block — classify the status here, or a mistyped endpoint path and
296
+ // an expired auth key both surface as a generic "unexpected error".
297
+ if (response.status === 401) {
298
+ return err(ServiceError.UnAuthorized);
299
+ }
300
+ if (response.status === 404) {
301
+ return err(ServiceError.NotFound);
302
+ }
303
+ if (response.status === 500) {
304
+ return err(ServiceError.ServerError);
305
+ }
306
+ return err(ServiceError.InvalidResponse);
307
+ }
308
+ catch (error) {
309
+ return err(handleServiceError(error));
310
+ }
311
+ }
312
+ axiosInstance(shell, apiKey) {
313
+ var _a;
314
+ return axios.create({
315
+ baseURL: (_a = envInfo.getBaseUrl()) !== null && _a !== void 0 ? _a : this.apiBaseUrl,
316
+ timeout: this.timings.requestTimeoutMs,
317
+ headers: {
318
+ "User-Agent": envInfo.getUserAgent(shell),
319
+ Authorization: `X-Auth-Key ${apiKey}`
320
+ }
321
+ });
322
+ }
290
323
  }
324
+ /**
325
+ * SDK generation reports per-language merge conflicts under a dedicated `sdkMergeFailed`
326
+ * key, which needs its own wording. Everything else falls back to the shared format.
327
+ */
328
+ const formatSdkValidationError = (errors) => {
329
+ const sdkMergeFailedLanguages = errors.sdkMergeFailed;
330
+ if (sdkMergeFailedLanguages === null || sdkMergeFailedLanguages === void 0 ? void 0 : sdkMergeFailedLanguages.length) {
331
+ return ("SDK generation failed for these languages due to merge conflict." +
332
+ "\n- " +
333
+ sdkMergeFailedLanguages.join("\n- "));
334
+ }
335
+ return formatValidationErrors(errors);
336
+ };
291
337
  //# sourceMappingURL=portal-service.js.map
@@ -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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"}