@nx/vite 17.2.0-beta.14 → 17.2.0-beta.15

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nx/vite",
3
- "version": "17.2.0-beta.14",
3
+ "version": "17.2.0-beta.15",
4
4
  "private": false,
5
5
  "description": "The Nx Plugin for building and testing applications using Vite",
6
6
  "repository": {
@@ -29,13 +29,13 @@
29
29
  "migrations": "./migrations.json"
30
30
  },
31
31
  "dependencies": {
32
- "@nx/devkit": "17.2.0-beta.14",
32
+ "@nx/devkit": "17.2.0-beta.15",
33
33
  "@phenomnomnominal/tsquery": "~5.0.1",
34
34
  "@swc/helpers": "~0.5.0",
35
35
  "enquirer": "~2.3.6",
36
- "@nx/js": "17.2.0-beta.14",
36
+ "@nx/js": "17.2.0-beta.15",
37
37
  "tsconfig-paths": "^4.1.2",
38
- "@nrwl/vite": "17.2.0-beta.14"
38
+ "@nrwl/vite": "17.2.0-beta.15"
39
39
  },
40
40
  "peerDependencies": {
41
41
  "vite": "^5.0.0",
@@ -15,7 +15,6 @@ _export(exports, {
15
15
  });
16
16
  const _devkit = require("@nx/devkit");
17
17
  const _path = require("path");
18
- const _projectconfigurationutils = require("nx/src/project-graph/utils/project-configuration-utils");
19
18
  const _getnamedinputs = require("@nx/devkit/src/utils/get-named-inputs");
20
19
  const _vite = require("vite");
21
20
  const _fs = require("fs");
@@ -68,29 +67,21 @@ async function buildViteTargets(configFilePath, projectRoot, options, context) {
68
67
  const { buildOutputs, testOutputs } = getOutputs(projectRoot, viteConfig == null ? void 0 : viteConfig.config);
69
68
  const namedInputs = (0, _getnamedinputs.getNamedInputs)(projectRoot, context);
70
69
  const targets = {};
71
- targets[options.buildTargetName] = await buildTarget(context, namedInputs, buildOutputs, options, projectRoot);
70
+ targets[options.buildTargetName] = await buildTarget(namedInputs, buildOutputs, projectRoot);
72
71
  targets[options.serveTargetName] = serveTarget(projectRoot);
73
72
  targets[options.previewTargetName] = previewTarget(projectRoot);
74
- targets[options.testTargetName] = await testTarget(context, namedInputs, testOutputs, options, projectRoot);
73
+ targets[options.testTargetName] = await testTarget(namedInputs, testOutputs, projectRoot);
75
74
  targets[options.serveStaticTargetName] = serveStaticTarget(options);
76
75
  return targets;
77
76
  }
78
- async function buildTarget(context, namedInputs, outputs, options, projectRoot) {
79
- const targetDefaults = (0, _projectconfigurationutils.readTargetDefaultsForTarget)(options.buildTargetName, context.nxJsonConfiguration.targetDefaults);
80
- const targetConfig = {
77
+ async function buildTarget(namedInputs, outputs, projectRoot) {
78
+ return {
81
79
  command: `vite build`,
82
80
  options: {
83
81
  cwd: (0, _devkit.joinPathFragments)(projectRoot)
84
- }
85
- };
86
- if ((targetDefaults == null ? void 0 : targetDefaults.outputs) === undefined) {
87
- targetConfig.outputs = outputs;
88
- }
89
- if ((targetDefaults == null ? void 0 : targetDefaults.cache) === undefined) {
90
- targetConfig.cache = true;
91
- }
92
- if ((targetDefaults == null ? void 0 : targetDefaults.inputs) === undefined) {
93
- targetConfig.inputs = [
82
+ },
83
+ cache: true,
84
+ inputs: [
94
85
  ...'production' in namedInputs ? [
95
86
  'production',
96
87
  '^production'
@@ -103,9 +94,9 @@ async function buildTarget(context, namedInputs, outputs, options, projectRoot)
103
94
  'vite'
104
95
  ]
105
96
  }
106
- ];
107
- }
108
- return targetConfig;
97
+ ],
98
+ outputs
99
+ };
109
100
  }
