chore(deps): update nx to 21

Because:

- Nx is on 19 currently and we want to support the new Nx caching
  features

This commit:

- Updates Nx from 19 to 21
- Bumps eslint to 8 across all packages and disables some rules that we
  do not respect
- Some resources needed to be bumped since many of the build steps have been cached, but when run without cache they consume more RAM than available
- Several version numbers have been consolidated across packages, but not necessarily upgraded outside of Nx itself.

Closes FXA-10981
This commit is contained in:
julianpoyourow
2025-06-02 03:27:22 +00:00
parent bd67544f7e
commit c006d418f7
42 changed files with 1997 additions and 1234 deletions

View File

@@ -652,7 +652,7 @@ jobs:
workflow:
type: string
executor: default-executor
resource_class: medium+
resource_class: large
steps:
- git-checkout
- restore-workspace
@@ -716,7 +716,7 @@ jobs:
- run:
name: Run API Integration Tests
command: |
npx nx << parameters.nx_run >> << parameters.parallel >> << parameters.target >> << parameters.projects >>
NODE_OPTIONS="--max-old-space-size=7168" npx nx << parameters.nx_run >> << parameters.parallel >> << parameters.target >> << parameters.projects >>
environment:
NODE_ENV: test
no_output_timeout: 20m
@@ -785,6 +785,7 @@ jobs:
command: ./packages/functional-tests/scripts/start-services.sh
environment:
NODE_ENV: test
no_output_timeout: 20m
- run-playwright-tests:
project: local
- store-artifacts

View File

@@ -26,7 +26,7 @@
}
},
"lint": {
"executor": "@nx/linter:eslint",
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": ["apps/payments/next/**/*.{ts,tsx,js,jsx}"]

View File

@@ -1,5 +1,5 @@
import { getJestProjects } from '@nx/jest';
import { getJestProjectsAsync } from '@nx/jest';
export default {
projects: getJestProjects(),
};
export default async () => ({
projects: await getJestProjectsAsync(),
});

View File

@@ -19,7 +19,7 @@
}
},
"lint": {
"executor": "@nx/linter:eslint",
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": ["libs/google/**/*.ts", "libs/google/package.json"]

View File

@@ -34,7 +34,7 @@
}
},
"lint": {
"executor": "@nx/linter:eslint",
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": ["libs/payments/capability/**/*.ts"]

View File

@@ -33,7 +33,7 @@
}
},
"lint": {
"executor": "@nx/linter:eslint",
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": ["libs/payments/cart/**/*.ts"]

View File

@@ -33,7 +33,7 @@
}
},
"lint": {
"executor": "@nx/linter:eslint",
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": ["libs/payments/content-server/**/*.ts"]

View File

@@ -34,7 +34,7 @@
}
},
"lint": {
"executor": "@nx/linter:eslint",
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": ["libs/payments/currency/**/*.ts"]

View File

@@ -34,7 +34,7 @@
}
},
"lint": {
"executor": "@nx/linter:eslint",
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": [

View File

@@ -34,7 +34,7 @@
}
},
"lint": {
"executor": "@nx/linter:eslint",
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": [

View File

@@ -40,7 +40,7 @@
}
},
"lint": {
"executor": "@nx/linter:eslint",
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": [

View File

@@ -34,7 +34,7 @@
}
},
"lint": {
"executor": "@nx/linter:eslint",
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": [

View File

@@ -33,7 +33,7 @@
}
},
"lint": {
"executor": "@nx/linter:eslint",
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": ["libs/payments/paypal/**/*.ts"]

View File

@@ -34,7 +34,7 @@
}
},
"lint": {
"executor": "@nx/linter:eslint",
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": [

View File

@@ -6,7 +6,7 @@
"tags": [],
"targets": {
"lint": {
"executor": "@nx/linter:eslint",
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": ["libs/payments/ui/**/*.{ts,tsx,js,jsx}"]

View File

@@ -34,7 +34,7 @@
}
},
"lint": {
"executor": "@nx/linter:eslint",
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": ["libs/shared/account/account/**/*.ts"]

View File

@@ -15,7 +15,7 @@
}
},
"lint": {
"executor": "@nx/linter:eslint",
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": ["libs/shared/assets/**/*.ts"]

View File

@@ -34,7 +34,7 @@
}
},
"lint": {
"executor": "@nx/linter:eslint",
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": [

View File

@@ -40,7 +40,7 @@
}
},
"lint": {
"executor": "@nx/linter:eslint",
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": [

View File

@@ -34,7 +34,7 @@
}
},
"lint": {
"executor": "@nx/linter:eslint",
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": ["libs/shared/db/firestore/**/*.ts"]

View File

@@ -34,7 +34,7 @@
}
},
"lint": {
"executor": "@nx/linter:eslint",
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": ["libs/shared/db/mysql/account/**/*.ts"]

View File

@@ -34,7 +34,7 @@
}
},
"lint": {
"executor": "@nx/linter:eslint",
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": ["libs/shared/db/mysql/core/**/*.ts"]

View File

@@ -34,7 +34,7 @@
}
},
"lint": {
"executor": "@nx/linter:eslint",
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": ["libs/shared/db/type-cacheable/**/*.ts"]

View File

@@ -34,7 +34,7 @@
}
},
"lint": {
"executor": "@nx/linter:eslint",
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": ["libs/shared/error/**/*.ts"]

View File

@@ -35,7 +35,7 @@
}
},
"lint": {
"executor": "@nx/linter:eslint",
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": [

View File

@@ -34,7 +34,7 @@
}
},
"lint": {
"executor": "@nx/linter:eslint",
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": ["libs/shared/log/**/*.ts"]

View File

@@ -34,7 +34,7 @@
}
},
"lint": {
"executor": "@nx/linter:eslint",
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": ["libs/shared/metrics/statsd/**/*.ts"]

View File

@@ -34,7 +34,7 @@
}
},
"lint": {
"executor": "@nx/linter:eslint",
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": [

View File

@@ -34,7 +34,7 @@
}
},
"lint": {
"executor": "@nx/linter:eslint",
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": [

View File

@@ -42,7 +42,7 @@
}
},
"lint": {
"executor": "@nx/linter:eslint",
"executor": "@nx/eslint:lint",
"outputs": ["{options.outputFile}"],
"options": {
"lintFilePatterns": [

View File

@@ -224,5 +224,8 @@
"serveStaticTargetName": "serve-static"
}
}
]
],
"tui": {
"enabled": false
}
}

