@apimatic/cli 1.1.0-alpha.13 → 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.
- package/README.md +22 -45
- package/lib/actions/actionResult.d.ts +8 -0
- package/lib/actions/actionResult.js +25 -0
- package/lib/actions/actionResult.js.map +1 -0
- package/lib/actions/portal/generatePortalAction.d.ts +15 -0
- package/lib/actions/portal/generatePortalAction.js +76 -0
- package/lib/actions/portal/generatePortalAction.js.map +1 -0
- package/lib/actions/portal/recipe/new-recipe.d.ts +3 -2
- package/lib/actions/portal/recipe/new-recipe.js +18 -25
- package/lib/actions/portal/recipe/new-recipe.js.map +1 -1
- package/lib/actions/portal/serve.d.ts +17 -0
- package/lib/actions/portal/serve.js +36 -0
- package/lib/actions/portal/serve.js.map +1 -0
- package/lib/actions/portal/toc/new-toc.d.ts +2 -1
- package/lib/actions/portal/toc/new-toc.js +21 -21
- package/lib/actions/portal/toc/new-toc.js.map +1 -1
- package/lib/application/portal/serve/portal-watcher.d.ts +8 -0
- package/lib/application/portal/serve/portal-watcher.js +60 -0
- package/lib/application/portal/serve/portal-watcher.js.map +1 -0
- package/lib/application/portal/serve/serve-handler.d.ts +16 -0
- package/lib/application/portal/serve/serve-handler.js +90 -0
- package/lib/application/portal/serve/serve-handler.js.map +1 -0
- package/lib/application/portal/serve/watcher-handler.d.ts +5 -0
- package/lib/application/portal/serve/watcher-handler.js +27 -0
- package/lib/application/portal/serve/watcher-handler.js.map +1 -0
- package/lib/application/portal/toc/sdl-parser.d.ts +2 -1
- package/lib/application/portal/toc/sdl-parser.js +4 -4
- package/lib/application/portal/toc/sdl-parser.js.map +1 -1
- package/lib/client-utils/sdk-client.js +5 -22
- package/lib/client-utils/sdk-client.js.map +1 -1
- package/lib/commands/api/transform.js +2 -6
- package/lib/commands/api/transform.js.map +1 -1
- package/lib/commands/api/validate.js +2 -6
- package/lib/commands/api/validate.js.map +1 -1
- package/lib/commands/auth/login.js +31 -33
- package/lib/commands/auth/login.js.map +1 -1
- package/lib/commands/auth/logout.js +1 -5
- package/lib/commands/auth/logout.js.map +1 -1
- package/lib/commands/auth/status.js +1 -5
- package/lib/commands/auth/status.js.map +1 -1
- package/lib/commands/portal/generate.d.ts +7 -9
- package/lib/commands/portal/generate.js +17 -67
- package/lib/commands/portal/generate.js.map +1 -1
- package/lib/commands/portal/quickstart.d.ts +2 -2
- package/lib/commands/portal/quickstart.js +50 -18
- package/lib/commands/portal/quickstart.js.map +1 -1
- package/lib/commands/portal/recipe/new.d.ts +2 -3
- package/lib/commands/portal/recipe/new.js +16 -23
- package/lib/commands/portal/recipe/new.js.map +1 -1
- package/lib/commands/portal/serve.d.ts +7 -5
- package/lib/commands/portal/serve.js +60 -97
- package/lib/commands/portal/serve.js.map +1 -1
- package/lib/commands/portal/toc/new.d.ts +1 -1
- package/lib/commands/portal/toc/new.js +20 -24
- package/lib/commands/portal/toc/new.js.map +1 -1
- package/lib/commands/sdk/generate.js +2 -10
- package/lib/commands/sdk/generate.js.map +1 -1
- package/lib/controllers/portal/quickstart.d.ts +0 -2
- package/lib/controllers/portal/quickstart.js +2 -60
- package/lib/controllers/portal/quickstart.js.map +1 -1
- package/lib/infrastructure/file-service.d.ts +13 -0
- package/lib/infrastructure/file-service.js +54 -0
- package/lib/infrastructure/file-service.js.map +1 -0
- package/lib/infrastructure/services/portal-service.d.ts +4 -4
- package/lib/infrastructure/services/portal-service.js +21 -43
- package/lib/infrastructure/services/portal-service.js.map +1 -1
- package/lib/infrastructure/zip-service.d.ts +6 -0
- package/lib/infrastructure/zip-service.js +25 -0
- package/lib/infrastructure/zip-service.js.map +1 -0
- package/lib/prompts/portal/common/base-prompts.d.ts +7 -0
- package/lib/prompts/portal/common/base-prompts.js +19 -0
- package/lib/prompts/portal/common/base-prompts.js.map +1 -0
- package/lib/prompts/portal/generate.d.ts +3 -1
- package/lib/prompts/portal/generate.js +29 -16
- package/lib/prompts/portal/generate.js.map +1 -1
- package/lib/prompts/portal/quickstart.d.ts +5 -6
- package/lib/prompts/portal/quickstart.js +28 -20
- package/lib/prompts/portal/quickstart.js.map +1 -1
- package/lib/prompts/portal/recipe/new-recipe.js +4 -5
- package/lib/prompts/portal/recipe/new-recipe.js.map +1 -1
- package/lib/prompts/portal/serve.d.ts +4 -6
- package/lib/prompts/portal/serve.js +24 -15
- package/lib/prompts/portal/serve.js.map +1 -1
- package/lib/prompts/portal/toc/new-toc.js +5 -4
- package/lib/prompts/portal/toc/new-toc.js.map +1 -1
- package/lib/types/file/directoryPath.d.ts +7 -0
- package/lib/types/file/directoryPath.js +16 -0
- package/lib/types/file/directoryPath.js.map +1 -0
- package/lib/types/file/fileName.d.ts +5 -0
- package/lib/types/file/fileName.js +9 -0
- package/lib/types/file/fileName.js.map +1 -0
- package/lib/types/file/filePath.d.ts +8 -0
- package/lib/types/file/filePath.js +11 -0
- package/lib/types/file/filePath.js.map +1 -0
- package/lib/types/portal/quickstart.d.ts +1 -1
- package/lib/types/portal/serve.d.ts +13 -0
- package/lib/types/portal/serve.js +2 -0
- package/lib/types/portal/serve.js.map +1 -0
- package/lib/utils/utils.d.ts +1 -4
- package/lib/utils/utils.js +10 -25
- package/lib/utils/utils.js.map +1 -1
- package/lib/validators/common/directoryValidator.d.ts +3 -7
- package/lib/validators/common/directoryValidator.js +10 -37
- package/lib/validators/common/directoryValidator.js.map +1 -1
- package/lib/validators/portal/serve-validator.d.ts +6 -0
- package/lib/validators/portal/serve-validator.js +15 -0
- package/lib/validators/portal/serve-validator.js.map +1 -0
- package/package.json +4 -3
- package/lib/actions/portal/generate.d.ts +0 -7
- package/lib/actions/portal/generate.js +0 -54
- package/lib/actions/portal/generate.js.map +0 -1
- package/lib/controllers/portal/generate.d.ts +0 -3
- package/lib/controllers/portal/generate.js +0 -106
- package/lib/controllers/portal/generate.js.map +0 -1
- package/lib/controllers/portal/serve.d.ts +0 -3
- package/lib/controllers/portal/serve.js +0 -136
- package/lib/controllers/portal/serve.js.map +0 -1
- package/lib/services/portal/server.d.ts +0 -14
- package/lib/services/portal/server.js +0 -97
- package/lib/services/portal/server.js.map +0 -1
- package/lib/validators/common/portValidator.d.ts +0 -5
- package/lib/validators/common/portValidator.js +0 -16
- package/lib/validators/common/portValidator.js.map +0 -1
- package/lib/validators/portal/serveValidator.d.ts +0 -6
- package/lib/validators/portal/serveValidator.js +0 -17
- package/lib/validators/portal/serveValidator.js.map +0 -1
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import
|
|
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
|
|
8
|
-
import
|
|
6
|
+
import { getMessageInRedColor, parseStreamBodyToJson } from "../../utils/utils.js";
|
|
7
|
+
import { FileService } from "../file-service.js";
|
|
9
8
|
export class PortalService {
|
|
10
9
|
constructor() {
|
|
11
10
|
this.CONTENT_TYPE = ContentType.EnumMultipartformdata;
|
|
12
11
|
this.TIMEOUT = 0;
|
|
12
|
+
this.fileService = new FileService();
|
|
13
13
|
this.createAuthorizationHeader = (authInfo, overrideAuthKey) => {
|
|
14
14
|
const key = overrideAuthKey || (authInfo === null || authInfo === void 0 ? void 0 : authInfo.authKey);
|
|
15
15
|
return `X-Auth-Key ${key !== null && key !== void 0 ? key : ""}`;
|
|
@@ -23,12 +23,7 @@ export class PortalService {
|
|
|
23
23
|
timeout: this.TIMEOUT
|
|
24
24
|
});
|
|
25
25
|
};
|
|
26
|
-
this.
|
|
27
|
-
const file = new FileWrapper(fs.createReadStream(zippedBuildFilePath));
|
|
28
|
-
const response = await docsPortalManagementController.generateOnPremPortalViaBuildInput(this.CONTENT_TYPE, file);
|
|
29
|
-
return response.result;
|
|
30
|
-
};
|
|
31
|
-
this.handlePortalGenerationErrors = async (error, params) => {
|
|
26
|
+
this.handlePortalGenerationErrors = async (error) => {
|
|
32
27
|
var _a;
|
|
33
28
|
if (error instanceof UnauthorizedResponseError) {
|
|
34
29
|
//401
|
|
@@ -43,15 +38,15 @@ export class PortalService {
|
|
|
43
38
|
}
|
|
44
39
|
else if (error instanceof ApiError && error.statusCode === 422) {
|
|
45
40
|
//422
|
|
46
|
-
return
|
|
41
|
+
return error.body;
|
|
47
42
|
}
|
|
48
43
|
else if (error instanceof InternalServerErrorResponseError) {
|
|
49
44
|
//500
|
|
50
45
|
const body = await this.parseErrorResponse(error);
|
|
51
|
-
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.`);
|
|
52
47
|
}
|
|
53
48
|
else {
|
|
54
|
-
return getMessageInRedColor(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");
|
|
55
50
|
}
|
|
56
51
|
};
|
|
57
52
|
this.parseErrorResponse = async (error) => {
|
|
@@ -61,44 +56,27 @@ export class PortalService {
|
|
|
61
56
|
}
|
|
62
57
|
throw error;
|
|
63
58
|
};
|
|
64
|
-
this.saveAndExtractErrorZipFile = async (error, params) => {
|
|
65
|
-
const data = error.body;
|
|
66
|
-
const writeStream = fs.createWriteStream(params.generatedPortalArtifactsZipFilePath);
|
|
67
|
-
//TODO: Extract zip to temp folder and only copy the the debug report.
|
|
68
|
-
return await new Promise((resolve, reject) => {
|
|
69
|
-
data
|
|
70
|
-
.pipe(writeStream)
|
|
71
|
-
.on("finish", async () => {
|
|
72
|
-
await extractZipFile(params.generatedPortalArtifactsZipFilePath, params.generatedPortalArtifactsFolderPath);
|
|
73
|
-
await deleteFile(params.generatedPortalArtifactsZipFilePath);
|
|
74
|
-
await deleteFile(path.join(params.generatedPortalArtifactsFolderPath, "static"));
|
|
75
|
-
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: " +
|
|
76
|
-
path.join(params.generatedPortalArtifactsFolderPath, "apimatic-debug")));
|
|
77
|
-
})
|
|
78
|
-
.on("error", async () => {
|
|
79
|
-
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."));
|
|
80
|
-
});
|
|
81
|
-
});
|
|
82
|
-
};
|
|
83
59
|
}
|
|
84
|
-
async
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
const
|
|
89
|
-
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);
|
|
90
65
|
const client = this.createApiClient(authorizationHeader);
|
|
91
66
|
const docsPortalManagementController = new DocsPortalManagementController(client);
|
|
92
67
|
try {
|
|
93
|
-
const
|
|
94
|
-
return Result.success(
|
|
68
|
+
const response = await docsPortalManagementController.generateOnPremPortalViaBuildInput(this.CONTENT_TYPE, file);
|
|
69
|
+
return Result.success(response.result);
|
|
95
70
|
}
|
|
96
71
|
catch (error) {
|
|
97
|
-
return Result.failure(await this.handlePortalGenerationErrors(error
|
|
72
|
+
return Result.failure(await this.handlePortalGenerationErrors(error));
|
|
73
|
+
}
|
|
74
|
+
finally {
|
|
75
|
+
buildFileStream.close();
|
|
98
76
|
}
|
|
99
77
|
}
|
|
100
78
|
async generateSdl(specPath, configDir) {
|
|
101
|
-
if (!(await
|
|
79
|
+
if (!(await fs.pathExists(specPath))) {
|
|
102
80
|
return Result.failure("Spec file doesn't exist");
|
|
103
81
|
}
|
|
104
82
|
const authInfo = await getAuthInfo(configDir);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portal-service.js","sourceRoot":"","sources":["../../../src/infrastructure/services/portal-service.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
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
|
-
|
|
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
|
|
8
|
-
const
|
|
9
|
-
message:
|
|
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:
|
|
12
|
-
{ value:
|
|
13
|
-
]
|
|
11
|
+
{ value: true, label: "Yes" },
|
|
12
|
+
{ value: false, label: "No" }
|
|
13
|
+
],
|
|
14
|
+
initialValue: false
|
|
14
15
|
});
|
|
15
|
-
if (isCancel(
|
|
16
|
+
if (isCancel(overwrite)) {
|
|
16
17
|
cancel("Operation cancelled.");
|
|
17
|
-
|
|
18
|
+
process.exit(1);
|
|
18
19
|
}
|
|
19
|
-
if (
|
|
20
|
-
|
|
20
|
+
if (overwrite) {
|
|
21
|
+
return true;
|
|
21
22
|
}
|
|
22
|
-
|
|
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:
|
|
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("✅
|
|
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;
|
|
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
|
-
|
|
2
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
6
|
+
import { BasePrompts } from "./common/base-prompts.js";
|
|
7
|
+
export class PortalQuickstartPrompts extends BasePrompts {
|
|
7
8
|
constructor() {
|
|
8
|
-
|
|
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
|
|
65
|
-
placeholder: "
|
|
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.",
|
|
66
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
|
|
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
|
|
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: "
|
|
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
|
-
|
|
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.
|
|
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(
|
|
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 ${
|
|
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":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"quickstart.js","sourceRoot":"","sources":["../../../src/prompts/portal/quickstart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAW,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACnH,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,oBAAoB,EACpB,UAAU,EACV,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,MAAM,OAAO,uBAAwB,SAAQ,WAAW;IAAxD;;QACmB,uBAAkB,GACjC,+GAA+G,CAAC;QACjG,cAAS,GAAG,yCAAyC,CAAC;QACtD,8BAAyB,GACxC,oIAAoI,CAAC;QACtH,wBAAmB,GAClC,qGAAqG,CAAC;QACvF,+BAA0B,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAuR9D,CAAC;IArRC,qBAAqB;QACnB,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACxB,GAAG,CAAC,OAAO,CACT,wGAAwG,CACzG,CAAC;QACF,GAAG,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,WAAW;QACf,GAAG,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QAE1C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC;YACvB,OAAO,EAAE,8BAA8B;YACvC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;gBAClB,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;gBACpD,CAAC;gBAED,MAAM,UAAU,GACd,sIAAsI,CAAC;gBAEzI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC5B,OAAO,oBAAoB,CAAC,qCAAqC,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,MAAM,CAAC,sBAAsB,CAAC,CAAC;YAC/B,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC;YAC1B,OAAO,EAAE,sBAAsB;YAC/B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;gBAClB,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,oBAAoB,CAAC,uBAAuB,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACnB,MAAM,CAAC,sBAAsB,CAAC,CAAC;YAC/B,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;IACxE,CAAC;IAED,uBAAuB;QACrB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,4BAA4B;QAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,CACZ,oBAAoB,CAAC,+EAA+E,CAAC,CACtG,CAAC;IACJ,CAAC;IAED,sBAAsB;QACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,YAAY,CAAC,GAAW;QACtB,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAE1B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnE,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,UAAU;QACd,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,6CAA6C,CAAC,CAAC,CAAC;QAEjF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;YACtB,OAAO,EAAE,wEAAwE;YACjF,WAAW,EAAE,0FAA0F;YACvG,YAAY,EACV,mHAAmH;YACrH,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;;gBAClB,IAAI,CAAC,KAAK;oBAAE,OAAO;gBAEnB,IAAI,UAAU,CAAC,KAAK,CAAC;oBAAE,OAAO;gBAE9B,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,MAAA,KAAK,CAAC,IAAI,EAAE,mCAAI,EAAE,CAAC,CAAC;gBAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBAE1C,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC3B,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;wBAClC,OAAO;oBACT,CAAC;oBAED,OAAO,oBAAoB,CACzB,6IAA6I,CAC9I,CAAC;gBACJ,CAAC;gBAED,OAAO,oBAAoB,CAAC,2EAA2E,CAAC,CAAC;YAC3G,CAAC;SACF,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACnB,MAAM,CAAC,sBAAsB,CAAC,CAAC;YAC/B,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,4BAA4B;QAC1B,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,kDAAkD,CAAC,CAAC,CAAC;QACtF,IAAI,CAAC,IAAI,CAAC,KAAK,CACb,wBAAwB,CACtB,wGAAwG,CACzG,CACF,CAAC;IACJ,CAAC;IAED,mCAAmC;QACjC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,2BAA2B,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,iCAAiC;QAC/B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,kDAAkD,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,mCAAmC;QACjC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,qEAAqE,CAAC,CAAC,CAAC;IAC9G,CAAC;IAED,KAAK,CAAC,2BAA2B;QAC/B,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC;YACjC,OAAO,EAAE,gCAAgC;YACzC,OAAO,EAAE;gBACP;oBACE,KAAK,EAAE,MAAM;oBACb,KAAK,EAAE,qEAAqE,IAAI,CAAC,kBAAkB,EAAE;iBACtG;gBACD,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,kDAAkD,EAAE;aACjF;SACF,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,sBAAsB,CAAC,CAAC;YAC/B,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,aAAa,KAAK,MAAM,EAAE,CAAC;YAC7B,KAAK,CACH,qBAAqB,CACnB,kGAAkG,CACnG,CACF,CAAC;YACF,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,2CAA2C,CAAC,CAAC,CAAC;QAE/E,MAAM,SAAS,GAAG,CAAC,MAAM,WAAW,CAAC;YACnC,OAAO,EACL,oMAAoM;YACtM,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;gBAChC,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;gBAC5C,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;gBAChC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;gBACpC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;gBAChC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE;gBAChC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;gBAC9B,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;aAC7B;YACD,aAAa,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC;SACvF,CAAC,CAAa,CAAC;QAEhB,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,sBAAsB,CAAC,CAAC;YAC/B,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,qDAAqD,CAAC,CAAC,CAAC;QAEzF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC;YAC3B,OAAO,EAAE,sGAAsG;YAC/G,WAAW,EAAE,qFAAqF;YAClG,YAAY,EAAE,IAAI;YAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;;gBAClB,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,EAAE,mCAAI,EAAE,CAAC,CAAC;gBAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBAE1C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,IAAI,CAAC,0BAA0B,EAAE,CAAC;oBAC1E,OAAO,oBAAoB,CAAC,uEAAuE,CAAC,CAAC;gBACvG,CAAC;gBAED,IAAI,OAAO,KAAK,IAAI,CAAC,0BAA0B,EAAE,CAAC;oBAChD,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;oBAC9E,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACrB,OAAO,oBAAoB,CACzB,8GAA8G,CAC/G,CAAC;oBACJ,CAAC;gBACH,CAAC;qBAAM,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxE,OAAO,oBAAoB,CACzB,8GAA8G,CAC/G,CAAC;gBACJ,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,sBAAsB,CAAC,CAAC;YAC/B,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,0BAA0B,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;IAED,sCAAsC;QACpC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,+BAA+B,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED,2CAA2C;QACzC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,6DAA6D,CAAC,CAAC,CAAC;IACtG,CAAC;IAED,6CAA6C,CAAC,YAAoB;QAChE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,2BAA2B,YAAY,EAAE,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,2BAA2B,CAAC,YAAoB;QAC9C,MAAM,cAAc,GAAG,eAAe,CAAC,YAAY,CAAuB,CAAC;QAE3E,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAExD,MAAM,gBAAgB,GAAG,IAAI;aAC1B,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;aAC5E,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC7B,CAAC;IAED,mBAAmB,CAAC,cAAsB;QACxC,GAAG,CAAC,IAAI,CACN,qBAAqB,CAAC,mCAAmC,IAAI,CAAC,SAAS,IAAI,CAAC;YAC1E,qBAAqB,CACnB,qCAAqC,cAAc,2DAA2D,CAC/G;YACD,qBAAqB,CAAC,kCAAkC,CAAC,CAC5D,CAAC;QACF,KAAK,CACH,qBAAqB,CAAC,gBAAgB,CAAC;YACrC,qBAAqB,CAAC,8DAA8D,CAAC;YACrF,qBAAqB,CACnB,iGAAiG,IAAI,CAAC,yBAAyB,EAAE,CAClI;YACD,qBAAqB,CAAC,KAAK,CAAC;YAC5B,qBAAqB,CACnB,mHAAmH,CACpH;YACD,qBAAqB,CACnB,8EAA8E,IAAI,CAAC,mBAAmB,EAAE,CACzG,CACJ,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -32,7 +32,7 @@ export class PortalRecipePrompts {
|
|
|
32
32
|
}
|
|
33
33
|
async buildConfigFilePathPrompt(buildDirectoryPath) {
|
|
34
34
|
const buildConfigFilePath = await text({
|
|
35
|
-
message: `⚠️
|
|
35
|
+
message: `⚠️ APIMATIC-BUILD.json is required and was not found in "${buildDirectoryPath}".\nPlease enter the path to your build config file (relative to this directory):`,
|
|
36
36
|
validate: (filePath) => {
|
|
37
37
|
if (!filePath) {
|
|
38
38
|
return "Build config file path cannot be empty. Please provide a valid file path.";
|
|
@@ -141,7 +141,8 @@ export class PortalRecipePrompts {
|
|
|
141
141
|
options: [
|
|
142
142
|
{ value: "yes", label: "Yes" },
|
|
143
143
|
{ value: "no", label: "No" }
|
|
144
|
-
]
|
|
144
|
+
],
|
|
145
|
+
initialValue: "yes"
|
|
145
146
|
});
|
|
146
147
|
if (isCancel(addAnotherStep)) {
|
|
147
148
|
cancel("Operation cancelled.");
|
|
@@ -167,8 +168,7 @@ export class PortalRecipePrompts {
|
|
|
167
168
|
log.step(`✅ Step has been added successfully.`);
|
|
168
169
|
}
|
|
169
170
|
displayRecipeGenerationSuccessMessage(buildDirectoryPath) {
|
|
170
|
-
log.
|
|
171
|
-
log.message(`📦 Generated recipe has been added to build directory at: ${buildDirectoryPath}`);
|
|
171
|
+
log.message(`🎉 Generated recipe has been added to build directory at: ${buildDirectoryPath}`);
|
|
172
172
|
outro(`▶ Run the command 'apimatic portal:serve' to preview your documentation portal.`);
|
|
173
173
|
}
|
|
174
174
|
startProgressIndicatorWithMessage(message) {
|
|
@@ -184,7 +184,6 @@ export class PortalRecipePrompts {
|
|
|
184
184
|
.map((line) => line.replace(/#.*/, (match) => getMessageInGreenColor(match)))
|
|
185
185
|
.join("\n");
|
|
186
186
|
log.step(`🛠️ You can edit the following files to customize your API Recipe :\n\n` + coloredLogString);
|
|
187
|
-
log.message(`💡 Modify the TOC file to change the position of the API Recipes section in the navbar.`);
|
|
188
187
|
}
|
|
189
188
|
logError(error) {
|
|
190
189
|
outro(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"new-recipe.js","sourceRoot":"","sources":["../../../../src/prompts/portal/recipe/new-recipe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC1G,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAGjE,MAAM,OAAO,mBAAmB;IAAhC;QACmB,SAAI,GAAG,OAAO,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"new-recipe.js","sourceRoot":"","sources":["../../../../src/prompts/portal/recipe/new-recipe.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
displayGeneratedPortalMessage(portalDir: string): void;
|
|
6
|
-
displayOutroMessage(port: number): void;
|
|
1
|
+
import { BasePrompts } from "./common/base-prompts.js";
|
|
2
|
+
export declare class PortalServePrompts extends BasePrompts {
|
|
3
|
+
overwriteExistingPortalArtifactsPrompt(): Promise<boolean>;
|
|
4
|
+
displayOutroMessage(buildDirectory: string, portalDirectory: string, port: number, hotReloadDisabled: boolean): void;
|
|
7
5
|
}
|
|
@@ -1,20 +1,29 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import process from "process";
|
|
2
|
+
import { cancel, isCancel, log, outro, select } from "@clack/prompts";
|
|
3
|
+
import { BasePrompts } from "./common/base-prompts.js";
|
|
4
|
+
export class PortalServePrompts extends BasePrompts {
|
|
5
|
+
async overwriteExistingPortalArtifactsPrompt() {
|
|
6
|
+
const useExistingFolder = await select({
|
|
7
|
+
message: `⚠️ The destination folder is not empty, do you want to overwrite the existing files?`,
|
|
8
|
+
options: [
|
|
9
|
+
{ value: "yes", label: "Yes" },
|
|
10
|
+
{ value: "no", label: "No" }
|
|
11
|
+
],
|
|
12
|
+
initialValue: "no"
|
|
13
|
+
});
|
|
14
|
+
if (isCancel(useExistingFolder)) {
|
|
15
|
+
cancel("Operation cancelled.");
|
|
16
|
+
return process.exit(1);
|
|
17
|
+
}
|
|
18
|
+
return useExistingFolder === "yes";
|
|
6
19
|
}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
displayGeneratingPortalErrorMessage() {
|
|
11
|
-
this.spin.stop(getMessageInRedColor(`There was an error while generating the portal.`));
|
|
12
|
-
}
|
|
13
|
-
displayGeneratedPortalMessage(portalDir) {
|
|
14
|
-
this.spin.stop(`Portal generated successfully at ${portalDir}`);
|
|
15
|
-
}
|
|
16
|
-
displayOutroMessage(port) {
|
|
20
|
+
displayOutroMessage(buildDirectory, portalDirectory, port, hotReloadDisabled) {
|
|
21
|
+
log.message(`The generated portal can be found at ${portalDirectory}`);
|
|
17
22
|
log.message(`Server started at http://localhost:${port}`);
|
|
23
|
+
if (!hotReloadDisabled) {
|
|
24
|
+
log.message(`🔍 Hot reload enabled. Watching the following build folder for any changes:`);
|
|
25
|
+
log.message(`${buildDirectory}`);
|
|
26
|
+
}
|
|
18
27
|
outro(`Press CTRL+C to stop the server.`);
|
|
19
28
|
}
|
|
20
29
|
}
|