@openrewrite/rewrite 8.69.0-20251210-214835 → 8.69.0-20251211-085327
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/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/javascript/node-resolution-result.d.ts +9 -0
- package/dist/javascript/node-resolution-result.d.ts.map +1 -1
- package/dist/javascript/node-resolution-result.js +10 -1
- package/dist/javascript/node-resolution-result.js.map +1 -1
- package/dist/javascript/package-manager.d.ts +76 -89
- package/dist/javascript/package-manager.d.ts.map +1 -1
- package/dist/javascript/package-manager.js +114 -139
- package/dist/javascript/package-manager.js.map +1 -1
- package/dist/javascript/recipes/add-dependency.d.ts +57 -0
- package/dist/javascript/recipes/add-dependency.d.ts.map +1 -0
- package/dist/javascript/recipes/add-dependency.js +404 -0
- package/dist/javascript/recipes/add-dependency.js.map +1 -0
- package/dist/javascript/recipes/index.d.ts +1 -0
- package/dist/javascript/recipes/index.d.ts.map +1 -1
- package/dist/javascript/recipes/index.js +1 -0
- package/dist/javascript/recipes/index.js.map +1 -1
- package/dist/javascript/recipes/upgrade-dependency-version.d.ts +3 -24
- package/dist/javascript/recipes/upgrade-dependency-version.d.ts.map +1 -1
- package/dist/javascript/recipes/upgrade-dependency-version.js +34 -157
- package/dist/javascript/recipes/upgrade-dependency-version.js.map +1 -1
- package/dist/javascript/recipes/upgrade-transitive-dependency-version.d.ts +2 -19
- package/dist/javascript/recipes/upgrade-transitive-dependency-version.d.ts.map +1 -1
- package/dist/javascript/recipes/upgrade-transitive-dependency-version.js +21 -137
- package/dist/javascript/recipes/upgrade-transitive-dependency-version.js.map +1 -1
- package/dist/javascript/search/find-dependency.d.ts.map +1 -1
- package/dist/javascript/search/find-dependency.js +8 -47
- package/dist/javascript/search/find-dependency.js.map +1 -1
- package/dist/json/tree.d.ts +30 -0
- package/dist/json/tree.d.ts.map +1 -1
- package/dist/json/tree.js +113 -0
- package/dist/json/tree.js.map +1 -1
- package/dist/parser.d.ts +9 -0
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +27 -0
- package/dist/parser.js.map +1 -1
- package/dist/version.txt +1 -1
- package/package.json +1 -1
- package/src/index.ts +2 -1
- package/src/javascript/node-resolution-result.ts +16 -0
- package/src/javascript/package-manager.ts +197 -174
- package/src/javascript/recipes/add-dependency.ts +467 -0
- package/src/javascript/recipes/index.ts +1 -0
- package/src/javascript/recipes/upgrade-dependency-version.ts +52 -199
- package/src/javascript/recipes/upgrade-transitive-dependency-version.ts +39 -165
- package/src/javascript/search/find-dependency.ts +13 -52
- package/src/json/tree.ts +98 -1
- package/src/parser.ts +17 -0
|
@@ -59,17 +59,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
59
59
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
60
60
|
exports.detectPackageManager = detectPackageManager;
|
|
61
61
|
exports.getLockFileDetectionConfig = getLockFileDetectionConfig;
|
|
62
|
-
exports.getPackageManagerConfig = getPackageManagerConfig;
|
|
63
62
|
exports.getLockFileName = getLockFileName;
|
|
64
63
|
exports.getAllLockFileNames = getAllLockFileNames;
|
|
65
|
-
exports.isLockFile = isLockFile;
|
|
66
|
-
exports.runInstall = runInstall;
|
|
67
|
-
exports.runAddPackage = runAddPackage;
|
|
68
64
|
exports.runList = runList;
|
|
69
|
-
exports.
|
|
70
|
-
exports.
|
|
65
|
+
exports.createDependencyRecipeAccumulator = createDependencyRecipeAccumulator;
|
|
66
|
+
exports.getUpdatedLockFileContent = getUpdatedLockFileContent;
|
|
67
|
+
exports.storeInstallResult = storeInstallResult;
|
|
68
|
+
exports.runInstallIfNeeded = runInstallIfNeeded;
|
|
69
|
+
exports.updateNodeResolutionMarker = updateNodeResolutionMarker;
|
|
71
70
|
exports.runInstallInTempDir = runInstallInTempDir;
|
|
72
71
|
const node_resolution_result_1 = require("./node-resolution-result");
|
|
72
|
+
const markers_1 = require("../markers");
|
|
73
73
|
const fs = __importStar(require("fs"));
|
|
74
74
|
const fsp = __importStar(require("fs/promises"));
|
|
75
75
|
const path = __importStar(require("path"));
|
|
@@ -158,12 +158,6 @@ function detectPackageManager(dir) {
|
|
|
158
158
|
function getLockFileDetectionConfig() {
|
|
159
159
|
return LOCK_FILE_DETECTION;
|
|
160
160
|
}
|
|
161
|
-
/**
|
|
162
|
-
* Gets the configuration for a package manager.
|
|
163
|
-
*/
|
|
164
|
-
function getPackageManagerConfig(pm) {
|
|
165
|
-
return PACKAGE_MANAGER_CONFIGS[pm];
|
|
166
|
-
}
|
|
167
161
|
/**
|
|
168
162
|
* Gets the lock file name for a package manager.
|
|
169
163
|
*/
|
|
@@ -176,19 +170,8 @@ function getLockFileName(pm) {
|
|
|
176
170
|
function getAllLockFileNames() {
|
|
177
171
|
return LOCK_FILE_DETECTION.map(c => c.filename);
|
|
178
172
|
}
|
|
179
|
-
/**
|
|
180
|
-
* Checks if a file path is a lock file.
|
|
181
|
-
*/
|
|
182
|
-
function isLockFile(filePath) {
|
|
183
|
-
const fileName = path.basename(filePath);
|
|
184
|
-
return getAllLockFileNames().includes(fileName);
|
|
185
|
-
}
|
|
186
173
|
/**
|
|
187
174
|
* Runs the package manager install command.
|
|
188
|
-
*
|
|
189
|
-
* @param pm The package manager to use
|
|
190
|
-
* @param options Install options
|
|
191
|
-
* @returns Result of the install command
|
|
192
175
|
*/
|
|
193
176
|
function runInstall(pm, options) {
|
|
194
177
|
var _a;
|
|
@@ -231,93 +214,6 @@ function runInstall(pm, options) {
|
|
|
231
214
|
};
|
|
232
215
|
}
|
|
233
216
|
}
|
|
234
|
-
/**
|
|
235
|
-
* Runs a package manager command to add or upgrade a package.
|
|
236
|
-
* This updates both package.json and the lock file.
|
|
237
|
-
*
|
|
238
|
-
* @param pm The package manager to use
|
|
239
|
-
* @param options Add package options
|
|
240
|
-
* @returns Result of the command
|
|
241
|
-
*/
|
|
242
|
-
function runAddPackage(pm, options) {
|
|
243
|
-
var _a;
|
|
244
|
-
const packageSpec = `${options.packageName}@${options.version}`;
|
|
245
|
-
// Build command based on package manager
|
|
246
|
-
let cmd;
|
|
247
|
-
let args;
|
|
248
|
-
switch (pm) {
|
|
249
|
-
case node_resolution_result_1.PackageManager.Npm:
|
|
250
|
-
cmd = 'npm';
|
|
251
|
-
args = ['install', packageSpec];
|
|
252
|
-
if (options.lockOnly) {
|
|
253
|
-
args.push('--package-lock-only');
|
|
254
|
-
}
|
|
255
|
-
break;
|
|
256
|
-
case node_resolution_result_1.PackageManager.YarnClassic:
|
|
257
|
-
cmd = 'yarn';
|
|
258
|
-
args = ['add', packageSpec];
|
|
259
|
-
if (options.lockOnly) {
|
|
260
|
-
args.push('--ignore-scripts');
|
|
261
|
-
}
|
|
262
|
-
break;
|
|
263
|
-
case node_resolution_result_1.PackageManager.YarnBerry:
|
|
264
|
-
cmd = 'yarn';
|
|
265
|
-
args = ['add', packageSpec];
|
|
266
|
-
if (options.lockOnly) {
|
|
267
|
-
args.push('--mode', 'skip-build');
|
|
268
|
-
}
|
|
269
|
-
break;
|
|
270
|
-
case node_resolution_result_1.PackageManager.Pnpm:
|
|
271
|
-
cmd = 'pnpm';
|
|
272
|
-
args = ['add', packageSpec];
|
|
273
|
-
if (options.lockOnly) {
|
|
274
|
-
args.push('--lockfile-only');
|
|
275
|
-
}
|
|
276
|
-
break;
|
|
277
|
-
case node_resolution_result_1.PackageManager.Bun:
|
|
278
|
-
cmd = 'bun';
|
|
279
|
-
args = ['add', packageSpec];
|
|
280
|
-
if (options.lockOnly) {
|
|
281
|
-
args.push('--ignore-scripts');
|
|
282
|
-
}
|
|
283
|
-
break;
|
|
284
|
-
}
|
|
285
|
-
try {
|
|
286
|
-
const result = (0, child_process_1.spawnSync)(cmd, args, {
|
|
287
|
-
cwd: options.cwd,
|
|
288
|
-
encoding: 'utf-8',
|
|
289
|
-
stdio: ['pipe', 'pipe', 'pipe'],
|
|
290
|
-
timeout: (_a = options.timeout) !== null && _a !== void 0 ? _a : 120000,
|
|
291
|
-
env: options.env ? Object.assign(Object.assign({}, process.env), options.env) : process.env,
|
|
292
|
-
});
|
|
293
|
-
if (result.error) {
|
|
294
|
-
return {
|
|
295
|
-
success: false,
|
|
296
|
-
error: result.error.message,
|
|
297
|
-
stderr: result.stderr,
|
|
298
|
-
};
|
|
299
|
-
}
|
|
300
|
-
if (result.status !== 0) {
|
|
301
|
-
return {
|
|
302
|
-
success: false,
|
|
303
|
-
stdout: result.stdout,
|
|
304
|
-
stderr: result.stderr,
|
|
305
|
-
error: `Command exited with code ${result.status}`,
|
|
306
|
-
};
|
|
307
|
-
}
|
|
308
|
-
return {
|
|
309
|
-
success: true,
|
|
310
|
-
stdout: result.stdout,
|
|
311
|
-
stderr: result.stderr,
|
|
312
|
-
};
|
|
313
|
-
}
|
|
314
|
-
catch (error) {
|
|
315
|
-
return {
|
|
316
|
-
success: false,
|
|
317
|
-
error: error.message,
|
|
318
|
-
};
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
217
|
/**
|
|
322
218
|
* Runs a package manager list command to get dependency information.
|
|
323
219
|
*
|
|
@@ -344,43 +240,122 @@ function runList(pm, cwd, timeout = 30000) {
|
|
|
344
240
|
return result.stdout;
|
|
345
241
|
}
|
|
346
242
|
/**
|
|
347
|
-
*
|
|
243
|
+
* Creates a new empty accumulator for dependency recipes.
|
|
244
|
+
*/
|
|
245
|
+
function createDependencyRecipeAccumulator() {
|
|
246
|
+
return {
|
|
247
|
+
projectsToUpdate: new Map(),
|
|
248
|
+
updatedLockFiles: new Map(),
|
|
249
|
+
updatedPackageJsons: new Map(),
|
|
250
|
+
processedProjects: new Set(),
|
|
251
|
+
failedProjects: new Map()
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Checks if a source path is a lock file and returns the updated content if available.
|
|
256
|
+
* This is a helper for dependency recipes that need to update lock files.
|
|
348
257
|
*
|
|
349
|
-
* @param
|
|
350
|
-
* @
|
|
258
|
+
* @param sourcePath The source path to check
|
|
259
|
+
* @param acc The recipe accumulator containing updated lock file content
|
|
260
|
+
* @returns The updated lock file content if this is a lock file that was updated, undefined otherwise
|
|
351
261
|
*/
|
|
352
|
-
function
|
|
353
|
-
const
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
catch (_a) {
|
|
364
|
-
return false;
|
|
262
|
+
function getUpdatedLockFileContent(sourcePath, acc) {
|
|
263
|
+
for (const lockFileName of getAllLockFileNames()) {
|
|
264
|
+
if (sourcePath.endsWith(lockFileName)) {
|
|
265
|
+
// Find the corresponding package.json path
|
|
266
|
+
const packageJsonPath = sourcePath.replace(lockFileName, 'package.json');
|
|
267
|
+
const updateInfo = acc.projectsToUpdate.get(packageJsonPath);
|
|
268
|
+
if (updateInfo && acc.updatedLockFiles.has(sourcePath)) {
|
|
269
|
+
return acc.updatedLockFiles.get(sourcePath);
|
|
270
|
+
}
|
|
271
|
+
break;
|
|
272
|
+
}
|
|
365
273
|
}
|
|
274
|
+
return undefined;
|
|
366
275
|
}
|
|
367
276
|
/**
|
|
368
|
-
*
|
|
277
|
+
* Stores the result of a package manager install into the accumulator.
|
|
278
|
+
* This handles the common pattern of storing updated lock files and tracking failures.
|
|
279
|
+
*
|
|
280
|
+
* @param result The result from runInstallInTempDir
|
|
281
|
+
* @param acc The recipe accumulator
|
|
282
|
+
* @param updateInfo The project update info (must have packageJsonPath and packageManager)
|
|
283
|
+
* @param modifiedPackageJson The modified package.json content that was used for install
|
|
369
284
|
*/
|
|
370
|
-
function
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
return 'Bun';
|
|
285
|
+
function storeInstallResult(result, acc, updateInfo, modifiedPackageJson) {
|
|
286
|
+
if (result.success) {
|
|
287
|
+
acc.updatedPackageJsons.set(updateInfo.packageJsonPath, modifiedPackageJson);
|
|
288
|
+
if (result.lockFileContent) {
|
|
289
|
+
const lockFileName = getLockFileName(updateInfo.packageManager);
|
|
290
|
+
const lockFilePath = updateInfo.packageJsonPath.replace('package.json', lockFileName);
|
|
291
|
+
acc.updatedLockFiles.set(lockFilePath, result.lockFileContent);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
acc.failedProjects.set(updateInfo.packageJsonPath, result.error || 'Unknown error');
|
|
382
296
|
}
|
|
383
297
|
}
|
|
298
|
+
/**
|
|
299
|
+
* Runs the package manager install for a project if it hasn't been processed yet.
|
|
300
|
+
* Updates the accumulator's processedProjects set after running.
|
|
301
|
+
*
|
|
302
|
+
* @param sourcePath The source path (package.json path) being processed
|
|
303
|
+
* @param acc The recipe accumulator
|
|
304
|
+
* @param runInstall Function that performs the actual install (recipe-specific)
|
|
305
|
+
* @returns The failure message if install failed, undefined otherwise
|
|
306
|
+
*/
|
|
307
|
+
function runInstallIfNeeded(sourcePath, acc, runInstall) {
|
|
308
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
309
|
+
if (!acc.processedProjects.has(sourcePath)) {
|
|
310
|
+
yield runInstall();
|
|
311
|
+
acc.processedProjects.add(sourcePath);
|
|
312
|
+
}
|
|
313
|
+
return acc.failedProjects.get(sourcePath);
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* Updates the NodeResolutionResult marker on a JSON document after a package manager operation.
|
|
318
|
+
* This recreates the marker based on the updated package.json and lock file content.
|
|
319
|
+
*
|
|
320
|
+
* @param doc The JSON document containing the marker
|
|
321
|
+
* @param updateInfo Project update info with paths and package manager
|
|
322
|
+
* @param acc The recipe accumulator containing updated content
|
|
323
|
+
* @returns The document with the updated marker, or unchanged if no existing marker
|
|
324
|
+
*/
|
|
325
|
+
function updateNodeResolutionMarker(doc, updateInfo, acc) {
|
|
326
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
327
|
+
const existingMarker = (0, node_resolution_result_1.findNodeResolutionResult)(doc);
|
|
328
|
+
if (!existingMarker) {
|
|
329
|
+
return doc;
|
|
330
|
+
}
|
|
331
|
+
// Parse the updated package.json and lock file to create new marker
|
|
332
|
+
const updatedPackageJson = acc.updatedPackageJsons.get(updateInfo.packageJsonPath);
|
|
333
|
+
const lockFileName = getLockFileName(updateInfo.packageManager);
|
|
334
|
+
const updatedLockFile = acc.updatedLockFiles.get(updateInfo.packageJsonPath.replace('package.json', lockFileName));
|
|
335
|
+
let packageJsonContent;
|
|
336
|
+
let lockContent;
|
|
337
|
+
try {
|
|
338
|
+
packageJsonContent = JSON.parse(updatedPackageJson || updateInfo.originalPackageJson);
|
|
339
|
+
}
|
|
340
|
+
catch (_a) {
|
|
341
|
+
return doc; // Failed to parse, keep original marker
|
|
342
|
+
}
|
|
343
|
+
if (updatedLockFile) {
|
|
344
|
+
try {
|
|
345
|
+
lockContent = JSON.parse(updatedLockFile);
|
|
346
|
+
}
|
|
347
|
+
catch (_b) {
|
|
348
|
+
// Continue without lock file content
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
// Read npmrc configs from the project directory
|
|
352
|
+
const npmrcConfigs = yield (0, node_resolution_result_1.readNpmrcConfigs)(updateInfo.projectDir);
|
|
353
|
+
// Create new marker
|
|
354
|
+
const newMarker = (0, node_resolution_result_1.createNodeResolutionResultMarker)(existingMarker.path, packageJsonContent, lockContent, existingMarker.workspacePackagePaths, existingMarker.packageManager, npmrcConfigs.length > 0 ? npmrcConfigs : undefined);
|
|
355
|
+
// Replace the marker in the document
|
|
356
|
+
return Object.assign(Object.assign({}, doc), { markers: (0, markers_1.replaceMarkerByKind)(doc.markers, newMarker) });
|
|
357
|
+
});
|
|
358
|
+
}
|
|
384
359
|
/**
|
|
385
360
|
* Runs package manager install in a temporary directory.
|
|
386
361
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../../src/javascript/package-manager.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../../src/javascript/package-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { ScanningRecipe } from "../../recipe";
|
|
2
|
+
import { ExecutionContext } from "../../execution";
|
|
3
|
+
import { TreeVisitor } from "../../visitor";
|
|
4
|
+
import { DependencyScope, PackageManager } from "../node-resolution-result";
|
|
5
|
+
import { DependencyRecipeAccumulator } from "../package-manager";
|
|
6
|
+
/**
|
|
7
|
+
* Information about a project that needs updating
|
|
8
|
+
*/
|
|
9
|
+
interface ProjectUpdateInfo {
|
|
10
|
+
/** Absolute path to the project directory */
|
|
11
|
+
projectDir: string;
|
|
12
|
+
/** Relative path to package.json (from source root) */
|
|
13
|
+
packageJsonPath: string;
|
|
14
|
+
/** Original package.json content */
|
|
15
|
+
originalPackageJson: string;
|
|
16
|
+
/** The scope where the dependency should be added */
|
|
17
|
+
dependencyScope: DependencyScope;
|
|
18
|
+
/** Version constraint to apply */
|
|
19
|
+
newVersion: string;
|
|
20
|
+
/** The package manager used by this project */
|
|
21
|
+
packageManager: PackageManager;
|
|
22
|
+
}
|
|
23
|
+
type Accumulator = DependencyRecipeAccumulator<ProjectUpdateInfo>;
|
|
24
|
+
/**
|
|
25
|
+
* Adds a new dependency to package.json and updates the lock file.
|
|
26
|
+
*
|
|
27
|
+
* This recipe:
|
|
28
|
+
* 1. Finds package.json files that don't already have the specified dependency
|
|
29
|
+
* 2. Adds the dependency to the specified scope (defaults to 'dependencies')
|
|
30
|
+
* 3. Runs the package manager to update the lock file
|
|
31
|
+
* 4. Updates the NodeResolutionResult marker with new dependency info
|
|
32
|
+
*
|
|
33
|
+
* If the dependency already exists in any scope, no changes are made.
|
|
34
|
+
* This matches the behavior of org.openrewrite.maven.AddDependency.
|
|
35
|
+
*/
|
|
36
|
+
export declare class AddDependency extends ScanningRecipe<Accumulator> {
|
|
37
|
+
readonly name = "org.openrewrite.javascript.dependencies.add-dependency";
|
|
38
|
+
readonly displayName = "Add npm dependency";
|
|
39
|
+
readonly description = "Adds a new dependency to `package.json` and updates the lock file by running the package manager.";
|
|
40
|
+
packageName: string;
|
|
41
|
+
version: string;
|
|
42
|
+
scope?: DependencyScope;
|
|
43
|
+
initialValue(_ctx: ExecutionContext): Accumulator;
|
|
44
|
+
private getTargetScope;
|
|
45
|
+
scanner(acc: Accumulator): Promise<TreeVisitor<any, ExecutionContext>>;
|
|
46
|
+
editorWithData(acc: Accumulator): Promise<TreeVisitor<any, ExecutionContext>>;
|
|
47
|
+
/**
|
|
48
|
+
* Runs the package manager in a temporary directory to update the lock file.
|
|
49
|
+
*/
|
|
50
|
+
private runPackageManagerInstall;
|
|
51
|
+
/**
|
|
52
|
+
* Creates a modified package.json with the new dependency added.
|
|
53
|
+
*/
|
|
54
|
+
private createModifiedPackageJson;
|
|
55
|
+
}
|
|
56
|
+
export {};
|
|
57
|
+
//# sourceMappingURL=add-dependency.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add-dependency.d.ts","sourceRoot":"","sources":["../../../src/javascript/recipes/add-dependency.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAS,cAAc,EAAC,MAAM,cAAc,CAAC;AACpD,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAE1C,OAAO,EAEH,eAAe,EAEf,cAAc,EACjB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAEH,2BAA2B,EAM9B,MAAM,oBAAoB,CAAC;AAI5B;;GAEG;AACH,UAAU,iBAAiB;IACvB,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,eAAe,EAAE,MAAM,CAAC;IACxB,oCAAoC;IACpC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qDAAqD;IACrD,eAAe,EAAE,eAAe,CAAC;IACjC,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,cAAc,EAAE,cAAc,CAAC;CAClC;AAED,KAAK,WAAW,GAAG,2BAA2B,CAAC,iBAAiB,CAAC,CAAC;AAElE;;;;;;;;;;;GAWG;AACH,qBAAa,aAAc,SAAQ,cAAc,CAAC,WAAW,CAAC;IAC1D,QAAQ,CAAC,IAAI,4DAA4D;IACzE,QAAQ,CAAC,WAAW,wBAAwB;IAC5C,QAAQ,CAAC,WAAW,uGAAuG;IAO3H,WAAW,EAAG,MAAM,CAAC;IAOrB,OAAO,EAAG,MAAM,CAAC;IAQjB,KAAK,CAAC,EAAE,eAAe,CAAC;IAExB,YAAY,CAAC,IAAI,EAAE,gBAAgB,GAAG,WAAW;IAIjD,OAAO,CAAC,cAAc;IAIhB,OAAO,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;IA8CtE,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;IAoDnF;;OAEG;YACW,wBAAwB;IAoBtC;;OAEG;IACH,OAAO,CAAC,yBAAyB;CAcpC"}
|