From ff86841813f1676923d40b856591784e2440a0b2 Mon Sep 17 00:00:00 2001 From: "Valentin D. Pinkman" Date: Fri, 8 Nov 2024 10:52:52 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20(doc):=20Update=20config=20to=20?= =?UTF-8?q?match=20monorepo=20setup?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/docs/.prettierignore | 0 apps/docs/.prettierrc.js | 3 + apps/docs/CHANGELOG.md | 15 --- apps/docs/eslint.config.mjs | 32 ++++++ apps/docs/next.config.js | 1 + apps/docs/package.json | 21 ++-- apps/docs/pages/_app.mdx | 2 +- .../pages/docs/begginers/exchange_data.mdx | 1 + apps/docs/pages/docs/docs.mdx | 2 - apps/docs/pages/docs/explanations/dmk.mdx | 17 +++- .../pages/docs/explanations/introduction.mdx | 2 +- .../docs/pages/docs/explanations/ledgerjs.mdx | 9 +- .../how_to/build_custom_command.mdx | 4 +- apps/docs/style.css | 98 +++++++++---------- apps/docs/tailwind.config.js | 1 + apps/docs/theme.config.tsx | 2 + apps/docs/tsconfig.eslint.json | 12 +++ apps/docs/tsconfig.json | 42 +++----- apps/sample/package.json | 3 +- package.json | 3 +- .../domain/DefaultTypedDataContextLoader.ts | 8 +- .../service/DefaultDataStoreService.ts | 12 +-- pnpm-lock.yaml | 88 +++++------------ 23 files changed, 184 insertions(+), 194 deletions(-) create mode 100644 apps/docs/.prettierignore create mode 100644 apps/docs/.prettierrc.js delete mode 100644 apps/docs/CHANGELOG.md create mode 100644 apps/docs/eslint.config.mjs create mode 100644 apps/docs/tsconfig.eslint.json diff --git a/apps/docs/.prettierignore b/apps/docs/.prettierignore new file mode 100644 index 000000000..e69de29bb diff --git a/apps/docs/.prettierrc.js b/apps/docs/.prettierrc.js new file mode 100644 index 000000000..9601e1776 --- /dev/null +++ b/apps/docs/.prettierrc.js @@ -0,0 +1,3 @@ +module.exports = { + ...require("@ledgerhq/prettier-config-dsdk"), +}; diff --git a/apps/docs/CHANGELOG.md b/apps/docs/CHANGELOG.md deleted file mode 100644 index 7e934256d..000000000 --- a/apps/docs/CHANGELOG.md +++ /dev/null @@ -1,15 +0,0 @@ -# @ledgerhq/wallet-api-docs - -## 0.3.0 - -### Minor Changes - -- [`de70134`](https://github.com/LedgerHQ/wallet-api/commit/de70134eac5d0b68ee38debcf597da954e233aa1) Thanks [@ComradeAERGO](https://github.com/ComradeAERGO)! - Add missing link - -- [#237](https://github.com/LedgerHQ/wallet-api/pull/237) [`f897a3d`](https://github.com/LedgerHQ/wallet-api/commit/f897a3dd0553a02e3fd8358098de2ac9c6b7d73c) Thanks [@Justkant](https://github.com/Justkant)! - feat: add custom handlers support - -## 0.2.0 - -### Minor Changes - -- [`f1b8f8c`](https://github.com/LedgerHQ/wallet-api/commit/f1b8f8c51689885cc0f9b8ff29f38c25392e095e) Thanks [@Justkant](https://github.com/Justkant)! - feat: add params to save swap history (#228) diff --git a/apps/docs/eslint.config.mjs b/apps/docs/eslint.config.mjs new file mode 100644 index 000000000..6f7e467ff --- /dev/null +++ b/apps/docs/eslint.config.mjs @@ -0,0 +1,32 @@ +import baseConfig from "@ledgerhq/eslint-config-dsdk"; +import globals from "globals"; + +export default [ + ...baseConfig, + { + ignores: [".next"], + }, + { + languageOptions: { + parserOptions: { + project: "./tsconfig.eslint.json", + }, + }, + }, + { + files: [ + "next.config.js", + "postcss.config.js", + "tailwind.config.js", + "theme.config.tsx", + ], + languageOptions: { + globals: { + ...globals.node, + }, + }, + rules: { + "@typescript-eslint/no-var-requires": "off", + }, + }, +]; diff --git a/apps/docs/next.config.js b/apps/docs/next.config.js index 102f41624..22f367e90 100644 --- a/apps/docs/next.config.js +++ b/apps/docs/next.config.js @@ -1,3 +1,4 @@ +// eslint-disable-next-line @typescript-eslint/no-require-imports const withNextra = require("nextra")({ defaultShowCopyCode: true, theme: "nextra-theme-docs", diff --git a/apps/docs/package.json b/apps/docs/package.json index 663d5ef8b..b1dc832a1 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -4,10 +4,14 @@ "description": "", "private": true, "scripts": { - "build": "next build", "dev": "next dev", + "build": "next build", "start": "next start", - "lint": "next lint" + "lint": "eslint", + "lint:fix": "eslint --fix", + "prettier": "prettier . --check", + "prettier:fix": "prettier . --write", + "typecheck": "tsc --noEmit" }, "keywords": [], "author": "", @@ -16,15 +20,18 @@ "autoprefixer": "^10.4.17", "next": "^14.1.0", "nextra": "^2.13.3", - "nextra-theme-blog": "^2.13.3", "nextra-theme-docs": "^2.13.3", "postcss": "^8.4.35", - "react": "^18.2.0", - "react-dom": "^18.2.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", "tailwindcss": "^3.4.1" }, "devDependencies": { - "@types/node": "^20.11.19", - "typescript": "^5.3.3" + "@ledgerhq/eslint-config-dsdk": "workspace:*", + "@ledgerhq/prettier-config-dsdk": "workspace:*", + "@ledgerhq/tsconfig-dsdk": "workspace:*", + "@types/node": "^22.7.5", + "@types/react": "^18.3.11", + "globals": "15.11.0" } } diff --git a/apps/docs/pages/_app.mdx b/apps/docs/pages/_app.mdx index 90dae7c57..d412129bd 100644 --- a/apps/docs/pages/_app.mdx +++ b/apps/docs/pages/_app.mdx @@ -1,5 +1,5 @@ import "../style.css"; export default function App({ Component, pageProps }) { - return + return ; } diff --git a/apps/docs/pages/docs/begginers/exchange_data.mdx b/apps/docs/pages/docs/begginers/exchange_data.mdx index f93e6faff..6446f7b4f 100644 --- a/apps/docs/pages/docs/begginers/exchange_data.mdx +++ b/apps/docs/pages/docs/begginers/exchange_data.mdx @@ -1,4 +1,5 @@ # Exchange data with the device + ## Sending an APDU Once you have a connected device, you can send it APDU commands. diff --git a/apps/docs/pages/docs/docs.mdx b/apps/docs/pages/docs/docs.mdx index bdba1e479..04abedc30 100644 --- a/apps/docs/pages/docs/docs.mdx +++ b/apps/docs/pages/docs/docs.mdx @@ -32,5 +32,3 @@ Here you can found a summary of all the libraries that are composing the DMK | Device Management Kit | [@LedgerHQ/device-mangement-kit](https://www.npmjs.com/package/@ledgerhq/device-management-kit) | 0.4.0 | | Device Signer Ethereum | [@LedgerHQ/device-signer-kit-ethereum](https://www.npmjs.com/package/@ledgerhq/device-signer-kit-ethereum) | 1.0.0 | | Context Module | [@LedgerHQ/context-module](https://www.npmjs.com/package/@ledgerhq/context-module) | 1.0.0 | - - diff --git a/apps/docs/pages/docs/explanations/dmk.mdx b/apps/docs/pages/docs/explanations/dmk.mdx index 57a385f17..620db4379 100644 --- a/apps/docs/pages/docs/explanations/dmk.mdx +++ b/apps/docs/pages/docs/explanations/dmk.mdx @@ -17,7 +17,7 @@ As we wanted to make the project modular. - Open app - Close app - Get battery status -- Execute a flow of commands with **DeviceAction**. +- Execute a flow of commands with **DeviceAction**. > [!NOTE] > At the moment we do not provide the possibility to distinguish two devices of the same model, via WebHID and to avoid connection to the same device twice. @@ -27,18 +27,20 @@ As we wanted to make the project modular. DMK is offering several ways to communicate with the device. ### Send APDU + - This method is not recommended for most of the use cases. - We recommend using the _Command_ or _DeviceAction_ instead. + This method is not recommended for most of the use cases. We recommend using + the _Command_ or _DeviceAction_ instead. You can send APDU commands to the device using the `sendApdu` method of the `dmk` instance. Parameters: + - `sessionId`: string - The session ID, which an identifier of the connection with a device. -- `apdu`: UInt8Array - Byte array of data to be send to the device. +- `apdu`: UInt8Array - Byte array of data to be send to the device. ```typescript - await dmk.sendApdu({ sessionId, apdu }); +await dmk.sendApdu({ sessionId, apdu }); ``` ### Commands @@ -46,6 +48,7 @@ Parameters: Commands are pre-defined actions that you can send to the device. You can use the `sendCommand` method of the `dmk` instance to send a command to the device. Parameters: + - `sessionId`: string - The session ID, which an identifier of the connection with a device. - `command`: Command - The command to be sent to the device. @@ -55,6 +58,7 @@ import { OpenAppCommand } from "@ledgerhq/device-management-kit"; const command = new OpenAppCommand("Bitcoin"); // Open the Bitcoin app await dmk.sendCommand({ sessionId, command }); ``` + ### Device Actions Device actions are a set of commands that are executed in a sequence. @@ -64,6 +68,7 @@ It is returning an observable that will emit different states of the action exec A device action is cancellable, you can cancel it by calling the `cancel` function returned by the `executeDeviceAction` method. Parameters: + - `sessionId`: string - The session ID, which an identifier of the connection with a device. - `deviceAction`: DeviceAction - The DeviceAction to be sent to the device. @@ -75,10 +80,12 @@ const { observable, cancel } = await dmk.executeDeviceAction({ openAppDeviceAction, }); ``` + ## State Management For each connected device, we are managing and providing a device state. The states are: + - `connected`: The device is connected. - `locked`: The device is locked. - `busy`: The device is busy, so not reachable. diff --git a/apps/docs/pages/docs/explanations/introduction.mdx b/apps/docs/pages/docs/explanations/introduction.mdx index 4a5c1f8ed..2f5b75904 100644 --- a/apps/docs/pages/docs/explanations/introduction.mdx +++ b/apps/docs/pages/docs/explanations/introduction.mdx @@ -6,4 +6,4 @@ It has been designed for external developers with the main idea to provide the b It should as maximum as possible abstract the complexity of the communication with the device and provide a simple and easy-to-use API. -It tends to be a replacement for the LedgerJS libraries, mainly `hw-app-XXX` and `transport-XXX` libraries. These libraries are intended to be deprecated in the future. \ No newline at end of file +It tends to be a replacement for the LedgerJS libraries, mainly `hw-app-XXX` and `transport-XXX` libraries. These libraries are intended to be deprecated in the future. diff --git a/apps/docs/pages/docs/explanations/ledgerjs.mdx b/apps/docs/pages/docs/explanations/ledgerjs.mdx index 7be2384f4..aa0f242a1 100644 --- a/apps/docs/pages/docs/explanations/ledgerjs.mdx +++ b/apps/docs/pages/docs/explanations/ledgerjs.mdx @@ -8,12 +8,12 @@ Ledger JS libraries where initially made for **Ledger Live** applications. As Le we have inevitably a big technical debt. Moreover time make that some part of the logic are today hard to understand and to maintain. Moreover, some device behavior are not well handled by the libraries. For example, opening an application on the device will cause unexpected disconnection. -Another feedback we have learnt from partners (software wallets) is that we have a lack of simplicity in the libraries, it require low level knowledge to use them (ex: APDU concept). +Another feedback we have learnt from partners (software wallets) is that we have a lack of simplicity in the libraries, it require low level knowledge to use them (ex: APDU concept). ## Target -LedgerJS was intended for Ledger Live. It was not designed to be used by third party developers. -With DMK we are targeting **third party developers first**. +LedgerJS was intended for Ledger Live. It was not designed to be used by third party developers. +With DMK we are targeting **third party developers first**. ## Abstract complexity @@ -21,6 +21,7 @@ As said above, we wanted to reduce the entry level to interact with Ledger devic So we have tried as much as possible to abstract the complexity of the communication with the device and provide a simple and easy-to-use API. ## Multiple Connected devices + With LedgerJS, it was impossible to be connected at the same time to two devices. With DMK, we have made it possible to connect to multiple devices at the same time and interact from one to another. @@ -28,4 +29,4 @@ With DMK, we have made it possible to connect to multiple devices at the same ti As we are still missing some features in DMK, you may still need to use LedgerJS in some cases. For example, we are missing signer for some blockchains, so you may still need to use LedgerJS to sign transactions. -Some solutions are studied at the moment to provide a better compatibility between DMK and LedgerJS. \ No newline at end of file +Some solutions are studied at the moment to provide a better compatibility between DMK and LedgerJS. diff --git a/apps/docs/pages/docs/integration_walkthroughs/how_to/build_custom_command.mdx b/apps/docs/pages/docs/integration_walkthroughs/how_to/build_custom_command.mdx index 6b0593f61..70e03c1bd 100644 --- a/apps/docs/pages/docs/integration_walkthroughs/how_to/build_custom_command.mdx +++ b/apps/docs/pages/docs/integration_walkthroughs/how_to/build_custom_command.mdx @@ -19,7 +19,7 @@ export class MyCustomCommand } getApdu(): Apdu { - + // Main args for the APDU const getEthAddressArgs: ApduBuilderArgs = { cla: 0xe0, // Command CLA @@ -70,4 +70,4 @@ export class MyCustomCommand ## Usage of ApduBuilder -## Usage of ApduParser \ No newline at end of file +## Usage of ApduParser diff --git a/apps/docs/style.css b/apps/docs/style.css index 9b4732c3b..2a6f5b82f 100644 --- a/apps/docs/style.css +++ b/apps/docs/style.css @@ -1,106 +1,106 @@ /* Hero Section */ .title { - font-size: 2em + font-size: 2em; } .hero { - padding: 60px 20px; - text-align: center; - height: 60vh; - display: flex; - flex-direction: column; - justify-content: center; + padding: 60px 20px; + text-align: center; + height: 60vh; + display: flex; + flex-direction: column; + justify-content: center; } .hero h1 { - font-size: 2.5em; - margin-bottom: 20px; + font-size: 2.5em; + margin-bottom: 20px; } .hero p { - font-size: 1.2em; + font-size: 1.2em; } em { - color: #FF5300; + color: #ff5300; } /* Cards */ .card-container { - display: flex; - justify-content: center; - margin: 40px 0; + display: flex; + justify-content: center; + margin: 40px 0; } .card { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - border-radius: 8px; - padding: 20px; - width: 250px; - text-align: center; - box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); - margin: 0 20px; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + border-radius: 8px; + padding: 20px; + width: 250px; + text-align: center; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); + margin: 0 20px; } .card .icon { - font-size: 3em; + font-size: 3em; } .card h3 { - margin-top: 20px; - margin-bottom: 10px; - font-size: 1.5em; + margin-top: 20px; + margin-bottom: 10px; + font-size: 1.5em; } .card p { - font-size: 1em; - margin-bottom: 20px; + font-size: 1em; + margin-bottom: 20px; } .btn { - display: inline-block; - background-color: #FF5300; - color: white; - padding: 10px 20px; - text-align: center; - border-radius: 4px; - text-decoration: none; + display: inline-block; + background-color: #ff5300; + color: white; + padding: 10px 20px; + text-align: center; + border-radius: 4px; + text-decoration: none; } .btn:hover { - background-color: #FF5300; + background-color: #ff5300; } /* Additional Resources */ .resources-container { - text-align: center; - padding: 40px 20px; + text-align: center; + padding: 40px 20px; } .resources-container h2 { - font-size: 1.8em; - margin-bottom: 20px; + font-size: 1.8em; + margin-bottom: 20px; } .resources-container ul { - list-style: none; - padding: 0; + list-style: none; + padding: 0; } .resources-container ul li { - margin: 10px 0; + margin: 10px 0; } .resources-container ul li a { - font-size: 1.1em; - text-decoration: none; - color: #333; + font-size: 1.1em; + text-decoration: none; + color: #333; } .resources-container ul li a:hover { - text-decoration: underline; + text-decoration: underline; } diff --git a/apps/docs/tailwind.config.js b/apps/docs/tailwind.config.js index f18a040b5..521c405bd 100644 --- a/apps/docs/tailwind.config.js +++ b/apps/docs/tailwind.config.js @@ -1,4 +1,5 @@ /** @type {import("tailwindcss").Config} */ + module.exports = { content: ["./pages/**/*.{js,ts,jsx,tsx,mdx}", "./theme.config.tsx"], theme: { diff --git a/apps/docs/theme.config.tsx b/apps/docs/theme.config.tsx index ba487d86d..600894f9f 100644 --- a/apps/docs/theme.config.tsx +++ b/apps/docs/theme.config.tsx @@ -1,3 +1,5 @@ +/* eslint-disable no-restricted-syntax */ +import React from "react"; import { useRouter } from "next/router"; export default { diff --git a/apps/docs/tsconfig.eslint.json b/apps/docs/tsconfig.eslint.json new file mode 100644 index 000000000..9cb4a43f9 --- /dev/null +++ b/apps/docs/tsconfig.eslint.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "include": [ + "**/*.ts", + "**/*.tsx", + ".next/types/**/*.ts", + "next.config.js", + "postcss.config.js", + "eslint.config.mjs", + "tailwind.config.js" + ] +} diff --git a/apps/docs/tsconfig.json b/apps/docs/tsconfig.json index 695b36f4d..4e49202f2 100644 --- a/apps/docs/tsconfig.json +++ b/apps/docs/tsconfig.json @@ -1,39 +1,19 @@ { - "parserOptions": { - "project": "./tsconfig.json" - }, + "extends": "@ledgerhq/tsconfig-dsdk/tsconfig.web", "compilerOptions": { - "baseUrl": ".", - "target": "es5", - "lib": [ - "dom", - "dom.iterable", - "esnext" + "plugins": [ + { + "name": "next" + } ], - "allowJs": true, - "skipLibCheck": true, - "strict": false, - "forceConsistentCasingInFileNames": true, - "noEmit": true, - "incremental": true, - "esModuleInterop": true, - "isolatedModules": true, - "moduleResolution": "node", - "jsx": "preserve", - "module": "esnext", - "resolveJsonModule": true, - "paths": { - "@components/*": [ - "components/*" - ] - } + "forceConsistentCasingInFileNames": true }, "include": [ "next-env.d.ts", "**/*.ts", - "**/*.tsx" + "**/*.tsx", + "eslint.config.mjs", + "tailwind.config.js" ], - "exclude": [ - "node_modules" - ] -} \ No newline at end of file + "exclude": ["node_modules"] +} diff --git a/apps/sample/package.json b/apps/sample/package.json index c7a7344c3..2234bae3b 100644 --- a/apps/sample/package.json +++ b/apps/sample/package.json @@ -41,7 +41,6 @@ "@types/styled-components": "^5.1.25", "autoprefixer": "^10.4.20", "globals": "15.11.0", - "postcss": "^8.4.47", - "typescript": "5.6.3" + "postcss": "^8.4.47" } } diff --git a/package.json b/package.json index 32fec506f..5717b59e6 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "health-check": "turbo run health-check --output-logs=errors-only --continue", "dmk": "pnpm --filter @ledgerhq/device-management-kit", "context-module": "pnpm --filter @ledgerhq/context-module", - "signer-btc": "pnpm --filter @ledgerhq/signer-btc", + "signer-btc": "pnpm --filter @ledgerhq/device-signer-kit-btc", "signer-eth": "pnpm --filter @ledgerhq/device-signer-kit-ethereum", "signer-solana": "pnpm --filter @ledgerhq/device-signer-kit-solana", "mock-client": "pnpm --filter @ledgerhq/device-transport-kit-mock-client", @@ -25,6 +25,7 @@ "ui": "pnpm --filter @ledgerhq/device-sdk-ui", "flipper": "pnpm --filter @ledgerhq/device-management-kit-flipper-plugin-client", "sample": "pnpm --filter @ledgerhq/device-management-kit-sample", + "doc": "pnpm --filter @ledgerhq/ledger-dmk-docs", "bump": "changeset version", "prerelease": "pnpm recursive exec -- pnpm pack", "release": "changeset publish", diff --git a/packages/signer/context-module/src/typed-data/domain/DefaultTypedDataContextLoader.ts b/packages/signer/context-module/src/typed-data/domain/DefaultTypedDataContextLoader.ts index 759a244a1..7b0b7fcf1 100644 --- a/packages/signer/context-module/src/typed-data/domain/DefaultTypedDataContextLoader.ts +++ b/packages/signer/context-module/src/typed-data/domain/DefaultTypedDataContextLoader.ts @@ -86,8 +86,8 @@ export class DefaultTypedDataContextLoader implements TypedDataContextLoader { address, chainId, }); - payload.ifRight((payload) => { - mappedTokens[tokenIndex] = payload; + payload.ifRight((p) => { + mappedTokens[tokenIndex] = p; }); } } @@ -105,8 +105,8 @@ export class DefaultTypedDataContextLoader implements TypedDataContextLoader { address, chainId, }); - payload.ifRight((payload) => { - mappedTokens[tokenIndex] = payload; + payload.ifRight((p) => { + mappedTokens[tokenIndex] = p; }); } } diff --git a/packages/signer/signer-btc/src/internal/data-store/service/DefaultDataStoreService.ts b/packages/signer/signer-btc/src/internal/data-store/service/DefaultDataStoreService.ts index 80fbdb09b..1ed226b1e 100644 --- a/packages/signer/signer-btc/src/internal/data-store/service/DefaultDataStoreService.ts +++ b/packages/signer/signer-btc/src/internal/data-store/service/DefaultDataStoreService.ts @@ -88,18 +88,18 @@ export class DefaultDataStoreService implements DataStoreService { ); // Check results - return globalCommitment.chain((globalCommitment) => - inputCommitments.chain((inputCommitments) => - outputCommitments.map((outputCommitments) => { + return globalCommitment.chain((global) => + inputCommitments.chain((input) => + outputCommitments.map((output) => { // Compute a merkletree for all inputs and outputs commitments - const inputsTree = this.merkleTreeBuilder.build(inputCommitments); - const outputsTree = this.merkleTreeBuilder.build(outputCommitments); + const inputsTree = this.merkleTreeBuilder.build(input); + const outputsTree = this.merkleTreeBuilder.build(output); // Store the trees store.addMerkleTree(inputsTree); store.addMerkleTree(outputsTree); // Return all the commitments return { - globalCommitment, + globalCommitment: global, inputsRoot: inputsTree.getRoot(), outputsRoot: outputsTree.getRoot(), }; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4e99aacf5..345fb02cf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -77,9 +77,6 @@ importers: nextra: specifier: ^2.13.3 version: 2.13.4(next@14.2.13(@babel/core@7.24.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.48.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - nextra-theme-blog: - specifier: ^2.13.3 - version: 2.13.4(next@14.2.13(@babel/core@7.24.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.48.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(nextra@2.13.4(next@14.2.13(@babel/core@7.24.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.48.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) nextra-theme-docs: specifier: ^2.13.3 version: 2.13.4(next@14.2.13(@babel/core@7.24.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.48.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(nextra@2.13.4(next@14.2.13(@babel/core@7.24.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.48.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -87,21 +84,33 @@ importers: specifier: ^8.4.35 version: 8.4.47 react: - specifier: ^18.2.0 + specifier: ^18.3.1 version: 18.3.1 react-dom: - specifier: ^18.2.0 + specifier: ^18.3.1 version: 18.3.1(react@18.3.1) tailwindcss: specifier: ^3.4.1 - version: 3.4.14(ts-node@10.9.2(@types/node@20.17.6)(typescript@5.6.3)) + version: 3.4.14(ts-node@10.9.2(@types/node@22.8.1)(typescript@5.6.3)) devDependencies: + '@ledgerhq/eslint-config-dsdk': + specifier: workspace:* + version: link:../../packages/config/eslint + '@ledgerhq/prettier-config-dsdk': + specifier: workspace:* + version: link:../../packages/config/prettier + '@ledgerhq/tsconfig-dsdk': + specifier: workspace:* + version: link:../../packages/config/typescript '@types/node': - specifier: ^20.11.19 - version: 20.17.6 - typescript: - specifier: ^5.3.3 - version: 5.6.3 + specifier: ^22.7.5 + version: 22.8.1 + '@types/react': + specifier: ^18.3.11 + version: 18.3.11 + globals: + specifier: 15.11.0 + version: 15.11.0 apps/sample: dependencies: @@ -181,9 +190,6 @@ importers: postcss: specifier: ^8.4.47 version: 8.4.47 - typescript: - specifier: 5.6.3 - version: 5.6.3 packages/config/eslint: devDependencies: @@ -3162,9 +3168,6 @@ packages: '@types/node@18.19.59': resolution: {integrity: sha512-vizm2EqwV/7Zay+A6J3tGl9Lhr7CjZe2HmWS988sefiEmsyP9CeXEleho6i4hJk/8UtZAo0bWN4QPZZr83RxvQ==} - '@types/node@20.17.6': - resolution: {integrity: sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==} - '@types/node@22.7.5': resolution: {integrity: sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==} @@ -6571,18 +6574,6 @@ packages: sass: optional: true - nextra-theme-blog@2.13.4: - resolution: {integrity: sha512-ORVWFW59WY1megGZZtzZE05wa6G24PAYGnKe+H7/xf3TFonOkZvOc+NTJc9res/A1/rRtgkkTz1r24CAhTHAyA==} - peerDependencies: - next: '>=9.5.3' - nextra: 2.13.4 - react: '>=16.13.1' - react-cusdis: ^2.1.3 - react-dom: '>=16.13.1' - peerDependenciesMeta: - react-cusdis: - optional: true - nextra-theme-docs@2.13.4: resolution: {integrity: sha512-2XOoMfwBCTYBt8ds4ZHftt9Wyf2XsykiNo02eir/XEYB+sGeUoE77kzqfidjEOKCSzOHYbK9BDMcg2+B/2vYRw==} peerDependencies: @@ -12115,10 +12106,6 @@ snapshots: dependencies: undici-types: 5.26.5 - '@types/node@20.17.6': - dependencies: - undici-types: 6.19.8 - '@types/node@22.7.5': dependencies: undici-types: 6.19.8 @@ -16576,14 +16563,6 @@ snapshots: - '@babel/core' - babel-plugin-macros - nextra-theme-blog@2.13.4(next@14.2.13(@babel/core@7.24.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.48.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(nextra@2.13.4(next@14.2.13(@babel/core@7.24.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.48.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - next: 14.2.13(@babel/core@7.24.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.48.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - next-themes: 0.2.1(next@14.2.13(@babel/core@7.24.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.48.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - nextra: 2.13.4(next@14.2.13(@babel/core@7.24.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.48.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - nextra-theme-docs@2.13.4(next@14.2.13(@babel/core@7.24.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.48.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(nextra@2.13.4(next@14.2.13(@babel/core@7.24.4)(@opentelemetry/api@1.9.0)(@playwright/test@1.48.0)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@headlessui/react': 1.7.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -17041,13 +17020,13 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.4.47 - postcss-load-config@4.0.2(postcss@8.4.47)(ts-node@10.9.2(@types/node@20.17.6)(typescript@5.6.3)): + postcss-load-config@4.0.2(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.1)(typescript@5.6.3)): dependencies: lilconfig: 3.1.2 yaml: 2.6.0 optionalDependencies: postcss: 8.4.47 - ts-node: 10.9.2(@types/node@20.17.6)(typescript@5.6.3) + ts-node: 10.9.2(@types/node@22.8.1)(typescript@5.6.3) postcss-nested@6.2.0(postcss@8.4.47): dependencies: @@ -18039,7 +18018,7 @@ snapshots: '@pkgr/core': 0.1.1 tslib: 2.8.0 - tailwindcss@3.4.14(ts-node@10.9.2(@types/node@20.17.6)(typescript@5.6.3)): + tailwindcss@3.4.14(ts-node@10.9.2(@types/node@22.8.1)(typescript@5.6.3)): dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -18058,7 +18037,7 @@ snapshots: postcss: 8.4.47 postcss-import: 15.1.0(postcss@8.4.47) postcss-js: 4.0.1(postcss@8.4.47) - postcss-load-config: 4.0.2(postcss@8.4.47)(ts-node@10.9.2(@types/node@20.17.6)(typescript@5.6.3)) + postcss-load-config: 4.0.2(postcss@8.4.47)(ts-node@10.9.2(@types/node@22.8.1)(typescript@5.6.3)) postcss-nested: 6.2.0(postcss@8.4.47) postcss-selector-parser: 6.1.2 resolve: 1.22.8 @@ -18185,25 +18164,6 @@ snapshots: babel-jest: 29.7.0(@babel/core@7.24.4) esbuild: 0.24.0 - ts-node@10.9.2(@types/node@20.17.6)(typescript@5.6.3): - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.9 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 20.17.6 - acorn: 8.13.0 - acorn-walk: 8.3.1 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.6.3 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - optional: true - ts-node@10.9.2(@types/node@22.7.5)(typescript@5.6.3): dependencies: '@cspotcode/source-map-support': 0.8.1