Skip to content

Commit 2c2b95c

Browse files
committed
chore: switch to TypeScript 5.8 and @types/node 22
1 parent 9b24a4a commit 2c2b95c

File tree

196 files changed

+2244
-3294
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

196 files changed

+2244
-3294
lines changed

.changeset/smooth-falcons-rush.md

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
---
2+
"@ledgerhq/hw-transport-node-hid-singleton": minor
3+
"@ledgerhq/hw-transport-node-speculos-http": minor
4+
"@ledgerhq/hw-transport-node-hid-noevents": minor
5+
"@ledgerhq/react-native-hw-transport-ble": minor
6+
"@ledgerhq/swift-bridge-hw-transport-ble": minor
7+
"@ledgerhq/hw-transport-node-speculos": minor
8+
"@ledgerhq/swift-bridge-hw-app-solana": minor
9+
"@ledgerhq/swift-bridge-hw-app-eth": minor
10+
"@ledgerhq/coin-tester-polkadot": minor
11+
"@ledgerhq/coin-tester-bitcoin": minor
12+
"@ledgerhq/hw-transport-node-hid": minor
13+
"@ledgerhq/coin-tester-solana": minor
14+
"@ledgerhq/hw-transport-web-ble": minor
15+
"@ledgerhq/hw-transport-mocker": minor
16+
"@ledgerhq/hw-transport-webhid": minor
17+
"@ledgerhq/hw-transport-webusb": minor
18+
"@ledgerhq/coin-module-boilerplate": minor
19+
"@ledgerhq/hw-transport-vault": minor
20+
"@ledgerhq/types-cryptoassets": minor
21+
"@ledgerhq/coin-internet_computer": minor
22+
"@ledgerhq/coin-tester-evm": minor
23+
"@ledgerhq/hw-app-concordium": minor
24+
"@ledgerhq/hw-app-multiversx": minor
25+
"@ledgerhq/hw-transport-http": minor
26+
"@ledgerhq/react-native-hid": minor
27+
"@actions/generate-bot-super-report": minor
28+
"@ledgerhq/hw-app-algorand": minor
29+
"@ledgerhq/hw-app-exchange": minor
30+
"@ledgerhq/hw-app-polkadot": minor
31+
"@actions/mobile-performance-test": minor
32+
"@ledgerhq/hw-app-canton": minor
33+
"@ledgerhq/hw-app-cosmos": minor
34+
"@ledgerhq/hw-app-hedera": minor
35+
"@ledgerhq/hw-app-helium": minor
36+
"@ledgerhq/hw-app-solana": minor
37+
"@ledgerhq/types-devices": minor
38+
"@ledgerhq/cryptoassets": minor
39+
"@ledgerhq/hw-app-aptos": minor
40+
"@ledgerhq/hw-app-kaspa": minor
41+
"@ledgerhq/hw-app-tezos": minor
42+
"@ledgerhq/hw-transport": minor
43+
"@ledgerhq/hw-app-celo": minor
44+
"@ledgerhq/hw-app-icon": minor
45+
"@ledgerhq/hw-app-near": minor
46+
"@ledgerhq/coin-concordium": minor
47+
"@ledgerhq/coin-multiversx": minor
48+
"@ledgerhq/hw-app-btc": minor
49+
"@ledgerhq/hw-app-eth": minor
50+
"@ledgerhq/hw-app-str": minor
51+
"@ledgerhq/hw-app-sui": minor
52+
"@ledgerhq/hw-app-trx": minor
53+
"@ledgerhq/hw-app-vet": minor
54+
"@ledgerhq/hw-app-xrp": minor
55+
"@ledgerhq/types-live": minor
56+
"@ledgerhq/zcash-shielded": minor
57+
"@ledgerhq/hw-ledger-key-ring-protocol": minor
58+
"@ledgerhq/coin-algorand": minor
59+
"@ledgerhq/coin-filecoin": minor
60+
"@ledgerhq/coin-polkadot": minor
61+
"@ledgerhq/hw-bolos": minor
62+
"@ledgerhq/coin-bitcoin": minor
63+
"@ledgerhq/coin-cardano": minor
64+
"@ledgerhq/coin-stellar": minor
65+
"@ledgerhq/coin-vechain": minor
66+
"@ledgerhq/devices": minor
67+
"@ledgerhq/coin-canton": minor
68+
"@ledgerhq/coin-casper": minor
69+
"@ledgerhq/coin-cosmos": minor
70+
"@ledgerhq/coin-hedera": minor
71+
"@ledgerhq/coin-solana": minor
72+
"@ledgerhq/coin-stacks": minor
73+
"@ledgerhq/ledger-key-ring-protocol": minor
74+
"@ledgerhq/errors": minor
75+
"@ledgerhq/coin-modules-monitoring": minor
76+
"@ledgerhq/coin-aptos": minor
77+
"@ledgerhq/coin-kaspa": minor
78+
"@ledgerhq/coin-tezos": minor
79+
"@ledgerhq/coin-aleo": minor
80+
"@ledgerhq/coin-celo": minor
81+
"@ledgerhq/coin-icon": minor
82+
"@ledgerhq/coin-mina": minor
83+
"@ledgerhq/coin-near": minor
84+
"@ledgerhq/coin-tron": minor
85+
"@ledgerhq/logs": minor
86+
"@ledgerhq/wallet-api-acre-module": minor
87+
"@ledgerhq/coin-evm": minor
88+
"@ledgerhq/coin-sui": minor
89+
"@ledgerhq/coin-ton": minor
90+
"@ledgerhq/coin-xrp": minor
91+
"@ledgerhq/disable-network-setup": minor
92+
"@ledgerhq/ledger-trust-service": minor
93+
"@ledgerhq/live-currency-format": minor
94+
"ledger-live-desktop": minor
95+
"@ledgerhq/wallet-api-feature-flag-module": minor
96+
"@ledgerhq/ledger-cal-service": minor
97+
"live-mobile": minor
98+
"@ledgerhq/live-common": minor
99+
"@ledgerhq/live-countervalues": minor
100+
"@ledgerhq/live-signer-canton": minor
101+
"@ledgerhq/live-signer-solana": minor
102+
"@ledgerhq/speculos-transport": minor
103+
"@ledgerhq/native-ui": minor
104+
"@features/market-banner": minor
105+
"@ledgerhq/live-dmk-speculos": minor
106+
"@ledgerhq/react-ui": minor
107+
"@ledgerhq/dummy-wallet-app": minor
108+
"@ledgerhq/live-dmk-desktop": minor
109+
"@ledgerhq/live-signer-aleo": minor
110+
"@ledgerhq/concordium-core": minor
111+
"@ledgerhq/wallet-api-deeplink-module": minor
112+
"@ledgerhq/wallet-api-exchange-module": minor
113+
"@ledgerhq/live-dmk-mobile": minor
114+
"@ledgerhq/live-dmk-shared": minor
115+
"@ledgerhq/live-signer-evm": minor
116+
"@ledgerhq/dummy-live-app": minor
117+
"@ledgerhq/coin-framework": minor
118+
"@ledgerhq/domain-service": minor
119+
"@ledgerhq/device-react": minor
120+
"@ledgerhq/live-network": minor
121+
"@ledgerhq/coin-tester": minor
122+
"@ledgerhq/device-core": minor
123+
"@ledgerhq/live-config": minor
124+
"@ledgerhq/live-github-bot": minor
125+
"@ledgerhq/client-ids": minor
126+
"@ledgerhq/web-tools": minor
127+
"@ledgerhq/evm-tools": minor
128+
"@ledgerhq/ledger-libs": minor
129+
"@ledgerhq/actions-root": minor
130+
"ledger-live-desktop-e2e-tests": minor
131+
"@ledgerhq/psbtv2": minor
132+
"ledger-live-mobile-e2e-tests": minor
133+
"@ledgerhq/live-cli": minor
134+
---
135+
136+
Update TypeScript to latest 5.8.x