View File

@@ -63,7 +63,7 @@
"@nestjs/platform-express": "^10.4.18",
"@nestjs/schedule": "^4.0.1",
"@next/bundle-analyzer": "^15.1.6",
"@nx/next": "19.5.3",
"@nx/next": "21.1.2",
"@opentelemetry/api": "^1.9.0",
"@opentelemetry/auto-instrumentations-node": "^0.58.0",
"@opentelemetry/sdk-trace-base": "^2.0.0",
@@ -109,7 +109,7 @@
"mysql2": "^3.14.0",
"nest-typed-config": "^2.9.2",
"nest-winston": "^1.10.0",
"next": "^14.2.21",
"next": "14.2.29",
"next-auth": "5.0.0-beta.22",
"node-fetch": "^2.6.7",
"node-hkdf": "^0.0.2",
@@ -173,14 +173,14 @@
"@nestjs/cli": "^11.0.1",
"@nestjs/schematics": "^11.0.1",
"@nestjs/testing": "^10.3.4",
"@nx/esbuild": "19.5.3",
"@nx/eslint-plugin": "19.5.3",
"@nx/jest": "19.5.3",
"@nx/js": "19.5.3",
"@nx/node": "19.5.3",
"@nx/react": "19.5.3",
"@nx/storybook": "19.5.3",
"@nx/workspace": "19.5.3",
"@nx/esbuild": "21.1.2",
"@nx/eslint-plugin": "21.1.2",
"@nx/jest": "21.1.2",
"@nx/js": "21.1.2",
"@nx/node": "21.1.2",
"@nx/react": "21.1.2",
"@nx/storybook": "21.1.2",
"@nx/workspace": "21.1.2",
"@opentelemetry/semantic-conventions": "^1.32.0",
"@storybook/addon-essentials": "7.6.15",
"@storybook/addon-styling": "1.3.7",
@@ -197,7 +197,7 @@
"@types/babel__core": "^7",
"@types/babel__preset-env": "^7",
"@types/bn.js": "^5",
"@types/jest": "29.5.1",
"@types/jest": "29.5.14",
"@types/jsdom": "^21",
"@types/module-alias": "^2",
"@types/mysql": "^2",
@@ -215,17 +215,21 @@
"@typescript-eslint/eslint-plugin": "^5.59.1",
"@typescript-eslint/parser": "^7.1.1",
"autoprefixer": "^10.4.14",
"babel-jest": "^29.7.0",
"babel-eslint": "^10.1.0",
"babel-jest": "29.7.0",
"esbuild": "^0.17.15",
"esbuild-register": "^3.5.0",
"eslint": "^7.32.0",
"eslint": "^8.57.1",
"eslint-config-next": "14.2.3",
"eslint-config-prettier": "^10.1.5",
"eslint-plugin-flowtype": "^8.0.3",
"eslint-plugin-fxa": "workspace:*",
"eslint-plugin-import": "2.30.0",
"eslint-plugin-jest": "^27.6.0",
"eslint-plugin-jsx-a11y": "6.10.0",
"eslint-plugin-react": "^7.32.2",
"eslint-plugin-react-hooks": "5.0.0",
"eslint-plugin-testing-library": "^7.3.0",
"grunt": "^1.6.1",
"grunt-cli": "^1.4.3",
"grunt-concurrent": "^3.0.0",
@@ -234,13 +238,13 @@
"grunt-contrib-watch": "^1.1.0",
"grunt-http": "^2.3.3",
"husky": "^9.1.7",
"jest": "^29.5.0",
"jest-environment-jsdom": "^29.5.0",
"jest": "29.7.0",
"jest-environment-jsdom": "29.7.0",
"jest-environment-node": "^29.7.0",
"json": "^11.0.0",
"mocha-junit-reporter": "^2.2.0",
"mocha-multi": "^1.1.7",
"nx": "19.5.3",
"nx": "21.1.2",
"nx-cloud": "19.1.0",
"persistgraphql": "^0.3.11",
"postcss": "8.5.0",

