@nx/vite 17.1.0-beta.0 → 17.1.0-beta.2
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/migrations.json +5 -0
- package/package.json +4 -4
- package/src/generators/init/init.js +6 -4
- package/src/generators/init/init.js.map +1 -1
- package/src/migrations/update-17-1-0/move-target-defaults.d.ts +2 -0
- package/src/migrations/update-17-1-0/move-target-defaults.js +77 -0
- package/src/migrations/update-17-1-0/move-target-defaults.js.map +1 -0
package/migrations.json
CHANGED
|
@@ -35,6 +35,11 @@
|
|
|
35
35
|
"description": "Change vite-tsconfig-paths plugin for first party nx-vite-tsconfig-paths plugin",
|
|
36
36
|
"cli": "nx",
|
|
37
37
|
"implementation": "./src/migrations/update-16-6-0-change-ts-paths-plugin/change-ts-paths-plugin"
|
|
38
|
+
},
|
|
39
|
+
"move-target-defaults": {
|
|
40
|
+
"version": "17.1.0-beta.2",
|
|
41
|
+
"description": "Move target defaults",
|
|
42
|
+
"implementation": "./src/migrations/update-17-1-0/move-target-defaults"
|
|
38
43
|
}
|
|
39
44
|
},
|
|
40
45
|
"packageJsonUpdates": {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nx/vite",
|
|
3
|
-
"version": "17.1.0-beta.
|
|
3
|
+
"version": "17.1.0-beta.2",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "The Nx Plugin for building and testing applications using Vite",
|
|
6
6
|
"repository": {
|
|
@@ -32,10 +32,10 @@
|
|
|
32
32
|
"@phenomnomnominal/tsquery": "~5.0.1",
|
|
33
33
|
"@swc/helpers": "~0.5.0",
|
|
34
34
|
"enquirer": "~2.3.6",
|
|
35
|
-
"@nx/devkit": "17.1.0-beta.
|
|
36
|
-
"@nx/js": "17.1.0-beta.
|
|
35
|
+
"@nx/devkit": "17.1.0-beta.2",
|
|
36
|
+
"@nx/js": "17.1.0-beta.2",
|
|
37
37
|
"tsconfig-paths": "^4.1.2",
|
|
38
|
-
"@nrwl/vite": "17.1.0-beta.
|
|
38
|
+
"@nrwl/vite": "17.1.0-beta.2"
|
|
39
39
|
},
|
|
40
40
|
"peerDependencies": {
|
|
41
41
|
"vite": "^4.3.4",
|
|
@@ -65,7 +65,7 @@ function moveToDevDependencies(tree) {
|
|
|
65
65
|
}
|
|
66
66
|
function createVitestConfig(tree) {
|
|
67
67
|
var _nxJson_namedInputs;
|
|
68
|
-
var _nxJson, _nxJson_targetDefaults,
|
|
68
|
+
var _nxJson, _nxJson_targetDefaults, _nxvitetest, _nxJson_targetDefaults_nxvitetest, _nxJson_targetDefaults_nxvitetest1;
|
|
69
69
|
const nxJson = (0, _devkit.readNxJson)(tree);
|
|
70
70
|
const productionFileSet = (_nxJson_namedInputs = nxJson.namedInputs) == null ? void 0 : _nxJson_namedInputs.production;
|
|
71
71
|
if (productionFileSet) {
|
|
@@ -74,10 +74,12 @@ function createVitestConfig(tree) {
|
|
|
74
74
|
}
|
|
75
75
|
var _targetDefaults;
|
|
76
76
|
(_targetDefaults = (_nxJson = nxJson).targetDefaults) != null ? _targetDefaults : _nxJson.targetDefaults = {};
|
|
77
|
-
var
|
|
78
|
-
(
|
|
77
|
+
var _;
|
|
78
|
+
(_ = (_nxJson_targetDefaults = nxJson.targetDefaults)[_nxvitetest = '@nx/vite:test']) != null ? _ : _nxJson_targetDefaults[_nxvitetest] = {};
|
|
79
|
+
var _cache;
|
|
80
|
+
(_cache = (_nxJson_targetDefaults_nxvitetest = nxJson.targetDefaults['@nx/vite:test']).cache) != null ? _cache : _nxJson_targetDefaults_nxvitetest.cache = true;
|
|
79
81
|
var _inputs;
|
|
80
|
-
(_inputs = (
|
|
82
|
+
(_inputs = (_nxJson_targetDefaults_nxvitetest1 = nxJson.targetDefaults['@nx/vite:test']).inputs) != null ? _inputs : _nxJson_targetDefaults_nxvitetest1.inputs = [
|
|
81
83
|
'default',
|
|
82
84
|
productionFileSet ? '^production' : '^default'
|
|
83
85
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../packages/vite/src/generators/init/init.ts"],"sourcesContent":["import {\n addDependenciesToPackageJson,\n logger,\n readJson,\n readNxJson,\n runTasksInSerial,\n Tree,\n updateJson,\n updateNxJson,\n} from '@nx/devkit';\n\nimport { initGenerator as jsInitGenerator } from '@nx/js';\n\nimport {\n edgeRuntimeVmVersion,\n happyDomVersion,\n jsdomVersion,\n nxVersion,\n vitePluginDtsVersion,\n vitePluginReactSwcVersion,\n vitePluginReactVersion,\n vitestUiVersion,\n vitestVersion,\n viteVersion,\n} from '../../utils/versions';\nimport { InitGeneratorSchema } from './schema';\n\nfunction checkDependenciesInstalled(host: Tree, schema: InitGeneratorSchema) {\n const packageJson = readJson(host, 'package.json');\n const devDependencies = {};\n const dependencies = {};\n packageJson.dependencies = packageJson.dependencies || {};\n packageJson.devDependencies = packageJson.devDependencies || {};\n\n // base deps\n devDependencies['@nx/vite'] = nxVersion;\n devDependencies['vite'] = viteVersion;\n devDependencies['vitest'] = vitestVersion;\n devDependencies['@vitest/ui'] = vitestUiVersion;\n\n if (schema.testEnvironment === 'jsdom') {\n devDependencies['jsdom'] = jsdomVersion;\n } else if (schema.testEnvironment === 'happy-dom') {\n devDependencies['happy-dom'] = happyDomVersion;\n } else if (schema.testEnvironment === 'edge-runtime') {\n devDependencies['@edge-runtime/vm'] = edgeRuntimeVmVersion;\n } else if (schema.testEnvironment !== 'node' && schema.testEnvironment) {\n logger.info(\n `A custom environment was provided: ${schema.testEnvironment}. You need to install it manually.`\n );\n }\n\n if (schema.uiFramework === 'react') {\n if (schema.compiler === 'swc') {\n devDependencies['@vitejs/plugin-react-swc'] = vitePluginReactSwcVersion;\n } else {\n devDependencies['@vitejs/plugin-react'] = vitePluginReactVersion;\n }\n }\n\n if (schema.includeLib) {\n devDependencies['vite-plugin-dts'] = vitePluginDtsVersion;\n }\n\n return addDependenciesToPackageJson(host, dependencies, devDependencies);\n}\n\nfunction moveToDevDependencies(tree: Tree) {\n updateJson(tree, 'package.json', (packageJson) => {\n packageJson.dependencies = packageJson.dependencies || {};\n packageJson.devDependencies = packageJson.devDependencies || {};\n\n if (packageJson.dependencies['@nx/vite']) {\n packageJson.devDependencies['@nx/vite'] =\n packageJson.dependencies['@nx/vite'];\n delete packageJson.dependencies['@nx/vite'];\n }\n return packageJson;\n });\n}\n\nexport function createVitestConfig(tree: Tree) {\n const nxJson = readNxJson(tree);\n\n const productionFileSet = nxJson.namedInputs?.production;\n if (productionFileSet) {\n productionFileSet.push(\n '!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)',\n '!{projectRoot}/tsconfig.spec.json'\n );\n\n nxJson.namedInputs.production = Array.from(new Set(productionFileSet));\n }\n\n nxJson.targetDefaults ??= {};\n nxJson.targetDefaults
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/vite/src/generators/init/init.ts"],"sourcesContent":["import {\n addDependenciesToPackageJson,\n logger,\n readJson,\n readNxJson,\n runTasksInSerial,\n Tree,\n updateJson,\n updateNxJson,\n} from '@nx/devkit';\n\nimport { initGenerator as jsInitGenerator } from '@nx/js';\n\nimport {\n edgeRuntimeVmVersion,\n happyDomVersion,\n jsdomVersion,\n nxVersion,\n vitePluginDtsVersion,\n vitePluginReactSwcVersion,\n vitePluginReactVersion,\n vitestUiVersion,\n vitestVersion,\n viteVersion,\n} from '../../utils/versions';\nimport { InitGeneratorSchema } from './schema';\n\nfunction checkDependenciesInstalled(host: Tree, schema: InitGeneratorSchema) {\n const packageJson = readJson(host, 'package.json');\n const devDependencies = {};\n const dependencies = {};\n packageJson.dependencies = packageJson.dependencies || {};\n packageJson.devDependencies = packageJson.devDependencies || {};\n\n // base deps\n devDependencies['@nx/vite'] = nxVersion;\n devDependencies['vite'] = viteVersion;\n devDependencies['vitest'] = vitestVersion;\n devDependencies['@vitest/ui'] = vitestUiVersion;\n\n if (schema.testEnvironment === 'jsdom') {\n devDependencies['jsdom'] = jsdomVersion;\n } else if (schema.testEnvironment === 'happy-dom') {\n devDependencies['happy-dom'] = happyDomVersion;\n } else if (schema.testEnvironment === 'edge-runtime') {\n devDependencies['@edge-runtime/vm'] = edgeRuntimeVmVersion;\n } else if (schema.testEnvironment !== 'node' && schema.testEnvironment) {\n logger.info(\n `A custom environment was provided: ${schema.testEnvironment}. You need to install it manually.`\n );\n }\n\n if (schema.uiFramework === 'react') {\n if (schema.compiler === 'swc') {\n devDependencies['@vitejs/plugin-react-swc'] = vitePluginReactSwcVersion;\n } else {\n devDependencies['@vitejs/plugin-react'] = vitePluginReactVersion;\n }\n }\n\n if (schema.includeLib) {\n devDependencies['vite-plugin-dts'] = vitePluginDtsVersion;\n }\n\n return addDependenciesToPackageJson(host, dependencies, devDependencies);\n}\n\nfunction moveToDevDependencies(tree: Tree) {\n updateJson(tree, 'package.json', (packageJson) => {\n packageJson.dependencies = packageJson.dependencies || {};\n packageJson.devDependencies = packageJson.devDependencies || {};\n\n if (packageJson.dependencies['@nx/vite']) {\n packageJson.devDependencies['@nx/vite'] =\n packageJson.dependencies['@nx/vite'];\n delete packageJson.dependencies['@nx/vite'];\n }\n return packageJson;\n });\n}\n\nexport function createVitestConfig(tree: Tree) {\n const nxJson = readNxJson(tree);\n\n const productionFileSet = nxJson.namedInputs?.production;\n if (productionFileSet) {\n productionFileSet.push(\n '!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)',\n '!{projectRoot}/tsconfig.spec.json'\n );\n\n nxJson.namedInputs.production = Array.from(new Set(productionFileSet));\n }\n\n nxJson.targetDefaults ??= {};\n nxJson.targetDefaults['@nx/vite:test'] ??= {};\n nxJson.targetDefaults['@nx/vite:test'].cache ??= true;\n nxJson.targetDefaults['@nx/vite:test'].inputs ??= [\n 'default',\n productionFileSet ? '^production' : '^default',\n ];\n\n updateNxJson(tree, nxJson);\n}\n\nexport async function initGenerator(tree: Tree, schema: InitGeneratorSchema) {\n moveToDevDependencies(tree);\n createVitestConfig(tree);\n const tasks = [];\n\n tasks.push(\n await jsInitGenerator(tree, {\n ...schema,\n skipFormat: true,\n tsConfigName: schema.rootProject ? 'tsconfig.json' : 'tsconfig.base.json',\n })\n );\n\n tasks.push(checkDependenciesInstalled(tree, schema));\n return runTasksInSerial(...tasks);\n}\n\nexport default initGenerator;\n"],"names":["createVitestConfig","initGenerator","checkDependenciesInstalled","host","schema","packageJson","readJson","devDependencies","dependencies","nxVersion","viteVersion","vitestVersion","vitestUiVersion","testEnvironment","jsdomVersion","happyDomVersion","edgeRuntimeVmVersion","logger","info","uiFramework","compiler","vitePluginReactSwcVersion","vitePluginReactVersion","includeLib","vitePluginDtsVersion","addDependenciesToPackageJson","moveToDevDependencies","tree","updateJson","nxJson","readNxJson","productionFileSet","namedInputs","production","push","Array","from","Set","targetDefaults","cache","inputs","updateNxJson","tasks","jsInitGenerator","skipFormat","tsConfigName","rootProject","runTasksInSerial"],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "default", {
|
|
3
|
+
enumerable: true,
|
|
4
|
+
get: function() {
|
|
5
|
+
return update;
|
|
6
|
+
}
|
|
7
|
+
});
|
|
8
|
+
const _devkit = require("@nx/devkit");
|
|
9
|
+
const _executoroptionsutils = require("@nx/devkit/src/generators/executor-options-utils");
|
|
10
|
+
const _projectconfigurationutils = require("nx/src/project-graph/utils/project-configuration-utils");
|
|
11
|
+
async function update(tree) {
|
|
12
|
+
var _nxJson_targetDefaults, _nxJson_namedInputs;
|
|
13
|
+
var _nxJson, _vitestDefaults, _vitestDefaults1;
|
|
14
|
+
const nxJson = (0, _devkit.readNxJson)(tree);
|
|
15
|
+
// Don't override anything if there are already target defaults for vitest
|
|
16
|
+
if ((_nxJson_targetDefaults = nxJson.targetDefaults) == null ? void 0 : _nxJson_targetDefaults['@nx/vite:test']) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
var _targetDefaults;
|
|
20
|
+
(_targetDefaults = (_nxJson = nxJson).targetDefaults) != null ? _targetDefaults : _nxJson.targetDefaults = {};
|
|
21
|
+
/**
|
|
22
|
+
* A set of targets which does not use any other executors
|
|
23
|
+
*/ const vitestTargets = new Set();
|
|
24
|
+
const graph = await (0, _devkit.createProjectGraphAsync)();
|
|
25
|
+
const projectMap = (0, _devkit.getProjects)(tree);
|
|
26
|
+
(0, _executoroptionsutils.forEachExecutorOptionsInGraph)(graph, '@nx/vite:test', (value, proj, targetName)=>{
|
|
27
|
+
vitestTargets.add(targetName);
|
|
28
|
+
});
|
|
29
|
+
// Workspace does not use vitest
|
|
30
|
+
if (vitestTargets.size === 0) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
// Use the project graph nodes so that targets which are inferred are considered
|
|
34
|
+
const projects = graph.nodes;
|
|
35
|
+
const vitestDefaults = nxJson.targetDefaults['@nx/vite:test'] = {};
|
|
36
|
+
// All vitest targets have the same name
|
|
37
|
+
if (vitestTargets.size === 1) {
|
|
38
|
+
const targetName = Array.from(vitestTargets)[0];
|
|
39
|
+
if (nxJson.targetDefaults[targetName]) {
|
|
40
|
+
Object.assign(vitestDefaults, nxJson.targetDefaults[targetName]);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
var _cache;
|
|
44
|
+
(_cache = (_vitestDefaults = vitestDefaults).cache) != null ? _cache : _vitestDefaults.cache = true;
|
|
45
|
+
const inputs = [
|
|
46
|
+
'default'
|
|
47
|
+
];
|
|
48
|
+
inputs.push(((_nxJson_namedInputs = nxJson.namedInputs) == null ? void 0 : _nxJson_namedInputs.production) ? '^production' : '^default');
|
|
49
|
+
var _inputs;
|
|
50
|
+
(_inputs = (_vitestDefaults1 = vitestDefaults).inputs) != null ? _inputs : _vitestDefaults1.inputs = inputs;
|
|
51
|
+
// Cleanup old target defaults
|
|
52
|
+
for (const [targetDefaultKey, targetDefault] of Object.entries(nxJson.targetDefaults)){
|
|
53
|
+
if (!isTargetDefaultUsed(targetDefault, nxJson.targetDefaults, projects, projectMap)) {
|
|
54
|
+
delete nxJson.targetDefaults[targetDefaultKey];
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
(0, _devkit.updateNxJson)(tree, nxJson);
|
|
58
|
+
await (0, _devkit.formatFiles)(tree);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Checks every target on every project to see if one of them uses the target default
|
|
62
|
+
*/ function isTargetDefaultUsed(targetDefault, targetDefaults, projects, projectMap) {
|
|
63
|
+
for (const p of Object.values(projects)){
|
|
64
|
+
var _p_data;
|
|
65
|
+
var _p_data_targets;
|
|
66
|
+
for(const targetName in (_p_data_targets = (_p_data = p.data) == null ? void 0 : _p_data.targets) != null ? _p_data_targets : {}){
|
|
67
|
+
var // It might seem like we should use the graph here too but we don't want to pass an executor which was processed in the graph
|
|
68
|
+
_projectMap_get_targets_targetName, _projectMap_get_targets;
|
|
69
|
+
if ((0, _projectconfigurationutils.readTargetDefaultsForTarget)(targetName, targetDefaults, (_projectMap_get_targets = projectMap.get(p.name).targets) == null ? void 0 : (_projectMap_get_targets_targetName = _projectMap_get_targets[targetName]) == null ? void 0 : _projectMap_get_targets_targetName.executor) === targetDefault) {
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
//# sourceMappingURL=move-target-defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/vite/src/migrations/update-17-1-0/move-target-defaults.ts"],"sourcesContent":["import {\n createProjectGraphAsync,\n formatFiles,\n getProjects,\n ProjectConfiguration,\n ProjectGraphProjectNode,\n readNxJson,\n TargetConfiguration,\n TargetDefaults,\n Tree,\n updateNxJson,\n} from '@nx/devkit';\nimport { forEachExecutorOptionsInGraph } from '@nx/devkit/src/generators/executor-options-utils';\nimport { VitestExecutorOptions } from '../../executors/test/schema';\nimport { readTargetDefaultsForTarget } from 'nx/src/project-graph/utils/project-configuration-utils';\n\nexport default async function update(tree: Tree) {\n const nxJson = readNxJson(tree);\n\n // Don't override anything if there are already target defaults for vitest\n if (nxJson.targetDefaults?.['@nx/vite:test']) {\n return;\n }\n\n nxJson.targetDefaults ??= {};\n\n /**\n * A set of targets which does not use any other executors\n */\n const vitestTargets = new Set<string>();\n const graph = await createProjectGraphAsync();\n const projectMap = getProjects(tree);\n\n forEachExecutorOptionsInGraph(\n graph,\n '@nx/vite:test',\n (value, proj, targetName) => {\n vitestTargets.add(targetName);\n }\n );\n\n // Workspace does not use vitest\n if (vitestTargets.size === 0) {\n return;\n }\n\n // Use the project graph nodes so that targets which are inferred are considered\n const projects = graph.nodes;\n\n const vitestDefaults: TargetConfiguration<Partial<VitestExecutorOptions>> =\n (nxJson.targetDefaults['@nx/vite:test'] = {});\n\n // All vitest targets have the same name\n if (vitestTargets.size === 1) {\n const targetName = Array.from(vitestTargets)[0];\n if (nxJson.targetDefaults[targetName]) {\n Object.assign(vitestDefaults, nxJson.targetDefaults[targetName]);\n }\n }\n\n vitestDefaults.cache ??= true;\n\n const inputs = ['default'];\n inputs.push(nxJson.namedInputs?.production ? '^production' : '^default');\n vitestDefaults.inputs ??= inputs;\n\n // Cleanup old target defaults\n for (const [targetDefaultKey, targetDefault] of Object.entries(\n nxJson.targetDefaults\n )) {\n if (\n !isTargetDefaultUsed(\n targetDefault,\n nxJson.targetDefaults,\n projects,\n projectMap\n )\n ) {\n delete nxJson.targetDefaults[targetDefaultKey];\n }\n }\n\n updateNxJson(tree, nxJson);\n\n await formatFiles(tree);\n}\n\n/**\n * Checks every target on every project to see if one of them uses the target default\n */\nfunction isTargetDefaultUsed(\n targetDefault: Partial<TargetConfiguration>,\n targetDefaults: TargetDefaults,\n projects: Record<string, ProjectGraphProjectNode>,\n projectMap: Map<string, ProjectConfiguration>\n) {\n for (const p of Object.values(projects)) {\n for (const targetName in p.data?.targets ?? {}) {\n if (\n readTargetDefaultsForTarget(\n targetName,\n targetDefaults,\n // It might seem like we should use the graph here too but we don't want to pass an executor which was processed in the graph\n projectMap.get(p.name).targets?.[targetName]?.executor\n ) === targetDefault\n ) {\n return true;\n }\n }\n }\n return false;\n}\n"],"names":["update","tree","nxJson","vitestDefaults","readNxJson","targetDefaults","vitestTargets","Set","graph","createProjectGraphAsync","projectMap","getProjects","forEachExecutorOptionsInGraph","value","proj","targetName","add","size","projects","nodes","Array","from","Object","assign","cache","inputs","push","namedInputs","production","targetDefaultKey","targetDefault","entries","isTargetDefaultUsed","updateNxJson","formatFiles","p","values","data","targets","readTargetDefaultsForTarget","get","name","executor"],"mappings":";+BAgBA;;;eAA8BA;;;wBALvB;sCACuC;2CAEF;AAE7B,eAAeA,OAAOC,IAAU;QAIzCC,wBA2CQA;QAvCZA,SAoCAC,iBAIAA;IA/CA,MAAMD,SAASE,IAAAA,kBAAU,EAACH;IAE1B,0EAA0E;IAC1E,KAAIC,yBAAAA,OAAOG,cAAc,qBAArBH,sBAAuB,CAAC,gBAAgB,EAAE;QAC5C;IACF;;IAEAA,oBAAAA,UAAAA,QAAOG,4CAAPH,QAAOG,iBAAmB,CAAC;IAE3B;;GAEC,GACD,MAAMC,gBAAgB,IAAIC;IAC1B,MAAMC,QAAQ,MAAMC,IAAAA,+BAAuB;IAC3C,MAAMC,aAAaC,IAAAA,mBAAW,EAACV;IAE/BW,IAAAA,mDAA6B,EAC3BJ,OACA,iBACA,CAACK,OAAOC,MAAMC;QACZT,cAAcU,GAAG,CAACD;IACpB;IAGF,gCAAgC;IAChC,IAAIT,cAAcW,IAAI,KAAK,GAAG;QAC5B;IACF;IAEA,gFAAgF;IAChF,MAAMC,WAAWV,MAAMW,KAAK;IAE5B,MAAMhB,iBACHD,OAAOG,cAAc,CAAC,gBAAgB,GAAG,CAAC;IAE7C,wCAAwC;IACxC,IAAIC,cAAcW,IAAI,KAAK,GAAG;QAC5B,MAAMF,aAAaK,MAAMC,IAAI,CAACf,cAAc,CAAC,EAAE;QAC/C,IAAIJ,OAAOG,cAAc,CAACU,WAAW,EAAE;YACrCO,OAAOC,MAAM,CAACpB,gBAAgBD,OAAOG,cAAc,CAACU,WAAW;QACjE;IACF;;IAEAZ,WAAAA,kBAAAA,gBAAeqB,0BAAfrB,gBAAeqB,QAAU;IAEzB,MAAMC,SAAS;QAAC;KAAU;IAC1BA,OAAOC,IAAI,CAACxB,EAAAA,sBAAAA,OAAOyB,WAAW,qBAAlBzB,oBAAoB0B,UAAU,IAAG,gBAAgB;;IAC7DzB,YAAAA,mBAAAA,gBAAesB,4BAAftB,iBAAesB,SAAWA;IAE1B,8BAA8B;IAC9B,KAAK,MAAM,CAACI,kBAAkBC,cAAc,IAAIR,OAAOS,OAAO,CAC5D7B,OAAOG,cAAc,EACpB;QACD,IACE,CAAC2B,oBACCF,eACA5B,OAAOG,cAAc,EACrBa,UACAR,aAEF;YACA,OAAOR,OAAOG,cAAc,CAACwB,iBAAiB;QAChD;IACF;IAEAI,IAAAA,oBAAY,EAAChC,MAAMC;IAEnB,MAAMgC,IAAAA,mBAAW,EAACjC;AACpB;AAEA;;CAEC,GACD,SAAS+B,oBACPF,aAA2C,EAC3CzB,cAA8B,EAC9Ba,QAAiD,EACjDR,UAA6C;IAE7C,KAAK,MAAMyB,KAAKb,OAAOc,MAAM,CAAClB,UAAW;YACdiB;YAAAA;QAAzB,IAAK,MAAMpB,cAAcoB,CAAAA,mBAAAA,UAAAA,EAAEE,IAAI,qBAANF,QAAQG,OAAO,YAAfH,kBAAmB,CAAC,EAAG;gBAK1C,6HAA6H;YAC7HzB,oCAAAA;YALJ,IACE6B,IAAAA,sDAA2B,EACzBxB,YACAV,iBAEAK,0BAAAA,WAAW8B,GAAG,CAACL,EAAEM,IAAI,EAAEH,OAAO,sBAA9B5B,qCAAAA,uBAAgC,CAACK,WAAW,qBAA5CL,mCAA8CgC,QAAQ,MAClDZ,eACN;gBACA,OAAO;YACT;QACF;IACF;IACA,OAAO;AACT"}
|