@apimatic/cli 1.1.0-alpha.7 → 1.1.0-alpha.8
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/new/toc.d.ts +17 -0
- package/lib/actions/portal/new/toc.js +134 -0
- package/lib/application/portal/new/toc/sdl-parser.d.ts +13 -0
- package/lib/application/portal/new/toc/sdl-parser.js +53 -0
- package/lib/application/portal/new/toc/toc-content-parser.d.ts +5 -0
- package/lib/application/portal/new/toc/toc-content-parser.js +46 -0
- package/lib/application/portal/new/toc/toc-structure-generator.d.ts +6 -0
- package/lib/application/portal/new/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/new/toc.d.ts +15 -0
- package/lib/commands/portal/new/toc.js +65 -0
- 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/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/new/toc.d.ts +10 -0
- package/lib/prompts/portal/new/toc.js +46 -0
- package/lib/prompts/portal/quickstart.d.ts +4 -5
- package/lib/prompts/portal/quickstart.js +16 -17
- 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
|
@@ -11,10 +11,9 @@ class PortalQuickstartPrompts {
|
|
|
11
11
|
this.spin = (0, prompts_1.spinner)();
|
|
12
12
|
this.vscodeExtensionUrl = "\u001b[4mhttps://marketplace.visualstudio.com/items?itemName=apimatic-developers.apimatic-for-vscode\u001b[0m";
|
|
13
13
|
this.serverUrl = "\u001b[4mhttp://localhost:3000\u001b[0m";
|
|
14
|
-
this.
|
|
15
|
-
this.
|
|
16
|
-
this.
|
|
17
|
-
this.defaultPortalDirectory = path.join(process.cwd(), this.portalDirectory);
|
|
14
|
+
this.referenceDocumentationUrl = "\u001b[4mhttps://docs.apimatic.io/platform-api/#/http/guides/generating-on-prem-api-portal/overview-generating-api-portal\u001b[0m";
|
|
15
|
+
this.customizeTheSdksUrl = "\u001b[4mhttps://docs.apimatic.io/generate-sdks/codegen-settings/codegen-settings-overview\u001b[0m";
|
|
16
|
+
this.defaultPortalDirectoryPath = process.cwd();
|
|
18
17
|
}
|
|
19
18
|
displayWelcomeMessage() {
|
|
20
19
|
(0, prompts_1.intro)(`Hello there 👋`);
|
|
@@ -51,7 +50,7 @@ class PortalQuickstartPrompts {
|
|
|
51
50
|
(0, prompts_1.cancel)("Operation cancelled.");
|
|
52
51
|
return process.exit(0);
|
|
53
52
|
}
|
|
54
|
-
return { email: String(email), password: String(pass) };
|
|
53
|
+
return { email: String(email).trim(), password: String(pass).trim() };
|
|
55
54
|
}
|
|
56
55
|
displayLoggingInMessage() {
|
|
57
56
|
this.spin.start((0, utils_1.getMessageInMagentaColor)("Logging in"));
|
|
@@ -87,7 +86,7 @@ class PortalQuickstartPrompts {
|
|
|
87
86
|
(0, prompts_1.cancel)("Operation cancelled.");
|
|
88
87
|
return process.exit(0);
|
|
89
88
|
}
|
|
90
|
-
return String(spec);
|
|
89
|
+
return String(spec).trim();
|
|
91
90
|
}
|
|
92
91
|
displaySpecValidationMessage() {
|
|
93
92
|
prompts_1.log.step((0, utils_1.getMessageInOrangeColor)(`Step 2 of 4: Validate and Lint your OpenAPI file`));
|
|
@@ -116,7 +115,7 @@ class PortalQuickstartPrompts {
|
|
|
116
115
|
}
|
|
117
116
|
if (useSampleSpec === "exit") {
|
|
118
117
|
(0, prompts_1.outro)((0, utils_1.getMessageInCyanColor)("Good luck fixing your API definition! 🛠️ Feel free to run this command again once you're done."));
|
|
119
|
-
process.exit(0);
|
|
118
|
+
return process.exit(0);
|
|
120
119
|
}
|
|
121
120
|
}
|
|
122
121
|
async sdkLanguagesPrompt() {
|
|
@@ -148,11 +147,11 @@ class PortalQuickstartPrompts {
|
|
|
148
147
|
placeholder: "Enter absolute path to the directory or leave it empty to use the current directory.",
|
|
149
148
|
defaultValue: "./",
|
|
150
149
|
validate: (input) => {
|
|
151
|
-
const dirPath = path.resolve(input.trim()
|
|
152
|
-
if (!fs.existsSync(dirPath) && dirPath != this.
|
|
150
|
+
const dirPath = path.resolve(input.trim());
|
|
151
|
+
if (!fs.existsSync(dirPath) && dirPath != this.defaultPortalDirectoryPath) {
|
|
153
152
|
return (0, utils_1.getMessageInRedColor)("Error: The specified directory path does not exist. Please try again.");
|
|
154
153
|
}
|
|
155
|
-
if (dirPath !== this.
|
|
154
|
+
if (dirPath !== this.defaultPortalDirectoryPath) {
|
|
156
155
|
const files = fs.readdirSync(dirPath).filter(item => !item.startsWith('.'));
|
|
157
156
|
;
|
|
158
157
|
if (files.length > 0) {
|
|
@@ -169,10 +168,10 @@ class PortalQuickstartPrompts {
|
|
|
169
168
|
return process.exit(0);
|
|
170
169
|
}
|
|
171
170
|
if (directory === "./") {
|
|
172
|
-
return this.
|
|
171
|
+
return this.defaultPortalDirectoryPath;
|
|
173
172
|
}
|
|
174
173
|
else {
|
|
175
|
-
return
|
|
174
|
+
return String(directory).trim();
|
|
176
175
|
}
|
|
177
176
|
}
|
|
178
177
|
displayBuildDirectoryGenerationMessage() {
|
|
@@ -199,18 +198,18 @@ class PortalQuickstartPrompts {
|
|
|
199
198
|
displayPortalGenerationSuccessMessage() {
|
|
200
199
|
this.spin.stop((0, utils_1.getMessageInCyanColor)("✅ Portal setup complete!"));
|
|
201
200
|
}
|
|
202
|
-
displayOutroMessage() {
|
|
201
|
+
displayOutroMessage(directory) {
|
|
203
202
|
prompts_1.log.step((0, utils_1.getMessageInCyanColor)(`📢 Your API Portal is live at: ${this.serverUrl}\n`) +
|
|
204
|
-
(0, utils_1.getMessageInCyanColor)(`Hot reload enabled! Edit files in
|
|
203
|
+
(0, utils_1.getMessageInCyanColor)(`Hot reload enabled! Edit files in ${directory} to see changes instantly reflected in your API Portal.\n`) +
|
|
205
204
|
(0, utils_1.getMessageInCyanColor)(`Press CTRL+C to stop the server.\n\n`) +
|
|
206
205
|
(0, utils_1.getMessageInCyanColor)(`What's next?\n`) +
|
|
207
206
|
(0, utils_1.getMessageInCyanColor)(`- Check out the Interactive Playground in your API Portal.\n`) +
|
|
208
|
-
(0, utils_1.getMessageInCyanColor)(`- Read the reference documentation to learn more about how you can customize this API Portal: ${this.
|
|
207
|
+
(0, utils_1.getMessageInCyanColor)(`- Read the reference documentation to learn more about how you can customize this API Portal: ${this.referenceDocumentationUrl}`) +
|
|
209
208
|
(0, utils_1.getMessageInCyanColor)(` \n`) +
|
|
210
209
|
(0, utils_1.getMessageInCyanColor)(`- Review the SDK Documentation for your favourite programming language and download an SDK from the API Portal.\n`) +
|
|
211
|
-
(0, utils_1.getMessageInCyanColor)(`- Check out how you can customize the SDKs using Code Generation settings: ${this.
|
|
210
|
+
(0, utils_1.getMessageInCyanColor)(`- Check out how you can customize the SDKs using Code Generation settings: ${this.customizeTheSdksUrl}`) +
|
|
212
211
|
(0, utils_1.getMessageInCyanColor)(` \n`));
|
|
213
212
|
}
|
|
214
213
|
}
|
|
215
214
|
exports.PortalQuickstartPrompts = PortalQuickstartPrompts;
|
|
216
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
215
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2tzdGFydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcm9tcHRzL3BvcnRhbC9xdWlja3N0YXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFDN0IsbUNBQW1DO0FBQ25DLDRDQUFtSDtBQUNuSCw2Q0FRMkI7QUFFM0IsTUFBYSx1QkFBdUI7SUFBcEM7UUFDbUIsU0FBSSxHQUFHLElBQUEsaUJBQU8sR0FBRSxDQUFDO1FBQ2pCLHVCQUFrQixHQUNqQywrR0FBK0csQ0FBQztRQUNqRyxjQUFTLEdBQUcseUNBQXlDLENBQUM7UUFDdEQsOEJBQXlCLEdBQ3hDLG9JQUFvSSxDQUFDO1FBQ3RILHdCQUFtQixHQUNsQyxxR0FBcUcsQ0FBQztRQUN2RiwrQkFBMEIsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7SUFtUTlELENBQUM7SUFqUUMscUJBQXFCO1FBQ25CLElBQUEsZUFBSyxFQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDeEIsYUFBRyxDQUFDLE9BQU8sQ0FDVCx3R0FBd0csQ0FDekcsQ0FBQztRQUNGLGFBQUcsQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVc7UUFDZixhQUFHLENBQUMsT0FBTyxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFFMUMsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFBLGNBQUksRUFBQztZQUN2QixPQUFPLEVBQUUsOEJBQThCO1lBQ3ZDLFFBQVEsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNsQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ1gsT0FBTyxJQUFBLDRCQUFvQixFQUFDLG9CQUFvQixDQUFDLENBQUM7Z0JBQ3BELENBQUM7Z0JBRUQsTUFBTSxVQUFVLEdBQ2Qsc0lBQXNJLENBQUM7Z0JBRXpJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxD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
|
|
@@ -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;
|