@apimatic/cli 1.1.0-alpha.12 → 1.1.0-alpha.14

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 (130) hide show
  1. package/README.md +22 -45
  2. package/lib/actions/actionResult.d.ts +8 -0
  3. package/lib/actions/actionResult.js +25 -0
  4. package/lib/actions/actionResult.js.map +1 -0
  5. package/lib/actions/portal/generatePortalAction.d.ts +15 -0
  6. package/lib/actions/portal/generatePortalAction.js +76 -0
  7. package/lib/actions/portal/generatePortalAction.js.map +1 -0
  8. package/lib/actions/portal/recipe/new-recipe.d.ts +3 -2
  9. package/lib/actions/portal/recipe/new-recipe.js +30 -32
  10. package/lib/actions/portal/recipe/new-recipe.js.map +1 -1
  11. package/lib/actions/portal/serve.d.ts +17 -0
  12. package/lib/actions/portal/serve.js +36 -0
  13. package/lib/actions/portal/serve.js.map +1 -0
  14. package/lib/actions/portal/toc/new-toc.d.ts +2 -1
  15. package/lib/actions/portal/toc/new-toc.js +21 -21
  16. package/lib/actions/portal/toc/new-toc.js.map +1 -1
  17. package/lib/application/portal/recipe/recipe-generator.js +1 -1
  18. package/lib/application/portal/recipe/recipe-generator.js.map +1 -1
  19. package/lib/application/portal/serve/portal-watcher.d.ts +8 -0
  20. package/lib/application/portal/serve/portal-watcher.js +60 -0
  21. package/lib/application/portal/serve/portal-watcher.js.map +1 -0
  22. package/lib/application/portal/serve/serve-handler.d.ts +16 -0
  23. package/lib/application/portal/serve/serve-handler.js +90 -0
  24. package/lib/application/portal/serve/serve-handler.js.map +1 -0
  25. package/lib/application/portal/serve/watcher-handler.d.ts +5 -0
  26. package/lib/application/portal/serve/watcher-handler.js +27 -0
  27. package/lib/application/portal/serve/watcher-handler.js.map +1 -0
  28. package/lib/application/portal/toc/sdl-parser.d.ts +2 -1
  29. package/lib/application/portal/toc/sdl-parser.js +4 -4
  30. package/lib/application/portal/toc/sdl-parser.js.map +1 -1
  31. package/lib/client-utils/sdk-client.js +5 -22
  32. package/lib/client-utils/sdk-client.js.map +1 -1
  33. package/lib/commands/api/transform.js +2 -6
  34. package/lib/commands/api/transform.js.map +1 -1
  35. package/lib/commands/api/validate.js +4 -8
  36. package/lib/commands/api/validate.js.map +1 -1
  37. package/lib/commands/auth/login.js +31 -33
  38. package/lib/commands/auth/login.js.map +1 -1
  39. package/lib/commands/auth/logout.js +1 -5
  40. package/lib/commands/auth/logout.js.map +1 -1
  41. package/lib/commands/auth/status.js +1 -5
  42. package/lib/commands/auth/status.js.map +1 -1
  43. package/lib/commands/portal/generate.d.ts +7 -9
  44. package/lib/commands/portal/generate.js +17 -67
  45. package/lib/commands/portal/generate.js.map +1 -1
  46. package/lib/commands/portal/quickstart.d.ts +2 -2
  47. package/lib/commands/portal/quickstart.js +52 -20
  48. package/lib/commands/portal/quickstart.js.map +1 -1
  49. package/lib/commands/portal/recipe/new.d.ts +2 -3
  50. package/lib/commands/portal/recipe/new.js +16 -23
  51. package/lib/commands/portal/recipe/new.js.map +1 -1
  52. package/lib/commands/portal/serve.d.ts +7 -5
  53. package/lib/commands/portal/serve.js +60 -97
  54. package/lib/commands/portal/serve.js.map +1 -1
  55. package/lib/commands/portal/toc/new.d.ts +1 -1
  56. package/lib/commands/portal/toc/new.js +20 -24
  57. package/lib/commands/portal/toc/new.js.map +1 -1
  58. package/lib/commands/sdk/generate.js +4 -12
  59. package/lib/commands/sdk/generate.js.map +1 -1
  60. package/lib/controllers/api/validate.d.ts +2 -2
  61. package/lib/controllers/portal/quickstart.d.ts +2 -4
  62. package/lib/controllers/portal/quickstart.js +4 -63
  63. package/lib/controllers/portal/quickstart.js.map +1 -1
  64. package/lib/controllers/sdk/generate.d.ts +3 -3
  65. package/lib/infrastructure/file-service.d.ts +13 -0
  66. package/lib/infrastructure/file-service.js +54 -0
  67. package/lib/infrastructure/file-service.js.map +1 -0
  68. package/lib/infrastructure/services/portal-service.d.ts +5 -4
  69. package/lib/infrastructure/services/portal-service.js +28 -42
  70. package/lib/infrastructure/services/portal-service.js.map +1 -1
  71. package/lib/infrastructure/zip-service.d.ts +6 -0
  72. package/lib/infrastructure/zip-service.js +25 -0
  73. package/lib/infrastructure/zip-service.js.map +1 -0
  74. package/lib/prompts/portal/common/base-prompts.d.ts +7 -0
  75. package/lib/prompts/portal/common/base-prompts.js +19 -0
  76. package/lib/prompts/portal/common/base-prompts.js.map +1 -0
  77. package/lib/prompts/portal/generate.d.ts +3 -1
  78. package/lib/prompts/portal/generate.js +29 -16
  79. package/lib/prompts/portal/generate.js.map +1 -1
  80. package/lib/prompts/portal/quickstart.d.ts +5 -6
  81. package/lib/prompts/portal/quickstart.js +29 -21
  82. package/lib/prompts/portal/quickstart.js.map +1 -1
  83. package/lib/prompts/portal/recipe/new-recipe.js +4 -5
  84. package/lib/prompts/portal/recipe/new-recipe.js.map +1 -1
  85. package/lib/prompts/portal/serve.d.ts +4 -6
  86. package/lib/prompts/portal/serve.js +24 -15
  87. package/lib/prompts/portal/serve.js.map +1 -1
  88. package/lib/prompts/portal/toc/new-toc.js +5 -4
  89. package/lib/prompts/portal/toc/new-toc.js.map +1 -1
  90. package/lib/types/file/directoryPath.d.ts +7 -0
  91. package/lib/types/file/directoryPath.js +16 -0
  92. package/lib/types/file/directoryPath.js.map +1 -0
  93. package/lib/types/file/fileName.d.ts +5 -0
  94. package/lib/types/file/fileName.js +9 -0
  95. package/lib/types/file/fileName.js.map +1 -0
  96. package/lib/types/file/filePath.d.ts +8 -0
  97. package/lib/types/file/filePath.js +11 -0
  98. package/lib/types/file/filePath.js.map +1 -0
  99. package/lib/types/portal/quickstart.d.ts +1 -1
  100. package/lib/types/portal/serve.d.ts +13 -0
  101. package/lib/types/portal/serve.js +2 -0
  102. package/lib/types/portal/serve.js.map +1 -0
  103. package/lib/utils/utils.d.ts +1 -4
  104. package/lib/utils/utils.js +10 -25
  105. package/lib/utils/utils.js.map +1 -1
  106. package/lib/validators/common/directoryValidator.d.ts +3 -7
  107. package/lib/validators/common/directoryValidator.js +10 -37
  108. package/lib/validators/common/directoryValidator.js.map +1 -1
  109. package/lib/validators/portal/serve-validator.d.ts +6 -0
  110. package/lib/validators/portal/serve-validator.js +15 -0
  111. package/lib/validators/portal/serve-validator.js.map +1 -0
  112. package/package.json +5 -2
  113. package/lib/actions/portal/generate.d.ts +0 -7
  114. package/lib/actions/portal/generate.js +0 -54
  115. package/lib/actions/portal/generate.js.map +0 -1
  116. package/lib/controllers/portal/generate.d.ts +0 -3
  117. package/lib/controllers/portal/generate.js +0 -106
  118. package/lib/controllers/portal/generate.js.map +0 -1
  119. package/lib/controllers/portal/serve.d.ts +0 -3
  120. package/lib/controllers/portal/serve.js +0 -136
  121. package/lib/controllers/portal/serve.js.map +0 -1
  122. package/lib/services/portal/server.d.ts +0 -14
  123. package/lib/services/portal/server.js +0 -97
  124. package/lib/services/portal/server.js.map +0 -1
  125. package/lib/validators/common/portValidator.d.ts +0 -5
  126. package/lib/validators/common/portValidator.js +0 -16
  127. package/lib/validators/common/portValidator.js.map +0 -1
  128. package/lib/validators/portal/serveValidator.d.ts +0 -6
  129. package/lib/validators/portal/serveValidator.js +0 -17
  130. package/lib/validators/portal/serveValidator.js.map +0 -1
