From fb4161b0320de0fc28578b44ed31f5890872eaff Mon Sep 17 00:00:00 2001 From: Chris Duncan Date: Sat, 5 Jul 2025 01:40:00 -0700 Subject: [PATCH] Optionally install browserfied Node buffer to enable LedgerJS libraries and update esbuild to inject it at build time. --- buffer.mjs | 3 ++ esbuild-browser.mjs | 1 + package-lock.json | 70 ++++++++++++++++++++++++++++++++++++++++++++- package.json | 3 +- 4 files changed, 75 insertions(+), 2 deletions(-) create mode 100644 buffer.mjs diff --git a/buffer.mjs b/buffer.mjs new file mode 100644 index 0000000..c40ed3e --- /dev/null +++ b/buffer.mjs @@ -0,0 +1,3 @@ +import buffer from 'buffer/' +const Buffer = buffer.Buffer +export { Buffer as 'Buffer' } diff --git a/esbuild-browser.mjs b/esbuild-browser.mjs index df0bb54..b42ff32 100644 --- a/esbuild-browser.mjs +++ b/esbuild-browser.mjs @@ -9,6 +9,7 @@ await build({ entryPoints: [ { in: './src/main.ts', out: 'main.min' } ], + inject: ['./buffer.mjs'], format: 'esm', legalComments: 'inline', outdir: 'dist', diff --git a/package-lock.json b/package-lock.json index 88fe6b3..eb12a8c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,8 @@ "optionalDependencies": { "@ledgerhq/hw-transport-web-ble": "^6.29.7", "@ledgerhq/hw-transport-webhid": "^6.30.3", - "@ledgerhq/hw-transport-webusb": "^6.29.7" + "@ledgerhq/hw-transport-webusb": "^6.29.7", + "buffer": "^6.0.3" } }, "node_modules/@babel/code-frame": { @@ -764,6 +765,27 @@ } } }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true + }, "node_modules/basic-ftp": { "version": "5.0.5", "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", @@ -774,6 +796,31 @@ "node": ">=10.0.0" } }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, "node_modules/buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", @@ -1181,6 +1228,27 @@ "node": ">= 14" } }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause", + "optional": true + }, "node_modules/import-fresh": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", diff --git a/package.json b/package.json index cbbbb49..cba35cd 100644 --- a/package.json +++ b/package.json @@ -63,7 +63,8 @@ "optionalDependencies": { "@ledgerhq/hw-transport-web-ble": "^6.29.7", "@ledgerhq/hw-transport-webhid": "^6.30.3", - "@ledgerhq/hw-transport-webusb": "^6.29.7" + "@ledgerhq/hw-transport-webusb": "^6.29.7", + "buffer": "^6.0.3" }, "devDependencies": { "@types/node": "^24.0.10", -- 2.47.3