@appland/appmap 3.65.0 → 3.65.2
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 +16 -0
- package/built/cmds/agentInstaller/javaScriptAgentInstaller.js +17 -0
- package/built/cmds/agentInstaller/javaScriptAgentInstaller.js.map +1 -1
- package/built/cmds/agentInstaller/projectConfiguration.js +126 -28
- package/built/cmds/agentInstaller/projectConfiguration.js.map +1 -1
- package/built/html/page.js +39 -35
- package/built/html/page.js.map +3 -3
- package/package.json +4 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
# [@appland/appmap-v3.65.2](https://github.com/getappmap/appmap-js/compare/@appland/appmap-v3.65.1...@appland/appmap-v3.65.2) (2023-02-13)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* Update @appland/models and @appland/openapi ([03b001b](https://github.com/getappmap/appmap-js/commit/03b001b34ec3e5f415107c14e9a582a8f3b83374))
|
|
7
|
+
|
|
8
|
+
# [@appland/appmap-v3.65.1](https://github.com/getappmap/appmap-js/compare/@appland/appmap-v3.65.0...@appland/appmap-v3.65.1) (2023-02-07)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* add @appland/client dependency ([9bd2b6f](https://github.com/getappmap/appmap-js/commit/9bd2b6f5bec5a99a1f3e1416a6a1c28e7644d805))
|
|
14
|
+
* Detect yarn packages as sub-projects ([17871e3](https://github.com/getappmap/appmap-js/commit/17871e3f3e9f693391b179d209383d77fdc0ba21))
|
|
15
|
+
* Improve detection for yarn 1. ([013004a](https://github.com/getappmap/appmap-js/commit/013004a03b59c876bc8b51f01828183e0338425e))
|
|
16
|
+
|
|
1
17
|
# [@appland/appmap-v3.65.0](https://github.com/getappmap/appmap-js/compare/@appland/appmap-v3.64.3...@appland/appmap-v3.65.0) (2023-02-06)
|
|
2
18
|
|
|
3
19
|
|
|
@@ -11,6 +11,8 @@ const commandRunner_1 = require("./commandRunner");
|
|
|
11
11
|
const agentInstaller_1 = __importDefault(require("./agentInstaller"));
|
|
12
12
|
const chalk_1 = __importDefault(require("chalk"));
|
|
13
13
|
const commandStruct_1 = __importDefault(require("./commandStruct"));
|
|
14
|
+
const errors_1 = require("../errors");
|
|
15
|
+
const semver_1 = __importDefault(require("semver"));
|
|
14
16
|
const AGENT_PACKAGE = '@appland/appmap-agent-js@latest';
|
|
15
17
|
class JavaScriptInstaller extends agentInstaller_1.default {
|
|
16
18
|
constructor(name, path) {
|
|
@@ -87,6 +89,21 @@ class YarnInstaller extends JavaScriptInstaller {
|
|
|
87
89
|
async verifyCommand() {
|
|
88
90
|
return undefined;
|
|
89
91
|
}
|
|
92
|
+
async isYarnVersionOne() {
|
|
93
|
+
let isVersionOne;
|
|
94
|
+
try {
|
|
95
|
+
const versionOutput = await (0, commandUtil_1.getOutput)('yarn', ['--version'], this.path);
|
|
96
|
+
const version = semver_1.default.coerce(versionOutput.output);
|
|
97
|
+
if (!version) {
|
|
98
|
+
throw new errors_1.UserConfigError('Could not detect yarn version');
|
|
99
|
+
}
|
|
100
|
+
isVersionOne = !semver_1.default.satisfies(version, '>= 2.0.0');
|
|
101
|
+
}
|
|
102
|
+
catch (err) {
|
|
103
|
+
throw new errors_1.UserConfigError(err);
|
|
104
|
+
}
|
|
105
|
+
return isVersionOne;
|
|
106
|
+
}
|
|
90
107
|
}
|
|
91
108
|
exports.YarnInstaller = YarnInstaller;
|
|
92
109
|
YarnInstaller.identifier = 'yarn';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"javaScriptAgentInstaller.js","sourceRoot":"","sources":["../../../src/cmds/agentInstaller/javaScriptAgentInstaller.ts"],"names":[],"mappings":";;;;;;AAAA,uCAAqC;AACrC,+CAA0C;AAC1C,+BAA4B;AAC5B,mDAAsC;AACtC,sEAA8C;AAC9C,kDAA0B;AAC1B,oEAA4C;
|
|
1
|
+
{"version":3,"file":"javaScriptAgentInstaller.js","sourceRoot":"","sources":["../../../src/cmds/agentInstaller/javaScriptAgentInstaller.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,13 +3,17 @@ 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.getProjects = void 0;
|
|
6
|
+
exports.getProjects = exports.getYarnSubprojects = void 0;
|
|
7
|
+
const assert_1 = __importDefault(require("assert"));
|
|
7
8
|
const chalk_1 = __importDefault(require("chalk"));
|
|
8
9
|
const fs_1 = require("fs");
|
|
9
10
|
const path_1 = require("path");
|
|
10
11
|
const errors_1 = require("../errors");
|
|
11
12
|
const userInteraction_1 = __importDefault(require("../userInteraction"));
|
|
12
13
|
const installers_1 = __importDefault(require("./installers"));
|
|
14
|
+
const javaScriptAgentInstaller_1 = require("./javaScriptAgentInstaller");
|
|
15
|
+
const commandStruct_1 = __importDefault(require("./commandStruct"));
|
|
16
|
+
const commandRunner_1 = require("./commandRunner");
|
|
13
17
|
async function resolveSelectedInstallers(projects, userSpecifiedInstaller) {
|
|
14
18
|
// Attempt to resolve selectedInstallers from the user's arg line input.
|
|
15
19
|
if (userSpecifiedInstaller) {
|
|
@@ -59,11 +63,96 @@ async function resolveSelectedInstallers(projects, userSpecifiedInstaller) {
|
|
|
59
63
|
}
|
|
60
64
|
}
|
|
61
65
|
}
|
|
62
|
-
// Sanity check. Verify everything resolved properly. This
|
|
66
|
+
// Sanity check. Verify everything resolved properly. This branch should never occur.
|
|
63
67
|
if (projects.some(({ selectedInstaller }) => !selectedInstaller)) {
|
|
64
68
|
throw new Error('Invalid selection');
|
|
65
69
|
}
|
|
66
70
|
}
|
|
71
|
+
function yarn1Workspaces(info) {
|
|
72
|
+
(0, assert_1.default)(info && typeof info === 'object');
|
|
73
|
+
return Object.entries(info).map(([name, data]) => {
|
|
74
|
+
(0, assert_1.default)(data && typeof data === 'object');
|
|
75
|
+
(0, assert_1.default)('location' in data);
|
|
76
|
+
(0, assert_1.default)(typeof data['location'] === 'string');
|
|
77
|
+
return [name, data['location']];
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
// With yarn 1:
|
|
81
|
+
// - if there's no "workspaces" key in package.json we get the following error:
|
|
82
|
+
// $ yarn workspaces info --json
|
|
83
|
+
// yarn workspaces v1.22.19
|
|
84
|
+
// error Cannot find the root of your workspace - are you sure you're currently in a workspace?
|
|
85
|
+
// info Visit https://yarnpkg.com/en/docs/cli/workspaces for documentation about this command.
|
|
86
|
+
// - if there is a "workspaces" key in package.json the output contains text
|
|
87
|
+
// outside of json. Remove it:
|
|
88
|
+
// $ yarn workspaces info --json
|
|
89
|
+
// yarn workspaces v1.22.19
|
|
90
|
+
// {
|
|
91
|
+
// "workspace-a": {
|
|
92
|
+
// "location": "workspace-a",
|
|
93
|
+
// "workspaceDependencies": [],
|
|
94
|
+
// "mismatchedWorkspaceDependencies": []
|
|
95
|
+
// }
|
|
96
|
+
// }
|
|
97
|
+
// Done in 0.02s.
|
|
98
|
+
async function getYarnSubprojectsVersionOne(dir, installer, subprojects) {
|
|
99
|
+
const cmd = new commandStruct_1.default('yarn', ['workspaces', 'info', '--json'], installer.path);
|
|
100
|
+
const output = await (0, commandRunner_1.run)(cmd);
|
|
101
|
+
// Remove any text before and after JSON
|
|
102
|
+
let lines = output.stdout.split('\n');
|
|
103
|
+
let outputClean = '';
|
|
104
|
+
for (const line of lines) {
|
|
105
|
+
if (line.startsWith('error'))
|
|
106
|
+
return;
|
|
107
|
+
if (!(line.startsWith('yarn workspaces v') || line.startsWith('Done in ')))
|
|
108
|
+
outputClean += line;
|
|
109
|
+
}
|
|
110
|
+
for (const [name, location] of yarn1Workspaces(JSON.parse(outputClean))) {
|
|
111
|
+
const subProjectPath = (0, path_1.join)(dir, location);
|
|
112
|
+
const subProjectName = (0, path_1.basename)(name);
|
|
113
|
+
const projectConfiguration = {
|
|
114
|
+
name: subProjectName,
|
|
115
|
+
path: subProjectPath,
|
|
116
|
+
// must set the new path in the installer
|
|
117
|
+
availableInstallers: [new javaScriptAgentInstaller_1.YarnInstaller(subProjectPath)],
|
|
118
|
+
};
|
|
119
|
+
subprojects.push(projectConfiguration);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
async function getYarnSubprojectsVersionAboveOne(dir, installer, subprojects) {
|
|
123
|
+
const cmd = new commandStruct_1.default('yarn', ['workspaces', 'list', '--json'], installer.path);
|
|
124
|
+
const output = await (0, commandRunner_1.run)(cmd);
|
|
125
|
+
for (const line of output.stdout.split('\n')) {
|
|
126
|
+
if (line !== '') {
|
|
127
|
+
const yarnWorkspace = JSON.parse(line);
|
|
128
|
+
const subProjectPath = (0, path_1.join)(dir, yarnWorkspace['location']);
|
|
129
|
+
const subProjectName = (0, path_1.basename)(yarnWorkspace['name']);
|
|
130
|
+
const projectConfiguration = {
|
|
131
|
+
name: subProjectName,
|
|
132
|
+
path: subProjectPath,
|
|
133
|
+
// must set the new path in the installer
|
|
134
|
+
availableInstallers: [new javaScriptAgentInstaller_1.YarnInstaller(subProjectPath)],
|
|
135
|
+
};
|
|
136
|
+
subprojects.push(projectConfiguration);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
async function getYarnSubprojects(dir, availableInstallers) {
|
|
141
|
+
let subprojects = [];
|
|
142
|
+
for (const installer of availableInstallers) {
|
|
143
|
+
if (installer.name === 'yarn') {
|
|
144
|
+
const yarnInstaller = installer;
|
|
145
|
+
if (await yarnInstaller.isYarnVersionOne()) {
|
|
146
|
+
await getYarnSubprojectsVersionOne(dir, yarnInstaller, subprojects);
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
await getYarnSubprojectsVersionAboveOne(dir, yarnInstaller, subprojects);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return subprojects;
|
|
154
|
+
}
|
|
155
|
+
exports.getYarnSubprojects = getYarnSubprojects;
|
|
67
156
|
/**
|
|
68
157
|
* Identifies subprojects and returns an array of ProjectConfigurations if the user chooses to
|
|
69
158
|
* install to them. If the user opts not to install to any subprojects, undefined is returned. This
|
|
@@ -73,30 +162,39 @@ async function resolveSelectedInstallers(projects, userSpecifiedInstaller) {
|
|
|
73
162
|
* @returns ProjectConfiguration[] if the user chooses to install to subprojects, otherwise
|
|
74
163
|
* undefined
|
|
75
164
|
*/
|
|
76
|
-
async function getSubprojects(dir, rootHasInstaller) {
|
|
77
|
-
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
165
|
+
async function getSubprojects(dir, rootHasInstaller, availableInstallers) {
|
|
166
|
+
let subprojects = [];
|
|
167
|
+
const yarnSubprojects = await getYarnSubprojects(dir, availableInstallers);
|
|
168
|
+
if (yarnSubprojects.length > 0) {
|
|
169
|
+
// detect yarn packages as sub-projects
|
|
170
|
+
subprojects = yarnSubprojects;
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
// read directory to detect sub-projects
|
|
174
|
+
const ents = await fs_1.promises.readdir(dir, { withFileTypes: true });
|
|
175
|
+
subprojects = (await Promise.all(ents.map(async (ent) => {
|
|
176
|
+
if (!ent.isDirectory()) {
|
|
177
|
+
return null;
|
|
178
|
+
}
|
|
179
|
+
const subProjectPath = (0, path_1.join)(dir, ent.name);
|
|
180
|
+
try {
|
|
181
|
+
await fs_1.promises.access(subProjectPath, fs_1.constants.R_OK);
|
|
182
|
+
}
|
|
183
|
+
catch (_a) {
|
|
184
|
+
// This directory is not readable. Ignore it.
|
|
185
|
+
return null;
|
|
186
|
+
}
|
|
187
|
+
const installers = await (0, installers_1.default)(subProjectPath);
|
|
188
|
+
if (!installers.length) {
|
|
189
|
+
return null;
|
|
190
|
+
}
|
|
191
|
+
return {
|
|
192
|
+
name: ent.name,
|
|
193
|
+
path: subProjectPath,
|
|
194
|
+
availableInstallers: installers,
|
|
195
|
+
};
|
|
196
|
+
}))).filter(Boolean);
|
|
197
|
+
}
|
|
100
198
|
if (!subprojects.length) {
|
|
101
199
|
// There's nothing that we can do here.
|
|
102
200
|
return undefined;
|
|
@@ -108,7 +206,7 @@ async function getSubprojects(dir, rootHasInstaller) {
|
|
|
108
206
|
message: 'This directory contains sub-projects. Would you like to choose sub-projects for installation?',
|
|
109
207
|
});
|
|
110
208
|
if (!addSubprojects) {
|
|
111
|
-
// The user has opted not to continue by selecting subprojects.
|
|
209
|
+
// The user has opted not to continue by not selecting subprojects.
|
|
112
210
|
return undefined;
|
|
113
211
|
}
|
|
114
212
|
const subProjectConfigurations = [];
|
|
@@ -128,7 +226,7 @@ async function getProjects(installers, dir, allowMulti, userSpecifiedInstaller)
|
|
|
128
226
|
const availableInstallers = await (0, installers_1.default)(dir);
|
|
129
227
|
const rootHasInstaller = !!availableInstallers.length;
|
|
130
228
|
if (allowMulti) {
|
|
131
|
-
const subprojects = await getSubprojects(dir, rootHasInstaller);
|
|
229
|
+
const subprojects = await getSubprojects(dir, rootHasInstaller, availableInstallers);
|
|
132
230
|
if (subprojects === null || subprojects === void 0 ? void 0 : subprojects.length) {
|
|
133
231
|
projectConfigurations.push(...subprojects);
|
|
134
232
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectConfiguration.js","sourceRoot":"","sources":["../../../src/cmds/agentInstaller/projectConfiguration.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,2BAA8D;
|
|
1
|
+
{"version":3,"file":"projectConfiguration.js","sourceRoot":"","sources":["../../../src/cmds/agentInstaller/projectConfiguration.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,kDAA0B;AAC1B,2BAA8D;AAE9D,+BAA+C;AAC/C,sCAAyD;AACzD,yEAAoC;AAEpC,8DAAkD;AAClD,yEAA2D;AAC3D,oEAA4C;AAC5C,mDAAsC;AAUtC,KAAK,UAAU,yBAAyB,CACtC,QAAgC,EAChC,sBAA+B;IAE/B,wEAAwE;IACxE,IAAI,sBAAsB,EAAE;QAC1B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC9B,MAAM,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC;YACxC,IAAI,iBAA6C,CAAC;YAElD,iBAAiB,GAAG,mBAAmB,CAAC,IAAI,CAC1C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,sBAAsB,CAAC,WAAW,EAAE,CACrE,CAAC;YAEF,IAAI,CAAC,iBAAiB,EAAE;gBACtB,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,yBAAE,CAAC,MAAM,CAAC;oBACvC;wBACE,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,cAAc;wBACpB,MAAM,EAAE,eAAK,CAAC,MAAM,CAAC,GAAG,CAAC;wBACzB,OAAO,EAAE,GAAG,eAAK,CAAC,GAAG,CACnB,sBAAsB,CACvB,8EAA8E,mBAAmB;6BAC/F,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;6BAC9B,IAAI,CAAC,IAAI,CAAC,aAAa;qBAC3B;iBACF,CAAC,CAAC;gBAEH,IAAI,CAAC,YAAY,EAAE;oBACjB,MAAM,IAAI,mBAAU,CAClB;wBACE,mCAAmC,sBAAsB,iBAAiB;wBAC1E,yBAAyB,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;qBAC7E,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;iBACH;aACF;YAED,OAAO,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;SAC/C;KACF;IAED,+FAA+F;IAC/F,uBAAuB;IACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;QACxC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;YAC9B,IAAI,OAAO,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC5C,OAAO,CAAC,iBAAiB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;aAC5D;iBAAM;gBACL,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAG,MAAM,yBAAE,CAAC,MAAM,CAAC;oBAC7B,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,GAAG;oBACT,OAAO,EAAE,wCAAwC,eAAK,CAAC,IAAI,CACzD,IAAA,cAAO,EAAC,OAAO,CAAC,IAAI,CAAC,CACtB,2BAA2B;oBAC5B,OAAO,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;iBACxD,CAAC,CAAC;gBACH,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBAClC,OAAO,CAAC,iBAAiB,GAAG,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAC1D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAChC,CAAC;aACH;SACF;KACF;IAED,qFAAqF;IACrF,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,EAAE;QAChE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;KACtC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,IAAa;IACpC,IAAA,gBAAM,EAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC;IACzC,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAoB,EAAE,EAAE;QAClE,IAAA,gBAAM,EAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC;QACzC,IAAA,gBAAM,EAAC,UAAU,IAAI,IAAI,CAAC,CAAC;QAC3B,IAAA,gBAAM,EAAC,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,QAAQ,CAAC,CAAC;QAC7C,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC;AACD,eAAe;AACf,+EAA+E;AAC/E,kCAAkC;AAClC,6BAA6B;AAC7B,iGAAiG;AACjG,gGAAgG;AAChG,4EAA4E;AAC5E,gCAAgC;AAChC,kCAAkC;AAClC,6BAA6B;AAC7B,MAAM;AACN,sBAAsB;AACtB,kCAAkC;AAClC,oCAAoC;AACpC,6CAA6C;AAC7C,OAAO;AACP,MAAM;AACN,mBAAmB;AACnB,KAAK,UAAU,4BAA4B,CACzC,GAAW,EACX,SAAwB,EACxB,WAAmC;IAEnC,MAAM,GAAG,GAAG,IAAI,uBAAa,CAAC,MAAM,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IACxF,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAG,EAAC,GAAG,CAAC,CAAC;IAE9B,wCAAwC;IACxC,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO;QACrC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAAE,WAAW,IAAI,IAAI,CAAC;KACjG;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE;QACvE,MAAM,cAAc,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC3C,MAAM,cAAc,GAAG,IAAA,eAAQ,EAAC,IAAI,CAAC,CAAC;QACtC,MAAM,oBAAoB,GAAyB;YACjD,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,cAAc;YACpB,yCAAyC;YACzC,mBAAmB,EAAE,CAAC,IAAI,wCAAa,CAAC,cAAc,CAAC,CAAC;SACzD,CAAC;QACF,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;KACxC;AACH,CAAC;AAED,KAAK,UAAU,iCAAiC,CAC9C,GAAW,EACX,SAAwB,EACxB,WAAmC;IAEnC,MAAM,GAAG,GAAG,IAAI,uBAAa,CAAC,MAAM,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IACxF,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAG,EAAC,GAAG,CAAC,CAAC;IAE9B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;QAC5C,IAAI,IAAI,KAAK,EAAE,EAAE;YACf,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,cAAc,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;YAC5D,MAAM,cAAc,GAAG,IAAA,eAAQ,EAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;YACvD,MAAM,oBAAoB,GAAyB;gBACjD,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,cAAc;gBACpB,yCAAyC;gBACzC,mBAAmB,EAAE,CAAC,IAAI,wCAAa,CAAC,cAAc,CAAC,CAAC;aACzD,CAAC;YACF,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;SACxC;KACF;AACH,CAAC;AAEM,KAAK,UAAU,kBAAkB,CACtC,GAAW,EACX,mBAAqC;IAErC,IAAI,WAAW,GAA2B,EAAE,CAAC;IAE7C,KAAK,MAAM,SAAS,IAAI,mBAAmB,EAAE;QAC3C,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE;YAC7B,MAAM,aAAa,GAAG,SAA0B,CAAC;YACjD,IAAI,MAAM,aAAa,CAAC,gBAAgB,EAAE,EAAE;gBAC1C,MAAM,4BAA4B,CAAC,GAAG,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;aACrE;iBAAM;gBACL,MAAM,iCAAiC,CAAC,GAAG,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;aAC1E;SACF;KACF;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAlBD,gDAkBC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,cAAc,CAC3B,GAAW,EACX,gBAAyB,EACzB,mBAAqC;IAErC,IAAI,WAAW,GAA2B,EAAE,CAAC;IAC7C,MAAM,eAAe,GAA2B,MAAM,kBAAkB,CACtE,GAAG,EACH,mBAAmB,CACpB,CAAC;IAEF,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;QAC9B,uCAAuC;QACvC,WAAW,GAAG,eAAe,CAAC;KAC/B;SAAM;QACL,wCAAwC;QACxC,MAAM,IAAI,GAAG,MAAM,aAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,WAAW,GAAG,CACZ,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAwC,EAAE;YAC3D,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE;gBACtB,OAAO,IAAI,CAAC;aACb;YAED,MAAM,cAAc,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI;gBACF,MAAM,aAAE,CAAC,MAAM,CAAC,cAAc,EAAE,cAAW,CAAC,IAAI,CAAC,CAAC;aACnD;YAAC,WAAM;gBACN,6CAA6C;gBAC7C,OAAO,IAAI,CAAC;aACb;YAED,MAAM,UAAU,GAAG,MAAM,IAAA,oBAAsB,EAAC,cAAc,CAAC,CAAC;YAChE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;gBACtB,OAAO,IAAI,CAAC;aACb;YAED,OAAO;gBACL,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,IAAI,EAAE,cAAc;gBACpB,mBAAmB,EAAE,UAAU;aAChC,CAAC;QACJ,CAAC,CAAC,CACH,CACF,CAAC,MAAM,CAAC,OAAO,CAA2B,CAAC;KAC7C;IAED,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;QACvB,uCAAuC;QACvC,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,yBAAE,CAAC,MAAM,CAAC;QACzC,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,CAAC,gBAAgB;QAC1B,IAAI,EAAE,gBAAgB;QACtB,OAAO,EACL,+FAA+F;KAClG,CAAC,CAAC;IACH,IAAI,CAAC,cAAc,EAAE;QACnB,mEAAmE;QACnE,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,wBAAwB,GAA2B,EAAE,CAAC;IAC5D,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,yBAAE,CAAC,MAAM,CAAC;QAC9C,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE,2CAA2C;QACpD,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC;KAC7C,CAAC,CAAC;IAEH,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE;QAClC,wBAAwB,CAAC,IAAI,CAC3B,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CACxE,CAAC;KACH;IAED,OAAO,wBAAwB,CAAC;AAClC,CAAC;AAEM,KAAK,UAAU,WAAW,CAC/B,UAAqC,EACrC,GAAW,EACX,UAAoB,EACpB,sBAA+B;IAE/B,IAAI,qBAAqB,GAA2B,EAAE,CAAC;IAEvD,MAAM,mBAAmB,GAAG,MAAM,IAAA,oBAAsB,EAAC,GAAG,CAAC,CAAC;IAC9D,MAAM,gBAAgB,GAAG,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC;IACtD,IAAI,UAAU,EAAE;QACd,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,CAAC;QACrF,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,EAAE;YACvB,qBAAqB,CAAC,IAAI,CAAC,GAAI,WAAsC,CAAC,CAAC;SACxE;aAAM,IAAI,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,MAAK,CAAC,EAAE;YACpC,MAAM,IAAI,yBAAgB,CACxB,kEAAkE,EAClE,GAAG,CACJ,CAAC;SACH;KACF;IAED,wFAAwF;IACxF,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE;QACjC,IAAI,mBAAmB,CAAC,MAAM,EAAE;YAC9B,qBAAqB,GAAG;gBACtB;oBACE,IAAI,EAAE,IAAA,eAAQ,EAAC,GAAG,CAAC;oBACnB,IAAI,EAAE,IAAA,cAAO,EAAC,GAAG,CAAC;oBAClB,mBAAmB;iBACpB;aACF,CAAC;SACH;aAAM;YACL,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAE/E,MAAM,IAAI,yBAAgB,CACxB;gBACE,qCAAqC,eAAK,CAAC,GAAG,CAAC,IAAA,cAAO,EAAC,GAAG,CAAC,CAAC,GAAG;gBAC/D,EAAE;gBACF,uEAAuE;gBACvE,UAAU;qBACP,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,GAAG,eAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,eAAK,CAAC,MAAM,CACzE,GAAG,CAAC,CAAC,SAAS,YAAY,CAC3B,EAAE,CACN;qBACA,MAAM,CAAC,OAAO,CAAC;qBACf,IAAI,CAAC,IAAI,CAAC;gBACb,EAAE;gBACF,uEAAuE;gBACvE,EAAE;gBACF,qGAAqG;gBACrG,OAAO,eAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,wBAAwB;aACpD,CAAC,IAAI,CAAC,IAAI,CAAC,EACZ,GAAG,CACJ,CAAC;SACH;KACF;IAED,MAAM,yBAAyB,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC;IAE/E,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AA/DD,kCA+DC"}
|