diff --git a/package.json b/package.json index fcc1eaed4728..895f83b8fa17 100644 --- a/package.json +++ b/package.json @@ -354,6 +354,7 @@ "pnpm": { "comments": [ "node types < 18 are bumped to use the latest 18.x types. Though we don't support 18, old deps that still depend on old type versions will be guaranteed to be working with the correct types for the node version they target.", + "cosmiconfig and ts-api-utils help pnpm dedupe stability required when eslint plugins may float typescript resolution up to later versions and then generate incorrect errors under eslint.", "nodegit is replaced with an empty package here because it's currently only used by good-fences for features we do not need, and has issues building when changing node versions. See https://github.com/smikula/good-fences/issues/105 for details.", "node types >= 22 are bumped down to 20.x to work around issues with packages using different types.", "codemirror and marked overrides are because simplemde use * versions, and the fully up to date versions of its deps do not work. packageExtensions was tried to fix this, but did not work.", @@ -364,6 +365,8 @@ "overrides": { "@types/node@<18": "^18.19.0", "@types/node@>=22": "^20.0.0", + "cosmiconfig>typescript": "$typescript", + "ts-api-utils>typescript": "$typescript", "good-fences>nodegit": "npm:empty-npm-package@1.0.0", "qs": "^6.11.0", "simplemde>codemirror": "^5.65.11", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 27c9dcd13b8b..87e600355beb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,6 +7,8 @@ settings: overrides: '@types/node@<18': ^18.19.0 '@types/node@>=22': ^20.0.0 + cosmiconfig>typescript: ~5.4.5 + ts-api-utils>typescript: ~5.4.5 good-fences>nodegit: npm:empty-npm-package@1.0.0 qs: ^6.11.0 simplemde>codemirror: ^5.65.11 @@ -123,7 +125,7 @@ importers: version: 0.58.3(@types/node@18.19.86) '@fluidframework/eslint-config-fluid': specifier: ^7.0.0 - version: 7.0.0(eslint@8.57.1)(typescript@5.9.2) + version: 7.0.0(eslint@8.57.1)(typescript@5.4.5) eslint: specifier: ~8.57.1 version: 8.57.1 @@ -15274,7 +15276,7 @@ importers: version: 0.58.3(@types/node@18.19.86) jest-environment-puppeteer: specifier: ^10.1.3 - version: 10.1.4(typescript@5.9.2) + version: 10.1.4(typescript@5.4.5) rimraf: specifier: ^4.4.0 version: 4.4.1 @@ -21232,7 +21234,7 @@ packages: resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} engines: {node: '>=14'} peerDependencies: - typescript: '>=4.9.5' + typescript: ~5.4.5 peerDependenciesMeta: typescript: optional: true @@ -21241,7 +21243,7 @@ packages: resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} engines: {node: '>=14'} peerDependencies: - typescript: '>=4.9.5' + typescript: ~5.4.5 peerDependenciesMeta: typescript: optional: true @@ -27129,13 +27131,13 @@ packages: resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} engines: {node: '>=16'} peerDependencies: - typescript: '>=4.2.0' + typescript: ~5.4.5 ts-api-utils@2.1.0: resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} engines: {node: '>=18.12'} peerDependencies: - typescript: '>=4.8.4' + typescript: ~5.4.5 ts-deepmerge@7.0.2: resolution: {integrity: sha512-akcpDTPuez4xzULo5NwuoKwYRtjQJ9eoNfBACiBMaXwNAx7B1PKfe5wqUFJuW5uKzQ68YjDFwPaWHDG1KnFGsA==} @@ -30040,16 +30042,6 @@ snapshots: - supports-color - typescript - '@fluid-internal/eslint-plugin-fluid@0.3.1(eslint@8.57.1)(typescript@5.9.2)': - dependencies: - '@microsoft/tsdoc': 0.15.1 - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.9.2) - ts-morph: 22.0.0 - transitivePeerDependencies: - - eslint - - supports-color - - typescript - '@fluid-internal/test-driver-definitions@2.70.0': dependencies: '@fluidframework/core-interfaces': 2.70.0 @@ -30794,33 +30786,6 @@ snapshots: - supports-color - typescript - '@fluidframework/eslint-config-fluid@7.0.0(eslint@8.57.1)(typescript@5.9.2)': - dependencies: - '@fluid-internal/eslint-plugin-fluid': 0.3.1(eslint@8.57.1)(typescript@5.9.2) - '@rushstack/eslint-patch': 1.12.0 - '@rushstack/eslint-plugin': 0.19.0(eslint@8.57.1)(typescript@5.9.2) - '@rushstack/eslint-plugin-security': 0.11.0(eslint@8.57.1)(typescript@5.9.2) - '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2) - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.9.2) - eslint-config-biome: 2.1.3 - eslint-config-prettier: 10.1.8(eslint@8.57.1) - eslint-import-resolver-typescript: 4.4.4(eslint-plugin-i@2.29.1)(eslint@8.57.1) - eslint-plugin-eslint-comments: 3.2.0(eslint@8.57.1) - eslint-plugin-import: eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.2))(eslint-import-resolver-typescript@4.4.4)(eslint@8.57.1) - eslint-plugin-jsdoc: 55.0.5(eslint@8.57.1) - eslint-plugin-promise: 7.2.1(eslint@8.57.1) - eslint-plugin-react: 7.37.5(eslint@8.57.1) - eslint-plugin-react-hooks: 5.2.0(eslint@8.57.1) - eslint-plugin-tsdoc: 0.4.0 - eslint-plugin-unicorn: 48.0.1(eslint@8.57.1) - eslint-plugin-unused-imports: 4.2.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1) - transitivePeerDependencies: - - eslint - - eslint-import-resolver-webpack - - eslint-plugin-import-x - - supports-color - - typescript - '@fluidframework/file-driver@2.70.0': dependencies: '@fluid-internal/client-utils': 2.70.0 @@ -33087,15 +33052,6 @@ snapshots: - supports-color - typescript - '@rushstack/eslint-plugin-security@0.11.0(eslint@8.57.1)(typescript@5.9.2)': - dependencies: - '@rushstack/tree-pattern': 0.3.4 - '@typescript-eslint/utils': 8.31.1(eslint@8.57.1)(typescript@5.9.2) - eslint: 8.57.1 - transitivePeerDependencies: - - supports-color - - typescript - '@rushstack/eslint-plugin@0.19.0(eslint@8.57.1)(typescript@5.4.5)': dependencies: '@rushstack/tree-pattern': 0.3.4 @@ -33105,15 +33061,6 @@ snapshots: - supports-color - typescript - '@rushstack/eslint-plugin@0.19.0(eslint@8.57.1)(typescript@5.9.2)': - dependencies: - '@rushstack/tree-pattern': 0.3.4 - '@typescript-eslint/utils': 8.31.1(eslint@8.57.1)(typescript@5.9.2) - eslint: 8.57.1 - transitivePeerDependencies: - - supports-color - - typescript - '@rushstack/node-core-library@3.66.1(@types/node@18.19.86)': dependencies: colors: 1.2.5 @@ -33876,24 +33823,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2)': - dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.9.2) - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.1)(typescript@5.9.2) - '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.9.2) - '@typescript-eslint/visitor-keys': 7.18.0 - eslint: 8.57.1 - graphemer: 1.4.0 - ignore: 5.3.2 - natural-compare: 1.4.0 - ts-api-utils: 1.4.3(typescript@5.9.2) - optionalDependencies: - typescript: 5.9.2 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.4.5)': dependencies: '@typescript-eslint/scope-manager': 7.18.0 @@ -33907,19 +33836,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.2)': - dependencies: - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.9.2) - '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.4.3(supports-color@8.1.1) - eslint: 8.57.1 - optionalDependencies: - typescript: 5.9.2 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/scope-manager@5.62.0': dependencies: '@typescript-eslint/types': 5.62.0 @@ -33947,18 +33863,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@7.18.0(eslint@8.57.1)(typescript@5.9.2)': - dependencies: - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.9.2) - '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.9.2) - debug: 4.4.3(supports-color@8.1.1) - eslint: 8.57.1 - ts-api-utils: 1.4.3(typescript@5.9.2) - optionalDependencies: - typescript: 5.9.2 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/types@5.62.0': {} '@typescript-eslint/types@7.18.0': {} @@ -33996,21 +33900,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@7.18.0(typescript@5.9.2)': - dependencies: - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.4.3(supports-color@8.1.1) - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.7.3 - ts-api-utils: 1.4.3(typescript@5.9.2) - optionalDependencies: - typescript: 5.9.2 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/typescript-estree@8.31.1(typescript@5.4.5)': dependencies: '@typescript-eslint/types': 8.31.1 @@ -34025,20 +33914,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.31.1(typescript@5.9.2)': - dependencies: - '@typescript-eslint/types': 8.31.1 - '@typescript-eslint/visitor-keys': 8.31.1 - debug: 4.4.3(supports-color@8.1.1) - fast-glob: 3.3.3 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.7.3 - ts-api-utils: 2.1.0(typescript@5.9.2) - typescript: 5.9.2 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/utils@5.62.0(eslint@8.57.1)(typescript@5.4.5)': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) @@ -34065,17 +33940,6 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@7.18.0(eslint@8.57.1)(typescript@5.9.2)': - dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.9.2) - eslint: 8.57.1 - transitivePeerDependencies: - - supports-color - - typescript - '@typescript-eslint/utils@8.31.1(eslint@8.57.1)(typescript@5.4.5)': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) @@ -34087,17 +33951,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.31.1(eslint@8.57.1)(typescript@5.9.2)': - dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) - '@typescript-eslint/scope-manager': 8.31.1 - '@typescript-eslint/types': 8.31.1 - '@typescript-eslint/typescript-estree': 8.31.1(typescript@5.9.2) - eslint: 8.57.1 - typescript: 5.9.2 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/visitor-keys@5.62.0': dependencies: '@typescript-eslint/types': 5.62.0 @@ -35569,15 +35422,6 @@ snapshots: optionalDependencies: typescript: 5.4.5 - cosmiconfig@8.3.6(typescript@5.9.2): - dependencies: - import-fresh: 3.3.1 - js-yaml: 4.1.0 - parse-json: 5.2.0 - path-type: 4.0.0 - optionalDependencies: - typescript: 5.9.2 - cosmiconfig@9.0.0(typescript@5.4.5): dependencies: env-paths: 2.2.1 @@ -36395,7 +36239,7 @@ snapshots: tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.2))(eslint-import-resolver-typescript@4.4.4)(eslint@8.57.1) + eslint-plugin-import: eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.4.5))(eslint-import-resolver-typescript@4.4.4)(eslint@8.57.1) transitivePeerDependencies: - supports-color @@ -36410,17 +36254,6 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@8.57.1): - dependencies: - debug: 3.2.7 - optionalDependencies: - '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.9.2) - eslint: 8.57.1 - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 4.4.4(eslint-plugin-i@2.29.1)(eslint@8.57.1) - transitivePeerDependencies: - - supports-color - eslint-plugin-chai-expect@3.0.0(eslint@8.57.1): dependencies: eslint: 8.57.1 @@ -36448,23 +36281,6 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-i@2.29.1(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.2))(eslint-import-resolver-typescript@4.4.4)(eslint@8.57.1): - dependencies: - debug: 4.4.3(supports-color@8.1.1) - doctrine: 3.0.0 - eslint: 8.57.1 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@8.57.1) - get-tsconfig: 4.12.0 - is-glob: 4.0.3 - minimatch: 3.1.2 - semver: 7.7.3 - transitivePeerDependencies: - - '@typescript-eslint/parser' - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - eslint-plugin-jest@27.4.3(eslint@8.57.1)(jest@29.7.0(@types/node@18.19.86)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@18.19.86)(typescript@5.4.5)))(typescript@5.4.5): dependencies: '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@5.4.5) @@ -36577,12 +36393,6 @@ snapshots: optionalDependencies: '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.4.5))(eslint@8.57.1)(typescript@5.4.5) - eslint-plugin-unused-imports@4.2.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - optionalDependencies: - '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.9.2))(eslint@8.57.1)(typescript@5.9.2) - eslint-scope@5.1.1: dependencies: esrecurse: 4.3.0 @@ -38412,18 +38222,6 @@ snapshots: - supports-color - typescript - jest-environment-puppeteer@10.1.4(typescript@5.9.2): - dependencies: - chalk: 4.1.2 - cosmiconfig: 8.3.6(typescript@5.9.2) - deepmerge: 4.3.1 - jest-dev-server: 10.1.4 - jest-environment-node: 29.7.0 - transitivePeerDependencies: - - debug - - supports-color - - typescript - jest-get-type@29.6.3: {} jest-haste-map@29.7.0: @@ -42981,18 +42779,10 @@ snapshots: dependencies: typescript: 5.4.5 - ts-api-utils@1.4.3(typescript@5.9.2): - dependencies: - typescript: 5.9.2 - ts-api-utils@2.1.0(typescript@5.4.5): dependencies: typescript: 5.4.5 - ts-api-utils@2.1.0(typescript@5.9.2): - dependencies: - typescript: 5.9.2 - ts-deepmerge@7.0.2: {} ts-interface-checker@0.1.13: {} diff --git a/tools/pipelines/templates/build-npm-client-package.yml b/tools/pipelines/templates/build-npm-client-package.yml index c3c30668c596..4377e1ab093c 100644 --- a/tools/pipelines/templates/build-npm-client-package.yml +++ b/tools/pipelines/templates/build-npm-client-package.yml @@ -199,7 +199,8 @@ extends: buildDirectory: '${{ parameters.buildDirectory }}' checks: '${{ parameters.checks }}' # Install all dependencies, not just the root ones - dependencyInstallCommand: pnpm install --frozen-lockfile + # Run dedupe after to make sure the lockfile is stable + dependencyInstallCommand: pnpm install --frozen-lockfile && pnpm dedupe # Install / Build / Test Stage