bundle-stats 4.22.1-beta.0 → 4.22.2-beta.0
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/lib/index.js +7489 -11
- package/package.json +13 -11
- package/tsdown.config.mjs +18 -0
- package/lib/cli.js +0 -86
- package/lib/cli.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/locales.json +0 -3
- package/lib/run.js +0 -127
- package/lib/run.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bundle-stats",
|
|
3
|
-
"version": "4.22.
|
|
3
|
+
"version": "4.22.2-beta.0",
|
|
4
4
|
"description": "In-depth bundle analyzer for webpack(bundle size, assets, modules, packages)",
|
|
5
5
|
"bin": {
|
|
6
6
|
"bundle-stats": "bin/index.js"
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
},
|
|
16
16
|
"scripts": {
|
|
17
17
|
"copy-fixtures": "./scripts/copy-fixtures.sh",
|
|
18
|
-
"build": "npm run clean && npm run copy-fixtures &&
|
|
18
|
+
"build": "npm run clean && npm run copy-fixtures && tsdown",
|
|
19
19
|
"clean": "rimraf lib",
|
|
20
20
|
"lint": "eslint",
|
|
21
21
|
"serve-demo": "./bin/index.js --demo && http-server dist",
|
|
@@ -51,27 +51,29 @@
|
|
|
51
51
|
},
|
|
52
52
|
"homepage": "https://github.com/relative-ci/bundle-stats/blob/master/packages/cli#readme",
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@bundle-stats/cli-utils": "
|
|
55
|
-
"@bundle-stats/plugin-webpack-filter": "
|
|
56
|
-
"@bundle-stats/plugin-webpack-validate": "
|
|
57
|
-
"@bundle-stats/utils": "
|
|
54
|
+
"@bundle-stats/cli-utils": "4.22.2-beta.0",
|
|
55
|
+
"@bundle-stats/plugin-webpack-filter": "4.22.2-beta.0",
|
|
56
|
+
"@bundle-stats/plugin-webpack-validate": "4.22.2-beta.0",
|
|
57
|
+
"@bundle-stats/utils": "4.22.2-beta.0",
|
|
58
58
|
"boxen": "^5.0.0",
|
|
59
59
|
"core-js": "^3.21.0",
|
|
60
|
-
"fs-extra": "^11.
|
|
60
|
+
"fs-extra": "^11.3.5",
|
|
61
61
|
"listr2": "^5.0.1",
|
|
62
62
|
"lodash": "^4.18.1",
|
|
63
|
-
"update-notifier": "^5.0.0",
|
|
64
63
|
"yargs": "^17.4.0"
|
|
65
64
|
},
|
|
66
65
|
"devDependencies": {
|
|
67
|
-
"@playwright/test": "1.
|
|
66
|
+
"@playwright/test": "1.60.0",
|
|
68
67
|
"@types/fs-extra": "^11.0.0",
|
|
69
68
|
"@types/listr": "^0.14.4",
|
|
69
|
+
"@types/update-notifier": "6.0.8",
|
|
70
70
|
"@types/yargs": "^17.0.20",
|
|
71
71
|
"http-server": "14.1.1",
|
|
72
72
|
"jest": "29.7.0",
|
|
73
73
|
"rimraf": "6.1.3",
|
|
74
|
-
"
|
|
74
|
+
"tsdown": "0.22.0",
|
|
75
|
+
"typescript": "5.9.3",
|
|
76
|
+
"update-notifier": "7.3.1"
|
|
75
77
|
},
|
|
76
|
-
"gitHead": "
|
|
78
|
+
"gitHead": "94aa29230add5d8375b72627363b0b4447da3ab2"
|
|
77
79
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { defineConfig } from 'tsdown';
|
|
2
|
+
|
|
3
|
+
export default defineConfig({
|
|
4
|
+
outDir: 'lib',
|
|
5
|
+
entry: './src/index.ts',
|
|
6
|
+
format: 'cjs',
|
|
7
|
+
outputOptions: {
|
|
8
|
+
entryFileNames: '[name].js',
|
|
9
|
+
},
|
|
10
|
+
deps: {
|
|
11
|
+
alwaysBundle: ['update-notifier'],
|
|
12
|
+
},
|
|
13
|
+
dts: false,
|
|
14
|
+
unbundle: false,
|
|
15
|
+
hash: false,
|
|
16
|
+
minify: false,
|
|
17
|
+
sourcemap: false,
|
|
18
|
+
});
|
package/lib/cli.js
DELETED
|
@@ -1,86 +0,0 @@
|
|
|
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
|
-
exports.default = cli;
|
|
7
|
-
const path_1 = __importDefault(require("path"));
|
|
8
|
-
const yargs_1 = __importDefault(require("yargs"));
|
|
9
|
-
const update_notifier_1 = __importDefault(require("update-notifier"));
|
|
10
|
-
const run_1 = __importDefault(require("./run"));
|
|
11
|
-
const DEFAULT_OUTPUT_DIR = './dist';
|
|
12
|
-
const WEEK_IN_MS = 1000 * 60 * 60 * 24 * 7;
|
|
13
|
-
async function cli(pkg) {
|
|
14
|
-
const notifier = (0, update_notifier_1.default)({ pkg, updateCheckInterval: WEEK_IN_MS });
|
|
15
|
-
if (notifier.update) {
|
|
16
|
-
notifier.notify();
|
|
17
|
-
}
|
|
18
|
-
const { demo } = yargs_1.default.options({ demo: { type: 'boolean', default: false } }).parseSync();
|
|
19
|
-
if (demo) {
|
|
20
|
-
await (0, run_1.default)({
|
|
21
|
-
baseline: false,
|
|
22
|
-
compare: false,
|
|
23
|
-
html: true,
|
|
24
|
-
json: true,
|
|
25
|
-
outDir: DEFAULT_OUTPUT_DIR,
|
|
26
|
-
artifactFilepaths: [
|
|
27
|
-
path_1.default.resolve(__dirname, '../__fixtures__/webpack-stats.current.json'),
|
|
28
|
-
path_1.default.resolve(__dirname, '../__fixtures__/webpack-stats.baseline.json'),
|
|
29
|
-
],
|
|
30
|
-
});
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
const args = yargs_1.default
|
|
34
|
-
.usage('Usage: $0 OPTIONS [STATS_FILE]...')
|
|
35
|
-
.demandCommand(1, 'Webpack stats file path is required.')
|
|
36
|
-
.option('out-dir', {
|
|
37
|
-
description: 'Output directory',
|
|
38
|
-
type: 'string',
|
|
39
|
-
default: DEFAULT_OUTPUT_DIR,
|
|
40
|
-
})
|
|
41
|
-
.option('compare', {
|
|
42
|
-
description: 'Use local saved stats for comparison',
|
|
43
|
-
type: 'boolean',
|
|
44
|
-
default: true,
|
|
45
|
-
})
|
|
46
|
-
.option('baseline', {
|
|
47
|
-
description: 'Save current stats as baseline',
|
|
48
|
-
type: 'boolean',
|
|
49
|
-
default: false,
|
|
50
|
-
})
|
|
51
|
-
.option('baseline-filepath', {
|
|
52
|
-
description: 'Baseline filepath, default: node_modules/.cache/bundle-stats/baseline.json',
|
|
53
|
-
type: 'string',
|
|
54
|
-
default: undefined,
|
|
55
|
-
})
|
|
56
|
-
.option('html', {
|
|
57
|
-
description: 'Save HTML report',
|
|
58
|
-
type: 'boolean',
|
|
59
|
-
default: true,
|
|
60
|
-
})
|
|
61
|
-
.option('json', {
|
|
62
|
-
description: 'Save JSON data',
|
|
63
|
-
type: 'boolean',
|
|
64
|
-
default: false,
|
|
65
|
-
})
|
|
66
|
-
.option('demo', {
|
|
67
|
-
description: 'Generate demo reports',
|
|
68
|
-
type: 'boolean',
|
|
69
|
-
default: false,
|
|
70
|
-
})
|
|
71
|
-
.alias('d', 'out-dir')
|
|
72
|
-
.alias('h', 'help')
|
|
73
|
-
.alias('v', 'version')
|
|
74
|
-
.help()
|
|
75
|
-
.parseSync();
|
|
76
|
-
await (0, run_1.default)({
|
|
77
|
-
outDir: args.outDir,
|
|
78
|
-
compare: args.compare,
|
|
79
|
-
baseline: args.baseline,
|
|
80
|
-
baselineFilepath: args.baselineFilepath,
|
|
81
|
-
html: args.html,
|
|
82
|
-
json: args.json,
|
|
83
|
-
artifactFilepaths: args._,
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
//# sourceMappingURL=cli.js.map
|
package/lib/cli.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,6BAAuC;AAA9B,2GAAA,OAAO,OAAO;AACvB,6BAAuC;AAA9B,2GAAA,OAAO,OAAO"}
|
package/lib/locales.json
DELETED
package/lib/run.js
DELETED
|
@@ -1,127 +0,0 @@
|
|
|
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
|
-
exports.default = run;
|
|
7
|
-
const path_1 = __importDefault(require("path"));
|
|
8
|
-
const fs_extra_1 = require("fs-extra");
|
|
9
|
-
const listr2_1 = require("listr2");
|
|
10
|
-
const lodash_1 = require("lodash");
|
|
11
|
-
const boxen_1 = __importDefault(require("boxen"));
|
|
12
|
-
require("@bundle-stats/utils/lib/polyfills");
|
|
13
|
-
const utils_1 = require("@bundle-stats/utils");
|
|
14
|
-
const plugin_webpack_filter_1 = __importDefault(require("@bundle-stats/plugin-webpack-filter"));
|
|
15
|
-
const plugin_webpack_validate_1 = __importDefault(require("@bundle-stats/plugin-webpack-validate"));
|
|
16
|
-
const cli_utils_1 = require("@bundle-stats/cli-utils");
|
|
17
|
-
const locales_json_1 = __importDefault(require("./locales.json"));
|
|
18
|
-
const REPORT_INFO_COLORS = {
|
|
19
|
-
CHANGE: 'blue',
|
|
20
|
-
HIGH_NEGATIVE: 'red',
|
|
21
|
-
NEGATIVE: 'red',
|
|
22
|
-
LOW_NEGATIVE: 'yellow',
|
|
23
|
-
NO_CHANGE: 'gray',
|
|
24
|
-
LOW_POSITIVE: 'green',
|
|
25
|
-
POSITIVE: 'green',
|
|
26
|
-
HIGH_POSITIVE: 'green',
|
|
27
|
-
};
|
|
28
|
-
async function run(options) {
|
|
29
|
-
const { baseline, baselineFilepath, compare, html, json, outDir, artifactFilepaths } = options;
|
|
30
|
-
const baselineAbsolutePath = (0, cli_utils_1.getBaselinePath)(process.cwd(), outDir, baselineFilepath);
|
|
31
|
-
const baselinePath = (0, cli_utils_1.getBaselineRelativePath)(process.cwd(), '', baselineAbsolutePath);
|
|
32
|
-
const tasks = new listr2_1.Listr([
|
|
33
|
-
{
|
|
34
|
-
title: 'Read Webpack stats files',
|
|
35
|
-
task: async (ctx) => {
|
|
36
|
-
const sources = await Promise.all(artifactFilepaths.map((filepath) => (0, cli_utils_1.readJSONStream)(filepath)));
|
|
37
|
-
sources.forEach((source, index) => {
|
|
38
|
-
const invalid = (0, plugin_webpack_validate_1.default)(source);
|
|
39
|
-
if (invalid) {
|
|
40
|
-
throw new Error(`${invalid}\n${locales_json_1.default.WEBPACK_CONFIGURATION_URL}\nFilepath: ${artifactFilepaths[index]}`);
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
ctx.sources = sources.map((source) => ({ webpack: (0, plugin_webpack_filter_1.default)(source) }));
|
|
44
|
-
},
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
title: 'Read baseline data',
|
|
48
|
-
task: async (ctx, task) => {
|
|
49
|
-
task.title = `${task.title} (${baselinePath})`;
|
|
50
|
-
ctx.sources = ctx.sources.concat([{ webpack: (0, plugin_webpack_filter_1.default)(ctx.baselineStats) }]);
|
|
51
|
-
},
|
|
52
|
-
skip: async (ctx) => {
|
|
53
|
-
if (!compare) {
|
|
54
|
-
return cli_utils_1.TEXT.CLI_NO_COMPARE_MODE;
|
|
55
|
-
}
|
|
56
|
-
if (artifactFilepaths.length !== 1) {
|
|
57
|
-
return cli_utils_1.TEXT.CLI_MULTIPLE_STATS;
|
|
58
|
-
}
|
|
59
|
-
let baselineStats = {};
|
|
60
|
-
try {
|
|
61
|
-
baselineStats = await (0, cli_utils_1.readBaseline)(baselineAbsolutePath);
|
|
62
|
-
ctx.baselineStats = baselineStats;
|
|
63
|
-
}
|
|
64
|
-
catch (err) {
|
|
65
|
-
return cli_utils_1.TEXT.BASELINE_MISSING;
|
|
66
|
-
}
|
|
67
|
-
return false;
|
|
68
|
-
},
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
title: 'Write baseline data',
|
|
72
|
-
task: (ctx, task) => {
|
|
73
|
-
const stats = (0, lodash_1.get)(ctx, 'sources[0]webpack');
|
|
74
|
-
const filteredWebpackStats = (0, plugin_webpack_filter_1.default)(stats);
|
|
75
|
-
return (0, cli_utils_1.writeBaseline)(filteredWebpackStats, baselineAbsolutePath).then(() => {
|
|
76
|
-
task.title = `${task.title} (${baselinePath})`;
|
|
77
|
-
});
|
|
78
|
-
},
|
|
79
|
-
skip: () => !baseline && cli_utils_1.TEXT.CLI_NO_BASELINE,
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
title: 'Process data',
|
|
83
|
-
task: (ctx) => {
|
|
84
|
-
ctx.jobs = (0, utils_1.createJobs)(ctx.sources);
|
|
85
|
-
ctx.report = (0, utils_1.createReport)(ctx.jobs);
|
|
86
|
-
},
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
title: 'Generate reports',
|
|
90
|
-
task: async (ctx) => {
|
|
91
|
-
ctx.artifacts = await (0, cli_utils_1.createArtifacts)(ctx.jobs, ctx.report, { html, json });
|
|
92
|
-
},
|
|
93
|
-
},
|
|
94
|
-
{
|
|
95
|
-
title: 'Save reports',
|
|
96
|
-
task: (ctx) => new listr2_1.Listr(Object.values(ctx.artifacts).map(({ filename, output }) => ({
|
|
97
|
-
title: filename,
|
|
98
|
-
task: async () => {
|
|
99
|
-
const filepath = path_1.default.join(outDir, filename);
|
|
100
|
-
await (0, fs_extra_1.outputFile)(filepath, output);
|
|
101
|
-
ctx.output = [...(ctx.output ? ctx.output : []), filepath];
|
|
102
|
-
},
|
|
103
|
-
})), { concurrent: true }),
|
|
104
|
-
},
|
|
105
|
-
]);
|
|
106
|
-
let result = {};
|
|
107
|
-
try {
|
|
108
|
-
result = await tasks.run();
|
|
109
|
-
}
|
|
110
|
-
catch (err) {
|
|
111
|
-
console.error(err.message);
|
|
112
|
-
}
|
|
113
|
-
const { output, report } = result;
|
|
114
|
-
const reportInfo = (0, cli_utils_1.getReportInfo)(report);
|
|
115
|
-
if (reportInfo?.text) {
|
|
116
|
-
const infoBox = (0, boxen_1.default)(reportInfo.text, {
|
|
117
|
-
padding: 1,
|
|
118
|
-
borderColor: reportInfo.info?.deltaType
|
|
119
|
-
? REPORT_INFO_COLORS[reportInfo.info.deltaType]
|
|
120
|
-
: REPORT_INFO_COLORS.NO_CHANGE,
|
|
121
|
-
});
|
|
122
|
-
console.log(`\n${infoBox}`);
|
|
123
|
-
}
|
|
124
|
-
console.log('\nArtifacts:');
|
|
125
|
-
output?.map((reportPath) => console.log(`- ${reportPath}`));
|
|
126
|
-
}
|
|
127
|
-
//# sourceMappingURL=run.js.map
|
package/lib/run.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":";;;;;AA8CA,sBA8HC;AA3KD,gDAAwB;AACxB,uCAAsC;AACtC,mCAA+B;AAC/B,mCAA6B;AAC7B,kDAA0B;AAE1B,6CAA2C;AAC3C,+CAA+D;AAE/D,gGAAgE;AAChE,oGAAoE;AACpE,uDASiC;AAEjC,kEAAqC;AAErC,MAAM,kBAAkB,GAA2C;IACjE,MAAM,EAAE,MAAM;IACd,aAAa,EAAE,KAAK;IACpB,QAAQ,EAAE,KAAK;IACf,YAAY,EAAE,QAAQ;IACtB,SAAS,EAAE,MAAM;IACjB,YAAY,EAAE,OAAO;IACrB,QAAQ,EAAE,OAAO;IACjB,aAAa,EAAE,OAAO;CACvB,CAAC;AAYa,KAAK,UAAU,GAAG,CAAC,OAAmB;IACnD,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC;IAE/F,MAAM,oBAAoB,GAAG,IAAA,2BAAe,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAEtF,MAAM,YAAY,GAAG,IAAA,mCAAuB,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,oBAAoB,CAAC,CAAC;IAEtF,MAAM,KAAK,GAAG,IAAI,cAAK,CAAC;QACtB;YACE,KAAK,EAAE,0BAA0B;YACjC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBAClB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,iBAAiB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAA,0BAAc,EAAmB,QAAQ,CAAC,CAAC,CAChF,CAAC;gBAEF,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;oBAChC,MAAM,OAAO,GAAG,IAAA,iCAAe,EAAC,MAAM,CAAC,CAAC;oBAExC,IAAI,OAAO,EAAE,CAAC;wBACZ,MAAM,IAAI,KAAK,CACb,GAAG,OAAO,KAAK,sBAAO,CAAC,yBAAyB,eAAe,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAC1F,CAAC;oBACJ,CAAC;gBACH,CAAC,CAAC,CAAC;gBAEH,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAA,+BAAa,EAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9E,CAAC;SACF;QACD;YACE,KAAK,EAAE,oBAAoB;YAC3B,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBAExB,IAAI,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,KAAK,KAAK,YAAY,GAAG,CAAC;gBAE/C,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,IAAA,+BAAa,EAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;YACpF,CAAC;YACD,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBAClB,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO,gBAAI,CAAC,mBAAmB,CAAC;gBAClC,CAAC;gBAED,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACnC,OAAO,gBAAI,CAAC,kBAAkB,CAAC;gBACjC,CAAC;gBAED,IAAI,aAAa,GAAG,EAAE,CAAC;gBAEvB,IAAI,CAAC;oBACH,aAAa,GAAG,MAAM,IAAA,wBAAY,EAAC,oBAAoB,CAAC,CAAC;oBACzD,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;gBACpC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,gBAAI,CAAC,gBAAgB,CAAC;gBAC/B,CAAC;gBAED,OAAO,KAAK,CAAC;YACf,CAAC;SACF;QACD;YACE,KAAK,EAAE,qBAAqB;YAC5B,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;gBAClB,MAAM,KAAK,GAAG,IAAA,YAAG,EAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;gBAC5C,MAAM,oBAAoB,GAAG,IAAA,+BAAa,EAAC,KAAK,CAAS,CAAC;gBAE1D,OAAO,IAAA,yBAAa,EAAC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;oBAEzE,IAAI,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,KAAK,KAAK,YAAY,GAAG,CAAC;gBACjD,CAAC,CAAC,CAAC;YACL,CAAC;YACD,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,IAAI,gBAAI,CAAC,eAAe;SAC9C;QACD;YACE,KAAK,EAAE,cAAc;YACrB,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;gBACZ,GAAG,CAAC,IAAI,GAAG,IAAA,kBAAU,EAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACnC,GAAG,CAAC,MAAM,GAAG,IAAA,oBAAY,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC;SACF;QACD;YACE,KAAK,EAAE,kBAAkB;YACzB,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBAClB,GAAG,CAAC,SAAS,GAAG,MAAM,IAAA,2BAAe,EAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9E,CAAC;SACF;QACD;YACE,KAAK,EAAE,cAAc;YACrB,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CACZ,IAAI,cAAK,CACT,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAO,EAAE,EAAE,CAAC,CAAC;gBAC/D,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,KAAK,IAAI,EAAE;oBACf,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;oBAC7C,MAAM,IAAA,qBAAU,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;oBAEnC,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;gBAC7D,CAAC;aACF,CAAC,CAAC,EACH,EAAE,UAAU,EAAE,IAAI,EAAE,CACrB;SACF;KACF,CAAC,CAAC;IAEH,IAAI,MAAM,GAAG,EAAkC,CAAC;IAEhD,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC;IAC7B,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAElC,MAAM,UAAU,GAAG,IAAA,yBAAa,EAAC,MAAM,CAAC,CAAC;IAEzC,IAAI,UAAU,EAAE,IAAI,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,IAAA,eAAK,EAAC,UAAU,CAAC,IAAI,EAAE;YACrC,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,UAAU,CAAC,IAAI,EAAE,SAAS;gBACrC,CAAC,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC/C,CAAC,CAAC,kBAAkB,CAAC,SAAS;SACjC,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC5B,MAAM,EAAE,GAAG,CAAC,CAAC,UAAe,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,UAAU,EAAE,CAAC,CAAC,CAAC;AACnE,CAAC"}
|