110
101
  function serveTarget(projectRoot) {
111
102
  const targetConfig = {
@@ -125,22 +116,14 @@ function previewTarget(projectRoot) {
125
116
  };
126
117
  return targetConfig;
127
118
  }
128
- async function testTarget(context, namedInputs, outputs, options, projectRoot) {
129
- const targetDefaults = (0, _projectconfigurationutils.readTargetDefaultsForTarget)(options.testTargetName, context.nxJsonConfiguration.targetDefaults);
130
- const targetConfig = {
119
+ async function testTarget(namedInputs, outputs, projectRoot) {
120
+ return {
131
121
  command: `vitest run`,
132
122
  options: {
133
123
  cwd: (0, _devkit.joinPathFragments)(projectRoot)
134
- }
135
- };
136
- if ((targetDefaults == null ? void 0 : targetDefaults.outputs) === undefined) {
137
- targetConfig.outputs = outputs;
138
- }
139
- if ((targetDefaults == null ? void 0 : targetDefaults.cache) === undefined) {
140
- targetConfig.cache = true;
141
- }
142
- if ((targetDefaults == null ? void 0 : targetDefaults.inputs) === undefined) {
143
- targetConfig.inputs = [
124
+ },
125
+ cache: true,
126
+ inputs: [
144
127
  ...'production' in namedInputs ? [
145
128
  'production',
146
129
  '^production'
@@ -153,9 +136,9 @@ async function testTarget(context, namedInputs, outputs, options, projectRoot) {
153
136
  'vitest'
154
137
  ]
155
138
  }
156
- ];
157
- }
158
- return targetConfig;
139
+ ],
140
+ outputs
141
+ };
159
142
  }
160
143
  function serveStaticTarget(options) {
161
144
  const targetConfig = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../packages/vite/src/plugins/plugin.ts"],"sourcesContent":["import {\n CreateDependencies,\n CreateNodes,\n CreateNodesContext,\n TargetConfiguration,\n detectPackageManager,\n joinPathFragments,\n readJsonFile,\n workspaceRoot,\n writeJsonFile,\n} from '@nx/devkit';\nimport { dirname, isAbsolute, join, relative, resolve } from 'path';\n\nimport { readTargetDefaultsForTarget } from 'nx/src/project-graph/utils/project-configuration-utils';\nimport { getNamedInputs } from '@nx/devkit/src/utils/get-named-inputs';\nimport { UserConfig, loadConfigFromFile } from 'vite';\nimport { existsSync, readdirSync } from 'fs';\nimport { calculateHashForCreateNodes } from '@nx/devkit/src/utils/calculate-hash-for-create-nodes';\nimport { projectGraphCacheDirectory } from 'nx/src/utils/cache-directory';\nimport { getLockFileName } from '@nx/js';\nexport interface VitePluginOptions {\n buildTargetName?: string;\n testTargetName?: string;\n serveTargetName?: string;\n previewTargetName?: string;\n serveStaticTargetName?: string;\n}\n\nconst cachePath = join(projectGraphCacheDirectory, 'vite.hash');\nconst targetsCache = existsSync(cachePath) ? readTargetsCache() : {};\n\nconst calculatedTargets: Record<\n string,\n Record<string, TargetConfiguration>\n> = {};\n\nfunction readTargetsCache(): Record<\n string,\n Record<string, TargetConfiguration>\n> {\n return readJsonFile(cachePath);\n}\n\nfunction writeTargetsToCache(\n targets: Record<string, Record<string, TargetConfiguration>>\n) {\n writeJsonFile(cachePath, targets);\n}\n\nexport const createDependencies: CreateDependencies = () => {\n writeTargetsToCache(calculatedTargets);\n return [];\n};\n\nexport const createNodes: CreateNodes<VitePluginOptions> = [\n '**/vite.config.{js,ts}',\n async (configFilePath, options, context) => {\n const projectRoot = dirname(configFilePath);\n // Do not create a project if package.json and project.json isn't there.\n const siblingFiles = readdirSync(join(context.workspaceRoot, projectRoot));\n if (\n !siblingFiles.includes('package.json') &&\n !siblingFiles.includes('project.json')\n ) {\n return {};\n }\n\n options = normalizeOptions(options);\n\n const hash = calculateHashForCreateNodes(projectRoot, options, context, [\n getLockFileName(detectPackageManager(context.workspaceRoot)),\n ]);\n const targets = targetsCache[hash]\n ? targetsCache[hash]\n : await buildViteTargets(configFilePath, projectRoot, options, context);\n\n calculatedTargets[hash] = targets;\n\n return {\n projects: {\n [projectRoot]: {\n root: projectRoot,\n targets,\n },\n },\n };\n },\n];\n\nasync function buildViteTargets(\n configFilePath: string,\n projectRoot: string,\n options: VitePluginOptions,\n context: CreateNodesContext\n) {\n const viteConfig = await loadConfigFromFile(\n {\n command: 'build',\n mode: 'production',\n },\n configFilePath\n );\n\n const { buildOutputs, testOutputs } = getOutputs(\n projectRoot,\n viteConfig?.config\n );\n\n const namedInputs = getNamedInputs(projectRoot, context);\n\n const targets: Record<string, TargetConfiguration> = {};\n\n targets[options.buildTargetName] = await buildTarget(\n context,\n namedInputs,\n buildOutputs,\n options,\n projectRoot\n );\n\n targets[options.serveTargetName] = serveTarget(projectRoot);\n\n targets[options.previewTargetName] = previewTarget(projectRoot);\n\n targets[options.testTargetName] = await testTarget(\n context,\n namedInputs,\n testOutputs,\n options,\n projectRoot\n );\n\n targets[options.serveStaticTargetName] = serveStaticTarget(options) as {};\n\n return targets;\n}\n\nasync function buildTarget(\n context: CreateNodesContext,\n namedInputs: {\n [inputName: string]: any[];\n },\n outputs: string[],\n options: VitePluginOptions,\n projectRoot: string\n) {\n const targetDefaults = readTargetDefaultsForTarget(\n options.buildTargetName,\n context.nxJsonConfiguration.targetDefaults\n );\n\n const targetConfig: TargetConfiguration = {\n command: `vite build`,\n options: {\n cwd: joinPathFragments(projectRoot),\n },\n };\n\n if (targetDefaults?.outputs === undefined) {\n targetConfig.outputs = outputs;\n }\n\n if (targetDefaults?.cache === undefined) {\n targetConfig.cache = true;\n }\n\n if (targetDefaults?.inputs === undefined) {\n targetConfig.inputs = [\n ...('production' in namedInputs\n ? ['production', '^production']\n : ['default', '^default']),\n {\n externalDependencies: ['vite'],\n },\n ];\n }\n\n return targetConfig;\n}\n\nfunction serveTarget(projectRoot: string) {\n const targetConfig: TargetConfiguration = {\n command: `vite serve`,\n options: {\n cwd: joinPathFragments(projectRoot),\n },\n };\n\n return targetConfig;\n}\n\nfunction previewTarget(projectRoot: string) {\n const targetConfig: TargetConfiguration = {\n command: `vite preview`,\n options: {\n cwd: joinPathFragments(projectRoot),\n },\n };\n\n return targetConfig;\n}\n\nasync function testTarget(\n context: CreateNodesContext,\n namedInputs: {\n [inputName: string]: any[];\n },\n outputs: string[],\n options: VitePluginOptions,\n projectRoot: string\n) {\n const targetDefaults = readTargetDefaultsForTarget(\n options.testTargetName,\n context.nxJsonConfiguration.targetDefaults\n );\n\n const targetConfig: TargetConfiguration = {\n command: `vitest run`,\n options: {\n cwd: joinPathFragments(projectRoot),\n },\n };\n\n if (targetDefaults?.outputs === undefined) {\n targetConfig.outputs = outputs;\n }\n\n if (targetDefaults?.cache === undefined) {\n targetConfig.cache = true;\n }\n\n if (targetDefaults?.inputs === undefined) {\n targetConfig.inputs = [\n ...('production' in namedInputs\n ? ['production', '^production']\n : ['default', '^default']),\n {\n externalDependencies: ['vitest'],\n },\n ];\n }\n return targetConfig;\n}\n\nfunction serveStaticTarget(options: VitePluginOptions) {\n const targetConfig: TargetConfiguration = {\n executor: '@nx/web:file-server',\n options: {\n buildTarget: `${options.buildTargetName}`,\n },\n };\n\n return targetConfig;\n}\n\nfunction getOutputs(\n projectRoot: string,\n viteConfig: UserConfig\n): {\n buildOutputs: string[];\n testOutputs: string[];\n} {\n const { build, test } = viteConfig;\n const buildOutputs = ['{options.outputPath}'];\n const testOutputs = ['{options.reportsDirectory}'];\n\n function getOutput(path: string, projectRoot: string): string {\n if (path.startsWith('..')) {\n return join('{workspaceRoot}', join(projectRoot, path));\n } else if (isAbsolute(resolve(path))) {\n return `{workspaceRoot}/${relative(workspaceRoot, path)}`;\n } else {\n return join('{projectRoot}', path);\n }\n }\n\n if (build?.outDir) {\n buildOutputs.push(getOutput(build.outDir, projectRoot));\n }\n\n if (test?.coverage?.reportsDirectory) {\n testOutputs.push(getOutput(test.coverage.reportsDirectory, projectRoot));\n }\n\n return { buildOutputs, testOutputs };\n}\n\nfunction normalizeOptions(options: VitePluginOptions): VitePluginOptions {\n options ??= {};\n options.buildTargetName ??= 'build';\n options.serveTargetName ??= 'serve';\n options.previewTargetName ??= 'preview';\n options.testTargetName ??= 'test';\n options.serveStaticTargetName ??= 'serve-static';\n return options;\n}\n"],"names":["createDependencies","createNodes","cachePath","join","projectGraphCacheDirectory","targetsCache","existsSync","readTargetsCache","calculatedTargets","readJsonFile","writeTargetsToCache","targets","writeJsonFile","configFilePath","options","context","projectRoot","dirname","siblingFiles","readdirSync","workspaceRoot","includes","normalizeOptions","hash","calculateHashForCreateNodes","getLockFileName","detectPackageManager","buildViteTargets","projects","root","viteConfig","loadConfigFromFile","command","mode","buildOutputs","testOutputs","getOutputs","config","namedInputs","getNamedInputs","buildTargetName","buildTarget","serveTargetName","serveTarget","previewTargetName","previewTarget","testTargetName","testTarget","serveStaticTargetName","serveStaticTarget","outputs","targetDefaults","readTargetDefaultsForTarget","nxJsonConfiguration","targetConfig","cwd","joinPathFragments","undefined","cache","inputs","externalDependencies","executor","test","build","getOutput","path","startsWith","isAbsolute","resolve","relative","outDir","push","coverage","reportsDirectory"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../packages/vite/src/plugins/plugin.ts"],"sourcesContent":["import {\n CreateDependencies,\n CreateNodes,\n CreateNodesContext,\n detectPackageManager,\n joinPathFragments,\n readJsonFile,\n TargetConfiguration,\n workspaceRoot,\n writeJsonFile,\n} from '@nx/devkit';\nimport { dirname, isAbsolute, join, relative, resolve } from 'path';\nimport { getNamedInputs } from '@nx/devkit/src/utils/get-named-inputs';\nimport { loadConfigFromFile, UserConfig } from 'vite';\nimport { existsSync, readdirSync } from 'fs';\nimport { calculateHashForCreateNodes } from '@nx/devkit/src/utils/calculate-hash-for-create-nodes';\nimport { projectGraphCacheDirectory } from 'nx/src/utils/cache-directory';\nimport { getLockFileName } from '@nx/js';\n\nexport interface VitePluginOptions {\n buildTargetName?: string;\n testTargetName?: string;\n serveTargetName?: string;\n previewTargetName?: string;\n serveStaticTargetName?: string;\n}\n\nconst cachePath = join(projectGraphCacheDirectory, 'vite.hash');\nconst targetsCache = existsSync(cachePath) ? readTargetsCache() : {};\n\nconst calculatedTargets: Record<\n string,\n Record<string, TargetConfiguration>\n> = {};\n\nfunction readTargetsCache(): Record<\n string,\n Record<string, TargetConfiguration>\n> {\n return readJsonFile(cachePath);\n}\n\nfunction writeTargetsToCache(\n targets: Record<string, Record<string, TargetConfiguration>>\n) {\n writeJsonFile(cachePath, targets);\n}\n\nexport const createDependencies: CreateDependencies = () => {\n writeTargetsToCache(calculatedTargets);\n return [];\n};\n\nexport const createNodes: CreateNodes<VitePluginOptions> = [\n '**/vite.config.{js,ts}',\n async (configFilePath, options, context) => {\n const projectRoot = dirname(configFilePath);\n // Do not create a project if package.json and project.json isn't there.\n const siblingFiles = readdirSync(join(context.workspaceRoot, projectRoot));\n if (\n !siblingFiles.includes('package.json') &&\n !siblingFiles.includes('project.json')\n ) {\n return {};\n }\n\n options = normalizeOptions(options);\n\n const hash = calculateHashForCreateNodes(projectRoot, options, context, [\n getLockFileName(detectPackageManager(context.workspaceRoot)),\n ]);\n const targets = targetsCache[hash]\n ? targetsCache[hash]\n : await buildViteTargets(configFilePath, projectRoot, options, context);\n\n calculatedTargets[hash] = targets;\n\n return {\n projects: {\n [projectRoot]: {\n root: projectRoot,\n targets,\n },\n },\n };\n },\n];\n\nasync function buildViteTargets(\n configFilePath: string,\n projectRoot: string,\n options: VitePluginOptions,\n context: CreateNodesContext\n) {\n const viteConfig = await loadConfigFromFile(\n {\n command: 'build',\n mode: 'production',\n },\n configFilePath\n );\n\n const { buildOutputs, testOutputs } = getOutputs(\n projectRoot,\n viteConfig?.config\n );\n\n const namedInputs = getNamedInputs(projectRoot, context);\n\n const targets: Record<string, TargetConfiguration> = {};\n\n targets[options.buildTargetName] = await buildTarget(\n namedInputs,\n buildOutputs,\n projectRoot\n );\n\n targets[options.serveTargetName] = serveTarget(projectRoot);\n\n targets[options.previewTargetName] = previewTarget(projectRoot);\n\n targets[options.testTargetName] = await testTarget(\n namedInputs,\n testOutputs,\n projectRoot\n );\n\n targets[options.serveStaticTargetName] = serveStaticTarget(options) as {};\n\n return targets;\n}\n\nasync function buildTarget(\n namedInputs: {\n [inputName: string]: any[];\n },\n outputs: string[],\n projectRoot: string\n) {\n return {\n command: `vite build`,\n options: { cwd: joinPathFragments(projectRoot) },\n cache: true,\n inputs: [\n ...('production' in namedInputs\n ? ['production', '^production']\n : ['default', '^default']),\n {\n externalDependencies: ['vite'],\n },\n ],\n outputs,\n };\n}\n\nfunction serveTarget(projectRoot: string) {\n const targetConfig: TargetConfiguration = {\n command: `vite serve`,\n options: {\n cwd: joinPathFragments(projectRoot),\n },\n };\n\n return targetConfig;\n}\n\nfunction previewTarget(projectRoot: string) {\n const targetConfig: TargetConfiguration = {\n command: `vite preview`,\n options: {\n cwd: joinPathFragments(projectRoot),\n },\n };\n\n return targetConfig;\n}\n\nasync function testTarget(\n namedInputs: {\n [inputName: string]: any[];\n },\n outputs: string[],\n projectRoot: string\n) {\n return {\n command: `vitest run`,\n options: { cwd: joinPathFragments(projectRoot) },\n cache: true,\n inputs: [\n ...('production' in namedInputs\n ? ['production', '^production']\n : ['default', '^default']),\n {\n externalDependencies: ['vitest'],\n },\n ],\n outputs,\n };\n}\n\nfunction serveStaticTarget(options: VitePluginOptions) {\n const targetConfig: TargetConfiguration = {\n executor: '@nx/web:file-server',\n options: {\n buildTarget: `${options.buildTargetName}`,\n },\n };\n\n return targetConfig;\n}\n\nfunction getOutputs(\n projectRoot: string,\n viteConfig: UserConfig\n): {\n buildOutputs: string[];\n testOutputs: string[];\n} {\n const { build, test } = viteConfig;\n const buildOutputs = ['{options.outputPath}'];\n const testOutputs = ['{options.reportsDirectory}'];\n\n function getOutput(path: string, projectRoot: string): string {\n if (path.startsWith('..')) {\n return join('{workspaceRoot}', join(projectRoot, path));\n } else if (isAbsolute(resolve(path))) {\n return `{workspaceRoot}/${relative(workspaceRoot, path)}`;\n } else {\n return join('{projectRoot}', path);\n }\n }\n\n if (build?.outDir) {\n buildOutputs.push(getOutput(build.outDir, projectRoot));\n }\n\n if (test?.coverage?.reportsDirectory) {\n testOutputs.push(getOutput(test.coverage.reportsDirectory, projectRoot));\n }\n\n return { buildOutputs, testOutputs };\n}\n\nfunction normalizeOptions(options: VitePluginOptions): VitePluginOptions {\n options ??= {};\n options.buildTargetName ??= 'build';\n options.serveTargetName ??= 'serve';\n options.previewTargetName ??= 'preview';\n options.testTargetName ??= 'test';\n options.serveStaticTargetName ??= 'serve-static';\n return options;\n}\n"],"names":["createDependencies","createNodes","cachePath","join","projectGraphCacheDirectory","targetsCache","existsSync","readTargetsCache","calculatedTargets","readJsonFile","writeTargetsToCache","targets","writeJsonFile","configFilePath","options","context","projectRoot","dirname","siblingFiles","readdirSync","workspaceRoot","includes","normalizeOptions","hash","calculateHashForCreateNodes","getLockFileName","detectPackageManager","buildViteTargets","projects","root","viteConfig","loadConfigFromFile","command","mode","buildOutputs","testOutputs","getOutputs","config","namedInputs","getNamedInputs","buildTargetName","buildTarget","serveTargetName","serveTarget","previewTargetName","previewTarget","testTargetName","testTarget","serveStaticTargetName","serveStaticTarget","outputs","cwd","joinPathFragments","cache","inputs","externalDependencies","targetConfig","executor","test","build","getOutput","path","startsWith","isAbsolute","resolve","relative","outDir","push","coverage","reportsDirectory"],"mappings":";;;;;;;;IAgDaA,kBAAkB;eAAlBA;;IAKAC,WAAW;eAAXA;;;wBA3CN;sBACsD;gCAC9B;sBACgB;oBACP;6CACI;gCACD;oBACX;AAUhC,MAAMC,YAAYC,IAAAA,UAAI,EAACC,0CAA0B,EAAE;AACnD,MAAMC,eAAeC,IAAAA,cAAU,EAACJ,aAAaK,qBAAqB,CAAC;AAEnE,MAAMC,oBAGF,CAAC;AAEL,SAASD;IAIP,OAAOE,IAAAA,oBAAY,EAACP;AACtB;AAEA,SAASQ,oBACPC,OAA4D;IAE5DC,IAAAA,qBAAa,EAACV,WAAWS;AAC3B;AAEO,MAAMX,qBAAyC;IACpDU,oBAAoBF;IACpB,OAAO,EAAE;AACX;AAEO,MAAMP,cAA8C;IACzD;IACA,OAAOY,gBAAgBC,SAASC;QAC9B,MAAMC,cAAcC,IAAAA,aAAO,EAACJ;QAC5B,wEAAwE;QACxE,MAAMK,eAAeC,IAAAA,eAAW,EAAChB,IAAAA,UAAI,EAACY,QAAQK,aAAa,EAAEJ;QAC7D,IACE,CAACE,aAAaG,QAAQ,CAAC,mBACvB,CAACH,aAAaG,QAAQ,CAAC,iBACvB;YACA,OAAO,CAAC;QACV;QAEAP,UAAUQ,iBAAiBR;QAE3B,MAAMS,OAAOC,IAAAA,wDAA2B,EAACR,aAAaF,SAASC,SAAS;YACtEU,IAAAA,mBAAe,EAACC,IAAAA,4BAAoB,EAACX,QAAQK,aAAa;SAC3D;QACD,MAAMT,UAAUN,YAAY,CAACkB,KAAK,GAC9BlB,YAAY,CAACkB,KAAK,GAClB,MAAMI,iBAAiBd,gBAAgBG,aAAaF,SAASC;QAEjEP,iBAAiB,CAACe,KAAK,GAAGZ;QAE1B,OAAO;YACLiB,UAAU;gBACR,CAACZ,YAAY,EAAE;oBACba,MAAMb;oBACNL;gBACF;YACF;QACF;IACF;CACD;AAED,eAAegB,iBACbd,cAAsB,EACtBG,WAAmB,EACnBF,OAA0B,EAC1BC,OAA2B;IAE3B,MAAMe,aAAa,MAAMC,IAAAA,wBAAkB,EACzC;QACEC,SAAS;QACTC,MAAM;IACR,GACApB;IAGF,MAAM,EAAEqB,YAAY,EAAEC,WAAW,EAAE,GAAGC,WACpCpB,aACAc,8BAAAA,WAAYO,MAAM;IAGpB,MAAMC,cAAcC,IAAAA,8BAAc,EAACvB,aAAaD;IAEhD,MAAMJ,UAA+C,CAAC;IAEtDA,OAAO,CAACG,QAAQ0B,eAAe,CAAC,GAAG,MAAMC,YACvCH,aACAJ,cACAlB;IAGFL,OAAO,CAACG,QAAQ4B,eAAe,CAAC,GAAGC,YAAY3B;IAE/CL,OAAO,CAACG,QAAQ8B,iBAAiB,CAAC,GAAGC,cAAc7B;IAEnDL,OAAO,CAACG,QAAQgC,cAAc,CAAC,GAAG,MAAMC,WACtCT,aACAH,aACAnB;IAGFL,OAAO,CAACG,QAAQkC,qBAAqB,CAAC,GAAGC,kBAAkBnC;IAE3D,OAAOH;AACT;AAEA,eAAe8B,YACbH,WAEC,EACDY,OAAiB,EACjBlC,WAAmB;IAEnB,OAAO;QACLgB,SAAS,CAAC,UAAU,CAAC;QACrBlB,SAAS;YAAEqC,KAAKC,IAAAA,yBAAiB,EAACpC;QAAa;QAC/CqC,OAAO;QACPC,QAAQ;eACF,gBAAgBhB,cAChB;gBAAC;gBAAc;aAAc,GAC7B;gBAAC;gBAAW;aAAW;YAC3B;gBACEiB,sBAAsB;oBAAC;iBAAO;YAChC;SACD;QACDL;IACF;AACF;AAEA,SAASP,YAAY3B,WAAmB;IACtC,MAAMwC,eAAoC;QACxCxB,SAAS,CAAC,UAAU,CAAC;QACrBlB,SAAS;YACPqC,KAAKC,IAAAA,yBAAiB,EAACpC;QACzB;IACF;IAEA,OAAOwC;AACT;AAEA,SAASX,cAAc7B,WAAmB;IACxC,MAAMwC,eAAoC;QACxCxB,SAAS,CAAC,YAAY,CAAC;QACvBlB,SAAS;YACPqC,KAAKC,IAAAA,yBAAiB,EAACpC;QACzB;IACF;IAEA,OAAOwC;AACT;AAEA,eAAeT,WACbT,WAEC,EACDY,OAAiB,EACjBlC,WAAmB;IAEnB,OAAO;QACLgB,SAAS,CAAC,UAAU,CAAC;QACrBlB,SAAS;YAAEqC,KAAKC,IAAAA,yBAAiB,EAACpC;QAAa;QAC/CqC,OAAO;QACPC,QAAQ;eACF,gBAAgBhB,cAChB;gBAAC;gBAAc;aAAc,GAC7B;gBAAC;gBAAW;aAAW;YAC3B;gBACEiB,sBAAsB;oBAAC;iBAAS;YAClC;SACD;QACDL;IACF;AACF;AAEA,SAASD,kBAAkBnC,OAA0B;IACnD,MAAM0C,eAAoC;QACxCC,UAAU;QACV3C,SAAS;YACP2B,aAAa,CAAC,EAAE3B,QAAQ0B,eAAe,CAAC,CAAC;QAC3C;IACF;IAEA,OAAOgB;AACT;AAEA,SAASpB,WACPpB,WAAmB,EACnBc,UAAsB;QAuBlB4B;IAlBJ,MAAM,EAAEC,KAAK,EAAED,IAAI,EAAE,GAAG5B;IACxB,MAAMI,eAAe;QAAC;KAAuB;IAC7C,MAAMC,cAAc;QAAC;KAA6B;IAElD,SAASyB,UAAUC,IAAY,EAAE7C,WAAmB;QAClD,IAAI6C,KAAKC,UAAU,CAAC,OAAO;YACzB,OAAO3D,IAAAA,UAAI,EAAC,mBAAmBA,IAAAA,UAAI,EAACa,aAAa6C;QACnD,OAAO,IAAIE,IAAAA,gBAAU,EAACC,IAAAA,aAAO,EAACH,QAAQ;YACpC,OAAO,CAAC,gBAAgB,EAAEI,IAAAA,cAAQ,EAAC7C,qBAAa,EAAEyC,MAAM,CAAC;QAC3D,OAAO;YACL,OAAO1D,IAAAA,UAAI,EAAC,iBAAiB0D;QAC/B;IACF;IAEA,IAAIF,yBAAAA,MAAOO,MAAM,EAAE;QACjBhC,aAAaiC,IAAI,CAACP,UAAUD,MAAMO,MAAM,EAAElD;IAC5C;IAEA,IAAI0C,yBAAAA,iBAAAA,KAAMU,QAAQ,qBAAdV,eAAgBW,gBAAgB,EAAE;QACpClC,YAAYgC,IAAI,CAACP,UAAUF,KAAKU,QAAQ,CAACC,gBAAgB,EAAErD;IAC7D;IAEA,OAAO;QAAEkB;QAAcC;IAAY;AACrC;AAEA,SAASb,iBAAiBR,OAA0B;QAElDA,UACAA,WACAA,WACAA,WACAA;IALAA,kBAAAA,UAAAA,UAAY,CAAC;;IACbA,qBAAAA,WAAAA,SAAQ0B,8CAAR1B,SAAQ0B,kBAAoB;;IAC5B1B,qBAAAA,YAAAA,SAAQ4B,8CAAR5B,UAAQ4B,kBAAoB;;IAC5B5B,uBAAAA,YAAAA,SAAQ8B,kDAAR9B,UAAQ8B,oBAAsB;;IAC9B9B,oBAAAA,YAAAA,SAAQgC,4CAARhC,UAAQgC,iBAAmB;;IAC3BhC,2BAAAA,YAAAA,SAAQkC,0DAARlC,UAAQkC,wBAA0B;IAClC,OAAOlC;AACT"}