@@ -0,0 +1,54 @@
1
+ import fs from "fs-extra";
2
+ import { pipeline } from "stream";
3
+ import { promisify } from "util";
4
+ export class FileService {
5
+ async fileExists(file) {
6
+ try {
7
+ const stat = await fs.stat(file.toString());
8
+ return stat.isFile();
9
+ }
10
+ catch (_a) {
11
+ return false;
12
+ }
13
+ }
14
+ async directoryExists(dir) {
15
+ try {
16
+ const stat = await fs.stat(dir.toString());
17
+ return stat.isDirectory();
18
+ }
19
+ catch (_a) {
20
+ return false;
21
+ }
22
+ }
23
+ async directoryEmpty(dir) {
24
+ try {
25
+ const files = await fs.readdir(dir.toString());
26
+ return files.length === 0;
27
+ }
28
+ catch (error) {
29
+ return error instanceof Error && 'code' in error && error.code === "ENOENT";
30
+ }
31
+ }
32
+ async cleanDirectory(dir) {
33
+ await fs.ensureDir(dir.toString());
34
+ await fs.emptyDir(dir.toString()); // removes everything inside, keeps the dir
35
+ }
36
+ async deleteFile(filePath) {
37
+ const exists = await this.fileExists(filePath);
38
+ if (exists) {
39
+ await fs.remove(filePath.toString());
40
+ }
41
+ }
42
+ async getStream(filePath) {
43
+ return fs.createReadStream(filePath.toString());
44
+ }
45
+ async writeFile(filePath, stream) {
46
+ const writeStream = fs.createWriteStream(filePath.toString());
47
+ await streamPipeline(stream, writeStream);
48
+ }
49
+ async copy(source, destination) {
50
+ await fs.copyFile(source.toString(), destination.toString());
51
+ }
52
+ }
53
+ const streamPipeline = promisify(pipeline);
54
+ //# sourceMappingURL=file-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-service.js","sourceRoot":"","sources":["../../src/infrastructure/file-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAG1B,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,MAAM,OAAO,WAAW;IACf,KAAK,CAAC,UAAU,CAAC,IAAc;QACpC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,CAAC;QAAC,WAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,GAAkB;QAC7C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC3C,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5B,CAAC;QAAC,WAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,GAAkB;QAC5C,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC/C,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;QAC9E,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,GAAkB;QAC5C,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnC,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,2CAA2C;IAChF,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,QAAkB;QACxC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,QAAkB;QACvC,OAAO,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClD,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,QAAkB,EAAE,MAA6B;QACtE,MAAM,WAAW,GAAG,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9D,MAAM,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC5C,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,MAAgB,EAAE,WAAqB;QACvD,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/D,CAAC;CACF;AAED,MAAM,cAAc,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC"}
@@ -1,16 +1,17 @@
1
- import { GeneratePortalParams } from "../../types/portal/generate.js";
2
1
  import { Result } from "../../types/common/result.js";
