@o3r/schematics 9.2.0-alpha.14 → 9.2.0-alpha.15
Sign up to get free protection for your applications and to get access to all the features.
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@o3r/schematics",
|
3
|
-
"version": "9.2.0-alpha.
|
3
|
+
"version": "9.2.0-alpha.15",
|
4
4
|
"description": "Schematics module of the Otter framework",
|
5
5
|
"main": "./src/index.js",
|
6
6
|
"keywords": [
|
@@ -58,9 +58,9 @@
|
|
58
58
|
"@nx/jest": "~16.6.0",
|
59
59
|
"@nx/js": "~16.6.0",
|
60
60
|
"@nx/linter": "~16.6.0",
|
61
|
-
"@o3r/build-helpers": "^9.2.0-alpha.
|
62
|
-
"@o3r/dev-tools": "^9.2.0-alpha.
|
63
|
-
"@o3r/eslint-plugin": "^9.2.0-alpha.
|
61
|
+
"@o3r/build-helpers": "^9.2.0-alpha.15",
|
62
|
+
"@o3r/dev-tools": "^9.2.0-alpha.15",
|
63
|
+
"@o3r/eslint-plugin": "^9.2.0-alpha.15",
|
64
64
|
"@schematics/angular": "~16.2.0",
|
65
65
|
"@types/jest": "~29.5.2",
|
66
66
|
"@types/node": "^18.0.0",
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../schematics/ng-add/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAA0B,MAAM,4BAA4B,CAAC;AAO/E;;GAEG;AACH,wBAAgB,KAAK,IAAI,IAAI,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../schematics/ng-add/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAA0B,MAAM,4BAA4B,CAAC;AAO/E;;GAEG;AACH,wBAAgB,KAAK,IAAI,IAAI,CAwB5B"}
|
@@ -16,17 +16,19 @@ function ngAdd() {
|
|
16
16
|
const treePackageJson = tree.readJson('./package.json');
|
17
17
|
const packageJsonContent = JSON.parse(fs.readFileSync(packageJsonPath, { encoding: 'utf-8' }));
|
18
18
|
const getDependencyVersion = (dependency) => packageJsonContent?.dependencies?.[dependency] || packageJsonContent?.peerDependencies?.[dependency];
|
19
|
+
let packageName = '';
|
19
20
|
for (const dependency of schematicsDependencies) {
|
20
21
|
const version = getDependencyVersion(dependency);
|
21
22
|
context.logger.info(`Installing ${dependency}${version || ''}`);
|
22
23
|
treePackageJson.devDependencies = { ...treePackageJson.devDependencies, [dependency]: version };
|
23
|
-
|
24
|
-
hideOutput: false,
|
25
|
-
packageName: `${dependency}${version ? '@' + version : ''}`,
|
26
|
-
quiet: false
|
27
|
-
}));
|
28
|
-
await (0, rxjs_1.lastValueFrom)(context.engine.executePostTasks());
|
24
|
+
packageName = `${packageName} ${dependency}${version ? '@' + version : ''}`;
|
29
25
|
}
|
26
|
+
context.addTask(new schematics_1.AddDevInstall({
|
27
|
+
hideOutput: false,
|
28
|
+
packageName,
|
29
|
+
quiet: false
|
30
|
+
}));
|
31
|
+
await (0, rxjs_1.lastValueFrom)(context.engine.executePostTasks());
|
30
32
|
tree.overwrite('./package.json', JSON.stringify(treePackageJson));
|
31
33
|
return () => tree;
|
32
34
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/rule-factories/ng-add/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,IAAI,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/rule-factories/ng-add/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,IAAI,EAAqC,MAAM,4BAA4B,CAAC;AAG/G,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAE9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAG7D;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,mBAAmB,EAAE,eAAe,SAAkB,GAAG,IAAI,CAgFxH;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,gCAAiD,EAC5I,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,CAAC,EAAE,MAAM,QAezD;AAED;;;;;GAKG;AACH,wBAAgB,mCAAmC,CAAC,WAAW,EAAE,WAAW,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAQ5G;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAsB3I"}
|
@@ -41,11 +41,34 @@ function ngAddPackages(packages, options, packageJsonPath = '/package.json') {
|
|
41
41
|
return accOptions;
|
42
42
|
}, {});
|
43
43
|
};
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
44
|
+
return async (tree, context) => {
|
45
|
+
const installedVersions = await Promise.all(packages.map((packageName) => getInstalledVersion(packageName)));
|
46
|
+
const packageManager = (0, index_1.getPackageManager)();
|
47
|
+
let installOptions = '';
|
48
|
+
if (options?.dependencyType === dependencies_1.NodeDependencyType.Dev && packageManager === 'yarn') {
|
49
|
+
installOptions = ' --prefer-dev';
|
50
|
+
}
|
51
|
+
else if (options?.dependencyType === dependencies_1.NodeDependencyType.Dev) {
|
52
|
+
installOptions = ' -D';
|
53
|
+
}
|
54
|
+
else if (options?.dependencyType === dependencies_1.NodeDependencyType.Peer) {
|
55
|
+
installOptions = ' -P';
|
56
|
+
}
|
57
|
+
const packagesToInstall = packages.filter((_, index) => !installedVersions[index] || installedVersions[index] !== options?.version);
|
58
|
+
const packagesInput = packagesToInstall
|
59
|
+
.map((packageName) => `${packageName}${options?.version ? `@${options?.version}` : ''}`)
|
60
|
+
.join(' ');
|
61
|
+
context.addTask(new tasks_1.NodePackageInstallTask({
|
62
|
+
packageManager: packageManager,
|
63
|
+
packageName: `${packagesInput}${installOptions}`,
|
64
|
+
hideOutput: false,
|
65
|
+
quiet: false
|
66
|
+
}));
|
67
|
+
await (0, rxjs_1.lastValueFrom)(context.engine.executePostTasks());
|
68
|
+
// We need to update manually the package json in the tree as the tree will overwrite the project at the end of the ng add @o3r/core
|
69
|
+
const latestInstalledVersions = await Promise.all(packagesToInstall.map(async (packageName) => [packageName, await getInstalledVersion(packageName)]));
|
70
|
+
const packageJson = tree.readJson(packageJsonPath);
|
71
|
+
latestInstalledVersions.forEach(([packageName, latestInstalledVersion]) => {
|
49
72
|
if (options?.dependencyType === dependencies_1.NodeDependencyType.Dev) {
|
50
73
|
packageJson.devDependencies = { ...packageJson.devDependencies, [packageName]: latestInstalledVersion };
|
51
74
|
}
|
@@ -55,51 +78,19 @@ function ngAddPackages(packages, options, packageJsonPath = '/package.json') {
|
|
55
78
|
else {
|
56
79
|
packageJson.dependencies = { ...packageJson.dependencies, [packageName]: latestInstalledVersion };
|
57
80
|
}
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
const installedVersion = await getInstalledVersion(packageName);
|
65
|
-
context.logger.info(`installed version of ${packageName}: ${installedVersion || 'undefined'} | expected: ${options?.version || 'latest'} as ${options?.dependencyType?.toString() || ''}`);
|
66
|
-
if (!installedVersion || version !== installedVersion) {
|
67
|
-
context.logger.info(`Running ng add for: ${packageName}${options?.version ? ' with version: ' + options.version : ''}`);
|
68
|
-
const packageManager = (0, index_1.getPackageManager)();
|
69
|
-
let installOptions = '';
|
70
|
-
if (options?.dependencyType === dependencies_1.NodeDependencyType.Dev && packageManager === 'yarn') {
|
71
|
-
installOptions = ' --prefer-dev';
|
72
|
-
}
|
73
|
-
else if (options?.dependencyType === dependencies_1.NodeDependencyType.Dev) {
|
74
|
-
installOptions = ' -D';
|
75
|
-
}
|
76
|
-
else if (options?.dependencyType === dependencies_1.NodeDependencyType.Peer) {
|
77
|
-
installOptions = ' -P';
|
78
|
-
}
|
79
|
-
context.addTask(new tasks_1.NodePackageInstallTask({
|
80
|
-
packageManager: packageManager,
|
81
|
-
packageName: packageName + (version ? `@${version}` : '') + installOptions,
|
82
|
-
hideOutput: false,
|
83
|
-
quiet: false
|
84
|
-
}));
|
85
|
-
await (0, rxjs_1.lastValueFrom)(context.engine.executePostTasks());
|
86
|
-
const ngAddCollection = getNgAddSchema(packageName, context);
|
87
|
-
if (ngAddCollection) {
|
88
|
-
const ngAddOptions = getOptions(ngAddCollection);
|
89
|
-
return () => (0, schematics_1.externalSchematic)(packageName, 'ng-add', ngAddOptions)(tree, context);
|
90
|
-
}
|
91
|
-
}
|
92
|
-
else {
|
81
|
+
});
|
82
|
+
tree.overwrite(packageJsonPath, JSON.stringify(packageJson, null, 2));
|
83
|
+
const ngAddsToApply = packagesToInstall
|
84
|
+
.map((packageName) => ({ packageName, ngAddCollection: getNgAddSchema(packageName, context) }))
|
85
|
+
.filter(({ packageName, ngAddCollection }) => {
|
86
|
+
if (!ngAddCollection) {
|
93
87
|
context.logger.info(`Skipping ng add for: ${packageName}${options?.version ? ' with version: ' + options.version : ''}`);
|
94
88
|
}
|
95
|
-
return
|
96
|
-
}
|
89
|
+
return !!ngAddCollection;
|
90
|
+
})
|
91
|
+
.map(({ packageName, ngAddCollection }) => (0, schematics_1.externalSchematic)(packageName, 'ng-add', getOptions(ngAddCollection)));
|
92
|
+
return (0, schematics_1.chain)(ngAddsToApply);
|
97
93
|
};
|
98
|
-
const ngAddRulesToRun = (packages || []).map((packageName) => (0, schematics_1.chain)([
|
99
|
-
ngAddSinglePackage({ packageName, version: options?.version }),
|
100
|
-
checkTreePackageJsonConsistency(packageName)
|
101
|
-
]));
|
102
|
-
return (0, schematics_1.chain)(ngAddRulesToRun);
|
103
94
|
}
|
104
95
|
exports.ngAddPackages = ngAddPackages;
|
105
96
|
/**
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/rule-factories/ng-add/index.ts"],"names":[],"mappings":";;;AAAA,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/rule-factories/ng-add/index.ts"],"names":[],"mappings":";;;AAAA,2DAA+G;AAC/G,4DAA0E;AAE1E,2EAA8E;AAC9E,+BAAqC;AAIrC,+CAAqL;AAErL;;;;;;GAMG;AACH,SAAgB,aAAa,CAAC,QAAkB,EAAE,OAA6B,EAAE,eAAe,GAAG,eAAe;IAChH,MAAM,mBAAmB,GAAG,KAAK,EAAE,WAAmB,EAAE,EAAE;QACxD,IAAI;YACF,OAAO,CAAC,yBAAa,GAAG,WAAW,eAAe,yBAAC,CAAC,CAAC,OAAO,CAAC;SAC9D;QAAC,OAAO,CAAC,EAAE;YACV,OAAO;SACR;IACH,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,WAAmB,EAAE,OAAyB,EAAE,EAAE;QACxE,IAAI;YACF,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;YAChE,OAAO,UAAU,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;SAC7C;QAAC,MAAM;YACN,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,WAAW,EAAE,CAAC,CAAC;YAC1D,OAAO,SAAS,CAAC;SAClB;IACH,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,MAA2B,EAAE,EAAE;QACjD,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,UAAU,IAAI,EAAE,CAAC;QACtE,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CAAsB,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,KAAK,CAAgB,EAAE,EAAE;YAC3G,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE;gBACtB,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aACzB;YACD,OAAO,UAAU,CAAC;QACpB,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC,CAAC;IAEF,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QAC7B,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAC7G,MAAM,cAAc,GAAG,IAAA,yBAAiB,GAAE,CAAC;QAC3C,IAAI,cAAc,GAAG,EAAE,CAAC;QACxB,IAAI,OAAO,EAAE,cAAc,KAAK,iCAAkB,CAAC,GAAG,IAAI,cAAc,KAAK,MAAM,EAAE;YACnF,cAAc,GAAG,eAAe,CAAC;SAClC;aAAM,IAAI,OAAO,EAAE,cAAc,KAAK,iCAAkB,CAAC,GAAG,EAAE;YAC7D,cAAc,GAAG,KAAK,CAAC;SACxB;aAAM,IAAI,OAAO,EAAE,cAAc,KAAK,iCAAkB,CAAC,IAAI,EAAE;YAC9D,cAAc,GAAG,KAAK,CAAC;SACxB;QACD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,iBAAiB,CAAC,KAAK,CAAC,KAAK,OAAO,EAAE,OAAO,CAAC,CAAC;QACpI,MAAM,aAAa,GAAG,iBAAiB;aACpC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,GAAG,WAAW,GAAG,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;aACvF,IAAI,CAAC,GAAG,CAAC,CAAC;QAEb,OAAO,CAAC,OAAO,CAAC,IAAI,8BAAsB,CAAC;YACzC,cAAc,EAAE,cAAc;YAC9B,WAAW,EAAE,GAAG,aAAa,GAAG,cAAc,EAAE;YAChD,UAAU,EAAE,KAAK;YACjB,KAAK,EAAE,KAAK;SACN,CAAC,CAAC,CAAC;QACX,MAAM,IAAA,oBAAa,EAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAEvD,oIAAoI;QACpI,MAAM,uBAAuB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,CAC5F,CAAC,WAAW,EAAE,MAAM,mBAAmB,CAAC,WAAW,CAAC,CAAC,CACtD,CAAC,CAAC;QACH,MAAM,WAAW,GAAgB,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAgB,CAAC;QAC/E,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,sBAAsB,CAAC,EAAE,EAAE;YACxE,IAAI,OAAO,EAAE,cAAc,KAAK,iCAAkB,CAAC,GAAG,EAAE;gBACtD,WAAW,CAAC,eAAe,GAAG,EAAC,GAAG,WAAW,CAAC,eAAe,EAAE,CAAC,WAAW,CAAC,EAAE,sBAAsB,EAAC,CAAC;aACvG;iBAAM,IAAI,OAAO,EAAE,cAAc,KAAK,iCAAkB,CAAC,IAAI,EAAE;gBAC9D,WAAW,CAAC,gBAAgB,GAAG,EAAC,GAAG,WAAW,CAAC,gBAAgB,EAAE,CAAC,WAAW,CAAC,EAAE,sBAAsB,EAAC,CAAC;aACzG;iBAAM;gBACL,WAAW,CAAC,YAAY,GAAG,EAAC,GAAG,WAAW,CAAC,YAAY,EAAE,CAAC,WAAW,CAAC,EAAE,sBAAsB,EAAC,CAAC;aACjG;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAEtE,MAAM,aAAa,GAAG,iBAAiB;aACpC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,EAAC,WAAW,EAAE,eAAe,EAAE,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,EAAC,CAAC,CAAC;aAC5F,MAAM,CAAC,CAAC,EAAC,WAAW,EAAE,eAAe,EAAC,EAAE,EAAE;YACzC,IAAI,CAAC,eAAe,EAAE;gBACpB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,WAAW,GAAG,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;aAC1H;YACD,OAAO,CAAC,CAAC,eAAe,CAAC;QAC3B,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,EAAC,WAAW,EAAE,eAAe,EAAC,EAAE,EAAE,CAAC,IAAA,8BAAiB,EAAC,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,eAAgB,CAAC,CAAC,CAAC,CAAC;QACnH,OAAO,IAAA,kBAAK,EAAC,aAAa,CAAC,CAAC;IAC9B,CAAC,CAAC;AACJ,CAAC;AAhFD,sCAgFC;AAED;;;;;;;;GAQG;AACH,SAAgB,2BAA2B,CAAC,QAAkB,EAAE,eAAuB,EAAE,OAA2B,iCAAkB,CAAC,OAAO,EAC5I,OAA4B,EAAE,iBAA0B;IACxD,MAAM,YAAY,GAAqB,IAAA,6BAAqB,EAC1D,IAAA,2CAAmC,EAAC,QAAQ,EAAE,eAAe,CAAC,EAC9D,IAAI,CACL,CAAC;IACF,MAAM,qBAAqB,GAAW,YAAY,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;QACpE,OAAO,aAAa,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YACtC,GAAG,OAAO;YACV,gBAAgB,EAAE,IAAI;YACtB,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,iBAAiB;YACjB,cAAc,EAAE,UAAU,CAAC,IAAI;SAChC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,IAAA,kBAAK,EAAC,qBAAqB,CAAC,CAAC;AACtC,CAAC;AAhBD,kEAgBC;AAED;;;;;GAKG;AACH,SAAgB,mCAAmC,CAAC,WAAwB,EAAE,eAAwB;IACpG,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;YACrB,OAAO,IAAI,CAAC;SACb;QACD,MAAM,SAAS,GAAG,IAAA,uBAAe,EAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QACzD,OAAO,IAAA,wBAAgB,EAAC,IAAI,EAAE,IAAA,oCAA4B,EAAC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,CAAC;IAC5G,CAAC,CAAC;AACJ,CAAC;AARD,kFAQC;AAED;;;;;GAKG;AACH,SAAgB,4BAA4B,CAAC,uBAA8D,EAAE,eAAwB;IACnI,OAAO,CAAC,IAAU,EAAE,EAAE;QACpB,MAAM,SAAS,GAAG,IAAA,uBAAe,EAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QACzD,SAAS,CAAC,UAAU,KAAK,EAAE,CAAC;QAC5B,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,EAAE,aAAa,CAAC,EAAE,EAAE;YACjF,SAAS,CAAC,UAAW,CAAC,aAAa,CAAC,GAAG;gBACrC,GAAG,SAAS,CAAC,UAAW,CAAC,aAAa,CAAC;gBACvC,GAAG,aAAa;aACjB,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACpD,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,EAAE,aAAa,CAAC,EAAE,EAAE;gBACjF,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,aAAa,CAAC,EAAE;oBACvC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG;wBAClC,GAAG,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC;wBACpC,GAAG,aAAa;qBACjB,CAAC;iBACH;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,IAAA,wBAAgB,EAAC,IAAI,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;IAC5D,CAAC,CAAC;AACJ,CAAC;AAtBD,oEAsBC"}
|