@nx/vite 19.7.3 → 19.8.0-beta.0
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 +4 -4
- package/src/executors/test/vitest.impl.js +8 -3
- package/src/executors/test/vitest.impl.js.map +1 -1
- package/src/generators/convert-to-inferred/convert-to-inferred.js +1 -1
- package/src/generators/convert-to-inferred/convert-to-inferred.js.map +1 -1
- package/src/plugins/plugin.js +12 -2
- package/src/plugins/plugin.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nx/vite",
|
|
3
|
-
"version": "19.
|
|
3
|
+
"version": "19.8.0-beta.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "The Nx Plugin for building and testing applications using Vite",
|
|
6
6
|
"repository": {
|
|
@@ -30,14 +30,14 @@
|
|
|
30
30
|
"migrations": "./migrations.json"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@nx/devkit": "19.
|
|
33
|
+
"@nx/devkit": "19.8.0-beta.0",
|
|
34
34
|
"@phenomnomnominal/tsquery": "~5.0.1",
|
|
35
35
|
"@swc/helpers": "~0.5.0",
|
|
36
36
|
"enquirer": "~2.3.6",
|
|
37
|
-
"@nx/js": "19.
|
|
37
|
+
"@nx/js": "19.8.0-beta.0",
|
|
38
38
|
"tsconfig-paths": "^4.1.2",
|
|
39
39
|
"minimatch": "9.0.3",
|
|
40
|
-
"@nrwl/vite": "19.
|
|
40
|
+
"@nrwl/vite": "19.8.0-beta.0"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|
|
43
43
|
"vite": "^5.0.0",
|
|
@@ -55,9 +55,14 @@ async function* vitestExecutor(options, context) {
|
|
|
55
55
|
process.on('SIGTERM', processExit);
|
|
56
56
|
process.on('exit', processExit);
|
|
57
57
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
// vitest sets the exitCode in case of exception without notifying reporters
|
|
59
|
+
if (process.exitCode === undefined) {
|
|
60
|
+
for await (const report of nxReporter){
|
|
61
|
+
// vitest sets the exitCode = 1 when code coverage isn't met
|
|
62
|
+
hasErrors = report.hasErrors || process.exitCode && process.exitCode !== 0;
|
|
63
|
+
}
|
|
64
|
+
} else {
|
|
65
|
+
hasErrors = process.exitCode !== 0;
|
|
61
66
|
}
|
|
62
67
|
return {
|
|
63
68
|
success: !hasErrors
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../packages/vite/src/executors/test/vitest.impl.ts"],"sourcesContent":["import { ExecutorContext, workspaceRoot } from '@nx/devkit';\nimport { VitestExecutorOptions } from './schema';\nimport { resolve } from 'path';\nimport { registerTsConfigPaths } from '@nx/js/src/internal';\nimport { NxReporter } from './lib/nx-reporter';\nimport { getOptions } from './lib/utils';\nimport { loadVitestDynamicImport } from '../../utils/executor-utils';\n\nexport async function* vitestExecutor(\n options: VitestExecutorOptions,\n context: ExecutorContext\n) {\n const projectRoot =\n context.projectsConfigurations.projects[context.projectName].root;\n\n registerTsConfigPaths(resolve(workspaceRoot, projectRoot, 'tsconfig.json'));\n\n process.env.VITE_CJS_IGNORE_WARNING = 'true';\n // Allows ESM to be required in CJS modules. Vite will be published as ESM in the future.\n const { startVitest } = await loadVitestDynamicImport();\n\n const resolvedOptions =\n (await getOptions(options, context, projectRoot)) ?? {};\n\n const watch = resolvedOptions['watch'] === true;\n\n const nxReporter = new NxReporter(watch);\n if (resolvedOptions['reporters'] === undefined) {\n resolvedOptions['reporters'] = [];\n } else if (typeof resolvedOptions['reporters'] === 'string') {\n resolvedOptions['reporters'] = [resolvedOptions['reporters']];\n }\n resolvedOptions['reporters'].push(nxReporter);\n\n const cliFilters = options.testFiles ?? [];\n\n const ctx = await startVitest(\n resolvedOptions['mode'] ?? 'test',\n cliFilters,\n resolvedOptions\n );\n\n let hasErrors = false;\n\n const processExit = () => {\n ctx.exit();\n if (hasErrors) {\n process.exit(1);\n } else {\n process.exit(0);\n }\n };\n\n if (watch) {\n process.on('SIGINT', processExit);\n process.on('SIGTERM', processExit);\n process.on('exit', processExit);\n }\n\n for await (const report of nxReporter) {\n
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/vite/src/executors/test/vitest.impl.ts"],"sourcesContent":["import { ExecutorContext, workspaceRoot } from '@nx/devkit';\nimport { VitestExecutorOptions } from './schema';\nimport { resolve } from 'path';\nimport { registerTsConfigPaths } from '@nx/js/src/internal';\nimport { NxReporter } from './lib/nx-reporter';\nimport { getOptions } from './lib/utils';\nimport { loadVitestDynamicImport } from '../../utils/executor-utils';\n\nexport async function* vitestExecutor(\n options: VitestExecutorOptions,\n context: ExecutorContext\n) {\n const projectRoot =\n context.projectsConfigurations.projects[context.projectName].root;\n\n registerTsConfigPaths(resolve(workspaceRoot, projectRoot, 'tsconfig.json'));\n\n process.env.VITE_CJS_IGNORE_WARNING = 'true';\n // Allows ESM to be required in CJS modules. Vite will be published as ESM in the future.\n const { startVitest } = await loadVitestDynamicImport();\n\n const resolvedOptions =\n (await getOptions(options, context, projectRoot)) ?? {};\n\n const watch = resolvedOptions['watch'] === true;\n\n const nxReporter = new NxReporter(watch);\n if (resolvedOptions['reporters'] === undefined) {\n resolvedOptions['reporters'] = [];\n } else if (typeof resolvedOptions['reporters'] === 'string') {\n resolvedOptions['reporters'] = [resolvedOptions['reporters']];\n }\n resolvedOptions['reporters'].push(nxReporter);\n\n const cliFilters = options.testFiles ?? [];\n\n const ctx = await startVitest(\n resolvedOptions['mode'] ?? 'test',\n cliFilters,\n resolvedOptions\n );\n\n let hasErrors = false;\n\n const processExit = () => {\n ctx.exit();\n if (hasErrors) {\n process.exit(1);\n } else {\n process.exit(0);\n }\n };\n\n if (watch) {\n process.on('SIGINT', processExit);\n process.on('SIGTERM', processExit);\n process.on('exit', processExit);\n }\n\n // vitest sets the exitCode in case of exception without notifying reporters\n if (process.exitCode === undefined) {\n for await (const report of nxReporter) {\n // vitest sets the exitCode = 1 when code coverage isn't met\n hasErrors =\n report.hasErrors || (process.exitCode && process.exitCode !== 0);\n }\n } else {\n hasErrors = process.exitCode !== 0;\n }\n\n return {\n success: !hasErrors,\n };\n}\n\nexport default vitestExecutor;\n"],"names":["vitestExecutor","options","context","projectRoot","projectsConfigurations","projects","projectName","root","registerTsConfigPaths","resolve","workspaceRoot","process","env","VITE_CJS_IGNORE_WARNING","startVitest","loadVitestDynamicImport","resolvedOptions","getOptions","watch","nxReporter","NxReporter","undefined","push","cliFilters","testFiles","ctx","hasErrors","processExit","exit","on","exitCode","report","success"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;IA2EA,OAA8B;eAA9B;;IAnEuBA,cAAc;eAAdA;;;wBARwB;sBAEvB;0BACc;4BACX;uBACA;+BACa;AAEjC,gBAAgBA,eACrBC,OAA8B,EAC9BC,OAAwB;IAExB,MAAMC,cACJD,QAAQE,sBAAsB,CAACC,QAAQ,CAACH,QAAQI,WAAW,CAAC,CAACC,IAAI;IAEnEC,IAAAA,+BAAqB,EAACC,IAAAA,aAAO,EAACC,qBAAa,EAAEP,aAAa;IAE1DQ,QAAQC,GAAG,CAACC,uBAAuB,GAAG;IACtC,yFAAyF;IACzF,MAAM,EAAEC,WAAW,EAAE,GAAG,MAAMC,IAAAA,sCAAuB;QAGlD;IADH,MAAMC,kBACJ,CAAC,OAAA,MAAMC,IAAAA,iBAAU,EAAChB,SAASC,SAASC,wBAAnC,OAAoD,CAAC;IAExD,MAAMe,QAAQF,eAAe,CAAC,QAAQ,KAAK;IAE3C,MAAMG,aAAa,IAAIC,sBAAU,CAACF;IAClC,IAAIF,eAAe,CAAC,YAAY,KAAKK,WAAW;QAC9CL,eAAe,CAAC,YAAY,GAAG,EAAE;IACnC,OAAO,IAAI,OAAOA,eAAe,CAAC,YAAY,KAAK,UAAU;QAC3DA,eAAe,CAAC,YAAY,GAAG;YAACA,eAAe,CAAC,YAAY;SAAC;IAC/D;IACAA,eAAe,CAAC,YAAY,CAACM,IAAI,CAACH;QAEflB;IAAnB,MAAMsB,aAAatB,CAAAA,qBAAAA,QAAQuB,SAAS,YAAjBvB,qBAAqB,EAAE;QAGxCe;IADF,MAAMS,MAAM,MAAMX,YAChBE,CAAAA,wBAAAA,eAAe,CAAC,OAAO,YAAvBA,wBAA2B,QAC3BO,YACAP;IAGF,IAAIU,YAAY;IAEhB,MAAMC,cAAc;QAClBF,IAAIG,IAAI;QACR,IAAIF,WAAW;YACbf,QAAQiB,IAAI,CAAC;QACf,OAAO;YACLjB,QAAQiB,IAAI,CAAC;QACf;IACF;IAEA,IAAIV,OAAO;QACTP,QAAQkB,EAAE,CAAC,UAAUF;QACrBhB,QAAQkB,EAAE,CAAC,WAAWF;QACtBhB,QAAQkB,EAAE,CAAC,QAAQF;IACrB;IAEA,4EAA4E;IAC5E,IAAIhB,QAAQmB,QAAQ,KAAKT,WAAW;QAClC,WAAW,MAAMU,UAAUZ,WAAY;YACrC,4DAA4D;YAC5DO,YACEK,OAAOL,SAAS,IAAKf,QAAQmB,QAAQ,IAAInB,QAAQmB,QAAQ,KAAK;QAClE;IACF,OAAO;QACLJ,YAAYf,QAAQmB,QAAQ,KAAK;IACnC;IAEA,OAAO;QACLE,SAAS,CAACN;IACZ;AACF;MAEA,WAAe1B"}
|
|
@@ -69,7 +69,7 @@ async function convertToInferred(tree, options) {
|
|
|
69
69
|
}
|
|
70
70
|
], options.project);
|
|
71
71
|
if (migratedProjects.size === 0) {
|
|
72
|
-
throw new
|
|
72
|
+
throw new _executortopluginmigrator.NoTargetsToMigrateError();
|
|
73
73
|
}
|
|
74
74
|
if (!options.skipFormat) {
|
|
75
75
|
await (0, _devkit.formatFiles)(tree);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../packages/vite/src/generators/convert-to-inferred/convert-to-inferred.ts"],"sourcesContent":["import { createProjectGraphAsync, formatFiles, type Tree } from '@nx/devkit';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/vite/src/generators/convert-to-inferred/convert-to-inferred.ts"],"sourcesContent":["import { createProjectGraphAsync, formatFiles, type Tree } from '@nx/devkit';\nimport {\n migrateProjectExecutorsToPlugin,\n NoTargetsToMigrateError,\n} from '@nx/devkit/src/generators/plugin-migrations/executor-to-plugin-migrator';\nimport { createNodesV2, VitePluginOptions } from '../../plugins/plugin';\nimport { buildPostTargetTransformer } from './lib/build-post-target-transformer';\nimport { servePostTargetTransformer } from './lib/serve-post-target-transformer';\nimport { previewPostTargetTransformer } from './lib/preview-post-target-transformer';\nimport { testPostTargetTransformer } from './lib/test-post-target-transformer';\nimport { AggregatedLog } from '@nx/devkit/src/generators/plugin-migrations/aggregate-log-util';\n\ninterface Schema {\n project?: string;\n skipFormat?: boolean;\n}\n\nexport async function convertToInferred(tree: Tree, options: Schema) {\n const projectGraph = await createProjectGraphAsync();\n const migrationLogs = new AggregatedLog();\n\n const migratedProjects =\n await migrateProjectExecutorsToPlugin<VitePluginOptions>(\n tree,\n projectGraph,\n '@nx/vite/plugin',\n createNodesV2,\n {\n buildTargetName: 'build',\n serveTargetName: 'serve',\n previewTargetName: 'preview',\n testTargetName: 'test',\n serveStaticTargetName: 'serve-static',\n },\n [\n {\n executors: ['@nx/vite:build'],\n postTargetTransformer: buildPostTargetTransformer,\n targetPluginOptionMapper: (target) => ({ buildTargetName: target }),\n },\n {\n executors: ['@nx/vite:dev-server'],\n postTargetTransformer: servePostTargetTransformer(migrationLogs),\n targetPluginOptionMapper: (target) => ({ serveTargetName: target }),\n },\n {\n executors: ['@nx/vite:preview-server'],\n postTargetTransformer: previewPostTargetTransformer(migrationLogs),\n targetPluginOptionMapper: (target) => ({ previewTargetName: target }),\n },\n {\n executors: ['@nx/vite:test'],\n postTargetTransformer: testPostTargetTransformer,\n targetPluginOptionMapper: (target) => ({ testTargetName: target }),\n },\n ],\n options.project\n );\n\n if (migratedProjects.size === 0) {\n throw new NoTargetsToMigrateError();\n }\n\n if (!options.skipFormat) {\n await formatFiles(tree);\n }\n\n return () => {\n migrationLogs.flushLogs();\n };\n}\n\nexport default convertToInferred;\n"],"names":["convertToInferred","tree","options","projectGraph","createProjectGraphAsync","migrationLogs","AggregatedLog","migratedProjects","migrateProjectExecutorsToPlugin","createNodesV2","buildTargetName","serveTargetName","previewTargetName","testTargetName","serveStaticTargetName","executors","postTargetTransformer","buildPostTargetTransformer","targetPluginOptionMapper","target","servePostTargetTransformer","previewPostTargetTransformer","testPostTargetTransformer","project","size","NoTargetsToMigrateError","skipFormat","formatFiles","flushLogs"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;IAiBsBA,iBAAiB;eAAjBA;;IAuDtB,OAAiC;eAAjC;;;wBAxEgE;0CAIzD;wBAC0C;4CACN;4CACA;8CACE;2CACH;kCACZ;AAOvB,eAAeA,kBAAkBC,IAAU,EAAEC,OAAe;IACjE,MAAMC,eAAe,MAAMC,IAAAA,+BAAuB;IAClD,MAAMC,gBAAgB,IAAIC,+BAAa;IAEvC,MAAMC,mBACJ,MAAMC,IAAAA,yDAA+B,EACnCP,MACAE,cACA,mBACAM,qBAAa,EACb;QACEC,iBAAiB;QACjBC,iBAAiB;QACjBC,mBAAmB;QACnBC,gBAAgB;QAChBC,uBAAuB;IACzB,GACA;QACE;YACEC,WAAW;gBAAC;aAAiB;YAC7BC,uBAAuBC,sDAA0B;YACjDC,0BAA0B,CAACC,SAAY,CAAA;oBAAET,iBAAiBS;gBAAO,CAAA;QACnE;QACA;YACEJ,WAAW;gBAAC;aAAsB;YAClCC,uBAAuBI,IAAAA,sDAA0B,EAACf;YAClDa,0BAA0B,CAACC,SAAY,CAAA;oBAAER,iBAAiBQ;gBAAO,CAAA;QACnE;QACA;YACEJ,WAAW;gBAAC;aAA0B;YACtCC,uBAAuBK,IAAAA,0DAA4B,EAAChB;YACpDa,0BAA0B,CAACC,SAAY,CAAA;oBAAEP,mBAAmBO;gBAAO,CAAA;QACrE;QACA;YACEJ,WAAW;gBAAC;aAAgB;YAC5BC,uBAAuBM,oDAAyB;YAChDJ,0BAA0B,CAACC,SAAY,CAAA;oBAAEN,gBAAgBM;gBAAO,CAAA;QAClE;KACD,EACDjB,QAAQqB,OAAO;IAGnB,IAAIhB,iBAAiBiB,IAAI,KAAK,GAAG;QAC/B,MAAM,IAAIC,iDAAuB;IACnC;IAEA,IAAI,CAACvB,QAAQwB,UAAU,EAAE;QACvB,MAAMC,IAAAA,mBAAW,EAAC1B;IACpB;IAEA,OAAO;QACLI,cAAcuB,SAAS;IACzB;AACF;MAEA,WAAe5B"}
|
package/src/plugins/plugin.js
CHANGED
|
@@ -137,8 +137,18 @@ async function buildViteTargets(configFilePath, projectRoot, options, tsConfigFi
|
|
|
137
137
|
targets[options.typecheckTargetName] = {
|
|
138
138
|
cache: true,
|
|
139
139
|
inputs: [
|
|
140
|
-
'production'
|
|
141
|
-
|
|
140
|
+
...'production' in namedInputs ? [
|
|
141
|
+
'production',
|
|
142
|
+
'^production'
|
|
143
|
+
] : [
|
|
144
|
+
'default',
|
|
145
|
+
'^default'
|
|
146
|
+
],
|
|
147
|
+
{
|
|
148
|
+
externalDependencies: [
|
|
149
|
+
'typescript'
|
|
150
|
+
]
|
|
151
|
+
}
|
|
142
152
|
],
|
|
143
153
|
command: `tsc --noEmit -p ${tsConfigToUse}`,
|
|
144
154
|
options: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../packages/vite/src/plugins/plugin.ts"],"sourcesContent":["import {\n CreateDependencies,\n CreateNodes,\n CreateNodesContext,\n createNodesFromFiles,\n CreateNodesV2,\n detectPackageManager,\n getPackageManagerCommand,\n joinPathFragments,\n logger,\n ProjectConfiguration,\n readJsonFile,\n TargetConfiguration,\n writeJsonFile,\n} from '@nx/devkit';\nimport { dirname, isAbsolute, join, relative } from 'path';\nimport { getNamedInputs } from '@nx/devkit/src/utils/get-named-inputs';\nimport { existsSync, readdirSync } from 'fs';\nimport { calculateHashForCreateNodes } from '@nx/devkit/src/utils/calculate-hash-for-create-nodes';\nimport { workspaceDataDirectory } from 'nx/src/utils/cache-directory';\nimport { getLockFileName } from '@nx/js';\nimport { loadViteDynamicImport } from '../utils/executor-utils';\nimport { hashObject } from 'nx/src/hasher/file-hasher';\nimport { minimatch } from 'minimatch';\n\nconst pmc = getPackageManagerCommand();\n\nexport interface VitePluginOptions {\n buildTargetName?: string;\n testTargetName?: string;\n serveTargetName?: string;\n previewTargetName?: string;\n serveStaticTargetName?: string;\n typecheckTargetName?: string;\n}\n\ntype ViteTargets = Pick<ProjectConfiguration, 'targets' | 'metadata'>;\n\nfunction readTargetsCache(cachePath: string): Record<string, ViteTargets> {\n return existsSync(cachePath) ? readJsonFile(cachePath) : {};\n}\n\nfunction writeTargetsToCache(cachePath, results?: Record<string, ViteTargets>) {\n writeJsonFile(cachePath, results);\n}\n\n/**\n * @deprecated The 'createDependencies' function is now a no-op. This functionality is included in 'createNodesV2'.\n */\nexport const createDependencies: CreateDependencies = () => {\n return [];\n};\n\nconst viteVitestConfigGlob = '**/{vite,vitest}.config.{js,ts,mjs,mts,cjs,cts}';\n\nexport const createNodesV2: CreateNodesV2<VitePluginOptions> = [\n viteVitestConfigGlob,\n async (configFilePaths, options, context) => {\n const optionsHash = hashObject(options);\n const cachePath = join(workspaceDataDirectory, `vite-${optionsHash}.hash`);\n const targetsCache = readTargetsCache(cachePath);\n try {\n return await createNodesFromFiles(\n (configFile, options, context) =>\n createNodesInternal(configFile, options, context, targetsCache),\n configFilePaths,\n options,\n context\n );\n } finally {\n writeTargetsToCache(cachePath, targetsCache);\n }\n },\n];\n\nexport const createNodes: CreateNodes<VitePluginOptions> = [\n viteVitestConfigGlob,\n async (configFilePath, options, context) => {\n logger.warn(\n '`createNodes` is deprecated. Update your plugin to utilize createNodesV2 instead. In Nx 20, this will change to the createNodesV2 API.'\n );\n return createNodesInternal(configFilePath, options, context, {});\n },\n];\n\nasync function createNodesInternal(\n configFilePath: string,\n options: VitePluginOptions,\n context: CreateNodesContext,\n targetsCache: Record<string, ViteTargets>\n) {\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 const tsConfigFiles =\n siblingFiles.filter((p) => minimatch(p, 'tsconfig*{.json,.*.json}')) ?? [];\n\n const normalizedOptions = normalizeOptions(options);\n\n // We do not want to alter how the hash is calculated, so appending the config file path to the hash\n // to prevent vite/vitest files overwriting the target cache created by the other\n const hash =\n (await calculateHashForCreateNodes(\n projectRoot,\n normalizedOptions,\n context,\n [getLockFileName(detectPackageManager(context.workspaceRoot))]\n )) + configFilePath;\n\n const { isLibrary, ...viteTargets } = await buildViteTargets(\n configFilePath,\n projectRoot,\n normalizedOptions,\n tsConfigFiles,\n context\n );\n targetsCache[hash] ??= viteTargets;\n\n const { targets, metadata } = targetsCache[hash];\n const project: ProjectConfiguration = {\n root: projectRoot,\n targets,\n metadata,\n };\n\n // If project is buildable, then the project type.\n // If it is not buildable, then leave it to other plugins/project.json to set the project type.\n if (project.targets[options.buildTargetName]) {\n project.projectType = isLibrary ? 'library' : 'application';\n }\n\n return {\n projects: {\n [projectRoot]: project,\n },\n };\n}\n\nasync function buildViteTargets(\n configFilePath: string,\n projectRoot: string,\n options: VitePluginOptions,\n tsConfigFiles: string[],\n context: CreateNodesContext\n): Promise<ViteTargets & { isLibrary: boolean }> {\n const absoluteConfigFilePath = joinPathFragments(\n context.workspaceRoot,\n configFilePath\n );\n // Workaround for the `build$3 is not a function` error that we sometimes see in agents.\n // This should be removed later once we address the issue properly\n try {\n const importEsbuild = () => new Function('return import(\"esbuild\")')();\n await importEsbuild();\n } catch {\n // do nothing\n }\n const { resolveConfig } = await loadViteDynamicImport();\n const viteBuildConfig = await resolveConfig(\n {\n configFile: absoluteConfigFilePath,\n mode: 'development',\n },\n 'build'\n );\n\n const { buildOutputs, testOutputs, hasTest, isBuildable, hasServeConfig } =\n getOutputs(viteBuildConfig, projectRoot, context.workspaceRoot);\n\n const namedInputs = getNamedInputs(projectRoot, context);\n\n const targets: Record<string, TargetConfiguration> = {};\n\n // If file is not vitest.config and buildable, create targets for build, serve, preview and serve-static\n const hasRemixPlugin =\n viteBuildConfig.plugins &&\n viteBuildConfig.plugins.some((p) => p.name === 'remix');\n if (\n !configFilePath.includes('vitest.config') &&\n !hasRemixPlugin &&\n isBuildable\n ) {\n targets[options.buildTargetName] = await buildTarget(\n options.buildTargetName,\n namedInputs,\n buildOutputs,\n projectRoot\n );\n\n // If running in library mode, then there is nothing to serve.\n if (!viteBuildConfig.build?.lib || hasServeConfig) {\n targets[options.serveTargetName] = serveTarget(projectRoot);\n targets[options.previewTargetName] = previewTarget(\n projectRoot,\n options.buildTargetName\n );\n targets[options.serveStaticTargetName] = serveStaticTarget(options) as {};\n }\n }\n\n if (tsConfigFiles.length) {\n const tsConfigToUse =\n ['tsconfig.app.json', 'tsconfig.lib.json', 'tsconfig.json'].find((t) =>\n tsConfigFiles.includes(t)\n ) ?? tsConfigFiles[0];\n targets[options.typecheckTargetName] = {\n cache: true,\n inputs: ['production', '^production'],\n command: `tsc --noEmit -p ${tsConfigToUse}`,\n options: { cwd: joinPathFragments(projectRoot) },\n metadata: {\n description: `Run Typechecking`,\n help: {\n command: `${pmc.exec} tsc --help -p ${tsConfigToUse}`,\n example: {\n options: {\n noEmit: true,\n },\n },\n },\n },\n };\n }\n\n // if file is vitest.config or vite.config has definition for test, create target for test\n if (configFilePath.includes('vitest.config') || hasTest) {\n targets[options.testTargetName] = await testTarget(\n namedInputs,\n testOutputs,\n projectRoot\n );\n }\n\n const metadata = {};\n return { targets, metadata, isLibrary: Boolean(viteBuildConfig.build?.lib) };\n}\n\nasync function buildTarget(\n buildTargetName: string,\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 dependsOn: [`^${buildTargetName}`],\n inputs: [\n ...('production' in namedInputs\n ? ['production', '^production']\n : ['default', '^default']),\n {\n externalDependencies: ['vite'],\n },\n ],\n outputs,\n metadata: {\n technologies: ['vite'],\n description: `Run Vite build`,\n help: {\n command: `${pmc.exec} vite build --help`,\n example: {\n options: {\n sourcemap: true,\n manifest: 'manifest.json',\n },\n },\n },\n },\n };\n}\n\nfunction serveTarget(projectRoot: string) {\n const targetConfig: TargetConfiguration = {\n command: `vite serve`,\n options: {\n cwd: joinPathFragments(projectRoot),\n },\n metadata: {\n technologies: ['vite'],\n description: `Starts Vite dev server`,\n help: {\n command: `${pmc.exec} vite --help`,\n example: {\n options: {\n port: 3000,\n },\n },\n },\n },\n };\n\n return targetConfig;\n}\n\nfunction previewTarget(projectRoot: string, buildTargetName) {\n const targetConfig: TargetConfiguration = {\n command: `vite preview`,\n dependsOn: [buildTargetName],\n options: {\n cwd: joinPathFragments(projectRoot),\n },\n metadata: {\n technologies: ['vite'],\n description: `Locally preview Vite production build`,\n help: {\n command: `${pmc.exec} vite preview --help`,\n example: {\n options: {\n port: 3000,\n },\n },\n },\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`,\n options: { cwd: joinPathFragments(projectRoot) },\n cache: true,\n inputs: [\n ...('production' in namedInputs\n ? ['default', '^production']\n : ['default', '^default']),\n {\n externalDependencies: ['vitest'],\n },\n { env: 'CI' },\n ],\n outputs,\n metadata: {\n technologies: ['vite'],\n description: `Run Vite tests`,\n help: {\n command: `${pmc.exec} vitest --help`,\n example: {\n options: {\n bail: 1,\n coverage: true,\n },\n },\n },\n },\n };\n}\n\nfunction serveStaticTarget(options: VitePluginOptions) {\n const targetConfig: TargetConfiguration = {\n executor: '@nx/web:file-server',\n options: {\n buildTarget: `${options.buildTargetName}`,\n spa: true,\n },\n };\n\n return targetConfig;\n}\n\nfunction getOutputs(\n viteBuildConfig: Record<string, any> | undefined,\n projectRoot: string,\n workspaceRoot: string\n): {\n buildOutputs: string[];\n testOutputs: string[];\n hasTest: boolean;\n isBuildable: boolean;\n hasServeConfig: boolean;\n} {\n const { build, test, server } = viteBuildConfig;\n\n const buildOutputPath = normalizeOutputPath(\n build?.outDir,\n projectRoot,\n workspaceRoot,\n 'dist'\n );\n\n const isBuildable =\n build?.lib ||\n build?.rollupOptions?.input ||\n existsSync(join(workspaceRoot, projectRoot, 'index.html'));\n\n const hasServeConfig = Boolean(server);\n\n const reportsDirectoryPath = normalizeOutputPath(\n test?.coverage?.reportsDirectory,\n projectRoot,\n workspaceRoot,\n 'coverage'\n );\n\n return {\n buildOutputs: [buildOutputPath],\n testOutputs: [reportsDirectoryPath],\n hasTest: !!test,\n isBuildable,\n hasServeConfig,\n };\n}\n\nfunction normalizeOutputPath(\n outputPath: string | undefined,\n projectRoot: string,\n workspaceRoot: string,\n path: 'coverage' | 'dist'\n): string | undefined {\n if (!outputPath) {\n if (projectRoot === '.') {\n return `{projectRoot}/${path}`;\n } else {\n return `{workspaceRoot}/${path}/{projectRoot}`;\n }\n } else {\n if (isAbsolute(outputPath)) {\n return `{workspaceRoot}/${relative(workspaceRoot, outputPath)}`;\n } else {\n if (outputPath.startsWith('..')) {\n return join('{workspaceRoot}', join(projectRoot, outputPath));\n } else {\n return join('{projectRoot}', outputPath);\n }\n }\n }\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 options.typecheckTargetName ??= 'typecheck';\n return options;\n}\n"],"names":["createDependencies","createNodes","createNodesV2","pmc","getPackageManagerCommand","readTargetsCache","cachePath","existsSync","readJsonFile","writeTargetsToCache","results","writeJsonFile","viteVitestConfigGlob","configFilePaths","options","context","optionsHash","hashObject","join","workspaceDataDirectory","targetsCache","createNodesFromFiles","configFile","createNodesInternal","configFilePath","logger","warn","hash","projectRoot","dirname","siblingFiles","readdirSync","workspaceRoot","includes","tsConfigFiles","filter","p","minimatch","normalizedOptions","normalizeOptions","calculateHashForCreateNodes","getLockFileName","detectPackageManager","buildViteTargets","isLibrary","viteTargets","targets","metadata","project","root","buildTargetName","projectType","projects","viteBuildConfig","absoluteConfigFilePath","joinPathFragments","importEsbuild","Function","resolveConfig","loadViteDynamicImport","mode","buildOutputs","testOutputs","hasTest","isBuildable","hasServeConfig","getOutputs","namedInputs","getNamedInputs","hasRemixPlugin","plugins","some","name","buildTarget","build","lib","serveTargetName","serveTarget","previewTargetName","previewTarget","serveStaticTargetName","serveStaticTarget","length","tsConfigToUse","find","t","typecheckTargetName","cache","inputs","command","cwd","description","help","exec","example","noEmit","testTargetName","testTarget","Boolean","outputs","dependsOn","externalDependencies","technologies","sourcemap","manifest","targetConfig","port","env","bail","coverage","executor","spa","test","server","buildOutputPath","normalizeOutputPath","outDir","rollupOptions","input","reportsDirectoryPath","reportsDirectory","outputPath","path","isAbsolute","relative","startsWith"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../packages/vite/src/plugins/plugin.ts"],"sourcesContent":["import {\n CreateDependencies,\n CreateNodes,\n CreateNodesContext,\n createNodesFromFiles,\n CreateNodesV2,\n detectPackageManager,\n getPackageManagerCommand,\n joinPathFragments,\n logger,\n ProjectConfiguration,\n readJsonFile,\n TargetConfiguration,\n writeJsonFile,\n} from '@nx/devkit';\nimport { dirname, isAbsolute, join, relative } from 'path';\nimport { getNamedInputs } from '@nx/devkit/src/utils/get-named-inputs';\nimport { existsSync, readdirSync } from 'fs';\nimport { calculateHashForCreateNodes } from '@nx/devkit/src/utils/calculate-hash-for-create-nodes';\nimport { workspaceDataDirectory } from 'nx/src/utils/cache-directory';\nimport { getLockFileName } from '@nx/js';\nimport { loadViteDynamicImport } from '../utils/executor-utils';\nimport { hashObject } from 'nx/src/hasher/file-hasher';\nimport { minimatch } from 'minimatch';\n\nconst pmc = getPackageManagerCommand();\n\nexport interface VitePluginOptions {\n buildTargetName?: string;\n testTargetName?: string;\n serveTargetName?: string;\n previewTargetName?: string;\n serveStaticTargetName?: string;\n typecheckTargetName?: string;\n}\n\ntype ViteTargets = Pick<ProjectConfiguration, 'targets' | 'metadata'>;\n\nfunction readTargetsCache(cachePath: string): Record<string, ViteTargets> {\n return existsSync(cachePath) ? readJsonFile(cachePath) : {};\n}\n\nfunction writeTargetsToCache(cachePath, results?: Record<string, ViteTargets>) {\n writeJsonFile(cachePath, results);\n}\n\n/**\n * @deprecated The 'createDependencies' function is now a no-op. This functionality is included in 'createNodesV2'.\n */\nexport const createDependencies: CreateDependencies = () => {\n return [];\n};\n\nconst viteVitestConfigGlob = '**/{vite,vitest}.config.{js,ts,mjs,mts,cjs,cts}';\n\nexport const createNodesV2: CreateNodesV2<VitePluginOptions> = [\n viteVitestConfigGlob,\n async (configFilePaths, options, context) => {\n const optionsHash = hashObject(options);\n const cachePath = join(workspaceDataDirectory, `vite-${optionsHash}.hash`);\n const targetsCache = readTargetsCache(cachePath);\n try {\n return await createNodesFromFiles(\n (configFile, options, context) =>\n createNodesInternal(configFile, options, context, targetsCache),\n configFilePaths,\n options,\n context\n );\n } finally {\n writeTargetsToCache(cachePath, targetsCache);\n }\n },\n];\n\nexport const createNodes: CreateNodes<VitePluginOptions> = [\n viteVitestConfigGlob,\n async (configFilePath, options, context) => {\n logger.warn(\n '`createNodes` is deprecated. Update your plugin to utilize createNodesV2 instead. In Nx 20, this will change to the createNodesV2 API.'\n );\n return createNodesInternal(configFilePath, options, context, {});\n },\n];\n\nasync function createNodesInternal(\n configFilePath: string,\n options: VitePluginOptions,\n context: CreateNodesContext,\n targetsCache: Record<string, ViteTargets>\n) {\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 const tsConfigFiles =\n siblingFiles.filter((p) => minimatch(p, 'tsconfig*{.json,.*.json}')) ?? [];\n\n const normalizedOptions = normalizeOptions(options);\n\n // We do not want to alter how the hash is calculated, so appending the config file path to the hash\n // to prevent vite/vitest files overwriting the target cache created by the other\n const hash =\n (await calculateHashForCreateNodes(\n projectRoot,\n normalizedOptions,\n context,\n [getLockFileName(detectPackageManager(context.workspaceRoot))]\n )) + configFilePath;\n\n const { isLibrary, ...viteTargets } = await buildViteTargets(\n configFilePath,\n projectRoot,\n normalizedOptions,\n tsConfigFiles,\n context\n );\n targetsCache[hash] ??= viteTargets;\n\n const { targets, metadata } = targetsCache[hash];\n const project: ProjectConfiguration = {\n root: projectRoot,\n targets,\n metadata,\n };\n\n // If project is buildable, then the project type.\n // If it is not buildable, then leave it to other plugins/project.json to set the project type.\n if (project.targets[options.buildTargetName]) {\n project.projectType = isLibrary ? 'library' : 'application';\n }\n\n return {\n projects: {\n [projectRoot]: project,\n },\n };\n}\n\nasync function buildViteTargets(\n configFilePath: string,\n projectRoot: string,\n options: VitePluginOptions,\n tsConfigFiles: string[],\n context: CreateNodesContext\n): Promise<ViteTargets & { isLibrary: boolean }> {\n const absoluteConfigFilePath = joinPathFragments(\n context.workspaceRoot,\n configFilePath\n );\n // Workaround for the `build$3 is not a function` error that we sometimes see in agents.\n // This should be removed later once we address the issue properly\n try {\n const importEsbuild = () => new Function('return import(\"esbuild\")')();\n await importEsbuild();\n } catch {\n // do nothing\n }\n const { resolveConfig } = await loadViteDynamicImport();\n const viteBuildConfig = await resolveConfig(\n {\n configFile: absoluteConfigFilePath,\n mode: 'development',\n },\n 'build'\n );\n\n const { buildOutputs, testOutputs, hasTest, isBuildable, hasServeConfig } =\n getOutputs(viteBuildConfig, projectRoot, context.workspaceRoot);\n\n const namedInputs = getNamedInputs(projectRoot, context);\n\n const targets: Record<string, TargetConfiguration> = {};\n\n // If file is not vitest.config and buildable, create targets for build, serve, preview and serve-static\n const hasRemixPlugin =\n viteBuildConfig.plugins &&\n viteBuildConfig.plugins.some((p) => p.name === 'remix');\n if (\n !configFilePath.includes('vitest.config') &&\n !hasRemixPlugin &&\n isBuildable\n ) {\n targets[options.buildTargetName] = await buildTarget(\n options.buildTargetName,\n namedInputs,\n buildOutputs,\n projectRoot\n );\n\n // If running in library mode, then there is nothing to serve.\n if (!viteBuildConfig.build?.lib || hasServeConfig) {\n targets[options.serveTargetName] = serveTarget(projectRoot);\n targets[options.previewTargetName] = previewTarget(\n projectRoot,\n options.buildTargetName\n );\n targets[options.serveStaticTargetName] = serveStaticTarget(options) as {};\n }\n }\n\n if (tsConfigFiles.length) {\n const tsConfigToUse =\n ['tsconfig.app.json', 'tsconfig.lib.json', 'tsconfig.json'].find((t) =>\n tsConfigFiles.includes(t)\n ) ?? tsConfigFiles[0];\n targets[options.typecheckTargetName] = {\n cache: true,\n inputs: [\n ...('production' in namedInputs\n ? ['production', '^production']\n : ['default', '^default']),\n { externalDependencies: ['typescript'] },\n ],\n command: `tsc --noEmit -p ${tsConfigToUse}`,\n options: { cwd: joinPathFragments(projectRoot) },\n metadata: {\n description: `Run Typechecking`,\n help: {\n command: `${pmc.exec} tsc --help -p ${tsConfigToUse}`,\n example: {\n options: {\n noEmit: true,\n },\n },\n },\n },\n };\n }\n\n // if file is vitest.config or vite.config has definition for test, create target for test\n if (configFilePath.includes('vitest.config') || hasTest) {\n targets[options.testTargetName] = await testTarget(\n namedInputs,\n testOutputs,\n projectRoot\n );\n }\n\n const metadata = {};\n return { targets, metadata, isLibrary: Boolean(viteBuildConfig.build?.lib) };\n}\n\nasync function buildTarget(\n buildTargetName: string,\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 dependsOn: [`^${buildTargetName}`],\n inputs: [\n ...('production' in namedInputs\n ? ['production', '^production']\n : ['default', '^default']),\n {\n externalDependencies: ['vite'],\n },\n ],\n outputs,\n metadata: {\n technologies: ['vite'],\n description: `Run Vite build`,\n help: {\n command: `${pmc.exec} vite build --help`,\n example: {\n options: {\n sourcemap: true,\n manifest: 'manifest.json',\n },\n },\n },\n },\n };\n}\n\nfunction serveTarget(projectRoot: string) {\n const targetConfig: TargetConfiguration = {\n command: `vite serve`,\n options: {\n cwd: joinPathFragments(projectRoot),\n },\n metadata: {\n technologies: ['vite'],\n description: `Starts Vite dev server`,\n help: {\n command: `${pmc.exec} vite --help`,\n example: {\n options: {\n port: 3000,\n },\n },\n },\n },\n };\n\n return targetConfig;\n}\n\nfunction previewTarget(projectRoot: string, buildTargetName) {\n const targetConfig: TargetConfiguration = {\n command: `vite preview`,\n dependsOn: [buildTargetName],\n options: {\n cwd: joinPathFragments(projectRoot),\n },\n metadata: {\n technologies: ['vite'],\n description: `Locally preview Vite production build`,\n help: {\n command: `${pmc.exec} vite preview --help`,\n example: {\n options: {\n port: 3000,\n },\n },\n },\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`,\n options: { cwd: joinPathFragments(projectRoot) },\n cache: true,\n inputs: [\n ...('production' in namedInputs\n ? ['default', '^production']\n : ['default', '^default']),\n {\n externalDependencies: ['vitest'],\n },\n { env: 'CI' },\n ],\n outputs,\n metadata: {\n technologies: ['vite'],\n description: `Run Vite tests`,\n help: {\n command: `${pmc.exec} vitest --help`,\n example: {\n options: {\n bail: 1,\n coverage: true,\n },\n },\n },\n },\n };\n}\n\nfunction serveStaticTarget(options: VitePluginOptions) {\n const targetConfig: TargetConfiguration = {\n executor: '@nx/web:file-server',\n options: {\n buildTarget: `${options.buildTargetName}`,\n spa: true,\n },\n };\n\n return targetConfig;\n}\n\nfunction getOutputs(\n viteBuildConfig: Record<string, any> | undefined,\n projectRoot: string,\n workspaceRoot: string\n): {\n buildOutputs: string[];\n testOutputs: string[];\n hasTest: boolean;\n isBuildable: boolean;\n hasServeConfig: boolean;\n} {\n const { build, test, server } = viteBuildConfig;\n\n const buildOutputPath = normalizeOutputPath(\n build?.outDir,\n projectRoot,\n workspaceRoot,\n 'dist'\n );\n\n const isBuildable =\n build?.lib ||\n build?.rollupOptions?.input ||\n existsSync(join(workspaceRoot, projectRoot, 'index.html'));\n\n const hasServeConfig = Boolean(server);\n\n const reportsDirectoryPath = normalizeOutputPath(\n test?.coverage?.reportsDirectory,\n projectRoot,\n workspaceRoot,\n 'coverage'\n );\n\n return {\n buildOutputs: [buildOutputPath],\n testOutputs: [reportsDirectoryPath],\n hasTest: !!test,\n isBuildable,\n hasServeConfig,\n };\n}\n\nfunction normalizeOutputPath(\n outputPath: string | undefined,\n projectRoot: string,\n workspaceRoot: string,\n path: 'coverage' | 'dist'\n): string | undefined {\n if (!outputPath) {\n if (projectRoot === '.') {\n return `{projectRoot}/${path}`;\n } else {\n return `{workspaceRoot}/${path}/{projectRoot}`;\n }\n } else {\n if (isAbsolute(outputPath)) {\n return `{workspaceRoot}/${relative(workspaceRoot, outputPath)}`;\n } else {\n if (outputPath.startsWith('..')) {\n return join('{workspaceRoot}', join(projectRoot, outputPath));\n } else {\n return join('{projectRoot}', outputPath);\n }\n }\n }\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 options.typecheckTargetName ??= 'typecheck';\n return options;\n}\n"],"names":["createDependencies","createNodes","createNodesV2","pmc","getPackageManagerCommand","readTargetsCache","cachePath","existsSync","readJsonFile","writeTargetsToCache","results","writeJsonFile","viteVitestConfigGlob","configFilePaths","options","context","optionsHash","hashObject","join","workspaceDataDirectory","targetsCache","createNodesFromFiles","configFile","createNodesInternal","configFilePath","logger","warn","hash","projectRoot","dirname","siblingFiles","readdirSync","workspaceRoot","includes","tsConfigFiles","filter","p","minimatch","normalizedOptions","normalizeOptions","calculateHashForCreateNodes","getLockFileName","detectPackageManager","buildViteTargets","isLibrary","viteTargets","targets","metadata","project","root","buildTargetName","projectType","projects","viteBuildConfig","absoluteConfigFilePath","joinPathFragments","importEsbuild","Function","resolveConfig","loadViteDynamicImport","mode","buildOutputs","testOutputs","hasTest","isBuildable","hasServeConfig","getOutputs","namedInputs","getNamedInputs","hasRemixPlugin","plugins","some","name","buildTarget","build","lib","serveTargetName","serveTarget","previewTargetName","previewTarget","serveStaticTargetName","serveStaticTarget","length","tsConfigToUse","find","t","typecheckTargetName","cache","inputs","externalDependencies","command","cwd","description","help","exec","example","noEmit","testTargetName","testTarget","Boolean","outputs","dependsOn","technologies","sourcemap","manifest","targetConfig","port","env","bail","coverage","executor","spa","test","server","buildOutputPath","normalizeOutputPath","outDir","rollupOptions","input","reportsDirectoryPath","reportsDirectory","outputPath","path","isAbsolute","relative","startsWith"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|