-
- {content}
+
+
+
+
+
+
+ {intl.formatMessage(messages.confirm)}
+
+
+ {intl.formatMessage(messages.instruction1)}
+
+
+ {intl.formatMessage(messages.instruction2)}
+
);
diff --git a/packages/yoroi-extension/ledger/components/connect/operation/send/SignMessageBlock.scss b/packages/yoroi-extension/ledger/components/connect/operation/send/SignMessageBlock.scss
new file mode 100644
index 0000000000..65e875e39c
--- /dev/null
+++ b/packages/yoroi-extension/ledger/components/connect/operation/send/SignMessageBlock.scss
@@ -0,0 +1,35 @@
+.component {
+ width: 100%;
+ height: 100%;
+ display: flex;
+ flex-grow: 1;
+ flex-direction: column;
+ .title {
+ margin: auto;
+ }
+ .content {
+ margin: auto;
+ flex-grow: 1;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ }
+ .confirm {
+ //font-family: Rubik;
+ font-size: 18px;
+ font-weight: 600;
+ line-height: 26px;
+ text-align: center;
+ text-underline-position: from-font;
+ text-decoration-skip-ink: none;
+ }
+ .instruction {
+ //font-family: Rubik;
+ font-size: 16px;
+ font-weight: 400;
+ line-height: 24px;
+ text-align: center;
+ text-underline-position: from-font;
+ text-decoration-skip-ink: none;
+ }
+}
diff --git a/packages/yoroi-extension/ledger/i18n/locales/en-US.json b/packages/yoroi-extension/ledger/i18n/locales/en-US.json
index 26ccdcaf32..1a90de9bd6 100644
--- a/packages/yoroi-extension/ledger/i18n/locales/en-US.json
+++ b/packages/yoroi-extension/ledger/i18n/locales/en-US.json
@@ -62,5 +62,8 @@
"hint.catalystStep6": "Confirm the reward address by pressing
both buttons.",
"hint.catalystStep7": "Confirm the nonce by pressing
both buttons.",
"hint.catalystStep8": "Confirm voting key registration by pressing the
right button.",
- "hint.catalystStep9": "Confirm the auxilliary data hash by pressing
both buttons."
+ "hint.catalystStep9": "Confirm the auxilliary data hash by pressing
both buttons.",
+ "sign.data.confirm": "Confirm on your hardware wallet",
+ "sign.data.instruction1": "Take your hardware wallet device and follow the instructions there.",
+ "sign.data.instruction2": "Make sure you confirm a trusted action."
}
diff --git a/packages/yoroi-extension/package-lock.json b/packages/yoroi-extension/package-lock.json
index 3e5196a2bd..eecc7827e2 100644
--- a/packages/yoroi-extension/package-lock.json
+++ b/packages/yoroi-extension/package-lock.json
@@ -1,20 +1,21 @@
{
"name": "yoroi",
- "version": "5.4.600",
+ "version": "5.4.601",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "yoroi",
- "version": "5.4.600",
+ "version": "5.4.601",
"license": "MIT",
"dependencies": {
"@amplitude/analytics-browser": "^2.1.3",
"@babel/preset-typescript": "^7.24.7",
+ "@bringweb3/chrome-extension-kit": "^1.2.12",
"@cardano-foundation/ledgerjs-hw-app-cardano": "7.1.3",
"@emotion/react": "^11.4.1",
"@emotion/styled": "^11.3.0",
- "@emurgo/cardano-message-signing-browser": "1.0.1",
+ "@emurgo/cardano-message-signing-browser": "1.1.0",
"@emurgo/cardano-serialization-lib-browser": "13.2.1",
"@emurgo/cip14-js": "2.0.0",
"@emurgo/cip4-js": "1.0.5",
@@ -79,6 +80,7 @@
"react-blockies": "1.4.1",
"react-copy-to-clipboard": "5.0.3",
"react-dom": "17.0.2",
+ "react-helmet": "6.1.0",
"react-intl": "2.9.0",
"react-markdown": "5.0.3",
"react-query": "^3.39.3",
@@ -113,7 +115,7 @@
"@babel/register": "7.12.13",
"@babel/runtime": "7.12.18",
"@babel/runtime-corejs3": "7.12.18",
- "@emurgo/cardano-message-signing-nodejs": "1.0.1",
+ "@emurgo/cardano-message-signing-nodejs": "1.1.0",
"@emurgo/cardano-serialization-lib-nodejs": "13.2.1",
"@emurgo/cross-csl-nodejs": "6.2.1",
"@pmmmwh/react-refresh-webpack-plugin": "0.5.11",
@@ -2136,6 +2138,26 @@
"integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
"dev": true
},
+ "node_modules/@bringweb3/chrome-extension-kit": {
+ "version": "1.2.12",
+ "resolved": "https://registry.npmjs.org/@bringweb3/chrome-extension-kit/-/chrome-extension-kit-1.2.12.tgz",
+ "integrity": "sha512-ilt+oHWOfGavDuQ2sJjIBHzyQ2WJVUosoKlA+xxUb6BrAHMBKbH3FQhnxagwQtPRdetHt4Rm6qMaGW/+wpYD/g==",
+ "dependencies": {
+ "uuid": "^11.0.3"
+ }
+ },
+ "node_modules/@bringweb3/chrome-extension-kit/node_modules/uuid": {
+ "version": "11.0.5",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.0.5.tgz",
+ "integrity": "sha512-508e6IcKLrhxKdBbcA2b4KQZlLVp2+J5UwQ6F7Drckkc5N9ZJwFa4TgWtsww9UG8fGHbm6gbV19TdM5pQ4GaIA==",
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
+ "bin": {
+ "uuid": "dist/esm/bin/uuid"
+ }
+ },
"node_modules/@cardano-foundation/ledgerjs-hw-app-cardano": {
"version": "7.1.3",
"resolved": "https://registry.npmjs.org/@cardano-foundation/ledgerjs-hw-app-cardano/-/ledgerjs-hw-app-cardano-7.1.3.tgz",
@@ -2428,14 +2450,14 @@
"integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww=="
},
"node_modules/@emurgo/cardano-message-signing-browser": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@emurgo/cardano-message-signing-browser/-/cardano-message-signing-browser-1.0.1.tgz",
- "integrity": "sha512-yC4Ymq44WR0bXO1wzxCoyc2W/RD1KSAla0oYhin7IYoVkp2raGp8wt7QNF4pDdNnTcejn5fyPyYY9dL4666H1w=="
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@emurgo/cardano-message-signing-browser/-/cardano-message-signing-browser-1.1.0.tgz",
+ "integrity": "sha512-LyeiGIqCyZu9DZnKsi4wlBjZA1MN+uy3Cqpb5J6RZWvFXDJnCoxrYB/EixUiGRD/la4WsldBgtPsrIHyGsVkpg=="
},
"node_modules/@emurgo/cardano-message-signing-nodejs": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@emurgo/cardano-message-signing-nodejs/-/cardano-message-signing-nodejs-1.0.1.tgz",
- "integrity": "sha512-PoKh1tQnJX18f8iEr8Jk1KXxKCn9eqaSslMI1pyOJvYRJhQVDLCh0+9YReufjp0oFJIY1ShcrR+4/WnECVZUKQ==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@emurgo/cardano-message-signing-nodejs/-/cardano-message-signing-nodejs-1.1.0.tgz",
+ "integrity": "sha512-PQRc8K8wZshEdmQenNUzVtiI8oJNF/1uAnBhidee5C4o1l2mDLOW+ur46HWHIFKQ6x8mSJTllcjMscHgzju0gQ==",
"dev": true
},
"node_modules/@emurgo/cardano-serialization-lib-browser": {
@@ -23687,6 +23709,25 @@
"react": "17.0.2"
}
},
+ "node_modules/react-fast-compare": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz",
+ "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ=="
+ },
+ "node_modules/react-helmet": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-6.1.0.tgz",
+ "integrity": "sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw==",
+ "dependencies": {
+ "object-assign": "^4.1.1",
+ "prop-types": "^15.7.2",
+ "react-fast-compare": "^3.1.1",
+ "react-side-effect": "^2.1.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.3.0"
+ }
+ },
"node_modules/react-intl": {
"version": "2.9.0",
"resolved": "https://registry.npmjs.org/react-intl/-/react-intl-2.9.0.tgz",
@@ -23900,6 +23941,14 @@
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
},
+ "node_modules/react-side-effect": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.2.tgz",
+ "integrity": "sha512-PVjOcvVOyIILrYoyGEpDN3vmYNLdy1CajSFNt4TDsVQC5KpTijDvWVoR+/7Rz2xT978D8/ZtFceXxzsPwZEDvw==",
+ "peerDependencies": {
+ "react": "^16.3.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
"node_modules/react-smooth": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-4.0.1.tgz",
diff --git a/packages/yoroi-extension/package.json b/packages/yoroi-extension/package.json
index 8cdfc92407..0c9681114a 100644
--- a/packages/yoroi-extension/package.json
+++ b/packages/yoroi-extension/package.json
@@ -1,13 +1,14 @@
{
"name": "yoroi",
- "version": "5.4.600",
+ "version": "5.4.601",
"description": "Cardano ADA wallet",
"scripts": {
"dev-mv2": "rimraf dev/ && NODE_OPTIONS=--openssl-legacy-provider babel-node scripts-mv2/build --type=debug --env 'mainnet'",
"dev:main": "NODE_OPTIONS=--openssl-legacy-provider babel-node scripts/dev main --env mainnet",
"dev:background": "NODE_OPTIONS=--openssl-legacy-provider babel-node scripts/dev background --env mainnet",
- "dev:stable": "rimraf dev/ && concurrently -c auto -n extension,background \"npm run dev:main\" \"npm run dev:background\"",
- "dev:nightly": "rimraf dev/ && concurrently -n extension,background \"npm run dev:main --nightly\" \"npm run dev:background --nightly\" ",
+ "dev:bring": "NODE_OPTIONS=--openssl-legacy-provider babel-node scripts/dev bring --env mainnet",
+ "dev:stable": "rimraf dev/ && concurrently -c auto -n extension,background,bring \"npm run dev:main\" \"npm run dev:background\" \"npm run dev:bring\"",
+ "dev:nightly": "rimraf dev/ && concurrently -c auto -n extension,background,bring \"npm run dev:main --nightly\" \"npm run dev:background --nightly\" \"npm run dev:bring --nightly \"",
"prod:build-mv2": "rimraf build/ && NODE_OPTIONS=--openssl-legacy-provider NODE_ENV=production babel-node scripts-mv2/build --type=prod",
"prod:build": "rimraf build/ && NODE_OPTIONS=--openssl-legacy-provider NODE_ENV=production babel-node scripts/build",
"prod:build:light": "rimraf build/ && NODE_OPTIONS=--openssl-legacy-provider NODE_ENV=production babel-node scripts/build --dontInjectConnector",
@@ -75,7 +76,7 @@
"@babel/register": "7.12.13",
"@babel/runtime": "7.12.18",
"@babel/runtime-corejs3": "7.12.18",
- "@emurgo/cardano-message-signing-nodejs": "1.0.1",
+ "@emurgo/cardano-message-signing-nodejs": "1.1.0",
"@emurgo/cardano-serialization-lib-nodejs": "13.2.1",
"@emurgo/cross-csl-nodejs": "6.2.1",
"@pmmmwh/react-refresh-webpack-plugin": "0.5.11",
@@ -149,10 +150,11 @@
"dependencies": {
"@amplitude/analytics-browser": "^2.1.3",
"@babel/preset-typescript": "^7.24.7",
+ "@bringweb3/chrome-extension-kit": "^1.2.12",
"@cardano-foundation/ledgerjs-hw-app-cardano": "7.1.3",
"@emotion/react": "^11.4.1",
"@emotion/styled": "^11.3.0",
- "@emurgo/cardano-message-signing-browser": "1.0.1",
+ "@emurgo/cardano-message-signing-browser": "1.1.0",
"@emurgo/cardano-serialization-lib-browser": "13.2.1",
"@emurgo/cip14-js": "2.0.0",
"@emurgo/cip4-js": "1.0.5",
@@ -169,12 +171,12 @@
"@svgr/webpack": "5.5.0",
"@vespaiach/axios-fetch-adapter": "^0.3.1",
"@yoroi/exchange": "2.0.1",
+ "@yoroi/explorers": "^1.0.2",
"@yoroi/portfolio": "1.0.3",
"@yoroi/resolver": "2.0.2",
"@yoroi/staking": "^1.5.1",
"@yoroi/swap": "1.5.2",
"@yoroi/types": "1.5.8",
- "@yoroi/explorers": "^1.0.2",
"assert": "2.1.0",
"async-await-queue": "2.1.4",
"axios": "0.21.1",
@@ -217,6 +219,7 @@
"react-blockies": "1.4.1",
"react-copy-to-clipboard": "5.0.3",
"react-dom": "17.0.2",
+ "react-helmet": "6.1.0",
"react-intl": "2.9.0",
"react-markdown": "5.0.3",
"react-query": "^3.39.3",
diff --git a/packages/yoroi-extension/scripts-mv2/build.js b/packages/yoroi-extension/scripts-mv2/build.js
index bffd6a7928..03b3bdb85f 100644
--- a/packages/yoroi-extension/scripts-mv2/build.js
+++ b/packages/yoroi-extension/scripts-mv2/build.js
@@ -92,6 +92,16 @@ export function buildDev(env: string) {
webpackHotMiddleware,
serverOpts
);
+
+ const Webpack = require('webpack');
+ const WebpackDevServer = require('webpack-dev-server');
+ const webpackConfig = config.contentScriptConfig(
+ argv.env,
+ isNightly,
+ !shouldInjectConnector
+ );
+ const server = new WebpackDevServer(webpackConfig.devServer, Webpack(webpackConfig));
+ server.start();
}
if (argv.type === 'debug') {
diff --git a/packages/yoroi-extension/scripts/dev.js b/packages/yoroi-extension/scripts/dev.js
index 213d8a674c..12117eb0ef 100644
--- a/packages/yoroi-extension/scripts/dev.js
+++ b/packages/yoroi-extension/scripts/dev.js
@@ -4,7 +4,11 @@ const webpack = require('webpack');
const WebpackDevServer = require('webpack-dev-server');
const tasks = require('./tasks');
-const { baseDevConfig, backgroundServiceWorkerConfig } = require(`../webpack/devConfig`);
+const {
+ baseDevConfig,
+ backgroundServiceWorkerConfig,
+ bringContentScriptConfig,
+} = require(`../webpack/devConfig`);
const { argv, shouldInjectConnector, isNightly, buildAndCopyInjector } = require('./utils');
// override NODE_ENV for ConfigWebpackPlugin
@@ -51,10 +55,25 @@ function devBackgroundServiceWorker() {
server.start();
}
+function devBringContentScript() {
+ const config = bringContentScriptConfig(
+ argv.env,
+ isNightly,
+ !shouldInjectConnector
+ );
+
+ const compiler = webpack(config);
+
+ const server = new WebpackDevServer(config.devServer, compiler);
+ server.start();
+}
+
if (argv._[0] === 'main') {
devMainWindow(argv.env);
} else if (argv._[0] === 'background') {
devBackgroundServiceWorker();
+} else if (argv._[0] === 'bring') {
+ devBringContentScript();
} else {
console.error('unknown component');
process.exit(1);
diff --git a/packages/yoroi-extension/webpack-mv2/devConfig.js b/packages/yoroi-extension/webpack-mv2/devConfig.js
index 90a83e5e32..8078c99a1c 100644
--- a/packages/yoroi-extension/webpack-mv2/devConfig.js
+++ b/packages/yoroi-extension/webpack-mv2/devConfig.js
@@ -108,4 +108,58 @@ const baseDevConfig = (
}
});
-module.exports = { baseDevConfig };
+const contentScriptConfig = (
+ networkName /*: string */,
+ isNightly /*: boolean */,
+ isLight /* : ?boolean */ = false
+) /*: * */ => ({
+ mode: 'development',
+ resolve: commonConfig.resolve(),
+ devtool: 'source-map',
+ entry: {
+ contentScript: [
+ path.join(__dirname, '../chrome/content-scripts/bringInject.js'),
+ ]
+ },
+ devServer: {
+ devMiddleware: {
+ writeToDisk: true,
+ },
+ hot: false,
+ liveReload: false,
+ // HTTP is not actually used because injected code must always be written to `dev` dir
+ port: 3001,
+ },
+ output: {
+ path: path.join(__dirname, '../dev/js'),
+ filename: 'bringInject.js',
+ },
+
+ plugins: [
+ new webpack.optimize.LimitChunkCountPlugin({
+ maxChunks: 1
+ }),
+ new webpack.DefinePlugin(commonConfig.definePlugin(
+ networkName,
+ false,
+ isNightly,
+ Boolean(isLight),
+ )),
+ new webpack.IgnorePlugin(/[^/]+\/[\S]+.dev$/),
+ ],
+ module: {
+ rules: [
+ ...commonConfig.rules(false),
+ {
+ test: /\.js$/,
+ loader: 'babel-loader',
+ exclude: /node_modules/,
+ options: {
+ presets: []
+ }
+ },
+ ]
+ },
+});
+
+module.exports = { baseDevConfig, contentScriptConfig };
diff --git a/packages/yoroi-extension/webpack-mv2/prodConfig.js b/packages/yoroi-extension/webpack-mv2/prodConfig.js
index cdbc02d9e0..161757f942 100644
--- a/packages/yoroi-extension/webpack-mv2/prodConfig.js
+++ b/packages/yoroi-extension/webpack-mv2/prodConfig.js
@@ -17,6 +17,49 @@ type EnvParams = {|
isLight: "true" | "false"
|};
*/
+const contentScriptConfig = (env /*: EnvParams */) /*: * */ => ({
+ mode: 'production',
+ optimization: commonConfig.optimization,
+ experiments: commonConfig.experiments,
+ resolve: commonConfig.resolve(),
+ entry: {
+ contentScript: [
+ path.join(__dirname, '../chrome/content-scripts/bringInject.js'),
+ ]
+ },
+ output: {
+ path: path.join(__dirname, '../build/js'),
+ filename: 'bringInject.js',
+ },
+
+ plugins: [
+ ...commonConfig.plugins('build', env.networkName),
+ new webpack.optimize.LimitChunkCountPlugin({
+ maxChunks: 1
+ }),
+ new webpack.DefinePlugin(commonConfig.definePlugin(
+ env.networkName,
+ true,
+ JSON.parse(env.nightly),
+ JSON.parse(env.isLight)
+ )),
+ new webpack.IgnorePlugin(/[^/]+\/[\S]+.dev$/),
+ ],
+ module: {
+ rules: [
+ ...commonConfig.rules(false),
+ {
+ test: /\.js$/,
+ loader: 'babel-loader',
+ exclude: /node_modules/,
+ options: {
+ presets: []
+ }
+ },
+ ]
+ },
+});
+
const baseProdConfig = (env /*: EnvParams */) /*: * */ => ({
mode: 'production',
optimization: commonConfig.optimization,
@@ -86,4 +129,4 @@ const baseProdConfig = (env /*: EnvParams */) /*: * */ => ({
});
// export a callable function so we can swap out the network to use
-module.exports = baseProdConfig;
+module.exports = [ contentScriptConfig, baseProdConfig ];
diff --git a/packages/yoroi-extension/webpack/devConfig.js b/packages/yoroi-extension/webpack/devConfig.js
index 76450f93ce..e21453783c 100644
--- a/packages/yoroi-extension/webpack/devConfig.js
+++ b/packages/yoroi-extension/webpack/devConfig.js
@@ -170,4 +170,58 @@ const backgroundServiceWorkerConfig = (
}
});
-module.exports = { baseDevConfig, backgroundServiceWorkerConfig };
+const bringContentScriptConfig = (
+ networkName /*: string */,
+ isNightly /*: boolean */,
+ isLight /* : ?boolean */ = false
+) /*: * */ => ({
+ mode: 'development',
+ resolve: commonConfig.resolve(),
+ devtool: 'source-map',
+ entry: {
+ contentScript: [
+ path.join(__dirname, '../chrome/content-scripts/bringInject.js'),
+ ]
+ },
+ devServer: {
+ devMiddleware: {
+ writeToDisk: true,
+ },
+ hot: false,
+ liveReload: false,
+ // HTTP is not actually used because injected code must always be written to `dev` dir
+ port: 8082,
+ },
+ output: {
+ path: path.join(__dirname, '../dev/js'),
+ filename: 'bringInject.js',
+ },
+
+ plugins: [
+ new webpack.optimize.LimitChunkCountPlugin({
+ maxChunks: 1
+ }),
+ new webpack.DefinePlugin(commonConfig.definePlugin(
+ networkName,
+ false,
+ isNightly,
+ Boolean(isLight),
+ )),
+ new webpack.IgnorePlugin(/[^/]+\/[\S]+.dev$/),
+ ],
+ module: {
+ rules: [
+ ...commonConfig.rules(false),
+ {
+ test: /\.js$/,
+ loader: 'babel-loader',
+ exclude: /node_modules/,
+ options: {
+ presets: []
+ }
+ },
+ ]
+ },
+});
+
+module.exports = { baseDevConfig, backgroundServiceWorkerConfig, bringContentScriptConfig };
diff --git a/packages/yoroi-extension/webpack/prodConfig.js b/packages/yoroi-extension/webpack/prodConfig.js
index 336efbb255..947692b9f5 100644
--- a/packages/yoroi-extension/webpack/prodConfig.js
+++ b/packages/yoroi-extension/webpack/prodConfig.js
@@ -143,5 +143,48 @@ const backgroundServiceWorkerConfig = (env /*: EnvParams */) /*: * */ => ({
}
});
+const bringContentScriptConfig = (env /*: EnvParams */) /*: * */ => ({
+ mode: 'production',
+ optimization: commonConfig.optimization,
+ experiments: commonConfig.experiments,
+ resolve: commonConfig.resolve(),
+ entry: {
+ contentScript: [
+ path.join(__dirname, '../chrome/content-scripts/bringInject.js'),
+ ]
+ },
+ output: {
+ path: path.join(__dirname, '../build/js'),
+ filename: 'bringInject.js',
+ },
+
+ plugins: [
+ ...commonConfig.plugins('build', env.networkName),
+ new webpack.optimize.LimitChunkCountPlugin({
+ maxChunks: 1
+ }),
+ new webpack.DefinePlugin(commonConfig.definePlugin(
+ env.networkName,
+ true,
+ JSON.parse(env.nightly),
+ JSON.parse(env.isLight)
+ )),
+ new webpack.IgnorePlugin(/[^/]+\/[\S]+.dev$/),
+ ],
+ module: {
+ rules: [
+ ...commonConfig.rules(false),
+ {
+ test: /\.js$/,
+ loader: 'babel-loader',
+ exclude: /node_modules/,
+ options: {
+ presets: []
+ }
+ },
+ ]
+ },
+});
+
// export a callable function so we can swap out the network to use
-module.exports = [baseProdConfig, backgroundServiceWorkerConfig];
+module.exports = [baseProdConfig, backgroundServiceWorkerConfig, bringContentScriptConfig];