From 1d00084202e2b2c86b3c11042510e35f8babab7a Mon Sep 17 00:00:00 2001 From: Sander Declerck Date: Fri, 28 Nov 2025 15:03:36 +0100 Subject: [PATCH] Externalize node-forge --- build.js | 15 +++++++++------ .../safe-chain/src/registryProxy/certUtils.js | 5 ----- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/build.js b/build.js index 00f7464..eefb2d3 100644 --- a/build.js +++ b/build.js @@ -32,7 +32,7 @@ async function bundleSafeChain() { platform: "node", target: "node24", outfile: "./build/bin/safe-chain.cjs", - external: ["certifi"], + external: ["certifi", "node-forge"], }); } @@ -53,11 +53,13 @@ async function copyShellScripts() { async function copyCertifi() { await mkdir("./build/node_modules/certifi", { recursive: true }); - await cp( - "./node_modules/certifi/", - "./build/node_modules/certifi", - { recursive: true } - ); + await mkdir("./build/node_modules/certifi", { recursive: true }); + await cp("./node_modules/certifi/", "./build/node_modules/certifi", { + recursive: true, + }); + await cp("./node_modules/node-forge/", "./build/node_modules/node-forge", { + recursive: true, + }); } async function copyAndModifyPackageJson() { const packageJsonContent = await readFile( @@ -80,6 +82,7 @@ async function copyAndModifyPackageJson() { outputPath: "dist", assets: [ "node_modules/certifi/**/*", + "node_modules/node-forge/**/*", "bin/startup-scripts/**/*", "bin/path-wrappers/**/*", ], diff --git a/packages/safe-chain/src/registryProxy/certUtils.js b/packages/safe-chain/src/registryProxy/certUtils.js index 7a5a5c7..6b326c8 100644 --- a/packages/safe-chain/src/registryProxy/certUtils.js +++ b/packages/safe-chain/src/registryProxy/certUtils.js @@ -3,11 +3,6 @@ import path from "path"; import fs from "fs"; import os from "os"; -// Force node-forge to use pure JavaScript instead of native crypto -// This prevents segmentation faults in pkg binaries on Linux -// @ts-ignore - options exists but isn't in the type definitions -forge.options.usePureJavaScript = true; - const certFolder = path.join(os.homedir(), ".safe-chain", "certs"); const ca = loadCa();