@appland/appmap 3.7.4 → 3.10.1
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/CHANGELOG.md +24 -0
- package/built/appmap.html +1 -1
- package/built/main.js.map +1 -1
- package/built/package.json +6 -1
- package/built/src/cli.js +4 -12
- package/built/src/cli.js.map +1 -1
- package/built/src/cmds/agentInstaller/agentInstallerProcedure.js +14 -67
- package/built/src/cmds/agentInstaller/agentInstallerProcedure.js.map +1 -1
- package/built/src/cmds/agentInstaller/agentProcedure.js +143 -0
- package/built/src/cmds/agentInstaller/agentProcedure.js.map +1 -0
- package/built/src/cmds/agentInstaller/agentStatusProcedure.js +27 -0
- package/built/src/cmds/agentInstaller/agentStatusProcedure.js.map +1 -0
- package/built/src/cmds/agentInstaller/commandRunner.js +4 -2
- package/built/src/cmds/agentInstaller/commandRunner.js.map +1 -1
- package/built/src/cmds/agentInstaller/gradleInstaller.js +8 -5
- package/built/src/cmds/agentInstaller/gradleInstaller.js.map +1 -1
- package/built/src/cmds/agentInstaller/gradleParser.js +29 -25
- package/built/src/cmds/agentInstaller/gradleParser.js.map +1 -1
- package/built/src/cmds/agentInstaller/install-agent.js +7 -3
- package/built/src/cmds/agentInstaller/install-agent.js.map +1 -1
- package/built/src/cmds/agentInstaller/status.js +52 -0
- package/built/src/cmds/agentInstaller/status.js.map +1 -0
- package/built/src/openapi/command.js +114 -0
- package/built/src/openapi/command.js.map +1 -0
- package/built/src/{swagger → openapi}/method.js +7 -7
- package/built/src/{swagger → openapi}/method.js.map +1 -1
- package/built/src/{swagger → openapi}/model.js +3 -3
- package/built/src/{swagger → openapi}/model.js.map +1 -1
- package/built/src/{swagger → openapi}/path.js +2 -2
- package/built/src/{swagger → openapi}/path.js.map +1 -1
- package/built/src/{swagger → openapi}/response.js +1 -1
- package/built/src/{swagger → openapi}/response.js.map +1 -1
- package/built/src/{swagger → openapi}/schema.js +2 -2
- package/built/src/{swagger → openapi}/schema.js.map +1 -1
- package/built/src/{swagger → openapi}/securitySchemes.js +1 -1
- package/built/src/{swagger → openapi}/securitySchemes.js.map +1 -1
- package/built/src/{swagger → openapi}/settings.js +0 -0
- package/built/src/{swagger → openapi}/settings.js.map +1 -1
- package/built/src/{swagger → openapi}/util.js +5 -5
- package/built/src/{swagger → openapi}/util.js.map +1 -1
- package/built/src/service/config/validator.js +30 -0
- package/built/src/service/config/validator.js.map +1 -0
- package/package.json +7 -2
- package/built/src/swagger/command.js +0 -38
- package/built/src/swagger/command.js.map +0 -1
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.GradleParser =
|
|
6
|
+
exports.GradleParser = void 0;
|
|
7
7
|
const moo_1 = __importDefault(require("moo"));
|
|
8
8
|
class SourceOffsets {
|
|
9
9
|
constructor(blockName, lbrace) {
|
|
@@ -15,24 +15,25 @@ class SourceOffsets {
|
|
|
15
15
|
this.rbrace = -1;
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
35
|
-
|
|
18
|
+
// These are the names blocks that can contain "repositories" blocks:
|
|
19
|
+
var RepositoriesContainers;
|
|
20
|
+
(function (RepositoriesContainers) {
|
|
21
|
+
RepositoriesContainers["buildscript"] = "buildscript";
|
|
22
|
+
RepositoriesContainers["allprojects"] = "allprojects";
|
|
23
|
+
RepositoriesContainers["subprojects"] = "subprojects";
|
|
24
|
+
})(RepositoriesContainers || (RepositoriesContainers = {}));
|
|
25
|
+
;
|
|
26
|
+
const REPOSITORIES_CONTAINERS = Object.values(RepositoriesContainers);
|
|
27
|
+
// These are the names of the other blocks we care about:
|
|
28
|
+
var OtherContainers;
|
|
29
|
+
(function (OtherContainers) {
|
|
30
|
+
OtherContainers["repositories"] = "repositories";
|
|
31
|
+
OtherContainers["plugins"] = "plugins";
|
|
32
|
+
})(OtherContainers || (OtherContainers = {}));
|
|
33
|
+
;
|
|
34
|
+
const keywords = Object.assign(Object.assign({}, RepositoriesContainers), OtherContainers);
|
|
35
|
+
const KEYWORDS = Object.values(keywords);
|
|
36
|
+
;
|
|
36
37
|
class GradleParser {
|
|
37
38
|
constructor() {
|
|
38
39
|
this.debug = 0;
|
|
@@ -45,7 +46,7 @@ class GradleParser {
|
|
|
45
46
|
parse(src) {
|
|
46
47
|
const lexer = moo_1.default.states({
|
|
47
48
|
gradle: {
|
|
48
|
-
keyword:
|
|
49
|
+
keyword: KEYWORDS,
|
|
49
50
|
mavenCentral: 'mavenCentral',
|
|
50
51
|
comment: { match: /\/\/.*?\n/, lineBreaks: true },
|
|
51
52
|
multicomment: /\/\*[^]*?\*\//,
|
|
@@ -71,7 +72,10 @@ class GradleParser {
|
|
|
71
72
|
let startBlock = null;
|
|
72
73
|
const blockStack = [];
|
|
73
74
|
lexer.reset(src);
|
|
74
|
-
let result =
|
|
75
|
+
let result = {
|
|
76
|
+
startOffset: -1,
|
|
77
|
+
mavenPresent: false
|
|
78
|
+
};
|
|
75
79
|
// eslint-disable-next-line no-cond-assign
|
|
76
80
|
/* eslint-disable no-continue */
|
|
77
81
|
/* eslint-disable no-plusplus */
|
|
@@ -95,7 +99,7 @@ class GradleParser {
|
|
|
95
99
|
}
|
|
96
100
|
// We're only interested in the repositories block if it's not within
|
|
97
101
|
// the buildscript block.
|
|
98
|
-
const inBuildscript = blockStack.length === 1 && blockStack[0].blockName
|
|
102
|
+
const inBuildscript = blockStack.length === 1 && REPOSITORIES_CONTAINERS.includes(blockStack[0].blockName);
|
|
99
103
|
if (t.value !== 'repositories' || !inBuildscript) {
|
|
100
104
|
startBlock = t.value;
|
|
101
105
|
continue;
|
|
@@ -145,13 +149,13 @@ class GradleParser {
|
|
|
145
149
|
return result;
|
|
146
150
|
}
|
|
147
151
|
checkSyntax(parseResult) {
|
|
148
|
-
|
|
149
|
-
|
|
152
|
+
KEYWORDS.forEach((k) => {
|
|
153
|
+
var _a;
|
|
154
|
+
if (((_a = parseResult[k]) === null || _a === void 0 ? void 0 : _a.rbrace) === -1) {
|
|
150
155
|
throw new Error(`parse failed, ${JSON.stringify(parseResult, null, 2)}`);
|
|
151
156
|
}
|
|
152
157
|
});
|
|
153
158
|
}
|
|
154
159
|
}
|
|
155
160
|
exports.GradleParser = GradleParser;
|
|
156
|
-
GradleParser.keywords = ['buildscript', 'repositories', 'plugins'];
|
|
157
161
|
//# sourceMappingURL=gradleParser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gradleParser.js","sourceRoot":"","sources":["../../../../src/cmds/agentInstaller/gradleParser.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAsB;AAEtB,MAAM,aAAa;IAKjB,YAAqB,SAAiB,EAAW,MAAc;QAA1C,cAAS,GAAT,SAAS,CAAQ;QAAW,WAAM,GAAN,MAAM,CAAQ;QAJ/D,aAAQ,GAAW,CAAC,CAAC;QACrB,6EAA6E;QAC7E,UAAU;QACV,WAAM,GAAW,CAAC,CAAC,CAAC;IAC8C,CAAC;CACpE;AAED
|
|
1
|
+
{"version":3,"file":"gradleParser.js","sourceRoot":"","sources":["../../../../src/cmds/agentInstaller/gradleParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.INSTALLERS = void 0;
|
|
6
7
|
const fs_1 = require("fs");
|
|
7
8
|
const yargs_1 = __importDefault(require("yargs"));
|
|
8
9
|
const path_1 = require("path");
|
|
@@ -17,7 +18,7 @@ const mavenInstaller_1 = __importDefault(require("./mavenInstaller"));
|
|
|
17
18
|
const gradleInstaller_1 = __importDefault(require("./gradleInstaller"));
|
|
18
19
|
const pythonAgentInstaller_1 = require("./pythonAgentInstaller");
|
|
19
20
|
const rubyAgentInstaller_1 = require("./rubyAgentInstaller");
|
|
20
|
-
|
|
21
|
+
exports.INSTALLERS = [
|
|
21
22
|
rubyAgentInstaller_1.BundleInstaller,
|
|
22
23
|
mavenInstaller_1.default,
|
|
23
24
|
gradleInstaller_1.default,
|
|
@@ -32,7 +33,7 @@ exports.default = {
|
|
|
32
33
|
// FIXME: This method takes advantage of the fact that each implementation returns a static string
|
|
33
34
|
// as the installer name. In the future, this may not be the case. After all, `name` is a non-static
|
|
34
35
|
// getter.
|
|
35
|
-
const installerNames = INSTALLERS.map((installer) => chalk_1.default.blue(installer.prototype.name)).join(', ');
|
|
36
|
+
const installerNames = exports.INSTALLERS.map((installer) => chalk_1.default.blue(installer.prototype.name)).join(', ');
|
|
36
37
|
args.option('project-type', {
|
|
37
38
|
describe: [
|
|
38
39
|
'Specifies the installation target. This may be a language or project framework. Case-insensitive.',
|
|
@@ -50,11 +51,14 @@ exports.default = {
|
|
|
50
51
|
},
|
|
51
52
|
async handler(args) {
|
|
52
53
|
var _a, _b;
|
|
54
|
+
telemetry_1.default.sendEvent({
|
|
55
|
+
name: 'install-agent:start',
|
|
56
|
+
});
|
|
53
57
|
const { projectType, directory, verbose: isVerbose } = args;
|
|
54
58
|
const startTime = Date.now();
|
|
55
59
|
const endTime = () => (Date.now() - startTime) / 1000;
|
|
56
60
|
let installer;
|
|
57
|
-
const installers = INSTALLERS.map((constructor) => new constructor(directory));
|
|
61
|
+
const installers = exports.INSTALLERS.map((constructor) => new constructor(directory));
|
|
58
62
|
utils_1.verbose(isVerbose);
|
|
59
63
|
try {
|
|
60
64
|
const installProcedure = new agentInstallerProcedure_1.default(installers, directory);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-agent.js","sourceRoot":"","sources":["../../../../src/cmds/agentInstaller/install-agent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"install-agent.js","sourceRoot":"","sources":["../../../../src/cmds/agentInstaller/install-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const yargs_1 = __importDefault(require("yargs"));
|
|
7
|
+
const utils_1 = require("../../utils");
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const userInteraction_1 = __importDefault(require("../userInteraction"));
|
|
10
|
+
const install_agent_1 = require("./install-agent");
|
|
11
|
+
const agentStatusProcedure_1 = __importDefault(require("./agentStatusProcedure"));
|
|
12
|
+
exports.default = {
|
|
13
|
+
command: 'status [directory]',
|
|
14
|
+
aliases: ['s'],
|
|
15
|
+
describe: 'Check the status of the current project for the AppMap language agent',
|
|
16
|
+
builder(args) {
|
|
17
|
+
// FIXME: This method takes advantage of the fact that each implementation returns a static string
|
|
18
|
+
// as the installer name. In the future, this may not be the case. After all, `name` is a non-static
|
|
19
|
+
// getter.
|
|
20
|
+
const installerNames = install_agent_1.INSTALLERS.map((installer) => chalk_1.default.blue(installer.prototype.name)).join(', ');
|
|
21
|
+
args.option('project-type', {
|
|
22
|
+
describe: [
|
|
23
|
+
'Specifies the status target. This may be a language or project framework. Case-insensitive.',
|
|
24
|
+
`Supported project types: ${installerNames}`,
|
|
25
|
+
].join('\n'),
|
|
26
|
+
type: 'string',
|
|
27
|
+
default: undefined,
|
|
28
|
+
alias: 'p',
|
|
29
|
+
});
|
|
30
|
+
args.positional('directory', {
|
|
31
|
+
describe: 'directory to check',
|
|
32
|
+
default: '.',
|
|
33
|
+
});
|
|
34
|
+
return args.strict();
|
|
35
|
+
},
|
|
36
|
+
async handler(args) {
|
|
37
|
+
const { projectType, directory, verbose: isVerbose } = args;
|
|
38
|
+
let installer;
|
|
39
|
+
const installers = install_agent_1.INSTALLERS.map((constructor) => new constructor(directory));
|
|
40
|
+
utils_1.verbose(isVerbose);
|
|
41
|
+
try {
|
|
42
|
+
const statusProcedure = new agentStatusProcedure_1.default(installers, directory);
|
|
43
|
+
await statusProcedure.run();
|
|
44
|
+
}
|
|
45
|
+
catch (e) {
|
|
46
|
+
const err = e;
|
|
47
|
+
userInteraction_1.default.error(err.message);
|
|
48
|
+
yargs_1.default.exit(1, err);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../../src/cmds/agentInstaller/status.ts"],"names":[],"mappings":";;;;;AACA,kDAA0B;AAQ1B,uCAAsC;AAEtC,kDAA0B;AAC1B,yEAAoC;AAQpC,mDAA6C;AAC7C,kFAA0D;AAQ1D,kBAAe;IACb,OAAO,EAAE,oBAAoB;IAC7B,OAAO,EAAE,CAAC,GAAG,CAAC;IACd,QAAQ,EAAE,uEAAuE;IACjF,OAAO,CAAC,IAAgB;QACtB,kGAAkG;QAClG,oGAAoG;QACpG,UAAU;QACV,MAAM,cAAc,GAAG,0BAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAClD,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CACrC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;YAC1B,QAAQ,EAAE;gBACR,6FAA6F;gBAC7F,4BAA4B,cAAc,EAAE;aAC7C,CAAC,IAAI,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,GAAG;SACX,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;YAC3B,QAAQ,EAAE,oBAAoB;YAC9B,OAAO,EAAE,GAAG;SACb,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAA2B;QACvC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAC5D,IAAI,SAAqC,CAAC;QAC1C,MAAM,UAAU,GAAG,0BAAU,CAAC,GAAG,CAC/B,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,SAAS,CAAC,CAC5C,CAAC;QAEF,eAAO,CAAC,SAAS,CAAC,CAAC;QAEnB,IAAI;YACF,MAAM,eAAe,GAAG,IAAI,8BAAoB,CAC9C,UAAU,EACV,SAAS,CACV,CAAC;YACF,MAAM,eAAe,CAAC,GAAG,EAAE,CAAC;SAC7B;QACD,OAAO,CAAC,EAAE;YACR,MAAM,GAAG,GAAG,CAAU,CAAC;YACvB,yBAAE,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACrB,eAAK,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SACpB;IACH,CAAC;CACF,CAAA"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const path_1 = require("path");
|
|
4
|
+
const utils_1 = require("../utils");
|
|
5
|
+
const { promises: fsp } = require('fs');
|
|
6
|
+
const { queue } = require('async');
|
|
7
|
+
const { glob } = require('glob');
|
|
8
|
+
const yaml = require('js-yaml');
|
|
9
|
+
const { parseHTTPServerRequests } = require('./util');
|
|
10
|
+
const Model = require('./model');
|
|
11
|
+
class OpenAPICommand {
|
|
12
|
+
constructor(directory) {
|
|
13
|
+
this.directory = directory;
|
|
14
|
+
}
|
|
15
|
+
async execute() {
|
|
16
|
+
this.count = 0;
|
|
17
|
+
this.model = new Model();
|
|
18
|
+
const q = queue(this.collectAppMap.bind(this), 5);
|
|
19
|
+
q.pause();
|
|
20
|
+
const files = await new Promise((resolve, reject) => {
|
|
21
|
+
glob(`${this.directory}/**/*.appmap.json`, (err, globFiles) => {
|
|
22
|
+
if (err) {
|
|
23
|
+
return reject(err);
|
|
24
|
+
}
|
|
25
|
+
return resolve(globFiles);
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
files.forEach((f) => q.push(f));
|
|
29
|
+
await new Promise((resolve, reject) => {
|
|
30
|
+
q.drain(resolve);
|
|
31
|
+
q.error(reject);
|
|
32
|
+
q.resume();
|
|
33
|
+
});
|
|
34
|
+
return this.model.openapi();
|
|
35
|
+
}
|
|
36
|
+
async collectAppMap(file) {
|
|
37
|
+
this.count += 1;
|
|
38
|
+
parseHTTPServerRequests(JSON.parse(await fsp.readFile(file)), (e) => this.model.addRequest(e));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
async function loadTemplate(fileName) {
|
|
42
|
+
if (!fileName) {
|
|
43
|
+
// eslint-disable-next-line no-param-reassign
|
|
44
|
+
fileName = path_1.join(__dirname, '../../resources/openapi-template.yaml');
|
|
45
|
+
}
|
|
46
|
+
return yaml.load((await fsp.readFile(fileName)).toString());
|
|
47
|
+
}
|
|
48
|
+
module.exports = {
|
|
49
|
+
command: 'openapi',
|
|
50
|
+
aliases: ['swagger'],
|
|
51
|
+
describe: 'Generate OpenAPI from AppMaps in a directory',
|
|
52
|
+
builder(args) {
|
|
53
|
+
args.option('appmap-dir', {
|
|
54
|
+
describe: 'directory to recursively inspect for AppMaps',
|
|
55
|
+
default: 'tmp/appmap',
|
|
56
|
+
});
|
|
57
|
+
args.option('output-file', {
|
|
58
|
+
alias: ['o'],
|
|
59
|
+
describe: 'output file name',
|
|
60
|
+
});
|
|
61
|
+
args.option('openapi-template', {
|
|
62
|
+
describe: 'template YAML; generated content will be placed in the paths and components sections',
|
|
63
|
+
});
|
|
64
|
+
args.option('openapi-title', {
|
|
65
|
+
describe: 'info/title field of the OpenAPI document',
|
|
66
|
+
});
|
|
67
|
+
args.option('openapi-version', {
|
|
68
|
+
describe: 'info/version field of the OpenAPI document',
|
|
69
|
+
});
|
|
70
|
+
return args.strict();
|
|
71
|
+
},
|
|
72
|
+
async handler(argv) {
|
|
73
|
+
utils_1.verbose(argv.verbose);
|
|
74
|
+
const { openapiTitle, openapiVersion } = argv;
|
|
75
|
+
function tryConfigure(path, fn) {
|
|
76
|
+
try {
|
|
77
|
+
fn();
|
|
78
|
+
}
|
|
79
|
+
catch (_a) {
|
|
80
|
+
console.warn(`Warning: unable to configure OpenAPI field ${path}`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
const openapi = await new OpenAPICommand(argv.appmapDir).execute();
|
|
84
|
+
const template = await loadTemplate(argv.openapiTemplate);
|
|
85
|
+
template.paths = openapi.paths;
|
|
86
|
+
template.components = openapi.components;
|
|
87
|
+
if (openapiTitle) {
|
|
88
|
+
tryConfigure('info.title', () => {
|
|
89
|
+
template.info.title = openapiTitle;
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
if (openapiVersion) {
|
|
93
|
+
tryConfigure('info.version', () => {
|
|
94
|
+
template.info.version = openapiVersion;
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
const fileContents = `# Generated by: @appland/appmap openapi
|
|
98
|
+
#
|
|
99
|
+
# Customize the title with: --openapi-title
|
|
100
|
+
# Customize the version with: --openapi-version
|
|
101
|
+
# Customize this entire template with: --openapi-template
|
|
102
|
+
#
|
|
103
|
+
# 'paths' and 'components' will be populated automatically.
|
|
104
|
+
${yaml.dump(template)}
|
|
105
|
+
`;
|
|
106
|
+
if (argv.outputFile) {
|
|
107
|
+
await fsp.writeFile(argv.outputFile, fileContents);
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
console.log(fileContents);
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
};
|
|
114
|
+
//# sourceMappingURL=command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/openapi/command.js"],"names":[],"mappings":"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"}
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
const { EventNavigator } = require('@appland/models');
|
|
3
3
|
const Response = require('./response');
|
|
4
4
|
const Schema = require('./schema');
|
|
5
|
-
const {
|
|
5
|
+
const { messageToOpenAPISchema, bestPathInfo } = require('./util');
|
|
6
6
|
const bodyParamMethods = new Set(['delete', 'put', 'post', 'patch']);
|
|
7
|
-
function
|
|
7
|
+
function openapiIn(event, name) {
|
|
8
8
|
const pathInfo = bestPathInfo(event.httpServerRequest);
|
|
9
9
|
// Trim format info from Rails paths, e.g. /foo/bar(.:format)
|
|
10
10
|
const tokens = pathInfo.split('/').map((token) => token.split('(')[0]);
|
|
11
|
-
// Recognize Rails-style normalized paths /org/:org_id and
|
|
11
|
+
// Recognize Rails-style normalized paths /org/:org_id and OpenAPI-style paths /org/{org_id}
|
|
12
12
|
if (tokens.includes(`:${name}`) || tokens.includes(`{${name}}`)) {
|
|
13
13
|
return 'path';
|
|
14
14
|
}
|
|
@@ -20,12 +20,12 @@ class Method {
|
|
|
20
20
|
this.responses = {};
|
|
21
21
|
this.events = [];
|
|
22
22
|
}
|
|
23
|
-
|
|
23
|
+
openapi() {
|
|
24
24
|
const responses = Object.keys(this.responses)
|
|
25
25
|
.sort()
|
|
26
26
|
.reduce((memo, response) => {
|
|
27
27
|
// eslint-disable-next-line no-param-reassign
|
|
28
|
-
memo[response] = this.responses[response].
|
|
28
|
+
memo[response] = this.responses[response].openapi();
|
|
29
29
|
return memo;
|
|
30
30
|
}, {});
|
|
31
31
|
let description;
|
|
@@ -85,7 +85,7 @@ class Method {
|
|
|
85
85
|
return;
|
|
86
86
|
}
|
|
87
87
|
uniqueNames.add(message.name);
|
|
88
|
-
const inLocation =
|
|
88
|
+
const inLocation = openapiIn(event, message.name);
|
|
89
89
|
if (inLocation !== 'path' &&
|
|
90
90
|
event.httpServerRequest.request_method &&
|
|
91
91
|
bodyParamMethods.has(event.httpServerRequest.request_method.toLowerCase())) {
|
|
@@ -97,7 +97,7 @@ class Method {
|
|
|
97
97
|
const parameter = {
|
|
98
98
|
name: message.name,
|
|
99
99
|
in: inLocation,
|
|
100
|
-
schema:
|
|
100
|
+
schema: messageToOpenAPISchema(message),
|
|
101
101
|
};
|
|
102
102
|
if (parameter.in === 'path') {
|
|
103
103
|
parameter.required = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"method.js","sourceRoot":"","sources":["../../../src/
|
|
1
|
+
{"version":3,"file":"method.js","sourceRoot":"","sources":["../../../src/openapi/method.js"],"names":[],"mappings":"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"}
|
|
@@ -7,15 +7,15 @@ class Model {
|
|
|
7
7
|
this.paths = {};
|
|
8
8
|
this.securitySchemes = new SecuritySchemes();
|
|
9
9
|
}
|
|
10
|
-
|
|
10
|
+
openapi() {
|
|
11
11
|
const paths = Object.keys(this.paths)
|
|
12
12
|
.sort()
|
|
13
13
|
.reduce((memo, path) => {
|
|
14
14
|
// eslint-disable-next-line no-param-reassign
|
|
15
|
-
memo[path] = this.paths[path].
|
|
15
|
+
memo[path] = this.paths[path].openapi();
|
|
16
16
|
return memo;
|
|
17
17
|
}, {});
|
|
18
|
-
const securitySchemes = this.securitySchemes.
|
|
18
|
+
const securitySchemes = this.securitySchemes.openapi();
|
|
19
19
|
return { paths, components: { securitySchemes } };
|
|
20
20
|
}
|
|
21
21
|
addRequest(event) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/openapi/model.js"],"names":[],"mappings":";AAAA,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC/B,MAAM,eAAe,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;AACrD,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAE3C,MAAM,KAAK;IACT;QACE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;IAC/C,CAAC;IAED,OAAO;QACL,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;aAClC,IAAI,EAAE;aACN,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;YACrB,6CAA6C;YAC7C,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC,EAAE,EAAE,CAAC,CAAC;QACT,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;QACvD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,eAAe,EAAE,EAAE,CAAC;IACpD,CAAC;IAED,UAAU,CAAC,KAAK;QACd,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,CAAC,IAAI,EAAE,KAAK;QACjB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACnD;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,KAAK;QACnB,MAAM,EAAE,iBAAiB,EAAE,GAAG,KAAK,CAAC;QACpC,IAAI,QAAQ,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC;QAC/C,gDAAgD;QAChD,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAC7C,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;gBACzB,6CAA6C;gBAC7C,KAAK,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;aACnC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;YACvC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACf;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;CACF;AAED,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC"}
|
|
@@ -5,12 +5,12 @@ class Path {
|
|
|
5
5
|
this.securitySchemes = securitySchemes;
|
|
6
6
|
this.methods = {};
|
|
7
7
|
}
|
|
8
|
-
|
|
8
|
+
openapi() {
|
|
9
9
|
return Object.keys(this.methods)
|
|
10
10
|
.sort()
|
|
11
11
|
.reduce((memo, method) => {
|
|
12
12
|
// eslint-disable-next-line no-param-reassign
|
|
13
|
-
memo[method] = this.methods[method].
|
|
13
|
+
memo[method] = this.methods[method].openapi();
|
|
14
14
|
return memo;
|
|
15
15
|
}, {});
|
|
16
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path.js","sourceRoot":"","sources":["../../../src/
|
|
1
|
+
{"version":3,"file":"path.js","sourceRoot":"","sources":["../../../src/openapi/path.js"],"names":[],"mappings":";AAAA,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEnC,MAAM,IAAI;IACR,YAAY,eAAe;QACzB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,OAAO;QACL,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;aAC7B,IAAI,EAAE;aACN,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YACvB,6CAA6C;YAC7C,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC;QACd,CAAC,EAAE,EAAE,CAAC,CAAC;IACX,CAAC;IAED,UAAU,CAAC,KAAK;QACd,MAAM,MAAM,GAAG,KAAK,CAAC,iBAAiB,CAAC,cAAc,CAAC;QACtD,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,SAAS,CAAC,MAAM,EAAE,KAAK;QACrB,6CAA6C;QAC7C,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACzB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACzD;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACvC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../../src/openapi/response.js"],"names":[],"mappings":";AAAA,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAEzC,MAAM,QAAQ;IACZ,YAAY,UAAU;QACpB,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,GAAG,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,OAAO;QACL,4CAA4C;QAC5C,MAAM,SAAS,GAAG,GAAG,EAAE;YACrB,OAAO,IAAI,CAAC,MAAM;iBACf,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,kBAAkB,CAAC,SAAS,CACjE;iBACA,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;aACtC,IAAI,EAAE;aACN,MAAM,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE;YACzB,6CAA6C;YAC7C,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC,EAAE,EAAE,CAAC,CAAC;QACT,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;IACjE,CAAC;IAED,UAAU,CAAC,KAAK;QACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;CACF;AAED,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
const {
|
|
2
|
+
const { messageToOpenAPISchema } = require('./util');
|
|
3
3
|
class Schema {
|
|
4
4
|
constructor() {
|
|
5
5
|
this.examples = [];
|
|
@@ -19,7 +19,7 @@ class Schema {
|
|
|
19
19
|
return;
|
|
20
20
|
}
|
|
21
21
|
// eslint-disable-next-line no-multi-assign
|
|
22
|
-
properties[message.name] =
|
|
22
|
+
properties[message.name] = messageToOpenAPISchema(message);
|
|
23
23
|
});
|
|
24
24
|
if (Object.keys(properties).length === 0) {
|
|
25
25
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/openapi/schema.js"],"names":[],"mappings":";AAAA,MAAM,EAAE,sBAAsB,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAErD,MAAM,MAAM;IACV;QACE,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,UAAU,CAAC,OAAO;QAChB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,MAAM;QACJ,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ;aACV,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aAC5C,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACnB,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC5B,OAAO;aACR;YACD,2CAA2C;YAC3C,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QACL,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YACxC,OAAO,IAAI,CAAC;SACb;QAED,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,UAAU;SACX,CAAC;IACJ,CAAC;CACF;AAED,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"securitySchemes.js","sourceRoot":"","sources":["../../../src/
|
|
1
|
+
{"version":3,"file":"securitySchemes.js","sourceRoot":"","sources":["../../../src/openapi/securitySchemes.js"],"names":[],"mappings":";AAAA,SAAS,WAAW,CAAC,aAAa;IAChC,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,OAAO;YACL,QAAQ,EAAE,SAAS;YACnB,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,eAAe;gBACrB,EAAE,EAAE,QAAQ;aACb;SACF,CAAC;KACH;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACzC,OAAO;QACL,QAAQ;QACR,MAAM,EAAE;YACN,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,QAAQ;SACjB;KACF,CAAC;AACJ,CAAC;AAED,MAAM,eAAe;IACnB;QACE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;IAED;;;;;;OAMG;IACH,UAAU,CAAC,KAAK;QACd,MAAM,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC,iBAAiB,CAAC;QAClD,IAAI,CAAC,aAAa,EAAE;YAClB,OAAO,IAAI,CAAC;SACb;QAED,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC3B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;SACjC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO;QACL,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;aAC7B,IAAI,EAAE;aACN,MAAM,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE;YACzB,6CAA6C;YAC7C,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC,EAAE,EAAE,CAAC,CAAC;IACX,CAAC;CACF;AAED,MAAM,CAAC,OAAO,GAAG,eAAe,CAAC"}
|
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/openapi/settings.js"],"names":[],"mappings":";AAAA,IAAI,SAAS,GAAG,KAAK,CAAC;AACtB,SAAS,OAAO,CAAC,CAAC,GAAG,IAAI;IACvB,IAAI,CAAC,KAAK,IAAI,EAAE;QACd,SAAS,GAAG,CAAC,CAAC;KACf;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,OAAO,GAAG,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const { buildAppMap } = require('@appland/models');
|
|
3
|
-
function
|
|
3
|
+
function classNameToOpenAPIType(className) {
|
|
4
4
|
let typeName = className;
|
|
5
5
|
if (!typeName || typeName === '') {
|
|
6
6
|
return 'unknown';
|
|
@@ -19,8 +19,8 @@ function classNameToSwaggerType(className) {
|
|
|
19
19
|
return typeName;
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
|
-
function
|
|
23
|
-
const type =
|
|
22
|
+
function messageToOpenAPISchema(message) {
|
|
23
|
+
const type = classNameToOpenAPIType(message.class);
|
|
24
24
|
const result = { type };
|
|
25
25
|
/*
|
|
26
26
|
if (message.value) {
|
|
@@ -43,7 +43,7 @@ function messageToSwaggerSchema(message) {
|
|
|
43
43
|
result.properties = message.properties.reduce((memo, msgProperty) => {
|
|
44
44
|
// eslint-disable-next-line no-param-reassign
|
|
45
45
|
memo[msgProperty.name] = {
|
|
46
|
-
type:
|
|
46
|
+
type: classNameToOpenAPIType(msgProperty.class),
|
|
47
47
|
};
|
|
48
48
|
return memo;
|
|
49
49
|
}, {});
|
|
@@ -65,7 +65,7 @@ function bestPathInfo(httpServerRequest) {
|
|
|
65
65
|
}
|
|
66
66
|
module.exports = {
|
|
67
67
|
bestPathInfo,
|
|
68
|
-
|
|
68
|
+
messageToOpenAPISchema,
|
|
69
69
|
parseHTTPServerRequests,
|
|
70
70
|
};
|
|
71
71
|
//# sourceMappingURL=util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/openapi/util.js"],"names":[],"mappings":";AAAA,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEnD,SAAS,sBAAsB,CAAC,SAAS;IACvC,IAAI,QAAQ,GAAG,SAAS,CAAC;IACzB,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,EAAE,EAAE;QAChC,OAAO,SAAS,CAAC;KAClB;IACD,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IAElC,QAAQ,QAAQ,EAAE;QAChB,KAAK,MAAM,CAAC;QACZ,KAAK,0CAA0C;YAC7C,OAAO,QAAQ,CAAC;QAClB,KAAK,UAAU;YACb,OAAO,QAAQ,CAAC;QAClB,KAAK,WAAW,CAAC;QACjB,KAAK,YAAY;YACf,OAAO,SAAS,CAAC;QACnB;YACE,OAAO,QAAQ,CAAC;KACnB;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAO;IACrC,MAAM,IAAI,GAAG,sBAAsB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,CAAC;IACxB;;;;;;;;;;;;MAYE;IACF,IAAI,IAAI,KAAK,OAAO,EAAE;QACpB,oCAAoC;QACpC,MAAM,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;KACnC;SAAM,IAAI,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,UAAU,EAAE;QAClD,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE;YAClE,6CAA6C;YAC7C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG;gBACvB,IAAI,EAAE,sBAAsB,CAAC,WAAW,CAAC,KAAK,CAAC;aAChD,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC,EAAE,EAAE,CAAC,CAAC;KACR;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAM,EAAE,SAAS;IAChD,MAAM,MAAM,GAAG,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC;IAEhE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,YAAY,CAAC,KAAK;IACzB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACxB,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACvB;IACD,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,YAAY,CAAC,iBAAiB;IACrC,OAAO,YAAY,CACjB,iBAAiB,CAAC,oBAAoB,IAAI,iBAAiB,CAAC,SAAS,IAAI,EAAE,CAC5E,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,OAAO,GAAG;IACf,YAAY;IACZ,sBAAsB;IACtB,uBAAuB;CACxB,CAAC"}
|