3
2
  import { Sdl } from "../../types/sdl/sdl.js";
3
+ import { FilePath } from "../../types/file/filePath.js";
4
+ import { DirectoryPath } from "../../types/file/directoryPath.js";
4
5
  export declare class PortalService {
5
6
  private readonly CONTENT_TYPE;
6
7
  private readonly TIMEOUT;
7
- generateOnPremPortal(params: GeneratePortalParams, configDir: string): Promise<Result<NodeJS.ReadableStream, string>>;
8
+ private readonly fileService;
9
+ generatePortal(buildPath: FilePath, configDir: DirectoryPath, authKey: string | null): Promise<Result<NodeJS.ReadableStream, string | NodeJS.ReadableStream>>;
8
10
  generateSdl(specPath: string, configDir: string): Promise<Result<Sdl, string>>;
9
11
  private createGenericErrorResult;
10
12
  private createAuthorizationHeader;
13
+ private getUserAgent;
11
14
  private createApiClient;
12
- private generatePortalFromSyncEndpoint;
13
15
  private handlePortalGenerationErrors;
14
16
  private parseErrorResponse;
15
- private saveAndExtractErrorZipFile;
16
17
  }
@@ -1,14 +1,15 @@
1
- import fsExtra from "fs-extra";
2
- import fs from "fs";
3
- import * as path from "path";
1
+ import * as os from "os";
2
+ import fs from "fs-extra";
4
3
  import { ContentType, DocsPortalManagementController, Client, UnauthorizedResponseError, ProblemDetailsError, FileWrapper, ApiError, TransformationController, ExportFormats, InternalServerErrorResponseError } from "@apimatic/sdk";
5
4
  import { getAuthInfo } from "../../client-utils/auth-manager.js";
6
5
  import { Result } from "../../types/common/result.js";
