@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
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TocStructureGenerator = void 0;
|
|
4
|
+
const yaml_1 = require("yaml");
|
|
5
|
+
class TocStructureGenerator {
|
|
6
|
+
createTocStructure(endpointGroups, models, expandEndpoints = false, expandModels = false, contentGroups = []) {
|
|
7
|
+
const tocStructure = {
|
|
8
|
+
toc: []
|
|
9
|
+
};
|
|
10
|
+
// Add Getting Started section
|
|
11
|
+
tocStructure.toc.push({
|
|
12
|
+
group: "Getting Started",
|
|
13
|
+
items: [
|
|
14
|
+
{
|
|
15
|
+
generate: "How to Get Started",
|
|
16
|
+
from: "getting-started"
|
|
17
|
+
}
|
|
18
|
+
]
|
|
19
|
+
});
|
|
20
|
+
// Add content groups
|
|
21
|
+
if (contentGroups.length > 0) {
|
|
22
|
+
tocStructure.toc.push(...contentGroups);
|
|
23
|
+
}
|
|
24
|
+
// Add API Endpoints section
|
|
25
|
+
if (!expandEndpoints || endpointGroups.size === 0) {
|
|
26
|
+
tocStructure.toc.push({
|
|
27
|
+
generate: "API Endpoints",
|
|
28
|
+
from: "endpoints"
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
tocStructure.toc.push({
|
|
33
|
+
group: "API Endpoints",
|
|
34
|
+
items: Array.from(endpointGroups).map(([groupName, endpoints]) => ({
|
|
35
|
+
group: groupName,
|
|
36
|
+
items: [
|
|
37
|
+
{
|
|
38
|
+
generate: null,
|
|
39
|
+
from: "endpoint-group-overview",
|
|
40
|
+
endpointGroup: groupName
|
|
41
|
+
},
|
|
42
|
+
...endpoints
|
|
43
|
+
]
|
|
44
|
+
}))
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
// Add Models section
|
|
48
|
+
if (!expandModels || models.length === 0) {
|
|
49
|
+
tocStructure.toc.push({
|
|
50
|
+
generate: "Models",
|
|
51
|
+
from: "models"
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
tocStructure.toc.push({
|
|
56
|
+
group: "Models",
|
|
57
|
+
items: models
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
//Add Sdk Infra section
|
|
61
|
+
tocStructure.toc.push({
|
|
62
|
+
generate: "SDK Infrastructure",
|
|
63
|
+
from: "sdk-infra"
|
|
64
|
+
});
|
|
65
|
+
return tocStructure;
|
|
66
|
+
}
|
|
67
|
+
transformToYaml(toc) {
|
|
68
|
+
const transformedToc = this.transformKeys(toc);
|
|
69
|
+
return (0, yaml_1.stringify)(transformedToc, {
|
|
70
|
+
indent: 2,
|
|
71
|
+
nullStr: ""
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
transformKeys(obj) {
|
|
75
|
+
if (Array.isArray(obj)) {
|
|
76
|
+
return obj.map((item) => this.transformKeys(item));
|
|
77
|
+
}
|
|
78
|
+
if (obj !== null && typeof obj === "object") {
|
|
79
|
+
return Object.fromEntries(Object.entries(obj).map(([key, value]) => [
|
|
80
|
+
key.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(),
|
|
81
|
+
this.transformKeys(value)
|
|
82
|
+
]));
|
|
83
|
+
}
|
|
84
|
+
return obj;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
exports.TocStructureGenerator = TocStructureGenerator;
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9jLXN0cnVjdHVyZS1nZW5lcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vcG9ydGFsL25ldy90b2MvdG9jLXN0cnVjdHVyZS1nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0JBQWlDO0FBR2pDLE1BQWEscUJBQXFCO0lBQ2hDLGtCQUFrQixDQUNoQixjQUEwQyxFQUMxQyxNQUFrQixFQUNsQixrQkFBMkIsS0FBSyxFQUNoQyxlQUF3QixLQUFLLEVBQzdCLGdCQUE0QixFQUFFO1FBRTlCLE1BQU0sWUFBWSxHQUFRO1lBQ3hCLEdBQUcsRUFBRSxFQUFFO1NBQ1IsQ0FBQztRQUVGLDhCQUE4QjtRQUM5QixZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztZQUNwQixLQUFLLEVBQUUsaUJBQWlCO1lBQ3hCLEtBQUssRUFBRTtnQkFDTDtvQkFDRSxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixJQUFJLEVBQUUsaUJBQWlCO2lCQUN4QjthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBRUgscUJBQXFCO1FBQ3JCLElBQUksYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM3QixZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFFRCw0QkFBNEI7UUFDNUIsSUFBSSxDQUFDLGVBQWUsSUFBSSxjQUFjLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2xELFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO2dCQUNwQixRQUFRLEVBQUUsZUFBZTtnQkFDekIsSUFBSSxFQUFFLFdBQVc7YUFDbEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDTixZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztnQkFDcEIsS0FBSyxFQUFFLGVBQWU7Z0JBQ3RCLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUNqRSxLQUFLLEVBQUUsU0FBUztvQkFDaEIsS0FBSyxFQUFFO3dCQUNMOzRCQUNFLFFBQVEsRUFBRSxJQUFJOzRCQUNkLElBQUksRUFBRSx5QkFBeUI7NEJBQy9CLGFBQWEsRUFBRSxTQUFTO3lCQUNHO3dCQUM3QixHQUFHLFNBQVM7cUJBQ2I7aUJBQ0YsQ0FBQyxDQUFDO2FBQ0osQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELHFCQUFxQjtRQUNyQixJQUFJLENBQUMsWUFBWSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDekMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7Z0JBQ3BCLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixJQUFJLEVBQUUsUUFBUTthQUNmLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7Z0JBQ3BCLEtBQUssRUFBRSxRQUFRO2dCQUNmLEtBQUssRUFBRSxNQUFNO2FBQ2QsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELHVCQUF1QjtRQUN2QixZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztZQUNwQixRQUFRLEVBQUUsb0JBQW9CO1lBQzlCLElBQUksRUFBRSxXQUFXO1NBQ2xCLENBQUMsQ0FBQztRQUVILE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxlQUFlLENBQUMsR0FBUTtRQUN0QixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9DLE9BQU8sSUFBQSxnQkFBUyxFQUFDLGNBQWMsRUFBRTtZQUMvQixNQUFNLEVBQUUsQ0FBQztZQUNULE9BQU8sRUFBRSxFQUFFO1NBQ1osQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGFBQWEsQ0FBQyxHQUFRO1FBQzVCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3JELENBQUM7UUFDRCxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDNUMsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUN2QixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDeEMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUU7Z0JBQ3hELElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO2FBQzFCLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztDQUNGO0FBL0ZELHNEQStGQyJ9
|
|
@@ -86,7 +86,9 @@ class SDKClient {
|
|
|
86
86
|
if (overrideAuthKey) {
|
|
87
87
|
return new sdk_1.Client({
|
|
88
88
|
timeout: 0,
|
|
89
|
-
|
|
89
|
+
customHeaderAuthenticationCredentials: {
|
|
90
|
+
'Authorization': `X-Auth-Key ${overrideAuthKey}`
|
|
91
|
+
}
|
|
90
92
|
});
|
|
91
93
|
}
|
|
92
94
|
let storedAuthInfo = await (0, auth_manager_1.getAuthInfo)(configDir);
|
|
@@ -97,7 +99,9 @@ class SDKClient {
|
|
|
97
99
|
if (storedAuthInfo.authKey !== "") {
|
|
98
100
|
return new sdk_1.Client({
|
|
99
101
|
timeout: 0,
|
|
100
|
-
|
|
102
|
+
customHeaderAuthenticationCredentials: {
|
|
103
|
+
'Authorization': `X-Auth-Key ${storedAuthInfo.authKey}`
|
|
104
|
+
}
|
|
101
105
|
});
|
|
102
106
|
}
|
|
103
107
|
else {
|
|
@@ -117,4 +121,4 @@ class SDKClient {
|
|
|
117
121
|
}
|
|
118
122
|
exports.SDKClient = SDKClient;
|
|
119
123
|
SDKClient.authAPI = `${env_1.baseURL}/account/authkey`;
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQtdXRpbHMvc2RrLWNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrQ0FBa0M7QUFDbEMsaUNBQTZDO0FBRTdDLHVDQUF1QztBQUN2Qyx1Q0FBd0M7QUFDeEMsaURBQW9FO0FBU3BFLE1BQWEsU0FBUztJQUF0QjtRQThIUyxlQUFVLEdBQUcsQ0FBQyxPQUFlLEVBQUUsU0FBaUIsRUFBRSxFQUFFO1lBQ3pELElBQUEsMEJBQVcsRUFDVDtnQkFDRSxLQUFLLEVBQUUsRUFBRTtnQkFDVCxPQUFPO2FBQ1IsRUFDRCxTQUFTLENBQ1YsQ0FBQztZQUNGLE9BQU8scUNBQXFDLENBQUM7UUFDL0MsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQW5JQzs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxXQUFXO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEIsU0FBUyxDQUFDLFFBQVEsR0FBRyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ3ZDLENBQUM7UUFFRCxPQUFPLFNBQVMsQ0FBQyxRQUFRLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7T0FHRztJQUVJLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBYSxFQUFFLFFBQWdCLEVBQUUsU0FBaUI7UUFDbkUsSUFBSSxjQUFjLEdBQW9CLE1BQU0sSUFBQSwwQkFBVyxFQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRW5FLCtEQUErRDtRQUMvRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDcEIsY0FBYyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDOUMsQ0FBQztRQUVELE1BQU0sV0FBVyxHQUFnQixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUNyRCxNQUFNLE9BQU8sR0FBVyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFM0QsSUFBSSxjQUFjLENBQUMsS0FBSyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ25DLElBQUEsMEJBQVcsRUFDVDtnQkFDRSxLQUFLO2dCQUNMLE9BQU87YUFDUixFQUNELFNBQVMsQ0FDVixDQUFDO1lBRUYsT0FBTyxXQUFXLENBQUM7UUFDckIsQ0FBQzthQUFNLElBQUksT0FBTyxLQUFLLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM5QyxPQUFPLG1CQUFtQixDQUFDO1FBQzdCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBQSwwQkFBVyxFQUNUO2dCQUNFLEtBQUs7Z0JBQ0wsT0FBTzthQUNSLEVBQ0QsU0FBUyxDQUNWLENBQUM7WUFDRixPQUFPLFdBQVcsQ0FBQztRQUNyQixDQUFDO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBaUI7UUFDbkMsSUFBQSwwQkFBVyxFQUNUO1lBQ0UsS0FBSyxFQUFFLEVBQUU7WUFDVCxPQUFPLEVBQUUsRUFBRTtTQUNaLEVBQ0QsU0FBUyxDQUNWLENBQUM7UUFDRixPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO0lBRU0sS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFpQjtRQUNuQyxJQUFJLENBQUM7WUFDSCxJQUFJLGNBQWMsR0FBb0IsTUFBTSxJQUFBLDBCQUFXLEVBQUMsU0FBUyxDQUFDLENBQUM7WUFFbkUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUNwQiwrREFBK0Q7Z0JBQy9ELGNBQWMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQzlDLENBQUM7WUFFRCxPQUFPLGNBQWMsQ0FBQyxLQUFLLEtBQUssRUFBRSxJQUFJLGNBQWMsQ0FBQyxPQUFPLEtBQUssRUFBRTtnQkFDakUsQ0FBQyxDQUFDLGVBQWU7Z0JBQ2pCLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxLQUFLLEVBQUUsSUFBSSxjQUFjLENBQUMsT0FBTyxLQUFLLEVBQUU7b0JBQzlELENBQUMsQ0FBQyxtQ0FBbUM7b0JBQ3JDLENBQUMsQ0FBQywwQkFBMEIsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZELENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsTUFBTSxLQUFjLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7SUFFTSxLQUFLLENBQUMsU0FBUyxDQUFDLGVBQThCLEVBQUUsU0FBaUI7UUFDdEUsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNwQixPQUFPLElBQUksWUFBTSxDQUFDO2dCQUNoQixPQUFPLEVBQUUsQ0FBQztnQkFDVixxQ0FBcUMsRUFBRTtvQkFDckMsZUFBZSxFQUFFLGNBQWMsZUFBZSxFQUFFO2lCQUNqRDthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxJQUFJLGNBQWMsR0FBb0IsTUFBTSxJQUFBLDBCQUFXLEVBQUMsU0FBUyxDQUFDLENBQUM7UUFFbkUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLCtEQUErRDtZQUMvRCxjQUFjLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsSUFBSSxjQUFjLENBQUMsT0FBTyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ2xDLE9BQU8sSUFBSSxZQUFNLENBQUM7Z0JBQ2hCLE9BQU8sRUFBRSxDQUFDO2dCQUNWLHFDQUFxQyxFQUFFO29CQUNyQyxlQUFlLEVBQUUsY0FBYyxjQUFjLENBQUMsT0FBTyxFQUFFO2lCQUN4RDthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1FBQzlELENBQUM7SUFDSCxDQUFDO0lBRU8sS0FBSyxDQUFDLFVBQVUsQ0FBQyxXQUF3QjtRQUMvQyxNQUFNLE1BQU0sR0FBRztZQUNiLE9BQU8sRUFBRTtnQkFDUCxhQUFhLEVBQUUsU0FBUyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsV0FBVyxDQUFDLEtBQUssSUFBSSxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRTthQUN4RjtTQUNGLENBQUM7UUFDRixNQUFNLFFBQVEsR0FBa0IsTUFBTSxlQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDM0UsTUFBTSxPQUFPLEdBQVcsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDckQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs7QUE3SEgsOEJBd0lDO0FBcklnQixpQkFBTyxHQUFHLEdBQUcsYUFBTyxrQkFBa0IsQUFBL0IsQ0FBZ0MifQ==
|
|
@@ -10,7 +10,7 @@ const utils_1 = require("../../utils/utils");
|
|
|
10
10
|
const utils_2 = require("../../utils/utils");
|
|
11
11
|
const transform_1 = require("../../types/api/transform");
|
|
12
12
|
const transform_2 = require("../../controllers/api/transform");
|
|
13
|
-
const formats = Object.keys(
|
|
13
|
+
const formats = Object.keys(transform_1.TransformationFormats).join("|");
|
|
14
14
|
class Transform extends core_1.Command {
|
|
15
15
|
async run() {
|
|
16
16
|
const { flags } = await this.parse(_a);
|
|
@@ -91,7 +91,7 @@ Success! Your transformed file is located at D:/swagger_raml.yaml
|
|
|
91
91
|
];
|
|
92
92
|
Transform.flags = {
|
|
93
93
|
format: core_1.Flags.string({
|
|
94
|
-
parse: async (format) => (0, transform_2.getValidFormat)(format
|
|
94
|
+
parse: async (format) => (0, transform_2.getValidFormat)(format),
|
|
95
95
|
required: true,
|
|
96
96
|
description: `specification format to transform API specification into
|
|
97
97
|
${formats}`
|
|
@@ -114,4 +114,4 @@ ${formats}`
|
|
|
114
114
|
"auth-key": core_1.Flags.string({ description: "override current authentication state with an authentication key" })
|
|
115
115
|
};
|
|
116
116
|
exports.default = Transform;
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2FwaS90cmFuc2Zvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUUvQixzQ0FBNkM7QUFDN0MsdUNBQTBHO0FBRzFHLDhEQUEwRDtBQUMxRCw2Q0FBNEQ7QUFDNUQsNkNBQXFFO0FBQ3JFLHlEQUFzRjtBQUN0RiwrREFBa0g7QUFFbEgsTUFBTSxPQUFPLEdBQVcsTUFBTSxDQUFDLElBQUksQ0FBQyxpQ0FBcUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNyRSxNQUFxQixTQUFVLFNBQVEsY0FBTztJQXNDNUMsS0FBSyxDQUFDLEdBQUc7UUFDUCxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQVMsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUEsMkJBQW1CLEVBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFBLDJCQUFtQixFQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvRixNQUFNLGlCQUFpQixHQUFXLDhCQUFrQixDQUFDLEtBQUssQ0FBQyxNQUF5QyxDQUFDLENBQUM7UUFDdEcsTUFBTSxtQkFBbUIsR0FBVyxJQUFJLENBQUMsSUFBSSxDQUMzQyxLQUFLLENBQUMsV0FBVyxFQUNqQixHQUFHLFFBQVEsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLGlCQUFpQixFQUFFLENBQUMsV0FBVyxFQUFFLENBQ2pFLENBQUM7UUFFRixtRkFBbUY7UUFDbkYsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdkQsTUFBTSxJQUFJLEtB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
|
|
@@ -15,7 +15,7 @@ class Validate extends core_1.Command {
|
|
|
15
15
|
}
|
|
16
16
|
const overrideAuthKey = flags["auth-key"] ? flags["auth-key"] : null;
|
|
17
17
|
const client = await sdk_client_1.SDKClient.getInstance().getClient(overrideAuthKey, this.config.configDir);
|
|
18
|
-
const apiValidationController = new sdk_1.
|
|
18
|
+
const apiValidationController = new sdk_1.ApiValidationExternalApIsController(client);
|
|
19
19
|
core_1.ux.action.start("Validating specification file");
|
|
20
20
|
const validationSummary = await (0, validate_1.getValidationSummary)(flags, apiValidationController);
|
|
21
21
|
core_1.ux.action.stop();
|
|
@@ -9,5 +9,10 @@ export default class PortalGenerate extends Command {
|
|
|
9
9
|
"auth-key": import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
10
10
|
};
|
|
11
11
|
static examples: string[];
|
|
12
|
-
|
|
12
|
+
private readonly prompts;
|
|
13
|
+
constructor(argv: string[], config: any);
|
|
14
|
+
run(): Promise<void>;
|
|
15
|
+
private getPortalPaths;
|
|
16
|
+
private validatePaths;
|
|
17
|
+
private checkExistingPortal;
|
|
13
18
|
}
|
|
@@ -4,86 +4,62 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
const path = require("path");
|
|
5
5
|
const fs = require("fs-extra");
|
|
6
6
|
const core_1 = require("@oclif/core");
|
|
7
|
-
const sdk_1 = require("@apimatic/sdk");
|
|
8
|
-
const sdk_client_1 = require("../../client-utils/sdk-client");
|
|
9
|
-
const generate_1 = require("../../controllers/portal/generate");
|
|
10
7
|
const utils_1 = require("../../utils/utils");
|
|
8
|
+
const generate_1 = require("../../prompts/portal/generate");
|
|
9
|
+
const generate_2 = require("../../actions/portal/generate");
|
|
10
|
+
const result_1 = require("../../types/common/result");
|
|
11
|
+
const DEFAULT_FOLDER = "./";
|
|
12
|
+
const DEFAULT_DESTINATION = path.resolve("./");
|
|
13
|
+
const GENERATED_PORTAL_ARTIFACTS_FOLDER = "generated_portal";
|
|
14
|
+
const GENERATED_PORTAL_ARTIFACTS_ZIP = ".generated_portal.zip";
|
|
11
15
|
class PortalGenerate extends core_1.Command {
|
|
16
|
+
constructor(argv, config) {
|
|
17
|
+
super(argv, config);
|
|
18
|
+
this.prompts = new generate_1.PortalGeneratePrompts();
|
|
19
|
+
}
|
|
12
20
|
async run() {
|
|
13
21
|
const { flags } = await this.parse(_a);
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
// Check if at destination, portal already exists and throw error if force flag is not set for both zip and extracted
|
|
20
|
-
if (fs.existsSync(portalFolderPath) && !flags.force && !zip) {
|
|
21
|
-
throw new Error(`Can't download portal to path ${portalFolderPath}, because it already exists`);
|
|
22
|
+
const paths = await this.getPortalPaths(flags);
|
|
23
|
+
const portalGenerateAction = new generate_2.PortalGenerateAction();
|
|
24
|
+
const shouldContinueWithExistingPortal = await this.checkExistingPortal(paths, flags);
|
|
25
|
+
if (!shouldContinueWithExistingPortal) {
|
|
26
|
+
process.exit(1);
|
|
22
27
|
}
|
|
23
|
-
|
|
24
|
-
|
|
28
|
+
const validationResult = await this.validatePaths(paths);
|
|
29
|
+
if (validationResult.isFailed()) {
|
|
30
|
+
this.error(validationResult.error);
|
|
25
31
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
zippedPortalPath,
|
|
40
|
-
docsPortalController,
|
|
41
|
-
overrideAuthKey,
|
|
42
|
-
zip
|
|
43
|
-
};
|
|
44
|
-
core_1.ux.action.start('Generating portal');
|
|
45
|
-
const generatedPortalPath = await (0, generate_1.downloadDocsPortal)(generatePortalParams, this.config.configDir);
|
|
46
|
-
core_1.ux.action.stop();
|
|
47
|
-
this.log(`Your portal has been generated at ${generatedPortalPath}`);
|
|
32
|
+
await portalGenerateAction.generatePortal(paths, flags, this.config.configDir);
|
|
33
|
+
}
|
|
34
|
+
async getPortalPaths(flags) {
|
|
35
|
+
return {
|
|
36
|
+
sourceFolderPath: flags.folder,
|
|
37
|
+
destinationFolderPath: flags.destination,
|
|
38
|
+
generatedPortalArtifactsFolderPath: path.join(flags.destination, GENERATED_PORTAL_ARTIFACTS_FOLDER),
|
|
39
|
+
generatedPortalArtifactsZipFilePath: path.join(flags.destination, GENERATED_PORTAL_ARTIFACTS_ZIP)
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
async validatePaths(paths) {
|
|
43
|
+
if (!(await fs.pathExists(paths.sourceFolderPath))) {
|
|
44
|
+
return result_1.Result.failure((0, utils_1.getMessageInRedColor)(`Portal build input folder ${paths.sourceFolderPath} does not exist.`));
|
|
48
45
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
return this.error((0, utils_1.replaceHTML)(nestedErrors.error));
|
|
59
|
-
}
|
|
60
|
-
else if (nestedErrors.message) {
|
|
61
|
-
return this.error((0, utils_1.replaceHTML)(nestedErrors.message));
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
else if (apiResponse.status === 401 && responseData.length > 0) {
|
|
65
|
-
this.error("You are not authorized to perform this action");
|
|
66
|
-
}
|
|
67
|
-
else if (apiResponse.status === 403 && apiResponse.statusText) {
|
|
68
|
-
return this.error("Your subscription does not allow on premise portal generation");
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
return this.error(apiError.message);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
else if (error.statusCode === 401) {
|
|
76
|
-
this.error("You are not authorized to perform this action");
|
|
77
|
-
}
|
|
78
|
-
else if (error.statusCode === 402 &&
|
|
79
|
-
error.body &&
|
|
80
|
-
typeof error.body === "string") {
|
|
81
|
-
this.error(error.body);
|
|
46
|
+
if (!(await fs.pathExists(path.dirname(paths.generatedPortalArtifactsFolderPath)))) {
|
|
47
|
+
return result_1.Result.failure((0, utils_1.getMessageInRedColor)(`Destination path ${path.dirname(paths.generatedPortalArtifactsFolderPath)} does not exist.`));
|
|
48
|
+
}
|
|
49
|
+
return result_1.Result.success("Paths validated successfully.");
|
|
50
|
+
}
|
|
51
|
+
async checkExistingPortal(paths, flags) {
|
|
52
|
+
if (fs.existsSync(paths.generatedPortalArtifactsFolderPath) && !flags.force && !flags.zip) {
|
|
53
|
+
if (!(await this.prompts.overwriteExistingPortalArtifactsPrompt())) {
|
|
54
|
+
return false;
|
|
82
55
|
}
|
|
83
|
-
|
|
84
|
-
|
|
56
|
+
}
|
|
57
|
+
else if (fs.existsSync(paths.generatedPortalArtifactsZipFilePath) && !flags.force && flags.zip) {
|
|
58
|
+
if (!(await this.prompts.existingDestinationPortalZipPrompt())) {
|
|
59
|
+
return false;
|
|
85
60
|
}
|
|
86
61
|
}
|
|
62
|
+
return true;
|
|
87
63
|
}
|
|
88
64
|
}
|
|
89
65
|
_a = PortalGenerate;
|
|
@@ -91,16 +67,23 @@ PortalGenerate.description = "Generate and download a static API Documentation p
|
|
|
91
67
|
PortalGenerate.flags = {
|
|
92
68
|
folder: core_1.Flags.string({
|
|
93
69
|
parse: async (input) => path.resolve(input),
|
|
94
|
-
default:
|
|
70
|
+
default: DEFAULT_FOLDER,
|
|
95
71
|
description: "path to the input directory containing API specifications and config files"
|
|
96
72
|
}),
|
|
97
73
|
destination: core_1.Flags.string({
|
|
98
74
|
parse: async (input) => path.resolve(input),
|
|
99
|
-
default:
|
|
75
|
+
default: DEFAULT_DESTINATION,
|
|
100
76
|
description: "path to the downloaded portal"
|
|
101
77
|
}),
|
|
102
|
-
force: core_1.Flags.boolean({
|
|
103
|
-
|
|
78
|
+
force: core_1.Flags.boolean({
|
|
79
|
+
char: "f",
|
|
80
|
+
default: false,
|
|
81
|
+
description: "overwrite if a portal exists in the destination"
|
|
82
|
+
}),
|
|
83
|
+
zip: core_1.Flags.boolean({
|
|
84
|
+
default: false,
|
|
85
|
+
description: "download the generated portal as a .zip archive"
|
|
86
|
+
}),
|
|
104
87
|
"auth-key": core_1.Flags.string({
|
|
105
88
|
default: "",
|
|
106
89
|
description: "override current authentication state with an authentication key"
|
|
@@ -112,4 +95,4 @@ Your portal has been generated at D:/
|
|
|
112
95
|
`
|
|
113
96
|
];
|
|
114
97
|
exports.default = PortalGenerate;
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvcG9ydGFsL2dlbmVyYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUE2QjtBQUM3QiwrQkFBK0I7QUFDL0Isc0NBQTZDO0FBRTdDLDZDQUF5RDtBQUN6RCw0REFBc0U7QUFDdEUsNERBQXFFO0FBQ3JFLHNEQUFtRDtBQUVuRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUM7QUFDNUIsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQy9DLE1BQU0saUNBQWlDLEdBQUcsa0JBQWtCLENBQUM7QUFDN0QsTUFBTSw4QkFBOEIsR0FBRyx1QkFBdUIsQ0FBQztBQUUvRCxNQUFxQixjQUFlLFNBQVEsY0FBTztJQXNDakQsWUFBWSxJQUFjLEVBQUUsTUFBVztRQUNyQyxLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxnQ0FBcUIsRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBYyxDQUFDLENBQUM7UUFDbkQsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQXNCLENBQUMsQ0FBQztRQUNoRSxNQUFNLG9CQUFvQixHQUFHLElBQUksK0JBQW9CLEVBQUUsQ0FBQztRQUV4RCxNQUFNLGdDQUFnQyxHQUFHLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxLQUFzQixDQUFDLENBQUM7UUFDdkcsSUFBSSxDQUFDLGdDQUFnQyxFQUFFLENBQUM7WUFDdEMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQixDQUFDO1FBRUQsTUFB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
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Command } from "@oclif/core";
|
|
2
|
+
export default class PortalNewToc extends Command {
|
|
3
|
+
static summary: string;
|
|
4
|
+
static description: string;
|
|
5
|
+
static flags: {
|
|
6
|
+
destination: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
7
|
+
folder: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
8
|
+
force: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
9
|
+
"expand-endpoints": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
10
|
+
"expand-models": import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
11
|
+
};
|
|
12
|
+
static examples: string[];
|
|
13
|
+
constructor(argv: string[], config: any);
|
|
14
|
+
run(): Promise<void>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const path = require("path");
|
|
5
|
+
const core_1 = require("@oclif/core");
|
|
6
|
+
const toc_1 = require("../../../actions/portal/new/toc");
|
|
7
|
+
const DEFAULT_FOLDER = process.cwd();
|
|
8
|
+
class PortalNewToc extends core_1.Command {
|
|
9
|
+
constructor(argv, config) {
|
|
10
|
+
super(argv, config);
|
|
11
|
+
}
|
|
12
|
+
async run() {
|
|
13
|
+
const { flags } = await this.parse(_a);
|
|
14
|
+
const portalNewTocAction = new toc_1.PortalNewTocAction();
|
|
15
|
+
const result = await portalNewTocAction.createToc(flags.folder, this.config.configDir, flags.destination, flags.force, flags["expand-endpoints"], flags["expand-models"]);
|
|
16
|
+
if (result.isFailed()) {
|
|
17
|
+
this.error(result.error);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
_a = PortalNewToc;
|
|
22
|
+
PortalNewToc.summary = 'Generates a TOC file based on the content directory and spec folder provided in your working directory';
|
|
23
|
+
PortalNewToc.description = `This command generates a new Table of Contents (TOC) file used in the
|
|
24
|
+
generation of your API documentation portal.
|
|
25
|
+
|
|
26
|
+
The output is a YAML file with the .yml extension.
|
|
27
|
+
|
|
28
|
+
To learn more about the TOC file and APIMatic build directory structure, visit:
|
|
29
|
+
https://docs.apimatic.io/platform-api/#/http/guides/generating-on-prem-api-portal/overview-generating-api-portal`;
|
|
30
|
+
PortalNewToc.flags = {
|
|
31
|
+
destination: core_1.Flags.string({
|
|
32
|
+
parse: async (input) => path.resolve(input),
|
|
33
|
+
description: "optional path where the generated TOC file will be saved. Defaults to the current working directory if not provided.",
|
|
34
|
+
}),
|
|
35
|
+
folder: core_1.Flags.string({
|
|
36
|
+
parse: async (input) => path.resolve(input),
|
|
37
|
+
description: "path to the working directory containing the API project files. Defaults to the current working directory if not specified.",
|
|
38
|
+
default: DEFAULT_FOLDER
|
|
39
|
+
}),
|
|
40
|
+
force: core_1.Flags.boolean({
|
|
41
|
+
default: false,
|
|
42
|
+
description: "overwrite the TOC file if one already exists at the destination.",
|
|
43
|
+
}),
|
|
44
|
+
"expand-endpoints": core_1.Flags.boolean({
|
|
45
|
+
default: false,
|
|
46
|
+
description: "include individual entries for each endpoint in the generated TOC. Requires a valid API specification in the working directory."
|
|
47
|
+
}),
|
|
48
|
+
"expand-models": core_1.Flags.boolean({
|
|
49
|
+
default: false,
|
|
50
|
+
description: "include individual entries for each model in the generated TOC. Requires a valid API specification in the working directory."
|
|
51
|
+
})
|
|
52
|
+
};
|
|
53
|
+
PortalNewToc.examples = [
|
|
54
|
+
`$ apimatic portal:new:toc --destination="./portal/content/"
|
|
55
|
+
A new toc file has been created at ./portal/content/toc.yml
|
|
56
|
+
`,
|
|
57
|
+
`$ apimatic portal:new:toc --folder="./my-project"
|
|
58
|
+
A new toc file has been created at ./my-project/content/toc.yml
|
|
59
|
+
`,
|
|
60
|
+
`$ apimatic portal:new:toc --folder="./my-project" --destination="./portal/content/"
|
|
61
|
+
A new toc file has been created at ./portal/content/toc.yml
|
|
62
|
+
`
|
|
63
|
+
];
|
|
64
|
+
exports.default = PortalNewToc;
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9jLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3BvcnRhbC9uZXcvdG9jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUE2QjtBQUM3QixzQ0FBNkM7QUFDN0MseURBQXFFO0FBRXJFLE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUVyQyxNQUFxQixZQUFhLFNBQVEsY0FBTztJQStDL0MsWUFBWSxJQUFjLEVBQUUsTUFBVztRQUNyQyxLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxLQUFLLENBQUMsR0FBRztRQUNQLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBWSxDQUFDLENBQUM7UUFDakQsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLHdCQUFrQixFQUFFLENBQUM7UUFDcEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQyxTQUFTLENBQy9DLEtBQUssQ0FBQyxNQUFNLEVBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQ3JCLEtBQUssQ0FBQyxXQUFXLEVBQ2pCLEtBQUssQ0FBQyxLQUFLLEVBQ1gsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEVBQ3pCLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FDdkIsQ0FBQztRQUVGLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBTSxDQUFDLENBQUM7UUFDNUIsQ0FBQztJQUNILENBQUM7OztBQWpFTSxvQkFBTyxHQUFHLHdHQUF3RyxBQUEzRyxDQUE0RztBQUVuSCx3QkFBVyxHQUFHOzs7Ozs7aUhBTTBGLEFBTjdGLENBTThGO0FBRXpHLGtCQUFLLEdBQUc7SUFDYixXQUFXLEVBQUUsWUFBSyxDQUFDLE1BQU0sQ0FBQztRQUN4QixLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQWEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDbkQsV0FBVyxFQUFFLHNIQUFzSDtLQUNwSSxDQUFDO0lBQ0YsTUFBTSxFQUFFLFlBQUssQ0FBQyxNQUFNLENBQUM7UUFDbkIsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFhLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ25ELFdBQVcsRUFBRSw2SEFBNkg7UUFDMUksT0FBTyxFQUFFLGNBQWM7S0FDeEIsQ0FBQztJQUNGLEtBQUssRUFBRSxZQUFLLENBQUMsT0FBTyxDQUFDO1FBQ25CLE9BQU8sRUFBRSxLQUFLO1FBQ2QsV0FBVyxFQUFFLGtFQUFrRTtLQUNoRixDQUFDO0lBQ0Ysa0JBQWtCLEVBQUUsWUFBSyxDQUFDLE9BQU8sQ0FBQztRQUNoQyxPQUFPLEVBQUUsS0FBSztRQUNkLFdBQVcsRUFBRSxpSUFBaUk7S0FDL0ksQ0FBQztJQUNGLGVBQWUsRUFBRSxZQUFLLENBQUMsT0FBTyxDQUFDO1FBQzdCLE9BQU8sRUFBRSxLQUFLO1FBQ2QsV0FBVyxFQUFFLDhIQUE4SDtLQUM1SSxDQUFDO0NBQ0gsQUF0QlcsQ0FzQlY7QUFFSyxxQkFBUSxHQUFHO0lBQ2hCOztDQUVIO0lBQ0c7O0NBRUg7SUFDRzs7Q0FFSDtDQUNFLEFBVmMsQ0FVYjtrQkE3Q2lCLFlBQVkifQ==
|
|
@@ -8,35 +8,29 @@ const quickstart_2 = require("../../controllers/portal/quickstart");
|
|
|
8
8
|
const utils_1 = require("../../utils/utils");
|
|
9
9
|
class PortalQuickstart extends core_1.Command {
|
|
10
10
|
async getSpecFile(prompts, controller) {
|
|
11
|
-
const
|
|
12
|
-
const specFile = await controller.getSpecFile(
|
|
11
|
+
const specPath = await prompts.specPrompt();
|
|
12
|
+
const specFile = await controller.getSpecFile(specPath);
|
|
13
13
|
prompts.displaySpecValidationMessage();
|
|
14
14
|
return specFile;
|
|
15
15
|
}
|
|
16
16
|
async getSpecValidationSummary(prompts, controller, specFile, apiValidationController) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
await prompts.specValidationFailurePrompt();
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
24
|
-
prompts.displaySpecValidationSuccessMessage();
|
|
25
|
-
}
|
|
26
|
-
return apiValidationSummary;
|
|
17
|
+
const apiValidationSummary = await controller.getSpecValidationSummary(prompts, specFile, apiValidationController);
|
|
18
|
+
if (!apiValidationSummary.success) {
|
|
19
|
+
prompts.displaySpecValidationFailureMessage();
|
|
20
|
+
await prompts.specValidationFailurePrompt();
|
|
27
21
|
}
|
|
28
|
-
|
|
29
|
-
prompts.
|
|
30
|
-
this.error((0, utils_1.getMessageInRedColor)("The specified path/URL does not point to a valid API Definition file. Please provide a valid API Definition file and try again."));
|
|
22
|
+
else {
|
|
23
|
+
prompts.displaySpecValidationSuccessMessage();
|
|
31
24
|
}
|
|
25
|
+
return apiValidationSummary;
|
|
32
26
|
}
|
|
33
27
|
async getBuildDirectory(prompts, controller, specFile, apiValidationSummary, languages) {
|
|
34
|
-
const
|
|
28
|
+
const buildDirectoryPath = await prompts.buildDirectoryPrompt();
|
|
35
29
|
prompts.displayBuildDirectoryGenerationMessage();
|
|
36
|
-
await controller.setupBuildDirectory(prompts,
|
|
37
|
-
prompts.displayBuildDirectoryGenerationSuccessMessage(
|
|
38
|
-
prompts.displayBuildDirectoryAsTree(
|
|
39
|
-
return
|
|
30
|
+
await controller.setupBuildDirectory(prompts, buildDirectoryPath, specFile, apiValidationSummary, languages);
|
|
31
|
+
prompts.displayBuildDirectoryGenerationSuccessMessage(buildDirectoryPath);
|
|
32
|
+
prompts.displayBuildDirectoryAsTree(buildDirectoryPath);
|
|
33
|
+
return buildDirectoryPath;
|
|
40
34
|
}
|
|
41
35
|
async getGeneratedPortalPath(prompts, controller, directory) {
|
|
42
36
|
prompts.displayPortalGenerationMessage();
|
|
@@ -62,22 +56,24 @@ class PortalQuickstart extends core_1.Command {
|
|
|
62
56
|
}
|
|
63
57
|
}
|
|
64
58
|
const client = await sdk_client_1.SDKClient.getInstance().getClient(null, this.config.configDir);
|
|
65
|
-
const apiValidationController = new sdk_1.
|
|
59
|
+
const apiValidationController = new sdk_1.ApiValidationExternalApIsController(client);
|
|
66
60
|
try {
|
|
67
61
|
const specFile = await this.getSpecFile(prompts, controller);
|
|
68
62
|
const apiValidationSummary = await this.getSpecValidationSummary(prompts, controller, specFile, apiValidationController);
|
|
69
63
|
const languages = await prompts.sdkLanguagesPrompt();
|
|
70
64
|
const directory = await this.getBuildDirectory(prompts, controller, specFile, apiValidationSummary, languages);
|
|
71
65
|
const generatedPortalPath = await this.getGeneratedPortalPath(prompts, controller, directory);
|
|
72
|
-
controller.servePortal(generatedPortalPath, directory, this.config.configDir);
|
|
73
|
-
|
|
66
|
+
const serverStarted = await controller.servePortal(generatedPortalPath, directory, this.config.configDir);
|
|
67
|
+
if (serverStarted) {
|
|
68
|
+
prompts.displayOutroMessage(directory);
|
|
69
|
+
}
|
|
74
70
|
}
|
|
75
71
|
catch (error) {
|
|
76
72
|
this.error((0, utils_1.getMessageInRedColor)(error instanceof Error ? error.message : String(error)));
|
|
77
73
|
}
|
|
78
74
|
}
|
|
79
75
|
}
|
|
80
|
-
PortalQuickstart.description = "Create your first API Portal using APIMatic
|
|
76
|
+
PortalQuickstart.description = "Create your first API Portal using APIMatic's Docs as Code offering.";
|
|
81
77
|
PortalQuickstart.examples = ["$ apimatic portal:quickstart"];
|
|
82
78
|
exports.default = PortalQuickstart;
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2tzdGFydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9wb3J0YWwvcXVpY2tzdGFydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHNDQUFzQztBQUN0Qyx1Q0FBa0c7QUFDbEcsOERBQTBEO0FBQzFELGdFQUEwRTtBQUMxRSxvRUFBaUY7QUFFakYsNkNBQXlEO0FBRXpELE1BQXFCLGdCQUFpQixTQUFRLGNBQU87SUFLM0MsS0FBSyxDQUFDLFdBQVcsQ0FDdkIsT0FBZ0MsRUFDaEMsVUFBc0M7UUFFdEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFNUMsTUFBTSxRQUFRLEdBQUcsTUFBTSxVQUFVLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXhELE9BQU8sQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO1FBRXZDLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFTyxLQUFLLENBQUMsd0JBQXdCLENBQ3BDLE9BQWdDLEVBQ2hDLFVBQXNDLEVBQ3RDLFFBQWtCLEVBQ2xCLHVCQUE0RDtRQUU1RCxNQUFNLG9CQUFvQixHQUFHLE1BQU0sVUFBVSxDQUFDLHdCQUF3QixDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztRQUVuSCxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEMsT0FBTyxDQUFDLG1DQUFtQyxFQUFFLENBQUM7WUFDOUMsTUFBTSxPQUFPLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztRQUM5QyxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sQ0FBQyxtQ0FBbUMsRUFBRSxDQUFDO1FBQ2hELENBQUM7UUFFRCxPQUFPLG9CQUFvQixDQUFDO0lBQzlCLENBQUM7SUFFTyxLQUFLLENBQUMsaUJBQWlCLENBQzdCLE9BQWdDLEVBQ2hDLFVBQXNDLEVBQ3RDLFFBQWtCLEVBQ2xCLG9CQUEw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
|
|
@@ -11,7 +11,6 @@ export default class PortalServe extends Command {
|
|
|
11
11
|
"auth-key": import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
12
|
};
|
|
13
13
|
static examples: string[];
|
|
14
|
-
private getGeneratedFilesPaths;
|
|
15
14
|
run(): Promise<void>;
|
|
16
15
|
private handleError;
|
|
17
16
|
}
|