@apimatic/cli 1.1.0-alpha.13 → 1.1.0-alpha.15

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 (209) hide show
  1. package/README.md +96 -95
  2. package/lib/actions/action-result.d.ts +8 -0
  3. package/lib/actions/action-result.js +25 -0
  4. package/lib/actions/action-result.js.map +1 -0
  5. package/lib/actions/auth/login.d.ts +12 -0
  6. package/lib/actions/auth/login.js +63 -0
  7. package/lib/actions/auth/login.js.map +1 -0
  8. package/lib/actions/portal/copilot.d.ts +11 -0
  9. package/lib/actions/portal/copilot.js +46 -0
  10. package/lib/actions/portal/copilot.js.map +1 -0
  11. package/lib/actions/portal/generate.d.ts +11 -5
  12. package/lib/actions/portal/generate.js +54 -47
  13. package/lib/actions/portal/generate.js.map +1 -1
  14. package/lib/actions/portal/recipe/new-recipe.d.ts +3 -3
  15. package/lib/actions/portal/recipe/new-recipe.js +18 -31
  16. package/lib/actions/portal/recipe/new-recipe.js.map +1 -1
  17. package/lib/actions/portal/serve.d.ts +17 -0
  18. package/lib/actions/portal/serve.js +36 -0
  19. package/lib/actions/portal/serve.js.map +1 -0
  20. package/lib/actions/portal/toc/new-toc.d.ts +4 -1
  21. package/lib/actions/portal/toc/new-toc.js +37 -34
  22. package/lib/actions/portal/toc/new-toc.js.map +1 -1
  23. package/lib/actions/sdk/generate.d.ts +13 -0
  24. package/lib/actions/sdk/generate.js +49 -0
  25. package/lib/actions/sdk/generate.js.map +1 -0
  26. package/lib/application/portal/serve/portal-watcher.d.ts +11 -0
  27. package/lib/application/portal/serve/portal-watcher.js +67 -0
  28. package/lib/application/portal/serve/portal-watcher.js.map +1 -0
  29. package/lib/application/portal/serve/serve-handler.d.ts +16 -0
  30. package/lib/application/portal/serve/serve-handler.js +91 -0
  31. package/lib/application/portal/serve/serve-handler.js.map +1 -0
  32. package/lib/application/portal/serve/watcher-handler.d.ts +10 -0
  33. package/lib/application/portal/serve/watcher-handler.js +51 -0
  34. package/lib/application/portal/serve/watcher-handler.js.map +1 -0
  35. package/lib/application/portal/toc/sdl-parser.d.ts +2 -1
  36. package/lib/application/portal/toc/sdl-parser.js +4 -4
  37. package/lib/application/portal/toc/sdl-parser.js.map +1 -1
  38. package/lib/client-utils/auth-manager.d.ts +7 -2
  39. package/lib/client-utils/auth-manager.js +24 -7
  40. package/lib/client-utils/auth-manager.js.map +1 -1
  41. package/lib/client-utils/sdk-client.d.ts +0 -1
  42. package/lib/client-utils/sdk-client.js +7 -38
  43. package/lib/client-utils/sdk-client.js.map +1 -1
  44. package/lib/commands/api/transform.d.ts +2 -2
  45. package/lib/commands/api/transform.js +10 -19
  46. package/lib/commands/api/transform.js.map +1 -1
  47. package/lib/commands/api/validate.d.ts +1 -1
  48. package/lib/commands/api/validate.js +5 -13
  49. package/lib/commands/api/validate.js.map +1 -1
  50. package/lib/commands/auth/login.d.ts +2 -1
  51. package/lib/commands/auth/login.js +19 -65
  52. package/lib/commands/auth/login.js.map +1 -1
  53. package/lib/commands/auth/logout.js +2 -6
  54. package/lib/commands/auth/logout.js.map +1 -1
  55. package/lib/commands/auth/status.js +3 -6
  56. package/lib/commands/auth/status.js.map +1 -1
  57. package/lib/commands/portal/copilot.d.ts +12 -0
  58. package/lib/commands/portal/copilot.js +35 -0
  59. package/lib/commands/portal/copilot.js.map +1 -0
  60. package/lib/commands/portal/generate.d.ts +7 -10
  61. package/lib/commands/portal/generate.js +18 -83
  62. package/lib/commands/portal/generate.js.map +1 -1
  63. package/lib/commands/portal/quickstart.d.ts +2 -2
  64. package/lib/commands/portal/quickstart.js +58 -29
  65. package/lib/commands/portal/quickstart.js.map +1 -1
  66. package/lib/commands/portal/recipe/new.d.ts +1 -3
  67. package/lib/commands/portal/recipe/new.js +21 -27
  68. package/lib/commands/portal/recipe/new.js.map +1 -1
  69. package/lib/commands/portal/serve.d.ts +7 -6
  70. package/lib/commands/portal/serve.js +62 -112
  71. package/lib/commands/portal/serve.js.map +1 -1
  72. package/lib/commands/portal/toc/new.d.ts +4 -5
  73. package/lib/commands/portal/toc/new.js +26 -37
  74. package/lib/commands/portal/toc/new.js.map +1 -1
  75. package/lib/commands/sdk/generate.d.ts +8 -6
  76. package/lib/commands/sdk/generate.js +53 -124
  77. package/lib/commands/sdk/generate.js.map +1 -1
  78. package/lib/controllers/portal/quickstart.d.ts +0 -2
  79. package/lib/controllers/portal/quickstart.js +2 -60
  80. package/lib/controllers/portal/quickstart.js.map +1 -1
  81. package/lib/infrastructure/api-utils.d.ts +9 -0
  82. package/lib/infrastructure/api-utils.js +33 -0
  83. package/lib/infrastructure/api-utils.js.map +1 -0
  84. package/lib/infrastructure/env-info.d.ts +8 -0
  85. package/lib/infrastructure/env-info.js +37 -0
  86. package/lib/infrastructure/env-info.js.map +1 -0
  87. package/lib/infrastructure/file-service.d.ts +15 -0
  88. package/lib/infrastructure/file-service.js +61 -0
  89. package/lib/infrastructure/file-service.js.map +1 -0
  90. package/lib/infrastructure/services/api-service.d.ts +10 -0
  91. package/lib/infrastructure/services/api-service.js +52 -0
  92. package/lib/infrastructure/services/api-service.js.map +1 -0
  93. package/lib/infrastructure/services/auth-service.d.ts +11 -0
  94. package/lib/infrastructure/services/auth-service.js +33 -0
  95. package/lib/infrastructure/services/auth-service.js.map +1 -0
  96. package/lib/infrastructure/services/portal-service.d.ts +7 -4
  97. package/lib/infrastructure/services/portal-service.js +70 -49
  98. package/lib/infrastructure/services/portal-service.js.map +1 -1
  99. package/lib/infrastructure/services/telemetry-service.d.ts +8 -0
  100. package/lib/infrastructure/services/telemetry-service.js +40 -0
  101. package/lib/infrastructure/services/telemetry-service.js.map +1 -0
  102. package/lib/infrastructure/tmp-extensions.d.ts +2 -0
  103. package/lib/infrastructure/tmp-extensions.js +6 -0
  104. package/lib/infrastructure/tmp-extensions.js.map +1 -0
  105. package/lib/infrastructure/zip-service.d.ts +6 -0
  106. package/lib/infrastructure/zip-service.js +25 -0
  107. package/lib/infrastructure/zip-service.js.map +1 -0
  108. package/lib/prompts/auth/login.d.ts +5 -0
  109. package/lib/prompts/auth/login.js +13 -0
  110. package/lib/prompts/auth/login.js.map +1 -0
  111. package/lib/prompts/portal/common/base-prompts.d.ts +7 -0
  112. package/lib/prompts/portal/common/base-prompts.js +19 -0
  113. package/lib/prompts/portal/common/base-prompts.js.map +1 -0
  114. package/lib/prompts/portal/copilot.d.ts +6 -0
  115. package/lib/prompts/portal/copilot.js +35 -0
  116. package/lib/prompts/portal/copilot.js.map +1 -0
  117. package/lib/prompts/portal/generate.d.ts +3 -2
  118. package/lib/prompts/portal/generate.js +21 -36
  119. package/lib/prompts/portal/generate.js.map +1 -1
  120. package/lib/prompts/portal/quickstart.d.ts +8 -9
  121. package/lib/prompts/portal/quickstart.js +44 -32
  122. package/lib/prompts/portal/quickstart.js.map +1 -1
  123. package/lib/prompts/portal/recipe/new-recipe.d.ts +1 -0
  124. package/lib/prompts/portal/recipe/new-recipe.js +18 -8
  125. package/lib/prompts/portal/recipe/new-recipe.js.map +1 -1
  126. package/lib/prompts/portal/serve.d.ts +4 -6
  127. package/lib/prompts/portal/serve.js +24 -15
  128. package/lib/prompts/portal/serve.js.map +1 -1
  129. package/lib/prompts/portal/toc/new-toc.d.ts +3 -2
  130. package/lib/prompts/portal/toc/new-toc.js +11 -14
  131. package/lib/prompts/portal/toc/new-toc.js.map +1 -1
  132. package/lib/prompts/sdk/generate.d.ts +11 -0
  133. package/lib/prompts/sdk/generate.js +42 -0
  134. package/lib/prompts/sdk/generate.js.map +1 -0
  135. package/lib/types/api/account.d.ts +10 -0
  136. package/lib/types/api/account.js +2 -0
  137. package/lib/types/api/account.js.map +1 -0
  138. package/lib/types/build/build.d.ts +14 -0
  139. package/lib/types/build/build.js +4 -0
  140. package/lib/types/build/build.js.map +1 -0
  141. package/lib/types/build-context.d.ts +13 -0
  142. package/lib/types/build-context.js +30 -0
  143. package/lib/types/build-context.js.map +1 -0
  144. package/lib/types/events/domain-event.d.ts +8 -0
  145. package/lib/types/events/domain-event.js +11 -0
  146. package/lib/types/events/domain-event.js.map +1 -0
  147. package/lib/types/events/recipe-creation-failed.d.ts +5 -0
  148. package/lib/types/events/recipe-creation-failed.js +8 -0
  149. package/lib/types/events/recipe-creation-failed.js.map +1 -0
  150. package/lib/types/events/toc-creation-failed.d.ts +5 -0
  151. package/lib/types/events/toc-creation-failed.js +8 -0
  152. package/lib/types/events/toc-creation-failed.js.map +1 -0
  153. package/lib/types/file/directoryPath.d.ts +7 -0
  154. package/lib/types/file/directoryPath.js +16 -0
  155. package/lib/types/file/directoryPath.js.map +1 -0
  156. package/lib/types/file/fileName.d.ts +5 -0
  157. package/lib/types/file/fileName.js +9 -0
  158. package/lib/types/file/fileName.js.map +1 -0
  159. package/lib/types/file/filePath.d.ts +8 -0
  160. package/lib/types/file/filePath.js +11 -0
  161. package/lib/types/file/filePath.js.map +1 -0
  162. package/lib/types/flags-provider.d.ts +15 -0
  163. package/lib/types/flags-provider.js +34 -0
  164. package/lib/types/flags-provider.js.map +1 -0
  165. package/lib/types/portal/generate.d.ts +0 -13
  166. package/lib/types/portal/quickstart.d.ts +1 -1
  167. package/lib/types/portal/serve.d.ts +13 -0
  168. package/lib/types/portal/serve.js +2 -0
  169. package/lib/types/portal/serve.js.map +1 -0
  170. package/lib/types/portal-context.d.ts +11 -0
  171. package/lib/types/portal-context.js +28 -0
  172. package/lib/types/portal-context.js.map +1 -0
  173. package/lib/types/sdk/generate.d.ts +8 -8
  174. package/lib/types/sdk/generate.js +10 -10
  175. package/lib/types/sdk/generate.js.map +1 -1
  176. package/lib/types/sdk-context.d.ts +13 -0
  177. package/lib/types/sdk-context.js +28 -0
  178. package/lib/types/sdk-context.js.map +1 -0
  179. package/lib/types/spec-context.d.ts +7 -0
  180. package/lib/types/spec-context.js +12 -0
  181. package/lib/types/spec-context.js.map +1 -0
  182. package/lib/utils/utils.d.ts +1 -4
  183. package/lib/utils/utils.js +18 -32
  184. package/lib/utils/utils.js.map +1 -1
  185. package/lib/validators/common/directoryValidator.d.ts +3 -7
  186. package/lib/validators/common/directoryValidator.js +10 -37
  187. package/lib/validators/common/directoryValidator.js.map +1 -1
  188. package/lib/validators/portal/serve-validator.d.ts +6 -0
  189. package/lib/validators/portal/serve-validator.js +15 -0
  190. package/lib/validators/portal/serve-validator.js.map +1 -0
  191. package/package.json +6 -3
  192. package/lib/controllers/portal/generate.d.ts +0 -3
  193. package/lib/controllers/portal/generate.js +0 -106
  194. package/lib/controllers/portal/generate.js.map +0 -1
  195. package/lib/controllers/portal/serve.d.ts +0 -3
  196. package/lib/controllers/portal/serve.js +0 -136
  197. package/lib/controllers/portal/serve.js.map +0 -1
  198. package/lib/controllers/sdk/generate.d.ts +0 -4
  199. package/lib/controllers/sdk/generate.js +0 -61
  200. package/lib/controllers/sdk/generate.js.map +0 -1
  201. package/lib/services/portal/server.d.ts +0 -14
  202. package/lib/services/portal/server.js +0 -97
  203. package/lib/services/portal/server.js.map +0 -1
  204. package/lib/validators/common/portValidator.d.ts +0 -5
  205. package/lib/validators/common/portValidator.js +0 -16
  206. package/lib/validators/common/portValidator.js.map +0 -1
  207. package/lib/validators/portal/serveValidator.d.ts +0 -6
  208. package/lib/validators/portal/serveValidator.js +0 -17
  209. package/lib/validators/portal/serveValidator.js.map +0 -1
