From 95d436100db9f7911f05b51c87ff47b0cce986ae Mon Sep 17 00:00:00 2001 From: Sander Declerck Date: Fri, 28 Nov 2025 15:40:50 +0100 Subject: [PATCH] Again, try pure javascript --- build.js | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/build.js b/build.js index 667e2ed..ecc49e7 100644 --- a/build.js +++ b/build.js @@ -26,15 +26,6 @@ async function clearOutputFolder() { } async function bundleSafeChain() { - // Read the forge.js file and modify it to use pure JavaScript - const forgeContent = await readFile("./node_modules/node-forge/lib/forge.js", "utf-8"); - const modifiedForge = forgeContent.replace( - "usePureJavaScript: false", - "usePureJavaScript: true" - ); - await mkdir("./build/temp", { recursive: true }); - await writeFile("./build/temp/forge.js", modifiedForge); - await build({ entryPoints: ["./packages/safe-chain/bin/safe-chain.js"], bundle: true, @@ -42,10 +33,17 @@ async function bundleSafeChain() { target: "node24", outfile: "./build/bin/safe-chain.cjs", external: ["certifi"], - alias: { - "node-forge/lib/forge": "./build/temp/forge.js", - }, }); + + // Post-process: Replace all usePureJavaScript: false with true + // This ensures node-forge uses pure JavaScript crypto instead of native bindings + // which prevents segmentation faults in pkg binaries on Linux + let bundledContent = await readFile("./build/bin/safe-chain.cjs", "utf-8"); + bundledContent = bundledContent.replace( + /usePureJavaScript:\s*false/g, + "usePureJavaScript: true" + ); + await writeFile("./build/bin/safe-chain.cjs", bundledContent); } async function copyShellScripts() {