View File

@@ -12,9 +12,9 @@ mkdir -p artifacts/tests
chmod +x node_modules/@nestjs/cli/bin/nest.js
# Make sure we have built the latest
CI=false NODE_ENV=test npx nx run-many \
NODE_OPTIONS="--max-old-space-size=7168" CI=false NODE_ENV=test npx nx run-many \
-t start \
--parallel=1 \
--parallel=2 \
--verbose \
-p \
123done \

View File

@@ -5,11 +5,36 @@
],
"ignorePatterns": [
"build",
"storybook-static"
"storybook-static",
"coverage/lcov-report/block-navigation.js",
"coverage/lcov-report/prettify.js",
"coverage/lcov-report/sorter.js",
"server/coverage/lcov-report/block-navigation.js",
"server/coverage/lcov-report/prettify.js",
"server/coverage/lcov-report/sorter.js",
"server/jest.config.js",
"pm2.config.js",
"postcss.config.js",
"tailwind.config.js",
"src/setupTests.js"
],
"rules": {
"jest/no-jest-import": "off",
"jest/valid-describe": "off"
"jest/valid-describe": "off",
"testing-library/await-async-query": "off",
"testing-library/no-await-sync-query": "off",
"testing-library/no-wait-for-empty-callback": "off",
"testing-library/no-wait-for-multiple-assertions": "off",
"testing-library/no-render-in-setup": "off",
"testing-library/prefer-find-by": "off",
"testing-library/no-wait-for-side-effects": "off",
"testing-library/prefer-presence-queries": "off",
"testing-library/no-node-access": "off",
"testing-library/render-result-naming-convention": "off",
"testing-library/prefer-screen-queries": "off",
"testing-library/no-unnecessary-act": "off",
"testing-library/no-container": "off"
},
"root": true
}

View File

