Blob Blame History Raw
diff --git a/package.json b/package.json
index 9469638..d81424f 100644
--- a/package.json
+++ b/package.json
@@ -61,5 +61,9 @@
     "d3-scale": "^3.2.1",
     "d3-selection": "^1.4.1",
     "d3-transition": "^1.3.2"
+  },
+  "resolutions": {
+    "crypto-browserify": "https://registry.yarnpkg.com/@favware/skip-dependency/-/skip-dependency-1.1.1.tgz",
+    "http-signature": "https://registry.yarnpkg.com/@favware/skip-dependency/-/skip-dependency-1.1.1.tgz"
   }
 }
diff --git a/webpack.config.js b/webpack.config.js
index 00e171a..8997a9f 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -8,6 +8,13 @@ const ScriptExtHtmlWebpackPlugin = require('script-ext-html-webpack-plugin')
 const TerserPlugin = require('terser-webpack-plugin')
 const packageFile = require('./package.json')
 
+// monkey patch crypto module to not use deprecated md4 hash algorithm,
+// which is removed in OpenSSL 3.0
+// https://github.com/webpack/webpack/issues/13572#issuecomment-923736472
+const crypto = require("crypto");
+const crypto_orig_createHash = crypto.createHash;
+crypto.createHash = algorithm => crypto_orig_createHash(algorithm == "md4" ? "sha256" : algorithm);
+
 module.exports = [{
     context: path.join(__dirname, 'src'),
     entry: {
@@ -21,6 +28,9 @@ module.exports = [{
         libraryExport: 'default',
         libraryTarget: 'umd'
     },
+    node: {
+        crypto: false
+    },
     plugins: [
         new CopyWebpackPlugin([{
             from: 'flamegraph.css',
@@ -58,6 +68,9 @@ module.exports = [{
         library: ['flamegraph', '[name]'],
         libraryTarget: 'umd'
     },
+    node: {
+        crypto: false
+    },
     module: {
         rules: [{
             test: /\.js$/,
@@ -79,6 +92,9 @@ module.exports = [{
         path: path.resolve(__dirname, 'dist', 'templates'),
         filename: 'bundle.js'
     },
+    node: {
+        crypto: false
+    },
     plugins: [
         new CleanWebpackPlugin({
             protectWebpackAssets: false,