@apimatic/cli 1.1.0-alpha.12 → 1.1.0-alpha.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +30 -32
- 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/recipe/recipe-generator.js +1 -1
- package/lib/application/portal/recipe/recipe-generator.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 +4 -8
- 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 +52 -20
- 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 +4 -12
- package/lib/commands/sdk/generate.js.map +1 -1
- package/lib/controllers/api/validate.d.ts +2 -2
- package/lib/controllers/portal/quickstart.d.ts +2 -4
- package/lib/controllers/portal/quickstart.js +4 -63
- package/lib/controllers/portal/quickstart.js.map +1 -1
- package/lib/controllers/sdk/generate.d.ts +3 -3
- 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 +5 -4
- package/lib/infrastructure/services/portal-service.js +28 -42
- 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 +29 -21
- 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 +5 -2
- 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,114 +1,76 @@
|
|
|
1
|
-
|
|
2
|
-
import * as path from "path";
|
|
3
|
-
import axios from "axios";
|
|
1
|
+
import getPort from "get-port";
|
|
4
2
|
import { Command, Flags } from "@oclif/core";
|
|
5
|
-
import { generatePortal } from "../../controllers/portal/serve.js";
|
|
6
|
-
import { PortalServerService } from "../../services/portal/server.js";
|
|
7
3
|
import { PortalServePrompts } from "../../prompts/portal/serve.js";
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
4
|
+
import { PortalServeAction } from "../../actions/portal/serve.js";
|
|
5
|
+
import { getMessageInRedColor } from "../../utils/utils.js";
|
|
6
|
+
import { ServeHandler } from "../../application/portal/serve/serve-handler.js";
|
|
7
|
+
import { PortalService } from "../../infrastructure/services/portal-service.js";
|
|
8
|
+
import { GeneratePortalAction } from "../../actions/portal/generatePortalAction.js";
|
|
9
|
+
import { DirectoryPath } from "../../types/file/directoryPath.js";
|
|
10
|
+
const DEFAULT_WORKING_DIRECTORY = "./";
|
|
10
11
|
class PortalServe extends Command {
|
|
12
|
+
constructor(argv, config) {
|
|
13
|
+
super(argv, config);
|
|
14
|
+
this.prompts = new PortalServePrompts();
|
|
15
|
+
}
|
|
11
16
|
async run() {
|
|
12
|
-
var
|
|
13
|
-
const { flags } = await this.parse(
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
const port = flags.port;
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
17
|
+
var _a;
|
|
18
|
+
const { flags } = await this.parse(PortalServe);
|
|
19
|
+
const portalServePrompts = new PortalServePrompts();
|
|
20
|
+
const portalServeAction = new PortalServeAction(portalServePrompts, new ServeHandler(), new PortalService());
|
|
21
|
+
//TODO: This needs to be moved within the action. Port should not be initialized again here.
|
|
22
|
+
const port = await this.getServerPort(flags.port);
|
|
23
|
+
const workingDirectory = new DirectoryPath((_a = flags.folder) !== null && _a !== void 0 ? _a : DEFAULT_WORKING_DIRECTORY);
|
|
24
|
+
const buildDirectory = flags.folder ? new DirectoryPath(flags.folder, "build") : workingDirectory.join("build");
|
|
25
|
+
const portalDirectory = flags.destination ? new DirectoryPath(flags.destination) : workingDirectory.join("portal");
|
|
26
|
+
const generatePortalAction = new GeneratePortalAction(new DirectoryPath(this.config.configDir), flags["auth-key"]);
|
|
27
|
+
const serveFlags = {
|
|
28
|
+
folder: buildDirectory.toString(),
|
|
29
|
+
destination: portalDirectory.toString(),
|
|
30
|
+
"auth-key": flags["auth-key"],
|
|
31
|
+
port: port,
|
|
32
|
+
open: flags.open,
|
|
33
|
+
"no-reload": flags["no-reload"],
|
|
34
|
+
ignore: flags.ignore
|
|
35
|
+
};
|
|
36
|
+
const servePaths = {
|
|
37
|
+
sourceDirectoryPath: buildDirectory.toString(),
|
|
38
|
+
destinationDirectoryPath: portalDirectory.toString()
|
|
39
|
+
};
|
|
40
|
+
const servePortalResult = await portalServeAction.servePortal(serveFlags, servePaths, generatePortalAction.execute);
|
|
41
|
+
//TODO: Convert below statements to result.mapAll after changing servePortalResult to ActionResult.
|
|
42
|
+
if (servePortalResult.isFailed()) {
|
|
43
|
+
portalServePrompts.logError(getMessageInRedColor(servePortalResult.error));
|
|
34
44
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
generatedPortalPath: portalDir,
|
|
38
|
-
targetFolder: sourceDir,
|
|
39
|
-
configDir: this.config.configDir,
|
|
40
|
-
authKey: overrideAuthKey,
|
|
41
|
-
ignoredPaths: allIgnoredPaths,
|
|
42
|
-
port,
|
|
43
|
-
openInBrowser: flags.open
|
|
44
|
-
}, flags["no-reload"]);
|
|
45
|
-
prompts.displayOutroMessage(port);
|
|
46
|
-
}
|
|
47
|
-
handleError(error) {
|
|
48
|
-
if (axios.isAxiosError(error)) {
|
|
49
|
-
const axiosError = error;
|
|
50
|
-
if (axiosError.response) {
|
|
51
|
-
if (axiosError.response.status === 400) {
|
|
52
|
-
this.error(getMessageInRedColor(`Failed to generate the portal. Please ensure that the provided build directory follows the correct structure and contains valid API definition and build files.`));
|
|
53
|
-
}
|
|
54
|
-
else if (axiosError.response.status === 401) {
|
|
55
|
-
this.error(getMessageInRedColor(`Failed to generate the portal. Please ensure that you are logged in or have provided a valid Auth key.`));
|
|
56
|
-
}
|
|
57
|
-
else if (axiosError.response.status === 403) {
|
|
58
|
-
this.error(getMessageInRedColor(`Access denied. It looks like you don't have access to APIMatic's Docs as Code offering. Check your subscription details and contact our team at support@apimatic.io if you believe this is a mistake.`));
|
|
59
|
-
}
|
|
60
|
-
else if (axiosError.response.status === 422) {
|
|
61
|
-
this.error(getMessageInRedColor(`Failed to generate the portal. Please ensure that the provided build directory follows the correct structure and contains valid API definition and build files.`));
|
|
62
|
-
}
|
|
63
|
-
else if (axiosError.response.status === 500) {
|
|
64
|
-
this.error(getMessageInRedColor(`Failed to generate the portal. Please ensure that the provided build directory follows the correct structure and contains valid API definition and build files. If the issue persists, reach out to our team at support@apimatic.io`));
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
this.error(getMessageInRedColor(`Failed to generate the portal. Please ensure that the provided build directory follows the correct structure and contains valid API definition and build files. If the issue persists, reach out to our team at support@apimatic.io`));
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
else if (axiosError.request) {
|
|
71
|
-
if (axiosError.code === "ECONNABORTED") {
|
|
72
|
-
this.error(getMessageInRedColor(`Your request timed out. Please try again or reach out to our team at support@apimatic.io for help if your problem persists.`));
|
|
73
|
-
}
|
|
74
|
-
else if (error.code === "ENOTFOUND" || error.code === "ERR_NETWORK") {
|
|
75
|
-
this.error(getMessageInRedColor(`Network error. Please check your internet connection and try again.`));
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
this.error(getMessageInRedColor(`No response received from the server. Please try again later.`));
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
this.error(getMessageInRedColor(`Failed to generate the portal: ${axiosError.message}`));
|
|
83
|
-
}
|
|
45
|
+
if (servePortalResult.isCancelled()) {
|
|
46
|
+
portalServePrompts.logError(getMessageInRedColor(servePortalResult.value));
|
|
84
47
|
}
|
|
85
|
-
|
|
86
|
-
this.
|
|
48
|
+
if (servePortalResult.isSuccess()) {
|
|
49
|
+
this.prompts.displayOutroMessage(buildDirectory.toString(), portalDirectory.toString(), port, flags["no-reload"]);
|
|
87
50
|
}
|
|
88
|
-
|
|
89
|
-
|
|
51
|
+
}
|
|
52
|
+
async getServerPort(port) {
|
|
53
|
+
const defaultPorts = [3000, 3001, 3002];
|
|
54
|
+
const preferredPorts = typeof port === "number" ? [port, ...defaultPorts.filter((p) => p !== port)] : defaultPorts;
|
|
55
|
+
const availablePort = await getPort({ port: preferredPorts });
|
|
56
|
+
// Show warning only if user provided --port and it is not available
|
|
57
|
+
if (typeof port === "number" && availablePort !== port) {
|
|
58
|
+
this.prompts.displayInfo(`⚠️ Port ${port} is already in use. Available port ${availablePort} will be used.`);
|
|
90
59
|
}
|
|
60
|
+
return availablePort;
|
|
91
61
|
}
|
|
92
62
|
}
|
|
93
|
-
_a = PortalServe;
|
|
94
63
|
PortalServe.description = "Generate and deploy a Docs as Code portal with hot reload.";
|
|
95
64
|
PortalServe.flags = {
|
|
96
65
|
port: Flags.integer({
|
|
97
66
|
char: "p",
|
|
98
|
-
description: "
|
|
99
|
-
default: 3000
|
|
67
|
+
description: "[default: 3000] port to serve the portal."
|
|
100
68
|
}),
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
description: "Directory to store and serve the generated portal.",
|
|
104
|
-
default: "./generated_portal",
|
|
105
|
-
parse: async (input) => path.resolve(input)
|
|
69
|
+
folder: Flags.string({
|
|
70
|
+
description: "[default: ./] path to the parent directory containing the 'build' folder, which includes API specifications and configuration files."
|
|
106
71
|
}),
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
description: "Source directory containing specs, content, and build file. By default, the current directory is used.",
|
|
110
|
-
default: "./",
|
|
111
|
-
parse: async (input) => path.resolve(input)
|
|
72
|
+
destination: Flags.string({
|
|
73
|
+
description: "[default: <folder>/portal] path where the portal will be generated."
|
|
112
74
|
}),
|
|
113
75
|
open: Flags.boolean({
|
|
114
76
|
char: "o",
|
|
@@ -121,7 +83,7 @@ PortalServe.flags = {
|
|
|
121
83
|
}),
|
|
122
84
|
ignore: Flags.string({
|
|
123
85
|
char: "i",
|
|
124
|
-
description: "Comma-separated list of
|
|
86
|
+
description: "Comma-separated list of file and directory paths to exclude from portal generation and hot reload.",
|
|
125
87
|
default: ""
|
|
126
88
|
}),
|
|
127
89
|
"auth-key": Flags.string({
|
|
@@ -129,7 +91,8 @@ PortalServe.flags = {
|
|
|
129
91
|
})
|
|
130
92
|
};
|
|
131
93
|
PortalServe.examples = [
|
|
132
|
-
|
|
94
|
+
"$ apimatic portal:serve",
|
|
95
|
+
'$ apimatic portal:serve --folder="./" --destination="./portal" --port=3000 --open --no-reload'
|
|
133
96
|
];
|
|
134
97
|
export default PortalServe;
|
|
135
98
|
//# sourceMappingURL=serve.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../src/commands/portal/serve.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../src/commands/portal/serve.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ export default class PortalTocNew extends Command {
|
|
|
4
4
|
static description: string;
|
|
5
5
|
static flags: {
|
|
6
6
|
destination: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
7
|
-
folder: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
7
|
+
folder: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
8
|
force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
9
9
|
"expand-endpoints": import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
10
10
|
"expand-models": import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
@@ -1,23 +1,28 @@
|
|
|
1
|
-
var _a;
|
|
2
|
-
import * as path from "path";
|
|
3
1
|
import { Command, Flags } from "@oclif/core";
|
|
4
2
|
import { PortalNewTocAction } from "../../../actions/portal/toc/new-toc.js";
|
|
5
|
-
|
|
3
|
+
import { DirectoryPath } from "../../../types/file/directoryPath.js";
|
|
4
|
+
const DEFAULT_WORKING_DIRECTORY = "./";
|
|
6
5
|
class PortalTocNew extends Command {
|
|
7
6
|
constructor(argv, config) {
|
|
8
7
|
super(argv, config);
|
|
9
8
|
}
|
|
10
9
|
async run() {
|
|
11
|
-
|
|
10
|
+
var _a;
|
|
11
|
+
const { flags } = await this.parse(PortalTocNew);
|
|
12
12
|
const portalNewTocAction = new PortalNewTocAction();
|
|
13
|
-
const
|
|
13
|
+
const workingDirectory = new DirectoryPath((_a = flags.folder) !== null && _a !== void 0 ? _a : DEFAULT_WORKING_DIRECTORY);
|
|
14
|
+
const buildDirectory = flags.folder ? new DirectoryPath(flags.folder, "build") : workingDirectory.join("build");
|
|
15
|
+
let tocDirectory;
|
|
16
|
+
if (flags.destination) {
|
|
17
|
+
tocDirectory = new DirectoryPath(flags.destination);
|
|
18
|
+
}
|
|
19
|
+
const result = await portalNewTocAction.createToc(buildDirectory, this.config.configDir, tocDirectory, flags.force, flags["expand-endpoints"], flags["expand-models"]);
|
|
14
20
|
if (result.isFailed()) {
|
|
15
21
|
this.error(result.error);
|
|
16
22
|
}
|
|
17
23
|
}
|
|
18
24
|
}
|
|
19
|
-
|
|
20
|
-
PortalTocNew.summary = 'Generates a TOC file based on the content directory and spec folder provided in your working directory';
|
|
25
|
+
PortalTocNew.summary = "Generates a TOC file based on the content directory and spec folder provided in your working directory";
|
|
21
26
|
PortalTocNew.description = `This command generates a new Table of Contents (TOC) file used in the
|
|
22
27
|
generation of your API documentation portal.
|
|
23
28
|
|
|
@@ -27,37 +32,28 @@ To learn more about the TOC file and APIMatic build directory structure, visit:
|
|
|
27
32
|
https://docs.apimatic.io/platform-api/#/http/guides/generating-on-prem-api-portal/overview-generating-api-portal`;
|
|
28
33
|
PortalTocNew.flags = {
|
|
29
34
|
destination: Flags.string({
|
|
30
|
-
|
|
31
|
-
description: "optional path where the generated TOC file will be saved. Defaults to the current working directory if not provided.",
|
|
35
|
+
description: "[default: <folder>/build/content] optional path where the generated 'toc.yml' file will be saved."
|
|
32
36
|
}),
|
|
33
37
|
folder: Flags.string({
|
|
34
|
-
|
|
35
|
-
description: "path to the working directory containing the API project files. Defaults to the current working directory if not specified.",
|
|
36
|
-
default: DEFAULT_FOLDER
|
|
38
|
+
description: "[default: ./] path to the parent directory containing the 'build' folder, which includes API specifications and configuration files."
|
|
37
39
|
}),
|
|
38
40
|
force: Flags.boolean({
|
|
39
41
|
default: false,
|
|
40
|
-
description: "overwrite the
|
|
42
|
+
description: "overwrite the 'toc.yml' file if one already exists at the destination."
|
|
41
43
|
}),
|
|
42
44
|
"expand-endpoints": Flags.boolean({
|
|
43
45
|
default: false,
|
|
44
|
-
description: "include individual entries for each endpoint in the generated
|
|
46
|
+
description: "include individual entries for each endpoint in the generated 'toc.yml'. Requires a valid API specification in the working directory."
|
|
45
47
|
}),
|
|
46
48
|
"expand-models": Flags.boolean({
|
|
47
49
|
default: false,
|
|
48
|
-
description: "include individual entries for each model in the generated
|
|
50
|
+
description: "include individual entries for each model in the generated 'toc.yml'. Requires a valid API specification in the working directory."
|
|
49
51
|
})
|
|
50
52
|
};
|
|
51
53
|
PortalTocNew.examples = [
|
|
52
|
-
`$ apimatic portal:toc:new --destination="./portal/content/"
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
`$ apimatic portal:toc:new --folder="./my-project"
|
|
56
|
-
A new toc file has been created at ./my-project/content/toc.yml
|
|
57
|
-
`,
|
|
58
|
-
`$ apimatic portal:toc:new --folder="./my-project" --destination="./portal/content/"
|
|
59
|
-
A new toc file has been created at ./portal/content/toc.yml
|
|
60
|
-
`
|
|
54
|
+
`$ apimatic portal:toc:new --destination="./portal/content/"`,
|
|
55
|
+
`$ apimatic portal:toc:new --folder="./my-project"`,
|
|
56
|
+
`$ apimatic portal:toc:new --folder="./my-project" --destination="./portal/content/"`
|
|
61
57
|
];
|
|
62
58
|
export default PortalTocNew;
|
|
63
59
|
//# sourceMappingURL=new.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"new.js","sourceRoot":"","sources":["../../../../src/commands/portal/toc/new.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"new.js","sourceRoot":"","sources":["../../../../src/commands/portal/toc/new.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErE,MAAM,yBAAyB,GAAG,IAAI,CAAC;AAEvC,MAAqB,YAAa,SAAQ,OAAO;IA0C/C,YAAY,IAAc,EAAE,MAAW;QACrC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,GAAG;;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACjD,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,EAAE,CAAC;QAEpD,MAAM,gBAAgB,GAAG,IAAI,aAAa,CAAC,MAAA,KAAK,CAAC,MAAM,mCAAI,yBAAyB,CAAC,CAAC;QACtF,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEhH,IAAI,YAAuC,CAAC;QAE5C,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACtB,YAAY,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,SAAS,CAC/C,cAAc,EACd,IAAI,CAAC,MAAM,CAAC,SAAS,EACrB,YAAY,EACZ,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,kBAAkB,CAAC,EACzB,KAAK,CAAC,eAAe,CAAC,CACvB,CAAC;QAEF,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAM,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;;AAtEM,oBAAO,GACZ,wGAAwG,CAAC;AAEpG,wBAAW,GAAG;;;;;;iHAM0F,CAAC;AAEzG,kBAAK,GAAG;IACb,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC;QACxB,WAAW,EAAE,mGAAmG;KACjH,CAAC;IACF,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;QACnB,WAAW,EACT,sIAAsI;KACzI,CAAC;IACF,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;QACnB,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,wEAAwE;KACtF,CAAC;IACF,kBAAkB,EAAE,KAAK,CAAC,OAAO,CAAC;QAChC,OAAO,EAAE,KAAK;QACd,WAAW,EACT,uIAAuI;KAC1I,CAAC;IACF,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC;QAC7B,OAAO,EAAE,KAAK;QACd,WAAW,EACT,oIAAoI;KACvI,CAAC;CACH,CAAC;AAEK,qBAAQ,GAAG;IAChB,6DAA6D;IAC7D,mDAAmD;IACnD,qFAAqF;CACtF,CAAC;eAxCiB,YAAY"}
|
|
@@ -3,7 +3,7 @@ import * as path from "path";
|
|
|
3
3
|
import fsExtra from "fs-extra";
|
|
4
4
|
import { Command, Flags } from "@oclif/core";
|
|
5
5
|
import { SDKClient } from "../../client-utils/sdk-client.js";
|
|
6
|
-
import {
|
|
6
|
+
import { CodeGenerationExternalApisController } from "@apimatic/sdk";
|
|
7
7
|
import { replaceHTML, isJSONParsable, getFileNameFromPath } from "../../utils/utils.js";
|
|
8
8
|
import { getSDKGenerationId, downloadGeneratedSDK } from "../../controllers/sdk/generate.js";
|
|
9
9
|
class SdkGenerate extends Command {
|
|
@@ -29,7 +29,7 @@ class SdkGenerate extends Command {
|
|
|
29
29
|
}
|
|
30
30
|
const overrideAuthKey = flags["auth-key"] ? flags["auth-key"] : null;
|
|
31
31
|
const client = await SDKClient.getInstance().getClient(overrideAuthKey, this.config.configDir);
|
|
32
|
-
const sdkGenerationController = new
|
|
32
|
+
const sdkGenerationController = new CodeGenerationExternalApisController(client);
|
|
33
33
|
// Get generation id for the specification and platform
|
|
34
34
|
const codeGenId = await getSDKGenerationId(flags, sdkGenerationController);
|
|
35
35
|
// If user wanted to download the SDK as well
|
|
@@ -121,16 +121,8 @@ Legacy: CS_NET_STANDARD_LIB|JAVA_ECLIPSE_JRE_LIB|PHP_GENERIC_LIB_V2|PYTHON_GENER
|
|
|
121
121
|
})
|
|
122
122
|
};
|
|
123
123
|
SdkGenerate.examples = [
|
|
124
|
-
`$ apimatic sdk:generate --platform="CSHARP" --file="./specs/sample.json"
|
|
125
|
-
|
|
126
|
-
Downloading SDK... done
|
|
127
|
-
Success! Your SDK is located at swagger_sdk_csharp`,
|
|
128
|
-
`
|
|
129
|
-
$ apimatic sdk:generate --platform="CSHARP" --url=https://petstore.swagger.io/v2/swagger.json
|
|
130
|
-
Generating SDK... done
|
|
131
|
-
Downloading SDK... done
|
|
132
|
-
Success! Your SDK is located at swagger_sdk_csharp
|
|
133
|
-
`
|
|
124
|
+
`$ apimatic sdk:generate --platform="CSHARP" --file="./specs/sample.json"`,
|
|
125
|
+
`$ apimatic sdk:generate --platform="CSHARP" --url=https://petstore.swagger.io/v2/swagger.json`
|
|
134
126
|
];
|
|
135
127
|
export default SdkGenerate;
|
|
136
128
|
//# sourceMappingURL=generate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/commands/sdk/generate.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,OAAO,MAAM,UAAU,CAAC;AAE/B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAoB,oCAAoC,EAAE,MAAM,eAAe,CAAC;AAEvF,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAI7F,MAAqB,WAAY,SAAQ,OAAO;
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/commands/sdk/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ApiValidationExternalApisController, ApiValidationSummary } from "@apimatic/sdk";
|
|
2
2
|
import { GetValidationParams } from "../../types/api/validate.js";
|
|
3
|
-
export declare const getValidationSummary: ({ file, url }: GetValidationParams, apiValidationController:
|
|
3
|
+
export declare const getValidationSummary: ({ file, url }: GetValidationParams, apiValidationController: ApiValidationExternalApisController) => Promise<ApiValidationSummary>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ApiValidationExternalApisController, ApiValidationSummary } from "@apimatic/sdk";
|
|
2
2
|
import { LoginCredentials, SpecFile } from "../../types/portal/quickstart.js";
|
|
3
3
|
import { SDKClient } from "../../client-utils/sdk-client.js";
|
|
4
4
|
import { PortalQuickstartPrompts } from "../../prompts/portal/quickstart.js";
|
|
@@ -7,8 +7,6 @@ export declare class PortalQuickstartController {
|
|
|
7
7
|
isUserAuthenticated(configDir: string): Promise<boolean>;
|
|
8
8
|
userLogin(credentials: LoginCredentials, client: SDKClient, configDir: string): Promise<void>;
|
|
9
9
|
getSpecFile(spec: string): Promise<SpecFile>;
|
|
10
|
-
getSpecValidationSummary(prompts: PortalQuickstartPrompts, specFile: SpecFile, apiValidationController:
|
|
10
|
+
getSpecValidationSummary(prompts: PortalQuickstartPrompts, specFile: SpecFile, apiValidationController: ApiValidationExternalApisController): Promise<ApiValidationSummary>;
|
|
11
11
|
setupBuildDirectory(prompts: PortalQuickstartPrompts, targetFolder: string, specFile: SpecFile, validationSummary: ApiValidationSummary, languages: string[]): Promise<void>;
|
|
12
|
-
generatePortalArtifacts(targetFolder: string, configDir: string): Promise<string>;
|
|
13
|
-
servePortal(generatedPortalPath: string, targetFolder: string, configDir: string): Promise<boolean>;
|
|
14
12
|
}
|
|
@@ -6,11 +6,9 @@ import fs from "fs";
|
|
|
6
6
|
import fsExtra from "fs-extra";
|
|
7
7
|
import { readdir } from "fs/promises";
|
|
8
8
|
import { getAuthInfo } from "../../client-utils/auth-manager.js";
|
|
9
|
-
import { createTempDirectory, isValidUrl, unzipFile, getMessageInRedColor, clearDirectory, deleteFile
|
|
9
|
+
import { createTempDirectory, isValidUrl, unzipFile, getMessageInRedColor, clearDirectory, deleteFile } from "../../utils/utils.js";
|
|
10
10
|
import { getValidationSummary } from "../api/validate.js";
|
|
11
|
-
import { generatePortal } from "./serve.js";
|
|
12
11
|
import { metadataFileContent, staticPortalRepoUrl } from "../../config/env.js";
|
|
13
|
-
import { PortalServerService } from "../../services/portal/server.js";
|
|
14
12
|
export class PortalQuickstartController {
|
|
15
13
|
constructor() {
|
|
16
14
|
this.specUrl = "https://github.com/apimatic/static-portal-workflow/blob/master/spec/Apimatic-Calculator.json";
|
|
@@ -26,7 +24,6 @@ export class PortalQuickstartController {
|
|
|
26
24
|
await client.login(credentials.email, credentials.password, configDir);
|
|
27
25
|
}
|
|
28
26
|
async getSpecFile(spec) {
|
|
29
|
-
let filePath = "";
|
|
30
27
|
const tempSpecDir = await createTempDirectory();
|
|
31
28
|
if (spec) {
|
|
32
29
|
let specPath = String(spec);
|
|
@@ -38,7 +35,7 @@ export class PortalQuickstartController {
|
|
|
38
35
|
}
|
|
39
36
|
const specFile = await axios.get(specPath, { responseType: "arraybuffer" });
|
|
40
37
|
const fileName = path.basename(specPath);
|
|
41
|
-
filePath = path.join(tempSpecDir, fileName);
|
|
38
|
+
const filePath = path.join(tempSpecDir, fileName);
|
|
42
39
|
await fsExtra.writeFile(filePath, specFile.data);
|
|
43
40
|
}
|
|
44
41
|
catch (error) {
|
|
@@ -74,7 +71,6 @@ export class PortalQuickstartController {
|
|
|
74
71
|
else {
|
|
75
72
|
specPath = path.normalize(specPath);
|
|
76
73
|
const fileType = await filetype.fromFile(specPath);
|
|
77
|
-
filePath = tempSpecDir;
|
|
78
74
|
if ((fileType === null || fileType === void 0 ? void 0 : fileType.ext) === "zip") {
|
|
79
75
|
await unzipFile(fs.createReadStream(specPath), tempSpecDir);
|
|
80
76
|
}
|
|
@@ -84,7 +80,7 @@ export class PortalQuickstartController {
|
|
|
84
80
|
}
|
|
85
81
|
}
|
|
86
82
|
}
|
|
87
|
-
return { localPath:
|
|
83
|
+
return { localPath: tempSpecDir, url: this.specUrl };
|
|
88
84
|
}
|
|
89
85
|
async getSpecValidationSummary(prompts, specFile, apiValidationController) {
|
|
90
86
|
const validationFlags = {
|
|
@@ -152,6 +148,7 @@ export class PortalQuickstartController {
|
|
|
152
148
|
block: 60 * 1000 // 1 minute timeout.
|
|
153
149
|
}
|
|
154
150
|
});
|
|
151
|
+
fsExtra.emptyDirSync(targetFolder);
|
|
155
152
|
try {
|
|
156
153
|
await git.clone(staticPortalRepoUrl, targetFolder);
|
|
157
154
|
}
|
|
@@ -199,61 +196,5 @@ export class PortalQuickstartController {
|
|
|
199
196
|
fs.writeFileSync(newMetadataFilePath, JSON.stringify(metadataFileContent, null, 2));
|
|
200
197
|
}
|
|
201
198
|
}
|
|
202
|
-
async generatePortalArtifacts(targetFolder, configDir) {
|
|
203
|
-
const generatedPortalPath = path.join(targetFolder, "generated_portal");
|
|
204
|
-
try {
|
|
205
|
-
await generatePortal(targetFolder, generatedPortalPath, configDir);
|
|
206
|
-
return generatedPortalPath;
|
|
207
|
-
}
|
|
208
|
-
catch (error) {
|
|
209
|
-
if (axios.isAxiosError(error)) {
|
|
210
|
-
if (error.response) {
|
|
211
|
-
if (error.response.status === 400) {
|
|
212
|
-
throw new Error(getMessageInRedColor(`The provided input is not valid. Please ensure the zip file contains a valid build file at the root level.`));
|
|
213
|
-
}
|
|
214
|
-
else if (error.response.status === 403) {
|
|
215
|
-
throw new Error(getMessageInRedColor(`Access denied. It looks like you don't have access to APIMatic's Docs as Code offering. Check your subscription details and contact our team at support@apimatic.io if you believe this is a mistake.`));
|
|
216
|
-
}
|
|
217
|
-
else if (error.response.status === 422) {
|
|
218
|
-
throw new Error(getMessageInRedColor(`Unable to process the build input. Please verify that your zip file is correctly structured and your build file is a valid JSON file.`));
|
|
219
|
-
}
|
|
220
|
-
else if (error.response.status === 500) {
|
|
221
|
-
throw new Error(getMessageInRedColor(`The server encountered an error while generating your portal, please try again. If the issue persists, contact our team at support@apimatic.io`));
|
|
222
|
-
}
|
|
223
|
-
else {
|
|
224
|
-
throw new Error(getMessageInRedColor(`Something went wrong while generating the portal. The server returned the following error ${error.response.status} ${error.response.statusText}. Please try again later. If the issue persists, contact our team at support@apimatic.io`));
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
else if (error.request) {
|
|
228
|
-
if (error.code === "ECONNABORTED") {
|
|
229
|
-
throw new Error(getMessageInRedColor(`The portal generation request timed out. Please try again. If the issue persists, try out our Async API for Docs as Code: https://docs.apimatic.io/platform-api/#/http/api-endpoints/docs-portal-management/generate-on-prem-portal-via-build-input`));
|
|
230
|
-
}
|
|
231
|
-
else if (error.code === "ENOTFOUND" || error.code === "ERR_NETWORK") {
|
|
232
|
-
throw new Error(getMessageInRedColor(`Network error encountered while generating the portal. Please check your connection and try again.`));
|
|
233
|
-
}
|
|
234
|
-
else {
|
|
235
|
-
throw new Error(getMessageInRedColor(`Something went wrong while generating the portal, please try again. If the issue persists, reach out to our support team at support@apimatic.io`));
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
else {
|
|
239
|
-
throw new Error(getMessageInRedColor(`Failed to generate portal: ${error.message}`));
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
else {
|
|
243
|
-
throw new Error(getMessageInRedColor(`Something went wrong while generating the portal, please try again later. If the issue persists, contact our team at support@apimatic.io`));
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
async servePortal(generatedPortalPath, targetFolder, configDir) {
|
|
248
|
-
const server = new PortalServerService();
|
|
249
|
-
server.setupServer(generatedPortalPath);
|
|
250
|
-
await cleanUpGeneratedPortalFiles(targetFolder);
|
|
251
|
-
return await server.startServer({
|
|
252
|
-
generatedPortalPath,
|
|
253
|
-
targetFolder,
|
|
254
|
-
configDir,
|
|
255
|
-
authKey: null
|
|
256
|
-
}, false, false);
|
|
257
|
-
}
|
|
258
199
|
}
|
|
259
200
|
//# sourceMappingURL=quickstart.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quickstart.js","sourceRoot":"","sources":["../../../src/controllers/portal/quickstart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,OAAO,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAIjE,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,SAAS,EACT,oBAAoB,EACpB,cAAc,EACd,UAAU,
|
|
1
|
+
{"version":3,"file":"quickstart.js","sourceRoot":"","sources":["../../../src/controllers/portal/quickstart.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CodeGenerationExternalApisController } from "@apimatic/sdk";
|
|
2
2
|
import { GenerationIdParams, DownloadSDKParams } from "../../types/sdk/generate.js";
|
|
3
|
-
export declare const getSDKGenerationId: ({ file, url, platform }: GenerationIdParams, sdkGenerationController:
|
|
4
|
-
export declare const downloadGeneratedSDK: ({ codeGenId, zippedSDKPath, sdkFolderPath, zip }: DownloadSDKParams, sdkGenerationController:
|
|
3
|
+
export declare const getSDKGenerationId: ({ file, url, platform }: GenerationIdParams, sdkGenerationController: CodeGenerationExternalApisController) => Promise<string>;
|
|
4
|
+
export declare const downloadGeneratedSDK: ({ codeGenId, zippedSDKPath, sdkFolderPath, zip }: DownloadSDKParams, sdkGenerationController: CodeGenerationExternalApisController) => Promise<string>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import fs from "fs-extra";
|
|
2
|
+
import { FilePath } from "../types/file/filePath.js";
|
|
3
|
+
import { DirectoryPath } from "../types/file/directoryPath.js";
|
|
4
|
+
export declare class FileService {
|
|
5
|
+
fileExists(file: FilePath): Promise<boolean>;
|
|
6
|
+
directoryExists(dir: DirectoryPath): Promise<boolean>;
|
|
7
|
+
directoryEmpty(dir: DirectoryPath): Promise<boolean>;
|
|
8
|
+
cleanDirectory(dir: DirectoryPath): Promise<void>;
|
|
9
|
+
deleteFile(filePath: FilePath): Promise<void>;
|
|
10
|
+
getStream(filePath: FilePath): Promise<fs.ReadStream>;
|
|
11
|
+
writeFile(filePath: FilePath, stream: NodeJS.ReadableStream): Promise<void>;
|
|
12
|
+
copy(source: FilePath, destination: FilePath): Promise<void>;
|
|
13
|
+
}
|