@@ -67,15 +67,15 @@
"@typescript-eslint/eslint-plugin": "^5.59.0",
"@typescript-eslint/parser": "^7.1.1",
"chance": "^1.1.8",
"eslint": "^7.32.0",
"eslint-config-react-app": "^6.0.0",
"eslint": "^8.57.1",
"eslint-config-react-app": "^7.0.0",
"eslint-plugin-import": "^2.30.0",
"eslint-plugin-jest": "^27.6.0",
"eslint-plugin-react": "^7.32.2",
"fxa-shared": "workspace:*",
"jest": "27.5.1",
"jest-watch-typeahead": "0.6.5",
"nx": "19.5.3",
"nx": "21.1.2",
"persistgraphql": "^0.3.11",
"pm2": "^5.4.2",
"postcss-import": "^16.1.0",

View File

@@ -127,7 +127,7 @@
"@storybook/addon-docs": "7.6.12",
"@storybook/addon-toolbars": "7.0.23",
"@storybook/html": "7.6.17",
"@storybook/html-webpack5": "7.6.13",
"@storybook/html-webpack5": "7.5.3",
"@types/async-retry": "^1",
"@types/chai": "^4.3.17",
"@types/chai-as-promised": "^7",
@@ -156,7 +156,7 @@
"chai-as-promised": "^7.1.1",
"esbuild": "^0.17.15",
"esbuild-register": "^3.5.0",
"eslint": "^7.32.0",
"eslint": "^8.57.1",
"fxa-shared": "workspace:*",
"grunt": "^1.6.1",
"grunt-cli": "^1.4.3",
@@ -177,7 +177,7 @@
"moment": "^2.30.1",
"nock": "^13.5.1",
"nodemon": "^3.1.0",
"nx": "19.5.3",
"nx": "21.1.2",
"nyc": "^17.1.0",
"pm2": "^5.4.2",
"prettier": "^3.5.3",

View File

@@ -9,7 +9,17 @@
],
"rules": {
"jest/no-jest-import": "off",
"jest/valid-describe": "off"
"jest/valid-describe": "off",
"testing-library/no-wait-for-multiple-assertions": "off",
"testing-library/no-render-in-setup": "off",
"testing-library/prefer-find-by": "off",
"testing-library/no-wait-for-side-effects": "off",
"testing-library/prefer-presence-queries": "off",
"testing-library/no-node-access": "off",
"testing-library/render-result-naming-convention": "off",
"testing-library/prefer-screen-queries": "off",
"testing-library/no-unnecessary-act": "off",
"testing-library/no-container": "off"
},
"root": true
}

View File

@@ -59,13 +59,13 @@
"@fluent/bundle": "^0.18.0",
"@fluent/langneg": "^0.7.0",
"@rescripts/cli": "~0.0.16",
"@storybook/addon-actions": "8.0.0",
"@storybook/addon-actions": "^7.0.0",
"@storybook/addon-links": "7.6.4",
"@storybook/addon-styling": "1.3.0",
"@storybook/addons": "7.6.17",
"@storybook/preset-create-react-app": "7.6.4",
"@storybook/react": "7.1.1",
"@storybook/react-webpack5": "7.0.23",
"@storybook/react-webpack5": "7.5.3",
"@testing-library/jest-dom": "^5.16.5",
"@types/accept-language-parser": "^1.5.1",
"@types/classnames": "2.3.1",
@@ -88,7 +88,7 @@
"babel-loader": "^9.1.3",
"browserslist": "^4.24.0",
"eslint": "^7.32.0",
"eslint-config-react-app": "^6.0.0",
"eslint-config-react-app": "^7.0.0",
"eslint-plugin-import": "^2.30.0",
"eslint-plugin-jest": "^27.6.0",
"eslint-plugin-react": "^7.32.2",
@@ -101,7 +101,7 @@
"intl": "1.2.5",
"jest": "27.5.1",
"nock": "^13.5.1",
"nx": "19.5.3",
"nx": "21.1.2",
"pm2": "^5.4.2",
"postcss-import": "16.1.0",
"prettier": "^3.5.3",

View File

