@apimatic/cli 1.0.2-alpha.2 → 1.1.0-alpha.10
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 +220 -72
- package/bin/run.js +5 -0
- package/lib/actions/portal/generate.d.ts +7 -0
- package/lib/actions/portal/generate.js +54 -0
- package/lib/actions/portal/generate.js.map +1 -0
- package/lib/actions/portal/recipe/new-recipe.d.ts +24 -0
- package/lib/actions/portal/recipe/new-recipe.js +258 -0
- package/lib/actions/portal/recipe/new-recipe.js.map +1 -0
- package/lib/actions/portal/toc/new-toc.d.ts +17 -0
- package/lib/actions/portal/toc/new-toc.js +130 -0
- package/lib/actions/portal/toc/new-toc.js.map +1 -0
- package/lib/application/portal/recipe/portal-recipe.d.ts +8 -0
- package/lib/application/portal/recipe/portal-recipe.js +33 -0
- package/lib/application/portal/recipe/portal-recipe.js.map +1 -0
- package/lib/application/portal/recipe/recipe-generator.d.ts +16 -0
- package/lib/application/portal/recipe/recipe-generator.js +147 -0
- package/lib/application/portal/recipe/recipe-generator.js.map +1 -0
- package/lib/application/portal/toc/sdl-parser.d.ts +16 -0
- package/lib/application/portal/toc/sdl-parser.js +74 -0
- package/lib/application/portal/toc/sdl-parser.js.map +1 -0
- package/lib/application/portal/toc/toc-content-parser.d.ts +5 -0
- package/lib/application/portal/toc/toc-content-parser.js +44 -0
- package/lib/application/portal/toc/toc-content-parser.js.map +1 -0
- package/lib/application/portal/toc/toc-structure-generator.d.ts +6 -0
- package/lib/application/portal/toc/toc-structure-generator.js +84 -0
- package/lib/application/portal/toc/toc-structure-generator.js.map +1 -0
- package/lib/client-utils/auth-manager.d.ts +1 -1
- package/lib/client-utils/auth-manager.js +9 -13
- package/lib/client-utils/auth-manager.js.map +1 -0
- package/lib/client-utils/sdk-client.js +24 -23
- package/lib/client-utils/sdk-client.js.map +1 -0
- package/lib/commands/api/transform.d.ts +7 -7
- package/lib/commands/api/transform.js +44 -40
- package/lib/commands/api/transform.js.map +1 -0
- package/lib/commands/api/validate.d.ts +4 -4
- package/lib/commands/api/validate.js +33 -24
- package/lib/commands/api/validate.js.map +1 -0
- package/lib/commands/auth/login.d.ts +2 -2
- package/lib/commands/auth/login.js +33 -18
- package/lib/commands/auth/login.js.map +1 -0
- package/lib/commands/auth/logout.d.ts +1 -1
- package/lib/commands/auth/logout.js +6 -7
- package/lib/commands/auth/logout.js.map +1 -0
- package/lib/commands/auth/status.d.ts +1 -1
- package/lib/commands/auth/status.js +6 -7
- package/lib/commands/auth/status.js.map +1 -0
- package/lib/commands/portal/generate.d.ts +12 -7
- package/lib/commands/portal/generate.js +73 -79
- package/lib/commands/portal/generate.js.map +1 -0
- package/lib/commands/portal/quickstart.d.ts +10 -0
- package/lib/commands/portal/quickstart.js +77 -0
- package/lib/commands/portal/quickstart.js.map +1 -0
- package/lib/commands/portal/recipe/new.d.ts +12 -0
- package/lib/commands/portal/recipe/new.js +44 -0
- package/lib/commands/portal/recipe/new.js.map +1 -0
- package/lib/commands/portal/serve.d.ts +16 -0
- package/lib/commands/portal/serve.js +135 -0
- package/lib/commands/portal/serve.js.map +1 -0
- package/lib/commands/portal/toc/new.d.ts +15 -0
- package/lib/commands/portal/toc/new.js +63 -0
- package/lib/commands/portal/toc/new.js.map +1 -0
- package/lib/commands/sdk/generate.d.ts +8 -8
- package/lib/commands/sdk/generate.js +48 -41
- package/lib/commands/sdk/generate.js.map +1 -0
- package/lib/config/axios-config.d.ts +2 -0
- package/lib/config/axios-config.js +10 -0
- package/lib/config/axios-config.js.map +1 -0
- package/lib/config/env.d.ts +27 -1
- package/lib/config/env.js +28 -4
- package/lib/config/env.js.map +1 -0
- package/lib/controllers/api/transform.d.ts +1 -1
- package/lib/controllers/api/transform.js +23 -22
- package/lib/controllers/api/transform.js.map +1 -0
- package/lib/controllers/api/validate.d.ts +3 -3
- package/lib/controllers/api/validate.js +19 -12
- package/lib/controllers/api/validate.js.map +1 -0
- package/lib/controllers/portal/generate.d.ts +3 -2
- package/lib/controllers/portal/generate.js +105 -48
- package/lib/controllers/portal/generate.js.map +1 -0
- package/lib/controllers/portal/quickstart.d.ts +14 -0
- package/lib/controllers/portal/quickstart.js +253 -0
- package/lib/controllers/portal/quickstart.js.map +1 -0
- package/lib/controllers/portal/serve.d.ts +3 -0
- package/lib/controllers/portal/serve.js +133 -0
- package/lib/controllers/portal/serve.js.map +1 -0
- package/lib/controllers/sdk/generate.d.ts +4 -4
- package/lib/controllers/sdk/generate.js +23 -26
- package/lib/controllers/sdk/generate.js.map +1 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.js +2 -4
- package/lib/index.js.map +1 -0
- package/lib/infrastructure/services/portal-service.d.ts +16 -0
- package/lib/infrastructure/services/portal-service.js +129 -0
- package/lib/infrastructure/services/portal-service.js.map +1 -0
- package/lib/prompts/portal/generate.d.ts +10 -0
- package/lib/prompts/portal/generate.js +57 -0
- package/lib/prompts/portal/generate.js.map +1 -0
- package/lib/prompts/portal/quickstart.d.ts +31 -0
- package/lib/prompts/portal/quickstart.js +212 -0
- package/lib/prompts/portal/quickstart.js.map +1 -0
- package/lib/prompts/portal/recipe/new-recipe.d.ts +23 -0
- package/lib/prompts/portal/recipe/new-recipe.js +193 -0
- package/lib/prompts/portal/recipe/new-recipe.js.map +1 -0
- package/lib/prompts/portal/serve.d.ts +7 -0
- package/lib/prompts/portal/serve.js +21 -0
- package/lib/prompts/portal/serve.js.map +1 -0
- package/lib/prompts/portal/toc/new-toc.d.ts +10 -0
- package/lib/prompts/portal/toc/new-toc.js +42 -0
- package/lib/prompts/portal/toc/new-toc.js.map +1 -0
- package/lib/services/portal/server.d.ts +14 -0
- package/lib/services/portal/server.js +97 -0
- package/lib/services/portal/server.js.map +1 -0
- package/lib/types/api/transform.d.ts +19 -8
- package/lib/types/api/transform.js +19 -4
- package/lib/types/api/transform.js.map +1 -0
- package/lib/types/api/validate.d.ts +3 -3
- package/lib/types/api/validate.js +2 -2
- package/lib/types/api/validate.js.map +1 -0
- package/lib/types/common/result.d.ts +17 -0
- package/lib/types/common/result.js +32 -0
- package/lib/types/common/result.js.map +1 -0
- package/lib/types/portal/generate.d.ts +26 -9
- package/lib/types/portal/generate.js +3 -2
- package/lib/types/portal/generate.js.map +1 -0
- package/lib/types/portal/quickstart.d.ts +17 -0
- package/lib/types/portal/quickstart.js +2 -0
- package/lib/types/portal/quickstart.js.map +1 -0
- package/lib/types/recipe/recipe.d.ts +37 -0
- package/lib/types/recipe/recipe.js +6 -0
- package/lib/types/recipe/recipe.js.map +1 -0
- package/lib/types/sdk/generate.d.ts +6 -5
- package/lib/types/sdk/generate.js +5 -6
- package/lib/types/sdk/generate.js.map +1 -0
- package/lib/types/sdl/sdl.d.ts +12 -0
- package/lib/types/sdl/sdl.js +2 -0
- package/lib/types/sdl/sdl.js.map +1 -0
- package/lib/types/toc/toc.d.ts +31 -0
- package/lib/types/toc/toc.js +9 -0
- package/lib/types/toc/toc.js.map +1 -0
- package/lib/types/utils.d.ts +6 -2
- package/lib/types/utils.js +2 -2
- package/lib/types/utils.js.map +1 -0
- package/lib/utils/utils.d.ts +31 -5
- package/lib/utils/utils.js +316 -74
- package/lib/utils/utils.js.map +1 -0
- package/lib/validators/common/directoryValidator.d.ts +9 -0
- package/lib/validators/common/directoryValidator.js +49 -0
- package/lib/validators/common/directoryValidator.js.map +1 -0
- package/lib/validators/common/portValidator.d.ts +5 -0
- package/lib/validators/common/portValidator.js +16 -0
- package/lib/validators/common/portValidator.js.map +1 -0
- package/lib/validators/portal/serveValidator.d.ts +6 -0
- package/lib/validators/portal/serveValidator.js +17 -0
- package/lib/validators/portal/serveValidator.js.map +1 -0
- package/package.json +86 -38
- package/bin/run +0 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recipe-generator.js","sourceRoot":"","sources":["../../../../src/application/portal/recipe/recipe-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { PortalService } from "../../../infrastructure/services/portal-service.js";
|
|
2
|
+
import { TocEndpoint, TocModel } from "../../../types/toc/toc.js";
|
|
3
|
+
import { Result } from "../../../types/common/result.js";
|
|
4
|
+
import { SdlEndpoint } from "../../../types/sdl/sdl.js";
|
|
5
|
+
export declare class SdlParser {
|
|
6
|
+
private readonly portalService;
|
|
7
|
+
constructor(portalService: PortalService);
|
|
8
|
+
getTocComponentsFromSdl(specFolderPath: string, workingDirectory: string, configDir: string): Promise<Result<{
|
|
9
|
+
endpointGroups: Map<string, TocEndpoint[]>;
|
|
10
|
+
models: TocModel[];
|
|
11
|
+
}, string>>;
|
|
12
|
+
getEndpointGroupsFromSdl(specFolderPath: string, contentFolderPath: string, configDir: string): Promise<Result<Map<string, SdlEndpoint[]>, string>>;
|
|
13
|
+
private extractEndpointGroupsForRecipe;
|
|
14
|
+
private extractEndpointGroupsForToc;
|
|
15
|
+
private extractModelsForToc;
|
|
16
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import * as path from "path";
|
|
2
|
+
import { validateAndZipPortalSource, deleteFile } from "../../../utils/utils.js";
|
|
3
|
+
import { Result } from "../../../types/common/result.js";
|
|
4
|
+
export class SdlParser {
|
|
5
|
+
constructor(portalService) {
|
|
6
|
+
this.portalService = portalService;
|
|
7
|
+
}
|
|
8
|
+
async getTocComponentsFromSdl(specFolderPath, workingDirectory, configDir) {
|
|
9
|
+
const sourceSpecInputZipFilePath = await validateAndZipPortalSource(specFolderPath, path.join(workingDirectory, ".spec_source.zip"));
|
|
10
|
+
try {
|
|
11
|
+
const result = await this.portalService.generateSdl(sourceSpecInputZipFilePath, configDir);
|
|
12
|
+
if (!result.isSuccess()) {
|
|
13
|
+
return Result.failure("Failed to extract endpoints/models from the specification. Please validate your spec using APIMatic's interactive VS Code Extension.");
|
|
14
|
+
}
|
|
15
|
+
const sdl = result.value;
|
|
16
|
+
const endpointGroups = this.extractEndpointGroupsForToc(sdl);
|
|
17
|
+
const models = this.extractModelsForToc(sdl);
|
|
18
|
+
return Result.success({ endpointGroups, models });
|
|
19
|
+
}
|
|
20
|
+
finally {
|
|
21
|
+
await deleteFile(sourceSpecInputZipFilePath);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
async getEndpointGroupsFromSdl(specFolderPath, contentFolderPath, configDir) {
|
|
25
|
+
const sourceSpecInputZipFilePath = await validateAndZipPortalSource(specFolderPath, path.join(contentFolderPath, ".spec_source.zip"));
|
|
26
|
+
const sdlResult = await this.portalService.generateSdl(sourceSpecInputZipFilePath, configDir);
|
|
27
|
+
if (!sdlResult.isSuccess()) {
|
|
28
|
+
return Result.failure("Failed to extract endpoints from the API specification. Please validate your spec using APIMatic's interactive VS Code Extension and then try again.");
|
|
29
|
+
}
|
|
30
|
+
const sdl = sdlResult.value;
|
|
31
|
+
const endpointGroups = this.extractEndpointGroupsForRecipe(sdl);
|
|
32
|
+
await deleteFile(sourceSpecInputZipFilePath);
|
|
33
|
+
return Result.success(endpointGroups);
|
|
34
|
+
}
|
|
35
|
+
extractEndpointGroupsForRecipe(sdl) {
|
|
36
|
+
const endpointGroups = new Map();
|
|
37
|
+
for (const endpoint of sdl.Endpoints) {
|
|
38
|
+
if (!endpointGroups.has(endpoint.Group)) {
|
|
39
|
+
endpointGroups.set(endpoint.Group, []);
|
|
40
|
+
}
|
|
41
|
+
endpointGroups.get(endpoint.Group).push({
|
|
42
|
+
Name: endpoint.Name,
|
|
43
|
+
Description: endpoint.Description,
|
|
44
|
+
Group: endpoint.Group
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
return endpointGroups;
|
|
48
|
+
}
|
|
49
|
+
extractEndpointGroupsForToc(sdl) {
|
|
50
|
+
const endpointGroups = new Map();
|
|
51
|
+
const endpoints = sdl.Endpoints.map((e) => ({
|
|
52
|
+
generate: null,
|
|
53
|
+
from: "endpoint",
|
|
54
|
+
endpointName: e.Name,
|
|
55
|
+
endpointGroup: e.Group
|
|
56
|
+
}));
|
|
57
|
+
endpoints.forEach((endpoint) => {
|
|
58
|
+
const group = endpoint.endpointGroup;
|
|
59
|
+
if (!endpointGroups.has(group)) {
|
|
60
|
+
endpointGroups.set(group, []);
|
|
61
|
+
}
|
|
62
|
+
endpointGroups.get(group).push(endpoint);
|
|
63
|
+
});
|
|
64
|
+
return endpointGroups;
|
|
65
|
+
}
|
|
66
|
+
extractModelsForToc(sdl) {
|
|
67
|
+
return sdl.CustomTypes.map((e) => ({
|
|
68
|
+
generate: null,
|
|
69
|
+
from: "model",
|
|
70
|
+
modelName: e.Name
|
|
71
|
+
}));
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=sdl-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdl-parser.js","sourceRoot":"","sources":["../../../../src/application/portal/toc/sdl-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import * as path from "path";
|
|
2
|
+
import * as fs from "fs/promises";
|
|
3
|
+
export class TocContentParser {
|
|
4
|
+
async parseContentFolder(contentFolderPath, workingDirectory) {
|
|
5
|
+
const items = await fs.readdir(contentFolderPath);
|
|
6
|
+
const contentItems = [];
|
|
7
|
+
for (const item of items) {
|
|
8
|
+
const itemPath = path.join(contentFolderPath, item);
|
|
9
|
+
const stats = await fs.stat(itemPath);
|
|
10
|
+
if (stats.isDirectory()) {
|
|
11
|
+
const subItems = await this.parseContentFolder(itemPath, workingDirectory);
|
|
12
|
+
if (subItems.length > 0) {
|
|
13
|
+
contentItems.push({
|
|
14
|
+
group: item,
|
|
15
|
+
items: subItems[0].items // Take items from the Custom Content group
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
else if (stats.isFile() && item.endsWith(".md")) {
|
|
20
|
+
const relativePath = path.relative(workingDirectory, itemPath);
|
|
21
|
+
const pageName = path.basename(item, ".md");
|
|
22
|
+
contentItems.push({
|
|
23
|
+
page: pageName,
|
|
24
|
+
file: this.normalizePath(relativePath)
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
// Return empty array if no markdown files were found
|
|
29
|
+
if (contentItems.length === 0) {
|
|
30
|
+
return [];
|
|
31
|
+
}
|
|
32
|
+
// Wrap everything under a "Custom Content" group
|
|
33
|
+
return [
|
|
34
|
+
{
|
|
35
|
+
group: "Custom Content",
|
|
36
|
+
items: contentItems
|
|
37
|
+
}
|
|
38
|
+
];
|
|
39
|
+
}
|
|
40
|
+
normalizePath(path) {
|
|
41
|
+
return path.replace(/\\/g, "/");
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=toc-content-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toc-content-parser.js","sourceRoot":"","sources":["../../../../src/application/portal/toc/toc-content-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAGlC,MAAM,OAAO,gBAAgB;IAC3B,KAAK,CAAC,kBAAkB,CAAC,iBAAyB,EAAE,gBAAwB;QAC1E,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAClD,MAAM,YAAY,GAAiC,EAAE,CAAC;QAEtD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;YACpD,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEtC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;gBAC3E,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxB,YAAY,CAAC,IAAI,CAAC;wBAChB,KAAK,EAAE,IAAI;wBACX,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,2CAA2C;qBACrE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClD,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;gBAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAE5C,YAAY,CAAC,IAAI,CAAC;oBAChB,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;iBACvC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,qDAAqD;QACrD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,iDAAiD;QACjD,OAAO;YACL;gBACE,KAAK,EAAE,gBAAgB;gBACvB,KAAK,EAAE,YAAY;aACpB;SACF,CAAC;IACJ,CAAC;IAEO,aAAa,CAAC,IAAY;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC;CACF"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Toc, TocGroup, TocEndpoint, TocModel } from "../../../types/toc/toc.js";
|
|
2
|
+
export declare class TocStructureGenerator {
|
|
3
|
+
createTocStructure(endpointGroups: Map<string, TocEndpoint[]>, models: TocModel[], expandEndpoints?: boolean, expandModels?: boolean, contentGroups?: TocGroup[]): Toc;
|
|
4
|
+
transformToYaml(toc: Toc): string;
|
|
5
|
+
private transformKeys;
|
|
6
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { stringify } from "yaml";
|
|
2
|
+
export class TocStructureGenerator {
|
|
3
|
+
createTocStructure(endpointGroups, models, expandEndpoints = false, expandModels = false, contentGroups = []) {
|
|
4
|
+
const tocStructure = {
|
|
5
|
+
toc: []
|
|
6
|
+
};
|
|
7
|
+
// Add Getting Started section
|
|
8
|
+
tocStructure.toc.push({
|
|
9
|
+
group: "Getting Started",
|
|
10
|
+
items: [
|
|
11
|
+
{
|
|
12
|
+
generate: "How to Get Started",
|
|
13
|
+
from: "getting-started"
|
|
14
|
+
}
|
|
15
|
+
]
|
|
16
|
+
});
|
|
17
|
+
// Add content groups
|
|
18
|
+
if (contentGroups.length > 0) {
|
|
19
|
+
tocStructure.toc.push(...contentGroups);
|
|
20
|
+
}
|
|
21
|
+
// Add API Endpoints section
|
|
22
|
+
if (!expandEndpoints || endpointGroups.size === 0) {
|
|
23
|
+
tocStructure.toc.push({
|
|
24
|
+
generate: "API Endpoints",
|
|
25
|
+
from: "endpoints"
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
tocStructure.toc.push({
|
|
30
|
+
group: "API Endpoints",
|
|
31
|
+
items: Array.from(endpointGroups).map(([groupName, endpoints]) => ({
|
|
32
|
+
group: groupName,
|
|
33
|
+
items: [
|
|
34
|
+
{
|
|
35
|
+
generate: null,
|
|
36
|
+
from: "endpoint-group-overview",
|
|
37
|
+
endpointGroup: groupName
|
|
38
|
+
},
|
|
39
|
+
...endpoints
|
|
40
|
+
]
|
|
41
|
+
}))
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
// Add Models section
|
|
45
|
+
if (!expandModels || models.length === 0) {
|
|
46
|
+
tocStructure.toc.push({
|
|
47
|
+
generate: "Models",
|
|
48
|
+
from: "models"
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
tocStructure.toc.push({
|
|
53
|
+
group: "Models",
|
|
54
|
+
items: models
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
//Add Sdk Infra section
|
|
58
|
+
tocStructure.toc.push({
|
|
59
|
+
generate: "SDK Infrastructure",
|
|
60
|
+
from: "sdk-infra"
|
|
61
|
+
});
|
|
62
|
+
return tocStructure;
|
|
63
|
+
}
|
|
64
|
+
transformToYaml(toc) {
|
|
65
|
+
const transformedToc = this.transformKeys(toc);
|
|
66
|
+
return stringify(transformedToc, {
|
|
67
|
+
indent: 2,
|
|
68
|
+
nullStr: ""
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
transformKeys(obj) {
|
|
72
|
+
if (Array.isArray(obj)) {
|
|
73
|
+
return obj.map((item) => this.transformKeys(item));
|
|
74
|
+
}
|
|
75
|
+
if (obj !== null && typeof obj === "object") {
|
|
76
|
+
return Object.fromEntries(Object.entries(obj).map(([key, value]) => [
|
|
77
|
+
key.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(),
|
|
78
|
+
this.transformKeys(value)
|
|
79
|
+
]));
|
|
80
|
+
}
|
|
81
|
+
return obj;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=toc-structure-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toc-structure-generator.js","sourceRoot":"","sources":["../../../../src/application/portal/toc/toc-structure-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,33 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.setAuthInfo = exports.getAuthInfo = void 0;
|
|
4
|
-
const path = require("path");
|
|
5
|
-
const fs = require("fs-extra");
|
|
1
|
+
import * as path from "path";
|
|
2
|
+
import fsExtra from "fs-extra";
|
|
6
3
|
/**
|
|
7
4
|
*
|
|
8
5
|
* @param {string} configDir <- Directory with user configuration
|
|
9
6
|
* //Function to get credentials
|
|
10
7
|
*/
|
|
11
|
-
async function getAuthInfo(configDir) {
|
|
8
|
+
export async function getAuthInfo(configDir) {
|
|
12
9
|
try {
|
|
13
|
-
const data = JSON.parse(await
|
|
10
|
+
const data = JSON.parse(await fsExtra.readFile(path.join(configDir, "config.json"), "utf8"));
|
|
14
11
|
return data;
|
|
15
12
|
}
|
|
16
13
|
catch (e) {
|
|
17
14
|
return null;
|
|
18
15
|
}
|
|
19
16
|
}
|
|
20
|
-
exports.getAuthInfo = getAuthInfo;
|
|
21
17
|
/**
|
|
22
18
|
*
|
|
23
19
|
* @param {AuthInfo} credentials
|
|
24
20
|
* @param {string} configDir <- Directory with user configuration
|
|
25
21
|
* //Function to set credentials.
|
|
26
22
|
*/
|
|
27
|
-
async function setAuthInfo(credentials, configDir) {
|
|
23
|
+
export async function setAuthInfo(credentials, configDir) {
|
|
28
24
|
const configFilePath = path.join(configDir, "config.json");
|
|
29
|
-
if (!
|
|
30
|
-
|
|
31
|
-
return await
|
|
25
|
+
if (!fsExtra.existsSync(configFilePath))
|
|
26
|
+
fsExtra.createFileSync(configFilePath);
|
|
27
|
+
return await fsExtra.writeFile(configFilePath, JSON.stringify(credentials));
|
|
32
28
|
}
|
|
33
|
-
|
|
29
|
+
//# sourceMappingURL=auth-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-manager.js","sourceRoot":"","sources":["../../src/client-utils/auth-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,OAAO,MAAM,UAAU,CAAC;AAM/B;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,SAAiB;IACjD,IAAI,CAAC;QACH,MAAM,IAAI,GAAoB,IAAI,CAAC,KAAK,CAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9G,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,WAAqB,EAAE,SAAiB;IACxE,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAE3D,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC;QAAE,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IAEhF,OAAO,MAAM,OAAO,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;AAC9E,CAAC"}
|
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const env_1 = require("../config/env");
|
|
8
|
-
const auth_manager_1 = require("./auth-manager");
|
|
9
|
-
class SDKClient {
|
|
1
|
+
import base64 from "base-64";
|
|
2
|
+
import axios from "axios";
|
|
3
|
+
import { Client } from "@apimatic/sdk";
|
|
4
|
+
import { baseURL } from "../config/env.js";
|
|
5
|
+
import { setAuthInfo, getAuthInfo } from "./auth-manager.js";
|
|
6
|
+
export class SDKClient {
|
|
10
7
|
constructor() {
|
|
11
8
|
this.setAuthKey = (authKey, configDir) => {
|
|
12
|
-
|
|
9
|
+
setAuthInfo({
|
|
13
10
|
email: "",
|
|
14
11
|
authKey
|
|
15
12
|
}, configDir);
|
|
@@ -33,7 +30,7 @@ class SDKClient {
|
|
|
33
30
|
* executed on its instance.
|
|
34
31
|
*/
|
|
35
32
|
async login(email, password, configDir) {
|
|
36
|
-
let storedAuthInfo = await
|
|
33
|
+
let storedAuthInfo = await getAuthInfo(configDir);
|
|
37
34
|
// If no config file or no credentials exist in the config file
|
|
38
35
|
if (!storedAuthInfo) {
|
|
39
36
|
storedAuthInfo = { email: "", authKey: "" };
|
|
@@ -41,7 +38,7 @@ class SDKClient {
|
|
|
41
38
|
const credentials = { email, password };
|
|
42
39
|
const authKey = await this.getAuthKey(credentials);
|
|
43
40
|
if (storedAuthInfo.email !== email) {
|
|
44
|
-
|
|
41
|
+
setAuthInfo({
|
|
45
42
|
email,
|
|
46
43
|
authKey
|
|
47
44
|
}, configDir);
|
|
@@ -51,7 +48,7 @@ class SDKClient {
|
|
|
51
48
|
return "Already logged in";
|
|
52
49
|
}
|
|
53
50
|
else {
|
|
54
|
-
|
|
51
|
+
setAuthInfo({
|
|
55
52
|
email,
|
|
56
53
|
authKey
|
|
57
54
|
}, configDir);
|
|
@@ -59,7 +56,7 @@ class SDKClient {
|
|
|
59
56
|
}
|
|
60
57
|
}
|
|
61
58
|
async logout(configDir) {
|
|
62
|
-
|
|
59
|
+
setAuthInfo({
|
|
63
60
|
email: "",
|
|
64
61
|
authKey: ""
|
|
65
62
|
}, configDir);
|
|
@@ -67,7 +64,7 @@ class SDKClient {
|
|
|
67
64
|
}
|
|
68
65
|
async status(configDir) {
|
|
69
66
|
try {
|
|
70
|
-
let storedAuthInfo = await
|
|
67
|
+
let storedAuthInfo = await getAuthInfo(configDir);
|
|
71
68
|
if (!storedAuthInfo) {
|
|
72
69
|
// If no config file or no credentials exist in the config file
|
|
73
70
|
storedAuthInfo = { email: "", authKey: "" };
|
|
@@ -84,20 +81,24 @@ class SDKClient {
|
|
|
84
81
|
}
|
|
85
82
|
async getClient(overrideAuthKey, configDir) {
|
|
86
83
|
if (overrideAuthKey) {
|
|
87
|
-
return new
|
|
84
|
+
return new Client({
|
|
88
85
|
timeout: 0,
|
|
89
|
-
|
|
86
|
+
customHeaderAuthenticationCredentials: {
|
|
87
|
+
Authorization: `X-Auth-Key ${overrideAuthKey}`
|
|
88
|
+
}
|
|
90
89
|
});
|
|
91
90
|
}
|
|
92
|
-
let storedAuthInfo = await
|
|
91
|
+
let storedAuthInfo = await getAuthInfo(configDir);
|
|
93
92
|
if (!storedAuthInfo) {
|
|
94
93
|
// If no config file or no credentials exist in the config file
|
|
95
94
|
storedAuthInfo = { email: "", authKey: "" };
|
|
96
95
|
}
|
|
97
96
|
if (storedAuthInfo.authKey !== "") {
|
|
98
|
-
return new
|
|
97
|
+
return new Client({
|
|
99
98
|
timeout: 0,
|
|
100
|
-
|
|
99
|
+
customHeaderAuthenticationCredentials: {
|
|
100
|
+
Authorization: `X-Auth-Key ${storedAuthInfo.authKey}`
|
|
101
|
+
}
|
|
101
102
|
});
|
|
102
103
|
}
|
|
103
104
|
else {
|
|
@@ -110,10 +111,10 @@ class SDKClient {
|
|
|
110
111
|
Authorization: `Basic ${base64.encode(`${credentials.email}:${credentials.password}`)}`
|
|
111
112
|
}
|
|
112
113
|
};
|
|
113
|
-
const response = await
|
|
114
|
+
const response = await axios.get(SDKClient.authAPI, config);
|
|
114
115
|
const authKey = response.data.EncryptedValue;
|
|
115
116
|
return authKey;
|
|
116
117
|
}
|
|
117
118
|
}
|
|
118
|
-
|
|
119
|
-
|
|
119
|
+
SDKClient.authAPI = `${baseURL}/account/authkey`;
|
|
120
|
+
//# sourceMappingURL=sdk-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk-client.js","sourceRoot":"","sources":["../../src/client-utils/sdk-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Command } from "@oclif/core";
|
|
2
2
|
export default class Transform extends Command {
|
|
3
3
|
static description: string;
|
|
4
4
|
static examples: string[];
|
|
5
5
|
static flags: {
|
|
6
|
-
format:
|
|
7
|
-
file:
|
|
8
|
-
url:
|
|
9
|
-
destination:
|
|
10
|
-
force: import("@oclif/
|
|
11
|
-
"auth-key":
|
|
6
|
+
format: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
7
|
+
file: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
|
+
url: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
|
+
destination: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
|
+
force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
11
|
+
"auth-key": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
12
|
};
|
|
13
13
|
run(): Promise<void>;
|
|
14
14
|
}
|
|
@@ -1,44 +1,43 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
class Transform extends command_1.Command {
|
|
1
|
+
var _a;
|
|
2
|
+
import * as path from "path";
|
|
3
|
+
import fsExtra from "fs-extra";
|
|
4
|
+
import { Flags, Command } from "@oclif/core";
|
|
5
|
+
import { TransformationController } from "@apimatic/sdk";
|
|
6
|
+
import { SDKClient } from "../../client-utils/sdk-client.js";
|
|
7
|
+
import { printValidationMessages } from "../../utils/utils.js";
|
|
8
|
+
import { getFileNameFromPath, replaceHTML } from "../../utils/utils.js";
|
|
9
|
+
import { DestinationFormats, TransformationFormats } from "../../types/api/transform.js";
|
|
10
|
+
import { getValidFormat, getTransformationId, downloadTransformationFile } from "../../controllers/api/transform.js";
|
|
11
|
+
const formats = Object.keys(TransformationFormats).join("|");
|
|
12
|
+
class Transform extends Command {
|
|
14
13
|
async run() {
|
|
15
|
-
const { flags } = this.parse(
|
|
16
|
-
const fileName = flags.file ?
|
|
17
|
-
const destinationFormat =
|
|
14
|
+
const { flags } = await this.parse(_a);
|
|
15
|
+
const fileName = flags.file ? getFileNameFromPath(flags.file) : getFileNameFromPath(flags.url);
|
|
16
|
+
const destinationFormat = DestinationFormats[flags.format];
|
|
18
17
|
const destinationFilePath = path.join(flags.destination, `${fileName}_${flags.format}.${destinationFormat}`.toLowerCase());
|
|
19
18
|
// Check if destination file already exist and throw error if force flag is not set
|
|
20
|
-
if (
|
|
19
|
+
if (fsExtra.existsSync(destinationFilePath) && !flags.force) {
|
|
21
20
|
throw new Error(`Can't download transformed file to path ${destinationFilePath}, because it already exists`);
|
|
22
21
|
}
|
|
23
22
|
try {
|
|
24
23
|
// Check if paths provided are valid
|
|
25
|
-
if (flags.file && !(await
|
|
24
|
+
if (flags.file && !(await fsExtra.pathExists(flags.file))) {
|
|
26
25
|
throw new Error(`Transformation file: ${flags.file} does not exist`);
|
|
27
26
|
}
|
|
28
|
-
else if (!(await
|
|
27
|
+
else if (!(await fsExtra.pathExists(flags.destination))) {
|
|
29
28
|
throw new Error(`Destination path: ${flags.destination} does not exist`);
|
|
30
29
|
}
|
|
31
30
|
const overrideAuthKey = flags["auth-key"] ? flags["auth-key"] : null;
|
|
32
|
-
const client = await
|
|
33
|
-
const transformationController = new
|
|
34
|
-
const { id, apiValidationSummary } = await
|
|
31
|
+
const client = await SDKClient.getInstance().getClient(overrideAuthKey, this.config.configDir);
|
|
32
|
+
const transformationController = new TransformationController(client);
|
|
33
|
+
const { id, apiValidationSummary } = await getTransformationId(flags, transformationController);
|
|
35
34
|
const logFunctions = {
|
|
36
|
-
log: this.log,
|
|
37
|
-
warn: this.warn,
|
|
38
|
-
error: this.error
|
|
35
|
+
log: (message) => this.log(message),
|
|
36
|
+
warn: (message) => this.warn(message),
|
|
37
|
+
error: (message) => this.error(message)
|
|
39
38
|
};
|
|
40
|
-
|
|
41
|
-
const savedTransformationFile = await
|
|
39
|
+
printValidationMessages(apiValidationSummary, logFunctions);
|
|
40
|
+
const savedTransformationFile = await downloadTransformationFile({
|
|
42
41
|
id,
|
|
43
42
|
destinationFilePath,
|
|
44
43
|
transformationController
|
|
@@ -52,19 +51,22 @@ class Transform extends command_1.Command {
|
|
|
52
51
|
// updated to throw the right exception type for this status code.
|
|
53
52
|
const result = apiError.result;
|
|
54
53
|
if (apiError.statusCode === 422 && result && "errors" in result && Array.isArray(result.errors)) {
|
|
55
|
-
this.error(
|
|
54
|
+
this.error(replaceHTML(`${result.errors}`));
|
|
56
55
|
}
|
|
57
56
|
else if (apiError.statusCode === 422 && apiError.body && typeof apiError.body === "string") {
|
|
58
57
|
this.error(JSON.parse(apiError.body)["dto.FileUrl"][0]);
|
|
59
58
|
}
|
|
60
59
|
else if (apiError.statusCode === 401 && apiError.body && typeof apiError.body === "string") {
|
|
61
|
-
this.error(
|
|
60
|
+
this.error("You are not authorized to perform this action");
|
|
62
61
|
}
|
|
63
62
|
else if (apiError.statusCode === 500) {
|
|
64
63
|
this.error(apiError.message);
|
|
65
64
|
}
|
|
66
65
|
}
|
|
67
|
-
else if (error.statusCode === 401
|
|
66
|
+
else if (error.statusCode === 401) {
|
|
67
|
+
this.error("You are not authorized to perform this action");
|
|
68
|
+
}
|
|
69
|
+
else if (error.statusCode === 402 &&
|
|
68
70
|
error.body &&
|
|
69
71
|
typeof error.body === "string") {
|
|
70
72
|
this.error(error.body);
|
|
@@ -75,7 +77,7 @@ class Transform extends command_1.Command {
|
|
|
75
77
|
}
|
|
76
78
|
}
|
|
77
79
|
}
|
|
78
|
-
|
|
80
|
+
_a = Transform;
|
|
79
81
|
Transform.description = `Transform API specifications from one format to another. Supports [10+ different formats](https://www.apimatic.io/transformer/#supported-formats) including OpenApi/Swagger, RAML, WSDL and Postman Collections.`;
|
|
80
82
|
Transform.examples = [
|
|
81
83
|
`$ apimatic api:transform --format="OpenApi3Json" --file="./specs/sample.json" --destination="D:/"
|
|
@@ -86,26 +88,28 @@ Success! Your transformed file is located at D:/swagger_raml.yaml
|
|
|
86
88
|
`
|
|
87
89
|
];
|
|
88
90
|
Transform.flags = {
|
|
89
|
-
format:
|
|
90
|
-
parse: (format) =>
|
|
91
|
+
format: Flags.string({
|
|
92
|
+
parse: async (format) => getValidFormat(format),
|
|
91
93
|
required: true,
|
|
92
94
|
description: `specification format to transform API specification into
|
|
93
95
|
${formats}`
|
|
94
96
|
}),
|
|
95
|
-
file:
|
|
96
|
-
parse: (input) => path.resolve(input),
|
|
97
|
+
file: Flags.string({
|
|
98
|
+
parse: async (input) => path.resolve(input),
|
|
97
99
|
default: "",
|
|
98
100
|
description: "path to the API specification file to transform"
|
|
99
101
|
}),
|
|
100
|
-
url:
|
|
102
|
+
url: Flags.string({
|
|
101
103
|
default: "",
|
|
102
104
|
description: "URL to the API specification file to transform. Can be used in place of the --file option if the API specification is publicly available."
|
|
103
105
|
}),
|
|
104
|
-
destination:
|
|
105
|
-
parse: (input) => path.resolve(input),
|
|
106
|
+
destination: Flags.string({
|
|
107
|
+
parse: async (input) => path.resolve(input),
|
|
106
108
|
default: path.resolve("./"),
|
|
107
109
|
description: "directory to download transformed file to"
|
|
108
110
|
}),
|
|
109
|
-
force:
|
|
110
|
-
"auth-key":
|
|
111
|
+
force: Flags.boolean({ char: "f", default: false, description: "overwrite if same file exist in the destination" }),
|
|
112
|
+
"auth-key": Flags.string({ description: "override current authentication state with an authentication key" })
|
|
111
113
|
};
|
|
114
|
+
export default Transform;
|
|
115
|
+
//# sourceMappingURL=transform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../src/commands/api/transform.ts"],"names":[],"mappings":"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"}
|