diff --git a/.nvmrc b/.nvmrc index 5767036af0..9e2934aa34 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -22.21.1 +24.11.1 diff --git a/package.json b/package.json index 3080550e77..573056bc64 100644 --- a/package.json +++ b/package.json @@ -310,7 +310,7 @@ "csv-parse": "5.5.6", "danger": "12.3.3", "debug": "4.3.7", - "electron": "39.2.7", + "electron": "40.1.0", "electron-builder": "26.0.14", "electron-mocha": "13.0.1", "endanger": "7.0.4", @@ -397,7 +397,8 @@ "app-builder-lib": "patches/app-builder-lib.patch", "dmg-builder": "patches/dmg-builder.patch", "eslint-plugin-better-tailwindcss": "patches/eslint-plugin-better-tailwindcss.patch", - "framer-motion@6.5.1": "patches/framer-motion@6.5.1.patch" + "framer-motion@6.5.1": "patches/framer-motion@6.5.1.patch", + "fs-xattr": "patches/fs-xattr.patch" }, "onlyBuiltDependencies": [ "@indutny/mac-screen-share", @@ -421,7 +422,7 @@ ] }, "engines": { - "node": "22.21.1" + "node": "24.11.1" }, "build": { "appId": "org.whispersystems.signal-desktop", @@ -704,6 +705,6 @@ ] }, "volta": { - "node": "22.21.1" + "node": "24.11.1" } } diff --git a/patches/fs-xattr.patch b/patches/fs-xattr.patch new file mode 100644 index 0000000000..4a1eb23c13 --- /dev/null +++ b/patches/fs-xattr.patch @@ -0,0 +1,14 @@ +diff --git a/binding.gyp b/binding.gyp +index 9e8d3b65824078700ffe324787e46853ab6faf9e..6072c86e7658bb506a444f3ea807d5338787bf17 100644 +--- a/binding.gyp ++++ b/binding.gyp +@@ -1,6 +1,9 @@ + { + "targets": [ + { ++ 'xcode_settings': { ++ 'MACOSX_DEPLOYMENT_TARGET': '10.15', ++ }, + "target_name": "xattr", + "sources": [ + "src/async.c", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4d82cfd22a..4fec6f0683 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -45,6 +45,9 @@ patchedDependencies: framer-motion@6.5.1: hash: b46fdcd2354c1aebb6b69bcfffc2b1c8928628e3ac6dc0b96ef0cdf01c1f6a6c path: patches/framer-motion@6.5.1.patch + fs-xattr: + hash: 325d1e5f73cce8e15671dbd2394e091aadb71600f41d97d1a8cb63960c188112 + path: patches/fs-xattr.patch got@11.8.5: hash: cfe393dc1cca8970377087e9555a285d1121f75d57223ddd872b1a8d3f8c909b path: patches/got+11.8.5.patch @@ -649,8 +652,8 @@ importers: specifier: 4.3.7 version: 4.3.7(supports-color@8.1.1) electron: - specifier: 39.2.7 - version: 39.2.7 + specifier: 40.1.0 + version: 40.1.0 electron-builder: specifier: 26.0.14 version: 26.0.14(electron-builder-squirrel-windows@26.0.14) @@ -825,7 +828,7 @@ importers: optionalDependencies: fs-xattr: specifier: 0.3.0 - version: 0.3.0 + version: 0.3.0(patch_hash=325d1e5f73cce8e15671dbd2394e091aadb71600f41d97d1a8cb63960c188112) packages/mute-state-change: dependencies: @@ -4144,6 +4147,9 @@ packages: '@types/node@22.19.1': resolution: {integrity: sha512-LCCV0HdSZZZb34qifBsyWlUmok6W7ouER+oQIGBScS8EsZsQbrtFTUrDX4hOl+CS6p7cnNC4td+qrSVGSCTUfQ==} + '@types/node@24.10.9': + resolution: {integrity: sha512-ne4A0IpG3+2ETuREInjPNhUGis1SFjv1d5asp8MzEAGtOZeTeHVDOYqOgqfhvseqg/iXty2hjBf1zAOb7RNiNw==} + '@types/normalize-path@3.0.2': resolution: {integrity: sha512-DO++toKYPaFn0Z8hQ7Tx+3iT9t77IJo/nDiqTXilgEP+kPNIYdpS9kh3fXuc53ugqwp9pxC1PVjCpV1tQDyqMA==} @@ -5841,8 +5847,8 @@ packages: engines: {node: '>= 12.20.55'} hasBin: true - electron@39.2.7: - resolution: {integrity: sha512-KU0uFS6LSTh4aOIC3miolcbizOFP7N1M46VTYVfqIgFiuA2ilfNaOHLDS9tCMvwwHRowAsvqBrh9NgMXcTOHCQ==} + electron@40.1.0: + resolution: {integrity: sha512-2j/kvw7uF0H1PnzYBzw2k2Q6q16J8ToKrtQzZfsAoXbbMY0l5gQi2DLOauIZLzwp4O01n8Wt/74JhSRwG0yj9A==} engines: {node: '>= 12.20.55'} hasBin: true @@ -8324,8 +8330,8 @@ packages: no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} - node-abi@3.77.0: - resolution: {integrity: sha512-DSmt0OEcLoK4i3NuscSbGjOf3bqiDEutejqENSplMSFA/gmB8mkED9G4pKWnPl7MDU4rSHebKPHeitpDfyH0cQ==} + node-abi@3.87.0: + resolution: {integrity: sha512-+CGM1L1CgmtheLcBuleyYOn7NWPVu0s0EJH2C4puxgEZb9h8QpR9G2dBfZJOAUhi7VQxuBPMd0hiISWcTyiYyQ==} engines: {node: '>=10'} node-abort-controller@3.1.1: @@ -10104,6 +10110,7 @@ packages: tar@7.4.3: resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==} engines: {node: '>=18'} + deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exhorbitant rates) by contacting i@izs.me tar@7.5.2: resolution: {integrity: sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==} @@ -10393,6 +10400,9 @@ packages: undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + undici-types@7.16.0: + resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} + unified@9.2.2: resolution: {integrity: sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==} @@ -11394,7 +11404,7 @@ snapshots: detect-libc: 2.0.4 fs-extra: 10.1.0 got: 11.8.5(patch_hash=cfe393dc1cca8970377087e9555a285d1121f75d57223ddd872b1a8d3f8c909b) - node-abi: 3.77.0 + node-abi: 3.87.0 node-api-version: 0.2.1 ora: 5.4.1 read-binary-file-arch: 1.0.6 @@ -14408,7 +14418,7 @@ snapshots: '@storybook/builder-webpack5@8.4.4(@swc/core@1.10.16(@swc/helpers@0.5.15))(esbuild@0.25.9)(storybook@8.4.4(bufferutil@4.0.9)(prettier@3.7.4)(utf-8-validate@5.0.10))(typescript@5.6.3)(webpack-cli@5.1.4)': dependencies: '@storybook/core-webpack': 8.4.4(storybook@8.4.4(bufferutil@4.0.9)(prettier@3.7.4)(utf-8-validate@5.0.10)) - '@types/node': 22.13.4 + '@types/node': 22.19.1 '@types/semver': 7.5.8 browser-assert: 1.2.1 case-sensitive-paths-webpack-plugin: 2.4.0 @@ -14465,7 +14475,7 @@ snapshots: '@storybook/core-webpack@8.4.4(storybook@8.4.4(bufferutil@4.0.9)(prettier@3.7.4)(utf-8-validate@5.0.10))': dependencies: - '@types/node': 22.13.4 + '@types/node': 22.19.1 storybook: 8.4.4(bufferutil@4.0.9)(prettier@3.7.4)(utf-8-validate@5.0.10) ts-dedent: 2.2.0 @@ -14510,7 +14520,7 @@ snapshots: '@storybook/core-webpack': 8.4.4(storybook@8.4.4(bufferutil@4.0.9)(prettier@3.7.4)(utf-8-validate@5.0.10)) '@storybook/react': 8.4.4(@storybook/test@8.4.4(storybook@8.4.4(bufferutil@4.0.9)(prettier@3.7.4)(utf-8-validate@5.0.10)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.4(bufferutil@4.0.9)(prettier@3.7.4)(utf-8-validate@5.0.10))(typescript@5.6.3) '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.6.3)(webpack@5.96.1) - '@types/node': 22.13.4 + '@types/node': 22.19.1 '@types/semver': 7.5.8 find-up: 5.0.0 magic-string: 0.30.17 @@ -15084,6 +15094,10 @@ snapshots: dependencies: undici-types: 6.21.0 + '@types/node@24.10.9': + dependencies: + undici-types: 7.16.0 + '@types/normalize-path@3.0.2': {} '@types/parse-json@4.0.2': {} @@ -17070,10 +17084,10 @@ snapshots: transitivePeerDependencies: - supports-color - electron@39.2.7: + electron@40.1.0: dependencies: '@electron/get': 2.0.3 - '@types/node': 22.19.1 + '@types/node': 24.10.9 extract-zip: 2.0.1 transitivePeerDependencies: - supports-color @@ -18103,7 +18117,7 @@ snapshots: fs-monkey@1.0.6: {} - fs-xattr@0.3.0: + fs-xattr@0.3.0(patch_hash=325d1e5f73cce8e15671dbd2394e091aadb71600f41d97d1a8cb63960c188112): optional: true fs.realpath@1.0.0: {} @@ -20220,7 +20234,7 @@ snapshots: lower-case: 2.0.2 tslib: 2.8.1 - node-abi@3.77.0: + node-abi@3.87.0: dependencies: semver: 7.6.3 @@ -22610,6 +22624,8 @@ snapshots: undici-types@6.21.0: {} + undici-types@7.16.0: {} + unified@9.2.2: dependencies: '@types/unist': 2.0.11 diff --git a/ts/test-node/util/resolveCanonicalLocales_test.node.ts b/ts/test-node/util/resolveCanonicalLocales_test.node.ts index e97171f8b9..c875fb2b60 100644 --- a/ts/test-node/util/resolveCanonicalLocales_test.node.ts +++ b/ts/test-node/util/resolveCanonicalLocales_test.node.ts @@ -13,7 +13,10 @@ describe('resolveCanonicalLocales', () => { }); it('removes invalid locales', () => { - assert.deepEqual(resolveCanonicalLocales(['!@#$', 'POSIX', 'en']), ['en']); + assert.deepEqual(resolveCanonicalLocales(['!@#$', 'POSIX', 'en']), [ + 'posix', + 'en', + ]); }); it('defaults to en if no valid locales are provided', () => {