From 15099da9dd2cc225c45e1970a90072b27a18ae6a Mon Sep 17 00:00:00 2001 From: Andreas Herrmann Date: Thu, 10 Mar 2022 14:15:18 +0100 Subject: [PATCH 1/3] Update puppeteer for M1 support See https://github.com/puppeteer/puppeteer/issues/6622#issuecomment-906476717 changelog_begin - [Daml Assistant] The create-daml-app template now depends on a more recent version of puppeteer to ensure MacOS M1 support. See https://github.com/puppeteer/puppeteer/issues/6622#issuecomment-906476717 This also requires a later version of react-scripts for compatibility with later Chrome versions, See https://github.com/webpack/webpack-dev-server/issues/1491 changelog_end --- compatibility/bazel_tools/create-daml-app/testDeps.json | 2 +- templates/create-daml-app-test-resources/testDeps.json | 2 +- templates/create-daml-app/ui/package.json.template | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/compatibility/bazel_tools/create-daml-app/testDeps.json b/compatibility/bazel_tools/create-daml-app/testDeps.json index cd47be24a141..3544b1a4a86a 100644 --- a/compatibility/bazel_tools/create-daml-app/testDeps.json +++ b/compatibility/bazel_tools/create-daml-app/testDeps.json @@ -4,7 +4,7 @@ "@types/node": "^13.11.1", "@types/puppeteer": "^3.0.1", "@types/wait-on": "^4.0.0", - "puppeteer": "^4.0.1", + "puppeteer": "^10.0.0", "wait-on": "^4.0.2" } } diff --git a/templates/create-daml-app-test-resources/testDeps.json b/templates/create-daml-app-test-resources/testDeps.json index cd47be24a141..3544b1a4a86a 100644 --- a/templates/create-daml-app-test-resources/testDeps.json +++ b/templates/create-daml-app-test-resources/testDeps.json @@ -4,7 +4,7 @@ "@types/node": "^13.11.1", "@types/puppeteer": "^3.0.1", "@types/wait-on": "^4.0.0", - "puppeteer": "^4.0.1", + "puppeteer": "^10.0.0", "wait-on": "^4.0.2" } } diff --git a/templates/create-daml-app/ui/package.json.template b/templates/create-daml-app/ui/package.json.template index 2d43246c0fdd..c4e07cf32866 100644 --- a/templates/create-daml-app/ui/package.json.template +++ b/templates/create-daml-app/ui/package.json.template @@ -43,7 +43,7 @@ "@types/react-dom": "^17.0.0", "@types/dotenv": "^8.2.0", "http-proxy-middleware": "^1.0.4", - "react-scripts": "^4.0.3", + "react-scripts": "^5.0.0", "typescript": "~3.8.3" } } From 90423359928e88d6dd474b4ea60b8cb4b8e0d20e Mon Sep 17 00:00:00 2001 From: Andreas Herrmann Date: Thu, 10 Mar 2022 18:02:20 +0100 Subject: [PATCH 2/3] Webpack 5 no longer includes shims See https://github.com/facebook/create-react-app/issues/11756. This uses react-app-rewired to workaround the issue and remap crypto to crypto-browserify. See https://github.com/facebook/create-react-app/issues/11756#issuecomment-1001130053. --- templates/create-daml-app/config-overrides.js | 22 +++++++++++++++++++ .../create-daml-app/ui/package.json.template | 3 +++ 2 files changed, 25 insertions(+) create mode 100644 templates/create-daml-app/config-overrides.js diff --git a/templates/create-daml-app/config-overrides.js b/templates/create-daml-app/config-overrides.js new file mode 100644 index 000000000000..807715ace35c --- /dev/null +++ b/templates/create-daml-app/config-overrides.js @@ -0,0 +1,22 @@ +/* config-overrides.js */ +const webpack = require('webpack'); +module.exports = function override(config, env) { + config.resolve.fallback = { + //url: require.resolve('url'), + //assert: require.resolve('assert'), + crypto: require.resolve('crypto-browserify'), + //http: require.resolve('stream-http'), + //https: require.resolve('https-browserify'), + //os: require.resolve('os-browserify/browser'), + //buffer: require.resolve('buffer'), + //stream: require.resolve('stream-browserify'), + }; + config.plugins.push( + new webpack.ProvidePlugin({ + process: 'process/browser', + Buffer: ['buffer', 'Buffer'], + }), + ); + + return config; +} diff --git a/templates/create-daml-app/ui/package.json.template b/templates/create-daml-app/ui/package.json.template index c4e07cf32866..6e30cc1bcee1 100644 --- a/templates/create-daml-app/ui/package.json.template +++ b/templates/create-daml-app/ui/package.json.template @@ -8,9 +8,12 @@ "@daml/react": "__VERSION__", "@daml/types": "__VERSION__", "@daml/hub-react": "^1.0.0", + "crypto": "npm:crypto-browserify", + "crypto-browserify": "^3.12.0", "dotenv": "^8.2.0", "jwt-simple": "^0.5.6", "react": "^17.0.0", + "react-app-rewired": "^2.1.9", "react-dom": "^17.0.0", "semantic-ui-css": "^2.4.1", "semantic-ui-react": "^2.0.0" From 43786109d4b83bab179b72e58b24be5641626656 Mon Sep 17 00:00:00 2001 From: Gary Verhaegen Date: Thu, 17 Mar 2022 13:37:07 +0100 Subject: [PATCH 3/3] fix some webpack config issues --- .../create-daml-app/{ => ui}/config-overrides.js | 2 +- templates/create-daml-app/ui/package.json.template | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) rename templates/create-daml-app/{ => ui}/config-overrides.js (92%) diff --git a/templates/create-daml-app/config-overrides.js b/templates/create-daml-app/ui/config-overrides.js similarity index 92% rename from templates/create-daml-app/config-overrides.js rename to templates/create-daml-app/ui/config-overrides.js index 807715ace35c..088d3242477f 100644 --- a/templates/create-daml-app/config-overrides.js +++ b/templates/create-daml-app/ui/config-overrides.js @@ -9,7 +9,7 @@ module.exports = function override(config, env) { //https: require.resolve('https-browserify'), //os: require.resolve('os-browserify/browser'), //buffer: require.resolve('buffer'), - //stream: require.resolve('stream-browserify'), + stream: require.resolve('stream-browserify'), }; config.plugins.push( new webpack.ProvidePlugin({ diff --git a/templates/create-daml-app/ui/package.json.template b/templates/create-daml-app/ui/package.json.template index 6e30cc1bcee1..16f63d3c0746 100644 --- a/templates/create-daml-app/ui/package.json.template +++ b/templates/create-daml-app/ui/package.json.template @@ -8,7 +8,6 @@ "@daml/react": "__VERSION__", "@daml/types": "__VERSION__", "@daml/hub-react": "^1.0.0", - "crypto": "npm:crypto-browserify", "crypto-browserify": "^3.12.0", "dotenv": "^8.2.0", "jwt-simple": "^0.5.6", @@ -16,12 +15,13 @@ "react-app-rewired": "^2.1.9", "react-dom": "^17.0.0", "semantic-ui-css": "^2.4.1", - "semantic-ui-react": "^2.0.0" + "semantic-ui-react": "^2.0.0", + "stream-browserify": "^3.0.0" }, "scripts": { - "start": "react-scripts start", - "build": "react-scripts build", - "test": "react-scripts test --testURL='http://localhost:7575'", + "start": "react-app-rewired start", + "build": "react-app-rewired build", + "test": "react-app-rewired test --testURL='http://localhost:7575'", "eject": "react-scripts eject", "lint": "eslint --ext .js,.jsx,.ts,.tsx src/" }, @@ -45,6 +45,7 @@ "@types/react": "^17.0.0", "@types/react-dom": "^17.0.0", "@types/dotenv": "^8.2.0", + "process": "0.11.10", "http-proxy-middleware": "^1.0.4", "react-scripts": "^5.0.0", "typescript": "~3.8.3"