@equinor/echo-cli 1.0.0-beta-42 → 1.0.0-beta-45
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.
|
@@ -1,28 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { Command } from '@oclif/core';
|
|
3
|
-
/**
|
|
4
|
-
* @class UpdateDevHostEchoLibVersions
|
|
5
|
-
* @extends Command
|
|
6
|
-
* @description
|
|
7
|
-
* Interactively updates the echo library dependencies in the `echo-dev-host` project.
|
|
8
|
-
*
|
|
9
|
-
* This command reads the `package.json` file from the `echo-dev-host-tmp` directory,
|
|
10
|
-
* identifies dependencies that are echo libraries (names starting with `@equinor/echo-`),
|
|
11
|
-
* and allows the user to update them to the latest available versions.
|
|
12
|
-
*
|
|
13
|
-
* If the `--all` flag is provided, all echo libraries are updated to their latest versions
|
|
14
|
-
* without prompting the user. Otherwise, the user is prompted for each library to confirm
|
|
15
|
-
* or specify the desired version.
|
|
16
|
-
*
|
|
17
|
-
* After updating dependencies, the command writes the changes to `package.json` and runs
|
|
18
|
-
* `npm install` to apply the updates.
|
|
19
|
-
*
|
|
20
|
-
* @flags
|
|
21
|
-
* - `--all`, `-a`: Update all echo libraries to the latest version without prompting.
|
|
22
|
-
*
|
|
23
|
-
* Logs error if the `package.json` file cannot be read, typically if the
|
|
24
|
-
* `echo-dev-host-tmp` directory or its `package.json` does not exist.
|
|
25
|
-
*/
|
|
26
3
|
export default class UpdateEchoLibs extends Command {
|
|
27
4
|
static description: string;
|
|
28
5
|
static flags: {
|
|
@@ -30,4 +7,3 @@ export default class UpdateEchoLibs extends Command {
|
|
|
30
7
|
};
|
|
31
8
|
run(): Promise<void>;
|
|
32
9
|
}
|
|
33
|
-
export declare function updateEchoLibSection(consumerPkg: Record<string, any>, sectionName: 'dependencies' | 'devDependencies' | 'peerDependencies', echoLibs: string[], deps: Record<string, string>, changes: Record<string, string[]>): boolean;
|
package/lib/update-echo-libs.js
CHANGED
|
@@ -10,31 +10,8 @@ import { buildAndCopyDevHost } from './tools/buildScripts/buildAndCopyDevHost.js
|
|
|
10
10
|
import { findConsumerAppPackageJson } from './utils/findConsumerAppPackageJson.js';
|
|
11
11
|
import { getLatestPkgVersion } from './utils/getLatestPkgVersion.js';
|
|
12
12
|
import { printEchoLibsVersions } from './utils/printEchoLibsVersions.js';
|
|
13
|
-
/**
|
|
14
|
-
* @class UpdateDevHostEchoLibVersions
|
|
15
|
-
* @extends Command
|
|
16
|
-
* @description
|
|
17
|
-
* Interactively updates the echo library dependencies in the `echo-dev-host` project.
|
|
18
|
-
*
|
|
19
|
-
* This command reads the `package.json` file from the `echo-dev-host-tmp` directory,
|
|
20
|
-
* identifies dependencies that are echo libraries (names starting with `@equinor/echo-`),
|
|
21
|
-
* and allows the user to update them to the latest available versions.
|
|
22
|
-
*
|
|
23
|
-
* If the `--all` flag is provided, all echo libraries are updated to their latest versions
|
|
24
|
-
* without prompting the user. Otherwise, the user is prompted for each library to confirm
|
|
25
|
-
* or specify the desired version.
|
|
26
|
-
*
|
|
27
|
-
* After updating dependencies, the command writes the changes to `package.json` and runs
|
|
28
|
-
* `npm install` to apply the updates.
|
|
29
|
-
*
|
|
30
|
-
* @flags
|
|
31
|
-
* - `--all`, `-a`: Update all echo libraries to the latest version without prompting.
|
|
32
|
-
*
|
|
33
|
-
* Logs error if the `package.json` file cannot be read, typically if the
|
|
34
|
-
* `echo-dev-host-tmp` directory or its `package.json` does not exist.
|
|
35
|
-
*/
|
|
36
13
|
export default class UpdateEchoLibs extends Command {
|
|
37
|
-
static description = 'Interactively update echo library dependencies in echo-dev-host';
|
|
14
|
+
static description = 'Interactively update echo library dependencies in echo-dev-host and your app';
|
|
38
15
|
static flags = {
|
|
39
16
|
all: Flags.boolean({
|
|
40
17
|
char: 'a',
|
|
@@ -43,89 +20,70 @@ export default class UpdateEchoLibs extends Command {
|
|
|
43
20
|
};
|
|
44
21
|
async run() {
|
|
45
22
|
const { flags } = await this.parse(UpdateEchoLibs);
|
|
23
|
+
console.log('Starting update-echo-libs...');
|
|
24
|
+
// 1. Find package.json paths
|
|
46
25
|
const devHostPkgPath = path.resolve(process.cwd(), 'node_modules', '@equinor', 'echo-cli', 'lib', 'echo-dev-host', 'package.json');
|
|
47
|
-
console.log(chalk.cyan(`Trying to load echo lib dependencies from: ${chalk.yellow(devHostPkgPath)}`));
|
|
48
|
-
let pkg;
|
|
49
|
-
try {
|
|
50
|
-
pkg = fs.readJsonSync(devHostPkgPath);
|
|
51
|
-
}
|
|
52
|
-
catch (error) {
|
|
53
|
-
this.error(`Could not read package.json at ${chalk.yellow(devHostPkgPath)}. Did you run npm install?`);
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
const deps = pkg.dependencies || {};
|
|
57
|
-
const echoLibs = Object.keys(deps).filter((name) => name.startsWith('@equinor/echo-'));
|
|
58
|
-
if (echoLibs.length === 0) {
|
|
59
|
-
console.log('No echo libraries found in dependencies.');
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
// --- Print current echo lib versions before update ---
|
|
63
26
|
const consumerPkgPath = findConsumerAppPackageJson(process.cwd());
|
|
64
27
|
if (!consumerPkgPath) {
|
|
65
28
|
console.error('Could not find a package.json either in the root folder, or subfolders with @equinor/echo-* dependencies.');
|
|
66
29
|
process.exit(1);
|
|
67
30
|
}
|
|
31
|
+
// 2. Print current echo lib versions
|
|
68
32
|
await printEchoLibsVersions({
|
|
69
33
|
devHostPkgPath,
|
|
70
34
|
appPkgPath: consumerPkgPath,
|
|
71
35
|
fetchLatest: true
|
|
72
36
|
});
|
|
73
|
-
|
|
37
|
+
// 3. Fetch all echo libs and their latest versions (union of both package.jsons)
|
|
38
|
+
const devHostPkg = fs.readJsonSync(devHostPkgPath);
|
|
39
|
+
const consumerPkg = fs.readJsonSync(consumerPkgPath);
|
|
40
|
+
const getEchoLibs = (pkg) => Object.keys({
|
|
41
|
+
...(pkg.dependencies || {}),
|
|
42
|
+
...(pkg.devDependencies || {}),
|
|
43
|
+
...(pkg.peerDependencies || {})
|
|
44
|
+
}).filter((name) => name.startsWith('@equinor/echo-'));
|
|
45
|
+
const allEchoLibs = Array.from(new Set([...getEchoLibs(devHostPkg), ...getEchoLibs(consumerPkg)]));
|
|
46
|
+
// Fetch latest versions for all echo libs
|
|
74
47
|
const spinner = ora('Fetching latest echo library versions...').start();
|
|
75
48
|
const latestVersions = {};
|
|
76
|
-
|
|
77
|
-
for (const lib of echoLibs) {
|
|
49
|
+
for (const lib of allEchoLibs) {
|
|
78
50
|
latestVersions[lib] = await getLatestPkgVersion(lib, spinner);
|
|
79
51
|
}
|
|
80
52
|
spinner.succeed('Fetched latest echo library versions.');
|
|
81
|
-
//
|
|
82
|
-
const upToDateLibs = echoLibs.filter((lib) => deps[lib] === latestVersions[lib]);
|
|
83
|
-
const outdatedLibs = echoLibs.filter((lib) => deps[lib] !== latestVersions[lib]);
|
|
84
|
-
// Log up-to-date libs
|
|
85
|
-
upToDateLibs.forEach((lib) => {
|
|
86
|
-
console.log(chalk.gray(`${lib} is already at latest version (${deps[lib]}), skipping.`));
|
|
87
|
-
});
|
|
53
|
+
// 4. Ask user about auto/manual update
|
|
88
54
|
let autoBump = flags.all;
|
|
89
|
-
if (
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
name: 'autoBump',
|
|
97
|
-
message: `Proceed with automatic update?`,
|
|
98
|
-
default: true
|
|
99
|
-
}
|
|
100
|
-
]);
|
|
101
|
-
autoBump = answer.autoBump;
|
|
102
|
-
}
|
|
103
|
-
for (const lib of outdatedLibs) {
|
|
104
|
-
const current = deps[lib];
|
|
105
|
-
const latest = latestVersions[lib];
|
|
106
|
-
let newVersion = latest;
|
|
107
|
-
if (!autoBump) {
|
|
108
|
-
const answer = await inquirer.prompt([
|
|
109
|
-
{
|
|
110
|
-
type: 'input',
|
|
111
|
-
name: 'version',
|
|
112
|
-
message: `${lib}: current ${current}, latest ${latest} [${latest}]:`,
|
|
113
|
-
default: latest
|
|
114
|
-
}
|
|
115
|
-
]);
|
|
116
|
-
newVersion = answer.version || latest;
|
|
55
|
+
if (!flags.all) {
|
|
56
|
+
const answer = await inquirer.prompt([
|
|
57
|
+
{
|
|
58
|
+
type: 'confirm',
|
|
59
|
+
name: 'autoBump',
|
|
60
|
+
message: `Automatically update all outdated echo libraries to their latest versions?`,
|
|
61
|
+
default: true
|
|
117
62
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
updated = true;
|
|
121
|
-
console.log(chalk.yellow(`Updated ${lib} to ${newVersion}`));
|
|
122
|
-
}
|
|
123
|
-
}
|
|
63
|
+
]);
|
|
64
|
+
autoBump = answer.autoBump;
|
|
124
65
|
}
|
|
125
|
-
//
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
66
|
+
// 5. Update both dev host and consumer app package.jsons
|
|
67
|
+
const isDevHostUpdated = await updateEchoLibsInPackageJson({
|
|
68
|
+
pkgPath: devHostPkgPath,
|
|
69
|
+
pkgLabel: 'echo-dev-host',
|
|
70
|
+
latestVersions,
|
|
71
|
+
autoBump
|
|
72
|
+
});
|
|
73
|
+
const isConsumerUpdated = await updateEchoLibsInPackageJson({
|
|
74
|
+
pkgPath: consumerPkgPath,
|
|
75
|
+
pkgLabel: 'consumer app',
|
|
76
|
+
latestVersions,
|
|
77
|
+
autoBump
|
|
78
|
+
});
|
|
79
|
+
// 6. Print echo lib versions after update
|
|
80
|
+
await printEchoLibsVersions({
|
|
81
|
+
devHostPkgPath,
|
|
82
|
+
appPkgPath: consumerPkgPath,
|
|
83
|
+
fetchLatest: true
|
|
84
|
+
});
|
|
85
|
+
// Rebuild dev host if needed
|
|
86
|
+
if (isDevHostUpdated) {
|
|
129
87
|
console.log(`\nDependencies updated. Rebuilding echo-dev-host...\n`);
|
|
130
88
|
const cliNodeModules = path.resolve(process.cwd(), 'node_modules', '@equinor', 'echo-cli');
|
|
131
89
|
const finalOutput = path.join(cliNodeModules, ECHO_HOST_BUILD_OUTPUT_FOLDER);
|
|
@@ -135,45 +93,70 @@ export default class UpdateEchoLibs extends Command {
|
|
|
135
93
|
finalOutputDir: finalOutput
|
|
136
94
|
});
|
|
137
95
|
}
|
|
138
|
-
|
|
139
|
-
console.log(`\
|
|
140
|
-
}
|
|
141
|
-
// --- Always update consumer app's package.json ---
|
|
142
|
-
let consumerPkg;
|
|
143
|
-
try {
|
|
144
|
-
consumerPkg = fs.readJsonSync(consumerPkgPath);
|
|
145
|
-
console.log(chalk.cyan(`Updating echo libs in the consumer app, using following file: ${chalk.yellow(consumerPkgPath)}`));
|
|
146
|
-
}
|
|
147
|
-
catch (error) {
|
|
148
|
-
this.error(`Could not read consumer app package.json at ${chalk.yellow(consumerPkgPath)}.`);
|
|
149
|
-
return;
|
|
96
|
+
if (isConsumerUpdated) {
|
|
97
|
+
console.log(`\nDon't forget to run npm install in your consumer app!\n`);
|
|
150
98
|
}
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
async function updateEchoLibsInPackageJson({ pkgPath, pkgLabel, latestVersions, autoBump }) {
|
|
102
|
+
let pkg;
|
|
103
|
+
try {
|
|
104
|
+
pkg = fs.readJsonSync(pkgPath);
|
|
105
|
+
console.log(chalk.cyan(`\nUpdating echo libs in ${pkgLabel}, using: ${chalk.yellow(pkgPath)}`));
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
console.error(`Could not read package.json at ${chalk.yellow(pkgPath)}.`);
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
const sections = [
|
|
112
|
+
'dependencies',
|
|
113
|
+
'devDependencies',
|
|
114
|
+
'peerDependencies'
|
|
115
|
+
];
|
|
116
|
+
let updated = false;
|
|
117
|
+
const changes = {};
|
|
118
|
+
for (const section of sections) {
|
|
119
|
+
const deps = pkg[section] || {};
|
|
120
|
+
for (const lib of Object.keys(deps).filter((n) => n.startsWith('@equinor/echo-'))) {
|
|
121
|
+
const current = deps[lib];
|
|
122
|
+
const latest = latestVersions[lib];
|
|
123
|
+
if (!latest || current === latest)
|
|
124
|
+
continue;
|
|
125
|
+
let newVersion = latest;
|
|
126
|
+
if (!autoBump) {
|
|
127
|
+
const answer = await inquirer.prompt([
|
|
128
|
+
{
|
|
129
|
+
type: 'input',
|
|
130
|
+
name: 'version',
|
|
131
|
+
message: `${lib} (${section}): current ${current}, latest ${latest} [${latest}]:`,
|
|
132
|
+
default: latest
|
|
133
|
+
}
|
|
134
|
+
]);
|
|
135
|
+
newVersion = answer.version || latest;
|
|
136
|
+
}
|
|
137
|
+
if (newVersion !== current) {
|
|
138
|
+
deps[lib] = newVersion;
|
|
139
|
+
updated = true;
|
|
140
|
+
if (!changes[section])
|
|
141
|
+
changes[section] = [];
|
|
142
|
+
changes[section].push(`${lib} to ${newVersion}`);
|
|
143
|
+
}
|
|
158
144
|
}
|
|
159
|
-
|
|
160
|
-
|
|
145
|
+
if (updated) {
|
|
146
|
+
pkg[section] = deps;
|
|
161
147
|
}
|
|
162
|
-
console.log(`\nDon't forget to run npm install in your consumer app!\n`);
|
|
163
|
-
// --- Print echo lib versions after update ---
|
|
164
|
-
await printEchoLibsVersions({
|
|
165
|
-
devHostPkgPath,
|
|
166
|
-
appPkgPath: consumerPkgPath,
|
|
167
|
-
fetchLatest: true
|
|
168
|
-
});
|
|
169
148
|
}
|
|
149
|
+
if (updated) {
|
|
150
|
+
fs.writeJsonSync(pkgPath, pkg, { spaces: 2 });
|
|
151
|
+
logGroupedEchoLibUpdates(changes, console.log);
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
console.log(chalk.gray(`\nNo echo library versions needed updating in ${pkgLabel} package.json.\n`));
|
|
155
|
+
}
|
|
156
|
+
return updated;
|
|
170
157
|
}
|
|
171
|
-
UpdateEchoLibs.run();
|
|
172
|
-
/**
|
|
173
|
-
* Logs grouped updates for echo libraries in consumer app package.json.
|
|
174
|
-
*/
|
|
175
158
|
function logGroupedEchoLibUpdates(changes, logFn) {
|
|
176
|
-
logFn(chalk.green(
|
|
159
|
+
logFn(chalk.green('\nUpdated echo lib versions:\n'));
|
|
177
160
|
['dependencies', 'devDependencies', 'peerDependencies'].forEach((section) => {
|
|
178
161
|
if (changes[section] && changes[section].length > 0) {
|
|
179
162
|
logFn(chalk.cyan(section));
|
|
@@ -184,21 +167,5 @@ function logGroupedEchoLibUpdates(changes, logFn) {
|
|
|
184
167
|
});
|
|
185
168
|
logFn('');
|
|
186
169
|
}
|
|
187
|
-
|
|
188
|
-
const section = consumerPkg[sectionName] || {};
|
|
189
|
-
let sectionUpdated = false;
|
|
190
|
-
for (const lib of echoLibs) {
|
|
191
|
-
if (section[lib] && section[lib] !== deps[lib]) {
|
|
192
|
-
section[lib] = deps[lib];
|
|
193
|
-
sectionUpdated = true;
|
|
194
|
-
if (!changes[sectionName])
|
|
195
|
-
changes[sectionName] = [];
|
|
196
|
-
changes[sectionName].push(`${lib} to ${deps[lib]}`);
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
if (sectionUpdated) {
|
|
200
|
-
consumerPkg[sectionName] = section;
|
|
201
|
-
}
|
|
202
|
-
return sectionUpdated;
|
|
203
|
-
}
|
|
170
|
+
UpdateEchoLibs.run();
|
|
204
171
|
//# sourceMappingURL=update-echo-libs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-echo-libs.js","sourceRoot":"","sources":["../src/update-echo-libs.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAC/F,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAClF,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAEzE
|
|
1
|
+
{"version":3,"file":"update-echo-libs.js","sourceRoot":"","sources":["../src/update-echo-libs.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAC/F,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAClF,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAEzE,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,OAAO;IAC/C,MAAM,CAAC,WAAW,GAAG,8EAA8E,CAAC;IAEpG,MAAM,CAAC,KAAK,GAAG;QACX,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC;YACf,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,uDAAuD;SACvE,CAAC;KACL,CAAC;IAEF,KAAK,CAAC,GAAG;QACL,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAEnD,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAE5C,6BAA6B;QAC7B,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAC/B,OAAO,CAAC,GAAG,EAAE,EACb,cAAc,EACd,UAAU,EACV,UAAU,EACV,KAAK,EACL,eAAe,EACf,cAAc,CACjB,CAAC;QACF,MAAM,eAAe,GAAG,0BAA0B,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,eAAe,EAAE,CAAC;YACnB,OAAO,CAAC,KAAK,CACT,2GAA2G,CAC9G,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QAED,qCAAqC;QACrC,MAAM,qBAAqB,CAAC;YACxB,cAAc;YACd,UAAU,EAAE,eAAe;YAC3B,WAAW,EAAE,IAAI;SACpB,CAAC,CAAC;QAEH,iFAAiF;QACjF,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;QACnD,MAAM,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;QAErD,MAAM,WAAW,GAAG,CAAC,GAAQ,EAAE,EAAE,CAC7B,MAAM,CAAC,IAAI,CAAC;YACR,GAAG,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;YAC3B,GAAG,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC;YAC9B,GAAG,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC;SAClC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAE3D,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,EAAE,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnG,0CAA0C;QAC1C,MAAM,OAAO,GAAG,GAAG,CAAC,0CAA0C,CAAC,CAAC,KAAK,EAAE,CAAC;QACxE,MAAM,cAAc,GAA2B,EAAE,CAAC;QAClD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC5B,cAAc,CAAC,GAAG,CAAC,GAAG,MAAM,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAC;QAEzD,uCAAuC;QACvC,IAAI,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;gBACjC;oBACI,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,4EAA4E;oBACrF,OAAO,EAAE,IAAI;iBAChB;aACJ,CAAC,CAAC;YACH,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC/B,CAAC;QAED,yDAAyD;QACzD,MAAM,gBAAgB,GAAG,MAAM,2BAA2B,CAAC;YACvD,OAAO,EAAE,cAAc;YACvB,QAAQ,EAAE,eAAe;YACzB,cAAc;YACd,QAAQ;SACX,CAAC,CAAC;QAEH,MAAM,iBAAiB,GAAG,MAAM,2BAA2B,CAAC;YACxD,OAAO,EAAE,eAAe;YACxB,QAAQ,EAAE,cAAc;YACxB,cAAc;YACd,QAAQ;SACX,CAAC,CAAC;QAEH,0CAA0C;QAC1C,MAAM,qBAAqB,CAAC;YACxB,cAAc;YACd,UAAU,EAAE,eAAe;YAC3B,WAAW,EAAE,IAAI;SACpB,CAAC,CAAC;QAEH,6BAA6B;QAC7B,IAAI,gBAAgB,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;YACrE,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;YAC3F,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,6BAA6B,CAAC,CAAC;YAC7E,MAAM,mBAAmB,CAAC;gBACtB,cAAc;gBACd,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,2BAA2B,CAAC;gBAC1E,cAAc,EAAE,WAAW;aAC9B,CAAC,CAAC;QACP,CAAC;QAED,IAAI,iBAAiB,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;QAC7E,CAAC;IACL,CAAC;;AAGL,KAAK,UAAU,2BAA2B,CAAC,EACvC,OAAO,EACP,QAAQ,EACR,cAAc,EACd,QAAQ,EAMX;IACG,IAAI,GAAG,CAAC;IACR,IAAI,CAAC;QACD,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,QAAQ,YAAY,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACpG,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,kCAAkC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1E,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,QAAQ,GAAmE;QAC7E,cAAc;QACd,iBAAiB;QACjB,kBAAkB;KACrB,CAAC;IACF,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,OAAO,GAA6B,EAAE,CAAC;IAE7C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAChC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC;YAChF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1B,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,CAAC,MAAM,IAAI,OAAO,KAAK,MAAM;gBAAE,SAAS;YAE5C,IAAI,UAAU,GAAG,MAAM,CAAC;YACxB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACZ,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;oBACjC;wBACI,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,GAAG,GAAG,KAAK,OAAO,cAAc,OAAO,YAAY,MAAM,KAAK,MAAM,IAAI;wBACjF,OAAO,EAAE,MAAM;qBAClB;iBACJ,CAAC,CAAC;gBACH,UAAU,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC;YAC1C,CAAC;YACD,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;gBACzB,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;gBACvB,OAAO,GAAG,IAAI,CAAC;gBACf,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;oBAAE,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;gBAC7C,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,OAAO,UAAU,EAAE,CAAC,CAAC;YACrD,CAAC;QACL,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACV,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;QACxB,CAAC;IACL,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACV,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9C,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACnD,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iDAAiD,QAAQ,kBAAkB,CAAC,CAAC,CAAC;IACzG,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,SAAS,wBAAwB,CAAC,OAAiC,EAAE,KAA4B;IAC7F,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC,CAAC;IACpD,CAAC,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,CAAW,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACnF,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC7B,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,cAAc,CAAC,GAAG,EAAE,CAAC"}
|
|
@@ -17,6 +17,15 @@ function pad(str, len) {
|
|
|
17
17
|
*/
|
|
18
18
|
export async function printEchoLibsVersions(args) {
|
|
19
19
|
const { devHostPkgPath, appPkgPath, fetchLatest } = args;
|
|
20
|
+
const supportedEchoLibs = [
|
|
21
|
+
'@equinor/echo-base',
|
|
22
|
+
'@equinor/echo-components',
|
|
23
|
+
'@equinor/echo-core',
|
|
24
|
+
'@equinor/echo-framework',
|
|
25
|
+
'@equinor/echo-utils',
|
|
26
|
+
'@equinor/echo-search',
|
|
27
|
+
'@equinor/echo-cli'
|
|
28
|
+
];
|
|
20
29
|
let appPkg = {};
|
|
21
30
|
let devHostPkg = {};
|
|
22
31
|
// Error handling for app package.json
|
|
@@ -45,18 +54,19 @@ export async function printEchoLibsVersions(args) {
|
|
|
45
54
|
}
|
|
46
55
|
const getEchoDeps = (pkg) => {
|
|
47
56
|
const merged = {
|
|
57
|
+
...(pkg.dependencies || {}),
|
|
48
58
|
...(pkg.peerDependencies || {}),
|
|
49
59
|
...(pkg.devDependencies || {})
|
|
50
60
|
};
|
|
51
61
|
return Object.entries(merged)
|
|
52
|
-
.filter(([name]) =>
|
|
62
|
+
.filter(([name]) => supportedEchoLibs.includes(name))
|
|
53
63
|
.map(([name, version]) => [name, String(version)]);
|
|
54
64
|
};
|
|
55
65
|
const appDeps = getEchoDeps(appPkg);
|
|
56
66
|
const devHostDeps = getEchoDeps(devHostPkg);
|
|
57
67
|
const allLibs = new Set([...appDeps.map(([n]) => n), ...devHostDeps.map(([n]) => n)]);
|
|
58
68
|
if (allLibs.size === 0) {
|
|
59
|
-
console.log(chalk.gray('No
|
|
69
|
+
console.log(chalk.gray('No supported echo libraries found in either package.json. Supported libs are:'), supportedEchoLibs.join(', '));
|
|
60
70
|
return;
|
|
61
71
|
}
|
|
62
72
|
let spinner;
|
|
@@ -115,7 +125,7 @@ function printEchoLibsTable({ allLibs, versions, appName, fetchLatest }) {
|
|
|
115
125
|
const col1w = 28 + gap, col2w = 28 + gap, col3w = 24;
|
|
116
126
|
const divider = '-'.repeat(col1w + col2w + col3w);
|
|
117
127
|
console.log(chalk.bold(padCell(col1, col1w) + padCell(col2, col2w) + padCell(col3, col3w)));
|
|
118
|
-
console.log(
|
|
128
|
+
console.log(console.log('='.repeat(col1w + col2w + col3w)));
|
|
119
129
|
const libsSorted = Array.from(allLibs).sort();
|
|
120
130
|
libsSorted.forEach((lib, idx) => {
|
|
121
131
|
const { appVersion, devHostVersion, latestVersion } = versions[lib];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"printEchoLibsVersions.js","sourceRoot":"","sources":["../../src/utils/printEchoLibsVersions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAU/D,SAAS,GAAG,CAAC,GAAW,EAAE,GAAW;IACjC,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,IAI3C;IACG,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"printEchoLibsVersions.js","sourceRoot":"","sources":["../../src/utils/printEchoLibsVersions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAU/D,SAAS,GAAG,CAAC,GAAW,EAAE,GAAW;IACjC,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,IAI3C;IACG,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IACzD,MAAM,iBAAiB,GAAG;QACtB,oBAAoB;QACpB,0BAA0B;QAC1B,oBAAoB;QACpB,yBAAyB;QACzB,qBAAqB;QACrB,sBAAsB;QACtB,mBAAmB;KACtB,CAAC;IAEF,IAAI,MAAM,GAAQ,EAAE,CAAC;IACrB,IAAI,UAAU,GAAQ,EAAE,CAAC;IAEzB,sCAAsC;IACtC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,4CAA4C,UAAU,kBAAkB,CAAC,CAAC,CAAC;QACjG,OAAO;IACX,CAAC;IACD,IAAI,CAAC;QACD,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,UAAU,qBAAqB,CAAC,CAAC,CAAC;QAC1E,OAAO;IACX,CAAC;IAED,2CAA2C;IAC3C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iDAAiD,cAAc,kBAAkB,CAAC,CAAC,CAAC;QAC1G,OAAO;IACX,CAAC;IACD,IAAI,CAAC;QACD,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,cAAc,qBAAqB,CAAC,CAAC,CAAC;QAC9E,OAAO;IACX,CAAC;IAED,MAAM,WAAW,GAAG,CAAC,GAAQ,EAAsB,EAAE;QACjD,MAAM,MAAM,GAAG;YACX,GAAG,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;YAC3B,GAAG,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC;YAC/B,GAAG,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC;SACjC,CAAC;QACF,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;aACxB,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aACpD,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAqB,CAAC,CAAC;IAC/E,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IAE5C,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEtF,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,CACP,KAAK,CAAC,IAAI,CAAC,+EAA+E,CAAC,EAC3F,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAC/B,CAAC;QACF,OAAO;IACX,CAAC;IAED,IAAI,OAAO,CAAC;IACZ,IAAI,WAAW,EAAE,CAAC;QACd,OAAO,GAAG,GAAG,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,gDAAgD,CAAC,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QACxB,QAAQ,CAAC,GAAG,CAAC,GAAG;YACZ,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACjD,cAAc,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;SAC5D,CAAC;QACF,IAAI,WAAW,EAAE,CAAC;YACd,IAAI,CAAC;gBACD,QAAQ,CAAC,GAAG,CAAC,CAAC,aAAa,GAAG,MAAM,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC1E,CAAC;YAAC,MAAM,CAAC;gBACL,QAAQ,CAAC,GAAG,CAAC,CAAC,aAAa,GAAG,SAAS,CAAC;YAC5C,CAAC;QACL,CAAC;IACL,CAAC;IACD,IAAI,OAAO;QAAE,OAAO,CAAC,IAAI,EAAE,CAAC;IAE5B,MAAM,OAAO,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAEnD,8BAA8B;IAC9B,OAAO,CAAC,GAAG,CACP,KAAK,CAAC,IAAI,CACN,+IAA+I,CAClJ,CACJ,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,6BAA6B,cAAc,GAAG,CAAC,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CACP,KAAK,CAAC,IAAI,CACN,GAAG,OAAO,gHAAgH,CAC7H,CACJ,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,wBAAwB,UAAU,KAAK,CAAC,CAAC,CAAC;IAEnE,+CAA+C;IAC/C,kBAAkB,CAAC;QACf,OAAO;QACP,QAAQ;QACR,OAAO;QACP,WAAW;KACd,CAAC,CAAC;IAEH,WAAW;IACX,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAC5C,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CACN,WAAW;QACX,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,aAAa,CAAC;YAC/C,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,cAAc,KAAK,CAAC,CAAC,aAAa,CAAC,CAAC,CACtE,CAAC;IACF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CACP,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,8EAA8E,CAAC,CACvG,CAAC;IACN,CAAC;AACL,CAAC;AAED,SAAS,OAAO,CAAC,GAAW,EAAE,GAAW;IACrC,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,kBAAkB,CAAC,EACxB,OAAO,EACP,QAAQ,EACR,OAAO,EACP,WAAW,EAMd;IACG,MAAM,IAAI,GAAG,cAAc,CAAC;IAC5B,MAAM,IAAI,GAAG,GAAG,OAAO,UAAU,CAAC;IAClC,MAAM,IAAI,GAAG,kBAAkB,CAAC;IAChC,MAAM,GAAG,GAAG,CAAC,CAAC;IACd,MAAM,KAAK,GAAG,EAAE,GAAG,GAAG,EAClB,KAAK,GAAG,EAAE,GAAG,GAAG,EAChB,KAAK,GAAG,EAAE,CAAC;IAEf,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC;IAElD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5F,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAE5D,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC5B,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QAEpE,IAAI,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrE,IAAI,WAAW,IAAI,UAAU,EAAE,CAAC;YAC5B,IAAI,CAAC,aAAa,EAAE,CAAC;gBACjB,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YAC3D,CAAC;iBAAM,IAAI,UAAU,KAAK,aAAa,EAAE,CAAC;gBACtC,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,aAAa,GAAG,CAAC,CAAC;YAC5D,CAAC;QACL,CAAC;QAED,IAAI,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjF,IAAI,WAAW,IAAI,cAAc,EAAE,CAAC;YAChC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACjB,UAAU,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YAC/D,CAAC;iBAAM,IAAI,cAAc,KAAK,aAAa,EAAE,CAAC;gBAC1C,UAAU,IAAI,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACJ,UAAU,IAAI,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,aAAa,GAAG,CAAC,CAAC;YAChE,CAAC;QACL,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;QAEvF,qDAAqD;QACrD,IAAI,GAAG,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC"}
|