@nx/vite 21.3.7 → 21.4.0-beta.1

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.
Files changed (222) hide show
  1. package/executors.d.ts +1 -0
  2. package/executors.d.ts.map +1 -0
  3. package/executors.js +10 -26
  4. package/index.d.ts +1 -0
  5. package/index.d.ts.map +1 -0
  6. package/index.js +12 -26
  7. package/package.json +7 -4
  8. package/plugin.d.ts +1 -0
  9. package/plugin.d.ts.map +1 -0
  10. package/plugin.js +6 -23
  11. package/plugins/nx-copy-assets.plugin.d.ts +1 -0
  12. package/plugins/nx-copy-assets.plugin.d.ts.map +1 -0
  13. package/plugins/nx-copy-assets.plugin.js +28 -30
  14. package/plugins/nx-tsconfig-paths.plugin.d.ts +1 -0
  15. package/plugins/nx-tsconfig-paths.plugin.d.ts.map +1 -0
  16. package/plugins/nx-tsconfig-paths.plugin.js +86 -88
  17. package/plugins/nx-vite-build-coordination.plugin.d.ts +1 -0
  18. package/plugins/nx-vite-build-coordination.plugin.d.ts.map +1 -0
  19. package/plugins/nx-vite-build-coordination.plugin.js +25 -32
  20. package/plugins/rollup-replace-files.plugin.d.ts +1 -0
  21. package/plugins/rollup-replace-files.plugin.d.ts.map +1 -0
  22. package/plugins/rollup-replace-files.plugin.js +20 -26
  23. package/project.json +52 -0
  24. package/src/executors/build/build.impl.d.ts +1 -0
  25. package/src/executors/build/build.impl.d.ts.map +1 -0
  26. package/src/executors/build/build.impl.js +98 -112
  27. package/src/executors/build/compat.d.ts +1 -0
  28. package/src/executors/build/compat.d.ts.map +1 -0
  29. package/src/executors/build/compat.js +4 -11
  30. package/src/executors/dev-server/compat.d.ts +1 -0
  31. package/src/executors/dev-server/compat.d.ts.map +1 -0
  32. package/src/executors/dev-server/compat.js +4 -11
  33. package/src/executors/dev-server/dev-server.impl.d.ts +1 -0
  34. package/src/executors/dev-server/dev-server.impl.d.ts.map +1 -0
  35. package/src/executors/dev-server/dev-server.impl.js +54 -62
  36. package/src/executors/preview-server/compat.d.ts +1 -0
  37. package/src/executors/preview-server/compat.d.ts.map +1 -0
  38. package/src/executors/preview-server/compat.js +4 -11
  39. package/src/executors/preview-server/preview-server.impl.d.ts +1 -0
  40. package/src/executors/preview-server/preview-server.impl.d.ts.map +1 -0
  41. package/src/executors/preview-server/preview-server.impl.js +74 -77
  42. package/src/executors/test/compat.d.ts +1 -0
  43. package/src/executors/test/compat.d.ts.map +1 -0
  44. package/src/executors/test/compat.js +4 -11
  45. package/src/executors/test/lib/nx-reporter.d.ts +1 -0
  46. package/src/executors/test/lib/nx-reporter.d.ts.map +1 -0
  47. package/src/executors/test/lib/nx-reporter.js +17 -25
  48. package/src/executors/test/lib/utils.d.ts +1 -0
  49. package/src/executors/test/lib/utils.d.ts.map +1 -0
  50. package/src/executors/test/lib/utils.js +36 -59
  51. package/src/executors/test/vitest.impl.d.ts +1 -0
  52. package/src/executors/test/vitest.impl.d.ts.map +1 -0
  53. package/src/executors/test/vitest.impl.js +29 -43
  54. package/src/generators/configuration/configuration.d.ts +1 -0
  55. package/src/generators/configuration/configuration.d.ts.map +1 -0
  56. package/src/generators/configuration/configuration.js +82 -102
  57. package/src/generators/configuration/lib/convert-non-vite.d.ts +1 -0
  58. package/src/generators/configuration/lib/convert-non-vite.d.ts.map +1 -0
  59. package/src/generators/configuration/lib/convert-non-vite.js +33 -32
  60. package/src/generators/convert-to-inferred/convert-to-inferred.d.ts +1 -0
  61. package/src/generators/convert-to-inferred/convert-to-inferred.d.ts.map +1 -0
  62. package/src/generators/convert-to-inferred/convert-to-inferred.js +31 -61
  63. package/src/generators/convert-to-inferred/lib/build-post-target-transformer.d.ts +1 -0
  64. package/src/generators/convert-to-inferred/lib/build-post-target-transformer.d.ts.map +1 -0
  65. package/src/generators/convert-to-inferred/lib/build-post-target-transformer.js +46 -58
  66. package/src/generators/convert-to-inferred/lib/preview-post-target-transformer.d.ts +1 -0
  67. package/src/generators/convert-to-inferred/lib/preview-post-target-transformer.d.ts.map +1 -0
  68. package/src/generators/convert-to-inferred/lib/preview-post-target-transformer.js +9 -14
  69. package/src/generators/convert-to-inferred/lib/serve-post-target-transformer.d.ts +1 -0
  70. package/src/generators/convert-to-inferred/lib/serve-post-target-transformer.d.ts.map +1 -0
  71. package/src/generators/convert-to-inferred/lib/serve-post-target-transformer.js +10 -15
  72. package/src/generators/convert-to-inferred/lib/test-post-target-transformer.d.ts +1 -0
  73. package/src/generators/convert-to-inferred/lib/test-post-target-transformer.d.ts.map +1 -0
  74. package/src/generators/convert-to-inferred/lib/test-post-target-transformer.js +16 -23
  75. package/src/generators/convert-to-inferred/lib/utils.d.ts +1 -0
  76. package/src/generators/convert-to-inferred/lib/utils.d.ts.map +1 -0
  77. package/src/generators/convert-to-inferred/lib/utils.js +18 -33
  78. package/src/generators/init/init.d.ts +1 -0
  79. package/src/generators/init/init.d.ts.map +1 -0
  80. package/src/generators/init/init.js +44 -96
  81. package/src/generators/init/lib/utils.d.ts +1 -0
  82. package/src/generators/init/lib/utils.d.ts.map +1 -0
  83. package/src/generators/init/lib/utils.js +20 -35
  84. package/src/generators/setup-paths-plugin/lib/utils.d.ts +1 -0
  85. package/src/generators/setup-paths-plugin/lib/utils.d.ts.map +1 -0
  86. package/src/generators/setup-paths-plugin/lib/utils.js +0 -3
  87. package/src/generators/setup-paths-plugin/setup-paths-plugin.d.ts +1 -0
  88. package/src/generators/setup-paths-plugin/setup-paths-plugin.d.ts.map +1 -0
  89. package/src/generators/setup-paths-plugin/setup-paths-plugin.js +45 -54
  90. package/src/generators/vitest/vitest-generator.d.ts +1 -0
  91. package/src/generators/vitest/vitest-generator.d.ts.map +1 -0
  92. package/src/generators/vitest/vitest-generator.js +134 -174
  93. package/src/migrations/update-19-6-0/add-depends-on-for-preview.d.ts +1 -0
  94. package/src/migrations/update-19-6-0/add-depends-on-for-preview.d.ts.map +1 -0
  95. package/src/migrations/update-19-6-0/add-depends-on-for-preview.js +10 -18
  96. package/src/migrations/update-20-0-4/add-vite-temp-files-to-git-ignore.d.ts +1 -0
  97. package/src/migrations/update-20-0-4/add-vite-temp-files-to-git-ignore.d.ts.map +1 -0
  98. package/src/migrations/update-20-0-4/add-vite-temp-files-to-git-ignore.js +4 -10
  99. package/src/migrations/update-20-3-0/add-vitest-temp-files-to-git-ignore.d.ts +1 -0
  100. package/src/migrations/update-20-3-0/add-vitest-temp-files-to-git-ignore.d.ts.map +1 -0
  101. package/src/migrations/update-20-3-0/add-vitest-temp-files-to-git-ignore.js +4 -10
  102. package/src/migrations/update-20-5-0/eslint-ignore-vite-temp-files.d.ts +1 -0
  103. package/src/migrations/update-20-5-0/eslint-ignore-vite-temp-files.d.ts.map +1 -0
  104. package/src/migrations/update-20-5-0/eslint-ignore-vite-temp-files.js +20 -24
  105. package/src/migrations/update-20-5-0/install-jiti.d.ts +1 -0
  106. package/src/migrations/update-20-5-0/install-jiti.d.ts.map +1 -0
  107. package/src/migrations/update-20-5-0/install-jiti.js +6 -12
  108. package/src/migrations/update-20-5-0/update-resolve-conditions.d.ts +1 -0
  109. package/src/migrations/update-20-5-0/update-resolve-conditions.d.ts.map +1 -0
  110. package/src/migrations/update-20-5-0/update-resolve-conditions.js +26 -28
  111. package/src/plugins/plugin.d.ts +1 -0
  112. package/src/plugins/plugin.d.ts.map +1 -0
  113. package/src/plugins/plugin.js +189 -267
  114. package/src/utils/detect-ui-framework.d.ts +1 -0
  115. package/src/utils/detect-ui-framework.d.ts.map +1 -0
  116. package/src/utils/detect-ui-framework.js +9 -20
  117. package/src/utils/e2e-web-server-info-utils.d.ts +1 -0
  118. package/src/utils/e2e-web-server-info-utils.d.ts.map +1 -0
  119. package/src/utils/e2e-web-server-info-utils.js +23 -35
  120. package/src/utils/ensure-dependencies.d.ts +1 -0
  121. package/src/utils/ensure-dependencies.d.ts.map +1 -0
  122. package/src/utils/ensure-dependencies.js +24 -26
  123. package/src/utils/executor-utils.d.ts +1 -0
  124. package/src/utils/executor-utils.d.ts.map +1 -0
  125. package/src/utils/executor-utils.js +27 -43
  126. package/src/utils/find-vite-config.d.ts +1 -0
  127. package/src/utils/find-vite-config.d.ts.map +1 -0
  128. package/src/utils/find-vite-config.js +12 -37
  129. package/src/utils/generator-utils.d.ts +1 -0
  130. package/src/utils/generator-utils.d.ts.map +1 -0
  131. package/src/utils/generator-utils.js +204 -216
  132. package/src/utils/ignore-vite-temp-files.d.ts +1 -0
  133. package/src/utils/ignore-vite-temp-files.d.ts.map +1 -0
  134. package/src/utils/ignore-vite-temp-files.js +22 -32
  135. package/src/utils/nx-tsconfig-paths-find-file.d.ts +1 -0
  136. package/src/utils/nx-tsconfig-paths-find-file.d.ts.map +1 -0
  137. package/src/utils/nx-tsconfig-paths-find-file.js +10 -16
  138. package/src/utils/options-utils.d.ts +1 -0
  139. package/src/utils/options-utils.d.ts.map +1 -0
  140. package/src/utils/options-utils.js +48 -58
  141. package/src/utils/test-files/test-vite-configs.d.ts +1 -0
  142. package/src/utils/test-files/test-vite-configs.d.ts.map +1 -0
  143. package/src/utils/test-files/test-vite-configs.js +21 -82
  144. package/src/utils/test-utils.d.ts +1 -0
  145. package/src/utils/test-utils.d.ts.map +1 -0
  146. package/src/utils/test-utils.js +103 -130
  147. package/src/utils/version-utils.d.ts +1 -0
  148. package/src/utils/version-utils.d.ts.map +1 -0
  149. package/src/utils/version-utils.js +26 -44
  150. package/src/utils/versions.d.ts +1 -0
  151. package/src/utils/versions.d.ts.map +1 -0
  152. package/src/utils/versions.js +22 -82
  153. package/src/utils/vite-config-edit-utils.d.ts +1 -0
  154. package/src/utils/vite-config-edit-utils.d.ts.map +1 -0
  155. package/src/utils/vite-config-edit-utils.js +145 -125
  156. package/executors.js.map +0 -1
  157. package/index.js.map +0 -1
  158. package/plugin.js.map +0 -1
  159. package/plugins/nx-copy-assets.plugin.js.map +0 -1
  160. package/plugins/nx-tsconfig-paths.plugin.js.map +0 -1
  161. package/plugins/nx-vite-build-coordination.plugin.js.map +0 -1
  162. package/plugins/rollup-replace-files.plugin.js.map +0 -1
  163. package/src/executors/build/build.impl.js.map +0 -1
  164. package/src/executors/build/compat.js.map +0 -1
  165. package/src/executors/build/schema.d.js +0 -3
  166. package/src/executors/build/schema.d.js.map +0 -1
  167. package/src/executors/dev-server/compat.js.map +0 -1
  168. package/src/executors/dev-server/dev-server.impl.js.map +0 -1
  169. package/src/executors/dev-server/schema.d.js +0 -3
  170. package/src/executors/dev-server/schema.d.js.map +0 -1
  171. package/src/executors/preview-server/compat.js.map +0 -1
  172. package/src/executors/preview-server/preview-server.impl.js.map +0 -1
  173. package/src/executors/preview-server/schema.d.js +0 -3
  174. package/src/executors/preview-server/schema.d.js.map +0 -1
  175. package/src/executors/test/compat.js.map +0 -1
  176. package/src/executors/test/lib/nx-reporter.js.map +0 -1
  177. package/src/executors/test/lib/utils.js.map +0 -1
  178. package/src/executors/test/schema.d.js +0 -3
  179. package/src/executors/test/schema.d.js.map +0 -1
  180. package/src/executors/test/vitest.impl.js.map +0 -1
  181. package/src/generators/configuration/configuration.js.map +0 -1
  182. package/src/generators/configuration/lib/convert-non-vite.js.map +0 -1
  183. package/src/generators/configuration/schema.d.js +0 -3
  184. package/src/generators/configuration/schema.d.js.map +0 -1
  185. package/src/generators/convert-to-inferred/convert-to-inferred.js.map +0 -1
  186. package/src/generators/convert-to-inferred/lib/build-post-target-transformer.js.map +0 -1
  187. package/src/generators/convert-to-inferred/lib/preview-post-target-transformer.js.map +0 -1
  188. package/src/generators/convert-to-inferred/lib/serve-post-target-transformer.js.map +0 -1
  189. package/src/generators/convert-to-inferred/lib/test-post-target-transformer.js.map +0 -1
  190. package/src/generators/convert-to-inferred/lib/utils.js.map +0 -1
  191. package/src/generators/init/init.js.map +0 -1
  192. package/src/generators/init/lib/utils.js.map +0 -1
  193. package/src/generators/init/schema.d.js +0 -3
  194. package/src/generators/init/schema.d.js.map +0 -1
  195. package/src/generators/setup-paths-plugin/lib/utils.js.map +0 -1
  196. package/src/generators/setup-paths-plugin/schema.d.js +0 -3
  197. package/src/generators/setup-paths-plugin/schema.d.js.map +0 -1
  198. package/src/generators/setup-paths-plugin/setup-paths-plugin.js.map +0 -1
  199. package/src/generators/vitest/schema.d.js +0 -3
  200. package/src/generators/vitest/schema.d.js.map +0 -1
  201. package/src/generators/vitest/vitest-generator.js.map +0 -1
  202. package/src/migrations/update-19-6-0/add-depends-on-for-preview.js.map +0 -1
  203. package/src/migrations/update-20-0-4/add-vite-temp-files-to-git-ignore.js.map +0 -1
  204. package/src/migrations/update-20-3-0/add-vitest-temp-files-to-git-ignore.js.map +0 -1
  205. package/src/migrations/update-20-5-0/eslint-ignore-vite-temp-files.js.map +0 -1
  206. package/src/migrations/update-20-5-0/install-jiti.js.map +0 -1
  207. package/src/migrations/update-20-5-0/update-resolve-conditions.js.map +0 -1
  208. package/src/plugins/plugin.js.map +0 -1
  209. package/src/utils/detect-ui-framework.js.map +0 -1
  210. package/src/utils/e2e-web-server-info-utils.js.map +0 -1
  211. package/src/utils/ensure-dependencies.js.map +0 -1
  212. package/src/utils/executor-utils.js.map +0 -1
  213. package/src/utils/find-vite-config.js.map +0 -1
  214. package/src/utils/generator-utils.js.map +0 -1
  215. package/src/utils/ignore-vite-temp-files.js.map +0 -1
  216. package/src/utils/nx-tsconfig-paths-find-file.js.map +0 -1
  217. package/src/utils/options-utils.js.map +0 -1
  218. package/src/utils/test-files/test-vite-configs.js.map +0 -1
  219. package/src/utils/test-utils.js.map +0 -1
  220. package/src/utils/version-utils.js.map +0 -1
  221. package/src/utils/versions.js.map +0 -1
  222. package/src/utils/vite-config-edit-utils.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../packages/vite/src/plugins/plugin.ts"],"sourcesContent":["import {\n CreateDependencies,\n CreateNodes,\n CreateNodesContext,\n CreateNodesContextV2,\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 {\n calculateHashesForCreateNodes,\n calculateHashForCreateNodes,\n} 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 picomatch = require('picomatch');\nimport { isUsingTsSolutionSetup as _isUsingTsSolutionSetup } from '@nx/js/src/utils/typescript/ts-solution-setup';\nimport { addBuildAndWatchDepsTargets } from '@nx/js/src/plugins/typescript/util';\n\nconst pmc = getPackageManagerCommand();\n\nexport interface VitePluginOptions {\n buildTargetName?: string;\n testTargetName?: string;\n /**\n * @deprecated Use devTargetName instead. This option will be removed in Nx 22.\n */\n serveTargetName?: string;\n devTargetName?: string;\n previewTargetName?: string;\n serveStaticTargetName?: string;\n typecheckTargetName?: string;\n watchDepsTargetName?: string;\n buildDepsTargetName?: string;\n}\n\ntype ViteTargets = Pick<\n ProjectConfiguration,\n 'targets' | 'metadata' | 'projectType'\n>;\n\nfunction readTargetsCache(cachePath: string): Record<string, ViteTargets> {\n return process.env.NX_CACHE_PROJECT_GRAPH !== 'false' && existsSync(cachePath)\n ? readJsonFile(cachePath)\n : {};\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 normalizedOptions = normalizeOptions(options);\n const cachePath = join(workspaceDataDirectory, `vite-${optionsHash}.hash`);\n const targetsCache = readTargetsCache(cachePath);\n const isUsingTsSolutionSetup = _isUsingTsSolutionSetup();\n\n const { roots: projectRoots, configFiles: validConfigFiles } =\n configFilePaths.reduce(\n (acc, configFile) => {\n const potentialRoot = dirname(configFile);\n if (checkIfConfigFileShouldBeProject(potentialRoot, context)) {\n acc.roots.push(potentialRoot);\n acc.configFiles.push(configFile);\n }\n return acc;\n },\n {\n roots: [],\n configFiles: [],\n } as {\n roots: string[];\n configFiles: string[];\n }\n );\n\n const lockfile = getLockFileName(\n detectPackageManager(context.workspaceRoot)\n );\n const hashes = await calculateHashesForCreateNodes(\n projectRoots,\n { ...normalizedOptions, isUsingTsSolutionSetup },\n context,\n projectRoots.map((r) => [lockfile])\n );\n\n try {\n return await createNodesFromFiles(\n async (configFile, _, context, idx) => {\n const projectRoot = dirname(configFile);\n // Do not create a project if package.json and project.json isn't there.\n const siblingFiles = readdirSync(\n join(context.workspaceRoot, projectRoot)\n );\n\n const tsConfigFiles =\n siblingFiles.filter((p) =>\n picomatch('tsconfig*{.json,.*.json}')(p)\n ) ?? [];\n\n const hasReactRouterConfig = siblingFiles.some((configFile) => {\n const parts = configFile.split('.');\n return (\n parts[0] === 'react-router' &&\n parts[1] === 'config' &&\n parts.length > 2\n );\n });\n\n // results from vitest.config.js will be different from results of vite.config.js\n // but the hash will be the same because it is based on the files under the project root.\n // Adding the config file path to the hash ensures that the final hash value is different\n // for different config files.\n const hash = hashes[idx] + configFile;\n const { projectType, metadata, targets } = (targetsCache[hash] ??=\n await buildViteTargets(\n configFile,\n projectRoot,\n normalizedOptions,\n tsConfigFiles,\n hasReactRouterConfig,\n isUsingTsSolutionSetup,\n context\n ));\n\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[normalizedOptions.buildTargetName]) {\n project.projectType = projectType;\n }\n\n return {\n projects: {\n [projectRoot]: project,\n },\n };\n },\n validConfigFiles,\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 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) => picomatch('tsconfig*{.json,.*.json}')(p)) ??\n [];\n\n const hasReactRouterConfig = siblingFiles.some((configFile) => {\n const parts = configFile.split('.');\n return (\n parts[0] === 'react-router' && parts[1] === 'config' && parts.length > 2\n );\n });\n\n const normalizedOptions = normalizeOptions(options);\n\n const isUsingTsSolutionSetup = _isUsingTsSolutionSetup();\n\n const { projectType, metadata, targets } = await buildViteTargets(\n configFilePath,\n projectRoot,\n normalizedOptions,\n tsConfigFiles,\n hasReactRouterConfig,\n isUsingTsSolutionSetup,\n context\n );\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[normalizedOptions.buildTargetName]) {\n project.projectType = projectType;\n }\n\n return {\n projects: {\n [projectRoot]: project,\n },\n };\n },\n];\n\nasync function buildViteTargets(\n configFilePath: string,\n projectRoot: string,\n options: VitePluginOptions,\n tsConfigFiles: string[],\n hasReactRouterConfig: boolean,\n isUsingTsSolutionSetup: boolean,\n context: CreateNodesContext\n): Promise<ViteTargets> {\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 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 if (hasReactRouterConfig) {\n // If we have a react-router config, we can skip the rest of the targets\n return { targets, metadata: {}, projectType: 'application' };\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 isUsingTsSolutionSetup\n );\n\n // If running in library mode, then there is nothing to serve.\n if (!viteBuildConfig.build?.lib || hasServeConfig) {\n const devTarget = serveTarget(projectRoot, isUsingTsSolutionSetup);\n\n targets[options.serveTargetName] = {\n ...devTarget,\n metadata: {\n ...devTarget.metadata,\n deprecated:\n 'Use devTargetName instead. This option will be removed in Nx 22.',\n },\n };\n targets[options.devTargetName] = devTarget;\n targets[options.previewTargetName] = previewTarget(\n projectRoot,\n options.buildTargetName\n );\n targets[options.serveStaticTargetName] = serveStaticTarget(\n options,\n isUsingTsSolutionSetup\n );\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\n // Check if the project uses Vue plugin\n const hasVuePlugin = viteBuildConfig.plugins?.some(\n (p) => p.name === 'vite:vue'\n );\n const typeCheckCommand = hasVuePlugin ? 'vue-tsc' : 'tsc';\n\n targets[options.typecheckTargetName] = {\n cache: true,\n inputs: [\n ...('production' in namedInputs\n ? ['production', '^production']\n : ['default', '^default']),\n {\n externalDependencies: hasVuePlugin\n ? ['vue-tsc', 'typescript']\n : ['typescript'],\n },\n ],\n command: isUsingTsSolutionSetup\n ? `${typeCheckCommand} --build --emitDeclarationOnly`\n : `${typeCheckCommand} --noEmit -p ${tsConfigToUse}`,\n options: { cwd: joinPathFragments(projectRoot) },\n metadata: {\n description: `Runs type-checking for the project.`,\n technologies: hasVuePlugin ? ['typescript', 'vue'] : ['typescript'],\n help: {\n command: isUsingTsSolutionSetup\n ? `${pmc.exec} ${typeCheckCommand} --build --help`\n : `${pmc.exec} ${typeCheckCommand} -p ${tsConfigToUse} --help`,\n example: isUsingTsSolutionSetup\n ? { args: ['--force'] }\n : { options: { noEmit: true } },\n },\n },\n };\n\n if (isUsingTsSolutionSetup) {\n targets[options.typecheckTargetName].dependsOn = [\n `^${options.typecheckTargetName}`,\n ];\n targets[options.typecheckTargetName].syncGenerators = [\n '@nx/js:typescript-sync',\n ];\n }\n }\n\n addBuildAndWatchDepsTargets(\n context.workspaceRoot,\n projectRoot,\n targets,\n options,\n pmc\n );\n\n const metadata = {};\n return {\n targets,\n metadata,\n projectType: viteBuildConfig.build?.lib ? 'library' : 'application',\n };\n}\n\nasync function buildTarget(\n buildTargetName: string,\n namedInputs: {\n [inputName: string]: any[];\n },\n outputs: string[],\n projectRoot: string,\n isUsingTsSolutionSetup: boolean\n) {\n const buildTarget: TargetConfiguration = {\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 if (isUsingTsSolutionSetup) {\n buildTarget.syncGenerators = ['@nx/js:typescript-sync'];\n }\n\n return buildTarget;\n}\n\nfunction serveTarget(projectRoot: string, isUsingTsSolutionSetup: boolean) {\n const targetConfig: TargetConfiguration = {\n continuous: true,\n command: `vite`,\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 if (isUsingTsSolutionSetup) {\n targetConfig.syncGenerators = ['@nx/js:typescript-sync'];\n }\n\n return targetConfig;\n}\n\nfunction previewTarget(projectRoot: string, buildTargetName) {\n const targetConfig: TargetConfiguration = {\n continuous: true,\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(\n options: VitePluginOptions,\n isUsingTsSolutionSetup: boolean\n) {\n const targetConfig: TargetConfiguration = {\n continuous: true,\n executor: '@nx/web:file-server',\n options: {\n buildTarget: `${options.buildTargetName}`,\n spa: true,\n },\n };\n\n if (isUsingTsSolutionSetup) {\n targetConfig.syncGenerators = ['@nx/js:typescript-sync'];\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.devTargetName ??= 'dev';\n options.previewTargetName ??= 'preview';\n options.testTargetName ??= 'test';\n options.serveStaticTargetName ??= 'serve-static';\n options.typecheckTargetName ??= 'typecheck';\n return options;\n}\n\nfunction checkIfConfigFileShouldBeProject(\n projectRoot: string,\n context: CreateNodesContext | CreateNodesContextV2\n): boolean {\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 false;\n }\n\n return true;\n}\n"],"names":["createDependencies","createNodes","createNodesV2","picomatch","pmc","getPackageManagerCommand","readTargetsCache","cachePath","process","env","NX_CACHE_PROJECT_GRAPH","existsSync","readJsonFile","writeTargetsToCache","results","writeJsonFile","viteVitestConfigGlob","configFilePaths","options","context","optionsHash","hashObject","normalizedOptions","normalizeOptions","join","workspaceDataDirectory","targetsCache","isUsingTsSolutionSetup","_isUsingTsSolutionSetup","roots","projectRoots","configFiles","validConfigFiles","reduce","acc","configFile","potentialRoot","dirname","checkIfConfigFileShouldBeProject","push","lockfile","getLockFileName","detectPackageManager","workspaceRoot","hashes","calculateHashesForCreateNodes","map","r","createNodesFromFiles","_","idx","hash","projectRoot","siblingFiles","readdirSync","tsConfigFiles","filter","p","hasReactRouterConfig","some","parts","split","length","projectType","metadata","targets","buildViteTargets","project","root","buildTargetName","projects","configFilePath","logger","warn","includes","viteBuildConfig","absoluteConfigFilePath","joinPathFragments","importEsbuild","Function","resolveConfig","loadViteDynamicImport","mode","buildOutputs","testOutputs","hasTest","isBuildable","hasServeConfig","getOutputs","namedInputs","getNamedInputs","testTargetName","testTarget","hasRemixPlugin","plugins","name","buildTarget","build","lib","devTarget","serveTarget","serveTargetName","deprecated","devTargetName","previewTargetName","previewTarget","serveStaticTargetName","serveStaticTarget","tsConfigToUse","find","t","hasVuePlugin","typeCheckCommand","typecheckTargetName","cache","inputs","externalDependencies","command","cwd","description","technologies","help","exec","example","args","noEmit","dependsOn","syncGenerators","addBuildAndWatchDepsTargets","outputs","sourcemap","manifest","targetConfig","continuous","port","bail","coverage","executor","spa","test","server","buildOutputPath","normalizeOutputPath","outDir","rollupOptions","input","Boolean","reportsDirectoryPath","reportsDirectory","outputPath","path","isAbsolute","relative","startsWith"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../packages/vite/src/utils/detect-ui-framework.ts"],"sourcesContent":["import { createProjectGraphAsync } from '@nx/devkit';\n\nconst ANGULAR_NPM_SCOPE = 'angular';\nconst ANGULAR_DEPS = ['@nx/angular'];\nconst REACT_DEPS = ['react', '@nx/react'];\n\nexport async function detectUiFramework(\n project: string\n): Promise<'angular' | 'react' | 'none'> {\n const graph = await createProjectGraphAsync();\n\n for (const dep of graph.dependencies[project] ?? []) {\n if (dep.source !== project || !dep.target.startsWith('npm:')) {\n continue;\n }\n\n const npmDependency = dep.target.replace('npm:', '');\n\n if (\n dep.target.startsWith(`npm:@${ANGULAR_NPM_SCOPE}/`) ||\n ANGULAR_DEPS.includes(npmDependency)\n ) {\n return 'angular';\n }\n\n if (REACT_DEPS.includes(npmDependency)) {\n return 'react';\n }\n }\n\n return 'none';\n}\n"],"names":["detectUiFramework","ANGULAR_NPM_SCOPE","ANGULAR_DEPS","REACT_DEPS","project","graph","createProjectGraphAsync","dep","dependencies","source","target","startsWith","npmDependency","replace","includes"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";+BAMsBA;;;eAAAA;;;wBANkB;AAExC,MAAMC,oBAAoB;AAC1B,MAAMC,eAAe;IAAC;CAAc;AACpC,MAAMC,aAAa;IAAC;IAAS;CAAY;AAElC,eAAeH,kBACpBI,OAAe;IAEf,MAAMC,QAAQ,MAAMC,IAAAA,+BAAuB;QAEzBD;IAAlB,KAAK,MAAME,OAAOF,CAAAA,8BAAAA,MAAMG,YAAY,CAACJ,QAAQ,YAA3BC,8BAA+B,EAAE,CAAE;QACnD,IAAIE,IAAIE,MAAM,KAAKL,WAAW,CAACG,IAAIG,MAAM,CAACC,UAAU,CAAC,SAAS;YAC5D;QACF;QAEA,MAAMC,gBAAgBL,IAAIG,MAAM,CAACG,OAAO,CAAC,QAAQ;QAEjD,IACEN,IAAIG,MAAM,CAACC,UAAU,CAAC,CAAC,KAAK,EAAEV,kBAAkB,CAAC,CAAC,KAClDC,aAAaY,QAAQ,CAACF,gBACtB;YACA,OAAO;QACT;QAEA,IAAIT,WAAWW,QAAQ,CAACF,gBAAgB;YACtC,OAAO;QACT;IACF;IAEA,OAAO;AACT"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../packages/vite/src/utils/e2e-web-server-info-utils.ts"],"sourcesContent":["import { type Tree, readNxJson } from '@nx/devkit';\nimport { getE2EWebServerInfo } from '@nx/devkit/src/generators/e2e-web-server-info-utils';\n\nexport async function getViteE2EWebServerInfo(\n tree: Tree,\n projectName: string,\n configFilePath: string,\n isPluginBeingAdded: boolean,\n e2ePortOverride?: number,\n e2eCIPortOverride?: number\n) {\n const nxJson = readNxJson(tree);\n let e2ePort = e2ePortOverride ?? 4200;\n\n if (\n (nxJson.targetDefaults?.['dev'] &&\n nxJson.targetDefaults?.['dev'].options?.port) ||\n (nxJson.targetDefaults?.['serve'] &&\n nxJson.targetDefaults?.['serve'].options?.port)\n ) {\n e2ePort =\n nxJson.targetDefaults?.['dev'].options?.port ??\n nxJson.targetDefaults?.['serve'].options?.port;\n }\n\n return getE2EWebServerInfo(\n tree,\n projectName,\n {\n plugin: '@nx/vite/plugin',\n serveTargetName: 'devTargetName',\n serveStaticTargetName: 'previewTargetName',\n configFilePath,\n },\n {\n defaultServeTargetName: 'dev',\n defaultServeStaticTargetName: 'preview',\n defaultE2EWebServerAddress: `http://localhost:${e2ePort}`,\n defaultE2ECiBaseUrl: `http://localhost:${e2eCIPortOverride ?? 4300}`,\n defaultE2EPort: e2ePort,\n },\n isPluginBeingAdded\n );\n}\n\nexport async function getReactRouterE2EWebServerInfo(\n tree: Tree,\n projectName: string,\n configFilePath: string,\n isPluginBeingAdded: boolean,\n e2ePortOverride?: number,\n e2eCIPortOverride?: number\n) {\n const e2ePort = e2ePortOverride ?? parseInt(process.env.PORT) ?? 4200;\n\n return await getE2EWebServerInfo(\n tree,\n projectName,\n {\n plugin: '@nx/react/router-plugin',\n serveTargetName: 'devTargetName',\n serveStaticTargetName: 'devTargetName',\n configFilePath,\n },\n {\n defaultServeTargetName: 'dev',\n defaultServeStaticTargetName: 'dev',\n defaultE2EWebServerAddress: `http://localhost:${e2ePort}`,\n defaultE2ECiBaseUrl: `http://localhost:${e2eCIPortOverride ?? 4200}`,\n defaultE2EPort: e2ePort,\n },\n isPluginBeingAdded\n );\n}\n"],"names":["getReactRouterE2EWebServerInfo","getViteE2EWebServerInfo","tree","projectName","configFilePath","isPluginBeingAdded","e2ePortOverride","e2eCIPortOverride","nxJson","readNxJson","e2ePort","targetDefaults","options","port","getE2EWebServerInfo","plugin","serveTargetName","serveStaticTargetName","defaultServeTargetName","defaultServeStaticTargetName","defaultE2EWebServerAddress","defaultE2ECiBaseUrl","defaultE2EPort","parseInt","process","env","PORT"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;IA6CsBA,8BAA8B;eAA9BA;;IA1CAC,uBAAuB;eAAvBA;;;wBAHgB;uCACF;AAE7B,eAAeA,wBACpBC,IAAU,EACVC,WAAmB,EACnBC,cAAsB,EACtBC,kBAA2B,EAC3BC,eAAwB,EACxBC,iBAA0B;QAMvBC,wBACCA,oCAAAA,yBACDA,yBACCA,sCAAAA;IAPJ,MAAMA,SAASC,IAAAA,kBAAU,EAACP;IAC1B,IAAIQ,UAAUJ,0BAAAA,kBAAmB;IAEjC,IACE,EAACE,yBAAAA,OAAOG,cAAc,qBAArBH,sBAAuB,CAAC,MAAM,OAC7BA,0BAAAA,OAAOG,cAAc,sBAArBH,qCAAAA,uBAAuB,CAAC,MAAM,CAACI,OAAO,qBAAtCJ,mCAAwCK,IAAI,KAC7CL,EAAAA,0BAAAA,OAAOG,cAAc,qBAArBH,uBAAuB,CAAC,QAAQ,OAC/BA,0BAAAA,OAAOG,cAAc,sBAArBH,uCAAAA,uBAAuB,CAAC,QAAQ,CAACI,OAAO,qBAAxCJ,qCAA0CK,IAAI,GAChD;YAEEL,qCAAAA,yBACAA,uCAAAA;YADAA;QADFE,UACEF,CAAAA,2CAAAA,0BAAAA,OAAOG,cAAc,sBAArBH,sCAAAA,uBAAuB,CAAC,MAAM,CAACI,OAAO,qBAAtCJ,oCAAwCK,IAAI,YAA5CL,2CACAA,0BAAAA,OAAOG,cAAc,sBAArBH,wCAAAA,uBAAuB,CAAC,QAAQ,CAACI,OAAO,qBAAxCJ,sCAA0CK,IAAI;IAClD;IAEA,OAAOC,IAAAA,0CAAmB,EACxBZ,MACAC,aACA;QACEY,QAAQ;QACRC,iBAAiB;QACjBC,uBAAuB;QACvBb;IACF,GACA;QACEc,wBAAwB;QACxBC,8BAA8B;QAC9BC,4BAA4B,CAAC,iBAAiB,EAAEV,QAAQ,CAAC;QACzDW,qBAAqB,CAAC,iBAAiB,EAAEd,4BAAAA,oBAAqB,KAAK,CAAC;QACpEe,gBAAgBZ;IAClB,GACAL;AAEJ;AAEO,eAAeL,+BACpBE,IAAU,EACVC,WAAmB,EACnBC,cAAsB,EACtBC,kBAA2B,EAC3BC,eAAwB,EACxBC,iBAA0B;QAEVD;IAAhB,MAAMI,UAAUJ,CAAAA,OAAAA,0BAAAA,kBAAmBiB,SAASC,QAAQC,GAAG,CAACC,IAAI,aAA5CpB,OAAiD;IAEjE,OAAO,MAAMQ,IAAAA,0CAAmB,EAC9BZ,MACAC,aACA;QACEY,QAAQ;QACRC,iBAAiB;QACjBC,uBAAuB;QACvBb;IACF,GACA;QACEc,wBAAwB;QACxBC,8BAA8B;QAC9BC,4BAA4B,CAAC,iBAAiB,EAAEV,QAAQ,CAAC;QACzDW,qBAAqB,CAAC,iBAAiB,EAAEd,4BAAAA,oBAAqB,KAAK,CAAC;QACpEe,gBAAgBZ;IAClB,GACAL;AAEJ"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../packages/vite/src/utils/ensure-dependencies.ts"],"sourcesContent":["import {\n addDependenciesToPackageJson,\n detectPackageManager,\n logger,\n type GeneratorCallback,\n type Tree,\n} from '@nx/devkit';\nimport {\n ajvVersion,\n analogVitestAngular,\n edgeRuntimeVmVersion,\n happyDomVersion,\n jsdomVersion,\n vitePluginDtsVersion,\n vitePluginReactSwcVersion,\n vitePluginReactVersion,\n} from './versions';\n\nexport type EnsureDependenciesOptions = {\n uiFramework: 'angular' | 'react' | 'none';\n compiler?: 'babel' | 'swc';\n includeLib?: boolean;\n testEnvironment?: 'node' | 'jsdom' | 'happy-dom' | 'edge-runtime' | string;\n};\n\nexport function ensureDependencies(\n host: Tree,\n schema: EnsureDependenciesOptions\n): GeneratorCallback {\n const devDependencies: Record<string, string> = {};\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 === 'angular') {\n devDependencies['@analogjs/vitest-angular'] = analogVitestAngular;\n devDependencies['@analogjs/vite-plugin-angular'] = analogVitestAngular;\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 if (detectPackageManager() !== 'pnpm') {\n devDependencies['ajv'] = ajvVersion;\n }\n }\n\n return addDependenciesToPackageJson(host, {}, devDependencies);\n}\n"],"names":["ensureDependencies","host","schema","devDependencies","testEnvironment","jsdomVersion","happyDomVersion","edgeRuntimeVmVersion","logger","info","uiFramework","analogVitestAngular","compiler","vitePluginReactSwcVersion","vitePluginReactVersion","includeLib","vitePluginDtsVersion","detectPackageManager","ajvVersion","addDependenciesToPackageJson"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";+BAyBgBA;;;eAAAA;;;wBAnBT;0BAUA;AASA,SAASA,mBACdC,IAAU,EACVC,MAAiC;IAEjC,MAAMC,kBAA0C,CAAC;IAEjD,IAAID,OAAOE,eAAe,KAAK,SAAS;QACtCD,eAAe,CAAC,QAAQ,GAAGE,sBAAY;IACzC,OAAO,IAAIH,OAAOE,eAAe,KAAK,aAAa;QACjDD,eAAe,CAAC,YAAY,GAAGG,yBAAe;IAChD,OAAO,IAAIJ,OAAOE,eAAe,KAAK,gBAAgB;QACpDD,eAAe,CAAC,mBAAmB,GAAGI,8BAAoB;IAC5D,OAAO,IAAIL,OAAOE,eAAe,KAAK,UAAUF,OAAOE,eAAe,EAAE;QACtEI,cAAM,CAACC,IAAI,CACT,CAAC,mCAAmC,EAAEP,OAAOE,eAAe,CAAC,kCAAkC,CAAC;IAEpG;IAEA,IAAIF,OAAOQ,WAAW,KAAK,WAAW;QACpCP,eAAe,CAAC,2BAA2B,GAAGQ,6BAAmB;QACjER,eAAe,CAAC,gCAAgC,GAAGQ,6BAAmB;IACxE;IAEA,IAAIT,OAAOQ,WAAW,KAAK,SAAS;QAClC,IAAIR,OAAOU,QAAQ,KAAK,OAAO;YAC7BT,eAAe,CAAC,2BAA2B,GAAGU,mCAAyB;QACzE,OAAO;YACLV,eAAe,CAAC,uBAAuB,GAAGW,gCAAsB;QAClE;IACF;IAEA,IAAIZ,OAAOa,UAAU,EAAE;QACrBZ,eAAe,CAAC,kBAAkB,GAAGa,8BAAoB;QACzD,IAAIC,IAAAA,4BAAoB,QAAO,QAAQ;YACrCd,eAAe,CAAC,MAAM,GAAGe,oBAAU;QACrC;IACF;IAEA,OAAOC,IAAAA,oCAA4B,EAAClB,MAAM,CAAC,GAAGE;AAChD"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../packages/vite/src/utils/executor-utils.ts"],"sourcesContent":["import { ViteBuildExecutorOptions } from '../executors/build/schema';\nimport { ExecutorContext, getPackageManagerCommand } from '@nx/devkit';\nimport { ViteDevServerExecutorOptions } from '../executors/dev-server/schema';\nimport {\n calculateProjectBuildableDependencies,\n createTmpTsConfig,\n} from '@nx/js/src/utils/buildable-libs-utils';\nimport { getProjectTsConfigPath } from './options-utils';\nimport { execSync } from 'node:child_process';\nimport { printDiagnostics, runTypeCheck } from '@nx/js';\nimport { join } from 'path';\n\nexport async function validateTypes(opts: {\n workspaceRoot: string;\n tsconfig: string;\n isVueProject?: boolean;\n}): Promise<void> {\n if (!opts.isVueProject) {\n const result = await runTypeCheck({\n workspaceRoot: opts.workspaceRoot,\n tsConfigPath: opts.tsconfig.startsWith(opts.workspaceRoot)\n ? opts.tsconfig\n : join(opts.workspaceRoot, opts.tsconfig),\n mode: 'noEmit',\n });\n\n await printDiagnostics(result.errors, result.warnings);\n\n if (result.errors.length > 0) {\n throw new Error('Found type errors. See above.');\n }\n } else {\n const pm = getPackageManagerCommand();\n const cp = execSync(\n `${pm.exec} vue-tsc --noEmit -p ${opts.tsconfig} --composite false`,\n {\n cwd: opts.workspaceRoot,\n stdio: 'inherit',\n windowsHide: false,\n }\n );\n }\n}\n\nexport function createBuildableTsConfig(\n projectRoot: string,\n options: { tsConfig?: string; buildLibsFromSource?: boolean },\n context: ExecutorContext\n) {\n const tsConfig = options.tsConfig ?? getProjectTsConfigPath(projectRoot);\n options['buildLibsFromSource'] ??= true;\n\n if (!options['buildLibsFromSource']) {\n const { dependencies } = calculateProjectBuildableDependencies(\n context.taskGraph,\n context.projectGraph,\n context.root,\n context.projectName,\n // When using incremental building and the serve target is called\n // we need to get the deps for the 'build' target instead.\n context.targetName === 'serve' ? 'build' : context.targetName,\n context.configurationName\n );\n // This tsconfig is used via the Vite ts paths plugin.\n // It can be also used by other user-defined Vite plugins (e.g. for creating type declaration files).\n const tmpTsConfigPath = createTmpTsConfig(\n tsConfig,\n context.root,\n projectRoot,\n dependencies\n );\n process.env.NX_TSCONFIG_PATH = tmpTsConfigPath;\n return tmpTsConfigPath;\n }\n return tsConfig;\n}\n\nexport function loadViteDynamicImport() {\n return Function('return import(\"vite\")')() as Promise<typeof import('vite')>;\n}\n\nexport function loadVitestDynamicImport() {\n return Function('return import(\"vitest/node\")')() as Promise<\n typeof import('vitest/node')\n >;\n}\n"],"names":["createBuildableTsConfig","loadViteDynamicImport","loadVitestDynamicImport","validateTypes","opts","isVueProject","result","runTypeCheck","workspaceRoot","tsConfigPath","tsconfig","startsWith","join","mode","printDiagnostics","errors","warnings","length","Error","pm","getPackageManagerCommand","cp","execSync","exec","cwd","stdio","windowsHide","projectRoot","options","context","tsConfig","getProjectTsConfigPath","dependencies","calculateProjectBuildableDependencies","taskGraph","projectGraph","root","projectName","targetName","configurationName","tmpTsConfigPath","createTmpTsConfig","process","env","NX_TSCONFIG_PATH","Function"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;IA4CgBA,uBAAuB;eAAvBA;;IAiCAC,qBAAqB;eAArBA;;IAIAC,uBAAuB;eAAvBA;;IArEMC,aAAa;eAAbA;;;wBAXoC;oCAKnD;8BACgC;mCACd;oBACsB;sBAC1B;AAEd,eAAeA,cAAcC,IAInC;IACC,IAAI,CAACA,KAAKC,YAAY,EAAE;QACtB,MAAMC,SAAS,MAAMC,IAAAA,gBAAY,EAAC;YAChCC,eAAeJ,KAAKI,aAAa;YACjCC,cAAcL,KAAKM,QAAQ,CAACC,UAAU,CAACP,KAAKI,aAAa,IACrDJ,KAAKM,QAAQ,GACbE,IAAAA,UAAI,EAACR,KAAKI,aAAa,EAAEJ,KAAKM,QAAQ;YAC1CG,MAAM;QACR;QAEA,MAAMC,IAAAA,oBAAgB,EAACR,OAAOS,MAAM,EAAET,OAAOU,QAAQ;QAErD,IAAIV,OAAOS,MAAM,CAACE,MAAM,GAAG,GAAG;YAC5B,MAAM,IAAIC,MAAM;QAClB;IACF,OAAO;QACL,MAAMC,KAAKC,IAAAA,gCAAwB;QACnC,MAAMC,KAAKC,IAAAA,2BAAQ,EACjB,CAAC,EAAEH,GAAGI,IAAI,CAAC,qBAAqB,EAAEnB,KAAKM,QAAQ,CAAC,kBAAkB,CAAC,EACnE;YACEc,KAAKpB,KAAKI,aAAa;YACvBiB,OAAO;YACPC,aAAa;QACf;IAEJ;AACF;AAEO,SAAS1B,wBACd2B,WAAmB,EACnBC,OAA6D,EAC7DC,OAAwB;QAGxBD,UAAQ;QADSA;IAAjB,MAAME,WAAWF,CAAAA,oBAAAA,QAAQE,QAAQ,YAAhBF,oBAAoBG,IAAAA,oCAAsB,EAACJ;;IAC5DC,MAAAA,WAAAA,QAAO,CAAC,uBAAA,sBAAsB,gBAA9BA,QAAO,CAAC,qBAAsB,GAAK;IAEnC,IAAI,CAACA,OAAO,CAAC,sBAAsB,EAAE;QACnC,MAAM,EAAEI,YAAY,EAAE,GAAGC,IAAAA,yDAAqC,EAC5DJ,QAAQK,SAAS,EACjBL,QAAQM,YAAY,EACpBN,QAAQO,IAAI,EACZP,QAAQQ,WAAW,EACnB,iEAAiE;QACjE,0DAA0D;QAC1DR,QAAQS,UAAU,KAAK,UAAU,UAAUT,QAAQS,UAAU,EAC7DT,QAAQU,iBAAiB;QAE3B,sDAAsD;QACtD,qGAAqG;QACrG,MAAMC,kBAAkBC,IAAAA,qCAAiB,EACvCX,UACAD,QAAQO,IAAI,EACZT,aACAK;QAEFU,QAAQC,GAAG,CAACC,gBAAgB,GAAGJ;QAC/B,OAAOA;IACT;IACA,OAAOV;AACT;AAEO,SAAS7B;IACd,OAAO4C,SAAS;AAClB;AAEO,SAAS3C;IACd,OAAO2C,SAAS;AAGlB"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../packages/vite/src/utils/find-vite-config.ts"],"sourcesContent":["import { Tree, joinPathFragments } from '@nx/devkit';\n\nexport function findViteConfig(tree: Tree, searchRoot: string) {\n const allowsExt = ['js', 'mjs', 'ts', 'cjs', 'mts', 'cts'];\n\n for (const ext of allowsExt) {\n if (tree.exists(joinPathFragments(searchRoot, `vite.config.${ext}`))) {\n return joinPathFragments(searchRoot, `vite.config.${ext}`);\n }\n }\n}\n\nexport function findWebpackConfig(tree: Tree, searchRoot: string) {\n const allowsExt = ['js', 'ts', 'mjs', 'cjs'];\n\n for (const ext of allowsExt) {\n if (tree.exists(joinPathFragments(searchRoot, `webpack.config.${ext}`))) {\n return joinPathFragments(searchRoot, `webpack.config.${ext}`);\n }\n }\n}\n"],"names":["findViteConfig","findWebpackConfig","tree","searchRoot","allowsExt","ext","exists","joinPathFragments"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;IAEgBA,cAAc;eAAdA;;IAUAC,iBAAiB;eAAjBA;;;wBAZwB;AAEjC,SAASD,eAAeE,IAAU,EAAEC,UAAkB;IAC3D,MAAMC,YAAY;QAAC;QAAM;QAAO;QAAM;QAAO;QAAO;KAAM;IAE1D,KAAK,MAAMC,OAAOD,UAAW;QAC3B,IAAIF,KAAKI,MAAM,CAACC,IAAAA,yBAAiB,EAACJ,YAAY,CAAC,YAAY,EAAEE,IAAI,CAAC,IAAI;YACpE,OAAOE,IAAAA,yBAAiB,EAACJ,YAAY,CAAC,YAAY,EAAEE,IAAI,CAAC;QAC3D;IACF;AACF;AAEO,SAASJ,kBAAkBC,IAAU,EAAEC,UAAkB;IAC9D,MAAMC,YAAY;QAAC;QAAM;QAAM;QAAO;KAAM;IAE5C,KAAK,MAAMC,OAAOD,UAAW;QAC3B,IAAIF,KAAKI,MAAM,CAACC,IAAAA,yBAAiB,EAACJ,YAAY,CAAC,eAAe,EAAEE,IAAI,CAAC,IAAI;YACvE,OAAOE,IAAAA,yBAAiB,EAACJ,YAAY,CAAC,eAAe,EAAEE,IAAI,CAAC;QAC9D;IACF;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../packages/vite/src/utils/generator-utils.ts"],"sourcesContent":["import {\n joinPathFragments,\n logger,\n offsetFromRoot,\n readJson,\n readNxJson,\n readProjectConfiguration,\n TargetConfiguration,\n Tree,\n updateProjectConfiguration,\n writeJson,\n} from '@nx/devkit';\nimport { addBuildTargetDefaults } from '@nx/devkit/src/generators/target-defaults-utils';\nimport { isUsingTsSolutionSetup } from '@nx/js/src/utils/typescript/ts-solution-setup';\nimport { ViteBuildExecutorOptions } from '../executors/build/schema';\nimport { VitePreviewServerExecutorOptions } from '../executors/preview-server/schema';\nimport { VitestExecutorOptions } from '../executors/test/schema';\nimport { ViteConfigurationGeneratorSchema } from '../generators/configuration/schema';\nimport { ensureViteConfigIsCorrect } from './vite-config-edit-utils';\nimport { VitestGeneratorSchema } from '../generators/vitest/schema';\n\nexport type Target = 'build' | 'serve' | 'test' | 'preview';\nexport type TargetFlags = Partial<Record<Target, boolean>>;\nexport type UserProvidedTargetName = Partial<Record<Target, string>>;\nexport type ValidFoundTargetName = Partial<Record<Target, string>>;\n\nexport function findExistingJsBuildTargetInProject(targets: {\n [targetName: string]: TargetConfiguration;\n}): {\n supported?: string;\n unsupported?: string;\n} {\n const output: {\n supported?: string;\n unsupported?: string;\n } = {};\n\n const supportedExecutors = {\n build: ['@nx/js:babel', '@nx/js:swc', '@nx/rollup:rollup'],\n };\n const unsupportedExecutors = [\n '@nx/angular:ng-packagr-lite',\n '@nx/angular:package',\n '@nx/angular:webpack-browser',\n '@nx/esbuild:esbuild',\n '@nx/react-native:run-ios',\n '@nx/react-native:start',\n '@nx/react-native:run-android',\n '@nx/react-native:bundle',\n '@nx/react-native:build-android',\n '@nx/react-native:bundle',\n '@nx/next:build',\n '@nx/js:tsc',\n '@nrwl/angular:ng-packagr-lite',\n '@nrwl/angular:package',\n '@nrwl/angular:webpack-browser',\n '@nrwl/esbuild:esbuild',\n '@nrwl/react-native:run-ios',\n '@nrwl/react-native:start',\n '@nrwl/react-native:run-android',\n '@nrwl/react-native:bundle',\n '@nrwl/react-native:build-android',\n '@nrwl/react-native:bundle',\n '@nrwl/next:build',\n '@nrwl/js:tsc',\n '@angular-devkit/build-angular:browser',\n '@angular-devkit/build-angular:browser-esbuild',\n '@angular-devkit/build-angular:application',\n ];\n\n // We try to find the target that is using the supported executors\n // for build since this is the one we will be converting\n for (const target in targets) {\n const executorName = targets[target].executor;\n if (supportedExecutors.build.includes(executorName)) {\n output.supported = target;\n } else if (unsupportedExecutors.includes(executorName)) {\n output.unsupported = target;\n }\n }\n return output;\n}\n\nexport function addOrChangeTestTarget(\n tree: Tree,\n options: VitestGeneratorSchema,\n hasPlugin: boolean\n) {\n const nxJson = readNxJson(tree);\n\n hasPlugin = nxJson.plugins?.some((p) =>\n typeof p === 'string'\n ? p === '@nx/vite/plugin'\n : p.plugin === '@nx/vite/plugin' || hasPlugin\n );\n\n if (hasPlugin) {\n return;\n }\n\n const project = readProjectConfiguration(tree, options.project);\n const target = options.testTarget ?? 'test';\n\n const reportsDirectory = joinPathFragments(\n offsetFromRoot(project.root),\n 'coverage',\n project.root === '.' ? options.project : project.root\n );\n const testOptions: VitestExecutorOptions = {\n reportsDirectory,\n };\n\n project.targets ??= {};\n\n if (project.targets[target]) {\n throw new Error(`Target \"${target}\" already exists in the project.`);\n } else {\n project.targets[target] = {\n executor: '@nx/vite:test',\n outputs: ['{options.reportsDirectory}'],\n options: testOptions,\n };\n }\n\n updateProjectConfiguration(tree, options.project, project);\n}\n\nexport function addBuildTarget(\n tree: Tree,\n options: ViteConfigurationGeneratorSchema,\n target: string\n) {\n addBuildTargetDefaults(tree, '@nx/vite:build');\n const project = readProjectConfiguration(tree, options.project);\n\n const isTsSolutionSetup = isUsingTsSolutionSetup(tree);\n const buildOptions: ViteBuildExecutorOptions = {\n outputPath: isTsSolutionSetup\n ? joinPathFragments(project.root, 'dist')\n : joinPathFragments(\n 'dist',\n project.root != '.' ? project.root : options.project\n ),\n };\n project.targets ??= {};\n project.targets[target] = {\n executor: '@nx/vite:build',\n outputs: ['{options.outputPath}'],\n defaultConfiguration: 'production',\n options: buildOptions,\n configurations: {\n development: {\n mode: 'development',\n },\n production: {\n mode: 'production',\n },\n },\n };\n\n updateProjectConfiguration(tree, options.project, project);\n}\n\nexport function addServeTarget(\n tree: Tree,\n options: ViteConfigurationGeneratorSchema,\n target: string\n) {\n const project = readProjectConfiguration(tree, options.project);\n\n project.targets ??= {};\n\n project.targets[target] = {\n executor: '@nx/vite:dev-server',\n defaultConfiguration: 'development',\n options: {\n buildTarget: `${options.project}:build`,\n },\n configurations: {\n development: {\n buildTarget: `${options.project}:build:development`,\n hmr: true,\n },\n production: {\n buildTarget: `${options.project}:build:production`,\n hmr: false,\n },\n },\n };\n\n updateProjectConfiguration(tree, options.project, project);\n}\n\n/**\n * Adds a target for the preview server.\n *\n * @param tree\n * @param options\n * @param serveTarget An existing serve target.\n */\nexport function addPreviewTarget(\n tree: Tree,\n options: ViteConfigurationGeneratorSchema,\n serveTarget: string\n) {\n const project = readProjectConfiguration(tree, options.project);\n\n const previewOptions: VitePreviewServerExecutorOptions = {\n buildTarget: `${options.project}:build`,\n };\n\n project.targets ??= {};\n\n // Update the options from the passed serve target.\n if (project.targets[serveTarget]) {\n const target = project.targets[serveTarget];\n if (target.executor === '@nxext/vite:dev') {\n previewOptions.proxyConfig = target.options.proxyConfig;\n }\n previewOptions['https'] = target.options?.https;\n previewOptions['open'] = target.options?.open;\n }\n\n // Adds a preview target.\n project.targets.preview = {\n dependsOn: ['build'],\n executor: '@nx/vite:preview-server',\n defaultConfiguration: 'development',\n options: previewOptions,\n configurations: {\n development: {\n buildTarget: `${options.project}:build:development`,\n },\n production: {\n buildTarget: `${options.project}:build:production`,\n },\n },\n };\n\n updateProjectConfiguration(tree, options.project, project);\n}\n\nexport function editTsConfig(\n tree: Tree,\n options: ViteConfigurationGeneratorSchema\n) {\n const projectConfig = readProjectConfiguration(tree, options.project);\n\n let tsconfigPath = joinPathFragments(projectConfig.root, 'tsconfig.json');\n const isTsSolutionSetup = isUsingTsSolutionSetup(tree);\n if (isTsSolutionSetup) {\n tsconfigPath = [\n joinPathFragments(projectConfig.root, 'tsconfig.app.json'),\n joinPathFragments(projectConfig.root, 'tsconfig.lib.json'),\n ].find((p) => tree.exists(p));\n }\n const config = readJson(tree, tsconfigPath);\n\n switch (options.uiFramework) {\n case 'react':\n config.compilerOptions = {\n jsx: 'react-jsx',\n allowJs: false,\n esModuleInterop: false,\n allowSyntheticDefaultImports: true,\n strict: true,\n };\n break;\n case 'none':\n if (!isTsSolutionSetup) {\n config.compilerOptions = {\n module: 'commonjs',\n forceConsistentCasingInFileNames: true,\n strict: true,\n noImplicitOverride: true,\n noPropertyAccessFromIndexSignature: true,\n noImplicitReturns: true,\n noFallthroughCasesInSwitch: true,\n };\n }\n break;\n default:\n break;\n }\n\n writeJson(tree, tsconfigPath, config);\n}\n\nexport function deleteWebpackConfig(\n tree: Tree,\n projectRoot: string,\n webpackConfigFilePath?: string\n) {\n const webpackConfigPath =\n webpackConfigFilePath && tree.exists(webpackConfigFilePath)\n ? webpackConfigFilePath\n : tree.exists(`${projectRoot}/webpack.config.js`)\n ? `${projectRoot}/webpack.config.js`\n : tree.exists(`${projectRoot}/webpack.config.ts`)\n ? `${projectRoot}/webpack.config.ts`\n : null;\n if (webpackConfigPath) {\n tree.delete(webpackConfigPath);\n }\n}\n\nexport function moveAndEditIndexHtml(\n tree: Tree,\n options: ViteConfigurationGeneratorSchema\n) {\n const projectConfig = readProjectConfiguration(tree, options.project);\n\n let indexHtmlPath = `${projectConfig.root}/src/index.html`;\n let mainPath = `${projectConfig.root}/src/main.ts${\n options.uiFramework === 'react' ? 'x' : ''\n }`;\n\n if (projectConfig.root !== '.') {\n mainPath = mainPath.replace(projectConfig.root, '');\n }\n\n if (\n !tree.exists(indexHtmlPath) &&\n tree.exists(`${projectConfig.root}/index.html`)\n ) {\n indexHtmlPath = `${projectConfig.root}/index.html`;\n }\n\n if (tree.exists(indexHtmlPath)) {\n const indexHtmlContent = tree.read(indexHtmlPath, 'utf8');\n if (\n !indexHtmlContent.includes(\n `<script type='module' src='${mainPath}'></script>`\n )\n ) {\n tree.write(\n `${projectConfig.root}/index.html`,\n indexHtmlContent.replace(\n '</body>',\n `<script type='module' src='${mainPath}'></script>\n </body>`\n )\n );\n\n if (tree.exists(`${projectConfig.root}/src/index.html`)) {\n tree.delete(`${projectConfig.root}/src/index.html`);\n }\n }\n } else {\n tree.write(\n `${projectConfig.root}/index.html`,\n `<!DOCTYPE html>\n <html lang='en'>\n <head>\n <meta charset='UTF-8' />\n <link rel='icon' href='/favicon.ico' />\n <meta name='viewport' content='width=device-width, initial-scale=1.0' />\n <title>Vite</title>\n </head>\n <body>\n <div id='root'></div>\n <script type='module' src='${mainPath}'></script>\n </body>\n </html>`\n );\n }\n}\n\nexport interface ViteConfigFileOptions {\n project: string;\n includeLib?: boolean;\n includeVitest?: boolean;\n inSourceTests?: boolean;\n testEnvironment?: 'node' | 'jsdom' | 'happy-dom' | 'edge-runtime' | string;\n rollupOptionsExternal?: string[];\n imports?: string[];\n plugins?: string[];\n coverageProvider?: 'v8' | 'istanbul' | 'custom';\n setupFile?: string;\n useEsmExtension?: boolean;\n port?: number;\n previewPort?: number;\n}\n\nexport function createOrEditViteConfig(\n tree: Tree,\n options: ViteConfigFileOptions,\n onlyVitest: boolean,\n projectAlreadyHasViteTargets?: TargetFlags,\n vitestFileName?: boolean\n) {\n const { root: projectRoot } = readProjectConfiguration(tree, options.project);\n\n const extension = options.useEsmExtension ? 'mts' : 'ts';\n const viteConfigPath = vitestFileName\n ? `${projectRoot}/vitest.config.${extension}`\n : `${projectRoot}/vite.config.${extension}`;\n\n const isTsSolutionSetup = isUsingTsSolutionSetup(tree);\n const buildOutDir = isTsSolutionSetup\n ? './dist'\n : projectRoot === '.'\n ? `./dist/${options.project}`\n : `${offsetFromRoot(projectRoot)}dist/${projectRoot}`;\n\n const buildOption = onlyVitest\n ? ''\n : options.includeLib\n ? ` // Configuration for building your library.\n // See: https://vitejs.dev/guide/build.html#library-mode\n build: {\n outDir: '${buildOutDir}',\n emptyOutDir: true,\n reportCompressedSize: true,\n commonjsOptions: {\n transformMixedEsModules: true,\n },\n lib: {\n // Could also be a dictionary or array of multiple entry points.\n entry: 'src/index.ts',\n name: '${options.project}',\n fileName: 'index',\n // Change this to the formats you want to support.\n // Don't forget to update your package.json as well.\n formats: ['es' as const]\n },\n rollupOptions: {\n // External packages that should not be bundled into your library.\n external: [${options.rollupOptionsExternal ?? ''}]\n },\n },`\n : ` build: {\n outDir: '${buildOutDir}',\n emptyOutDir: true,\n reportCompressedSize: true,\n commonjsOptions: {\n transformMixedEsModules: true,\n },\n },`;\n\n const imports: string[] = options.imports ? [...options.imports] : [];\n const plugins: string[] = options.plugins ? [...options.plugins] : [];\n\n if (!onlyVitest && options.includeLib) {\n imports.push(\n `import dts from 'vite-plugin-dts'`,\n `import * as path from 'path'`\n );\n }\n\n if (!isTsSolutionSetup) {\n imports.push(\n `import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'`,\n `import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin'`\n );\n plugins.push(`nxViteTsPaths()`, `nxCopyAssetsPlugin(['*.md'])`);\n }\n\n if (!onlyVitest && options.includeLib) {\n plugins.push(\n `dts({ entryRoot: 'src', tsconfigPath: path.join(__dirname, 'tsconfig.lib.json')${\n !isTsSolutionSetup ? ', pathsToAliases: false' : ''\n } })`\n );\n }\n\n const reportsDirectory = isTsSolutionSetup\n ? './test-output/vitest/coverage'\n : projectRoot === '.'\n ? `./coverage/${options.project}`\n : `${offsetFromRoot(projectRoot)}coverage/${projectRoot}`;\n\n const testOption = options.includeVitest\n ? ` test: {\n watch: false,\n globals: true,\n environment: '${options.testEnvironment ?? 'jsdom'}',\n include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],\n${options.setupFile ? ` setupFiles: ['${options.setupFile}'],\\n` : ''}\\\n${\n options.inSourceTests\n ? ` includeSource: ['src/**/*.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],\\n`\n : ''\n}\\\n reporters: ['default'],\n coverage: {\n reportsDirectory: '${reportsDirectory}',\n provider: ${\n options.coverageProvider\n ? `'${options.coverageProvider}' as const`\n : `'v8' as const`\n },\n }\n },`\n : '';\n\n const defineOption = options.inSourceTests\n ? ` define: {\n 'import.meta.vitest': undefined\n },`\n : '';\n\n const devServerOption = onlyVitest\n ? ''\n : options.includeLib\n ? ''\n : ` server:{\n port: ${options.port ?? 4200},\n host: 'localhost',\n },`;\n\n const previewServerOption = onlyVitest\n ? ''\n : options.includeLib\n ? ''\n : ` preview:{\n port: ${options.previewPort ?? 4300},\n host: 'localhost',\n },`;\n\n const workerOption = ` // Uncomment this if you are using workers.\n // worker: {\n // plugins: [ nxViteTsPaths() ],\n // },`;\n\n const cacheDir = `cacheDir: '${normalizedJoinPaths(\n offsetFromRoot(projectRoot),\n 'node_modules',\n '.vite',\n projectRoot === '.' ? options.project : projectRoot\n )}',`;\n\n if (tree.exists(viteConfigPath)) {\n handleViteConfigFileExists(\n tree,\n viteConfigPath,\n options,\n buildOption,\n buildOutDir,\n imports,\n plugins,\n testOption,\n reportsDirectory,\n cacheDir,\n projectRoot,\n offsetFromRoot(projectRoot),\n projectAlreadyHasViteTargets\n );\n return;\n }\n\n const viteConfigContent = `/// <reference types='vitest' />\nimport { defineConfig } from 'vite';\n${imports.join(';\\n')}${imports.length ? ';' : ''}\n\nexport default defineConfig(() => ({\n root: __dirname,\n ${printOptions(\n cacheDir,\n devServerOption,\n previewServerOption,\n ` plugins: [${plugins.join(', ')}],`,\n workerOption,\n buildOption,\n defineOption,\n testOption\n )}\n}));\n`.replace(/\\s+(?=(\\n|$))/gm, '\\n');\n\n tree.write(viteConfigPath, viteConfigContent);\n}\n\nfunction printOptions(...options: string[]): string {\n return options.filter(Boolean).join('\\n');\n}\n\nexport function normalizeViteConfigFilePathWithTree(\n tree: Tree,\n projectRoot: string,\n configFile?: string\n): string {\n return configFile && tree.exists(configFile)\n ? configFile\n : tree.exists(joinPathFragments(`${projectRoot}/vite.config.ts`))\n ? joinPathFragments(`${projectRoot}/vite.config.ts`)\n : tree.exists(joinPathFragments(`${projectRoot}/vite.config.js`))\n ? joinPathFragments(`${projectRoot}/vite.config.js`)\n : undefined;\n}\n\nexport function getViteConfigPathForProject(\n tree: Tree,\n projectName: string,\n target?: string\n) {\n let viteConfigPath: string | undefined;\n const { targets, root } = readProjectConfiguration(tree, projectName);\n if (target) {\n viteConfigPath = targets?.[target]?.options?.configFile;\n } else {\n const config = Object.values(targets).find(\n (config) =>\n config.executor === '@nrwl/nx:build' ||\n config.executor === '@nrwl/vite:build'\n );\n viteConfigPath = config?.options?.configFile;\n }\n\n return normalizeViteConfigFilePathWithTree(tree, root, viteConfigPath);\n}\n\nexport async function handleUnsupportedUserProvidedTargets(\n userProvidedTargetIsUnsupported: TargetFlags,\n userProvidedTargetName: UserProvidedTargetName,\n validFoundTargetName: ValidFoundTargetName\n) {\n if (userProvidedTargetIsUnsupported.build && validFoundTargetName.build) {\n await handleUnsupportedUserProvidedTargetsErrors(\n userProvidedTargetName.build,\n validFoundTargetName.build,\n 'build',\n 'build'\n );\n }\n\n if (userProvidedTargetIsUnsupported.serve && validFoundTargetName.serve) {\n await handleUnsupportedUserProvidedTargetsErrors(\n userProvidedTargetName.serve,\n validFoundTargetName.serve,\n 'serve',\n 'dev-server'\n );\n }\n\n if (userProvidedTargetIsUnsupported.test && validFoundTargetName.test) {\n await handleUnsupportedUserProvidedTargetsErrors(\n userProvidedTargetName.test,\n validFoundTargetName.test,\n 'test',\n 'test'\n );\n }\n}\n\nasync function handleUnsupportedUserProvidedTargetsErrors(\n userProvidedTargetName: string,\n validFoundTargetName: string,\n target: Target,\n executor: 'build' | 'dev-server' | 'test'\n) {\n logger.warn(\n `The custom ${target} target you provided (${userProvidedTargetName}) cannot be converted to use the @nx/vite:${executor} executor.\n However, we found the following ${target} target in your project that can be converted: ${validFoundTargetName}\n\n Please note that converting a potentially non-compatible project to use Vite.js may result in unexpected behavior. Always commit\n your changes before converting a project to use Vite.js, and test the converted project thoroughly before deploying it.\n `\n );\n const { Confirm } = require('enquirer');\n const prompt = new Confirm({\n name: 'question',\n message: `Should we convert the ${validFoundTargetName} target to use the @nx/vite:${executor} executor?`,\n initial: true,\n });\n const shouldConvert = await prompt.run();\n if (!shouldConvert) {\n throw new Error(\n `The ${target} target ${userProvidedTargetName} cannot be converted to use the @nx/vite:${executor} executor.\n Please try again, either by providing a different ${target} target or by not providing a target at all (Nx will\n convert the first one it finds, most probably this one: ${validFoundTargetName})\n\n Please note that converting a potentially non-compatible project to use Vite.js may result in unexpected behavior. Always commit\n your changes before converting a project to use Vite.js, and test the converted project thoroughly before deploying it.\n `\n );\n }\n}\n\nexport async function handleUnknownConfiguration(projectName: string) {\n if (process.env.NX_INTERACTIVE === 'false') {\n return;\n }\n\n logger.warn(\n `\n We could not find any configuration in project ${projectName} that \n indicates whether we can definitely convert to Vite.\n \n If you still want to convert your project to use Vite,\n please make sure to commit your changes before running this generator.\n `\n );\n\n const { Confirm } = require('enquirer');\n const prompt = new Confirm({\n name: 'question',\n message: `Should Nx convert your project to use Vite?`,\n initial: true,\n });\n const shouldConvert = await prompt.run();\n if (!shouldConvert) {\n throw new Error(`\n Nx could not verify that your project can be converted to use Vite.\n Please try again with a different project.\n `);\n }\n}\n\nfunction handleViteConfigFileExists(\n tree: Tree,\n viteConfigPath: string,\n options: ViteConfigFileOptions,\n buildOption: string,\n buildOutDir: string,\n imports: string[],\n plugins: string[],\n testOption: string,\n reportsDirectory: string,\n cacheDir: string,\n projectRoot: string,\n offsetFromRoot: string,\n projectAlreadyHasViteTargets?: TargetFlags\n) {\n if (\n projectAlreadyHasViteTargets?.build &&\n projectAlreadyHasViteTargets?.test\n ) {\n return;\n }\n\n if (process.env.NX_VERBOSE_LOGGING === 'true') {\n logger.info(\n `vite.config.ts already exists for project ${options.project}.`\n );\n }\n\n const buildOptionObject = options.includeLib\n ? {\n lib: {\n entry: 'src/index.ts',\n name: options.project,\n fileName: 'index',\n formats: ['es'],\n },\n rollupOptions: {\n external: options.rollupOptionsExternal ?? [],\n },\n outDir: buildOutDir,\n reportCompressedSize: true,\n commonjsOptions: {\n transformMixedEsModules: true,\n },\n }\n : {\n outDir: buildOutDir,\n reportCompressedSize: true,\n commonjsOptions: {\n transformMixedEsModules: true,\n },\n };\n\n const testOptionObject = {\n globals: true,\n environment: options.testEnvironment ?? 'jsdom',\n include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],\n reporters: ['default'],\n coverage: {\n reportsDirectory: reportsDirectory,\n provider: `'${options.coverageProvider ?? 'v8'}'`,\n },\n };\n\n const changed = ensureViteConfigIsCorrect(\n tree,\n viteConfigPath,\n buildOption,\n buildOptionObject,\n imports,\n plugins,\n testOption,\n testOptionObject,\n cacheDir,\n projectAlreadyHasViteTargets ?? {}\n );\n\n if (!changed) {\n logger.warn(\n `Make sure the following setting exists in your Vite configuration file (${viteConfigPath}):\n \n ${buildOption}\n \n `\n );\n }\n}\n\nfunction normalizedJoinPaths(...paths: string[]): string {\n const path = joinPathFragments(...paths);\n\n return path.startsWith('.') ? path : `./${path}`;\n}\n"],"names":["addBuildTarget","addOrChangeTestTarget","addPreviewTarget","addServeTarget","createOrEditViteConfig","deleteWebpackConfig","editTsConfig","findExistingJsBuildTargetInProject","getViteConfigPathForProject","handleUnknownConfiguration","handleUnsupportedUserProvidedTargets","moveAndEditIndexHtml","normalizeViteConfigFilePathWithTree","targets","output","supportedExecutors","build","unsupportedExecutors","target","executorName","executor","includes","supported","unsupported","tree","options","hasPlugin","nxJson","project","readNxJson","plugins","some","p","plugin","readProjectConfiguration","testTarget","reportsDirectory","joinPathFragments","offsetFromRoot","root","testOptions","Error","outputs","updateProjectConfiguration","addBuildTargetDefaults","isTsSolutionSetup","isUsingTsSolutionSetup","buildOptions","outputPath","defaultConfiguration","configurations","development","mode","production","buildTarget","hmr","serveTarget","previewOptions","proxyConfig","https","open","preview","dependsOn","projectConfig","tsconfigPath","find","exists","config","readJson","uiFramework","compilerOptions","jsx","allowJs","esModuleInterop","allowSyntheticDefaultImports","strict","module","forceConsistentCasingInFileNames","noImplicitOverride","noPropertyAccessFromIndexSignature","noImplicitReturns","noFallthroughCasesInSwitch","writeJson","projectRoot","webpackConfigFilePath","webpackConfigPath","delete","indexHtmlPath","mainPath","replace","indexHtmlContent","read","write","onlyVitest","projectAlreadyHasViteTargets","vitestFileName","extension","useEsmExtension","viteConfigPath","buildOutDir","buildOption","includeLib","rollupOptionsExternal","imports","push","testOption","includeVitest","testEnvironment","setupFile","inSourceTests","coverageProvider","defineOption","devServerOption","port","previewServerOption","previewPort","workerOption","cacheDir","normalizedJoinPaths","handleViteConfigFileExists","viteConfigContent","join","length","printOptions","filter","Boolean","configFile","undefined","projectName","Object","values","userProvidedTargetIsUnsupported","userProvidedTargetName","validFoundTargetName","handleUnsupportedUserProvidedTargetsErrors","serve","test","logger","warn","Confirm","require","prompt","name","message","initial","shouldConvert","run","process","env","NX_INTERACTIVE","NX_VERBOSE_LOGGING","info","buildOptionObject","lib","entry","fileName","formats","rollupOptions","external","outDir","reportCompressedSize","commonjsOptions","transformMixedEsModules","testOptionObject","globals","environment","include","reporters","coverage","provider","changed","ensureViteConfigIsCorrect","paths","path","startsWith"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../packages/vite/src/utils/ignore-vite-temp-files.ts"],"sourcesContent":["import { ensurePackage, readJson, stripIndents, type Tree } from '@nx/devkit';\nimport { nxVersion } from './versions';\n\nexport async function ignoreViteTempFiles(\n tree: Tree,\n projectRoot?: string | undefined\n): Promise<void> {\n addViteTempFilesToGitIgnore(tree);\n await ignoreViteTempFilesInEslintConfig(tree, projectRoot);\n}\n\nexport function addViteTempFilesToGitIgnore(tree: Tree): void {\n let gitIgnoreContents = tree.exists('.gitignore')\n ? tree.read('.gitignore', 'utf-8')\n : '';\n\n if (!/^vite\\.config\\.\\*\\.timestamp\\*$/m.test(gitIgnoreContents)) {\n gitIgnoreContents = stripIndents`${gitIgnoreContents}\n vite.config.*.timestamp*`;\n }\n if (!/^vitest\\.config\\.\\*\\.timestamp\\*$/m.test(gitIgnoreContents)) {\n gitIgnoreContents = stripIndents`${gitIgnoreContents}\n vitest.config.*.timestamp*`;\n }\n\n tree.write('.gitignore', gitIgnoreContents);\n}\n\nasync function ignoreViteTempFilesInEslintConfig(\n tree: Tree,\n projectRoot: string | undefined\n): Promise<void> {\n if (!isEslintInstalled(tree)) {\n return;\n }\n\n ensurePackage('@nx/eslint', nxVersion);\n const { addIgnoresToLintConfig, isEslintConfigSupported } = await import(\n '@nx/eslint/src/generators/utils/eslint-file'\n );\n if (!isEslintConfigSupported(tree)) {\n return;\n }\n\n const { useFlatConfig } = await import('@nx/eslint/src/utils/flat-config');\n const isUsingFlatConfig = useFlatConfig(tree);\n if (!projectRoot && !isUsingFlatConfig) {\n // root eslintrc files ignore all files and the root eslintrc files add\n // back all the project files, so we only add the ignores to the project\n // eslintrc files\n return;\n }\n\n // for flat config, we update the root config file\n const directory = isUsingFlatConfig ? '' : projectRoot ?? '';\n\n addIgnoresToLintConfig(tree, directory, [\n '**/vite.config.*.timestamp*',\n '**/vitest.config.*.timestamp*',\n ]);\n}\n\nexport function isEslintInstalled(tree: Tree): boolean {\n try {\n require('eslint');\n return true;\n } catch {}\n\n // it might not be installed yet, but it might be in the tree pending install\n const { devDependencies, dependencies } = tree.exists('package.json')\n ? readJson(tree, 'package.json')\n : {};\n\n return !!devDependencies?.['eslint'] || !!dependencies?.['eslint'];\n}\n"],"names":["addViteTempFilesToGitIgnore","ignoreViteTempFiles","isEslintInstalled","tree","projectRoot","ignoreViteTempFilesInEslintConfig","gitIgnoreContents","exists","read","test","stripIndents","write","ensurePackage","nxVersion","addIgnoresToLintConfig","isEslintConfigSupported","useFlatConfig","isUsingFlatConfig","directory","require","devDependencies","dependencies","readJson"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;IAWgBA,2BAA2B;eAA3BA;;IARMC,mBAAmB;eAAnBA;;IA2DNC,iBAAiB;eAAjBA;;;wBA9DiD;0BACvC;AAEnB,eAAeD,oBACpBE,IAAU,EACVC,WAAgC;IAEhCJ,4BAA4BG;IAC5B,MAAME,kCAAkCF,MAAMC;AAChD;AAEO,SAASJ,4BAA4BG,IAAU;IACpD,IAAIG,oBAAoBH,KAAKI,MAAM,CAAC,gBAChCJ,KAAKK,IAAI,CAAC,cAAc,WACxB;IAEJ,IAAI,CAAC,mCAAmCC,IAAI,CAACH,oBAAoB;QAC/DA,oBAAoBI,IAAAA,oBAAY,CAAA,CAAC,EAAEJ,kBAAkB;8BAC3B,CAAC;IAC7B;IACA,IAAI,CAAC,qCAAqCG,IAAI,CAACH,oBAAoB;QACjEA,oBAAoBI,IAAAA,oBAAY,CAAA,CAAC,EAAEJ,kBAAkB;gCACzB,CAAC;IAC/B;IAEAH,KAAKQ,KAAK,CAAC,cAAcL;AAC3B;AAEA,eAAeD,kCACbF,IAAU,EACVC,WAA+B;IAE/B,IAAI,CAACF,kBAAkBC,OAAO;QAC5B;IACF;IAEAS,IAAAA,qBAAa,EAAC,cAAcC,mBAAS;IACrC,MAAM,EAAEC,sBAAsB,EAAEC,uBAAuB,EAAE,GAAG,MAAM,2BAAA,QAChE;IAEF,IAAI,CAACA,wBAAwBZ,OAAO;QAClC;IACF;IAEA,MAAM,EAAEa,aAAa,EAAE,GAAG,MAAM,2BAAA,QAAO;IACvC,MAAMC,oBAAoBD,cAAcb;IACxC,IAAI,CAACC,eAAe,CAACa,mBAAmB;QACtC,uEAAuE;QACvE,wEAAwE;QACxE,iBAAiB;QACjB;IACF;IAEA,kDAAkD;IAClD,MAAMC,YAAYD,oBAAoB,KAAKb,sBAAAA,cAAe;IAE1DU,uBAAuBX,MAAMe,WAAW;QACtC;QACA;KACD;AACH;AAEO,SAAShB,kBAAkBC,IAAU;IAC1C,IAAI;QACFgB,QAAQ;QACR,OAAO;IACT,EAAE,UAAM,CAAC;IAET,6EAA6E;IAC7E,MAAM,EAAEC,eAAe,EAAEC,YAAY,EAAE,GAAGlB,KAAKI,MAAM,CAAC,kBAClDe,IAAAA,gBAAQ,EAACnB,MAAM,kBACf,CAAC;IAEL,OAAO,CAAC,EAACiB,mCAAAA,eAAiB,CAAC,SAAS,KAAI,CAAC,EAACC,gCAAAA,YAAc,CAAC,SAAS;AACpE"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../packages/vite/src/utils/nx-tsconfig-paths-find-file.ts"],"sourcesContent":["import { existsSync } from 'node:fs';\nimport { resolve, basename, dirname } from 'node:path';\n\nexport function findFile(\n path: string,\n extensions: string[],\n existsSyncImpl: typeof existsSync = existsSync\n): string {\n const queryLessPath = path.replace(/\\?\\S*$/, '');\n\n for (const ext of extensions) {\n const dir = dirname(path);\n // Support file extensions such as .css and .js in the import path.\n // While still allowing for '.suffix'\n const name = basename(queryLessPath, ext);\n\n const resolvedPath = resolve(dir, name + ext);\n if (existsSyncImpl(resolvedPath)) {\n return resolvedPath;\n }\n\n const resolvedIndexPath = resolve(path, `index${ext}`);\n if (existsSyncImpl(resolvedIndexPath)) {\n return resolvedIndexPath;\n }\n }\n}\n"],"names":["findFile","path","extensions","existsSyncImpl","existsSync","queryLessPath","replace","ext","dir","dirname","name","basename","resolvedPath","resolve","resolvedIndexPath"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";+BAGgBA;;;eAAAA;;;wBAHW;0BACgB;AAEpC,SAASA,SACdC,IAAY,EACZC,UAAoB,EACpBC,iBAAoCC,kBAAU;IAE9C,MAAMC,gBAAgBJ,KAAKK,OAAO,CAAC,UAAU;IAE7C,KAAK,MAAMC,OAAOL,WAAY;QAC5B,MAAMM,MAAMC,IAAAA,iBAAO,EAACR;QACpB,mEAAmE;QACnE,qCAAqC;QACrC,MAAMS,OAAOC,IAAAA,kBAAQ,EAACN,eAAeE;QAErC,MAAMK,eAAeC,IAAAA,iBAAO,EAACL,KAAKE,OAAOH;QACzC,IAAIJ,eAAeS,eAAe;YAChC,OAAOA;QACT;QAEA,MAAME,oBAAoBD,IAAAA,iBAAO,EAACZ,MAAM,CAAC,KAAK,EAAEM,IAAI,CAAC;QACrD,IAAIJ,eAAeW,oBAAoB;YACrC,OAAOA;QACT;IACF;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../packages/vite/src/utils/options-utils.ts"],"sourcesContent":["import {\n ExecutorContext,\n joinPathFragments,\n logger,\n parseTargetString,\n readTargetOptions,\n} from '@nx/devkit';\nimport { existsSync } from 'fs';\nimport { ViteDevServerExecutorOptions } from '../executors/dev-server/schema';\nimport { loadViteDynamicImport } from './executor-utils';\n\n/**\n * Returns the path to the vite config file or undefined when not found.\n */\nexport function normalizeViteConfigFilePath(\n contextRoot: string,\n projectRoot: string,\n configFile?: string\n): string | undefined {\n if (configFile) {\n const normalized = joinPathFragments(contextRoot, configFile);\n if (!existsSync(normalized)) {\n throw new Error(\n `Could not find vite config at provided path \"${normalized}\".`\n );\n }\n return normalized;\n }\n\n const allowsExt = ['js', 'mjs', 'ts', 'cjs', 'mts', 'cts'];\n\n for (const ext of allowsExt) {\n if (\n existsSync(\n joinPathFragments(contextRoot, projectRoot, `vite.config.${ext}`)\n )\n ) {\n return joinPathFragments(contextRoot, projectRoot, `vite.config.${ext}`);\n } else if (\n existsSync(\n joinPathFragments(contextRoot, projectRoot, `vitest.config.${ext}`)\n )\n ) {\n return joinPathFragments(\n contextRoot,\n projectRoot,\n `vitest.config.${ext}`\n );\n }\n }\n}\n\nexport function getProjectTsConfigPath(\n projectRoot: string\n): string | undefined {\n return existsSync(joinPathFragments(projectRoot, 'tsconfig.app.json'))\n ? joinPathFragments(projectRoot, 'tsconfig.app.json')\n : existsSync(joinPathFragments(projectRoot, 'tsconfig.lib.json'))\n ? joinPathFragments(projectRoot, 'tsconfig.lib.json')\n : existsSync(joinPathFragments(projectRoot, 'tsconfig.json'))\n ? joinPathFragments(projectRoot, 'tsconfig.json')\n : undefined;\n}\n\n/**\n * Returns the path to the proxy configuration file or undefined when not found.\n */\nexport function getViteServerProxyConfigPath(\n nxProxyConfig: string | undefined,\n context: ExecutorContext\n): string | undefined {\n if (nxProxyConfig) {\n const projectRoot =\n context.projectsConfigurations.projects[context.projectName].root;\n\n const proxyConfigPath = nxProxyConfig\n ? joinPathFragments(context.root, nxProxyConfig)\n : joinPathFragments(projectRoot, 'proxy.conf.json');\n\n if (existsSync(proxyConfigPath)) {\n return proxyConfigPath;\n }\n }\n}\n\n/**\n * Builds the options for the vite dev server.\n */\nexport async function getViteServerOptions(\n options: ViteDevServerExecutorOptions,\n context: ExecutorContext\n): Promise<Record<string, unknown>> {\n // returns vite ServerOptions\n // Allows ESM to be required in CJS modules. Vite will be published as ESM in the future.\n const { searchForWorkspaceRoot } = await loadViteDynamicImport();\n const projectRoot =\n context.projectsConfigurations.projects[context.projectName].root;\n const serverOptions: Record<string, unknown> = {\n fs: {\n allow: [\n searchForWorkspaceRoot(joinPathFragments(projectRoot)),\n joinPathFragments(context.root, 'node_modules/vite'),\n ],\n },\n };\n\n const proxyConfigPath = getViteServerProxyConfigPath(\n options.proxyConfig,\n context\n );\n if (proxyConfigPath) {\n logger.info(`Loading proxy configuration from: ${proxyConfigPath}`);\n serverOptions.proxy = require(proxyConfigPath);\n }\n\n return serverOptions;\n}\n\nexport function getProxyConfig(\n context: ExecutorContext,\n proxyConfig?: string\n): Record<string, string | unknown> | undefined {\n const proxyConfigPath = getViteServerProxyConfigPath(proxyConfig, context);\n if (proxyConfigPath) {\n logger.info(`Loading proxy configuration from: ${proxyConfigPath}`);\n return require(proxyConfigPath);\n }\n return;\n}\n\nexport function getNxTargetOptions(target: string, context: ExecutorContext) {\n const targetObj = parseTargetString(target, context);\n return readTargetOptions(targetObj, context);\n}\n"],"names":["getNxTargetOptions","getProjectTsConfigPath","getProxyConfig","getViteServerOptions","getViteServerProxyConfigPath","normalizeViteConfigFilePath","contextRoot","projectRoot","configFile","normalized","joinPathFragments","existsSync","Error","allowsExt","ext","undefined","nxProxyConfig","context","projectsConfigurations","projects","projectName","root","proxyConfigPath","options","searchForWorkspaceRoot","loadViteDynamicImport","serverOptions","fs","allow","proxyConfig","logger","info","proxy","require","target","targetObj","parseTargetString","readTargetOptions"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../../packages/vite/src/utils/test-files/test-vite-configs.ts"],"sourcesContent":["export const noBuildOptions = `\n /// <reference types=\"vitest\" />\n import { defineConfig } from 'vite';\n import react from '@vitejs/plugin-react';\n import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';\n\n export default defineConfig({\n cacheDir: '../../node_modules/.vitest',\n plugins: [\n react(),\n nxViteTsPaths(),\n ],\n\n test: {\n globals: true,\n environment: 'jsdom',\n include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],\n },\n\n });\n `;\n\nexport const someBuildOptions = `\n /// <reference types=\"vitest\" />\n import { defineConfig } from 'vite';\n import react from '@vitejs/plugin-react';\n import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';\n\n export default defineConfig({\n cacheDir: '../../node_modules/.vitest',\n plugins: [\n react(),\n nxViteTsPaths(),\n ],\n\n test: {\n globals: true,\n environment: 'jsdom',\n include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],\n },\n\n build: {\n my: 'option',\n }\n\n });\n `;\n\nexport const noContentDefineConfig = `\n /// <reference types=\"vitest\" />\n import { defineConfig } from 'vite';\n import react from '@vitejs/plugin-react';\n import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';\n\n export default defineConfig({});\n `;\n\nexport const conditionalConfig = `\n /// <reference types=\"vitest\" />\n import { defineConfig } from 'vite';\n export default defineConfig(({ command, mode, ssrBuild }) => {\n if (command === 'serve') {\n return {\n port: 4200,\n host: 'localhost',\n }\n } else {\n // command === 'build'\n return {\n my: 'option',\n }\n }\n })\n `;\n\nexport const configNoDefineConfig = `\n /// <reference types=\"vitest\" />\n import { defineConfig } from 'vite';\n import react from '@vitejs/plugin-react';\n import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';\n\n export default {\n plugins: [\n react(),\n nxViteTsPaths(),\n ],\n };\n `;\n\nexport const noBuildOptionsHasTestOption = `\n /// <reference types=\"vitest\" />\n import { defineConfig } from 'vite';\n import react from '@vitejs/plugin-react';\n import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';\n\n export default defineConfig({\n \n cacheDir: '../../node_modules/.vitest',\n plugins: [\n react(),\n nxViteTsPaths(),\n ],\n\n test: {\n globals: true,\n environment: 'jsdom',\n include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],\n },\n\n });\n `;\n\nexport const someBuildOptionsSomeTestOption = `\n /// <reference types=\"vitest\" />\n import { defineConfig } from 'vite';\n import react from '@vitejs/plugin-react';\n import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';\n\n export default defineConfig({\n plugins: [\n react(),\n nxViteTsPaths(),\n ],\n\n test: {\n my: 'option',\n },\n\n build: {\n my: 'option',\n }\n\n });\n `;\n\nexport const hasEverything = `\n /// <reference types=\"vitest\" />\n import { defineConfig } from 'vite';\n import react from '@vitejs/plugin-react';\n import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';\n import dts from 'vite-plugin-dts';\n import { joinPathFragments } from '@nx/devkit';\n\n export default defineConfig({\n cacheDir: '../../node_modules/.vitest',\n plugins: [\n dts({ entryRoot: 'src', tsConfigFilePath: joinPathFragments(__dirname, 'tsconfig.lib.json'), skipDiagnostics: true }),\n react(),\n nxViteTsPaths(),\n ],\n \n // Configuration for building your library.\n // See: https://vitejs.dev/guide/build.html#library-mode\n build: {\n lib: {\n // Could also be a dictionary or array of multiple entry points.\n entry: 'src/index.ts',\n name: 'pure-libs-react-vite',\n fileName: 'index',\n // Change this to the formats you want to support.\n // Don't forget to update your package.json as well.\n formats: ['es'],\n },\n rollupOptions: {\n // External packages that should not be bundled into your library.\n external: ['react', 'react-dom', 'react/jsx-runtime'],\n },\n },\n \n test: {\n globals: true,\n environment: 'jsdom',\n include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],\n },\n });\n `;\n\nexport const buildOption = `\n // Configuration for building your library.\n // See: https://vitejs.dev/guide/build.html#library-mode\n build: {\n lib: {\n // Could also be a dictionary or array of multiple entry points.\n entry: 'src/index.ts',\n name: 'my-app',\n fileName: 'index',\n // Change this to the formats you want to support.\n // Don't forget to update your package.json as well.\n formats: ['es']\n },\n rollupOptions: {\n // External packages that should not be bundled into your library.\n external: ['react', 'react-dom', 'react/jsx-runtime']\n }\n },`;\nexport const buildOptionObject = {\n lib: {\n entry: 'src/index.ts',\n name: 'my-app',\n fileName: 'index',\n formats: ['es'],\n },\n rollupOptions: {\n external: ['react', 'react-dom', 'react/jsx-runtime'],\n },\n};\n\nexport const testOption = `test: {\n globals: true,\n environment: 'jsdom',\n include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],\n },`;\n\nexport const testOptionObject = {\n globals: true,\n environment: 'jsdom',\n include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],\n};\n\nexport const imports = [\n `import dts from 'vite-plugin-dts'`,\n `import { joinPathFragments } from '@nx/devkit'`,\n];\n\nexport const plugins = [`react()`, `nxViteTsPaths()`];\n"],"names":["buildOption","buildOptionObject","conditionalConfig","configNoDefineConfig","hasEverything","imports","noBuildOptions","noBuildOptionsHasTestOption","noContentDefineConfig","plugins","someBuildOptions","someBuildOptionsSomeTestOption","testOption","testOptionObject","lib","entry","name","fileName","formats","rollupOptions","external","globals","environment","include"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;IAiLaA,WAAW;eAAXA;;IAkBAC,iBAAiB;eAAjBA;;IA1IAC,iBAAiB;eAAjBA;;IAkBAC,oBAAoB;eAApBA;;IA4DAC,aAAa;eAAbA;;IAoFAC,OAAO;eAAPA;;IA3NAC,cAAc;eAAdA;;IAyFAC,2BAA2B;eAA3BA;;IAzCAC,qBAAqB;eAArBA;;IAgLAC,OAAO;eAAPA;;IA1MAC,gBAAgB;eAAhBA;;IA0FAC,8BAA8B;eAA9BA;;IA+FAC,UAAU;eAAVA;;IAMAC,gBAAgB;eAAhBA;;;AArNN,MAAMP,iBAAiB,CAAC;;;;;;;;;;;;;;;;;;;;IAoB3B,CAAC;AAEE,MAAMI,mBAAmB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;IAwB7B,CAAC;AAEE,MAAMF,wBAAwB,CAAC;;;;;;;IAOlC,CAAC;AAEE,MAAMN,oBAAoB,CAAC;;;;;;;;;;;;;;;;IAgB9B,CAAC;AAEE,MAAMC,uBAAuB,CAAC;;;;;;;;;;;;IAYjC,CAAC;AAEE,MAAMI,8BAA8B,CAAC;;;;;;;;;;;;;;;;;;;;;IAqBxC,CAAC;AAEE,MAAMI,iCAAiC,CAAC;;;;;;;;;;;;;;;;;;;;;IAqB3C,CAAC;AAEE,MAAMP,gBAAgB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAwC1B,CAAC;AAEE,MAAMJ,cAAc,CAAC;;;;;;;;;;;;;;;;;MAiBtB,CAAC;AACA,MAAMC,oBAAoB;IAC/Ba,KAAK;QACHC,OAAO;QACPC,MAAM;QACNC,UAAU;QACVC,SAAS;YAAC;SAAK;IACjB;IACAC,eAAe;QACbC,UAAU;YAAC;YAAS;YAAa;SAAoB;IACvD;AACF;AAEO,MAAMR,aAAa,CAAC;;;;MAIrB,CAAC;AAEA,MAAMC,mBAAmB;IAC9BQ,SAAS;IACTC,aAAa;IACbC,SAAS;QAAC;KAAuD;AACnE;AAEO,MAAMlB,UAAU;IACrB,CAAC,iCAAiC,CAAC;IACnC,CAAC,8CAA8C,CAAC;CACjD;AAEM,MAAMI,UAAU;IAAC,CAAC,OAAO,CAAC;IAAE,CAAC,eAAe,CAAC;CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../packages/vite/src/utils/test-utils.ts"],"sourcesContent":["import { Tree, writeJson } from '@nx/devkit';\nimport * as reactViteConfig from './test-files/react-vite-project.config.json';\nimport * as angularAppConfig from './test-files/angular-project.config.json';\nimport * as randomAppConfig from './test-files/unknown-project.config.json';\nimport * as mixedAppConfig from './test-files/react-mixed-project.config.json';\nimport * as reactLibNBJest from './test-files/react-lib-non-buildable-jest.json';\nimport * as reactLibNBVitest from './test-files/react-lib-non-buildable-vitest.json';\n\nexport function mockViteReactAppGenerator(tree: Tree): Tree {\n const appName = 'my-test-react-vite-app';\n\n tree.write(\n `apps/${appName}/src/main.tsx`,\n `import ReactDOM from 'react-dom';\\n`\n );\n\n tree.write(\n `apps/${appName}/tsconfig.json`,\n `{\n \"compilerOptions\": {\n \"jsx\": \"react-jsx\",\n \"allowJs\": false,\n \"esModuleInterop\": false,\n \"allowSyntheticDefaultImports\": true,\n \"strict\": true,\n \"types\": [\"vite/client\"]\n },\n \"files\": [],\n \"include\": [],\n \"references\": [\n {\n \"path\": \"./tsconfig.app.json\"\n },\n {\n \"path\": \"./tsconfig.spec.json\"\n }\n ],\n \"extends\": \"../../tsconfig.base.json\"\n }\n `\n );\n tree.write(\n `apps/${appName}/tsconfig.app.json`,\n `{\n \"extends\": \"./tsconfig.json\",\n \"compilerOptions\": {\n \"outDir\": \"../../dist/out-tsc\",\n \"types\": [\"node\"]\n },\n \"files\": [\n \"../../node_modules/@nx/react/typings/cssmodule.d.ts\",\n \"../../node_modules/@nx/react/typings/image.d.ts\"\n ],\n \"exclude\": [\n \"src/**/*.spec.ts\",\n \"src/**/*.test.ts\",\n \"src/**/*.spec.tsx\",\n \"src/**/*.test.tsx\",\n \"src/**/*.spec.js\",\n \"src/**/*.test.js\",\n \"src/**/*.spec.jsx\",\n \"src/**/*.test.jsx\"\n ],\n \"include\": [\"src/**/*.js\", \"src/**/*.jsx\", \"src/**/*.ts\", \"src/**/*.tsx\"]\n } \n `\n );\n\n tree.write(\n `apps/${appName}/index.html`,\n `<!DOCTYPE html>\n <html lang=\"en\">\n <head>\n <meta charset=\"utf-8\" />\n <title>Rv1</title>\n <base href=\"/\" />\n \n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n <link rel=\"icon\" type=\"image/x-icon\" href=\"/favicon.ico\" />\n <link rel=\"stylesheet\" href=\"/src/styles.css\" />\n </head>\n <body>\n <div id=\"root\"></div>\n <script type=\"module\" src=\"/src/main.tsx\"></script>\n </body>\n </html>`\n );\n\n tree.write(\n `apps/${appName}/vite.config.ts`,\n ` /// <reference types=\"vitest\" />\n import { defineConfig } from 'vite';\n import react from '@vitejs/plugin-react';\n import tsconfigPaths from 'vite-tsconfig-paths';\n \n export default defineConfig({\n\n cacheDir: '../../node_modules/.vitest',\n server: {\n port: 4200,\n host: 'localhost',\n },\n plugins: [\n react(),\n tsconfigPaths({\n root: '../../',\n projects: ['tsconfig.base.json'],\n }),\n ],\n \n test: {\n globals: true,\n environment: 'jsdom',\n include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],\n },\n });\n `\n );\n\n writeJson(tree, 'workspace.json', {\n projects: {\n 'my-test-react-vite-app': {\n ...reactViteConfig,\n root: `apps/${appName}`,\n projectType: 'application',\n },\n },\n });\n\n writeJson(tree, `apps/${appName}/project.json`, {\n ...reactViteConfig,\n root: `apps/${appName}`,\n projectType: 'application',\n });\n\n return tree;\n}\n\nexport function mockReactAppGenerator(tree: Tree, userAppName?: string): Tree {\n const appName = userAppName ?? 'my-test-react-app';\n\n tree.write(\n `apps/${appName}/src/main.tsx`,\n `import ReactDOM from 'react-dom';\\n`\n );\n\n tree.write(`apps/${appName}/webpack.config.ts`, ``);\n\n tree.write(\n `apps/${appName}/tsconfig.json`,\n `{\n \"extends\": \"../../tsconfig.base.json\",\n \"compilerOptions\": {\n \"jsx\": \"react-jsx\",\n \"allowJs\": true,\n \"esModuleInterop\": true,\n \"allowSyntheticDefaultImports\": true,\n \"forceConsistentCasingInFileNames\": true,\n \"strict\": true,\n \"noImplicitOverride\": true,\n \"noPropertyAccessFromIndexSignature\": true,\n \"noImplicitReturns\": true,\n \"noFallthroughCasesInSwitch\": true\n },\n \"files\": [],\n \"include\": [],\n \"references\": [\n {\n \"path\": \"./tsconfig.app.json\"\n },\n {\n \"path\": \"./tsconfig.spec.json\"\n }\n ]\n }\n `\n );\n tree.write(\n `apps/${appName}/tsconfig.app.json`,\n `{\n \"extends\": \"./tsconfig.json\",\n \"compilerOptions\": {\n \"outDir\": \"../../dist/out-tsc\"\n },\n \"files\": [\n \"../../node_modules/@nx/react/typings/cssmodule.d.ts\",\n \"../../node_modules/@nx/react/typings/image.d.ts\"\n ],\n \"exclude\": [\n \"jest.config.ts\",\n \"**/*.spec.ts\",\n \"**/*.test.ts\",\n \"**/*.spec.tsx\",\n \"**/*.test.tsx\",\n \"**/*.spec.js\",\n \"**/*.test.js\",\n \"**/*.spec.jsx\",\n \"**/*.test.jsx\"\n ],\n \"include\": [\"**/*.js\", \"**/*.jsx\", \"**/*.ts\", \"**/*.tsx\"]\n } \n `\n );\n\n tree.write(\n `apps/${appName}/src/index.html`,\n `<!DOCTYPE html>\n <html lang=\"en\">\n <head>\n <meta charset=\"utf-8\" />\n <title>My Test React App</title>\n <base href=\"/\" />\n \n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\" />\n </head>\n <body>\n <div id=\"root\"></div>\n </body>\n </html>`\n );\n\n writeJson(tree, `apps/${appName}/project.json`, {\n root: `apps/${appName}`,\n projectType: 'application',\n });\n\n return tree;\n}\nexport function mockReactMixedAppGenerator(tree: Tree): Tree {\n const appName = 'my-test-mixed-react-app';\n\n tree.write(\n `apps/${appName}/src/main.tsx`,\n `import ReactDOM from 'react-dom';\\n`\n );\n\n tree.write(\n `apps/${appName}/tsconfig.json`,\n `{\n \"extends\": \"../../tsconfig.base.json\",\n \"compilerOptions\": {\n \"jsx\": \"react-jsx\",\n \"allowJs\": true,\n \"esModuleInterop\": true,\n \"allowSyntheticDefaultImports\": true,\n \"forceConsistentCasingInFileNames\": true,\n \"strict\": true,\n \"noImplicitOverride\": true,\n \"noPropertyAccessFromIndexSignature\": true,\n \"noImplicitReturns\": true,\n \"noFallthroughCasesInSwitch\": true\n },\n \"files\": [],\n \"include\": [],\n \"references\": [\n {\n \"path\": \"./tsconfig.app.json\"\n },\n {\n \"path\": \"./tsconfig.spec.json\"\n }\n ]\n }\n `\n );\n tree.write(\n `apps/${appName}/tsconfig.app.json`,\n `{\n \"extends\": \"./tsconfig.json\",\n \"compilerOptions\": {\n \"outDir\": \"../../dist/out-tsc\"\n },\n \"files\": [\n \"../../node_modules/@nx/react/typings/cssmodule.d.ts\",\n \"../../node_modules/@nx/react/typings/image.d.ts\"\n ],\n \"exclude\": [\n \"jest.config.ts\",\n \"**/*.spec.ts\",\n \"**/*.test.ts\",\n \"**/*.spec.tsx\",\n \"**/*.test.tsx\",\n \"**/*.spec.js\",\n \"**/*.test.js\",\n \"**/*.spec.jsx\",\n \"**/*.test.jsx\"\n ],\n \"include\": [\"**/*.js\", \"**/*.jsx\", \"**/*.ts\", \"**/*.tsx\"]\n } \n `\n );\n\n tree.write(\n `apps/${appName}/src/index.html`,\n `<!DOCTYPE html>\n <html lang=\"en\">\n <head>\n <meta charset=\"utf-8\" />\n <title>My Test React App</title>\n <base href=\"/\" />\n \n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\" />\n </head>\n <body>\n <div id=\"root\"></div>\n </body>\n </html>`\n );\n\n writeJson(tree, 'workspace.json', {\n projects: {\n 'my-test-mixed-react-app': {\n ...mixedAppConfig,\n root: `apps/${appName}`,\n projectType: 'application',\n },\n },\n });\n\n writeJson(tree, `apps/${appName}/project.json`, {\n ...mixedAppConfig,\n root: `apps/${appName}`,\n projectType: 'application',\n });\n\n return tree;\n}\n\nexport function mockWebAppGenerator(tree: Tree): Tree {\n const appName = 'my-test-web-app';\n\n tree.write(`apps/${appName}/src/main.ts`, `import './app/app.element.ts';`);\n\n tree.write(\n `apps/${appName}/tsconfig.json`,\n `{\n \"extends\": \"../../tsconfig.base.json\",\n \"files\": [],\n \"include\": [],\n \"references\": [\n {\n \"path\": \"./tsconfig.app.json\"\n },\n {\n \"path\": \"./tsconfig.spec.json\"\n }\n ]\n } \n `\n );\n\n tree.write(`apps/${appName}/webpack.config.ts`, ``);\n\n tree.write(\n `apps/${appName}/src/index.html`,\n `<!DOCTYPE html>\n <html lang=\"en\">\n <head>\n <meta charset=\"utf-8\" />\n <title>WebappPure</title>\n <base href=\"/\" />\n \n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\" />\n </head>\n <body>\n <workspace-root></workspace-root>\n </body>\n </html>\n `\n );\n\n writeJson(tree, 'workspace.json', {\n projects: {\n 'my-test-web-app': {\n root: `apps/${appName}`,\n projectType: 'application',\n },\n },\n });\n\n writeJson(tree, `apps/${appName}/project.json`, {\n root: `apps/${appName}`,\n projectType: 'application',\n });\n return tree;\n}\n\nexport function mockAngularAppGenerator(tree: Tree): Tree {\n const appName = 'my-test-angular-app';\n\n writeJson(tree, 'workspace.json', {\n projects: {\n 'my-test-angular-app': {\n ...angularAppConfig,\n root: `apps/${appName}`,\n projectType: 'application',\n },\n },\n });\n\n writeJson(tree, `apps/${appName}/project.json`, {\n ...angularAppConfig,\n root: `apps/${appName}`,\n projectType: 'application',\n });\n\n writeJson(tree, `apps/${appName}/tsconfig.json`, {\n compilerOptions: {\n target: 'es2022',\n esModuleInterop: true,\n forceConsistentCasingInFileNames: true,\n strict: true,\n noImplicitOverride: true,\n noPropertyAccessFromIndexSignature: true,\n noImplicitReturns: true,\n noFallthroughCasesInSwitch: true,\n },\n files: [],\n include: [],\n references: [\n {\n path: './tsconfig.editor.json',\n },\n {\n path: './tsconfig.app.json',\n },\n {\n path: './tsconfig.spec.json',\n },\n ],\n extends: '../../tsconfig.base.json',\n angularCompilerOptions: {\n enableI18nLegacyMessageIdFormat: false,\n strictInjectionParameters: true,\n strictInputAccessModifiers: true,\n strictTemplates: true,\n },\n });\n\n writeJson(tree, `apps/${appName}/tsconfig.app.json`, {\n extends: './tsconfig.json',\n compilerOptions: {\n outDir: '../../dist/out-tsc',\n types: [],\n },\n files: ['src/main.ts'],\n include: ['src/**/*.d.ts'],\n exclude: ['jest.config.ts', 'src/**/*.test.ts', 'src/**/*.spec.ts'],\n });\n\n writeJson(tree, `apps/${appName}/tsconfig.spec.json`, {\n extends: './tsconfig.json',\n compilerOptions: {\n outDir: '../../dist/out-tsc',\n module: 'commonjs',\n target: 'es2016',\n types: ['jest', 'node'],\n },\n files: ['src/test-setup.ts'],\n include: [\n 'jest.config.ts',\n 'src/**/*.test.ts',\n 'src/**/*.spec.ts',\n 'src/**/*.d.ts',\n ],\n });\n\n return tree;\n}\n\nexport function mockUnknownAppGenerator(tree: Tree): Tree {\n const appName = 'my-test-random-app';\n\n writeJson(tree, 'workspace.json', {\n projects: {\n 'my-test-random-app': {\n ...randomAppConfig,\n root: `apps/${appName}`,\n projectType: 'application',\n },\n },\n });\n\n writeJson(tree, `apps/${appName}/project.json`, {\n ...randomAppConfig,\n root: `apps/${appName}`,\n projectType: 'application',\n });\n\n return tree;\n}\n\nexport function mockReactLibNonBuildableJestTestRunnerGenerator(\n tree: Tree\n): Tree {\n const libName = 'react-lib-nonb-jest';\n\n tree.write(`libs/${libName}/src/index.ts`, ``);\n\n tree.write(\n `libs/${libName}/tsconfig.json`,\n `{\n \"compilerOptions\": {\n \"jsx\": \"react-jsx\",\n \"allowJs\": false,\n \"esModuleInterop\": false,\n \"allowSyntheticDefaultImports\": true,\n \"strict\": true\n },\n \"files\": [],\n \"include\": [],\n \"references\": [\n {\n \"path\": \"./tsconfig.lib.json\"\n },\n {\n \"path\": \"./tsconfig.spec.json\"\n }\n ],\n \"extends\": \"../../tsconfig.base.json\"\n }`\n );\n tree.write(\n `libs/${libName}/tsconfig.lib.json`,\n `{\n \"extends\": \"./tsconfig.json\",\n \"compilerOptions\": {\n \"outDir\": \"../../dist/out-tsc\",\n \"types\": [\"node\"]\n },\n \"files\": [\n \"../../node_modules/@nx/react/typings/cssmodule.d.ts\",\n \"../../node_modules/@nx/react/typings/image.d.ts\"\n ],\n \"exclude\": [\n \"jest.config.ts\",\n \"src/**/*.spec.ts\",\n \"src/**/*.test.ts\",\n \"src/**/*.spec.tsx\",\n \"src/**/*.test.tsx\",\n \"src/**/*.spec.js\",\n \"src/**/*.test.js\",\n \"src/**/*.spec.jsx\",\n \"src/**/*.test.jsx\"\n ],\n \"include\": [\"src/**/*.js\", \"src/**/*.jsx\", \"src/**/*.ts\", \"src/**/*.tsx\"]\n }`\n );\n\n writeJson(tree, 'workspace.json', {\n projects: {\n [`${libName}`]: {\n ...reactLibNBJest,\n root: `libs/${libName}`,\n projectType: 'library',\n },\n },\n });\n\n writeJson(tree, `libs/${libName}/project.json`, {\n ...reactLibNBJest,\n root: `libs/${libName}`,\n projectType: 'library',\n });\n\n return tree;\n}\n\nexport function mockReactLibNonBuildableVitestRunnerGenerator(\n tree: Tree\n): Tree {\n const libName = 'react-lib-nonb-vitest';\n\n tree.write(`libs/${libName}/src/index.ts`, ``);\n\n tree.write(\n `libs/${libName}/vite.config.ts`,\n `/// <reference types=\"vitest\" />\n import { defineConfig } from 'vite';\n import react from '@vitejs/plugin-react';\n import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';\n\n export default defineConfig({\n\n cacheDir: '../../node_modules/.vitest',\n plugins: [\n nxViteTsPaths(),\n react(),\n ],\n\n test: {\n globals: true,\n environment: 'jsdom',\n include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],\n },\n });\n `\n );\n\n tree.write(\n `libs/${libName}/tsconfig.json`,\n `{\n \"compilerOptions\": {\n \"jsx\": \"react-jsx\",\n \"allowJs\": false,\n \"esModuleInterop\": false,\n \"allowSyntheticDefaultImports\": true,\n \"strict\": true\n },\n \"files\": [],\n \"include\": [],\n \"references\": [\n {\n \"path\": \"./tsconfig.lib.json\"\n },\n {\n \"path\": \"./tsconfig.spec.json\"\n }\n ],\n \"extends\": \"../../tsconfig.base.json\"\n }`\n );\n tree.write(\n `libs/${libName}/tsconfig.lib.json`,\n `{\n \"extends\": \"./tsconfig.json\",\n \"compilerOptions\": {\n \"outDir\": \"../../dist/out-tsc\",\n \"types\": [\"node\"]\n },\n \"files\": [\n \"../../node_modules/@nx/react/typings/cssmodule.d.ts\",\n \"../../node_modules/@nx/react/typings/image.d.ts\"\n ],\n \"exclude\": [\n \"**/*.spec.ts\",\n \"**/*.test.ts\",\n \"**/*.spec.tsx\",\n \"**/*.test.tsx\",\n \"**/*.spec.js\",\n \"**/*.test.js\",\n \"**/*.spec.jsx\",\n \"**/*.test.jsx\"\n ],\n \"include\": [\"**/*.js\", \"**/*.jsx\", \"**/*.ts\", \"**/*.tsx\"]\n }`\n );\n\n writeJson(tree, 'workspace.json', {\n projects: {\n [`${libName}`]: {\n ...reactLibNBVitest,\n root: `libs/${libName}`,\n projectType: 'library',\n },\n },\n });\n\n writeJson(tree, `libs/${libName}/project.json`, {\n ...reactLibNBVitest,\n root: `libs/${libName}`,\n projectType: 'library',\n });\n\n return tree;\n}\n"],"names":["mockAngularAppGenerator","mockReactAppGenerator","mockReactLibNonBuildableJestTestRunnerGenerator","mockReactLibNonBuildableVitestRunnerGenerator","mockReactMixedAppGenerator","mockUnknownAppGenerator","mockViteReactAppGenerator","mockWebAppGenerator","tree","appName","write","writeJson","projects","reactViteConfig","root","projectType","userAppName","mixedAppConfig","angularAppConfig","compilerOptions","target","esModuleInterop","forceConsistentCasingInFileNames","strict","noImplicitOverride","noPropertyAccessFromIndexSignature","noImplicitReturns","noFallthroughCasesInSwitch","files","include","references","path","extends","angularCompilerOptions","enableI18nLegacyMessageIdFormat","strictInjectionParameters","strictInputAccessModifiers","strictTemplates","outDir","types","exclude","module","randomAppConfig","libName","reactLibNBJest","reactLibNBVitest"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../packages/vite/src/utils/version-utils.ts"],"sourcesContent":["import type { Tree } from 'nx/src/generators/tree';\nimport {\n vitestVersion,\n vitestV1Version,\n vitestCoverageV8Version,\n vitestV1CoverageV8Version,\n vitestCoverageIstanbulVersion,\n vitestV1CoverageIstanbulVersion,\n} from './versions';\nimport { clean, coerce, major } from 'semver';\nimport { readJson, createProjectGraphAsync } from '@nx/devkit';\n\ntype VitestDependenciesVersions = {\n vitest: string;\n vitestCoverageV8: string;\n vitestCoverageIstanbul: string;\n};\n\nexport async function getVitestDependenciesVersionsToInstall(\n tree: Tree\n): Promise<VitestDependenciesVersions> {\n if (await isVitestV1(tree)) {\n return {\n vitest: vitestV1Version,\n vitestCoverageV8: vitestV1CoverageV8Version,\n vitestCoverageIstanbul: vitestV1CoverageIstanbulVersion,\n };\n } else {\n return {\n vitest: vitestVersion,\n vitestCoverageV8: vitestCoverageV8Version,\n vitestCoverageIstanbul: vitestCoverageIstanbulVersion,\n };\n }\n}\n\nexport async function isVitestV1(tree: Tree) {\n let installedVitestVersion = await getInstalledVitestVersionFromGraph();\n if (!installedVitestVersion) {\n installedVitestVersion = getInstalledVitestVersion(tree);\n }\n return major(installedVitestVersion) === 1;\n}\n\nexport function getInstalledVitestVersion(tree: Tree): string {\n const pkgJson = readJson(tree, 'package.json');\n const installedVitestVersion =\n pkgJson.dependencies && pkgJson.dependencies['vitest'];\n\n if (\n !installedVitestVersion ||\n installedVitestVersion === 'latest' ||\n installedVitestVersion === 'beta'\n ) {\n return clean(vitestVersion) ?? coerce(vitestVersion).version;\n }\n\n return (\n clean(installedVitestVersion) ?? coerce(installedVitestVersion).version\n );\n}\n\nexport async function getInstalledVitestVersionFromGraph() {\n const graph = await createProjectGraphAsync();\n const vitestDep = graph.externalNodes?.['npm:vitest'];\n if (!vitestDep) {\n return undefined;\n }\n return (\n clean(vitestDep.data.version) ?? coerce(vitestDep.data.version).version\n );\n}\n"],"names":["getInstalledVitestVersion","getInstalledVitestVersionFromGraph","getVitestDependenciesVersionsToInstall","isVitestV1","tree","vitest","vitestV1Version","vitestCoverageV8","vitestV1CoverageV8Version","vitestCoverageIstanbul","vitestV1CoverageIstanbulVersion","vitestVersion","vitestCoverageV8Version","vitestCoverageIstanbulVersion","installedVitestVersion","major","pkgJson","readJson","dependencies","clean","coerce","version","graph","createProjectGraphAsync","vitestDep","externalNodes","undefined","data"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;IA4CgBA,yBAAyB;eAAzBA;;IAkBMC,kCAAkC;eAAlCA;;IA5CAC,sCAAsC;eAAtCA;;IAkBAC,UAAU;eAAVA;;;0BA5Bf;wBAC8B;wBACa;AAQ3C,eAAeD,uCACpBE,IAAU;IAEV,IAAI,MAAMD,WAAWC,OAAO;QAC1B,OAAO;YACLC,QAAQC,yBAAe;YACvBC,kBAAkBC,mCAAyB;YAC3CC,wBAAwBC,yCAA+B;QACzD;IACF,OAAO;QACL,OAAO;YACLL,QAAQM,uBAAa;YACrBJ,kBAAkBK,iCAAuB;YACzCH,wBAAwBI,uCAA6B;QACvD;IACF;AACF;AAEO,eAAeV,WAAWC,IAAU;IACzC,IAAIU,yBAAyB,MAAMb;IACnC,IAAI,CAACa,wBAAwB;QAC3BA,yBAAyBd,0BAA0BI;IACrD;IACA,OAAOW,IAAAA,aAAK,EAACD,4BAA4B;AAC3C;AAEO,SAASd,0BAA0BI,IAAU;IAClD,MAAMY,UAAUC,IAAAA,gBAAQ,EAACb,MAAM;IAC/B,MAAMU,yBACJE,QAAQE,YAAY,IAAIF,QAAQE,YAAY,CAAC,SAAS;IAExD,IACE,CAACJ,0BACDA,2BAA2B,YAC3BA,2BAA2B,QAC3B;YACOK;QAAP,OAAOA,CAAAA,SAAAA,IAAAA,aAAK,EAACR,uBAAa,aAAnBQ,SAAwBC,IAAAA,cAAM,EAACT,uBAAa,EAAEU,OAAO;IAC9D;QAGEF;IADF,OACEA,CAAAA,UAAAA,IAAAA,aAAK,EAACL,mCAANK,UAAiCC,IAAAA,cAAM,EAACN,wBAAwBO,OAAO;AAE3E;AAEO,eAAepB;QAEFqB;IADlB,MAAMA,QAAQ,MAAMC,IAAAA,+BAAuB;IAC3C,MAAMC,aAAYF,uBAAAA,MAAMG,aAAa,qBAAnBH,oBAAqB,CAAC,aAAa;IACrD,IAAI,CAACE,WAAW;QACd,OAAOE;IACT;QAEEP;IADF,OACEA,CAAAA,SAAAA,IAAAA,aAAK,EAACK,UAAUG,IAAI,CAACN,OAAO,aAA5BF,SAAiCC,IAAAA,cAAM,EAACI,UAAUG,IAAI,CAACN,OAAO,EAAEA,OAAO;AAE3E"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../packages/vite/src/utils/versions.ts"],"sourcesContent":["export const nxVersion = require('../../package.json').version;\n// Also update @nx/remix/utils/versions when changing vite version\nexport const viteVersion = '^6.0.0';\nexport const viteV5Version = '^5.0.0';\nexport const vitestVersion = '^3.0.0';\nexport const vitestV1Version = '^1.3.1';\nexport const vitePluginReactVersion = '^4.2.0';\nexport const vitePluginReactSwcVersion = '^3.5.0';\nexport const jsdomVersion = '~22.1.0';\nexport const vitePluginDtsVersion = '~4.5.0';\nexport const ajvVersion = '^8.0.0';\nexport const happyDomVersion = '~9.20.3';\nexport const edgeRuntimeVmVersion = '~3.0.2';\nexport const jitiVersion = '2.4.2';\n\nexport const analogVitestAngular = '~1.19.1';\n\n// Coverage providers\nexport const vitestCoverageV8Version = '^3.0.5';\nexport const vitestV1CoverageV8Version = '^1.0.4';\nexport const vitestCoverageIstanbulVersion = '^3.0.5';\nexport const vitestV1CoverageIstanbulVersion = '^1.0.4';\n"],"names":["ajvVersion","analogVitestAngular","edgeRuntimeVmVersion","happyDomVersion","jitiVersion","jsdomVersion","nxVersion","vitePluginDtsVersion","vitePluginReactSwcVersion","vitePluginReactVersion","viteV5Version","viteVersion","vitestCoverageIstanbulVersion","vitestCoverageV8Version","vitestV1CoverageIstanbulVersion","vitestV1CoverageV8Version","vitestV1Version","vitestVersion","require","version"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;IAUaA,UAAU;eAAVA;;IAKAC,mBAAmB;eAAnBA;;IAHAC,oBAAoB;eAApBA;;IADAC,eAAe;eAAfA;;IAEAC,WAAW;eAAXA;;IALAC,YAAY;eAAZA;;IARAC,SAAS;eAATA;;IASAC,oBAAoB;eAApBA;;IAFAC,yBAAyB;eAAzBA;;IADAC,sBAAsB;eAAtBA;;IAHAC,aAAa;eAAbA;;IADAC,WAAW;eAAXA;;IAkBAC,6BAA6B;eAA7BA;;IAFAC,uBAAuB;eAAvBA;;IAGAC,+BAA+B;eAA/BA;;IAFAC,yBAAyB;eAAzBA;;IAdAC,eAAe;eAAfA;;IADAC,aAAa;eAAbA;;;AAJN,MAAMX,YAAYY,QAAQ,sBAAsBC,OAAO;AAEvD,MAAMR,cAAc;AACpB,MAAMD,gBAAgB;AACtB,MAAMO,gBAAgB;AACtB,MAAMD,kBAAkB;AACxB,MAAMP,yBAAyB;AAC/B,MAAMD,4BAA4B;AAClC,MAAMH,eAAe;AACrB,MAAME,uBAAuB;AAC7B,MAAMP,aAAa;AACnB,MAAMG,kBAAkB;AACxB,MAAMD,uBAAuB;AAC7B,MAAME,cAAc;AAEpB,MAAMH,sBAAsB;AAG5B,MAAMY,0BAA0B;AAChC,MAAME,4BAA4B;AAClC,MAAMH,gCAAgC;AACtC,MAAME,kCAAkC"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../packages/vite/src/utils/vite-config-edit-utils.ts"],"sourcesContent":["import { applyChangesToString, ChangeType, Tree } from '@nx/devkit';\nimport { findNodes } from '@nx/js';\nimport { TargetFlags } from './generator-utils';\nimport type {\n ArrayLiteralExpression,\n Node,\n PropertyAssignment,\n ReturnStatement,\n} from 'typescript';\n\nexport function ensureViteConfigIsCorrect(\n tree: Tree,\n path: string,\n buildConfigString: string,\n buildConfigObject: {},\n imports: string[],\n plugins: string[],\n testConfigString: string,\n testConfigObject: {},\n cacheDir: string,\n projectAlreadyHasViteTargets?: TargetFlags\n): boolean {\n const fileContent = tree.read(path, 'utf-8');\n\n let updatedContent = undefined;\n\n if (!projectAlreadyHasViteTargets?.test && testConfigString?.length) {\n updatedContent = handleBuildOrTestNode(\n fileContent,\n testConfigString,\n testConfigObject,\n 'test'\n );\n }\n\n if (!projectAlreadyHasViteTargets?.build && buildConfigString?.length) {\n updatedContent = handleBuildOrTestNode(\n updatedContent ?? fileContent,\n buildConfigString,\n buildConfigObject,\n 'build'\n );\n }\n\n updatedContent =\n handlePluginNode(updatedContent ?? fileContent, imports, plugins) ??\n updatedContent;\n\n if (cacheDir?.length) {\n updatedContent = handleCacheDirNode(\n updatedContent ?? fileContent,\n cacheDir\n );\n }\n\n if (updatedContent) {\n tree.write(path, updatedContent);\n return true;\n } else {\n return false;\n }\n}\n\nfunction handleBuildOrTestNode(\n updatedFileContent: string,\n configContentString: string,\n configContentObject: {},\n name: 'build' | 'test'\n): string | undefined {\n const { tsquery } = require('@phenomnomnominal/tsquery');\n const buildOrTestNode = tsquery.query(\n updatedFileContent,\n `PropertyAssignment:has(Identifier[name=\"${name}\"])`\n );\n\n if (buildOrTestNode.length) {\n return tsquery.replace(\n updatedFileContent,\n `PropertyAssignment:has(Identifier[name=\"${name}\"])`,\n (node: PropertyAssignment) => {\n const existingProperties = tsquery.query(\n node.initializer,\n 'PropertyAssignment'\n ) as PropertyAssignment[];\n let updatedPropsString = '';\n for (const prop of existingProperties) {\n const propName = prop.name.getText();\n if (\n !configContentObject[propName] &&\n propName !== 'dir' &&\n propName !== 'reportsDirectory' &&\n propName !== 'provider'\n ) {\n // NOTE: Watch for formatting.\n updatedPropsString += ` '${propName}': ${prop.initializer.getText()},\\n`;\n }\n }\n for (const [propName, propValue] of Object.entries(\n configContentObject\n )) {\n // NOTE: Watch for formatting.\n if (propName === 'coverage') {\n let propString = ` '${propName}': {\\n`;\n for (const [pName, pValue] of Object.entries(propValue)) {\n if (pName === 'provider') {\n propString += ` '${pName}': ${pValue} as const,\\n`;\n } else {\n propString += ` '${pName}': '${pValue}',\\n`;\n }\n }\n propString += `}`;\n updatedPropsString += `${propString}\\n`;\n } else if (propName === 'lib') {\n let propString = ` '${propName}': {\\n`;\n for (const [pName, pValue] of Object.entries(propValue)) {\n if (pName === 'formats') {\n propString += ` '${pName}': [${pValue\n .map((format: string) => `'${format}' as const`)\n .join(', ')}],\\n`;\n } else {\n propString += ` '${pName}': ${JSON.stringify(pValue)},\\n`;\n }\n }\n propString += ` },`;\n updatedPropsString += `${propString}\\n`;\n } else {\n updatedPropsString += ` '${propName}': ${JSON.stringify(\n propValue\n )},\\n`;\n }\n }\n return `${name}: {\n${updatedPropsString} }`;\n }\n );\n } else {\n const foundDefineConfig = tsquery.query(\n updatedFileContent,\n 'CallExpression:has(Identifier[name=\"defineConfig\"])'\n );\n\n if (foundDefineConfig.length) {\n const conditionalConfig = tsquery.query(\n foundDefineConfig[0],\n 'ArrowFunction'\n );\n\n if (conditionalConfig.length) {\n if (name === 'build') {\n return transformConditionalConfig(\n conditionalConfig,\n updatedFileContent,\n configContentString\n );\n } else {\n // no test config in conditional config\n return updatedFileContent;\n }\n } else {\n const propertyAssignments = tsquery.query(\n foundDefineConfig[0],\n 'PropertyAssignment'\n );\n\n if (propertyAssignments.length) {\n return applyChangesToString(updatedFileContent, [\n {\n type: ChangeType.Insert,\n index: propertyAssignments[0].getStart(),\n text: configContentString,\n },\n ]);\n } else {\n return applyChangesToString(updatedFileContent, [\n {\n type: ChangeType.Insert,\n index: foundDefineConfig[0].getStart() + 14,\n text: configContentString,\n },\n ]);\n }\n }\n } else {\n // build config does not exist and defineConfig is not used\n // could also potentially be invalid syntax, so try-catch\n try {\n const defaultExport = tsquery.query(\n updatedFileContent,\n 'ExportAssignment'\n );\n const found = tsquery.query(\n defaultExport?.[0],\n 'ObjectLiteralExpression'\n );\n const startOfObject = found?.[0].getStart();\n return applyChangesToString(updatedFileContent, [\n {\n type: ChangeType.Insert,\n index: startOfObject + 1,\n text: configContentString,\n },\n ]);\n } catch {\n return updatedFileContent;\n }\n }\n }\n}\n\nfunction transformCurrentBuildObject(\n index: number,\n returnStatements: ReturnStatement[],\n appFileContent: string,\n buildConfigObject: {}\n): string | undefined {\n if (!returnStatements?.[index]) {\n return undefined;\n }\n const { tsquery } = require('@phenomnomnominal/tsquery');\n const currentBuildObject = tsquery\n .query(returnStatements[index], 'ObjectLiteralExpression')?.[0]\n .getText();\n\n const currentBuildObjectStart = returnStatements[index].getStart();\n const currentBuildObjectEnd = returnStatements[index].getEnd();\n const newReturnObject = tsquery.replace(\n returnStatements[index].getText(),\n 'ObjectLiteralExpression',\n (_node: Node) => {\n return `{\n ...${currentBuildObject},\n ...${JSON.stringify(buildConfigObject)}\n }`;\n }\n );\n\n const newContents = applyChangesToString(appFileContent, [\n {\n type: ChangeType.Delete,\n start: currentBuildObjectStart,\n length: currentBuildObjectEnd - currentBuildObjectStart,\n },\n {\n type: ChangeType.Insert,\n index: currentBuildObjectStart,\n text: newReturnObject,\n },\n ]);\n\n return newContents;\n}\n\nfunction transformConditionalConfig(\n conditionalConfig: Node[],\n appFileContent: string,\n buildConfigObject: {}\n): string | undefined {\n const { tsquery } = require('@phenomnomnominal/tsquery');\n const { SyntaxKind } = require('typescript');\n const functionBlock = tsquery.query(conditionalConfig[0], 'Block');\n const ifStatement = tsquery.query(functionBlock?.[0], 'IfStatement');\n\n const binaryExpressions = tsquery.query(ifStatement?.[0], 'BinaryExpression');\n\n const buildExists = binaryExpressions?.find(\n (binaryExpression) => binaryExpression.getText() === `command === 'build'`\n );\n\n const buildExistsExpressionIndex = binaryExpressions?.findIndex(\n (binaryExpression) => binaryExpression.getText() === `command === 'build'`\n );\n\n const serveExists = binaryExpressions?.find(\n (binaryExpression) => binaryExpression.getText() === `command === 'serve'`\n );\n\n const elseKeywordExists = findNodes(ifStatement?.[0], SyntaxKind.ElseKeyword);\n const returnStatements: ReturnStatement[] = tsquery.query(\n ifStatement[0],\n 'ReturnStatement'\n );\n\n if (!buildExists) {\n if (serveExists && elseKeywordExists) {\n // build options live inside the else block\n return (\n transformCurrentBuildObject(\n returnStatements?.length - 1,\n returnStatements,\n appFileContent,\n buildConfigObject\n ) ?? appFileContent\n );\n } else {\n // no build options exist yet\n const functionBlockStart = functionBlock?.[0].getStart();\n const newContents = applyChangesToString(appFileContent, [\n {\n type: ChangeType.Insert,\n index: functionBlockStart + 1,\n text: `\n if (command === 'build') {\n return ${JSON.stringify(buildConfigObject)}\n }\n `,\n },\n ]);\n return newContents;\n }\n } else {\n // build already exists\n // it will be the return statement which lives\n // at the buildExistsExpressionIndex\n\n return (\n transformCurrentBuildObject(\n buildExistsExpressionIndex,\n returnStatements,\n appFileContent,\n buildConfigObject\n ) ?? appFileContent\n );\n }\n}\n\nfunction handlePluginNode(\n appFileContent: string,\n imports: string[],\n plugins: string[]\n): string | undefined {\n const { tsquery } = require('@phenomnomnominal/tsquery');\n const file = tsquery.ast(appFileContent);\n const pluginsNode = tsquery.query(\n file,\n 'PropertyAssignment:has(Identifier[name=\"plugins\"])'\n );\n\n let writeFile = false;\n\n if (pluginsNode.length) {\n appFileContent = tsquery.replace(\n file.getText(),\n 'PropertyAssignment:has(Identifier[name=\"plugins\"])',\n (node: Node) => {\n const found = tsquery.query(\n node,\n 'ArrayLiteralExpression'\n ) as ArrayLiteralExpression[];\n let updatedPluginsString = '';\n\n const existingPluginNodes = found?.[0].elements ?? [];\n\n for (const plugin of existingPluginNodes) {\n updatedPluginsString += `${plugin.getText()}, `;\n }\n\n for (const plugin of plugins) {\n if (\n !existingPluginNodes?.some((node) =>\n node.getText().includes(plugin)\n )\n ) {\n updatedPluginsString += `${plugin}, `;\n }\n }\n\n return `plugins: [${updatedPluginsString}]`;\n }\n );\n writeFile = true;\n } else {\n // Plugins node does not exist yet\n // So make one from scratch\n\n const foundDefineConfig = tsquery.query(\n file,\n 'CallExpression:has(Identifier[name=\"defineConfig\"])'\n );\n\n if (foundDefineConfig.length) {\n const conditionalConfig = tsquery.query(\n foundDefineConfig[0],\n 'ArrowFunction'\n );\n\n if (conditionalConfig.length) {\n // We are NOT transforming the conditional config\n // with plugins\n writeFile = false;\n } else {\n const propertyAssignments = tsquery.query(\n foundDefineConfig[0],\n 'PropertyAssignment'\n );\n\n if (propertyAssignments.length) {\n appFileContent = applyChangesToString(appFileContent, [\n {\n type: ChangeType.Insert,\n index: propertyAssignments[0].getStart(),\n text: `plugins: [${plugins.join(', ')}],`,\n },\n ]);\n writeFile = true;\n } else {\n appFileContent = applyChangesToString(appFileContent, [\n {\n type: ChangeType.Insert,\n index: foundDefineConfig[0].getStart() + 14,\n text: `plugins: [${plugins.join(', ')}],`,\n },\n ]);\n writeFile = true;\n }\n }\n } else {\n // Plugins option does not exist and defineConfig is not used\n // could also potentially be invalid syntax, so try-catch\n try {\n const defaultExport = tsquery.query(file, 'ExportAssignment');\n const found = tsquery?.query(\n defaultExport?.[0],\n 'ObjectLiteralExpression'\n );\n const startOfObject = found?.[0].getStart();\n appFileContent = applyChangesToString(appFileContent, [\n {\n type: ChangeType.Insert,\n index: startOfObject + 1,\n text: `plugins: [${plugins.join(', ')}],`,\n },\n ]);\n writeFile = true;\n } catch {\n writeFile = false;\n }\n }\n }\n if (writeFile) {\n const filteredImports = filterImport(appFileContent, imports);\n return filteredImports.join(';\\n') + '\\n' + appFileContent;\n }\n}\n\nfunction filterImport(appFileContent: string, imports: string[]): string[] {\n const { tsquery } = require('@phenomnomnominal/tsquery');\n const file = tsquery.ast(appFileContent);\n const importNodes = tsquery.query(\n file,\n ':matches(ImportDeclaration, VariableStatement)'\n );\n\n const importsArrayExisting = importNodes?.map((node) => {\n return node.getText().slice(0, -1);\n });\n\n return imports.filter((importString) => {\n return !importsArrayExisting?.includes(importString);\n });\n}\n\nfunction handleCacheDirNode(appFileContent: string, cacheDir: string): string {\n const { tsquery } = require('@phenomnomnominal/tsquery');\n\n const file = tsquery.ast(appFileContent);\n const cacheDirNode = tsquery.query(\n file,\n 'PropertyAssignment:has(Identifier[name=\"cacheDir\"])'\n );\n\n if (!cacheDirNode?.length || cacheDirNode?.length === 0) {\n // cacheDir node does not exist yet\n // So make one from scratch\n\n const foundDefineConfig = tsquery.query(\n file,\n 'CallExpression:has(Identifier[name=\"defineConfig\"])'\n );\n\n if (foundDefineConfig.length) {\n const conditionalConfig = tsquery.query(\n foundDefineConfig[0],\n 'ArrowFunction'\n );\n\n if (conditionalConfig.length) {\n // We are NOT transforming the conditional config\n // with cacheDir\n } else {\n const propertyAssignments = tsquery.query(\n foundDefineConfig[0],\n 'PropertyAssignment'\n );\n\n if (propertyAssignments.length) {\n appFileContent = applyChangesToString(appFileContent, [\n {\n type: ChangeType.Insert,\n index: propertyAssignments[0].getStart(),\n text: cacheDir,\n },\n ]);\n } else {\n appFileContent = applyChangesToString(appFileContent, [\n {\n type: ChangeType.Insert,\n index: foundDefineConfig[0].getStart() + 14,\n text: cacheDir,\n },\n ]);\n }\n }\n } else {\n // cacheDir option does not exist and defineConfig is not used\n // could also potentially be invalid syntax, so try-catch\n try {\n const defaultExport = tsquery.query(file, 'ExportAssignment');\n const found = tsquery?.query(\n defaultExport?.[0],\n 'ObjectLiteralExpression'\n );\n const startOfObject = found?.[0].getStart();\n appFileContent = applyChangesToString(appFileContent, [\n {\n type: ChangeType.Insert,\n index: startOfObject + 1,\n text: cacheDir,\n },\n ]);\n } catch {}\n }\n }\n\n return appFileContent;\n}\n"],"names":["ensureViteConfigIsCorrect","tree","path","buildConfigString","buildConfigObject","imports","plugins","testConfigString","testConfigObject","cacheDir","projectAlreadyHasViteTargets","fileContent","read","updatedContent","undefined","test","length","handleBuildOrTestNode","build","handlePluginNode","handleCacheDirNode","write","updatedFileContent","configContentString","configContentObject","name","tsquery","require","buildOrTestNode","query","replace","node","existingProperties","initializer","updatedPropsString","prop","propName","getText","propValue","Object","entries","propString","pName","pValue","map","format","join","JSON","stringify","foundDefineConfig","conditionalConfig","transformConditionalConfig","propertyAssignments","applyChangesToString","type","ChangeType","Insert","index","getStart","text","defaultExport","found","startOfObject","transformCurrentBuildObject","returnStatements","appFileContent","currentBuildObject","currentBuildObjectStart","currentBuildObjectEnd","getEnd","newReturnObject","_node","newContents","Delete","start","SyntaxKind","functionBlock","ifStatement","binaryExpressions","buildExists","find","binaryExpression","buildExistsExpressionIndex","findIndex","serveExists","elseKeywordExists","findNodes","ElseKeyword","functionBlockStart","file","ast","pluginsNode","writeFile","updatedPluginsString","existingPluginNodes","elements","plugin","some","includes","filteredImports","filterImport","importNodes","importsArrayExisting","slice","filter","importString","cacheDirNode"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}