apps/cli/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@
8787
"@types/express": "4.17.21",
8888
"@types/invariant": "2.2.37",
8989
"@types/lodash": "4.17.7",
90-
"@types/node": "22.10.10",
90+
"@types/node": "catalog:",
9191
"@types/pako": "2.0.3",
9292
"@types/qrcode-terminal": "0.12.2",
9393
"@types/ws": "8.5.10",

apps/cli/src/commands/device/managerListApps.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ export default {
3838
mergeMap(deviceInfo =>
3939
listAppsUseCase(t, deviceInfo).pipe(
4040
filter(e => e.type === "result"),
41-
// @ts-expect-error we need better typings and safe guard to infer types
4241
map(e => e.result),
4342
repeat(benchmark ? 5 : 1),
4443
),

apps/ledger-live-desktop/index-types.d.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,3 +106,10 @@ interface Window {
106106
// Add variables to the global scope (`declare const` does not seem to work here):
107107

108108
declare var api: Window["api"] | undefined; // eslint-disable-line no-var
109+
110+
// Allow custom properties on global/globalThis (tests, AppGeoBlocker, etc.)
111+
declare global {
112+
interface GlobalThis {
113+
[key: string]: any;
114+
}
115+
}

apps/ledger-live-desktop/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,7 @@
207207
"@types/color": "3.0.6",
208208
"@types/invariant": "2.2.37",
209209
"@types/jest": "catalog:",
210+
"@types/node": "catalog:",
210211
"@types/lodash": "4.17.0",
211212
"@types/react": "catalog:",
212213
"@types/react-dom": "catalog:",
@@ -257,7 +258,7 @@
257258
"storybook-react-rsbuild": "3.2.2",
258259
"tailwindcss": "catalog:",
259260
"ts-node": "10.9.2",
260-
"typescript": "5.4.3",
261+
"typescript": "catalog:",
261262
"yargs": "17.7.2"
262263
}
263264
}

apps/ledger-live-desktop/src/main/cleanupUserData.test.ts

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ describe("UserDataCleanup", () => {
8484
fileEntry("app.json"),
8585
directoryEntry("nested"),
8686
fileEntry("other.txt"),
87-
]);
87+
] as unknown as Awaited<ReturnType<typeof fsPromises.readdir>>);
8888
unlinkMock.mockResolvedValue(undefined);
8989

