Update pnpm to v11 (#33573)

* Update pnpm to v11

* Handle breaking changes

* Attach pnpm hash

* Remove redundant packageManager fields

* Make lint-staged happy

* Lockfile pnpm itself too

* Update pnpm/action-setup for better v11 compatibility

* Specify types to make tsc happier

* Fix permissions

* Check ulimit

* Specify minimumReleaseAgeExclude

* Run desktop tests

* Revert "Run desktop tests"

This reverts commit 911eb0ba2e9237d4b28e3bdaaf8f10ba6f22e827.

* Revert "Check ulimit"

This reverts commit f09eb59d715ba30a2e7fc5dba17dde092bd9bf17.

* Reapply "Check ulimit"

This reverts commit 83227c19ff5d07db91b6586f407f56870b00c041.

* Run desktop tests

* Switch nodeLinker & remove app-builder-lib patch

* Fix webpack.config.ts

* Fix .stylelintrc.cjs

* Fix `events` package

* Makes types happier

* Make knip happy

* Fix hak build

* Make jest happy

* Make pnpm-link happy

* Remove dead file

* Run playwright tests

* Fix linux hak permissions in ci

* Test

* Remove ulimit checks

* Disable skip

* Update nx

* Tweak line endings

* Update screenshot

* Iterate

* Webpack fallback `events`

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
This commit is contained in:
renovate[bot]
2026-05-29 08:26:59 +00:00
committed by GitHub
parent 4b2944440e
commit 1fb6b778e7
35 changed files with 520 additions and 345 deletions
+3 -3
View File
@@ -63,7 +63,7 @@ jobs:
repository: element-hq/element-web
persist-credentials: false
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5
- uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
cache: "pnpm"
@@ -145,7 +145,7 @@ jobs:
name: webapp
path: apps/web/webapp
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5
- uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
cache: "pnpm"
@@ -266,7 +266,7 @@ jobs:
persist-credentials: false
repository: element-hq/element-web
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5
- uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8
if: needs.build_ew.outputs.skip == 'false'
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
if: needs.build_ew.outputs.skip == 'false'
+1 -1
View File
@@ -47,7 +47,7 @@ jobs:
with:
persist-credentials: false
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5
- uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
# Disable cache on Windows as it is slower than not caching
+5 -3
View File
@@ -110,7 +110,7 @@ jobs:
path: |
apps/desktop/.hak
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5
- uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
node-version-file: apps/desktop/.node-version
@@ -154,10 +154,12 @@ jobs:
- name: Fix permissions
run: |
shopt -s globstar
# For .hak
sudo chown -R $USER:$USER apps/desktop/.hak
# For node_modules pnpm strict security
sudo chmod +x node_modules/7zip-bin/linux/*/7za
# For node_modules
sudo chown -R $USER:$USER **/node_modules
- name: Check native libraries in hak dependencies
working-directory: apps/desktop
+1 -1
View File
@@ -113,7 +113,7 @@ jobs:
# https://github.com/electron-userland/electron-builder/issues/9511#issuecomment-3774092888
- run: sudo pip3 install pyobjc-framework-Quartz
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5
- uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
node-version-file: apps/desktop/.node-version
+1 -1
View File
@@ -58,7 +58,7 @@ jobs:
persist-credentials: false
repository: element-hq/element-web
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5
- uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
node-version-file: apps/desktop/.node-version
+1 -1
View File
@@ -41,7 +41,7 @@ jobs:
repository: element-hq/element-web
persist-credentials: false
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5
- uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8
id: pnpm
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
+7 -1
View File
@@ -108,6 +108,12 @@ jobs:
}
}
# Tweak line endings to make nx happy, workaround for https://github.com/nrwl/nx/issues/35828
- name: Configure git line endings
run: |
git config --system core.autocrlf false
git config --system core.eol lf
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
repository: element-hq/element-web
@@ -152,7 +158,7 @@ jobs:
env:
TARGET: ${{ steps.config.outputs.target }}
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5
- uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
node-version-file: apps/desktop/.node-version
+1 -1
View File
@@ -32,7 +32,7 @@ jobs:
with:
persist-credentials: false
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5
- uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
cache: "pnpm"
+1 -1
View File
@@ -40,7 +40,7 @@ jobs:
id: builder
uses: docker/setup-buildx-action@4d04d5d9486b7bd6fa91e7baf45bbb4f8b9deedd # v4
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5
- uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
node-version-file: package.json
+1 -1
View File
@@ -20,7 +20,7 @@ jobs:
with:
persist-credentials: false
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5
- uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8
with:
package_json_file: package.json
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
+1 -1
View File
@@ -27,7 +27,7 @@ jobs:
with:
persist-credentials: false
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5
- uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8
- name: 🔧 Set up node environment
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
@@ -16,7 +16,7 @@ jobs:
with:
persist-credentials: false
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5
- uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8
- name: 🔧 Pnpm cache
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
@@ -26,7 +26,7 @@ jobs:
persist-credentials: false
repository: element-hq/element-web
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5
- uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
cache: "pnpm"
+1 -1
View File
@@ -53,7 +53,7 @@ jobs:
with:
persist-credentials: false
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5
- uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
if: matrix.install != ''
with:
+2 -2
View File
@@ -48,7 +48,7 @@ jobs:
repository: ${{ inputs.matrix-js-sdk-sha && 'element-hq/element-web' || github.repository }}
persist-credentials: false
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5
- uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8
- name: pnpm cache
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
@@ -141,7 +141,7 @@ jobs:
repository: ${{ inputs.matrix-js-sdk-sha && 'element-hq/element-web' || github.repository }}
persist-credentials: false
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5
- uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8
- name: pnpm cache
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
+1 -1
View File
@@ -13,7 +13,7 @@ jobs:
with:
persist-credentials: false
- uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5
- uses: pnpm/action-setup@0e279bb959325dab635dd2c09392533439d90093 # v6.0.8
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
cache: "pnpm"
+1 -1
View File
@@ -1 +1 @@
npx lint-staged --concurrent false
pnpm exec lint-staged --concurrent false
-1
View File
@@ -112,7 +112,6 @@
"hakDependencies": {
"matrix-seshat": "4.3.0"
},
"packageManager": "pnpm@10.33.4+sha512.1c67b3b359b2d408119ba1ed289f34b8fc3c6873412bec6fd264fbdc82489e510fcbecb9ce9d22dae7f3b76269d8441046014bdca53b9979cd7a561ad631b800",
"nx": {
"includedScripts": []
}
+1 -1
View File
@@ -14,7 +14,7 @@ import childProcess, { type SpawnOptions } from "node:child_process";
import { type Arch, type Target, TARGETS, getHost, isHostId, type TargetId } from "./target.ts";
async function getRuntimeVersion(projectRoot: string): Promise<string> {
const electronVersion = await getElectronVersionFromInstalled(path.join(projectRoot, "..", ".."));
const electronVersion = await getElectronVersionFromInstalled(projectRoot);
if (!electronVersion) {
throw new Error("Can't determine Electron version");
}
+4 -4
View File
@@ -62,10 +62,10 @@ module.exports = {
{ from: "res/css/views/settings/tabs/_SettingsTab.pcss", type: "css" },
{ from: "res/css/structures/_RoomView.pcss", type: "css" },
// Compound vars
"../../node_modules/@vector-im/compound-design-tokens/assets/web/css/cpd-common-base.css",
"../../node_modules/@vector-im/compound-design-tokens/assets/web/css/cpd-common-semantic.css",
"../../node_modules/@vector-im/compound-design-tokens/assets/web/css/cpd-theme-light-base-mq.css",
"../../node_modules/@vector-im/compound-design-tokens/assets/web/css/cpd-theme-light-semantic-mq.css",
"./node_modules/@vector-im/compound-design-tokens/assets/web/css/cpd-common-base.css",
"./node_modules/@vector-im/compound-design-tokens/assets/web/css/cpd-common-semantic.css",
"./node_modules/@vector-im/compound-design-tokens/assets/web/css/cpd-theme-light-base-mq.css",
"./node_modules/@vector-im/compound-design-tokens/assets/web/css/cpd-theme-light-semantic-mq.css",
],
},
],
+9 -7
View File
@@ -6,10 +6,14 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Com
Please see LICENSE files in the repository root for full details.
*/
import { env } from "process";
import { env } from "node:process";
import path, { dirname } from "node:path";
import { fileURLToPath } from "node:url";
import type { Config } from "jest";
const __dirname = dirname(fileURLToPath(import.meta.url));
const config: Config = {
testEnvironment: "jest-fixed-jsdom",
testEnvironmentOptions: {
@@ -31,10 +35,8 @@ const config: Config = {
"\\.(gif|png|ttf|woff2)$": "<rootDir>/__mocks__/imageMock.js",
"\\.svg$": "<rootDir>/__mocks__/svg.js",
"\\$webapp/i18n/languages.json": "<rootDir>/__mocks__/languages.json",
"^react$": "<rootDir>/../../node_modules/react",
"^react-dom$": "<rootDir>/../../node_modules/react-dom",
"^matrix-js-sdk$": "<rootDir>/../../node_modules/matrix-js-sdk/src",
"^matrix-react-sdk$": "<rootDir>/src",
"^react$": "<rootDir>/node_modules/react",
"^react-dom$": "<rootDir>/node_modules/react-dom",
"decoderWorker\\.min\\.js": "<rootDir>/__mocks__/empty.js",
"decoderWorker\\.min\\.wasm": "<rootDir>/__mocks__/empty.js",
"waveWorker\\.min\\.js": "<rootDir>/__mocks__/empty.js",
@@ -42,10 +44,10 @@ const config: Config = {
"workers/(.+)Factory": "<rootDir>/__mocks__/workerFactoryMock.js",
"^!!raw-loader!.*": "jest-raw-loader",
"recorderWorkletFactory": "<rootDir>/__mocks__/empty.js",
"@vector-im/compound-web": "<rootDir>/../../node_modules/@vector-im/compound-web",
"@vector-im/compound-web": "<rootDir>/node_modules/@vector-im/compound-web",
},
transformIgnorePatterns: [
"/node_modules/(?!(mime|matrix-js-sdk|uuid|p-retry|is-network-error|react-merge-refs|is-ip|ip-regex|super-regex|function-timeout|time-span|convert-hrtime|clone-regexp|is-regexp|matrix-web-i18n|await-lock|@element-hq/web-shared-components|react-virtuoso|lodash|domutils|domhandler|domelementtype|dom-serializer|entities)).+$",
`${path.join(__dirname, "../..")}/node_modules/.pnpm/(?!(mime|uuid|p-retry|is-network-error|react-merge-refs|is-ip|ip-regex|super-regex|function-timeout|time-span|convert-hrtime|clone-regexp|is-regexp|matrix-web-i18n|await-lock|@element-hq/web-shared-components|react-virtuoso|lodash|domutils|domhandler|domelementtype|dom-serializer|entities)).+$`,
],
collectCoverageFrom: [
"<rootDir>/src/**/*.{js,ts,tsx}",
+1 -1
View File
@@ -66,6 +66,7 @@
"domutils": "^4.0.0",
"emojibase-regex": "^17.0.0",
"escape-html": "^1.0.3",
"events": "^3.3.0",
"file-saver": "^2.0.5",
"filesize": "11.0.17",
"github-markdown-css": "^5.5.1",
@@ -243,6 +244,5 @@
"engines": {
"node": ">=22.18"
},
"packageManager": "pnpm@10.33.4+sha512.1c67b3b359b2d408119ba1ed289f34b8fc3c6873412bec6fd264fbdc82489e510fcbecb9ce9d22dae7f3b76269d8441046014bdca53b9979cd7a561ad631b800",
"private": true
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

+11 -3
View File
@@ -369,6 +369,8 @@ export const LinkedTextConfiguration = {
urlTargetTransformer: urlTargetTransformFunction,
};
type LinkifyOpts = Parameters<typeof _linkifyString>[1];
/**
* Linkifies the given string. This is a wrapper around 'linkifyjs/string'.
*
@@ -376,7 +378,10 @@ export const LinkedTextConfiguration = {
* @param [options] Options for linkifyString.
* @returns Linkified string
*/
export function linkifyString(value: string, options = generateLinkedTextOptions(LinkedTextConfiguration)): string {
export function linkifyString(
value: string,
options: LinkifyOpts = generateLinkedTextOptions(LinkedTextConfiguration),
): string {
return _linkifyString(value, options);
}
@@ -387,7 +392,10 @@ export function linkifyString(value: string, options = generateLinkedTextOptions
* @param [options] Options for linkifyHtml.
* @returns Linkified string
*/
export function linkifyHtml(value: string, options = generateLinkedTextOptions(LinkedTextConfiguration)): string {
export function linkifyHtml(
value: string,
options: LinkifyOpts = generateLinkedTextOptions(LinkedTextConfiguration),
): string {
return _linkifyHtml(value, options);
}
@@ -400,7 +408,7 @@ export function linkifyHtml(value: string, options = generateLinkedTextOptions(L
*/
export function linkifyAndSanitizeHtml(
dirtyHtml: string,
options = generateLinkedTextOptions(LinkedTextConfiguration),
options: LinkifyOpts = generateLinkedTextOptions(LinkedTextConfiguration),
): string {
return sanitizeHtml(linkifyString(dirtyHtml, options), sanitizeHtmlParams);
}
-12
View File
@@ -1,12 +0,0 @@
/*
Copyright 2024 New Vector Ltd.
Copyright 2019 The Matrix.org Foundation C.I.C.
Copyright 2015, 2016 OpenMarket Ltd
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
// Import the js-sdk so the proper `request` object can be set. This does some
// magic with the browser injection to make all subsequent imports work fine.
import "matrix-js-sdk/src/browser-index";
+3 -2
View File
@@ -74,8 +74,9 @@ export class ModuleApi implements Api {
public readonly _registerLegacyRoomListCustomisations = legacyCustomisationsFactory(RoomListCustomisations);
public readonly _registerLegacyUserIdentifierCustomisations =
legacyCustomisationsFactory(UserIdentifierCustomisations);
public readonly _registerLegacyWidgetPermissionsCustomisations =
legacyCustomisationsFactory(WidgetPermissionCustomisations);
public readonly _registerLegacyWidgetPermissionsCustomisations: (
customisations: typeof WidgetPermissionCustomisations,
) => void = legacyCustomisationsFactory(WidgetPermissionCustomisations);
public readonly _registerLegacyWidgetVariablesCustomisations =
legacyCustomisationsFactory(WidgetVariableCustomisations);
/* eslint-enable @typescript-eslint/naming-convention */
+1 -1
View File
@@ -258,7 +258,6 @@ export default (env: string, argv: Record<string, any>): webpack.Configuration =
"$webapp": path.resolve(__dirname, "webapp"),
// Make shared-components imports resolve to EW deps
"counterpart": getPackageRoot("counterpart"),
"@vector-im/compound-web": getPackageRoot("@vector-im/compound-web", ""),
},
fallback: {
@@ -267,6 +266,7 @@ export default (env: string, argv: Record<string, any>): webpack.Configuration =
"net": false,
"tls": false,
"crypto": false,
"events": import.meta.resolve("events/"),
// Polyfill needed by counterpart
"util": import.meta.resolve("util/"),
+1 -1
View File
@@ -42,7 +42,7 @@ cd element-web
Set up your local development link by creating a `.link-config` file with contents like:
```
matrix-js-sdk=/path/to/matrix-js-sdk
matrix-js-sdk=/path/to/matrix-js-sdk=apps/web
```
**Note for Windows users**: Your link config path might need escaping. For example, `matrix-js-sdk=C:\\path\\to\\matrix-js-sdk`.
+4
View File
@@ -62,6 +62,10 @@ export default {
entry: ["scripts/**", "docs/**"],
},
},
ignoreDependencies: [
// Used by multiple packages, raises a false positive for some reason
"events",
],
ignoreExportsUsedInFile: true,
compilers: {
pcss: (text: string) =>
+8 -63
View File
@@ -38,77 +38,22 @@
"lodash": "^4.17.21",
"mermaid": "^11.13.0",
"minimist": "^1.2.6",
"nx": "22.7.2",
"nx": "22.7.4",
"prettier": "3.8.3",
"typescript": "catalog:",
"vitepress": "^1.6.4",
"vitepress-plugin-mermaid": "^2.0.17",
"yaml": "^2.3.3"
},
"pnpm": {
"onlyBuiltDependencies": [
"matrix-js-sdk"
],
"ignoredBuiltDependencies": [
"@sentry/cli",
"nx"
],
"patchedDependencies": {
"@vector-im/matrix-wysiwyg": "patches/@vector-im__matrix-wysiwyg.patch",
"react-blurhash": "patches/react-blurhash.patch",
"linkify-html": "patches/linkify-html.patch",
"@matrix-org/react-sdk-module-api": "patches/@matrix-org__react-sdk-module-api.patch",
"@types/auto-launch": "patches/@types__auto-launch.patch",
"@types/mdx": "patches/@types__mdx.patch",
"await-lock": "patches/await-lock.patch",
"jest-fixed-jsdom": "patches/jest-fixed-jsdom.patch",
"jsdom": "patches/jsdom.patch",
"rollup": "patches/rollup.patch",
"postcss-mixins": "patches/postcss-mixins.patch",
"app-builder-lib": "patches/app-builder-lib.patch",
"knip": "patches/knip.patch",
"plist": "patches/plist.patch",
"@dnd-kit/abstract": "patches/@dnd-kit__abstract.patch"
},
"peerDependencyRules": {
"allowedVersions": {
"react": "19",
"react-dom": "19",
"eslint": "8"
}
},
"allowedDeprecatedVersions": {
"eslint": "8",
"react-beautiful-dnd": "13"
},
"overrides": {
"pretty-format@30>react-is": "19.2.5",
"@types/react": "catalog:",
"@types/react-dom": "catalog:",
"oidc-client-ts": "3.5.0",
"jwt-decode": "4.0.0",
"caniuse-lite": "1.0.30001793",
"markdown-it": "14.1.1",
"matrix-widget-api": "^1.17.0",
"@types/node": "18.19.130",
"config-file-ts": "0.2.8-rc1",
"node-abi": "4.31.0",
"@types/pg-pool": "2.0.7",
"axios@>1.0.0 <=1.15.0": "1.15.2",
"esbuild@<=0.24.2": "0.27.4",
"esbuild@~0.27.0": "0.27.4",
"follow-redirects@1.15.11": "1.16.0",
"brace-expansion@>=5 <5.0.6": "5.0.6",
"ip-address@>=10 <10.1.1": "10.1.1",
"uuid@>=11 <11.1.1": "11.1.1",
"yaml@>=2 <2.8.3": "2.8.4",
"protobufjs@7 <7.5.8": "7.6.1",
"@protobufjs/utf8@1 <1.1.1": "1.1.1"
}
},
"engines": {
"node": ">=22.18"
},
"packageManager": "pnpm@10.33.4+sha512.1c67b3b359b2d408119ba1ed289f34b8fc3c6873412bec6fd264fbdc82489e510fcbecb9ce9d22dae7f3b76269d8441046014bdca53b9979cd7a561ad631b800",
"devEngines": {
"packageManager": {
"name": "pnpm",
"version": "11.2.2+sha512.36e6621fad506178936455e70247b8808ef4ec25797a9f437a93281a020484e2607f6a469a22e982987c3dbb8866e3071514ab10a4a1749e06edcd1ec118436f",
"onFail": "error"
}
},
"private": true
}
+1 -1
View File
@@ -69,6 +69,7 @@
"@vector-im/compound-design-tokens": "catalog:",
"classnames": "^2.5.1",
"counterpart": "^0.18.6",
"events": "^3.3.0",
"html-react-parser": "^6.0.0",
"linkify-html": "4.3.3",
"linkify-react": "4.3.2",
@@ -137,7 +138,6 @@
"engines": {
"node": ">=20.0.0"
},
"packageManager": "pnpm@10.33.4+sha512.1c67b3b359b2d408119ba1ed289f34b8fc3c6873412bec6fd264fbdc82489e510fcbecb9ce9d22dae7f3b76269d8441046014bdca53b9979cd7a561ad631b800",
"peerDependencies": {
"@vector-im/compound-web": "^8.3.5 || ^9.0.0",
"react": "catalog:"
-33
View File
@@ -1,33 +0,0 @@
diff --git a/out/node-module-collector/moduleManager.js b/out/node-module-collector/moduleManager.js
index e9d6d16f8950c01417039d65ed1939009d642b7a..9f47c5e18fb34fe60e4f09bf512f9639aa2d90c0 100644
--- a/out/node-module-collector/moduleManager.js
+++ b/out/node-module-collector/moduleManager.js
@@ -5,6 +5,7 @@ const builder_util_1 = require("builder-util");
const fs = require("fs-extra");
const path = require("path");
const semver = require("semver");
+const searchModule = require("../electron/search-module");
var LogMessageByKey;
(function (LogMessageByKey) {
LogMessageByKey["PKG_DUPLICATE_REF"] = "duplicate dependency references";
@@ -115,15 +116,15 @@ class ModuleManager {
return { packageDir: path.dirname(direct), packageJson: json };
}
}
- // 2) upward hoisted search, then 3) downward non-hoisted search
+ // 2) upward hoisted search, then 3) downward non-hoisted search, then 4) downward from workspace root
const upward = await this.upwardSearch(parentDir, pkgName, requiredRange);
if (upward) {
return upward;
}
- if (skipDownwardSearch) {
- return null;
- }
- return (await this.downwardSearch(parentDir, pkgName, requiredRange)) || null;
+ const workspaceRoot = await searchModule.getProjectRootPath(parentDir);
+ return (await this.downwardSearch(parentDir, pkgName, requiredRange)) ||
+ (await this.downwardSearch(workspaceRoot, pkgName, requiredRange)) ||
+ null;
}
semverSatisfies(found, range) {
if ((0, builder_util_1.isEmptyOrSpaces)(range) || range === "*") {
+362 -188
View File
File diff suppressed because it is too large Load Diff
+81 -3
View File
@@ -1,9 +1,10 @@
nodeLinker: hoisted
linkWorkspacePackages: true
cleanupUnusedCatalogs: true
ignorePatchFailures: false
packages:
- "apps/*"
- "packages/*"
cleanupUnusedCatalogs: true
catalog:
# typescript
typescript: 6.0.3
@@ -27,6 +28,7 @@ catalog:
vitest: 4.1.7
vitest-sonar-reporter: 3.0.0
"@vitest/coverage-v8": 4.1.7
packageExtensions:
fdir:
dependencies:
@@ -36,4 +38,80 @@ packageExtensions:
peerDependencies:
# Silence warning
vite: "^8.0.0"
ignorePatchFailures: false
allowBuilds:
matrix-js-sdk: true
# Installs the CLI, which we do not need
"@sentry/cli": false
# Installs nx cloud client, which we do not need
nx: false
# Runs `vp config` to set up git hooks, which we do not need
unrs-resolver: false
# Prints funding banner
core-js: false
# Builds native bindings, which we do not need
cpu-features: false
# Copies the 7z binaries which match our arch, though somehow works without it
electron-winstaller: false
# Installs esbuild binary, though somehow works without it
esbuild: false
# Performs additional version checks, which we do not need
protobufjs: false
# Builds optional crypto binding, which we do not need
ssh2: false
patchedDependencies:
"@vector-im/matrix-wysiwyg": patches/@vector-im__matrix-wysiwyg.patch
react-blurhash: patches/react-blurhash.patch
linkify-html: patches/linkify-html.patch
"@matrix-org/react-sdk-module-api": patches/@matrix-org__react-sdk-module-api.patch
"@types/auto-launch": patches/@types__auto-launch.patch
"@types/mdx": patches/@types__mdx.patch
await-lock: patches/await-lock.patch
jest-fixed-jsdom: patches/jest-fixed-jsdom.patch
jsdom: patches/jsdom.patch
rollup: patches/rollup.patch
postcss-mixins: patches/postcss-mixins.patch
knip: patches/knip.patch
plist: patches/plist.patch
"@dnd-kit/abstract": patches/@dnd-kit__abstract.patch
peerDependencyRules:
allowedVersions:
react: "19"
react-dom: "19"
eslint: "8"
allowedDeprecatedVersions:
eslint: "8"
react-beautiful-dnd: "13"
overrides:
pretty-format@30>react-is: 19.2.5
"@types/react": "catalog:"
"@types/react-dom": "catalog:"
oidc-client-ts: 3.5.0
jwt-decode: 4.0.0
caniuse-lite: 1.0.30001793
markdown-it: 14.1.1
matrix-widget-api: "^1.17.0"
"@types/node": 18.19.130
config-file-ts: 0.2.8-rc1
node-abi: 4.31.0
"@types/pg-pool": 2.0.7
axios@>1.0.0 <=1.15.0: 1.15.2
esbuild@<=0.24.2: 0.27.4
esbuild@~0.27.0: 0.27.4
follow-redirects@1.15.11: 1.16.0
brace-expansion@>=5 <=5.0.5: 5.0.6
ip-address@>=10 <10.1.1: 10.1.1
uuid@>=11 <11.1.1: 11.1.1
yaml@>=2 <2.8.3: 2.8.4
protobufjs@7 <7.5.8: 7.6.1
"@protobufjs/utf8@1 <1.1.1": 1.1.1
minimumReleaseAgeExclude:
- "matrix-js-sdk"
- "@matrix-org/*"
- "@vector-im/*"
- "@element-hq/*"
+3 -2
View File
@@ -28,8 +28,9 @@ try {
const configFile = await fs.readFile(configPath, "utf-8");
for (const line of configFile.trim().split("\n")) {
if (!line || line.startsWith("#")) continue;
const [dependency, path] = line.split("=");
const dependencyPath = join(nodeModulesPath, dependency);
const [dependency, path, dir] = line.split("=");
const nodeModules = dir ? join(dir, "node_modules") : nodeModulesPath;
const dependencyPath = join(nodeModules, dependency);
try {
try {