From 73da211694481e82fe36d4129488fae47aa28f02 Mon Sep 17 00:00:00 2001 From: Jason Jean Date: Fri, 25 Apr 2025 15:06:02 -0400 Subject: [PATCH] feat(misc): remove migrations prior to v19 in preparation for v21 (#30839) ## Current Behavior Users migrating from Nx 17 can go up to Nx 20. ## Expected Behavior Users migrating from Nx 19 can go up to Nx 21. Users migrating from Nx 17 or 18 should go to Nx 19 first.. then go to Nx 21. ## Related Issue(s) Fixes # --- docs/generated/manifests/menus.json | 8 - docs/generated/manifests/nx-api.json | 813 +----------------- docs/generated/packages-metadata.json | 813 +----------------- .../17.2.0-beta.2-package-updates.json | 14 - .../migrations/17.3.0-package-updates.json | 14 - .../update-cypress-version-13-6-6.json | 13 - .../migrations/18.0.0-package-updates.json | 14 - .../migrations/18.1.0-package-updates.json | 22 - .../update-17-2-6-rename-workspace-rules.json | 13 - .../migrations/17.0.0-package-updates.json | 12 - .../migrations/17.1.0-package-updates.json | 16 - .../migrations/17.2.0-package-updates.json | 12 - .../migrations/17.3.0-package-updates.json | 16 - .../migrations/18.2.0-package-updates.json | 17 - .../move-options-to-target-defaults.json | 12 - .../migrations/simplify-eslint-patterns.json | 12 - .../update-17-0-0-rename-to-eslint.json | 12 - .../migrations/update-typescript-eslint.json | 12 - .../migrations/17.1.0-package-updates.json | 22 - .../migrations/18.0.0-package-updates.json | 54 -- .../update-18-0-0-remove-block-list.json | 13 - .../update-18-0-0-remove-eas-cli.json | 13 - ...18-0-0-remove-offset-export-outputDir.json | 13 - .../update-18-0-0-remove-symlink-target.json | 13 - .../migrations/17.2.0-package-updates.json | 14 - .../move-options-to-target-defaults.json | 12 - .../js/migrations/17.0.0-package-updates.json | 14 - .../js/migrations/17.1.0-package-updates.json | 14 - .../17.3.0-beta.10-package-updates.json | 16 - .../js/migrations/17.3.0-package-updates.json | 14 - .../js/migrations/18.0.4-package-updates.json | 17 - .../js/migrations/18.2.0-package-updates.json | 16 - ...7-0-0-remove-deprecated-build-options.json | 13 - .../17.3.1-beta.0-package-updates.json | 14 - .../migrations/18.0.4-package-updates.json | 17 - .../next/migrations/update-17-2-7.json | 13 - .../migrations/17.3.0-package-updates.json | 14 - .../migrations/17.3.1-package-updates.json | 14 - .../migrations/18.2.0-package-updates.json | 17 - .../migrations/18.3.0-package-updates.json | 17 - .../17.0.0-move-cache-directory.json | 13 - ...nimal-config-for-tasks-runner-options.json | 13 - .../migrations/17.3.0-update-nx-wrapper.json | 13 - ...dding-plugins-for-existing-workspaces.json | 14 - .../move-default-base-to-nx-json-root.json | 12 - .../rm-default-collection-npm-scope.json | 12 - .../17-3-1-add-project-to-config.json | 13 - ...-1-0-remove-baseUrl-from-project-json.json | 13 - .../migrations/17.1.0-package-updates.json | 41 - .../migrations/17.3.0-package-updates.json | 12 - .../migrations/18.0.0-package-updates.json | 39 - .../update-18-0-0-add-upgrade-target.json | 13 - .../update-18-0-0-add-web-configuration.json | 13 - ...pdate-18-0-0-change-storybook-targets.json | 13 - .../update-18-0-0-remove-block-list.json | 13 - .../update-18-0-0-remove-metro.json | 13 - .../update-18-0-0-remove-symlink-target.json | 13 - .../17.0.0-beta.0-package-updates.json | 19 - .../migrations/17.3.0-package-updates.json | 14 - ...federation-env-var-to-target-defaults.json | 14 - .../fix-target-defaults-for-webpack.json | 14 - .../migrations/17.2.1-package-updates.json | 39 - .../migrations/18.1.0-package-updates.json | 40 - .../migrations/18.1.1-package-updates.json | 25 - .../migrations/18.2.0-package-updates.json | 14 - .../migrations/18.1.0-package-updates.json | 22 - .../migrations/18.1.3-package-updates.json | 22 - .../migrations/17.0.0-package-updates.json | 117 --- .../17.1.0-beta.4-package-updates.json | 18 - .../migrations/17.1.0-package-updates.json | 117 --- .../17.2.0-beta.2-package-updates.json | 14 - .../migrations/18.2.0-package-updates.json | 14 - .../migrations/17.2.0-package-updates.json | 32 - .../migrations/17.3.0-package-updates.json | 23 - .../migrations/18.1.0-package-updates.json | 23 - .../vite/migrations/move-target-defaults.json | 12 - .../vite/migrations/update-vite-config.json | 12 - .../vitest-coverage-and-reporters.json | 12 - .../migrations/17.2.0-package-updates.json | 17 - .../migrations/17.3.0-package-updates.json | 14 - .../update-17-2-1-webpack-config-setup.json | 13 - .../migrations/17.1.0-package-updates.json | 14 - .../migrations/17.3.0-package-updates.json | 14 - .../migrations/18.2.0-package-updates.json | 16 - docs/shared/reference/sitemap.md | 1 - packages/cypress/migrations.json | 24 - .../update-cypress-version-13-6-6.spec.ts | 42 - .../update-cypress-version-13-6-6.ts | 16 - packages/detox/migrations.json | 26 - packages/eslint-plugin/migrations.json | 6 - .../rename-workspace-rules.spec.ts | 131 --- .../rename-workspace-rules.ts | 32 - packages/eslint/migrations.json | 81 -- .../update-17-0-0-rename-to-eslint.spec.ts | 75 -- .../update-17-0-0-rename-to-eslint.ts | 68 -- .../update-typescript-eslint.spec.ts.snap | 91 -- .../update-typescript-eslint.spec.ts | 126 --- .../update-17-1-0/update-typescript-eslint.ts | 107 --- .../simplify-eslint-patterns.spec.ts | 145 ---- .../update-17-2-0/simplify-eslint-patterns.ts | 66 -- .../move-options-to-target-defaults.spec.ts | 244 ------ .../move-options-to-target-defaults.ts | 186 ---- packages/expo/migrations.json | 114 --- .../change-outputDir-export-target.spec.ts | 41 - .../change-outputDir-export-target.ts | 29 - .../update-18-0-0/remove-block-list.spec.ts | 68 -- .../update-18-0-0/remove-block-list.ts | 34 - .../update-18-0-0/remove-eas-cli.ts | 24 - .../remove-symlink-target.spec.ts | 38 - .../update-18-0-0/remove-symlink-target.ts | 43 - packages/jest/migrations.json | 14 - .../move-options-to-target-defaults.spec.ts | 604 ------------- .../move-options-to-target-defaults.ts | 185 ---- packages/js/.eslintrc.json | 1 + packages/js/migrations.json | 74 +- .../remove-deprecated-build-options.spec.ts | 100 --- .../remove-deprecated-build-options.ts | 39 - packages/next/migrations.json | 27 +- .../remove-eslint-rules-patch.spec.ts | 151 ---- .../remove-eslint-rules-patch.ts | 22 - packages/node/migrations.json | 18 - packages/nuxt/migrations.json | 21 +- packages/nx/migrations.json | 35 - .../update-17-0-0/move-cache-directory.md | 41 - .../move-cache-directory.spec.ts | 71 -- .../update-17-0-0/move-cache-directory.ts | 37 - .../rm-default-collection-npm-scope.spec.ts | 53 -- .../rm-default-collection-npm-scope.ts | 96 --- ...al-config-for-tasks-runner-options.spec.ts | 228 ----- ...minimal-config-for-tasks-runner-options.ts | 145 ---- .../update-17-2-0/move-default-base.spec.ts | 47 - .../update-17-2-0/move-default-base.ts | 23 - .../update-17-3-0/nx-release-path.spec.ts | 104 --- .../update-17-3-0/nx-release-path.ts | 51 -- ...le-crystal-for-existing-workspaces.spec.ts | 26 - ...disable-crystal-for-existing-workspaces.ts | 11 - packages/playwright/migrations.json | 12 - .../add-project-to-config.spec.ts.snap | 55 -- .../add-project-to-config.spec.ts | 91 -- .../update-17-3-1/add-project-to-config.ts | 198 ----- .../remove-baseUrl-from-project-json.spec.ts | 176 ---- .../remove-baseUrl-from-project-json.ts | 65 -- packages/react-native/migrations.json | 126 --- .../update-18-0-0/add-upgrade-target.spec.ts | 38 - .../update-18-0-0/add-upgrade-target.ts | 43 - .../add-web-configuration.spec.ts | 39 - .../update-18-0-0/add-web-configuration.ts | 48 -- .../update-18-0-0/change-storybook-targets.ts | 77 -- .../update-18-0-0/remove-block-list.spec.ts | 68 -- .../update-18-0-0/remove-block-list.ts | 34 - .../migrations/update-18-0-0/remove-metro.ts | 35 - .../remove-symlink-target.spec.ts | 40 - .../update-18-0-0/remove-symlink-target.ts | 44 - packages/react/migrations.json | 38 - .../fix-target-defaults-inputs.spec.ts | 127 --- .../fix-target-defaults-inputs.ts | 75 -- packages/remix/migrations.json | 131 --- packages/rollup/migrations.json | 9 - packages/rspack/migrations.json | 34 - packages/storybook/migrations.json | 249 ------ packages/vite/migrations.json | 90 -- .../move-target-defaults.spec.ts | 79 -- .../update-17-1-0/move-target-defaults.ts | 112 --- .../update-vite-config.spec.ts.snap | 345 -------- .../lib/add-file-replacements.ts | 81 -- .../update-17-2-0/lib/edit-build-config.ts | 198 ----- .../update-17-2-0/lib/edit-test-config.ts | 108 --- .../vite-config-with-additional-js.fixture.ts | 64 -- .../update-17-2-0/update-vite-config.spec.ts | 404 --------- .../update-17-2-0/update-vite-config.ts | 89 -- ...vitest-coverage-and-reporters.spec.ts.snap | 166 ---- .../lib/fix-coverage-and-reporters.ts | 151 ---- .../vitest-coverage-and-reporters.spec.ts | 287 ------- .../vitest-coverage-and-reporters.ts | 43 - packages/vue/migrations.json | 9 - packages/web/migrations.json | 12 +- packages/webpack/migrations.json | 6 - .../webpack-config-setup.spec.ts | 89 -- .../update-17-2-1/webpack-config-setup.ts | 55 -- packages/workspace/migrations.json | 37 - .../generators/remove-migrations/generator.ts | 2 +- 181 files changed, 8 insertions(+), 11540 deletions(-) delete mode 100644 docs/generated/packages/cypress/migrations/17.2.0-beta.2-package-updates.json delete mode 100644 docs/generated/packages/cypress/migrations/17.3.0-package-updates.json delete mode 100644 docs/generated/packages/cypress/migrations/update-cypress-version-13-6-6.json delete mode 100644 docs/generated/packages/detox/migrations/18.0.0-package-updates.json delete mode 100644 docs/generated/packages/detox/migrations/18.1.0-package-updates.json delete mode 100644 docs/generated/packages/eslint-plugin/migrations/update-17-2-6-rename-workspace-rules.json delete mode 100644 docs/generated/packages/eslint/migrations/17.0.0-package-updates.json delete mode 100644 docs/generated/packages/eslint/migrations/17.1.0-package-updates.json delete mode 100644 docs/generated/packages/eslint/migrations/17.2.0-package-updates.json delete mode 100644 docs/generated/packages/eslint/migrations/17.3.0-package-updates.json delete mode 100644 docs/generated/packages/eslint/migrations/18.2.0-package-updates.json delete mode 100644 docs/generated/packages/eslint/migrations/move-options-to-target-defaults.json delete mode 100644 docs/generated/packages/eslint/migrations/simplify-eslint-patterns.json delete mode 100644 docs/generated/packages/eslint/migrations/update-17-0-0-rename-to-eslint.json delete mode 100644 docs/generated/packages/eslint/migrations/update-typescript-eslint.json delete mode 100644 docs/generated/packages/expo/migrations/17.1.0-package-updates.json delete mode 100644 docs/generated/packages/expo/migrations/18.0.0-package-updates.json delete mode 100644 docs/generated/packages/expo/migrations/update-18-0-0-remove-block-list.json delete mode 100644 docs/generated/packages/expo/migrations/update-18-0-0-remove-eas-cli.json delete mode 100644 docs/generated/packages/expo/migrations/update-18-0-0-remove-offset-export-outputDir.json delete mode 100644 docs/generated/packages/expo/migrations/update-18-0-0-remove-symlink-target.json delete mode 100644 docs/generated/packages/jest/migrations/17.2.0-package-updates.json delete mode 100644 docs/generated/packages/jest/migrations/move-options-to-target-defaults.json delete mode 100644 docs/generated/packages/js/migrations/17.0.0-package-updates.json delete mode 100644 docs/generated/packages/js/migrations/17.1.0-package-updates.json delete mode 100644 docs/generated/packages/js/migrations/17.3.0-beta.10-package-updates.json delete mode 100644 docs/generated/packages/js/migrations/17.3.0-package-updates.json delete mode 100644 docs/generated/packages/js/migrations/18.0.4-package-updates.json delete mode 100644 docs/generated/packages/js/migrations/18.2.0-package-updates.json delete mode 100644 docs/generated/packages/js/migrations/update-17-0-0-remove-deprecated-build-options.json delete mode 100644 docs/generated/packages/next/migrations/17.3.1-beta.0-package-updates.json delete mode 100644 docs/generated/packages/next/migrations/18.0.4-package-updates.json delete mode 100644 docs/generated/packages/next/migrations/update-17-2-7.json delete mode 100644 docs/generated/packages/node/migrations/17.3.0-package-updates.json delete mode 100644 docs/generated/packages/node/migrations/17.3.1-package-updates.json delete mode 100644 docs/generated/packages/nuxt/migrations/18.2.0-package-updates.json delete mode 100644 docs/generated/packages/nuxt/migrations/18.3.0-package-updates.json delete mode 100644 docs/generated/packages/nx/migrations/17.0.0-move-cache-directory.json delete mode 100644 docs/generated/packages/nx/migrations/17.0.0-use-minimal-config-for-tasks-runner-options.json delete mode 100644 docs/generated/packages/nx/migrations/17.3.0-update-nx-wrapper.json delete mode 100644 docs/generated/packages/nx/migrations/18.0.0-disable-adding-plugins-for-existing-workspaces.json delete mode 100644 docs/generated/packages/nx/migrations/move-default-base-to-nx-json-root.json delete mode 100644 docs/generated/packages/nx/migrations/rm-default-collection-npm-scope.json delete mode 100644 docs/generated/packages/playwright/migrations/17-3-1-add-project-to-config.json delete mode 100644 docs/generated/packages/playwright/migrations/18-1-0-remove-baseUrl-from-project-json.json delete mode 100644 docs/generated/packages/react-native/migrations/17.1.0-package-updates.json delete mode 100644 docs/generated/packages/react-native/migrations/17.3.0-package-updates.json delete mode 100644 docs/generated/packages/react-native/migrations/18.0.0-package-updates.json delete mode 100644 docs/generated/packages/react-native/migrations/update-18-0-0-add-upgrade-target.json delete mode 100644 docs/generated/packages/react-native/migrations/update-18-0-0-add-web-configuration.json delete mode 100644 docs/generated/packages/react-native/migrations/update-18-0-0-change-storybook-targets.json delete mode 100644 docs/generated/packages/react-native/migrations/update-18-0-0-remove-block-list.json delete mode 100644 docs/generated/packages/react-native/migrations/update-18-0-0-remove-metro.json delete mode 100644 docs/generated/packages/react-native/migrations/update-18-0-0-remove-symlink-target.json delete mode 100644 docs/generated/packages/react/migrations/17.0.0-beta.0-package-updates.json delete mode 100644 docs/generated/packages/react/migrations/17.3.0-package-updates.json delete mode 100644 docs/generated/packages/react/migrations/add-module-federation-env-var-to-target-defaults.json delete mode 100644 docs/generated/packages/react/migrations/fix-target-defaults-for-webpack.json delete mode 100644 docs/generated/packages/remix/migrations/17.2.1-package-updates.json delete mode 100644 docs/generated/packages/remix/migrations/18.1.0-package-updates.json delete mode 100644 docs/generated/packages/remix/migrations/18.1.1-package-updates.json delete mode 100644 docs/generated/packages/rollup/migrations/18.2.0-package-updates.json delete mode 100644 docs/generated/packages/rspack/migrations/18.1.0-package-updates.json delete mode 100644 docs/generated/packages/rspack/migrations/18.1.3-package-updates.json delete mode 100644 docs/generated/packages/storybook/migrations/17.0.0-package-updates.json delete mode 100644 docs/generated/packages/storybook/migrations/17.1.0-beta.4-package-updates.json delete mode 100644 docs/generated/packages/storybook/migrations/17.1.0-package-updates.json delete mode 100644 docs/generated/packages/storybook/migrations/17.2.0-beta.2-package-updates.json delete mode 100644 docs/generated/packages/storybook/migrations/18.2.0-package-updates.json delete mode 100644 docs/generated/packages/vite/migrations/17.2.0-package-updates.json delete mode 100644 docs/generated/packages/vite/migrations/17.3.0-package-updates.json delete mode 100644 docs/generated/packages/vite/migrations/18.1.0-package-updates.json delete mode 100644 docs/generated/packages/vite/migrations/move-target-defaults.json delete mode 100644 docs/generated/packages/vite/migrations/update-vite-config.json delete mode 100644 docs/generated/packages/vite/migrations/vitest-coverage-and-reporters.json delete mode 100644 docs/generated/packages/vue/migrations/17.2.0-package-updates.json delete mode 100644 docs/generated/packages/web/migrations/17.3.0-package-updates.json delete mode 100644 docs/generated/packages/webpack/migrations/update-17-2-1-webpack-config-setup.json delete mode 100644 docs/generated/packages/workspace/migrations/17.1.0-package-updates.json delete mode 100644 docs/generated/packages/workspace/migrations/17.3.0-package-updates.json delete mode 100644 docs/generated/packages/workspace/migrations/18.2.0-package-updates.json delete mode 100644 packages/cypress/src/migrations/update-18-1-0/update-cypress-version-13-6-6.spec.ts delete mode 100644 packages/cypress/src/migrations/update-18-1-0/update-cypress-version-13-6-6.ts delete mode 100644 packages/eslint-plugin/src/migrations/update-17-2-6-rename-workspace-rules/rename-workspace-rules.spec.ts delete mode 100644 packages/eslint-plugin/src/migrations/update-17-2-6-rename-workspace-rules/rename-workspace-rules.ts delete mode 100644 packages/eslint/src/migrations/update-17-0-0-rename-to-eslint/update-17-0-0-rename-to-eslint.spec.ts delete mode 100644 packages/eslint/src/migrations/update-17-0-0-rename-to-eslint/update-17-0-0-rename-to-eslint.ts delete mode 100644 packages/eslint/src/migrations/update-17-1-0/__snapshots__/update-typescript-eslint.spec.ts.snap delete mode 100644 packages/eslint/src/migrations/update-17-1-0/update-typescript-eslint.spec.ts delete mode 100644 packages/eslint/src/migrations/update-17-1-0/update-typescript-eslint.ts delete mode 100644 packages/eslint/src/migrations/update-17-2-0/simplify-eslint-patterns.spec.ts delete mode 100644 packages/eslint/src/migrations/update-17-2-0/simplify-eslint-patterns.ts delete mode 100644 packages/eslint/src/migrations/update-17-2-9/move-options-to-target-defaults.spec.ts delete mode 100644 packages/eslint/src/migrations/update-17-2-9/move-options-to-target-defaults.ts delete mode 100644 packages/expo/src/migrations/update-18-0-0/change-outputDir-export-target.spec.ts delete mode 100644 packages/expo/src/migrations/update-18-0-0/change-outputDir-export-target.ts delete mode 100644 packages/expo/src/migrations/update-18-0-0/remove-block-list.spec.ts delete mode 100644 packages/expo/src/migrations/update-18-0-0/remove-block-list.ts delete mode 100644 packages/expo/src/migrations/update-18-0-0/remove-eas-cli.ts delete mode 100644 packages/expo/src/migrations/update-18-0-0/remove-symlink-target.spec.ts delete mode 100644 packages/expo/src/migrations/update-18-0-0/remove-symlink-target.ts delete mode 100644 packages/jest/src/migrations/update-17-1-0/move-options-to-target-defaults.spec.ts delete mode 100644 packages/jest/src/migrations/update-17-1-0/move-options-to-target-defaults.ts delete mode 100644 packages/js/src/migrations/update-17-0-0/remove-deprecated-build-options.spec.ts delete mode 100644 packages/js/src/migrations/update-17-0-0/remove-deprecated-build-options.ts delete mode 100644 packages/next/src/migrations/update-17-2-7/remove-eslint-rules-patch.spec.ts delete mode 100644 packages/next/src/migrations/update-17-2-7/remove-eslint-rules-patch.ts delete mode 100644 packages/nx/src/migrations/update-17-0-0/move-cache-directory.md delete mode 100644 packages/nx/src/migrations/update-17-0-0/move-cache-directory.spec.ts delete mode 100644 packages/nx/src/migrations/update-17-0-0/move-cache-directory.ts delete mode 100644 packages/nx/src/migrations/update-17-0-0/rm-default-collection-npm-scope.spec.ts delete mode 100644 packages/nx/src/migrations/update-17-0-0/rm-default-collection-npm-scope.ts delete mode 100644 packages/nx/src/migrations/update-17-0-0/use-minimal-config-for-tasks-runner-options.spec.ts delete mode 100644 packages/nx/src/migrations/update-17-0-0/use-minimal-config-for-tasks-runner-options.ts delete mode 100644 packages/nx/src/migrations/update-17-2-0/move-default-base.spec.ts delete mode 100644 packages/nx/src/migrations/update-17-2-0/move-default-base.ts delete mode 100644 packages/nx/src/migrations/update-17-3-0/nx-release-path.spec.ts delete mode 100644 packages/nx/src/migrations/update-17-3-0/nx-release-path.ts delete mode 100644 packages/nx/src/migrations/update-18-0-0/disable-crystal-for-existing-workspaces.spec.ts delete mode 100644 packages/nx/src/migrations/update-18-0-0/disable-crystal-for-existing-workspaces.ts delete mode 100644 packages/playwright/src/migrations/update-17-3-1/__snapshots__/add-project-to-config.spec.ts.snap delete mode 100644 packages/playwright/src/migrations/update-17-3-1/add-project-to-config.spec.ts delete mode 100644 packages/playwright/src/migrations/update-17-3-1/add-project-to-config.ts delete mode 100644 packages/playwright/src/migrations/update-18-1-0/remove-baseUrl-from-project-json.spec.ts delete mode 100644 packages/playwright/src/migrations/update-18-1-0/remove-baseUrl-from-project-json.ts delete mode 100644 packages/react-native/src/migrations/update-18-0-0/add-upgrade-target.spec.ts delete mode 100644 packages/react-native/src/migrations/update-18-0-0/add-upgrade-target.ts delete mode 100644 packages/react-native/src/migrations/update-18-0-0/add-web-configuration.spec.ts delete mode 100644 packages/react-native/src/migrations/update-18-0-0/add-web-configuration.ts delete mode 100644 packages/react-native/src/migrations/update-18-0-0/change-storybook-targets.ts delete mode 100644 packages/react-native/src/migrations/update-18-0-0/remove-block-list.spec.ts delete mode 100644 packages/react-native/src/migrations/update-18-0-0/remove-block-list.ts delete mode 100644 packages/react-native/src/migrations/update-18-0-0/remove-metro.ts delete mode 100644 packages/react-native/src/migrations/update-18-0-0/remove-symlink-target.spec.ts delete mode 100644 packages/react-native/src/migrations/update-18-0-0/remove-symlink-target.ts delete mode 100644 packages/react/src/migrations/update-18-1-1/fix-target-defaults-inputs.spec.ts delete mode 100644 packages/react/src/migrations/update-18-1-1/fix-target-defaults-inputs.ts delete mode 100644 packages/vite/src/migrations/update-17-1-0/move-target-defaults.spec.ts delete mode 100644 packages/vite/src/migrations/update-17-1-0/move-target-defaults.ts delete mode 100644 packages/vite/src/migrations/update-17-2-0/__snapshots__/update-vite-config.spec.ts.snap delete mode 100644 packages/vite/src/migrations/update-17-2-0/lib/add-file-replacements.ts delete mode 100644 packages/vite/src/migrations/update-17-2-0/lib/edit-build-config.ts delete mode 100644 packages/vite/src/migrations/update-17-2-0/lib/edit-test-config.ts delete mode 100644 packages/vite/src/migrations/update-17-2-0/lib/vite-config-with-additional-js.fixture.ts delete mode 100644 packages/vite/src/migrations/update-17-2-0/update-vite-config.spec.ts delete mode 100644 packages/vite/src/migrations/update-17-2-0/update-vite-config.ts delete mode 100644 packages/vite/src/migrations/update-17-3-0/__snapshots__/vitest-coverage-and-reporters.spec.ts.snap delete mode 100644 packages/vite/src/migrations/update-17-3-0/lib/fix-coverage-and-reporters.ts delete mode 100644 packages/vite/src/migrations/update-17-3-0/vitest-coverage-and-reporters.spec.ts delete mode 100644 packages/vite/src/migrations/update-17-3-0/vitest-coverage-and-reporters.ts delete mode 100644 packages/webpack/src/migrations/update-17-2-1/webpack-config-setup.spec.ts delete mode 100644 packages/webpack/src/migrations/update-17-2-1/webpack-config-setup.ts diff --git a/docs/generated/manifests/menus.json b/docs/generated/manifests/menus.json index 0e6f90188f..8f9058a26a 100644 --- a/docs/generated/manifests/menus.json +++ b/docs/generated/manifests/menus.json @@ -10937,14 +10937,6 @@ ], "isExternal": false, "disableCollapsible": false - }, - { - "id": "migrations", - "path": "/nx-api/web/migrations", - "name": "migrations", - "children": [], - "isExternal": false, - "disableCollapsible": false } ], "isExternal": false, diff --git a/docs/generated/manifests/nx-api.json b/docs/generated/manifests/nx-api.json index c87a39674b..216b7bc569 100644 --- a/docs/generated/manifests/nx-api.json +++ b/docs/generated/manifests/nx-api.json @@ -1391,36 +1391,6 @@ "originalFilePath": "/packages/cypress", "path": "/nx-api/cypress/migrations/19.1.0-package-updates", "type": "migration" - }, - "/nx-api/cypress/migrations/update-cypress-version-13-6-6": { - "description": "Update to Cypress ^13.6.6 if the workspace is using Cypress v13 to ensure workspaces don't use v13.6.5 which has an issue when verifying Cypress.", - "file": "generated/packages/cypress/migrations/update-cypress-version-13-6-6.json", - "hidden": false, - "name": "update-cypress-version-13-6-6", - "version": "18.1.0-beta.3", - "originalFilePath": "/packages/cypress", - "path": "/nx-api/cypress/migrations/update-cypress-version-13-6-6", - "type": "migration" - }, - "/nx-api/cypress/migrations/17.3.0-package-updates": { - "description": "", - "file": "generated/packages/cypress/migrations/17.3.0-package-updates.json", - "hidden": false, - "name": "17.3.0-package-updates", - "version": "17.3.0-beta.3", - "originalFilePath": "/packages/cypress", - "path": "/nx-api/cypress/migrations/17.3.0-package-updates", - "type": "migration" - }, - "/nx-api/cypress/migrations/17.2.0-beta.2-package-updates": { - "description": "", - "file": "generated/packages/cypress/migrations/17.2.0-beta.2-package-updates.json", - "hidden": false, - "name": "17.2.0-beta.2-package-updates", - "version": "17.2.0-beta.2", - "originalFilePath": "/packages/cypress", - "path": "/nx-api/cypress/migrations/17.2.0-beta.2-package-updates", - "type": "migration" } }, "path": "/nx-api/cypress" @@ -1524,26 +1494,6 @@ "originalFilePath": "/packages/detox", "path": "/nx-api/detox/migrations/19.2.0-package-updates", "type": "migration" - }, - "/nx-api/detox/migrations/18.1.0-package-updates": { - "description": "", - "file": "generated/packages/detox/migrations/18.1.0-package-updates.json", - "hidden": false, - "name": "18.1.0-package-updates", - "version": "18.1.0-beta.0", - "originalFilePath": "/packages/detox", - "path": "/nx-api/detox/migrations/18.1.0-package-updates", - "type": "migration" - }, - "/nx-api/detox/migrations/18.0.0-package-updates": { - "description": "", - "file": "generated/packages/detox/migrations/18.0.0-package-updates.json", - "hidden": false, - "name": "18.0.0-package-updates", - "version": "18.0.0-beta.0", - "originalFilePath": "/packages/detox", - "path": "/nx-api/detox/migrations/18.0.0-package-updates", - "type": "migration" } }, "path": "/nx-api/detox" @@ -1776,96 +1726,6 @@ "originalFilePath": "/packages/eslint", "path": "/nx-api/eslint/migrations/19.5.0-package-updates", "type": "migration" - }, - "/nx-api/eslint/migrations/18.2.0-package-updates": { - "description": "", - "file": "generated/packages/eslint/migrations/18.2.0-package-updates.json", - "hidden": false, - "name": "18.2.0-package-updates", - "version": "18.2.0-beta.0", - "originalFilePath": "/packages/eslint", - "path": "/nx-api/eslint/migrations/18.2.0-package-updates", - "type": "migration" - }, - "/nx-api/eslint/migrations/17.3.0-package-updates": { - "description": "", - "file": "generated/packages/eslint/migrations/17.3.0-package-updates.json", - "hidden": false, - "name": "17.3.0-package-updates", - "version": "17.3.0-beta.0", - "originalFilePath": "/packages/eslint", - "path": "/nx-api/eslint/migrations/17.3.0-package-updates", - "type": "migration" - }, - "/nx-api/eslint/migrations/move-options-to-target-defaults": { - "description": "Move executor options to target defaults", - "file": "generated/packages/eslint/migrations/move-options-to-target-defaults.json", - "hidden": false, - "name": "move-options-to-target-defaults", - "version": "17.2.9", - "originalFilePath": "/packages/eslint", - "path": "/nx-api/eslint/migrations/move-options-to-target-defaults", - "type": "migration" - }, - "/nx-api/eslint/migrations/17.2.0-package-updates": { - "description": "", - "file": "generated/packages/eslint/migrations/17.2.0-package-updates.json", - "hidden": false, - "name": "17.2.0-package-updates", - "version": "17.2.0-beta.2", - "originalFilePath": "/packages/eslint", - "path": "/nx-api/eslint/migrations/17.2.0-package-updates", - "type": "migration" - }, - "/nx-api/eslint/migrations/simplify-eslint-patterns": { - "description": "Simplify eslintFilePatterns", - "file": "generated/packages/eslint/migrations/simplify-eslint-patterns.json", - "hidden": false, - "name": "simplify-eslint-patterns", - "version": "17.2.0-beta.0", - "originalFilePath": "/packages/eslint", - "path": "/nx-api/eslint/migrations/simplify-eslint-patterns", - "type": "migration" - }, - "/nx-api/eslint/migrations/update-typescript-eslint": { - "description": "Updates for @typescript-utils/utils v6.9.1+", - "file": "generated/packages/eslint/migrations/update-typescript-eslint.json", - "hidden": false, - "name": "update-typescript-eslint", - "version": "17.1.0-beta.1", - "originalFilePath": "/packages/eslint", - "path": "/nx-api/eslint/migrations/update-typescript-eslint", - "type": "migration" - }, - "/nx-api/eslint/migrations/17.1.0-package-updates": { - "description": "", - "file": "generated/packages/eslint/migrations/17.1.0-package-updates.json", - "hidden": false, - "name": "17.1.0-package-updates", - "version": "17.1.0-beta.1", - "originalFilePath": "/packages/eslint", - "path": "/nx-api/eslint/migrations/17.1.0-package-updates", - "type": "migration" - }, - "/nx-api/eslint/migrations/17.0.0-package-updates": { - "description": "", - "file": "generated/packages/eslint/migrations/17.0.0-package-updates.json", - "hidden": false, - "name": "17.0.0-package-updates", - "version": "17.0.0-rc.2", - "originalFilePath": "/packages/eslint", - "path": "/nx-api/eslint/migrations/17.0.0-package-updates", - "type": "migration" - }, - "/nx-api/eslint/migrations/update-17-0-0-rename-to-eslint": { - "description": "update-17-0-0-rename-to-eslint", - "file": "generated/packages/eslint/migrations/update-17-0-0-rename-to-eslint.json", - "hidden": false, - "name": "update-17-0-0-rename-to-eslint", - "version": "17.0.0-beta.7", - "originalFilePath": "/packages/eslint", - "path": "/nx-api/eslint/migrations/update-17-0-0-rename-to-eslint", - "type": "migration" } }, "path": "/nx-api/eslint" @@ -1924,16 +1784,6 @@ "originalFilePath": "/packages/eslint-plugin", "path": "/nx-api/eslint-plugin/migrations/update-19-1-0-rename-no-extra-semi", "type": "migration" - }, - "/nx-api/eslint-plugin/migrations/update-17-2-6-rename-workspace-rules": { - "description": "Rename workspace rules from @nx/workspace/name to @nx/workspace-name", - "file": "generated/packages/eslint-plugin/migrations/update-17-2-6-rename-workspace-rules.json", - "hidden": false, - "name": "update-17-2-6-rename-workspace-rules", - "version": "17.2.6-beta.1", - "originalFilePath": "/packages/eslint-plugin", - "path": "/nx-api/eslint-plugin/migrations/update-17-2-6-rename-workspace-rules", - "type": "migration" } }, "path": "/nx-api/eslint-plugin" @@ -2175,66 +2025,6 @@ "originalFilePath": "/packages/expo", "path": "/nx-api/expo/migrations/19.0.0-package-updates", "type": "migration" - }, - "/nx-api/expo/migrations/update-18-0-0-remove-block-list": { - "description": "Remove blockList in metro.config.js", - "file": "generated/packages/expo/migrations/update-18-0-0-remove-block-list.json", - "hidden": false, - "name": "update-18-0-0-remove-block-list", - "version": "18.0.0-beta.0", - "originalFilePath": "/packages/expo", - "path": "/nx-api/expo/migrations/update-18-0-0-remove-block-list", - "type": "migration" - }, - "/nx-api/expo/migrations/update-18-0-0-remove-symlink-target": { - "description": "Remove symlink target in project.json", - "file": "generated/packages/expo/migrations/update-18-0-0-remove-symlink-target.json", - "hidden": false, - "name": "update-18-0-0-remove-symlink-target", - "version": "18.0.0-beta.0", - "originalFilePath": "/packages/expo", - "path": "/nx-api/expo/migrations/update-18-0-0-remove-symlink-target", - "type": "migration" - }, - "/nx-api/expo/migrations/update-18-0-0-remove-eas-cli": { - "description": "Remove eas-cli from package.json", - "file": "generated/packages/expo/migrations/update-18-0-0-remove-eas-cli.json", - "hidden": false, - "name": "update-18-0-0-remove-eas-cli", - "version": "18.0.0-beta.0", - "originalFilePath": "/packages/expo", - "path": "/nx-api/expo/migrations/update-18-0-0-remove-eas-cli", - "type": "migration" - }, - "/nx-api/expo/migrations/update-18-0-0-remove-offset-export-outputDir": { - "description": "Remove the offset from the outputDir of the export target", - "file": "generated/packages/expo/migrations/update-18-0-0-remove-offset-export-outputDir.json", - "hidden": false, - "name": "update-18-0-0-remove-offset-export-outputDir", - "version": "18.0.0-beta.0", - "originalFilePath": "/packages/expo", - "path": "/nx-api/expo/migrations/update-18-0-0-remove-offset-export-outputDir", - "type": "migration" - }, - "/nx-api/expo/migrations/18.0.0-package-updates": { - "description": "", - "file": "generated/packages/expo/migrations/18.0.0-package-updates.json", - "hidden": false, - "name": "18.0.0-package-updates", - "version": "18.0.0-beta.0", - "originalFilePath": "/packages/expo", - "path": "/nx-api/expo/migrations/18.0.0-package-updates", - "type": "migration" - }, - "/nx-api/expo/migrations/17.1.0-package-updates": { - "description": "", - "file": "generated/packages/expo/migrations/17.1.0-package-updates.json", - "hidden": false, - "name": "17.1.0-package-updates", - "version": "17.1.0-beta.0", - "originalFilePath": "/packages/expo", - "path": "/nx-api/expo/migrations/17.1.0-package-updates", - "type": "migration" } }, "path": "/nx-api/expo" @@ -2468,26 +2258,6 @@ "originalFilePath": "/packages/jest", "path": "/nx-api/jest/migrations/19.2.0-package-updates", "type": "migration" - }, - "/nx-api/jest/migrations/17.2.0-package-updates": { - "description": "", - "file": "generated/packages/jest/migrations/17.2.0-package-updates.json", - "hidden": false, - "name": "17.2.0-package-updates", - "version": "17.2.0-beta.2", - "originalFilePath": "/packages/jest", - "path": "/nx-api/jest/migrations/17.2.0-package-updates", - "type": "migration" - }, - "/nx-api/jest/migrations/move-options-to-target-defaults": { - "description": "Move jest executor options to nx.json targetDefaults", - "file": "generated/packages/jest/migrations/move-options-to-target-defaults.json", - "hidden": false, - "name": "move-options-to-target-defaults", - "version": "17.1.0-beta.2", - "originalFilePath": "/packages/jest", - "path": "/nx-api/jest/migrations/move-options-to-target-defaults", - "type": "migration" } }, "path": "/nx-api/jest" @@ -2703,76 +2473,6 @@ "originalFilePath": "/packages/js", "path": "/nx-api/js/migrations/19.0.0-package-updates", "type": "migration" - }, - "/nx-api/js/migrations/18.2.0-package-updates": { - "description": "", - "file": "generated/packages/js/migrations/18.2.0-package-updates.json", - "hidden": false, - "name": "18.2.0-package-updates", - "version": "18.2.0-beta.0", - "originalFilePath": "/packages/js", - "path": "/nx-api/js/migrations/18.2.0-package-updates", - "type": "migration" - }, - "/nx-api/js/migrations/18.0.4-package-updates": { - "description": "", - "file": "generated/packages/js/migrations/18.0.4-package-updates.json", - "hidden": false, - "name": "18.0.4-package-updates", - "version": "18.0.4-beta.0", - "originalFilePath": "/packages/js", - "path": "/nx-api/js/migrations/18.0.4-package-updates", - "type": "migration" - }, - "/nx-api/js/migrations/17.3.0-beta.10-package-updates": { - "description": "", - "file": "generated/packages/js/migrations/17.3.0-beta.10-package-updates.json", - "hidden": false, - "name": "17.3.0-beta.10-package-updates", - "version": "17.3.0-beta.10", - "originalFilePath": "/packages/js", - "path": "/nx-api/js/migrations/17.3.0-beta.10-package-updates", - "type": "migration" - }, - "/nx-api/js/migrations/17.3.0-package-updates": { - "description": "", - "file": "generated/packages/js/migrations/17.3.0-package-updates.json", - "hidden": false, - "name": "17.3.0-package-updates", - "version": "17.3.0-beta.3", - "originalFilePath": "/packages/js", - "path": "/nx-api/js/migrations/17.3.0-package-updates", - "type": "migration" - }, - "/nx-api/js/migrations/17.1.0-package-updates": { - "description": "", - "file": "generated/packages/js/migrations/17.1.0-package-updates.json", - "hidden": false, - "name": "17.1.0-package-updates", - "version": "17.1.0-beta.4", - "originalFilePath": "/packages/js", - "path": "/nx-api/js/migrations/17.1.0-package-updates", - "type": "migration" - }, - "/nx-api/js/migrations/update-17-0-0-remove-deprecated-build-options": { - "description": "Remove deprecated build options", - "file": "generated/packages/js/migrations/update-17-0-0-remove-deprecated-build-options.json", - "hidden": false, - "name": "update-17-0-0-remove-deprecated-build-options", - "version": "17.0.2", - "originalFilePath": "/packages/js", - "path": "/nx-api/js/migrations/update-17-0-0-remove-deprecated-build-options", - "type": "migration" - }, - "/nx-api/js/migrations/17.0.0-package-updates": { - "description": "", - "file": "generated/packages/js/migrations/17.0.0-package-updates.json", - "hidden": false, - "name": "17.0.0-package-updates", - "version": "17.0.0-rc.2", - "originalFilePath": "/packages/js", - "path": "/nx-api/js/migrations/17.0.0-package-updates", - "type": "migration" } }, "path": "/nx-api/js" @@ -3176,36 +2876,6 @@ "originalFilePath": "/packages/next", "path": "/nx-api/next/migrations/19.0.3-package-updates", "type": "migration" - }, - "/nx-api/next/migrations/18.0.4-package-updates": { - "description": "", - "file": "generated/packages/next/migrations/18.0.4-package-updates.json", - "hidden": false, - "name": "18.0.4-package-updates", - "version": "18.0.4-beta.0", - "originalFilePath": "/packages/next", - "path": "/nx-api/next/migrations/18.0.4-package-updates", - "type": "migration" - }, - "/nx-api/next/migrations/17.3.1-beta.0-package-updates": { - "description": "", - "file": "generated/packages/next/migrations/17.3.1-beta.0-package-updates.json", - "hidden": false, - "name": "17.3.1-beta.0-package-updates", - "version": "17.3.1-beta.0", - "originalFilePath": "/packages/next", - "path": "/nx-api/next/migrations/17.3.1-beta.0-package-updates", - "type": "migration" - }, - "/nx-api/next/migrations/update-17-2-7": { - "description": "Remove patched eslint rule for @next/next/no-html-link-for-pages", - "file": "generated/packages/next/migrations/update-17-2-7.json", - "hidden": false, - "name": "update-17-2-7", - "version": "17.2.7", - "originalFilePath": "/packages/next", - "path": "/nx-api/next/migrations/update-17-2-7", - "type": "migration" } }, "path": "/nx-api/next" @@ -3279,26 +2949,6 @@ "originalFilePath": "/packages/node", "path": "/nx-api/node/migrations/20.4.0-package-updates", "type": "migration" - }, - "/nx-api/node/migrations/17.3.1-package-updates": { - "description": "", - "file": "generated/packages/node/migrations/17.3.1-package-updates.json", - "hidden": false, - "name": "17.3.1-package-updates", - "version": "17.3.1-beta.0", - "originalFilePath": "/packages/node", - "path": "/nx-api/node/migrations/17.3.1-package-updates", - "type": "migration" - }, - "/nx-api/node/migrations/17.3.0-package-updates": { - "description": "", - "file": "generated/packages/node/migrations/17.3.0-package-updates.json", - "hidden": false, - "name": "17.3.0-package-updates", - "version": "17.3.0-beta.3", - "originalFilePath": "/packages/node", - "path": "/nx-api/node/migrations/17.3.0-package-updates", - "type": "migration" } }, "path": "/nx-api/node" @@ -3363,26 +3013,6 @@ "originalFilePath": "/packages/nuxt", "path": "/nx-api/nuxt/migrations/add-vue-to-storybook-config", "type": "migration" - }, - "/nx-api/nuxt/migrations/18.3.0-package-updates": { - "description": "", - "file": "generated/packages/nuxt/migrations/18.3.0-package-updates.json", - "hidden": false, - "name": "18.3.0-package-updates", - "version": "18.3.0-beta.2", - "originalFilePath": "/packages/nuxt", - "path": "/nx-api/nuxt/migrations/18.3.0-package-updates", - "type": "migration" - }, - "/nx-api/nuxt/migrations/18.2.0-package-updates": { - "description": "", - "file": "generated/packages/nuxt/migrations/18.2.0-package-updates.json", - "hidden": false, - "name": "18.2.0-package-updates", - "version": "18.2.0-beta.0", - "originalFilePath": "/packages/nuxt", - "path": "/nx-api/nuxt/migrations/18.2.0-package-updates", - "type": "migration" } }, "path": "/nx-api/nuxt" @@ -3793,66 +3423,6 @@ "originalFilePath": "/packages/nx", "path": "/nx-api/nx/migrations/19-2-0-move-graph-cache-directory", "type": "migration" - }, - "/nx-api/nx/migrations/move-default-base-to-nx-json-root": { - "description": "Moves affected.defaultBase to defaultBase in `nx.json`", - "file": "generated/packages/nx/migrations/move-default-base-to-nx-json-root.json", - "hidden": false, - "name": "move-default-base-to-nx-json-root", - "version": "18.1.0-beta.3", - "originalFilePath": "/packages/nx", - "path": "/nx-api/nx/migrations/move-default-base-to-nx-json-root", - "type": "migration" - }, - "/nx-api/nx/migrations/18.0.0-disable-adding-plugins-for-existing-workspaces": { - "description": "Updates nx.json to disabled adding plugins when generating projects in an existing Nx workspace", - "file": "generated/packages/nx/migrations/18.0.0-disable-adding-plugins-for-existing-workspaces.json", - "hidden": false, - "name": "18.0.0-disable-adding-plugins-for-existing-workspaces", - "version": "18.0.0-beta.2", - "originalFilePath": "/packages/nx", - "path": "/nx-api/nx/migrations/18.0.0-disable-adding-plugins-for-existing-workspaces", - "type": "migration" - }, - "/nx-api/nx/migrations/17.3.0-update-nx-wrapper": { - "description": "Updates the nx wrapper.", - "file": "generated/packages/nx/migrations/17.3.0-update-nx-wrapper.json", - "hidden": false, - "name": "17.3.0-update-nx-wrapper", - "version": "17.3.0-beta.6", - "originalFilePath": "/packages/nx", - "path": "/nx-api/nx/migrations/17.3.0-update-nx-wrapper", - "type": "migration" - }, - "/nx-api/nx/migrations/rm-default-collection-npm-scope": { - "description": "Migration for v17.0.0-rc.1", - "file": "generated/packages/nx/migrations/rm-default-collection-npm-scope.json", - "hidden": false, - "name": "rm-default-collection-npm-scope", - "version": "17.0.0-rc.1", - "originalFilePath": "/packages/nx", - "path": "/nx-api/nx/migrations/rm-default-collection-npm-scope", - "type": "migration" - }, - "/nx-api/nx/migrations/17.0.0-use-minimal-config-for-tasks-runner-options": { - "description": "Use minimal config for tasksRunnerOptions", - "file": "generated/packages/nx/migrations/17.0.0-use-minimal-config-for-tasks-runner-options.json", - "hidden": false, - "name": "17.0.0-use-minimal-config-for-tasks-runner-options", - "version": "17.0.0-beta.3", - "originalFilePath": "/packages/nx", - "path": "/nx-api/nx/migrations/17.0.0-use-minimal-config-for-tasks-runner-options", - "type": "migration" - }, - "/nx-api/nx/migrations/17.0.0-move-cache-directory": { - "description": "Updates the default cache directory to .nx/cache", - "file": "generated/packages/nx/migrations/17.0.0-move-cache-directory.json", - "hidden": false, - "name": "17.0.0-move-cache-directory", - "version": "17.0.0-beta.1", - "originalFilePath": "/packages/nx", - "path": "/nx-api/nx/migrations/17.0.0-move-cache-directory", - "type": "migration" } }, "path": "/nx-api/nx" @@ -3937,26 +3507,6 @@ "originalFilePath": "/packages/playwright", "path": "/nx-api/playwright/migrations/19-6-0-use-serve-static-preview-for-command", "type": "migration" - }, - "/nx-api/playwright/migrations/18-1-0-remove-baseUrl-from-project-json": { - "description": "Remove invalid baseUrl option from @nx/playwright:playwright targets in project.json.", - "file": "generated/packages/playwright/migrations/18-1-0-remove-baseUrl-from-project-json.json", - "hidden": false, - "name": "18-1-0-remove-baseUrl-from-project-json", - "version": "18.1.0-beta.3", - "originalFilePath": "/packages/playwright", - "path": "/nx-api/playwright/migrations/18-1-0-remove-baseUrl-from-project-json", - "type": "migration" - }, - "/nx-api/playwright/migrations/17-3-1-add-project-to-config": { - "description": "Add project property to playwright config", - "file": "generated/packages/playwright/migrations/17-3-1-add-project-to-config.json", - "hidden": false, - "name": "17-3-1-add-project-to-config", - "version": "17.3.1-beta.0", - "originalFilePath": "/packages/playwright", - "path": "/nx-api/playwright/migrations/17-3-1-add-project-to-config", - "type": "migration" } }, "path": "/nx-api/playwright" @@ -4414,46 +3964,6 @@ "originalFilePath": "/packages/react", "path": "/nx-api/react/migrations/19.0.0-package-updates", "type": "migration" - }, - "/nx-api/react/migrations/fix-target-defaults-for-webpack": { - "description": "Ensure targetDefaults inputs for task hashing when '@nx/webpack:webpack' is used are correct for Module Federation.", - "file": "generated/packages/react/migrations/fix-target-defaults-for-webpack.json", - "hidden": false, - "name": "fix-target-defaults-for-webpack", - "version": "18.1.1-beta.0", - "originalFilePath": "/packages/react", - "path": "/nx-api/react/migrations/fix-target-defaults-for-webpack", - "type": "migration" - }, - "/nx-api/react/migrations/add-module-federation-env-var-to-target-defaults": { - "description": "Add NX_MF_DEV_SERVER_STATIC_REMOTES to inputs for task hashing when '@nx/webpack:webpack' is used for Module Federation.", - "file": "generated/packages/react/migrations/add-module-federation-env-var-to-target-defaults.json", - "hidden": false, - "name": "add-module-federation-env-var-to-target-defaults", - "version": "18.0.0-beta.0", - "originalFilePath": "/packages/react", - "path": "/nx-api/react/migrations/add-module-federation-env-var-to-target-defaults", - "type": "migration" - }, - "/nx-api/react/migrations/17.3.0-package-updates": { - "description": "", - "file": "generated/packages/react/migrations/17.3.0-package-updates.json", - "hidden": false, - "name": "17.3.0-package-updates", - "version": "17.3.0-beta.3", - "originalFilePath": "/packages/react", - "path": "/nx-api/react/migrations/17.3.0-package-updates", - "type": "migration" - }, - "/nx-api/react/migrations/17.0.0-beta.0-package-updates": { - "description": "", - "file": "generated/packages/react/migrations/17.0.0-beta.0-package-updates.json", - "hidden": false, - "name": "17.0.0-beta.0-package-updates", - "version": "17.0.0-beta.0", - "originalFilePath": "/packages/react", - "path": "/nx-api/react/migrations/17.0.0-beta.0-package-updates", - "type": "migration" } }, "path": "/nx-api/react" @@ -4721,96 +4231,6 @@ "originalFilePath": "/packages/react-native", "path": "/nx-api/react-native/migrations/19.0.0-package-updates", "type": "migration" - }, - "/nx-api/react-native/migrations/update-18-0-0-add-web-configuration": { - "description": "Add web configuration to react native projects", - "file": "generated/packages/react-native/migrations/update-18-0-0-add-web-configuration.json", - "hidden": false, - "name": "update-18-0-0-add-web-configuration", - "version": "18.0.0-beta.0", - "originalFilePath": "/packages/react-native", - "path": "/nx-api/react-native/migrations/update-18-0-0-add-web-configuration", - "type": "migration" - }, - "/nx-api/react-native/migrations/update-18-0-0-change-storybook-targets": { - "description": "Upgrade react native storybook target to use web", - "file": "generated/packages/react-native/migrations/update-18-0-0-change-storybook-targets.json", - "hidden": false, - "name": "update-18-0-0-change-storybook-targets", - "version": "18.0.0-beta.0", - "originalFilePath": "/packages/react-native", - "path": "/nx-api/react-native/migrations/update-18-0-0-change-storybook-targets", - "type": "migration" - }, - "/nx-api/react-native/migrations/update-18-0-0-remove-block-list": { - "description": "Remove blockList in metro.config.js.", - "file": "generated/packages/react-native/migrations/update-18-0-0-remove-block-list.json", - "hidden": false, - "name": "update-18-0-0-remove-block-list", - "version": "18.0.0-beta.0", - "originalFilePath": "/packages/react-native", - "path": "/nx-api/react-native/migrations/update-18-0-0-remove-block-list", - "type": "migration" - }, - "/nx-api/react-native/migrations/update-18-0-0-remove-metro": { - "description": "Remove metro-* and @react-native-community/cli-* from package.json devDependencies", - "file": "generated/packages/react-native/migrations/update-18-0-0-remove-metro.json", - "hidden": false, - "name": "update-18-0-0-remove-metro", - "version": "18.0.0-beta.0", - "originalFilePath": "/packages/react-native", - "path": "/nx-api/react-native/migrations/update-18-0-0-remove-metro", - "type": "migration" - }, - "/nx-api/react-native/migrations/update-18-0-0-remove-symlink-target": { - "description": "Remove ensure-symlink target", - "file": "generated/packages/react-native/migrations/update-18-0-0-remove-symlink-target.json", - "hidden": false, - "name": "update-18-0-0-remove-symlink-target", - "version": "18.0.0-beta.0", - "originalFilePath": "/packages/react-native", - "path": "/nx-api/react-native/migrations/update-18-0-0-remove-symlink-target", - "type": "migration" - }, - "/nx-api/react-native/migrations/update-18-0-0-add-upgrade-target": { - "description": "Add upgrade target to react native projects", - "file": "generated/packages/react-native/migrations/update-18-0-0-add-upgrade-target.json", - "hidden": false, - "name": "update-18-0-0-add-upgrade-target", - "version": "18.0.0-beta.0", - "originalFilePath": "/packages/react-native", - "path": "/nx-api/react-native/migrations/update-18-0-0-add-upgrade-target", - "type": "migration" - }, - "/nx-api/react-native/migrations/18.0.0-package-updates": { - "description": "", - "file": "generated/packages/react-native/migrations/18.0.0-package-updates.json", - "hidden": false, - "name": "18.0.0-package-updates", - "version": "18.0.0-beta.0", - "originalFilePath": "/packages/react-native", - "path": "/nx-api/react-native/migrations/18.0.0-package-updates", - "type": "migration" - }, - "/nx-api/react-native/migrations/17.3.0-package-updates": { - "description": "", - "file": "generated/packages/react-native/migrations/17.3.0-package-updates.json", - "hidden": false, - "name": "17.3.0-package-updates", - "version": "17.3.0-beta.3", - "originalFilePath": "/packages/react-native", - "path": "/nx-api/react-native/migrations/17.3.0-package-updates", - "type": "migration" - }, - "/nx-api/react-native/migrations/17.1.0-package-updates": { - "description": "", - "file": "generated/packages/react-native/migrations/17.1.0-package-updates.json", - "hidden": false, - "name": "17.1.0-package-updates", - "version": "17.1.0-beta.1", - "originalFilePath": "/packages/react-native", - "path": "/nx-api/react-native/migrations/17.1.0-package-updates", - "type": "migration" } }, "path": "/nx-api/react-native" @@ -5011,36 +4431,6 @@ "originalFilePath": "/packages/remix", "path": "/nx-api/remix/migrations/20.1.0-package-updates", "type": "migration" - }, - "/nx-api/remix/migrations/18.1.1-package-updates": { - "description": "", - "file": "generated/packages/remix/migrations/18.1.1-package-updates.json", - "hidden": false, - "name": "18.1.1-package-updates", - "version": "18.1.1-beta.0", - "originalFilePath": "/packages/remix", - "path": "/nx-api/remix/migrations/18.1.1-package-updates", - "type": "migration" - }, - "/nx-api/remix/migrations/18.1.0-package-updates": { - "description": "", - "file": "generated/packages/remix/migrations/18.1.0-package-updates.json", - "hidden": false, - "name": "18.1.0-package-updates", - "version": "18.1.0-beta.1", - "originalFilePath": "/packages/remix", - "path": "/nx-api/remix/migrations/18.1.0-package-updates", - "type": "migration" - }, - "/nx-api/remix/migrations/17.2.1-package-updates": { - "description": "", - "file": "generated/packages/remix/migrations/17.2.1-package-updates.json", - "hidden": false, - "name": "17.2.1-package-updates", - "version": "17.2.1-beta.0", - "originalFilePath": "/packages/remix", - "path": "/nx-api/remix/migrations/17.2.1-package-updates", - "type": "migration" } }, "path": "/nx-api/remix" @@ -5103,16 +4493,6 @@ "originalFilePath": "/packages/rollup", "path": "/nx-api/rollup/migrations/19.0.0-package-updates", "type": "migration" - }, - "/nx-api/rollup/migrations/18.2.0-package-updates": { - "description": "", - "file": "generated/packages/rollup/migrations/18.2.0-package-updates.json", - "hidden": false, - "name": "18.2.0-package-updates", - "version": "18.2.0-beta.1", - "originalFilePath": "/packages/rollup", - "path": "/nx-api/rollup/migrations/18.2.0-package-updates", - "type": "migration" } }, "path": "/nx-api/rollup" @@ -5350,26 +4730,6 @@ "originalFilePath": "/packages/rspack", "path": "/nx-api/rspack/migrations/19.3.0-package-updates", "type": "migration" - }, - "/nx-api/rspack/migrations/18.1.3-package-updates": { - "description": "", - "file": "generated/packages/rspack/migrations/18.1.3-package-updates.json", - "hidden": false, - "name": "18.1.3-package-updates", - "version": "18.1.3", - "originalFilePath": "/packages/rspack", - "path": "/nx-api/rspack/migrations/18.1.3-package-updates", - "type": "migration" - }, - "/nx-api/rspack/migrations/18.1.0-package-updates": { - "description": "", - "file": "generated/packages/rspack/migrations/18.1.0-package-updates.json", - "hidden": false, - "name": "18.1.0-package-updates", - "version": "18.1.0-beta.0", - "originalFilePath": "/packages/rspack", - "path": "/nx-api/rspack/migrations/18.1.0-package-updates", - "type": "migration" } }, "path": "/nx-api/rspack" @@ -5532,56 +4892,6 @@ "originalFilePath": "/packages/storybook", "path": "/nx-api/storybook/migrations/update-19-6-0-add-nx-packages", "type": "migration" - }, - "/nx-api/storybook/migrations/18.2.0-package-updates": { - "description": "", - "file": "generated/packages/storybook/migrations/18.2.0-package-updates.json", - "hidden": false, - "name": "18.2.0-package-updates", - "version": "18.2.0-beta.1", - "originalFilePath": "/packages/storybook", - "path": "/nx-api/storybook/migrations/18.2.0-package-updates", - "type": "migration" - }, - "/nx-api/storybook/migrations/17.2.0-beta.2-package-updates": { - "description": "", - "file": "generated/packages/storybook/migrations/17.2.0-beta.2-package-updates.json", - "hidden": false, - "name": "17.2.0-beta.2-package-updates", - "version": "17.2.0-beta.2", - "originalFilePath": "/packages/storybook", - "path": "/nx-api/storybook/migrations/17.2.0-beta.2-package-updates", - "type": "migration" - }, - "/nx-api/storybook/migrations/17.1.0-beta.4-package-updates": { - "description": "", - "file": "generated/packages/storybook/migrations/17.1.0-beta.4-package-updates.json", - "hidden": false, - "name": "17.1.0-beta.4-package-updates", - "version": "17.1.0-beta.4", - "originalFilePath": "/packages/storybook", - "path": "/nx-api/storybook/migrations/17.1.0-beta.4-package-updates", - "type": "migration" - }, - "/nx-api/storybook/migrations/17.1.0-package-updates": { - "description": "", - "file": "generated/packages/storybook/migrations/17.1.0-package-updates.json", - "hidden": false, - "name": "17.1.0-package-updates", - "version": "17.1.0-beta.3", - "originalFilePath": "/packages/storybook", - "path": "/nx-api/storybook/migrations/17.1.0-package-updates", - "type": "migration" - }, - "/nx-api/storybook/migrations/17.0.0-package-updates": { - "description": "", - "file": "generated/packages/storybook/migrations/17.0.0-package-updates.json", - "hidden": false, - "name": "17.0.0-package-updates", - "version": "17.0.0-rc.3", - "originalFilePath": "/packages/storybook", - "path": "/nx-api/storybook/migrations/17.0.0-package-updates", - "type": "migration" } }, "path": "/nx-api/storybook" @@ -5781,66 +5091,6 @@ "originalFilePath": "/packages/vite", "path": "/nx-api/vite/migrations/update-19-6-0-add-depends-on-for-preview-server", "type": "migration" - }, - "/nx-api/vite/migrations/18.1.0-package-updates": { - "description": "", - "file": "generated/packages/vite/migrations/18.1.0-package-updates.json", - "hidden": false, - "name": "18.1.0-package-updates", - "version": "18.1.0-beta.1", - "originalFilePath": "/packages/vite", - "path": "/nx-api/vite/migrations/18.1.0-package-updates", - "type": "migration" - }, - "/nx-api/vite/migrations/vitest-coverage-and-reporters": { - "description": "Move the vitest coverage thresholds in their own object if exists and add reporters.", - "file": "generated/packages/vite/migrations/vitest-coverage-and-reporters.json", - "hidden": false, - "name": "vitest-coverage-and-reporters", - "version": "17.3.0-beta.0", - "originalFilePath": "/packages/vite", - "path": "/nx-api/vite/migrations/vitest-coverage-and-reporters", - "type": "migration" - }, - "/nx-api/vite/migrations/17.3.0-package-updates": { - "description": "", - "file": "generated/packages/vite/migrations/17.3.0-package-updates.json", - "hidden": false, - "name": "17.3.0-package-updates", - "version": "17.3.0-beta.0", - "originalFilePath": "/packages/vite", - "path": "/nx-api/vite/migrations/17.3.0-package-updates", - "type": "migration" - }, - "/nx-api/vite/migrations/update-vite-config": { - "description": "Update vite config.", - "file": "generated/packages/vite/migrations/update-vite-config.json", - "hidden": false, - "name": "update-vite-config", - "version": "17.2.0-beta.10", - "originalFilePath": "/packages/vite", - "path": "/nx-api/vite/migrations/update-vite-config", - "type": "migration" - }, - "/nx-api/vite/migrations/17.2.0-package-updates": { - "description": "", - "file": "generated/packages/vite/migrations/17.2.0-package-updates.json", - "hidden": false, - "name": "17.2.0-package-updates", - "version": "17.2.0-beta.2", - "originalFilePath": "/packages/vite", - "path": "/nx-api/vite/migrations/17.2.0-package-updates", - "type": "migration" - }, - "/nx-api/vite/migrations/move-target-defaults": { - "description": "Move target defaults", - "file": "generated/packages/vite/migrations/move-target-defaults.json", - "hidden": false, - "name": "move-target-defaults", - "version": "17.1.0-beta.2", - "originalFilePath": "/packages/vite", - "path": "/nx-api/vite/migrations/move-target-defaults", - "type": "migration" } }, "path": "/nx-api/vite" @@ -5951,16 +5201,6 @@ "originalFilePath": "/packages/vue", "path": "/nx-api/vue/migrations/19.4.3-package-updates", "type": "migration" - }, - "/nx-api/vue/migrations/17.2.0-package-updates": { - "description": "", - "file": "generated/packages/vue/migrations/17.2.0-package-updates.json", - "hidden": false, - "name": "17.2.0-package-updates", - "version": "17.2.0-beta.2", - "originalFilePath": "/packages/vue", - "path": "/nx-api/vue/migrations/17.2.0-package-updates", - "type": "migration" } }, "path": "/nx-api/vue" @@ -6025,18 +5265,7 @@ "type": "generator" } }, - "migrations": { - "/nx-api/web/migrations/17.3.0-package-updates": { - "description": "", - "file": "generated/packages/web/migrations/17.3.0-package-updates.json", - "hidden": false, - "name": "17.3.0-package-updates", - "version": "17.3.0-beta.3", - "originalFilePath": "/packages/web", - "path": "/nx-api/web/migrations/17.3.0-package-updates", - "type": "migration" - } - }, + "migrations": {}, "path": "/nx-api/web" }, "webpack": { @@ -6176,16 +5405,6 @@ "originalFilePath": "/packages/webpack", "path": "/nx-api/webpack/migrations/19.6.0-package-updates", "type": "migration" - }, - "/nx-api/webpack/migrations/update-17-2-1-webpack-config-setup": { - "description": "Add webpack.config.js file when webpackConfig is not defined", - "file": "generated/packages/webpack/migrations/update-17-2-1-webpack-config-setup.json", - "hidden": false, - "name": "update-17-2-1-webpack-config-setup", - "version": "17.2.1-beta.0", - "originalFilePath": "/packages/webpack", - "path": "/nx-api/webpack/migrations/update-17-2-1-webpack-config-setup", - "type": "migration" } }, "path": "/nx-api/webpack" @@ -6354,36 +5573,6 @@ "originalFilePath": "/packages/workspace", "path": "/nx-api/workspace/migrations/19.5.1-package-updates", "type": "migration" - }, - "/nx-api/workspace/migrations/18.2.0-package-updates": { - "description": "", - "file": "generated/packages/workspace/migrations/18.2.0-package-updates.json", - "hidden": false, - "name": "18.2.0-package-updates", - "version": "18.2.0-beta.0", - "originalFilePath": "/packages/workspace", - "path": "/nx-api/workspace/migrations/18.2.0-package-updates", - "type": "migration" - }, - "/nx-api/workspace/migrations/17.3.0-package-updates": { - "description": "", - "file": "generated/packages/workspace/migrations/17.3.0-package-updates.json", - "hidden": false, - "name": "17.3.0-package-updates", - "version": "17.3.0-beta.10", - "originalFilePath": "/packages/workspace", - "path": "/nx-api/workspace/migrations/17.3.0-package-updates", - "type": "migration" - }, - "/nx-api/workspace/migrations/17.1.0-package-updates": { - "description": "", - "file": "generated/packages/workspace/migrations/17.1.0-package-updates.json", - "hidden": false, - "name": "17.1.0-package-updates", - "version": "17.1.0-beta.4", - "originalFilePath": "/packages/workspace", - "path": "/nx-api/workspace/migrations/17.1.0-package-updates", - "type": "migration" } }, "path": "/nx-api/workspace" diff --git a/docs/generated/packages-metadata.json b/docs/generated/packages-metadata.json index bd3d6da2d2..96eca84a29 100644 --- a/docs/generated/packages-metadata.json +++ b/docs/generated/packages-metadata.json @@ -1383,36 +1383,6 @@ "originalFilePath": "/packages/cypress", "path": "cypress/migrations/19.1.0-package-updates", "type": "migration" - }, - { - "description": "Update to Cypress ^13.6.6 if the workspace is using Cypress v13 to ensure workspaces don't use v13.6.5 which has an issue when verifying Cypress.", - "file": "generated/packages/cypress/migrations/update-cypress-version-13-6-6.json", - "hidden": false, - "name": "update-cypress-version-13-6-6", - "version": "18.1.0-beta.3", - "originalFilePath": "/packages/cypress", - "path": "cypress/migrations/update-cypress-version-13-6-6", - "type": "migration" - }, - { - "description": "", - "file": "generated/packages/cypress/migrations/17.3.0-package-updates.json", - "hidden": false, - "name": "17.3.0-package-updates", - "version": "17.3.0-beta.3", - "originalFilePath": "/packages/cypress", - "path": "cypress/migrations/17.3.0-package-updates", - "type": "migration" - }, - { - "description": "", - "file": "generated/packages/cypress/migrations/17.2.0-beta.2-package-updates.json", - "hidden": false, - "name": "17.2.0-beta.2-package-updates", - "version": "17.2.0-beta.2", - "originalFilePath": "/packages/cypress", - "path": "cypress/migrations/17.2.0-beta.2-package-updates", - "type": "migration" } ], "githubRoot": "https://github.com/nrwl/nx/blob/master", @@ -1515,26 +1485,6 @@ "originalFilePath": "/packages/detox", "path": "detox/migrations/19.2.0-package-updates", "type": "migration" - }, - { - "description": "", - "file": "generated/packages/detox/migrations/18.1.0-package-updates.json", - "hidden": false, - "name": "18.1.0-package-updates", - "version": "18.1.0-beta.0", - "originalFilePath": "/packages/detox", - "path": "detox/migrations/18.1.0-package-updates", - "type": "migration" - }, - { - "description": "", - "file": "generated/packages/detox/migrations/18.0.0-package-updates.json", - "hidden": false, - "name": "18.0.0-package-updates", - "version": "18.0.0-beta.0", - "originalFilePath": "/packages/detox", - "path": "detox/migrations/18.0.0-package-updates", - "type": "migration" } ], "githubRoot": "https://github.com/nrwl/nx/blob/master", @@ -1764,96 +1714,6 @@ "originalFilePath": "/packages/eslint", "path": "eslint/migrations/19.5.0-package-updates", "type": "migration" - }, - { - "description": "", - "file": "generated/packages/eslint/migrations/18.2.0-package-updates.json", - "hidden": false, - "name": "18.2.0-package-updates", - "version": "18.2.0-beta.0", - "originalFilePath": "/packages/eslint", - "path": "eslint/migrations/18.2.0-package-updates", - "type": "migration" - }, - { - "description": "", - "file": "generated/packages/eslint/migrations/17.3.0-package-updates.json", - "hidden": false, - "name": "17.3.0-package-updates", - "version": "17.3.0-beta.0", - "originalFilePath": "/packages/eslint", - "path": "eslint/migrations/17.3.0-package-updates", - "type": "migration" - }, - { - "description": "Move executor options to target defaults", - "file": "generated/packages/eslint/migrations/move-options-to-target-defaults.json", - "hidden": false, - "name": "move-options-to-target-defaults", - "version": "17.2.9", - "originalFilePath": "/packages/eslint", - "path": "eslint/migrations/move-options-to-target-defaults", - "type": "migration" - }, - { - "description": "", - "file": "generated/packages/eslint/migrations/17.2.0-package-updates.json", - "hidden": false, - "name": "17.2.0-package-updates", - "version": "17.2.0-beta.2", - "originalFilePath": "/packages/eslint", - "path": "eslint/migrations/17.2.0-package-updates", - "type": "migration" - }, - { - "description": "Simplify eslintFilePatterns", - "file": "generated/packages/eslint/migrations/simplify-eslint-patterns.json", - "hidden": false, - "name": "simplify-eslint-patterns", - "version": "17.2.0-beta.0", - "originalFilePath": "/packages/eslint", - "path": "eslint/migrations/simplify-eslint-patterns", - "type": "migration" - }, - { - "description": "Updates for @typescript-utils/utils v6.9.1+", - "file": "generated/packages/eslint/migrations/update-typescript-eslint.json", - "hidden": false, - "name": "update-typescript-eslint", - "version": "17.1.0-beta.1", - "originalFilePath": "/packages/eslint", - "path": "eslint/migrations/update-typescript-eslint", - "type": "migration" - }, - { - "description": "", - "file": "generated/packages/eslint/migrations/17.1.0-package-updates.json", - "hidden": false, - "name": "17.1.0-package-updates", - "version": "17.1.0-beta.1", - "originalFilePath": "/packages/eslint", - "path": "eslint/migrations/17.1.0-package-updates", - "type": "migration" - }, - { - "description": "", - "file": "generated/packages/eslint/migrations/17.0.0-package-updates.json", - "hidden": false, - "name": "17.0.0-package-updates", - "version": "17.0.0-rc.2", - "originalFilePath": "/packages/eslint", - "path": "eslint/migrations/17.0.0-package-updates", - "type": "migration" - }, - { - "description": "update-17-0-0-rename-to-eslint", - "file": "generated/packages/eslint/migrations/update-17-0-0-rename-to-eslint.json", - "hidden": false, - "name": "update-17-0-0-rename-to-eslint", - "version": "17.0.0-beta.7", - "originalFilePath": "/packages/eslint", - "path": "eslint/migrations/update-17-0-0-rename-to-eslint", - "type": "migration" } ], "githubRoot": "https://github.com/nrwl/nx/blob/master", @@ -1911,16 +1771,6 @@ "originalFilePath": "/packages/eslint-plugin", "path": "eslint-plugin/migrations/update-19-1-0-rename-no-extra-semi", "type": "migration" - }, - { - "description": "Rename workspace rules from @nx/workspace/name to @nx/workspace-name", - "file": "generated/packages/eslint-plugin/migrations/update-17-2-6-rename-workspace-rules.json", - "hidden": false, - "name": "update-17-2-6-rename-workspace-rules", - "version": "17.2.6-beta.1", - "originalFilePath": "/packages/eslint-plugin", - "path": "eslint-plugin/migrations/update-17-2-6-rename-workspace-rules", - "type": "migration" } ], "githubRoot": "https://github.com/nrwl/nx/blob/master", @@ -2161,66 +2011,6 @@ "originalFilePath": "/packages/expo", "path": "expo/migrations/19.0.0-package-updates", "type": "migration" - }, - { - "description": "Remove blockList in metro.config.js", - "file": "generated/packages/expo/migrations/update-18-0-0-remove-block-list.json", - "hidden": false, - "name": "update-18-0-0-remove-block-list", - "version": "18.0.0-beta.0", - "originalFilePath": "/packages/expo", - "path": "expo/migrations/update-18-0-0-remove-block-list", - "type": "migration" - }, - { - "description": "Remove symlink target in project.json", - "file": "generated/packages/expo/migrations/update-18-0-0-remove-symlink-target.json", - "hidden": false, - "name": "update-18-0-0-remove-symlink-target", - "version": "18.0.0-beta.0", - "originalFilePath": "/packages/expo", - "path": "expo/migrations/update-18-0-0-remove-symlink-target", - "type": "migration" - }, - { - "description": "Remove eas-cli from package.json", - "file": "generated/packages/expo/migrations/update-18-0-0-remove-eas-cli.json", - "hidden": false, - "name": "update-18-0-0-remove-eas-cli", - "version": "18.0.0-beta.0", - "originalFilePath": "/packages/expo", - "path": "expo/migrations/update-18-0-0-remove-eas-cli", - "type": "migration" - }, - { - "description": "Remove the offset from the outputDir of the export target", - "file": "generated/packages/expo/migrations/update-18-0-0-remove-offset-export-outputDir.json", - "hidden": false, - "name": "update-18-0-0-remove-offset-export-outputDir", - "version": "18.0.0-beta.0", - "originalFilePath": "/packages/expo", - "path": "expo/migrations/update-18-0-0-remove-offset-export-outputDir", - "type": "migration" - }, - { - "description": "", - "file": "generated/packages/expo/migrations/18.0.0-package-updates.json", - "hidden": false, - "name": "18.0.0-package-updates", - "version": "18.0.0-beta.0", - "originalFilePath": "/packages/expo", - "path": "expo/migrations/18.0.0-package-updates", - "type": "migration" - }, - { - "description": "", - "file": "generated/packages/expo/migrations/17.1.0-package-updates.json", - "hidden": false, - "name": "17.1.0-package-updates", - "version": "17.1.0-beta.0", - "originalFilePath": "/packages/expo", - "path": "expo/migrations/17.1.0-package-updates", - "type": "migration" } ], "githubRoot": "https://github.com/nrwl/nx/blob/master", @@ -2451,26 +2241,6 @@ "originalFilePath": "/packages/jest", "path": "jest/migrations/19.2.0-package-updates", "type": "migration" - }, - { - "description": "", - "file": "generated/packages/jest/migrations/17.2.0-package-updates.json", - "hidden": false, - "name": "17.2.0-package-updates", - "version": "17.2.0-beta.2", - "originalFilePath": "/packages/jest", - "path": "jest/migrations/17.2.0-package-updates", - "type": "migration" - }, - { - "description": "Move jest executor options to nx.json targetDefaults", - "file": "generated/packages/jest/migrations/move-options-to-target-defaults.json", - "hidden": false, - "name": "move-options-to-target-defaults", - "version": "17.1.0-beta.2", - "originalFilePath": "/packages/jest", - "path": "jest/migrations/move-options-to-target-defaults", - "type": "migration" } ], "githubRoot": "https://github.com/nrwl/nx/blob/master", @@ -2685,76 +2455,6 @@ "originalFilePath": "/packages/js", "path": "js/migrations/19.0.0-package-updates", "type": "migration" - }, - { - "description": "", - "file": "generated/packages/js/migrations/18.2.0-package-updates.json", - "hidden": false, - "name": "18.2.0-package-updates", - "version": "18.2.0-beta.0", - "originalFilePath": "/packages/js", - "path": "js/migrations/18.2.0-package-updates", - "type": "migration" - }, - { - "description": "", - "file": "generated/packages/js/migrations/18.0.4-package-updates.json", - "hidden": false, - "name": "18.0.4-package-updates", - "version": "18.0.4-beta.0", - "originalFilePath": "/packages/js", - "path": "js/migrations/18.0.4-package-updates", - "type": "migration" - }, - { - "description": "", - "file": "generated/packages/js/migrations/17.3.0-beta.10-package-updates.json", - "hidden": false, - "name": "17.3.0-beta.10-package-updates", - "version": "17.3.0-beta.10", - "originalFilePath": "/packages/js", - "path": "js/migrations/17.3.0-beta.10-package-updates", - "type": "migration" - }, - { - "description": "", - "file": "generated/packages/js/migrations/17.3.0-package-updates.json", - "hidden": false, - "name": "17.3.0-package-updates", - "version": "17.3.0-beta.3", - "originalFilePath": "/packages/js", - "path": "js/migrations/17.3.0-package-updates", - "type": "migration" - }, - { - "description": "", - "file": "generated/packages/js/migrations/17.1.0-package-updates.json", - "hidden": false, - "name": "17.1.0-package-updates", - "version": "17.1.0-beta.4", - "originalFilePath": "/packages/js", - "path": "js/migrations/17.1.0-package-updates", - "type": "migration" - }, - { - "description": "Remove deprecated build options", - "file": "generated/packages/js/migrations/update-17-0-0-remove-deprecated-build-options.json", - "hidden": false, - "name": "update-17-0-0-remove-deprecated-build-options", - "version": "17.0.2", - "originalFilePath": "/packages/js", - "path": "js/migrations/update-17-0-0-remove-deprecated-build-options", - "type": "migration" - }, - { - "description": "", - "file": "generated/packages/js/migrations/17.0.0-package-updates.json", - "hidden": false, - "name": "17.0.0-package-updates", - "version": "17.0.0-rc.2", - "originalFilePath": "/packages/js", - "path": "js/migrations/17.0.0-package-updates", - "type": "migration" } ], "githubRoot": "https://github.com/nrwl/nx/blob/master", @@ -3155,36 +2855,6 @@ "originalFilePath": "/packages/next", "path": "next/migrations/19.0.3-package-updates", "type": "migration" - }, - { - "description": "", - "file": "generated/packages/next/migrations/18.0.4-package-updates.json", - "hidden": false, - "name": "18.0.4-package-updates", - "version": "18.0.4-beta.0", - "originalFilePath": "/packages/next", - "path": "next/migrations/18.0.4-package-updates", - "type": "migration" - }, - { - "description": "", - "file": "generated/packages/next/migrations/17.3.1-beta.0-package-updates.json", - "hidden": false, - "name": "17.3.1-beta.0-package-updates", - "version": "17.3.1-beta.0", - "originalFilePath": "/packages/next", - "path": "next/migrations/17.3.1-beta.0-package-updates", - "type": "migration" - }, - { - "description": "Remove patched eslint rule for @next/next/no-html-link-for-pages", - "file": "generated/packages/next/migrations/update-17-2-7.json", - "hidden": false, - "name": "update-17-2-7", - "version": "17.2.7", - "originalFilePath": "/packages/next", - "path": "next/migrations/update-17-2-7", - "type": "migration" } ], "githubRoot": "https://github.com/nrwl/nx/blob/master", @@ -3257,26 +2927,6 @@ "originalFilePath": "/packages/node", "path": "node/migrations/20.4.0-package-updates", "type": "migration" - }, - { - "description": "", - "file": "generated/packages/node/migrations/17.3.1-package-updates.json", - "hidden": false, - "name": "17.3.1-package-updates", - "version": "17.3.1-beta.0", - "originalFilePath": "/packages/node", - "path": "node/migrations/17.3.1-package-updates", - "type": "migration" - }, - { - "description": "", - "file": "generated/packages/node/migrations/17.3.0-package-updates.json", - "hidden": false, - "name": "17.3.0-package-updates", - "version": "17.3.0-beta.3", - "originalFilePath": "/packages/node", - "path": "node/migrations/17.3.0-package-updates", - "type": "migration" } ], "githubRoot": "https://github.com/nrwl/nx/blob/master", @@ -3340,26 +2990,6 @@ "originalFilePath": "/packages/nuxt", "path": "nuxt/migrations/add-vue-to-storybook-config", "type": "migration" - }, - { - "description": "", - "file": "generated/packages/nuxt/migrations/18.3.0-package-updates.json", - "hidden": false, - "name": "18.3.0-package-updates", - "version": "18.3.0-beta.2", - "originalFilePath": "/packages/nuxt", - "path": "nuxt/migrations/18.3.0-package-updates", - "type": "migration" - }, - { - "description": "", - "file": "generated/packages/nuxt/migrations/18.2.0-package-updates.json", - "hidden": false, - "name": "18.2.0-package-updates", - "version": "18.2.0-beta.0", - "originalFilePath": "/packages/nuxt", - "path": "nuxt/migrations/18.2.0-package-updates", - "type": "migration" } ], "githubRoot": "https://github.com/nrwl/nx/blob/master", @@ -3769,66 +3399,6 @@ "originalFilePath": "/packages/nx", "path": "nx/migrations/19-2-0-move-graph-cache-directory", "type": "migration" - }, - { - "description": "Moves affected.defaultBase to defaultBase in `nx.json`", - "file": "generated/packages/nx/migrations/move-default-base-to-nx-json-root.json", - "hidden": false, - "name": "move-default-base-to-nx-json-root", - "version": "18.1.0-beta.3", - "originalFilePath": "/packages/nx", - "path": "nx/migrations/move-default-base-to-nx-json-root", - "type": "migration" - }, - { - "description": "Updates nx.json to disabled adding plugins when generating projects in an existing Nx workspace", - "file": "generated/packages/nx/migrations/18.0.0-disable-adding-plugins-for-existing-workspaces.json", - "hidden": false, - "name": "18.0.0-disable-adding-plugins-for-existing-workspaces", - "version": "18.0.0-beta.2", - "originalFilePath": "/packages/nx", - "path": "nx/migrations/18.0.0-disable-adding-plugins-for-existing-workspaces", - "type": "migration" - }, - { - "description": "Updates the nx wrapper.", - "file": "generated/packages/nx/migrations/17.3.0-update-nx-wrapper.json", - "hidden": false, - "name": "17.3.0-update-nx-wrapper", - "version": "17.3.0-beta.6", - "originalFilePath": "/packages/nx", - "path": "nx/migrations/17.3.0-update-nx-wrapper", - "type": "migration" - }, - { - "description": "Migration for v17.0.0-rc.1", - "file": "generated/packages/nx/migrations/rm-default-collection-npm-scope.json", - "hidden": false, - "name": "rm-default-collection-npm-scope", - "version": "17.0.0-rc.1", - "originalFilePath": "/packages/nx", - "path": "nx/migrations/rm-default-collection-npm-scope", - "type": "migration" - }, - { - "description": "Use minimal config for tasksRunnerOptions", - "file": "generated/packages/nx/migrations/17.0.0-use-minimal-config-for-tasks-runner-options.json", - "hidden": false, - "name": "17.0.0-use-minimal-config-for-tasks-runner-options", - "version": "17.0.0-beta.3", - "originalFilePath": "/packages/nx", - "path": "nx/migrations/17.0.0-use-minimal-config-for-tasks-runner-options", - "type": "migration" - }, - { - "description": "Updates the default cache directory to .nx/cache", - "file": "generated/packages/nx/migrations/17.0.0-move-cache-directory.json", - "hidden": false, - "name": "17.0.0-move-cache-directory", - "version": "17.0.0-beta.1", - "originalFilePath": "/packages/nx", - "path": "nx/migrations/17.0.0-move-cache-directory", - "type": "migration" } ], "githubRoot": "https://github.com/nrwl/nx/blob/master", @@ -3912,26 +3482,6 @@ "originalFilePath": "/packages/playwright", "path": "playwright/migrations/19-6-0-use-serve-static-preview-for-command", "type": "migration" - }, - { - "description": "Remove invalid baseUrl option from @nx/playwright:playwright targets in project.json.", - "file": "generated/packages/playwright/migrations/18-1-0-remove-baseUrl-from-project-json.json", - "hidden": false, - "name": "18-1-0-remove-baseUrl-from-project-json", - "version": "18.1.0-beta.3", - "originalFilePath": "/packages/playwright", - "path": "playwright/migrations/18-1-0-remove-baseUrl-from-project-json", - "type": "migration" - }, - { - "description": "Add project property to playwright config", - "file": "generated/packages/playwright/migrations/17-3-1-add-project-to-config.json", - "hidden": false, - "name": "17-3-1-add-project-to-config", - "version": "17.3.1-beta.0", - "originalFilePath": "/packages/playwright", - "path": "playwright/migrations/17-3-1-add-project-to-config", - "type": "migration" } ], "githubRoot": "https://github.com/nrwl/nx/blob/master", @@ -4387,46 +3937,6 @@ "originalFilePath": "/packages/react", "path": "react/migrations/19.0.0-package-updates", "type": "migration" - }, - { - "description": "Ensure targetDefaults inputs for task hashing when '@nx/webpack:webpack' is used are correct for Module Federation.", - "file": "generated/packages/react/migrations/fix-target-defaults-for-webpack.json", - "hidden": false, - "name": "fix-target-defaults-for-webpack", - "version": "18.1.1-beta.0", - "originalFilePath": "/packages/react", - "path": "react/migrations/fix-target-defaults-for-webpack", - "type": "migration" - }, - { - "description": "Add NX_MF_DEV_SERVER_STATIC_REMOTES to inputs for task hashing when '@nx/webpack:webpack' is used for Module Federation.", - "file": "generated/packages/react/migrations/add-module-federation-env-var-to-target-defaults.json", - "hidden": false, - "name": "add-module-federation-env-var-to-target-defaults", - "version": "18.0.0-beta.0", - "originalFilePath": "/packages/react", - "path": "react/migrations/add-module-federation-env-var-to-target-defaults", - "type": "migration" - }, - { - "description": "", - "file": "generated/packages/react/migrations/17.3.0-package-updates.json", - "hidden": false, - "name": "17.3.0-package-updates", - "version": "17.3.0-beta.3", - "originalFilePath": "/packages/react", - "path": "react/migrations/17.3.0-package-updates", - "type": "migration" - }, - { - "description": "", - "file": "generated/packages/react/migrations/17.0.0-beta.0-package-updates.json", - "hidden": false, - "name": "17.0.0-beta.0-package-updates", - "version": "17.0.0-beta.0", - "originalFilePath": "/packages/react", - "path": "react/migrations/17.0.0-beta.0-package-updates", - "type": "migration" } ], "githubRoot": "https://github.com/nrwl/nx/blob/master", @@ -4693,96 +4203,6 @@ "originalFilePath": "/packages/react-native", "path": "react-native/migrations/19.0.0-package-updates", "type": "migration" - }, - { - "description": "Add web configuration to react native projects", - "file": "generated/packages/react-native/migrations/update-18-0-0-add-web-configuration.json", - "hidden": false, - "name": "update-18-0-0-add-web-configuration", - "version": "18.0.0-beta.0", - "originalFilePath": "/packages/react-native", - "path": "react-native/migrations/update-18-0-0-add-web-configuration", - "type": "migration" - }, - { - "description": "Upgrade react native storybook target to use web", - "file": "generated/packages/react-native/migrations/update-18-0-0-change-storybook-targets.json", - "hidden": false, - "name": "update-18-0-0-change-storybook-targets", - "version": "18.0.0-beta.0", - "originalFilePath": "/packages/react-native", - "path": "react-native/migrations/update-18-0-0-change-storybook-targets", - "type": "migration" - }, - { - "description": "Remove blockList in metro.config.js.", - "file": "generated/packages/react-native/migrations/update-18-0-0-remove-block-list.json", - "hidden": false, - "name": "update-18-0-0-remove-block-list", - "version": "18.0.0-beta.0", - "originalFilePath": "/packages/react-native", - "path": "react-native/migrations/update-18-0-0-remove-block-list", - "type": "migration" - }, - { - "description": "Remove metro-* and @react-native-community/cli-* from package.json devDependencies", - "file": "generated/packages/react-native/migrations/update-18-0-0-remove-metro.json", - "hidden": false, - "name": "update-18-0-0-remove-metro", - "version": "18.0.0-beta.0", - "originalFilePath": "/packages/react-native", - "path": "react-native/migrations/update-18-0-0-remove-metro", - "type": "migration" - }, - { - "description": "Remove ensure-symlink target", - "file": "generated/packages/react-native/migrations/update-18-0-0-remove-symlink-target.json", - "hidden": false, - "name": "update-18-0-0-remove-symlink-target", - "version": "18.0.0-beta.0", - "originalFilePath": "/packages/react-native", - "path": "react-native/migrations/update-18-0-0-remove-symlink-target", - "type": "migration" - }, - { - "description": "Add upgrade target to react native projects", - "file": "generated/packages/react-native/migrations/update-18-0-0-add-upgrade-target.json", - "hidden": false, - "name": "update-18-0-0-add-upgrade-target", - "version": "18.0.0-beta.0", - "originalFilePath": "/packages/react-native", - "path": "react-native/migrations/update-18-0-0-add-upgrade-target", - "type": "migration" - }, - { - "description": "", - "file": "generated/packages/react-native/migrations/18.0.0-package-updates.json", - "hidden": false, - "name": "18.0.0-package-updates", - "version": "18.0.0-beta.0", - "originalFilePath": "/packages/react-native", - "path": "react-native/migrations/18.0.0-package-updates", - "type": "migration" - }, - { - "description": "", - "file": "generated/packages/react-native/migrations/17.3.0-package-updates.json", - "hidden": false, - "name": "17.3.0-package-updates", - "version": "17.3.0-beta.3", - "originalFilePath": "/packages/react-native", - "path": "react-native/migrations/17.3.0-package-updates", - "type": "migration" - }, - { - "description": "", - "file": "generated/packages/react-native/migrations/17.1.0-package-updates.json", - "hidden": false, - "name": "17.1.0-package-updates", - "version": "17.1.0-beta.1", - "originalFilePath": "/packages/react-native", - "path": "react-native/migrations/17.1.0-package-updates", - "type": "migration" } ], "githubRoot": "https://github.com/nrwl/nx/blob/master", @@ -4982,36 +4402,6 @@ "originalFilePath": "/packages/remix", "path": "remix/migrations/20.1.0-package-updates", "type": "migration" - }, - { - "description": "", - "file": "generated/packages/remix/migrations/18.1.1-package-updates.json", - "hidden": false, - "name": "18.1.1-package-updates", - "version": "18.1.1-beta.0", - "originalFilePath": "/packages/remix", - "path": "remix/migrations/18.1.1-package-updates", - "type": "migration" - }, - { - "description": "", - "file": "generated/packages/remix/migrations/18.1.0-package-updates.json", - "hidden": false, - "name": "18.1.0-package-updates", - "version": "18.1.0-beta.1", - "originalFilePath": "/packages/remix", - "path": "remix/migrations/18.1.0-package-updates", - "type": "migration" - }, - { - "description": "", - "file": "generated/packages/remix/migrations/17.2.1-package-updates.json", - "hidden": false, - "name": "17.2.1-package-updates", - "version": "17.2.1-beta.0", - "originalFilePath": "/packages/remix", - "path": "remix/migrations/17.2.1-package-updates", - "type": "migration" } ], "githubRoot": "https://github.com/nrwl/nx/blob/master", @@ -5073,16 +4463,6 @@ "originalFilePath": "/packages/rollup", "path": "rollup/migrations/19.0.0-package-updates", "type": "migration" - }, - { - "description": "", - "file": "generated/packages/rollup/migrations/18.2.0-package-updates.json", - "hidden": false, - "name": "18.2.0-package-updates", - "version": "18.2.0-beta.1", - "originalFilePath": "/packages/rollup", - "path": "rollup/migrations/18.2.0-package-updates", - "type": "migration" } ], "githubRoot": "https://github.com/nrwl/nx/blob/master", @@ -5318,26 +4698,6 @@ "originalFilePath": "/packages/rspack", "path": "rspack/migrations/19.3.0-package-updates", "type": "migration" - }, - { - "description": "", - "file": "generated/packages/rspack/migrations/18.1.3-package-updates.json", - "hidden": false, - "name": "18.1.3-package-updates", - "version": "18.1.3", - "originalFilePath": "/packages/rspack", - "path": "rspack/migrations/18.1.3-package-updates", - "type": "migration" - }, - { - "description": "", - "file": "generated/packages/rspack/migrations/18.1.0-package-updates.json", - "hidden": false, - "name": "18.1.0-package-updates", - "version": "18.1.0-beta.0", - "originalFilePath": "/packages/rspack", - "path": "rspack/migrations/18.1.0-package-updates", - "type": "migration" } ], "githubRoot": "https://github.com/nrwl/nx/blob/master", @@ -5499,56 +4859,6 @@ "originalFilePath": "/packages/storybook", "path": "storybook/migrations/update-19-6-0-add-nx-packages", "type": "migration" - }, - { - "description": "", - "file": "generated/packages/storybook/migrations/18.2.0-package-updates.json", - "hidden": false, - "name": "18.2.0-package-updates", - "version": "18.2.0-beta.1", - "originalFilePath": "/packages/storybook", - "path": "storybook/migrations/18.2.0-package-updates", - "type": "migration" - }, - { - "description": "", - "file": "generated/packages/storybook/migrations/17.2.0-beta.2-package-updates.json", - "hidden": false, - "name": "17.2.0-beta.2-package-updates", - "version": "17.2.0-beta.2", - "originalFilePath": "/packages/storybook", - "path": "storybook/migrations/17.2.0-beta.2-package-updates", - "type": "migration" - }, - { - "description": "", - "file": "generated/packages/storybook/migrations/17.1.0-beta.4-package-updates.json", - "hidden": false, - "name": "17.1.0-beta.4-package-updates", - "version": "17.1.0-beta.4", - "originalFilePath": "/packages/storybook", - "path": "storybook/migrations/17.1.0-beta.4-package-updates", - "type": "migration" - }, - { - "description": "", - "file": "generated/packages/storybook/migrations/17.1.0-package-updates.json", - "hidden": false, - "name": "17.1.0-package-updates", - "version": "17.1.0-beta.3", - "originalFilePath": "/packages/storybook", - "path": "storybook/migrations/17.1.0-package-updates", - "type": "migration" - }, - { - "description": "", - "file": "generated/packages/storybook/migrations/17.0.0-package-updates.json", - "hidden": false, - "name": "17.0.0-package-updates", - "version": "17.0.0-rc.3", - "originalFilePath": "/packages/storybook", - "path": "storybook/migrations/17.0.0-package-updates", - "type": "migration" } ], "githubRoot": "https://github.com/nrwl/nx/blob/master", @@ -5747,66 +5057,6 @@ "originalFilePath": "/packages/vite", "path": "vite/migrations/update-19-6-0-add-depends-on-for-preview-server", "type": "migration" - }, - { - "description": "", - "file": "generated/packages/vite/migrations/18.1.0-package-updates.json", - "hidden": false, - "name": "18.1.0-package-updates", - "version": "18.1.0-beta.1", - "originalFilePath": "/packages/vite", - "path": "vite/migrations/18.1.0-package-updates", - "type": "migration" - }, - { - "description": "Move the vitest coverage thresholds in their own object if exists and add reporters.", - "file": "generated/packages/vite/migrations/vitest-coverage-and-reporters.json", - "hidden": false, - "name": "vitest-coverage-and-reporters", - "version": "17.3.0-beta.0", - "originalFilePath": "/packages/vite", - "path": "vite/migrations/vitest-coverage-and-reporters", - "type": "migration" - }, - { - "description": "", - "file": "generated/packages/vite/migrations/17.3.0-package-updates.json", - "hidden": false, - "name": "17.3.0-package-updates", - "version": "17.3.0-beta.0", - "originalFilePath": "/packages/vite", - "path": "vite/migrations/17.3.0-package-updates", - "type": "migration" - }, - { - "description": "Update vite config.", - "file": "generated/packages/vite/migrations/update-vite-config.json", - "hidden": false, - "name": "update-vite-config", - "version": "17.2.0-beta.10", - "originalFilePath": "/packages/vite", - "path": "vite/migrations/update-vite-config", - "type": "migration" - }, - { - "description": "", - "file": "generated/packages/vite/migrations/17.2.0-package-updates.json", - "hidden": false, - "name": "17.2.0-package-updates", - "version": "17.2.0-beta.2", - "originalFilePath": "/packages/vite", - "path": "vite/migrations/17.2.0-package-updates", - "type": "migration" - }, - { - "description": "Move target defaults", - "file": "generated/packages/vite/migrations/move-target-defaults.json", - "hidden": false, - "name": "move-target-defaults", - "version": "17.1.0-beta.2", - "originalFilePath": "/packages/vite", - "path": "vite/migrations/move-target-defaults", - "type": "migration" } ], "githubRoot": "https://github.com/nrwl/nx/blob/master", @@ -5916,16 +5166,6 @@ "originalFilePath": "/packages/vue", "path": "vue/migrations/19.4.3-package-updates", "type": "migration" - }, - { - "description": "", - "file": "generated/packages/vue/migrations/17.2.0-package-updates.json", - "hidden": false, - "name": "17.2.0-package-updates", - "version": "17.2.0-beta.2", - "originalFilePath": "/packages/vue", - "path": "vue/migrations/17.2.0-package-updates", - "type": "migration" } ], "githubRoot": "https://github.com/nrwl/nx/blob/master", @@ -5989,18 +5229,7 @@ "type": "generator" } ], - "migrations": [ - { - "description": "", - "file": "generated/packages/web/migrations/17.3.0-package-updates.json", - "hidden": false, - "name": "17.3.0-package-updates", - "version": "17.3.0-beta.3", - "originalFilePath": "/packages/web", - "path": "web/migrations/17.3.0-package-updates", - "type": "migration" - } - ], + "migrations": [], "githubRoot": "https://github.com/nrwl/nx/blob/master", "name": "web", "packageName": "@nx/web", @@ -6139,16 +5368,6 @@ "originalFilePath": "/packages/webpack", "path": "webpack/migrations/19.6.0-package-updates", "type": "migration" - }, - { - "description": "Add webpack.config.js file when webpackConfig is not defined", - "file": "generated/packages/webpack/migrations/update-17-2-1-webpack-config-setup.json", - "hidden": false, - "name": "update-17-2-1-webpack-config-setup", - "version": "17.2.1-beta.0", - "originalFilePath": "/packages/webpack", - "path": "webpack/migrations/update-17-2-1-webpack-config-setup", - "type": "migration" } ], "githubRoot": "https://github.com/nrwl/nx/blob/master", @@ -6316,36 +5535,6 @@ "originalFilePath": "/packages/workspace", "path": "workspace/migrations/19.5.1-package-updates", "type": "migration" - }, - { - "description": "", - "file": "generated/packages/workspace/migrations/18.2.0-package-updates.json", - "hidden": false, - "name": "18.2.0-package-updates", - "version": "18.2.0-beta.0", - "originalFilePath": "/packages/workspace", - "path": "workspace/migrations/18.2.0-package-updates", - "type": "migration" - }, - { - "description": "", - "file": "generated/packages/workspace/migrations/17.3.0-package-updates.json", - "hidden": false, - "name": "17.3.0-package-updates", - "version": "17.3.0-beta.10", - "originalFilePath": "/packages/workspace", - "path": "workspace/migrations/17.3.0-package-updates", - "type": "migration" - }, - { - "description": "", - "file": "generated/packages/workspace/migrations/17.1.0-package-updates.json", - "hidden": false, - "name": "17.1.0-package-updates", - "version": "17.1.0-beta.4", - "originalFilePath": "/packages/workspace", - "path": "workspace/migrations/17.1.0-package-updates", - "type": "migration" } ], "githubRoot": "https://github.com/nrwl/nx/blob/master", diff --git a/docs/generated/packages/cypress/migrations/17.2.0-beta.2-package-updates.json b/docs/generated/packages/cypress/migrations/17.2.0-beta.2-package-updates.json deleted file mode 100644 index c5d7cbcf8c..0000000000 --- a/docs/generated/packages/cypress/migrations/17.2.0-beta.2-package-updates.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "17.2.0-beta.2-package-updates", - "version": "17.2.0-beta.2", - "packages": { - "vite": { "version": "^5.0.0", "alwaysAddToPackageJson": false } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/cypress", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/cypress/migrations/17.3.0-package-updates.json b/docs/generated/packages/cypress/migrations/17.3.0-package-updates.json deleted file mode 100644 index 512787c425..0000000000 --- a/docs/generated/packages/cypress/migrations/17.3.0-package-updates.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "17.3.0-package-updates", - "version": "17.3.0-beta.3", - "packages": { - "@types/node": { "version": "18.16.9", "alwaysAddToPackageJson": false } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/cypress", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/cypress/migrations/update-cypress-version-13-6-6.json b/docs/generated/packages/cypress/migrations/update-cypress-version-13-6-6.json deleted file mode 100644 index a25565544a..0000000000 --- a/docs/generated/packages/cypress/migrations/update-cypress-version-13-6-6.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "update-cypress-version-13-6-6", - "cli": "nx", - "version": "18.1.0-beta.3", - "description": "Update to Cypress ^13.6.6 if the workspace is using Cypress v13 to ensure workspaces don't use v13.6.5 which has an issue when verifying Cypress.", - "implementation": "/packages/cypress/src/migrations/update-18-1-0/update-cypress-version-13-6-6.ts", - "aliases": [], - "hidden": false, - "path": "/packages/cypress", - "schema": null, - "type": "migration", - "examplesFile": "" -} diff --git a/docs/generated/packages/detox/migrations/18.0.0-package-updates.json b/docs/generated/packages/detox/migrations/18.0.0-package-updates.json deleted file mode 100644 index a83ba73b24..0000000000 --- a/docs/generated/packages/detox/migrations/18.0.0-package-updates.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "18.0.0-package-updates", - "version": "18.0.0-beta.0", - "packages": { - "detox": { "version": "^20.16.0", "alwaysAddToPackageJson": false } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/detox", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/detox/migrations/18.1.0-package-updates.json b/docs/generated/packages/detox/migrations/18.1.0-package-updates.json deleted file mode 100644 index dfd6e80483..0000000000 --- a/docs/generated/packages/detox/migrations/18.1.0-package-updates.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "18.1.0-package-updates", - "version": "18.1.0-beta.0", - "packages": { - "detox": { "version": "~20.18.1", "alwaysAddToPackageJson": false }, - "@config-plugins/detox": { - "version": "~7.0.0", - "alwaysAddToPackageJson": false - }, - "@testing-library/jest-dom": { - "version": "~6.4.2", - "alwaysAddToPackageJson": false - } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/detox", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/eslint-plugin/migrations/update-17-2-6-rename-workspace-rules.json b/docs/generated/packages/eslint-plugin/migrations/update-17-2-6-rename-workspace-rules.json deleted file mode 100644 index e0cf3b98db..0000000000 --- a/docs/generated/packages/eslint-plugin/migrations/update-17-2-6-rename-workspace-rules.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "update-17-2-6-rename-workspace-rules", - "cli": "nx", - "version": "17.2.6-beta.1", - "description": "Rename workspace rules from @nx/workspace/name to @nx/workspace-name", - "implementation": "/packages/eslint-plugin/src/migrations/update-17-2-6-rename-workspace-rules/rename-workspace-rules.ts", - "aliases": [], - "hidden": false, - "path": "/packages/eslint-plugin", - "schema": null, - "type": "migration", - "examplesFile": "" -} diff --git a/docs/generated/packages/eslint/migrations/17.0.0-package-updates.json b/docs/generated/packages/eslint/migrations/17.0.0-package-updates.json deleted file mode 100644 index 7a98ecebfd..0000000000 --- a/docs/generated/packages/eslint/migrations/17.0.0-package-updates.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "17.0.0-package-updates", - "version": "17.0.0-rc.2", - "packages": { "eslint-config-prettier": { "version": "^9.0.0" } }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/eslint", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/eslint/migrations/17.1.0-package-updates.json b/docs/generated/packages/eslint/migrations/17.1.0-package-updates.json deleted file mode 100644 index ee7f3ac9b5..0000000000 --- a/docs/generated/packages/eslint/migrations/17.1.0-package-updates.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "17.1.0-package-updates", - "version": "17.1.0-beta.1", - "packages": { - "@typescript-eslint/parser": { "version": "^6.9.1" }, - "@typescript-eslint/eslint-plugin": { "version": "^6.9.1" }, - "@typescript-eslint/utils": { "version": "^6.9.1" } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/eslint", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/eslint/migrations/17.2.0-package-updates.json b/docs/generated/packages/eslint/migrations/17.2.0-package-updates.json deleted file mode 100644 index 06ecd57850..0000000000 --- a/docs/generated/packages/eslint/migrations/17.2.0-package-updates.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "17.2.0-package-updates", - "version": "17.2.0-beta.2", - "packages": { "eslint": { "version": "~8.48.0" } }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/eslint", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/eslint/migrations/17.3.0-package-updates.json b/docs/generated/packages/eslint/migrations/17.3.0-package-updates.json deleted file mode 100644 index a880523b47..0000000000 --- a/docs/generated/packages/eslint/migrations/17.3.0-package-updates.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "17.3.0-package-updates", - "version": "17.3.0-beta.0", - "packages": { - "@typescript-eslint/parser": { "version": "^6.13.2" }, - "@typescript-eslint/eslint-plugin": { "version": "^6.13.2" }, - "@typescript-eslint/utils": { "version": "^6.13.2" } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/eslint", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/eslint/migrations/18.2.0-package-updates.json b/docs/generated/packages/eslint/migrations/18.2.0-package-updates.json deleted file mode 100644 index 5e6dee947b..0000000000 --- a/docs/generated/packages/eslint/migrations/18.2.0-package-updates.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "18.2.0-package-updates", - "version": "18.2.0-beta.0", - "packages": { - "@typescript-eslint/parser": { "version": "^7.3.0" }, - "@typescript-eslint/eslint-plugin": { "version": "^7.3.0" }, - "@typescript-eslint/utils": { "version": "^7.3.0" }, - "eslint": { "version": "~8.57.0" } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/eslint", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/eslint/migrations/move-options-to-target-defaults.json b/docs/generated/packages/eslint/migrations/move-options-to-target-defaults.json deleted file mode 100644 index 66d46aad06..0000000000 --- a/docs/generated/packages/eslint/migrations/move-options-to-target-defaults.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "move-options-to-target-defaults", - "version": "17.2.9", - "description": "Move executor options to target defaults", - "implementation": "/packages/eslint/src/migrations/update-17-2-9/move-options-to-target-defaults.ts", - "aliases": [], - "hidden": false, - "path": "/packages/eslint", - "schema": null, - "type": "migration", - "examplesFile": "" -} diff --git a/docs/generated/packages/eslint/migrations/simplify-eslint-patterns.json b/docs/generated/packages/eslint/migrations/simplify-eslint-patterns.json deleted file mode 100644 index 22270d0c08..0000000000 --- a/docs/generated/packages/eslint/migrations/simplify-eslint-patterns.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "simplify-eslint-patterns", - "version": "17.2.0-beta.0", - "description": "Simplify eslintFilePatterns", - "implementation": "/packages/eslint/src/migrations/update-17-2-0/simplify-eslint-patterns.ts", - "aliases": [], - "hidden": false, - "path": "/packages/eslint", - "schema": null, - "type": "migration", - "examplesFile": "" -} diff --git a/docs/generated/packages/eslint/migrations/update-17-0-0-rename-to-eslint.json b/docs/generated/packages/eslint/migrations/update-17-0-0-rename-to-eslint.json deleted file mode 100644 index d2129da9e9..0000000000 --- a/docs/generated/packages/eslint/migrations/update-17-0-0-rename-to-eslint.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "update-17-0-0-rename-to-eslint", - "version": "17.0.0-beta.7", - "description": "update-17-0-0-rename-to-eslint", - "implementation": "/packages/eslint/src/migrations/update-17-0-0-rename-to-eslint/update-17-0-0-rename-to-eslint.ts", - "aliases": [], - "hidden": false, - "path": "/packages/eslint", - "schema": null, - "type": "migration", - "examplesFile": "" -} diff --git a/docs/generated/packages/eslint/migrations/update-typescript-eslint.json b/docs/generated/packages/eslint/migrations/update-typescript-eslint.json deleted file mode 100644 index 8603e7f53f..0000000000 --- a/docs/generated/packages/eslint/migrations/update-typescript-eslint.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "update-typescript-eslint", - "version": "17.1.0-beta.1", - "description": "Updates for @typescript-utils/utils v6.9.1+", - "implementation": "/packages/eslint/src/migrations/update-17-1-0/update-typescript-eslint.ts", - "aliases": [], - "hidden": false, - "path": "/packages/eslint", - "schema": null, - "type": "migration", - "examplesFile": "" -} diff --git a/docs/generated/packages/expo/migrations/17.1.0-package-updates.json b/docs/generated/packages/expo/migrations/17.1.0-package-updates.json deleted file mode 100644 index f08bc81b96..0000000000 --- a/docs/generated/packages/expo/migrations/17.1.0-package-updates.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "17.1.0-package-updates", - "version": "17.1.0-beta.0", - "packages": { - "expo": { "version": "49.0.16", "alwaysAddToPackageJson": false }, - "@expo/cli": { "version": "~0.10.13", "alwaysAddToPackageJson": false }, - "react-native": { "version": "0.72.6", "alwaysAddToPackageJson": false }, - "react-native-web": { - "version": "~0.19.9", - "alwaysAddToPackageJson": false - }, - "metro-resolver": { "version": "0.76.8", "alwaysAddToPackageJson": false }, - "metro": { "version": "0.76.8", "alwaysAddToPackageJson": false } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/expo", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/expo/migrations/18.0.0-package-updates.json b/docs/generated/packages/expo/migrations/18.0.0-package-updates.json deleted file mode 100644 index 7d39450f20..0000000000 --- a/docs/generated/packages/expo/migrations/18.0.0-package-updates.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "18.0.0-package-updates", - "version": "18.0.0-beta.0", - "packages": { - "expo": { "version": "50.0.1", "alwaysAddToPackageJson": false }, - "expo-splash-screen": { - "version": "~0.26.1", - "alwaysAddToPackageJson": false - }, - "expo-status-bar": { - "version": "~1.11.1", - "alwaysAddToPackageJson": false - }, - "@expo/cli": { "version": "~0.16.5", "alwaysAddToPackageJson": false }, - "babel-preset-expo": { - "version": "~10.0.0", - "alwaysAddToPackageJson": false - }, - "@types/react": { "version": "~18.2.45", "alwaysAddToPackageJson": false }, - "react-native": { "version": "~0.73.2", "alwaysAddToPackageJson": false }, - "react-native-web": { - "version": "~0.19.9", - "alwaysAddToPackageJson": false - }, - "@expo/metro-config": { - "version": "~0.17.3", - "alwaysAddToPackageJson": false - }, - "@expo/metro-runtime": { - "version": "~3.1.1", - "addToPackageJson": "devDependencies" - }, - "react-native-svg-transformer": { - "version": "1.2.0", - "alwaysAddToPackageJson": false - }, - "react-native-svg": { - "version": "14.1.0", - "alwaysAddToPackageJson": false - }, - "@testing-library/react-native": { - "version": "~12.4.2", - "alwaysAddToPackageJson": false - }, - "jest-expo": { "version": "~50.0.1", "alwaysAddToPackageJson": false } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/expo", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/expo/migrations/update-18-0-0-remove-block-list.json b/docs/generated/packages/expo/migrations/update-18-0-0-remove-block-list.json deleted file mode 100644 index 7ea42a62ef..0000000000 --- a/docs/generated/packages/expo/migrations/update-18-0-0-remove-block-list.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "update-18-0-0-remove-block-list", - "cli": "nx", - "version": "18.0.0-beta.0", - "description": "Remove blockList in metro.config.js", - "implementation": "/packages/expo/src/migrations/update-18-0-0/remove-block-list.ts", - "aliases": [], - "hidden": false, - "path": "/packages/expo", - "schema": null, - "type": "migration", - "examplesFile": "" -} diff --git a/docs/generated/packages/expo/migrations/update-18-0-0-remove-eas-cli.json b/docs/generated/packages/expo/migrations/update-18-0-0-remove-eas-cli.json deleted file mode 100644 index 5fae70a132..0000000000 --- a/docs/generated/packages/expo/migrations/update-18-0-0-remove-eas-cli.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "update-18-0-0-remove-eas-cli", - "cli": "nx", - "version": "18.0.0-beta.0", - "description": "Remove eas-cli from package.json", - "implementation": "/packages/expo/src/migrations/update-18-0-0/remove-eas-cli.ts", - "aliases": [], - "hidden": false, - "path": "/packages/expo", - "schema": null, - "type": "migration", - "examplesFile": "" -} diff --git a/docs/generated/packages/expo/migrations/update-18-0-0-remove-offset-export-outputDir.json b/docs/generated/packages/expo/migrations/update-18-0-0-remove-offset-export-outputDir.json deleted file mode 100644 index fb8a6209a9..0000000000 --- a/docs/generated/packages/expo/migrations/update-18-0-0-remove-offset-export-outputDir.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "update-18-0-0-remove-offset-export-outputDir", - "cli": "nx", - "version": "18.0.0-beta.0", - "description": "Remove the offset from the outputDir of the export target", - "implementation": "/packages/expo/src/migrations/update-18-0-0/change-outputDir-export-target.ts", - "aliases": [], - "hidden": false, - "path": "/packages/expo", - "schema": null, - "type": "migration", - "examplesFile": "" -} diff --git a/docs/generated/packages/expo/migrations/update-18-0-0-remove-symlink-target.json b/docs/generated/packages/expo/migrations/update-18-0-0-remove-symlink-target.json deleted file mode 100644 index 903182d347..0000000000 --- a/docs/generated/packages/expo/migrations/update-18-0-0-remove-symlink-target.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "update-18-0-0-remove-symlink-target", - "cli": "nx", - "version": "18.0.0-beta.0", - "description": "Remove symlink target in project.json", - "implementation": "/packages/expo/src/migrations/update-18-0-0/remove-symlink-target.ts", - "aliases": [], - "hidden": false, - "path": "/packages/expo", - "schema": null, - "type": "migration", - "examplesFile": "" -} diff --git a/docs/generated/packages/jest/migrations/17.2.0-package-updates.json b/docs/generated/packages/jest/migrations/17.2.0-package-updates.json deleted file mode 100644 index 3937cda7d2..0000000000 --- a/docs/generated/packages/jest/migrations/17.2.0-package-updates.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "17.2.0-package-updates", - "version": "17.2.0-beta.2", - "packages": { - "@types/node": { "version": "18.16.9", "alwaysAddToPackageJson": false } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/jest", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/jest/migrations/move-options-to-target-defaults.json b/docs/generated/packages/jest/migrations/move-options-to-target-defaults.json deleted file mode 100644 index e170a601cd..0000000000 --- a/docs/generated/packages/jest/migrations/move-options-to-target-defaults.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "move-options-to-target-defaults", - "version": "17.1.0-beta.2", - "description": "Move jest executor options to nx.json targetDefaults", - "implementation": "/packages/jest/src/migrations/update-17-1-0/move-options-to-target-defaults.ts", - "aliases": [], - "hidden": false, - "path": "/packages/jest", - "schema": null, - "type": "migration", - "examplesFile": "" -} diff --git a/docs/generated/packages/js/migrations/17.0.0-package-updates.json b/docs/generated/packages/js/migrations/17.0.0-package-updates.json deleted file mode 100644 index 7f4c725bec..0000000000 --- a/docs/generated/packages/js/migrations/17.0.0-package-updates.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "17.0.0-package-updates", - "version": "17.0.0-rc.2", - "packages": { - "esbuild": { "version": "^0.19.2", "alwaysAddToPackageJson": false } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/js", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/js/migrations/17.1.0-package-updates.json b/docs/generated/packages/js/migrations/17.1.0-package-updates.json deleted file mode 100644 index bb80b67661..0000000000 --- a/docs/generated/packages/js/migrations/17.1.0-package-updates.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "17.1.0-package-updates", - "version": "17.1.0-beta.4", - "x-prompt": "Do you want to update to TypeScript v5.2?", - "requires": { "typescript": ">=5.1.0 <5.2.0" }, - "packages": { "typescript": { "version": "~5.2.2" } }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/js", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/js/migrations/17.3.0-beta.10-package-updates.json b/docs/generated/packages/js/migrations/17.3.0-beta.10-package-updates.json deleted file mode 100644 index 1fd1ea9bbd..0000000000 --- a/docs/generated/packages/js/migrations/17.3.0-beta.10-package-updates.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "17.3.0-beta.10-package-updates", - "version": "17.3.0-beta.10", - "x-prompt": "Do you want to update to TypeScript v5.3?", - "requires": { "typescript": ">=5.2.0 <5.3.0" }, - "packages": { - "typescript": { "version": "~5.3.2", "alwaysAddToPackageJson": false } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/js", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/js/migrations/17.3.0-package-updates.json b/docs/generated/packages/js/migrations/17.3.0-package-updates.json deleted file mode 100644 index 37dbe808d6..0000000000 --- a/docs/generated/packages/js/migrations/17.3.0-package-updates.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "17.3.0-package-updates", - "version": "17.3.0-beta.3", - "packages": { - "@types/node": { "version": "^18.16.9", "alwaysAddToPackageJson": false } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/js", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/js/migrations/18.0.4-package-updates.json b/docs/generated/packages/js/migrations/18.0.4-package-updates.json deleted file mode 100644 index 62ef3e5e8d..0000000000 --- a/docs/generated/packages/js/migrations/18.0.4-package-updates.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "18.0.4-package-updates", - "version": "18.0.4-beta.0", - "packages": { - "@swc-node/register": { - "version": "~1.8.0", - "alwaysAddToPackageJson": false - } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/js", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/js/migrations/18.2.0-package-updates.json b/docs/generated/packages/js/migrations/18.2.0-package-updates.json deleted file mode 100644 index 2c246a840a..0000000000 --- a/docs/generated/packages/js/migrations/18.2.0-package-updates.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "18.2.0-package-updates", - "version": "18.2.0-beta.0", - "x-prompt": "Do you want to update to TypeScript v5.4?", - "requires": { "typescript": ">=5.3.0 <5.4.0" }, - "packages": { - "typescript": { "version": "~5.4.2", "alwaysAddToPackageJson": false } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/js", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/js/migrations/update-17-0-0-remove-deprecated-build-options.json b/docs/generated/packages/js/migrations/update-17-0-0-remove-deprecated-build-options.json deleted file mode 100644 index f94094dce5..0000000000 --- a/docs/generated/packages/js/migrations/update-17-0-0-remove-deprecated-build-options.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "update-17-0-0-remove-deprecated-build-options", - "cli": "nx", - "version": "17.0.2", - "description": "Remove deprecated build options", - "implementation": "/packages/js/src/migrations/update-17-0-0/remove-deprecated-build-options.ts", - "aliases": [], - "hidden": false, - "path": "/packages/js", - "schema": null, - "type": "migration", - "examplesFile": "" -} diff --git a/docs/generated/packages/next/migrations/17.3.1-beta.0-package-updates.json b/docs/generated/packages/next/migrations/17.3.1-beta.0-package-updates.json deleted file mode 100644 index 4d1af288f8..0000000000 --- a/docs/generated/packages/next/migrations/17.3.1-beta.0-package-updates.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "17.3.1-beta.0-package-updates", - "version": "17.3.1-beta.0", - "packages": { - "next": { "version": "14.0.4", "alwaysAddToPackageJson": false } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/next", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/next/migrations/18.0.4-package-updates.json b/docs/generated/packages/next/migrations/18.0.4-package-updates.json deleted file mode 100644 index 4ae8b19385..0000000000 --- a/docs/generated/packages/next/migrations/18.0.4-package-updates.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "18.0.4-package-updates", - "version": "18.0.4-beta.0", - "packages": { - "@swc-node/register": { - "version": "~1.8.0", - "alwaysAddToPackageJson": false - } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/next", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/next/migrations/update-17-2-7.json b/docs/generated/packages/next/migrations/update-17-2-7.json deleted file mode 100644 index 3332a84dc1..0000000000 --- a/docs/generated/packages/next/migrations/update-17-2-7.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "update-17-2-7", - "cli": "nx", - "version": "17.2.7", - "description": "Remove patched eslint rule for @next/next/no-html-link-for-pages", - "implementation": "/packages/next/src/migrations/update-17-2-7/remove-eslint-rules-patch.ts", - "aliases": [], - "hidden": false, - "path": "/packages/next", - "schema": null, - "type": "migration", - "examplesFile": "" -} diff --git a/docs/generated/packages/node/migrations/17.3.0-package-updates.json b/docs/generated/packages/node/migrations/17.3.0-package-updates.json deleted file mode 100644 index cafe6b1209..0000000000 --- a/docs/generated/packages/node/migrations/17.3.0-package-updates.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "17.3.0-package-updates", - "version": "17.3.0-beta.3", - "packages": { - "@types/node": { "version": "18.16.9", "alwaysAddToPackageJson": false } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/node", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/node/migrations/17.3.1-package-updates.json b/docs/generated/packages/node/migrations/17.3.1-package-updates.json deleted file mode 100644 index b794dfc0bd..0000000000 --- a/docs/generated/packages/node/migrations/17.3.1-package-updates.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "17.3.1-package-updates", - "version": "17.3.1-beta.0", - "packages": { - "axios": { "version": "^1.6.0", "alwaysAddToPackageJson": false } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/node", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/nuxt/migrations/18.2.0-package-updates.json b/docs/generated/packages/nuxt/migrations/18.2.0-package-updates.json deleted file mode 100644 index 69e8fc89f1..0000000000 --- a/docs/generated/packages/nuxt/migrations/18.2.0-package-updates.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "18.2.0-package-updates", - "version": "18.2.0-beta.0", - "packages": { - "@nuxt/eslint-config": { - "version": "~0.3.0-alpha.1", - "alwaysAddToPackageJson": false - } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/nuxt", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/nuxt/migrations/18.3.0-package-updates.json b/docs/generated/packages/nuxt/migrations/18.3.0-package-updates.json deleted file mode 100644 index 2e23bdf11a..0000000000 --- a/docs/generated/packages/nuxt/migrations/18.3.0-package-updates.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "18.3.0-package-updates", - "version": "18.3.0-beta.2", - "packages": { - "@nuxt/eslint-config": { - "version": "~0.3.6", - "alwaysAddToPackageJson": false - } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/nuxt", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/nx/migrations/17.0.0-move-cache-directory.json b/docs/generated/packages/nx/migrations/17.0.0-move-cache-directory.json deleted file mode 100644 index 477d3fb79a..0000000000 --- a/docs/generated/packages/nx/migrations/17.0.0-move-cache-directory.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "17.0.0-move-cache-directory", - "cli": "nx", - "version": "17.0.0-beta.1", - "description": "Updates the default cache directory to .nx/cache", - "implementation": "/packages/nx/src/migrations/update-17-0-0/move-cache-directory.ts", - "aliases": [], - "hidden": false, - "path": "/packages/nx", - "schema": null, - "type": "migration", - "examplesFile": "#### Sample Code Changes\n\nAdd `.nx/cache` to the `.gitignore` file.\n\n{% tabs %}\n{% tab label=\"Before\" %}\n\n```{% fileName=\".gitignore\" %}\nnode_modules\n```\n\n{% /tab %}\n{% tab label=\"After\" %}\n\n```{% highlightLines=[2] fileName=\".gitignore\" %}\nnode_modules\n.nx/cache\n```\n\n{% /tab %}\n{% /tabs %}\n\nAdd `.nx/cache` to the `.prettierignore` file.\n\n{% tabs %}\n{% tab label=\"Before\" %}\n\n```ts {% fileName=\".prettierignore\" %}\n/dist\n```\n\n{% /tab %}\n{% tab label=\"After\" %}\n\n```ts {% highlightLines=[2] fileName=\".prettierignore\" %}\n/dist\n.nx/cache\n```\n\n{% /tab %}\n{% /tabs %}\n" -} diff --git a/docs/generated/packages/nx/migrations/17.0.0-use-minimal-config-for-tasks-runner-options.json b/docs/generated/packages/nx/migrations/17.0.0-use-minimal-config-for-tasks-runner-options.json deleted file mode 100644 index 68c830b7c0..0000000000 --- a/docs/generated/packages/nx/migrations/17.0.0-use-minimal-config-for-tasks-runner-options.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "17.0.0-use-minimal-config-for-tasks-runner-options", - "cli": "nx", - "version": "17.0.0-beta.3", - "description": "Use minimal config for tasksRunnerOptions", - "implementation": "/packages/nx/src/migrations/update-17-0-0/use-minimal-config-for-tasks-runner-options.ts", - "aliases": [], - "hidden": false, - "path": "/packages/nx", - "schema": null, - "type": "migration", - "examplesFile": "" -} diff --git a/docs/generated/packages/nx/migrations/17.3.0-update-nx-wrapper.json b/docs/generated/packages/nx/migrations/17.3.0-update-nx-wrapper.json deleted file mode 100644 index d45a77b236..0000000000 --- a/docs/generated/packages/nx/migrations/17.3.0-update-nx-wrapper.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "17.3.0-update-nx-wrapper", - "cli": "nx", - "version": "17.3.0-beta.6", - "description": "Updates the nx wrapper.", - "implementation": "/packages/nx/src/migrations/update-17-3-0/update-nxw.ts", - "aliases": [], - "hidden": false, - "path": "/packages/nx", - "schema": null, - "type": "migration", - "examplesFile": "" -} diff --git a/docs/generated/packages/nx/migrations/18.0.0-disable-adding-plugins-for-existing-workspaces.json b/docs/generated/packages/nx/migrations/18.0.0-disable-adding-plugins-for-existing-workspaces.json deleted file mode 100644 index 7be224c5ce..0000000000 --- a/docs/generated/packages/nx/migrations/18.0.0-disable-adding-plugins-for-existing-workspaces.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "18.0.0-disable-adding-plugins-for-existing-workspaces", - "cli": "nx", - "version": "18.0.0-beta.2", - "description": "Updates nx.json to disabled adding plugins when generating projects in an existing Nx workspace", - "implementation": "/packages/nx/src/migrations/update-18-0-0/disable-crystal-for-existing-workspaces.ts", - "x-repair-skip": true, - "aliases": [], - "hidden": false, - "path": "/packages/nx", - "schema": null, - "type": "migration", - "examplesFile": "" -} diff --git a/docs/generated/packages/nx/migrations/move-default-base-to-nx-json-root.json b/docs/generated/packages/nx/migrations/move-default-base-to-nx-json-root.json deleted file mode 100644 index f63ff0de1c..0000000000 --- a/docs/generated/packages/nx/migrations/move-default-base-to-nx-json-root.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "move-default-base-to-nx-json-root", - "version": "18.1.0-beta.3", - "description": "Moves affected.defaultBase to defaultBase in `nx.json`", - "implementation": "/packages/nx/src/migrations/update-17-2-0/move-default-base.ts", - "aliases": [], - "hidden": false, - "path": "/packages/nx", - "schema": null, - "type": "migration", - "examplesFile": "" -} diff --git a/docs/generated/packages/nx/migrations/rm-default-collection-npm-scope.json b/docs/generated/packages/nx/migrations/rm-default-collection-npm-scope.json deleted file mode 100644 index fdc4d58012..0000000000 --- a/docs/generated/packages/nx/migrations/rm-default-collection-npm-scope.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "rm-default-collection-npm-scope", - "version": "17.0.0-rc.1", - "description": "Migration for v17.0.0-rc.1", - "implementation": "/packages/nx/src/migrations/update-17-0-0/rm-default-collection-npm-scope.ts", - "aliases": [], - "hidden": false, - "path": "/packages/nx", - "schema": null, - "type": "migration", - "examplesFile": "" -} diff --git a/docs/generated/packages/playwright/migrations/17-3-1-add-project-to-config.json b/docs/generated/packages/playwright/migrations/17-3-1-add-project-to-config.json deleted file mode 100644 index f02562e345..0000000000 --- a/docs/generated/packages/playwright/migrations/17-3-1-add-project-to-config.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "17-3-1-add-project-to-config", - "cli": "nx", - "version": "17.3.1-beta.0", - "description": "Add project property to playwright config", - "implementation": "/packages/playwright/src/migrations/update-17-3-1/add-project-to-config.ts", - "aliases": [], - "hidden": false, - "path": "/packages/playwright", - "schema": null, - "type": "migration", - "examplesFile": "" -} diff --git a/docs/generated/packages/playwright/migrations/18-1-0-remove-baseUrl-from-project-json.json b/docs/generated/packages/playwright/migrations/18-1-0-remove-baseUrl-from-project-json.json deleted file mode 100644 index 14a39b559a..0000000000 --- a/docs/generated/packages/playwright/migrations/18-1-0-remove-baseUrl-from-project-json.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "18-1-0-remove-baseUrl-from-project-json", - "cli": "nx", - "version": "18.1.0-beta.3", - "description": "Remove invalid baseUrl option from @nx/playwright:playwright targets in project.json.", - "implementation": "/packages/playwright/src/migrations/update-18-1-0/remove-baseUrl-from-project-json.ts", - "aliases": [], - "hidden": false, - "path": "/packages/playwright", - "schema": null, - "type": "migration", - "examplesFile": "" -} diff --git a/docs/generated/packages/react-native/migrations/17.1.0-package-updates.json b/docs/generated/packages/react-native/migrations/17.1.0-package-updates.json deleted file mode 100644 index 985dabce48..0000000000 --- a/docs/generated/packages/react-native/migrations/17.1.0-package-updates.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "17.1.0-package-updates", - "version": "17.1.0-beta.1", - "packages": { - "react-native": { "version": "0.72.6", "alwaysAddToPackageJson": false }, - "metro": { "version": "0.76.8", "alwaysAddToPackageJson": false }, - "metro-resolver": { "version": "0.76.8", "alwaysAddToPackageJson": false }, - "metro-config": { "version": "0.76.8", "alwaysAddToPackageJson": false }, - "metro-react-native-babel-preset": { - "version": "0.76.8", - "alwaysAddToPackageJson": false - }, - "metro-babel-register": { - "version": "0.76.8", - "alwaysAddToPackageJson": false - }, - "metro-react-native-babel-transformer": { - "version": "0.76.7", - "alwaysAddToPackageJson": false - }, - "@react-native-community/cli": { - "version": "11.3.7", - "alwaysAddToPackageJson": false - }, - "@react-native-community/cli-platform-android": { - "version": "11.3.7", - "alwaysAddToPackageJson": false - }, - "@react-native-community/cli-platform-ios": { - "version": "11.3.7", - "alwaysAddToPackageJson": false - } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/react-native", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/react-native/migrations/17.3.0-package-updates.json b/docs/generated/packages/react-native/migrations/17.3.0-package-updates.json deleted file mode 100644 index 845b0faf26..0000000000 --- a/docs/generated/packages/react-native/migrations/17.3.0-package-updates.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "17.3.0-package-updates", - "version": "17.3.0-beta.3", - "packages": { "@types/node": { "version": "18.16.9" } }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/react-native", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/react-native/migrations/18.0.0-package-updates.json b/docs/generated/packages/react-native/migrations/18.0.0-package-updates.json deleted file mode 100644 index 5932d85073..0000000000 --- a/docs/generated/packages/react-native/migrations/18.0.0-package-updates.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "18.0.0-package-updates", - "version": "18.0.0-beta.0", - "packages": { - "react-native": { "version": "0.73.2", "alwaysAddToPackageJson": false }, - "@react-native/babel-preset": { - "version": "^0.73.18", - "addToPackageJson": "devDependencies" - }, - "@react-native/metro-config": { - "version": "^0.73.2", - "addToPackageJson": "devDependencies" - }, - "@types/react": { "version": "~18.2.45", "alwaysAddToPackageJson": false }, - "@testing-library/react-native": { - "version": "~12.4.2", - "alwaysAddToPackageJson": false - }, - "react-native-svg-transformer": { - "version": "1.2.0", - "alwaysAddToPackageJson": false - }, - "react-native-svg": { - "version": "14.1.0", - "alwaysAddToPackageJson": false - }, - "@react-native-community/cli-platform-android": { - "version": "12.3.0", - "alwaysAddToPackageJson": false - } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/react-native", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/react-native/migrations/update-18-0-0-add-upgrade-target.json b/docs/generated/packages/react-native/migrations/update-18-0-0-add-upgrade-target.json deleted file mode 100644 index 1e4b932c86..0000000000 --- a/docs/generated/packages/react-native/migrations/update-18-0-0-add-upgrade-target.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "update-18-0-0-add-upgrade-target", - "cli": "nx", - "version": "18.0.0-beta.0", - "description": "Add upgrade target to react native projects", - "implementation": "/packages/react-native/src/migrations/update-18-0-0/add-upgrade-target.ts", - "aliases": [], - "hidden": false, - "path": "/packages/react-native", - "schema": null, - "type": "migration", - "examplesFile": "" -} diff --git a/docs/generated/packages/react-native/migrations/update-18-0-0-add-web-configuration.json b/docs/generated/packages/react-native/migrations/update-18-0-0-add-web-configuration.json deleted file mode 100644 index 3de2259314..0000000000 --- a/docs/generated/packages/react-native/migrations/update-18-0-0-add-web-configuration.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "update-18-0-0-add-web-configuration", - "cli": "nx", - "version": "18.0.0-beta.0", - "description": "Add web configuration to react native projects", - "implementation": "/packages/react-native/src/migrations/update-18-0-0/add-web-configuration.ts", - "aliases": [], - "hidden": false, - "path": "/packages/react-native", - "schema": null, - "type": "migration", - "examplesFile": "" -} diff --git a/docs/generated/packages/react-native/migrations/update-18-0-0-change-storybook-targets.json b/docs/generated/packages/react-native/migrations/update-18-0-0-change-storybook-targets.json deleted file mode 100644 index 145745eb7c..0000000000 --- a/docs/generated/packages/react-native/migrations/update-18-0-0-change-storybook-targets.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "update-18-0-0-change-storybook-targets", - "cli": "nx", - "version": "18.0.0-beta.0", - "description": "Upgrade react native storybook target to use web", - "implementation": "/packages/react-native/src/migrations/update-18-0-0/change-storybook-targets.ts", - "aliases": [], - "hidden": false, - "path": "/packages/react-native", - "schema": null, - "type": "migration", - "examplesFile": "" -} diff --git a/docs/generated/packages/react-native/migrations/update-18-0-0-remove-block-list.json b/docs/generated/packages/react-native/migrations/update-18-0-0-remove-block-list.json deleted file mode 100644 index 689e4c41da..0000000000 --- a/docs/generated/packages/react-native/migrations/update-18-0-0-remove-block-list.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "update-18-0-0-remove-block-list", - "cli": "nx", - "version": "18.0.0-beta.0", - "description": "Remove blockList in metro.config.js.", - "implementation": "/packages/react-native/src/migrations/update-18-0-0/remove-block-list.ts", - "aliases": [], - "hidden": false, - "path": "/packages/react-native", - "schema": null, - "type": "migration", - "examplesFile": "" -} diff --git a/docs/generated/packages/react-native/migrations/update-18-0-0-remove-metro.json b/docs/generated/packages/react-native/migrations/update-18-0-0-remove-metro.json deleted file mode 100644 index 3ddd6e731f..0000000000 --- a/docs/generated/packages/react-native/migrations/update-18-0-0-remove-metro.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "update-18-0-0-remove-metro", - "cli": "nx", - "version": "18.0.0-beta.0", - "description": "Remove metro-* and @react-native-community/cli-* from package.json devDependencies", - "implementation": "/packages/react-native/src/migrations/update-18-0-0/remove-metro.ts", - "aliases": [], - "hidden": false, - "path": "/packages/react-native", - "schema": null, - "type": "migration", - "examplesFile": "" -} diff --git a/docs/generated/packages/react-native/migrations/update-18-0-0-remove-symlink-target.json b/docs/generated/packages/react-native/migrations/update-18-0-0-remove-symlink-target.json deleted file mode 100644 index eadccc4871..0000000000 --- a/docs/generated/packages/react-native/migrations/update-18-0-0-remove-symlink-target.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "update-18-0-0-remove-symlink-target", - "cli": "nx", - "version": "18.0.0-beta.0", - "description": "Remove ensure-symlink target", - "implementation": "/packages/react-native/src/migrations/update-18-0-0/remove-symlink-target.ts", - "aliases": [], - "hidden": false, - "path": "/packages/react-native", - "schema": null, - "type": "migration", - "examplesFile": "" -} diff --git a/docs/generated/packages/react/migrations/17.0.0-beta.0-package-updates.json b/docs/generated/packages/react/migrations/17.0.0-beta.0-package-updates.json deleted file mode 100644 index 48479328ad..0000000000 --- a/docs/generated/packages/react/migrations/17.0.0-beta.0-package-updates.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "17.0.0-beta.0-package-updates", - "version": "17.0.0-beta.0", - "packages": { - "@types/react": { "version": "18.2.24", "alwaysAddToPackageJson": false }, - "@types/react-dom": { - "version": "18.2.9", - "alwaysAddToPackageJson": false - }, - "@types/react-is": { "version": "18.2.2", "alwaysAddToPackageJson": false } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/react", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/react/migrations/17.3.0-package-updates.json b/docs/generated/packages/react/migrations/17.3.0-package-updates.json deleted file mode 100644 index 84ead5a1a3..0000000000 --- a/docs/generated/packages/react/migrations/17.3.0-package-updates.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "17.3.0-package-updates", - "version": "17.3.0-beta.3", - "packages": { - "@types/node": { "version": "18.16.9", "alwaysAddToPackageJson": false } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/react", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/react/migrations/add-module-federation-env-var-to-target-defaults.json b/docs/generated/packages/react/migrations/add-module-federation-env-var-to-target-defaults.json deleted file mode 100644 index c53cb65749..0000000000 --- a/docs/generated/packages/react/migrations/add-module-federation-env-var-to-target-defaults.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "add-module-federation-env-var-to-target-defaults", - "cli": "nx", - "version": "18.0.0-beta.0", - "description": "Add NX_MF_DEV_SERVER_STATIC_REMOTES to inputs for task hashing when '@nx/webpack:webpack' is used for Module Federation.", - "factory": "./src/migrations/update-18-0-0/add-mf-env-var-to-target-defaults", - "implementation": "/packages/react/src/migrations/update-18-0-0/add-mf-env-var-to-target-defaults.ts", - "aliases": [], - "hidden": false, - "path": "/packages/react", - "schema": null, - "type": "migration", - "examplesFile": "#### Add Module Federation Env Var to Target Defaults\n\nAdd NX_MF_DEV_REMOTES to inputs for task hashing when `@nx/webpack:webpack` or `@nx/rspack:rspack` is used for Module Federation.\n\n#### Sample Code Changes\n\n{% tabs %}\n{% tab label=\"Before\" %}\n\n```json {% fileName=\"nx.json\" %}\n{\n \"targetDefaults\": {\n \"@nx/webpack:webpack\": {\n \"inputs\": [\"^build\"]\n }\n }\n}\n```\n\n{% /tab %}\n{% tab label=\"After\" %}\n\n```json {% highlightLines=[4,5,6] fileName=\"nx.json\" %}\n{\n \"targetDefaults\": {\n \"@nx/webpack:webpack\": {\n \"cache\": true,\n \"dependsOn\": [\"^build\"],\n \"inputs\": [\n \"^build\",\n {\n \"env\": \"NX_MF_DEV_REMOTES\"\n }\n ]\n }\n }\n}\n```\n\n{% /tab %}\n{% /tabs %}\n" -} diff --git a/docs/generated/packages/react/migrations/fix-target-defaults-for-webpack.json b/docs/generated/packages/react/migrations/fix-target-defaults-for-webpack.json deleted file mode 100644 index b0dbaa9f6b..0000000000 --- a/docs/generated/packages/react/migrations/fix-target-defaults-for-webpack.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "fix-target-defaults-for-webpack", - "cli": "nx", - "version": "18.1.1-beta.0", - "description": "Ensure targetDefaults inputs for task hashing when '@nx/webpack:webpack' is used are correct for Module Federation.", - "factory": "./src/migrations/update-18-1-1/fix-target-defaults-inputs", - "implementation": "/packages/react/src/migrations/update-18-1-1/fix-target-defaults-inputs.ts", - "aliases": [], - "hidden": false, - "path": "/packages/react", - "schema": null, - "type": "migration", - "examplesFile": "" -} diff --git a/docs/generated/packages/remix/migrations/17.2.1-package-updates.json b/docs/generated/packages/remix/migrations/17.2.1-package-updates.json deleted file mode 100644 index 2e157cc327..0000000000 --- a/docs/generated/packages/remix/migrations/17.2.1-package-updates.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "17.2.1-package-updates", - "version": "17.2.1-beta.0", - "packages": { - "@remix-run/node": { "version": "^2.3.0", "alwaysAddToPackageJson": true }, - "@remix-run/react": { "version": "^2.3.0", "alwaysAddToPackageJson": true }, - "@remix-run/serve": { "version": "^2.3.0", "alwaysAddToPackageJson": true }, - "@remix-run/dev": { "version": "^2.3.0", "alwaysAddToPackageJson": true }, - "@remix-run/css-bundle": { - "version": "^2.3.0", - "alwaysAddToPackageJson": true - }, - "@remix-run/eslint-config": { - "version": "^2.3.0", - "alwaysAddToPackageJson": true - }, - "isbot": { "version": "^3.6.8", "alwaysAddToPackageJson": true }, - "eslint": { "version": "^8.38.0", "alwaysAddToPackageJson": true }, - "@testing-library/react": { - "version": "^14.1.2", - "alwaysAddToPackageJson": false - }, - "@testing-library/jest-dom": { - "version": "^6.1.4", - "alwaysAddToPackageJson": false - }, - "@testing-library/user-event": { - "version": "^14.5.1", - "alwaysAddToPackageJson": false - } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/remix", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/remix/migrations/18.1.0-package-updates.json b/docs/generated/packages/remix/migrations/18.1.0-package-updates.json deleted file mode 100644 index 497e482856..0000000000 --- a/docs/generated/packages/remix/migrations/18.1.0-package-updates.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "18.1.0-package-updates", - "version": "18.1.0-beta.1", - "packages": { - "@remix-run/node": { "version": "^2.6.0", "alwaysAddToPackageJson": true }, - "@remix-run/react": { "version": "^2.6.0", "alwaysAddToPackageJson": true }, - "@remix-run/serve": { "version": "^2.6.0", "alwaysAddToPackageJson": true }, - "@remix-run/dev": { "version": "^2.6.0", "alwaysAddToPackageJson": true }, - "@remix-run/css-bundle": { - "version": "^2.6.0", - "alwaysAddToPackageJson": true - }, - "@remix-run/eslint-config": { - "version": "^2.6.0", - "alwaysAddToPackageJson": true - }, - "isbot": { "version": "^4.4.0", "alwaysAddToPackageJson": true }, - "eslint": { "version": "^8.56.0", "alwaysAddToPackageJson": true }, - "@testing-library/react": { - "version": "^14.1.2", - "alwaysAddToPackageJson": false - }, - "@testing-library/jest-dom": { - "version": "^6.2.0", - "alwaysAddToPackageJson": false - }, - "@testing-library/user-event": { - "version": "^14.5.2", - "alwaysAddToPackageJson": false - }, - "typescript": { "version": "^5.3.3", "alwaysAddToPackageJson": false } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/remix", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/remix/migrations/18.1.1-package-updates.json b/docs/generated/packages/remix/migrations/18.1.1-package-updates.json deleted file mode 100644 index c0624695af..0000000000 --- a/docs/generated/packages/remix/migrations/18.1.1-package-updates.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "18.1.1-package-updates", - "version": "18.1.1-beta.0", - "packages": { - "@remix-run/node": { "version": "^2.8.0", "alwaysAddToPackageJson": true }, - "@remix-run/react": { "version": "^2.8.0", "alwaysAddToPackageJson": true }, - "@remix-run/serve": { "version": "^2.8.0", "alwaysAddToPackageJson": true }, - "@remix-run/dev": { "version": "^2.8.0", "alwaysAddToPackageJson": true }, - "@remix-run/css-bundle": { - "version": "^2.8.0", - "alwaysAddToPackageJson": true - }, - "@remix-run/eslint-config": { - "version": "^2.8.0", - "alwaysAddToPackageJson": true - } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/remix", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/rollup/migrations/18.2.0-package-updates.json b/docs/generated/packages/rollup/migrations/18.2.0-package-updates.json deleted file mode 100644 index e6089918ba..0000000000 --- a/docs/generated/packages/rollup/migrations/18.2.0-package-updates.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "18.2.0-package-updates", - "version": "18.2.0-beta.1", - "packages": { - "core-js": { "version": "3.36.1", "alwaysAddToPackageJson": false } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/rollup", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/rspack/migrations/18.1.0-package-updates.json b/docs/generated/packages/rspack/migrations/18.1.0-package-updates.json deleted file mode 100644 index e2ce8e2364..0000000000 --- a/docs/generated/packages/rspack/migrations/18.1.0-package-updates.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "18.1.0-package-updates", - "version": "18.1.0-beta.0", - "packages": { - "@rspack/core": { "version": "~0.5.6", "alwaysAddToPackageJson": false }, - "@rspack/dev-server": { - "version": "~0.5.6", - "alwaysAddToPackageJson": false - }, - "@rspack/plugin-minify": { - "version": "~0.5.6", - "alwaysAddToPackageJson": false - } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/rspack", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/rspack/migrations/18.1.3-package-updates.json b/docs/generated/packages/rspack/migrations/18.1.3-package-updates.json deleted file mode 100644 index 0d5d5f039e..0000000000 --- a/docs/generated/packages/rspack/migrations/18.1.3-package-updates.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "18.1.3-package-updates", - "version": "18.1.3", - "packages": { - "@rspack/core": { "version": "^0.6.1", "alwaysAddToPackageJson": false }, - "@rspack/dev-server": { - "version": "^0.6.1", - "alwaysAddToPackageJson": false - }, - "@rspack/plugin-minify": { - "version": "^0.6.1", - "alwaysAddToPackageJson": false - } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/rspack", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/storybook/migrations/17.0.0-package-updates.json b/docs/generated/packages/storybook/migrations/17.0.0-package-updates.json deleted file mode 100644 index 3a78a7aad7..0000000000 --- a/docs/generated/packages/storybook/migrations/17.0.0-package-updates.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "name": "17.0.0-package-updates", - "version": "17.0.0-rc.3", - "packages": { - "@storybook/test-runner": { - "version": "^0.13.0", - "alwaysAddToPackageJson": false - }, - "@storybook/core-server": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/angular": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/react": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/react-vite": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/react-webpack5": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/web-components-vite": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/web-components-webpack5": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-a11y": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-actions": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-backgrounds": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-controls": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-docs": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-essentials": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-interactions": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-mdx-gfm": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-highlight": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-jest": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-links": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-measure": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-outline": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-storyshots": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-storyshots-puppeteer": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-storysource": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-toolbars": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-viewport": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/storybook", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/storybook/migrations/17.1.0-beta.4-package-updates.json b/docs/generated/packages/storybook/migrations/17.1.0-beta.4-package-updates.json deleted file mode 100644 index bfe58d4699..0000000000 --- a/docs/generated/packages/storybook/migrations/17.1.0-beta.4-package-updates.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "17.1.0-beta.4-package-updates", - "version": "17.1.0-beta.4", - "packages": { - "@storybook/testing-library": { - "version": "^0.2.2", - "alwaysAddToPackageJson": false - }, - "@storybook/jest": { "version": "^0.2.3", "alwaysAddToPackageJson": false } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/storybook", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/storybook/migrations/17.1.0-package-updates.json b/docs/generated/packages/storybook/migrations/17.1.0-package-updates.json deleted file mode 100644 index d2649ec714..0000000000 --- a/docs/generated/packages/storybook/migrations/17.1.0-package-updates.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "name": "17.1.0-package-updates", - "version": "17.1.0-beta.3", - "packages": { - "@storybook/test-runner": { - "version": "^0.13.0", - "alwaysAddToPackageJson": false - }, - "@storybook/core-server": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/angular": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/react": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/react-vite": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/react-webpack5": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/web-components-vite": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/web-components-webpack5": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-a11y": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-actions": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-backgrounds": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-controls": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-docs": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-essentials": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-interactions": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-mdx-gfm": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-highlight": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-jest": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-links": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-measure": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-outline": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-storyshots": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-storyshots-puppeteer": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-storysource": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-toolbars": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-viewport": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/storybook", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/storybook/migrations/17.2.0-beta.2-package-updates.json b/docs/generated/packages/storybook/migrations/17.2.0-beta.2-package-updates.json deleted file mode 100644 index ab05f11c37..0000000000 --- a/docs/generated/packages/storybook/migrations/17.2.0-beta.2-package-updates.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "17.2.0-beta.2-package-updates", - "version": "17.2.0-beta.2", - "packages": { - "vite": { "version": "^5.0.0", "alwaysAddToPackageJson": false } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/storybook", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/storybook/migrations/18.2.0-package-updates.json b/docs/generated/packages/storybook/migrations/18.2.0-package-updates.json deleted file mode 100644 index e0fa8e6a4f..0000000000 --- a/docs/generated/packages/storybook/migrations/18.2.0-package-updates.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "18.2.0-package-updates", - "version": "18.2.0-beta.1", - "packages": { - "core-js": { "version": "3.36.1", "alwaysAddToPackageJson": false } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/storybook", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/vite/migrations/17.2.0-package-updates.json b/docs/generated/packages/vite/migrations/17.2.0-package-updates.json deleted file mode 100644 index 3d00a5e4c6..0000000000 --- a/docs/generated/packages/vite/migrations/17.2.0-package-updates.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "17.2.0-package-updates", - "version": "17.2.0-beta.2", - "packages": { - "vite": { "version": "^5.0.0", "alwaysAddToPackageJson": false }, - "@vitejs/plugin-react": { - "version": "^4.2.0", - "alwaysAddToPackageJson": false - }, - "@vitejs/plugin-react-swc": { - "version": "^3.5.0", - "alwaysAddToPackageJson": false - }, - "vitest": { "version": "~0.34.6", "alwaysAddToPackageJson": false }, - "@vitest/coverage-v8": { - "version": "~0.34.6", - "alwaysAddToPackageJson": false - }, - "@vitest/ui": { "version": "~0.34.6", "alwaysAddToPackageJson": false }, - "@vitest/coverage-istanbul": { - "version": "~0.34.6", - "alwaysAddToPackageJson": false - } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/vite", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/vite/migrations/17.3.0-package-updates.json b/docs/generated/packages/vite/migrations/17.3.0-package-updates.json deleted file mode 100644 index 6718426952..0000000000 --- a/docs/generated/packages/vite/migrations/17.3.0-package-updates.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "17.3.0-package-updates", - "version": "17.3.0-beta.0", - "packages": { - "vitest": { "version": "^1.0.4", "alwaysAddToPackageJson": false }, - "@vitest/coverage-v8": { - "version": "^1.0.4", - "alwaysAddToPackageJson": false - }, - "@vitest/ui": { "version": "^1.0.4", "alwaysAddToPackageJson": false }, - "@vitest/coverage-istanbul": { - "version": "^1.0.4", - "alwaysAddToPackageJson": false - } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/vite", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/vite/migrations/18.1.0-package-updates.json b/docs/generated/packages/vite/migrations/18.1.0-package-updates.json deleted file mode 100644 index d581dfcfa9..0000000000 --- a/docs/generated/packages/vite/migrations/18.1.0-package-updates.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "18.1.0-package-updates", - "version": "18.1.0-beta.1", - "packages": { - "vitest": { "version": "^1.3.1", "alwaysAddToPackageJson": false }, - "@vitest/coverage-v8": { - "version": "^1.3.1", - "alwaysAddToPackageJson": false - }, - "@vitest/ui": { "version": "^1.3.1", "alwaysAddToPackageJson": false }, - "@vitest/coverage-istanbul": { - "version": "^1.3.1", - "alwaysAddToPackageJson": false - } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/vite", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/vite/migrations/move-target-defaults.json b/docs/generated/packages/vite/migrations/move-target-defaults.json deleted file mode 100644 index 1d53c1cb81..0000000000 --- a/docs/generated/packages/vite/migrations/move-target-defaults.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "move-target-defaults", - "version": "17.1.0-beta.2", - "description": "Move target defaults", - "implementation": "/packages/vite/src/migrations/update-17-1-0/move-target-defaults.ts", - "aliases": [], - "hidden": false, - "path": "/packages/vite", - "schema": null, - "type": "migration", - "examplesFile": "" -} diff --git a/docs/generated/packages/vite/migrations/update-vite-config.json b/docs/generated/packages/vite/migrations/update-vite-config.json deleted file mode 100644 index 3fd00236e7..0000000000 --- a/docs/generated/packages/vite/migrations/update-vite-config.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "update-vite-config", - "version": "17.2.0-beta.10", - "description": "Update vite config.", - "implementation": "/packages/vite/src/migrations/update-17-2-0/update-vite-config.ts", - "aliases": [], - "hidden": false, - "path": "/packages/vite", - "schema": null, - "type": "migration", - "examplesFile": "" -} diff --git a/docs/generated/packages/vite/migrations/vitest-coverage-and-reporters.json b/docs/generated/packages/vite/migrations/vitest-coverage-and-reporters.json deleted file mode 100644 index 749036522f..0000000000 --- a/docs/generated/packages/vite/migrations/vitest-coverage-and-reporters.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "vitest-coverage-and-reporters", - "version": "17.3.0-beta.0", - "description": "Move the vitest coverage thresholds in their own object if exists and add reporters.", - "implementation": "/packages/vite/src/migrations/update-17-3-0/vitest-coverage-and-reporters.ts", - "aliases": [], - "hidden": false, - "path": "/packages/vite", - "schema": null, - "type": "migration", - "examplesFile": "" -} diff --git a/docs/generated/packages/vue/migrations/17.2.0-package-updates.json b/docs/generated/packages/vue/migrations/17.2.0-package-updates.json deleted file mode 100644 index 44227b2cc1..0000000000 --- a/docs/generated/packages/vue/migrations/17.2.0-package-updates.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "17.2.0-package-updates", - "version": "17.2.0-beta.2", - "packages": { - "@vitejs/plugin-vue": { - "version": "^4.5.0", - "alwaysAddToPackageJson": false - } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/vue", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/web/migrations/17.3.0-package-updates.json b/docs/generated/packages/web/migrations/17.3.0-package-updates.json deleted file mode 100644 index d1198c7111..0000000000 --- a/docs/generated/packages/web/migrations/17.3.0-package-updates.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "17.3.0-package-updates", - "version": "17.3.0-beta.3", - "packages": { - "@types/node": { "version": "18.16.9", "alwaysAddToPackageJson": false } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/web", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/webpack/migrations/update-17-2-1-webpack-config-setup.json b/docs/generated/packages/webpack/migrations/update-17-2-1-webpack-config-setup.json deleted file mode 100644 index 7d2d7b11be..0000000000 --- a/docs/generated/packages/webpack/migrations/update-17-2-1-webpack-config-setup.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "update-17-2-1-webpack-config-setup", - "cli": "nx", - "version": "17.2.1-beta.0", - "description": "Add webpack.config.js file when webpackConfig is not defined", - "implementation": "/packages/webpack/src/migrations/update-17-2-1/webpack-config-setup.ts", - "aliases": [], - "hidden": false, - "path": "/packages/webpack", - "schema": null, - "type": "migration", - "examplesFile": "" -} diff --git a/docs/generated/packages/workspace/migrations/17.1.0-package-updates.json b/docs/generated/packages/workspace/migrations/17.1.0-package-updates.json deleted file mode 100644 index eca58704b7..0000000000 --- a/docs/generated/packages/workspace/migrations/17.1.0-package-updates.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "17.1.0-package-updates", - "version": "17.1.0-beta.4", - "x-prompt": "Do you want to update to TypeScript v5.2?", - "requires": { "typescript": ">=5.1.0 <5.2.0" }, - "packages": { "typescript": { "version": "~5.2.2" } }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/workspace", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/workspace/migrations/17.3.0-package-updates.json b/docs/generated/packages/workspace/migrations/17.3.0-package-updates.json deleted file mode 100644 index 7d1b6dd4b4..0000000000 --- a/docs/generated/packages/workspace/migrations/17.3.0-package-updates.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "17.3.0-package-updates", - "version": "17.3.0-beta.10", - "x-prompt": "Do you want to update to TypeScript v5.3?", - "requires": { "typescript": ">=5.2.0 <5.3.0" }, - "packages": { "typescript": { "version": "~5.3.2" } }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/workspace", - "schema": null, - "type": "migration" -} diff --git a/docs/generated/packages/workspace/migrations/18.2.0-package-updates.json b/docs/generated/packages/workspace/migrations/18.2.0-package-updates.json deleted file mode 100644 index eb89ab87cb..0000000000 --- a/docs/generated/packages/workspace/migrations/18.2.0-package-updates.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "18.2.0-package-updates", - "version": "18.2.0-beta.0", - "x-prompt": "Do you want to update to TypeScript v5.4?", - "requires": { "typescript": ">=5.3.0 <5.4.0" }, - "packages": { - "typescript": { "version": "~5.4.2", "alwaysAddToPackageJson": false } - }, - "aliases": [], - "description": "", - "hidden": false, - "implementation": "", - "path": "/packages/workspace", - "schema": null, - "type": "migration" -} diff --git a/docs/shared/reference/sitemap.md b/docs/shared/reference/sitemap.md index 878f9a81d1..e5b2e8d333 100644 --- a/docs/shared/reference/sitemap.md +++ b/docs/shared/reference/sitemap.md @@ -795,7 +795,6 @@ - [init](/nx-api/web/generators/init) - [application](/nx-api/web/generators/application) - [static-config](/nx-api/web/generators/static-config) - - [migrations](/nx-api/web/migrations) - [webpack](/nx-api/webpack) - [documents](/nx-api/webpack/documents) - [Overview](/nx-api/webpack/documents/overview) diff --git a/packages/cypress/migrations.json b/packages/cypress/migrations.json index 6857a2d6e2..3cbde522ea 100644 --- a/packages/cypress/migrations.json +++ b/packages/cypress/migrations.json @@ -1,11 +1,5 @@ { "generators": { - "update-cypress-version-13-6-6": { - "cli": "nx", - "version": "18.1.0-beta.3", - "description": "Update to Cypress ^13.6.6 if the workspace is using Cypress v13 to ensure workspaces don't use v13.6.5 which has an issue when verifying Cypress.", - "implementation": "./src/migrations/update-18-1-0/update-cypress-version-13-6-6" - }, "update-19-6-0-update-ci-webserver-for-vite": { "cli": "nx", "version": "19.6.0-beta.4", @@ -50,24 +44,6 @@ } }, "packageJsonUpdates": { - "17.2.0-beta.2": { - "version": "17.2.0-beta.2", - "packages": { - "vite": { - "version": "^5.0.0", - "alwaysAddToPackageJson": false - } - } - }, - "17.3.0": { - "version": "17.3.0-beta.3", - "packages": { - "@types/node": { - "version": "18.16.9", - "alwaysAddToPackageJson": false - } - } - }, "19.1.0": { "version": "19.1.0-beta.0", "requires": { diff --git a/packages/cypress/src/migrations/update-18-1-0/update-cypress-version-13-6-6.spec.ts b/packages/cypress/src/migrations/update-18-1-0/update-cypress-version-13-6-6.spec.ts deleted file mode 100644 index 99ec1eb9de..0000000000 --- a/packages/cypress/src/migrations/update-18-1-0/update-cypress-version-13-6-6.spec.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { readJson, updateJson, type Tree } from '@nx/devkit'; -import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing'; -import * as cypressVersions from '../../utils/versions'; -import migration from './update-cypress-version-13-6-6'; - -describe('update-cypress-version migration', () => { - let tree: Tree; - - function setCypressVersion(version: string) { - updateJson(tree, 'package.json', (json) => { - json.devDependencies ??= {}; - json.devDependencies.cypress = version; - return json; - }); - const major = parseInt(version.split('.')[0].replace('^', ''), 10); - jest - .spyOn(cypressVersions, 'getInstalledCypressMajorVersion') - .mockReturnValue(major); - } - - beforeEach(() => { - tree = createTreeWithEmptyWorkspace(); - }); - - it('should bump cypress version to ^13.6.6', async () => { - setCypressVersion('^13.0.0'); - - await migration(tree); - - const { devDependencies } = readJson(tree, 'package.json'); - expect(devDependencies.cypress).toBe('^13.6.6'); - }); - - it('should not update cypress version if it is not >= 13', async () => { - setCypressVersion('^12.0.0'); - - await migration(tree); - - const { devDependencies } = readJson(tree, 'package.json'); - expect(devDependencies.cypress).toBe('^12.0.0'); - }); -}); diff --git a/packages/cypress/src/migrations/update-18-1-0/update-cypress-version-13-6-6.ts b/packages/cypress/src/migrations/update-18-1-0/update-cypress-version-13-6-6.ts deleted file mode 100644 index eb89196d95..0000000000 --- a/packages/cypress/src/migrations/update-18-1-0/update-cypress-version-13-6-6.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { - addDependenciesToPackageJson, - formatFiles, - type Tree, -} from '@nx/devkit'; -import { getInstalledCypressMajorVersion } from '../../utils/versions'; - -export default async function (tree: Tree) { - if (getInstalledCypressMajorVersion(tree) < 13) { - return; - } - - addDependenciesToPackageJson(tree, {}, { cypress: '^13.6.6' }); - - await formatFiles(tree); -} diff --git a/packages/detox/migrations.json b/packages/detox/migrations.json index 9f361e2b80..a951c280d9 100644 --- a/packages/detox/migrations.json +++ b/packages/detox/migrations.json @@ -1,32 +1,6 @@ { "generators": {}, "packageJsonUpdates": { - "18.0.0": { - "version": "18.0.0-beta.0", - "packages": { - "detox": { - "version": "^20.16.0", - "alwaysAddToPackageJson": false - } - } - }, - "18.1.0": { - "version": "18.1.0-beta.0", - "packages": { - "detox": { - "version": "~20.18.1", - "alwaysAddToPackageJson": false - }, - "@config-plugins/detox": { - "version": "~7.0.0", - "alwaysAddToPackageJson": false - }, - "@testing-library/jest-dom": { - "version": "~6.4.2", - "alwaysAddToPackageJson": false - } - } - }, "19.2.0": { "version": "19.2.0-beta.2", "packages": { diff --git a/packages/eslint-plugin/migrations.json b/packages/eslint-plugin/migrations.json index 73b5e7315e..46e6b91ac8 100644 --- a/packages/eslint-plugin/migrations.json +++ b/packages/eslint-plugin/migrations.json @@ -1,11 +1,5 @@ { "generators": { - "update-17-2-6-rename-workspace-rules": { - "cli": "nx", - "version": "17.2.6-beta.1", - "description": "Rename workspace rules from @nx/workspace/name to @nx/workspace-name", - "implementation": "./src/migrations/update-17-2-6-rename-workspace-rules/rename-workspace-rules" - }, "update-19-1-0-rename-no-extra-semi": { "cli": "nx", "version": "19.1.0-beta.6", diff --git a/packages/eslint-plugin/src/migrations/update-17-2-6-rename-workspace-rules/rename-workspace-rules.spec.ts b/packages/eslint-plugin/src/migrations/update-17-2-6-rename-workspace-rules/rename-workspace-rules.spec.ts deleted file mode 100644 index c2e9072752..0000000000 --- a/packages/eslint-plugin/src/migrations/update-17-2-6-rename-workspace-rules/rename-workspace-rules.spec.ts +++ /dev/null @@ -1,131 +0,0 @@ -import { Tree, readJson, writeJson } from '@nx/devkit'; -import { createTreeWithEmptyWorkspace } from 'nx/src/devkit-testing-exports'; -import { WORKSPACE_PLUGIN_DIR } from '../../constants'; -import update from './rename-workspace-rules'; - -import 'nx/src/internal-testing-utils/mock-project-graph'; - -const rule1Name = 'test-rule'; -const rule2Name = 'my-rule'; - -describe('update-17-2-6-rename-workspace-rules', () => { - let tree: Tree; - - beforeEach(async () => { - tree = createTreeWithEmptyWorkspace(); - - const { lintWorkspaceRuleGenerator } = require('@nx/' + - 'eslint/src/generators/workspace-rule/workspace-rule'); - - await lintWorkspaceRuleGenerator(tree, { - name: rule1Name, - }); - await lintWorkspaceRuleGenerator(tree, { - name: rule2Name, - }); - - jest.mock(WORKSPACE_PLUGIN_DIR, () => ({ - rules: { - [rule1Name]: {}, - [rule2Name]: {}, - }, - })); - }); - - it('should replace rules in config files', async () => { - writeJson(tree, '.eslintrc.json', { - plugins: ['@nx'], - rules: { - [`@nx/workspace/${rule1Name}`]: 'error', - [`@nx/workspace/${rule2Name}`]: 'error', - }, - }); - - await update(tree); - - expect(Object.keys(readJson(tree, '.eslintrc.json').rules)).toEqual([ - '@nx/workspace-test-rule', - '@nx/workspace-my-rule', - ]); - }); - - it('should replace rules in random js files', async () => { - tree.write( - 'custom.js', - ` - export default { - plugins: ['@nx'], - rules: { - "@nx/workspace/${rule1Name}": 'error', - "@nx/workspace/${rule2Name}": 'error', - }, - } - ` - ); - - await update(tree); - - expect(tree.read('custom.js', 'utf-8')).toContain( - `@nx/workspace-test-rule` - ); - expect(tree.read('custom.js', 'utf-8')).toContain(`@nx/workspace-my-rule`); - expect(tree.read('custom.js', 'utf-8')).not.toContain( - `@nx/workspace/test-rule` - ); - expect(tree.read('custom.js', 'utf-8')).not.toContain( - `@nx/workspace/my-rule` - ); - }); - - it('should replace rules in comments', async () => { - tree.write( - 'custom.js', - `import { getSourceNodes } from '@nx/workspace/src/utilities/typescript'; - - // eslint-disable-next-line @nx/workspace/${rule1Name} - import { something } from 'somewhere'; - - /* eslint-disable @nx/workspace/${rule2Name} */ - // something that should remain the same @nx/workspace/unknown-rule - /* eslint-enable @nx/workspace/${rule2Name} */ - ` - ); - - await update(tree); - - expect(tree.read('custom.js', 'utf-8')).toMatchInlineSnapshot(` - "import { getSourceNodes } from '@nx/workspace/src/utilities/typescript'; - - // eslint-disable-next-line @nx/workspace-test-rule - import { something } from 'somewhere'; - - /* eslint-disable @nx/workspace-my-rule */ - // something that should remain the same @nx/workspace/unknown-rule - /* eslint-enable @nx/workspace-my-rule */ - " - `); - }); - - it('should not replace unknown rules', async () => { - tree.write( - 'custom.js', - ` - export default { - plugins: ['@nx'], - rules: { - "@nx/workspace/random-rule": 'error', - }, - } - ` - ); - - await update(tree); - - expect(tree.read('custom.js', 'utf-8')).not.toContain( - `@nx/workspace-random-rule` - ); - expect(tree.read('custom.js', 'utf-8')).toContain( - `@nx/workspace/random-rule` - ); - }); -}); diff --git a/packages/eslint-plugin/src/migrations/update-17-2-6-rename-workspace-rules/rename-workspace-rules.ts b/packages/eslint-plugin/src/migrations/update-17-2-6-rename-workspace-rules/rename-workspace-rules.ts deleted file mode 100644 index 3b280c62f8..0000000000 --- a/packages/eslint-plugin/src/migrations/update-17-2-6-rename-workspace-rules/rename-workspace-rules.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Tree, formatFiles, visitNotIgnoredFiles } from '@nx/devkit'; -import { isBinaryPath } from '@nx/devkit/src/utils/binary-extensions'; -import { WORKSPACE_PLUGIN_DIR, WORKSPACE_RULES_PATH } from '../../constants'; - -export default async function renameWorkspaceRule(tree: Tree): Promise { - if (!tree.exists(WORKSPACE_RULES_PATH)) { - return; - } - let ruleNames: string[] = []; - try { - ruleNames = Object.keys(require(WORKSPACE_PLUGIN_DIR).rules); - } catch (e) { - return; - } - - visitNotIgnoredFiles(tree, '.', (path) => { - if (isBinaryPath(path)) { - return; - } - - let contents = tree.read(path, 'utf-8') as string; - ruleNames.forEach((ruleName) => { - contents = contents.replace( - new RegExp(`@nx/workspace/${ruleName}`, 'g'), - `@nx/workspace-${ruleName}` - ); - }); - tree.write(path, contents); - }); - - await formatFiles(tree); -} diff --git a/packages/eslint/migrations.json b/packages/eslint/migrations.json index d41f9f9cd7..7f0c0fafbd 100644 --- a/packages/eslint/migrations.json +++ b/packages/eslint/migrations.json @@ -1,25 +1,5 @@ { "generators": { - "update-17-0-0-rename-to-eslint": { - "version": "17.0.0-beta.7", - "description": "update-17-0-0-rename-to-eslint", - "implementation": "./src/migrations/update-17-0-0-rename-to-eslint/update-17-0-0-rename-to-eslint" - }, - "update-typescript-eslint": { - "version": "17.1.0-beta.1", - "description": "Updates for @typescript-utils/utils v6.9.1+", - "implementation": "./src/migrations/update-17-1-0/update-typescript-eslint" - }, - "simplify-eslint-patterns": { - "version": "17.2.0-beta.0", - "description": "Simplify eslintFilePatterns", - "implementation": "./src/migrations/update-17-2-0/simplify-eslint-patterns" - }, - "move-options-to-target-defaults": { - "version": "17.2.9", - "description": "Move executor options to target defaults", - "implementation": "./src/migrations/update-17-2-9/move-options-to-target-defaults" - }, "update-typescript-eslint-v8.13.0": { "version": "20.2.0-beta.5", "description": "Update TypeScript ESLint packages to v8.13.0 if they are already on v8", @@ -32,67 +12,6 @@ } }, "packageJsonUpdates": { - "17.0.0": { - "version": "17.0.0-rc.2", - "packages": { - "eslint-config-prettier": { - "version": "^9.0.0" - } - } - }, - "17.1.0": { - "version": "17.1.0-beta.1", - "packages": { - "@typescript-eslint/parser": { - "version": "^6.9.1" - }, - "@typescript-eslint/eslint-plugin": { - "version": "^6.9.1" - }, - "@typescript-eslint/utils": { - "version": "^6.9.1" - } - } - }, - "17.2.0": { - "version": "17.2.0-beta.2", - "packages": { - "eslint": { - "version": "~8.48.0" - } - } - }, - "17.3.0": { - "version": "17.3.0-beta.0", - "packages": { - "@typescript-eslint/parser": { - "version": "^6.13.2" - }, - "@typescript-eslint/eslint-plugin": { - "version": "^6.13.2" - }, - "@typescript-eslint/utils": { - "version": "^6.13.2" - } - } - }, - "18.2.0": { - "version": "18.2.0-beta.0", - "packages": { - "@typescript-eslint/parser": { - "version": "^7.3.0" - }, - "@typescript-eslint/eslint-plugin": { - "version": "^7.3.0" - }, - "@typescript-eslint/utils": { - "version": "^7.3.0" - }, - "eslint": { - "version": "~8.57.0" - } - } - }, "19.5.0": { "version": "19.5.0-beta.1", "packages": { diff --git a/packages/eslint/src/migrations/update-17-0-0-rename-to-eslint/update-17-0-0-rename-to-eslint.spec.ts b/packages/eslint/src/migrations/update-17-0-0-rename-to-eslint/update-17-0-0-rename-to-eslint.spec.ts deleted file mode 100644 index b3a05ec241..0000000000 --- a/packages/eslint/src/migrations/update-17-0-0-rename-to-eslint/update-17-0-0-rename-to-eslint.spec.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { - Tree, - addProjectConfiguration, - readJson, - updateJson, -} from '@nx/devkit'; -import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing'; -import replacePackage from './update-17-0-0-rename-to-eslint'; - -describe('update-17-0-0-rename-to-eslint', () => { - let tree: Tree; - beforeEach(() => { - tree = createTreeWithEmptyWorkspace(); - - updateJson(tree, 'package.json', (json) => { - json.devDependencies['@nx/linter'] = '17.0.0'; - return json; - }); - - updateJson(tree, 'nx.json', (json) => { - json.targetDefaults = { - lint: { - executor: '@nx/linter:eslint', - }, - }; - return json; - }); - }); - - it('should remove the dependency on @nx/linter', async () => { - await replacePackage(tree); - - expect( - readJson(tree, 'package.json').dependencies['@nx/linter'] - ).not.toBeDefined(); - expect( - readJson(tree, 'package.json').devDependencies['@nx/linter'] - ).not.toBeDefined(); - }); - - it('should add a dependency on @nx/eslint', async () => { - await replacePackage(tree); - - const packageJson = readJson(tree, 'package.json'); - const newDependencyVersion = - packageJson.devDependencies['@nx/eslint'] ?? - packageJson.dependencies['@nx/eslint']; - - expect(newDependencyVersion).toBeDefined(); - }); - - it('should update the targetDefaults', async () => { - await replacePackage(tree); - - const nxJson = readJson(tree, 'nx.json'); - expect(nxJson.targetDefaults.lint.executor).toEqual('@nx/eslint:lint'); - }); - - it('should update the target executor', async () => { - addProjectConfiguration(tree, 'test-lib', { - root: 'libs/test-lib', - projectType: 'library', - targets: { - lint: { - executor: '@nx/linter:eslint', - }, - }, - }); - - await replacePackage(tree); - - const projJson = readJson(tree, 'libs/test-lib/project.json'); - expect(projJson.targets.lint.executor).toEqual('@nx/eslint:lint'); - }); -}); diff --git a/packages/eslint/src/migrations/update-17-0-0-rename-to-eslint/update-17-0-0-rename-to-eslint.ts b/packages/eslint/src/migrations/update-17-0-0-rename-to-eslint/update-17-0-0-rename-to-eslint.ts deleted file mode 100644 index bfeb50b447..0000000000 --- a/packages/eslint/src/migrations/update-17-0-0-rename-to-eslint/update-17-0-0-rename-to-eslint.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { - NxJsonConfiguration, - Tree, - formatFiles, - getProjects, - readNxJson, - updateNxJson, - updateProjectConfiguration, -} from '@nx/devkit'; -import { replaceNrwlPackageWithNxPackage } from '@nx/devkit/src/utils/replace-package'; - -export default async function replacePackage(tree: Tree): Promise { - await replaceNrwlPackageWithNxPackage(tree, '@nx/linter', '@nx/eslint'); - - // executor name change from :eslint to :lint - updateNxJsonExecutor(tree); - updateProjectExecutor(tree); - - await formatFiles(tree); -} - -function updateNxJsonExecutor(tree: Tree) { - if (!tree.exists('nx.json')) { - return; - } - - const nxJson: NxJsonConfiguration = readNxJson(tree); - let needsUpdate = false; - - for (const [targetName, targetConfig] of Object.entries( - nxJson.targetDefaults ?? {} - )) { - // this will be in a broken state after the package is globally renamed - if (targetConfig.executor !== '@nx/eslint:eslint') { - continue; - } - needsUpdate = true; - nxJson.targetDefaults[targetName].executor = '@nx/eslint:lint'; - } - - if (needsUpdate) { - updateNxJson(tree, nxJson); - } -} - -function updateProjectExecutor(tree: Tree) { - const projects = getProjects(tree); - - for (const [projectName, projectConfiguration] of projects) { - let needsUpdate = false; - - for (const [targetName, targetConfig] of Object.entries( - projectConfiguration.targets ?? {} - )) { - // this will be in a broken state after the package is globally renamed - if (targetConfig.executor !== '@nx/eslint:eslint') { - continue; - } - - needsUpdate = true; - projectConfiguration.targets[targetName].executor = '@nx/eslint:lint'; - } - - if (needsUpdate) { - updateProjectConfiguration(tree, projectName, projectConfiguration); - } - } -} diff --git a/packages/eslint/src/migrations/update-17-1-0/__snapshots__/update-typescript-eslint.spec.ts.snap b/packages/eslint/src/migrations/update-17-1-0/__snapshots__/update-typescript-eslint.spec.ts.snap deleted file mode 100644 index 43e3a3b39d..0000000000 --- a/packages/eslint/src/migrations/update-17-1-0/__snapshots__/update-typescript-eslint.spec.ts.snap +++ /dev/null @@ -1,91 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`update-typescript-eslint migration should update the jest.config.ts 1`] = ` -"/* eslint-disable */ -export default { - displayName: 'eslint-rules', - preset: '../../jest.preset.js', - transform: { - '^.+\\\\.[tj]s$': ['ts-jest', { tsconfig: '/tsconfig.spec.json' }], - }, - moduleFileExtensions: ['ts', 'js', 'html'], - coverageDirectory: '../../coverage/tools/eslint-rules', - moduleNameMapper: {}, -}; -" -`; - -exports[`update-typescript-eslint migration should update the rules 1`] = ` -"/** - * This file sets you up with structure needed for an ESLint rule. - * - * It leverages utilities from @typescript-eslint to allow TypeScript to - * provide autocompletions etc for the configuration. - * - * Your rule's custom logic will live within the create() method below - * and you can learn more about writing ESLint rules on the official guide: - * - * https://eslint.org/docs/developer-guide/working-with-rules - * - * You can also view many examples of existing rules here: - * - * https://github.com/typescript-eslint/typescript-eslint/tree/master/packages/eslint-plugin/src/rules - */ - -import { ESLintUtils } from '@typescript-eslint/utils'; - -// NOTE: The rule will be available in ESLint configs as "@nx/workspace-lint-rule" -export const RULE_NAME = 'lint-rule'; - -export const rule = ESLintUtils.RuleCreator(() => __filename)({ - name: RULE_NAME, - meta: { - type: 'problem', - docs: { - description: \`\`, - }, - schema: [], - messages: {}, - }, - defaultOptions: [], - create(context) { - return {}; - }, -}); -" -`; - -exports[`update-typescript-eslint migration should update the tsconfig.json 1`] = ` -"{ - "compilerOptions": { - "module": "node16", - "moduleResolution": "node16" - } -} -" -`; - -exports[`update-typescript-eslint migration should update the tsconfig.json 2`] = ` -"{ - "extends": "./tsconfig.json", - "compilerOptions": { - "outDir": "../../dist/out-tsc", - "types": ["jest", "node"] - }, - "include": [ - "**/*.spec.ts", - "**/*.test.ts", - "**/*_spec.ts", - "**/*_test.ts", - "**/*.spec.tsx", - "**/*.test.tsx", - "**/*.spec.js", - "**/*.test.js", - "**/*.spec.jsx", - "**/*.test.jsx", - "**/*.d.ts", - "jest.config.ts" - ] -} -" -`; diff --git a/packages/eslint/src/migrations/update-17-1-0/update-typescript-eslint.spec.ts b/packages/eslint/src/migrations/update-17-1-0/update-typescript-eslint.spec.ts deleted file mode 100644 index 7e02a51fa2..0000000000 --- a/packages/eslint/src/migrations/update-17-1-0/update-typescript-eslint.spec.ts +++ /dev/null @@ -1,126 +0,0 @@ -import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing'; -import { Tree, writeJson } from '@nx/devkit'; - -import update from './update-typescript-eslint'; - -describe('update-typescript-eslint migration', () => { - let tree: Tree; - - beforeEach(() => { - tree = createTreeWithEmptyWorkspace(); - - writeJson(tree, 'tools/eslint-rules/tsconfig.json', { - compilerOptions: { - module: 'commonjs', - }, - }); - writeJson(tree, 'tools/eslint-rules/tsconfig.spec.json', { - extends: './tsconfig.json', - compilerOptions: { - outDir: '../../dist/out-tsc', - module: 'commonjs', - types: ['jest', 'node'], - }, - include: [ - '**/*.spec.ts', - '**/*.test.ts', - '**/*_spec.ts', - '**/*_test.ts', - '**/*.spec.tsx', - '**/*.test.tsx', - '**/*.spec.js', - '**/*.test.js', - '**/*.spec.jsx', - '**/*.test.jsx', - '**/*.d.ts', - 'jest.config.ts', - ], - }); - - tree.write( - 'tools/eslint-rules/jest.config.ts', - `/* eslint-disable */ -export default { - displayName: 'eslint-rules', - preset: '../../jest.preset.js', - transform: { - '^.+\\\\.[tj]s$': ['ts-jest', { tsconfig: '/tsconfig.spec.json' }], - }, - moduleFileExtensions: ['ts', 'js', 'html'], - coverageDirectory: '../../coverage/tools/eslint-rules', - moduleNameMapper: { - '@eslint/eslintrc': '@eslint/eslintrc/dist/eslintrc-universal.cjs', - }, -}; -` - ); - - tree.write( - 'tools/eslint-rules/rules/rule.ts', - `/** - * This file sets you up with structure needed for an ESLint rule. - * - * It leverages utilities from @typescript-eslint to allow TypeScript to - * provide autocompletions etc for the configuration. - * - * Your rule's custom logic will live within the create() method below - * and you can learn more about writing ESLint rules on the official guide: - * - * https://eslint.org/docs/developer-guide/working-with-rules - * - * You can also view many examples of existing rules here: - * - * https://github.com/typescript-eslint/typescript-eslint/tree/master/packages/eslint-plugin/src/rules - */ - -import { ESLintUtils } from '@typescript-eslint/utils'; - -// NOTE: The rule will be available in ESLint configs as "@nx/workspace-lint-rule" -export const RULE_NAME = 'lint-rule'; - -export const rule = ESLintUtils.RuleCreator(() => __filename)({ - name: RULE_NAME, - meta: { - type: 'problem', - docs: { - description: \`\`, - }, - schema: [], - messages: {}, - }, - defaultOptions: [], - create(context) { - return {}; - }, -}); -` - ); - }); - - it('should update the tsconfig.json', async () => { - await update(tree); - - expect( - tree.read('tools/eslint-rules/tsconfig.json', 'utf-8') - ).toMatchSnapshot(); - expect( - tree.read('tools/eslint-rules/tsconfig.spec.json', 'utf-8') - ).toMatchSnapshot(); - }); - - it('should update the jest.config.ts', async () => { - await update(tree); - - expect( - tree.read('tools/eslint-rules/jest.config.ts', 'utf-8') - ).toMatchSnapshot(); - }); - - it('should update the rules', async () => { - await update(tree); - - expect( - tree.read('tools/eslint-rules/rules/rule.ts', 'utf-8') - ).toMatchSnapshot(); - }); -}); diff --git a/packages/eslint/src/migrations/update-17-1-0/update-typescript-eslint.ts b/packages/eslint/src/migrations/update-17-1-0/update-typescript-eslint.ts deleted file mode 100644 index cc2844b62c..0000000000 --- a/packages/eslint/src/migrations/update-17-1-0/update-typescript-eslint.ts +++ /dev/null @@ -1,107 +0,0 @@ -import { - applyChangesToString, - ChangeType, - ensurePackage, - formatFiles, - StringChange, - Tree, - updateJson, - visitNotIgnoredFiles, -} from '@nx/devkit'; -import { nxVersion } from '../../utils/versions'; -import { extname } from 'path'; -import { - createSourceFile, - forEachChild, - isIdentifier, - isPropertyAssignment, - isStringLiteral, - type Node, - ScriptTarget, -} from 'typescript'; - -function updateJestConfig(tree: Tree) { - const jestConfigPath = 'tools/eslint-rules/jest.config.ts'; - if (tree.exists(jestConfigPath)) { - const { removePropertyFromJestConfig } = ensurePackage< - typeof import('@nx/jest') - >('@nx/jest', nxVersion); - - removePropertyFromJestConfig(tree, jestConfigPath, [ - 'moduleNameMapper', - '@eslint/eslintrc', - ]); - } -} - -function updateTsConfigs(tree: Tree) { - const tsConfigPath = 'tools/eslint-rules/tsconfig.json'; - if (tree.exists(tsConfigPath)) { - updateJson(tree, tsConfigPath, (tsConfig) => { - tsConfig.compilerOptions ??= {}; - tsConfig.compilerOptions.moduleResolution = 'node16'; - tsConfig.compilerOptions.module = 'node16'; - return tsConfig; - }); - } - const tsConfigSpec = 'tools/eslint-rules/tsconfig.spec.json'; - if (tree.exists(tsConfigSpec)) { - updateJson(tree, tsConfigSpec, (tsConfigSpec) => { - delete tsConfigSpec.compilerOptions?.module; - delete tsConfigSpec.compilerOptions?.moduleResolution; - return tsConfigSpec; - }); - } -} - -function updateRecommended(tree: Tree) { - visitNotIgnoredFiles(tree, 'tools/eslint-rules', (path) => { - if (extname(path) !== '.ts') { - return; - } - - const contents = tree.read(path, 'utf-8'); - const sourceFile = createSourceFile( - path, - contents, - ScriptTarget.ESNext, - true - ); - - const changes: StringChange[] = []; - - const visit = (node: Node) => { - if ( - isPropertyAssignment(node) && - isIdentifier(node.name) && - node.name.text === 'recommended' && - isStringLiteral(node.initializer) - ) { - changes.push({ - type: ChangeType.Delete, - start: node.initializer.getStart(sourceFile), - length: node.initializer.getWidth(sourceFile), - }); - changes.push({ - type: ChangeType.Insert, - index: node.initializer.getStart(sourceFile), - text: "'recommended'", - }); - } else { - forEachChild(node, visit); - } - }; - - forEachChild(sourceFile, visit); - - tree.write(path, applyChangesToString(contents, changes)); - }); -} - -export default async function update(tree: Tree) { - updateJestConfig(tree); - updateTsConfigs(tree); - updateRecommended(tree); - - await formatFiles(tree); -} diff --git a/packages/eslint/src/migrations/update-17-2-0/simplify-eslint-patterns.spec.ts b/packages/eslint/src/migrations/update-17-2-0/simplify-eslint-patterns.spec.ts deleted file mode 100644 index 09e3a07e90..0000000000 --- a/packages/eslint/src/migrations/update-17-2-0/simplify-eslint-patterns.spec.ts +++ /dev/null @@ -1,145 +0,0 @@ -import { Tree, addProjectConfiguration, readJson } from '@nx/devkit'; - -import update from './simplify-eslint-patterns'; -import { createTreeWithEmptyWorkspace } from 'nx/src/devkit-testing-exports'; - -describe('simplify-eslint-patterns migration', () => { - let tree: Tree; - - beforeEach(() => { - tree = createTreeWithEmptyWorkspace(); - tree.write('.eslintrc.json', '{}'); - }); - - it('should remove pattern if matches default', async () => { - addProjectConfiguration(tree, 'test-lib', { - root: 'libs/test-lib', - projectType: 'library', - targets: { - lint: { - executor: '@nx/eslint:lint', - options: { - lintFilePatterns: ['libs/test-lib/**/*.{ts,html}'], - }, - }, - }, - }); - - await update(tree); - - const projJson = readJson(tree, 'libs/test-lib/project.json'); - expect(projJson.targets.lint).toMatchInlineSnapshot(` - { - "executor": "@nx/eslint:lint", - } - `); - }); - - it('should not remove options if other fields are set', async () => { - addProjectConfiguration(tree, 'test-lib', { - root: 'libs/test-lib', - projectType: 'library', - targets: { - lint: { - executor: '@nx/eslint:lint', - options: { - lintFilePatterns: ['libs/test-lib/**/*.{ts,html}'], - ignorePatterns: ['**/node_modules/**'], - }, - }, - }, - }); - - await update(tree); - - const projJson = readJson(tree, 'libs/test-lib/project.json'); - expect(projJson.targets.lint).toMatchInlineSnapshot(` - { - "executor": "@nx/eslint:lint", - "options": { - "ignorePatterns": [ - "**/node_modules/**", - ], - }, - } - `); - }); - - it('should remove multiple lint patterns if matches default', async () => { - addProjectConfiguration(tree, 'test-lib', { - root: 'libs/test-lib', - projectType: 'library', - targets: { - lint: { - executor: '@nx/eslint:lint', - options: { - lintFilePatterns: [ - 'libs/test-lib/**/*.ts', - 'libs/test-lib/**/*.html', - 'libs/test-lib/**/*.tsx', - ], - }, - }, - }, - }); - - await update(tree); - - const projJson = readJson(tree, 'libs/test-lib/project.json'); - expect(projJson.targets.lint).toMatchInlineSnapshot(` - { - "executor": "@nx/eslint:lint", - } - `); - }); - - it('should persist external patterns', async () => { - addProjectConfiguration(tree, 'test-lib', { - root: 'libs/test-lib', - projectType: 'library', - targets: { - lint: { - executor: '@nx/eslint:lint', - options: { - lintFilePatterns: [ - 'libs/test-lib/**/*.ts', - 'libs/some-external/**/*.html', - 'libs/test-lib/**/*.tsx', - '**/*.js', - ], - }, - }, - }, - }); - - await update(tree); - - const projJson = readJson(tree, 'libs/test-lib/project.json'); - expect(projJson.targets.lint.options.lintFilePatterns).toEqual([ - 'libs/test-lib', - 'libs/some-external/**/*.html', - '**/*.js', - ]); - }); - - it('should update standalone projects lint patterns', async () => { - addProjectConfiguration(tree, 'test-lib', { - root: '', - sourceRoot: './src', - projectType: 'library', - targets: { - lint: { - executor: '@nx/eslint:lint', - options: { - lintFilePatterns: ['./src/**/*.{ts,html}'], - }, - }, - }, - }); - - await update(tree); - - const projJson = readJson(tree, 'project.json'); - expect(projJson.targets.lint.options.lintFilePatterns).toEqual(['./src']); - }); -}); diff --git a/packages/eslint/src/migrations/update-17-2-0/simplify-eslint-patterns.ts b/packages/eslint/src/migrations/update-17-2-0/simplify-eslint-patterns.ts deleted file mode 100644 index e572880ce7..0000000000 --- a/packages/eslint/src/migrations/update-17-2-0/simplify-eslint-patterns.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { - ProjectConfiguration, - Tree, - formatFiles, - getProjects, - updateProjectConfiguration, -} from '@nx/devkit'; - -export default async function update(tree: Tree) { - const projects = getProjects(tree); - - for (const [projectName, projectConfiguration] of projects) { - let needsUpdate = false; - - for (const [targetName, targetConfig] of Object.entries( - projectConfiguration.targets ?? {} - )) { - if (targetConfig.executor !== '@nx/eslint:lint') { - continue; - } - - needsUpdate = true; - if (projectConfiguration.targets[targetName].options?.lintFilePatterns) { - const rootPattern = getLintRoot(projectConfiguration); - const nonRootPatterns = projectConfiguration.targets[ - targetName - ].options.lintFilePatterns.filter( - (p) => !p.startsWith(rootPattern) && !p.startsWith('{projectRoot}') - ); - - if ( - nonRootPatterns.length === 0 && - rootPattern === projectConfiguration.root - ) { - // delete the lintFilePatterns option if it's the only option and matches the root of the project - delete projectConfiguration.targets[targetName].options - .lintFilePatterns; - if ( - Object.keys(projectConfiguration.targets[targetName].options) - .length === 0 - ) { - delete projectConfiguration.targets[targetName].options; - } - } else { - projectConfiguration.targets[targetName].options.lintFilePatterns = [ - rootPattern, - ...nonRootPatterns, - ]; - } - } - } - - if (needsUpdate) { - updateProjectConfiguration(tree, projectName, projectConfiguration); - } - } - - await formatFiles(tree); -} - -function getLintRoot({ root, sourceRoot }: ProjectConfiguration): string { - if (root === '' || root === '.') { - return sourceRoot || './src'; - } - return root; -} diff --git a/packages/eslint/src/migrations/update-17-2-9/move-options-to-target-defaults.spec.ts b/packages/eslint/src/migrations/update-17-2-9/move-options-to-target-defaults.spec.ts deleted file mode 100644 index 499674ec31..0000000000 --- a/packages/eslint/src/migrations/update-17-2-9/move-options-to-target-defaults.spec.ts +++ /dev/null @@ -1,244 +0,0 @@ -import { - ProjectGraph, - Tree, - addProjectConfiguration, - readNxJson, - readProjectConfiguration, - writeJson, -} from '@nx/devkit'; -import { createTree } from '@nx/devkit/testing'; - -import update from './move-options-to-target-defaults'; - -let projectGraph: ProjectGraph; -jest.mock('@nx/devkit', () => ({ - ...jest.requireActual('@nx/devkit'), - createProjectGraphAsync: jest.fn().mockImplementation(async () => { - return projectGraph; - }), -})); - -describe('change-target-defaults-to-executor migration', () => { - let tree: Tree; - - beforeEach(() => { - tree = createTree(); - tree.write('.eslintrc.json', '{}'); - - writeJson(tree, 'nx.json', { - namedInputs: { - production: ['default'], - }, - targetDefaults: {}, - }); - - projectGraph = { - nodes: {}, - dependencies: {}, - externalNodes: {}, - }; - }); - - it('should set targetDefaults with inputs', async () => { - addProjectConfigAndUpdateGraph(tree, 'test-lib1', { - root: 'test-lib1', - projectType: 'library', - targets: { - lint: { - executor: '@nx/eslint:lint', - options: { - lintFilePatterns: ['test-lib1/**/*.{ts,html}'], - }, - }, - }, - }); - - await update(tree); - - expect(readProjectConfiguration(tree, 'test-lib1').targets.lint).toEqual({ - executor: '@nx/eslint:lint', - options: { - lintFilePatterns: ['{projectRoot}/**/*.{ts,html}'], - }, - }); - - expect(readNxJson(tree).targetDefaults).toEqual({ - '@nx/eslint:lint': { - cache: true, - inputs: [ - 'default', - '{workspaceRoot}/.eslintrc.json', - '{workspaceRoot}/tools/eslint-rules/**/*', - ], - }, - }); - }); - - it('should remove obsolete eslint config', async () => { - addProjectConfigAndUpdateGraph(tree, 'test-lib1', { - root: 'test-lib1', - projectType: 'library', - targets: { - lint: { - executor: '@nx/eslint:lint', - options: { - lintFilePatterns: ['test-lib1/**/*.{ts,html}'], - eslintConfig: 'test-lib1/.eslintrc.json', - }, - }, - }, - }); - tree.write('test-lib1/.eslintrc.json', '{}'); - - await update(tree); - - expect(readProjectConfiguration(tree, 'test-lib1').targets.lint).toEqual({ - executor: '@nx/eslint:lint', - options: { - lintFilePatterns: ['{projectRoot}/**/*.{ts,html}'], - }, - }); - }); - - it('should remove outputs if not used', async () => { - addProjectConfigAndUpdateGraph(tree, 'test-lib1', { - root: 'test-lib1', - projectType: 'library', - targets: { - lint: { - executor: '@nx/eslint:lint', - options: { - lintFilePatterns: ['test-lib1/**/*.{ts,html}'], - }, - outputs: ['{options.outputFile}'], - }, - }, - }); - - await update(tree); - - expect( - readProjectConfiguration(tree, 'test-lib1').targets.lint.outputs - ).toBeUndefined(); - - expect( - readNxJson(tree).targetDefaults['@nx/eslint:lint'].outputs - ).toBeUndefined(); - }); - - it('should add outputs if used', async () => { - addProjectConfigAndUpdateGraph(tree, 'test-lib1', { - root: 'test-lib1', - projectType: 'library', - targets: { - lint: { - executor: '@nx/eslint:lint', - options: { - lintFilePatterns: ['test-lib1/**/*.{ts,html}'], - }, - outputs: ['{options.outputFile}'], - }, - }, - }); - addProjectConfigAndUpdateGraph(tree, 'test-lib2', { - root: 'test-lib2', - projectType: 'library', - targets: { - lint: { - executor: '@nx/eslint:lint', - options: { - lintFilePatterns: ['test-lib2/**/*.{ts,html}'], - outputFile: 'test-lib2/output.txt', - }, - outputs: ['{options.outputFile}'], - }, - }, - }); - - await update(tree); - - expect( - readProjectConfiguration(tree, 'test-lib1').targets.lint.outputs - ).toBeUndefined(); - expect( - readProjectConfiguration(tree, 'test-lib1').targets.lint.outputs - ).toBeUndefined(); - - expect(readNxJson(tree).targetDefaults['@nx/eslint:lint'].outputs).toEqual([ - '{options.outputFile}', - ]); - }); - - it('should remove lint patterns if default', async () => { - addProjectConfigAndUpdateGraph(tree, 'test-lib1', { - root: 'test-lib1', - projectType: 'library', - targets: { - lint: { - executor: '@nx/eslint:lint', - options: { - lintFilePatterns: ['test-lib1'], - }, - }, - }, - }); - addProjectConfigAndUpdateGraph(tree, 'test-lib2', { - root: 'test-lib2', - projectType: 'library', - targets: { - lint: { - executor: '@nx/eslint:lint', - options: { - lintFilePatterns: ['{projectRoot}'], - }, - }, - }, - }); - - await update(tree); - - expect(readProjectConfiguration(tree, 'test-lib1').targets.lint).toEqual({ - executor: '@nx/eslint:lint', - }); - expect(readProjectConfiguration(tree, 'test-lib2').targets.lint).toEqual({ - executor: '@nx/eslint:lint', - }); - }); - - it('should remove inputs if matching default', async () => { - addProjectConfigAndUpdateGraph(tree, 'test-lib1', { - root: 'test-lib1', - projectType: 'library', - targets: { - lint: { - executor: '@nx/eslint:lint', - options: { - lintFilePatterns: ['test-lib1/**/*.{ts,html}'], - }, - inputs: ['default', '{workspaceRoot}/.eslintrc.json'], - }, - }, - }); - - await update(tree); - - expect(readProjectConfiguration(tree, 'test-lib1').targets.lint).toEqual({ - executor: '@nx/eslint:lint', - options: { - lintFilePatterns: ['{projectRoot}/**/*.{ts,html}'], - }, - }); - }); -}); - -function addProjectConfigAndUpdateGraph(tree, name, project) { - addProjectConfiguration(tree, name, project); - projectGraph.nodes[name] = { - name: name, - type: 'lib', - data: { - root: project.root, - targets: project.targets, - }, - }; -} diff --git a/packages/eslint/src/migrations/update-17-2-9/move-options-to-target-defaults.ts b/packages/eslint/src/migrations/update-17-2-9/move-options-to-target-defaults.ts deleted file mode 100644 index 344e9ff06f..0000000000 --- a/packages/eslint/src/migrations/update-17-2-9/move-options-to-target-defaults.ts +++ /dev/null @@ -1,186 +0,0 @@ -import { - ProjectConfiguration, - ProjectGraphProjectNode, - TargetConfiguration, - TargetDefaults, - Tree, - createProjectGraphAsync, - formatFiles, - getProjects, - readNxJson, - updateNxJson, - updateProjectConfiguration, -} from '@nx/devkit'; -import { - forEachExecutorOptions, - forEachExecutorOptionsInGraph, -} from '@nx/devkit/src/generators/executor-options-utils'; -import { Schema } from '../../executors/lint/schema'; -import { findEslintFile } from '../../generators/utils/eslint-file'; -import { readTargetDefaultsForTarget } from 'nx/src/project-graph/utils/project-configuration-utils'; - -export default async function update(tree: Tree) { - const nxJson = readNxJson(tree); - - // Don't override anything if there are already target defaults for eslint - if (nxJson.targetDefaults?.['@nx/eslint:lint']) { - return; - } - - nxJson.targetDefaults ??= {}; - - const graph = await createProjectGraphAsync(); - - const lintTargets = new Set(); - forEachExecutorOptionsInGraph( - graph, - '@nx/eslint:lint', - (value, proj, targetName) => { - lintTargets.add(targetName); - } - ); - - // Workspace does not use eslint? - if (lintTargets.size === 0) { - return; - } - - const lintDefaults: TargetConfiguration> = - (nxJson.targetDefaults['@nx/eslint:lint'] = {}); - - // All eslint targets have the same name - if (lintTargets.size === 1) { - const targetName = Array.from(lintTargets)[0]; - if (nxJson.targetDefaults[targetName]) { - Object.assign(lintDefaults, nxJson.targetDefaults[targetName]); - } - } - - lintDefaults.cache ??= true; - - if (!lintDefaults.inputs) { - const eslintConfig = findEslintFile(tree); - lintDefaults.inputs = [ - 'default', - ...(eslintConfig ? [`{workspaceRoot}/${eslintConfig}`] : []), - '{workspaceRoot}/tools/eslint-rules/**/*', - ]; - } - - // Cleanup old target defaults - const projects = graph.nodes; - const projectMap = getProjects(tree); - - for (const [targetDefaultKey, targetDefault] of Object.entries( - nxJson.targetDefaults - )) { - if ( - !isTargetDefaultUsed( - targetDefault, - nxJson.targetDefaults, - projects, - projectMap - ) - ) { - delete nxJson.targetDefaults[targetDefaultKey]; - } - } - - let addOutputs = false; - forEachExecutorOptions( - tree, - '@nx/eslint:lint', - (options, proj, targetName, configuration) => { - const projConfig = projectMap.get(proj); - - // modify lint file patterns - if (options.lintFilePatterns) { - const projectRootRegex = new RegExp(`^${projConfig.root}/`); - projConfig.targets[targetName].options.lintFilePatterns = - options.lintFilePatterns - .filter( - (filePattern) => - filePattern !== '{projectRoot}' && - filePattern !== projConfig.root - ) - .map((filePattern) => - filePattern.replace(projectRootRegex, '{projectRoot}/') - ); - // remove lintFilePatterns if empty - if ( - projConfig.targets[targetName].options.lintFilePatterns.length === 0 - ) { - delete projConfig.targets[targetName].options.lintFilePatterns; - } - } - - // remove inputs if they are not bringing any new inputs - if ( - projConfig.targets[targetName].inputs && - projConfig.targets[targetName].inputs.every((i) => - lintDefaults.inputs.includes(i) - ) - ) { - delete projConfig.targets[targetName].inputs; - } - - // remove obsolete eslint config definition, unless it's a custom one - const projectEslintConfig = findEslintFile(tree, projConfig.root); - if ( - options.eslintConfig === `${projConfig.root}/${projectEslintConfig}` || - options.eslintConfig === `{projectRoot}/${projectEslintConfig}` - ) { - delete projConfig.targets[targetName].options.eslintConfig; - } - - // remove options if empty - if ( - Object.keys(projConfig.targets[targetName]?.options ?? {}).length === 0 - ) { - delete projConfig.targets[targetName].options; - } - - // track output - if (options.outputFile) { - addOutputs = true; - } - if ( - projConfig.targets[targetName].outputs?.length === 1 && - projConfig.targets[targetName].outputs[0] === '{options.outputFile}' - ) { - delete projConfig.targets[targetName].outputs; - } - updateProjectConfiguration(tree, proj, projConfig); - } - ); - - if (addOutputs) { - lintDefaults.outputs = ['{options.outputFile}']; - } - updateNxJson(tree, nxJson); - - await formatFiles(tree); -} - -function isTargetDefaultUsed( - targetDefault: Partial, - targetDefaults: TargetDefaults, - projects: Record, - projectMap: Map -) { - for (const p of Object.values(projects)) { - for (const targetName in p.data?.targets ?? {}) { - if ( - readTargetDefaultsForTarget( - targetName, - targetDefaults, - // It might seem like we should use the graph here too but we don't want to pass an executor which was processed in the graph - projectMap.get(p.name)?.targets?.[targetName]?.executor - ) === targetDefault - ) { - return true; - } - } - } - return false; -} diff --git a/packages/expo/migrations.json b/packages/expo/migrations.json index 7bcf819d09..001b150b15 100644 --- a/packages/expo/migrations.json +++ b/packages/expo/migrations.json @@ -1,29 +1,5 @@ { "generators": { - "update-18-0-0-remove-block-list": { - "cli": "nx", - "version": "18.0.0-beta.0", - "description": "Remove blockList in metro.config.js", - "implementation": "./src/migrations/update-18-0-0/remove-block-list" - }, - "update-18-0-0-remove-symlink-target": { - "cli": "nx", - "version": "18.0.0-beta.0", - "description": "Remove symlink target in project.json", - "implementation": "./src/migrations/update-18-0-0/remove-symlink-target" - }, - "update-18-0-0-remove-eas-cli": { - "cli": "nx", - "version": "18.0.0-beta.0", - "description": "Remove eas-cli from package.json", - "implementation": "./src/migrations/update-18-0-0/remove-eas-cli" - }, - "update-18-0-0-remove-offset-export-outputDir": { - "cli": "nx", - "version": "18.0.0-beta.0", - "description": "Remove the offset from the outputDir of the export target", - "implementation": "./src/migrations/update-18-0-0/change-outputDir-export-target" - }, "update-19-0-0-change-webpack-to-metro": { "version": "19.0.0-beta.9", "cli": "nx", @@ -44,96 +20,6 @@ } }, "packageJsonUpdates": { - "17.1.0": { - "version": "17.1.0-beta.0", - "packages": { - "expo": { - "version": "49.0.16", - "alwaysAddToPackageJson": false - }, - "@expo/cli": { - "version": "~0.10.13", - "alwaysAddToPackageJson": false - }, - "react-native": { - "version": "0.72.6", - "alwaysAddToPackageJson": false - }, - "react-native-web": { - "version": "~0.19.9", - "alwaysAddToPackageJson": false - }, - "metro-resolver": { - "version": "0.76.8", - "alwaysAddToPackageJson": false - }, - "metro": { - "version": "0.76.8", - "alwaysAddToPackageJson": false - } - } - }, - "18.0.0": { - "version": "18.0.0-beta.0", - "packages": { - "expo": { - "version": "50.0.1", - "alwaysAddToPackageJson": false - }, - "expo-splash-screen": { - "version": "~0.26.1", - "alwaysAddToPackageJson": false - }, - "expo-status-bar": { - "version": "~1.11.1", - "alwaysAddToPackageJson": false - }, - "@expo/cli": { - "version": "~0.16.5", - "alwaysAddToPackageJson": false - }, - "babel-preset-expo": { - "version": "~10.0.0", - "alwaysAddToPackageJson": false - }, - "@types/react": { - "version": "~18.2.45", - "alwaysAddToPackageJson": false - }, - "react-native": { - "version": "~0.73.2", - "alwaysAddToPackageJson": false - }, - "react-native-web": { - "version": "~0.19.9", - "alwaysAddToPackageJson": false - }, - "@expo/metro-config": { - "version": "~0.17.3", - "alwaysAddToPackageJson": false - }, - "@expo/metro-runtime": { - "version": "~3.1.1", - "addToPackageJson": "devDependencies" - }, - "react-native-svg-transformer": { - "version": "1.2.0", - "alwaysAddToPackageJson": false - }, - "react-native-svg": { - "version": "14.1.0", - "alwaysAddToPackageJson": false - }, - "@testing-library/react-native": { - "version": "~12.4.2", - "alwaysAddToPackageJson": false - }, - "jest-expo": { - "version": "~50.0.1", - "alwaysAddToPackageJson": false - } - } - }, "19.0.0": { "version": "19.0.0-beta.7", "packages": { diff --git a/packages/expo/src/migrations/update-18-0-0/change-outputDir-export-target.spec.ts b/packages/expo/src/migrations/update-18-0-0/change-outputDir-export-target.spec.ts deleted file mode 100644 index 04d176320b..0000000000 --- a/packages/expo/src/migrations/update-18-0-0/change-outputDir-export-target.spec.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { addProjectConfiguration, getProjects, Tree } from '@nx/devkit'; -import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing'; -import update from './change-outputDir-export-target'; - -describe('change-outputDir-export-target', () => { - let tree: Tree; - - beforeEach(async () => { - tree = createTreeWithEmptyWorkspace({ layout: 'apps-libs' }); - addProjectConfiguration(tree, 'product', { - root: 'apps/product', - sourceRoot: 'apps/product/src', - targets: { - export: { - executor: '@nx/expo:export', - options: { - platform: 'all', - outputDir: '../../dist/apps/dogs', - }, - dependsOn: ['sync-deps'], - }, - }, - }); - }); - - it(`should remove offset from outputDir`, async () => { - await update(tree); - - getProjects(tree).forEach((project) => { - expect(project.targets['export']).toEqual({ - dependsOn: ['sync-deps'], - executor: '@nx/expo:export', - options: { - outputDir: 'dist/apps/dogs', - platform: 'all', - }, - outputs: ['{options.outputDir}'], - }); - }); - }); -}); diff --git a/packages/expo/src/migrations/update-18-0-0/change-outputDir-export-target.ts b/packages/expo/src/migrations/update-18-0-0/change-outputDir-export-target.ts deleted file mode 100644 index 90115cc57b..0000000000 --- a/packages/expo/src/migrations/update-18-0-0/change-outputDir-export-target.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { - Tree, - getProjects, - offsetFromRoot, - updateProjectConfiguration, -} from '@nx/devkit'; - -/** - * Remove the offset from the outputDir of the export target - */ -export default async function update(tree: Tree) { - const projects = getProjects(tree); - - for (const [projectName, config] of projects.entries()) { - if (config.targets?.['export']?.executor === '@nx/expo:export') { - const target = config.targets['export']; - if (target.options?.outputDir) { - const offset = offsetFromRoot(config.root); - target.options.outputDir = target.options.outputDir.replace(offset, ''); - target.outputs = ['{options.outputDir}']; - updateProjectConfiguration(tree, projectName, config); - } - } - if (config.targets?.['export-web']?.executor === '@nx/expo:export') { - delete config.targets['export-web']; - updateProjectConfiguration(tree, projectName, config); - } - } -} diff --git a/packages/expo/src/migrations/update-18-0-0/remove-block-list.spec.ts b/packages/expo/src/migrations/update-18-0-0/remove-block-list.spec.ts deleted file mode 100644 index 41ba3cad03..0000000000 --- a/packages/expo/src/migrations/update-18-0-0/remove-block-list.spec.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing'; -import { Tree, addProjectConfiguration } from '@nx/devkit'; -import update from './remove-block-list'; - -describe('remove-block-list', () => { - let tree: Tree; - - beforeEach(() => { - tree = createTreeWithEmptyWorkspace({ layout: 'apps-libs' }); - addProjectConfiguration(tree, 'product', { - root: 'apps/product', - targets: { - start: { - executor: '@nx/expo:start', - }, - }, - }); - tree.write( - 'apps/product/metro.config.js', - ` -const { withNxMetro } = require('@nx/expo'); -const { getDefaultConfig } = require('@expo/metro-config'); -const { mergeConfig } = require('metro-config'); -const exclusionList = require('metro-config/src/defaults/exclusionList'); - -const defaultConfig = getDefaultConfig(__dirname); -const { assetExts, sourceExts } = defaultConfig.resolver; - -/** - * Metro configuration - * https://facebook.github.io/metro/docs/configuration - * - * @type {import('metro-config').MetroConfig} - */ -const customConfig = { - transformer: { - babelTransformerPath: require.resolve('react-native-svg-transformer'), - }, - resolver: { - assetExts: assetExts.filter((ext) => ext !== 'svg'), - sourceExts: [...sourceExts, 'svg'], - blockList: exclusionList([/^(?!.*node_modules).*\/dist\/.*/]), - unstable_enableSymlinks: true, - unstable_enablePackageExports: true, - }, -}; - - -module.exports = withNxMetro(mergeConfig(defaultConfig, customConfig), { - // Change this to true to see debugging info. - // Useful if you have issues resolving modules - debug: false, - // all the file extensions used for imports other than 'ts', 'tsx', 'js', 'jsx', 'json' - extensions: [], - // Specify folders to watch, in addition to Nx defaults (workspace libraries and node_modules) - watchFolders: [], -});` - ); - }); - - it('should remove blockList', async () => { - await update(tree); - const metroConfig = tree.read(`apps/product/metro.config.js`).toString(); - expect(metroConfig).not.toContain('blockList'); - expect(metroConfig).not.toContain('unstable_enableSymlinks'); - expect(metroConfig).not.toContain('unstable_enablePackageExports'); - }); -}); diff --git a/packages/expo/src/migrations/update-18-0-0/remove-block-list.ts b/packages/expo/src/migrations/update-18-0-0/remove-block-list.ts deleted file mode 100644 index 1f0ac30668..0000000000 --- a/packages/expo/src/migrations/update-18-0-0/remove-block-list.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { Tree, formatFiles, getProjects, joinPathFragments } from '@nx/devkit'; - -/** - * This migration remove blockList in metro.config.js. - * It is now excluding dist folder in watchFolders in withNxMetro. - */ -export default async function update(tree: Tree) { - const projects = getProjects(tree); - - for (const [_, config] of projects.entries()) { - if (config.targets?.['start']?.executor === '@nx/expo:start') { - if (tree.exists(joinPathFragments(config.root, 'metro.config.js'))) { - let content = tree - .read(joinPathFragments(config.root, 'metro.config.js')) - .toString(); - content = content.replace(/blockList: exclusionList(.+?(?=\n))/, ''); - content = content.replace('// unstable_enableSymlinks: true,', ''); - content = content.replace( - '// unstable_enablePackageExports: true,', - '' - ); - content = content.replace('unstable_enableSymlinks: true,', ''); - content = content.replace('unstable_enablePackageExports: true,', ''); - content = content.replace( - `const exclusionList = require('metro-config/src/defaults/exclusionList');`, - '' - ); - - tree.write(joinPathFragments(config.root, 'metro.config.js'), content); - await formatFiles(tree); - } - } - } -} diff --git a/packages/expo/src/migrations/update-18-0-0/remove-eas-cli.ts b/packages/expo/src/migrations/update-18-0-0/remove-eas-cli.ts deleted file mode 100644 index 2580ef8f0f..0000000000 --- a/packages/expo/src/migrations/update-18-0-0/remove-eas-cli.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { - formatFiles, - removeDependenciesFromPackageJson, - Tree, -} from '@nx/devkit'; - -/** - * Remove eas-cli from dev dependencies. - * Use globally eas-cli. - * - * Remove metro and metro-resolver from dev dependencies. - * react-native has dependency of @react-native/community-cli-plugin - * @react-native/community-cli-plugin has dependency of metro - * @param tree - * @returns - */ -export default async function update(tree: Tree) { - removeDependenciesFromPackageJson( - tree, - [], - ['eas-cli', 'metro', 'metro-resolver'] - ); - await formatFiles(tree); -} diff --git a/packages/expo/src/migrations/update-18-0-0/remove-symlink-target.spec.ts b/packages/expo/src/migrations/update-18-0-0/remove-symlink-target.spec.ts deleted file mode 100644 index 99e55882d9..0000000000 --- a/packages/expo/src/migrations/update-18-0-0/remove-symlink-target.spec.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { addProjectConfiguration, getProjects, Tree } from '@nx/devkit'; -import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing'; -import update from './remove-symlink-target'; - -describe('remove-symlink-target', () => { - let tree: Tree; - - beforeEach(async () => { - tree = createTreeWithEmptyWorkspace({ layout: 'apps-libs' }); - addProjectConfiguration(tree, 'product', { - root: 'apps/product', - sourceRoot: 'apps/product/src', - targets: { - 'ensure-symlink': { - executor: '@nx/expo:ensure-symlink', - options: {}, - }, - export: { - executor: '@nx/expo:export', - options: { - platform: 'all', - outputDir: '../../dist/apps/dogs', - }, - dependsOn: ['ensure-symlink', 'sync-deps'], - }, - }, - }); - }); - - it(`should remove ensure-symlink target from project.json`, async () => { - await update(tree); - - getProjects(tree).forEach((project) => { - expect(project.targets['ensure-symlink']).toBeUndefined(); - expect(project.targets['export'].dependsOn).toEqual(['sync-deps']); - }); - }); -}); diff --git a/packages/expo/src/migrations/update-18-0-0/remove-symlink-target.ts b/packages/expo/src/migrations/update-18-0-0/remove-symlink-target.ts deleted file mode 100644 index cabb5afa59..0000000000 --- a/packages/expo/src/migrations/update-18-0-0/remove-symlink-target.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { - TargetConfiguration, - Tree, - getProjects, - updateProjectConfiguration, -} from '@nx/devkit'; -import { rmSync } from 'node:fs'; - -/** - * Remove ensure-symlink target. - * It is going to be supported by react-native version 0.73 by default. - */ -export default async function update(tree: Tree) { - const projects = getProjects(tree); - - for (const [projectName, config] of projects.entries()) { - if ( - config.targets?.['ensure-symlink']?.executor === '@nx/expo:ensure-symlink' - ) { - removeTargets(config.targets, 'ensure-symlink'); - updateProjectConfiguration(tree, projectName, config); - rmSync(`${config.root}/node_modules`, { recursive: true, force: true }); - } - } -} - -function removeTargets( - targets: { - [targetName: string]: TargetConfiguration; - }, - targetNameToRemove: string -) { - for (const targetName in targets) { - if (targetName === targetNameToRemove) { - delete targets[targetName]; - } - if (targets[targetName]?.dependsOn?.length) { - targets[targetName].dependsOn = targets[targetName].dependsOn.filter( - (dependsOn) => dependsOn !== targetNameToRemove - ); - } - } -} diff --git a/packages/jest/migrations.json b/packages/jest/migrations.json index fd694e5f59..c7562359f9 100644 --- a/packages/jest/migrations.json +++ b/packages/jest/migrations.json @@ -1,10 +1,5 @@ { "generators": { - "move-options-to-target-defaults": { - "version": "17.1.0-beta.2", - "description": "Move jest executor options to nx.json targetDefaults", - "implementation": "./src/migrations/update-17-1-0/move-options-to-target-defaults" - }, "replace-getJestProjects-with-getJestProjectsAsync": { "cli": "nx", "version": "20.0.0-beta.5", @@ -19,15 +14,6 @@ } }, "packageJsonUpdates": { - "17.2.0": { - "version": "17.2.0-beta.2", - "packages": { - "@types/node": { - "version": "18.16.9", - "alwaysAddToPackageJson": false - } - } - }, "19.2.0": { "version": "19.2.0-beta.0", "packages": { diff --git a/packages/jest/src/migrations/update-17-1-0/move-options-to-target-defaults.spec.ts b/packages/jest/src/migrations/update-17-1-0/move-options-to-target-defaults.spec.ts deleted file mode 100644 index 8cf5f5532d..0000000000 --- a/packages/jest/src/migrations/update-17-1-0/move-options-to-target-defaults.spec.ts +++ /dev/null @@ -1,604 +0,0 @@ -import { createTree } from '@nx/devkit/testing'; - -let projectGraph: ProjectGraph; -jest.mock('@nx/devkit', () => ({ - ...jest.requireActual('@nx/devkit'), - createProjectGraphAsync: jest.fn().mockImplementation(async () => { - return projectGraph; - }), -})); - -import { - addProjectConfiguration as _addProjectConfiguration, - ProjectGraph, - readNxJson, - readProjectConfiguration, - Tree, - updateNxJson, - writeJson, -} from '@nx/devkit'; - -function addProjectConfiguration(tree, name, project) { - _addProjectConfiguration(tree, name, project); - projectGraph.nodes[name] = { - name: name, - type: 'lib', - data: { - root: project.root, - targets: project.targets, - }, - }; -} - -import update from './move-options-to-target-defaults'; - -describe('move-options-to-target-defaults migration', () => { - let tree: Tree; - - beforeEach(() => { - tree = createTree(); - - writeJson(tree, 'nx.json', { - namedInputs: { - production: ['default'], - }, - targetDefaults: {}, - }); - - projectGraph = { - nodes: {}, - dependencies: {}, - externalNodes: {}, - }; - }); - - it('should add config to nx.json and remove it from projects', async () => { - addProjectConfiguration(tree, 'proj1', { - root: 'proj1', - targets: { - test: { - executor: '@nx/jest:jest', - options: { - jestConfig: 'jest.config.js', - passWithNoTests: true, - }, - configurations: { - ci: { - ci: true, - codeCoverage: true, - }, - }, - }, - }, - }); - addProjectConfiguration(tree, 'proj2', { - root: 'proj2', - targets: { - test: { - executor: '@nx/jest:jest', - options: { - jestConfig: 'jest.config.js', - passWithNoTests: true, - }, - configurations: { - ci: { - ci: true, - codeCoverage: true, - }, - }, - }, - }, - }); - - await update(tree); - - expect(readProjectConfiguration(tree, 'proj1').targets.test).toEqual({ - executor: '@nx/jest:jest', - options: { - jestConfig: 'jest.config.js', - }, - }); - expect(readProjectConfiguration(tree, 'proj2').targets.test).toEqual({ - executor: '@nx/jest:jest', - options: { - jestConfig: 'jest.config.js', - }, - }); - - expect(readNxJson(tree).targetDefaults).toEqual({ - '@nx/jest:jest': { - cache: true, - configurations: { - ci: { - ci: true, - codeCoverage: true, - }, - }, - inputs: ['default', '^production'], - options: { - passWithNoTests: true, - }, - }, - }); - }); - - it('should use test target defaults if all jest targets are test', async () => { - const nxJson = readNxJson(tree); - nxJson.targetDefaults['test'] = { - cache: false, - inputs: ['default', '^production', '{workspaceRoot}/other-file.txt'], - options: { - watch: false, - }, - }; - updateNxJson(tree, nxJson); - - addProjectConfiguration(tree, 'proj1', { - root: 'proj1', - targets: { - test: { - executor: '@nx/jest:jest', - options: { - jestConfig: 'jest.config.js', - passWithNoTests: true, - }, - configurations: { - ci: { - ci: true, - codeCoverage: true, - }, - }, - }, - }, - }); - - await update(tree); - - expect(readProjectConfiguration(tree, 'proj1').targets.test).toEqual({ - executor: '@nx/jest:jest', - options: { - jestConfig: 'jest.config.js', - }, - }); - - expect(readNxJson(tree).targetDefaults).toEqual({ - '@nx/jest:jest': { - cache: false, - configurations: { - ci: { - ci: true, - codeCoverage: true, - }, - }, - inputs: ['default', '^production', '{workspaceRoot}/other-file.txt'], - options: { - passWithNoTests: true, - watch: false, - }, - }, - }); - }); - - it('should not remove config which does not match', async () => { - addProjectConfiguration(tree, 'proj1', { - root: 'proj1', - targets: { - test: { - executor: '@nx/jest:jest', - inputs: ['default', '^production', '{workspaceRoot}/other-file.txt'], - options: { - jestConfig: 'jest.config.js', - passWithNoTests: true, - watch: false, - }, - configurations: { - ci: { - ci: true, - codeCoverage: true, - }, - }, - }, - }, - }); - - await update(tree); - - expect(readProjectConfiguration(tree, 'proj1').targets.test).toEqual({ - executor: '@nx/jest:jest', - inputs: ['default', '^production', '{workspaceRoot}/other-file.txt'], - options: { - jestConfig: 'jest.config.js', - watch: false, - }, - }); - - expect(readNxJson(tree).targetDefaults).toEqual({ - '@nx/jest:jest': { - cache: true, - configurations: { - ci: { - ci: true, - codeCoverage: true, - }, - }, - inputs: ['default', '^production'], - options: { - passWithNoTests: true, - }, - }, - }); - }); - - it('should not remove defaults if target uses other executors', async () => { - addProjectConfiguration(tree, 'proj1', { - root: 'proj1', - targets: { - test: { - executor: '@nx/jest:jest', - options: { - jestConfig: 'jest.config.js', - passWithNoTests: true, - }, - configurations: { - ci: { - ci: true, - codeCoverage: true, - }, - }, - }, - }, - }); - addProjectConfiguration(tree, 'proj2', { - root: 'proj2', - targets: { - test: { - executor: '@nx/vite:vitest', - options: {}, - }, - }, - }); - - await update(tree); - - expect(readProjectConfiguration(tree, 'proj1').targets.test).toEqual({ - executor: '@nx/jest:jest', - options: { - jestConfig: 'jest.config.js', - }, - }); - expect(readProjectConfiguration(tree, 'proj2').targets.test).toEqual({ - executor: '@nx/vite:vitest', - options: {}, - }); - - expect(readNxJson(tree).targetDefaults).toEqual({ - '@nx/jest:jest': { - cache: true, - configurations: { - ci: { - ci: true, - codeCoverage: true, - }, - }, - inputs: ['default', '^production'], - options: { - passWithNoTests: true, - }, - }, - }); - }); - - it('should handle when jest and vite are used for test and jest and cypress are used for e2e', async () => { - const nxJson = readNxJson(tree); - nxJson.targetDefaults['test'] = { - cache: false, - inputs: ['default', '^production', '{workspaceRoot}/other-file.txt'], - options: { - watch: true, - }, - }; - nxJson.targetDefaults['e2e'] = { - cache: false, - inputs: ['default', '^production', '{workspaceRoot}/other-file.txt'], - options: { - watch: false, - }, - }; - updateNxJson(tree, nxJson); - - addProjectConfiguration(tree, 'proj1', { - root: 'proj1', - targets: { - test: { - executor: '@nx/jest:jest', - options: { - jestConfig: 'jest.config.ts', - passWithNoTests: true, - }, - }, - e2e: { - executor: '@nx/jest:jest', - options: { - jestConfig: 'jest.config.ts', - passWithNoTests: true, - }, - }, - }, - }); - addProjectConfiguration(tree, 'proj2', { - root: 'proj2', - targets: { - test: { - executor: '@nx/vite:vitest', - options: {}, - }, - e2e: { - executor: '@nx/cypress:cypress', - options: {}, - }, - }, - }); - - await update(tree); - - expect(readProjectConfiguration(tree, 'proj1').targets).toEqual({ - e2e: { - executor: '@nx/jest:jest', - options: { - jestConfig: 'jest.config.ts', - }, - }, - test: { - executor: '@nx/jest:jest', - options: { - jestConfig: 'jest.config.ts', - }, - }, - }); - - expect(readProjectConfiguration(tree, 'proj2').targets).toEqual({ - e2e: { - executor: '@nx/cypress:cypress', - options: {}, - }, - test: { - executor: '@nx/vite:vitest', - options: {}, - }, - }); - - expect(readNxJson(tree).targetDefaults).toEqual({ - '@nx/jest:jest': { - cache: true, - configurations: { - ci: { - ci: true, - codeCoverage: true, - }, - }, - inputs: ['default', '^production'], - options: { - passWithNoTests: true, - }, - }, - e2e: { - cache: false, - inputs: ['default', '^production', '{workspaceRoot}/other-file.txt'], - options: { - watch: false, - }, - }, - test: { - cache: false, - inputs: ['default', '^production', '{workspaceRoot}/other-file.txt'], - options: { - watch: true, - }, - }, - }); - }); - - it('should not assign things that had a default already', async () => { - const nxJson = readNxJson(tree); - nxJson.targetDefaults['test'] = { - cache: true, - inputs: ['default', '^production'], - options: { - passWithNoTests: true, - }, - }; - updateNxJson(tree, nxJson); - - addProjectConfiguration(tree, 'proj1', { - root: 'proj1', - targets: { - test: { - executor: '@nx/jest:jest', - options: { - jestConfig: 'jest.config.ts', - }, - }, - }, - }); - - await update(tree); - - expect(readProjectConfiguration(tree, 'proj1').targets).toEqual({ - test: { - executor: '@nx/jest:jest', - options: { - jestConfig: 'jest.config.ts', - }, - }, - }); - - expect(readNxJson(tree).targetDefaults).toEqual({ - '@nx/jest:jest': { - cache: true, - configurations: { - ci: { - ci: true, - codeCoverage: true, - }, - }, - inputs: ['default', '^production'], - options: { - passWithNoTests: true, - }, - }, - }); - }); - - it('should remove target defaults which are not used anymore', async () => { - const nxJson = readNxJson(tree); - nxJson.targetDefaults['@nx/vite:test'] = { - cache: false, - inputs: ['default', '^production'], - }; - nxJson.targetDefaults['test'] = { - cache: false, - inputs: ['default', '^production', '{workspaceRoot}/other-file.txt'], - options: { - watch: true, - }, - }; - nxJson.targetDefaults['e2e'] = { - cache: false, - inputs: ['default', '^production', '{workspaceRoot}/other-file.txt'], - options: { - watch: false, - }, - }; - updateNxJson(tree, nxJson); - - addProjectConfiguration(tree, 'proj1', { - root: 'proj1', - targets: { - test: { - executor: '@nx/jest:jest', - options: { - jestConfig: 'jest.config.ts', - passWithNoTests: true, - }, - }, - e2e: { - executor: '@nx/jest:jest', - options: { - jestConfig: 'jest.config.ts', - passWithNoTests: true, - }, - }, - }, - }); - addProjectConfiguration(tree, 'proj2', { - root: 'proj2', - targets: { - test: { - executor: '@nx/vite:test', - options: {}, - }, - e2e: { - executor: '@nx/cypress:cypress', - options: {}, - }, - }, - }); - - await update(tree); - - expect(readProjectConfiguration(tree, 'proj1').targets).toEqual({ - e2e: { - executor: '@nx/jest:jest', - options: { - jestConfig: 'jest.config.ts', - }, - }, - test: { - executor: '@nx/jest:jest', - options: { - jestConfig: 'jest.config.ts', - }, - }, - }); - - expect(readProjectConfiguration(tree, 'proj2').targets).toEqual({ - e2e: { - executor: '@nx/cypress:cypress', - options: {}, - }, - test: { - executor: '@nx/vite:test', - options: {}, - }, - }); - - expect(readNxJson(tree).targetDefaults).toEqual({ - '@nx/jest:jest': { - cache: true, - configurations: { - ci: { - ci: true, - codeCoverage: true, - }, - }, - inputs: ['default', '^production'], - options: { - passWithNoTests: true, - }, - }, - '@nx/vite:test': { - cache: false, - inputs: ['default', '^production'], - }, - e2e: { - cache: false, - inputs: ['default', '^production', '{workspaceRoot}/other-file.txt'], - options: { - watch: false, - }, - }, - }); - }); - - it("should't error if a project is present in the graph but not using project.json", async () => { - projectGraph.nodes['csproj'] = { - name: 'csproj', - type: 'lib', - data: { - root: 'csproj', - targets: { - build: { - command: 'echo HELLO', - }, - }, - }, - }; - addProjectConfiguration(tree, 'proj1', { - root: 'proj1', - targets: { - test: { - executor: '@nx/jest:jest', - options: { - jestConfig: 'jest.config.js', - passWithNoTests: true, - }, - configurations: { - ci: { - ci: true, - codeCoverage: true, - }, - }, - }, - }, - }); - updateNxJson(tree, { - targetDefaults: { - build: { - inputs: ['default', '^production'], - }, - }, - }); - const promise = update(tree); - await expect(promise).resolves.not.toThrow(); - }); -}); diff --git a/packages/jest/src/migrations/update-17-1-0/move-options-to-target-defaults.ts b/packages/jest/src/migrations/update-17-1-0/move-options-to-target-defaults.ts deleted file mode 100644 index be882746d9..0000000000 --- a/packages/jest/src/migrations/update-17-1-0/move-options-to-target-defaults.ts +++ /dev/null @@ -1,185 +0,0 @@ -import { - createProjectGraphAsync, - formatFiles, - getProjects, - ProjectConfiguration, - ProjectGraphProjectNode, - readNxJson, - TargetConfiguration, - TargetDefaults, - Tree, - updateNxJson, - updateProjectConfiguration, -} from '@nx/devkit'; -import { JestExecutorOptions } from '../../executors/jest/schema'; -import { - forEachExecutorOptions, - forEachExecutorOptionsInGraph, -} from '@nx/devkit/src/generators/executor-options-utils'; -import { readTargetDefaultsForTarget } from 'nx/src/project-graph/utils/project-configuration-utils'; - -export default async function update(tree: Tree) { - const nxJson = readNxJson(tree); - - // Don't override anything if there are already target defaults for jest - if (nxJson.targetDefaults?.['@nx/jest:jest']) { - return; - } - - nxJson.targetDefaults ??= {}; - - /** - * A set of targets which does not use any other executors - */ - const jestTargets = new Set(); - - const graph = await createProjectGraphAsync(); - - forEachExecutorOptionsInGraph( - graph, - '@nx/jest:jest', - (value, proj, targetName) => { - jestTargets.add(targetName); - } - ); - - // Workspace does not use jest? - if (jestTargets.size === 0) { - return; - } - // Use the project graph so targets which are inferred are considered - const projects = graph.nodes; - const projectMap = getProjects(tree); - - const jestDefaults: TargetConfiguration> = - (nxJson.targetDefaults['@nx/jest:jest'] = {}); - - // All jest targets have the same name - if (jestTargets.size === 1) { - const targetName = Array.from(jestTargets)[0]; - if (nxJson.targetDefaults[targetName]) { - Object.assign(jestDefaults, nxJson.targetDefaults[targetName]); - } - } - - jestDefaults.cache ??= true; - - const inputs = ['default']; - inputs.push(nxJson.namedInputs?.production ? '^production' : '^default'); - if (tree.exists('jest.preset.js')) { - inputs.push('{workspaceRoot}/jest.preset.js'); - } - jestDefaults.inputs ??= inputs; - - // Remember if there were already defaults so we don't assume the executor default - const passWithNoTestsPreviouslyInDefaults = - jestDefaults.options?.passWithNoTests !== undefined; - const ciCiPreviouslyInDefaults = - jestDefaults.configurations?.ci?.ci !== undefined; - const ciCodeCoveragePreviouslyInDefaults = - jestDefaults.configurations?.ci?.codeCoverage !== undefined; - - jestDefaults.options ??= {}; - jestDefaults.options.passWithNoTests ??= true; - jestDefaults.configurations ??= {}; - jestDefaults.configurations.ci ??= {}; - jestDefaults.configurations.ci.ci ??= true; - jestDefaults.configurations.ci.codeCoverage ??= true; - - // Cleanup old target defaults - for (const [targetDefaultKey, targetDefault] of Object.entries( - nxJson.targetDefaults - )) { - if ( - !isTargetDefaultUsed( - targetDefault, - nxJson.targetDefaults, - projects, - projectMap - ) - ) { - delete nxJson.targetDefaults[targetDefaultKey]; - } - } - - updateNxJson(tree, nxJson); - - forEachExecutorOptions( - tree, - '@nx/jest:jest', - (value, proj, targetName, configuration) => { - const projConfig = projectMap.get(proj); - - if (!configuration) { - // Options - if (value.passWithNoTests === jestDefaults.options.passWithNoTests) { - delete projConfig.targets[targetName].options.passWithNoTests; - } else if (!passWithNoTestsPreviouslyInDefaults) { - projConfig.targets[targetName].options.passWithNoTests ??= false; - } - - if (Object.keys(projConfig.targets[targetName].options).length === 0) { - delete projConfig.targets[targetName].options; - } - } else if (configuration === 'ci') { - // CI Config - if (value.ci === jestDefaults.configurations.ci.ci) { - delete projConfig.targets[targetName].configurations.ci.ci; - } else if (ciCiPreviouslyInDefaults) { - projConfig.targets[targetName].configurations.ci.ci ??= false; - } - if ( - value.codeCoverage === jestDefaults.configurations.ci.codeCoverage - ) { - delete projConfig.targets[targetName].configurations.ci.codeCoverage; - } else if (ciCodeCoveragePreviouslyInDefaults) { - projConfig.targets[targetName].configurations.ci.codeCoverage ??= - false; - } - - if ( - Object.keys(projConfig.targets[targetName].configurations.ci) - .length === 0 - ) { - delete projConfig.targets[targetName].configurations.ci; - } - if ( - Object.keys(projConfig.targets[targetName].configurations).length === - 0 - ) { - delete projConfig.targets[targetName].configurations; - } - } - - updateProjectConfiguration(tree, proj, projConfig); - } - ); - - await formatFiles(tree); -} - -/** - * Checks every target on every project to see if one of them uses the target default - */ -function isTargetDefaultUsed( - targetDefault: Partial, - targetDefaults: TargetDefaults, - projects: Record, - projectMap: Map -) { - for (const p of Object.values(projects)) { - for (const targetName in p.data?.targets ?? {}) { - if ( - readTargetDefaultsForTarget( - targetName, - targetDefaults, - // It might seem like we should use the graph here too but we don't want to pass an executor which was processed in the graph - projectMap.get(p.name)?.targets?.[targetName]?.executor - ) === targetDefault - ) { - return true; - } - } - } - return false; -} diff --git a/packages/js/.eslintrc.json b/packages/js/.eslintrc.json index 4888ce2108..290934b1ef 100644 --- a/packages/js/.eslintrc.json +++ b/packages/js/.eslintrc.json @@ -62,6 +62,7 @@ "source-map-support", "@babel/core", "@babel/plugin-proposal-decorators", + "@babel/plugin-transform-class-properties", "@babel/plugin-transform-runtime", "@babel/preset-env", "@babel/preset-typescript", diff --git a/packages/js/migrations.json b/packages/js/migrations.json index 8651e94986..c82a4dd64c 100644 --- a/packages/js/migrations.json +++ b/packages/js/migrations.json @@ -1,78 +1,6 @@ { - "generators": { - "update-17-0-0-remove-deprecated-build-options": { - "cli": "nx", - "version": "17.0.2", - "description": "Remove deprecated build options", - "implementation": "./src/migrations/update-17-0-0/remove-deprecated-build-options" - } - }, + "generators": {}, "packageJsonUpdates": { - "17.0.0": { - "version": "17.0.0-rc.2", - "packages": { - "esbuild": { - "version": "^0.19.2", - "alwaysAddToPackageJson": false - } - } - }, - "17.1.0": { - "version": "17.1.0-beta.4", - "x-prompt": "Do you want to update to TypeScript v5.2?", - "requires": { - "typescript": ">=5.1.0 <5.2.0" - }, - "packages": { - "typescript": { - "version": "~5.2.2" - } - } - }, - "17.3.0": { - "version": "17.3.0-beta.3", - "packages": { - "@types/node": { - "version": "^18.16.9", - "alwaysAddToPackageJson": false - } - } - }, - "17.3.0-beta.10": { - "version": "17.3.0-beta.10", - "x-prompt": "Do you want to update to TypeScript v5.3?", - "requires": { - "typescript": ">=5.2.0 <5.3.0" - }, - "packages": { - "typescript": { - "version": "~5.3.2", - "alwaysAddToPackageJson": false - } - } - }, - "18.0.4": { - "version": "18.0.4-beta.0", - "packages": { - "@swc-node/register": { - "version": "~1.8.0", - "alwaysAddToPackageJson": false - } - } - }, - "18.2.0": { - "version": "18.2.0-beta.0", - "x-prompt": "Do you want to update to TypeScript v5.4?", - "requires": { - "typescript": ">=5.3.0 <5.4.0" - }, - "packages": { - "typescript": { - "version": "~5.4.2", - "alwaysAddToPackageJson": false - } - } - }, "19.0.0": { "version": "19.0.0-beta.0", "packages": { diff --git a/packages/js/src/migrations/update-17-0-0/remove-deprecated-build-options.spec.ts b/packages/js/src/migrations/update-17-0-0/remove-deprecated-build-options.spec.ts deleted file mode 100644 index b0def14c4b..0000000000 --- a/packages/js/src/migrations/update-17-0-0/remove-deprecated-build-options.spec.ts +++ /dev/null @@ -1,100 +0,0 @@ -import { - addProjectConfiguration, - readProjectConfiguration, - Tree, -} from '@nx/devkit'; -import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing'; -import migration from './remove-deprecated-build-options'; - -describe('remove-deprecated-build-options', () => { - let tree: Tree; - - beforeEach(() => { - tree = createTreeWithEmptyWorkspace(); - }); - - it('should remove updateBuildableProjectDepsInPackageJson and buildableProjectDepsInPackageJsonType options from @nx/* executors', async () => { - addProjectConfiguration(tree, 'proj', { - root: 'proj', - targets: { - build: { - executor: '@nx/js:tsc', - options: { - main: 'proj/main.ts', - tsConfig: 'proj/tsconfig.json', - outputPath: 'dist/proj', - updateBuildableProjectDepsInPackageJson: true, - buildableProjectDepsInPackageJsonType: 'peerDependencies', - }, - }, - }, - }); - - await migration(tree); - - const updatedConfig = readProjectConfiguration(tree, 'proj'); - expect(updatedConfig.targets).toEqual({ - build: { - executor: '@nx/js:tsc', - options: { - main: 'proj/main.ts', - tsConfig: 'proj/tsconfig.json', - outputPath: 'dist/proj', - }, - }, - }); - }); - - it('should work if targets are undefined', async () => { - addProjectConfiguration(tree, 'proj', { - root: 'proj', - }); - - await expect(migration(tree)).resolves.not.toThrow(); - }); - - it('should work if a target is an empty object', async () => { - addProjectConfiguration(tree, 'proj', { - root: 'proj', - targets: { - build: {}, - }, - }); - - await expect(migration(tree)).resolves.not.toThrow(); - }); - - it('should not update community executors', async () => { - addProjectConfiguration(tree, 'proj', { - root: 'proj', - targets: { - build: { - executor: '@acme/js:tsc', - options: { - main: 'proj/main.ts', - tsConfig: 'proj/tsconfig.json', - outputPath: 'dist/proj', - updateBuildableProjectDepsInPackageJson: true, - buildableProjectDepsInPackageJsonType: 'peerDependencies', - }, - }, - }, - }); - - await migration(tree); - - const updatedConfig = readProjectConfiguration(tree, 'proj'); - expect(updatedConfig.targets).toEqual({ - build: { - executor: '@acme/js:tsc', - options: { - main: 'proj/main.ts', - tsConfig: 'proj/tsconfig.json', - outputPath: 'dist/proj', - updateBuildableProjectDepsInPackageJson: true, - buildableProjectDepsInPackageJsonType: 'peerDependencies', - }, - }, - }); - }); -}); diff --git a/packages/js/src/migrations/update-17-0-0/remove-deprecated-build-options.ts b/packages/js/src/migrations/update-17-0-0/remove-deprecated-build-options.ts deleted file mode 100644 index 7a834a1a9a..0000000000 --- a/packages/js/src/migrations/update-17-0-0/remove-deprecated-build-options.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { - formatFiles, - getProjects, - Tree, - updateProjectConfiguration, -} from '@nx/devkit'; - -/** - * Removes deprecated - * @param tree - */ -export default async function (tree: Tree) { - const projects = getProjects(tree); - - for (const [projectName, projectConfig] of projects) { - let shouldUpdate = false; - - if (!projectConfig.targets) continue; - - for (const target of Object.values(projectConfig.targets)) { - if ( - target.executor?.startsWith('@nx/') && - target.options && - ('buildableProjectDepsInPackageJsonType' in target.options || - 'updateBuildableProjectDepsInPackageJson' in target.options) - ) { - delete target.options['buildableProjectDepsInPackageJsonType']; - delete target.options['updateBuildableProjectDepsInPackageJson']; - shouldUpdate = true; - } - } - - if (shouldUpdate) { - updateProjectConfiguration(tree, projectName, projectConfig); - } - } - - await formatFiles(tree); -} diff --git a/packages/next/migrations.json b/packages/next/migrations.json index b7c86559f8..57271ea097 100644 --- a/packages/next/migrations.json +++ b/packages/next/migrations.json @@ -1,31 +1,6 @@ { - "generators": { - "update-17-2-7": { - "cli": "nx", - "version": "17.2.7", - "description": "Remove patched eslint rule for @next/next/no-html-link-for-pages", - "implementation": "./src/migrations/update-17-2-7/remove-eslint-rules-patch" - } - }, + "generators": {}, "packageJsonUpdates": { - "17.3.1-beta.0": { - "version": "17.3.1-beta.0", - "packages": { - "next": { - "version": "14.0.4", - "alwaysAddToPackageJson": false - } - } - }, - "18.0.4": { - "version": "18.0.4-beta.0", - "packages": { - "@swc-node/register": { - "version": "~1.8.0", - "alwaysAddToPackageJson": false - } - } - }, "19.0.3": { "version": "19.0.3-beta.0", "packages": { diff --git a/packages/next/src/migrations/update-17-2-7/remove-eslint-rules-patch.spec.ts b/packages/next/src/migrations/update-17-2-7/remove-eslint-rules-patch.spec.ts deleted file mode 100644 index 6737d41a51..0000000000 --- a/packages/next/src/migrations/update-17-2-7/remove-eslint-rules-patch.spec.ts +++ /dev/null @@ -1,151 +0,0 @@ -import { addProjectConfiguration, readJson, Tree, writeJson } from '@nx/devkit'; -import { createTreeWithEmptyWorkspace } from 'nx/src/devkit-testing-exports'; - -import update from './remove-eslint-rules-patch'; - -describe('update-nx-next-dependency', () => { - let tree: Tree; - - beforeEach(() => { - tree = createTreeWithEmptyWorkspace(); - }); - - it('should handle projects without eslintrc file', async () => { - tree.write('.eslintrc.json', '{}'); - - addProjectConfiguration(tree, 'my-pkg', { - root: 'packages/my-pkg', - }); - - await expect(update(tree)).resolves.not.toThrow(); - }); - - it('should remove @next/next/no-html-link-for-pages in json configs', async () => { - tree.write('.eslintrc.json', '{}'); - - addProjectConfiguration(tree, 'my-pkg', { - root: 'packages/my-pkg', - }); - writeJson(tree, `packages/my-pkg/.eslintrc.json`, { - root: true, - ignorePatterns: ['!**/*'], - plugins: ['@nx'], - overrides: [ - { - files: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx'], - rules: { - '@next/next/no-html-link-for-pages': ['error', 'apps/lint/pages'], - 'no-console': 'error', - }, - }, - { - files: ['**/*.*'], - rules: { '@next/next/no-html-link-for-pages': 'off' }, - }, - { - files: ['**/*.ts', '**/*.tsx'], - rules: {}, - }, - { - files: ['**/*.js', '**/*.jsx'], - rules: {}, - }, - ], - }); - - await update(tree); - - expect(readJson(tree, `packages/my-pkg/.eslintrc.json`).overrides) - .toMatchInlineSnapshot(` - [ - { - "files": [ - "**/*.ts", - "**/*.tsx", - "**/*.js", - "**/*.jsx", - ], - "rules": { - "@next/next/no-html-link-for-pages": [ - "error", - "apps/lint/pages", - ], - "no-console": "error", - }, - }, - { - "files": [ - "**/*.ts", - "**/*.tsx", - ], - "rules": {}, - }, - { - "files": [ - "**/*.js", - "**/*.jsx", - ], - "rules": {}, - }, - ] - `); - }); - - it('should remove @next/next/no-html-link-for-pages in flat configs', async () => { - tree.write('eslint.config.js', 'module.exports = []'); - - addProjectConfiguration(tree, 'my-pkg', { - root: 'packages/my-pkg', - }); - tree.write( - `packages/my-pkg/eslint.config.js`, - `const { FlatCompat } = require('@eslint/eslintrc'); - const baseConfig = require('../../eslint.config.js'); - const js = require('@eslint/js'); - - const compat = new FlatCompat({ - baseDirectory: __dirname, - recommendedConfig: js.configs.recommended, - }); - - module.exports = [ - ...baseConfig, - ...compat.extends( - 'plugin:@nx/react-typescript', - 'next', - 'next/core-web-vitals' - ), - { - files: ['**/*.*'], - rules: { '@next/next/no-html-link-for-pages': 'off' }, - }, - { - files: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx'], - rules: { - '@next/next/no-html-link-for-pages': ['error', 'apps/lint/pages'], - 'no-console': 'error', - }, - }, - { - files: ['**/*.ts', '**/*.tsx'], - rules: {}, - }, - { - files: ['**/*.js', '**/*.jsx'], - rules: {}, - }, - ...compat.config({ env: { jest: true } }).map((config) => ({ - ...config, - files: ['**/*.spec.ts', '**/*.spec.tsx', '**/*.spec.js', '**/*.spec.jsx'], - })), - { ignores: ['.next/**/*'] }, - ];` - ); - - await update(tree); - - expect( - tree.read(`packages/my-pkg/eslint.config.js`, 'utf-8') - ).not.toContain("'@next/next/no-html-link-for-pages': 'off'"); - }); -}); diff --git a/packages/next/src/migrations/update-17-2-7/remove-eslint-rules-patch.ts b/packages/next/src/migrations/update-17-2-7/remove-eslint-rules-patch.ts deleted file mode 100644 index f436e9719b..0000000000 --- a/packages/next/src/migrations/update-17-2-7/remove-eslint-rules-patch.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { formatFiles, getProjects, Tree } from '@nx/devkit'; -import { - isEslintConfigSupported, - updateOverrideInLintConfig, -} from '@nx/eslint/src/generators/utils/eslint-file'; - -export default async function update(tree: Tree) { - const projects = getProjects(tree); - projects.forEach((project) => { - if (!isEslintConfigSupported(tree, project.root)) return; - updateOverrideInLintConfig( - tree, - project.root, - (o) => - o.rules?.['@next/next/no-html-link-for-pages'] && - o.files?.includes('**/*.*'), - (o) => undefined - ); - }); - - await formatFiles(tree); -} diff --git a/packages/node/migrations.json b/packages/node/migrations.json index fc6c241d40..547bd088b2 100644 --- a/packages/node/migrations.json +++ b/packages/node/migrations.json @@ -1,24 +1,6 @@ { "generators": {}, "packageJsonUpdates": { - "17.3.0": { - "version": "17.3.0-beta.3", - "packages": { - "@types/node": { - "version": "18.16.9", - "alwaysAddToPackageJson": false - } - } - }, - "17.3.1": { - "version": "17.3.1-beta.0", - "packages": { - "axios": { - "version": "^1.6.0", - "alwaysAddToPackageJson": false - } - } - }, "20.4.0": { "version": "20.4.0-beta.3", "packages": { diff --git a/packages/nuxt/migrations.json b/packages/nuxt/migrations.json index 856d19f30f..b553e0364f 100644 --- a/packages/nuxt/migrations.json +++ b/packages/nuxt/migrations.json @@ -7,24 +7,5 @@ "implementation": "./src/migrations/update-19-6-0/add-vue-plugin-to-storybook-config" } }, - "packageJsonUpdates": { - "18.2.0": { - "version": "18.2.0-beta.0", - "packages": { - "@nuxt/eslint-config": { - "version": "~0.3.0-alpha.1", - "alwaysAddToPackageJson": false - } - } - }, - "18.3.0": { - "version": "18.3.0-beta.2", - "packages": { - "@nuxt/eslint-config": { - "version": "~0.3.6", - "alwaysAddToPackageJson": false - } - } - } - } + "packageJsonUpdates": {} } diff --git a/packages/nx/migrations.json b/packages/nx/migrations.json index 6b02be0d26..3e3a114a5b 100644 --- a/packages/nx/migrations.json +++ b/packages/nx/migrations.json @@ -1,40 +1,5 @@ { "generators": { - "17.0.0-move-cache-directory": { - "cli": "nx", - "version": "17.0.0-beta.1", - "description": "Updates the default cache directory to .nx/cache", - "implementation": "./src/migrations/update-17-0-0/move-cache-directory" - }, - "17.0.0-use-minimal-config-for-tasks-runner-options": { - "cli": "nx", - "version": "17.0.0-beta.3", - "description": "Use minimal config for tasksRunnerOptions", - "implementation": "./src/migrations/update-17-0-0/use-minimal-config-for-tasks-runner-options" - }, - "rm-default-collection-npm-scope": { - "version": "17.0.0-rc.1", - "description": "Migration for v17.0.0-rc.1", - "implementation": "./src/migrations/update-17-0-0/rm-default-collection-npm-scope" - }, - "17.3.0-update-nx-wrapper": { - "cli": "nx", - "version": "17.3.0-beta.6", - "description": "Updates the nx wrapper.", - "implementation": "./src/migrations/update-17-3-0/update-nxw" - }, - "18.0.0-disable-adding-plugins-for-existing-workspaces": { - "cli": "nx", - "version": "18.0.0-beta.2", - "description": "Updates nx.json to disabled adding plugins when generating projects in an existing Nx workspace", - "implementation": "./src/migrations/update-18-0-0/disable-crystal-for-existing-workspaces", - "x-repair-skip": true - }, - "move-default-base-to-nx-json-root": { - "version": "18.1.0-beta.3", - "description": "Moves affected.defaultBase to defaultBase in `nx.json`", - "implementation": "./src/migrations/update-17-2-0/move-default-base" - }, "19-2-0-move-graph-cache-directory": { "cli": "nx", "version": "19.2.0-beta.2", diff --git a/packages/nx/src/migrations/update-17-0-0/move-cache-directory.md b/packages/nx/src/migrations/update-17-0-0/move-cache-directory.md deleted file mode 100644 index 4d83bc51f4..0000000000 --- a/packages/nx/src/migrations/update-17-0-0/move-cache-directory.md +++ /dev/null @@ -1,41 +0,0 @@ -#### Sample Code Changes - -Add `.nx/cache` to the `.gitignore` file. - -{% tabs %} -{% tab label="Before" %} - -```{% fileName=".gitignore" %} -node_modules -``` - -{% /tab %} -{% tab label="After" %} - -```{% highlightLines=[2] fileName=".gitignore" %} -node_modules -.nx/cache -``` - -{% /tab %} -{% /tabs %} - -Add `.nx/cache` to the `.prettierignore` file. - -{% tabs %} -{% tab label="Before" %} - -```ts {% fileName=".prettierignore" %} -/dist -``` - -{% /tab %} -{% tab label="After" %} - -```ts {% highlightLines=[2] fileName=".prettierignore" %} -/dist -.nx/cache -``` - -{% /tab %} -{% /tabs %} diff --git a/packages/nx/src/migrations/update-17-0-0/move-cache-directory.spec.ts b/packages/nx/src/migrations/update-17-0-0/move-cache-directory.spec.ts deleted file mode 100644 index 6d4376ca71..0000000000 --- a/packages/nx/src/migrations/update-17-0-0/move-cache-directory.spec.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { createTree } from '../../generators/testing-utils/create-tree'; -import { createTreeWithEmptyWorkspace } from '../../generators/testing-utils/create-tree-with-empty-workspace'; -import migrate from './move-cache-directory'; - -describe('move-cache-directory', () => { - it('should add .nx/cache to the gitignore', () => { - const tree = createTreeWithEmptyWorkspace(); - tree.write('.gitignore', 'node_modules'); - migrate(tree); - expect(tree.read('.gitignore', 'utf-8')).toMatchInlineSnapshot(` - "node_modules - .nx/cache" - `); - }); - - it('should work if .gitignore is not present', () => { - const tree = createTreeWithEmptyWorkspace(); - tree.delete('.gitignore'); - migrate(tree); - expect(tree.read('.gitignore', 'utf-8')).toMatchInlineSnapshot( - `".nx/cache"` - ); - }); - - it('should not change gitignore if directly ignored', () => { - const tree = createTreeWithEmptyWorkspace(); - tree.write('.gitignore', 'node_modules\n.nx/cache'); - migrate(tree); - expect(tree.read('.gitignore', 'utf-8')).toMatchInlineSnapshot(` - "node_modules - .nx/cache" - `); - }); - - it('should not change gitignore if ignored by another pattern', () => { - const tree = createTreeWithEmptyWorkspace(); - tree.write('.gitignore', 'node_modules\n.*/cache'); - migrate(tree); - expect(tree.read('.gitignore', 'utf-8')).toMatchInlineSnapshot(` - "node_modules - .*/cache" - `); - }); - - it('should not update gitignore for lerna repos without nx.json', () => { - const tree = createTree(); - tree.write('.gitignore', 'node_modules'); - tree.write('lerna.json', '{}'); - migrate(tree); - expect(tree.read('.gitignore', 'utf-8')).toMatchInlineSnapshot( - `"node_modules"` - ); - }); - - it('should handle prettierignore', () => { - const tree = createTree(); - tree.write('.prettierignore', '/dist'); - migrate(tree); - expect(tree.read('.prettierignore', 'utf-8')).toMatchInlineSnapshot(` - "/dist - /.nx/cache" - `); - }); - - it('should handle missing prettierignore', () => { - const tree = createTree(); - tree.delete('.prettierignore'); - migrate(tree); - expect(tree.exists('.prettierignore')).toBeFalsy(); - }); -}); diff --git a/packages/nx/src/migrations/update-17-0-0/move-cache-directory.ts b/packages/nx/src/migrations/update-17-0-0/move-cache-directory.ts deleted file mode 100644 index e214dbad54..0000000000 --- a/packages/nx/src/migrations/update-17-0-0/move-cache-directory.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { Tree } from '../../generators/tree'; -import ignore from 'ignore'; - -export default function moveCacheDirectory(tree: Tree) { - // If nx.json doesn't exist the repo can't utilize - // caching, so .nx/cache is less relevant. Lerna users - // that don't want to fully opt in to Nx at this time - // may also be caught off guard by the appearance of - // a .nx directory, so we are going to special case - // this for the time being. - if (tree.exists('lerna.json') && !tree.exists('nx.json')) { - return; - } - - updateGitIgnore(tree); - - if (tree.exists('.prettierignore')) { - const ignored = tree.read('.prettierignore', 'utf-8'); - if (!ignored.includes('.nx/cache')) { - tree.write('.prettierignore', [ignored, '/.nx/cache'].join('\n')); - } - } -} - -function updateGitIgnore(tree: Tree) { - const gitignore = tree.exists('.gitignore') - ? tree.read('.gitignore', 'utf-8') - : ''; - const ig = ignore(); - ig.add(gitignore); - if (!ig.ignores('.nx/cache')) { - const updatedLines = gitignore.length - ? [gitignore, '.nx/cache'] - : ['.nx/cache']; - tree.write('.gitignore', updatedLines.join('\n')); - } -} diff --git a/packages/nx/src/migrations/update-17-0-0/rm-default-collection-npm-scope.spec.ts b/packages/nx/src/migrations/update-17-0-0/rm-default-collection-npm-scope.spec.ts deleted file mode 100644 index cee4a5649c..0000000000 --- a/packages/nx/src/migrations/update-17-0-0/rm-default-collection-npm-scope.spec.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { createTree } from '../../generators/testing-utils/create-tree'; -import update from './rm-default-collection-npm-scope'; -import { readJson, updateJson, writeJson } from '../../generators/utils/json'; -import { NxJsonConfiguration } from '../../config/nx-json'; -import { Tree } from '../../generators/tree'; - -describe('rm-default-collection-npm-scope migration', () => { - let tree: Tree; - beforeEach(() => { - tree = createTree(); - }); - - describe('with nx.json', () => { - beforeEach(() => { - writeJson(tree, 'nx.json', { - affected: { - defaultBase: 'master', - }, - npmScope: 'scope', - cli: { - defaultCollection: 'collection', - }, - } as NxJsonConfiguration & { npmScope: string; cli: { defaultCollection: string } }); - }); - - it('should remove npmScope', async () => { - await update(tree); - expect(readJson(tree, 'nx.json').npmScope).not.toBeDefined(); - }); - - it('should remove defaultCollection', async () => { - updateJson(tree, 'nx.json', (json) => { - json.cli.packageManager = 'npm'; - return json; - }); - await update(tree); - expect(readJson(tree, 'nx.json').cli).toEqual({ - packageManager: 'npm', - }); - }); - - it('should remove cli', async () => { - await update(tree); - expect(readJson(tree, 'nx.json').cli).not.toBeDefined(); - }); - }); - - describe('without nx.json', () => { - it('should run successfully', async () => { - await update(tree); - }); - }); -}); diff --git a/packages/nx/src/migrations/update-17-0-0/rm-default-collection-npm-scope.ts b/packages/nx/src/migrations/update-17-0-0/rm-default-collection-npm-scope.ts deleted file mode 100644 index e6e946dec1..0000000000 --- a/packages/nx/src/migrations/update-17-0-0/rm-default-collection-npm-scope.ts +++ /dev/null @@ -1,96 +0,0 @@ -import { formatChangedFilesWithPrettierIfAvailable } from '../../generators/internal-utils/format-changed-files-with-prettier-if-available'; -import { Tree } from '../../generators/tree'; -import { readNxJson, updateNxJson } from '../../generators/utils/nx-json'; -import { readJson } from '../../generators/utils/json'; -import { output } from '../../utils/output'; -import { NxJsonConfiguration } from '../../config/nx-json'; -import { joinPathFragments } from '../../utils/path'; - -export default async function update(tree: Tree) { - if (!tree.exists('nx.json')) { - return; - } - - const nxJson = readNxJson(tree); - - delete nxJson.cli?.['defaultCollection']; - - if (nxJson?.cli && Object.keys(nxJson.cli).length < 1) { - delete nxJson.cli; - } - - warnNpmScopeHasChanged(tree, nxJson); - - delete nxJson['npmScope']; - - updateNxJson(tree, nxJson); - - await formatChangedFilesWithPrettierIfAvailable(tree); -} - -function warnNpmScopeHasChanged( - tree: Tree, - nxJson: NxJsonConfiguration -): boolean { - const originalScope = nxJson['npmScope']; - - // There was no original scope - if (!originalScope) { - return false; - } - - // package.json does not exist - if (!tree.exists('package.json')) { - return false; - } - - const newScope = getNpmScopeFromPackageJson(tree); - - // New and Original scope are the same. - if (originalScope === newScope) { - return false; - } - - const packageJsonName = readJson(tree, 'package.json').name; - - if (newScope) { - output.warn({ - title: 'npmScope has been removed from nx.json', - bodyLines: [ - 'This will now be read from package.json', - `Old value which was in nx.json: ${originalScope}`, - `New value from package.json: ${newScope}`, - `Typescript path mappings for new libraries will now be generated as such: @${newScope}/new-lib instead of @${originalScope}/new-lib`, - `If you would like to change this back, change the name in package.json to ${packageJsonName.replace( - newScope, - originalScope - )}`, - ], - }); - } else { - // There is no scope in package.json - output.warn({ - title: 'npmScope has been removed from nx.json', - bodyLines: [ - 'This will now be read from package.json', - `Old value which was in nx.json: ${originalScope}`, - `New value from package.json: null`, - `Typescript path mappings for new libraries will now be generated as such: new-lib instead of @${originalScope}/new-lib`, - `If you would like to change this back, change the name in package.json to ${joinPathFragments( - `@${originalScope}`, - packageJsonName - )}`, - ], - }); - } -} - -function getNpmScopeFromPackageJson(tree: Tree) { - const { name } = tree.exists('package.json') - ? readJson<{ name?: string }>(tree, 'package.json') - : { name: null }; - - if (name?.startsWith('@')) { - return name.split('/')[0].substring(1); - } -} diff --git a/packages/nx/src/migrations/update-17-0-0/use-minimal-config-for-tasks-runner-options.spec.ts b/packages/nx/src/migrations/update-17-0-0/use-minimal-config-for-tasks-runner-options.spec.ts deleted file mode 100644 index 7944360127..0000000000 --- a/packages/nx/src/migrations/update-17-0-0/use-minimal-config-for-tasks-runner-options.spec.ts +++ /dev/null @@ -1,228 +0,0 @@ -import { NxJsonConfiguration } from '../../config/nx-json'; -import { createTreeWithEmptyWorkspace } from '../../generators/testing-utils/create-tree-with-empty-workspace'; -import { readJson, writeJson } from '../../generators/utils/json'; -import { Tree } from '../../generators/tree'; - -const verifyOrUpdateNxCloudClient = jest.fn(); -jest.mock('../../nx-cloud/update-manager', () => ({ - ...jest.requireActual('../../nx-cloud/update-manager'), - verifyOrUpdateNxCloudClient, -})); -import migrate from './use-minimal-config-for-tasks-runner-options'; - -describe('use-minimal-config-for-tasks-runner-options migration', () => { - let tree: Tree; - - beforeEach(() => { - tree = createTreeWithEmptyWorkspace(); - }); - - it('should update nx.json with minimal config', async () => { - writeJson(tree, 'nx.json', { - tasksRunnerOptions: { - default: { - runner: 'nx/tasks-runners/default', - options: { - cacheableOperations: ['build', 'test'], - }, - }, - }, - }); - - await migrate(tree); - - const nxJson = readJson(tree, 'nx.json'); - expect(nxJson.tasksRunnerOptions).toEqual(undefined); - expect(nxJson.targetDefaults).toMatchInlineSnapshot(` - { - "build": { - "cache": true, - }, - "test": { - "cache": true, - }, - } - `); - }); - - it('should not update nx.json if there are multiple tasks runners', async () => { - writeJson(tree, 'nx.json', { - tasksRunnerOptions: { - default: { - runner: 'nx/tasks-runners/default', - options: {}, - }, - custom: { - runner: 'custom', - options: {}, - }, - }, - }); - - await migrate(tree); - - const nxJson = readJson(tree, 'nx.json'); - expect(nxJson.tasksRunnerOptions).toEqual({ - default: { - runner: 'nx/tasks-runners/default', - options: {}, - }, - custom: { - runner: 'custom', - options: {}, - }, - }); - }); - - it('should move nxCloudAccessToken and nxCloudUrl for nx-cloud', async () => { - writeJson(tree, 'nx.json', { - tasksRunnerOptions: { - default: { - runner: 'nx-cloud', - options: { - accessToken: 'abc123', - url: 'https://nx.app', - encryptionKey: 'secret', - }, - }, - }, - }); - writeJson(tree, 'package.json', { - devDependencies: { - 'nx-cloud': 'latest', - nx: 'latest', - }, - }); - - await migrate(tree); - - const nxJson = readJson(tree, 'nx.json'); - expect(nxJson.nxCloudAccessToken).toEqual('abc123'); - expect(nxJson.nxCloudUrl).toEqual('https://nx.app'); - expect(nxJson.nxCloudEncryptionKey).toEqual('secret'); - expect(nxJson.tasksRunnerOptions).not.toBeDefined(); - - expect(readJson(tree, 'package.json').devDependencies).toEqual({ - nx: 'latest', - }); - }); - - it('should move nxCloudAccessToken and nxCloudUrl for @nrwl/nx-cloud', async () => { - writeJson(tree, 'nx.json', { - tasksRunnerOptions: { - default: { - runner: '@nrwl/nx-cloud', - options: { - accessToken: 'abc123', - url: 'https://nx.app', - maskedProperties: 'secret', - }, - }, - }, - }); - - await migrate(tree); - - const nxJson = readJson(tree, 'nx.json'); - expect(nxJson.nxCloudAccessToken).toEqual('abc123'); - expect(nxJson.nxCloudUrl).toEqual('https://nx.app'); - expect(nxJson.tasksRunnerOptions.default.options).toMatchInlineSnapshot(` - { - "maskedProperties": "secret", - } - `); - expect(nxJson.tasksRunnerOptions.default.runner).not.toBeDefined(); - }); - - it('should add useLightClient false for outdated enterprise customers', async () => { - writeJson(tree, 'nx.json', { - tasksRunnerOptions: { - default: { - runner: 'nx-cloud', - options: { - accessToken: 'abc123', - url: 'https://nx-cloud.example.com', - }, - }, - }, - }); - verifyOrUpdateNxCloudClient.mockImplementation(() => { - throw new Error(); - }); - - await migrate(tree); - - const nxJson = readJson(tree, 'nx.json'); - expect(nxJson.nxCloudAccessToken).toEqual('abc123'); - expect(nxJson.nxCloudUrl).toEqual('https://nx-cloud.example.com'); - expect(nxJson.tasksRunnerOptions.default.options).toMatchInlineSnapshot(` - { - "useLightClient": false, - } - `); - expect(nxJson.tasksRunnerOptions.default.runner).not.toBeDefined(); - }); - - it('should not update accessToken if runner is not nx-cloud', async () => { - writeJson(tree, 'nx.json', { - tasksRunnerOptions: { - default: { - runner: 'custom', - options: { - cacheDirectory: '.nx/cache', - useDaemonProcess: false, - accessToken: 'xxxx-xxx-xxxx', - }, - }, - }, - }); - await migrate(tree); - expect(readJson(tree, 'nx.json')) - .toMatchInlineSnapshot(` - { - "cacheDirectory": ".nx/cache", - "tasksRunnerOptions": { - "default": { - "options": { - "accessToken": "xxxx-xxx-xxxx", - }, - "runner": "custom", - }, - }, - "useDaemonProcess": false, - } - `); - }); - - it('should work if nx.json does not exist', async () => { - tree.delete('nx.json'); - await migrate(tree); - expect(tree.exists('nx.json')).toEqual(false); - }); - - it('should not throw is cacheableOperations is an unexpected type', async () => { - writeJson(tree, 'nx.json', { - tasksRunnerOptions: { - default: { - runner: 'nx/tasks-runners/default', - options: { - cacheableOperations: 'invalid', - }, - }, - }, - }); - - await migrate(tree); - - const nxJson = readJson(tree, 'nx.json'); - expect(nxJson.tasksRunnerOptions).toMatchInlineSnapshot(` - { - "default": { - "options": { - "cacheableOperations": "invalid", - }, - }, - } - `); - }); -}); diff --git a/packages/nx/src/migrations/update-17-0-0/use-minimal-config-for-tasks-runner-options.ts b/packages/nx/src/migrations/update-17-0-0/use-minimal-config-for-tasks-runner-options.ts deleted file mode 100644 index 7fc2d7b334..0000000000 --- a/packages/nx/src/migrations/update-17-0-0/use-minimal-config-for-tasks-runner-options.ts +++ /dev/null @@ -1,145 +0,0 @@ -import { updateJson } from '../../generators/utils/json'; -import { Tree } from '../../generators/tree'; -import { NxJsonConfiguration } from '../../config/nx-json'; -import { PackageJson } from '../../utils/package-json'; -import { formatChangedFilesWithPrettierIfAvailable } from '../../generators/internal-utils/format-changed-files-with-prettier-if-available'; -import { readNxJson } from '../../generators/utils/nx-json'; -import { - NxCloudEnterpriseOutdatedError, - verifyOrUpdateNxCloudClient, -} from '../../nx-cloud/update-manager'; -import { getRunnerOptions } from '../../tasks-runner/run-command'; -import { output } from '../../utils/output'; - -export default async function migrate(tree: Tree) { - if (!tree.exists('nx.json')) { - return; - } - - const nxJson = readNxJson(tree); - - // Already migrated - if (!nxJson.tasksRunnerOptions?.default) { - return; - } - - const nxCloudClientSupported = await isNxCloudClientSupported(nxJson); - updateJson(tree, 'nx.json', (nxJson) => { - const { runner, options } = nxJson.tasksRunnerOptions.default; - - // This property shouldn't ever be part of tasks runner options. - if (options.useDaemonProcess !== undefined) { - nxJson.useDaemonProcess = options.useDaemonProcess; - delete options.useDaemonProcess; - } - - // Remaining keys may be specific to a given runner, so leave them alone if there are multiple runners. - if (Object.keys(nxJson.tasksRunnerOptions ?? {}).length > 1) { - return nxJson; - } - - // These options can only be moved for nx-cloud. - if (runner === 'nx-cloud' || runner === '@nrwl/nx-cloud') { - nxJson.nxCloudAccessToken = options.accessToken; - delete options.accessToken; - - if (options.url) { - nxJson.nxCloudUrl = options.url; - delete options.url; - } - - if (nxCloudClientSupported) { - removeNxCloudDependency(tree); - } else { - options.useLightClient = false; - } - if (options.encryptionKey) { - nxJson.nxCloudEncryptionKey = options.encryptionKey; - delete options.encryptionKey; - } - } - - // These options should be safe to move for all tasks runners: - if (options.parallel !== undefined) { - nxJson.parallel = options.parallel; - delete options.parallel; - } - if (options.cacheDirectory !== undefined) { - nxJson.cacheDirectory = options.cacheDirectory; - delete options.cacheDirectory; - } - if (Array.isArray(options.cacheableOperations)) { - nxJson.targetDefaults ??= {}; - for (const target of options.cacheableOperations) { - nxJson.targetDefaults[target] ??= {}; - nxJson.targetDefaults[target].cache ??= true; - } - delete options.cacheableOperations; - } - if ( - ['nx-cloud', '@nrwl/nx-cloud', 'nx/tasks-runners/default'].includes( - runner - ) - ) { - delete nxJson.tasksRunnerOptions.default.runner; - if (Object.values(options).length === 0) { - delete nxJson.tasksRunnerOptions; - } - } - return nxJson; - }); - - await formatChangedFilesWithPrettierIfAvailable(tree); -} - -async function isNxCloudClientSupported(nxJson: NxJsonConfiguration) { - const nxCloudOptions = getRunnerOptions('default', nxJson, {}, true); - - // Non enterprise workspaces support the Nx Cloud Client - if (!isNxCloudEnterpriseWorkspace(nxJson)) { - return true; - } - - // If we can get the nx cloud client, it's supported - try { - await verifyOrUpdateNxCloudClient(nxCloudOptions); - return true; - } catch (e) { - if (e instanceof NxCloudEnterpriseOutdatedError) { - output.warn({ - title: 'Nx Cloud Instance is outdated.', - bodyLines: [ - 'If you are an Nx Enterprise customer, please reach out to your assigned Developer Productivity Engineer.', - 'If you are NOT an Nx Enterprise customer but are seeing this message, please reach out to cloud-support@nrwl.io.', - ], - }); - } - return false; - } -} - -function isNxCloudEnterpriseWorkspace(nxJson: NxJsonConfiguration) { - const { runner, options } = nxJson.tasksRunnerOptions.default; - return ( - (runner === 'nx-cloud' || runner === '@nrwl/nx-cloud') && - options.url && - ![ - 'https://nx.app', - 'https://cloud.nx.app', - 'https://staging.nx.app', - 'https://snapshot.nx.app', - ].includes(options.url) - ); -} - -function removeNxCloudDependency(tree: Tree) { - if (tree.exists('package.json')) { - updateJson(tree, 'package.json', (packageJson) => { - delete packageJson.dependencies?.['nx-cloud']; - delete packageJson.devDependencies?.['nx-cloud']; - delete packageJson.dependencies?.['@nrwl/nx-cloud']; - delete packageJson.devDependencies?.['@nrwl/nx-cloud']; - return packageJson; - }); - } -} diff --git a/packages/nx/src/migrations/update-17-2-0/move-default-base.spec.ts b/packages/nx/src/migrations/update-17-2-0/move-default-base.spec.ts deleted file mode 100644 index 9bf59b531e..0000000000 --- a/packages/nx/src/migrations/update-17-2-0/move-default-base.spec.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { createTreeWithEmptyWorkspace } from '../../generators/testing-utils/create-tree-with-empty-workspace'; -import { Tree } from '../../generators/tree'; -import { readNxJson, updateNxJson } from '../../generators/utils/nx-json'; - -import update from './move-default-base'; - -describe('update-17.1.0 migration', () => { - let tree: Tree; - - beforeEach(() => { - tree = createTreeWithEmptyWorkspace({ layout: 'apps-libs' }); - }); - - it("shouldn't do anything if affected.defaultBase is not set", async () => { - tree.write('nx.json', JSON.stringify({})); - await update(tree); - expect(readNxJson(tree)).toEqual({}); - }); - - it("shouldn't remove affected if other keys present", async () => { - updateNxJson(tree, { - affected: { - defaultBase: 'master', - otherKey: 'otherValue', - } as any, - }); - await update(tree); - expect(readNxJson(tree)).toEqual({ - affected: { - otherKey: 'otherValue', - }, - defaultBase: 'master', - }); - }); - - it('should remove affected if no other keys present', async () => { - updateNxJson(tree, { - affected: { - defaultBase: 'master', - } as any, - }); - await update(tree); - expect(readNxJson(tree)).toEqual({ - defaultBase: 'master', - }); - }); -}); diff --git a/packages/nx/src/migrations/update-17-2-0/move-default-base.ts b/packages/nx/src/migrations/update-17-2-0/move-default-base.ts deleted file mode 100644 index 5ac6319f16..0000000000 --- a/packages/nx/src/migrations/update-17-2-0/move-default-base.ts +++ /dev/null @@ -1,23 +0,0 @@ -/* eslint-disable @typescript-eslint/no-unused-vars */ -import { readNxJson, updateNxJson } from '../../generators/utils/nx-json'; -import { Tree } from '../../generators/tree'; -import { NxJsonConfiguration } from '../../config/nx-json'; -import { formatChangedFilesWithPrettierIfAvailable } from '../../generators/internal-utils/format-changed-files-with-prettier-if-available'; - -/** - * Updates existing workspaces to move nx.json's affected.defaultBase to nx.json's base. - */ -export default async function update(host: Tree) { - const nxJson = readNxJson(host) as NxJsonConfiguration & { - affected: { defaultBase?: string }; - }; - if (nxJson?.affected?.defaultBase) { - nxJson.defaultBase = nxJson.affected.defaultBase; - delete nxJson.affected.defaultBase; - if (Object.keys(nxJson.affected).length === 0) { - delete nxJson.affected; - } - updateNxJson(host, nxJson); - } - await formatChangedFilesWithPrettierIfAvailable(host); -} diff --git a/packages/nx/src/migrations/update-17-3-0/nx-release-path.spec.ts b/packages/nx/src/migrations/update-17-3-0/nx-release-path.spec.ts deleted file mode 100644 index 278bf24675..0000000000 --- a/packages/nx/src/migrations/update-17-3-0/nx-release-path.spec.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { createTreeWithEmptyWorkspace } from '../../generators/testing-utils/create-tree-with-empty-workspace'; -import { Tree } from '../../generators/tree'; -import { readJson, writeJson } from '../../generators/utils/json'; -import nxReleasePath from './nx-release-path'; - -describe('nxReleasePath', () => { - let tree: Tree; - - beforeEach(() => { - tree = createTreeWithEmptyWorkspace(); - }); - - it('should update changelog renderer references', () => { - writeJson(tree, 'nx.json', { - $schema: './node_modules/nx/schemas/nx-schema.json', - release: { - changelog: { - git: { - commit: true, - tag: true, - }, - workspaceChangelog: { - createRelease: 'github', - renderer: 'nx/changelog-renderer', - }, - projectChangelogs: { - renderer: 'nx/changelog-renderer', - }, - }, - version: { - generatorOptions: { - currentVersionResolver: 'git-tag', - specifierSource: 'conventional-commits', - }, - }, - }, - }); - - tree.write( - 'some-script.js', - ` - import { releaseVersion } from 'nx/src/command-line/release'; - const { releaseChangelog } = require("nx/src/command-line/release"); - ` - ); - - // these should not be updated, only the formalized programmatic API - tree.write( - 'some-other-file.ts', - ` - import { foo } from 'nx/src/command-line/release/nested/thing'; - const { releaseChangelog } = require("nx/src/command-line/release/another/nested/thing"); - ` - ); - - nxReleasePath(tree); - - // intentionally unchanged - expect(tree.read('some-other-file.ts').toString('utf-8')) - .toMatchInlineSnapshot(` - " - import { foo } from 'nx/src/command-line/release/nested/thing'; - const { releaseChangelog } = require("nx/src/command-line/release/another/nested/thing"); - " - `); - - // programmatic API should be updated to nx/release - expect(tree.read('some-script.js').toString('utf-8')) - .toMatchInlineSnapshot(` - " - import { releaseVersion } from 'nx/release'; - const { releaseChangelog } = require("nx/release"); - " - `); - - // nx/changelog-renderer references should be updated to nx/release/changelog-renderer - expect(readJson(tree, 'nx.json')).toMatchInlineSnapshot(` - { - "$schema": "./node_modules/nx/schemas/nx-schema.json", - "release": { - "changelog": { - "git": { - "commit": true, - "tag": true, - }, - "projectChangelogs": { - "renderer": "nx/release/changelog-renderer", - }, - "workspaceChangelog": { - "createRelease": "github", - "renderer": "nx/release/changelog-renderer", - }, - }, - "version": { - "generatorOptions": { - "currentVersionResolver": "git-tag", - "specifierSource": "conventional-commits", - }, - }, - }, - } - `); - }); -}); diff --git a/packages/nx/src/migrations/update-17-3-0/nx-release-path.ts b/packages/nx/src/migrations/update-17-3-0/nx-release-path.ts deleted file mode 100644 index 90c417c721..0000000000 --- a/packages/nx/src/migrations/update-17-3-0/nx-release-path.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { join, relative, sep } from 'node:path'; -import { Tree } from '../../generators/tree'; -import { getIgnoreObject } from '../../utils/ignore'; - -export default function nxReleasePath(tree: Tree) { - visitNotIgnoredFiles(tree, '', (file) => { - const contents = tree.read(file).toString('utf-8'); - if ( - // the deep import usage should be replaced by the new location - contents.includes('nx/src/command-line/release') || - // changelog-renderer has moved into nx/release - contents.includes('nx/changelog-renderer') - ) { - const finalContents = contents - // replace instances of old changelog renderer location - .replace(/nx\/changelog-renderer/g, 'nx/release/changelog-renderer') - // replace instances of deep import for programmatic API (only perform the replacement if an actual import by checking for trailing ' or ") - .replace(/nx\/src\/command-line\/release(['"])/g, 'nx/release$1'); - tree.write(file, finalContents); - } - }); -} - -// Adapted from devkit -export function visitNotIgnoredFiles( - tree: Tree, - dirPath: string = tree.root, - visitor: (path: string) => void -): void { - const ig = getIgnoreObject(); - dirPath = normalizePathRelativeToRoot(dirPath, tree.root); - if (dirPath !== '' && ig?.ignores(dirPath)) { - return; - } - for (const child of tree.children(dirPath)) { - const fullPath = join(dirPath, child); - if (ig?.ignores(fullPath)) { - continue; - } - if (tree.isFile(fullPath)) { - visitor(fullPath); - } else { - visitNotIgnoredFiles(tree, fullPath, visitor); - } - } -} - -// Copied from devkit -function normalizePathRelativeToRoot(path: string, root: string): string { - return relative(root, join(root, path)).split(sep).join('/'); -} diff --git a/packages/nx/src/migrations/update-18-0-0/disable-crystal-for-existing-workspaces.spec.ts b/packages/nx/src/migrations/update-18-0-0/disable-crystal-for-existing-workspaces.spec.ts deleted file mode 100644 index 5d108ca614..0000000000 --- a/packages/nx/src/migrations/update-18-0-0/disable-crystal-for-existing-workspaces.spec.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { createTreeWithEmptyWorkspace } from '../../generators/testing-utils/create-tree-with-empty-workspace'; -import migrate from './disable-crystal-for-existing-workspaces'; - -describe('disable crystal for existing workspaces', () => { - it('should add flag to nx.json', async () => { - const tree = createTreeWithEmptyWorkspace(); - await migrate(tree); - expect(tree.read('nx.json', 'utf-8')).toMatchInlineSnapshot(` - "{ - "affected": { - "defaultBase": "main" - }, - "targetDefaults": { - "build": { - "cache": true - }, - "lint": { - "cache": true - } - }, - "useInferencePlugins": false - } - " - `); - }); -}); diff --git a/packages/nx/src/migrations/update-18-0-0/disable-crystal-for-existing-workspaces.ts b/packages/nx/src/migrations/update-18-0-0/disable-crystal-for-existing-workspaces.ts deleted file mode 100644 index b532024b10..0000000000 --- a/packages/nx/src/migrations/update-18-0-0/disable-crystal-for-existing-workspaces.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { readNxJson, updateNxJson } from '../../generators/utils/nx-json'; -import { Tree } from '../../generators/tree'; -import { formatChangedFilesWithPrettierIfAvailable } from '../../generators/internal-utils/format-changed-files-with-prettier-if-available'; - -export default async function migrate(tree: Tree) { - const nxJson = readNxJson(tree); - nxJson.useInferencePlugins = false; - updateNxJson(tree, nxJson); - - await formatChangedFilesWithPrettierIfAvailable(tree); -} diff --git a/packages/playwright/migrations.json b/packages/playwright/migrations.json index 05aa08bcfc..77546137ca 100644 --- a/packages/playwright/migrations.json +++ b/packages/playwright/migrations.json @@ -1,17 +1,5 @@ { "generators": { - "17-3-1-add-project-to-config": { - "cli": "nx", - "version": "17.3.1-beta.0", - "description": "Add project property to playwright config", - "implementation": "./src/migrations/update-17-3-1/add-project-to-config" - }, - "18-1-0-remove-baseUrl-from-project-json": { - "cli": "nx", - "version": "18.1.0-beta.3", - "description": "Remove invalid baseUrl option from @nx/playwright:playwright targets in project.json.", - "implementation": "./src/migrations/update-18-1-0/remove-baseUrl-from-project-json" - }, "19-6-0-use-serve-static-preview-for-command": { "cli": "nx", "version": "19.6.0-beta.0", diff --git a/packages/playwright/src/migrations/update-17-3-1/__snapshots__/add-project-to-config.spec.ts.snap b/packages/playwright/src/migrations/update-17-3-1/__snapshots__/add-project-to-config.spec.ts.snap deleted file mode 100644 index 0bbbd2ca04..0000000000 --- a/packages/playwright/src/migrations/update-17-3-1/__snapshots__/add-project-to-config.spec.ts.snap +++ /dev/null @@ -1,55 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`update-nx-next-dependency should not update playwright.config.ts if projects is already defined 1`] = ` -"import { defineConfig } from '@playwright/test'; - import { nxE2EPreset } from '@nx/playwright/preset'; - - import { workspaceRoot } from '@nx/devkit'; - - const baseURL = process.env['BASE_URL'] || 'http://localhost:4200'; - - export default defineConfig({ - ...nxE2EPreset(__filename, { testDir: './src' }), - /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ - use: { - baseURL, - /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ - trace: 'on-first-retry', - }, - /* Run your local dev server before starting the tests */ - webServer: { - command: 'npx nx serve acme', - url: 'http://localhost:4200', - reuseExistingServer: !process.env.CI, - cwd: workspaceRoot, - }, - projects: [] - }); - " -`; - -exports[`update-nx-next-dependency should update playwright.config.ts 1`] = ` -"import { defineConfig, devices } from '@playwright/test'; -import { nxE2EPreset } from '@nx/playwright/preset'; -import { workspaceRoot } from '@nx/devkit'; -const baseURL = process.env['BASE_URL'] || 'http://localhost:4200'; -export default defineConfig({ ...nxE2EPreset(__filename, { testDir: './src' }), - /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ - use: { - baseURL, - /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ - trace: 'on-first-retry', - }, - /* Run your local dev server before starting the tests */ - webServer: { - command: 'npx nx serve acme', - url: 'http://localhost:4200', - reuseExistingServer: !process.env.CI, - cwd: workspaceRoot, - }, projects: [ - { name: "chromium", use: { ...devices["Desktop Chrome"] } }, - { name: "firefox", use: { ...devices["Desktop Firefox"] } }, - { name: "webkit", use: { ...devices["Desktop Safari"] } } - ] }); -" -`; diff --git a/packages/playwright/src/migrations/update-17-3-1/add-project-to-config.spec.ts b/packages/playwright/src/migrations/update-17-3-1/add-project-to-config.spec.ts deleted file mode 100644 index 06b01c5429..0000000000 --- a/packages/playwright/src/migrations/update-17-3-1/add-project-to-config.spec.ts +++ /dev/null @@ -1,91 +0,0 @@ -import { Tree, addProjectConfiguration } from '@nx/devkit'; -import { createTreeWithEmptyWorkspace } from 'nx/src/devkit-testing-exports'; - -import update from './add-project-to-config'; - -describe('update-nx-next-dependency', () => { - let tree: Tree; - - beforeEach(() => { - tree = createTreeWithEmptyWorkspace(); - }); - - it('should update playwright.config.ts', async () => { - addProjectConfiguration(tree, 'acme', { - root: 'acme', - }); - - tree.write( - 'acme/playwright.config.ts', - `import { defineConfig } from '@playwright/test'; - import { nxE2EPreset } from '@nx/playwright/preset'; - - import { workspaceRoot } from '@nx/devkit'; - - const baseURL = process.env['BASE_URL'] || 'http://localhost:4200'; - - export default defineConfig({ - ...nxE2EPreset(__filename, { testDir: './src' }), - /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ - use: { - baseURL, - /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ - trace: 'on-first-retry', - }, - /* Run your local dev server before starting the tests */ - webServer: { - command: 'npx nx serve acme', - url: 'http://localhost:4200', - reuseExistingServer: !process.env.CI, - cwd: workspaceRoot, - } - }); - ` - ); - await update(tree); - - const content = tree.read('acme/playwright.config.ts', 'utf-8'); - expect(content).toContain('projects: ['); - expect(content).toMatchSnapshot(); - }); - - it('should not update playwright.config.ts if projects is already defined', async () => { - addProjectConfiguration(tree, 'acme', { - root: 'acme', - }); - - tree.write( - 'acme/playwright.config.ts', - `import { defineConfig } from '@playwright/test'; - import { nxE2EPreset } from '@nx/playwright/preset'; - - import { workspaceRoot } from '@nx/devkit'; - - const baseURL = process.env['BASE_URL'] || 'http://localhost:4200'; - - export default defineConfig({ - ...nxE2EPreset(__filename, { testDir: './src' }), - /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ - use: { - baseURL, - /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ - trace: 'on-first-retry', - }, - /* Run your local dev server before starting the tests */ - webServer: { - command: 'npx nx serve acme', - url: 'http://localhost:4200', - reuseExistingServer: !process.env.CI, - cwd: workspaceRoot, - }, - projects: [] - }); - ` - ); - await update(tree); - expect(tree.read('acme/playwright.config.ts', 'utf-8')).toContain( - 'projects: []' - ); - expect(tree.read('acme/playwright.config.ts', 'utf-8')).toMatchSnapshot(); - }); -}); diff --git a/packages/playwright/src/migrations/update-17-3-1/add-project-to-config.ts b/packages/playwright/src/migrations/update-17-3-1/add-project-to-config.ts deleted file mode 100644 index b48ec74f1c..0000000000 --- a/packages/playwright/src/migrations/update-17-3-1/add-project-to-config.ts +++ /dev/null @@ -1,198 +0,0 @@ -import { Tree, getProjects, joinPathFragments } from '@nx/devkit'; -import * as ts from 'typescript'; -import { tsquery } from '@phenomnomnominal/tsquery'; - -export default async function update(tree: Tree) { - const projects = getProjects(tree); - projects.forEach((project) => { - // Check if the project contains playwright config - const configPath = joinPathFragments(project.root, 'playwright.config.ts'); - if (tree.exists(configPath)) { - addProjectIfExists(tree, joinPathFragments(configPath)); - } - }); -} - -function addProjectIfExists(tree: Tree, configFilePath: string) { - const configFileContent = tree.read(configFilePath, 'utf-8'); - - const sourceFile = tsquery.ast(configFileContent); - const printer = ts.createPrinter(); - - const updatedStatements = updateOrCreateImportStatement( - sourceFile, - '@playwright/test', - ['devices'] - ); - - const exportAssignment = tsquery.query( - sourceFile, - 'ExportAssignment' - )[0] as ts.ExportAssignment; - if (!exportAssignment) { - // No export found in the file - return; - } - - const exportAssignemntObject = exportAssignment.expression; - if ( - !( - ts.isCallExpression(exportAssignemntObject) && - exportAssignemntObject.getText(sourceFile).startsWith('defineConfig') && - exportAssignemntObject.arguments.length > 0 - ) - ) { - // Export is not a call expression with defineConfig ex. export default defineConfig({ ... }) - return; - } - let firstArgument = exportAssignemntObject.arguments[0]; - if (!ts.isObjectLiteralExpression(firstArgument)) { - // First argument is not an object literal ex. defineConfig('foo') - return; - } - const projectProperty = tsquery.query( - exportAssignemntObject, - 'PropertyAssignment > Identifier[name="projects"]' - )[0] as ts.PropertyAssignment; - if (projectProperty) { - // Projects property already exists in the config - return; - } - - // Add projects property to the config - const projectsArray = ts.factory.createArrayLiteralExpression( - [ - createProperty('chromium', 'Desktop Chrome'), - createProperty('firefox', 'Desktop Firefox'), - createProperty('webkit', 'Desktop Safari'), - ], - true - ); - - const newProjectsProperty = ts.factory.createPropertyAssignment( - 'projects', - projectsArray - ); - - const newObj = ts.factory.createObjectLiteralExpression([ - ...firstArgument.properties, - newProjectsProperty, - ]); - - const newCallExpression = ts.factory.updateCallExpression( - exportAssignemntObject, - exportAssignemntObject.expression, - exportAssignemntObject.typeArguments, - [newObj] - ); - - const newExportAssignment = ts.factory.updateExportAssignment( - exportAssignment, - exportAssignment.modifiers, - newCallExpression - ); - - const transformedStatements = updatedStatements.map((statement) => { - return statement === exportAssignment ? newExportAssignment : statement; - }) as ts.Statement[]; - - const transformedSourceFile = ts.factory.updateSourceFile( - sourceFile, - transformedStatements - ); - - const updatedConfigFileContent = printer.printFile(transformedSourceFile); - tree.write(configFilePath, updatedConfigFileContent); -} - -function createProperty(name: string, device: string) { - return ts.factory.createObjectLiteralExpression([ - ts.factory.createPropertyAssignment( - 'name', - ts.factory.createStringLiteral(name) - ), - ts.factory.createPropertyAssignment( - 'use', - ts.factory.createObjectLiteralExpression([ - ts.factory.createSpreadAssignment( - ts.factory.createElementAccessExpression( - ts.factory.createIdentifier('devices'), - ts.factory.createStringLiteral(device) - ) - ), - ]) - ), - ]); -} - -function updateOrCreateImportStatement( - sourceFile: ts.SourceFile, - moduleName: string, - importNames: string[] -): ts.Statement[] { - let importDeclarationFound = false; - const newStatements = sourceFile.statements.map((statement) => { - if ( - ts.isImportDeclaration(statement) && - statement.moduleSpecifier.getText(sourceFile) === `'${moduleName}'` - ) { - importDeclarationFound = true; - const existingSpecifiers = - statement.importClause?.namedBindings && - ts.isNamedImports(statement.importClause.namedBindings) - ? statement.importClause.namedBindings.elements.map( - (e) => e.name.text - ) - : []; - // Merge with new import names, avoiding duplicates - const mergedImportNames = Array.from( - new Set([...existingSpecifiers, ...importNames]) - ); - - // Create new import specifiers - const importSpecifiers = mergedImportNames.map((name) => - ts.factory.createImportSpecifier( - false, - undefined, - ts.factory.createIdentifier(name) - ) - ); - - return ts.factory.updateImportDeclaration( - statement, - statement.modifiers, - ts.factory.createImportClause( - false, - undefined, - ts.factory.createNamedImports(importSpecifiers) - ), - statement.moduleSpecifier, - undefined - ); - } - return statement; - }); - - if (!importDeclarationFound) { - const importDeclaration = ts.factory.createImportDeclaration( - undefined, - ts.factory.createImportClause( - false, - undefined, - ts.factory.createNamedImports( - importNames.map((name) => - ts.factory.createImportSpecifier( - false, - undefined, - ts.factory.createIdentifier(name) - ) - ) - ) - ), - ts.factory.createStringLiteral(moduleName) - ); - newStatements.push(importDeclaration); - } - - return newStatements; -} diff --git a/packages/playwright/src/migrations/update-18-1-0/remove-baseUrl-from-project-json.spec.ts b/packages/playwright/src/migrations/update-18-1-0/remove-baseUrl-from-project-json.spec.ts deleted file mode 100644 index a1d6519ab8..0000000000 --- a/packages/playwright/src/migrations/update-18-1-0/remove-baseUrl-from-project-json.spec.ts +++ /dev/null @@ -1,176 +0,0 @@ -import { - addProjectConfiguration, - readNxJson, - readProjectConfiguration, - updateNxJson, -} from '@nx/devkit'; -import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing'; -import removeBaseUrlFromProjectJson from './remove-baseUrl-from-project-json'; - -describe('removeBaseUrlFromProjectJson', () => { - describe('--projects', () => { - it('should not update if the project is correct', async () => { - // ARRANGE - const tree = createTreeWithEmptyWorkspace(); - const project = { - $schema: 'node_modules/nx/schemas/project-schema.json', - name: 'test', - root: '.', - sourceRoot: '', - targets: { - e2e: { - executor: '@nx/playwright:playwright', - }, - }, - }; - - addProjectConfiguration(tree, 'test', project); - - // ACT - await removeBaseUrlFromProjectJson(tree); - - // ASSERT - const maybeUpdatedProject = readProjectConfiguration(tree, 'test'); - expect(maybeUpdatedProject).toMatchInlineSnapshot(` - { - "$schema": "node_modules/nx/schemas/project-schema.json", - "name": "test", - "root": ".", - "sourceRoot": "", - "targets": { - "e2e": { - "executor": "@nx/playwright:playwright", - }, - }, - } - `); - }); - - it('should remove baseUrl from target options', async () => { - // ARRANGE - const tree = createTreeWithEmptyWorkspace(); - const project = { - $schema: 'node_modules/nx/schemas/project-schema.json', - name: 'test', - root: '.', - sourceRoot: '', - targets: { - e2e: { - executor: '@nx/playwright:playwright', - options: { - baseUrl: 'http://localhost:4200', - }, - }, - }, - }; - - addProjectConfiguration(tree, 'test', project); - - // ACT - await removeBaseUrlFromProjectJson(tree); - - // ASSERT - const maybeUpdatedProject = readProjectConfiguration(tree, 'test'); - expect(maybeUpdatedProject.targets['e2e'].options).toMatchInlineSnapshot( - `{}` - ); - }); - - it('should remove baseUrl from target options and configurations', async () => { - // ARRANGE - const tree = createTreeWithEmptyWorkspace(); - const project = { - $schema: 'node_modules/nx/schemas/project-schema.json', - name: 'test', - root: '.', - sourceRoot: '', - targets: { - e2e: { - executor: '@nx/playwright:playwright', - options: { - baseUrl: 'http://localhost:4200', - }, - configurations: { - production: { - baseUrl: 'https://mytest.com', - }, - }, - }, - }, - }; - - addProjectConfiguration(tree, 'test', project); - - // ACT - await removeBaseUrlFromProjectJson(tree); - - // ASSERT - const maybeUpdatedProject = readProjectConfiguration(tree, 'test'); - expect(maybeUpdatedProject.targets['e2e'].options).toMatchInlineSnapshot( - `{}` - ); - expect( - maybeUpdatedProject.targets['e2e'].configurations['production'] - ).toMatchInlineSnapshot(`{}`); - }); - }); - - describe('--nx.json', () => { - it('should remove baseUrl from targetDefaults in nx.json', async () => { - // ARRANGE - const tree = createTreeWithEmptyWorkspace(); - const nxJson = readNxJson(tree); - nxJson.targetDefaults['@nx/playwright:playwright'] = { - options: { - baseUrl: 'http://localhost:4200', - }, - configurations: { - ci: { - baseUrl: 'http://localhost:4201', - }, - }, - }; - nxJson.targetDefaults['e2e'] = { - executor: '@nx/playwright:playwright', - options: { - baseUrl: 'http://localhost:4200', - }, - configurations: { - ci: { - baseUrl: 'http://localhost:4201', - }, - }, - }; - updateNxJson(tree, nxJson); - - // ACT - await removeBaseUrlFromProjectJson(tree); - - // ASSERT - const maybeUpdatedNxJson = readNxJson(tree); - expect(maybeUpdatedNxJson.targetDefaults).toMatchInlineSnapshot(` - { - "@nx/playwright:playwright": { - "configurations": { - "ci": {}, - }, - "options": {}, - }, - "build": { - "cache": true, - }, - "e2e": { - "configurations": { - "ci": {}, - }, - "executor": "@nx/playwright:playwright", - "options": {}, - }, - "lint": { - "cache": true, - }, - } - `); - }); - }); -}); diff --git a/packages/playwright/src/migrations/update-18-1-0/remove-baseUrl-from-project-json.ts b/packages/playwright/src/migrations/update-18-1-0/remove-baseUrl-from-project-json.ts deleted file mode 100644 index 837cd56c64..0000000000 --- a/packages/playwright/src/migrations/update-18-1-0/remove-baseUrl-from-project-json.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { - formatFiles, - readNxJson, - readProjectConfiguration, - type Tree, - updateNxJson, - updateProjectConfiguration, -} from '@nx/devkit'; -import { forEachExecutorOptions } from '@nx/devkit/src/generators/executor-options-utils'; - -export default async function (tree: Tree) { - forEachExecutorOptions( - tree, - '@nx/playwright:playwright', - (options, projectName, targetName, configurationName) => { - if (options?.['baseUrl']) { - const project = readProjectConfiguration(tree, projectName); - if (configurationName) { - delete project.targets[targetName].configurations[configurationName][ - 'baseUrl' - ]; - } else { - delete project.targets[targetName].options['baseUrl']; - } - - updateProjectConfiguration(tree, projectName, project); - } - } - ); - - const nxJson = readNxJson(tree); - for (const [targetNameOrExecutor, target] of Object.entries( - nxJson.targetDefaults - )) { - if ( - targetNameOrExecutor === '@nx/playwright:playwright' || - (target.executor && target.executor === '@nx/playwright:playwright') - ) { - let updated = false; - if (target.options?.['baseUrl']) { - delete nxJson.targetDefaults[targetNameOrExecutor].options['baseUrl']; - updated = true; - } - - if (target.configurations) { - for (const [configurationName, configuration] of Object.entries( - target.configurations - )) { - if (configuration['baseUrl']) { - delete nxJson.targetDefaults[targetNameOrExecutor].configurations[ - configurationName - ]['baseUrl']; - updated = true; - } - } - } - - if (updated) { - updateNxJson(tree, nxJson); - } - } - } - - await formatFiles(tree); -} diff --git a/packages/react-native/migrations.json b/packages/react-native/migrations.json index f2667fd128..fde552fd59 100644 --- a/packages/react-native/migrations.json +++ b/packages/react-native/migrations.json @@ -1,41 +1,5 @@ { "generators": { - "update-18-0-0-add-web-configuration": { - "cli": "nx", - "version": "18.0.0-beta.0", - "description": "Add web configuration to react native projects", - "implementation": "./src/migrations/update-18-0-0/add-web-configuration" - }, - "update-18-0-0-change-storybook-targets": { - "cli": "nx", - "version": "18.0.0-beta.0", - "description": "Upgrade react native storybook target to use web", - "implementation": "./src/migrations/update-18-0-0/change-storybook-targets" - }, - "update-18-0-0-remove-block-list": { - "cli": "nx", - "version": "18.0.0-beta.0", - "description": "Remove blockList in metro.config.js.", - "implementation": "./src/migrations/update-18-0-0/remove-block-list" - }, - "update-18-0-0-remove-metro": { - "cli": "nx", - "version": "18.0.0-beta.0", - "description": "Remove metro-* and @react-native-community/cli-* from package.json devDependencies", - "implementation": "./src/migrations/update-18-0-0/remove-metro" - }, - "update-18-0-0-remove-symlink-target": { - "cli": "nx", - "version": "18.0.0-beta.0", - "description": "Remove ensure-symlink target", - "implementation": "./src/migrations/update-18-0-0/remove-symlink-target" - }, - "update-18-0-0-add-upgrade-target": { - "cli": "nx", - "version": "18.0.0-beta.0", - "description": "Add upgrade target to react native projects", - "implementation": "./src/migrations/update-18-0-0/add-upgrade-target" - }, "update-19-6-0-rename-upgrade-target-name": { "cli": "nx", "version": "19.6.0-beta.1", @@ -44,96 +8,6 @@ } }, "packageJsonUpdates": { - "17.1.0": { - "version": "17.1.0-beta.1", - "packages": { - "react-native": { - "version": "0.72.6", - "alwaysAddToPackageJson": false - }, - "metro": { - "version": "0.76.8", - "alwaysAddToPackageJson": false - }, - "metro-resolver": { - "version": "0.76.8", - "alwaysAddToPackageJson": false - }, - "metro-config": { - "version": "0.76.8", - "alwaysAddToPackageJson": false - }, - "metro-react-native-babel-preset": { - "version": "0.76.8", - "alwaysAddToPackageJson": false - }, - "metro-babel-register": { - "version": "0.76.8", - "alwaysAddToPackageJson": false - }, - "metro-react-native-babel-transformer": { - "version": "0.76.7", - "alwaysAddToPackageJson": false - }, - "@react-native-community/cli": { - "version": "11.3.7", - "alwaysAddToPackageJson": false - }, - "@react-native-community/cli-platform-android": { - "version": "11.3.7", - "alwaysAddToPackageJson": false - }, - "@react-native-community/cli-platform-ios": { - "version": "11.3.7", - "alwaysAddToPackageJson": false - } - } - }, - "17.3.0": { - "version": "17.3.0-beta.3", - "packages": { - "@types/node": { - "version": "18.16.9" - } - } - }, - "18.0.0": { - "version": "18.0.0-beta.0", - "packages": { - "react-native": { - "version": "0.73.2", - "alwaysAddToPackageJson": false - }, - "@react-native/babel-preset": { - "version": "^0.73.18", - "addToPackageJson": "devDependencies" - }, - "@react-native/metro-config": { - "version": "^0.73.2", - "addToPackageJson": "devDependencies" - }, - "@types/react": { - "version": "~18.2.45", - "alwaysAddToPackageJson": false - }, - "@testing-library/react-native": { - "version": "~12.4.2", - "alwaysAddToPackageJson": false - }, - "react-native-svg-transformer": { - "version": "1.2.0", - "alwaysAddToPackageJson": false - }, - "react-native-svg": { - "version": "14.1.0", - "alwaysAddToPackageJson": false - }, - "@react-native-community/cli-platform-android": { - "version": "12.3.0", - "alwaysAddToPackageJson": false - } - } - }, "19.0.0": { "version": "19.0.0-beta.7", "packages": { diff --git a/packages/react-native/src/migrations/update-18-0-0/add-upgrade-target.spec.ts b/packages/react-native/src/migrations/update-18-0-0/add-upgrade-target.spec.ts deleted file mode 100644 index 733308bf0a..0000000000 --- a/packages/react-native/src/migrations/update-18-0-0/add-upgrade-target.spec.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { addProjectConfiguration, getProjects, Tree } from '@nx/devkit'; -import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing'; -import update from './add-upgrade-target'; - -describe('add-upgrade-target', () => { - let tree: Tree; - - beforeEach(async () => { - tree = createTreeWithEmptyWorkspace({ layout: 'apps-libs' }); - addProjectConfiguration(tree, 'product', { - root: 'apps/product', - sourceRoot: 'apps/product/src', - targets: { - start: { - executor: '@nx/react-native:start', - options: {}, - }, - serve: { - executor: 'nx:run-commands', - options: { - command: 'nx start product', - }, - }, - }, - }); - }); - - it(`should add upgrade target`, async () => { - await update(tree); - - getProjects(tree).forEach((project) => { - expect(project.targets?.['upgrade']).toEqual({ - executor: '@nx/react-native:upgrade', - options: {}, - }); - }); - }); -}); diff --git a/packages/react-native/src/migrations/update-18-0-0/add-upgrade-target.ts b/packages/react-native/src/migrations/update-18-0-0/add-upgrade-target.ts deleted file mode 100644 index ceea0d9798..0000000000 --- a/packages/react-native/src/migrations/update-18-0-0/add-upgrade-target.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { - Tree, - formatFiles, - getProjects, - updateProjectConfiguration, - workspaceRoot, -} from '@nx/devkit'; - -import { runCliUpgrade } from '../../executors/upgrade/upgrade.impl'; - -/** - * Add target upgrade for react native apps - * Remove pod-install from dependsOn for all targets, it does pod-install when creating the app - */ -export default async function update(tree: Tree) { - const projects = getProjects(tree); - - for (const [name, config] of projects.entries()) { - if (config.targets?.['start']?.executor === '@nx/react-native:start') { - if (!config.targets['upgrade']) { - config.targets.upgrade = { - executor: '@nx/react-native:upgrade', - options: {}, - }; - } - if ( - config.targets?.['pod-install']?.executor === - '@nx/react-native:pod-install' - ) { - for (const targetName in config.targets) { - if (config.targets[targetName]?.dependsOn?.length) { - config.targets[targetName].dependsOn = config.targets[ - targetName - ].dependsOn.filter((dependsOn) => dependsOn !== 'pod-install'); - } - } - } - updateProjectConfiguration(tree, name, config); - } - } - - await formatFiles(tree); -} diff --git a/packages/react-native/src/migrations/update-18-0-0/add-web-configuration.spec.ts b/packages/react-native/src/migrations/update-18-0-0/add-web-configuration.spec.ts deleted file mode 100644 index d21016a8a4..0000000000 --- a/packages/react-native/src/migrations/update-18-0-0/add-web-configuration.spec.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { addProjectConfiguration, getProjects, Tree } from '@nx/devkit'; -import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing'; -import update from './add-web-configuration'; - -describe('add-web-configuration', () => { - let tree: Tree; - - beforeEach(async () => { - tree = createTreeWithEmptyWorkspace({ layout: 'apps-libs' }); - addProjectConfiguration(tree, 'product', { - root: 'apps/product', - sourceRoot: 'apps/product/src', - targets: { - start: { - executor: '@nx/react-native:start', - options: {}, - }, - serve: { - executor: 'nx:run-commands', - options: { - command: 'nx start product', - }, - }, - }, - }); - }); - - it(`should add web configuration`, async () => { - await update(tree); - - tree.exists('apps/product/webpack.config.js'); - getProjects(tree).forEach((project) => { - expect(project.targets['build'].executor).toEqual('@nx/webpack:webpack'); - expect(project.targets['serve'].executor).toEqual( - '@nx/webpack:dev-server' - ); - }); - }); -}); diff --git a/packages/react-native/src/migrations/update-18-0-0/add-web-configuration.ts b/packages/react-native/src/migrations/update-18-0-0/add-web-configuration.ts deleted file mode 100644 index 836e6d5a78..0000000000 --- a/packages/react-native/src/migrations/update-18-0-0/add-web-configuration.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { - GeneratorCallback, - Tree, - getProjects, - joinPathFragments, - runTasksInSerial, - updateProjectConfiguration, -} from '@nx/devkit'; -import webConfigurationGenerator from '../../generators/web-configuration/web-configuration'; - -/** - * Add web configuration to react native projects - * - delete the current serve target which is just a pass-through to start target - * - rename the babel.config.json to to babel-v72.config.json - * - add web confiugration, it will add .babelrc.js - */ -export default async function update(tree: Tree) { - const projects = getProjects(tree); - - const tasks: GeneratorCallback[] = []; - for (const [projectName, config] of projects.entries()) { - if (config.targets?.['start']?.executor === '@nx/react-native:start') { - if ( - config.targets['serve'] && - config.targets['serve'].executor === 'nx:run-commands' && - config.targets['serve'].options?.command?.startsWith('nx start') - ) { - delete config.targets['serve']; - updateProjectConfiguration(tree, projectName, config); - } - - if (tree.exists(joinPathFragments(config.root, 'babel.config.json'))) { - tree.rename( - joinPathFragments(config.root, 'babel.config.json'), - joinPathFragments(config.root, 'babel-v72.config.json') - ); - } - - tasks.push( - await webConfigurationGenerator(tree, { - project: config.name, - bundler: 'webpack', - }) - ); - } - } - return runTasksInSerial(...tasks); -} diff --git a/packages/react-native/src/migrations/update-18-0-0/change-storybook-targets.ts b/packages/react-native/src/migrations/update-18-0-0/change-storybook-targets.ts deleted file mode 100644 index 46c2f022ed..0000000000 --- a/packages/react-native/src/migrations/update-18-0-0/change-storybook-targets.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { - GeneratorCallback, - Tree, - getProjects, - removeDependenciesFromPackageJson, - runTasksInSerial, - updateProjectConfiguration, -} from '@nx/devkit'; -import { output } from 'nx/src/utils/output'; -import migrate7Generator from '@nx/storybook/src/generators/migrate-7/migrate-7'; -import { storybookMajorVersion } from '@nx/storybook/src/utils/utilities'; -import storybookConfigurationGenerator from '@nx/react/src/generators/storybook-configuration/configuration'; - -/** - * Upgrade react native storybook target to use web - */ -export default async function changeStorybookTargets(tree: Tree) { - const tasks: GeneratorCallback[] = []; - - // update the storybook target - const projects = getProjects(tree); - let hasStorybookTarget = false; - for (const [projectName, config] of projects.entries()) { - if ( - config.targets?.['storybook']?.executor === '@nx/react-native:storybook' - ) { - hasStorybookTarget = true; - - delete config.targets['storybook']; - updateProjectConfiguration(tree, projectName, config); - - tasks.push( - await storybookConfigurationGenerator(tree, { - project: projectName, - }) - ); - } - } - - /** - * This just checks if Storybook is installed in the workspace. - * The thing here is that during the previous step of the migration, - * during packageJsonUpdates, Nx has already set Storybook - * to version 7, if Storybook exists in the workspace. - * So, it makes no sense here to check if the version is - * 7, because it will always be. - */ - const storybookVersion = storybookMajorVersion(); - if (!hasStorybookTarget || !storybookVersion) { - return; - } - output.log({ - title: 'Migrating Storybook to v7', - bodyLines: [ - `🚀 This migration will update your Storybook configuration to v7.`, - `It will call the @nx/storybook:migrate-7 generator for you.`, - `You can read more about the migration and how this generator works here:`, - `https://nx.dev/nx-api/storybook/generators/migrate-7`, - ], - }); - tasks.push(await migrate7Generator(tree, { autoAcceptAllPrompts: true })); - tasks.push( - removeDependenciesFromPackageJson( - tree, - [], - [ - '@storybook/react-native', - '@storybook/addon-ondevice-actions', - '@storybook/addon-ondevice-backgrounds', - '@storybook/addon-ondevice-controls', - '@storybook/addon-ondevice-notes', - ] - ) - ); - - return runTasksInSerial(...tasks); -} diff --git a/packages/react-native/src/migrations/update-18-0-0/remove-block-list.spec.ts b/packages/react-native/src/migrations/update-18-0-0/remove-block-list.spec.ts deleted file mode 100644 index 0c35d6dba3..0000000000 --- a/packages/react-native/src/migrations/update-18-0-0/remove-block-list.spec.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing'; -import { Tree, addProjectConfiguration } from '@nx/devkit'; -import update from './remove-block-list'; - -describe('remove-block-list', () => { - let tree: Tree; - - beforeEach(() => { - tree = createTreeWithEmptyWorkspace({ layout: 'apps-libs' }); - addProjectConfiguration(tree, 'product', { - root: 'apps/product', - targets: { - start: { - executor: '@nx/react-native:start', - }, - }, - }); - tree.write( - 'apps/product/metro.config.js', - ` -const { withNxMetro } = require('@nx/expo'); -const { getDefaultConfig } = require('@expo/metro-config'); -const { mergeConfig } = require('metro-config'); -const exclusionList = require('metro-config/src/defaults/exclusionList'); - -const defaultConfig = getDefaultConfig(__dirname); -const { assetExts, sourceExts } = defaultConfig.resolver; - -/** - * Metro configuration - * https://facebook.github.io/metro/docs/configuration - * - * @type {import('metro-config').MetroConfig} - */ -const customConfig = { - transformer: { - babelTransformerPath: require.resolve('react-native-svg-transformer'), - }, - resolver: { - assetExts: assetExts.filter((ext) => ext !== 'svg'), - sourceExts: [...sourceExts, 'svg'], - blockList: exclusionList([/^(?!.*node_modules).*\/dist\/.*/]), - unstable_enableSymlinks: true, - unstable_enablePackageExports: true, - }, -}; - - -module.exports = withNxMetro(mergeConfig(defaultConfig, customConfig), { - // Change this to true to see debugging info. - // Useful if you have issues resolving modules - debug: false, - // all the file extensions used for imports other than 'ts', 'tsx', 'js', 'jsx', 'json' - extensions: [], - // Specify folders to watch, in addition to Nx defaults (workspace libraries and node_modules) - watchFolders: [], -});` - ); - }); - - it('should remove blockList', async () => { - await update(tree); - const metroConfig = tree.read(`apps/product/metro.config.js`).toString(); - expect(metroConfig).not.toContain('blockList'); - expect(metroConfig).not.toContain('unstable_enableSymlinks'); - expect(metroConfig).not.toContain('unstable_enablePackageExports'); - }); -}); diff --git a/packages/react-native/src/migrations/update-18-0-0/remove-block-list.ts b/packages/react-native/src/migrations/update-18-0-0/remove-block-list.ts deleted file mode 100644 index 90762536b5..0000000000 --- a/packages/react-native/src/migrations/update-18-0-0/remove-block-list.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { Tree, formatFiles, getProjects, joinPathFragments } from '@nx/devkit'; - -/** - * This migration removes blockList in metro.config.js. - * It is now excluding dist folder in watchFolders in withNxMetro. - */ -export default async function update(tree: Tree) { - const projects = getProjects(tree); - - for (const [_, config] of projects.entries()) { - if (config.targets?.['start']?.executor === '@nx/react-native:start') { - if (tree.exists(joinPathFragments(config.root, 'metro.config.js'))) { - let content = tree - .read(joinPathFragments(config.root, 'metro.config.js')) - .toString(); - content = content.replace(/blockList: exclusionList(.+?(?=\n))/, ''); - content = content.replace('// unstable_enableSymlinks: true,', ''); - content = content.replace( - '// unstable_enablePackageExports: true,', - '' - ); - content = content.replace('unstable_enableSymlinks: true,', ''); - content = content.replace('unstable_enablePackageExports: true,', ''); - content = content.replace( - `const exclusionList = require('metro-config/src/defaults/exclusionList');`, - '' - ); - - tree.write(joinPathFragments(config.root, 'metro.config.js'), content); - await formatFiles(tree); - } - } - } -} diff --git a/packages/react-native/src/migrations/update-18-0-0/remove-metro.ts b/packages/react-native/src/migrations/update-18-0-0/remove-metro.ts deleted file mode 100644 index c5906dcad1..0000000000 --- a/packages/react-native/src/migrations/update-18-0-0/remove-metro.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { - formatFiles, - removeDependenciesFromPackageJson, - Tree, -} from '@nx/devkit'; - -/** - * Remove metro-* package since it is no longer explicity required in package.json. - * react-native has dependency of @react-native/community-cli-plugin - * @react-native/community-cli-plugin has dependency of metro - * - * Also remove @react-native-community/cli-* since it is a dependency of react-native. - * (excpet reactNativeCommunityCliPlatformAndroidVersion because android files refer it by path) - * - * https://react-native-community.github.io/upgrade-helper/?from=0.72.6&to=0.73.1#RnDiffApp-package.json - * @param tree - * @returns - */ -export default async function update(tree: Tree) { - removeDependenciesFromPackageJson( - tree, - [], - [ - 'metro', - 'metro-resolver', - 'metro-config', - 'metro-react-native-babel-preset', - 'metro-babel-register', - 'metro-react-native-babel-transformer', - '@react-native-community/cli', - '@react-native-community/cli-platform-ios', - ] - ); - await formatFiles(tree); -} diff --git a/packages/react-native/src/migrations/update-18-0-0/remove-symlink-target.spec.ts b/packages/react-native/src/migrations/update-18-0-0/remove-symlink-target.spec.ts deleted file mode 100644 index 8fefd26cbf..0000000000 --- a/packages/react-native/src/migrations/update-18-0-0/remove-symlink-target.spec.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { addProjectConfiguration, getProjects, Tree } from '@nx/devkit'; -import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing'; -import update from './remove-symlink-target'; - -describe('remove-symlink-target', () => { - let tree: Tree; - - beforeEach(async () => { - tree = createTreeWithEmptyWorkspace({ layout: 'apps-libs' }); - addProjectConfiguration(tree, 'product', { - root: 'apps/product', - sourceRoot: 'apps/product/src', - targets: { - 'ensure-symlink': { - executor: '@nx/react-native:ensure-symlink', - options: {}, - }, - 'bundle-android': { - executor: '@nx/react-native:bundle', - dependsOn: ['ensure-symlink'], - outputs: ['{options.bundleOutput}'], - options: { - entryFile: 'src/main.tsx', - platform: 'android', - bundleOutput: 'dist/apps/techy-jokes/android/main.jsbundle', - }, - }, - }, - }); - }); - - it(`should remove ensure-symlink target from project.json`, async () => { - await update(tree); - - getProjects(tree).forEach((project) => { - expect(project.targets['ensure-symlink']).toBeUndefined(); - expect(project.targets['bundle-android'].dependsOn).toEqual([]); - }); - }); -}); diff --git a/packages/react-native/src/migrations/update-18-0-0/remove-symlink-target.ts b/packages/react-native/src/migrations/update-18-0-0/remove-symlink-target.ts deleted file mode 100644 index 8511e81b83..0000000000 --- a/packages/react-native/src/migrations/update-18-0-0/remove-symlink-target.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { - TargetConfiguration, - Tree, - getProjects, - updateProjectConfiguration, -} from '@nx/devkit'; -import { rmSync } from 'node:fs'; - -/** - * Remove ensure-symlink target. - * It is going to be supported by react-native version 0.73 by default. - */ -export default async function update(tree: Tree) { - const projects = getProjects(tree); - - for (const [projectName, config] of projects.entries()) { - if ( - config.targets?.['ensure-symlink']?.executor === - '@nx/react-native:ensure-symlink' - ) { - removeTargets(config.targets, 'ensure-symlink'); - updateProjectConfiguration(tree, projectName, config); - rmSync(`${config.root}/node_modules`, { recursive: true, force: true }); - } - } -} - -function removeTargets( - targets: { - [targetName: string]: TargetConfiguration; - }, - targetNameToRemove: string -) { - for (const targetName in targets) { - if (targetName === targetNameToRemove) { - delete targets[targetName]; - } - if (targets[targetName]?.dependsOn?.length) { - targets[targetName].dependsOn = targets[targetName].dependsOn.filter( - (dependsOn) => dependsOn !== targetNameToRemove - ); - } - } -} diff --git a/packages/react/migrations.json b/packages/react/migrations.json index bf08d839bf..4203f3cd71 100644 --- a/packages/react/migrations.json +++ b/packages/react/migrations.json @@ -1,17 +1,5 @@ { "generators": { - "add-module-federation-env-var-to-target-defaults": { - "cli": "nx", - "version": "18.0.0-beta.0", - "description": "Add NX_MF_DEV_SERVER_STATIC_REMOTES to inputs for task hashing when '@nx/webpack:webpack' is used for Module Federation.", - "factory": "./src/migrations/update-18-0-0/add-mf-env-var-to-target-defaults" - }, - "fix-target-defaults-for-webpack": { - "cli": "nx", - "version": "18.1.1-beta.0", - "description": "Ensure targetDefaults inputs for task hashing when '@nx/webpack:webpack' is used are correct for Module Federation.", - "factory": "./src/migrations/update-18-1-1/fix-target-defaults-inputs" - }, "update-19-6-0-turn-module-federation-dts-off": { "cli": "nx", "version": "19.6.0-beta.4", @@ -56,32 +44,6 @@ } }, "packageJsonUpdates": { - "17.0.0-beta.0": { - "version": "17.0.0-beta.0", - "packages": { - "@types/react": { - "version": "18.2.24", - "alwaysAddToPackageJson": false - }, - "@types/react-dom": { - "version": "18.2.9", - "alwaysAddToPackageJson": false - }, - "@types/react-is": { - "version": "18.2.2", - "alwaysAddToPackageJson": false - } - } - }, - "17.3.0": { - "version": "17.3.0-beta.3", - "packages": { - "@types/node": { - "version": "18.16.9", - "alwaysAddToPackageJson": false - } - } - }, "19.0.0": { "version": "19.0.0-beta.12", "packages": { diff --git a/packages/react/src/migrations/update-18-1-1/fix-target-defaults-inputs.spec.ts b/packages/react/src/migrations/update-18-1-1/fix-target-defaults-inputs.spec.ts deleted file mode 100644 index 85e1b30425..0000000000 --- a/packages/react/src/migrations/update-18-1-1/fix-target-defaults-inputs.spec.ts +++ /dev/null @@ -1,127 +0,0 @@ -import fixTargetDefaultsInputs from './fix-target-defaults-inputs'; -import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing'; -import { addProjectConfiguration, readNxJson, updateNxJson } from '@nx/devkit'; - -describe('fixTargetDefaultsInputs', () => { - it('should add the executor and input when it does not exist', async () => { - // ARRANGE - const tree = createTreeWithEmptyWorkspace(); - addProjectConfiguration(tree, 'test', { - root: '', - targets: { - build: { - executor: '@nx/webpack:webpack', - }, - }, - }); - tree.write('module-federation.config.ts', ''); - - // ACT - await fixTargetDefaultsInputs(tree); - - // ASSERT - const nxJson = readNxJson(tree); - expect(nxJson.targetDefaults).toMatchInlineSnapshot(` - { - "@nx/webpack:webpack": { - "inputs": [ - "production", - "^production", - { - "env": "NX_MF_DEV_SERVER_STATIC_REMOTES", - }, - ], - }, - "build": { - "cache": true, - }, - "lint": { - "cache": true, - }, - } - `); - }); - - it('should not add the executor and input when no project uses it', async () => { - // ARRANGE - const tree = createTreeWithEmptyWorkspace(); - addProjectConfiguration(tree, 'test', { - root: '', - targets: { - build: { - executor: '@nx/angular:module-federation-dev-server', - }, - }, - }); - - // ACT - await fixTargetDefaultsInputs(tree); - - // ASSERT - const nxJson = readNxJson(tree); - expect(nxJson.targetDefaults).toMatchInlineSnapshot(` - { - "build": { - "cache": true, - }, - "lint": { - "cache": true, - }, - } - `); - }); - - it('should update the executor and input target default when it already exists', async () => { - // ARRANGE - const tree = createTreeWithEmptyWorkspace(); - addProjectConfiguration(tree, 'test', { - root: '', - targets: { - build: { - executor: '@nx/webpack:webpack', - }, - }, - }); - - tree.write('module-federation.config.ts', ''); - - let nxJson = readNxJson(tree); - nxJson = { - ...nxJson, - targetDefaults: { - ...nxJson.targetDefaults, - ['@nx/webpack:webpack']: { - inputs: ['^build'], - }, - }, - }; - - updateNxJson(tree, nxJson); - - // ACT - await fixTargetDefaultsInputs(tree); - - // ASSERT - nxJson = readNxJson(tree); - expect(nxJson.targetDefaults).toMatchInlineSnapshot(` - { - "@nx/webpack:webpack": { - "inputs": [ - "^build", - "production", - "^production", - { - "env": "NX_MF_DEV_SERVER_STATIC_REMOTES", - }, - ], - }, - "build": { - "cache": true, - }, - "lint": { - "cache": true, - }, - } - `); - }); -}); diff --git a/packages/react/src/migrations/update-18-1-1/fix-target-defaults-inputs.ts b/packages/react/src/migrations/update-18-1-1/fix-target-defaults-inputs.ts deleted file mode 100644 index ee2701bd71..0000000000 --- a/packages/react/src/migrations/update-18-1-1/fix-target-defaults-inputs.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { - getProjects, - type Tree, - type ProjectConfiguration, - joinPathFragments, - formatFiles, - readNxJson, - updateNxJson, -} from '@nx/devkit'; - -export default async function (tree: Tree) { - if (!hasModuleFederationProject(tree)) { - return; - } - ensureTargetDefaultsContainProductionInputs(tree); - - await formatFiles(tree); -} - -function ensureTargetDefaultsContainProductionInputs(tree: Tree) { - const nxJson = readNxJson(tree); - const webpackExecutor = '@nx/webpack:webpack'; - const mfEnvVar = 'NX_MF_DEV_SERVER_STATIC_REMOTES'; - - nxJson.targetDefaults[webpackExecutor] ??= {}; - - nxJson.targetDefaults[webpackExecutor].inputs ??= [ - 'production', - '^production', - { env: mfEnvVar }, - ]; - - if (!nxJson.targetDefaults[webpackExecutor].inputs.includes('production')) { - nxJson.targetDefaults[webpackExecutor].inputs.push('production'); - } - - if (!nxJson.targetDefaults[webpackExecutor].inputs.includes('^production')) { - nxJson.targetDefaults[webpackExecutor].inputs.push('^production'); - } - - let mfEnvVarExists = false; - for (const input of nxJson.targetDefaults[webpackExecutor].inputs) { - if (typeof input === 'object' && input['env'] === mfEnvVar) { - mfEnvVarExists = true; - break; - } - } - - if (!mfEnvVarExists) { - nxJson.targetDefaults[webpackExecutor].inputs.push({ env: mfEnvVar }); - } - - updateNxJson(tree, nxJson); -} - -function hasModuleFederationProject(tree: Tree) { - const projects = getProjects(tree); - for (const project of projects.values()) { - const targets = project.targets || {}; - for (const [_, target] of Object.entries(targets)) { - if ( - target.executor === '@nx/webpack:webpack' && - (tree.exists( - joinPathFragments(project.root, 'module-federation.config.ts') - ) || - tree.exists( - joinPathFragments(project.root, 'module-federation.config.js') - )) - ) { - return true; - } - } - } - return false; -} diff --git a/packages/remix/migrations.json b/packages/remix/migrations.json index 0a2b0b2ed2..cba054acc3 100644 --- a/packages/remix/migrations.json +++ b/packages/remix/migrations.json @@ -1,137 +1,6 @@ { "generators": {}, "packageJsonUpdates": { - "17.2.1": { - "version": "17.2.1-beta.0", - "packages": { - "@remix-run/node": { - "version": "^2.3.0", - "alwaysAddToPackageJson": true - }, - "@remix-run/react": { - "version": "^2.3.0", - "alwaysAddToPackageJson": true - }, - "@remix-run/serve": { - "version": "^2.3.0", - "alwaysAddToPackageJson": true - }, - "@remix-run/dev": { - "version": "^2.3.0", - "alwaysAddToPackageJson": true - }, - "@remix-run/css-bundle": { - "version": "^2.3.0", - "alwaysAddToPackageJson": true - }, - "@remix-run/eslint-config": { - "version": "^2.3.0", - "alwaysAddToPackageJson": true - }, - "isbot": { - "version": "^3.6.8", - "alwaysAddToPackageJson": true - }, - "eslint": { - "version": "^8.38.0", - "alwaysAddToPackageJson": true - }, - "@testing-library/react": { - "version": "^14.1.2", - "alwaysAddToPackageJson": false - }, - "@testing-library/jest-dom": { - "version": "^6.1.4", - "alwaysAddToPackageJson": false - }, - "@testing-library/user-event": { - "version": "^14.5.1", - "alwaysAddToPackageJson": false - } - } - }, - "18.1.0": { - "version": "18.1.0-beta.1", - "packages": { - "@remix-run/node": { - "version": "^2.6.0", - "alwaysAddToPackageJson": true - }, - "@remix-run/react": { - "version": "^2.6.0", - "alwaysAddToPackageJson": true - }, - "@remix-run/serve": { - "version": "^2.6.0", - "alwaysAddToPackageJson": true - }, - "@remix-run/dev": { - "version": "^2.6.0", - "alwaysAddToPackageJson": true - }, - "@remix-run/css-bundle": { - "version": "^2.6.0", - "alwaysAddToPackageJson": true - }, - "@remix-run/eslint-config": { - "version": "^2.6.0", - "alwaysAddToPackageJson": true - }, - "isbot": { - "version": "^4.4.0", - "alwaysAddToPackageJson": true - }, - "eslint": { - "version": "^8.56.0", - "alwaysAddToPackageJson": true - }, - "@testing-library/react": { - "version": "^14.1.2", - "alwaysAddToPackageJson": false - }, - "@testing-library/jest-dom": { - "version": "^6.2.0", - "alwaysAddToPackageJson": false - }, - "@testing-library/user-event": { - "version": "^14.5.2", - "alwaysAddToPackageJson": false - }, - "typescript": { - "version": "^5.3.3", - "alwaysAddToPackageJson": false - } - } - }, - "18.1.1": { - "version": "18.1.1-beta.0", - "packages": { - "@remix-run/node": { - "version": "^2.8.0", - "alwaysAddToPackageJson": true - }, - "@remix-run/react": { - "version": "^2.8.0", - "alwaysAddToPackageJson": true - }, - "@remix-run/serve": { - "version": "^2.8.0", - "alwaysAddToPackageJson": true - }, - "@remix-run/dev": { - "version": "^2.8.0", - "alwaysAddToPackageJson": true - }, - "@remix-run/css-bundle": { - "version": "^2.8.0", - "alwaysAddToPackageJson": true - }, - "@remix-run/eslint-config": { - "version": "^2.8.0", - "alwaysAddToPackageJson": true - } - } - }, "20.1.0": { "version": "20.1.0-beta.5", "packages": { diff --git a/packages/rollup/migrations.json b/packages/rollup/migrations.json index 4b77be7bb6..2c2d64cdf9 100644 --- a/packages/rollup/migrations.json +++ b/packages/rollup/migrations.json @@ -1,15 +1,6 @@ { "generators": {}, "packageJsonUpdates": { - "18.2.0": { - "version": "18.2.0-beta.1", - "packages": { - "core-js": { - "version": "3.36.1", - "alwaysAddToPackageJson": false - } - } - }, "19.0.0": { "version": "19.0.0-beta.0", "packages": { diff --git a/packages/rspack/migrations.json b/packages/rspack/migrations.json index 0438a6efcb..95f0fbbe83 100644 --- a/packages/rspack/migrations.json +++ b/packages/rspack/migrations.json @@ -14,40 +14,6 @@ } }, "packageJsonUpdates": { - "18.1.0": { - "version": "18.1.0-beta.0", - "packages": { - "@rspack/core": { - "version": "~0.5.6", - "alwaysAddToPackageJson": false - }, - "@rspack/dev-server": { - "version": "~0.5.6", - "alwaysAddToPackageJson": false - }, - "@rspack/plugin-minify": { - "version": "~0.5.6", - "alwaysAddToPackageJson": false - } - } - }, - "18.1.3": { - "version": "18.1.3", - "packages": { - "@rspack/core": { - "version": "^0.6.1", - "alwaysAddToPackageJson": false - }, - "@rspack/dev-server": { - "version": "^0.6.1", - "alwaysAddToPackageJson": false - }, - "@rspack/plugin-minify": { - "version": "^0.6.1", - "alwaysAddToPackageJson": false - } - } - }, "19.3.0": { "version": "19.3.0-beta.0", "packages": { diff --git a/packages/storybook/migrations.json b/packages/storybook/migrations.json index 346d7d1897..2263c4e0e2 100644 --- a/packages/storybook/migrations.json +++ b/packages/storybook/migrations.json @@ -8,255 +8,6 @@ } }, "packageJsonUpdates": { - "17.2.0-beta.2": { - "version": "17.2.0-beta.2", - "packages": { - "vite": { - "version": "^5.0.0", - "alwaysAddToPackageJson": false - } - } - }, - "17.1.0-beta.4": { - "version": "17.1.0-beta.4", - "packages": { - "@storybook/testing-library": { - "version": "^0.2.2", - "alwaysAddToPackageJson": false - }, - "@storybook/jest": { - "version": "^0.2.3", - "alwaysAddToPackageJson": false - } - } - }, - "17.1.0": { - "version": "17.1.0-beta.3", - "packages": { - "@storybook/test-runner": { - "version": "^0.13.0", - "alwaysAddToPackageJson": false - }, - "@storybook/core-server": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/angular": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/react": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/react-vite": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/react-webpack5": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/web-components-vite": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/web-components-webpack5": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-a11y": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-actions": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-backgrounds": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-controls": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-docs": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-essentials": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-interactions": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-mdx-gfm": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-highlight": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-jest": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-links": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-measure": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-outline": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-storyshots": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-storyshots-puppeteer": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-storysource": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-toolbars": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-viewport": { - "version": "^7.5.3", - "alwaysAddToPackageJson": false - } - } - }, - "17.0.0": { - "version": "17.0.0-rc.3", - "packages": { - "@storybook/test-runner": { - "version": "^0.13.0", - "alwaysAddToPackageJson": false - }, - "@storybook/core-server": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/angular": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/react": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/react-vite": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/react-webpack5": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/web-components-vite": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/web-components-webpack5": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-a11y": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-actions": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-backgrounds": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-controls": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-docs": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-essentials": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-interactions": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-mdx-gfm": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-highlight": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-jest": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-links": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-measure": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-outline": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-storyshots": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-storyshots-puppeteer": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-storysource": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-toolbars": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - }, - "@storybook/addon-viewport": { - "version": "^7.5.1", - "alwaysAddToPackageJson": false - } - } - }, - "18.2.0": { - "version": "18.2.0-beta.1", - "packages": { - "core-js": { - "version": "3.36.1", - "alwaysAddToPackageJson": false - } - } - }, "19.6.0": { "version": "19.6.0-beta.1", "packages": { diff --git a/packages/vite/migrations.json b/packages/vite/migrations.json index bc925c28a3..6bff1ce44a 100644 --- a/packages/vite/migrations.json +++ b/packages/vite/migrations.json @@ -1,20 +1,5 @@ { "generators": { - "move-target-defaults": { - "version": "17.1.0-beta.2", - "description": "Move target defaults", - "implementation": "./src/migrations/update-17-1-0/move-target-defaults" - }, - "update-vite-config": { - "version": "17.2.0-beta.10", - "description": "Update vite config.", - "implementation": "./src/migrations/update-17-2-0/update-vite-config" - }, - "vitest-coverage-and-reporters": { - "version": "17.3.0-beta.0", - "description": "Move the vitest coverage thresholds in their own object if exists and add reporters.", - "implementation": "./src/migrations/update-17-3-0/vitest-coverage-and-reporters" - }, "update-19-6-0-add-depends-on-for-preview-server": { "version": "19.6.0-beta.0", "description": "Add dependsOn: [build] to preview targets using preview-server", @@ -77,81 +62,6 @@ "alwaysAddToPackageJson": false } } - }, - "18.1.0": { - "version": "18.1.0-beta.1", - "packages": { - "vitest": { - "version": "^1.3.1", - "alwaysAddToPackageJson": false - }, - "@vitest/coverage-v8": { - "version": "^1.3.1", - "alwaysAddToPackageJson": false - }, - "@vitest/ui": { - "version": "^1.3.1", - "alwaysAddToPackageJson": false - }, - "@vitest/coverage-istanbul": { - "version": "^1.3.1", - "alwaysAddToPackageJson": false - } - } - }, - "17.3.0": { - "version": "17.3.0-beta.0", - "packages": { - "vitest": { - "version": "^1.0.4", - "alwaysAddToPackageJson": false - }, - "@vitest/coverage-v8": { - "version": "^1.0.4", - "alwaysAddToPackageJson": false - }, - "@vitest/ui": { - "version": "^1.0.4", - "alwaysAddToPackageJson": false - }, - "@vitest/coverage-istanbul": { - "version": "^1.0.4", - "alwaysAddToPackageJson": false - } - } - }, - "17.2.0": { - "version": "17.2.0-beta.2", - "packages": { - "vite": { - "version": "^5.0.0", - "alwaysAddToPackageJson": false - }, - "@vitejs/plugin-react": { - "version": "^4.2.0", - "alwaysAddToPackageJson": false - }, - "@vitejs/plugin-react-swc": { - "version": "^3.5.0", - "alwaysAddToPackageJson": false - }, - "vitest": { - "version": "~0.34.6", - "alwaysAddToPackageJson": false - }, - "@vitest/coverage-v8": { - "version": "~0.34.6", - "alwaysAddToPackageJson": false - }, - "@vitest/ui": { - "version": "~0.34.6", - "alwaysAddToPackageJson": false - }, - "@vitest/coverage-istanbul": { - "version": "~0.34.6", - "alwaysAddToPackageJson": false - } - } } } } diff --git a/packages/vite/src/migrations/update-17-1-0/move-target-defaults.spec.ts b/packages/vite/src/migrations/update-17-1-0/move-target-defaults.spec.ts deleted file mode 100644 index f481fb5c04..0000000000 --- a/packages/vite/src/migrations/update-17-1-0/move-target-defaults.spec.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { createTree } from '@nx/devkit/testing'; -import { - addProjectConfiguration as _addProjectConfiguration, - ProjectGraph, - readNxJson, - Tree, - writeJson, -} from '@nx/devkit'; - -import update from './move-target-defaults'; - -let projectGraph: ProjectGraph; -jest.mock('@nx/devkit', () => ({ - ...jest.requireActual('@nx/devkit'), - createProjectGraphAsync: jest.fn().mockImplementation(async () => { - return projectGraph; - }), -})); - -function addProjectConfiguration(tree, name, project) { - _addProjectConfiguration(tree, name, project); - projectGraph.nodes[name] = { - name: name, - type: 'lib', - data: { - root: project.root, - targets: project.targets, - }, - }; -} - -describe('move-target-defaults migration', () => { - let tree: Tree; - - beforeEach(() => { - tree = createTree(); - writeJson(tree, 'nx.json', { - namedInputs: { - production: ['default'], - }, - targetDefaults: { - test: { - cache: true, - inputs: ['default', '^production'], - }, - }, - }); - - projectGraph = { - nodes: {}, - dependencies: {}, - externalNodes: {}, - }; - }); - - it('should add options to nx.json target defaults and remove them from projects', async () => { - addProjectConfiguration(tree, 'proj1', { - root: 'proj1', - targets: { - test: { - executor: '@nx/vite:test', - options: { - passWithNoTests: true, - reportsDirectory: '../../reports', - }, - }, - }, - }); - - await update(tree); - - expect(readNxJson(tree).targetDefaults).toEqual({ - '@nx/vite:test': { - cache: true, - inputs: ['default', '^production'], - }, - }); - }); -}); diff --git a/packages/vite/src/migrations/update-17-1-0/move-target-defaults.ts b/packages/vite/src/migrations/update-17-1-0/move-target-defaults.ts deleted file mode 100644 index 6c750f674e..0000000000 --- a/packages/vite/src/migrations/update-17-1-0/move-target-defaults.ts +++ /dev/null @@ -1,112 +0,0 @@ -import { - createProjectGraphAsync, - formatFiles, - getProjects, - ProjectConfiguration, - ProjectGraphProjectNode, - readNxJson, - TargetConfiguration, - TargetDefaults, - Tree, - updateNxJson, -} from '@nx/devkit'; -import { forEachExecutorOptionsInGraph } from '@nx/devkit/src/generators/executor-options-utils'; -import { VitestExecutorOptions } from '../../executors/test/schema'; -import { readTargetDefaultsForTarget } from 'nx/src/project-graph/utils/project-configuration-utils'; - -export default async function update(tree: Tree) { - const nxJson = readNxJson(tree); - - // Don't override anything if there are already target defaults for vitest - if (nxJson.targetDefaults?.['@nx/vite:test']) { - return; - } - - nxJson.targetDefaults ??= {}; - - /** - * A set of targets which does not use any other executors - */ - const vitestTargets = new Set(); - const graph = await createProjectGraphAsync(); - const projectMap = getProjects(tree); - - forEachExecutorOptionsInGraph( - graph, - '@nx/vite:test', - (value, proj, targetName) => { - vitestTargets.add(targetName); - } - ); - - // Workspace does not use vitest - if (vitestTargets.size === 0) { - return; - } - - // Use the project graph nodes so that targets which are inferred are considered - const projects = graph.nodes; - - const vitestDefaults: TargetConfiguration> = - (nxJson.targetDefaults['@nx/vite:test'] = {}); - - // All vitest targets have the same name - if (vitestTargets.size === 1) { - const targetName = Array.from(vitestTargets)[0]; - if (nxJson.targetDefaults[targetName]) { - Object.assign(vitestDefaults, nxJson.targetDefaults[targetName]); - } - } - - vitestDefaults.cache ??= true; - - const inputs = ['default']; - inputs.push(nxJson.namedInputs?.production ? '^production' : '^default'); - vitestDefaults.inputs ??= inputs; - - // Cleanup old target defaults - for (const [targetDefaultKey, targetDefault] of Object.entries( - nxJson.targetDefaults - )) { - if ( - !isTargetDefaultUsed( - targetDefault, - nxJson.targetDefaults, - projects, - projectMap - ) - ) { - delete nxJson.targetDefaults[targetDefaultKey]; - } - } - - updateNxJson(tree, nxJson); - - await formatFiles(tree); -} - -/** - * Checks every target on every project to see if one of them uses the target default - */ -function isTargetDefaultUsed( - targetDefault: Partial, - targetDefaults: TargetDefaults, - projects: Record, - projectMap: Map -) { - for (const p of Object.values(projects)) { - for (const targetName in p.data?.targets ?? {}) { - if ( - readTargetDefaultsForTarget( - targetName, - targetDefaults, - // It might seem like we should use the graph here too but we don't want to pass an executor which was processed in the graph - projectMap.get(p.name).targets?.[targetName]?.executor - ) === targetDefault - ) { - return true; - } - } - } - return false; -} diff --git a/packages/vite/src/migrations/update-17-2-0/__snapshots__/update-vite-config.spec.ts.snap b/packages/vite/src/migrations/update-17-2-0/__snapshots__/update-vite-config.spec.ts.snap deleted file mode 100644 index 8961c89f9d..0000000000 --- a/packages/vite/src/migrations/update-17-2-0/__snapshots__/update-vite-config.spec.ts.snap +++ /dev/null @@ -1,345 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`change-vite-ts-paths-plugin migration should add build outDir to vite.config.ts 1`] = ` -"/// -import { defineConfig } from 'vite'; -import react from '@vitejs/plugin-react'; -import viteTsConfigPaths from 'vite-tsconfig-paths'; - -export default defineConfig({ - root: __dirname, - build: { - outDir: '../../dist/apps/demo', - reportCompressedSize: true, - commonjsOptions: { - transformMixedEsModules: true, - }, - }, - cacheDir: '../../node_modules/.vite/demo', - server: { - port: 4200, - host: 'localhost', - }, - - preview: { - port: 4300, - host: 'localhost', - }, - - plugins: [ - react(), - viteTsConfigPaths({ - root: '../../', - }), - ], - - // Uncomment this if you are using workers. - // worker: { - // plugins: [ - // viteTsConfigPaths({ - // root: '../../', - // }), - // ], - // }, - - test: { - reporters: ['default'], - coverage: { - reportsDirectory: '../../coverage/apps/demo', - provider: 'v8' as const, - }, - globals: true, - cache: { - dir: '../../node_modules/.vitest', - }, - environment: 'jsdom', - include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], - }, -}); -" -`; - -exports[`change-vite-ts-paths-plugin migration should add build outDir to vite.config.ts if build exists 1`] = ` -"/// -import { defineConfig } from 'vite'; -import react from '@vitejs/plugin-react'; -import viteTsConfigPaths from 'vite-tsconfig-paths'; - -export default defineConfig({ - root: __dirname, - cacheDir: '../../node_modules/.vite/demo2', - server: { - port: 4200, - host: 'localhost', - }, - - preview: { - port: 4300, - host: 'localhost', - }, - - plugins: [ - react(), - viteTsConfigPaths({ - root: '../../', - }), - ], - - build: { - outDir: '../dist/demo2', - reportCompressedSize: true, - commonjsOptions: { transformMixedEsModules: true }, - someProperty: 'someValue', - }, - - test: { - reporters: ['default'], - coverage: { - reportsDirectory: '../coverage/demo2', - provider: 'v8' as const, - }, - globals: true, - cache: { - dir: '../../node_modules/.vitest', - }, - environment: 'jsdom', - include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], - }, -}); -" -`; - -exports[`change-vite-ts-paths-plugin migration should add file replacements to vite.config.ts 1`] = ` -"/// -import replaceFiles from '@nx/vite/plugins/rollup-replace-files.plugin'; -import { defineConfig } from 'vite'; -import react from '@vitejs/plugin-react'; -import viteTsConfigPaths from 'vite-tsconfig-paths'; - -export default defineConfig({ - root: __dirname, - cacheDir: '../../node_modules/.vite/demo3', - server: { - port: 4200, - host: 'localhost', - }, - - preview: { - port: 4300, - host: 'localhost', - }, - - plugins: [ - replaceFiles([ - { - replace: 'demo3/src/environments/environment.ts', - with: 'demo3/src/environments/environment.prod.ts', - }, - ]), - react(), - viteTsConfigPaths({ - root: '../../', - }), - ], - - build: { - outDir: '../dist/demo3', - reportCompressedSize: true, - commonjsOptions: { transformMixedEsModules: true }, - someProperty: 'someValue', - }, - - test: { - reporters: ['default'], - coverage: { - reportsDirectory: '../coverage/demo3', - provider: 'v8' as const, - }, - globals: true, - cache: { - dir: '../../node_modules/.vitest', - }, - environment: 'jsdom', - include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], - }, -}); -" -`; - -exports[`change-vite-ts-paths-plugin migration should convert the file correctly 1`] = ` -"/// -import { defineConfig } from 'vite'; -import react from '@vitejs/plugin-react'; -import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; - -export default defineConfig(({ mode }) => { - return { - root: __dirname, - build: { - outDir: '../dist/demo4', - reportCompressedSize: true, - commonjsOptions: { - transformMixedEsModules: true, - }, - }, - cacheDir: '../../node_modules/.vite/demo4', - server: { - port: 4200, - host: 'localhost', - }, - - preview: { - port: 4300, - host: 'localhost', - }, - - plugins: [react(), nxViteTsPaths()], - - // Uncomment this if you are using workers. - // worker: { - // plugins: [ nxViteTsPaths() ], - // }, - - test: { - reporters: ['default'], - coverage: { - reportsDirectory: '../coverage/demo4', - provider: 'v8' as const, - }, - globals: true, - cache: { - dir: '../../node_modules/.vitest', - }, - environment: 'jsdom', - include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], - }, - }; -}); -" -`; - -exports[`change-vite-ts-paths-plugin migration should convert the file correctly 2`] = ` -"/// -import { defineConfig } from 'vite'; -import react from '@vitejs/plugin-react'; -import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; - -export default defineConfig(({ mode }) => { - return { - root: __dirname, - build: { - outDir: '../dist/demo4', - reportCompressedSize: true, - commonjsOptions: { - transformMixedEsModules: true, - }, - }, - cacheDir: '../../node_modules/.vite/demo4', - server: { - port: 4200, - host: 'localhost', - }, - - preview: { - port: 4300, - host: 'localhost', - }, - - plugins: [react(), nxViteTsPaths()], - - // Uncomment this if you are using workers. - // worker: { - // plugins: [ nxViteTsPaths() ], - // }, - - test: { - reporters: ['default'], - coverage: { - reportsDirectory: '../coverage/demo4', - provider: 'v8' as const, - }, - globals: true, - cache: { - dir: '../../node_modules/.vitest', - }, - environment: 'jsdom', - include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], - }, - }; -}); -" -`; - -exports[`change-vite-ts-paths-plugin migration should correctly migrate the vite config within the file and not other object literals 1`] = ` -"/// -import react from '@vitejs/plugin-react'; -import dns from 'dns'; -import { PluginOption, defineConfig } from 'vite'; -import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; - -dns.setDefaultResultOrder('verbatim'); -const BASE_HREF = '/app'; - -/** - * Adds \` to the head of the index.html - * The reason why the \`base\` configuration property doesn't work is because it makes - * all assets served under \`/app\` of \`/\` and this impacts the download zip service worker - * We only want to the service worker to listen to events related to downloads, but not capture any other events - * and the only way to do this is make sure all assets are served from the root, but we still want our app path to be \`/app\` - * - * This mimics the same behavior we had with webpack before migrating to vite - */ -const baseHrefPlugin: () => PluginOption = () => { - return { - name: 'html-transform', - transformIndexHtml(html) { - return html.replace('', \`\\n \`); - }, - }; -}; - -export default defineConfig({ - root: __dirname, - cacheDir: '../../node_modules/.vite/jetstream', - envPrefix: 'NX', - - server: { - port: 4200, - host: 'localhost', - }, - - build: { - outDir: '../../dist/apps/demo', - reportCompressedSize: true, - commonjsOptions: { transformMixedEsModules: true }, // Put all assets at the root of the app instead of under /assets - assetsDir: './', - sourcemap: true, - rollupOptions: { - output: { - sourcemap: true, - }, - }, - }, - - plugins: [ - react({ - jsxImportSource: '@emotion/react', - babel: { - plugins: ['@emotion/babel-plugin'], - }, - }), - nxViteTsPaths(), - baseHrefPlugin(), - ], - - worker: { - plugins: [nxViteTsPaths()], - }, -}); -" -`; - -exports[`change-vite-ts-paths-plugin migration should show warning to the user if could not recognize config 1`] = ` -"// some invalid config -" -`; diff --git a/packages/vite/src/migrations/update-17-2-0/lib/add-file-replacements.ts b/packages/vite/src/migrations/update-17-2-0/lib/add-file-replacements.ts deleted file mode 100644 index 8f6dc26f25..0000000000 --- a/packages/vite/src/migrations/update-17-2-0/lib/add-file-replacements.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { ChangeType, applyChangesToString } from '@nx/devkit'; -import { FileReplacement } from '../../../../plugins/rollup-replace-files.plugin'; -import { tsquery } from '@phenomnomnominal/tsquery'; -import { getConfigNode, notFoundWarning } from '../update-vite-config'; - -export function addFileReplacements( - configContents: string, - fileReplacements: FileReplacement[], - configPath: string -): string { - const configNode = getConfigNode(configContents); - if (!configNode) { - notFoundWarning(configPath); - return configContents; - } - const pluginsObject = tsquery.query( - configNode, - `PropertyAssignment:has(Identifier[name="plugins"])` - )?.[0]; - const replaceFilesPlugin = tsquery.query( - configNode, - `PropertyAssignment:has(Identifier[name="plugins"]) CallExpression:has(Identifier[name="replaceFiles"])` - )?.[0]; - - const firstImportDeclaration = tsquery.query( - configContents, - 'ImportDeclaration' - )?.[0]; - - if (pluginsObject) { - if (replaceFilesPlugin) { - return configContents; - } else { - return applyChangesToString(configContents, [ - { - type: ChangeType.Insert, - index: pluginsObject.getStart() + `plugins: [`.length + 1, - text: `replaceFiles(${JSON.stringify(fileReplacements)}),`, - }, - firstImportDeclaration - ? { - type: ChangeType.Insert, - index: firstImportDeclaration.getStart(), - text: `import replaceFiles from '@nx/vite/plugins/rollup-replace-files.plugin';\n`, - } - : { - type: ChangeType.Insert, - index: 0, - text: `import replaceFiles from '@nx/vite/plugins/rollup-replace-files.plugin';\n`, - }, - ]); - } - } else { - const foundDefineConfig = tsquery.query( - configContents, - 'CallExpression:has(Identifier[name="defineConfig"])' - )?.[0]; - - if (!foundDefineConfig) { - return; - } - return applyChangesToString(configContents, [ - { - type: ChangeType.Insert, - index: configNode.getStart() + 1, - text: `plugins: [replaceFiles(${JSON.stringify(fileReplacements)})],`, - }, - firstImportDeclaration - ? { - type: ChangeType.Insert, - index: firstImportDeclaration.getStart(), - text: `import replaceFiles from '@nx/vite/plugins/rollup-replace-files.plugin';`, - } - : { - type: ChangeType.Insert, - index: 0, - text: `import replaceFiles from '@nx/vite/plugins/rollup-replace-files.plugin';`, - }, - ]); - } -} diff --git a/packages/vite/src/migrations/update-17-2-0/lib/edit-build-config.ts b/packages/vite/src/migrations/update-17-2-0/lib/edit-build-config.ts deleted file mode 100644 index e9e9277ece..0000000000 --- a/packages/vite/src/migrations/update-17-2-0/lib/edit-build-config.ts +++ /dev/null @@ -1,198 +0,0 @@ -import { - ChangeType, - ProjectConfiguration, - Tree, - applyChangesToString, - joinPathFragments, - offsetFromRoot, - updateProjectConfiguration, -} from '@nx/devkit'; -import { tsquery } from '@phenomnomnominal/tsquery'; -import ts = require('typescript'); -import { getConfigNode, notFoundWarning } from '../update-vite-config'; - -export function updateBuildOutDirAndRoot( - options: Record, - configContents: string, - projectConfig: ProjectConfiguration, - targetName: string, - tree: Tree, - projectName: string, - configPath: string -): string { - const foundDefineConfig = tsquery.query( - configContents, - 'CallExpression:has(Identifier[name="defineConfig"])' - )?.[0]; - - if (!foundDefineConfig) { - notFoundWarning(configPath); - return; - } - - configContents = fixBuild( - options, - configContents, - projectConfig, - targetName, - tree, - projectName, - configPath - ); - - configContents = addRoot(configContents, configPath); - - return configContents; -} - -function fixBuild( - options: Record, - configContents: string, - projectConfig: ProjectConfiguration, - targetName: string, - tree: Tree, - projectName: string, - configPath: string -) { - const configNode = getConfigNode(configContents); - if (!configNode) { - notFoundWarning(configPath); - return configContents; - } - - let outputPath = ''; - - // In vite.config.ts, we want to keep the path relative to workspace root - if (options.outputPath) { - outputPath = joinPathFragments( - offsetFromRoot(projectConfig.root), - options.outputPath - ); - } else { - outputPath = joinPathFragments( - offsetFromRoot(projectConfig.root), - 'dist', - projectConfig.root - ); - } - - // In project.json, we want to keep the path starting from workspace root - projectConfig.targets[targetName].options.outputPath = options.outputPath - ? options.outputPath - : joinPathFragments('dist', projectConfig.root); - updateProjectConfiguration(tree, projectName, projectConfig); - - const buildObject = tsquery.query( - configNode, - `PropertyAssignment:has(Identifier[name="build"])` - )?.[0]; - - if (buildObject) { - const reportCompressedSizeExists = - tsquery.query( - buildObject, - `PropertyAssignment:has(Identifier[name="reportCompressedSize"])` - )?.length > 0; - - const commonjsOptionsExists = - tsquery.query( - buildObject, - `PropertyAssignment:has(Identifier[name="commonjsOptions"])` - )?.length > 0; - - const buildOutDir = tsquery.query( - buildObject, - `PropertyAssignment:has(Identifier[name="outDir"])` - )?.length; - - // Array to store changes - let changes = []; - - // Add outDir if not present - if (!buildOutDir) { - changes.push({ - type: ChangeType.Insert, - index: buildObject.getStart() + `build: {`.length + 1, - text: `outDir: '${outputPath}',`, - }); - } - - // Add reportCompressedSize if not present - if (!reportCompressedSizeExists) { - changes.push({ - type: ChangeType.Insert, - index: buildObject.getStart() + `build: {`.length + 1, - text: `reportCompressedSize: true,`, - }); - } - - // Add commonjsOptions if not present - if (!commonjsOptionsExists) { - changes.push({ - type: ChangeType.Insert, - index: buildObject.getStart() + `build: {`.length + 1, - text: `commonjsOptions: { transformMixedEsModules: true },`, - }); - } - - if (changes.length > 0) { - return applyChangesToString(configContents, changes); - } - } else { - return addBuildProperty(configContents, outputPath, configPath); - } - - return configContents; -} - -function addRoot(configFileContents: string, configPath: string): string { - const configNode = getConfigNode(configFileContents); - - if (!configNode) { - notFoundWarning(configPath); - return configFileContents; - } - - const rootOption = tsquery.query( - configNode, - `PropertyAssignment:has(Identifier[name="root"]) Identifier[name="__dirname"]` - )?.[0]; - - if (rootOption) { - return configFileContents; - } else { - return applyChangesToString(configFileContents, [ - { - type: ChangeType.Insert, - index: configNode.getStart() + 1, - text: `root: __dirname,`, - }, - ]); - } -} - -function addBuildProperty( - configFileContents: string, - outputPath: string, - configPath: string -): string { - const configNode = getConfigNode(configFileContents); - if (!configNode) { - notFoundWarning(configPath); - return configFileContents; - } - - return applyChangesToString(configFileContents, [ - { - type: ChangeType.Insert, - index: configNode.getStart() + 1, - text: `build: { - outDir: '${outputPath}', - reportCompressedSize: true, - commonjsOptions: { - transformMixedEsModules: true, - }, - },`, - }, - ]); -} diff --git a/packages/vite/src/migrations/update-17-2-0/lib/edit-test-config.ts b/packages/vite/src/migrations/update-17-2-0/lib/edit-test-config.ts deleted file mode 100644 index 312f6a05ea..0000000000 --- a/packages/vite/src/migrations/update-17-2-0/lib/edit-test-config.ts +++ /dev/null @@ -1,108 +0,0 @@ -import { - ChangeType, - ProjectConfiguration, - applyChangesToString, - joinPathFragments, - offsetFromRoot, -} from '@nx/devkit'; -import { tsquery } from '@phenomnomnominal/tsquery'; -import ts = require('typescript'); -import { getConfigNode, notFoundWarning } from '../update-vite-config'; - -export function updateTestConfig( - configContents: string, - projectConfig: ProjectConfiguration, - configPath: string -): string { - const configNode = getConfigNode(configContents); - if (!configNode) { - notFoundWarning(configPath); - return configContents; - } - - const testObject = tsquery.query( - configNode, - `PropertyAssignment:has(Identifier[name="test"])` - )?.[0]; - let testCoverageDir: ts.Node; - let testCoverage: ts.Node; - let provider: ts.Node; - let reporters: ts.Node; - - if (testObject) { - testCoverage = tsquery.query( - testObject, - `PropertyAssignment:has(Identifier[name="coverage"])` - )?.[0]; - reporters = tsquery.query( - testObject, - `PropertyAssignment:has(Identifier[name="reporters"])` - )?.[0]; - if (testCoverage) { - testCoverageDir = tsquery.query( - testCoverage, - `PropertyAssignment:has(Identifier[name="reportsDirectory"])` - )?.[0]; - provider = tsquery.query( - testCoverage, - `PropertyAssignment:has(Identifier[name="provider"])` - )?.[0]; - } - } - - let coverageDir = ''; - - if (projectConfig.targets?.test?.options?.reportsDirectory) { - coverageDir = projectConfig.targets?.test?.options?.reportsDirectory; - } else { - coverageDir = joinPathFragments( - offsetFromRoot(projectConfig.root), - 'coverage', - projectConfig.root - ); - } - - let changes = []; - - if (!reporters && testObject) { - changes.push({ - type: ChangeType.Insert, - index: testObject.getStart() + `test: {`.length + 1, - text: `reporters: ['default'],`, - }); - } - - if (testCoverageDir) { - // Do nothing - } else if (testCoverage) { - // has test.coverage, has no reportsDirectory - // so add reportsDirectory - changes.push({ - type: ChangeType.Insert, - index: testCoverage.getStart() + `coverage: {`.length + 1, - text: `reportsDirectory: '${coverageDir}',`, - }); - if (!provider) { - changes.push({ - type: ChangeType.Insert, - index: testCoverage.getStart() + `coverage: {`.length + 1, - text: `provider: 'v8' as const,`, - }); - } - } else if (testObject) { - changes.push({ - type: ChangeType.Insert, - index: testObject.getStart() + `test: {`.length + 1, - text: `coverage: { - reportsDirectory: '${coverageDir}', - provider: 'v8' as const, - },`, - }); - } - - if (changes.length > 0) { - return applyChangesToString(configContents, changes); - } else { - return configContents; - } -} diff --git a/packages/vite/src/migrations/update-17-2-0/lib/vite-config-with-additional-js.fixture.ts b/packages/vite/src/migrations/update-17-2-0/lib/vite-config-with-additional-js.fixture.ts deleted file mode 100644 index 3105b0b978..0000000000 --- a/packages/vite/src/migrations/update-17-2-0/lib/vite-config-with-additional-js.fixture.ts +++ /dev/null @@ -1,64 +0,0 @@ -export const viteConfigFixture = `/// -import react from '@vitejs/plugin-react'; -import dns from 'dns'; -import { PluginOption, defineConfig } from 'vite'; -import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; - -dns.setDefaultResultOrder('verbatim'); -const BASE_HREF = '/app'; - -/** - * Adds \` to the head of the index.html - * The reason why the \`base\` configuration property doesn't work is because it makes - * all assets served under \`/app\` of \`/\` and this impacts the download zip service worker - * We only want to the service worker to listen to events related to downloads, but not capture any other events - * and the only way to do this is make sure all assets are served from the root, but we still want our app path to be \`/app\` - * - * This mimics the same behavior we had with webpack before migrating to vite - */ -const baseHrefPlugin: () => PluginOption = () => { - return { - name: 'html-transform', - transformIndexHtml(html) { - return html.replace('', \`\\n \`); - }, - }; -}; - -export default defineConfig({ - cacheDir: '../../node_modules/.vite/jetstream', - envPrefix: 'NX', - - server: { - port: 4200, - host: 'localhost', - }, - - build: { - // Put all assets at the root of the app instead of under /assets - assetsDir: './', - sourcemap: true, - rollupOptions: { - output: { - sourcemap: true, - }, - }, - }, - - plugins: [ - react({ - jsxImportSource: '@emotion/react', - babel: { - plugins: ['@emotion/babel-plugin'], - }, - }), - nxViteTsPaths(), - baseHrefPlugin(), - ], - - worker: { - plugins: [ - nxViteTsPaths(), - ], - }, -});`; diff --git a/packages/vite/src/migrations/update-17-2-0/update-vite-config.spec.ts b/packages/vite/src/migrations/update-17-2-0/update-vite-config.spec.ts deleted file mode 100644 index 9cf7725700..0000000000 --- a/packages/vite/src/migrations/update-17-2-0/update-vite-config.spec.ts +++ /dev/null @@ -1,404 +0,0 @@ -import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing'; -import { - Tree, - addProjectConfiguration, - logger, - readProjectConfiguration, -} from '@nx/devkit'; - -import updateBuildDir from './update-vite-config'; -import { viteConfigFixture } from './lib/vite-config-with-additional-js.fixture'; - -describe('change-vite-ts-paths-plugin migration', () => { - let tree: Tree; - - beforeEach(() => { - tree = createTreeWithEmptyWorkspace({ layout: 'apps-libs' }); - }); - - it('should add build outDir to vite.config.ts', async () => { - addProject1(tree, 'demo'); - await updateBuildDir(tree); - expect(tree.read('apps/demo/vite.config.ts', 'utf-8')).toMatchSnapshot(); - expect( - readProjectConfiguration(tree, 'demo').targets.build.options.outputPath - ).toBe('dist/apps/demo'); - }); - - it('should add build outDir to vite.config.ts if build exists', async () => { - addProject2(tree, 'demo2'); - await updateBuildDir(tree); - expect(tree.read('demo2/vite.config.ts', 'utf-8')).toMatchSnapshot(); - expect( - readProjectConfiguration(tree, 'demo2').targets.build.options.outputPath - ).toBe('dist/demo2'); - }); - - it('should add file replacements to vite.config.ts', async () => { - addProject3(tree, 'demo3'); - await updateBuildDir(tree); - expect(tree.read('demo3/vite.config.ts', 'utf-8')).toMatchSnapshot(); - expect( - readProjectConfiguration(tree, 'demo3').targets.build.options.outputPath - ).toBe('dist/demo3'); - }); - - it('should convert the file correctly', async () => { - addProject4(tree, 'demo4'); - await updateBuildDir(tree); - expect(tree.read('demo4/vite.config.ts', 'utf-8')).toMatchSnapshot(); - expect( - readProjectConfiguration(tree, 'demo4').targets.build.options.outputPath - ).toBe('dist/demo4'); - }); - - it('should convert the file correctly', async () => { - addProject4(tree, 'demo4'); - await updateBuildDir(tree); - expect(tree.read('demo4/vite.config.ts', 'utf-8')).toMatchSnapshot(); - expect( - readProjectConfiguration(tree, 'demo4').targets.build.options.outputPath - ).toBe('dist/demo4'); - }); - - it('should show warning to the user if could not recognize config', async () => { - jest.spyOn(logger, 'warn'); - addProject5(tree, 'demo5'); - await updateBuildDir(tree); - expect(tree.read('demo5/vite.config.ts', 'utf-8')).toMatchSnapshot(); - expect(logger.warn).toHaveBeenCalledWith( - expect.stringContaining( - `Could not migrate your demo5/vite.config.ts file.` - ) - ); - }); - - it('should correctly migrate the vite config within the file and not other object literals', async () => { - // ARRANGE - addProject1(tree, 'demo'); - tree.write(`apps/demo/vite.config.ts`, viteConfigFixture); - // ACT - await updateBuildDir(tree); - // ASSERT - expect(tree.read('apps/demo/vite.config.ts', 'utf-8')).toMatchSnapshot(); - }); -}); - -function addProject1(tree: Tree, name: string) { - addProjectConfiguration(tree, name, { - root: `apps/${name}`, - sourceRoot: `apps/${name}/src`, - targets: { - build: { - executor: '@nx/vite:build', - outputs: ['{options.outputPath}'], - defaultConfiguration: 'production', - options: { - outputPath: `dist/apps/${name}`, - buildLibsFromSource: false, - }, - configurations: { - development: { - mode: 'development', - }, - production: { - mode: 'production', - }, - }, - }, - }, - }); - - tree.write( - `apps/${name}/vite.config.ts`, - ` -/// -import { defineConfig } from 'vite'; -import react from '@vitejs/plugin-react'; -import viteTsConfigPaths from 'vite-tsconfig-paths'; - -export default defineConfig({ - cacheDir: '../../node_modules/.vite/${name}', - server: { - port: 4200, - host: 'localhost', - }, - - preview: { - port: 4300, - host: 'localhost', - }, - - plugins: [ - react(), - viteTsConfigPaths({ - root: '../../' - }) - ], - - // Uncomment this if you are using workers. - // worker: { - // plugins: [ - // viteTsConfigPaths({ - // root: '../../', - // }), - // ], - // }, - - test: { - globals: true, - cache: { - dir: '../../node_modules/.vitest', - }, - environment: 'jsdom', - include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], - }, -}); - -` - ); -} - -function addProject2(tree: Tree, name: string) { - addProjectConfiguration(tree, name, { - root: `${name}`, - sourceRoot: `${name}/src`, - targets: { - build: { - executor: '@nx/vite:build', - outputs: ['{options.outputPath}'], - defaultConfiguration: 'production', - options: { - outputPath: `dist/${name}`, - }, - configurations: { - development: { - mode: 'development', - }, - production: { - mode: 'production', - }, - }, - }, - }, - }); - - tree.write( - `${name}/vite.config.ts`, - ` -/// -import { defineConfig } from 'vite'; -import react from '@vitejs/plugin-react'; -import viteTsConfigPaths from 'vite-tsconfig-paths'; - -export default defineConfig({ - cacheDir: '../../node_modules/.vite/${name}', - server: { - port: 4200, - host: 'localhost', - }, - - preview: { - port: 4300, - host: 'localhost', - }, - - plugins: [ - react(), - viteTsConfigPaths({ - root: '../../' - }) - ], - - build: { - someProperty: 'someValue', - }, - - test: { - globals: true, - cache: { - dir: '../../node_modules/.vitest', - }, - environment: 'jsdom', - include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], - }, -}); - -` - ); -} - -function addProject3(tree: Tree, name: string) { - addProjectConfiguration(tree, name, { - root: `${name}`, - sourceRoot: `${name}/src`, - targets: { - build: { - executor: '@nx/vite:build', - outputs: ['{options.outputPath}'], - defaultConfiguration: 'production', - options: { - outputPath: `dist/${name}`, - }, - configurations: { - development: { - mode: 'development', - }, - production: { - mode: 'production', - fileReplacements: [ - { - replace: `${name}/src/environments/environment.ts`, - with: `${name}/src/environments/environment.prod.ts`, - }, - ], - }, - }, - }, - }, - }); - - tree.write( - `${name}/vite.config.ts`, - ` -/// -import { defineConfig } from 'vite'; -import react from '@vitejs/plugin-react'; -import viteTsConfigPaths from 'vite-tsconfig-paths'; - -export default defineConfig({ - cacheDir: '../../node_modules/.vite/${name}', - server: { - port: 4200, - host: 'localhost', - }, - - preview: { - port: 4300, - host: 'localhost', - }, - - plugins: [ - react(), - viteTsConfigPaths({ - root: '../../' - }) - ], - - build: { - someProperty: 'someValue', - }, - - test: { - globals: true, - cache: { - dir: '../../node_modules/.vitest', - }, - environment: 'jsdom', - include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], - }, -}); - -` - ); -} - -function addProject4(tree: Tree, name: string) { - addProjectConfiguration(tree, name, { - root: `${name}`, - sourceRoot: `${name}/src`, - targets: { - build: { - executor: '@nx/vite:build', - outputs: ['{options.outputPath}'], - defaultConfiguration: 'production', - options: { - outputPath: `dist/${name}`, - buildLibsFromSource: false, - }, - configurations: { - development: { - mode: 'development', - }, - production: { - mode: 'production', - }, - }, - }, - }, - }); - - tree.write( - `${name}/vite.config.ts`, - ` - /// - import { defineConfig } from 'vite'; - import react from '@vitejs/plugin-react'; - import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin'; - - export default defineConfig(({ mode }) => { - return { - cacheDir: '../../node_modules/.vite/demo4', - server: { - port: 4200, - host: 'localhost', - }, - - preview: { - port: 4300, - host: 'localhost', - }, - - plugins: [react(), nxViteTsPaths()], - - // Uncomment this if you are using workers. - // worker: { - // plugins: [ nxViteTsPaths() ], - // }, - - test: { - globals: true, - cache: { - dir: '../../node_modules/.vitest', - }, - environment: 'jsdom', - include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], - }, - }; - }); -` - ); -} - -function addProject5(tree: Tree, name: string) { - addProjectConfiguration(tree, name, { - root: `${name}`, - sourceRoot: `${name}/src`, - targets: { - build: { - executor: '@nx/vite:build', - outputs: ['{options.outputPath}'], - defaultConfiguration: 'production', - options: { - outputPath: `dist/${name}`, - buildLibsFromSource: false, - }, - configurations: { - development: { - mode: 'development', - }, - production: { - mode: 'production', - }, - }, - }, - }, - }); - - tree.write( - `${name}/vite.config.ts`, - ` - // some invalid config -` - ); -} diff --git a/packages/vite/src/migrations/update-17-2-0/update-vite-config.ts b/packages/vite/src/migrations/update-17-2-0/update-vite-config.ts deleted file mode 100644 index e2ba23607d..0000000000 --- a/packages/vite/src/migrations/update-17-2-0/update-vite-config.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { - Tree, - formatFiles, - getProjects, - joinPathFragments, - logger, -} from '@nx/devkit'; -import { forEachExecutorOptions } from '@nx/devkit/src/generators/executor-options-utils'; -import { ViteBuildExecutorOptions } from '../../executors/build/schema'; -import { updateBuildOutDirAndRoot } from './lib/edit-build-config'; -import { updateTestConfig } from './lib/edit-test-config'; -import { addFileReplacements } from './lib/add-file-replacements'; -import { tsquery } from '@phenomnomnominal/tsquery'; -import ts = require('typescript'); -import { findViteConfig } from '../../utils/find-vite-config'; - -export default async function updateBuildDir(tree: Tree) { - const projects = getProjects(tree); - forEachExecutorOptions( - tree, - '@nx/vite:build', - (options, projectName, targetName) => { - const projectConfig = projects.get(projectName); - const config = - options.configFile || findViteConfig(tree, projectConfig.root); - if (!config || !tree.exists(config)) { - return; - } - let configContents = tree.read(config, 'utf-8'); - - configContents = updateBuildOutDirAndRoot( - options, - configContents, - projectConfig, - targetName, - tree, - projectName, - config - ); - - configContents = updateTestConfig(configContents, projectConfig, config); - - if (options['fileReplacements']?.length > 0) { - configContents = addFileReplacements( - configContents, - options['fileReplacements'], - config - ); - } - - tree.write(config, configContents); - } - ); - - await formatFiles(tree); -} - -export function getConfigNode(configFileContents: string): ts.Node | undefined { - if (!configFileContents) { - return; - } - let configNode = tsquery.query( - configFileContents, - `CallExpression:has(Identifier[name=defineConfig]) > ObjectLiteralExpression` - )?.[0]; - - if (!configNode) { - const arrowFunctionReturnStatement = tsquery.query( - configFileContents, - `ArrowFunction Block ReturnStatement ObjectLiteralExpression` - )?.[0]; - - if (arrowFunctionReturnStatement) { - configNode = arrowFunctionReturnStatement; - } - } - - return configNode; -} - -export function notFoundWarning(configPath: string) { - logger.warn(` - Could not migrate your ${configPath} file. - Please add the build.outDir and root options in your ${configPath} file. - You can find more information on how to configure vite for Nx here: - - https://nx.dev/recipes/vite/configure-vite - `); -} diff --git a/packages/vite/src/migrations/update-17-3-0/__snapshots__/vitest-coverage-and-reporters.spec.ts.snap b/packages/vite/src/migrations/update-17-3-0/__snapshots__/vitest-coverage-and-reporters.spec.ts.snap deleted file mode 100644 index ddb37ceb52..0000000000 --- a/packages/vite/src/migrations/update-17-3-0/__snapshots__/vitest-coverage-and-reporters.spec.ts.snap +++ /dev/null @@ -1,166 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`vitest-coverage-threshold migration should move thresholds in threshold object - has 1 1`] = ` -"/// -import { defineConfig } from 'vite'; -import react from '@vitejs/plugin-react'; -import viteTsConfigPaths from 'vite-tsconfig-paths'; - -export default defineConfig({ - cacheDir: '../../node_modules/.vite/demo6', - test: { - reporters: ['default'], - globals: true, - cache: { - dir: '../node_modules/.vitest', - }, - environment: 'jsdom', - include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], - coverage: { - thresholds: { - branches: 75, - }, - reportsDirectory: '../coverage/demo6', - provider: 'v8', - }, - }, -}); -" -`; - -exports[`vitest-coverage-threshold migration should move thresholds in threshold object - has 2 1`] = ` -"/// -import { defineConfig } from 'vite'; -import react from '@vitejs/plugin-react'; -import viteTsConfigPaths from 'vite-tsconfig-paths'; - -export default defineConfig({ - cacheDir: '../../node_modules/.vite/demo3', - test: { - reporters: ['default'], - globals: true, - cache: { - dir: '../node_modules/.vitest', - }, - environment: 'jsdom', - include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], - coverage: { - thresholds: { - lines: 100, - statements: 100, - }, - reportsDirectory: '../coverage/demo3', - provider: 'v8', - }, - }, -}); -" -`; - -exports[`vitest-coverage-threshold migration should move thresholds in threshold object - has 3 1`] = ` -"/// -import { defineConfig } from 'vite'; -import react from '@vitejs/plugin-react'; -import viteTsConfigPaths from 'vite-tsconfig-paths'; - -export default defineConfig({ - cacheDir: '../../node_modules/.vite/demo4', - test: { - globals: true, - cache: { - dir: '../node_modules/.vitest', - }, - environment: 'jsdom', - include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], - reporters: ['default'], - coverage: { - thresholds: { - lines: 100, - statements: 100, - - branches: 75, - }, - reportsDirectory: '../coverage/demo4', - provider: 'v8', - }, - }, -}); -" -`; - -exports[`vitest-coverage-threshold migration should move thresholds in threshold object - has all 1`] = ` -"/// -import { defineConfig } from 'vite'; -import react from '@vitejs/plugin-react'; -import viteTsConfigPaths from 'vite-tsconfig-paths'; - -export default defineConfig({ - cacheDir: '../../node_modules/.vite/demo5', - test: { - reporters: ['default'], - globals: true, - cache: { - dir: '../node_modules/.vitest', - }, - environment: 'jsdom', - include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], - coverage: { - thresholds: { - lines: 100, - statements: 100, - functions: 60, - branches: 75, - }, - reportsDirectory: '../coverage/demo5', - provider: 'v8', - }, - }, -}); -" -`; - -exports[`vitest-coverage-threshold migration should not do anything if coverage but no thresholds 1`] = ` -"/// -import { defineConfig } from 'vite'; -import react from '@vitejs/plugin-react'; -import viteTsConfigPaths from 'vite-tsconfig-paths'; - -export default defineConfig({ - cacheDir: '../../node_modules/.vite/demo2', - test: { - reporters: ['default'], - globals: true, - cache: { - dir: '../node_modules/.vitest', - }, - environment: 'jsdom', - include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], - coverage: { - reportsDirectory: '../coverage/demo2', - provider: 'v8', - }, - }, -}); -" -`; - -exports[`vitest-coverage-threshold migration should not do anything if no coverage 1`] = ` -"/// -import { defineConfig } from 'vite'; -import react from '@vitejs/plugin-react'; -import viteTsConfigPaths from 'vite-tsconfig-paths'; - -export default defineConfig({ - cacheDir: '../../node_modules/.vite/demo', - test: { - reporters: ['default'], - globals: true, - cache: { - dir: '../../node_modules/.vitest', - }, - environment: 'jsdom', - include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], - }, -}); -" -`; diff --git a/packages/vite/src/migrations/update-17-3-0/lib/fix-coverage-and-reporters.ts b/packages/vite/src/migrations/update-17-3-0/lib/fix-coverage-and-reporters.ts deleted file mode 100644 index 52ddbb9c4a..0000000000 --- a/packages/vite/src/migrations/update-17-3-0/lib/fix-coverage-and-reporters.ts +++ /dev/null @@ -1,151 +0,0 @@ -import { ChangeType, applyChangesToString } from '@nx/devkit'; -import { tsquery } from '@phenomnomnominal/tsquery'; -import ts = require('typescript'); - -export function fixCoverageAndRerporters( - configContents: string -): string | undefined { - const configNode = getConfigNode(configContents); - if (!configNode) { - return; - } - - const testHasCoverage = tsquery.query( - configNode, - `PropertyAssignment:has(Identifier[name="test"]):has(PropertyAssignment:has(Identifier[name="coverage"]))` - )?.[0]; - let changes = []; - - if (testHasCoverage) { - const testObjectLiteralExpressionNode = tsquery.query( - testHasCoverage, - `ObjectLiteralExpression:has(Identifier[name="coverage"])` - )?.[0]; - const coverageNode = findCoverageNode(testObjectLiteralExpressionNode); - - if (!coverageNode) { - return; - } - - const linesNode = tsquery.query( - coverageNode, - `PropertyAssignment:has(Identifier[name="lines"])` - )?.[0]; - - const statementsNode = tsquery.query( - coverageNode, - `PropertyAssignment:has(Identifier[name="statements"])` - )?.[0]; - - const functionsNode = tsquery.query( - coverageNode, - `PropertyAssignment:has(Identifier[name="functions"])` - )?.[0]; - - const branchesNode = tsquery.query( - coverageNode, - `PropertyAssignment:has(Identifier[name="branches"])` - )?.[0]; - - if (linesNode) { - changes.push({ - type: ChangeType.Delete, - start: linesNode.getStart(), - length: linesNode.getWidth() + 1, - }); - } - if (statementsNode) { - changes.push({ - type: ChangeType.Delete, - start: statementsNode.getStart(), - length: statementsNode.getWidth() + 1, - }); - } - - if (functionsNode) { - changes.push({ - type: ChangeType.Delete, - start: functionsNode.getStart(), - length: functionsNode.getWidth() + 1, - }); - } - - if (branchesNode) { - changes.push({ - type: ChangeType.Delete, - start: branchesNode.getStart(), - length: branchesNode.getWidth() + 1, - }); - } - - if (branchesNode || functionsNode || statementsNode || linesNode) { - changes.push({ - type: ChangeType.Insert, - index: coverageNode.getStart() + 1, - text: `thresholds: { - ${linesNode ? linesNode.getText() + ',' : ''} - ${statementsNode ? statementsNode.getText() + ',' : ''} - ${functionsNode ? functionsNode.getText() + ',' : ''} - ${branchesNode ? branchesNode.getText() + ',' : ''} - },`, - }); - } - } - - const testHasReporters = tsquery.query( - configNode, - `PropertyAssignment:has(Identifier[name="test"]):has(PropertyAssignment:has(Identifier[name="reporters"]))` - )?.[0]; - - if (!testHasReporters) { - const testObject = tsquery.query( - configNode, - `PropertyAssignment:has(Identifier[name="test"])` - )?.[0]; - - if (testObject) { - changes.push({ - type: ChangeType.Insert, - index: testObject.getStart() + `test: {`.length + 1, - text: `reporters: ['default'],`, - }); - } - } - - if (changes.length > 0) { - return applyChangesToString(configContents, changes); - } else { - return; - } -} - -export function getConfigNode(configFileContents: string): ts.Node | undefined { - if (!configFileContents) { - return; - } - let configNode = tsquery.query( - configFileContents, - `ObjectLiteralExpression` - )?.[0]; - - const arrowFunctionReturnStatement = tsquery.query( - configFileContents, - `ArrowFunction Block ReturnStatement ObjectLiteralExpression` - )?.[0]; - - if (arrowFunctionReturnStatement) { - configNode = arrowFunctionReturnStatement; - } - - return configNode; -} - -function findCoverageNode(testNode: ts.Node) { - let coverageNode: ts.Node | undefined; - testNode.forEachChild((child) => { - if (ts.isPropertyAssignment(child) && child.name.getText() === 'coverage') { - coverageNode = child.initializer; - } - }); - return coverageNode; -} diff --git a/packages/vite/src/migrations/update-17-3-0/vitest-coverage-and-reporters.spec.ts b/packages/vite/src/migrations/update-17-3-0/vitest-coverage-and-reporters.spec.ts deleted file mode 100644 index 4f8686797d..0000000000 --- a/packages/vite/src/migrations/update-17-3-0/vitest-coverage-and-reporters.spec.ts +++ /dev/null @@ -1,287 +0,0 @@ -import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing'; -import { Tree, addProjectConfiguration } from '@nx/devkit'; -import fixCoverageThreshold from './vitest-coverage-and-reporters'; - -describe('vitest-coverage-threshold migration', () => { - let tree: Tree; - - beforeEach(() => { - tree = createTreeWithEmptyWorkspace({ layout: 'apps-libs' }); - }); - - it('should not do anything if no coverage', async () => { - addProject1(tree, 'demo'); - await fixCoverageThreshold(tree); - expect(tree.read('apps/demo/vite.config.ts', 'utf-8')).toMatchSnapshot(); - }); - - it('should not do anything if coverage but no thresholds', async () => { - addProject2(tree, 'demo2'); - await fixCoverageThreshold(tree); - expect(tree.read('demo2/vite.config.ts', 'utf-8')).toMatchSnapshot(); - }); - - it('should move thresholds in threshold object - has 2', async () => { - addProject3(tree, 'demo3'); - await fixCoverageThreshold(tree); - expect(tree.read('demo3/vite.config.ts', 'utf-8')).toMatchSnapshot(); - }); - - it('should move thresholds in threshold object - has 3', async () => { - addProject4(tree, 'demo4'); - await fixCoverageThreshold(tree); - expect(tree.read('demo4/vite.config.ts', 'utf-8')).toMatchSnapshot(); - }); - it('should move thresholds in threshold object - has all', async () => { - addProject5(tree, 'demo5'); - await fixCoverageThreshold(tree); - expect(tree.read('demo5/vite.config.ts', 'utf-8')).toMatchSnapshot(); - }); - - it('should move thresholds in threshold object - has 1', async () => { - addProject6(tree, 'demo6'); - await fixCoverageThreshold(tree); - expect(tree.read('demo6/vite.config.ts', 'utf-8')).toMatchSnapshot(); - }); -}); - -function addProject1(tree: Tree, name: string) { - addProjectConfiguration(tree, name, { - root: `apps/${name}`, - sourceRoot: `apps/${name}/src`, - targets: { - test: { - executor: '@nx/vite:test', - options: {}, - }, - }, - }); - - tree.write( - `apps/${name}/vite.config.ts`, - ` -/// -import { defineConfig } from 'vite'; -import react from '@vitejs/plugin-react'; -import viteTsConfigPaths from 'vite-tsconfig-paths'; - -export default defineConfig({ - cacheDir: '../../node_modules/.vite/${name}', - test: { - globals: true, - cache: { - dir: '../../node_modules/.vitest', - }, - environment: 'jsdom', - include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], - }, -}); - -` - ); -} - -function addProject2(tree: Tree, name: string) { - addProjectConfiguration(tree, name, { - root: `${name}`, - sourceRoot: `${name}/src`, - targets: { - test: { - executor: '@nx/vite:test', - options: {}, - }, - }, - }); - - tree.write( - `${name}/vite.config.ts`, - ` -/// -import { defineConfig } from 'vite'; -import react from '@vitejs/plugin-react'; -import viteTsConfigPaths from 'vite-tsconfig-paths'; - -export default defineConfig({ - cacheDir: '../../node_modules/.vite/${name}', - test: { - globals: true, - cache: { - dir: '../node_modules/.vitest', - }, - environment: 'jsdom', - include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], - coverage: { - reportsDirectory: '../coverage/${name}', - provider: 'v8', - }, - }, -}); -` - ); -} - -function addProject3(tree: Tree, name: string) { - addProjectConfiguration(tree, name, { - root: `${name}`, - sourceRoot: `${name}/src`, - targets: { - test: { - executor: '@nx/vite:test', - options: {}, - }, - }, - }); - - tree.write( - `${name}/vite.config.ts`, - ` -/// -import { defineConfig } from 'vite'; -import react from '@vitejs/plugin-react'; -import viteTsConfigPaths from 'vite-tsconfig-paths'; - -export default defineConfig({ - cacheDir: '../../node_modules/.vite/${name}', - test: { - globals: true, - cache: { - dir: '../node_modules/.vitest', - }, - environment: 'jsdom', - include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], - coverage: { - reportsDirectory: '../coverage/${name}', - provider: 'v8', - lines: 100, - statements: 100, - }, - }, -}); -` - ); -} - -function addProject4(tree: Tree, name: string) { - addProjectConfiguration(tree, name, { - root: `${name}`, - sourceRoot: `${name}/src`, - targets: { - test: { - executor: '@nx/vite:test', - options: {}, - }, - }, - }); - - tree.write( - `${name}/vite.config.ts`, - ` -/// -import { defineConfig } from 'vite'; -import react from '@vitejs/plugin-react'; -import viteTsConfigPaths from 'vite-tsconfig-paths'; - -export default defineConfig({ - cacheDir: '../../node_modules/.vite/${name}', - test: { - globals: true, - cache: { - dir: '../node_modules/.vitest', - }, - environment: 'jsdom', - include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], - reporters: ['default'], - coverage: { - reportsDirectory: '../coverage/${name}', - provider: 'v8', - lines: 100, - statements: 100, - branches: 75, - }, - }, -}); -` - ); -} - -function addProject5(tree: Tree, name: string) { - addProjectConfiguration(tree, name, { - root: `${name}`, - sourceRoot: `${name}/src`, - targets: { - test: { - executor: '@nx/vite:test', - options: {}, - }, - }, - }); - - tree.write( - `${name}/vite.config.ts`, - ` -/// -import { defineConfig } from 'vite'; -import react from '@vitejs/plugin-react'; -import viteTsConfigPaths from 'vite-tsconfig-paths'; - -export default defineConfig({ - cacheDir: '../../node_modules/.vite/${name}', - test: { - globals: true, - cache: { - dir: '../node_modules/.vitest', - }, - environment: 'jsdom', - include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], - coverage: { - reportsDirectory: '../coverage/${name}', - provider: 'v8', - lines: 100, - statements: 100, - branches: 75, - functions: 60, - }, - }, -}); -` - ); -} -function addProject6(tree: Tree, name: string) { - addProjectConfiguration(tree, name, { - root: `${name}`, - sourceRoot: `${name}/src`, - targets: { - test: { - executor: '@nx/vite:test', - options: {}, - }, - }, - }); - - tree.write( - `${name}/vite.config.ts`, - ` -/// -import { defineConfig } from 'vite'; -import react from '@vitejs/plugin-react'; -import viteTsConfigPaths from 'vite-tsconfig-paths'; - -export default defineConfig({ - cacheDir: '../../node_modules/.vite/${name}', - test: { - globals: true, - cache: { - dir: '../node_modules/.vitest', - }, - environment: 'jsdom', - include: ['src/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], - coverage: { - reportsDirectory: '../coverage/${name}', - provider: 'v8', - branches: 75, - }, - }, -}); -` - ); -} diff --git a/packages/vite/src/migrations/update-17-3-0/vitest-coverage-and-reporters.ts b/packages/vite/src/migrations/update-17-3-0/vitest-coverage-and-reporters.ts deleted file mode 100644 index 2d3b272d74..0000000000 --- a/packages/vite/src/migrations/update-17-3-0/vitest-coverage-and-reporters.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { - ProjectConfiguration, - Tree, - formatFiles, - getProjects, - joinPathFragments, -} from '@nx/devkit'; -import { forEachExecutorOptions } from '@nx/devkit/src/generators/executor-options-utils'; -import { fixCoverageAndRerporters } from './lib/fix-coverage-and-reporters'; - -export default async function fixCoverageThreshold(tree: Tree) { - const projects = getProjects(tree); - forEachExecutorOptions(tree, '@nx/vite:test', (_options, projectName) => { - const projectConfig: ProjectConfiguration = projects.get( - projectName - ) as ProjectConfiguration; - const configPath = findViteConfig(tree, projectConfig.root); - if (!configPath || !tree.exists(configPath)) { - return; - } - const configContents = tree.read(configPath, 'utf-8') as string; - const updatedConfigContents = fixCoverageAndRerporters(configContents); - if (updatedConfigContents) { - tree.write(configPath, updatedConfigContents); - } - }); - - await formatFiles(tree); -} - -function findViteConfig(tree: Tree, searchRoot: string) { - const allowsExt = ['js', 'mjs', 'ts', 'cjs', 'mts', 'cts']; - - for (const ext of allowsExt) { - if (tree.exists(joinPathFragments(searchRoot, `vite.config.${ext}`))) { - return joinPathFragments(searchRoot, `vite.config.${ext}`); - } else if ( - tree.exists(joinPathFragments(searchRoot, `vitest.config.${ext}`)) - ) { - return joinPathFragments(searchRoot, `vitest.config.${ext}`); - } - } -} diff --git a/packages/vue/migrations.json b/packages/vue/migrations.json index a61b45f75a..cb29fa5302 100644 --- a/packages/vue/migrations.json +++ b/packages/vue/migrations.json @@ -30,15 +30,6 @@ "alwaysAddToPackageJson": false } } - }, - "17.2.0": { - "version": "17.2.0-beta.2", - "packages": { - "@vitejs/plugin-vue": { - "version": "^4.5.0", - "alwaysAddToPackageJson": false - } - } } } } diff --git a/packages/web/migrations.json b/packages/web/migrations.json index 2736252dcb..f9d34cef28 100644 --- a/packages/web/migrations.json +++ b/packages/web/migrations.json @@ -1,14 +1,4 @@ { "generators": {}, - "packageJsonUpdates": { - "17.3.0": { - "version": "17.3.0-beta.3", - "packages": { - "@types/node": { - "version": "18.16.9", - "alwaysAddToPackageJson": false - } - } - } - } + "packageJsonUpdates": {} } diff --git a/packages/webpack/migrations.json b/packages/webpack/migrations.json index 8f08e9de70..e3bbf30c05 100644 --- a/packages/webpack/migrations.json +++ b/packages/webpack/migrations.json @@ -1,11 +1,5 @@ { "generators": { - "update-17-2-1-webpack-config-setup": { - "cli": "nx", - "version": "17.2.1-beta.0", - "description": "Add webpack.config.js file when webpackConfig is not defined", - "implementation": "./src/migrations/update-17-2-1/webpack-config-setup" - }, "update-19-6-3-proxy-config": { "cli": "nx", "version": "19.6.3-beta.0", diff --git a/packages/webpack/src/migrations/update-17-2-1/webpack-config-setup.spec.ts b/packages/webpack/src/migrations/update-17-2-1/webpack-config-setup.spec.ts deleted file mode 100644 index 4058555204..0000000000 --- a/packages/webpack/src/migrations/update-17-2-1/webpack-config-setup.spec.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing'; -import { addProjectConfiguration, Tree } from '@nx/devkit'; -import webpackConfigSetup from './webpack-config-setup'; - -describe('17.2.1 migration (setup webpack.config file)', () => { - let tree: Tree; - - beforeEach(async () => { - tree = createTreeWithEmptyWorkspace({ layout: 'apps-libs' }); - }); - - it.each` - executor - ${'@nx/webpack:webpack'} - ${'@nrwl/webpack:webpack'} - `( - 'should create webpack.config.js for projects that did not set webpackConfig', - async ({ executor }) => { - addProjectConfiguration(tree, 'myapp', { - root: 'apps/myapp', - targets: { - build: { - executor, - options: {}, - }, - }, - }); - - await webpackConfigSetup(tree); - - expect(tree.read('apps/myapp/webpack.config.js', 'utf-8')) - .toEqual(`const { composePlugins, withNx } = require('@nx/webpack'); - -// Nx plugins for webpack. -module.exports = composePlugins(withNx(), (config) => { - // Note: This was added by an Nx migration. Webpack builds are required to have a corresponding Webpack config file. - // See: https://nx.dev/recipes/webpack/webpack-config-setup - return config; -}); -`); - } - ); - - it('should not create webpack.config.js when webpackConfig is already set', async () => { - tree.write( - `apps/myapp/webpack.config.js`, - ` - module.exports = { /* CUSTOM */ }; - ` - ); - addProjectConfiguration(tree, 'myapp', { - root: 'apps/myapp', - targets: { - build: { - executor: '@nrwl/webpack:webpack', - options: { - webpackConfig: 'apps/myapp/webpack.config.js', - }, - }, - }, - }); - - await webpackConfigSetup(tree); - - expect(tree.read('apps/myapp/webpack.config.js', 'utf-8')).toContain( - '/* CUSTOM */' - ); - }); - - it('should not create webpack.config.js when isolatedConfig is set to false', async () => { - addProjectConfiguration(tree, 'myapp', { - root: 'apps/myapp', - targets: { - build: { - executor: '@nrwl/webpack:webpack', - options: { - // Technically this is not possible, since isolatedConfig without webpackConfig does not work - // Handling this edge-case anyway - isolatedConfig: false, - }, - }, - }, - }); - - await webpackConfigSetup(tree); - - expect(tree.exists('apps/myapp/webpack.config.js')).toBeFalsy(); - }); -}); diff --git a/packages/webpack/src/migrations/update-17-2-1/webpack-config-setup.ts b/packages/webpack/src/migrations/update-17-2-1/webpack-config-setup.ts deleted file mode 100644 index f77f59ec37..0000000000 --- a/packages/webpack/src/migrations/update-17-2-1/webpack-config-setup.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { - formatFiles, - readProjectConfiguration, - Tree, - updateProjectConfiguration, -} from '@nx/devkit'; -import { forEachExecutorOptions } from '@nx/devkit/src/generators/executor-options-utils'; -import { WebpackExecutorOptions } from '../../executors/webpack/schema'; - -export default async function (tree: Tree) { - const update = ( - options: WebpackExecutorOptions, - projectName: string, - targetName: string, - configurationName: string - ) => { - // Only handle webpack config for default configuration - if (configurationName) return; - - const projectConfiguration = readProjectConfiguration(tree, projectName); - - if (!options.webpackConfig && options.isolatedConfig !== false) { - options.webpackConfig = `${projectConfiguration.root}/webpack.config.js`; - tree.write( - options.webpackConfig, - ` - const { composePlugins, withNx } = require('@nx/webpack'); - - // Nx plugins for webpack. - module.exports = composePlugins(withNx(), (config) => { - // Note: This was added by an Nx migration. Webpack builds are required to have a corresponding Webpack config file. - // See: https://nx.dev/recipes/webpack/webpack-config-setup - return config; - }); - ` - ); - - projectConfiguration.targets[targetName].options = options; - updateProjectConfiguration(tree, projectName, projectConfiguration); - } - }; - - forEachExecutorOptions( - tree, - '@nx/webpack:webpack', - update - ); - forEachExecutorOptions( - tree, - '@nrwl/webpack:webpack', - update - ); - - await formatFiles(tree); -} diff --git a/packages/workspace/migrations.json b/packages/workspace/migrations.json index 2ec26e5d8b..f05a62cc7c 100644 --- a/packages/workspace/migrations.json +++ b/packages/workspace/migrations.json @@ -1,43 +1,6 @@ { "generators": {}, "packageJsonUpdates": { - "17.1.0": { - "version": "17.1.0-beta.4", - "x-prompt": "Do you want to update to TypeScript v5.2?", - "requires": { - "typescript": ">=5.1.0 <5.2.0" - }, - "packages": { - "typescript": { - "version": "~5.2.2" - } - } - }, - "17.3.0": { - "version": "17.3.0-beta.10", - "x-prompt": "Do you want to update to TypeScript v5.3?", - "requires": { - "typescript": ">=5.2.0 <5.3.0" - }, - "packages": { - "typescript": { - "version": "~5.3.2" - } - } - }, - "18.2.0": { - "version": "18.2.0-beta.0", - "x-prompt": "Do you want to update to TypeScript v5.4?", - "requires": { - "typescript": ">=5.3.0 <5.4.0" - }, - "packages": { - "typescript": { - "version": "~5.4.2", - "alwaysAddToPackageJson": false - } - } - }, "19.5.1": { "version": "19.5.0-beta.1", "x-prompt": "Do you want to update to TypeScript v5.5?", diff --git a/tools/workspace-plugin/src/generators/remove-migrations/generator.ts b/tools/workspace-plugin/src/generators/remove-migrations/generator.ts index c4443c84ef..676dd2bfb4 100644 --- a/tools/workspace-plugin/src/generators/remove-migrations/generator.ts +++ b/tools/workspace-plugin/src/generators/remove-migrations/generator.ts @@ -40,7 +40,7 @@ export async function removeMigrationsGenerator( updateJson(tree, migrationsPath, (migrationsJson) => { const { generators, packageJsonUpdates } = migrationsJson; - for (const [migrationName, m] of Object.entries(generators)) { + for (const [migrationName, m] of Object.entries(generators ?? {})) { if (major(m['version']) < v) { const implFile = getImplFile(tree, migrationsPath, m); const dir = dirname(implFile);