@@ -1,7 +1,8 @@
1
1
  import { __asyncValues } from "tslib";
2
2
  import * as path from "path";
3
3
  import net from "net";
4
- import fs from "fs-extra";
4
+ import fs from "fs";
5
+ import fsExtra from "fs-extra";
5
6
  import os from "os";
6
7
  import archiver from "archiver";
7
8
  import unzipper from "unzipper";
@@ -26,7 +27,7 @@ export const clearDirectory = async (folderPath) => {
26
27
  if (!fs.existsSync(folderPath)) {
27
28
  throw new Error(`Directory ${folderPath} does not exist`);
28
29
  }
29
- const files = await fs.readdir(folderPath);
30
+ const files = await fsExtra.readdir(folderPath);
30
31
  for (const file of files) {
31
32
  const filePath = path.join(folderPath, file);
32
33
  await deleteFile(filePath);
@@ -114,7 +115,7 @@ export const isValidUrl = (input) => {
114
115
  }
115
116
  };
116
117
  export const deleteFile = async (filePath) => {
117
- return await fs.remove(filePath);
118
+ return await fsExtra.remove(filePath);
118
119
  };
119
120
  export const writeFileUsingReadableStream = (stream, destinationPath) => {
120
121
  return new Promise((resolve) => {
@@ -127,7 +128,7 @@ export const writeFileUsingReadableStream = (stream, destinationPath) => {
127
128
  };
128
129
  export const zipDirectoryToStream = async (sourcePath) => {
129
130
  // Check if the directory exists for the user or not
130
- await fs.ensureDir(sourcePath);
131
+ await fsExtra.ensureDir(sourcePath);
131
132
  const archive = archiver("zip");
132
133
  return new Promise((resolve, reject) => {
133
134
  archive.on("error", (err) => {
@@ -149,7 +150,7 @@ export const zipDirectoryToStream = async (sourcePath) => {
149
150
  */
150
151
  export const zipDirectory = async (sourcePath, destinationPath) => {
151
152
  // Check if the directory exists for the user or not
152
- await fs.ensureDir(sourcePath);
153
+ await fsExtra.ensureDir(sourcePath);
153
154
  const zipPath = path.join(destinationPath, ".target.zip");
154
155
  const output = fs.createWriteStream(zipPath);
155
156
  const archive = archiver("zip");
@@ -180,12 +181,6 @@ export const isJSONParsable = (json) => {
180
181
  return false;
181
182
  }
182
183
  };
183
- export const getGeneratedFilesPaths = (sourceDirectoryPath, generatedPortalArtifactsDirectoryPath) => {
184
- const generatedBuildInputZipPath = path.join(sourceDirectoryPath, ".portal_source.zip");
185
- const generatedPortalArtifactsZipFilePath = path.join(sourceDirectoryPath, ".generated_portal.zip");
186
- const generatedPortalArtifactsFolderPath = path.join(path.dirname(generatedPortalArtifactsDirectoryPath), "generated_portal");
187
- return [generatedBuildInputZipPath, generatedPortalArtifactsFolderPath, generatedPortalArtifactsZipFilePath];
188
- };
189
184
  export const getFileNameFromPath = (filePath) => {
190
185
  return path.basename(filePath).split(".")[0];
191
186
  };
@@ -243,13 +238,17 @@ export async function extractZipFile(zipFilePath, destinationDir) {
243
238
  }
244
239
  });
245
240
  }
246
- export async function validateAndZipPortalSource(sourceDir, outputPath, ignoredPaths = []) {
247
- const output = fs.createWriteStream(outputPath);
241
+ //TODO: Refactor this method, carries dual responsibility.
242
+ export async function zipPortalSource(sourceDirectoryPath, generatedZipFilePath, ignoredPaths = []) {
243
+ if (await fsExtra.pathExists(generatedZipFilePath)) {
244
+ await deleteFile(generatedZipFilePath);
245
+ }
246
+ const output = fs.createWriteStream(generatedZipFilePath);
248
247
  const archive = archiver("zip", {
249
248
  zlib: { level: 9 }
250
249
  });
251
250
  return new Promise((resolve, reject) => {
252
- output.on("close", () => resolve(outputPath));
251
+ output.on("close", () => resolve(generatedZipFilePath));
253
252
  output.on("error", (err) => {
254
253
  return reject(new Error(`Failed to zip the source directory: ${err.message}`));
255
254
  });
@@ -259,10 +258,10 @@ export async function validateAndZipPortalSource(sourceDir, outputPath, ignoredP
259
258
  archive.pipe(output);
260
259
  // Function to recursively add files and directories to the archive, excluding ignored paths
261
260
  const addItemsToArchive = async (currentPath, archivePath) => {
262
- const items = await fs.readdir(currentPath);
261
+ const items = await fsExtra.readdir(currentPath);
263
262
  for (const item of items) {
264
263
  const fullPath = path.join(currentPath, item);
265
- const relativePath = path.relative(sourceDir, fullPath);
264
+ const relativePath = path.relative(sourceDirectoryPath, fullPath);
266
265
  // Check if the path is ignored.
267
266
  const isIgnored = ignoredPaths.some((ignoredPath) => fullPath === ignoredPath ||
268
267
  relativePath === ignoredPath ||
@@ -270,7 +269,7 @@ export async function validateAndZipPortalSource(sourceDir, outputPath, ignoredP
270
269
  relativePath.startsWith(ignoredPath + "/") ||
271
270
  relativePath.startsWith(ignoredPath + "\\"));
272
271
  if (!isIgnored) {
273
- const stats = await fs.stat(fullPath);
272
+ const stats = await fsExtra.stat(fullPath);
274
273
  if (stats.isDirectory()) {
275
274
  await addItemsToArchive(fullPath, archivePath ? path.join(archivePath, item) : item);
276
275
  }
@@ -281,7 +280,7 @@ export async function validateAndZipPortalSource(sourceDir, outputPath, ignoredP
281
280
  }
282
281
  };
283
282
  // Start adding items from the source directory
284
- addItemsToArchive(sourceDir, false)
283
+ addItemsToArchive(sourceDirectoryPath, false)
285
284
  .then(() => {
286
285
  archive.finalize();
287
286
  })
@@ -290,17 +289,7 @@ export async function validateAndZipPortalSource(sourceDir, outputPath, ignoredP
290
289
  });
291
290
  });
292
291
  }
293
- export async function cleanUpGeneratedPortalFiles(sourceDir) {
294
- const generatedPortalZipFilePath = path.join(sourceDir, ".generated_portal.zip");
295
- const generatedPortalSourceZipFilePath = path.join(sourceDir, ".portal_source.zip");
296
- if (fs.existsSync(generatedPortalZipFilePath)) {
297
- await deleteFile(generatedPortalZipFilePath);
298
- }
299
- if (fs.existsSync(generatedPortalSourceZipFilePath)) {
300
- await deleteFile(generatedPortalSourceZipFilePath);
301
- }
302
- }
303
- export function isPortInUse(port) {
292
+ export async function isPortInUse(port) {
304
293
  return new Promise((resolve) => {
305
294
  const server = net.createServer();
306
295
  server.once("error", (err) => {
@@ -339,9 +328,6 @@ export async function parseStreamBodyToJson(body) {
339
328
  const text = Buffer.concat(chunks).toString("utf-8");
340
329
  return JSON.parse(text);
341
330
  }
342
- export const getNonHiddenItemsFromDirectory = (directoryPath) => {
343
- return fs.readdirSync(directoryPath).filter((item) => !item.startsWith("."));
344
- };
345
331
  export const getMessageInOrangeColor = (message) => {
346
332
  return colors.yellow(message);
347
333
  };
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,5 @@
1
+ import { Result } from "../../types/common/result.js";
1
2
  export declare class DirectoryValidator {
2
- private readonly error;
3
- constructor(error: (message: string) => void);
4
- validateSourceDirectory(sourceDir: string): void;
5
- validateGeneratedPortalDestinationDirectory(destinationDir: string, portalDir: string): Promise<void>;
6
- validatePortalSourceDirectory(sourceDir: string): void;
7
- validatePortalSourceSpecDirectory(sourceDir: string): void;
8
- validateGeneratedPortalDestinationDirectoryIsEmpty(destinationDir: string): void;
3
+ validateSourceDirectory(sourceDir: string): Result<string, string>;
4
+ private getDirectoryItems;
9
5
  }
@@ -1,49 +1,22 @@
1
1
  import fsExtra from "fs-extra";
2
- import * as path from "path";
3
- import { getMessageInRedColor, getNonHiddenItemsFromDirectory } from "../../utils/utils.js";
2
+ import { readdirSync } from "fs";
3
+ import { Result } from "../../types/common/result.js";
4
4
  export class DirectoryValidator {
5
- constructor(error) {
6
- this.error = error;
7
- }
8
5
  validateSourceDirectory(sourceDir) {
9
6
  if (!fsExtra.pathExistsSync(sourceDir)) {
10
- this.error(getMessageInRedColor(`The specified source directory does not exist: ${sourceDir}. Please provide a valid source directory to continue.`));
11
- }
12
- }
13
- async validateGeneratedPortalDestinationDirectory(destinationDir, portalDir) {
14
- if (!fsExtra.pathExistsSync(destinationDir) && destinationDir != "./generated_portal") {
15
- this.error(getMessageInRedColor(`The specified destination directory does not exist: ${destinationDir}. Please provide a valid destination directory to continue.`));
7
+ return Result.failure(`The specified source directory does not exist: ${sourceDir}. Please provide a valid source directory to continue.`);
16
8
  }
17
- if (destinationDir == "./generated_portal") {
18
- await fsExtra.ensureDir(portalDir);
19
- }
20
- }
21
- validatePortalSourceDirectory(sourceDir) {
22
- const sourceDirItems = getNonHiddenItemsFromDirectory(sourceDir);
9
+ const sourceDirItems = this.getDirectoryItems(sourceDir);
23
10
  if (sourceDirItems.length == 0) {
24
- this.error(getMessageInRedColor("The source directory is empty. Please ensure that the provided path points to a directory containing a valid build input."));
11
+ return Result.failure("The source directory is empty. Please ensure that the directory contains a valid build input.");
25
12
  }
26
- if (!sourceDirItems.includes("spec")) {
27
- this.error(getMessageInRedColor("The provided build directory is missing a 'spec' directory. Please create a 'spec' directory containing a valid API Definition file to continue."));
28
- }
29
- if (!sourceDirItems.some((item) => item.startsWith("APIMATIC-BUILD"))) {
30
- this.error(getMessageInRedColor("The provided directory is missing an APIMATIC-BUILD.json file. Please add a valid build file to continue."));
13
+ if (!sourceDirItems.some((item) => item.endsWith("APIMATIC-BUILD.json"))) {
14
+ return Result.failure("The source directory is missing the 'APIMATIC-BUILD.json' file. Please add a valid build config file to continue.");
31
15
  }
16
+ return Result.success(`Source directory ${sourceDir} is valid.`);
32
17
  }
33
- validatePortalSourceSpecDirectory(sourceDir) {
34
- const specFolderItems = getNonHiddenItemsFromDirectory(path.join(sourceDir, "spec"));
35
- if (specFolderItems.length == 0) {
36
- this.error(getMessageInRedColor("The provided build directory is missing an API Definition file. Please add a valid API Definition file to the 'spec' directory to continue."));
37
- }
38
- if (specFolderItems.length == 1 && specFolderItems.some((item) => item.toLowerCase().startsWith("apimatic-meta"))) {
39
- this.error(getMessageInRedColor("The provided build directory is missing an API Definition file. Please add a valid API Definition file to the 'spec' directory to continue."));
40
- }
41
- }
42
- validateGeneratedPortalDestinationDirectoryIsEmpty(destinationDir) {
43
- const portalDirItems = getNonHiddenItemsFromDirectory(destinationDir);
44
- if (portalDirItems.length > 0 && destinationDir != "./generated_portal") {
45
- this.error(getMessageInRedColor("The destination directory is not empty. Please specify an empty destination directory or empty the provided directory."));
46
- }
18
+ getDirectoryItems(directoryPath) {
19
+ return readdirSync(directoryPath).filter((item) => !item.startsWith("."));
47
20
  }
48
21
  }
49
22
  //# sourceMappingURL=directoryValidator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"directoryValidator.js","sourceRoot":"","sources":["../../../src/validators/common/directoryValidator.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,UAAU,CAAC;AAC/B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AAE5F,MAAM,OAAO,kBAAkB;IAC7B,YAA6B,KAAgC;QAAhC,UAAK,GAAL,KAAK,CAA2B;IAAG,CAAC;IAEjE,uBAAuB,CAAC,SAAiB;QACvC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,KAAK,CACR,oBAAoB,CAClB,kDAAkD,SAAS,wDAAwD,CACpH,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,2CAA2C,CAAC,cAAsB,EAAE,SAAiB;QACzF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,cAAc,IAAI,oBAAoB,EAAE,CAAC;YACtF,IAAI,CAAC,KAAK,CACR,oBAAoB,CAClB,uDAAuD,cAAc,6DAA6D,CACnI,CACF,CAAC;QACJ,CAAC;QAED,IAAI,cAAc,IAAI,oBAAoB,EAAE,CAAC;YAC3C,MAAM,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,6BAA6B,CAAC,SAAiB;QAC7C,MAAM,cAAc,GAAG,8BAA8B,CAAC,SAAS,CAAC,CAAC;QACjE,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,KAAK,CACR,oBAAoB,CAClB,2HAA2H,CAC5H,CACF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,KAAK,CACR,oBAAoB,CAClB,kJAAkJ,CACnJ,CACF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC;YACtE,IAAI,CAAC,KAAK,CACR,oBAAoB,CAClB,2GAA2G,CAC5G,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,iCAAiC,CAAC,SAAiB;QACjD,MAAM,eAAe,GAAG,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;QACrF,IAAI,eAAe,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,CACR,oBAAoB,CAClB,6IAA6I,CAC9I,CACF,CAAC;QACJ,CAAC;QACD,IAAI,eAAe,CAAC,MAAM,IAAI,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC;YAClH,IAAI,CAAC,KAAK,CACR,oBAAoB,CAClB,6IAA6I,CAC9I,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,kDAAkD,CAAC,cAAsB;QACvE,MAAM,cAAc,GAAG,8BAA8B,CAAC,cAAc,CAAC,CAAC;QACtE,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,IAAI,oBAAoB,EAAE,CAAC;YACxE,IAAI,CAAC,KAAK,CACR,oBAAoB,CAClB,wHAAwH,CACzH,CACF,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"directoryValidator.js","sourceRoot":"","sources":["../../../src/validators/common/directoryValidator.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAEtD,MAAM,OAAO,kBAAkB;IACtB,uBAAuB,CAAC,SAAiB;QAC9C,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,OAAO,MAAM,CAAC,OAAO,CACnB,kDAAkD,SAAS,wDAAwD,CACpH,CAAC;QACJ,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC,OAAO,CACnB,+FAA+F,CAChG,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC;YACzE,OAAO,MAAM,CAAC,OAAO,CACnB,mHAAmH,CACpH,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC,OAAO,CAAC,oBAAoB,SAAS,YAAY,CAAC,CAAC;IACnE,CAAC;IAEO,iBAAiB,CAAC,aAAqB;QAC7C,OAAO,WAAW,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5E,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ import { Result } from "../../types/common/result.js";
2
+ export declare class PortalServeValidator {
3
+ private readonly directoryValidator;
4
+ constructor();
5
+ validateSourceDirectory(sourceDirectoryPath: string): Promise<Result<string, string>>;
6
+ }
@@ -0,0 +1,15 @@
1
+ import { Result } from "../../types/common/result.js";
2
+ import { DirectoryValidator } from "../common/directoryValidator.js";
3
+ export class PortalServeValidator {
4
+ constructor() {
5
+ this.directoryValidator = new DirectoryValidator();
6
+ }
7
+ async validateSourceDirectory(sourceDirectoryPath) {
8
+ const sourceDirectoryValidationResult = this.directoryValidator.validateSourceDirectory(sourceDirectoryPath);
9
+ if (sourceDirectoryValidationResult.isFailed()) {
10
+ return Result.failure(sourceDirectoryValidationResult.error);
11
+ }
12
+ return Result.success("Serve flags validated successfully.");
13
+ }
14
+ }
15
+ //# sourceMappingURL=serve-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve-validator.js","sourceRoot":"","sources":["../../../src/validators/portal/serve-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE,MAAM,OAAO,oBAAoB;IAG/B;QACE,IAAI,CAAC,kBAAkB,GAAG,IAAI,kBAAkB,EAAE,CAAC;IACrD,CAAC;IAEM,KAAK,CAAC,uBAAuB,CAAC,mBAA2B;QAC9D,MAAM,+BAA+B,GAAG,IAAI,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,CAAC;QAC7G,IAAI,+BAA+B,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC/C,OAAO,MAAM,CAAC,OAAO,CAAC,+BAA+B,CAAC,KAAM,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,MAAM,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;IAC/D,CAAC;CACF"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@apimatic/cli",
3
3
  "description": "The official CLI for APIMatic.",
4
- "version": "1.1.0-alpha.13",
4
+ "version": "1.1.0-alpha.15",
5
5
  "author": "APIMatic",
6
6
  "bin": {
7
7
  "apimatic": "./bin/run.js"
@@ -52,6 +52,7 @@
52
52
  "@oclif/plugin-not-found": "^3.2.44",
53
53
  "adm-zip": "^0.5.14",
54
54
  "archiver": "^7.0.1",
55
+ "async-mutex": "^0.5.0",
55
56
  "axios": "^1.8.1",
56
57
  "base-64": "^1.0.0",
57
58
  "chokidar": "^3.6.0",
@@ -61,15 +62,18 @@
61
62
  "file-type": "^15.0.0",
62
63
  "form-data": "^4.0.2",
63
64
  "fs-extra": "^11.3.0",
65
+ "get-port": "^7.1.0",
64
66
  "livereload": "^0.9.3",
67
+ "neverthrow": "^8.2.0",
65
68
  "open": "^8.4.0",
66
69
  "prettier": "^2.8.8",
67
70
  "simple-git": "^3.27.0",
68
71
  "striptags": "^3.2.0",
72
+ "tmp-promise": "^3.0.3",
69
73
  "treeify": "^1.1.0",
70
74
  "tslib": "^2.8.1",
71
75
  "unzipper": "^0.12.3",
72
- "which": "^5.0.0",
76
+ "uuid": "^11.1.0",
73
77
  "yaml": "^2.8.0"
74
78
  },
75
79
  "devDependencies": {
@@ -93,7 +97,6 @@
93
97
  "@types/sinon": "^17.0.4",
94
98
  "@types/treeify": "^1.0.3",
95
99
  "@types/unzipper": "^0.10.4",
96
- "@types/which": "^3.0.4",
97
100
  "@typescript-eslint/eslint-plugin": "^8.0.0",
98
101
  "@typescript-eslint/parser": "^8.0.0",
99
102
  "chai": "^4.5.0",
@@ -1,3 +0,0 @@
1
- import { GeneratePortalParams } from "../../types/portal/generate.js";
2
- import { Result } from "../../types/common/result.js";
3
- export declare const downloadDocsPortal: (params: GeneratePortalParams, configDir: string) => Promise<Result<string, string>>;
@@ -1,106 +0,0 @@
1
- import fsExtra from "fs-extra";
2
- import { deleteFile, extractZipFile, getMessageInRedColor, parseStreamBodyToJson } from "../../utils/utils.js";
3
- import { getAuthInfo } from "../../client-utils/auth-manager.js";
4
- import { ApiError, Client, ContentType, DocsPortalManagementController, FileWrapper, ProblemDetailsError, UnauthorizedResponseError } from "@apimatic/sdk";
5
- import { Result } from "../../types/common/result.js";
6
- const CONTENT_TYPE = ContentType.EnumMultipartformdata;
7
- const TIMEOUT = 0;
8
- export const downloadDocsPortal = async (params, configDir) => {
9
- if (!(await fsExtra.pathExists(params.sourceBuildInputZipFilePath))) {
10
- return Result.failure("Build file doesn't exist");
11
- }
12
- const authInfo = await getAuthInfo(configDir);
13
- const authorizationHeader = createAuthorizationHeader(authInfo, params.overrideAuthKey);
14
- const client = createApiClient(authorizationHeader);
15
- const docsPortalManagementController = new DocsPortalManagementController(client);
16
- try {
17
- const stream = await generatePortalFromSyncEndpoint(docsPortalManagementController, params.sourceBuildInputZipFilePath);
18
- await saveGeneratedPortalStreamToZipFile(stream, params.generatedPortalArtifactsZipFilePath);
19
- await deleteFile(params.sourceBuildInputZipFilePath);
20
- if (params.generateZipFile) {
21
- return Result.success(params.generatedPortalArtifactsZipFilePath);
22
- }
23
- await extractZipFile(params.generatedPortalArtifactsZipFilePath, params.generatedPortalArtifactsFolderPath);
24
- await deleteFile(params.generatedPortalArtifactsZipFilePath);
25
- return Result.success(params.generatedPortalArtifactsFolderPath);
26
- }
27
- catch (error) {
28
- return handlePortalGenerationErrors(error, params);
29
- }
30
- };
31
- const createAuthorizationHeader = (authInfo, overrideAuthKey) => {
32
- if (overrideAuthKey) {
33
- return `X-Auth-Key ${overrideAuthKey}`;
34
- }
35
- if (!authInfo) {
36
- return "";
37
- }
38
- return `X-Auth-Key ${authInfo.authKey}`;
39
- };
40
- const createApiClient = (authorizationHeader) => {
41
- return new Client({
42
- customHeaderAuthenticationCredentials: {
43
- Authorization: authorizationHeader
44
- },
45
- timeout: TIMEOUT
46
- });
47
- };
48
- const generatePortalFromSyncEndpoint = async (docsPortalManagementController, zippedBuildFilePath) => {
49
- const file = new FileWrapper(fsExtra.createReadStream(zippedBuildFilePath));
50
- const response = await docsPortalManagementController.generateOnPremPortalViaBuildInput(CONTENT_TYPE, file);
51
- return response.result;
52
- };
53
- const saveGeneratedPortalStreamToZipFile = async (data, generatedPortalArtifactsZipFilePath) => {
54
- const writeStream = fsExtra.createWriteStream(generatedPortalArtifactsZipFilePath);
55
- await new Promise((resolve, reject) => {
56
- data
57
- .pipe(writeStream)
58
- .on("finish", () => resolve())
59
- .on("error", (error) => reject(Result.failure(`Failed to save downloaded portal to file: ${error.message}`)));
60
- });
61
- };
62
- const handlePortalGenerationErrors = async (error, params) => {
63
- var _a, _b;
64
- if (error instanceof UnauthorizedResponseError) {
65
- //401
66
- const body = await parseErrorResponse(error);
67
- return Result.failure(getMessageInRedColor((_a = body.message) !== null && _a !== void 0 ? _a : "Unauthorized access"));
68
- }
69
- else if (error instanceof ProblemDetailsError) {
70
- //400 & 403
71
- const body = await parseErrorResponse(error);
72
- const message = body.errors[Object.keys(body.errors)[0]][0];
73
- return Result.failure(getMessageInRedColor(body.title + " " + ((_b = body.detail) !== null && _b !== void 0 ? _b : "") + ":\n" + message));
74
- }
75
- else if (error instanceof ApiError && error.statusCode === 422) {
76
- //422
77
- await extractErrorZipFile(error, params);
78
- return Result.failure(getMessageInRedColor("An error occurred during portal generation due to an issue with the input. An error report has been written at the destination path: " +
79
- params.generatedPortalArtifactsFolderPath));
80
- }
81
- else {
82
- return Result.failure(getMessageInRedColor(error instanceof Error ? error.message : String(error)));
83
- }
84
- };
85
- const parseErrorResponse = async (error) => {
86
- if (error instanceof Error && "body" in error) {
87
- const stream = error.body;
88
- return await parseStreamBodyToJson(stream);
89
- }
90
- throw error;
91
- };
92
- const extractErrorZipFile = async (error, params) => {
93
- const data = error.body;
94
- const writeStream = fsExtra.createWriteStream(params.generatedPortalArtifactsZipFilePath);
95
- await new Promise((resolve, reject) => {
96
- data
97
- .pipe(writeStream)
98
- .on("finish", () => resolve())
99
- .on("error", reject);
100
- });
101
- if (!params.generateZipFile) {
102
- await extractZipFile(params.generatedPortalArtifactsZipFilePath, params.generatedPortalArtifactsFolderPath);
103
- await deleteFile(params.generatedPortalArtifactsZipFilePath);
104
- }
105
- };
106
- //# sourceMappingURL=generate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/controllers/portal/generate.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import chokidar from "chokidar";
2
- export declare const watchAndRegeneratePortal: (sourceDir: string, portalDir: string, configDir: string, overrideAuthKey: string | null, ignoredPaths?: string[]) => Promise<chokidar.FSWatcher>;
3
- export declare const generatePortal: (sourceDir: string, portalDir: string, configDir: string, ignoredPaths?: string[], overrideAuthKey?: string | null) => Promise<void>;
@@ -1,136 +0,0 @@
1
- import * as path from "path";
2
- import axios from "axios";
3
- import chokidar from "chokidar";
4
- import { cleanUpGeneratedPortalFiles, getGeneratedFilesPaths, getMessageInMagentaColor, getMessageInRedColor, validateAndZipPortalSource } from "../../utils/utils.js";
5
- import { downloadDocsPortal } from "./generate.js";
6
- const progressSpinner = {
7
- frames: ["◒", "◐", "◓", "◑"].map((frame) => getMessageInMagentaColor(frame)),
8
- isRunning: false,
9
- interval: null,
10
- frameIndex: 0,
11
- text: "Regenerating portal... ",
12
- start() {
13
- if (this.interval) {
14
- return;
15
- }
16
- this.interval = setInterval(() => {
17
- this.frameIndex = (this.frameIndex + 1) % this.frames.length;
18
- process.stdout.write(`\r\u001b[K${this.format()}`);
19
- }, 200);
20
- },
21
- stop() {
22
- if (this.interval !== null) {
23
- clearInterval(this.interval);
24
- this.interval = null;
25
- }
26
- process.stdout.write("\r\u001b[K ✅ Portal regenerated successfully. ");
27
- },
28
- error() {
29
- if (this.interval !== null) {
30
- clearInterval(this.interval);
31
- this.interval = null;
32
- }
33
- process.stdout.write("\r\u001b[K ❌ Portal regeneration unsuccessful. ");
34
- },
35
- format() {
36
- return ` ${this.frames[this.frameIndex]} ${this.text}`;
37
- }
38
- };
39
- export const watchAndRegeneratePortal = async (sourceDir, portalDir, configDir, overrideAuthKey, ignoredPaths = []) => {
40
- // Convert ignoredPaths to absolute paths for consistent comparison
41
- const generatedFilesPaths = getGeneratedFilesPaths(sourceDir, portalDir);
42
- const absoluteIgnoredPaths = [
43
- ...ignoredPaths.filter((ignoredPath) => ignoredPath.trim() !== ""),
44
- ...generatedFilesPaths
45
- ].map((ignoredPath) => path.resolve(sourceDir, ignoredPath));
46
- const watcher = chokidar.watch(sourceDir, {
47
- ignored: [...absoluteIgnoredPaths, /(^|[/\\])\..+/],
48
- ignoreInitial: true,
49
- persistent: true
50
- });
51
- const deletedDirectories = new Set();
52
- watcher
53
- .on("all", async (event, path) => {
54
- if (event == "unlinkDir") {
55
- deletedDirectories.add(path);
56
- }
57
- if (event == "unlink") {
58
- for (const dir of deletedDirectories) {
59
- if (path.startsWith(dir)) {
60
- return;
61
- }
62
- }
63
- }
64
- await handleFileChange(sourceDir, portalDir, configDir, overrideAuthKey, absoluteIgnoredPaths);
65
- })
66
- .on("error", (error) => {
67
- console.error("Watcher error:", error);
68
- });
69
- return watcher;
70
- };
71
- export const generatePortal = async (sourceDir, portalDir, configDir, ignoredPaths = [], overrideAuthKey = null) => {
72
- const zippedBuildFilePath = await validateAndZipPortalSource(sourceDir, path.join(sourceDir, ".portal_source.zip"), ignoredPaths);
73
- const generatePortalParams = {
74
- sourceBuildInputZipFilePath: zippedBuildFilePath,
75
- generatedPortalArtifactsFolderPath: portalDir,
76
- generatedPortalArtifactsZipFilePath: path.join(sourceDir, ".generated_portal.zip"),
77
- overrideAuthKey,
78
- generateZipFile: false
79
- };
80
- const generatedDocsResult = await downloadDocsPortal(generatePortalParams, configDir);
81
- if (generatedDocsResult.isFailed()) {
82
- throw new Error(generatedDocsResult.error);
83
- }
84
- };
85
- async function handleFileChange(sourceDir, portalDir, configDir, overrideAuthKey, absoluteIgnoredPaths) {
86
- progressSpinner.start();
87
- try {
88
- await generatePortal(sourceDir, portalDir, configDir, absoluteIgnoredPaths, overrideAuthKey);
89
- progressSpinner.stop();
90
- await cleanUpGeneratedPortalFiles(sourceDir);
91
- }
92
- catch (error) {
93
- if (axios.isCancel(error)) {
94
- return;
95
- }
96
- progressSpinner.error();
97
- await cleanUpGeneratedPortalFiles(sourceDir);
98
- if (axios.isAxiosError(error)) {
99
- if (error.response) {
100
- if (error.response.status === 400) {
101
- console.error(getMessageInRedColor(`Failed to regenerate the portal. Please ensure that the provided build directory follows the correct structure and contains valid API definition and build files.`));
102
- }
103
- else if (error.response.status === 403) {
104
- console.error(getMessageInRedColor(`Access denied. It looks like you don't have access to APIMatic's Docs as Code offering. Check your subscription details and contact our team at support@apimatic.io if you believe this is a mistake.`));
105
- }
106
- else if (error.response.status === 422) {
107
- console.error(getMessageInRedColor(`Failed to regenerate the portal. Please ensure that the provided build directory follows the correct structure and contains valid API definition and build files.`));
108
- }
109
- else if (error.response.status === 500) {
110
- console.error(getMessageInRedColor(`Failed to regenerate the portal. Please ensure that the provided build directory follows the correct structure and contains valid API definition and build files. If the issue persists, reach out to our team at support@apimatic.io`));
111
- }
112
- else {
113
- console.error(getMessageInRedColor(`Failed to regenerate the portal. Please ensure that the provided build directory follows the correct structure and contains valid API definition and build files. If the issue persists, reach out to our team at support@apimatic.io`));
114
- }
115
- }
116
- else if (error.request) {
117
- if (error.code === "ECONNABORTED") {
118
- console.error(getMessageInRedColor(`Your request timed out. Please try again or reach out to our team at support@apimatic.io for help if your problem persists.`));
119
- }
120
- else if (error.code === "ENOTFOUND" || error.code === "ERR_NETWORK") {
121
- throw new Error(getMessageInRedColor(`Network error. Please check your internet connection and try again.`));
122
- }
123
- else {
124
- console.error(getMessageInRedColor(`No response received from the server. Please try again later.`));
125
- }
126
- }
127
- else {
128
- console.error(getMessageInRedColor(`Failed to regenerate portal: ${error.message}`));
129
- }
130
- }
131
- else {
132
- console.error(getMessageInRedColor(`Failed to regenerate portal: ${error instanceof Error ? error.message : "Unknown error"}`));
133
- }
134
- }
135
- }
136
- //# sourceMappingURL=serve.js.map