9090
const cleanup = new UserDataCleanup("/tmp/userdata", {
@@ -97,7 +97,10 @@ describe("UserDataCleanup", () => {
9797
});
9898

9999
it("supports custom regex patterns", async () => {
100-
readdirMock.mockResolvedValue([fileEntry("keep.json"), fileEntry("extra.tmp")]);
100+
readdirMock.mockResolvedValue([
101+
fileEntry("keep.json"),
102+
fileEntry("extra.tmp"),
103+
] as unknown as Awaited<ReturnType<typeof fsPromises.readdir>>);
101104
unlinkMock.mockResolvedValue(undefined);
102105

103106
const cleanup = new UserDataCleanup("/data", { patterns: [/\.tmp$/] });
@@ -108,7 +111,10 @@ describe("UserDataCleanup", () => {
108111
});
109112

110113
it("does nothing when no files match", async () => {
111-
readdirMock.mockResolvedValue([fileEntry("app.json"), fileEntry("keep.json")]);
114+
readdirMock.mockResolvedValue([
115+
fileEntry("app.json"),
116+
fileEntry("keep.json"),
117+
] as unknown as Awaited<ReturnType<typeof fsPromises.readdir>>);
112118

113119
const cleanup = new UserDataCleanup("/tmp/userdata", {
114120
patterns: [/^app\.json\..+$/],
@@ -120,7 +126,10 @@ describe("UserDataCleanup", () => {
120126
});
121127

122128
it("logs failures when cleanup fails", async () => {
123-
readdirMock.mockResolvedValue([fileEntry("app.json.1"), fileEntry("app.json.2")]);
129+
readdirMock.mockResolvedValue([
130+
fileEntry("app.json.1"),
131+
fileEntry("app.json.2"),
132+
] as unknown as Awaited<ReturnType<typeof fsPromises.readdir>>);
124133
unlinkMock.mockRejectedValueOnce(new Error("nope"));
125134
unlinkMock.mockResolvedValueOnce(undefined);
126135

apps/ledger-live-desktop/src/main/db/crypto.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,12 @@ export const decryptData = (raw: string, encryptionKey: string) => {
4747
}
4848
log("db/crypto", "fallback to deprecated API");
4949

50-
// if not, then we fallback to the deprecated API
51-
const decipher = crypto.createDecipher(ENCRYPTION_ALGORITHM, encryptionKey);
50+
// createDecipher removed from @types/node 22 (deprecated in Node) but still exists at runtime
51+
// for now, we accept the legacy usage (production code) but we prioritize fixing it via ticket LIVE-27113
52+
const decipher = (
53+
crypto as unknown as {
54+
createDecipher: (alg: string, key: string) => ReturnType<typeof crypto.createDecipheriv>;
55+
}
56+
).createDecipher(ENCRYPTION_ALGORITHM, encryptionKey);
5257
return Buffer.concat([decipher.update(data), decipher.final()]).toString("utf8");
5358
};

apps/ledger-live-desktop/src/mvvm/features/Send/components/SendFlowLayout.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ export function SendFlowLayout({ isOpen, onClose }: SendFlowLayoutProps) {
4747
)}
4848
<SendHeader />
4949
{StepComponent && (
50-
<div key={wizard.currentStep} className="animate-fade-in flex min-h-0 flex-1 flex-col">
50+
<div key={wizard.currentStep} className="flex min-h-0 flex-1 animate-fade-in flex-col">
5151
<StepComponent />
5252
</div>
5353
)}

apps/ledger-live-desktop/src/mvvm/features/Send/screens/Confirmation/components/Content/ErrorContent.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export const ErrorContent = ({ error }: ErrorContentProps) => {
1818

1919
return (
2020
<div
21-
className="flex flex-col items-center gap-24 -mt-12"
21+
className="-mt-12 flex flex-col items-center gap-24"
2222
data-testid="send-confirmation-error-content"
2323
>
2424
<Spot appearance="error" size={72} />

apps/ledger-live-desktop/src/mvvm/features/Send/screens/Confirmation/components/Content/InfoContent.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export const InfoContent = ({ titleKey, descriptionKey }: InfoContentProps) => {
1212

1313
return (
1414
<div
15-
className="flex flex-col items-center gap-24 -mt-12"
15+
className="-mt-12 flex flex-col items-center gap-24"
1616
data-testid="send-confirmation-info-content"
1717
>
1818
<Spot appearance="info" size={72} />

0 commit comments

Comments
 (0)