@nx/vite 21.2.2 → 21.3.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
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nx/vite",
|
|
3
|
-
"version": "21.
|
|
3
|
+
"version": "21.3.0-beta.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "The Nx Plugin for building and testing applications using Vite",
|
|
6
6
|
"repository": {
|
|
@@ -30,11 +30,11 @@
|
|
|
30
30
|
"migrations": "./migrations.json"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@nx/devkit": "21.
|
|
33
|
+
"@nx/devkit": "21.3.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": "21.
|
|
37
|
+
"@nx/js": "21.3.0-beta.0",
|
|
38
38
|
"picomatch": "4.0.2",
|
|
39
39
|
"tsconfig-paths": "^4.1.2",
|
|
40
40
|
"semver": "^7.6.3",
|
|
@@ -103,10 +103,14 @@ async function* viteBuildExecutor(options, context) {
|
|
|
103
103
|
(_type = (_builtPackageJson = builtPackageJson).type) != null ? _type : _builtPackageJson.type = 'module';
|
|
104
104
|
(0, _devkit.writeJsonFile)(`${outDirRelativeToWorkspaceRoot}/package.json`, builtPackageJson);
|
|
105
105
|
const packageManager = (0, _devkit.detectPackageManager)(context.root);
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
106
|
+
if (packageManager === 'bun') {
|
|
107
|
+
_devkit.logger.warn('Bun lockfile generation is not supported. The generated package.json will not include a lockfile. Run "bun install" in the output directory after deployment if needed.');
|
|
108
|
+
} else {
|
|
109
|
+
const lockFile = (0, _js.createLockFile)(builtPackageJson, context.projectGraph, packageManager);
|
|
110
|
+
(0, _fs.writeFileSync)(`${outDirRelativeToWorkspaceRoot}/${(0, _js.getLockFileName)(packageManager)}`, lockFile, {
|
|
111
|
+
encoding: 'utf-8'
|
|
112
|
+
});
|
|
113
|
+
}
|
|
110
114
|
} else if (options.generatePackageJson !== false && !(0, _fs.existsSync)(distPackageJson) && (0, _fs.existsSync)(libraryPackageJson) && rootPackageJson !== libraryPackageJson) {
|
|
111
115
|
await (0, _js.copyAssets)({
|
|
112
116
|
outputPath: outDirRelativeToWorkspaceRoot,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../packages/vite/src/executors/build/build.impl.ts"],"sourcesContent":["import {\n detectPackageManager,\n ExecutorContext,\n joinPathFragments,\n logger,\n offsetFromRoot,\n stripIndents,\n writeJsonFile,\n} from '@nx/devkit';\nimport {\n getProjectTsConfigPath,\n normalizeViteConfigFilePath,\n} from '../../utils/options-utils';\nimport { ViteBuildExecutorOptions } from './schema';\nimport {\n copyAssets,\n createLockFile,\n createPackageJson,\n getLockFileName,\n} from '@nx/js';\nimport { existsSync, writeFileSync } from 'fs';\nimport { relative, resolve } from 'path';\nimport {\n combineAsyncIterables,\n createAsyncIterable,\n} from '@nx/devkit/src/utils/async-iterable';\nimport {\n createBuildableTsConfig,\n loadViteDynamicImport,\n validateTypes,\n} from '../../utils/executor-utils';\nimport { type Plugin } from 'vite';\nimport { isUsingTsSolutionSetup } from '@nx/js/src/utils/typescript/ts-solution-setup';\n\nexport async function* viteBuildExecutor(\n options: Record<string, any> & ViteBuildExecutorOptions,\n context: ExecutorContext\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 { mergeConfig, build, resolveConfig, createBuilder } =\n await loadViteDynamicImport();\n const projectRoot =\n context.projectsConfigurations.projects[context.projectName].root;\n const tsConfigForBuild = createBuildableTsConfig(\n projectRoot,\n options,\n context\n );\n\n const viteConfigPath = normalizeViteConfigFilePath(\n context.root,\n projectRoot,\n options.configFile\n );\n const root =\n projectRoot === '.' || projectRoot === ''\n ? process.cwd()\n : relative(context.cwd, joinPathFragments(context.root, projectRoot));\n\n const { buildOptions, otherOptions } = await getBuildExtraArgs(options);\n const defaultMode = otherOptions?.mode ?? 'production';\n\n const resolved = await resolveConfig(\n {\n configFile: viteConfigPath,\n mode: defaultMode,\n },\n 'build',\n defaultMode,\n process.env.NODE_ENV ?? defaultMode\n );\n\n const outDir =\n joinPathFragments(offsetFromRoot(projectRoot), options.outputPath) ??\n resolved?.build?.outDir;\n\n const buildConfig = mergeConfig(\n {\n // This should not be needed as it's going to be set in vite.config.ts\n // but leaving it here in case someone did not migrate correctly\n root: resolved.root ?? root,\n configFile: viteConfigPath,\n },\n {\n build: {\n outDir,\n ...buildOptions,\n },\n ...otherOptions,\n }\n );\n // New TS Solution already has a typecheck target\n if (!options.skipTypeCheck && !isUsingTsSolutionSetup()) {\n await validateTypes({\n workspaceRoot: context.root,\n tsconfig: tsConfigForBuild,\n isVueProject: Boolean(\n resolved.plugins?.find(\n (plugin: Plugin) =>\n typeof plugin === 'object' && plugin?.name === 'vite:vue'\n )\n ),\n });\n }\n\n const builder =\n createBuilder !== undefined && options.useEnvironmentsApi\n ? await createBuilder(buildConfig)\n : // This is needed to ensure support for Vite 5\n {\n build: (inlineConfig) => build(inlineConfig),\n environments: { build: buildConfig },\n };\n\n let iterables: AsyncIterable<{ success: boolean; outfile?: string }>[] = [];\n for (const env of Object.values(builder.environments)) {\n // This is needed to overwrite the resolve build config with executor options in Vite 6\n if (env.config?.build) {\n env.config.build = {\n ...env.config.build,\n ...buildConfig.build,\n };\n }\n const watcherOrOutput = await builder.build(env as any);\n\n const libraryPackageJson = resolve(projectRoot, 'package.json');\n const rootPackageJson = resolve(context.root, 'package.json');\n\n // Here, we want the outdir relative to the workspace root.\n // So, we calculate the relative path from the workspace root to the outdir.\n const absoluteOutDir = resolve(resolve(context.root, projectRoot), outDir);\n const outDirRelativeToWorkspaceRoot = relative(\n context.root,\n absoluteOutDir\n );\n const distPackageJson = resolve(\n outDirRelativeToWorkspaceRoot,\n 'package.json'\n );\n\n // Generate a package.json if option has been set.\n if (options.generatePackageJson) {\n if (context.projectGraph.nodes[context.projectName].type !== 'app') {\n logger.warn(\n stripIndents`The project ${context.projectName} is using the 'generatePackageJson' option which is deprecated for library projects. It should only be used for applications.\n For libraries, configure the project to use the '@nx/dependency-checks' ESLint rule instead (https://nx.dev/nx-api/eslint-plugin/documents/dependency-checks).`\n );\n }\n\n const builtPackageJson = createPackageJson(\n context.projectName,\n context.projectGraph,\n {\n target: context.targetName,\n root: context.root,\n isProduction: !options.includeDevDependenciesInPackageJson, // By default we remove devDependencies since this is a production build.\n skipOverrides: options.skipOverrides,\n skipPackageManager: options.skipPackageManager,\n }\n );\n\n builtPackageJson.type ??= 'module';\n\n writeJsonFile(\n `${outDirRelativeToWorkspaceRoot}/package.json`,\n builtPackageJson\n );\n const packageManager = detectPackageManager(context.root);\n\n const lockFile = createLockFile(\n builtPackageJson,\n context.projectGraph,\n packageManager\n );\n writeFileSync(\n `${outDirRelativeToWorkspaceRoot}/${getLockFileName(packageManager)}`,\n lockFile,\n {\n encoding: 'utf-8',\n }\n );\n }\n // For buildable libs, copy package.json if it exists.\n else if (\n options.generatePackageJson !== false &&\n !existsSync(distPackageJson) &&\n existsSync(libraryPackageJson) &&\n rootPackageJson !== libraryPackageJson\n ) {\n await copyAssets(\n {\n outputPath: outDirRelativeToWorkspaceRoot,\n assets: [\n {\n input: projectRoot,\n output: '.',\n glob: 'package.json',\n },\n ],\n },\n context\n );\n }\n\n const iterable = createAsyncIterable<{\n success: boolean;\n outfile?: string;\n }>(({ next, done }) => {\n if ('on' in watcherOrOutput) {\n let success = true;\n watcherOrOutput.on('event', (event) => {\n if (event.code === 'START') {\n success = true;\n } else if (event.code === 'ERROR') {\n success = false;\n } else if (event.code === 'END') {\n next({ success });\n }\n // result must be closed when present.\n // see https://rollupjs.org/guide/en/#rollupwatch\n if ('result' in event && event.result) {\n event.result.close();\n }\n });\n } else {\n const output =\n watcherOrOutput?.['output'] || watcherOrOutput?.[0]?.output;\n const fileName = output?.[0]?.fileName || 'main.cjs';\n const outfile = resolve(outDirRelativeToWorkspaceRoot, fileName);\n next({ success: true, outfile });\n done();\n }\n });\n iterables.push(iterable);\n }\n return yield* combineAsyncIterables(iterables.shift(), ...(iterables ?? []));\n}\n\nexport async function getBuildExtraArgs(\n options: ViteBuildExecutorOptions\n): Promise<{\n // vite BuildOptions\n buildOptions: Record<string, unknown>;\n otherOptions: Record<string, any>;\n}> {\n // support passing extra args to vite cli\n const schema = await import('./schema.json');\n const extraArgs = {};\n for (const key of Object.keys(options)) {\n if (!schema.properties[key]) {\n extraArgs[key] = options[key];\n }\n }\n\n const buildOptions = {};\n const buildSchemaKeys = [\n 'target',\n 'polyfillModulePreload',\n 'modulePreload',\n 'outDir',\n 'assetsDir',\n 'assetsInlineLimit',\n 'cssCodeSplit',\n 'cssTarget',\n 'cssMinify',\n 'sourcemap',\n 'minify',\n 'terserOptions',\n 'rollupOptions',\n 'commonjsOptions',\n 'dynamicImportVarsOptions',\n 'write',\n 'emptyOutDir',\n 'copyPublicDir',\n 'manifest',\n 'lib',\n 'ssr',\n 'ssrManifest',\n 'ssrEmitAssets',\n 'reportCompressedSize',\n 'chunkSizeWarningLimit',\n 'watch',\n ];\n const otherOptions = {};\n for (const key of Object.keys(extraArgs)) {\n if (buildSchemaKeys.includes(key)) {\n buildOptions[key] = extraArgs[key];\n } else {\n otherOptions[key] = extraArgs[key];\n }\n }\n\n buildOptions['watch'] = options.watch ?? undefined;\n\n return {\n buildOptions,\n otherOptions,\n };\n}\n\nexport default viteBuildExecutor;\n"],"names":["getBuildExtraArgs","viteBuildExecutor","options","context","resolved","process","env","VITE_CJS_IGNORE_WARNING","mergeConfig","build","resolveConfig","createBuilder","loadViteDynamicImport","projectRoot","projectsConfigurations","projects","projectName","root","tsConfigForBuild","createBuildableTsConfig","viteConfigPath","normalizeViteConfigFilePath","configFile","cwd","relative","joinPathFragments","buildOptions","otherOptions","defaultMode","mode","NODE_ENV","outDir","offsetFromRoot","outputPath","buildConfig","skipTypeCheck","isUsingTsSolutionSetup","validateTypes","workspaceRoot","tsconfig","isVueProject","Boolean","plugins","find","plugin","name","builder","undefined","useEnvironmentsApi","inlineConfig","environments","iterables","Object","values","config","watcherOrOutput","libraryPackageJson","resolve","rootPackageJson","absoluteOutDir","outDirRelativeToWorkspaceRoot","distPackageJson","generatePackageJson","builtPackageJson","projectGraph","nodes","type","logger","warn","stripIndents","createPackageJson","target","targetName","isProduction","includeDevDependenciesInPackageJson","skipOverrides","skipPackageManager","writeJsonFile","packageManager","detectPackageManager","lockFile","createLockFile","writeFileSync","getLockFileName","encoding","existsSync","copyAssets","assets","input","output","glob","iterable","createAsyncIterable","next","done","success","on","event","code","result","close","fileName","outfile","push","combineAsyncIterables","shift","schema","extraArgs","key","keys","properties","buildSchemaKeys","includes","watch"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/vite/src/executors/build/build.impl.ts"],"sourcesContent":["import {\n detectPackageManager,\n ExecutorContext,\n joinPathFragments,\n logger,\n offsetFromRoot,\n stripIndents,\n writeJsonFile,\n} from '@nx/devkit';\nimport {\n getProjectTsConfigPath,\n normalizeViteConfigFilePath,\n} from '../../utils/options-utils';\nimport { ViteBuildExecutorOptions } from './schema';\nimport {\n copyAssets,\n createLockFile,\n createPackageJson,\n getLockFileName,\n} from '@nx/js';\nimport { existsSync, writeFileSync } from 'fs';\nimport { relative, resolve } from 'path';\nimport {\n combineAsyncIterables,\n createAsyncIterable,\n} from '@nx/devkit/src/utils/async-iterable';\nimport {\n createBuildableTsConfig,\n loadViteDynamicImport,\n validateTypes,\n} from '../../utils/executor-utils';\nimport { type Plugin } from 'vite';\nimport { isUsingTsSolutionSetup } from '@nx/js/src/utils/typescript/ts-solution-setup';\n\nexport async function* viteBuildExecutor(\n options: Record<string, any> & ViteBuildExecutorOptions,\n context: ExecutorContext\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 { mergeConfig, build, resolveConfig, createBuilder } =\n await loadViteDynamicImport();\n const projectRoot =\n context.projectsConfigurations.projects[context.projectName].root;\n const tsConfigForBuild = createBuildableTsConfig(\n projectRoot,\n options,\n context\n );\n\n const viteConfigPath = normalizeViteConfigFilePath(\n context.root,\n projectRoot,\n options.configFile\n );\n const root =\n projectRoot === '.' || projectRoot === ''\n ? process.cwd()\n : relative(context.cwd, joinPathFragments(context.root, projectRoot));\n\n const { buildOptions, otherOptions } = await getBuildExtraArgs(options);\n const defaultMode = otherOptions?.mode ?? 'production';\n\n const resolved = await resolveConfig(\n {\n configFile: viteConfigPath,\n mode: defaultMode,\n },\n 'build',\n defaultMode,\n process.env.NODE_ENV ?? defaultMode\n );\n\n const outDir =\n joinPathFragments(offsetFromRoot(projectRoot), options.outputPath) ??\n resolved?.build?.outDir;\n\n const buildConfig = mergeConfig(\n {\n // This should not be needed as it's going to be set in vite.config.ts\n // but leaving it here in case someone did not migrate correctly\n root: resolved.root ?? root,\n configFile: viteConfigPath,\n },\n {\n build: {\n outDir,\n ...buildOptions,\n },\n ...otherOptions,\n }\n );\n // New TS Solution already has a typecheck target\n if (!options.skipTypeCheck && !isUsingTsSolutionSetup()) {\n await validateTypes({\n workspaceRoot: context.root,\n tsconfig: tsConfigForBuild,\n isVueProject: Boolean(\n resolved.plugins?.find(\n (plugin: Plugin) =>\n typeof plugin === 'object' && plugin?.name === 'vite:vue'\n )\n ),\n });\n }\n\n const builder =\n createBuilder !== undefined && options.useEnvironmentsApi\n ? await createBuilder(buildConfig)\n : // This is needed to ensure support for Vite 5\n {\n build: (inlineConfig) => build(inlineConfig),\n environments: { build: buildConfig },\n };\n\n let iterables: AsyncIterable<{ success: boolean; outfile?: string }>[] = [];\n for (const env of Object.values(builder.environments)) {\n // This is needed to overwrite the resolve build config with executor options in Vite 6\n if (env.config?.build) {\n env.config.build = {\n ...env.config.build,\n ...buildConfig.build,\n };\n }\n const watcherOrOutput = await builder.build(env as any);\n\n const libraryPackageJson = resolve(projectRoot, 'package.json');\n const rootPackageJson = resolve(context.root, 'package.json');\n\n // Here, we want the outdir relative to the workspace root.\n // So, we calculate the relative path from the workspace root to the outdir.\n const absoluteOutDir = resolve(resolve(context.root, projectRoot), outDir);\n const outDirRelativeToWorkspaceRoot = relative(\n context.root,\n absoluteOutDir\n );\n const distPackageJson = resolve(\n outDirRelativeToWorkspaceRoot,\n 'package.json'\n );\n\n // Generate a package.json if option has been set.\n if (options.generatePackageJson) {\n if (context.projectGraph.nodes[context.projectName].type !== 'app') {\n logger.warn(\n stripIndents`The project ${context.projectName} is using the 'generatePackageJson' option which is deprecated for library projects. It should only be used for applications.\n For libraries, configure the project to use the '@nx/dependency-checks' ESLint rule instead (https://nx.dev/nx-api/eslint-plugin/documents/dependency-checks).`\n );\n }\n\n const builtPackageJson = createPackageJson(\n context.projectName,\n context.projectGraph,\n {\n target: context.targetName,\n root: context.root,\n isProduction: !options.includeDevDependenciesInPackageJson, // By default we remove devDependencies since this is a production build.\n skipOverrides: options.skipOverrides,\n skipPackageManager: options.skipPackageManager,\n }\n );\n\n builtPackageJson.type ??= 'module';\n\n writeJsonFile(\n `${outDirRelativeToWorkspaceRoot}/package.json`,\n builtPackageJson\n );\n const packageManager = detectPackageManager(context.root);\n\n if (packageManager === 'bun') {\n logger.warn(\n 'Bun lockfile generation is not supported. The generated package.json will not include a lockfile. Run \"bun install\" in the output directory after deployment if needed.'\n );\n } else {\n const lockFile = createLockFile(\n builtPackageJson,\n context.projectGraph,\n packageManager\n );\n writeFileSync(\n `${outDirRelativeToWorkspaceRoot}/${getLockFileName(packageManager)}`,\n lockFile,\n {\n encoding: 'utf-8',\n }\n );\n }\n }\n // For buildable libs, copy package.json if it exists.\n else if (\n options.generatePackageJson !== false &&\n !existsSync(distPackageJson) &&\n existsSync(libraryPackageJson) &&\n rootPackageJson !== libraryPackageJson\n ) {\n await copyAssets(\n {\n outputPath: outDirRelativeToWorkspaceRoot,\n assets: [\n {\n input: projectRoot,\n output: '.',\n glob: 'package.json',\n },\n ],\n },\n context\n );\n }\n\n const iterable = createAsyncIterable<{\n success: boolean;\n outfile?: string;\n }>(({ next, done }) => {\n if ('on' in watcherOrOutput) {\n let success = true;\n watcherOrOutput.on('event', (event) => {\n if (event.code === 'START') {\n success = true;\n } else if (event.code === 'ERROR') {\n success = false;\n } else if (event.code === 'END') {\n next({ success });\n }\n // result must be closed when present.\n // see https://rollupjs.org/guide/en/#rollupwatch\n if ('result' in event && event.result) {\n event.result.close();\n }\n });\n } else {\n const output =\n watcherOrOutput?.['output'] || watcherOrOutput?.[0]?.output;\n const fileName = output?.[0]?.fileName || 'main.cjs';\n const outfile = resolve(outDirRelativeToWorkspaceRoot, fileName);\n next({ success: true, outfile });\n done();\n }\n });\n iterables.push(iterable);\n }\n return yield* combineAsyncIterables(iterables.shift(), ...(iterables ?? []));\n}\n\nexport async function getBuildExtraArgs(\n options: ViteBuildExecutorOptions\n): Promise<{\n // vite BuildOptions\n buildOptions: Record<string, unknown>;\n otherOptions: Record<string, any>;\n}> {\n // support passing extra args to vite cli\n const schema = await import('./schema.json');\n const extraArgs = {};\n for (const key of Object.keys(options)) {\n if (!schema.properties[key]) {\n extraArgs[key] = options[key];\n }\n }\n\n const buildOptions = {};\n const buildSchemaKeys = [\n 'target',\n 'polyfillModulePreload',\n 'modulePreload',\n 'outDir',\n 'assetsDir',\n 'assetsInlineLimit',\n 'cssCodeSplit',\n 'cssTarget',\n 'cssMinify',\n 'sourcemap',\n 'minify',\n 'terserOptions',\n 'rollupOptions',\n 'commonjsOptions',\n 'dynamicImportVarsOptions',\n 'write',\n 'emptyOutDir',\n 'copyPublicDir',\n 'manifest',\n 'lib',\n 'ssr',\n 'ssrManifest',\n 'ssrEmitAssets',\n 'reportCompressedSize',\n 'chunkSizeWarningLimit',\n 'watch',\n ];\n const otherOptions = {};\n for (const key of Object.keys(extraArgs)) {\n if (buildSchemaKeys.includes(key)) {\n buildOptions[key] = extraArgs[key];\n } else {\n otherOptions[key] = extraArgs[key];\n }\n }\n\n buildOptions['watch'] = options.watch ?? undefined;\n\n return {\n buildOptions,\n otherOptions,\n };\n}\n\nexport default viteBuildExecutor;\n"],"names":["getBuildExtraArgs","viteBuildExecutor","options","context","resolved","process","env","VITE_CJS_IGNORE_WARNING","mergeConfig","build","resolveConfig","createBuilder","loadViteDynamicImport","projectRoot","projectsConfigurations","projects","projectName","root","tsConfigForBuild","createBuildableTsConfig","viteConfigPath","normalizeViteConfigFilePath","configFile","cwd","relative","joinPathFragments","buildOptions","otherOptions","defaultMode","mode","NODE_ENV","outDir","offsetFromRoot","outputPath","buildConfig","skipTypeCheck","isUsingTsSolutionSetup","validateTypes","workspaceRoot","tsconfig","isVueProject","Boolean","plugins","find","plugin","name","builder","undefined","useEnvironmentsApi","inlineConfig","environments","iterables","Object","values","config","watcherOrOutput","libraryPackageJson","resolve","rootPackageJson","absoluteOutDir","outDirRelativeToWorkspaceRoot","distPackageJson","generatePackageJson","builtPackageJson","projectGraph","nodes","type","logger","warn","stripIndents","createPackageJson","target","targetName","isProduction","includeDevDependenciesInPackageJson","skipOverrides","skipPackageManager","writeJsonFile","packageManager","detectPackageManager","lockFile","createLockFile","writeFileSync","getLockFileName","encoding","existsSync","copyAssets","assets","input","output","glob","iterable","createAsyncIterable","next","done","success","on","event","code","result","close","fileName","outfile","push","combineAsyncIterables","shift","schema","extraArgs","key","keys","properties","buildSchemaKeys","includes","watch"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|