@apimatic/cli 1.1.0-alpha.7 → 1.1.0-alpha.9
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 +85 -47
- package/lib/actions/portal/generate.d.ts +7 -0
- package/lib/actions/portal/generate.js +58 -0
- package/lib/actions/portal/toc/new-toc.d.ts +17 -0
- package/lib/actions/portal/toc/new-toc.js +134 -0
- package/lib/application/portal/toc/sdl-parser.d.ts +13 -0
- package/lib/application/portal/toc/sdl-parser.js +53 -0
- package/lib/application/portal/toc/toc-content-parser.d.ts +5 -0
- package/lib/application/portal/toc/toc-content-parser.js +46 -0
- package/lib/application/portal/toc/toc-structure-generator.d.ts +6 -0
- package/lib/application/portal/toc/toc-structure-generator.js +88 -0
- package/lib/client-utils/sdk-client.js +7 -3
- package/lib/commands/api/transform.js +3 -3
- package/lib/commands/api/validate.js +1 -1
- package/lib/commands/portal/generate.d.ts +6 -1
- package/lib/commands/portal/generate.js +58 -75
- package/lib/commands/portal/quickstart.js +21 -25
- package/lib/commands/portal/serve.d.ts +0 -1
- package/lib/commands/portal/serve.js +4 -10
- package/lib/commands/portal/toc/new.d.ts +15 -0
- package/lib/commands/portal/toc/new.js +65 -0
- package/lib/commands/sdk/generate.js +4 -4
- package/lib/controllers/api/transform.js +9 -6
- package/lib/controllers/api/validate.d.ts +2 -2
- package/lib/controllers/api/validate.js +8 -16
- package/lib/controllers/portal/generate.d.ts +2 -2
- package/lib/controllers/portal/generate.js +101 -49
- package/lib/controllers/portal/quickstart.d.ts +3 -3
- package/lib/controllers/portal/quickstart.js +60 -8
- package/lib/controllers/portal/serve.d.ts +1 -2
- package/lib/controllers/portal/serve.js +13 -27
- package/lib/controllers/sdk/generate.d.ts +3 -3
- package/lib/controllers/sdk/generate.js +5 -6
- package/lib/infrastructure/services/portal-service.d.ts +16 -0
- package/lib/infrastructure/services/portal-service.js +133 -0
- package/lib/prompts/portal/generate.d.ts +10 -0
- package/lib/prompts/portal/generate.js +62 -0
- package/lib/prompts/portal/quickstart.d.ts +4 -5
- package/lib/prompts/portal/quickstart.js +16 -17
- package/lib/prompts/portal/toc/new-toc.d.ts +10 -0
- package/lib/prompts/portal/toc/new-toc.js +46 -0
- package/lib/services/portal/server.d.ts +5 -2
- package/lib/services/portal/server.js +57 -27
- package/lib/types/api/transform.d.ts +16 -0
- package/lib/types/api/transform.js +19 -2
- package/lib/types/common/result.d.ts +17 -0
- package/lib/types/common/result.js +36 -0
- package/lib/types/portal/generate.d.ts +26 -9
- package/lib/types/portal/generate.js +2 -1
- package/lib/types/sdk/generate.d.ts +3 -2
- package/lib/types/sdk/generate.js +3 -2
- package/lib/types/sdl/sdl.d.ts +11 -0
- package/lib/types/sdl/sdl.js +3 -0
- package/lib/types/toc/toc.d.ts +31 -0
- package/lib/types/toc/toc.js +10 -0
- package/lib/utils/utils.d.ts +2 -0
- package/lib/utils/utils.js +37 -14
- package/lib/validators/common/directoryValidator.js +4 -4
- package/package.json +12 -9
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PortalNewTocPrompts = void 0;
|
|
4
|
+
const prompts_1 = require("@clack/prompts");
|
|
5
|
+
class PortalNewTocPrompts {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.spin = (0, prompts_1.spinner)();
|
|
8
|
+
}
|
|
9
|
+
async overwriteExistingTocPrompt() {
|
|
10
|
+
const useExistingFile = await (0, prompts_1.select)({
|
|
11
|
+
message: `A toc file already exists at the specified destination path, do you want to overwrite it?`,
|
|
12
|
+
options: [
|
|
13
|
+
{ value: "yes", label: "Yes" },
|
|
14
|
+
{ value: "no", label: "No" }
|
|
15
|
+
]
|
|
16
|
+
});
|
|
17
|
+
if ((0, prompts_1.isCancel)(useExistingFile)) {
|
|
18
|
+
(0, prompts_1.cancel)("Operation cancelled.");
|
|
19
|
+
return process.exit(1);
|
|
20
|
+
}
|
|
21
|
+
if (useExistingFile === "no") {
|
|
22
|
+
(0, prompts_1.outro)("Please enter a different destination path or delete the existing toc file and try again.");
|
|
23
|
+
}
|
|
24
|
+
return useExistingFile === "yes";
|
|
25
|
+
}
|
|
26
|
+
startProgressIndicatorWithMessage(message) {
|
|
27
|
+
this.spin.start(message);
|
|
28
|
+
}
|
|
29
|
+
stopProgressIndicatorWithMessage(message) {
|
|
30
|
+
this.spin.stop(message);
|
|
31
|
+
}
|
|
32
|
+
displayOutroMessage(tocPath) {
|
|
33
|
+
(0, prompts_1.outro)(`✅ TOC file successfully created at: ${tocPath}`);
|
|
34
|
+
}
|
|
35
|
+
logError(error) {
|
|
36
|
+
(0, prompts_1.outro)(error);
|
|
37
|
+
}
|
|
38
|
+
displayWarning(message) {
|
|
39
|
+
prompts_1.log.warning(message);
|
|
40
|
+
}
|
|
41
|
+
displayInfo(message) {
|
|
42
|
+
prompts_1.log.step(message);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.PortalNewTocPrompts = PortalNewTocPrompts;
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LXRvYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wcm9tcHRzL3BvcnRhbC90b2MvbmV3LXRvYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0Q0FBK0U7QUFFL0UsTUFBYSxtQkFBbUI7SUFBaEM7UUFDbUIsU0FBSSxHQUFHLElBQUEsaUJBQU8sR0FBRSxDQUFDO0lBOENwQyxDQUFDO0lBNUNDLEtBQUssQ0FBQywwQkFBMEI7UUFDOUIsTUFBTSxlQUFlLEdBQUcsTUFBTSxJQUFBLGdCQUFNLEVBQUM7WUFDbkMsT0FBTyxFQUFFLDJGQUEyRjtZQUNwRyxPQUFPLEVBQUU7Z0JBQ1AsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7Z0JBQzlCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO2FBQzdCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxJQUFBLGtCQUFRLEVBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztZQUM5QixJQUFBLGdCQUFNLEVBQUMsc0JBQXNCLENBQUMsQ0FBQztZQUMvQixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekIsQ0FBQztRQUVELElBQUksZUFBZSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQzdCLElBQUEsZUFBSyxFQUFDLDBGQUEwRixDQUFDLENBQUM7UUFDcEcsQ0FBQztRQUVELE9BQU8sZUFBZSxLQUFLLEtBQUssQ0FBQztJQUNuQyxDQUFDO0lBRUQsaUNBQWlDLENBQUMsT0FBZTtRQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsZ0NBQWdDLENBQUMsT0FBZTtRQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsbUJBQW1CLENBQUMsT0FBZTtRQUNqQyxJQUFBLGVBQUssRUFBQyx1Q0FBdUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQWE7UUFDcEIsSUFBQSxlQUFLLEVBQUMsS0FBSyxDQUFDLENBQUM7SUFDZixDQUFDO0lBRUQsY0FBYyxDQUFDLE9BQWU7UUFDNUIsYUFBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQWU7UUFDekIsYUFBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQixDQUFDO0NBQ0Y7QUEvQ0Qsa0RBK0NDIn0=
|
|
@@ -4,8 +4,11 @@ export declare class PortalServerService {
|
|
|
4
4
|
private liveReloadServer;
|
|
5
5
|
private readonly app;
|
|
6
6
|
private readonly port;
|
|
7
|
+
private readonly liveReloadPort;
|
|
7
8
|
constructor();
|
|
8
|
-
|
|
9
|
-
|
|
9
|
+
private findAvailablePort;
|
|
10
|
+
private createLiveReloadServer;
|
|
11
|
+
setupServer(generatedPortalPath: string): Promise<void>;
|
|
12
|
+
startServer(config: PortalServerConfig, noReload?: boolean, displayShutdownMessages?: boolean): Promise<boolean>;
|
|
10
13
|
stopServer(): Promise<void>;
|
|
11
14
|
}
|
|
@@ -10,37 +10,67 @@ const utils_1 = require("../../utils/utils");
|
|
|
10
10
|
class PortalServerService {
|
|
11
11
|
constructor() {
|
|
12
12
|
this.port = 3000;
|
|
13
|
+
this.liveReloadPort = 35729;
|
|
13
14
|
this.app = express();
|
|
14
15
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
async findAvailablePort(startPort) {
|
|
17
|
+
let port = startPort;
|
|
18
|
+
const maxPort = startPort + 10; // Limit the port search range
|
|
19
|
+
while (port < maxPort) {
|
|
20
|
+
if (!(await (0, utils_1.isPortInUse)(port))) {
|
|
21
|
+
return port;
|
|
22
|
+
}
|
|
23
|
+
port++;
|
|
24
|
+
}
|
|
25
|
+
// If no port is found in the range, return the original port
|
|
26
|
+
return startPort;
|
|
27
|
+
}
|
|
28
|
+
async createLiveReloadServer(generatedPortalPath) {
|
|
29
|
+
try {
|
|
30
|
+
const availablePort = await this.findAvailablePort(this.liveReloadPort);
|
|
31
|
+
this.liveReloadServer = livereload.createServer({
|
|
32
|
+
port: availablePort
|
|
33
|
+
});
|
|
34
|
+
this.liveReloadServer.watch(generatedPortalPath);
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
console.log((0, utils_1.getMessageInRedColor)(`Unable to serve the portal: ${error.message}`));
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
async setupServer(generatedPortalPath) {
|
|
41
|
+
await this.createLiveReloadServer(generatedPortalPath);
|
|
42
|
+
if (this.liveReloadServer) {
|
|
43
|
+
this.app.use(connectLivereload());
|
|
44
|
+
}
|
|
19
45
|
this.app.use(express.static(generatedPortalPath));
|
|
20
46
|
}
|
|
21
|
-
startServer(config, noReload = false, displayShutdownMessages = true) {
|
|
47
|
+
async startServer(config, noReload = false, displayShutdownMessages = true) {
|
|
22
48
|
const { generatedPortalPath, targetFolder, configDir, authKey, ignoredPaths, port, openInBrowser } = config;
|
|
23
|
-
const
|
|
24
|
-
return new Promise((resolve) => {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
process.stdin.setRawMode(false);
|
|
37
|
-
}
|
|
49
|
+
const requestedPort = port !== null && port !== void 0 ? port : this.port;
|
|
50
|
+
return new Promise((resolve, reject) => {
|
|
51
|
+
this.server = this.app.listen(requestedPort, () => {
|
|
52
|
+
if (openInBrowser) {
|
|
53
|
+
open(`http://localhost:${requestedPort}`);
|
|
54
|
+
}
|
|
55
|
+
if (!noReload) {
|
|
56
|
+
(0, serve_1.watchAndRegeneratePortal)(targetFolder, generatedPortalPath, configDir, authKey, ignoredPaths);
|
|
57
|
+
}
|
|
58
|
+
if (process.platform !== "darwin") {
|
|
59
|
+
//For non-macOS users.
|
|
60
|
+
if (process.stdin.setRawMode) {
|
|
61
|
+
process.stdin.setRawMode(false);
|
|
38
62
|
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
63
|
+
}
|
|
64
|
+
resolve(true);
|
|
65
|
+
}).on('error', (err) => {
|
|
66
|
+
if (err.code === 'EADDRINUSE') {
|
|
67
|
+
console.error((0, utils_1.getMessageInRedColor)(`Port ${requestedPort} is not available. Unable to serve your portal.`));
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
console.error((0, utils_1.getMessageInRedColor)(`Unable to serve the portal: ${err.message}`));
|
|
71
|
+
}
|
|
72
|
+
reject(err);
|
|
73
|
+
});
|
|
44
74
|
const shutdown = async () => {
|
|
45
75
|
if (displayShutdownMessages) {
|
|
46
76
|
console.log("Shutting down server...");
|
|
@@ -49,7 +79,7 @@ class PortalServerService {
|
|
|
49
79
|
if (displayShutdownMessages) {
|
|
50
80
|
console.log("Server shut down successfully.");
|
|
51
81
|
}
|
|
52
|
-
resolve();
|
|
82
|
+
resolve(true);
|
|
53
83
|
process.exit(0);
|
|
54
84
|
};
|
|
55
85
|
process.on("SIGINT", shutdown);
|
|
@@ -68,4 +98,4 @@ class PortalServerService {
|
|
|
68
98
|
}
|
|
69
99
|
}
|
|
70
100
|
exports.PortalServerService = PortalServerService;
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3BvcnRhbC9zZXJ2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQW1DO0FBQ25DLHlDQUF5QztBQUN6Qyx3REFBd0Q7QUFDeEQsNkJBQTZCO0FBQzdCLDBEQUEwRTtBQUcxRSw2Q0FBc0U7QUFFdEUsTUFBYSxtQkFBbUI7SUFPOUI7UUFIaUIsU0FBSSxHQUFHLElBQUksQ0FBQztRQUNaLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBR3RDLElBQUksQ0FBQyxHQUFHLEdBQUcsT0FBTyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVPLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxTQUFpQjtRQUMvQyxJQUFJLElBQUksR0FBRyxTQUFTLENBQUM7UUFDckIsTUFBTSxPQUFPLEdBQUcsU0FBUyxHQUFHLEVBQUUsQ0FBQyxDQUFDLDhCQUE4QjtRQUU5RCxPQUFPLElBQUksR0FBRyxPQUFPLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsQ0FBQyxNQUFNLElBQUEsbUJBQVcsRUFBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQy9CLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUNELElBQUksRUFBRSxDQUFDO1FBQ1QsQ0FBQztRQUVELDZEQUE2RDtRQUM3RCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRU8sS0FBSyxDQUFDLHNCQUFzQixDQUFDLG1CQUEyQjtRQUM5RCxJQUFJLENBQUM7WUFDSCxNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFFeEUsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUM7Z0JBQzlDLElBQUksRUFBRSxhQUFhO2FBQ3BCLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENB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
|
|
@@ -27,3 +27,19 @@ export declare const DestinationFormats: {
|
|
|
27
27
|
Postman20: string;
|
|
28
28
|
GraphQlSchema: string;
|
|
29
29
|
};
|
|
30
|
+
export declare enum TransformationFormats {
|
|
31
|
+
APIMATIC = "Apimatic",
|
|
32
|
+
WADL2009 = "Wadl2009",
|
|
33
|
+
WSDL = "Wsdl",
|
|
34
|
+
SWAGGER10 = "Swagger10",
|
|
35
|
+
SWAGGER20 = "Swagger20",
|
|
36
|
+
SWAGGERYAML = "Swaggeryaml",
|
|
37
|
+
OAS3 = "Oas3",
|
|
38
|
+
OPENAPI3YAML = "Openapi3Yaml",
|
|
39
|
+
APIBLUEPRINT = "Apiblueprint",
|
|
40
|
+
RAML = "Raml",
|
|
41
|
+
RAML10 = "Raml10",
|
|
42
|
+
POSTMAN10 = "Postman10",
|
|
43
|
+
POSTMAN20 = "Postman20",
|
|
44
|
+
GRAPHQLSCHEMA = "Graphqlschema"
|
|
45
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DestinationFormats = void 0;
|
|
3
|
+
exports.TransformationFormats = exports.DestinationFormats = void 0;
|
|
4
4
|
exports.DestinationFormats = {
|
|
5
5
|
OpenApi3Json: "json",
|
|
6
6
|
OpenApi3Yaml: "yaml",
|
|
@@ -16,4 +16,21 @@ exports.DestinationFormats = {
|
|
|
16
16
|
Postman20: "json",
|
|
17
17
|
GraphQlSchema: "json"
|
|
18
18
|
};
|
|
19
|
-
|
|
19
|
+
var TransformationFormats;
|
|
20
|
+
(function (TransformationFormats) {
|
|
21
|
+
TransformationFormats["APIMATIC"] = "Apimatic";
|
|
22
|
+
TransformationFormats["WADL2009"] = "Wadl2009";
|
|
23
|
+
TransformationFormats["WSDL"] = "Wsdl";
|
|
24
|
+
TransformationFormats["SWAGGER10"] = "Swagger10";
|
|
25
|
+
TransformationFormats["SWAGGER20"] = "Swagger20";
|
|
26
|
+
TransformationFormats["SWAGGERYAML"] = "Swaggeryaml";
|
|
27
|
+
TransformationFormats["OAS3"] = "Oas3";
|
|
28
|
+
TransformationFormats["OPENAPI3YAML"] = "Openapi3Yaml";
|
|
29
|
+
TransformationFormats["APIBLUEPRINT"] = "Apiblueprint";
|
|
30
|
+
TransformationFormats["RAML"] = "Raml";
|
|
31
|
+
TransformationFormats["RAML10"] = "Raml10";
|
|
32
|
+
TransformationFormats["POSTMAN10"] = "Postman10";
|
|
33
|
+
TransformationFormats["POSTMAN20"] = "Postman20";
|
|
34
|
+
TransformationFormats["GRAPHQLSCHEMA"] = "Graphqlschema";
|
|
35
|
+
})(TransformationFormats || (exports.TransformationFormats = TransformationFormats = {}));
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL2FwaS90cmFuc2Zvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBa0JhLFFBQUEsa0JBQWtCLEdBQUc7SUFDaEMsWUFBWSxFQUFFLE1BQU07SUFDcEIsWUFBWSxFQUFFLE1BQU07SUFDcEIsUUFBUSxFQUFFLE1BQU07SUFDaEIsUUFBUSxFQUFFLEtBQUs7SUFDZixJQUFJLEVBQUUsS0FBSztJQUNYLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLFdBQVcsRUFBRSxNQUFNO0lBQ25CLElBQUksRUFBRSxNQUFNO0lBQ1osTUFBTSxFQUFFLE1BQU07SUFDZCxTQUFTLEVBQUUsTUFBTTtJQUNqQixTQUFTLEVBQUUsTUFBTTtJQUNqQixhQUFhLEVBQUUsTUFBTTtDQUN0QixDQUFDO0FBRUYsSUFBWSxxQkFlWDtBQWZELFdBQVkscUJBQXFCO0lBQy9CLDhDQUFxQixDQUFBO0lBQ3JCLDhDQUFxQixDQUFBO0lBQ3JCLHNDQUFhLENBQUE7SUFDYixnREFBdUIsQ0FBQTtJQUN2QixnREFBdUIsQ0FBQTtJQUN2QixvREFBMkIsQ0FBQTtJQUMzQixzQ0FBYSxDQUFBO0lBQ2Isc0RBQTZCLENBQUE7SUFDN0Isc0RBQTZCLENBQUE7SUFDN0Isc0NBQWEsQ0FBQTtJQUNiLDBDQUFpQixDQUFBO0lBQ2pCLGdEQUF1QixDQUFBO0lBQ3ZCLGdEQUF1QixDQUFBO0lBQ3ZCLHdEQUErQixDQUFBO0FBQ2pDLENBQUMsRUFmVyxxQkFBcUIscUNBQXJCLHFCQUFxQixRQWVoQyJ9
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare class Result<T, TError> {
|
|
2
|
+
private readonly Status;
|
|
3
|
+
readonly value?: T | undefined;
|
|
4
|
+
readonly error?: TError | undefined;
|
|
5
|
+
private constructor();
|
|
6
|
+
static success<T, TError>(value: T): Result<T, TError>;
|
|
7
|
+
static failure<T, TError>(error: TError): Result<T, TError>;
|
|
8
|
+
static cancelled<T, TError>(value: T): Result<T, TError>;
|
|
9
|
+
isFailed(): boolean;
|
|
10
|
+
isCancelled(): boolean;
|
|
11
|
+
isSuccess(): boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare enum ResultStatus {
|
|
14
|
+
Success = 0,
|
|
15
|
+
Failed = 1,
|
|
16
|
+
Cancelled = 2
|
|
17
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ResultStatus = exports.Result = void 0;
|
|
4
|
+
class Result {
|
|
5
|
+
constructor(Status, value, error) {
|
|
6
|
+
this.Status = Status;
|
|
7
|
+
this.value = value;
|
|
8
|
+
this.error = error;
|
|
9
|
+
}
|
|
10
|
+
static success(value) {
|
|
11
|
+
return new Result(ResultStatus.Success, value, undefined);
|
|
12
|
+
}
|
|
13
|
+
static failure(error) {
|
|
14
|
+
return new Result(ResultStatus.Failed, undefined, error);
|
|
15
|
+
}
|
|
16
|
+
static cancelled(value) {
|
|
17
|
+
return new Result(ResultStatus.Cancelled, value, undefined);
|
|
18
|
+
}
|
|
19
|
+
isFailed() {
|
|
20
|
+
return this.Status == ResultStatus.Failed;
|
|
21
|
+
}
|
|
22
|
+
isCancelled() {
|
|
23
|
+
return this.Status == ResultStatus.Cancelled;
|
|
24
|
+
}
|
|
25
|
+
isSuccess() {
|
|
26
|
+
return this.Status == ResultStatus.Success;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.Result = Result;
|
|
30
|
+
var ResultStatus;
|
|
31
|
+
(function (ResultStatus) {
|
|
32
|
+
ResultStatus[ResultStatus["Success"] = 0] = "Success";
|
|
33
|
+
ResultStatus[ResultStatus["Failed"] = 1] = "Failed";
|
|
34
|
+
ResultStatus[ResultStatus["Cancelled"] = 2] = "Cancelled";
|
|
35
|
+
})(ResultStatus || (exports.ResultStatus = ResultStatus = {}));
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL2NvbW1vbi9yZXN1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsTUFBYSxNQUFNO0lBQ2pCLFlBQ21CLE1BQW9CLEVBQ3JCLEtBQVMsRUFDVCxLQUFjO1FBRmIsV0FBTSxHQUFOLE1BQU0sQ0FBYztRQUNyQixVQUFLLEdBQUwsS0FBSyxDQUFJO1FBQ1QsVUFBSyxHQUFMLEtBQUssQ0FBUztJQUM3QixDQUFDO0lBRUcsTUFBTSxDQUFDLE9BQU8sQ0FBWSxLQUFRO1FBQ3ZDLE9BQU8sSUFBSSxNQUFNLENBQVksWUFBWSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFPLENBQVksS0FBYTtRQUM1QyxPQUFPLElBQUksTUFBTSxDQUFZLFlBQVksQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFTSxNQUFNLENBQUMsU0FBUyxDQUFZLEtBQVE7UUFDekMsT0FBTyxJQUFJLE1BQU0sQ0FBWSxZQUFZLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sUUFBUTtRQUNiLE9BQU8sSUFBSSxDQUFDLE1BQU0sSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQzVDLENBQUM7SUFFTSxXQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE1BQU0sSUFBSSxZQUFZLENBQUMsU0FBUyxDQUFDO0lBQy9DLENBQUM7SUFFTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUMsTUFBTSxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUM7SUFDN0MsQ0FBQztDQUNGO0FBOUJELHdCQThCQztBQUVELElBQVksWUFJWDtBQUpELFdBQVksWUFBWTtJQUN0QixxREFBTyxDQUFBO0lBQ1AsbURBQU0sQ0FBQTtJQUNOLHlEQUFTLENBQUE7QUFDWCxDQUFDLEVBSlcsWUFBWSw0QkFBWixZQUFZLFFBSXZCIn0=
|
|
@@ -1,9 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
export interface GeneratePortalParams {
|
|
2
|
+
readonly sourceBuildInputZipFilePath: string;
|
|
3
|
+
readonly generatedPortalArtifactsFolderPath: string;
|
|
4
|
+
readonly generatedPortalArtifactsZipFilePath: string;
|
|
5
|
+
readonly overrideAuthKey: string | null;
|
|
6
|
+
readonly generateZipFile: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface PortalPaths {
|
|
9
|
+
readonly sourceFolderPath: string;
|
|
10
|
+
readonly destinationFolderPath: string;
|
|
11
|
+
readonly generatedPortalArtifactsFolderPath: string;
|
|
12
|
+
readonly generatedPortalArtifactsZipFilePath: string;
|
|
13
|
+
}
|
|
14
|
+
export interface ErrorResponse {
|
|
15
|
+
readonly title: string;
|
|
16
|
+
readonly detail?: string;
|
|
17
|
+
readonly errors: Record<string, string[]>;
|
|
18
|
+
readonly message?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface GenerateFlags {
|
|
21
|
+
readonly folder: string;
|
|
22
|
+
readonly destination: string;
|
|
23
|
+
readonly force: boolean;
|
|
24
|
+
readonly zip: boolean;
|
|
25
|
+
readonly "auth-key": string;
|
|
26
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
3
|
+
;
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHlwZXMvcG9ydGFsL2dlbmVyYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBTUMsQ0FBQyJ9
|
|
@@ -15,8 +15,9 @@ export type SDKGenerateUnprocessableError = {
|
|
|
15
15
|
export declare enum SimplePlatforms {
|
|
16
16
|
CSHARP = "CS_NET_STANDARD_LIB",
|
|
17
17
|
JAVA = "JAVA_ECLIPSE_JRE_LIB",
|
|
18
|
-
PHP = "
|
|
18
|
+
PHP = "PHP_GENERIC_LIB_V2",
|
|
19
19
|
PYTHON = "PYTHON_GENERIC_LIB",
|
|
20
20
|
RUBY = "RUBY_GENERIC_LIB",
|
|
21
|
-
TYPESCRIPT = "TS_GENERIC_LIB"
|
|
21
|
+
TYPESCRIPT = "TS_GENERIC_LIB",
|
|
22
|
+
GO = "GO_GENERIC_LIB"
|
|
22
23
|
}
|
|
@@ -5,9 +5,10 @@ var SimplePlatforms;
|
|
|
5
5
|
(function (SimplePlatforms) {
|
|
6
6
|
SimplePlatforms["CSHARP"] = "CS_NET_STANDARD_LIB";
|
|
7
7
|
SimplePlatforms["JAVA"] = "JAVA_ECLIPSE_JRE_LIB";
|
|
8
|
-
SimplePlatforms["PHP"] = "
|
|
8
|
+
SimplePlatforms["PHP"] = "PHP_GENERIC_LIB_V2";
|
|
9
9
|
SimplePlatforms["PYTHON"] = "PYTHON_GENERIC_LIB";
|
|
10
10
|
SimplePlatforms["RUBY"] = "RUBY_GENERIC_LIB";
|
|
11
11
|
SimplePlatforms["TYPESCRIPT"] = "TS_GENERIC_LIB";
|
|
12
|
+
SimplePlatforms["GO"] = "GO_GENERIC_LIB";
|
|
12
13
|
})(SimplePlatforms || (exports.SimplePlatforms = SimplePlatforms = {}));
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHlwZXMvc2RrL2dlbmVyYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWlCQSxJQUFZLGVBUVg7QUFSRCxXQUFZLGVBQWU7SUFDekIsaURBQThCLENBQUE7SUFDOUIsZ0RBQTZCLENBQUE7SUFDN0IsNkNBQTBCLENBQUE7SUFDMUIsZ0RBQTZCLENBQUE7SUFDN0IsNENBQXlCLENBQUE7SUFDekIsZ0RBQTZCLENBQUE7SUFDN0Isd0NBQXFCLENBQUE7QUFDdkIsQ0FBQyxFQVJXLGVBQWUsK0JBQWYsZUFBZSxRQVExQiJ9
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL3NkbC9zZGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export interface Toc {
|
|
2
|
+
toc: Array<TocGroup | TocGenerated>;
|
|
3
|
+
}
|
|
4
|
+
export interface TocGroup {
|
|
5
|
+
readonly group: string;
|
|
6
|
+
readonly items: Array<TocGroup | TocGenerated | TocEndpoint | TocEndpointGroupOverview | TocModel | TocCustomPage>;
|
|
7
|
+
}
|
|
8
|
+
export interface TocGenerated {
|
|
9
|
+
readonly generate: string;
|
|
10
|
+
readonly from: string;
|
|
11
|
+
}
|
|
12
|
+
export interface TocEndpointGroupOverview {
|
|
13
|
+
readonly generate: null;
|
|
14
|
+
readonly from: "endpoint-group-overview";
|
|
15
|
+
readonly endpointGroup: string;
|
|
16
|
+
}
|
|
17
|
+
export interface TocEndpoint {
|
|
18
|
+
readonly generate: null;
|
|
19
|
+
readonly from: "endpoint";
|
|
20
|
+
readonly endpointName: string;
|
|
21
|
+
readonly endpointGroup: string;
|
|
22
|
+
}
|
|
23
|
+
export interface TocModel {
|
|
24
|
+
readonly generate: null;
|
|
25
|
+
readonly from: "model";
|
|
26
|
+
readonly modelName: string;
|
|
27
|
+
}
|
|
28
|
+
export interface TocCustomPage {
|
|
29
|
+
readonly page: string;
|
|
30
|
+
readonly file: string;
|
|
31
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
;
|
|
4
|
+
;
|
|
5
|
+
;
|
|
6
|
+
;
|
|
7
|
+
;
|
|
8
|
+
;
|
|
9
|
+
;
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9jLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL3RvYy90b2MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQyxDQUFDO0FBS0QsQ0FBQztBQUtELENBQUM7QUFNRCxDQUFDO0FBT0QsQ0FBQztBQU1ELENBQUM7QUFLRCxDQUFDIn0=
|
package/lib/utils/utils.d.ts
CHANGED
|
@@ -22,6 +22,7 @@ export declare const zipDirectoryToStream: (sourcePath: string) => Promise<NodeJ
|
|
|
22
22
|
export declare const zipDirectory: (sourcePath: string, destinationPath: string) => Promise<string>;
|
|
23
23
|
export declare const replaceHTML: (string: string) => string;
|
|
24
24
|
export declare const isJSONParsable: (json: string) => boolean;
|
|
25
|
+
export declare const getGeneratedFilesPaths: (sourceDirectoryPath: string, generatedPortalArtifactsDirectoryPath: string) => string[];
|
|
25
26
|
export declare const getFileNameFromPath: (filePath: string) => string;
|
|
26
27
|
export declare const printValidationMessages: ({ warnings, errors, messages }: ValidationMessages, { log, warn, error }: loggers) => void;
|
|
27
28
|
/**
|
|
@@ -34,6 +35,7 @@ export declare function extractZipFile(zipFilePath: string, destinationDir: stri
|
|
|
34
35
|
export declare function validateAndZipPortalSource(sourceDir: string, outputPath: string, ignoredPaths?: string[]): Promise<string>;
|
|
35
36
|
export declare function cleanUpGeneratedPortalFiles(sourceDir: string): Promise<void>;
|
|
36
37
|
export declare function isPortInUse(port: number): Promise<boolean>;
|
|
38
|
+
export declare function parseStreamBodyToJson(body: NodeJS.ReadableStream): Promise<any>;
|
|
37
39
|
export declare const getNonHiddenItemsFromDirectory: (directoryPath: string) => string[];
|
|
38
40
|
export declare const getMessageInOrangeColor: (message: string) => string;
|
|
39
41
|
export declare const getMessageInBlueColor: (message: string) => string;
|
package/lib/utils/utils.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getMessageInRedColor = exports.getMessageInMagentaColor = exports.getMessageInGreenColor = exports.getMessageInCyanColor = exports.getMessageInBlueColor = exports.getMessageInOrangeColor = exports.getNonHiddenItemsFromDirectory = exports.printValidationMessages = exports.getFileNameFromPath = exports.isJSONParsable = exports.replaceHTML = exports.zipDirectory = exports.zipDirectoryToStream = exports.writeFileUsingReadableStream = exports.deleteFile = exports.isValidUrl = exports.directoryToJson = exports.validationMessagesToJson = exports.clearDirectory = exports.createTempDirectory = exports.unzipFile = void 0;
|
|
3
|
+
exports.getMessageInRedColor = exports.getMessageInMagentaColor = exports.getMessageInGreenColor = exports.getMessageInCyanColor = exports.getMessageInBlueColor = exports.getMessageInOrangeColor = exports.getNonHiddenItemsFromDirectory = exports.printValidationMessages = exports.getFileNameFromPath = exports.getGeneratedFilesPaths = exports.isJSONParsable = exports.replaceHTML = exports.zipDirectory = exports.zipDirectoryToStream = exports.writeFileUsingReadableStream = exports.deleteFile = exports.isValidUrl = exports.directoryToJson = exports.validationMessagesToJson = exports.clearDirectory = exports.createTempDirectory = exports.unzipFile = void 0;
|
|
4
4
|
exports.extractZipFile = extractZipFile;
|
|
5
5
|
exports.validateAndZipPortalSource = validateAndZipPortalSource;
|
|
6
6
|
exports.cleanUpGeneratedPortalFiles = cleanUpGeneratedPortalFiles;
|
|
7
7
|
exports.isPortInUse = isPortInUse;
|
|
8
|
+
exports.parseStreamBodyToJson = parseStreamBodyToJson;
|
|
9
|
+
const tslib_1 = require("tslib");
|
|
8
10
|
const net = require("net");
|
|
9
11
|
const path = require("path");
|
|
10
12
|
const fs = require("fs-extra");
|
|
@@ -127,13 +129,10 @@ const deleteFile = async (filePath) => {
|
|
|
127
129
|
};
|
|
128
130
|
exports.deleteFile = deleteFile;
|
|
129
131
|
const writeFileUsingReadableStream = (stream, destinationPath) => {
|
|
130
|
-
return new Promise((resolve
|
|
132
|
+
return new Promise((resolve) => {
|
|
131
133
|
const writeStream = fs.createWriteStream(destinationPath);
|
|
132
134
|
stream.pipe(writeStream);
|
|
133
|
-
writeStream.on("close", (
|
|
134
|
-
if (error) {
|
|
135
|
-
return reject(new Error("Couldn't zip the stream"));
|
|
136
|
-
}
|
|
135
|
+
writeStream.on("close", () => {
|
|
137
136
|
resolve("Zipped");
|
|
138
137
|
});
|
|
139
138
|
});
|
|
@@ -165,7 +164,7 @@ exports.zipDirectoryToStream = zipDirectoryToStream;
|
|
|
165
164
|
const zipDirectory = async (sourcePath, destinationPath) => {
|
|
166
165
|
// Check if the directory exists for the user or not
|
|
167
166
|
await fs.ensureDir(sourcePath);
|
|
168
|
-
const zipPath = path.join(destinationPath, "target.zip");
|
|
167
|
+
const zipPath = path.join(destinationPath, ".target.zip");
|
|
169
168
|
const output = fs.createWriteStream(zipPath);
|
|
170
169
|
const archive = archiver("zip");
|
|
171
170
|
return new Promise((resolve, reject) => {
|
|
@@ -198,6 +197,13 @@ const isJSONParsable = (json) => {
|
|
|
198
197
|
}
|
|
199
198
|
};
|
|
200
199
|
exports.isJSONParsable = isJSONParsable;
|
|
200
|
+
const getGeneratedFilesPaths = (sourceDirectoryPath, generatedPortalArtifactsDirectoryPath) => {
|
|
201
|
+
const generatedBuildInputZipPath = path.join(sourceDirectoryPath, ".portal_source.zip");
|
|
202
|
+
const generatedPortalArtifactsZipFilePath = path.join(sourceDirectoryPath, ".generated_portal.zip");
|
|
203
|
+
const generatedPortalArtifactsFolderPath = path.join(path.dirname(generatedPortalArtifactsDirectoryPath), "generated_portal");
|
|
204
|
+
return [generatedBuildInputZipPath, generatedPortalArtifactsFolderPath, generatedPortalArtifactsZipFilePath];
|
|
205
|
+
};
|
|
206
|
+
exports.getGeneratedFilesPaths = getGeneratedFilesPaths;
|
|
201
207
|
const getFileNameFromPath = (filePath) => {
|
|
202
208
|
return path.basename(filePath).split(".")[0];
|
|
203
209
|
};
|
|
@@ -262,10 +268,6 @@ async function validateAndZipPortalSource(sourceDir, outputPath, ignoredPaths =
|
|
|
262
268
|
const archive = archiver("zip", {
|
|
263
269
|
zlib: { level: 9 }
|
|
264
270
|
});
|
|
265
|
-
const items = await fs.readdir(sourceDir);
|
|
266
|
-
if (!items.some((item) => item.startsWith("APIMATIC-BUILD"))) {
|
|
267
|
-
throw new Error("APIMatic Build file is missing, portal cannot be generated. Please specify a valid APIMatic build file and try again.");
|
|
268
|
-
}
|
|
269
271
|
return new Promise((resolve, reject) => {
|
|
270
272
|
output.on("close", () => resolve(outputPath));
|
|
271
273
|
output.on("error", (err) => {
|
|
@@ -309,8 +311,8 @@ async function validateAndZipPortalSource(sourceDir, outputPath, ignoredPaths =
|
|
|
309
311
|
});
|
|
310
312
|
}
|
|
311
313
|
async function cleanUpGeneratedPortalFiles(sourceDir) {
|
|
312
|
-
const generatedPortalZipFilePath = path.join(sourceDir, "generated_portal.zip");
|
|
313
|
-
const generatedPortalSourceZipFilePath = path.join(sourceDir, "portal_source.zip");
|
|
314
|
+
const generatedPortalZipFilePath = path.join(sourceDir, ".generated_portal.zip");
|
|
315
|
+
const generatedPortalSourceZipFilePath = path.join(sourceDir, ".portal_source.zip");
|
|
314
316
|
if (fs.existsSync(generatedPortalZipFilePath)) {
|
|
315
317
|
await (0, exports.deleteFile)(generatedPortalZipFilePath);
|
|
316
318
|
}
|
|
@@ -336,6 +338,27 @@ function isPortInUse(port) {
|
|
|
336
338
|
server.listen(port);
|
|
337
339
|
});
|
|
338
340
|
}
|
|
341
|
+
async function parseStreamBodyToJson(body) {
|
|
342
|
+
var _a, e_1, _b, _c;
|
|
343
|
+
const chunks = [];
|
|
344
|
+
try {
|
|
345
|
+
for (var _d = true, body_1 = tslib_1.__asyncValues(body), body_1_1; body_1_1 = await body_1.next(), _a = body_1_1.done, !_a; _d = true) {
|
|
346
|
+
_c = body_1_1.value;
|
|
347
|
+
_d = false;
|
|
348
|
+
const chunk = _c;
|
|
349
|
+
chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
353
|
+
finally {
|
|
354
|
+
try {
|
|
355
|
+
if (!_d && !_a && (_b = body_1.return)) await _b.call(body_1);
|
|
356
|
+
}
|
|
357
|
+
finally { if (e_1) throw e_1.error; }
|
|
358
|
+
}
|
|
359
|
+
const text = Buffer.concat(chunks).toString("utf-8");
|
|
360
|
+
return JSON.parse(text);
|
|
361
|
+
}
|
|
339
362
|
const getNonHiddenItemsFromDirectory = (directoryPath) => {
|
|
340
363
|
return fs.readdirSync(directoryPath).filter((item) => !item.startsWith("."));
|
|
341
364
|
};
|
|
@@ -364,4 +387,4 @@ const getMessageInRedColor = (message) => {
|
|
|
364
387
|
return `\u001b[31m${message}\u001b[0m`;
|
|
365
388
|
};
|
|
366
389
|
exports.getMessageInRedColor = getMessageInRedColor;
|
|
367
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBbVFBLHdDQXdDQztBQUVELGdFQW1FQztBQUVELGtFQVNDO0FBRUQsa0NBbUJDO0FBaFpELDJCQUEyQjtBQUMzQiw2QkFBNkI7QUFDN0IsK0JBQStCO0FBQy9CLHlCQUF5QjtBQUN6QixxQ0FBcUM7QUFDckMscUNBQXFDO0FBQ3JDLHVDQUF1QztBQUN2QyxtQ0FBcUM7QUFDckMsa0NBQW1DO0FBSzVCLE1BQU0sU0FBUyxHQUFHLENBQUMsTUFBNkIsRUFBRSxXQUFtQixFQUFFLEVBQUU7SUFDOUUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNyQyxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFFOUQsTUFBTTthQUNILElBQUksQ0FBQyxhQUFhLENBQUM7YUFDbkIsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQVksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLDJCQUEyQixHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFakcsYUFBYSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDdEQsYUFBYSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFZLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQywyQkFBMkIsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlHLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBWFcsUUFBQSxTQUFTLGFBV3BCO0FBRUssTUFB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
|
|
390
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBd1FBLHdDQXdDQztBQUVELGdFQTJEQztBQUVELGtFQVNDO0FBRUQsa0NBbUJDO0FBRUQsc0RBT0M7O0FBdFpELDJCQUEyQjtBQUMzQiw2QkFBNkI7QUFDN0IsK0JBQStCO0FBQy9CLHlCQUF5QjtBQUN6QixxQ0FBcUM7QUFDckMscUNBQXFDO0FBQ3JDLHVDQUF1QztBQUN2QyxtQ0FBcUM7QUFDckMsa0NBQW1DO0FBSzVCLE1BQU0sU0FBUyxHQUFHLENBQUMsTUFBNkIsRUFBRSxXQUFtQixFQUFFLEVBQUU7SUFDOUUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNyQyxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFFOUQsTUFBTTthQUNILElBQUksQ0FBQyxhQUFhLENBQUM7YUFDbkIsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQVksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLDJCQUEyQixHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFakcsYUFBYSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDdEQsYUFBYSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFZLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQywyQkFBMkIsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlHLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBWFcsUUFBQSxTQUFTLGFB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
|