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,