7
- import { getMessageInRedColor, parseStreamBodyToJson, extractZipFile, deleteFile } from "../../utils/utils.js";
6
+ import { getMessageInRedColor, parseStreamBodyToJson } from "../../utils/utils.js";
7
+ import { FileService } from "../file-service.js";
8
8
  export class PortalService {
9
9
  constructor() {
10
10
  this.CONTENT_TYPE = ContentType.EnumMultipartformdata;
11
11
  this.TIMEOUT = 0;
12
+ this.fileService = new FileService();
12
13
  this.createAuthorizationHeader = (authInfo, overrideAuthKey) => {
13
14
  const key = overrideAuthKey || (authInfo === null || authInfo === void 0 ? void 0 : authInfo.authKey);
14
15
  return `X-Auth-Key ${key !== null && key !== void 0 ? key : ""}`;
@@ -18,15 +19,11 @@ export class PortalService {
18
19
  customHeaderAuthenticationCredentials: {
19
20
  Authorization: authorizationHeader
20
21
  },
22
+ userAgent: this.getUserAgent(),
21
23
  timeout: this.TIMEOUT
22
24
  });
23
25
  };
24
- this.generatePortalFromSyncEndpoint = async (docsPortalManagementController, zippedBuildFilePath) => {
25
- const file = new FileWrapper(fs.createReadStream(zippedBuildFilePath));
26
- const response = await docsPortalManagementController.generateOnPremPortalViaBuildInput(this.CONTENT_TYPE, file);
27
- return response.result;
28
- };
29
- this.handlePortalGenerationErrors = async (error, params) => {
26
+ this.handlePortalGenerationErrors = async (error) => {
30
27
  var _a;
31
28
  if (error instanceof UnauthorizedResponseError) {
32
29
  //401
@@ -41,15 +38,15 @@ export class PortalService {
41
38
  }
42
39
  else if (error instanceof ApiError && error.statusCode === 422) {
43
40
  //422
44
- return await this.saveAndExtractErrorZipFile(error, params);
41
+ return error.body;
45
42
  }
46
43
  else if (error instanceof InternalServerErrorResponseError) {
47
44
  //500
48
45
  const body = await this.parseErrorResponse(error);
49
- return getMessageInRedColor(`${body.message} Please try again or reach out to our team at support@apimatic.io for help if your problem persists.`);
46
+ return getMessageInRedColor(`${body.message} Please try again later or reach out to our team at support@apimatic.io for help if your problem persists.`);
50
47
  }
51
48
  else {
52
- return getMessageInRedColor(error instanceof Error ? error.message : String(error));
49
+ return getMessageInRedColor("An unexpected error occurred while generating the portal, please try again later. If the problem persists, please reach out to our team at support@apimatic.io");
53
50
  }
54
51
  };
55
52
  this.parseErrorResponse = async (error) => {
@@ -59,44 +56,27 @@ export class PortalService {
59
56
  }
60
57
  throw error;
61
58
  };
62
- this.saveAndExtractErrorZipFile = async (error, params) => {
63
- const data = error.body;
64
- const writeStream = fs.createWriteStream(params.generatedPortalArtifactsZipFilePath);
65
- //TODO: Extract zip to temp folder and only copy the the debug report.
66
- return await new Promise((resolve, reject) => {
67
- data
68
- .pipe(writeStream)
69
- .on("finish", async () => {
70
- await extractZipFile(params.generatedPortalArtifactsZipFilePath, params.generatedPortalArtifactsFolderPath);
71
- await deleteFile(params.generatedPortalArtifactsZipFilePath);
72
- await deleteFile(path.join(params.generatedPortalArtifactsFolderPath, "static"));
73
- resolve(getMessageInRedColor("An error occurred during portal generation due to an issue with the input. An error report has been written at the destination path: " +
74
- path.join(params.generatedPortalArtifactsFolderPath, "apimatic-debug")));
75
- })
76
- .on("error", async () => {
77
- reject(getMessageInRedColor("An error occurred during portal generation due to an issue with the input. The error report could not be generated. Please try again later."));
78
- });
79
- });
80
- };
81
59
  }
82
- async generateOnPremPortal(params, configDir) {
83
- if (!(await fsExtra.pathExists(params.sourceBuildInputZipFilePath))) {
84
- return Result.failure("Build file doesn't exist");
85
- }
86
- const authInfo = await getAuthInfo(configDir);
87
- const authorizationHeader = this.createAuthorizationHeader(authInfo, params.overrideAuthKey);
60
+ async generatePortal(buildPath, configDir, authKey) {
61
+ const buildFileStream = await this.fileService.getStream(buildPath);
62
+ const file = new FileWrapper(buildFileStream);
63
+ const authInfo = await getAuthInfo(configDir.toString());
64
+ const authorizationHeader = this.createAuthorizationHeader(authInfo, authKey);
88
65
  const client = this.createApiClient(authorizationHeader);
89
66
  const docsPortalManagementController = new DocsPortalManagementController(client);
90
67
  try {
91
- const stream = await this.generatePortalFromSyncEndpoint(docsPortalManagementController, params.sourceBuildInputZipFilePath);
92
- return Result.success(stream);
68
+ const response = await docsPortalManagementController.generateOnPremPortalViaBuildInput(this.CONTENT_TYPE, file);
69
+ return Result.success(response.result);
93
70
  }
94
71
  catch (error) {
95
- return Result.failure(await this.handlePortalGenerationErrors(error, params));
72
+ return Result.failure(await this.handlePortalGenerationErrors(error));
73
+ }
74
+ finally {
75
+ buildFileStream.close();
96
76
  }
97
77
  }
98
78
  async generateSdl(specPath, configDir) {
99
- if (!(await fsExtra.pathExists(specPath))) {
79
+ if (!(await fs.pathExists(specPath))) {
100
80
  return Result.failure("Spec file doesn't exist");
101
81
  }
102
82
  const authInfo = await getAuthInfo(configDir);
@@ -125,5 +105,11 @@ export class PortalService {
125
105
  createGenericErrorResult() {
126
106
  return Result.failure("An unexpected error occurred");
127
107
  }
108
+ getUserAgent() {
109
+ const osInfo = `${os.platform()} ${os.release()}`;
110
+ const engine = "Node.js";
111
+ const engineVersion = process.version;
112
+ return `APIMATIC CLI - [OS: ${osInfo}, Engine: ${engine}/${engineVersion}]`;
113
+ }
128
114
  }
129
115
  //# 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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"}
@@ -0,0 +1,6 @@
1
+ import { DirectoryPath } from "../types/file/directoryPath.js";
2
+ import { FilePath } from "../types/file/filePath.js";
3
+ export declare class ZipService {
4
+ archive(sourceDir: DirectoryPath, outputZipPath: FilePath): Promise<void>;
5
+ unArchive(sourceFile: FilePath, destinationDirectory: DirectoryPath): Promise<void>;
6
+ }
@@ -0,0 +1,25 @@
1
+ import fs from "fs";
2
+ import archiver from "archiver";
3
+ import unzipper from "unzipper";
4
+ export class ZipService {
5
+ async archive(sourceDir, outputZipPath) {
6
+ return new Promise((resolve, reject) => {
7
+ const output = fs.createWriteStream(outputZipPath.toString());
8
+ const archive = archiver("zip");
9
+ output.on("close", () => resolve());
10
+ archive.on("error", (err) => reject(err));
11
+ archive.pipe(output);
12
+ archive.directory(sourceDir.toString(), false); // false: don't nest under folder
13
+ archive.finalize();
14
+ });
15
+ }
16
+ async unArchive(sourceFile, destinationDirectory) {
17
+ return new Promise((resolve, reject) => {
18
+ fs.createReadStream(sourceFile.toString())
19
+ .pipe(unzipper.Extract({ path: destinationDirectory.toString() }))
20
+ .on("close", () => resolve())
21
+ .on("error", (err) => reject(err));
22
+ });
23
+ }
24
+ }
25
+ //# sourceMappingURL=zip-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zip-service.js","sourceRoot":"","sources":["../../src/infrastructure/zip-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAIhC,MAAM,OAAO,UAAU;IACd,KAAK,CAAC,OAAO,CAAC,SAAwB,EAAE,aAAuB;QACpE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,EAAE,CAAC,iBAAiB,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC9D,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YAEhC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YACpC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAE1C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,iCAAiC;YACjF,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,UAAoB,EAAE,oBAAmC;QACvE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;iBACvC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,oBAAoB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;iBACjE,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;iBAC5B,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,7 @@
1
+ export declare abstract class BasePrompts {
2
+ protected readonly spin: import("@clack/prompts").SpinnerResult;
3
+ startProgressIndicator(message: string): void;
4
+ stopProgressIndicator(message: string): void;
5
+ displayInfo(message: string): void;
6
+ logError(errorMessage: string): void;
7
+ }
@@ -0,0 +1,19 @@
1
+ import { log, outro, spinner } from "@clack/prompts";
2
+ export class BasePrompts {
3
+ constructor() {
4
+ this.spin = spinner();
5
+ }
6
+ startProgressIndicator(message) {
7
+ this.spin.start(message);
8
+ }
9
+ stopProgressIndicator(message) {
10
+ this.spin.stop(message);
11
+ }
12
+ displayInfo(message) {
13
+ log.step(message);
14
+ }
15
+ logError(errorMessage) {
16
+ outro(errorMessage);
17
+ }
18
+ }
19
+ //# sourceMappingURL=base-prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-prompts.js","sourceRoot":"","sources":["../../../../src/prompts/portal/common/base-prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAErD,MAAM,OAAgB,WAAW;IAAjC;QACuB,SAAI,GAAG,OAAO,EAAE,CAAC;IAiBxC,CAAC;IAfU,sBAAsB,CAAC,OAAe;QACzC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAEM,qBAAqB,CAAC,OAAe;QACxC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAEM,WAAW,CAAC,OAAe;QAC9B,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;IAEM,QAAQ,CAAC,YAAoB;QAChC,KAAK,CAAC,YAAY,CAAC,CAAC;IACxB,CAAC;CACJ"}
@@ -1,10 +1,12 @@
1
+ import { DirectoryPath } from "../../types/file/directoryPath.js";
1
2
  export declare class PortalGeneratePrompts {
2
3
  private readonly spin;
3
- overwriteExistingPortalArtifactsPrompt(): Promise<boolean>;
4
+ overwritePortal(directory: DirectoryPath): Promise<boolean>;
4
5
  existingDestinationPortalZipPrompt(): Promise<boolean>;
5
6
  displayPortalGenerationMessage(): void;
6
7
  displayPortalGenerationSuccessMessage(): void;
7
8
  displayPortalGenerationErrorMessage(): void;
8
9
  displayOutroMessage(generatedPortalPath: string): void;
9
10
  logError(error: string): void;
11
+ private cleanUpStandardInput;
10
12
  }
@@ -1,33 +1,37 @@
1
1
  import { cancel, outro, select, spinner, isCancel } from "@clack/prompts";
2
- import { getMessageInRedColor } from "../../utils/utils.js";
2
+ import { getMessageInCyanColor, getMessageInMagentaColor, getMessageInRedColor } from "../../utils/utils.js";
3
3
  export class PortalGeneratePrompts {
4
4
  constructor() {
5
5
  this.spin = spinner();
6
6
  }
7
- async overwriteExistingPortalArtifactsPrompt() {
8
- const useExistingFolder = await select({
9
- message: `The destination folder is not empty, do you want to overwrite the existing files?`,
7
+ async overwritePortal(directory) {
8
+ const overwrite = await select({
9
+ message: `⚠️ The destination '${directory}' is not empty, do you want to overwrite?`,
10
10
  options: [
11
- { value: "yes", label: "Yes" },
12
- { value: "no", label: "No" }
13
- ]
11
+ { value: true, label: "Yes" },
12
+ { value: false, label: "No" }
13
+ ],
14
+ initialValue: false
14
15
  });
15
- if (isCancel(useExistingFolder)) {
16
+ if (isCancel(overwrite)) {
16
17
  cancel("Operation cancelled.");
17
- return process.exit(1);
18
+ process.exit(1);
18
19
  }
19
- if (useExistingFolder === "no") {
20
- outro("Please enter a different destination folder or remove the existing files and try again.");
20
+ if (overwrite) {
21
+ return true;
21
22
  }
22
- return useExistingFolder === "yes";
23
+ outro("Please enter a different destination folder or remove the existing files and try again.");
24
+ process.exit(1);
25
+ // TODO: it should return false (no process exit);
23
26
  }
24
27
  async existingDestinationPortalZipPrompt() {
25
28
  const useExistingZip = await select({
26
- message: `A zip file already exists at the specified destination path, do you want to overwrite it?`,
29
+ message: `⚠️ A zip file already exists at the specified destination path, do you want to overwrite it?`,
27
30
  options: [
28
31
  { value: "yes", label: "Yes" },
29
32
  { value: "no", label: "No" }
30
- ]
33
+ ],
34
+ initialValue: "no"
31
35
  });
32
36
  if (isCancel(useExistingZip)) {
33
37
  cancel("Operation cancelled.");
@@ -39,13 +43,15 @@ export class PortalGeneratePrompts {
39
43
  return useExistingZip === "yes";
40
44
  }
41
45
  displayPortalGenerationMessage() {
42
- this.spin.start("Generating portal...");
46
+ this.spin.start(getMessageInMagentaColor("Generating portal"));
43
47
  }
44
48
  displayPortalGenerationSuccessMessage() {
45
- this.spin.stop("✅ Portal generated successfully.");
49
+ this.spin.stop(getMessageInCyanColor("✅ Portal generated successfully."));
50
+ this.cleanUpStandardInput();
46
51
  }
47
52
  displayPortalGenerationErrorMessage() {
48
53
  this.spin.stop(getMessageInRedColor(`Portal Generation failed.`));
54
+ this.cleanUpStandardInput();
49
55
  }
50
56
  displayOutroMessage(generatedPortalPath) {
51
57
  outro(`The generated portal can be found at ${generatedPortalPath}`);
@@ -53,5 +59,12 @@ export class PortalGeneratePrompts {
53
59
  logError(error) {
54
60
  outro(error);
55
61
  }
62
+ //This clears the standard input to allow interrupts like CTRL+C to work properly.
63
+ cleanUpStandardInput() {
64
+ if (process.stdin.isTTY) {
65
+ process.stdin.setRawMode(false);
66
+ process.stdin.pause();
67
+ }
68
+ }
56
69
  }
57
70
  //# sourceMappingURL=generate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/prompts/portal/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,OAAO,qBAAqB;IAAlC;QACmB,SAAI,GAAG,OAAO,EAAE,CAAC;IA+DpC,CAAC;IA7DC,KAAK,CAAC,sCAAsC;QAC1C,MAAM,iBAAiB,GAAG,MAAM,MAAM,CAAC;YACrC,OAAO,EAAE,mFAAmF;YAC5F,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;gBAC9B,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;aAC7B;SACF,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,sBAAsB,CAAC,CAAC;YAC/B,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;YAC/B,KAAK,CAAC,yFAAyF,CAAC,CAAC;QACnG,CAAC;QAED,OAAO,iBAAiB,KAAK,KAAK,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,kCAAkC;QACtC,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC;YAClC,OAAO,EAAE,2FAA2F;YACpG,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;gBAC9B,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;aAC7B;SACF,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,sBAAsB,CAAC,CAAC;YAC/B,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAC5B,KAAK,CAAC,0FAA0F,CAAC,CAAC;QACpG,CAAC;QAED,OAAO,cAAc,KAAK,KAAK,CAAC;IAClC,CAAC;IAED,8BAA8B;QAC5B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IAED,qCAAqC;QACnC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IACrD,CAAC;IAED,mCAAmC;QACjC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,2BAA2B,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,mBAAmB,CAAC,mBAA2B;QAC7C,KAAK,CAAC,wCAAwC,mBAAmB,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,QAAQ,CAAC,KAAa;QACpB,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;CACF"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/prompts/portal/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG7G,MAAM,OAAO,qBAAqB;IAAlC;QACmB,SAAI,GAAG,OAAO,EAAE,CAAC;IA8EpC,CAAC;IA5EQ,KAAK,CAAC,eAAe,CAAC,SAAwB;QACnD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC;YAC7B,OAAO,EAAE,wBAAwB,SAAS,2CAA2C;YACrF,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;gBAC7B,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;aAC9B;YACD,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,sBAAsB,CAAC,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,IAAI,CAAC;QACd,CAAC;QAED,KAAK,CAAC,yFAAyF,CAAC,CAAC;QACjG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEhB,kDAAkD;IACpD,CAAC;IAED,KAAK,CAAC,kCAAkC;QACtC,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC;YAClC,OAAO,EAAE,+FAA+F;YACxG,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;gBAC9B,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;aAC7B;YACD,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC7B,MAAM,CAAC,sBAAsB,CAAC,CAAC;YAC/B,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAC5B,KAAK,CAAC,0FAA0F,CAAC,CAAC;QACpG,CAAC;QAED,OAAO,cAAc,KAAK,KAAK,CAAC;IAClC,CAAC;IAED,8BAA8B;QAC5B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,qCAAqC;QACnC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAED,mCAAmC;QACjC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,2BAA2B,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAED,mBAAmB,CAAC,mBAA2B;QAC7C,KAAK,CAAC,wCAAwC,mBAAmB,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,QAAQ,CAAC,KAAa;QACpB,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAED,kFAAkF;IAC1E,oBAAoB;QAC1B,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAChC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
- export declare class PortalQuickstartPrompts {
2
- private readonly spin;
1
+ import { BasePrompts } from "./common/base-prompts.js";
2
+ export declare class PortalQuickstartPrompts extends BasePrompts {
3
3
  private readonly vscodeExtensionUrl;
4
4
  private readonly serverUrl;
5
5
  private readonly referenceDocumentationUrl;
@@ -13,6 +13,7 @@ export declare class PortalQuickstartPrompts {
13
13
  displayLoggingInMessage(): void;
14
14
  displayLoggingInErrorMessage(): void;
15
15
  displayLoggedInMessage(): void;
16
+ removeQuotes(str: string): string;
16
17
  specPrompt(): Promise<string>;
17
18
  displaySpecValidationMessage(): void;
18
19
  displaySpecValidationSuccessMessage(): void;
@@ -20,12 +21,10 @@ export declare class PortalQuickstartPrompts {
20
21
  displaySpecValidationFailureMessage(): void;
21
22
  specValidationFailurePrompt(): Promise<void>;
22
23
  sdkLanguagesPrompt(): Promise<string[]>;
23
- buildDirectoryPrompt(): Promise<string>;
24
+ workingDirectoryPrompt(): Promise<string>;
24
25
  displayBuildDirectoryGenerationMessage(): void;
25
26
  displayBuildDirectoryGenerationErrorMessage(): void;
26
27
  displayBuildDirectoryGenerationSuccessMessage(targetFolder: string): void;
27
28
  displayBuildDirectoryAsTree(targetFolder: string): void;
28
- displayPortalGenerationMessage(): void;
29
- displayPortalGenerationSuccessMessage(): void;
30
- displayOutroMessage(directory: string): void;
29
+ displayOutroMessage(buildDirectory: string): void;
31
30
  }
@@ -1,11 +1,12 @@
1
1
  import fs from "fs";
2
2
  import * as path from "path";
3
3
  import treeify from "treeify";
4
- import { intro, outro, text, spinner, select, multiselect, log, isCancel, cancel, password } from "@clack/prompts";
4
+ import { intro, outro, text, select, multiselect, log, isCancel, cancel, password } from "@clack/prompts";
5
5
  import { getMessageInCyanColor, getMessageInGreenColor, getMessageInOrangeColor, getMessageInMagentaColor, getMessageInRedColor, isValidUrl, directoryToJson } from "../../utils/utils.js";
6
- export class PortalQuickstartPrompts {
6
+ import { BasePrompts } from "./common/base-prompts.js";
7
+ export class PortalQuickstartPrompts extends BasePrompts {
7
8
  constructor() {
8
- this.spin = spinner();
9
+ super(...arguments);
9
10
  this.vscodeExtensionUrl = "\u001b[4mhttps://marketplace.visualstudio.com/items?itemName=apimatic-developers.apimatic-for-vscode\u001b[0m";
10
11
  this.serverUrl = "\u001b[4mhttp://localhost:3000\u001b[0m";
11
12
  this.referenceDocumentationUrl = "\u001b[4mhttps://docs.apimatic.io/platform-api/#/http/guides/generating-on-prem-api-portal/overview-generating-api-portal\u001b[0m";
@@ -58,18 +59,29 @@ export class PortalQuickstartPrompts {
58
59
  displayLoggedInMessage() {
59
60
  this.spin.stop(getMessageInCyanColor("✅ Login successful!"));
60
61
  }
62
+ removeQuotes(str) {
63
+ const quotes = ['"', "'"];
64
+ for (const quote of quotes) {
65
+ if (str.startsWith(quote) && str.endsWith(quote) && str.length > 1) {
66
+ return str.slice(1, -1);
67
+ }
68
+ }
69
+ return str;
70
+ }
61
71
  async specPrompt() {
62
72
  log.step(getMessageInOrangeColor(`Step 1 of 4: Import your OpenAPI Definition`));
63
73
  const spec = await text({
64
- message: `Provide a local path or a public URL for your OpenAPI Definition file:`,
65
- placeholder: "Press Enter to use a sample OpenAPI file for APIMatic",
66
- defaultValue: "",
74
+ message: `Provide a local path or a public URL for your OpenAPI definition file:`,
75
+ placeholder: "Provide absolute URL/local path or press Enter to use sample OpenAPI file from APIMatic.",
76
+ defaultValue: "https://raw.githubusercontent.com/apimatic/static-portal-workflow/refs/heads/master/spec/Apimatic-Calculator.json",
67
77
  validate: (input) => {
78
+ var _a;
68
79
  if (!input)
69
80
  return;
70
81
  if (isValidUrl(input))
71
82
  return;
72
- const dirPath = path.resolve((input !== null && input !== void 0 ? input : "").trim());
83
+ const cleanedPath = this.removeQuotes((_a = input.trim()) !== null && _a !== void 0 ? _a : "");
84
+ const dirPath = path.resolve(cleanedPath);
73
85
  if (fs.existsSync(dirPath)) {
74
86
  if (fs.statSync(dirPath).isFile()) {
75
87
  return;
@@ -140,14 +152,16 @@ export class PortalQuickstartPrompts {
140
152
  }
141
153
  return languages;
142
154
  }
143
- async buildDirectoryPrompt() {
155
+ async workingDirectoryPrompt() {
144
156
  log.step(getMessageInOrangeColor(`Step 4 of 4: Generate source files for Docs as Code`));
145
157
  const directory = await text({
146
- message: "Enter the directory path where you would like to setup the API Portal :",
147
- placeholder: "Enter absolute path to the directory or leave it empty to use the current directory.",
158
+ message: "Enter the directory path where you would like to setup the API Portal (Requires an empty directory):",
159
+ placeholder: "Provide absolute path to the directory or press Enter to use the current directory.",
148
160
  defaultValue: "./",
149
161
  validate: (input) => {
150
- const dirPath = path.resolve((input !== null && input !== void 0 ? input : "").trim());
162
+ var _a;
163
+ const cleanedPath = this.removeQuotes((_a = input === null || input === void 0 ? void 0 : input.trim()) !== null && _a !== void 0 ? _a : "");
164
+ const dirPath = path.resolve(cleanedPath);
151
165
  if (!fs.existsSync(dirPath) && dirPath != this.defaultPortalDirectoryPath) {
152
166
  return getMessageInRedColor("Error: The specified directory path does not exist. Please try again.");
153
167
  }
@@ -174,7 +188,7 @@ export class PortalQuickstartPrompts {
174
188
  }
175
189
  }
176
190
  displayBuildDirectoryGenerationMessage() {
177
- this.spin.start(getMessageInMagentaColor("Generating build directory... ⚙️"));
191
+ this.spin.start(getMessageInMagentaColor("Generating build directory ⚙️"));
178
192
  }
179
193
  displayBuildDirectoryGenerationErrorMessage() {
180
194
  this.spin.stop(getMessageInRedColor(`Something went wrong while setting up your build directory.`));
@@ -189,17 +203,11 @@ export class PortalQuickstartPrompts {
189
203
  .split("\n")
190
204
  .map((line) => line.replace(/#.*/, (match) => getMessageInGreenColor(match)))
191
205
  .join("\n");
192
- log.info(coloredLogString);
193
- }
194
- displayPortalGenerationMessage() {
195
- this.spin.start(getMessageInMagentaColor("Setting up portal"));
196
- }
197
- displayPortalGenerationSuccessMessage() {
198
- this.spin.stop(getMessageInCyanColor("✅ Portal setup complete!"));
206
+ log.step(coloredLogString);
199
207
  }
200
- displayOutroMessage(directory) {
208
+ displayOutroMessage(buildDirectory) {
201
209
  log.step(getMessageInCyanColor(`📢 Your API Portal is live at: ${this.serverUrl}\n`) +
202
- getMessageInCyanColor(`Hot reload enabled! Edit files in ${directory} to see changes instantly reflected in your API Portal.\n`) +
210
+ getMessageInCyanColor(`Hot reload enabled! Edit files in ${buildDirectory} to see changes instantly reflected in your API Portal.\n`) +
203
211
  getMessageInCyanColor(`Press CTRL+C to stop the server.`));
204
212
  outro(getMessageInCyanColor(`What's next?\n`) +
205
213
  getMessageInCyanColor(`- Check out the Interactive Playground in your API Portal.\n`) +
@@ -1 +1 @@
1
- {"version":3,"file":"quickstart.js","sourceRoot":"","sources":["../../../src/prompts/portal/quickstart.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quickstart.js","sourceRoot":"","sources":["../../../src/prompts/portal/quickstart.ts"],"names":[],"mappings":"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"}