@@ -47,12 +47,12 @@
"tailwindcss-dir": "^4.0.0"
},
"devDependencies": {
"@storybook/addon-actions": "8.0.0",
"@storybook/addon-actions": "^7.0.0",
"@storybook/addon-links": "7.6.4",
"@storybook/addon-styling": "1.3.0",
"@storybook/addons": "7.6.17",
"@storybook/react": "7.1.1",
"@storybook/react-webpack5": "7.0.23",
"@storybook/react-webpack5": "7.5.3",
"@tailwindcss/container-queries": "^0.1.1",
"@testing-library/dom": "^10.4.0",
"@testing-library/jest-dom": "^5.16.5",
@@ -80,7 +80,7 @@
"identity-obj-proxy": "^3.0.0",
"jest": "27.5.1",
"jest-environment-jsdom": "^27.5.1",
"nx": "19.5.3",
"nx": "21.1.2",
"pm2": "^5.4.2",
"postcss-import": "^16.1.0",
"prettier": "^3.5.3",

View File

@@ -1,4 +1,5 @@
{
"root": true,
"extends": [
"react-app",
"react-app/jest"
@@ -10,7 +11,17 @@
"import/no-named-as-default-member": "off",
"import/no-unresolved": "off",
"jest/no-jest-import": "off",
"jest/valid-describe": "off"
"jest/valid-describe": "off",
"testing-library/no-wait-for-multiple-assertions": "off",
"testing-library/no-render-in-setup": "off",
"testing-library/prefer-find-by": "off",
"testing-library/no-wait-for-side-effects": "off",
"testing-library/prefer-presence-queries": "off",
"testing-library/no-node-access": "off",
"testing-library/render-result-naming-convention": "off",
"testing-library/prefer-screen-queries": "off",
"testing-library/no-unnecessary-act": "off",
"testing-library/no-container": "off"
},
"ignorePatterns": ["build/"]
"ignorePatterns": ["build/", "scripts/build.js"]
}

View File

@@ -148,7 +148,6 @@
"dotenv": "^16.4.5",
"dotenv-expand": "^12.0.1",
"eslint": "^8.3.0",
"eslint-config-react-app": "^7.0.1",
"eslint-webpack-plugin": "^4.2.0",
"file-loader": "^6.2.0",
"file-saver": "^2.0.5",
@@ -196,7 +195,7 @@
"devDependencies": {
"@babel/types": "7.25.8",
"@sentry/webpack-plugin": "^3.5.0",
"@storybook/addon-actions": "8.0.0",
"@storybook/addon-actions": "^7.0.0",
"@storybook/addon-essentials": "7.6.15",
"@storybook/addon-interactions": "7.6.16",
"@storybook/addon-links": "7.6.4",
@@ -205,7 +204,7 @@
"@storybook/blocks": "7.0.24",
"@storybook/preset-create-react-app": "7.6.4",
"@storybook/react": "7.1.1",
"@storybook/react-webpack5": "7.0.23",
"@storybook/react-webpack5": "7.5.3",
"@storybook/testing-library": "0.2.0",
"@testing-library/dom": "^10.4.0",
"@testing-library/jest-dom": "^6.1.3",
@@ -227,8 +226,8 @@
"babel-loader": "^9.1.3",
"babel-plugin-named-exports-order": "^0.0.2",
"babel-plugin-transform-typescript-metadata": "^0.3.2",
"eslint": "^7.32.0",
"eslint-config-react-app": "^6.0.0",
"eslint": "^8.57.1",
"eslint-config-react-app": "^7.0.1",
"eslint-plugin-jest": "^27.6.0",
"eslint-plugin-react": "^7.32.2",
"fxa-shared": "workspace:*",
@@ -239,7 +238,7 @@
"grunt-hash": "^0.5.0",
"jest-watch-typeahead": "0.6.5",
"mutationobserver-shim": "^0.3.7",
"nx": "19.5.3",
"nx": "21.1.2",
"persistgraphql": "^0.3.11",
"pm2": "^5.4.2",
"postcss-assets": "^6.0.0",

3024
yarn.lock

File diff suppressed because it is too large Load Diff