@pnpm/reviewing.dependencies-hierarchy 1001.3.1 → 1001.3.3

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/getPkgInfo.js CHANGED
@@ -44,12 +44,14 @@ function getPkgInfo(opts) {
44
44
  isMissing = true;
45
45
  isSkipped = opts.skipped.has(depPath);
46
46
  }
47
- resolved = (0, lockfile_utils_1.pkgSnapshotToResolution)(depPath, pkgSnapshot, opts.registries).tarball;
48
- depType = opts.depTypes[depPath];
49
- optional = pkgSnapshot.optional;
50
- if ('integrity' in pkgSnapshot.resolution) {
51
- integrity = pkgSnapshot.resolution.integrity;
47
+ if (pkgSnapshot) {
48
+ resolved = (0, lockfile_utils_1.pkgSnapshotToResolution)(depPath, pkgSnapshot, opts.registries).tarball;
49
+ optional = pkgSnapshot.optional;
50
+ if ('integrity' in pkgSnapshot.resolution) {
51
+ integrity = pkgSnapshot.resolution.integrity;
52
+ }
52
53
  }
54
+ depType = opts.depTypes[depPath];
53
55
  }
54
56
  else {
55
57
  name = opts.alias;
@@ -1 +1 @@
1
- {"version":3,"file":"getPkgInfo.js","sourceRoot":"","sources":["../src/getPkgInfo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getPkgInfo.js","sourceRoot":"","sources":["../src/getPkgInfo.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pnpm/reviewing.dependencies-hierarchy",
3
- "version": "1001.3.1",
3
+ "version": "1001.3.3",
4
4
  "description": "Creates a dependencies hierarchy for a symlinked `node_modules`",
5
5
  "keywords": [
6
6
  "pnpm",
@@ -34,23 +34,23 @@
34
34
  "resolve-link-target": "^2.0.0",
35
35
  "semver": "^7.7.1",
36
36
  "@pnpm/lockfile.detect-dep-types": "1001.0.25",
37
- "@pnpm/lockfile.fs": "1001.1.30",
37
+ "@pnpm/dependency-path": "1001.1.10",
38
+ "@pnpm/lockfile.fs": "1001.1.31",
38
39
  "@pnpm/lockfile.utils": "1004.0.2",
39
40
  "@pnpm/matcher": "1000.1.0",
40
- "@pnpm/normalize-registries": "1000.1.9",
41
41
  "@pnpm/modules-yaml": "1002.0.1",
42
+ "@pnpm/normalize-registries": "1000.1.9",
42
43
  "@pnpm/read-package-json": "1000.1.7",
43
- "@pnpm/dependency-path": "1001.1.10",
44
44
  "@pnpm/read-modules-dir": "1000.0.0",
45
- "@pnpm/store.cafs": "1000.1.4",
46
- "@pnpm/types": "1001.3.0"
45
+ "@pnpm/types": "1001.3.0",
46
+ "@pnpm/store.cafs": "1000.1.4"
47
47
  },
48
48
  "devDependencies": {
49
49
  "@types/normalize-path": "^3.0.2",
50
50
  "@types/semver": "7.5.3",
51
51
  "@pnpm/constants": "1001.3.1",
52
- "@pnpm/test-fixtures": "1000.0.0",
53
- "@pnpm/reviewing.dependencies-hierarchy": "1001.3.1"
52
+ "@pnpm/reviewing.dependencies-hierarchy": "1001.3.3",
53
+ "@pnpm/test-fixtures": "1000.0.0"
54
54
  },
55
55
  "engines": {
56
56
  "node": ">=18.12"
@@ -1,22 +0,0 @@
1
- export interface PackageNode {
2
- alias: string;
3
- circular?: true;
4
- deduped?: true;
5
- /**
6
- * When `deduped` is true, the number of transitive dependencies that were
7
- * elided because this subtree was already expanded elsewhere in the tree.
8
- */
9
- dedupedDependenciesCount?: number;
10
- dependencies?: PackageNode[];
11
- dev?: boolean;
12
- isPeer: boolean;
13
- isSkipped: boolean;
14
- isMissing: boolean;
15
- name: string;
16
- optional?: true;
17
- path: string;
18
- resolved?: string;
19
- searched?: true;
20
- version: string;
21
- searchMessage?: string;
22
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=PackageNode.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PackageNode.js","sourceRoot":"","sources":["../src/PackageNode.ts"],"names":[],"mappings":""}
@@ -1,25 +0,0 @@
1
- import { type DependenciesField, type Finder, type Registries } from '@pnpm/types';
2
- import { type PackageNode } from './PackageNode.js';
3
- export interface DependenciesHierarchy {
4
- dependencies?: PackageNode[];
5
- devDependencies?: PackageNode[];
6
- optionalDependencies?: PackageNode[];
7
- unsavedDependencies?: PackageNode[];
8
- }
9
- export declare function buildDependenciesHierarchy(projectPaths: string[] | undefined, maybeOpts: {
10
- depth: number;
11
- excludePeerDependencies?: boolean;
12
- include?: {
13
- [dependenciesField in DependenciesField]: boolean;
14
- };
15
- registries?: Registries;
16
- onlyProjects?: boolean;
17
- search?: Finder;
18
- showDedupedSearchMatches?: boolean;
19
- lockfileDir: string;
20
- checkWantedLockfileOnly?: boolean;
21
- modulesDir?: string;
22
- virtualStoreDirMaxLength: number;
23
- }): Promise<{
24
- [projectDir: string]: DependenciesHierarchy;
25
- }>;
@@ -1,262 +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.buildDependenciesHierarchy = buildDependenciesHierarchy;
7
- const path_1 = __importDefault(require("path"));
8
- const lockfile_fs_1 = require("@pnpm/lockfile.fs");
9
- const lockfile_detect_dep_types_1 = require("@pnpm/lockfile.detect-dep-types");
10
- const modules_yaml_1 = require("@pnpm/modules-yaml");
11
- const normalize_registries_1 = require("@pnpm/normalize-registries");
12
- const read_modules_dir_1 = require("@pnpm/read-modules-dir");
13
- const read_package_json_1 = require("@pnpm/read-package-json");
14
- const types_1 = require("@pnpm/types");
15
- const normalize_path_1 = __importDefault(require("normalize-path"));
16
- const realpath_missing_1 = __importDefault(require("realpath-missing"));
17
- const resolve_link_target_1 = __importDefault(require("resolve-link-target"));
18
- const buildDependencyGraph_js_1 = require("./buildDependencyGraph.js");
19
- const getTree_js_1 = require("./getTree.js");
20
- const getTreeNodeChildId_js_1 = require("./getTreeNodeChildId.js");
21
- const getPkgInfo_js_1 = require("./getPkgInfo.js");
22
- async function buildDependenciesHierarchy(projectPaths, maybeOpts) {
23
- if (!maybeOpts?.lockfileDir) {
24
- throw new TypeError('opts.lockfileDir is required');
25
- }
26
- const modulesDir = await (0, realpath_missing_1.default)(path_1.default.join(maybeOpts.lockfileDir, maybeOpts.modulesDir ?? 'node_modules'));
27
- const modules = await (0, modules_yaml_1.readModulesManifest)(modulesDir);
28
- const registries = (0, normalize_registries_1.normalizeRegistries)({
29
- ...maybeOpts?.registries,
30
- ...modules?.registries,
31
- });
32
- const internalPnpmDir = path_1.default.join(modulesDir, '.pnpm');
33
- const currentLockfile = await (0, lockfile_fs_1.readCurrentLockfile)(internalPnpmDir, { ignoreIncompatible: false });
34
- const wantedLockfile = await (0, lockfile_fs_1.readWantedLockfile)(maybeOpts.lockfileDir, { ignoreIncompatible: false });
35
- if (projectPaths == null) {
36
- projectPaths = Object.keys(wantedLockfile?.importers ?? {})
37
- .map((id) => path_1.default.join(maybeOpts.lockfileDir, id));
38
- }
39
- const result = {};
40
- const lockfileToUse = maybeOpts.checkWantedLockfileOnly ? wantedLockfile : currentLockfile;
41
- if (!lockfileToUse) {
42
- for (const projectPath of projectPaths) {
43
- result[projectPath] = {};
44
- }
45
- return result;
46
- }
47
- const opts = {
48
- depth: maybeOpts.depth || 0,
49
- excludePeerDependencies: maybeOpts.excludePeerDependencies,
50
- include: maybeOpts.include ?? {
51
- dependencies: true,
52
- devDependencies: true,
53
- optionalDependencies: true,
54
- },
55
- lockfileDir: maybeOpts.lockfileDir,
56
- checkWantedLockfileOnly: maybeOpts.checkWantedLockfileOnly,
57
- onlyProjects: maybeOpts.onlyProjects,
58
- registries,
59
- search: maybeOpts.search,
60
- showDedupedSearchMatches: maybeOpts.showDedupedSearchMatches ?? (maybeOpts.search != null),
61
- skipped: new Set(modules?.skipped ?? []),
62
- modulesDir,
63
- virtualStoreDir: modules?.virtualStoreDir,
64
- virtualStoreDirMaxLength: modules?.virtualStoreDirMaxLength ?? maybeOpts.virtualStoreDirMaxLength,
65
- };
66
- // Build the dependency graph ONCE for all importers and share a single
67
- // MaterializationCache so that identical subtrees are only materialized once.
68
- const allRootIds = [];
69
- for (const projectPath of projectPaths) {
70
- const importerId = (0, lockfile_fs_1.getLockfileImporterId)(opts.lockfileDir, projectPath);
71
- if (lockfileToUse.importers[importerId]) {
72
- allRootIds.push({ type: 'importer', importerId });
73
- }
74
- }
75
- const sharedGraph = (0, buildDependencyGraph_js_1.buildDependencyGraph)(allRootIds, {
76
- currentPackages: lockfileToUse.packages ?? {},
77
- importers: lockfileToUse.importers,
78
- include: opts.include,
79
- lockfileDir: opts.lockfileDir,
80
- });
81
- const sharedMaterializationCache = new Map();
82
- const sharedDepTypes = (0, lockfile_detect_dep_types_1.detectDepTypes)(lockfileToUse);
83
- const ctx = {
84
- currentLockfile: lockfileToUse,
85
- wantedLockfile,
86
- ...opts,
87
- graph: sharedGraph,
88
- materializationCache: sharedMaterializationCache,
89
- depTypes: sharedDepTypes,
90
- };
91
- const getHierarchy = dependenciesHierarchyForPackage.bind(null, ctx);
92
- const pairs = await Promise.all(projectPaths.map(async (projectPath) => {
93
- return [
94
- projectPath,
95
- await getHierarchy(projectPath),
96
- ];
97
- }));
98
- for (const [projectPath, dependenciesHierarchy] of pairs) {
99
- result[projectPath] = dependenciesHierarchy;
100
- }
101
- return result;
102
- }
103
- async function dependenciesHierarchyForPackage(opts, projectPath) {
104
- const { currentLockfile, wantedLockfile, graph, materializationCache, depTypes } = opts;
105
- const importerId = (0, lockfile_fs_1.getLockfileImporterId)(opts.lockfileDir, projectPath);
106
- if (!currentLockfile.importers[importerId])
107
- return {};
108
- const modulesDir = opts.modulesDir && path_1.default.isAbsolute(opts.modulesDir)
109
- ? opts.modulesDir
110
- : path_1.default.join(projectPath, opts.modulesDir ?? 'node_modules');
111
- const savedDeps = getAllDirectDependencies(currentLockfile.importers[importerId]);
112
- // When searching, unsaved deps are irrelevant — they aren't in the lockfile
113
- // graph and can't have dependency subtrees showing paths to the search target.
114
- const unsavedDeps = opts.search
115
- ? []
116
- : ((await (0, read_modules_dir_1.readModulesDir)(modulesDir)) ?? []).filter((directDep) => !savedDeps[directDep]);
117
- const currentPackages = currentLockfile.packages ?? {};
118
- const wantedPackages = wantedLockfile?.packages ?? {};
119
- const getTreeOpts = {
120
- ...opts,
121
- currentPackages,
122
- importers: currentLockfile.importers,
123
- rewriteLinkVersionDir: projectPath,
124
- maxDepth: opts.depth,
125
- wantedPackages,
126
- modulesDir,
127
- };
128
- const parentId = { type: 'importer', importerId };
129
- const getChildrenTree = (nodeId, parentDir) => (0, getTree_js_1.getTree)({ ...getTreeOpts, parentDir, graph, materializationCache }, nodeId);
130
- const result = {};
131
- for (const dependenciesField of types_1.DEPENDENCIES_FIELDS.sort().filter(dependenciesField => opts.include[dependenciesField])) {
132
- const topDeps = currentLockfile.importers[importerId][dependenciesField] ?? {};
133
- result[dependenciesField] = [];
134
- for (const alias in topDeps) {
135
- const ref = topDeps[alias];
136
- const { pkgInfo: packageInfo, readManifest } = (0, getPkgInfo_js_1.getPkgInfo)({
137
- alias,
138
- currentPackages: currentLockfile.packages ?? {},
139
- depTypes,
140
- rewriteLinkVersionDir: projectPath,
141
- linkedPathBaseDir: projectPath,
142
- ref,
143
- registries: opts.registries,
144
- skipped: opts.skipped,
145
- wantedPackages: wantedLockfile?.packages ?? {},
146
- virtualStoreDir: opts.virtualStoreDir,
147
- virtualStoreDirMaxLength: opts.virtualStoreDirMaxLength,
148
- modulesDir,
149
- });
150
- let newEntry = null;
151
- const searchMatch = opts.search?.({
152
- alias,
153
- name: packageInfo.name,
154
- version: packageInfo.version,
155
- readManifest,
156
- });
157
- const nodeId = (0, getTreeNodeChildId_js_1.getTreeNodeChildId)({
158
- parentId,
159
- dep: { alias, ref },
160
- lockfileDir: opts.lockfileDir,
161
- importers: currentLockfile.importers,
162
- });
163
- if (opts.onlyProjects && nodeId?.type !== 'importer') {
164
- continue;
165
- }
166
- let treeResult;
167
- if (nodeId == null) {
168
- if ((opts.search != null) && !searchMatch)
169
- continue;
170
- newEntry = packageInfo;
171
- }
172
- else {
173
- treeResult = getChildrenTree(nodeId, packageInfo.path);
174
- if (treeResult.deduped) {
175
- // This subtree was already materialized for a previous importer.
176
- const showDeduped = opts.search == null || Boolean(searchMatch) ||
177
- Boolean(opts.showDedupedSearchMatches && treeResult.hasSearchMatch);
178
- if (showDeduped) {
179
- newEntry = packageInfo;
180
- if (treeResult.count > 0) {
181
- newEntry.deduped = true;
182
- newEntry.dedupedDependenciesCount = treeResult.count;
183
- }
184
- }
185
- }
186
- else if (treeResult.nodes.length > 0) {
187
- newEntry = {
188
- ...packageInfo,
189
- dependencies: treeResult.nodes,
190
- };
191
- }
192
- else if ((opts.search == null) || searchMatch) {
193
- newEntry = packageInfo;
194
- }
195
- }
196
- if (newEntry != null) {
197
- if (searchMatch) {
198
- newEntry.searched = true;
199
- if (typeof searchMatch === 'string') {
200
- newEntry.searchMessage = searchMatch;
201
- }
202
- }
203
- else if (newEntry.deduped && opts.showDedupedSearchMatches && treeResult?.hasSearchMatch) {
204
- newEntry.searched = true;
205
- if (treeResult.searchMessages.length > 0) {
206
- newEntry.searchMessage = treeResult.searchMessages.join('\n');
207
- }
208
- }
209
- result[dependenciesField].push(newEntry);
210
- }
211
- }
212
- }
213
- if (unsavedDeps.length > 0)
214
- await Promise.all(unsavedDeps.map(async (unsavedDep) => {
215
- let pkgPath = path_1.default.join(modulesDir, unsavedDep);
216
- let version;
217
- try {
218
- pkgPath = await (0, resolve_link_target_1.default)(pkgPath);
219
- version = `link:${(0, normalize_path_1.default)(path_1.default.relative(projectPath, pkgPath))}`;
220
- }
221
- catch {
222
- // if error happened. The package is not a link
223
- const pkg = await (0, read_package_json_1.safeReadPackageJsonFromDir)(pkgPath);
224
- version = pkg?.version ?? 'undefined';
225
- }
226
- const pkg = {
227
- alias: unsavedDep,
228
- isMissing: false,
229
- isPeer: false,
230
- isSkipped: false,
231
- name: unsavedDep,
232
- path: pkgPath,
233
- version,
234
- };
235
- const searchMatch = opts.search?.({
236
- alias: pkg.alias,
237
- name: pkg.name,
238
- version: pkg.version,
239
- readManifest: () => (0, read_package_json_1.readPackageJsonFromDirSync)(pkgPath),
240
- });
241
- if ((opts.search != null) && !searchMatch)
242
- return;
243
- const newEntry = pkg;
244
- if (searchMatch) {
245
- newEntry.searched = true;
246
- if (typeof searchMatch === 'string') {
247
- newEntry.searchMessage = searchMatch;
248
- }
249
- }
250
- result.unsavedDependencies = result.unsavedDependencies ?? [];
251
- result.unsavedDependencies.push(newEntry);
252
- }));
253
- return result;
254
- }
255
- function getAllDirectDependencies(projectSnapshot) {
256
- return {
257
- ...projectSnapshot.dependencies,
258
- ...projectSnapshot.devDependencies,
259
- ...projectSnapshot.optionalDependencies,
260
- };
261
- }
262
- //# sourceMappingURL=buildDependenciesHierarchy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"buildDependenciesHierarchy.js","sourceRoot":"","sources":["../src/buildDependenciesHierarchy.ts"],"names":[],"mappings":";;;;;AAgCA,gEAsGC;AAtID,gDAAuB;AACvB,mDAO0B;AAC1B,+EAAgE;AAChE,qDAAwD;AACxD,qEAAgE;AAChE,6DAAuD;AACvD,+DAAgG;AAChG,uCAAuG;AACvG,oEAA0C;AAC1C,wEAA8C;AAC9C,8EAAmD;AAEnD,uEAAgE;AAChE,6CAAwG;AACxG,mEAA4D;AAC5D,mDAA4C;AAUrC,KAAK,UAAU,0BAA0B,CAC9C,YAAkC,EAClC,SAYC;IAED,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC;QAC5B,MAAM,IAAI,SAAS,CAAC,8BAA8B,CAAC,CAAA;IACrD,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,IAAA,0BAAe,EAAC,cAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,UAAU,IAAI,cAAc,CAAC,CAAC,CAAA;IAClH,MAAM,OAAO,GAAG,MAAM,IAAA,kCAAmB,EAAC,UAAU,CAAC,CAAA;IACrD,MAAM,UAAU,GAAG,IAAA,0CAAmB,EAAC;QACrC,GAAG,SAAS,EAAE,UAAU;QACxB,GAAG,OAAO,EAAE,UAAU;KACvB,CAAC,CAAA;IACF,MAAM,eAAe,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IACtD,MAAM,eAAe,GAAG,MAAM,IAAA,iCAAmB,EAAC,eAAe,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAA;IACjG,MAAM,cAAc,GAAG,MAAM,IAAA,gCAAkB,EAAC,SAAS,CAAC,WAAW,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAA;IACrG,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;QACzB,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,IAAI,EAAE,CAAC;aACxD,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAA;IACtD,CAAC;IAED,MAAM,MAAM,GAAG,EAAqD,CAAA;IAEpE,MAAM,aAAa,GAAG,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,CAAA;IAE1F,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACvC,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,CAAA;QAC1B,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM,IAAI,GAAG;QACX,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC;QAC3B,uBAAuB,EAAE,SAAS,CAAC,uBAAuB;QAC1D,OAAO,EAAE,SAAS,CAAC,OAAO,IAAI;YAC5B,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,IAAI;YACrB,oBAAoB,EAAE,IAAI;SAC3B;QACD,WAAW,EAAE,SAAS,CAAC,WAAW;QAClC,uBAAuB,EAAE,SAAS,CAAC,uBAAuB;QAC1D,YAAY,EAAE,SAAS,CAAC,YAAY;QACpC,UAAU;QACV,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,wBAAwB,EAAE,SAAS,CAAC,wBAAwB,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC;QAC1F,OAAO,EAAE,IAAI,GAAG,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;QACxC,UAAU;QACV,eAAe,EAAE,OAAO,EAAE,eAAe;QACzC,wBAAwB,EAAE,OAAO,EAAE,wBAAwB,IAAI,SAAS,CAAC,wBAAwB;KAClG,CAAA;IACD,uEAAuE;IACvE,8EAA8E;IAC9E,MAAM,UAAU,GAAiB,EAAE,CAAA;IACnC,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,MAAM,UAAU,GAAG,IAAA,mCAAqB,EAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;QACvE,IAAI,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;YACxC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAA;QACnD,CAAC;IACH,CAAC;IACD,MAAM,WAAW,GAAG,IAAA,8CAAoB,EAAC,UAAU,EAAE;QACnD,eAAe,EAAE,aAAa,CAAC,QAAQ,IAAI,EAAE;QAC7C,SAAS,EAAE,aAAa,CAAC,SAAS;QAClC,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,WAAW,EAAE,IAAI,CAAC,WAAW;KAC9B,CAAC,CAAA;IACF,MAAM,0BAA0B,GAAyB,IAAI,GAAG,EAAE,CAAA;IAClE,MAAM,cAAc,GAAG,IAAA,0CAAc,EAAC,aAAa,CAAC,CAAA;IAEpD,MAAM,GAAG,GAAqB;QAC5B,eAAe,EAAE,aAAa;QAC9B,cAAc;QACd,GAAG,IAAI;QACP,KAAK,EAAE,WAAW;QAClB,oBAAoB,EAAE,0BAA0B;QAChD,QAAQ,EAAE,cAAc;KACzB,CAAA;IAED,MAAM,YAAY,GAAG,+BAA+B,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAEpE,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;QACrE,OAAO;YACL,WAAW;YACX,MAAM,YAAY,CAAC,WAAW,CAAC;SACG,CAAA;IACtC,CAAC,CAAC,CAAC,CAAA;IACH,KAAK,MAAM,CAAC,WAAW,EAAE,qBAAqB,CAAC,IAAI,KAAK,EAAE,CAAC;QACzD,MAAM,CAAC,WAAW,CAAC,GAAG,qBAAqB,CAAA;IAC7C,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AASD,KAAK,UAAU,+BAA+B,CAC5C,IAAsB,EACtB,WAAmB;IAEnB,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;IACvF,MAAM,UAAU,GAAG,IAAA,mCAAqB,EAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;IAEvE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,CAAA;IAErD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,cAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;QACpE,CAAC,CAAC,IAAI,CAAC,UAAU;QACjB,CAAC,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,IAAI,cAAc,CAAC,CAAA;IAE7D,MAAM,SAAS,GAAG,wBAAwB,CAAC,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAA;IACjF,4EAA4E;IAC5E,+EAA+E;IAC/E,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM;QAC7B,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,CAAC,CAAC,MAAM,IAAA,iCAAc,EAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAA;IAC3F,MAAM,eAAe,GAAG,eAAe,CAAC,QAAQ,IAAI,EAAE,CAAA;IACtD,MAAM,cAAc,GAAG,cAAc,EAAE,QAAQ,IAAI,EAAE,CAAA;IACrD,MAAM,WAAW,GAAG;QAClB,GAAG,IAAI;QACP,eAAe;QACf,SAAS,EAAE,eAAe,CAAC,SAAS;QACpC,qBAAqB,EAAE,WAAW;QAClC,QAAQ,EAAE,IAAI,CAAC,KAAK;QACpB,cAAc;QACd,UAAU;KACX,CAAA;IACD,MAAM,QAAQ,GAAe,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAA;IAE7D,MAAM,eAAe,GAAG,CAAC,MAAkB,EAAE,SAAkB,EAAE,EAAE,CACjE,IAAA,oBAAO,EAAC,EAAE,GAAG,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,MAAM,CAAC,CAAA;IAC7E,MAAM,MAAM,GAA0B,EAAE,CAAA;IACxC,KAAK,MAAM,iBAAiB,IAAI,2BAAmB,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC;QACxH,MAAM,OAAO,GAAG,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAA;QAC9E,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAA;QAC9B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;YAC1B,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,IAAA,0BAAU,EAAC;gBACxD,KAAK;gBACL,eAAe,EAAE,eAAe,CAAC,QAAQ,IAAI,EAAE;gBAC/C,QAAQ;gBACR,qBAAqB,EAAE,WAAW;gBAClC,iBAAiB,EAAE,WAAW;gBAC9B,GAAG;gBACH,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,cAAc,EAAE,cAAc,EAAE,QAAQ,IAAI,EAAE;gBAC9C,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,wBAAwB,EAAE,IAAI,CAAC,wBAAwB;gBACvD,UAAU;aACX,CAAC,CAAA;YACF,IAAI,QAAQ,GAAuB,IAAI,CAAA;YACvC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChC,KAAK;gBACL,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,YAAY;aACb,CAAC,CAAA;YACF,MAAM,MAAM,GAAG,IAAA,0CAAkB,EAAC;gBAChC,QAAQ;gBACR,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;gBACnB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,SAAS,EAAE,eAAe,CAAC,SAAS;aACrC,CAAC,CAAA;YACF,IAAI,IAAI,CAAC,YAAY,IAAI,MAAM,EAAE,IAAI,KAAK,UAAU,EAAE,CAAC;gBACrD,SAAQ;YACV,CAAC;YACD,IAAI,UAAqC,CAAA;YACzC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBACnB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW;oBAAE,SAAQ;gBACnD,QAAQ,GAAG,WAAW,CAAA;YACxB,CAAC;iBAAM,CAAC;gBACN,UAAU,GAAG,eAAe,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,CAAA;gBACtD,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;oBACvB,iEAAiE;oBACjE,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC;wBAC7D,OAAO,CAAC,IAAI,CAAC,wBAAwB,IAAI,UAAU,CAAC,cAAc,CAAC,CAAA;oBACrE,IAAI,WAAW,EAAE,CAAC;wBAChB,QAAQ,GAAG,WAAW,CAAA;wBACtB,IAAI,UAAU,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;4BACzB,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAA;4BACvB,QAAQ,CAAC,wBAAwB,GAAG,UAAU,CAAC,KAAK,CAAA;wBACtD,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACvC,QAAQ,GAAG;wBACT,GAAG,WAAW;wBACd,YAAY,EAAE,UAAU,CAAC,KAAK;qBAC/B,CAAA;gBACH,CAAC;qBAAM,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,WAAW,EAAE,CAAC;oBAChD,QAAQ,GAAG,WAAW,CAAA;gBACxB,CAAC;YACH,CAAC;YACD,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;gBACrB,IAAI,WAAW,EAAE,CAAC;oBAChB,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAA;oBACxB,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;wBACpC,QAAQ,CAAC,aAAa,GAAG,WAAW,CAAA;oBACtC,CAAC;gBACH,CAAC;qBAAM,IAAI,QAAQ,CAAC,OAAO,IAAI,IAAI,CAAC,wBAAwB,IAAI,UAAU,EAAE,cAAc,EAAE,CAAC;oBAC3F,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAA;oBACxB,IAAI,UAAU,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACzC,QAAQ,CAAC,aAAa,GAAG,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oBAC/D,CAAC;gBACH,CAAC;gBACD,MAAM,CAAC,iBAAiB,CAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,OAAO,CAAC,GAAG,CAC3C,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;YACnC,IAAI,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;YAC/C,IAAI,OAAgB,CAAA;YACpB,IAAI,CAAC;gBACH,OAAO,GAAG,MAAM,IAAA,6BAAiB,EAAC,OAAO,CAAC,CAAA;gBAC1C,OAAO,GAAG,QAAQ,IAAA,wBAAa,EAAC,cAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,EAAE,CAAA;YACxE,CAAC;YAAC,MAAM,CAAC;gBACP,+CAA+C;gBAC/C,MAAM,GAAG,GAAG,MAAM,IAAA,8CAA0B,EAAC,OAAO,CAAC,CAAA;gBACrD,OAAO,GAAG,GAAG,EAAE,OAAO,IAAI,WAAW,CAAA;YACvC,CAAC;YACD,MAAM,GAAG,GAAG;gBACV,KAAK,EAAE,UAAU;gBACjB,SAAS,EAAE,KAAK;gBAChB,MAAM,EAAE,KAAK;gBACb,SAAS,EAAE,KAAK;gBAChB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,OAAO;gBACb,OAAO;aACR,CAAA;YACD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChC,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,YAAY,EAAE,GAAG,EAAE,CAAC,IAAA,8CAA0B,EAAC,OAAO,CAAC;aACxD,CAAC,CAAA;YACF,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW;gBAAE,OAAM;YACjD,MAAM,QAAQ,GAAgB,GAAG,CAAA;YACjC,IAAI,WAAW,EAAE,CAAC;gBAChB,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAA;gBACxB,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;oBACpC,QAAQ,CAAC,aAAa,GAAG,WAAW,CAAA;gBACtC,CAAC;YACH,CAAC;YACD,MAAM,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,IAAI,EAAE,CAAA;YAC7D,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC3C,CAAC,CAAC,CACH,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,wBAAwB,CAAE,eAAgC;IACjE,OAAO;QACL,GAAG,eAAe,CAAC,YAAY;QAC/B,GAAG,eAAe,CAAC,eAAe;QAClC,GAAG,eAAe,CAAC,oBAAoB;KACxC,CAAA;AACH,CAAC"}